{"name":"button","title":"Button","type":"registry:ui","files":[{"path":"src/components/ui/button.tsx","type":"registry:ui","target":"@ui/button.tsx","content":"\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"./lib/utils\";\n\ntype Variant = \"default\" | \"secondary\" | \"outline\" | \"ghost\" | \"link\";\ntype Size = \"default\" | \"sm\" | \"lg\" | \"icon\";\n\nexport type ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n  variant?: Variant;\n  size?: Size;\n  /** Dual-mode: false renders instantly with no motion. Default true. */\n  animated?: boolean;\n};\n\nconst variants: Record<Variant, string> = {\n  default: \"border-2 border-dashed border-foreground bg-card text-foreground hover:border-solid hover:bg-primary hover:text-primary-foreground\",\n  secondary: \"border border-border bg-secondary text-secondary-foreground hover:bg-secondary/70\",\n  outline: \"border border-foreground bg-transparent hover:bg-secondary\",\n  ghost: \"hover:bg-secondary\",\n  link: \"text-accent-strong underline-offset-4 hover:underline\",\n};\n\nconst sizes: Record<Size, string> = {\n  default: \"h-9 px-4 text-[13px]\",\n  sm: \"h-8 px-3 text-xs\",\n  lg: \"h-11 px-7 text-sm\",\n  icon: \"size-9\",\n};\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n  ({ className, variant = \"default\", size = \"default\", animated = true, ...props }, ref) => (\n    <button\n      ref={ref}\n      className={cn(\n        \"inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md font-mono uppercase tracking-[0.15em] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 disabled:transition-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n        animated\n          ? \"transition-all duration-150 hover:scale-[1.02] active:scale-[0.97] motion-reduce:transition-none motion-reduce:hover:scale-100 motion-reduce:active:scale-100\"\n          : \"transition-none\",\n        variants[variant],\n        sizes[size],\n        className\n      )}\n      {...props}\n    />\n  )\n);\nButton.displayName = \"Button\";\n\nexport { Button };\n"}],"registryDependencies":["https://ui.bigbullapp.com/r/utils.json"]}