// UI Controls function loadDarkMode() { const isDarkMode = localStorage.getItem('darkMode') === 'true'; document.documentElement.setAttribute('data-theme', isDarkMode ? 'dark' : ''); document.getElementById('dark-mode-toggle').checked = isDarkMode; } function saveDarkMode(isDarkMode) { localStorage.setItem('darkMode', isDarkMode); } export function initUI() { const settingsIcon = document.getElementById('settings-icon'); const settingsPanel = document.getElementById('settings-panel'); const darkModeToggle = document.getElementById('dark-mode-toggle'); // Load dark mode preference loadDarkMode(); // Toggle settings panel settingsIcon.addEventListener('click', (e) => { e.stopPropagation(); // Prevent click from propagating to document settingsPanel.classList.toggle('visible'); }); // Close settings when clicking outside document.addEventListener('click', (e) => { if (!settingsPanel.contains(e.target) && settingsPanel.classList.contains('visible')) { settingsPanel.classList.remove('visible'); } }); // Prevent game controls when interacting with settings settingsPanel.addEventListener('click', (e) => { e.stopPropagation(); }); // Handle dark mode toggle darkModeToggle.addEventListener('change', (e) => { const isDarkMode = e.target.checked; document.documentElement.setAttribute('data-theme', isDarkMode ? 'dark' : ''); saveDarkMode(isDarkMode); }); }