{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "button", "title": "Button", "description": "A Base UI-backed action with restrained Manner variants.", "dependencies": [ "@base-ui/react@^1.6.0", "class-variance-authority@^0.7.1" ], "registryDependencies": [ "@manner/utils", "@manner/manner-theme" ], "files": [ { "path": "registry/manner/ui/button.tsx", "content": "\"use client\"\n\nimport { Button as BaseButton } from \"@base-ui/react/button\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/cn\"\n\nconst buttonVariants = cva(\n \"inline-flex min-h-10 items-center justify-center gap-2 rounded-[var(--radius-sm,6px)] px-4 text-sm font-medium transition-[color,background-color,border-color,transform] duration-150 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--focus)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50 active:translate-y-px\",\n {\n variants: {\n variant: {\n primary: \"border border-[var(--ink)] bg-[var(--ink)] text-[var(--canvas)] hover:border-[var(--accent)] hover:bg-[var(--accent)]\",\n secondary: \"border border-[var(--border)] bg-[var(--surface-inset)] text-[var(--ink)] hover:border-[var(--ink-secondary)]\",\n outline: \"border border-[var(--border)] bg-[var(--surface)] text-[var(--ink)] hover:border-[var(--accent)] hover:text-[var(--accent)]\",\n ghost: \"border border-transparent bg-transparent text-[var(--ink-secondary)] hover:bg-[var(--surface-inset)] hover:text-[var(--ink)]\",\n danger: \"border border-[color-mix(in_oklab,var(--danger)_38%,var(--border))] bg-[color-mix(in_oklab,var(--danger)_10%,transparent)] text-[var(--danger)] hover:bg-[var(--danger)] hover:text-white\",\n },\n size: {\n sm: \"min-h-8 px-3 text-xs\",\n md: \"min-h-10 px-4 text-sm\",\n lg: \"min-h-12 px-5 text-base\",\n icon: \"size-10 min-h-10 px-0\",\n },\n },\n defaultVariants: { variant: \"primary\", size: \"md\" },\n },\n)\n\ntype ButtonProps = Omit, \"className\"> &\n VariantProps & { className?: string }\n\nfunction Button({ className, variant, size, ...props }: ButtonProps) {\n return (\n \n )\n}\n\nexport { Button, buttonVariants, type ButtonProps }\n", "type": "registry:ui" } ], "type": "registry:ui" }