Openstatus
www.openstatus.dev
1"use client";
2
3import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
4import * as React from "react";
5
6import { cn } from "../lib/utils";
7
8const HoverCard = HoverCardPrimitive.Root;
9
10// REMINDER: fixes the Safari 17.4. bug where portal floats somewhere
11const HoverCardPortal = HoverCardPrimitive.Portal;
12
13const HoverCardTrigger = HoverCardPrimitive.Trigger;
14
15const HoverCardContent = React.forwardRef<
16 React.ElementRef<typeof HoverCardPrimitive.Content>,
17 React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>
18>(({ className, align = "center", sideOffset = 4, ...props }, ref) => (
19 <HoverCardPortal>
20 <HoverCardPrimitive.Content
21 ref={ref}
22 align={align}
23 sideOffset={sideOffset}
24 className={cn(
25 "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 w-64 rounded-md border p-4 shadow-md outline-hidden",
26 className,
27 )}
28 {...props}
29 />
30 </HoverCardPortal>
31));
32HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
33
34export { HoverCard, HoverCardPortal, HoverCardTrigger, HoverCardContent };