Add this JavaScript to enable dropdown and popover functionality:
Toggle Implementation
// Dropdown toggledocument.querySelectorAll('.dropdown > button').forEach(button=>{ button.addEventListener('click',(e)=>{ e.stopPropagation()const dropdown = button.parentElement// Close other open dropdownsdocument.querySelectorAll('.dropdown.open').forEach(d=>{if(d !== dropdown) d.classList.remove('open')}) dropdown.classList.toggle('open')})})// Popover toggledocument.querySelectorAll('.popover-container > button').forEach(button=>{ button.addEventListener('click',(e)=>{ e.stopPropagation()const container = button.parentElement// Close other open popoversdocument.querySelectorAll('.popover-container.open').forEach(c=>{if(c !== container) c.classList.remove('open')}) container.classList.toggle('open')})})// Close on outside clickdocument.addEventListener('click',()=>{document.querySelectorAll('.dropdown.open, .popover-container.open').forEach(el=>{ el.classList.remove('open')})})// Close on escape keydocument.addEventListener('keydown',(e)=>{if(e.key==='Escape'){document.querySelectorAll('.dropdown.open, .popover-container.open').forEach(el=>{ el.classList.remove('open')})}})
Accessibility
Best Practices:
Use role="menu" on dropdown menus with role="menuitem" on items
Add aria-haspopup="true" and aria-expanded to trigger buttons