{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "switch",
  "title": "Switch",
  "description": "A controlled or uncontrolled switch with clear pressed depth.",
  "registryDependencies": [
    "@neumorphism-ui/utils"
  ],
  "files": [
    {
      "path": "src/components/ui/switch.tsx",
      "content": "\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\ninterface SwitchProps\n  extends Omit<React.ComponentProps<\"input\">, \"onChange\" | \"size\" | \"type\"> {\n  onChange?: React.ChangeEventHandler<HTMLInputElement>;\n  onCheckedChange?: (checked: boolean) => void;\n}\n\nfunction Switch({\n  className,\n  disabled,\n  onChange,\n  onCheckedChange,\n  ...props\n}: SwitchProps) {\n  return (\n    <span\n      data-slot=\"switch-root\"\n      className={cn(\"relative inline-flex h-6 w-11 shrink-0 align-middle\", className)}\n    >\n      <input\n        type=\"checkbox\"\n        role=\"switch\"\n        data-slot=\"switch\"\n        className=\"peer absolute inset-x-0 -inset-y-2.5 z-10 m-0 h-11 w-full cursor-pointer appearance-none rounded-full opacity-0 disabled:cursor-not-allowed\"\n        disabled={disabled}\n        onChange={(event) => {\n          onChange?.(event);\n          onCheckedChange?.(event.currentTarget.checked);\n        }}\n        {...props}\n      />\n      <span\n        aria-hidden=\"true\"\n        data-slot=\"switch-track\"\n        className=\"flex size-full items-center rounded-full border border-[color:var(--neu-edge)] bg-[var(--neu-surface)] p-0.5 shadow-[var(--neu-shadow-inset)] transition-[background-color,box-shadow] duration-[var(--neu-duration)] motion-reduce:transition-none peer-checked:[&>span]:bg-[var(--primary)] peer-checked:[&>span]:[background-image:var(--neu-fill-primary)] peer-disabled:opacity-50 peer-disabled:shadow-none peer-disabled:border-[color:var(--muted-foreground)]/40 peer-focus-visible:outline-2 peer-focus-visible:outline-solid peer-focus-visible:outline-offset-3 peer-focus-visible:outline-[color:var(--ring)] peer-checked:[&>span]:translate-x-5 rtl:peer-checked:[&>span]:-translate-x-5\"\n      >\n        <span data-slot=\"switch-thumb\" className=\"size-[18px] shrink-0 rounded-full bg-[var(--neu-surface)] shadow-[var(--neu-shadow-raised-sm)] transition-[transform,background-color] duration-[var(--neu-duration)] motion-reduce:transition-none\" />\n      </span>\n    </span>\n  );\n}\n\nexport { Switch };\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}