packages/react-components/react-positioning/library/etc/react-positioning.api.md
Do not edit this file. It is a report generated by API Extractor.
import type { GriffelStyle } from '@griffel/react';
import type { JSXElement } from '@fluentui/react-utilities';
import * as React_2 from 'react';
import type { RefObjectFunction } from '@fluentui/react-utilities';
// @public (undocumented)
export type Alignment = 'top' | 'bottom' | 'start' | 'end' | 'center';
// @public (undocumented)
export type AutoSize = 'height' | 'height-always' | 'width' | 'width-always' | 'always' | boolean;
// @public @deprecated (undocumented)
export type Boundary = PositioningBoundary;
// @internal
export function createArrowHeightStyles(arrowHeight: number): GriffelStyle;
// @internal
export function createArrowStyles(options: CreateArrowStylesOptions): GriffelStyle;
// @internal
export type CreateArrowStylesOptions = {
arrowHeight: number | undefined;
borderWidth?: GriffelStyle['borderBottomWidth'];
borderStyle?: GriffelStyle['borderBottomStyle'];
borderColor?: GriffelStyle['borderBottomColor'];
};
// @public @deprecated
export function createSlideStyles(mainAxis: number): GriffelStyle;
// @public
export function createVirtualElementFromClick(nativeEvent: MouseEvent): PositioningVirtualElement;
// @internal
export function mergeArrowOffset(userOffset: Offset | undefined | null, arrowHeight: number): Offset;
// @public (undocumented)
export type Offset = OffsetFunction | OffsetObject | OffsetShorthand;
// @public (undocumented)
export type OffsetFunction = (param: OffsetFunctionParam) => OffsetObject | OffsetShorthand;
// @public (undocumented)
export type OffsetFunctionParam = {
positionedRect: PositioningRect;
targetRect: PositioningRect;
position: Position;
alignment?: Alignment;
};
// @public (undocumented)
export type OffsetObject = {
crossAxis?: number;
mainAxis: number;
};
// @public (undocumented)
export type OffsetShorthand = number;
// @public (undocumented)
export type Position = 'above' | 'below' | 'before' | 'after';
// @public
export const POSITIONING_SLIDE_DIRECTION_VAR_X = "--fui-positioning-slide-direction-x";
// @public (undocumented)
export const POSITIONING_SLIDE_DIRECTION_VAR_Y = "--fui-positioning-slide-direction-y";
// @public (undocumented)
export type PositioningBoundary = PositioningRect | HTMLElement | Array<HTMLElement> | 'clippingParents' | 'scrollParent' | 'window';
// @public (undocumented)
export type PositioningConfigurationFn = (params: {
container: HTMLElement;
arrow: HTMLElement | null;
options: PositioningConfigurationFnOptions;
}) => PositioningConfigurationFnOptions;
// @public (undocumented)
export type PositioningConfigurationFnOptions = Omit<PositioningOptions, 'enabled' | 'onPositioningEnd' | 'positionFixed'>;
// @public
export const PositioningConfigurationProvider: React_2.Provider<PositioningConfigurationFn | undefined>;
// @public (undocumented)
export type PositioningImperativeRef = {
updatePosition: () => void;
setTarget: (target: TargetElement | null) => void;
};
// @public
export interface PositioningProps extends Pick<PositioningOptions, 'align' | 'arrowPadding' | 'autoSize' | 'coverTarget' | 'fallbackPositions' | 'flipBoundary' | 'offset' | 'overflowBoundary' | 'overflowBoundaryPadding' | 'pinned' | 'position' | 'strategy' | 'useTransform' | 'matchTargetSize' | 'onPositioningEnd' | 'disableUpdateOnResize' | 'shiftToCoverTarget'> {
positioningRef?: React_2.Ref<PositioningImperativeRef>;
target?: TargetElement | null;
}
// @public (undocumented)
export type PositioningRect = {
width: number;
height: number;
x: number;
y: number;
};
// @public (undocumented)
export type PositioningShorthand = PositioningProps | PositioningShorthandValue;
// @public (undocumented)
export type PositioningShorthandValue = 'above' | 'above-start' | 'above-end' | 'below' | 'below-start' | 'below-end' | 'before' | 'before-top' | 'before-bottom' | 'after' | 'after-top' | 'after-bottom';
// @public (undocumented)
export type PositioningVirtualElement = {
getBoundingClientRect: () => {
x: number;
y: number;
top: number;
left: number;
bottom: number;
right: number;
width: number;
height: number;
};
contextElement?: Element;
};
// @public (undocumented)
export function resolvePositioningShorthand(shorthand: PositioningShorthand | undefined | null): Readonly<PositioningProps>;
// @public (undocumented)
export type SetVirtualMouseTarget = (event: React_2.MouseEvent | MouseEvent | undefined | null) => void;
// @internal (undocumented)
export function usePositioning(options: PositioningProps & PositioningOptions): UsePositioningReturn;
// @internal
export const usePositioningMouseTarget: (initialState?: PositioningVirtualElement | (() => PositioningVirtualElement)) => readonly [PositioningVirtualElement | undefined, SetVirtualMouseTarget];
// @public
export function usePositioningSlideDirection(options: UsePositioningSlideDirectionOptions): NonNullable<PositioningProps['onPositioningEnd']>;
// @public (undocumented)
export function useSafeZoneArea({ debug, disabled, onSafeZoneEnter, onSafeZoneMove, onSafeZoneLeave, onSafeZoneTimeout, timeout, }?: UseSafeZoneOptions): {
containerRef: RefObjectFunction<HTMLElement>;
targetRef: RefObjectFunction<HTMLElement>;
elementToRender: JSXElement | null;
};
// @public (undocumented)
export type UseSafeZoneOptions = {
debug?: boolean;
disabled?: boolean;
timeout?: number;
onSafeZoneEnter?: (e: React_2.MouseEvent) => void;
onSafeZoneMove?: (e: React_2.MouseEvent) => void;
onSafeZoneLeave?: (e: React_2.MouseEvent) => void;
onSafeZoneTimeout?: () => void;
};
// (No @packageDocumentation comment for this package)