class ThemeToggle extends HTMLElement { connectedCallback() { this.attachShadow({ mode: 'open' }); this.shadowRoot.innerHTML = ` `; this.shadowRoot.querySelector('button').addEventListener('click', () => { document.documentElement.classList.toggle('light-mode'); this.updateIcon(); }); this.updateIcon(); } updateIcon() { const icon = this.shadowRoot.querySelector('i'); const span = this.shadowRoot.querySelector('span'); if (document.documentElement.classList.contains('light-mode')) { icon.setAttribute('data-feather', 'sun'); span.textContent = 'Light Mode'; } else { icon.setAttribute('data-feather', 'moon'); span.textContent = 'Dark Mode'; } feather.replace(); } } customElements.define('theme-toggle', ThemeToggle);