reablocks
Version:
Component library for React
35 lines (33 loc) • 1.5 kB
TypeScript
import { Placement as FloatingUIPlacement, Middleware } from '@floating-ui/react';
import { RefObject } from 'react';
export type Placement = FloatingUIPlacement;
export type Modifiers = Middleware[];
export type ReferenceProp = ReferenceObject | HTMLElement | RefObject<HTMLElement>;
export interface ReferenceObject {
top: number;
left: number;
height: number;
width: number;
}
export interface PositionOptions {
reference?: Element | ReferenceObject;
floating?: HTMLElement;
placement?: Placement;
modifiers?: Modifiers;
followCursor?: boolean;
}
/**
* Hook for positioning an element relative to another.
*/
export declare const usePosition: ({ reference, floating, followCursor, placement, modifiers }?: PositionOptions) => {
refs: {
reference: import('react').MutableRefObject<import("@floating-ui/react-dom").ReferenceType>;
floating: import('react').MutableRefObject<HTMLElement>;
setReference: (node: import('@floating-ui/react-dom').ReferenceType) => void;
setFloating: (node: HTMLElement) => void;
} & import('@floating-ui/react').ExtendedRefs<import("@floating-ui/react").ReferenceType>;
anchorRef: import('react').MutableRefObject<import("@floating-ui/react-dom").ReferenceType> & import('react').MutableRefObject<import("@floating-ui/react").ReferenceType>;
floatingRef: import('react').MutableRefObject<HTMLElement>;
floatingStyles: import('react').CSSProperties;
update: () => void;
};