"use client"; import * as React from "react"; import { Tooltip as TooltipPrimitive } from "radix-ui"; import { cn } from "@/lib/utils"; /** * Represents a tooltip component * @property {string} className - Optional className for custom styling * @property {number} sideOffset - Offset for the tooltip side */ // Provider component that should wrap any tooltips const TooltipProvider = TooltipPrimitive.Provider; // Root component for individual tooltips const TooltipRoot = TooltipPrimitive.Root; // Trigger component that wraps the element that triggers the tooltip const TooltipTrigger = TooltipPrimitive.Trigger; // Content component for tooltip const TooltipContent = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, sideOffset = 4, ...props }, ref) => ( )); TooltipContent.displayName = TooltipPrimitive.Content.displayName; // Simplified Tooltip component with a unified API interface TooltipProps { content: React.ReactNode; children: React.ReactNode; delayDuration?: number; open?: boolean; defaultOpen?: boolean; onOpenChange?: (open: boolean) => void; side?: "top" | "right" | "bottom" | "left"; align?: "start" | "center" | "end"; className?: string; } function Tooltip({ content, children, delayDuration = 300, open, defaultOpen, onOpenChange, side = "top", align = "center", className, }: TooltipProps) { return ( {children} {content} ); } export { Tooltip, TooltipContent, TooltipProvider, TooltipRoot, TooltipTrigger, };