const zoomPercentEl = document.getElementById('zoom-percent'); function setCssVar(name, value, fallback) { const val = value || fallback; if (val) document.documentElement.style.setProperty(name, val); } function applyTheme(theme) { const colors = theme?.colors || theme || {}; setCssVar('--bg', colors.bg, '#0b0d10'); setCssVar('--dark-blue', colors.darkBlue, '#0b1c2b'); setCssVar('--dark-purple', colors.darkPurple, '#1b1035'); setCssVar('--primary', colors.primary, '#7b2eff'); setCssVar('--accent', colors.accent, '#00c6ff'); setCssVar('--text', colors.text, '#e0e0e0'); setCssVar('--url-bar-bg', colors.urlBarBg, '#1c2030'); setCssVar('--url-bar-border', colors.urlBarBorder, '#3e4652'); } async function refreshZoom() { if (!window.electronAPI?.invoke || !zoomPercentEl) return; try { const z = await window.electronAPI.invoke('get-zoom-factor'); zoomPercentEl.textContent = `${Math.round(z * 100)}%`; } catch {} } window.electronAPI?.on?.('menu-popup-init', (payload) => { applyTheme(payload?.theme); refreshZoom(); }); window.addEventListener('click', (e) => { const btn = e.target.closest('button[data-cmd]'); if (!btn) return; const cmd = btn.getAttribute('data-cmd'); window.electronAPI?.send?.('menu-popup-command', { cmd }); }); window.addEventListener('keydown', (e) => { if (e.key === 'Escape') { window.electronAPI?.send?.('menu-popup-command', { cmd: 'close' }); } }); refreshZoom();