@shival99/z-ui 1.6.10 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/assets/css/animations.css +6 -0
  2. package/assets/css/base.css +0 -6
  3. package/assets/css/themes/gray.css +8 -0
  4. package/assets/css/themes/green.css +8 -0
  5. package/assets/css/themes/hospital.css +8 -0
  6. package/assets/css/themes/neutral.css +8 -0
  7. package/assets/css/themes/orange.css +8 -0
  8. package/assets/css/themes/slate.css +8 -0
  9. package/assets/css/themes/stone.css +8 -0
  10. package/assets/css/themes/violet.css +8 -0
  11. package/assets/css/themes/zinc.css +8 -0
  12. package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs +19 -17
  13. package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs.map +1 -1
  14. package/fesm2022/shival99-z-ui-components-z-button-group.mjs +191 -0
  15. package/fesm2022/shival99-z-ui-components-z-button-group.mjs.map +1 -0
  16. package/fesm2022/shival99-z-ui-components-z-button.mjs +6 -1
  17. package/fesm2022/shival99-z-ui-components-z-button.mjs.map +1 -1
  18. package/fesm2022/shival99-z-ui-components-z-calendar.mjs +60 -52
  19. package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -1
  20. package/fesm2022/shival99-z-ui-components-z-checkbox.mjs +13 -5
  21. package/fesm2022/shival99-z-ui-components-z-checkbox.mjs.map +1 -1
  22. package/fesm2022/shival99-z-ui-components-z-drawer.mjs +7 -4
  23. package/fesm2022/shival99-z-ui-components-z-drawer.mjs.map +1 -1
  24. package/fesm2022/shival99-z-ui-components-z-editor.mjs +28 -25
  25. package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -1
  26. package/fesm2022/shival99-z-ui-components-z-filter.mjs +1 -1
  27. package/fesm2022/shival99-z-ui-components-z-filter.mjs.map +1 -1
  28. package/fesm2022/shival99-z-ui-components-z-gallery.mjs +1573 -0
  29. package/fesm2022/shival99-z-ui-components-z-gallery.mjs.map +1 -0
  30. package/fesm2022/shival99-z-ui-components-z-icon.mjs +3 -1
  31. package/fesm2022/shival99-z-ui-components-z-icon.mjs.map +1 -1
  32. package/fesm2022/shival99-z-ui-components-z-input.mjs +114 -109
  33. package/fesm2022/shival99-z-ui-components-z-input.mjs.map +1 -1
  34. package/fesm2022/shival99-z-ui-components-z-modal.mjs +10 -9
  35. package/fesm2022/shival99-z-ui-components-z-modal.mjs.map +1 -1
  36. package/fesm2022/shival99-z-ui-components-z-pagination.mjs +1 -1
  37. package/fesm2022/shival99-z-ui-components-z-pagination.mjs.map +1 -1
  38. package/fesm2022/shival99-z-ui-components-z-radio.mjs +13 -5
  39. package/fesm2022/shival99-z-ui-components-z-radio.mjs.map +1 -1
  40. package/fesm2022/shival99-z-ui-components-z-select.mjs +37 -29
  41. package/fesm2022/shival99-z-ui-components-z-select.mjs.map +1 -1
  42. package/fesm2022/shival99-z-ui-components-z-switch.mjs +13 -5
  43. package/fesm2022/shival99-z-ui-components-z-switch.mjs.map +1 -1
  44. package/fesm2022/shival99-z-ui-components-z-table.mjs +1268 -1254
  45. package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -1
  46. package/fesm2022/shival99-z-ui-components-z-upload.mjs +21 -19
  47. package/fesm2022/shival99-z-ui-components-z-upload.mjs.map +1 -1
  48. package/fesm2022/shival99-z-ui-i18n.mjs +22 -0
  49. package/fesm2022/shival99-z-ui-i18n.mjs.map +1 -1
  50. package/fesm2022/shival99-z-ui-pipes.mjs +32 -1
  51. package/fesm2022/shival99-z-ui-pipes.mjs.map +1 -1
  52. package/fesm2022/shival99-z-ui-utils.mjs +9 -1
  53. package/fesm2022/shival99-z-ui-utils.mjs.map +1 -1
  54. package/package.json +9 -1
  55. package/types/shival99-z-ui-components-z-autocomplete.d.ts +11 -9
  56. package/types/shival99-z-ui-components-z-breadcrumb.d.ts +2 -2
  57. package/types/shival99-z-ui-components-z-button-group.d.ts +56 -0
  58. package/types/shival99-z-ui-components-z-button.d.ts +1 -1
  59. package/types/shival99-z-ui-components-z-calendar.d.ts +5 -4
  60. package/types/shival99-z-ui-components-z-checkbox.d.ts +5 -1
  61. package/types/shival99-z-ui-components-z-dropdown-menu.d.ts +1 -1
  62. package/types/shival99-z-ui-components-z-editor.d.ts +8 -6
  63. package/types/shival99-z-ui-components-z-empty.d.ts +2 -2
  64. package/types/shival99-z-ui-components-z-filter.d.ts +1 -1
  65. package/types/shival99-z-ui-components-z-gallery.d.ts +192 -0
  66. package/types/shival99-z-ui-components-z-icon.d.ts +3 -1
  67. package/types/shival99-z-ui-components-z-input.d.ts +40 -27
  68. package/types/shival99-z-ui-components-z-modal.d.ts +1 -1
  69. package/types/shival99-z-ui-components-z-radio.d.ts +5 -1
  70. package/types/shival99-z-ui-components-z-select.d.ts +7 -6
  71. package/types/shival99-z-ui-components-z-switch.d.ts +5 -1
  72. package/types/shival99-z-ui-components-z-table.d.ts +25 -22
  73. package/types/shival99-z-ui-components-z-upload.d.ts +7 -3
  74. package/types/shival99-z-ui-pipes.d.ts +21 -2
  75. package/types/shival99-z-ui-utils.d.ts +39 -2
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { output, input, model, signal, computed, forwardRef, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { ZIconComponent } from '@shival99/z-ui/components/z-icon';
5
- import { zTransform, zMergeClasses } from '@shival99/z-ui/utils';
5
+ import { zTransform, zMergeClasses, zCreateEvent } from '@shival99/z-ui/utils';
6
6
  import { cva } from 'class-variance-authority';
7
7
 
8
8
  const zSwitchVariants = cva([
@@ -54,6 +54,7 @@ const zSwitchLabelVariants = cva('select-none cursor-pointer peer-disabled:curso
54
54
 
55
55
  class ZSwitchComponent {
56
56
  zChange = output();
57
+ zEvent = output();
57
58
  class = input('', ...(ngDevMode ? [{ debugName: "class" }] : []));
58
59
  zSize = input('default', ...(ngDevMode ? [{ debugName: "zSize" }] : []));
59
60
  zLabel = input('', ...(ngDevMode ? [{ debugName: "zLabel" }] : []));
@@ -99,6 +100,13 @@ class ZSwitchComponent {
99
100
  setDisabledState(isDisabled) {
100
101
  this._disabled.set(isDisabled);
101
102
  }
103
+ onFocus(event) {
104
+ this.zEvent.emit(zCreateEvent('focus', event));
105
+ }
106
+ onBlur(event) {
107
+ this.zEvent.emit(zCreateEvent('blur', event));
108
+ this._onTouched();
109
+ }
102
110
  onSwitchClick() {
103
111
  if (this.isDisabled()) {
104
112
  return;
@@ -110,13 +118,13 @@ class ZSwitchComponent {
110
118
  this._onTouched();
111
119
  }
112
120
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ZSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
113
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: ZSwitchComponent, isStandalone: true, selector: "z-switch", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, zSize: { classPropertyName: "zSize", publicName: "zSize", isSignal: true, isRequired: false, transformFunction: null }, zLabel: { classPropertyName: "zLabel", publicName: "zLabel", isSignal: true, isRequired: false, transformFunction: null }, zText: { classPropertyName: "zText", publicName: "zText", isSignal: true, isRequired: false, transformFunction: null }, zDisabled: { classPropertyName: "zDisabled", publicName: "zDisabled", isSignal: true, isRequired: false, transformFunction: null }, zLoading: { classPropertyName: "zLoading", publicName: "zLoading", isSignal: true, isRequired: false, transformFunction: null }, zTextPosition: { classPropertyName: "zTextPosition", publicName: "zTextPosition", isSignal: true, isRequired: false, transformFunction: null }, zChecked: { classPropertyName: "zChecked", publicName: "zChecked", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { zChange: "zChange", zChecked: "zCheckedChange" }, host: { properties: { "class": "hostClasses()" } }, providers: [
121
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: ZSwitchComponent, isStandalone: true, selector: "z-switch", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, zSize: { classPropertyName: "zSize", publicName: "zSize", isSignal: true, isRequired: false, transformFunction: null }, zLabel: { classPropertyName: "zLabel", publicName: "zLabel", isSignal: true, isRequired: false, transformFunction: null }, zText: { classPropertyName: "zText", publicName: "zText", isSignal: true, isRequired: false, transformFunction: null }, zDisabled: { classPropertyName: "zDisabled", publicName: "zDisabled", isSignal: true, isRequired: false, transformFunction: null }, zLoading: { classPropertyName: "zLoading", publicName: "zLoading", isSignal: true, isRequired: false, transformFunction: null }, zTextPosition: { classPropertyName: "zTextPosition", publicName: "zTextPosition", isSignal: true, isRequired: false, transformFunction: null }, zChecked: { classPropertyName: "zChecked", publicName: "zChecked", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { zChange: "zChange", zEvent: "zEvent", zChecked: "zCheckedChange" }, host: { properties: { "class": "hostClasses()" } }, providers: [
114
122
  {
115
123
  provide: NG_VALUE_ACCESSOR,
116
124
  useExisting: forwardRef(() => ZSwitchComponent),
117
125
  multi: true,
118
126
  },
119
- ], ngImport: i0, template: "<!-- Label above -->\n@if (zLabel()) {\n <label class=\"text-xs leading-none font-medium\">{{ zLabel() }}</label>\n}\n\n<div class=\"inline-flex items-center gap-3\">\n @if (zText() && zTextPosition() === 'left') {\n <label [class]=\"labelClasses()\" (click)=\"onSwitchClick()\">{{ zText() }}</label>\n }\n\n <button\n type=\"button\"\n role=\"switch\"\n [class]=\"switchClasses()\"\n [attr.aria-checked]=\"zChecked()\"\n [attr.data-state]=\"switchState()\"\n [attr.data-loading]=\"zLoading()\"\n [disabled]=\"isDisabled()\"\n (click)=\"onSwitchClick()\">\n <span [class]=\"thumbClasses()\" [attr.data-state]=\"switchState()\" [attr.data-loading]=\"zLoading()\">\n @if (zLoading()) {\n <z-icon zType=\"lucideLoader2\" [zSize]=\"loadingIconSize()\" class=\"text-muted-foreground animate-spin\" />\n }\n </span>\n </button>\n\n @if (zText() && zTextPosition() === 'right') {\n <label [class]=\"labelClasses()\" (click)=\"onSwitchClick()\">{{ zText() }}</label>\n }\n</div>\n", dependencies: [{ kind: "component", type: ZIconComponent, selector: "z-icon, [z-icon]", inputs: ["class", "zType", "zSize", "zStrokeWidth", "zSvg"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
127
+ ], ngImport: i0, template: "<!-- Label above -->\n@if (zLabel()) {\n <label class=\"text-xs leading-none font-medium\">{{ zLabel() }}</label>\n}\n\n<div class=\"inline-flex items-center gap-3\">\n @if (zText() && zTextPosition() === 'left') {\n <label [class]=\"labelClasses()\" (click)=\"onSwitchClick()\">{{ zText() }}</label>\n }\n\n <button\n type=\"button\"\n role=\"switch\"\n [class]=\"switchClasses()\"\n [attr.aria-checked]=\"zChecked()\"\n [attr.data-state]=\"switchState()\"\n [attr.data-loading]=\"zLoading()\"\n [disabled]=\"isDisabled()\"\n (click)=\"onSwitchClick()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n <span [class]=\"thumbClasses()\" [attr.data-state]=\"switchState()\" [attr.data-loading]=\"zLoading()\">\n @if (zLoading()) {\n <z-icon zType=\"lucideLoader2\" [zSize]=\"loadingIconSize()\" class=\"text-muted-foreground animate-spin\" />\n }\n </span>\n </button>\n\n @if (zText() && zTextPosition() === 'right') {\n <label [class]=\"labelClasses()\" (click)=\"onSwitchClick()\">{{ zText() }}</label>\n }\n</div>\n", dependencies: [{ kind: "component", type: ZIconComponent, selector: "z-icon, [z-icon]", inputs: ["class", "zType", "zSize", "zStrokeWidth", "zSvg"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
120
128
  }
121
129
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ZSwitchComponent, decorators: [{
122
130
  type: Component,
@@ -128,8 +136,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
128
136
  },
129
137
  ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
130
138
  '[class]': 'hostClasses()',
131
- }, template: "<!-- Label above -->\n@if (zLabel()) {\n <label class=\"text-xs leading-none font-medium\">{{ zLabel() }}</label>\n}\n\n<div class=\"inline-flex items-center gap-3\">\n @if (zText() && zTextPosition() === 'left') {\n <label [class]=\"labelClasses()\" (click)=\"onSwitchClick()\">{{ zText() }}</label>\n }\n\n <button\n type=\"button\"\n role=\"switch\"\n [class]=\"switchClasses()\"\n [attr.aria-checked]=\"zChecked()\"\n [attr.data-state]=\"switchState()\"\n [attr.data-loading]=\"zLoading()\"\n [disabled]=\"isDisabled()\"\n (click)=\"onSwitchClick()\">\n <span [class]=\"thumbClasses()\" [attr.data-state]=\"switchState()\" [attr.data-loading]=\"zLoading()\">\n @if (zLoading()) {\n <z-icon zType=\"lucideLoader2\" [zSize]=\"loadingIconSize()\" class=\"text-muted-foreground animate-spin\" />\n }\n </span>\n </button>\n\n @if (zText() && zTextPosition() === 'right') {\n <label [class]=\"labelClasses()\" (click)=\"onSwitchClick()\">{{ zText() }}</label>\n }\n</div>\n" }]
132
- }], propDecorators: { zChange: [{ type: i0.Output, args: ["zChange"] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], zSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "zSize", required: false }] }], zLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "zLabel", required: false }] }], zText: [{ type: i0.Input, args: [{ isSignal: true, alias: "zText", required: false }] }], zDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "zDisabled", required: false }] }], zLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "zLoading", required: false }] }], zTextPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTextPosition", required: false }] }], zChecked: [{ type: i0.Input, args: [{ isSignal: true, alias: "zChecked", required: false }] }, { type: i0.Output, args: ["zCheckedChange"] }] } });
139
+ }, template: "<!-- Label above -->\n@if (zLabel()) {\n <label class=\"text-xs leading-none font-medium\">{{ zLabel() }}</label>\n}\n\n<div class=\"inline-flex items-center gap-3\">\n @if (zText() && zTextPosition() === 'left') {\n <label [class]=\"labelClasses()\" (click)=\"onSwitchClick()\">{{ zText() }}</label>\n }\n\n <button\n type=\"button\"\n role=\"switch\"\n [class]=\"switchClasses()\"\n [attr.aria-checked]=\"zChecked()\"\n [attr.data-state]=\"switchState()\"\n [attr.data-loading]=\"zLoading()\"\n [disabled]=\"isDisabled()\"\n (click)=\"onSwitchClick()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n <span [class]=\"thumbClasses()\" [attr.data-state]=\"switchState()\" [attr.data-loading]=\"zLoading()\">\n @if (zLoading()) {\n <z-icon zType=\"lucideLoader2\" [zSize]=\"loadingIconSize()\" class=\"text-muted-foreground animate-spin\" />\n }\n </span>\n </button>\n\n @if (zText() && zTextPosition() === 'right') {\n <label [class]=\"labelClasses()\" (click)=\"onSwitchClick()\">{{ zText() }}</label>\n }\n</div>\n" }]
140
+ }], propDecorators: { zChange: [{ type: i0.Output, args: ["zChange"] }], zEvent: [{ type: i0.Output, args: ["zEvent"] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], zSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "zSize", required: false }] }], zLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "zLabel", required: false }] }], zText: [{ type: i0.Input, args: [{ isSignal: true, alias: "zText", required: false }] }], zDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "zDisabled", required: false }] }], zLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "zLoading", required: false }] }], zTextPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTextPosition", required: false }] }], zChecked: [{ type: i0.Input, args: [{ isSignal: true, alias: "zChecked", required: false }] }, { type: i0.Output, args: ["zCheckedChange"] }] } });
133
141
 
