import { DropdownUtil } from "../../common/dropdown"; import type { WithNormalizedProps } from "../../global"; export interface ComboboxOption { text: string; value?: string; class?: Marko.HTMLAttributes["class"]; sticky?: boolean; } export interface ComboboxEvent { currentInputValue: State["currentValue"]; selectedOption?: ComboboxOption; option: Input["option"]; } interface ComboboxInput extends Omit { expanded?: boolean; borderless?: boolean; fluid?: boolean; autocomplete?: "list" | "none"; "list-selection"?: "manual" | "automatic"; "floating-label"?: string; strategy?: "fixed" | "absolute"; flip?: boolean; button?: Marko.Input<"button"> & Marko.AttrTag<{ htmlAttributes?: Record; renderBody?: Marko.Body; }>; option?: Marko.AttrTag; /** * For internal use only. Used when combobox container changes. * @returns The dropdown element to be used for the combobox */ "dropdown-element"?: () => HTMLElement; "chevron-size"?: "large"; "on-focus"?: (event: ComboboxEvent) => void; "on-button-click"?: (event: { originalEvent: MouseEvent; }) => void; "on-expand"?: () => void; "on-collapse"?: () => void; "on-input-change"?: (event: ComboboxEvent) => void; "on-change"?: (event: ComboboxEvent) => void; "on-floating-label-init"?: (event: ComboboxEvent) => void; "on-select"?: (event: ComboboxEvent) => void; "on-keydown"?: (event: KeyboardEvent) => void; "on-option-click"?: (text: string) => void; } export interface Input extends WithNormalizedProps { } interface State { currentValue: Input["value"]; } export default class Combobox extends Marko.Component { expander: any; buttonClicked: boolean; optionClicked: boolean; activeDescendant: any; lastValue: Input["value"]; autocomplete: NonNullable; listSelection: NonNullable; expanded?: boolean; expandedChange: boolean; _floatingLabel: any; dropdownUtil: DropdownUtil; focus(): void; handleFocus(): void; isExpanded(): any; isCollapsed(): any; expand(): void; collapse(): void; handleButtonClick(originalEvent: MouseEvent): void; handleActiveDescendantChange(ev: CustomEvent): void; setSelectedView(): void; handleExpand(): void; handleCollapse(): void; handleComboboxClick(e: MouseEvent): void; handleComboboxKeyDown(originalEvent: KeyboardEvent): void; handleComboboxKeyUp(originalEvent: KeyboardEvent): void; handleComboboxBlur(): void; handleSelectOption(text: string): void; handleFloatingLabelInit(): void; onInput(input: Input): void; onMount(): void; onUpdate(): void; onRender(): void; onDestroy(): void; _setupFloatingLabel(): void; _setupMakeup(): void; _cleanupMakeup(): void; _setSelectedText(text: string): void; _getSelectedOption(): ComboboxOption | undefined; _getVisibleOptions(): ComboboxOption[]; _hasVisibleOptions(): boolean; _emitComboboxEvent(eventName: string): void; } export {};