{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "toggle",
  "title": "Toggle",
  "description": "shadcn toggle as a pixel button that stays sunk while pressed.",
  "dependencies": [
    "class-variance-authority",
    "cn",
    "radix-ui"
  ],
  "registryDependencies": [
    "@ui95/theme"
  ],
  "files": [
    {
      "path": "components/ui/toggle.tsx",
      "content": "\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"cn\"\nimport { Toggle as TogglePrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nconst toggleVariants = cva(\n  \"group/toggle inline-flex items-center justify-center gap-1 pixel-border bg-clip-padding font-pixel text-[16px] leading-none whitespace-nowrap uppercase outline-none select-none disabled:pointer-events-none disabled:text-muted-foreground disabled:dither-50 aria-invalid:border-dashed aria-invalid:border-destructive data-[state=on]:bg-muted data-[state=on]:text-foreground data-[state=on]:offset-shadow-none data-[state=on]:bevel-sunken aria-pressed:bg-muted [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n  {\n    variants: {\n      variant: {\n        default: \"border-transparent bg-transparent hover:bg-muted bevel-raised\",\n        outline: \"border-border bg-transparent hover:bg-muted\",\n      },\n      size: {\n        default:\n          \"h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n        sm: \"h-7 min-w-7 px-2 text-sm has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n        lg: \"h-10 min-w-10 px-3 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n      size: \"default\",\n    },\n  }\n)\n\nfunction Toggle({\n  className,\n  variant = \"default\",\n  size = \"default\",\n  ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\n  VariantProps<typeof toggleVariants>) {\n  return (\n    <TogglePrimitive.Root\n      data-slot=\"toggle\"\n      className={cn(toggleVariants({ variant, size, className }))}\n      {...props}\n    />\n  )\n}\n\nexport { Toggle, toggleVariants }\n",
      "type": "registry:ui"
    }
  ],
  "meta": {
    "sounds": {
      "toggle.on": {
        "note": "Toggle latched down. Starts as the button press; tune it in the lab",
        "layers": [
          {
            "wave": "noise",
            "frequency": 0,
            "attack": 0.0003,
            "decay": 0.006,
            "gain": 0.6,
            "filter": {
              "type": "bandpass",
              "frequency": 3500,
              "q": 2
            }
          },
          {
            "wave": "square",
            "frequency": 2200,
            "attack": 0.0005,
            "decay": 0.005,
            "gain": 0.15
          }
        ],
        "jitter": {
          "cents": 100,
          "gainDb": 6,
          "decay": 0.12
        }
      },
      "toggle.off": {
        "note": "Toggle released. Starts as the button release; tune it in the lab",
        "layers": [
          {
            "wave": "noise",
            "frequency": 0,
            "attack": 0.0003,
            "decay": 0.004,
            "gain": 0.35,
            "filter": {
              "type": "bandpass",
              "frequency": 4200,
              "q": 2
            }
          },
          {
            "wave": "square",
            "frequency": 2600,
            "attack": 0.0005,
            "decay": 0.004,
            "gain": 0.08
          }
        ],
        "jitter": {
          "cents": 91,
          "gainDb": 1.5,
          "decay": 0.12
        }
      }
    }
  },
  "categories": [
    "ui"
  ],
  "type": "registry:ui"
}
