{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "button",
  "title": "Button",
  "description": "ArchwayAI standard button built on Radix Slot and Tailwind tokens.",
  "dependencies": [
    "@radix-ui/react-slot",
    "class-variance-authority",
    "clsx",
    "tailwind-merge"
  ],
  "files": [
    {
      "path": "components/ui/button.tsx",
      "content": "import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../../lib/utils';\n\nconst buttonVariants = cva(\n  \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n  {\n    variants: {\n      variant: {\n        default:\n          'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n        destructive:\n          'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n        outline:\n          'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n        secondary:\n          'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n        ghost:\n          'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n        link: 'text-primary underline-offset-4 hover:underline',\n      },\n      size: {\n        default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n        sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n        lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n        icon: 'size-9',\n      },\n    },\n    defaultVariants: {\n      variant: 'default',\n      size: 'default',\n    },\n  },\n);\n\nfunction Button({\n  className,\n  variant,\n  size,\n  asChild = false,\n  ...props\n}: React.ComponentProps<'button'> &\n  VariantProps<typeof buttonVariants> & {\n    asChild?: boolean;\n  }) {\n  const Comp = asChild ? Slot : 'button';\n\n  return (\n    <Comp\n      data-slot=\"button\"\n      className={cn(buttonVariants({ variant, size, className }))}\n      {...props}\n    />\n  );\n}\n\nexport { Button, buttonVariants };",
      "type": "registry:component"
    },
    {
      "path": "components/ui/index.ts",
      "content": "// Enhanced components (replaced existing)\nexport * from \"./button\";\nexport * from \"./card\";\nexport * from \"./input\";\n\n// Form primitives\nexport * from \"./label\";\nexport * from \"./checkbox\";\nexport * from \"./radio-group\";\nexport * from \"./switch\";\nexport * from \"./textarea\";\nexport * from \"./select\";\n// Feedback components\nexport * from \"./alert\";\nexport * from \"./badge\";\n\n// Layout & Interaction Primitives (Phase 1.2)\nexport * from \"./tabs\";\nexport * from \"./dialog\";\nexport * from \"./popover\";\nexport * from \"./tooltip\";\nexport * from \"./dropdown-menu\";\nexport * from \"./separator\";\n\n// Data Display Components (Phase 1.2)\nexport * from \"./table\";\nexport * from \"./pagination\";\nexport * from \"./skeleton\";\nexport * from \"./progress\";\nexport * from \"./empty-state\";\n\n// Advanced Components (Phase 1.4)\nexport * from \"./avatar\";\nexport * from \"./scroll-area\";\nexport * from \"./sheet\";\nexport * from \"./sidebar\";\nexport * from \"./command\";\nexport * from \"./collapsible\";\nexport * from \"./toggle\";\nexport * from \"./toggle-group\";\n",
      "type": "registry:lib"
    },
    {
      "path": "lib/utils.ts",
      "content": "import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs));\n}",
      "type": "registry:lib"
    }
  ],
  "cssVars": {
    "theme": {
      "--button-radius": "var(--radius-md)"
    }
  },
  "docs": "Uses shared Tailwind tokens. Import with: import { Button } from '@archwayai/design-system/components/ui/button'",
  "type": "registry:ui"
}