UNPKG

@wikimedia/codex

Version:

Codex Design System for Wikimedia

1,204 lines (1,203 loc) 134 kB
import { PropType, Ref, ComponentPublicInstance } from 'vue'; import { MenuItemData, MenuGroupData, MenuConfig, ValidationStatusType } from '../../types'; /** * A predictive text input with a dropdown menu of items. */ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ /** * Value of the current selection. * * Must be bound with `v-model:selected`. * * The property should be initialized to `null` rather than using a falsy value. */ selected: { type: PropType<string | number | null>; required: true; }; /** * Menu items and/or menu group definitions. * * Menu groups and individual menu items will be output in the order they appear here. */ menuItems: { type: PropType<(MenuItemData | MenuGroupData)[]>; required: true; }; /** * Current value of the input. This prop is optional and should only be used if you need to * keep track of the input value for some reason (e.g. to set an initial value). * * Optionally provided by `v-model:input-value` binding in the parent component. */ inputValue: { type: PropType<string | number>; default: null; }; /** * Whether the entire component is disabled. */ disabled: { type: BooleanConstructor; default: boolean; }; /** * Configuration for various menu features. All properties default to false. * * See the MenuConfig type. * * @default {} */ menuConfig: { type: PropType<MenuConfig>; default: () => MenuConfig; }; /** * `status` property of the TextInput component */ status: { type: PropType<ValidationStatusType>; default: string; validator: import("../../types").StringTypeValidator<"default" | "warning" | "error" | "success">; }; }>, { rootElement: Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>; textInput: Ref<import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{ modelValue: { type: (StringConstructor | NumberConstructor)[]; default: string; }; inputType: { type: PropType<import("../../types").TextInputType>; default: string; validator: import("../../types").StringTypeValidator<"number" | "text" | "search" | "email" | "month" | "password" | "tel" | "url" | "week" | "date" | "datetime-local" | "time">; }; status: { type: PropType<ValidationStatusType>; default: string; validator: import("../../types").StringTypeValidator<"default" | "warning" | "error" | "success">; }; disabled: { type: BooleanConstructor; default: boolean; }; startIcon: { type: PropType<import("@wikimedia/codex-icons").Icon | undefined>; default: undefined; }; endIcon: { type: PropType<import("@wikimedia/codex-icons").Icon | undefined>; default: undefined; }; clearable: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{ onFocus?: ((...args: any[]) => any) | undefined; onBlur?: ((...args: any[]) => any) | undefined; onChange?: ((...args: any[]) => any) | undefined; onInput?: ((...args: any[]) => any) | undefined; onInvalid?: ((...args: any[]) => any) | undefined; onKeydown?: ((...args: any[]) => any) | undefined; "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; onClear?: ((...args: any[]) => any) | undefined; }>, { computedInputId: import("vue").ComputedRef<string | undefined>; descriptionId: import("vue").ComputedRef<string | undefined> | undefined; wrappedModel: import("vue").WritableComputedRef<string | number, string | number>; isClearable: import("vue").ComputedRef<boolean>; rootClasses: import("vue").ComputedRef<Record<string, boolean>>; rootStyle: import("vue").ComputedRef<import("vue").StyleValue>; otherAttrsMinusId: import("vue").ComputedRef<{ [x: string]: unknown; }>; inputClasses: import("vue").ComputedRef<{ 'cdx-text-input__input--has-value': boolean; }>; computedDisabled: import("vue").ComputedRef<boolean>; onClear: (event: MouseEvent) => void; onInput: (event: Event) => void; onChange: (event: Event) => void; onKeydown: (event: KeyboardEvent) => void; onFocus: (event: FocusEvent) => void; onBlur: (event: FocusEvent) => void; onInvalid: (event: Event, doPreventDefault: boolean) => void; shouldPreventDefault: Ref<boolean, boolean>; cdxIconClear: string; }, {}, {}, { focus(): void; blur(): void; checkValidity(): boolean; reportValidity(): boolean; setCustomValidity(message: string): void; }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("input" | "clear" | "update:modelValue" | "focus" | "blur" | "keydown" | "change" | "invalid")[], import("vue").PublicProps, { modelValue: string | number; disabled: boolean; status: "default" | "warning" | "error" | "success"; inputType: "number" | "text" | "search" | "email" | "month" | "password" | "tel" | "url" | "week" | "date" | "datetime-local" | "time"; startIcon: import("@wikimedia/codex-icons").Icon | undefined; endIcon: import("@wikimedia/codex-icons").Icon | undefined; clearable: boolean; }, true, {}, {}, { CdxIcon: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ icon: { type: PropType<import("@wikimedia/codex-icons").Icon>; required: true; }; iconLabel: { type: StringConstructor; default: string; }; lang: { type: PropType<string | null>; default: null; }; dir: { type: PropType<import("../../types").HTMLDirection | null>; default: null; }; size: { type: PropType<import("../../types").IconSize>; default: string; validator: import("../../types").StringTypeValidator<"medium" | "small" | "x-small">; }; }>, { rootElement: Ref<HTMLSpanElement | undefined, HTMLSpanElement | undefined>; rootClasses: import("vue").ComputedRef<{ [x: string]: boolean; 'cdx-icon--flipped': boolean; }>; iconSvg: import("vue").ComputedRef<string>; iconPath: import("vue").ComputedRef<string>; }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ icon: { type: PropType<import("@wikimedia/codex-icons").Icon>; required: true; }; iconLabel: { type: StringConstructor; default: string; }; lang: { type: PropType<string | null>; default: null; }; dir: { type: PropType<import("../../types").HTMLDirection | null>; default: null; }; size: { type: PropType<import("../../types").IconSize>; default: string; validator: import("../../types").StringTypeValidator<"medium" | "small" | "x-small">; }; }>> & Readonly<{}>, { lang: string | null; iconLabel: string; dir: import("../../types").HTMLDirection | null; size: "medium" | "small" | "x-small"; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; } & import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, Readonly<import("vue").ExtractPropTypes<{ modelValue: { type: (StringConstructor | NumberConstructor)[]; default: string; }; inputType: { type: PropType<import("../../types").TextInputType>; default: string; validator: import("../../types").StringTypeValidator<"number" | "text" | "search" | "email" | "month" | "password" | "tel" | "url" | "week" | "date" | "datetime-local" | "time">; }; status: { type: PropType<ValidationStatusType>; default: string; validator: import("../../types").StringTypeValidator<"default" | "warning" | "error" | "success">; }; disabled: { type: BooleanConstructor; default: boolean; }; startIcon: { type: PropType<import("@wikimedia/codex-icons").Icon | undefined>; default: undefined; }; endIcon: { type: PropType<import("@wikimedia/codex-icons").Icon | undefined>; default: undefined; }; clearable: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{ onFocus?: ((...args: any[]) => any) | undefined; onBlur?: ((...args: any[]) => any) | undefined; onChange?: ((...args: any[]) => any) | undefined; onInput?: ((...args: any[]) => any) | undefined; onInvalid?: ((...args: any[]) => any) | undefined; onKeydown?: ((...args: any[]) => any) | undefined; "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; onClear?: ((...args: any[]) => any) | undefined; }>, { computedInputId: import("vue").ComputedRef<string | undefined>; descriptionId: import("vue").ComputedRef<string | undefined> | undefined; wrappedModel: import("vue").WritableComputedRef<string | number, string | number>; isClearable: import("vue").ComputedRef<boolean>; rootClasses: import("vue").ComputedRef<Record<string, boolean>>; rootStyle: import("vue").ComputedRef<import("vue").StyleValue>; otherAttrsMinusId: import("vue").ComputedRef<{ [x: string]: unknown; }>; inputClasses: import("vue").ComputedRef<{ 'cdx-text-input__input--has-value': boolean; }>; computedDisabled: import("vue").ComputedRef<boolean>; onClear: (event: MouseEvent) => void; onInput: (event: Event) => void; onChange: (event: Event) => void; onKeydown: (event: KeyboardEvent) => void; onFocus: (event: FocusEvent) => void; onBlur: (event: FocusEvent) => void; onInvalid: (event: Event, doPreventDefault: boolean) => void; shouldPreventDefault: Ref<boolean, boolean>; cdxIconClear: string; }, {}, {}, { focus(): void; blur(): void; checkValidity(): boolean; reportValidity(): boolean; setCustomValidity(message: string): void; }, { modelValue: string | number; disabled: boolean; status: "default" | "warning" | "error" | "success"; inputType: "number" | "text" | "search" | "email" | "month" | "password" | "tel" | "url" | "week" | "date" | "datetime-local" | "time"; startIcon: import("@wikimedia/codex-icons").Icon | undefined; endIcon: import("@wikimedia/codex-icons").Icon | undefined; clearable: boolean; }> | undefined, import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{ modelValue: { type: (StringConstructor | NumberConstructor)[]; default: string; }; inputType: { type: PropType<import("../../types").TextInputType>; default: string; validator: import("../../types").StringTypeValidator<"number" | "text" | "search" | "email" | "month" | "password" | "tel" | "url" | "week" | "date" | "datetime-local" | "time">; }; status: { type: PropType<ValidationStatusType>; default: string; validator: import("../../types").StringTypeValidator<"default" | "warning" | "error" | "success">; }; disabled: { type: BooleanConstructor; default: boolean; }; startIcon: { type: PropType<import("@wikimedia/codex-icons").Icon | undefined>; default: undefined; }; endIcon: { type: PropType<import("@wikimedia/codex-icons").Icon | undefined>; default: undefined; }; clearable: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{ onFocus?: ((...args: any[]) => any) | undefined; onBlur?: ((...args: any[]) => any) | undefined; onChange?: ((...args: any[]) => any) | undefined; onInput?: ((...args: any[]) => any) | undefined; onInvalid?: ((...args: any[]) => any) | undefined; onKeydown?: ((...args: any[]) => any) | undefined; "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; onClear?: ((...args: any[]) => any) | undefined; }>, { computedInputId: import("vue").ComputedRef<string | undefined>; descriptionId: import("vue").ComputedRef<string | undefined> | undefined; wrappedModel: import("vue").WritableComputedRef<string | number, string | number>; isClearable: import("vue").ComputedRef<boolean>; rootClasses: import("vue").ComputedRef<Record<string, boolean>>; rootStyle: import("vue").ComputedRef<import("vue").StyleValue>; otherAttrsMinusId: import("vue").ComputedRef<{ [x: string]: unknown; }>; inputClasses: import("vue").ComputedRef<{ 'cdx-text-input__input--has-value': boolean; }>; computedDisabled: import("vue").ComputedRef<boolean>; onClear: (event: MouseEvent) => void; onInput: (event: Event) => void; onChange: (event: Event) => void; onKeydown: (event: KeyboardEvent) => void; onFocus: (event: FocusEvent) => void; onBlur: (event: FocusEvent) => void; onInvalid: (event: Event, doPreventDefault: boolean) => void; shouldPreventDefault: Ref<boolean, boolean>; cdxIconClear: string; }, {}, {}, { focus(): void; blur(): void; checkValidity(): boolean; reportValidity(): boolean; setCustomValidity(message: string): void; }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("input" | "clear" | "update:modelValue" | "focus" | "blur" | "keydown" | "change" | "invalid")[], import("vue").PublicProps, { modelValue: string | number; disabled: boolean; status: "default" | "warning" | "error" | "success"; inputType: "number" | "text" | "search" | "email" | "month" | "password" | "tel" | "url" | "week" | "date" | "datetime-local" | "time"; startIcon: import("@wikimedia/codex-icons").Icon | undefined; endIcon: import("@wikimedia/codex-icons").Icon | undefined; clearable: boolean; }, true, {}, {}, { CdxIcon: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ icon: { type: PropType<import("@wikimedia/codex-icons").Icon>; required: true; }; iconLabel: { type: StringConstructor; default: string; }; lang: { type: PropType<string | null>; default: null; }; dir: { type: PropType<import("../../types").HTMLDirection | null>; default: null; }; size: { type: PropType<import("../../types").IconSize>; default: string; validator: import("../../types").StringTypeValidator<"medium" | "small" | "x-small">; }; }>, { rootElement: Ref<HTMLSpanElement | undefined, HTMLSpanElement | undefined>; rootClasses: import("vue").ComputedRef<{ [x: string]: boolean; 'cdx-icon--flipped': boolean; }>; iconSvg: import("vue").ComputedRef<string>; iconPath: import("vue").ComputedRef<string>; }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ icon: { type: PropType<import("@wikimedia/codex-icons").Icon>; required: true; }; iconLabel: { type: StringConstructor; default: string; }; lang: { type: PropType<string | null>; default: null; }; dir: { type: PropType<import("../../types").HTMLDirection | null>; default: null; }; size: { type: PropType<import("../../types").IconSize>; default: string; validator: import("../../types").StringTypeValidator<"medium" | "small" | "x-small">; }; }>> & Readonly<{}>, { lang: string | null; iconLabel: string; dir: import("../../types").HTMLDirection | null; size: "medium" | "small" | "x-small"; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; } & import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, Readonly<import("vue").ExtractPropTypes<{ modelValue: { type: (StringConstructor | NumberConstructor)[]; default: string; }; inputType: { type: PropType<import("../../types").TextInputType>; default: string; validator: import("../../types").StringTypeValidator<"number" | "text" | "search" | "email" | "month" | "password" | "tel" | "url" | "week" | "date" | "datetime-local" | "time">; }; status: { type: PropType<ValidationStatusType>; default: string; validator: import("../../types").StringTypeValidator<"default" | "warning" | "error" | "success">; }; disabled: { type: BooleanConstructor; default: boolean; }; startIcon: { type: PropType<import("@wikimedia/codex-icons").Icon | undefined>; default: undefined; }; endIcon: { type: PropType<import("@wikimedia/codex-icons").Icon | undefined>; default: undefined; }; clearable: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{ onFocus?: ((...args: any[]) => any) | undefined; onBlur?: ((...args: any[]) => any) | undefined; onChange?: ((...args: any[]) => any) | undefined; onInput?: ((...args: any[]) => any) | undefined; onInvalid?: ((...args: any[]) => any) | undefined; onKeydown?: ((...args: any[]) => any) | undefined; "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; onClear?: ((...args: any[]) => any) | undefined; }>, { computedInputId: import("vue").ComputedRef<string | undefined>; descriptionId: import("vue").ComputedRef<string | undefined> | undefined; wrappedModel: import("vue").WritableComputedRef<string | number, string | number>; isClearable: import("vue").ComputedRef<boolean>; rootClasses: import("vue").ComputedRef<Record<string, boolean>>; rootStyle: import("vue").ComputedRef<import("vue").StyleValue>; otherAttrsMinusId: import("vue").ComputedRef<{ [x: string]: unknown; }>; inputClasses: import("vue").ComputedRef<{ 'cdx-text-input__input--has-value': boolean; }>; computedDisabled: import("vue").ComputedRef<boolean>; onClear: (event: MouseEvent) => void; onInput: (event: Event) => void; onChange: (event: Event) => void; onKeydown: (event: KeyboardEvent) => void; onFocus: (event: FocusEvent) => void; onBlur: (event: FocusEvent) => void; onInvalid: (event: Event, doPreventDefault: boolean) => void; shouldPreventDefault: Ref<boolean, boolean>; cdxIconClear: string; }, {}, {}, { focus(): void; blur(): void; checkValidity(): boolean; reportValidity(): boolean; setCustomValidity(message: string): void; }, { modelValue: string | number; disabled: boolean; status: "default" | "warning" | "error" | "success"; inputType: "number" | "text" | "search" | "email" | "month" | "password" | "tel" | "url" | "week" | "date" | "datetime-local" | "time"; startIcon: import("@wikimedia/codex-icons").Icon | undefined; endIcon: import("@wikimedia/codex-icons").Icon | undefined; clearable: boolean; }> | undefined>; menu: Ref<import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{ menuItems: { type: PropType<(MenuItemData | MenuGroupData)[]>; required: true; }; footer: { type: PropType<MenuItemData>; default: null; }; selected: { type: PropType<import("../../types").MenuItemValue | import("../../types").MenuItemValue[] | null>; required: true; }; expanded: { type: BooleanConstructor; required: true; }; showPending: { type: BooleanConstructor; default: boolean; }; visibleItemLimit: { type: PropType<number | null>; default: null; }; showThumbnail: { type: BooleanConstructor; default: boolean; }; boldLabel: { type: BooleanConstructor; default: boolean; }; hideDescriptionOverflow: { type: BooleanConstructor; default: boolean; }; searchQuery: { type: StringConstructor; default: string; }; showNoResultsSlot: { type: PropType<boolean | null>; default: null; }; }>> & Readonly<{ "onUpdate:selected"?: ((...args: any[]) => any) | undefined; "onUpdate:expanded"?: ((...args: any[]) => any) | undefined; "onMenu-item-click"?: ((...args: any[]) => any) | undefined; "onMenu-item-keyboard-navigation"?: ((...args: any[]) => any) | undefined; "onLoad-more"?: ((...args: any[]) => any) | undefined; }>, { listBoxStyle: import("vue").ComputedRef<{ 'max-height': string | undefined; 'margin-bottom': string | undefined; }>; rootClasses: import("vue").ComputedRef<Record<string, boolean>>; rootStyle: import("vue").ComputedRef<import("vue").StyleValue>; otherAttrs: import("vue").ComputedRef<{ [x: string]: unknown; }>; assignTemplateRef: (templateRef: ComponentPublicInstance | Element | null, index: number) => void; computedMenuEntries: import("vue").ComputedRef<(import("../../types").MenuItemDataWithId | import("../../types").MenuGroupDataWithIds)[]>; computedMenuItems: import("vue").ComputedRef<import("../../types").MenuItemDataWithId[]>; computedShowNoResultsSlot: import("vue").ComputedRef<boolean>; highlightedMenuItem: Ref<{ id: string; value: import("../../types").MenuItemValue; label?: string | undefined; match?: string | undefined; supportingText?: string | undefined; description?: string | null | undefined; language?: { label?: string | undefined; match?: string | undefined; supportingText?: string | undefined; description?: string | undefined; } | undefined; icon?: string | { path: string; } | { ltr: string | { path: string; }; shouldFlip: true; shouldFlipExceptions?: string[] | undefined; } | { rtl: string | { path: string; }; ltr: string | { path: string; }; } | { langCodeMap: Record<string, import("@wikimedia/codex-icons").SimpleIcon | import("@wikimedia/codex-icons").IconFlipForRtl>; default: string | { path: string; } | { ltr: string | { path: string; }; shouldFlip: true; shouldFlipExceptions?: string[] | undefined; }; } | undefined; thumbnail?: { url: string; } | null | undefined; url?: string | undefined; disabled?: boolean | undefined; } | null, import("../../types").MenuItemDataWithId | { id: string; value: import("../../types").MenuItemValue; label?: string | undefined; match?: string | undefined; supportingText?: string | undefined; description?: string | null | undefined; language?: { label?: string | undefined; match?: string | undefined; supportingText?: string | undefined; description?: string | undefined; } | undefined; icon?: string | { path: string; } | { ltr: string | { path: string; }; shouldFlip: true; shouldFlipExceptions?: string[] | undefined; } | { rtl: string | { path: string; }; ltr: string | { path: string; }; } | { langCodeMap: Record<string, import("@wikimedia/codex-icons").SimpleIcon | import("@wikimedia/codex-icons").IconFlipForRtl>; default: string | { path: string; } | { ltr: string | { path: string; }; shouldFlip: true; shouldFlipExceptions?: string[] | undefined; }; } | undefined; thumbnail?: { url: string; } | null | undefined; url?: string | undefined; disabled?: boolean | undefined; } | null>; highlightedViaKeyboard: Ref<boolean, boolean>; handleMenuItemChange: (menuState: import("../../types").MenuState, menuItem: import("../../types").MenuItemDataWithId | null) => void; handleKeyNavigation: (e: KeyboardEvent, { prevent, characterNavigation }?: { prevent?: boolean | undefined; characterNavigation?: boolean | undefined; }) => boolean; ariaRelevant: "text" | "all" | "additions" | "additions removals" | "additions text" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined; isMultiselect: import("vue").ComputedRef<boolean>; menuListbox: Ref<HTMLElement | undefined, HTMLElement | undefined>; getGroupWrapperClasses: (group: MenuGroupData) => { 'cdx-menu__group-wrapper--hide-label': boolean; }; getMenuItemIndex: (menuItem: import("../../types").MenuItemDataWithId) => number; getMenuItemBindings: (menuItem: import("../../types").MenuItemDataWithId) => { id: string; value: import("../../types").MenuItemValue; label?: string; match?: string; supportingText?: string; description?: string | null; language?: import("../../types").MenuItemLanguageData; icon?: import("@wikimedia/codex-icons").Icon; thumbnail?: import("../../types").Thumbnail | null; url?: string; disabled?: boolean; selected: boolean; active: boolean; highlighted: boolean; showThumbnail: boolean; boldLabel: boolean; hideDescriptionOverflow: boolean; searchQuery: string; multiselect: boolean; }; getMenuItemHandlers: (menuItem: import("../../types").MenuItemDataWithId) => { change: (menuState: import("../../types").MenuState, setState: boolean) => void; click: () => void; }; getSlotBindings: (menuItem: import("../../types").MenuItemDataWithId) => { menuItem: import("../../types").MenuItemDataWithId; active: boolean; }; isMenuGroupData: (menuEntry: MenuItemData | MenuGroupData) => menuEntry is MenuGroupData; }, {}, {}, { isExpanded(): boolean; getHighlightedMenuItem(): import("../../types").MenuItemDataWithId | null; getHighlightedViaKeyboard(): boolean; getComputedMenuItems(): import("../../types").MenuItemDataWithId[]; clearActive(): void; delegateKeyNavigation(event: KeyboardEvent, { prevent, characterNavigation }?: { prevent?: boolean | undefined; characterNavigation?: boolean | undefined; }): boolean; }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:selected" | "update:expanded" | "menu-item-click" | "menu-item-keyboard-navigation" | "load-more")[], import("vue").PublicProps, { footer: MenuItemData; searchQuery: string; showThumbnail: boolean; boldLabel: boolean; hideDescriptionOverflow: boolean; showPending: boolean; visibleItemLimit: number | null; showNoResultsSlot: boolean | null; }, true, {}, {}, { CdxMenuItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ id: { type: StringConstructor; required: true; }; value: { type: PropType<import("../../types").MenuItemValue>; required: true; }; disabled: { type: BooleanConstructor; default: boolean; }; selected: { type: BooleanConstructor; default: boolean; }; active: { type: BooleanConstructor; default: boolean; }; highlighted: { type: BooleanConstructor; default: boolean; }; label: { type: StringConstructor; default: string; }; match: { type: StringConstructor; default: string; }; supportingText: { type: StringConstructor; default: string; }; url: { type: StringConstructor; default: string; }; icon: { type: PropType<import("@wikimedia/codex-icons").Icon>; default: string; }; showThumbnail: { type: BooleanConstructor; default: boolean; }; thumbnail: { type: PropType<import("../../types").Thumbnail | null>; default: null; }; description: { type: PropType<string | null>; default: string; }; searchQuery: { type: StringConstructor; default: string; }; boldLabel: { type: BooleanConstructor; default: boolean; }; hideDescriptionOverflow: { type: BooleanConstructor; default: boolean; }; language: { type: PropType<import("../../types").MenuItemLanguageData>; default: () => {}; }; action: { type: PropType<import("../../types").ButtonAction>; default: string; }; multiselect: { type: BooleanConstructor; default: boolean; }; }>, { onMouseMove: () => void; onMouseLeave: () => void; onMouseDown: (e: MouseEvent) => void; onClick: () => void; highlightQuery: import("vue").ComputedRef<boolean>; rootClasses: import("vue").ComputedRef<Record<string, boolean>>; contentTag: import("vue").ComputedRef<"span" | "a">; title: import("vue").ComputedRef<string>; cdxIconCheck: string; }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "change"[], "change", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ id: { type: StringConstructor; required: true; }; value: { type: PropType<import("../../types").MenuItemValue>; required: true; }; disabled: { type: BooleanConstructor; default: boolean; }; selected: { type: BooleanConstructor; default: boolean; }; active: { type: BooleanConstructor; default: boolean; }; highlighted: { type: BooleanConstructor; default: boolean; }; label: { type: StringConstructor; default: string; }; match: { type: StringConstructor; default: string; }; supportingText: { type: StringConstructor; default: string; }; url: { type: StringConstructor; default: string; }; icon: { type: PropType<import("@wikimedia/codex-icons").Icon>; default: string; }; showThumbnail: { type: BooleanConstructor; default: boolean; }; thumbnail: { type: PropType<import("../../types").Thumbnail | null>; default: null; }; description: { type: PropType<string | null>; default: string; }; searchQuery: { type: StringConstructor; default: string; }; boldLabel: { type: BooleanConstructor; default: boolean; }; hideDescriptionOverflow: { type: BooleanConstructor; default: boolean; }; language: { type: PropType<import("../../types").MenuItemLanguageData>; default: () => {}; }; action: { type: PropType<import("../../types").ButtonAction>; default: string; }; multiselect: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{ onChange?: ((...args: any[]) => any) | undefined; }>, { url: string; selected: boolean; highlighted: boolean; active: boolean; icon: import("@wikimedia/codex-icons").Icon; label: string; match: string; action: "default" | "progressive" | "destructive"; disabled: boolean; thumbnail: import("../../types").Thumbnail | null; description: string | null; searchQuery: string; supportingText: string; showThumbnail: boolean; boldLabel: boolean; hideDescriptionOverflow: boolean; language: import("../../types").MenuItemLanguageData; multiselect: boolean; }, {}, { CdxIcon: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ icon: { type: PropType<import("@wikimedia/codex-icons").Icon>; required: true; }; iconLabel: { type: StringConstructor; default: string; }; lang: { type: PropType<string | null>; default: null; }; dir: { type: PropType<import("../../types").HTMLDirection | null>; default: null; }; size: { type: PropType<import("../../types").IconSize>; default: string; validator: import("../../types").StringTypeValidator<"medium" | "small" | "x-small">; }; }>, { rootElement: Ref<HTMLSpanElement | undefined, HTMLSpanElement | undefined>; rootClasses: import("vue").ComputedRef<{ [x: string]: boolean; 'cdx-icon--flipped': boolean; }>; iconSvg: import("vue").ComputedRef<string>; iconPath: import("vue").ComputedRef<string>; }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ icon: { type: PropType<import("@wikimedia/codex-icons").Icon>; required: true; }; iconLabel: { type: StringConstructor; default: string; }; lang: { type: PropType<string | null>; default: null; }; dir: { type: PropType<import("../../types").HTMLDirection | null>; default: null; }; size: { type: PropType<import("../../types").IconSize>; default: string; validator: import("../../types").StringTypeValidator<"medium" | "small" | "x-small">; }; }>> & Readonly<{}>, { lang: string | null; iconLabel: string; dir: import("../../types").HTMLDirection | null; size: "medium" | "small" | "x-small"; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; CdxThumbnail: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ thumbnail: { type: PropType<import("../../types").Thumbnail | null>; default: null; }; placeholderIcon: { type: PropType<import("@wikimedia/codex-icons").Icon>; default: string; }; }>, { thumbnailStyle: Ref<{}, {}>; thumbnailLoaded: Ref<boolean, boolean>; NoInvertClass: "cdx-no-invert"; }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ thumbnail: { type: PropType<import("../../types").Thumbnail | null>; default: null; }; placeholderIcon: { type: PropType<import("@wikimedia/codex-icons").Icon>; default: string; }; }>> & Readonly<{}>, { thumbnail: import("../../types").Thumbnail | null; placeholderIcon: import("@wikimedia/codex-icons").Icon; }, {}, { CdxIcon: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ icon: { type: PropType<import("@wikimedia/codex-icons").Icon>; required: true; }; iconLabel: { type: StringConstructor; default: string; }; lang: { type: PropType<string | null>; default: null; }; dir: { type: PropType<import("../../types").HTMLDirection | null>; default: null; }; size: { type: PropType<import("../../types").IconSize>; default: string; validator: import("../../types").StringTypeValidator<"medium" | "small" | "x-small">; }; }>, { rootElement: Ref<HTMLSpanElement | undefined, HTMLSpanElement | undefined>; rootClasses: import("vue").ComputedRef<{ [x: string]: boolean; 'cdx-icon--flipped': boolean; }>; iconSvg: import("vue").ComputedRef<string>; iconPath: import("vue").ComputedRef<string>; }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ icon: { type: PropType<import("@wikimedia/codex-icons").Icon>; required: true; }; iconLabel: { type: StringConstructor; default: string; }; lang: { type: PropType<string | null>; default: null; }; dir: { type: PropType<import("../../types").HTMLDirection | null>; default: null; }; size: { type: PropType<import("../../types").IconSize>; default: string; validator: import("../../types").StringTypeValidator<"medium" | "small" | "x-small">; }; }>> & Readonly<{}>, { lang: string | null; iconLabel: string; dir: import("../../types").HTMLDirection | null; size: "medium" | "small" | "x-small"; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; }, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; CdxSearchResultTitle: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ title: { type: StringConstructor; required: true; }; searchQuery: { type: StringConstructor; default: string; }; }>, { titleChunks: import("vue").ComputedRef<[string, string, string]>; }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ title: { type: StringConstructor; required: true; }; searchQuery: { type: StringConstructor; default: string; }; }>> & Readonly<{}>, { searchQuery: string; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; }, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; CdxIcon: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ icon: { type: PropType<import("@wikimedia/codex-icons").Icon>; required: true; }; iconLabel: { type: StringConstructor; default: string; }; lang: { type: PropType<string | null>; default: null; }; dir: { type: PropType<import("../../types").HTMLDirection | null>; default: null; }; size: { type: PropType<import("../../types").IconSize>; default: string; validator: import("../../types").StringTypeValidator<"medium" | "small" | "x-small">; }; }>, { rootElement: Ref<HTMLSpanElement | undefined, HTMLSpanElement | undefined>; rootClasses: import("vue").ComputedRef<{ [x: string]: boolean; 'cdx-icon--flipped': boolean; }>; iconSvg: import("vue").ComputedRef<string>; iconPath: import("vue").ComputedRef<string>; }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ icon: { type: PropType<import("@wikimedia/codex-icons").Icon>; required: true; }; iconLabel: { type: StringConstructor; default: string; }; lang: { type: PropType<string | null>; default: null; }; dir: { type: PropType<import("../../types").HTMLDirection | null>; default: null; }; size: { type: PropType<import("../../types").IconSize>; default: string; validator: import("../../types").StringTypeValidator<"medium" | "small" | "x-small">; }; }>> & Readonly<{}>, { lang: string | null; iconLabel: string; dir: import("../../types").HTMLDirection | null; size: "medium" | "small" | "x-small"; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; CdxProgressBar: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ inline: { type: BooleanConstructor; default: boolean; }; disabled: { type: BooleanConstructor; default: boolean; }; }>, { rootClasses: import("vue").ComputedRef<{ 'cdx-progress-bar--block': boolean; 'cdx-progress-bar--inline': boolean; 'cdx-progress-bar--enabled': boolean; 'cdx-progress-bar--disabled': boolean; }>; computedAriaHidden: import("vue").ComputedRef<"true" | undefined>; }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ inline: { type: BooleanConstructor; default: boolean; }; disabled: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{}>, { disabled: boolean; inline: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; } & import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, Readonly<import("vue").ExtractPropTypes<{ menuItems: { type: PropType<(MenuItemData | MenuGroupData)[]>; required: true; }; footer: { type: PropType<MenuItemData>; default: null; }; selected: { type: PropType<import("../../types").MenuItemValue | import("../../types").MenuItemValue[] | null>; required: true; }; expanded: { type: BooleanConstructor; required: true; }; showPending: { type: BooleanConstructor; default: boolean; }; visibleItemLimit: { type: PropType<number | null>;