/** * @fileoverview Tooltip — animated contextual hint with spring entrance, arrow support, and configurable delay. * @module packages/ui/components/ui/tooltip * @layer core * * @component * @example * import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from '@saasflare/ui'; * * * Hover me * Helpful hint * * */ import * as React from "react"; import * as TooltipPrimitive from "@radix-ui/react-tooltip"; import { type SaasflareComponentProps } from "../../providers"; /** * Context provider that shares open-delay and skip-delay behavior across all * descendant tooltips. Wrap once near the app root; defaults `delayDuration` * to 0 so tooltips appear instantly. * * @component * @layer core */ declare function TooltipProvider({ delayDuration, ...props }: React.ComponentProps): import("react/jsx-runtime").JSX.Element; /** * Contextual hint shown when an element is hovered or keyboard-focused. * Root of the composition — owns open state and wires {@link TooltipTrigger} * and {@link TooltipContent} together. Must be rendered inside a * {@link TooltipProvider}. * * @component * @layer core */ declare function Tooltip({ ...props }: React.ComponentProps): import("react/jsx-runtime").JSX.Element; /** * Element that shows the tooltip on hover or keyboard focus. * * @component * @layer core */ declare function TooltipTrigger({ ...props }: React.ComponentProps): import("react/jsx-runtime").JSX.Element; /** * Props for {@link TooltipContent}. Extends the Radix Tooltip content props * with the Saasflare theming axes (`surface`, `radius`, `animated`, * `iconWeight`). */ interface TooltipContentProps extends Omit, keyof SaasflareComponentProps>, SaasflareComponentProps { } /** * The tooltip bubble itself. Portals to the body, enters with a spring * scale/fade, and resolves `surface`/`radius`/`animated` against the * context. * * @component * @layer core */ declare function TooltipContent({ className, sideOffset, children, surface, radius, animated, iconWeight, ...props }: TooltipContentProps): import("react/jsx-runtime").JSX.Element; /** Props for {@link TooltipArrow}. Pure pass-through to the Radix Tooltip arrow. */ interface TooltipArrowProps extends React.ComponentProps { } /** * Arrow connecting the tooltip to its trigger. * * Renders as a child of `` (consumes Popper context) and rides * the existing spring entrance because it lives inside the animated panel — no * extra motion wiring is needed, and reduced-motion / `animated=false` gating is * inherited from the content. Fill follows the `bg-primary` token via * `fill-primary` to match the tooltip body, so it stays palette- and * theme-reactive. Override the fill with `className` under custom surfaces. * * @component * @layer core * @example * * Copy link * * */ declare function TooltipArrow({ className, ...props }: TooltipArrowProps): import("react/jsx-runtime").JSX.Element; export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider, TooltipArrow, type TooltipContentProps, type TooltipArrowProps };