{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "switch",
  "title": "Switch",
  "description": "A control that allows the user to toggle between checked and unchecked states.",
  "dependencies": [
    "@base-ui/react",
    "clsx",
    "tailwind-merge"
  ],
  "registryDependencies": [
    "https://optics.agusmayol.com.ar/r/button.json",
    "https://optics.agusmayol.com.ar/r/utils.json"
  ],
  "files": [
    {
      "path": "registry/optics/switch.jsx",
      "content": "\"use client\";\n\nimport { Switch as SwitchPrimitive } from \"@base-ui/react/switch\";\nimport { buttonVariants } from \"@/registry/optics/button\";\nimport { cn } from \"@/lib/utils\";\n\nfunction Switch({\n\tclassName = \"\",\n\tsize = \"default\",\n\tvariant = \"default\",\n\t...props\n}) {\n\treturn (\n\t\t<SwitchPrimitive.Root\n\t\t\tdata-slot=\"switch\"\n\t\t\tdata-size={size}\n\t\t\tclassName={cn(\n\t\t\t\t\"data-checked:bg-green-600 data-unchecked:bg-input focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 dark:data-unchecked:bg-input/80 shrink-0 rounded-full squircle-none border border-transparent focus-visible:ring-[2px] aria-invalid:ring-[2px] data-[size=default]:h-[16.6px] data-[size=default]:w-[28px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] peer group/switch relative inline-flex items-center transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-disabled:cursor-not-allowed data-disabled:opacity-50 cursor-pointer\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<SwitchPrimitive.Thumb\n\t\t\t\tdata-slot=\"switch-thumb\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-background dark:data-unchecked:bg-foreground dark:data-checked:bg-primary-foreground rounded-full squircle-none group-data-[size=default]/switch:size-3.5 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 pointer-events-none block ring-0 transition-transform\",\n\t\t\t\t\tvariant &&\n\t\t\t\t\t\tbuttonVariants({\n\t\t\t\t\t\t\tvariant: variant,\n\t\t\t\t\t\t\tsize: \"icon\",\n\t\t\t\t\t\t\tclassName: \"-mt-0.25\",\n\t\t\t\t\t\t}),\n\t\t\t\t)}\n\t\t\t/>{\" \"}\n\t\t</SwitchPrimitive.Root>\n\t);\n}\n\nSwitch.displayName = \"Switch\";\n\nexport { Switch };\n",
      "type": "registry:component",
      "target": "components/optics/switch.jsx"
    }
  ],
  "type": "registry:component"
}