{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "dependencies": [
    "react-aria-components"
  ],
  "files": [
    {
      "content": "export * from \"./button\";\nexport * from \"./styles\";\n",
      "path": "src/registry/ui/button/index.ts",
      "type": "registry:ui"
    },
    {
      "content": "\"use client\";\n\nimport type { VariantProps } from \"cva\";\nimport { composeRenderProps, Button as RACButton } from \"react-aria-components\";\nimport { ButtonStyles } from \"./styles\";\n\nexport interface ButtonProps\n  extends React.ComponentProps<typeof RACButton>,\n    VariantProps<typeof ButtonStyles> {}\n\nexport function Button({ className, variant, size, ...props }: ButtonProps) {\n  return (\n    <RACButton\n      className={composeRenderProps(className, (className) =>\n        ButtonStyles({ className, size, variant })\n      )}\n      data-slot=\"button\"\n      {...props}\n    />\n  );\n}\n\nexport { RACButton };\n",
      "path": "src/registry/ui/button/button.tsx",
      "type": "registry:ui"
    },
    {
      "content": "import { cva } from \"~/registry/lib/cva\";\n\nexport const ButtonStyles = cva({\n  base: [\n    \"inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-none transition-all\",\n    \"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\",\n    \"disabled:cursor-not-allowed disabled:opacity-50\",\n    \"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40\",\n    \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n    \"pressed:scale-95\",\n  ],\n\n  variants: {\n    variant: {\n      default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n      destructive:\n        \"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40\",\n      outline:\n        \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50\",\n      secondary: \"bg-secondary text-secondary-foreground 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      unstyled: null,\n    },\n    size: {\n      default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n      sm: \"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5\",\n      lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n      icon: \"size-9\",\n      \"icon-sm\": \"size-8\",\n      \"icon-lg\": \"size-10\",\n    },\n  },\n  defaultVariants: {\n    variant: \"default\",\n    size: \"default\",\n  },\n});\n",
      "path": "src/registry/ui/button/styles.ts",
      "type": "registry:ui"
    }
  ],
  "name": "button",
  "registryDependencies": [
    "@kanpeki/cva",
    "@kanpeki/custom-plugin"
  ],
  "type": "registry:ui"
}