175 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			175 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /// <reference types="react" />
 | |
| 
 | |
| import { Dimensions } from '@floating-ui/react-dom';
 | |
| import { FocusableElement } from 'tabbable';
 | |
| import * as React from 'react';
 | |
| import type { UseFloatingReturn } from '@floating-ui/react-dom';
 | |
| import useModernLayoutEffect from 'use-isomorphic-layout-effect';
 | |
| import type { VirtualElement } from '@floating-ui/react-dom';
 | |
| 
 | |
| export declare function activeElement(doc: Document): Element | null;
 | |
| 
 | |
| declare type AnyFunction = (...args: any[]) => any;
 | |
| 
 | |
| export declare function contains(parent?: Element | null, child?: Element | null): boolean;
 | |
| 
 | |
| declare interface ContextData {
 | |
|     openEvent?: Event;
 | |
|     floatingContext?: FloatingContext;
 | |
|     /** @deprecated use `onTypingChange` prop in `useTypeahead` */
 | |
|     typing?: boolean;
 | |
|     [key: string]: any;
 | |
| }
 | |
| 
 | |
| /** For each cell index, gets the item index that occupies that cell */
 | |
| export declare function createGridCellMap(sizes: Dimensions[], cols: number, dense: boolean): (number | undefined)[];
 | |
| 
 | |
| declare type DisabledIndices = Array<number> | ((index: number) => boolean);
 | |
| 
 | |
| export declare function disableFocusInside(container: HTMLElement): void;
 | |
| 
 | |
| export declare function enableFocusInside(container: HTMLElement): void;
 | |
| 
 | |
| declare interface ExtendedElements<RT> {
 | |
|     reference: ReferenceType | null;
 | |
|     floating: HTMLElement | null;
 | |
|     domReference: NarrowedElement<RT> | null;
 | |
| }
 | |
| 
 | |
| declare interface ExtendedRefs<RT> {
 | |
|     reference: React.MutableRefObject<ReferenceType | null>;
 | |
|     floating: React.MutableRefObject<HTMLElement | null>;
 | |
|     domReference: React.MutableRefObject<NarrowedElement<RT> | null>;
 | |
|     setReference(node: RT | null): void;
 | |
|     setFloating(node: HTMLElement | null): void;
 | |
|     setPositionReference(node: ReferenceType | null): void;
 | |
| }
 | |
| 
 | |
| export declare function findNonDisabledListIndex(listRef: React.MutableRefObject<Array<HTMLElement | null>>, { startingIndex, decrement, disabledIndices, amount, }?: {
 | |
|     startingIndex?: number;
 | |
|     decrement?: boolean;
 | |
|     disabledIndices?: DisabledIndices;
 | |
|     amount?: number;
 | |
| }): number;
 | |
| 
 | |
| declare type FloatingContext<RT extends ReferenceType = ReferenceType> = Omit<UseFloatingReturn<RT>, 'refs' | 'elements'> & {
 | |
|     open: boolean;
 | |
|     onOpenChange(open: boolean, event?: Event, reason?: OpenChangeReason): void;
 | |
|     events: FloatingEvents;
 | |
|     dataRef: React.MutableRefObject<ContextData>;
 | |
|     nodeId: string | undefined;
 | |
|     floatingId: string | undefined;
 | |
|     refs: ExtendedRefs<RT>;
 | |
|     elements: ExtendedElements<RT>;
 | |
| };
 | |
| 
 | |
| declare interface FloatingEvents {
 | |
|     emit<T extends string>(event: T, data?: any): void;
 | |
|     on(event: string, handler: (data: any) => void): void;
 | |
|     off(event: string, handler: (data: any) => void): void;
 | |
| }
 | |
| 
 | |
| declare interface FloatingNodeType<RT extends ReferenceType = ReferenceType> {
 | |
|     id: string | undefined;
 | |
|     parentId: string | null;
 | |
|     context?: FloatingContext<RT>;
 | |
| }
 | |
| 
 | |
| export declare function getDeepestNode<RT extends ReferenceType = ReferenceType>(nodes: Array<FloatingNodeType<RT>>, id: string | undefined): FloatingNodeType<RT> | undefined;
 | |
| 
 | |
| export declare function getDocument(node: Element | null): Document;
 | |
| 
 | |
| export declare function getFloatingFocusElement(floatingElement: HTMLElement | null | undefined): HTMLElement | null;
 | |
| 
 | |
| /** Gets cell index of an item's corner or -1 when index is -1. */
 | |
| export declare function getGridCellIndexOfCorner(index: number, sizes: Dimensions[], cellMap: (number | undefined)[], cols: number, corner: 'tl' | 'tr' | 'bl' | 'br'): number;
 | |
| 
 | |
| /** Gets all cell indices that correspond to the specified indices */
 | |
| export declare function getGridCellIndices(indices: (number | undefined)[], cellMap: (number | undefined)[]): number[];
 | |
| 
 | |
