@hashicorp/design-system-components
Version:
Helios Design System Components
69 lines (68 loc) • 2.35 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';
import type { NavigationNarratorSignature } from 'ember-a11y-refocus/components/navigation-narrator';
export interface HdsSideNavSignature {
Args: {
isResponsive?: boolean;
isCollapsible?: boolean;
isMinimized?: boolean;
hasA11yRefocus?: boolean;
a11yRefocusSkipTo?: string;
a11yRefocusSkipText?: string;
a11yRefocusNavigationText?: string;
a11yRefocusRouteChangeValidator?: NavigationNarratorSignature['Args']['routeChangeValidator'];
a11yRefocusExcludeAllQueryParams?: boolean;
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;
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;
}