hover-card.tsx raw

   1  import * as React from 'react'
   2  import * as HoverCardPrimitive from '@radix-ui/react-hover-card'
   3  
   4  import { cn } from '@/lib/utils'
   5  
   6  const HoverCard = HoverCardPrimitive.Root
   7  
   8  const HoverCardTrigger = HoverCardPrimitive.Trigger
   9  
  10  const HoverCardContent = React.forwardRef<
  11    React.ElementRef<typeof HoverCardPrimitive.Content>,
  12    React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>
  13  >(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (
  14    <HoverCardPrimitive.Content
  15      ref={ref}
  16      align={align}
  17      sideOffset={sideOffset}
  18      collisionPadding={10}
  19      className={cn(
  20        'z-50 w-64 rounded-xl border bg-popover p-4 text-popover-foreground shadow-md outline-none 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',
  21        className
  22      )}
  23      {...props}
  24    />
  25  ))
  26  HoverCardContent.displayName = HoverCardPrimitive.Content.displayName
  27  
  28  export { HoverCard, HoverCardTrigger, HoverCardContent }
  29