{
  "$schema": "https://ui.adrianub.dev/schema/registry-item.json",
  "author": "Adrián UB (https://ui.adrianub.dev)",
  "name": "toggle",
  "type": "registry:ui",
  "dependencies": [
    "@radix-ng/primitives"
  ],
  "files": [
    {
      "path": "ui/toggle.ts",
      "content": "import type { VariantProps } from 'class-variance-authority'\nimport { computed, Directive, input } from '@angular/core'\nimport { RdxToggleDirective } from '@radix-ng/primitives/toggle'\nimport { cva } from 'class-variance-authority'\nimport { cn } from '~/lib/utils'\n\nconst toggleVariants = cva(\n  'inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n  {\n    variants: {\n      variant: {\n        default: 'bg-transparent',\n        outline:\n          'border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground',\n      },\n      size: {\n        default: 'h-9 px-2 min-w-9',\n        sm: 'h-8 px-1.5 min-w-8',\n        lg: 'h-10 px-2.5 min-w-10',\n      },\n    },\n    defaultVariants: {\n      variant: 'default',\n      size: 'default',\n    },\n  },\n)\n\n@Directive({\n  standalone: true,\n  selector: 'button[ubToggle]',\n  host: {\n    '[class]': 'computedClass()',\n  },\n  hostDirectives: [RdxToggleDirective],\n})\nexport class UbToggleDirective {\n  variant = input<VariantProps<typeof toggleVariants>['variant']>()\n  size = input<VariantProps<typeof toggleVariants>['size']>()\n  class = input<string>()\n  computedClass = computed(() => cn(\n    toggleVariants({\n      variant: this.variant(),\n      size: this.size(),\n      className: this.class(),\n    }),\n  ))\n}\n",
      "type": "registry:ui"
    }
  ]
}