{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "tooltip",
  "title": "Tooltip",
  "description": "Tooltip on radix-ui with portal, arrow, directional slide/zoom animations and 2 content sizes (sm, md). Tooltip wraps its own Provider, so a single import works out of the box.",
  "dependencies": [
    "radix-ui@^1.6.1",
    "tw-animate-css@^1.4.0"
  ],
  "registryDependencies": [
    "@ai2/tokens",
    "@ai2/primitives"
  ],
  "files": [
    {
      "path": "registry/ai2/ui/tooltip.tsx",
      "content": "\"use client\"\n\nimport type * as React from \"react\"\nimport { Tooltip as TooltipPrimitive } from \"@/registry/ai2/ui/primitives\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst tooltipContentVariants = cva(\n  \"z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md bg-primary font-medium text-primary-foreground shadow-md 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: \"px-2 py-0.5 text-xs\",\n        md: \"px-2.5 py-1 text-xs\",\n      },\n    },\n    defaultVariants: { size: \"md\" },\n  }\n)\n\nfunction TooltipProvider({\n  delayDuration = 200,\n  ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n  return (\n    <TooltipPrimitive.Provider\n      data-slot=\"tooltip-provider\"\n      delayDuration={delayDuration}\n      {...props}\n    />\n  )\n}\n\nfunction Tooltip({\n  ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n  return (\n    <TooltipProvider>\n      <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n    </TooltipProvider>\n  )\n}\n\nfunction TooltipTrigger({\n  ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n  return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n  className,\n  sideOffset = 6,\n  size,\n  children,\n  ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content> &\n  VariantProps<typeof tooltipContentVariants>) {\n  return (\n    <TooltipPrimitive.Portal>\n      <TooltipPrimitive.Content\n        data-slot=\"tooltip-content\"\n        data-size={size ?? \"md\"}\n        sideOffset={sideOffset}\n        className={cn(tooltipContentVariants({ size, className }))}\n        {...props}\n      >\n        {children}\n        <TooltipPrimitive.Arrow className=\"z-50 size-2 translate-y-[calc(-50%_-_1px)] rotate-45 rounded-[1px] bg-primary fill-primary\" />\n      </TooltipPrimitive.Content>\n    </TooltipPrimitive.Portal>\n  )\n}\n\nexport {\n  Tooltip,\n  TooltipTrigger,\n  TooltipContent,\n  TooltipProvider,\n  tooltipContentVariants,\n}\n",
      "type": "registry:ui"
    }
  ],
  "docs": "Wrap the trigger with TooltipTrigger asChild to attach to any element. Content renders in a portal so it escapes overflow-hidden parents.",
  "categories": [
    "overlay"
  ],
  "type": "registry:ui"
}