{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "button",
  "files": [
    {
      "path": "components/ui/button.tsx",
      "content": "import { Button as ButtonPrimitive } from \"@base-ui/react/button\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariantOption = {\n  base: \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent text-sm whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 data-disabled:opacity-40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-disabled:cursor-not-allowed\",\n  options: {\n    variants: {\n      variant: {\n        outline:\n          \"relative isolate overflow-hidden border-border bg-background text-foreground before:absolute before:inset-0 before:-z-1 before:transition-all before:content-[''] not-data-disabled:hover:text-accent-foreground not-data-disabled:hover:before:bg-accent not-data-disabled:active:before:bg-accent-pressed data-disabled:text-muted-foreground data-[popup-open]:before:bg-accent\",\n        secondary:\n          \"bg-secondary text-secondary-foreground not-data-disabled:hover:bg-secondary-hovered not-data-disabled:active:bg-secondary-pressed data-[popup-open]:bg-secondary-hovered data-disabled:text-muted-foreground\",\n        ghost:\n          \"not-data-disabled:hover:text-accent-foreground text-foreground not-data-disabled:hover:bg-accent not-data-disabled:active:bg-accent-pressed data-[popup-open]:bg-accent-pressed data-disabled:text-muted-foreground\",\n        link: \"text-primary-text underline-offset-4 not-data-disabled:hover:underline data-[popup-open]:underline\",\n        text: \"text-muted-foreground not-data-disabled:hover:text-foreground data-[popup-open]:text-foreground\",\n        primary:\n          \"bg-primary text-primary-foreground not-data-disabled:hover:bg-primary-hovered not-data-disabled:active:bg-primary-pressed data-[popup-open]:bg-primary-hovered\",\n        \"primary-outline\":\n          \"border-primary-text text-primary-text not-data-disabled:hover:bg-primary-text/[.08] not-data-disabled:active:bg-primary-text/[.16] data-[popup-open]:bg-primary-text/[.08]\",\n        \"primary-ghost\":\n          \"text-primary-text not-data-disabled:hover:bg-primary-text/[.08] not-data-disabled:active:bg-primary-text/[.16] data-[popup-open]:bg-primary-text/[.08]\",\n        destructive:\n          \"bg-destructive text-destructive-foreground not-data-disabled:hover:bg-destructive-hovered not-data-disabled:active:bg-destructive-pressed data-[popup-open]:bg-destructive-hovered\",\n        \"destructive-outline\":\n          \"border-destructive-text text-destructive-text not-data-disabled:hover:bg-destructive-text/[.08] not-data-disabled:active:bg-destructive-text/[.16] data-[popup-open]:bg-destructive-text/[.08]\",\n        \"destructive-ghost\":\n          \"text-destructive-text not-data-disabled:hover:bg-destructive-text/[.08] not-data-disabled:active:bg-destructive-text/[.16] data-[popup-open]:bg-destructive-text/[.08]\",\n      },\n      size: {\n        default:\n          \"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n        xs: \"h-6 gap-0.5 rounded-[min(var(--radius-md),10px)] px-2 text-xs has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\n        sm: \"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\n        lg: \"h-9 gap-1.5 px-3 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5\",\n        icon: \"size-8\",\n        \"icon-xs\": \"size-6 rounded-[min(var(--radius-md),10px)]\",\n        \"icon-sm\": \"size-7 rounded-[min(var(--radius-md),12px)]\",\n        \"icon-lg\": \"size-9\",\n      },\n    },\n    defaultVariants: {\n      variant: \"primary\",\n      size: \"default\",\n    },\n  },\n} as const\n\nconst buttonVariants = cva(\n  buttonVariantOption.base,\n  buttonVariantOption.options\n)\n\nfunction Button({\n  className,\n  variant = \"primary\",\n  size = \"default\",\n  ...props\n}: ButtonPrimitive.Props & VariantProps<typeof buttonVariants>) {\n  return (\n    <ButtonPrimitive\n      data-slot=\"button\"\n      data-variant={variant}\n      data-size={size}\n      className={cn(buttonVariants({ variant, size, className }))}\n      {...props}\n    />\n  )\n}\n\nexport { Button, buttonVariants, buttonVariantOption }\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}