// ── theme.js — theme toggle, no imports ────────────────── export const THEME_CYCLE = ['system', 'light', 'dark']; export const THEME_ICONS = { system: '', light: '', dark: '', }; export const THEME_LABELS = { system: 'System theme', light: 'Light theme', dark: 'Dark theme' }; export function getTheme() { return localStorage.getItem('theme') || 'system'; } export function applyTheme(theme) { if (theme === 'system') document.documentElement.removeAttribute('data-theme'); else document.documentElement.setAttribute('data-theme', theme); } export function updateToggleBtn(theme) { const btn = document.getElementById('theme-toggle'); if (!btn) return; btn.innerHTML = THEME_ICONS[theme]; btn.title = THEME_LABELS[theme]; } export function cycleTheme() { const next = THEME_CYCLE[(THEME_CYCLE.indexOf(getTheme()) + 1) % THEME_CYCLE.length]; if (next === 'system') localStorage.removeItem('theme'); else localStorage.setItem('theme', next); applyTheme(next); updateToggleBtn(next); }