class CustomNavbar extends HTMLElement { connectedCallback() { this.attachShadow({ mode: 'open' }); this.shadowRoot.innerHTML = ` `; // Add event listener for dropdown const profileButton = this.shadowRoot.querySelector('.relative button'); const dropdownMenu = this.shadowRoot.querySelector('.relative .hidden'); if (profileButton && dropdownMenu) { profileButton.addEventListener('click', () => { dropdownMenu.classList.toggle('hidden'); }); // Close dropdown when clicking outside document.addEventListener('click', (e) => { if (!profileButton.contains(e.target) && !dropdownMenu.contains(e.target)) { dropdownMenu.classList.add('hidden'); } }); } // Mobile menu toggle const mobileMenuButton = this.shadowRoot.querySelector('.mobile-menu'); const navLinks = this.shadowRoot.querySelector('.nav-links'); if (mobileMenuButton && navLinks) { mobileMenuButton.addEventListener('click', () => { navLinks.classList.toggle('hidden'); navLinks.classList.toggle('flex'); navLinks.classList.toggle('flex-col'); navLinks.classList.toggle('absolute'); navLinks.classList.toggle('top-16'); navLinks.classList.toggle('left-0'); navLinks.classList.toggle('right-0'); navLinks.classList.toggle('bg-white'); navLinks.classList.toggle('dark:bg-gray-800'); navLinks.classList.toggle('p-4'); navLinks.classList.toggle('space-y-4'); navLinks.classList.toggle('space-x-8'); navLinks.classList.toggle('border-b'); navLinks.classList.toggle('border-gray-200'); navLinks.classList.toggle('dark:border-gray-700'); }); } } } customElements.define('custom-navbar', CustomNavbar);