@gluestack-ui/core
Version:
Universal UI components for React Native, Expo, and Next.js
43 lines • 1.38 kB
TypeScript
import { Placement, PlacementAxis } from '@react-types/overlays';
interface Position {
top?: number;
left?: number;
bottom?: number;
right?: number;
}
interface Dimensions {
width: number;
height: number;
top: number;
left: number;
scroll: Position;
}
interface Offset {
top: number;
left: number;
width: number;
height: number;
}
interface PositionOpts {
placement: Placement;
targetNode: HTMLElement;
overlayNode: HTMLElement;
scrollNode: HTMLElement;
padding: number;
shouldFlip: boolean;
boundaryElement: HTMLElement;
offset: number;
crossOffset: number;
shouldOverlapWithTrigger: boolean;
}
export interface PositionResult {
position?: Position;
arrowOffsetLeft?: number;
arrowOffsetTop?: number;
maxHeight?: number;
placement: PlacementAxis;
}
export declare function calculatePositionInternal(placementInput: Placement, childOffset: Offset, overlaySize: Offset, scrollSize: Offset, margins: Position, padding: number, flip: boolean, boundaryDimensions: Dimensions, containerOffsetWithBoundary: Offset, offset: number, crossOffset: number, isContainerPositioned: boolean, shouldOverlapWithTrigger: boolean): PositionResult;
export declare function calculatePosition(opts: PositionOpts): PositionResult;
export {};
//# sourceMappingURL=calculatePosition.d.ts.map