@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.
- package/assets/css/animations.css +6 -0
- package/assets/css/base.css +0 -6
- package/assets/css/themes/gray.css +8 -0
- package/assets/css/themes/green.css +8 -0
- package/assets/css/themes/hospital.css +8 -0
- package/assets/css/themes/neutral.css +8 -0
- package/assets/css/themes/orange.css +8 -0
- package/assets/css/themes/slate.css +8 -0
- package/assets/css/themes/stone.css +8 -0
- package/assets/css/themes/violet.css +8 -0
- package/assets/css/themes/zinc.css +8 -0
- package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs +19 -17
- package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-button-group.mjs +191 -0
- package/fesm2022/shival99-z-ui-components-z-button-group.mjs.map +1 -0
- package/fesm2022/shival99-z-ui-components-z-button.mjs +6 -1
- package/fesm2022/shival99-z-ui-components-z-button.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-calendar.mjs +60 -52
- package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-checkbox.mjs +13 -5
- package/fesm2022/shival99-z-ui-components-z-checkbox.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-drawer.mjs +7 -4
- package/fesm2022/shival99-z-ui-components-z-drawer.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-editor.mjs +28 -25
- package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-filter.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-filter.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-gallery.mjs +1573 -0
- package/fesm2022/shival99-z-ui-components-z-gallery.mjs.map +1 -0
- package/fesm2022/shival99-z-ui-components-z-icon.mjs +3 -1
- package/fesm2022/shival99-z-ui-components-z-icon.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-input.mjs +114 -109
- package/fesm2022/shival99-z-ui-components-z-input.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-modal.mjs +10 -9
- package/fesm2022/shival99-z-ui-components-z-modal.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-pagination.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-pagination.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-radio.mjs +13 -5
- package/fesm2022/shival99-z-ui-components-z-radio.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-select.mjs +37 -29
- package/fesm2022/shival99-z-ui-components-z-select.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-switch.mjs +13 -5
- package/fesm2022/shival99-z-ui-components-z-switch.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-table.mjs +1268 -1254
- package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-upload.mjs +21 -19
- package/fesm2022/shival99-z-ui-components-z-upload.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-i18n.mjs +22 -0
- package/fesm2022/shival99-z-ui-i18n.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-pipes.mjs +32 -1
- package/fesm2022/shival99-z-ui-pipes.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-utils.mjs +9 -1
- package/fesm2022/shival99-z-ui-utils.mjs.map +1 -1
- package/package.json +9 -1
- package/types/shival99-z-ui-components-z-autocomplete.d.ts +11 -9
- package/types/shival99-z-ui-components-z-breadcrumb.d.ts +2 -2
- package/types/shival99-z-ui-components-z-button-group.d.ts +56 -0
- package/types/shival99-z-ui-components-z-button.d.ts +1 -1
- package/types/shival99-z-ui-components-z-calendar.d.ts +5 -4
- package/types/shival99-z-ui-components-z-checkbox.d.ts +5 -1
- package/types/shival99-z-ui-components-z-dropdown-menu.d.ts +1 -1
- package/types/shival99-z-ui-components-z-editor.d.ts +8 -6
- package/types/shival99-z-ui-components-z-empty.d.ts +2 -2
- package/types/shival99-z-ui-components-z-filter.d.ts +1 -1
- package/types/shival99-z-ui-components-z-gallery.d.ts +192 -0
- package/types/shival99-z-ui-components-z-icon.d.ts +3 -1
- package/types/shival99-z-ui-components-z-input.d.ts +40 -27
- package/types/shival99-z-ui-components-z-modal.d.ts +1 -1
- package/types/shival99-z-ui-components-z-radio.d.ts +5 -1
- package/types/shival99-z-ui-components-z-select.d.ts +7 -6
- package/types/shival99-z-ui-components-z-switch.d.ts +5 -1
- package/types/shival99-z-ui-components-z-table.d.ts +25 -22
- package/types/shival99-z-ui-components-z-upload.d.ts +7 -3
- package/types/shival99-z-ui-pipes.d.ts +21 -2
- 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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"}
|