{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "button", "type": "registry:ui", "dependencies": [], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "registry/new-york/ui/button.ripple", "content": "import type { Component } from 'ripple';\r\nimport { cn } from \"@/lib/utils\";\r\nimport { cva } from \"class-variance-authority\";\r\nimport type { VariantProps } from \"class-variance-authority\";\r\n\r\n\r\nconst buttonVariants = cva(\r\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\r\n {\r\n variants: {\r\n variant: {\r\n default:\r\n \"bg-primary text-primary-foreground shadow-xs hover:bg-/90\",\r\n destructive:\r\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\r\n outline:\r\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\r\n secondary:\r\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\r\n ghost:\r\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\r\n link: \"text-primary underline-offset-4 hover:underline\",\r\n },\r\n size: {\r\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\r\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\r\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\r\n icon: \"size-9\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n }\r\n)\r\n\r\nexport component Button(props: {\r\n $children?: Component\r\n $class?: string\r\n $variant?: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link'\r\n $size?: 'default' | 'sm' | 'lg' | 'icon'\r\n onClick?: (e: MouseEvent) => void \r\n} & VariantProps) {\r\n\t\r\n if(props?.$children) {\r\n const $children = props.$children\r\n <$children />\r\n }\r\n \r\n}\r\n", "type": "registry:ui" } ] }