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);