import { useState, useEffect } from 'react' type Theme = 'dark' | 'light' | 'system' export function useTheme() { const [theme, setTheme] = useState(() => { return (localStorage.getItem('hive-theme') as Theme) || 'system' }) useEffect(() => { const root = document.documentElement if (theme === 'system') { const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches root.setAttribute('data-theme', prefersDark ? 'dark' : 'light') } else { root.setAttribute('data-theme', theme) } localStorage.setItem('hive-theme', theme) }, [theme]) const toggle = () => setTheme(t => (t === 'dark' ? 'light' : 'dark')) return { theme, setTheme, toggle } }