class CustomThemeToggle extends HTMLElement { connectedCallback() { this.attachShadow({ mode: 'open' }); this.shadowRoot.innerHTML = ` `; const button = this.shadowRoot.querySelector('.theme-toggle'); button.addEventListener('click', () => { const html = document.documentElement; if (html.classList.contains('dark')) { html.classList.remove('dark'); localStorage.setItem('theme', 'light'); } else { html.classList.add('dark'); localStorage.setItem('theme', 'dark'); } feather.replace(); }); // Initialize feather icons feather.replace(); } } customElements.define('custom-theme-toggle', CustomThemeToggle);