/** * Kanbante — header navigation (issue #16): the "Plus" dropdown on * desktop and the burger panel on mobile. One shared partial * (_header.html), one shared behaviour: this file. */ (function () { var moreBtn = document.getElementById('nav-more-btn'); var moreMenu = document.getElementById('nav-more-menu'); var burger = document.getElementById('nav-burger'); var mobileNav = document.getElementById('mobile-nav'); function setOpen(menu, btn, open) { if (!menu || !btn) return; menu.hidden = !open; btn.setAttribute('aria-expanded', open ? 'true' : 'false'); } function closeAll() { setOpen(moreMenu, moreBtn, false); setOpen(mobileNav, burger, false); if (burger) { burger.textContent = '☰'; burger.setAttribute('aria-label', 'Ouvrir le menu'); } } if (moreBtn && moreMenu) { moreBtn.addEventListener('click', function (e) { e.stopPropagation(); var willOpen = moreMenu.hidden; closeAll(); setOpen(moreMenu, moreBtn, willOpen); }); moreMenu.addEventListener('click', function (e) { e.stopPropagation(); }); } if (burger && mobileNav) { burger.addEventListener('click', function (e) { e.stopPropagation(); var willOpen = mobileNav.hidden; closeAll(); setOpen(mobileNav, burger, willOpen); burger.textContent = willOpen ? '✕' : '☰'; burger.setAttribute('aria-label', willOpen ? 'Fermer le menu' : 'Ouvrir le menu'); }); } document.addEventListener('click', function () { closeAll(); }); document.addEventListener('keydown', function (e) { if (e.key === 'Escape') closeAll(); }); window.addEventListener('resize', function () { if (window.innerWidth > 900) { closeAll(); if (burger) burger.textContent = '☰'; } }); })();