class CustomFooter extends HTMLElement { connectedCallback() { this.attachShadow({ mode: 'open' }); this.shadowRoot.innerHTML = ` `; // Theme toggle in footer const themeToggleFooter = this.shadowRoot.getElementById('theme-toggle-footer'); if (themeToggleFooter) { themeToggleFooter.addEventListener('click', () => { const isDark = document.documentElement.classList.toggle('dark'); localStorage.setItem('theme', isDark ? 'dark' : 'light'); themeToggleFooter.innerHTML = isDark ? '' : ''; feather.replace(); }); // Set initial icon const savedTheme = localStorage.getItem('theme') || (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'); themeToggleFooter.innerHTML = savedTheme === 'dark' ? '' : ''; feather.replace(); } } } customElements.define('custom-footer', CustomFooter);