import type { CSSResultGroup } from 'lit'; import DSADivider from '../divider/divider'; import DSAIcon from '../icon/icon'; import DSATooltip from '../tooltip/tooltip'; import { ShoelaceElement } from '../../internal/shoelace-element'; /** * @summary Side navigation provides menus and links for user navigation, and can be expanded or collapsed by the user. * @documentation * * @dependency dsa-divider * @dependency dsa-icon * @dependency dsa-tooltip * * @slot - Menu content (in collasped mode, only menu-navigation, menu-accordion, sidenav-info-accordion, divider, menu-label will be displayed) placed at the top. * @slot bottom - Menu content (in collasped mode, only menu-navigation, menu-accordion, divider, menu-label will be displayed) placed at the bottom. * * @event dsa-expand - Emitted when the sidenav expands. * @event dsa-collapse - Emitted when the sidenav closes. * * @cssproperty --sidenav-expanded-width - The width of the expanded sidenav. * */ export default class DSASideNav extends ShoelaceElement { static styles: CSSResultGroup; static dependencies: { 'dsa-divider': typeof DSADivider; 'dsa-icon': typeof DSAIcon; 'dsa-tooltip': typeof DSATooltip; }; private readonly hasSlotController; private readonly localize; sidenav: HTMLElement; sidenavButton: HTMLButtonElement; private isShortcutListenerAttached; /** Whether the sidenav is collapsed */ collapsed: boolean; /** Whether the sidenav can be toggled with the keyboard. */ allowShortcut: boolean; /** Nav element custom label */ navLabel: string; connectedCallback(): void; disconnectedCallback(): void; private attachShortcutListener; private detachShortcutListener; private getAccordionTarget; private handleDocumentKeyDown; private handleAccordionKeyDown; private handleAccordionActivation; private toggleSidenav; private updateChildrenState; handleExpandedChange(): void; handleAllowShortcutChange(): void; render(): import("lit").TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'dsa-sidenav': DSASideNav; } }