{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "abnormal",
  "homepage": "https://ui.abnormalhq.com",
  "items": [
    {
      "name": "theme",
      "type": "registry:style",
      "title": "Abnormal Theme",
      "description": "Color, type, radius and motion tokens, with light and dark values. Import abnormal.css once after Tailwind.",
      "extends": "none",
      "files": [
        {
          "path": "registry/styles/abnormal.css",
          "type": "registry:file",
          "target": "styles/abnormal.css"
        }
      ]
    },
    {
      "name": "fonts",
      "type": "registry:item",
      "title": "Abnormal Fonts",
      "description": "@font-face rules for projects without next/font. The woff2 files are served at /fonts.",
      "files": [
        {
          "path": "registry/styles/abnormal-fonts.css",
          "type": "registry:file",
          "target": "styles/abnormal-fonts.css"
        }
      ]
    },
    {
      "name": "utils",
      "type": "registry:lib",
      "title": "Utils",
      "description": "The cn class merger, taught the theme's custom radius, shadow and animation names.",
      "dependencies": ["cn@^0.5.0"],
      "files": [
        {
          "path": "registry/lib/utils.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "brand-mark",
      "type": "registry:ui",
      "title": "Brand Mark",
      "description": "The abnormal tile and wordmark.",
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/brand/brand-mark.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "alert",
      "type": "registry:ui",
      "title": "Alert",
      "description": "An inline notice with an icon, title and description.",
      "dependencies": ["class-variance-authority"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/alert.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "alert-dialog",
      "type": "registry:ui",
      "title": "Alert Dialog",
      "description": "A modal confirmation that interrupts the flow.",
      "dependencies": ["radix-ui"],
      "registryDependencies": ["@abnormal/button", "@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/alert-dialog.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "badge",
      "type": "registry:ui",
      "title": "Badge",
      "description": "A small chip for counts, domains and roles.",
      "dependencies": ["class-variance-authority", "radix-ui"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/badge.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "button",
      "type": "registry:ui",
      "title": "Button",
      "description": "The 32px button with primary, outline, secondary, ghost, destructive and link variants.",
      "dependencies": ["class-variance-authority", "radix-ui"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/button.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "card",
      "type": "registry:ui",
      "title": "Card",
      "description": "A thin-bordered panel without a fill, optionally rendered as a link.",
      "dependencies": ["class-variance-authority", "radix-ui"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/card.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "checkbox",
      "type": "registry:ui",
      "title": "Checkbox",
      "description": "A checkbox control.",
      "dependencies": ["lucide-react", "radix-ui"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/checkbox.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "context-menu",
      "type": "registry:ui",
      "title": "Context Menu",
      "description": "A right-click menu.",
      "dependencies": ["lucide-react", "radix-ui"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/context-menu.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "dialog",
      "type": "registry:ui",
      "title": "Dialog",
      "description": "A modal dialog with a translatable close button.",
      "dependencies": ["lucide-react", "radix-ui"],
      "registryDependencies": ["@abnormal/button", "@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/dialog.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "disclosure",
      "type": "registry:ui",
      "title": "Disclosure",
      "description": "Questions and answers on native details, with no client JavaScript.",
      "dependencies": ["lucide-react"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/disclosure.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "dropdown-menu",
      "type": "registry:ui",
      "title": "Dropdown Menu",
      "description": "A menu of actions or choices opened from a trigger.",
      "dependencies": ["lucide-react", "radix-ui"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/dropdown-menu.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "field-message",
      "type": "registry:ui",
      "title": "Field Message",
      "description": "The line under a form field: a dot and one sentence, with the color following the tone.",
      "dependencies": ["class-variance-authority"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/field-message.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "input",
      "type": "registry:ui",
      "title": "Input",
      "description": "A single-line text input.",
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/input.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "input-group",
      "type": "registry:ui",
      "title": "Input Group",
      "description": "An input sharing one border with a fixed suffix or quiet text buttons.",
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/input-group.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "label",
      "type": "registry:ui",
      "title": "Label",
      "description": "A form label.",
      "dependencies": ["radix-ui"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/label.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "native-select",
      "type": "registry:ui",
      "title": "Native Select",
      "description": "The browser's own select, styled like Input.",
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/native-select.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "popover",
      "type": "registry:ui",
      "title": "Popover",
      "description": "A floating panel anchored to a trigger.",
      "dependencies": ["radix-ui"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/popover.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "select",
      "type": "registry:ui",
      "title": "Select",
      "description": "A custom select with a popover list.",
      "dependencies": ["lucide-react", "radix-ui"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/select.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "sheet",
      "type": "registry:ui",
      "title": "Sheet",
      "description": "A drawer attached to the left or right edge, with a translatable close button.",
      "dependencies": ["lucide-react", "radix-ui"],
      "registryDependencies": ["@abnormal/button", "@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/sheet.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "skeleton",
      "type": "registry:ui",
      "title": "Skeleton",
      "description": "A loading placeholder.",
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/skeleton.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "spinner",
      "type": "registry:ui",
      "title": "Spinner",
      "description": "A small ring that spins in the current text color.",
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/spinner.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "sonner",
      "type": "registry:ui",
      "title": "Toaster",
      "description": "Toast notifications on sonner, following the next-themes theme.",
      "dependencies": ["lucide-react", "next-themes", "sonner"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/sonner.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "status-label",
      "type": "registry:ui",
      "title": "Status Label",
      "description": "A colored dot and one word that state a status.",
      "dependencies": ["class-variance-authority"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/status-label.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "switch",
      "type": "registry:ui",
      "title": "Switch",
      "description": "An on and off toggle.",
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/switch.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "table",
      "type": "registry:ui",
      "title": "Table",
      "description": "Tables with plain and bordered variants, pinned columns and row click helpers.",
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/table.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "textarea",
      "type": "registry:ui",
      "title": "Textarea",
      "description": "A multi-line text input.",
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/textarea.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tooltip",
      "type": "registry:ui",
      "title": "Tooltip",
      "description": "A short hint shown on hover or focus.",
      "dependencies": ["radix-ui"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/ui/tooltip.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "container",
      "type": "registry:ui",
      "title": "Container",
      "description": "The 1184px page column with responsive gutters.",
      "dependencies": ["radix-ui"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/marketing/container.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "icon-tile",
      "type": "registry:ui",
      "title": "Icon Tile",
      "description": "A square tile that holds an icon.",
      "dependencies": ["class-variance-authority"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/marketing/icon-tile.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "prose",
      "type": "registry:ui",
      "title": "Prose",
      "description": "Styles for long-form copy such as rendered MDX.",
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/marketing/prose.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "section-heading",
      "type": "registry:ui",
      "title": "Section Heading",
      "description": "The eyebrow label, section title and section spacing.",
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/marketing/section-heading.tsx",
          "type": "registry:ui"
        }
      ],
      "dependencies": ["radix-ui"]
    },
    {
      "name": "text-link",
      "type": "registry:ui",
      "title": "Text Link",
      "description": "A quiet link that brightens on hover.",
      "dependencies": ["radix-ui"],
      "registryDependencies": ["@abnormal/utils"],
      "files": [
        {
          "path": "registry/marketing/text-link.tsx",
          "type": "registry:ui"
        }
      ]
    }
  ]
}
