(() => { const toggle = document.querySelector('[data-nav-toggle]'); const sidebar = document.querySelector('[data-sidebar]'); if (!toggle || !sidebar) return; const close = () => { sidebar.classList.remove('open'); toggle.setAttribute('aria-expanded', 'false'); }; toggle.addEventListener('click', () => { const open = sidebar.classList.toggle('open'); toggle.setAttribute('aria-expanded', String(open)); }); document.addEventListener('keydown', (event) => { if (event.key === 'Escape') close(); }); document.addEventListener('click', (event) => { if (sidebar.classList.contains('open') && !sidebar.contains(event.target) && !toggle.contains(event.target)) { close(); } }); })();