-
🌓 feat(ui): add auto theme mode, refactor ThemeToggle, optimize header theme handling · 30fc4d30- Feature: Introduce 'auto' theme mode - Detect system preference via matchMedia('(prefers-color-scheme: dark)') - Add useActualTheme context to expose the effective theme ('light'|'dark') - Persist selected mode in localStorage ('theme-mode') with 'auto' as default - Apply/remove `dark` class on <html> and sync `theme-mode` on <body> - Broadcast effective theme to iframes - UI: Redesign ThemeToggle with Dropdown items and custom highlight - Replace non-existent IconMonitor with IconRefresh - Use Dropdown.Menu + Dropdown.Item with built-in icon prop - Selected state uses custom background highlight; hover state preserved - Remove checkmark; selection relies on background styling - Current button icon reflects selected mode - Performance: reduce re-renders and unnecessary effects - Memoize theme options and current button icon (useMemo) - Simplify handleThemeToggle to accept only explicit modes ('light'|'dark'|'auto') - Minimize useEffect dependencies; remove unrelated deps - Header: streamline useHeaderBar - Use useActualTheme for iframe theme messaging - Remove unused statusDispatch - Remove isNewYear from theme effect dependencies - Home: send effective theme (useActualTheme) to external content iframes - i18n: add/enhance theme-related copy in locales (en/zh) - Chore: minor code cleanup and consistency - Improve readability and maintainability - Lint clean; no functional regressionst0ng7u committed