@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
131 lines (130 loc) • 3.29 kB
text/typescript
import { HotkeyProps } from "../Hotkey/type.mjs";
import "../Hotkey/index.mjs";
import { Placement } from "../utils/placement.mjs";
import { CSSProperties, ReactElement, ReactNode, Ref } from "react";
//#region src/Tooltip/type.d.ts
type TooltipPlacement = Placement;
interface TooltipProps {
/**
* Whether the tooltip has an arrow pointer.
*/
arrow?: boolean;
/**
* Trigger element. Prefer a single React element.
*/
children: ReactElement | ReactNode;
/**
* Custom className for the tooltip floating root.
*/
className?: string;
/**
* Compatible with Ant Design `classNames` shape (subset).
*/
classNames?: {
arrow?: string;
container?: string;
content?: string;
root?: string;
};
/**
* Delay (in milliseconds) before closing the tooltip.
* Takes precedence over `mouseLeaveDelay`.
*/
closeDelay?: number;
/**
* Uncontrolled initial open state.
*/
defaultOpen?: boolean;
/**
* Disable tooltip behavior.
*/
disabled?: boolean;
/**
* An Ant Design compatible escape hatch for portal container.
*/
getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
hotkey?: string;
hotkeyProps?: Omit<HotkeyProps, 'keys'>;
/**
* Delay (in seconds) before showing the tooltip on hover.
* Kept compatible with Ant Design `Tooltip`.
*/
mouseEnterDelay?: number;
/**
* Delay (in seconds) before hiding the tooltip on hover out.
* Kept compatible with Ant Design `Tooltip`.
*/
mouseLeaveDelay?: number;
/**
* Callback when open state changes.
*/
onOpenChange?: (open: boolean) => void;
/**
* Controlled open state.
*/
open?: boolean;
/**
* Delay (in milliseconds) before opening the tooltip.
* Takes precedence over `mouseEnterDelay`.
*/
openDelay?: number;
/**
* Tooltip placement. Supports Floating UI placements and Ant Design legacy placements.
*/
placement?: TooltipPlacement;
/**
* Render tooltip in a portal attached to body.
*/
portalled?: boolean;
ref?: Ref<HTMLElement>;
/**
* When true, this tooltip will render independently even inside a TooltipGroup,
* ignoring the group singleton behavior.
*/
standalone?: boolean;
/**
* Compatible with Ant Design `styles` shape (subset).
*/
styles?: {
arrow?: CSSProperties;
/**
* Backwards-compatible alias for the floating root style.
*/
container?: CSSProperties;
content?: CSSProperties;
root?: CSSProperties;
};
/**
* Tooltip content.
*/
title: ReactNode;
/**
* z-index for tooltip floating root.
*/
zIndex?: number;
}
/**
* Props for `TooltipGroup`.
*/
interface TooltipGroupProps {
arrow?: boolean;
children: ReactNode;
className?: string;
classNames?: TooltipProps['classNames'];
closeDelay?: number;
disabled?: boolean;
getPopupContainer?: TooltipProps['getPopupContainer'];
hotkey?: string;
hotkeyProps?: Omit<HotkeyProps, 'keys'>;
layoutAnimation?: boolean;
mouseEnterDelay?: number;
mouseLeaveDelay?: number;
openDelay?: number;
placement?: TooltipPlacement;
portalled?: boolean;
styles?: TooltipProps['styles'];
zIndex?: number;
}
//#endregion
export { TooltipGroupProps, TooltipPlacement, TooltipProps };
//# sourceMappingURL=type.d.mts.map