class PumpHeader extends HTMLElement { connectedCallback() { this.attachShadow({ mode: 'open' }); this.shadowRoot.innerHTML = `
`; const mobileMenuButton = this.shadowRoot.querySelector('.mobile-menu-button'); const nav = this.shadowRoot.querySelector('nav'); const themeToggle = this.shadowRoot.getElementById('themeToggle'); mobileMenuButton.addEventListener('click', () => { nav.classList.toggle('active'); }); themeToggle.addEventListener('click', () => { const html = document.documentElement; html.classList.toggle('dark'); localStorage.setItem('darkMode', html.classList.contains('dark')); const icon = themeToggle.querySelector('i'); if (html.classList.contains('dark')) { icon.setAttribute('data-feather', 'moon'); themeToggle.querySelector('span').textContent = 'Dark Mode'; } else { icon.setAttribute('data-feather', 'sun'); themeToggle.querySelector('span').textContent = 'Light Mode'; } feather.replace(); }); // Initialize feather icons feather.replace(); } } customElements.define('pump-header', PumpHeader);