@yamada-ui/react
Version:
React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion
138 lines (137 loc) • 8.29 kB
TypeScript
import * as react3 from "react";
import { RefCallback } from "react";
//#region src/hooks/use-descendants/index.d.ts
type DescendantProps<Y extends HTMLElement = HTMLElement, M = {}> = M & {
disabled?: ((node: Y) => boolean) | boolean;
};
type Descendant<Y extends HTMLElement = HTMLElement, M = {}> = DescendantProps<Y, M> & {
index: number;
node: Y;
recurred?: boolean;
};
declare const descendantManager: <Y extends HTMLElement = HTMLElement, M = {}>() => {
active: (target?: Descendant<Y, M> | null | Y, options?: FocusOptions) => void;
count: () => number;
destroy: () => void;
enabledCount: () => number;
enabledFirstValue: () => Descendant<Y, M> | undefined;
enabledIndexOf: (target?: Descendant<Y, M> | null | Y) => number;
enabledLastValue: () => Descendant<Y, M> | undefined;
enabledNextValue: (indexOrNode: Descendant<Y, M> | null | number | Y, loop?: boolean) => Descendant<Y, M> | undefined;
enabledPrevValue: (indexOrNode: Descendant<Y, M> | null | number | Y, loop?: boolean) => Descendant<Y, M> | undefined;
enabledValue: (index: number) => Descendant<Y, M> | undefined;
enabledValues: () => Descendant<Y, M>[];
firstValue: () => Descendant<Y, M> | undefined;
indexOf: (target?: Descendant<Y, M> | null | Y) => number;
lastValue: () => Descendant<Y, M> | undefined;
nextValue: (indexOrNode: Descendant<Y, M> | null | number | Y, loop?: boolean) => Descendant<Y, M> | undefined;
prevValue: (indexOrNode: Descendant<Y, M> | null | number | Y, loop?: boolean) => Descendant<Y, M> | undefined;
register: (props?: DescendantProps<Y, M>) => RefCallback<Y>;
unregister: (node?: null | Y) => void;
value: (indexOrNode: null | number | Y) => Descendant<Y, M> | undefined;
values: () => Descendant<Y, M>[];
};
type Descendants<Y extends HTMLElement, M = {}> = ReturnType<typeof descendantManager<Y, M>>;
type CreateDescendantRegister<Y extends HTMLElement, M = {}> = (props?: DescendantProps<Y, M>) => RefCallback<Y>;
/**
* `useDescendants` is a custom hook that manages descendants.
*
* @see https://yamada-ui.com/docs/hooks/use-descendants
*/
declare const createDescendants: <Y extends HTMLElement = HTMLElement, M = {}>() => {
DescendantsContext: react3.Context<{
active: (target?: Y | Descendant<Y, M> | null | undefined, options?: FocusOptions) => void;
count: () => number;
destroy: () => void;
enabledCount: () => number;
enabledFirstValue: () => Descendant<Y, M> | undefined;
enabledIndexOf: (target?: Y | Descendant<Y, M> | null | undefined) => number;
enabledLastValue: () => Descendant<Y, M> | undefined;
enabledNextValue: (indexOrNode: number | Y | Descendant<Y, M> | null, loop?: boolean) => Descendant<Y, M> | undefined;
enabledPrevValue: (indexOrNode: number | Y | Descendant<Y, M> | null, loop?: boolean) => Descendant<Y, M> | undefined;
enabledValue: (index: number) => Descendant<Y, M> | undefined;
enabledValues: () => Descendant<Y, M>[];
firstValue: () => Descendant<Y, M> | undefined;
indexOf: (target?: Y | Descendant<Y, M> | null | undefined) => number;
lastValue: () => Descendant<Y, M> | undefined;
nextValue: (indexOrNode: number | Y | Descendant<Y, M> | null, loop?: boolean) => Descendant<Y, M> | undefined;
prevValue: (indexOrNode: number | Y | Descendant<Y, M> | null, loop?: boolean) => Descendant<Y, M> | undefined;
register: (props?: DescendantProps<Y, M> | undefined) => RefCallback<Y>;
unregister: (node?: Y | null | undefined) => void;
value: (indexOrNode: number | Y | null) => Descendant<Y, M> | undefined;
values: () => Descendant<Y, M>[];
}>;
useDescendant: (props?: DescendantProps<Y, M>) => {
descendants: {
active: (target?: Y | Descendant<Y, M> | null | undefined, options?: FocusOptions) => void;
count: () => number;
destroy: () => void;
enabledCount: () => number;
enabledFirstValue: () => Descendant<Y, M> | undefined;
enabledIndexOf: (target?: Y | Descendant<Y, M> | null | undefined) => number;
enabledLastValue: () => Descendant<Y, M> | undefined;
enabledNextValue: (indexOrNode: number | Y | Descendant<Y, M> | null, loop?: boolean) => Descendant<Y, M> | undefined;
enabledPrevValue: (indexOrNode: number | Y | Descendant<Y, M> | null, loop?: boolean) => Descendant<Y, M> | undefined;
enabledValue: (index: number) => Descendant<Y, M> | undefined;
enabledValues: () => Descendant<Y, M>[];
firstValue: () => Descendant<Y, M> | undefined;
indexOf: (target?: Y | Descendant<Y, M> | null | undefined) => number;
lastValue: () => Descendant<Y, M> | undefined;
nextValue: (indexOrNode: number | Y | Descendant<Y, M> | null, loop?: boolean) => Descendant<Y, M> | undefined;
prevValue: (indexOrNode: number | Y | Descendant<Y, M> | null, loop?: boolean) => Descendant<Y, M> | undefined;
register: (props?: DescendantProps<Y, M> | undefined) => RefCallback<Y>;
unregister: (node?: Y | null | undefined) => void;
value: (indexOrNode: number | Y | null) => Descendant<Y, M> | undefined;
values: () => Descendant<Y, M>[];
};
register: RefCallback<Y>;
};
useDescendantRegister: (descendants?: Descendants<Y, M>) => (props?: DescendantProps<Y, M>) => RefCallback<Y>;
useDescendants: () => {
active: (target?: Y | Descendant<Y, M> | null | undefined, options?: FocusOptions) => void;
count: () => number;
destroy: () => void;
enabledCount: () => number;
enabledFirstValue: () => Descendant<Y, M> | undefined;
enabledIndexOf: (target?: Y | Descendant<Y, M> | null | undefined) => number;
enabledLastValue: () => Descendant<Y, M> | undefined;
enabledNextValue: (indexOrNode: number | Y | Descendant<Y, M> | null, loop?: boolean) => Descendant<Y, M> | undefined;
enabledPrevValue: (indexOrNode: number | Y | Descendant<Y, M> | null, loop?: boolean) => Descendant<Y, M> | undefined;
enabledValue: (index: number) => Descendant<Y, M> | undefined;
enabledValues: () => Descendant<Y, M>[];
firstValue: () => Descendant<Y, M> | undefined;
indexOf: (target?: Y | Descendant<Y, M> | null | undefined) => number;
lastValue: () => Descendant<Y, M> | undefined;
nextValue: (indexOrNode: number | Y | Descendant<Y, M> | null, loop?: boolean) => Descendant<Y, M> | undefined;
prevValue: (indexOrNode: number | Y | Descendant<Y, M> | null, loop?: boolean) => Descendant<Y, M> | undefined;
register: (props?: DescendantProps<Y, M> | undefined) => RefCallback<Y>;
unregister: (node?: Y | null | undefined) => void;
value: (indexOrNode: number | Y | null) => Descendant<Y, M> | undefined;
values: () => Descendant<Y, M>[];
};
useDescendantsContext: () => {
active: (target?: Y | Descendant<Y, M> | null | undefined, options?: FocusOptions) => void;
count: () => number;
destroy: () => void;
enabledCount: () => number;
enabledFirstValue: () => Descendant<Y, M> | undefined;
enabledIndexOf: (target?: Y | Descendant<Y, M> | null | undefined) => number;
enabledLastValue: () => Descendant<Y, M> | undefined;
enabledNextValue: (indexOrNode: number | Y | Descendant<Y, M> | null, loop?: boolean) => Descendant<Y, M> | undefined;
enabledPrevValue: (indexOrNode: number | Y | Descendant<Y, M> | null, loop?: boolean) => Descendant<Y, M> | undefined;
enabledValue: (index: number) => Descendant<Y, M> | undefined;
enabledValues: () => Descendant<Y, M>[];
firstValue: () => Descendant<Y, M> | undefined;
indexOf: (target?: Y | Descendant<Y, M> | null | undefined) => number;
lastValue: () => Descendant<Y, M> | undefined;
nextValue: (indexOrNode: number | Y | Descendant<Y, M> | null, loop?: boolean) => Descendant<Y, M> | undefined;
prevValue: (indexOrNode: number | Y | Descendant<Y, M> | null, loop?: boolean) => Descendant<Y, M> | undefined;
register: (props?: DescendantProps<Y, M> | undefined) => RefCallback<Y>;
unregister: (node?: Y | null | undefined) => void;
value: (indexOrNode: number | Y | null) => Descendant<Y, M> | undefined;
values: () => Descendant<Y, M>[];
};
};
//#endregion
export { CreateDescendantRegister, Descendant, DescendantProps, Descendants, createDescendants };
//# sourceMappingURL=index.d.ts.map