UNPKG

@hashicorp/design-system-components

Version:
53 lines (52 loc) 1.72 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import Component from '@glimmer/component'; import type { ComponentLike } from '@glint/template'; import type { HdsStepperNavStepSignature } from './step'; import type { HdsStepperNavPanelSignature } from './panel'; import type { HdsStepperTitleTags, HdsStepperNavStep } from '../types.ts'; export interface HdsStepperNavSignature { Args: { steps?: HdsStepperNavStep[]; currentStep?: number; isInteractive?: boolean; titleTag?: HdsStepperTitleTags; ariaLabel: string; onStepChange?: (event: MouseEvent, stepNumber: number) => void; }; Blocks: { body?: []; default: [ { Step?: ComponentLike<HdsStepperNavStepSignature>; Panel?: ComponentLike<HdsStepperNavPanelSignature>; } ]; }; Element: HTMLDivElement; } export default class HdsStepperNav extends Component<HdsStepperNavSignature> { private _stepIds; private _stepNodes; private _panelNodes; private _panelIds; private _element; private _setUpStepperNav; get currentStep(): number; get isInteractive(): boolean; get titleTag(): HdsStepperTitleTags; get inlineStyles(): Record<string, unknown>; get progressBarWidthStyle(): string; didInsertStep(): void; willDestroyStep(element: HTMLElement): void; didInsertPanel(): void; willDestroyPanel(element: HTMLElement): void; onKeyUp(currentStepIndex: number, event: KeyboardEvent): void; private updateSteps; private updatePanels; private findNextInteractiveStepIndex; private focusStep; get classNames(): string; }