import { createContext, useContext, useEffect, useState, useCallback } from 'react'; const THEME_KEY = 'ktoco_theme'; const ThemeContext = createContext(null); function applyTheme(theme) { const root = document.documentElement; if (theme === 'system') { root.removeAttribute('data-theme'); } else { root.setAttribute('data-theme', theme); } } export function ThemeProvider({ children }) { const [theme, setThemeState] = useState(() => localStorage.getItem(THEME_KEY) || 'system'); useEffect(() => { applyTheme(theme); }, [theme]); const setTheme = useCallback((t) => { localStorage.setItem(THEME_KEY, t); setThemeState(t); }, []); return {children}; } export function useTheme() { const ctx = useContext(ThemeContext); if (!ctx) throw new Error('useTheme must be used within ThemeProvider'); return ctx; }