{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "hover-card",
  "title": "Hover Card",
  "description": "Rich hover preview on radix-ui with portal, directional slide/zoom animations and 3 content sizes (sm, md, lg). Exports HoverCard, HoverCardTrigger, HoverCardContent.",
  "dependencies": [
    "class-variance-authority@^0.7.1",
    "radix-ui@^1.6.1",
    "tw-animate-css@^1.4.0"
  ],
  "registryDependencies": [
    "@ai2/tokens",
    "@ai2/primitives"
  ],
  "files": [
    {
      "path": "registry/ai2/ui/hover-card.tsx",
      "content": "\"use client\"\n\nimport type * as React from \"react\"\nimport { HoverCard as HoverCardPrimitive } from \"@/registry/ai2/ui/primitives\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst hoverCardContentVariants = cva(\n  \"z-50 max-w-[calc(100vw-2rem)] origin-(--radix-hover-card-content-transform-origin) rounded-lg border border-border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1 motion-reduce:animate-none\",\n  {\n    variants: {\n      size: {\n        sm: \"w-56\",\n        md: \"w-64\",\n        lg: \"w-80\",\n      },\n    },\n    defaultVariants: { size: \"md\" },\n  }\n)\n\nfunction HoverCard(props: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n  return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />\n}\n\nfunction HoverCardTrigger(\n  props: React.ComponentProps<typeof HoverCardPrimitive.Trigger>\n) {\n  return <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n}\n\nfunction HoverCardContent({\n  className,\n  align = \"center\",\n  sideOffset = 6,\n  size,\n  ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content> &\n  VariantProps<typeof hoverCardContentVariants>) {\n  return (\n    <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n      <HoverCardPrimitive.Content\n        data-slot=\"hover-card-content\"\n        data-size={size ?? \"md\"}\n        align={align}\n        sideOffset={sideOffset}\n        className={cn(hoverCardContentVariants({ size, className }))}\n        {...props}\n      />\n    </HoverCardPrimitive.Portal>\n  )\n}\n\nexport {\n  HoverCard,\n  HoverCardTrigger,\n  HoverCardContent,\n  hoverCardContentVariants,\n}\n",
      "type": "registry:ui"
    }
  ],
  "docs": "Use for non-essential preview content shown on hover (user cards, link previews). For click-triggered content use Popover, for tap-friendly hints use Tooltip.",
  "categories": [
    "overlay"
  ],
  "type": "registry:ui"
}