{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "tooltip",
  "title": "Tooltip",
  "dependencies": [
    "@base-ui/react"
  ],
  "registryDependencies": [
    "https://ui.hotfix.jobs/r/tokens.json",
    "https://ui.hotfix.jobs/r/utils.json"
  ],
  "files": [
    {
      "path": "registry/components/ui/tooltip.tsx",
      "content": "\"use client\";\n\nimport { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\";\nimport { useMemo } from \"react\";\nimport type * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport function TooltipProvider({\n  delay = 150,\n  closeDelay = 0,\n  timeout = 500,\n  children,\n}: {\n  delay?: number;\n  closeDelay?: number;\n  timeout?: number;\n  children: React.ReactNode;\n}): React.ReactElement {\n  return (\n    <TooltipPrimitive.Provider delay={delay} closeDelay={closeDelay} timeout={timeout}>\n      {children}\n    </TooltipPrimitive.Provider>\n  );\n}\n\nexport type TooltipSide = \"top\" | \"bottom\" | \"left\" | \"right\";\nexport type TooltipAlign = \"start\" | \"center\" | \"end\";\n\nexport interface TooltipProps {\n  children: React.ReactElement;\n  content: React.ReactNode;\n  side?: TooltipSide;\n  align?: TooltipAlign;\n  sideOffset?: number;\n  delay?: number;\n  closeDelay?: number;\n  className?: string;\n}\n\nexport function Tooltip({\n  children,\n  content,\n  side = \"top\",\n  align = \"center\",\n  sideOffset = 4,\n  delay = 150,\n  closeDelay = 0,\n  className,\n}: TooltipProps): React.ReactElement {\n  const handle = useMemo(() => TooltipPrimitive.createHandle(), []);\n\n  return (\n    <TooltipPrimitive.Provider delay={delay} closeDelay={closeDelay}>\n      <TooltipPrimitive.Trigger handle={handle} render={children} />\n      <TooltipPrimitive.Root handle={handle}>\n        <TooltipPrimitive.Portal>\n          <TooltipPrimitive.Positioner\n            side={side}\n            align={align}\n            sideOffset={sideOffset}\n            className=\"z-[80]\"\n          >\n            <TooltipPrimitive.Popup\n              className={cn(\n                \"rounded-[var(--radius-6)] bg-layer-1 border border-hairline-soft px-2 py-1 text-mini text-ink shadow-tooltip transition-[opacity,scale] duration-[var(--duration-state)] ease-[var(--ease-standard)] data-ending-style:scale-[0.97] data-ending-style:opacity-0 data-starting-style:scale-[0.97] data-starting-style:opacity-0\",\n                className,\n              )}\n              data-slot=\"tooltip-content\"\n            >\n              {content}\n            </TooltipPrimitive.Popup>\n          </TooltipPrimitive.Positioner>\n        </TooltipPrimitive.Portal>\n      </TooltipPrimitive.Root>\n    </TooltipPrimitive.Provider>\n  );\n}\n\nexport const TooltipRoot: typeof TooltipPrimitive.Root = TooltipPrimitive.Root;\nexport const TooltipTrigger: typeof TooltipPrimitive.Trigger = TooltipPrimitive.Trigger;\nexport const TooltipCreateHandle: typeof TooltipPrimitive.createHandle = TooltipPrimitive.createHandle;\n\nexport function TooltipContent({\n  className,\n  sideOffset = 4,\n  side = \"top\",\n  align = \"center\",\n  children,\n  ...props\n}: TooltipPrimitive.Popup.Props & {\n  sideOffset?: number;\n  side?: TooltipSide;\n  align?: TooltipAlign;\n}): React.ReactElement {\n  return (\n    <TooltipPrimitive.Portal>\n      <TooltipPrimitive.Positioner\n        side={side}\n        align={align}\n        sideOffset={sideOffset}\n        className=\"z-[80]\"\n      >\n        <TooltipPrimitive.Popup\n          className={cn(\n            \"rounded-[var(--radius-6)] bg-layer-1 border border-hairline-soft px-2 py-1 text-mini text-ink shadow-tooltip transition-[opacity,scale] duration-[var(--duration-state)] ease-[var(--ease-standard)] data-ending-style:scale-[0.97] data-ending-style:opacity-0 data-starting-style:scale-[0.97] data-starting-style:opacity-0\",\n            className,\n          )}\n          data-slot=\"tooltip-content\"\n          {...props}\n        >\n          {children}\n        </TooltipPrimitive.Popup>\n      </TooltipPrimitive.Positioner>\n    </TooltipPrimitive.Portal>\n  );\n}\n",
      "type": "registry:ui",
      "target": "components/ui/tooltip.tsx"
    }
  ],
  "type": "registry:ui"
}