import type { ThemeTokens } from './tokens';
import { lightTheme } from './presets';

/**
 * 自定义主题工厂（plan.md「1.2 自定义主题工厂」）。
 * 用户只需提供覆盖项，其余从基础主题（lightTheme）继承。
 * 深度合并每个子对象，避免部分覆盖时丢失键。
 */
export function createTheme(overrides: Partial<ThemeTokens>): ThemeTokens {
  return {
    colors: { ...lightTheme.colors, ...overrides.colors, financial: { ...lightTheme.colors.financial, ...overrides.colors?.financial } },
    spacing: { ...lightTheme.spacing, ...overrides.spacing },
    radii: { ...lightTheme.radii, ...overrides.radii },
    typography: { ...lightTheme.typography, ...overrides.typography },
    shadows: { ...lightTheme.shadows, ...overrides.shadows },
    opacities: { ...lightTheme.opacities, ...overrides.opacities },
  };
}
