{
  "$schema": "https://blode.co/ui/schema/registry-item.json",
  "name": "toggle",
  "title": "Toggle",
  "author": "Matthew Blode",
  "description": "A two-state button that can be toggled on or off.",
  "dependencies": ["@base-ui/react"],
  "files": [
    {
      "path": "ui/toggle.tsx",
      "content": "\"use client\";\n\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\";\nimport { cva } from \"class-variance-authority\";\nimport type { VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst toggleVariants = cva(\n  \"group/toggle inline-flex items-center justify-center gap-1 whitespace-nowrap rounded-lg font-medium text-sm outline-none transition-[color,background-color,border-color,box-shadow] hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-pressed:bg-muted aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-pressed:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n  {\n    defaultVariants: {\n      size: \"default\",\n      variant: \"default\",\n    },\n    variants: {\n      size: {\n        default: \"h-8 min-w-8 px-2\",\n        lg: \"h-9 min-w-9 px-2.5\",\n        sm: \"h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-1.5 text-[0.8rem]\",\n      },\n      variant: {\n        default: \"bg-transparent\",\n        outline: \"border border-input bg-transparent hover:bg-muted\",\n      },\n    },\n  },\n);\n\nconst Toggle = ({\n  className,\n  variant,\n  size,\n  ...props\n}: React.ComponentProps<typeof TogglePrimitive> & VariantProps<typeof toggleVariants>) => (\n  <TogglePrimitive\n    className={cn(toggleVariants({ className, size, variant }))}\n    data-slot=\"toggle\"\n    {...props}\n  />\n);\n\nexport { Toggle, toggleVariants };\n",
      "type": "registry:ui",
      "target": ""
    }
  ],
  "type": "registry:ui"
}
