UNPKG

@puzzleitc/puzzle-shell

Version:

The standard design for Puzzle tools

65 lines (64 loc) 2.28 kB
import { LitElement } from "lit"; import "./Backdrop"; /** * Responsive menu component that is coupled with the topbar component * (for mobile menu toggling and actions display on desktop) and the * banner component (nav display on desktop) via events. * * @slot nav - Slot for application navigation that is visible in the * banner on desktop and moves into the hamburger menu on mobile * @slot items - Slot for menu content that is visible on the page on * desktop (typically on the left of the content) and moves into the * hamburger menu on mobile * @slot actions - Slot for application-wide menu actions (like help, * logout etc.) that are visible in the topbar on desktop and move * into the hamburger menu on mobile * @fires pzsh-menu-change * @fires pzsh-menu-nav-change */ export declare class Menu extends LitElement { open: boolean; /** * The selector for the scroll container which will be blocked from * scrolling while menu is open. */ scrollContainerSelector: string; available: boolean; hasNav: boolean; hasSubnav: boolean; actionsObserver: MutationObserver; static styles: import("lit").CSSResult[]; constructor(); connectedCallback(): void; disconnectedCallback(): void; toggleMenu(e: Event): void; toggleBackdrop(): void; handleEvent(e: Event): void; handleMenuClose(e: Event): void; handleMenuNavigation(e: Event): void; /** * Flatten all menu actions & dropdown items to an array */ getMenuItems(): ReadonlyArray<HTMLElement>; handleSlotChange(e: Event): void; handleActionsChange(): void; updateMenuAvailablity(): void; hasMenuItems(): boolean; /** * Emit an event for the pzsh-topbar component to show/hide the * hamburger menu button or update its open/closed state. */ triggerMenuChange(available: boolean, open: boolean): void; updateNavAvailability(): void; /** * Emit an event for the pzsh-banner component to preserve spacing * for the absolute positioned nav. */ triggerNavChange(hasNav: boolean, hasSubnav: boolean): void; render(): import("lit-html").TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { "pzsh-menu": Menu; } }