{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "button",
  "dependencies": [
    "react-aria-components",
    "tailwind-variants"
  ],
  "registryDependencies": [
    "https://taki-ui.com/r/utils.json"
  ],
  "files": [
    {
      "path": "registry/new-york/ui/button.tsx",
      "content": "\"use client\"\n\nimport React from \"react\"\nimport {\n  Button as AriaButton,\n  composeRenderProps,\n  ButtonProps as RACButtonProps,\n} from \"react-aria-components\"\nimport { tv } from \"tailwind-variants\"\n\nimport { focusRing } from \"@/lib/utils\"\n\nexport interface ButtonProps extends RACButtonProps {\n  /** @default 'default' */\n  variant?:\n    | \"default\"\n    | \"destructive\"\n    | \"outline\"\n    | \"secondary\"\n    | \"ghost\"\n    | \"link\"\n  /** @default 'default' */\n  size?: \"default\" | \"sm\" | \"lg\" | \"icon\" | \"icon-sm\" | \"icon-lg\"\n}\n\nexport const buttonVariants = tv({\n  extend: focusRing,\n  base: 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all cursor-default outline-none border border-transparent [&_svg]:pointer-events-none [&_svg:not([class*=\"size-\"])]:size-4 shrink-0 [&_svg]:shrink-0',\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 dark:bg-destructive/60\",\n      outline:\n        \"border-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: \"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    },\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      \"icon-xs\": \"size-6\",\n      \"icon-sm\": \"size-8\",\n      \"icon-lg\": \"size-10\",\n    },\n    isDisabled: {\n      true: \"pointer-events-none opacity-50\",\n    },\n    isPending: {\n      true: \"text-transparent\",\n    },\n  },\n  defaultVariants: {\n    variant: \"default\",\n    size: \"default\",\n  },\n})\n\nexport function Button(props: ButtonProps) {\n  return (\n    <AriaButton\n      {...props}\n      className={composeRenderProps(props.className, (className, renderProps) =>\n        buttonVariants({\n          ...renderProps,\n          variant: props.variant,\n          size: props.size,\n          className,\n        })\n      )}\n    >\n      {composeRenderProps(props.children, (children) => (\n        <>{children}</>\n      ))}\n    </AriaButton>\n  )\n}\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}