{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "tooltip",
  "title": "Tooltip",
  "description": "A tooltip primitive built on Base UI.",
  "dependencies": [
    "@base-ui/react@^1.4.1"
  ],
  "registryDependencies": [
    "utils"
  ],
  "files": [
    {
      "path": "registry/new-york-v4/ui/tooltip.tsx",
      "content": "\"use client\"\n\nimport type React from \"react\"\nimport { isValidElement } from \"react\"\nimport { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\"\n\nimport { cn } from \"@/lib/utils\"\n\nexport const TooltipCreateHandle: typeof TooltipPrimitive.createHandle =\n  TooltipPrimitive.createHandle\n\nexport function TooltipProvider({\n  delayDuration,\n  delay = delayDuration,\n  ...props\n}: TooltipPrimitive.Provider.Props & {\n  delayDuration?: TooltipPrimitive.Provider.Props[\"delay\"]\n}): React.ReactElement {\n  return <TooltipPrimitive.Provider delay={delay} {...props} />\n}\n\nexport const Tooltip: typeof TooltipPrimitive.Root = TooltipPrimitive.Root\n\nexport function TooltipTrigger({\n  asChild,\n  children,\n  render,\n  ...props\n}: TooltipPrimitive.Trigger.Props & {\n  asChild?: boolean\n}): React.ReactElement {\n  return (\n    <TooltipPrimitive.Trigger\n      data-slot=\"tooltip-trigger\"\n      render={\n        render ??\n        (asChild && isValidElement(children)\n          ? (children as React.ReactElement<Record<string, unknown>>)\n          : undefined)\n      }\n      {...props}\n    >\n      {asChild && isValidElement(children) ? undefined : children}\n    </TooltipPrimitive.Trigger>\n  )\n}\n\nexport function TooltipPopup({\n  className,\n  align = \"center\",\n  sideOffset = 4,\n  side = \"top\",\n  anchor,\n  children,\n  portalProps,\n  ...props\n}: TooltipPrimitive.Popup.Props & {\n  align?: TooltipPrimitive.Positioner.Props[\"align\"]\n  side?: TooltipPrimitive.Positioner.Props[\"side\"]\n  sideOffset?: TooltipPrimitive.Positioner.Props[\"sideOffset\"]\n  anchor?: TooltipPrimitive.Positioner.Props[\"anchor\"]\n  portalProps?: TooltipPrimitive.Portal.Props\n}): React.ReactElement {\n  return (\n    <TooltipPrimitive.Portal {...portalProps}>\n      <TooltipPrimitive.Positioner\n        align={align}\n        anchor={anchor}\n        className=\"z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom,transform] data-instant:transition-none\"\n        data-slot=\"tooltip-positioner\"\n        side={side}\n        sideOffset={sideOffset}\n      >\n        <TooltipPrimitive.Popup\n          className={cn(\n            \"relative flex h-(--popup-height,auto) w-(--popup-width,auto) origin-(--transform-origin) rounded-md border bg-popover text-xs text-balance text-popover-foreground shadow-md/5 transition-[width,height,scale,opacity] not-dark:bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-md)-1px)] before:shadow-[0_1px_--theme(--color-black/4%)] data-ending-style:scale-98 data-ending-style:opacity-0 data-instant:duration-0 data-starting-style:scale-98 data-starting-style:opacity-0 dark:before:shadow-[0_-1px_--theme(--color-white/6%)]\",\n            className\n          )}\n          data-slot=\"tooltip-popup\"\n          {...props}\n        >\n          <TooltipPrimitive.Viewport\n            className=\"relative size-full overflow-clip px-(--viewport-inline-padding) py-1 [--viewport-inline-padding:--spacing(2)] **:data-current:w-[calc(var(--popup-width)-2*var(--viewport-inline-padding)-2px)] **:data-current:opacity-100 **:data-current:transition-opacity **:data-current:data-ending-style:opacity-0 data-instant:transition-none **:data-previous:w-[calc(var(--popup-width)-2*var(--viewport-inline-padding)-2px)] **:data-previous:truncate **:data-previous:opacity-100 **:data-previous:transition-opacity **:data-previous:data-ending-style:opacity-0 **:data-current:data-starting-style:opacity-0 **:data-previous:data-starting-style:opacity-0\"\n            data-slot=\"tooltip-viewport\"\n          >\n            {children}\n          </TooltipPrimitive.Viewport>\n        </TooltipPrimitive.Popup>\n      </TooltipPrimitive.Positioner>\n    </TooltipPrimitive.Portal>\n  )\n}\n\nexport { TooltipPrimitive, TooltipPopup as TooltipContent }\n",
      "type": "registry:ui",
      "target": "@ui/tooltip.tsx"
    }
  ],
  "type": "registry:ui"
}