UNPKG

@hashicorp/design-system-components

Version:
77 lines (76 loc) 3.84 kB
/** * Copyright IBM Corp. 2021, 2025 * SPDX-License-Identifier: MPL-2.0 */ import Component from '@glimmer/component'; import type { WithBoundArgs } from '@glint/template'; import { HdsDropdownPositionValues } from './types.ts'; import HdsDropdownToggleButton from './toggle/button'; import HdsDropdownToggleIcon from './toggle/icon'; import HdsDropdownHeader from './header'; import HdsDropdownListItemCheckbox from './list-item/checkbox'; import HdsDropdownListItemCheckmark from './list-item/checkmark'; import HdsDropdownListItemCopyItem from './list-item/copy-item'; import HdsDropdownListItemDescription from './list-item/description'; import HdsDropdownListItemGeneric from './list-item/generic'; import HdsDropdownListItemInteractive from './list-item/interactive'; import HdsDropdownListItemRadio from './list-item/radio'; import HdsDropdownListItemSeparator from './list-item/separator'; import HdsDropdownListItemTitle from './list-item/title'; import HdsDropdownFooter from './footer'; import type { HdsPopoverPrimitiveSignature } from '../popover-primitive/index'; import type { HdsDropdownPositions } from './types.ts'; import type { HdsAnchoredPositionOptions } from '../../../modifiers/hds-anchored-position.ts'; export declare const DEFAULT_POSITION = HdsDropdownPositionValues.BottomRight; export declare const POSITIONS: HdsDropdownPositions[]; export interface HdsDropdownSignature { Args: { height?: string; isInline?: boolean; isOpen?: HdsPopoverPrimitiveSignature['Args']['isOpen']; listPosition?: HdsDropdownPositions; width?: string; enableCollisionDetection?: HdsAnchoredPositionOptions['enableCollisionDetection']; preserveContentInDom?: boolean; matchToggleWidth?: boolean; onClose?: HdsPopoverPrimitiveSignature['Args']['onClose']; onFocusOut?: HdsPopoverPrimitiveSignature['Args']['onFocusOut']; boundary?: HdsAnchoredPositionOptions['boundary']; }; Blocks: { default: [ { Footer?: typeof HdsDropdownFooter; Header?: typeof HdsDropdownHeader; Checkbox?: typeof HdsDropdownListItemCheckbox; Checkmark?: typeof HdsDropdownListItemCheckmark; CopyItem?: typeof HdsDropdownListItemCopyItem; Description?: typeof HdsDropdownListItemDescription; Generic?: typeof HdsDropdownListItemGeneric; Interactive?: typeof HdsDropdownListItemInteractive; Radio?: typeof HdsDropdownListItemRadio; Separator?: typeof HdsDropdownListItemSeparator; Title?: typeof HdsDropdownListItemTitle; ToggleButton?: WithBoundArgs<typeof HdsDropdownToggleButton, 'isOpen' | 'setupPrimitiveToggle'>; ToggleIcon?: WithBoundArgs<typeof HdsDropdownToggleIcon, 'isOpen' | 'setupPrimitiveToggle'>; close: (event?: Event) => void; } ]; }; Element: HTMLDivElement; } export default class HdsDropdown extends Component<HdsDropdownSignature> { get listPosition(): HdsDropdownPositions; get enableCollisionDetection(): HdsAnchoredPositionOptions['enableCollisionDetection']; get matchToggleWidth(): HdsAnchoredPositionOptions['matchToggleWidth']; get anchoredPositionOptions(): { placement: HdsAnchoredPositionOptions['placement']; offsetOptions: HdsAnchoredPositionOptions['offsetOptions']; enableCollisionDetection: HdsAnchoredPositionOptions['enableCollisionDetection']; matchToggleWidth: HdsAnchoredPositionOptions['matchToggleWidth']; boundary: HdsAnchoredPositionOptions['boundary']; }; get classNames(): string; get classNamesContent(): string; didInsertList: (element: HTMLUListElement) => void; }