{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "ordering",
  "homepage": "https://ordering.co",
  "items": [
    {
      "name": "ordering-utils",
      "type": "registry:lib",
      "title": "Ordering.co utilities",
      "description": "The class name merge helper required by governed Ordering.co wrappers.",
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [{ "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }]
    },
    {
      "name": "ordering-button",
      "type": "registry:ui",
      "title": "Ordering.co Button",
      "description": "Base UI button wrapper with Ordering.co density, states, focus and icon behavior.",
      "dependencies": ["@base-ui/react", "class-variance-authority", "clsx", "tailwind-merge"],
      "files": [
        { "path": "components/ui/button.tsx", "type": "registry:ui", "target": "components/ui/button.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-input",
      "type": "registry:ui",
      "title": "Ordering.co Input",
      "description": "Single-line input wrapper with governed focus, density and invalid states.",
      "dependencies": ["@base-ui/react", "clsx", "tailwind-merge"],
      "files": [
        { "path": "components/ui/input.tsx", "type": "registry:ui", "target": "components/ui/input.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-textarea",
      "type": "registry:ui",
      "title": "Ordering.co Textarea",
      "description": "Multiline input wrapper with governed focus, density and invalid states.",
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        { "path": "components/ui/textarea.tsx", "type": "registry:ui", "target": "components/ui/textarea.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-label",
      "type": "registry:ui",
      "title": "Ordering.co Label",
      "description": "Accessible form label wrapper for Ordering.co controls.",
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        { "path": "components/ui/label.tsx", "type": "registry:ui", "target": "components/ui/label.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-checkbox",
      "type": "registry:ui",
      "title": "Ordering.co Checkbox",
      "description": "Checkbox wrapper with semantic states and Lucide check indicator.",
      "dependencies": ["@base-ui/react", "clsx", "lucide-react", "tailwind-merge"],
      "files": [
        { "path": "components/ui/checkbox.tsx", "type": "registry:ui", "target": "components/ui/checkbox.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-field",
      "type": "registry:ui",
      "title": "Ordering.co Field",
      "description": "Composable field layout with label, description and validation support.",
      "dependencies": ["class-variance-authority", "clsx", "tailwind-merge"],
      "files": [
        { "path": "components/ui/field.tsx", "type": "registry:ui", "target": "components/ui/field.tsx" },
        { "path": "components/ui/label.tsx", "type": "registry:ui", "target": "components/ui/label.tsx" },
        { "path": "components/ui/separator.tsx", "type": "registry:ui", "target": "components/ui/separator.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-input-group",
      "type": "registry:ui",
      "title": "Ordering.co Input Group",
      "description": "Composable input group for prefixes, suffixes and inline actions.",
      "dependencies": ["@base-ui/react", "class-variance-authority", "clsx", "tailwind-merge"],
      "files": [
        { "path": "components/ui/input-group.tsx", "type": "registry:ui", "target": "components/ui/input-group.tsx" },
        { "path": "components/ui/button.tsx", "type": "registry:ui", "target": "components/ui/button.tsx" },
        { "path": "components/ui/input.tsx", "type": "registry:ui", "target": "components/ui/input.tsx" },
        { "path": "components/ui/textarea.tsx", "type": "registry:ui", "target": "components/ui/textarea.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-select",
      "type": "registry:ui",
      "title": "Ordering.co Select",
      "description": "Select wrapper with keyboard navigation and Lucide indicators.",
      "dependencies": ["@base-ui/react", "clsx", "lucide-react", "tailwind-merge"],
      "files": [
        { "path": "components/ui/select.tsx", "type": "registry:ui", "target": "components/ui/select.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-switch",
      "type": "registry:ui",
      "title": "Ordering.co Switch",
      "description": "Compact switch wrapper with accessible checked and disabled states.",
      "dependencies": ["@base-ui/react", "clsx", "tailwind-merge"],
      "files": [
        { "path": "components/ui/switch.tsx", "type": "registry:ui", "target": "components/ui/switch.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-table",
      "type": "registry:ui",
      "title": "Ordering.co Table",
      "description": "Responsive data table primitives at Ordering.co product density.",
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        { "path": "components/ui/table.tsx", "type": "registry:ui", "target": "components/ui/table.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-tabs",
      "type": "registry:ui",
      "title": "Ordering.co Tabs",
      "description": "Tabs wrapper with product density and keyboard interaction.",
      "dependencies": ["@base-ui/react", "class-variance-authority", "clsx", "tailwind-merge"],
      "files": [
        { "path": "components/ui/tabs.tsx", "type": "registry:ui", "target": "components/ui/tabs.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-badge",
      "type": "registry:ui",
      "title": "Ordering.co Badge",
      "description": "Compact semantic badge wrapper for labels and states.",
      "dependencies": ["@base-ui/react", "class-variance-authority", "clsx", "tailwind-merge"],
      "files": [
        { "path": "components/ui/badge.tsx", "type": "registry:ui", "target": "components/ui/badge.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-status",
      "type": "registry:ui",
      "title": "Ordering.co Status",
      "description": "Semantic status badge that pairs text, signal and soft state color.",
      "dependencies": ["@base-ui/react", "class-variance-authority", "clsx", "tailwind-merge"],
      "files": [
        { "path": "components/product/status-badge.tsx", "type": "registry:ui", "target": "components/product/status-badge.tsx" },
        { "path": "components/ui/badge.tsx", "type": "registry:ui", "target": "components/ui/badge.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-dialog",
      "type": "registry:ui",
      "title": "Ordering.co Dialog",
      "description": "Accessible modal dialog wrapper with governed actions and focus treatment.",
      "dependencies": ["@base-ui/react", "class-variance-authority", "clsx", "lucide-react", "tailwind-merge"],
      "files": [
        { "path": "components/ui/dialog.tsx", "type": "registry:ui", "target": "components/ui/dialog.tsx" },
        { "path": "components/ui/button.tsx", "type": "registry:ui", "target": "components/ui/button.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-alert-dialog",
      "type": "registry:ui",
      "title": "Ordering.co Alert Dialog",
      "description": "Confirmation dialog wrapper for destructive and consequential actions.",
      "dependencies": ["@base-ui/react", "class-variance-authority", "clsx", "tailwind-merge"],
      "files": [
        { "path": "components/ui/alert-dialog.tsx", "type": "registry:ui", "target": "components/ui/alert-dialog.tsx" },
        { "path": "components/ui/button.tsx", "type": "registry:ui", "target": "components/ui/button.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-dropdown-menu",
      "type": "registry:ui",
      "title": "Ordering.co Dropdown Menu",
      "description": "Menu wrapper with keyboard interaction and Lucide affordances.",
      "dependencies": ["@base-ui/react", "clsx", "lucide-react", "tailwind-merge"],
      "files": [
        { "path": "components/ui/dropdown-menu.tsx", "type": "registry:ui", "target": "components/ui/dropdown-menu.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-popover",
      "type": "registry:ui",
      "title": "Ordering.co Popover",
      "description": "Anchored popover wrapper for compact, contextual controls.",
      "dependencies": ["@base-ui/react", "clsx", "tailwind-merge"],
      "files": [
        { "path": "components/ui/popover.tsx", "type": "registry:ui", "target": "components/ui/popover.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-tooltip",
      "type": "registry:ui",
      "title": "Ordering.co Tooltip",
      "description": "Tooltip wrapper for concise contextual help.",
      "dependencies": ["@base-ui/react", "clsx", "tailwind-merge"],
      "files": [
        { "path": "components/ui/tooltip.tsx", "type": "registry:ui", "target": "components/ui/tooltip.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-command",
      "type": "registry:ui",
      "title": "Ordering.co Command",
      "description": "Command palette primitives with accessible dialog integration.",
      "dependencies": ["@base-ui/react", "class-variance-authority", "clsx", "cmdk", "lucide-react", "tailwind-merge"],
      "files": [
        { "path": "components/ui/command.tsx", "type": "registry:ui", "target": "components/ui/command.tsx" },
        { "path": "components/ui/dialog.tsx", "type": "registry:ui", "target": "components/ui/dialog.tsx" },
        { "path": "components/ui/input-group.tsx", "type": "registry:ui", "target": "components/ui/input-group.tsx" },
        { "path": "components/ui/button.tsx", "type": "registry:ui", "target": "components/ui/button.tsx" },
        { "path": "components/ui/input.tsx", "type": "registry:ui", "target": "components/ui/input.tsx" },
        { "path": "components/ui/textarea.tsx", "type": "registry:ui", "target": "components/ui/textarea.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-toast",
      "type": "registry:ui",
      "title": "Ordering.co Toast",
      "description": "Toast manager and notification primitives with semantic feedback states.",
      "dependencies": ["@base-ui/react", "class-variance-authority", "clsx", "lucide-react", "tailwind-merge"],
      "files": [
        { "path": "components/ui/toast.tsx", "type": "registry:ui", "target": "components/ui/toast.tsx" },
        { "path": "components/ui/button.tsx", "type": "registry:ui", "target": "components/ui/button.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-alert",
      "type": "registry:ui",
      "title": "Ordering.co Alert",
      "description": "Semantic inline alert wrapper for status, errors and recovery guidance.",
      "dependencies": ["class-variance-authority", "clsx", "tailwind-merge"],
      "files": [
        { "path": "components/ui/alert.tsx", "type": "registry:ui", "target": "components/ui/alert.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-separator",
      "type": "registry:ui",
      "title": "Ordering.co Separator",
      "description": "Structural divider wrapper for grouped product content.",
      "dependencies": ["@base-ui/react", "clsx", "tailwind-merge"],
      "files": [
        { "path": "components/ui/separator.tsx", "type": "registry:ui", "target": "components/ui/separator.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-skeleton",
      "type": "registry:ui",
      "title": "Ordering.co Skeleton",
      "description": "Loading placeholder wrapper that honors the governed motion contract.",
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        { "path": "components/ui/skeleton.tsx", "type": "registry:ui", "target": "components/ui/skeleton.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-spinner",
      "type": "registry:ui",
      "title": "Ordering.co Spinner",
      "description": "Lucide-based loading spinner wrapper for indeterminate work.",
      "dependencies": ["clsx", "lucide-react", "tailwind-merge"],
      "files": [
        { "path": "components/ui/spinner.tsx", "type": "registry:ui", "target": "components/ui/spinner.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-button-group",
      "type": "registry:ui",
      "title": "Ordering.co Button Group",
      "description": "Composable button group wrapper for related compact actions.",
      "dependencies": ["@base-ui/react", "class-variance-authority", "clsx", "tailwind-merge"],
      "files": [
        { "path": "components/ui/button-group.tsx", "type": "registry:ui", "target": "components/ui/button-group.tsx" },
        { "path": "components/ui/separator.tsx", "type": "registry:ui", "target": "components/ui/separator.tsx" },
        { "path": "lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" }
      ]
    },
    {
      "name": "ordering-product-contract",
      "type": "registry:lib",
      "title": "Ordering.co Product Contract",
      "description": "Portable typography, density, radius, focus and icon contract for Ordering.co product surfaces.",
      "files": [{ "path": "components/product/product-contract.ts", "type": "registry:lib", "target": "components/product/product-contract.ts" }]
    }
  ]
}
