UNPKG

@yamada-ui/react

Version:

React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion

305 lines (304 loc) • 20.1 kB
import { SimpleDirection } from "../../core/system/index.types.js"; import { HTMLProps, PropGetter } from "../../core/components/index.types.js"; import "../../core/index.js"; import { Descendant, DescendantProps } from "../use-descendants/index.js"; import { UseDisclosureProps } from "../use-disclosure/use-disclosure.js"; import { UsePopoverProps } from "../../components/popover/use-popover.js"; import * as react_jsx_runtime0 from "react/jsx-runtime"; import * as react5 from "react"; import { JSXElementConstructor, ReactNode, RefObject } from "react"; //#region src/hooks/use-combobox/index.d.ts interface ComboboxSharedItem extends Omit<HTMLProps, "children" | "value"> { label: ReactNode; } interface ComboboxItemWithValue extends ComboboxSharedItem { query?: string; value?: string; } interface ComboboxItemWithItems extends ComboboxSharedItem { items: ComboboxItemWithValue[]; } type ComboboxItem = ComboboxItemWithItems | ComboboxItemWithValue; interface CreateComboboxItemOptions { Group: JSXElementConstructor<any>; Label: JSXElementConstructor<any>; Option: JSXElementConstructor<any>; } declare const createComboboxItem: (children: ReactNode, { Group, Label, Option }: CreateComboboxItemOptions) => any[]; interface CreateComboboxChildrenOptions { Group: JSXElementConstructor<any>; Option: JSXElementConstructor<any>; Empty?: JSXElementConstructor<any>; } declare const createComboboxChildren: (items: ComboboxItem[], { Empty, Group, Option }: CreateComboboxChildrenOptions) => react_jsx_runtime0.JSX.Element[]; interface ComboboxDescendantProps { id: string; closeOnSelect?: boolean; value?: string; } type ComboboxDescendant = Descendant<HTMLDivElement, ComboboxDescendantProps>; declare const ComboboxDescendantsContext: react5.Context<{ active: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined, options?: FocusOptions) => void; count: () => number; destroy: () => void; enabledCount: () => number; enabledFirstValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledIndexOf: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined) => number; enabledLastValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledNextValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledPrevValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledValue: (index: number) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledValues: () => Descendant<HTMLDivElement, ComboboxDescendantProps>[]; firstValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; indexOf: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined) => number; lastValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; nextValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; prevValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; register: (props?: DescendantProps<HTMLDivElement, ComboboxDescendantProps> | undefined) => react5.RefCallback<HTMLDivElement>; unregister: (node?: HTMLDivElement | null | undefined) => void; value: (indexOrNode: number | HTMLDivElement | null) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; values: () => Descendant<HTMLDivElement, ComboboxDescendantProps>[]; }>, useComboboxDescendant: (props?: DescendantProps<HTMLDivElement, ComboboxDescendantProps> | undefined) => { descendants: { active: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined, options?: FocusOptions) => void; count: () => number; destroy: () => void; enabledCount: () => number; enabledFirstValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledIndexOf: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined) => number; enabledLastValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledNextValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledPrevValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledValue: (index: number) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledValues: () => Descendant<HTMLDivElement, ComboboxDescendantProps>[]; firstValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; indexOf: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined) => number; lastValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; nextValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; prevValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; register: (props?: DescendantProps<HTMLDivElement, ComboboxDescendantProps> | undefined) => react5.RefCallback<HTMLDivElement>; unregister: (node?: HTMLDivElement | null | undefined) => void; value: (indexOrNode: number | HTMLDivElement | null) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; values: () => Descendant<HTMLDivElement, ComboboxDescendantProps>[]; }; register: react5.RefCallback<HTMLDivElement>; }, useComboboxDescendantRegister: (descendants?: { active: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined, options?: FocusOptions) => void; count: () => number; destroy: () => void; enabledCount: () => number; enabledFirstValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledIndexOf: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined) => number; enabledLastValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledNextValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledPrevValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledValue: (index: number) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledValues: () => Descendant<HTMLDivElement, ComboboxDescendantProps>[]; firstValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; indexOf: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined) => number; lastValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; nextValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; prevValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; register: (props?: DescendantProps<HTMLDivElement, ComboboxDescendantProps> | undefined) => react5.RefCallback<HTMLDivElement>; unregister: (node?: HTMLDivElement | null | undefined) => void; value: (indexOrNode: number | HTMLDivElement | null) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; values: () => Descendant<HTMLDivElement, ComboboxDescendantProps>[]; } | undefined) => (props?: DescendantProps<HTMLDivElement, ComboboxDescendantProps>) => react5.RefCallback<HTMLDivElement>, useComboboxDescendants: () => { active: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined, options?: FocusOptions) => void; count: () => number; destroy: () => void; enabledCount: () => number; enabledFirstValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledIndexOf: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined) => number; enabledLastValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledNextValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledPrevValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledValue: (index: number) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledValues: () => Descendant<HTMLDivElement, ComboboxDescendantProps>[]; firstValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; indexOf: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined) => number; lastValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; nextValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; prevValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; register: (props?: DescendantProps<HTMLDivElement, ComboboxDescendantProps> | undefined) => react5.RefCallback<HTMLDivElement>; unregister: (node?: HTMLDivElement | null | undefined) => void; value: (indexOrNode: number | HTMLDivElement | null) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; values: () => Descendant<HTMLDivElement, ComboboxDescendantProps>[]; }; interface ComboboxContext extends Pick<UseComboboxReturn, "onActiveDescendant" | "onClose" | "onSelect"> {} declare const ComboboxContext: react5.Context<ComboboxContext>, useComboboxContext: () => ComboboxContext; interface ComboboxGroupContext extends Pick<UseComboboxGroupReturn, "getLabelProps"> {} declare const ComboboxGroupContext: react5.Context<ComboboxGroupContext>, useComboboxGroupContext: () => ComboboxGroupContext; interface UseComboboxProps extends Omit<HTMLProps, "onChange">, Omit<UseDisclosureProps, "timing">, Omit<UsePopoverProps, "autoFocus" | "initialFocusRef" | "modal" | "transform" | "updateRef"> { /** * If `true`, the list element will be closed when value is selected. * * @default true */ closeOnSelect?: boolean; /** * If `true`, the combobox will be disabled. * * @default false */ disabled?: boolean; /** * The value to focus on when the combobox is opened. */ initialFocusValue?: string; /** * If `true`, the combobox will be opened when click on the field. * * @default true */ openOnClick?: boolean; /** * If `true`, the combobox will be opened when enter is pressed. * * @default true */ openOnEnter?: boolean; /** * If `true`, the combobox will be opened when space is pressed. * * @default true */ openOnSpace?: boolean; /** * If `true`, the combobox will be readonly. * * @default false */ readOnly?: boolean; /** * The `ref` of the element that should receive focus when selected. */ selectFocusRef?: RefObject<HTMLElement | null>; /** * If `true`, the item will be selected when space is pressed. * * @default true */ selectOnSpace?: boolean; /** * The callback invoked when value is selected. */ onChange?: (value: string) => void; } declare const useCombobox: (props?: UseComboboxProps) => { activeDescendant: RefObject<ComboboxDescendant | null>; descendants: { active: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined, options?: FocusOptions) => void; count: () => number; destroy: () => void; enabledCount: () => number; enabledFirstValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledIndexOf: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined) => number; enabledLastValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledNextValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledPrevValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledValue: (index: number) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledValues: () => Descendant<HTMLDivElement, ComboboxDescendantProps>[]; firstValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; indexOf: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined) => number; lastValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; nextValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; prevValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; register: (props?: DescendantProps<HTMLDivElement, ComboboxDescendantProps> | undefined) => react5.RefCallback<HTMLDivElement>; unregister: (node?: HTMLDivElement | null | undefined) => void; value: (indexOrNode: number | HTMLDivElement | null) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; values: () => Descendant<HTMLDivElement, ComboboxDescendantProps>[]; }; interactive: boolean; open: boolean; getContentProps: PropGetter<"div", undefined, undefined>; getSeparatorProps: PropGetter<"div", undefined, undefined>; getTriggerProps: PropGetter<"div", undefined, undefined>; popoverProps: UsePopoverProps; onActiveDescendant: (descendant?: ComboboxDescendant) => void; onClose: () => void | Promise<void>; onOpen: () => void | Promise<void>; onOpenWithActiveDescendant: (getFallbackDescendant: () => ComboboxDescendant | undefined, block?: SimpleDirection) => void; onScrollIntoView: (descendant?: ComboboxDescendant, block?: SimpleDirection) => void; onSelect: (value?: string, closeOnSelect?: boolean) => void; }; type UseComboboxReturn = ReturnType<typeof useCombobox>; interface UseComboboxGroupProps extends HTMLProps {} declare const useComboboxGroup: ({ "aria-labelledby": ariaLabelledbyProp, ...rest }?: UseComboboxGroupProps) => { getGroupProps: PropGetter<"div", undefined, undefined>; getLabelProps: PropGetter<"span", undefined, undefined>; }; type UseComboboxGroupReturn = ReturnType<typeof useComboboxGroup>; interface UseComboboxItemProps extends HTMLProps { /** * If `true`, the item will be closed when selected. */ closeOnSelect?: boolean; /** * If `true`, the item will be disabled. * * @default false */ disabled?: boolean; /** * If `true`, the item will be selected. */ selected?: boolean; /** * The value of the item. */ value?: string; } declare const useComboboxItem: ({ id, "aria-disabled": ariaDisabled, "data-disabled": dataDisabled, closeOnSelect, disabled, selected, value, ...rest }?: UseComboboxItemProps) => { descendants: { active: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined, options?: FocusOptions) => void; count: () => number; destroy: () => void; enabledCount: () => number; enabledFirstValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledIndexOf: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined) => number; enabledLastValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledNextValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledPrevValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledValue: (index: number) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; enabledValues: () => Descendant<HTMLDivElement, ComboboxDescendantProps>[]; firstValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; indexOf: (target?: HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null | undefined) => number; lastValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; nextValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; prevValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; register: (props?: DescendantProps<HTMLDivElement, ComboboxDescendantProps> | undefined) => react5.RefCallback<HTMLDivElement>; unregister: (node?: HTMLDivElement | null | undefined) => void; value: (indexOrNode: number | HTMLDivElement | null) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined; values: () => Descendant<HTMLDivElement, ComboboxDescendantProps>[]; }; disabled: boolean; selected: boolean; getIndicatorProps: PropGetter<"div", undefined, undefined>; getItemProps: PropGetter<"div", undefined, undefined>; onActiveDescendant: (descendant?: ComboboxDescendant) => void; onClose: () => void | Promise<void>; }; //#endregion export { ComboboxContext, ComboboxDescendant, ComboboxDescendantProps, ComboboxDescendantsContext, ComboboxGroupContext, ComboboxItem, ComboboxItemWithItems, ComboboxItemWithValue, CreateComboboxChildrenOptions, CreateComboboxItemOptions, UseComboboxGroupProps, UseComboboxGroupReturn, UseComboboxItemProps, UseComboboxProps, UseComboboxReturn, createComboboxChildren, createComboboxItem, useCombobox, useComboboxContext, useComboboxDescendant, useComboboxDescendantRegister, useComboboxDescendants, useComboboxGroup, useComboboxGroupContext, useComboboxItem }; //# sourceMappingURL=index.d.ts.map