(() => { const initialise = () => { document.querySelectorAll('[data-saasland-header]').forEach((header) => { const toggle = header.querySelector('[data-saasland-menu-toggle]'); const menu = document.querySelector('[data-saasland-mobile-nav]'); if (!toggle || !menu || toggle.dataset.initialised === 'true') { return; } const setOpen = (open) => { toggle.setAttribute('aria-expanded', String(open)); toggle.setAttribute('aria-label', open ? 'Close navigation' : 'Open navigation'); toggle.classList.toggle('is-open', open); menu.hidden = !open; menu.classList.toggle('is-open', open); document.documentElement.classList.toggle('saasland-menu-open', open); }; toggle.addEventListener('click', () => { setOpen(toggle.getAttribute('aria-expanded') !== 'true'); }); menu.querySelectorAll('a').forEach((link) => { link.addEventListener('click', () => setOpen(false)); }); document.addEventListener('keydown', (event) => { if (event.key === 'Escape') setOpen(false); }); window.addEventListener('resize', () => { if (window.innerWidth > 980) setOpen(false); }); toggle.dataset.initialised = 'true'; setOpen(false); }); }; if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initialise); } else { initialise(); } document.addEventListener('livewire:navigated', initialise); })();