@hashicorp/design-system-components
Version: 
Helios Design System Components
76 lines (75 loc) • 2.64 kB
TypeScript
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import Component from '@glimmer/component';
import type { HdsSideNavBaseSignature } from './base';
import type Owner from '@ember/owner';
export interface HdsSideNavSignature {
    Args: {
        isResponsive?: boolean;
        isCollapsible?: boolean;
        isMinimized?: boolean;
        hasA11yRefocus?: boolean;
        a11yRefocusSkipTo?: string;
        a11yRefocusSkipText?: string;
        a11yRefocusNavigationText?: string;
        a11yRefocusRouteChangeValidator?: string;
        a11yRefocusExcludeAllQueryParams?: boolean;
        /**
         * @deprecated The `@ariaLabel` argument for "Hds::SideNav" has been deprecated. It is replaced by aria-labelledby and aria-expanded on the toggle button
         */
        ariaLabel?: string | undefined;
        onToggleMinimizedStatus?: (arg: boolean) => void;
        onDesktopViewportChange?: (arg: boolean) => void;
    };
    Blocks: {
        header?: [
            {
                Header?: HdsSideNavBaseSignature['Blocks']['header'];
                isMinimized?: boolean;
            }
        ];
        body?: [
            {
                Body?: HdsSideNavBaseSignature['Blocks']['body'];
                isMinimized?: boolean;
            }
        ];
        footer?: [
            {
                Footer?: HdsSideNavBaseSignature['Blocks']['footer'];
                isMinimized?: boolean;
            }
        ];
    };
    Element: HdsSideNavBaseSignature['Element'];
}
export default class HdsSideNav extends Component<HdsSideNavSignature> {
    isAnimating: boolean;
    isDesktop: boolean;
    isMinimized: boolean;
    desktopMQ: MediaQueryList;
    containersToHide: NodeListOf<Element>;
    hasA11yRefocus: boolean;
    a11yRefocusSkipTo: string;
    desktopMQVal: string;
    constructor(owner: Owner, args: HdsSideNavSignature['Args']);
    addEventListeners(): void;
    removeEventListeners(): void;
    get isResponsive(): boolean;
    get isCollapsible(): boolean;
    get shouldTrapFocus(): boolean;
    get showToggleButton(): boolean;
    /**
     * @deprecated The `@ariaLabel` argument for "Hds::SideNav" has been deprecated. It is replaced by aria-labelledby and aria-expanded on the toggle button
     */
    get ariaLabel(): string | undefined;
    get classNames(): string;
    synchronizeInert(): void;
    escapePress(event: KeyboardEvent): void;
    toggleMinimizedStatus(): void;
    didInsert(element: HTMLElement): void;
    setTransition(phase: string, event: TransitionEvent): void;
    updateDesktopVariable(event: MediaQueryListEvent): void;
}