{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "button",
  "title": "Button",
  "description": "A compact button primitive with variant and size props.",
  "files": [
    {
      "path": "registry/default/ui/button.tsx",
      "content": "import * as React from \"react\";\n\nconst variants = {\n  default: \"bg-primary text-primary-foreground hover:bg-primary/90 focus-visible:outline-ring\",\n  secondary:\n    \"bg-secondary text-secondary-foreground hover:bg-secondary/80 focus-visible:outline-ring\",\n  quiet:\n    \"bg-transparent text-foreground hover:bg-accent hover:text-accent-foreground focus-visible:outline-ring\",\n} as const;\n\nconst sizes = {\n  sm: \"h-8 px-3 text-xs\",\n  md: \"h-10 px-4 text-sm\",\n  lg: \"h-11 px-5 text-base\",\n} as const;\n\nexport type ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n  variant?: keyof typeof variants;\n  size?: keyof typeof sizes;\n};\n\nexport function Button({\n  className,\n  variant = \"default\",\n  size = \"md\",\n  type = \"button\",\n  ...props\n}: ButtonProps) {\n  return (\n    <button\n      type={type}\n      className={[\n        \"inline-flex items-center justify-center gap-2 rounded-md font-medium outline-none transition-colors active:scale-[0.96] disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-2 focus-visible:outline-offset-2\",\n        variants[variant],\n        sizes[size],\n        className,\n      ]\n        .filter(Boolean)\n        .join(\" \")}\n      {...props}\n    />\n  );\n}\n",
      "type": "registry:ui",
      "target": "components/ui/button.tsx"
    }
  ],
  "type": "registry:ui"
}