| 'use client' | |
| import * as React from 'react' | |
| import { | |
| type ComponentPropsWithoutRef, | |
| type ElementRef, | |
| forwardRef | |
| } from 'react' | |
| import * as TooltipPrimitive from '@radix-ui/react-tooltip' | |
| import { cn } from '@/lib/utils' | |
| const TooltipProvider = TooltipPrimitive.Provider | |
| const Tooltip = TooltipPrimitive.Root | |
| const TooltipTrigger = TooltipPrimitive.Trigger | |
| interface TooltipContentProps | |
| extends ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> { | |
| type?: 'default' | 'copy' | |
| } | |
| const TooltipContent = forwardRef< | |
| ElementRef<typeof TooltipPrimitive.Content>, | |
| TooltipContentProps | |
| >(({ className, sideOffset = 4, type = 'default', ...props }, ref) => ( | |
| <TooltipPrimitive.Content | |
| ref={ref} | |
| sideOffset={sideOffset} | |
| className={cn( | |
| 'z-50 overflow-hidden rounded-sm px-2 py-1 text-sm animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', | |
| type === 'default' && 'bg-primary text-accent', | |
| type === 'copy' && 'bg-custom-gradient text-primary', | |
| className | |
| )} | |
| {...props} | |
| /> | |
| )) | |
| TooltipContent.displayName = TooltipPrimitive.Content.displayName | |
| export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } | |