{"version":3,"file":"edsis-component-toggle.mjs","sources":["../../../library/component/toggle/toggle.variants.ts","../../../library/component/toggle/toggle.component.ts","../../../library/component/toggle/edsis-component-toggle.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const toggleVariants = cva(\n  [\n    'group/toggle inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md',\n    'text-sm font-medium transition-colors',\n    'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n    'disabled:pointer-events-none disabled:opacity-50',\n    '[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n  ].join(' '),\n  {\n    variants: {\n      variant: {\n        default: [\n          'bg-transparent text-foreground',\n          'hover:bg-muted hover:text-muted-foreground',\n          'data-[state=on]:bg-accent data-[state=on]:text-accent-foreground',\n        ].join(' '),\n        outline: [\n          'border border-input bg-transparent text-foreground shadow-sm',\n          'hover:bg-accent hover:text-accent-foreground',\n          'data-[state=on]:bg-accent data-[state=on]:text-accent-foreground',\n        ].join(' '),\n        segmented: [\n          'rounded-base text-muted-foreground',\n          'hover:text-foreground',\n          'data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-xs',\n        ].join(' '),\n      },\n      size: {\n        sm: 'h-8 min-w-8 px-2.5 text-xs',\n        default: 'h-9 min-w-9 px-3',\n        lg: 'h-10 min-w-10 px-3.5',\n      },\n    },\n    defaultVariants: { variant: 'default', size: 'default' },\n  },\n);\n\nexport type ToggleVariant = NonNullable<VariantProps<typeof toggleVariants>['variant']>;\nexport type ToggleSize = NonNullable<VariantProps<typeof toggleVariants>['size']>;\n","import { booleanAttribute, Component, computed, input, model } from '@angular/core';\nimport { cn } from '@edsis/component/class';\nimport { type ToggleSize, toggleVariants, type ToggleVariant } from './toggle.variants';\n\n@Component({\n  selector: 'button[Toggle]',\n  host: {\n    '[class]': 'classes()',\n    type: 'button',\n    '[attr.aria-pressed]': 'pressed()',\n    '[attr.data-disabled]': 'disabled() ? \"\" : null',\n    '[attr.data-size]': 'size()',\n    '[attr.data-state]': 'pressed() ? \"on\" : \"off\"',\n    '[attr.data-variant]': 'variant()',\n    '[disabled]': 'disabled() || null',\n    '(click)': 'toggle()',\n  },\n  template: `<ng-content />`,\n})\nexport class ToggleComponent {\n  readonly pressed = model(false);\n  readonly disabled = input(false, { transform: booleanAttribute });\n  readonly variant = input<ToggleVariant>('default');\n  readonly size = input<ToggleSize>('default');\n  readonly class = input<string>('');\n\n  protected readonly classes = computed(() =>\n    cn(toggleVariants({ variant: this.variant(), size: this.size() }), this.class()),\n  );\n\n  toggle(): void {\n    if (this.disabled()) {\n      return;\n    }\n\n    this.pressed.update((pressed) => !pressed);\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAEO,MAAM,cAAc,GAAG,GAAG,CAC/B;IACE,wGAAwG;IACxG,uCAAuC;IACvC,yEAAyE;IACzE,kDAAkD;IAClD,6DAA6D;AAC9D,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EACX;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE;gBACP,gCAAgC;gBAChC,4CAA4C;gBAC5C,kEAAkE;aACnE,CAAC,IAAI,CAAC,GAAG,CAAC;AACX,YAAA,OAAO,EAAE;gBACP,8DAA8D;gBAC9D,8CAA8C;gBAC9C,kEAAkE;aACnE,CAAC,IAAI,CAAC,GAAG,CAAC;AACX,YAAA,SAAS,EAAE;gBACT,oCAAoC;gBACpC,uBAAuB;gBACvB,yFAAyF;aAC1F,CAAC,IAAI,CAAC,GAAG,CAAC;AACZ,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,4BAA4B;AAChC,YAAA,OAAO,EAAE,kBAAkB;AAC3B,YAAA,EAAE,EAAE,sBAAsB;AAC3B,SAAA;AACF,KAAA;IACD,eAAe,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;AACzD,CAAA;;MCjBU,eAAe,CAAA;IACjB,OAAO,GAAG,KAAK,CAAC,KAAK;gFAAC;IACtB,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,OAAO,GAAG,KAAK,CAAgB,SAAS;gFAAC;IACzC,IAAI,GAAG,KAAK,CAAa,SAAS;6EAAC;IACnC,KAAK,GAAG,KAAK,CAAS,EAAE;8EAAC;AAEf,IAAA,OAAO,GAAG,QAAQ,CAAC,MACpC,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gFACjF;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB;QACF;AAEA,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC;IAC5C;uGAjBW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,okCAFhB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;2FAEf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAf3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,qBAAqB,EAAE,WAAW;AAClC,wBAAA,sBAAsB,EAAE,wBAAwB;AAChD,wBAAA,kBAAkB,EAAE,QAAQ;AAC5B,wBAAA,mBAAmB,EAAE,0BAA0B;AAC/C,wBAAA,qBAAqB,EAAE,WAAW;AAClC,wBAAA,YAAY,EAAE,oBAAoB;AAClC,wBAAA,SAAS,EAAE,UAAU;AACtB,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;;AClBD;;AAEG;;;;"}