TypeScript 97.4%
SQL 1%
JavaScript 0.9%
CSS 0.6%
1"use client";2import * as React from "react";3import * as TooltipPrimitive from "@radix-ui/react-tooltip";4import { cn } from "@/lib/utils";56export const TooltipProvider = TooltipPrimitive.Provider;7export const TooltipRoot = TooltipPrimitive.Root;8export const TooltipTrigger = TooltipPrimitive.Trigger;910export const TooltipContent = React.forwardRef<React.ElementRef<typeof TooltipPrimitive.Content>, React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>>(11 function TooltipContent({ className, sideOffset = 6, ...props }, ref) {12 return (13 <TooltipPrimitive.Portal>14 <TooltipPrimitive.Content15 ref={ref}16 sideOffset={sideOffset}17 className={cn("z-50 max-w-xs rounded-md border border-border bg-bg-elevated px-2.5 py-1.5 text-xs text-fg shadow-md animate-scale-in", className)}18 {...props}19 />20 </TooltipPrimitive.Portal>21 );22 },23);2425export function Tooltip({ content, children, side, align, asChild = true }: { content: React.ReactNode; children: React.ReactNode; side?: "top" | "bottom" | "left" | "right"; align?: "start" | "center" | "end"; asChild?: boolean }) {26 if (!content) return <>{children}</>;27 return (28 <TooltipRoot>29 <TooltipTrigger asChild={asChild}>{children}</TooltipTrigger>30 <TooltipContent side={side} align={align}>31 {content}32 </TooltipContent>33 </TooltipRoot>34 );35}36