'use client'; import * as React from 'react'; import { Moon, Sun } from 'lucide-react'; import { Button } from '@/components/ui/Button'; export function ThemeToggle() { const [theme, setTheme] = React.useState<'light' | 'dark'>('light'); const toggleTheme = React.useCallback(() => { const newTheme = theme === 'light' ? 'dark' : 'light'; setTheme(newTheme); localStorage.setItem('theme', newTheme); document.documentElement.classList.toggle('dark', newTheme === 'dark'); }, [theme]); React.useEffect(() => { // Read the current theme from the DOM (set by blocking script) const isDark = document.documentElement.classList.contains('dark'); setTheme(isDark ? 'dark' : 'light'); }, []); // Keyboard shortcut: Ctrl/Cmd + D React.useEffect(() => { const handleKeyDown = (e: KeyboardEvent) => { if (e.key === 'd' && (e.ctrlKey || e.metaKey)) { e.preventDefault(); toggleTheme(); } }; window.addEventListener('keydown', handleKeyDown); return () => window.removeEventListener('keydown', handleKeyDown); }, [toggleTheme]); return ( ); }