@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
TypeScript
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