@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
174 lines (173 loc) • 5.07 kB
text/typescript
import { HotkeyProps } from "../Hotkey/type.mjs";
import "../Hotkey/index.mjs";
import { Placement } from "../utils/placement.mjs";
import { CSSProperties, ComponentPropsWithRef, ReactElement, ReactNode } from "react";
import { Tooltip, TooltipPopupProps, TooltipPortalProps, TooltipPositionerProps, TooltipTriggerProps } from "@base-ui/react/tooltip";
//#region src/Tooltip/type.d.ts
type TooltipPlacement = Placement;
/**
* Base UI Positioner props that can be passed through
*/
type TooltipPositionerProps$1 = Omit<TooltipPositionerProps, 'className' | 'style' | 'children'>;
/**
* Base UI Trigger props that can be passed through
*/
type TooltipTriggerComponentProps = Omit<TooltipTriggerProps, 'className' | 'style' | 'children' | 'render' | 'handle' | 'payload'>;
/**
* Base UI Popup props that can be passed through
*/
type TooltipPopupComponentProps = Omit<TooltipPopupProps, 'className' | 'style' | 'children'>;
/**
* Base UI Portal props that can be passed through
*/
type TooltipPortalProps$1 = Omit<TooltipPortalProps, 'children' | 'container'>;
interface TooltipProps {
/**
* Whether the tooltip has an arrow pointer.
* @default false
*/
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;
/**
* Base UI Popup 组件的 props
*/
popupProps?: TooltipPopupComponentProps;
/**
* Base UI Portal 组件的 props
*/
portalProps?: TooltipPortalProps$1;
/**
* Base UI Positioner 组件的 props
*/
positionerProps?: TooltipPositionerProps$1;
ref?: ComponentPropsWithRef<typeof Tooltip.Trigger>['ref'];
/**
* 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;
/**
* Base UI Trigger 组件的 props
*/
triggerProps?: TooltipTriggerComponentProps;
/**
* z-index for tooltip floating root.
*/
zIndex?: number;
}
/**
* Props for `TooltipGroup`.
*/
interface TooltipGroupProps {
arrow?: boolean;
children: ReactNode;
className?: string;
classNames?: TooltipProps['classNames'];
closeDelay?: number;
/**
* Disable the "destroy on invalid trigger (display:none / disconnected)" guard for performance.
* @default false
*/
disableDestroyOnInvalidTrigger?: boolean;
/**
* Disable the "hide when positioner falls back to (0,0)" visual guard for performance.
* @default false
*/
disableZeroOriginGuard?: boolean;
disabled?: boolean;
getPopupContainer?: TooltipProps['getPopupContainer'];
hotkey?: string;
hotkeyProps?: Omit<HotkeyProps, 'keys'>;
layoutAnimation?: boolean;
mouseEnterDelay?: number;
mouseLeaveDelay?: number;
openDelay?: number;
placement?: TooltipPlacement;
popupProps?: TooltipPopupComponentProps;
portalProps?: TooltipPortalProps$1;
positionerProps?: TooltipPositionerProps$1;
styles?: TooltipProps['styles'];
triggerProps?: TooltipTriggerComponentProps;
zIndex?: number;
}
//#endregion
export { TooltipGroupProps, TooltipPlacement, TooltipPopupComponentProps, TooltipPortalProps$1 as TooltipPortalProps, TooltipPositionerProps$1 as TooltipPositionerProps, TooltipProps, TooltipTriggerComponentProps };
//# sourceMappingURL=type.d.mts.map