{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "button",
  "title": "Button",
  "description": "Interactive button component.",
  "dependencies": ["@radix-ui/react-slot", "class-variance-authority"],
  "registryDependencies": ["@glasswave/glass"],
  "files": [
    {
      "path": "registry/glasswave/ui/button.tsx",
      "content": "import { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { type ButtonHTMLAttributes, forwardRef } from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { focusRing, glass, glassInteractive } from \"@/lib/glass\";\n\nexport const buttonVariants = cva(\n  `${glass} ${glassInteractive} ${focusRing} inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium rounded-full [&_svg]:shrink-0`,\n  {\n    variants: {\n      variant: {\n        default:\n          \"bg-[#007AFF] hover:bg-[#007AFF]/90 text-white shadow-sm border-0\",\n        outline:\n          \"bg-none text-[#007AFF] border-[#007AFF]/55 shadow-none hover:bg-[#007AFF]/10 hover:border-[#007AFF]/70 hover:shadow-none dark:text-[#409cff] dark:border-[#409cff]/55 dark:hover:border-[#409cff]/70\",\n        glass: \"\",\n        destructive: \"!text-[#FF3B30]\",\n      },\n      size: {\n        sm: \"h-8 px-3 text-xs\",\n        md: \"h-10 px-4 text-base\",\n        lg: \"h-12 px-6 text-lg\",\n        icon: \"size-10 p-0\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n      size: \"md\",\n    },\n  },\n);\n\ninterface ButtonProps\n  extends ButtonHTMLAttributes<HTMLButtonElement>,\n    VariantProps<typeof buttonVariants> {\n  asChild?: boolean;\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n  ({ className, variant, size, asChild = false, children, ...props }, ref) => {\n    const Comp = asChild ? Slot : \"button\";\n    return (\n      <Comp\n        ref={ref}\n        className={cn(buttonVariants({ variant, size }), className)}\n        {...props}\n      >\n        {children}\n      </Comp>\n    );\n  },\n);\n\nButton.displayName = \"Button\";\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}
