import type React from 'react'; import type { RefAttributes } from 'react'; import type { TooltipTriggerComponentProps as AriaTooltipTriggerProps } from 'react-aria-components'; import type { VariantProps } from 'tailwind-variants'; import { Tooltip as AriaTooltip, TooltipTrigger as AriaTooltipTrigger, OverlayArrow, } from 'react-aria-components'; import { tv } from 'tailwind-variants'; export const tooltipVariants = tv({ base: [ 'px-3 py-2 text-sm font-medium text-white bg-component-bg rounded-lg shadow-lg', 'border border-component-border max-w-xs z-50', 'data-[entering]:animate-in data-[entering]:fade-in data-[entering]:zoom-in-95', 'data-[exiting]:animate-out data-[exiting]:fade-out data-[exiting]:zoom-out-95', ], }); export const tooltipArrowVariants = tv({ base: [ 'fill-gray-900 stroke-gray-700 stroke-1', ], }); export type TooltipVariantProps = VariantProps; export type TooltipArrowVariantProps = VariantProps; export type TooltipProps = AriaTooltipTriggerProps & RefAttributes & { text: string; children: React.ReactElement; placement?: 'top' | 'bottom' | 'left' | 'right'; className?: string; delay?: number; closeDelay?: number; }; export function Tooltip({ text, children, placement = 'top', className, delay = 700, closeDelay = 0, ...props }: TooltipProps) { return ( {children} {text} ); }