const defaultTheme = { light: { background: "oklch(0.99 0 0)", foreground: "oklch(0.141 0.005 285.823)", card: "oklch(1 0 0)", "card-foreground": "oklch(0.141 0.005 285.823)", popover: "oklch(1 0 0)", "popover-foreground": "oklch(0.141 0.005 285.823)", primary: "oklch(0.6717 0.1946 41.93)", "primary-foreground": "oklch(0.98 0.016 73.684)", secondary: "oklch(0.967 0.001 286.375)", "secondary-foreground": "oklch(0.21 0.006 285.885)", muted: "oklch(0.967 0.001 286.375)", "muted-foreground": "oklch(0.552 0.016 285.938)", accent: "oklch(0.967 0.001 286.375)", "accent-foreground": "oklch(0.21 0.006 285.885)", destructive: "oklch(0.577 0.245 27.325)", "destructive-foreground": "oklch(0.985 0 0)", border: "oklch(0.92 0.004 286.32)", input: "oklch(0.92 0.004 286.32)", ring: "oklch(0.705 0.213 47.604)", radius: "0.65rem", "chart-1": "oklch(0.646 0.222 41.116)", "chart-2": "oklch(0.6 0.118 184.704)", "chart-3": "oklch(0.398 0.07 227.392)", "chart-4": "oklch(0.828 0.189 84.429)", "chart-5": "oklch(0.769 0.188 70.08)" }, dark: { background: "oklch(0.20 0.006 285.885)", foreground: "oklch(0.985 0 0)", card: "oklch(0.21 0.006 285.885)", "card-foreground": "oklch(0.985 0 0)", popover: "oklch(0.21 0.006 285.885)", "popover-foreground": "oklch(0.985 0 0)", primary: "oklch(0.6717 0.1946 41.93)", "primary-foreground": "oklch(0.98 0.016 73.684)", secondary: "oklch(0.274 0.006 286.033)", "secondary-foreground": "oklch(0.985 0 0)", muted: "oklch(0.274 0.006 286.033)", "muted-foreground": "oklch(0.705 0.015 286.067)", accent: "oklch(0.274 0.006 286.033)", "accent-foreground": "oklch(0.985 0 0)", destructive: "oklch(0.704 0.191 22.216)", "destructive-foreground": "oklch(0.985 0 0)", border: "oklch(1 0 0 / 10%)", input: "oklch(1 0 0 / 15%)", ring: "oklch(0.646 0.222 41.116)", "chart-1": "oklch(0.488 0.243 264.376)", "chart-2": "oklch(0.696 0.17 162.48)", "chart-3": "oklch(0.769 0.188 70.08)", "chart-4": "oklch(0.627 0.265 303.9)", "chart-5": "oklch(0.645 0.246 16.439)" } }; export default function setGlobalColorTheme( themeMode: "light" | "dark", colors: { light: Record; dark: Record; } ) { const merged = { light: { ...defaultTheme.light, ...colors.light }, dark: { ...defaultTheme.dark, ...colors.dark } }; const theme = merged[themeMode] as { [key: string]: string; }; for (const key in theme) { document.documentElement.style.setProperty(`--${key}`, theme[key]); } }