{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "toggle",
  "dependencies": ["@base-ui/react", "class-variance-authority"],
  "registryDependencies": ["utils"],
  "files": [
    {
      "path": "registry/ui/toggle.tsx",
      "content": "'use client';\n\nimport { Toggle as TogglePrimitive } from '@base-ui/react/toggle';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/registry/lib/utils';\n\nconst toggleVariants = cva(\n  \"group/toggle inline-flex items-center justify-center gap-1 rounded-md text-sm font-medium whitespace-nowrap transition-colors outline-none disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n  {\n    variants: {\n      variant: {\n        soft: 'bg-transparent text-secondary hover:bg-hover hover:text-primary aria-pressed:bg-active aria-pressed:text-primary focus-visible:outline-2 focus-visible:outline-focus',\n        outline:\n          'border border-line-ui/65 bg-transparent text-secondary hover:bg-hover hover:text-primary aria-pressed:bg-active aria-pressed:text-primary focus-visible:outline-2 focus-visible:outline-focus',\n        solid:\n          'bg-transparent text-secondary hover:bg-hover hover:text-primary aria-pressed:bg-fill aria-pressed:text-on-fill focus-visible:outline-2 focus-visible:outline-focus aria-pressed:focus-visible:outline-focus-fill',\n      },\n      size: {\n        sm: 'h-8 min-w-8 px-2.5 has-[>svg:only-child]:p-0',\n        md: 'h-9 min-w-9 px-2.5 has-[>svg:only-child]:p-0',\n        lg: 'h-10 min-w-10 px-3 has-[>svg:only-child]:p-0',\n      },\n    },\n    defaultVariants: {\n      variant: 'soft',\n      size: 'md',\n    },\n  }\n);\n\nfunction Toggle({\n  className,\n  variant = 'soft',\n  size = 'md',\n  ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n  return (\n    <TogglePrimitive\n      data-slot=\"toggle\"\n      className={cn(toggleVariants({ variant, size, className }))}\n      {...props}\n    />\n  );\n}\n\nexport { Toggle, toggleVariants };\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}
