{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "switch",
  "title": "Switch",
  "description": "The macOS 27 toggle with a pill-shaped knob, in mini, small, medium and large sizes.",
  "dependencies": [
    "@base-ui/react"
  ],
  "registryDependencies": [
    "@cupertinoui/macos-theme"
  ],
  "files": [
    {
      "path": "registry/macos/ui/switch.tsx",
      "content": "\"use client\"\n\nimport { Switch as SwitchPrimitive } from \"@base-ui/react/switch\"\n\nimport { cn } from \"@/lib/utils\"\n\n// A macOS 27 switch: a capsule track with a pill-shaped knob. Sizes follow\n// the macOS control sizes; System Settings uses `mini` in its grouped forms.\n//   mini 36x16 (knob 21x13) · sm 44x20 (26x16) · default 54x24 (32x20) · lg 64x28 (38x24)\nfunction Switch({\n  className,\n  size = \"default\",\n  ...props\n}: SwitchPrimitive.Root.Props & {\n  size?: \"mini\" | \"sm\" | \"default\" | \"lg\"\n}) {\n  return (\n    <SwitchPrimitive.Root\n      data-slot=\"switch\"\n      data-size={size}\n      className={cn(\n        \"peer group/switch inline-flex shrink-0 items-center rounded-full transition-colors outline-none focus-visible:mac-focus-ring data-disabled:cursor-not-allowed data-disabled:opacity-40\",\n        \"data-[size=mini]:h-4 data-[size=mini]:w-9 data-[size=mini]:px-[1.5px] data-[size=sm]:h-5 data-[size=sm]:w-11 data-[size=sm]:px-0.5 data-[size=default]:h-6 data-[size=default]:w-[54px] data-[size=default]:px-0.5 data-[size=lg]:h-7 data-[size=lg]:w-16 data-[size=lg]:px-0.5\",\n        \"data-checked:bg-mac-accent data-unchecked:bg-black/[0.085] dark:data-unchecked:bg-white/[0.085] group-data-[inactive]/window:data-checked:bg-black/14 dark:group-data-[inactive]/window:data-checked:bg-white/13\",\n        className\n      )}\n      {...props}\n    >\n      <SwitchPrimitive.Thumb\n        data-slot=\"switch-thumb\"\n        className={cn(\n          \"pointer-events-none block rounded-full bg-white shadow-[0_3px_36px_rgb(0_0_0/0.05),0_0_0_0.5px_rgb(0_0_0/0.04),0_1px_2px_rgb(0_0_0/0.12)] transition-transform duration-200 dark:shadow-none dark:group-data-[inactive]/window:bg-[#e2e2e2]\",\n          \"group-data-[size=mini]/switch:h-[13px] group-data-[size=mini]/switch:w-[21px] group-data-[size=sm]/switch:h-4 group-data-[size=sm]/switch:w-[26px] group-data-[size=default]/switch:h-5 group-data-[size=default]/switch:w-8 group-data-[size=lg]/switch:h-6 group-data-[size=lg]/switch:w-[38px]\",\n          \"data-unchecked:translate-x-0 group-data-[size=mini]/switch:data-checked:translate-x-3 group-data-[size=sm]/switch:data-checked:translate-x-3.5 group-data-[size=default]/switch:data-checked:translate-x-[18px] group-data-[size=lg]/switch:data-checked:translate-x-[22px]\",\n          // Right to left, the knob moves the other way.\n          \"rtl:group-data-[size=mini]/switch:data-checked:-translate-x-3 rtl:group-data-[size=sm]/switch:data-checked:-translate-x-3.5 rtl:group-data-[size=default]/switch:data-checked:-translate-x-[18px] rtl:group-data-[size=lg]/switch:data-checked:-translate-x-[22px]\"\n        )}\n      />\n    </SwitchPrimitive.Root>\n  )\n}\n\nexport { Switch }\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}