UNPKG

@bianic-ui/descendant

Version:

Register child nodes of a react element for better accessibility

21 lines (20 loc) 811 B
export declare type Descendant<T extends HTMLElement, P = {}> = P & { element: T | null; index?: number; disabled?: boolean; focusable?: boolean; }; export interface DescendantContext<T extends HTMLElement, P = {}> { descendants: Descendant<T, P>[]; register: (descendant: Descendant<T, P>) => void; unregister: (element: T) => void; } export declare type UseDescendantProps<T extends HTMLElement, P> = { context: DescendantContext<T, P>; } & Descendant<T, P>; export declare function useDescendant<T extends HTMLElement, P>(props: UseDescendantProps<T, P>): number; export declare function useDescendants<T extends HTMLElement, P>(): { descendants: Descendant<T, P>[]; register: ({ element, ...rest }: Descendant<T, P>) => void; unregister: (element: T) => void; };