Openstatus www.openstatus.dev
at 552ff64ccfdc1d64cbb4ed6bec9b157e937e2ed3 41 lines 1.4 kB view raw
1"use client"; 2 3import * as TooltipPrimitive from "@radix-ui/react-tooltip"; 4import * as React from "react"; 5 6import { cn } from "../lib/utils"; 7 8const TooltipProvider = TooltipPrimitive.Provider; 9 10const Tooltip = TooltipPrimitive.Root; 11 12// REMINDER: fixes the Safari 17.4. bug where portal floats somewhere 13const TooltipPortal = TooltipPrimitive.Portal; 14 15const TooltipTrigger = TooltipPrimitive.Trigger; 16 17const TooltipContent = React.forwardRef< 18 React.ElementRef<typeof TooltipPrimitive.Content>, 19 React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> 20>(({ className, sideOffset = 4, ...props }, ref) => ( 21 <TooltipPortal> 22 <TooltipPrimitive.Content 23 ref={ref} 24 sideOffset={sideOffset} 25 className={cn( 26 "bg-popover text-popover-foreground 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 z-50 overflow-hidden rounded-md border px-3 py-1.5 text-sm shadow-md", 27 className 28 )} 29 {...props} 30 /> 31 </TooltipPortal> 32)); 33TooltipContent.displayName = TooltipPrimitive.Content.displayName; 34 35export { 36 Tooltip, 37 TooltipTrigger, 38 TooltipPortal, 39 TooltipContent, 40 TooltipProvider, 41};