Apply a matchMedia for desktop which will trigger a state sync if the browser viewport moves between states.
HTML element to use for header
Protected_Private$menuPrivate$menuPrivatemenuSave the opened/closed state for the nav in memory so that we can accurately maintain state when the screen is changed from small to big and back to small
PrivatemqlA global const for storing a matchMedia instance which we'll use to detect when a screen size change happens. We rely on it being null if the feature isn't available to initially apply hidden attributes
StaticelementStaticmoduleName for the component used when initialising using data-module attributes.
Protected$rootProtectedReturns the root element of the component
PrivatecheckPrivateSync menu state
Uses the global variable menuIsOpen to correctly set the accessible and visual states of the menu and the menu button. Additionally will force the menu to be visible and the menu button to be hidden if the matchMedia is triggered to desktop.
PrivatehandlePrivateHandle menu button click
When the menu button is clicked, change the visibility of the menu and then sync the accessibility state and menu button state
PrivatesetupPrivateSetup viewport resize check
Staticcheck
Header component