class CustomDropdown extends HTMLElement { connectedCallback() { this.attachShadow({ mode: 'open' }); this.shadowRoot.innerHTML = ` `; const dropdownBtn = this.shadowRoot.querySelector('.dropdown-btn'); const dropdownContent = this.shadowRoot.querySelector('.dropdown-content'); const dropdown = this.shadowRoot.querySelector('.dropdown'); dropdownBtn.addEventListener('click', (e) => { e.stopPropagation(); dropdownContent.classList.toggle('show'); dropdown.classList.toggle('active'); }); // Close when clicking outside document.addEventListener('click', () => { dropdownContent.classList.remove('show'); dropdown.classList.remove('active'); }); } } customElements.define('custom-dropdown', CustomDropdown);