import { useCallback } from "react"; import { Sun, Moon, Monitor } from "lucide-react"; import type { ThemeMode, ColorTheme } from "@fusion/core"; interface ThemeSelectorProps { themeMode: ThemeMode; colorTheme: ColorTheme; onThemeModeChange: (mode: ThemeMode) => void; onColorThemeChange: (theme: ColorTheme) => void; } const THEME_MODES: { value: ThemeMode; label: string; icon: typeof Sun }[] = [ { value: "light", label: "Light", icon: Sun }, { value: "dark", label: "Dark", icon: Moon }, { value: "system", label: "System", icon: Monitor }, ]; const COLOR_THEMES: { value: ColorTheme; label: string; className: string }[] = [ { value: "default", label: "Default", className: "theme-swatch-default" }, { value: "ocean", label: "Ocean", className: "theme-swatch-ocean" }, { value: "forest", label: "Forest", className: "theme-swatch-forest" }, { value: "sunset", label: "Sunset", className: "theme-swatch-sunset" }, { value: "zen", label: "Zen", className: "theme-swatch-zen" }, { value: "berry", label: "Berry", className: "theme-swatch-berry" }, { value: "high-contrast", label: "High Contrast", className: "theme-swatch-high-contrast" }, { value: "industrial", label: "Industrial", className: "theme-swatch-industrial" }, { value: "monochrome", label: "Mono", className: "theme-swatch-monochrome" }, { value: "solarized", label: "Solarized", className: "theme-swatch-solarized" }, { value: "factory", label: "Factory", className: "theme-swatch-factory" }, { value: "ayu", label: "Ayu", className: "theme-swatch-ayu" }, { value: "one-dark", label: "One Dark", className: "theme-swatch-one-dark" }, ]; /** * ThemeSelector component for choosing light/dark/system mode and color theme */ export function ThemeSelector({ themeMode, colorTheme, onThemeModeChange, onColorThemeChange, }: ThemeSelectorProps) { const handleReset = useCallback(() => { onThemeModeChange("dark"); onColorThemeChange("default"); }, [onThemeModeChange, onColorThemeChange]); return (