134
142
  /**
135
143
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"shival99-z-ui-components-z-switch.mjs","sources":["../../../../libs/core-ui/components/z-switch/z-switch.variants.ts","../../../../libs/core-ui/components/z-switch/z-switch.component.ts","../../../../libs/core-ui/components/z-switch/z-switch.component.html","../../../../libs/core-ui/components/z-switch/shival99-z-ui-components-z-switch.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zSwitchVariants = cva(\n [\n 'relative inline-flex shrink-0 cursor-pointer items-center rounded-full',\n 'border-2 border-transparent transition-colors duration-200',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'bg-input',\n 'data-[state=checked]:bg-primary',\n ],\n {\n variants: {\n zSize: {\n sm: 'h-5 w-9',\n default: 'h-6 w-11',\n lg: 'h-7 w-14',\n },\n },\n defaultVariants: {\n zSize: 'default',\n },\n }\n);\n\nexport const zSwitchThumbVariants = cva(\n [\n 'pointer-events-none flex items-center justify-center rounded-full bg-white shadow-[0_2px_6px_rgba(0,0,0,0.2)] ring-0',\n 'transition-transform duration-200',\n ],\n {\n variants: {\n zSize: {\n sm: 'size-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0',\n default: 'size-5 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0',\n lg: 'size-6 data-[state=checked]:translate-x-7 data-[state=unchecked]:translate-x-0',\n },\n },\n defaultVariants: {\n zSize: 'default',\n },\n }\n);\n\nexport const zSwitchLabelVariants = cva(\n 'select-none cursor-pointer peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n {\n variants: {\n zSize: {\n sm: 'text-xs',\n default: 'text-sm',\n lg: 'text-base',\n },\n },\n defaultVariants: {\n zSize: 'default',\n },\n }\n);\n\nexport type ZSwitchVariants = VariantProps<typeof zSwitchVariants>;\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n model,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { zMergeClasses, zTransform } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport type { ZSwitchSize } from './z-switch.types';\nimport { zSwitchLabelVariants, zSwitchThumbVariants, zSwitchVariants } from './z-switch.variants';\n\n@Component({\n selector: 'z-switch',\n imports: [ZIconComponent],\n standalone: true,\n templateUrl: './z-switch.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ZSwitchComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'hostClasses()',\n },\n})\nexport class ZSwitchComponent implements ControlValueAccessor {\n public readonly zChange = output<boolean>();\n\n public readonly class = input<ClassValue>('');\n public readonly zSize = input<ZSwitchSize>('default');\n public readonly zLabel = input<string>('');\n public readonly zText = input<string>('');\n public readonly zDisabled = input(false, { transform: zTransform });\n public readonly zLoading = input(false, { transform: zTransform });\n public readonly zTextPosition = input<'left' | 'right'>('right');\n\n public readonly zChecked = model<boolean>(false);\n\n private readonly _disabled = signal(false);\n protected readonly isDisabled = computed(() => this.zDisabled() || this._disabled() || this.zLoading());\n\n protected readonly hostClasses = computed(() => {\n const hasLabel = !!this.zLabel();\n if (hasLabel) {\n return zMergeClasses('flex flex-col gap-2', this.class());\n }\n return zMergeClasses('inline-flex items-center gap-3', this.class());\n });\n\n protected readonly switchClasses = computed(() => zSwitchVariants({ zSize: this.zSize() }));\n protected readonly thumbClasses = computed(() => zSwitchThumbVariants({ zSize: this.zSize() }));\n protected readonly labelClasses = computed(() => zSwitchLabelVariants({ zSize: this.zSize() }));\n protected readonly switchState = computed(() => (this.zChecked() ? 'checked' : 'unchecked'));\n protected readonly loadingIconSize = computed(() => {\n const size = this.zSize();\n if (size === 'sm') {\n return '10';\n }\n if (size === 'lg') {\n return '16';\n }\n return '12';\n });\n\n private _onChange: (value: boolean) => void = () => {};\n private _onTouched: () => void = () => {};\n\n public writeValue(value: boolean | null): void {\n this.zChecked.set(!!value);\n }\n\n public registerOnChange(fn: (value: boolean) => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n }\n\n protected onSwitchClick(): void {\n if (this.isDisabled()) {\n return;\n }\n\n const newValue = !this.zChecked();\n this.zChecked.set(newValue);\n this.zChange.emit(newValue);\n this._onChange(newValue);\n this._onTouched();\n }\n}\n","<!-- Label above -->\n@if (zLabel()) {\n <label class=\"text-xs leading-none font-medium\">{{ zLabel() }}</label>\n}\n\n<div class=\"inline-flex items-center gap-3\">\n @if (zText() && zTextPosition() === 'left') {\n <label [class]=\"labelClasses()\" (click)=\"onSwitchClick()\">{{ zText() }}</label>\n }\n\n <button\n type=\"button\"\n role=\"switch\"\n [class]=\"switchClasses()\"\n [attr.aria-checked]=\"zChecked()\"\n [attr.data-state]=\"switchState()\"\n [attr.data-loading]=\"zLoading()\"\n [disabled]=\"isDisabled()\"\n (click)=\"onSwitchClick()\">\n <span [class]=\"thumbClasses()\" [attr.data-state]=\"switchState()\" [attr.data-loading]=\"zLoading()\">\n @if (zLoading()) {\n <z-icon zType=\"lucideLoader2\" [zSize]=\"loadingIconSize()\" class=\"text-muted-foreground animate-spin\" />\n }\n </span>\n </button>\n\n @if (zText() && zTextPosition() === 'right') {\n <label [class]=\"labelClasses()\" (click)=\"onSwitchClick()\">{{ zText() }}</label>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shival99-z-ui-components-z-switch.mjs","sources":["../../../../libs/core-ui/components/z-switch/z-switch.variants.ts","../../../../libs/core-ui/components/z-switch/z-switch.component.ts","../../../../libs/core-ui/components/z-switch/z-switch.component.html","../../../../libs/core-ui/components/z-switch/shival99-z-ui-components-z-switch.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zSwitchVariants = cva(\n [\n 'relative inline-flex shrink-0 cursor-pointer items-center rounded-full',\n 'border-2 border-transparent transition-colors duration-200',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'bg-input',\n 'data-[state=checked]:bg-primary',\n ],\n {\n variants: {\n zSize: {\n sm: 'h-5 w-9',\n default: 'h-6 w-11',\n lg: 'h-7 w-14',\n },\n },\n defaultVariants: {\n zSize: 'default',\n },\n }\n);\n\nexport const zSwitchThumbVariants = cva(\n [\n 'pointer-events-none flex items-center justify-center rounded-full bg-white shadow-[0_2px_6px_rgba(0,0,0,0.2)] ring-0',\n 'transition-transform duration-200',\n ],\n {\n variants: {\n zSize: {\n sm: 'size-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0',\n default: 'size-5 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0',\n lg: 'size-6 data-[state=checked]:translate-x-7 data-[state=unchecked]:translate-x-0',\n },\n },\n defaultVariants: {\n zSize: 'default',\n },\n }\n);\n\nexport const zSwitchLabelVariants = cva(\n 'select-none cursor-pointer peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n {\n variants: {\n zSize: {\n sm: 'text-xs',\n default: 'text-sm',\n lg: 'text-base',\n },\n },\n defaultVariants: {\n zSize: 'default',\n },\n }\n);\n\nexport type ZSwitchVariants = VariantProps<typeof zSwitchVariants>;\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n model,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { zMergeClasses, zTransform, zCreateEvent, type ZEvent } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport type { ZSwitchSize } from './z-switch.types';\nimport { zSwitchLabelVariants, zSwitchThumbVariants, zSwitchVariants } from './z-switch.variants';\n\n@Component({\n selector: 'z-switch',\n imports: [ZIconComponent],\n standalone: true,\n templateUrl: './z-switch.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ZSwitchComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'hostClasses()',\n },\n})\nexport class ZSwitchComponent implements ControlValueAccessor {\n public readonly zChange = output<boolean>();\n public readonly zEvent = output<ZEvent>();\n\n public readonly class = input<ClassValue>('');\n public readonly zSize = input<ZSwitchSize>('default');\n public readonly zLabel = input<string>('');\n public readonly zText = input<string>('');\n public readonly zDisabled = input(false, { transform: zTransform });\n public readonly zLoading = input(false, { transform: zTransform });\n public readonly zTextPosition = input<'left' | 'right'>('right');\n\n public readonly zChecked = model<boolean>(false);\n\n private readonly _disabled = signal(false);\n protected readonly isDisabled = computed(() => this.zDisabled() || this._disabled() || this.zLoading());\n\n protected readonly hostClasses = computed(() => {\n const hasLabel = !!this.zLabel();\n if (hasLabel) {\n return zMergeClasses('flex flex-col gap-2', this.class());\n }\n return zMergeClasses('inline-flex items-center gap-3', this.class());\n });\n\n protected readonly switchClasses = computed(() => zSwitchVariants({ zSize: this.zSize() }));\n protected readonly thumbClasses = computed(() => zSwitchThumbVariants({ zSize: this.zSize() }));\n protected readonly labelClasses = computed(() => zSwitchLabelVariants({ zSize: this.zSize() }));\n protected readonly switchState = computed(() => (this.zChecked() ? 'checked' : 'unchecked'));\n protected readonly loadingIconSize = computed(() => {\n const size = this.zSize();\n if (size === 'sm') {\n return '10';\n }\n if (size === 'lg') {\n return '16';\n }\n return '12';\n });\n\n private _onChange: (value: boolean) => void = () => {};\n private _onTouched: () => void = () => {};\n\n public writeValue(value: boolean | null): void {\n this.zChecked.set(!!value);\n }\n\n public registerOnChange(fn: (value: boolean) => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n }\n\n protected onFocus(event: FocusEvent): void {\n this.zEvent.emit(zCreateEvent('focus', event));\n }\n\n protected onBlur(event: FocusEvent): void {\n this.zEvent.emit(zCreateEvent('blur', event));\n this._onTouched();\n }\n\n protected onSwitchClick(): void {\n if (this.isDisabled()) {\n return;\n }\n\n const newValue = !this.zChecked();\n this.zChecked.set(newValue);\n this.zChange.emit(newValue);\n this._onChange(newValue);\n this._onTouched();\n }\n}\n","<!-- Label above -->\n@if (zLabel()) {\n <label class=\"text-xs leading-none font-medium\">{{ zLabel() }}</label>\n}\n\n<div class=\"inline-flex items-center gap-3\">\n @if (zText() && zTextPosition() === 'left') {\n <label [class]=\"labelClasses()\" (click)=\"onSwitchClick()\">{{ zText() }}</label>\n }\n\n <button\n type=\"button\"\n role=\"switch\"\n [class]=\"switchClasses()\"\n [attr.aria-checked]=\"zChecked()\"\n [attr.data-state]=\"switchState()\"\n [attr.data-loading]=\"zLoading()\"\n [disabled]=\"isDisabled()\"\n (click)=\"onSwitchClick()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n <span [class]=\"thumbClasses()\" [attr.data-state]=\"switchState()\" [attr.data-loading]=\"zLoading()\">\n @if (zLoading()) {\n <z-icon zType=\"lucideLoader2\" [zSize]=\"loadingIconSize()\" class=\"text-muted-foreground animate-spin\" />\n }\n </span>\n </button>\n\n @if (zText() && zTextPosition() === 'right') {\n <label [class]=\"labelClasses()\" (click)=\"onSwitchClick()\">{{ zText() }}</label>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}