| export declare function getGridNavigatedIndex(listRef: React.MutableRefObject<Array<HTMLElement | null>>, { event, orientation, loop, rtl, cols, disabledIndices, minIndex, maxIndex, prevIndex, stopEvent: stop, }: {
 | |
|     event: React.KeyboardEvent;
 | |
|     orientation: 'horizontal' | 'vertical' | 'both';
 | |
|     loop: boolean;
 | |
|     rtl: boolean;
 | |
|     cols: number;
 | |
|     disabledIndices: DisabledIndices | undefined;
 | |
|     minIndex: number;
 | |
|     maxIndex: number;
 | |
|     prevIndex: number;
 | |
|     stopEvent?: boolean;
 | |
| }): number;
 | |
| 
 | |
| export declare function getMaxListIndex(listRef: React.MutableRefObject<Array<HTMLElement | null>>, disabledIndices: DisabledIndices | undefined): number;
 | |
| 
 | |
| export declare function getMinListIndex(listRef: React.MutableRefObject<Array<HTMLElement | null>>, disabledIndices: DisabledIndices | undefined): number;
 | |
| 
 | |
| export declare function getNextTabbable(referenceElement: Element | null): FocusableElement | null;
 | |
| 
 | |
| export declare function getNodeAncestors<RT extends ReferenceType = ReferenceType>(nodes: Array<FloatingNodeType<RT>>, id: string | undefined): FloatingNodeType<RT>[];
 | |
| 
 | |
| export declare function getNodeChildren<RT extends ReferenceType = ReferenceType>(nodes: Array<FloatingNodeType<RT>>, id: string | undefined, onlyOpenChildren?: boolean): Array<FloatingNodeType<RT>>;
 | |
| 
 | |
| export declare function getPlatform(): string;
 | |
| 
 | |
| export declare function getPreviousTabbable(referenceElement: Element | null): FocusableElement | null;
 | |
| 
 | |
| export declare const getTabbableOptions: () => {
 | |
|     readonly getShadowRoot: true;
 | |
|     readonly displayCheck: "none" | "full";
 | |
| };
 | |
| 
 | |
| export declare function getTarget(event: Event): EventTarget | null;
 | |
| 
 | |
| export declare function getUserAgent(): string;
 | |
| 
 | |
| export declare function isAndroid(): boolean;
 | |
| 
 | |
| export declare function isDifferentGridRow(index: number, cols: number, prevRow: number): boolean;
 | |
| 
 | |
| export declare function isEventTargetWithin(event: Event, node: Node | null | undefined): boolean;
 | |
| 
 | |
| export declare function isIndexOutOfListBounds(listRef: React.MutableRefObject<Array<HTMLElement | null>>, index: number): boolean;
 | |
| 
 | |
| export declare function isJSDOM(): boolean;
 | |
| 
 | |
| export declare function isListIndexDisabled(listRef: React.MutableRefObject<Array<HTMLElement | null>>, index: number, disabledIndices?: DisabledIndices): boolean;
 | |
| 
 | |
| export declare function isMac(): boolean;
 | |
| 
 | |
| export declare function isMouseLikePointerType(pointerType: string | undefined, strict?: boolean): boolean;
 | |
| 
 | |
| export declare function isOutsideEvent(event: FocusEvent | React.FocusEvent, container?: Element): boolean;
 | |
| 
 | |
| export declare function isReactEvent(event: any): event is React.SyntheticEvent;
 | |
| 
 | |
| export declare function isRootElement(element: Element): boolean;
 | |
| 
 | |
| export declare function isSafari(): boolean;
 | |
| 
 | |
| export declare function isTypeableCombobox(element: Element | null): boolean;
 | |
| 
 | |
| export declare function isTypeableElement(element: unknown): boolean;
 | |
| 
 | |
| export declare function isVirtualClick(event: MouseEvent | PointerEvent): boolean;
 | |
| 
 | |
| export declare function isVirtualPointerEvent(event: PointerEvent): boolean;
 | |
| 
 | |
| export declare function matchesFocusVisible(element: Element | null): boolean;
 | |
| 
 | |
| declare type NarrowedElement<T> = T extends Element ? T : Element;
 | |
| 
 | |
| declare type OpenChangeReason = 'outside-press' | 'escape-key' | 'ancestor-scroll' | 'reference-press' | 'click' | 'hover' | 'focus' | 'focus-out' | 'list-navigation' | 'safe-polygon';
 | |
| 
 | |
| declare type ReferenceType = Element | VirtualElement;
 | |
| 
 | |
| export declare function stopEvent(event: Event | React.SyntheticEvent): void;
 | |
| 
 | |
| export declare function useEffectEvent<T extends AnyFunction>(callback?: T): T;
 | |
| 
 | |
| export declare function useLatestRef<T>(value: T): React.MutableRefObject<T>;
 | |
| 
 | |
| export { useModernLayoutEffect }
 | |
| 
 | |
| export { }
 | 
