@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
46 lines (45 loc) • 1.97 kB
TypeScript
import { BoxProps, ElementProps, Factory, StylesApiProps } from '../../core';
export type FloatingIndicatorStylesNames = 'root';
export type FloatingIndicatorCssVariables = {
root: '--transition-duration';
};
export interface FloatingIndicatorProps extends BoxProps, StylesApiProps<FloatingIndicatorFactory>, ElementProps<'div'> {
/** Target element over which the indicator is displayed.
* The indicator will be positioned to match the target's size and position.
* */
target: HTMLElement | null | undefined;
/** Parent container element that must have `position: relative`.
* The indicator's position is calculated relative to this element.
* */
parent: HTMLElement | null | undefined;
/** Transition duration in ms @default 150 */
transitionDuration?: number | string;
/** Controls whether the indicator should be hidden initially and displayed after the parent's transition ends.
* Set to `true` when the parent container has CSS transitions (e.g., `transform: scale()`) to prevent
* the indicator from appearing at the wrong position during the parent's animation.
* @default false
* */
displayAfterTransitionEnd?: boolean;
/** Called when the indicator starts transitioning to a new position */
onTransitionStart?: () => void;
/** Called when the indicator finishes transitioning to a new position */
onTransitionEnd?: () => void;
}
export type FloatingIndicatorFactory = Factory<{
props: FloatingIndicatorProps;
ref: HTMLDivElement;
stylesNames: FloatingIndicatorStylesNames;
vars: FloatingIndicatorCssVariables;
ctx: {
shouldReduceMotion: boolean;
};
}>;
export declare const FloatingIndicator: import("../..").MantineComponent<{
props: FloatingIndicatorProps;
ref: HTMLDivElement;
stylesNames: FloatingIndicatorStylesNames;
vars: FloatingIndicatorCssVariables;
ctx: {
shouldReduceMotion: boolean;
};
}>;