import { StyleSheet } from 'react-native';
import type { ThemeTokens } from './tokens';

/**
 * 全局统一布局样式生成器（通过主题 Tokens 生成标准样式）。
 * 集中管理边框粗细、圆角、背景色以及基础填充边距。
 */
export function createCommonStyles(theme: ThemeTokens) {
  return StyleSheet.create({
    /** 统一输入框样式 */
    input: {
      borderWidth: StyleSheet.hairlineWidth,
      borderColor: theme.colors.border,
      borderRadius: theme.radii.md, // 输入框标准 radii 为 md (12px)
      backgroundColor: theme.colors.bgTertiary,
      color: theme.colors.fgPrimary,
      paddingHorizontal: 12,
      paddingVertical: 10,
      fontSize: 14,
    },
    /** 统一筛选/选择药丸芯片样式 */
    chip: {
      paddingVertical: 6,
      paddingHorizontal: 14,
      borderRadius: theme.radii.full, // 统一使用药丸圆形
      borderWidth: StyleSheet.hairlineWidth,
      borderColor: theme.colors.border,
      backgroundColor: 'transparent',
    },
    chipActive: {
      backgroundColor: theme.colors.accent,
      borderColor: theme.colors.accent,
    },
    chipText: {
      fontSize: 13,
      fontWeight: '600',
      color: theme.colors.fgPrimary,
    },
    chipTextActive: {
      color: theme.colors.fgInverse,
    },
    /** 统一模态框蒙层 */
    modalOverlay: {
      flex: 1,
      justifyContent: 'center',
      alignItems: 'center',
      padding: 24,
      backgroundColor: theme.colors.overlay,
    },
    /** 统一模态弹出卡片 */
    modalCard: {
      width: '100%',
      backgroundColor: theme.colors.bgSecondary,
      borderRadius: theme.radii.xl, // 弹窗使用卡片级大圆角 xl (24px)
      borderWidth: StyleSheet.hairlineWidth,
      borderColor: theme.colors.border,
      padding: 20,
      ...theme.shadows.lg,
    },
    /** 统一配置开关行样式 */
    switchRow: {
      flexDirection: 'row',
      alignItems: 'center',
      justifyContent: 'space-between',
      padding: 12,
      borderRadius: theme.radii.md,
      borderWidth: StyleSheet.hairlineWidth,
      borderColor: theme.colors.border,
      backgroundColor: theme.colors.bgSecondary,
    }
  });
}
