{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "switch", "title": "Switch", "description": "Sharp iOS-inspired on/off switch: primary checked state, boxed thumb, no hover/radius/shadow, keyboard-first focus-visible feedback.", "dependencies": [ "@radix-ui/react-switch" ], "registryDependencies": [ "utils", "theme-catppuccin-mocha", "font-jetbrains-mono" ], "files": [ { "path": "registry/ui/switch.tsx", "content": "import * as React from \"react\";\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\nconst switchVariants = cva(\n\t\"peer inline-flex shrink-0 items-center border font-mono outline-none\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tdefault:\n\t\t\t\t\t\"h-6 w-11 p-0.5 focus-visible:ring-1 focus-visible:ring-ring\",\n\t\t\t\tsm: \"h-5 w-9 p-0.5 focus-visible:ring-1 focus-visible:ring-ring\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"default\",\n\t\t},\n\t},\n);\n\nconst switchThumbVariants = cva(\n\t\"block border bg-foreground\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tdefault:\n\t\t\t\t\t\"size-4 border-border data-[state=checked]:translate-x-5\",\n\t\t\t\tsm: \"size-3 border-border data-[state=checked]:translate-x-4\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"default\",\n\t\t},\n\t},\n);\n\ninterface SwitchProps\n\textends React.ComponentProps,\n\t\tVariantProps {}\n\nfunction Switch({ className, size, ...props }: SwitchProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport { Switch };\n", "type": "registry:ui" } ], "type": "registry:ui" }