Back to Fluentui

React Positioning.Api

packages/react-components/react-positioning/library/etc/react-positioning.api.md

4.40.2-hotfix25.8 KB
Original Source

API Report File for "@fluentui/react-positioning"

Do not edit this file. It is a report generated by API Extractor.

ts

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)