{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "packed-ui-registry",
  "homepage": "https://ui.trypacked.dev/",
  "items": [
    {
      "name": "accordion",
      "type": "registry:ui",
      "title": "Accordion",
      "description": "Packed Accordion — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react",
        "lucide-react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/accordion.tsx",
          "type": "registry:ui",
          "target": "components/ui/accordion.tsx"
        }
      ]
    },
    {
      "name": "alert",
      "type": "registry:ui",
      "title": "Alert",
      "description": "Push-style journey alert — gate changes, forecasts, and status updates.",
      "dependencies": [
        "class-variance-authority",
        "lucide-react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/alert.tsx",
          "type": "registry:ui",
          "target": "components/ui/alert.tsx"
        }
      ]
    },
    {
      "name": "alert-dialog",
      "type": "registry:ui",
      "title": "Alert Dialog",
      "description": "Packed Alert Dialog — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "@packed/button",
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/alert-dialog.tsx",
          "type": "registry:ui",
          "target": "components/ui/alert-dialog.tsx"
        }
      ]
    },
    {
      "name": "avatar",
      "type": "registry:ui",
      "title": "Avatar",
      "description": "Round avatar with image or coloured-initials fallback.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/avatar.tsx",
          "type": "registry:ui",
          "target": "components/ui/avatar.tsx"
        }
      ]
    },
    {
      "name": "badge",
      "type": "registry:ui",
      "title": "Badge",
      "description": "Compact pill label for statuses, counts and categories. Use success, info, warning, danger, and neutral for status dots.",
      "dependencies": [
        "@base-ui/react",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/badge.tsx",
          "type": "registry:ui",
          "target": "components/ui/badge.tsx"
        }
      ]
    },
    {
      "name": "breadcrumb",
      "type": "registry:ui",
      "title": "Breadcrumb",
      "description": "Packed Breadcrumb — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react",
        "lucide-react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/breadcrumb.tsx",
          "type": "registry:ui",
          "target": "components/ui/breadcrumb.tsx"
        }
      ]
    },
    {
      "name": "button",
      "type": "registry:ui",
      "title": "Button",
      "description": "Packed's primary action button — warm, rounded, with a soft brand glow on the primary variant. Use for the single most important action in a view.",
      "dependencies": [
        "@base-ui/react",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/button.tsx",
          "type": "registry:ui",
          "target": "components/ui/button.tsx"
        }
      ]
    },
    {
      "name": "button-group",
      "type": "registry:ui",
      "title": "Button Group",
      "description": "Packed Button Group — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@packed/separator",
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/button-group.tsx",
          "type": "registry:ui",
          "target": "components/ui/button-group.tsx"
        }
      ]
    },
    {
      "name": "calendar",
      "type": "registry:ui",
      "title": "Calendar",
      "description": "Packed Calendar — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "lucide-react",
        "react-day-picker"
      ],
      "registryDependencies": [
        "@packed/button",
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/calendar.tsx",
          "type": "registry:ui",
          "target": "components/ui/calendar.tsx"
        }
      ]
    },
    {
      "name": "card",
      "type": "registry:ui",
      "title": "Card",
      "description": "The warm surface container — Packed's workhorse layout primitive. White surface, soft border, generous radius.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/card.tsx",
          "type": "registry:ui",
          "target": "components/ui/card.tsx"
        }
      ]
    },
    {
      "name": "checkbox",
      "type": "registry:ui",
      "title": "Checkbox",
      "description": "Checkbox with label. Controlled.",
      "dependencies": [
        "@base-ui/react",
        "lucide-react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/checkbox.tsx",
          "type": "registry:ui",
          "target": "components/ui/checkbox.tsx"
        }
      ]
    },
    {
      "name": "collapsible",
      "type": "registry:ui",
      "title": "Collapsible",
      "description": "Packed Collapsible — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/collapsible.tsx",
          "type": "registry:ui",
          "target": "components/ui/collapsible.tsx"
        }
      ]
    },
    {
      "name": "command",
      "type": "registry:ui",
      "title": "Command",
      "description": "Packed Command — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "cmdk",
        "lucide-react"
      ],
      "registryDependencies": [
        "@packed/dialog",
        "@packed/input-group",
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/command.tsx",
          "type": "registry:ui",
          "target": "components/ui/command.tsx"
        }
      ]
    },
    {
      "name": "date-picker",
      "type": "registry:ui",
      "title": "Date Picker",
      "description": "Popover + calendar for choosing a single date — warm Packed styling on sand surfaces.",
      "dependencies": [
        "date-fns",
        "lucide-react",
        "react-day-picker"
      ],
      "registryDependencies": [
        "@packed/button",
        "@packed/calendar",
        "@packed/popover",
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/date-picker.tsx",
          "type": "registry:ui",
          "target": "components/ui/date-picker.tsx"
        }
      ]
    },
    {
      "name": "dialog",
      "type": "registry:ui",
      "title": "Dialog",
      "description": "Packed Dialog — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react",
        "lucide-react"
      ],
      "registryDependencies": [
        "@packed/button",
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/dialog.tsx",
          "type": "registry:ui",
          "target": "components/ui/dialog.tsx"
        }
      ]
    },
    {
      "name": "drawer",
      "type": "registry:ui",
      "title": "Drawer",
      "description": "Packed Drawer — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react",
        "vaul"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/drawer.tsx",
          "type": "registry:ui",
          "target": "components/ui/drawer.tsx"
        }
      ]
    },
    {
      "name": "dropdown-menu",
      "type": "registry:ui",
      "title": "Dropdown Menu",
      "description": "Packed Dropdown Menu — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react",
        "lucide-react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/dropdown-menu.tsx",
          "type": "registry:ui",
          "target": "components/ui/dropdown-menu.tsx"
        }
      ]
    },
    {
      "name": "empty",
      "type": "registry:ui",
      "title": "Empty",
      "description": "Packed Empty — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/empty.tsx",
          "type": "registry:ui",
          "target": "components/ui/empty.tsx"
        }
      ]
    },
    {
      "name": "eyebrow",
      "type": "registry:ui",
      "title": "Eyebrow",
      "description": "Small tracked uppercase kicker. Sit it above a headline — never as body copy.",
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/eyebrow.tsx",
          "type": "registry:ui",
          "target": "components/ui/eyebrow.tsx"
        }
      ]
    },
    {
      "name": "field",
      "type": "registry:ui",
      "title": "Field",
      "description": "Packed Field — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@packed/label",
        "@packed/separator",
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/field.tsx",
          "type": "registry:ui",
          "target": "components/ui/field.tsx"
        }
      ]
    },
    {
      "name": "form",
      "type": "registry:ui",
      "title": "Form",
      "description": "Packed Form — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react",
        "react-hook-form"
      ],
      "registryDependencies": [
        "@packed/label",
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/form.tsx",
          "type": "registry:ui",
          "target": "components/ui/form.tsx"
        }
      ]
    },
    {
      "name": "hover-card",
      "type": "registry:ui",
      "title": "Hover Card",
      "description": "Packed Hover Card — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/hover-card.tsx",
          "type": "registry:ui",
          "target": "components/ui/hover-card.tsx"
        }
      ]
    },
    {
      "name": "input",
      "type": "registry:ui",
      "title": "Input",
      "description": "Text field with label, helper text, error state, and optional leading/trailing icons. Focus shows a warm brand ring.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/input.tsx",
          "type": "registry:ui",
          "target": "components/ui/input.tsx"
        }
      ]
    },
    {
      "name": "input-group",
      "type": "registry:ui",
      "title": "Input Group",
      "description": "Packed Input Group — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@packed/button",
        "@packed/input",
        "@packed/textarea",
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/input-group.tsx",
          "type": "registry:ui",
          "target": "components/ui/input-group.tsx"
        }
      ]
    },
    {
      "name": "input-otp",
      "type": "registry:ui",
      "title": "Input Otp",
      "description": "Packed Input Otp — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "input-otp",
        "lucide-react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/input-otp.tsx",
          "type": "registry:ui",
          "target": "components/ui/input-otp.tsx"
        }
      ]
    },
    {
      "name": "item",
      "type": "registry:ui",
      "title": "Item",
      "description": "Packed Item — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@packed/separator",
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/item.tsx",
          "type": "registry:ui",
          "target": "components/ui/item.tsx"
        }
      ]
    },
    {
      "name": "kbd",
      "type": "registry:ui",
      "title": "Kbd",
      "description": "Packed Kbd — warm, token-driven UI on sand surfaces.",
      "dependencies": [],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/kbd.tsx",
          "type": "registry:ui",
          "target": "components/ui/kbd.tsx"
        }
      ]
    },
    {
      "name": "label",
      "type": "registry:ui",
      "title": "Label",
      "description": "Packed Label — warm, token-driven UI on sand surfaces.",
      "dependencies": [],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/label.tsx",
          "type": "registry:ui",
          "target": "components/ui/label.tsx"
        }
      ]
    },
    {
      "name": "logo",
      "type": "registry:ui",
      "title": "Logo",
      "description": "The Packed suitcase mark, and the Try Packed wordmark lockup for nav and footers.",
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/logo.tsx",
          "type": "registry:ui",
          "target": "components/ui/logo.tsx"
        }
      ]
    },
    {
      "name": "menubar",
      "type": "registry:ui",
      "title": "Menubar",
      "description": "Packed Menubar — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react",
        "lucide-react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/menubar.tsx",
          "type": "registry:ui",
          "target": "components/ui/menubar.tsx"
        }
      ]
    },
    {
      "name": "navigation-menu",
      "type": "registry:ui",
      "title": "Navigation Menu",
      "description": "Packed Navigation Menu — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react",
        "class-variance-authority",
        "lucide-react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/navigation-menu.tsx",
          "type": "registry:ui",
          "target": "components/ui/navigation-menu.tsx"
        }
      ]
    },
    {
      "name": "pagination",
      "type": "registry:ui",
      "title": "Pagination",
      "description": "Packed Pagination — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@packed/button",
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/pagination.tsx",
          "type": "registry:ui",
          "target": "components/ui/pagination.tsx"
        }
      ]
    },
    {
      "name": "popover",
      "type": "registry:ui",
      "title": "Popover",
      "description": "Packed Popover — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/popover.tsx",
          "type": "registry:ui",
          "target": "components/ui/popover.tsx"
        }
      ]
    },
    {
      "name": "progress",
      "type": "registry:ui",
      "title": "Progress",
      "description": "Packed Progress — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/progress.tsx",
          "type": "registry:ui",
          "target": "components/ui/progress.tsx"
        }
      ]
    },
    {
      "name": "radio-group",
      "type": "registry:ui",
      "title": "Radio Group",
      "description": "Packed Radio Group — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react",
        "lucide-react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/radio-group.tsx",
          "type": "registry:ui",
          "target": "components/ui/radio-group.tsx"
        }
      ]
    },
    {
      "name": "scroll-area",
      "type": "registry:ui",
      "title": "Scroll Area",
      "description": "Packed Scroll Area — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/scroll-area.tsx",
          "type": "registry:ui",
          "target": "components/ui/scroll-area.tsx"
        }
      ]
    },
    {
      "name": "select",
      "type": "registry:ui",
      "title": "Select",
      "description": "Native select styled to match Input, with a custom chevron.",
      "dependencies": [
        "@base-ui/react",
        "lucide-react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/select.tsx",
          "type": "registry:ui",
          "target": "components/ui/select.tsx"
        }
      ]
    },
    {
      "name": "separator",
      "type": "registry:ui",
      "title": "Separator",
      "description": "Packed Separator — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/separator.tsx",
          "type": "registry:ui",
          "target": "components/ui/separator.tsx"
        }
      ]
    },
    {
      "name": "sheet",
      "type": "registry:ui",
      "title": "Sheet",
      "description": "Packed Sheet — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react",
        "lucide-react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/sheet.tsx",
          "type": "registry:ui",
          "target": "components/ui/sheet.tsx"
        }
      ]
    },
    {
      "name": "sidebar",
      "type": "registry:ui",
      "title": "Sidebar",
      "description": "Packed Sidebar — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react",
        "class-variance-authority",
        "lucide-react"
      ],
      "registryDependencies": [
        "@packed/button",
        "@packed/input",
        "@packed/separator",
        "@packed/sheet",
        "@packed/skeleton",
        "@packed/tooltip",
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/sidebar.tsx",
          "type": "registry:ui",
          "target": "components/ui/sidebar.tsx"
        }
      ]
    },
    {
      "name": "skeleton",
      "type": "registry:ui",
      "title": "Skeleton",
      "description": "Packed Skeleton — warm, token-driven UI on sand surfaces.",
      "dependencies": [],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/skeleton.tsx",
          "type": "registry:ui",
          "target": "components/ui/skeleton.tsx"
        }
      ]
    },
    {
      "name": "slider",
      "type": "registry:ui",
      "title": "Slider",
      "description": "Packed Slider — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/slider.tsx",
          "type": "registry:ui",
          "target": "components/ui/slider.tsx"
        }
      ]
    },
    {
      "name": "sonner",
      "type": "registry:ui",
      "title": "Sonner",
      "description": "Packed Sonner — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "lucide-react",
        "sonner"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/sonner.tsx",
          "type": "registry:ui",
          "target": "components/ui/sonner.tsx"
        }
      ]
    },
    {
      "name": "spinner",
      "type": "registry:ui",
      "title": "Spinner",
      "description": "Packed Spinner — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/spinner.tsx",
          "type": "registry:ui",
          "target": "components/ui/spinner.tsx"
        }
      ]
    },
    {
      "name": "switch",
      "type": "registry:ui",
      "title": "Switch",
      "description": "On/off toggle with a soft sliding thumb. Use for settings and notification preferences.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/switch.tsx",
          "type": "registry:ui",
          "target": "components/ui/switch.tsx"
        }
      ]
    },
    {
      "name": "table",
      "type": "registry:ui",
      "title": "Table",
      "description": "Packed Table — warm, token-driven UI on sand surfaces.",
      "dependencies": [],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/table.tsx",
          "type": "registry:ui",
          "target": "components/ui/table.tsx"
        }
      ]
    },
    {
      "name": "tabs",
      "type": "registry:ui",
      "title": "Tabs",
      "description": "Underline tab bar with optional icons and counts. Controlled via `value` + `onChange`.",
      "dependencies": [
        "@base-ui/react",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/tabs.tsx",
          "type": "registry:ui",
          "target": "components/ui/tabs.tsx"
        }
      ]
    },
    {
      "name": "textarea",
      "type": "registry:ui",
      "title": "Textarea",
      "description": "Packed Textarea — warm, token-driven UI on sand surfaces.",
      "dependencies": [],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/textarea.tsx",
          "type": "registry:ui",
          "target": "components/ui/textarea.tsx"
        }
      ]
    },
    {
      "name": "theme",
      "type": "registry:theme",
      "title": "Theme",
      "description": "Packed warm-sand + sunset-orange tokens, Tailwind theme mapping, base styles, and Lora / Figtree / DM Mono via @fontsource in CSS.",
      "dependencies": [
        "@fontsource-variable/figtree",
        "@fontsource/lora",
        "@fontsource/dm-mono"
      ],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "theme-provider",
      "type": "registry:lib",
      "title": "Theme Provider",
      "description": "Light/dark switching for Packed tokens. Wrap your app once — works in Next.js and Vite. Persists to a cookie; priority: cookie, defaultTheme prop, then system.",
      "registryDependencies": [
        "@packed/theme"
      ],
      "files": [
        {
          "path": "registry/lib/theme-provider.tsx",
          "type": "registry:lib",
          "target": "lib/theme-provider.tsx"
        }
      ]
    },
    {
      "name": "toggle",
      "type": "registry:ui",
      "title": "Toggle",
      "description": "Packed Toggle — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/toggle.tsx",
          "type": "registry:ui",
          "target": "components/ui/toggle.tsx"
        }
      ]
    },
    {
      "name": "toggle-group",
      "type": "registry:ui",
      "title": "Toggle Group",
      "description": "Packed Toggle Group — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "@packed/toggle",
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/toggle-group.tsx",
          "type": "registry:ui",
          "target": "components/ui/toggle-group.tsx"
        }
      ]
    },
    {
      "name": "tooltip",
      "type": "registry:ui",
      "title": "Tooltip",
      "description": "Packed Tooltip — warm, token-driven UI on sand surfaces.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "@packed/utils"
      ],
      "files": [
        {
          "path": "registry/ui/tooltip.tsx",
          "type": "registry:ui",
          "target": "components/ui/tooltip.tsx"
        }
      ]
    },
    {
      "name": "utils",
      "type": "registry:lib",
      "title": "Utils",
      "description": "The cn() helper for composing Tailwind class names.",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "files": [
        {
          "path": "registry/lib/utils.ts",
          "type": "registry:lib",
          "target": "lib/utils.ts"
        }
      ]
    }
  ]
}
