@shival99/z-ui 1.4.2 → 1.4.4

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 (74) hide show
  1. package/fesm2022/shival99-z-ui-components-z-accordion.mjs +2 -2
  2. package/fesm2022/shival99-z-ui-components-z-accordion.mjs.map +1 -1
  3. package/fesm2022/shival99-z-ui-components-z-breadcrumb.mjs +3 -3
  4. package/fesm2022/shival99-z-ui-components-z-breadcrumb.mjs.map +1 -1
  5. package/fesm2022/shival99-z-ui-components-z-button.mjs +2 -2
  6. package/fesm2022/shival99-z-ui-components-z-button.mjs.map +1 -1
  7. package/fesm2022/shival99-z-ui-components-z-calendar.mjs +31 -18
  8. package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -1
  9. package/fesm2022/shival99-z-ui-components-z-card.mjs +5 -5
  10. package/fesm2022/shival99-z-ui-components-z-card.mjs.map +1 -1
  11. package/fesm2022/shival99-z-ui-components-z-checkbox.mjs +16 -10
  12. package/fesm2022/shival99-z-ui-components-z-checkbox.mjs.map +1 -1
  13. package/fesm2022/shival99-z-ui-components-z-code.mjs +7 -7
  14. package/fesm2022/shival99-z-ui-components-z-code.mjs.map +1 -1
  15. package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs +4 -4
  16. package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs.map +1 -1
  17. package/fesm2022/shival99-z-ui-components-z-editor.mjs +4 -4
  18. package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -1
  19. package/fesm2022/shival99-z-ui-components-z-filter.mjs +8 -8
  20. package/fesm2022/shival99-z-ui-components-z-filter.mjs.map +1 -1
  21. package/fesm2022/shival99-z-ui-components-z-input.mjs +192 -182
  22. package/fesm2022/shival99-z-ui-components-z-input.mjs.map +1 -1
  23. package/fesm2022/shival99-z-ui-components-z-menu.mjs +5 -5
  24. package/fesm2022/shival99-z-ui-components-z-menu.mjs.map +1 -1
  25. package/fesm2022/shival99-z-ui-components-z-pagination.mjs +5 -5
  26. package/fesm2022/shival99-z-ui-components-z-pagination.mjs.map +1 -1
  27. package/fesm2022/shival99-z-ui-components-z-popover.mjs +12 -12
  28. package/fesm2022/shival99-z-ui-components-z-popover.mjs.map +1 -1
  29. package/fesm2022/shival99-z-ui-components-z-radio.mjs +4 -4
  30. package/fesm2022/shival99-z-ui-components-z-radio.mjs.map +1 -1
  31. package/fesm2022/shival99-z-ui-components-z-select.mjs +179 -168
  32. package/fesm2022/shival99-z-ui-components-z-select.mjs.map +1 -1
  33. package/fesm2022/shival99-z-ui-components-z-skeleton.mjs +2 -2
  34. package/fesm2022/shival99-z-ui-components-z-skeleton.mjs.map +1 -1
  35. package/fesm2022/shival99-z-ui-components-z-steps.mjs +5 -5
  36. package/fesm2022/shival99-z-ui-components-z-steps.mjs.map +1 -1
  37. package/fesm2022/shival99-z-ui-components-z-switch.mjs +4 -4
  38. package/fesm2022/shival99-z-ui-components-z-switch.mjs.map +1 -1
  39. package/fesm2022/shival99-z-ui-components-z-table.mjs +343 -36
  40. package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -1
  41. package/fesm2022/shival99-z-ui-components-z-tags.mjs +12 -11
  42. package/fesm2022/shival99-z-ui-components-z-tags.mjs.map +1 -1
  43. package/fesm2022/shival99-z-ui-components-z-timeline.mjs +0 -2
  44. package/fesm2022/shival99-z-ui-components-z-timeline.mjs.map +1 -1
  45. package/fesm2022/shival99-z-ui-components-z-toast.mjs +3 -3
  46. package/fesm2022/shival99-z-ui-components-z-toast.mjs.map +1 -1
  47. package/fesm2022/shival99-z-ui-components-z-upload.mjs +12 -12
  48. package/fesm2022/shival99-z-ui-components-z-upload.mjs.map +1 -1
  49. package/fesm2022/shival99-z-ui-services.mjs +8 -8
  50. package/fesm2022/shival99-z-ui-services.mjs.map +1 -1
  51. package/package.json +1 -1
  52. package/types/shival99-z-ui-components-z-accordion.d.ts +1 -1
  53. package/types/shival99-z-ui-components-z-breadcrumb.d.ts +1 -1
  54. package/types/shival99-z-ui-components-z-button.d.ts +1 -1
  55. package/types/shival99-z-ui-components-z-calendar.d.ts +18 -4
  56. package/types/shival99-z-ui-components-z-card.d.ts +3 -3
  57. package/types/shival99-z-ui-components-z-checkbox.d.ts +8 -5
  58. package/types/shival99-z-ui-components-z-code.d.ts +5 -5
  59. package/types/shival99-z-ui-components-z-dropdown-menu.d.ts +2 -2
  60. package/types/shival99-z-ui-components-z-editor.d.ts +3 -3
  61. package/types/shival99-z-ui-components-z-filter.d.ts +8 -8
  62. package/types/shival99-z-ui-components-z-input.d.ts +45 -33
  63. package/types/shival99-z-ui-components-z-menu.d.ts +3 -3
  64. package/types/shival99-z-ui-components-z-pagination.d.ts +3 -3
  65. package/types/shival99-z-ui-components-z-popover.d.ts +10 -10
  66. package/types/shival99-z-ui-components-z-radio.d.ts +2 -2
  67. package/types/shival99-z-ui-components-z-select.d.ts +58 -45
  68. package/types/shival99-z-ui-components-z-skeleton.d.ts +1 -1
  69. package/types/shival99-z-ui-components-z-steps.d.ts +3 -3
  70. package/types/shival99-z-ui-components-z-switch.d.ts +2 -2
  71. package/types/shival99-z-ui-components-z-table.d.ts +77 -9
  72. package/types/shival99-z-ui-components-z-tags.d.ts +4 -2
  73. package/types/shival99-z-ui-components-z-toast.d.ts +2 -2
  74. package/types/shival99-z-ui-components-z-upload.d.ts +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"shival99-z-ui-components-z-skeleton.mjs","sources":["../../../../libs/core-ui/components/z-skeleton/z-skeleton.variants.ts","../../../../libs/core-ui/components/z-skeleton/z-skeleton.component.ts","../../../../libs/core-ui/components/z-skeleton/z-skeleton.component.html","../../../../libs/core-ui/components/z-skeleton/shival99-z-ui-components-z-skeleton.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zSkeletonVariants = cva('z-skeleton', {\n variants: {\n type: {\n bar: 'z-skeleton-bar',\n circle: 'z-skeleton-circle',\n text: 'z-skeleton-text',\n },\n size: {\n sm: '',\n default: '',\n lg: '',\n },\n animated: {\n true: 'z-skeleton-animated',\n false: '',\n },\n },\n compoundVariants: [\n {\n type: 'circle',\n size: 'sm',\n class: 'z-skeleton-circle-sm',\n },\n {\n type: 'circle',\n size: 'default',\n class: 'z-skeleton-circle-default',\n },\n {\n type: 'circle',\n size: 'lg',\n class: 'z-skeleton-circle-lg',\n },\n ],\n defaultVariants: {\n type: 'bar',\n size: 'default',\n animated: true,\n },\n});\n\nexport type ZSkeletonVariants = VariantProps<typeof zSkeletonVariants>;\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnDestroy,\n signal,\n} from '@angular/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { ZSkeletonRowItem, ZSkeletonSize, ZSkeletonType } from './z-skeleton.types';\nimport { zSkeletonVariants } from './z-skeleton.variants';\n\n@Component({\n selector: 'z-skeleton',\n standalone: true,\n templateUrl: './z-skeleton.component.html',\n styleUrl: './z-skeleton.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'z-skeleton-host',\n '[style.width]': 'zWidth()',\n '[style.height]': 'zHeight()',\n },\n})\nexport class ZSkeletonComponent implements AfterViewInit, OnDestroy {\n public readonly class = input<ClassValue>('');\n public readonly zType = input<ZSkeletonType>('bar');\n public readonly zSize = input<ZSkeletonSize>('default');\n public readonly zWidth = input<string>('100%');\n public readonly zHeight = input<string | undefined>(undefined);\n public readonly zRows = input<number>(1);\n public readonly zGap = input<number>(8);\n public readonly zAnimated = input<boolean>(true);\n public readonly zRadius = input<string>('4px');\n\n private readonly _elementRef = inject(ElementRef);\n private readonly _calculatedRows = signal<number>(1);\n private _parentElement: HTMLElement | null = null;\n private _originalOverflow = '';\n\n ngAfterViewInit(): void {\n if (this.zType() === 'bar') {\n this._calculateBarRows();\n }\n this._setParentOverflowHidden();\n }\n\n ngOnDestroy(): void {\n this._restoreParentOverflow();\n }\n\n protected readonly containerClass = computed(() => zMergeClasses(this.class()));\n protected readonly skeletonClasses = computed(() =>\n zSkeletonVariants({\n type: this.zType(),\n size: this.zSize(),\n animated: this.zAnimated(),\n })\n );\n\n protected readonly circleStyles = computed(() => {\n if (this.zHeight() || this.zWidth() !== '100%') {\n return {\n width: this.zWidth(),\n height: this.zHeight() || this.zWidth(),\n };\n }\n return {};\n });\n\n protected readonly shouldShowMultipleRows = computed(\n () => (this.zType() === 'bar' || this.zType() === 'text') && this.zRows() > 1\n );\n\n protected readonly rowsArray = computed<ZSkeletonRowItem[]>(() => {\n const type = this.zType();\n if (type !== 'bar' && type !== 'text') {\n return [{ index: 0, height: '0px' }];\n }\n\n const rowCount = this.zRows() || this._calculatedRows();\n const gapBetweenRows = this.zGap();\n const totalGapSpace = (rowCount - 1) * gapBetweenRows;\n const height = this.zHeight();\n const rowHeight = height ?? `calc((100% - ${totalGapSpace}px) / ${rowCount})`;\n\n return Array.from({ length: rowCount }, (_, i) => ({\n index: i,\n height: rowHeight,\n }));\n });\n\n private _setParentOverflowHidden(): void {\n this._parentElement = this._elementRef.nativeElement.parentElement;\n if (this._parentElement) {\n this._originalOverflow = this._parentElement.style.overflow || '';\n this._parentElement.style.overflow = 'hidden';\n }\n }\n\n private _restoreParentOverflow(): void {\n if (this._parentElement) {\n this._parentElement.style.overflow = this._originalOverflow;\n }\n }\n\n private _calculateBarRows(): void {\n const { parentElement } = this._elementRef.nativeElement || {};\n if (!parentElement) {\n return;\n }\n\n const rows = this.zRows();\n if (rows && rows > 0) {\n this._calculatedRows.set(rows);\n return;\n }\n\n this._calculatedRows.set(1);\n }\n}\n","<div class=\"z-skeleton-container\" [class]=\"containerClass()\">\n @if (zType() === 'circle') {\n <div [class]=\"skeletonClasses()\" [style]=\"circleStyles()\"></div>\n } @else if (zType() === 'bar' || zType() === 'text') {\n @if (shouldShowMultipleRows()) {\n @for (row of rowsArray(); track row.index) {\n <div\n class=\"z-skeleton-row\"\n [class]=\"skeletonClasses()\"\n [style.margin-bottom.px]=\"row.index === rowsArray().length - 1 ? 0 : zGap()\"\n [style.height]=\"row.height\"\n [style.width]=\"zWidth()\"\n [style.border-radius]=\"zRadius()\"></div>\n }\n } @else {\n <div\n [class]=\"skeletonClasses()\"\n [style.width]=\"zWidth()\"\n [style.height]=\"zHeight() || '100%'\"\n [style.border-radius]=\"zRadius()\"></div>\n }\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-skeleton.mjs","sources":["../../../../libs/core-ui/components/z-skeleton/z-skeleton.variants.ts","../../../../libs/core-ui/components/z-skeleton/z-skeleton.component.ts","../../../../libs/core-ui/components/z-skeleton/z-skeleton.component.html","../../../../libs/core-ui/components/z-skeleton/shival99-z-ui-components-z-skeleton.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zSkeletonVariants = cva('z-skeleton', {\n variants: {\n type: {\n bar: 'z-skeleton-bar',\n circle: 'z-skeleton-circle',\n text: 'z-skeleton-text',\n },\n size: {\n sm: '',\n default: '',\n lg: '',\n },\n animated: {\n true: 'z-skeleton-animated',\n false: '',\n },\n },\n compoundVariants: [\n {\n type: 'circle',\n size: 'sm',\n class: 'z-skeleton-circle-sm',\n },\n {\n type: 'circle',\n size: 'default',\n class: 'z-skeleton-circle-default',\n },\n {\n type: 'circle',\n size: 'lg',\n class: 'z-skeleton-circle-lg',\n },\n ],\n defaultVariants: {\n type: 'bar',\n size: 'default',\n animated: true,\n },\n});\n\nexport type ZSkeletonVariants = VariantProps<typeof zSkeletonVariants>;\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnDestroy,\n signal,\n} from '@angular/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { ZSkeletonRowItem, ZSkeletonSize, ZSkeletonType } from './z-skeleton.types';\nimport { zSkeletonVariants } from './z-skeleton.variants';\n\n@Component({\n selector: 'z-skeleton',\n standalone: true,\n templateUrl: './z-skeleton.component.html',\n styleUrl: './z-skeleton.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'z-skeleton-host',\n '[style.width]': 'zWidth()',\n '[style.height]': 'zHeight()',\n },\n})\nexport class ZSkeletonComponent implements AfterViewInit, OnDestroy {\n private readonly _elementRef = inject(ElementRef);\n\n public readonly class = input<ClassValue>('');\n public readonly zType = input<ZSkeletonType>('bar');\n public readonly zSize = input<ZSkeletonSize>('default');\n public readonly zWidth = input<string>('100%');\n public readonly zHeight = input<string | undefined>(undefined);\n public readonly zRows = input<number>(1);\n public readonly zGap = input<number>(8);\n public readonly zAnimated = input<boolean>(true);\n public readonly zRadius = input<string>('4px');\n\n private readonly _calculatedRows = signal<number>(1);\n\n private _parentElement: HTMLElement | null = null;\n private _originalOverflow = '';\n\n ngAfterViewInit(): void {\n if (this.zType() === 'bar') {\n this._calculateBarRows();\n }\n this._setParentOverflowHidden();\n }\n\n ngOnDestroy(): void {\n this._restoreParentOverflow();\n }\n\n protected readonly containerClass = computed(() => zMergeClasses(this.class()));\n protected readonly skeletonClasses = computed(() =>\n zSkeletonVariants({\n type: this.zType(),\n size: this.zSize(),\n animated: this.zAnimated(),\n })\n );\n\n protected readonly circleStyles = computed(() => {\n if (this.zHeight() || this.zWidth() !== '100%') {\n return {\n width: this.zWidth(),\n height: this.zHeight() || this.zWidth(),\n };\n }\n return {};\n });\n\n protected readonly shouldShowMultipleRows = computed(\n () => (this.zType() === 'bar' || this.zType() === 'text') && this.zRows() > 1\n );\n\n protected readonly rowsArray = computed<ZSkeletonRowItem[]>(() => {\n const type = this.zType();\n if (type !== 'bar' && type !== 'text') {\n return [{ index: 0, height: '0px' }];\n }\n\n const rowCount = this.zRows() || this._calculatedRows();\n const gapBetweenRows = this.zGap();\n const totalGapSpace = (rowCount - 1) * gapBetweenRows;\n const height = this.zHeight();\n const rowHeight = height ?? `calc((100% - ${totalGapSpace}px) / ${rowCount})`;\n\n return Array.from({ length: rowCount }, (_, i) => ({\n index: i,\n height: rowHeight,\n }));\n });\n\n private _setParentOverflowHidden(): void {\n this._parentElement = this._elementRef.nativeElement.parentElement;\n if (this._parentElement) {\n this._originalOverflow = this._parentElement.style.overflow || '';\n this._parentElement.style.overflow = 'hidden';\n }\n }\n\n private _restoreParentOverflow(): void {\n if (this._parentElement) {\n this._parentElement.style.overflow = this._originalOverflow;\n }\n }\n\n private _calculateBarRows(): void {\n const { parentElement } = this._elementRef.nativeElement || {};\n if (!parentElement) {\n return;\n }\n\n const rows = this.zRows();\n if (rows && rows > 0) {\n this._calculatedRows.set(rows);\n return;\n }\n\n this._calculatedRows.set(1);\n }\n}\n","<div class=\"z-skeleton-container\" [class]=\"containerClass()\">\n @if (zType() === 'circle') {\n <div [class]=\"skeletonClasses()\" [style]=\"circleStyles()\"></div>\n } @else if (zType() === 'bar' || zType() === 'text') {\n @if (shouldShowMultipleRows()) {\n @for (row of rowsArray(); track row.index) {\n <div\n class=\"z-skeleton-row\"\n [class]=\"skeletonClasses()\"\n [style.margin-bottom.px]=\"row.index === rowsArray().length - 1 ? 0 : zGap()\"\n [style.height]=\"row.height\"\n [style.width]=\"zWidth()\"\n [style.border-radius]=\"zRadius()\"></div>\n }\n } @else {\n <div\n [class]=\"skeletonClasses()\"\n [style.width]=\"zWidth()\"\n [style.height]=\"zHeight() || '100%'\"\n [style.border-radius]=\"zRadius()\"></div>\n }\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, DestroyRef, input, output, signal, computed, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { inject, ElementRef, DestroyRef, output, input, signal, computed, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { ZIconComponent } from '@shival99/z-ui/components/z-icon';
4
4
  import { ZTooltipDirective } from '@shival99/z-ui/components/z-tooltip';
5
5
  import { zTransform, zMergeClasses } from '@shival99/z-ui/utils';
@@ -146,7 +146,8 @@ const RESPONSIVE_BREAKPOINT = 640;
146
146
  class ZStepsComponent {
147
147
  _elementRef = inject(ElementRef);
148
148
  _destroyRef = inject(DestroyRef);
149
- _resizeObserver = null;
149
+ zOnStepClick = output();
150
+ zControl = output();
150
151
  class = input('', ...(ngDevMode ? [{ debugName: "class" }] : []));
151
152
  zSteps = input.required(...(ngDevMode ? [{ debugName: "zSteps" }] : []));
152
153
  zCurrent = input(0, ...(ngDevMode ? [{ debugName: "zCurrent" }] : []));
@@ -157,10 +158,9 @@ class ZStepsComponent {
157
158
  zShowNumber = input(true, { ...(ngDevMode ? { debugName: "zShowNumber" } : {}), transform: zTransform });
158
159
  zResponsive = input(true, { ...(ngDevMode ? { debugName: "zResponsive" } : {}), transform: zTransform });
159
160
  zDisabled = input(false, { ...(ngDevMode ? { debugName: "zDisabled" } : {}), transform: zTransform });
160
- zOnStepClick = output();
161
- zControl = output();
162
161
  _internalCurrent = signal(null, ...(ngDevMode ? [{ debugName: "_internalCurrent" }] : []));
163
162
  _stepOverrides = signal(new Map(), ...(ngDevMode ? [{ debugName: "_stepOverrides" }] : []));
163
+ _resizeObserver = null;
164
164
  isResponsiveVertical = signal(false, ...(ngDevMode ? [{ debugName: "isResponsiveVertical" }] : []));
165
165
  currentStep = computed(() => this._internalCurrent() ?? this.zCurrent(), ...(ngDevMode ? [{ debugName: "currentStep" }] : []));
166
166
  mergedSteps = computed(() => {
@@ -384,7 +384,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
384
384
  args: [{ selector: 'z-steps', imports: [ZIconComponent, ZTooltipDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
385
385
  class: 'block',
386
386
  }, template: "<ol [class]=\"containerClasses()\">\n @for (step of mergedSteps(); track $index; let i = $index; let last = $last) {\n @if (effectiveOrientation() === 'vertical') {\n @if (zType() === 'dot') {\n <!-- Vertical Dot Layout -->\n <li\n class=\"flex items-start gap-3\"\n [class.cursor-pointer]=\"zClickable() && !step.disabled\"\n [class.cursor-not-allowed]=\"step.disabled\"\n [class.opacity-50]=\"step.disabled\"\n (click)=\"onStepClick(i)\">\n <!-- Dot + Line Column -->\n <div class=\"flex flex-col items-center\">\n <!-- Dot -->\n <span [class]=\"getDotClassesByIndex()[i]\" class=\"shrink-0\"></span>\n <!-- Vertical Line -->\n @if (!last) {\n <div [class]=\"getDotLineClassesByIndex()[i]\" class=\"my-1.5\"></div>\n }\n </div>\n\n <!-- Content (optional) -->\n @if (step.title) {\n <span\n class=\"pt-0.5 text-sm\"\n [class.text-foreground]=\"stepStatuses()[i] === 'current'\"\n [class.font-medium]=\"stepStatuses()[i] === 'current'\"\n [class.text-muted-foreground]=\"stepStatuses()[i] !== 'current'\">\n {{ step.title }}\n </span>\n }\n </li>\n } @else {\n <!-- Vertical Layout -->\n <li\n [class]=\"getItemClasses()\"\n [class.!items-start]=\"!step.description && (step.title || step.icon)\"\n [class.items-center]=\"!step.description && (step.title || step.icon)\"\n [class.cursor-pointer]=\"zClickable() && !step.disabled\"\n [class.cursor-not-allowed]=\"step.disabled\"\n [class.opacity-50]=\"step.disabled\"\n (click)=\"onStepClick(i)\">\n <!-- Vertical Line -->\n @if (!last) {\n <div [class]=\"lineClasses()\"></div>\n }\n\n <!-- Step Icon -->\n <span [class]=\"getIconClassesByStatus()[i]\">\n @switch (stepStatuses()[i]) {\n @case ('completed') {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else {\n <z-icon zType=\"lucideCheck\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n }\n @case ('error') {\n <z-icon zType=\"lucideX\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n @default {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else if (zShowNumber()) {\n <span class=\"font-medium\">{{ i + 1 }}</span>\n }\n }\n }\n </span>\n\n <!-- Content -->\n @if (step.title || step.description) {\n <div class=\"flex min-w-0 flex-col\" [style.padding-top.px]=\"!step.description ? iconWidth() / 5 : 0\">\n @if (step.title) {\n <h3 class=\"leading-tight font-medium\">{{ step.title }}</h3>\n }\n @if (step.description) {\n <p class=\"text-muted-foreground mt-1 text-sm\">{{ step.description }}</p>\n }\n </div>\n }\n </li>\n }\n } @else {\n <!-- Horizontal Layout -->\n <li\n [class]=\"zType() === 'arrow' ? 'flex-1' : 'flex-1 last:flex-none'\"\n [class.cursor-pointer]=\"zClickable() && !step.disabled\"\n [class.cursor-not-allowed]=\"step.disabled\"\n [class.opacity-50]=\"step.disabled\"\n (click)=\"onStepClick(i)\">\n @if (zType() === 'arrow') {\n <!-- Arrow Style -->\n <div [class]=\"getArrowClassesByIndex()[i]\">\n <div class=\"flex items-center gap-3.5\">\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" class=\"shrink-0\" />\n }\n <div class=\"flex min-w-0 flex-col\">\n @if (step.title) {\n <h3\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"truncate text-sm leading-tight font-semibold whitespace-nowrap\">\n {{ step.title }}\n </h3>\n }\n @if (step.description) {\n <p\n z-tooltip\n [zContent]=\"step.description\"\n [zAutoDetect]=\"true\"\n zPosition=\"bottom\"\n class=\"mt-1 truncate text-xs whitespace-nowrap opacity-80\">\n {{ step.description }}\n </p>\n }\n </div>\n </div>\n </div>\n } @else if (zType() === 'dot') {\n <!-- Dot Style: Simple dots with optional labels -->\n <div class=\"flex items-center\">\n <!-- Dot -->\n <span [class]=\"getDotClassesByIndex()[i]\"></span>\n\n <!-- Content (optional) -->\n @if (step.title) {\n <span\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"ms-2 max-w-20 truncate text-sm whitespace-nowrap\"\n [class.text-foreground]=\"stepStatuses()[i] === 'current'\"\n [class.text-muted-foreground]=\"stepStatuses()[i] !== 'current'\">\n {{ step.title }}\n </span>\n }\n\n <!-- Horizontal Line -->\n @if (!last) {\n <div [class]=\"getDotLineClassesByIndex()[i]\" class=\"mx-2 min-w-8\"></div>\n }\n </div>\n } @else if (zType() === 'inline') {\n <!-- Inline: Icon + Content + Line in one row -->\n <div class=\"flex items-center\">\n <!-- Step Icon -->\n <span [class]=\"getIconClassesByStatus()[i]\" class=\"relative! start-auto! shrink-0\">\n @switch (stepStatuses()[i]) {\n @case ('completed') {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else {\n <z-icon zType=\"lucideCheck\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n }\n @case ('error') {\n <z-icon zType=\"lucideX\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n @default {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else if (zShowNumber()) {\n <span class=\"font-medium\">{{ i + 1 }}</span>\n }\n }\n }\n </span>\n\n <!-- Content Inline -->\n @if (step.title || step.description) {\n <div class=\"ms-3 flex min-w-0 flex-col\">\n @if (step.title) {\n <h3\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"max-w-30 truncate text-sm leading-tight font-medium whitespace-nowrap\">\n {{ step.title }}\n </h3>\n }\n @if (step.description) {\n <p\n z-tooltip\n [zContent]=\"step.description\"\n [zAutoDetect]=\"true\"\n zPosition=\"bottom\"\n class=\"text-muted-foreground mt-1 max-w-30 truncate text-xs whitespace-nowrap\">\n {{ step.description }}\n </p>\n }\n </div>\n }\n\n <!-- Horizontal Line -->\n @if (!last) {\n <div [class]=\"getConnectorClassesByIndex()[i]\"></div>\n }\n </div>\n } @else {\n <!-- Default: Icon + Line row, Content below -->\n <div class=\"flex items-center\">\n <!-- Step Icon -->\n <span [class]=\"getIconClassesByStatus()[i]\" class=\"relative! start-auto! shrink-0\">\n @switch (stepStatuses()[i]) {\n @case ('completed') {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else {\n <z-icon zType=\"lucideCheck\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n }\n @case ('error') {\n <z-icon zType=\"lucideX\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n @default {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else if (zShowNumber()) {\n <span class=\"font-medium\">{{ i + 1 }}</span>\n }\n }\n }\n </span>\n\n <!-- Horizontal Line -->\n @if (!last) {\n <div [class]=\"getConnectorClassesByIndex()[i]\"></div>\n }\n </div>\n\n <!-- Content Below -->\n @if (step.title || step.description) {\n <div\n class=\"z-steps-content mt-3 flex flex-col text-center\"\n [style.width.px]=\"150\"\n [style.margin-left.px]=\"(iconWidth() - 150) / 2\">\n @if (step.title) {\n <h3\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"truncate text-sm leading-tight font-medium whitespace-nowrap\">\n {{ step.title }}\n </h3>\n }\n @if (step.description) {\n <p\n z-tooltip\n [zContent]=\"step.description\"\n [zAutoDetect]=\"true\"\n zPosition=\"bottom\"\n class=\"text-muted-foreground mt-1 truncate text-xs whitespace-nowrap\">\n {{ step.description }}\n </p>\n }\n </div>\n }\n }\n </li>\n }\n }\n</ol>\n", styles: ["z-steps ol li:not(:last-child)>div[class*=border-s]{height:calc(100% + 2rem)}z-steps ol li[class*=mb-6]:not(:last-child)>div[class*=border-s]{height:calc(100% + 1.5rem)}z-steps ol li[class*=mb-10]:not(:last-child)>div[class*=border-s]{height:calc(100% + 2.5rem)}z-steps .z-steps-arrow-item{position:relative;display:flex;flex-direction:column;justify-content:center;transition:all .2s ease-out}z-steps .z-steps-arrow-item:hover{filter:brightness(.92)}z-steps .z-steps-arrow-first{border-radius:6px 0 0 6px;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,0 100%)}z-steps .z-steps-arrow-middle{margin-left:-8px;padding-left:calc(16px + 1rem);clip-path:polygon(0 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,0 100%,16px 50%)}z-steps .z-steps-arrow-last{margin-left:-8px;padding-left:calc(16px + 1rem);border-radius:0 6px 6px 0;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,16px 50%)}\n"] }]
387
- }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], zSteps: [{ type: i0.Input, args: [{ isSignal: true, alias: "zSteps", required: true }] }], zCurrent: [{ type: i0.Input, args: [{ isSignal: true, alias: "zCurrent", required: false }] }], zOrientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "zOrientation", required: false }] }], zType: [{ type: i0.Input, args: [{ isSignal: true, alias: "zType", required: false }] }], zSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "zSize", required: false }] }], zClickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "zClickable", required: false }] }], zShowNumber: [{ type: i0.Input, args: [{ isSignal: true, alias: "zShowNumber", required: false }] }], zResponsive: [{ type: i0.Input, args: [{ isSignal: true, alias: "zResponsive", required: false }] }], zDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "zDisabled", required: false }] }], zOnStepClick: [{ type: i0.Output, args: ["zOnStepClick"] }], zControl: [{ type: i0.Output, args: ["zControl"] }] } });
387
+ }], propDecorators: { zOnStepClick: [{ type: i0.Output, args: ["zOnStepClick"] }], zControl: [{ type: i0.Output, args: ["zControl"] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], zSteps: [{ type: i0.Input, args: [{ isSignal: true, alias: "zSteps", required: true }] }], zCurrent: [{ type: i0.Input, args: [{ isSignal: true, alias: "zCurrent", required: false }] }], zOrientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "zOrientation", required: false }] }], zType: [{ type: i0.Input, args: [{ isSignal: true, alias: "zType", required: false }] }], zSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "zSize", required: false }] }], zClickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "zClickable", required: false }] }], zShowNumber: [{ type: i0.Input, args: [{ isSignal: true, alias: "zShowNumber", required: false }] }], zResponsive: [{ type: i0.Input, args: [{ isSignal: true, alias: "zResponsive", required: false }] }], zDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "zDisabled", required: false }] }] } });
388
388
 
389
389
  /**
390
390
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"shival99-z-ui-components-z-steps.mjs","sources":["../../../../libs/core-ui/components/z-steps/z-steps.variants.ts","../../../../libs/core-ui/components/z-steps/z-steps.component.ts","../../../../libs/core-ui/components/z-steps/z-steps.component.html","../../../../libs/core-ui/components/z-steps/shival99-z-ui-components-z-steps.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zStepsContainerVariants = cva(['relative list-none m-0 p-0'], {\n variants: {\n orientation: {\n vertical: 'text-foreground',\n horizontal: 'flex items-center w-full',\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nexport const zStepsItemVariants = cva(['relative flex items-start'], {\n variants: {\n orientation: {\n vertical: 'last:mb-0',\n horizontal: 'flex-1 last:flex-none',\n },\n size: {\n sm: 'mb-6 ps-10 min-h-6',\n default: 'mb-8 ps-12 min-h-8',\n lg: 'mb-10 ps-14 min-h-10',\n },\n },\n compoundVariants: [{ orientation: 'horizontal', class: 'mb-0 ps-0 min-h-0' }],\n defaultVariants: {\n orientation: 'vertical',\n size: 'default',\n },\n});\n\nexport const zStepsIconVariants = cva(\n [\n 'absolute start-0 z-10 flex items-center justify-center rounded-full ring-6 ring-background transform-gpu transition-transform duration-200 ease-out hover:scale-110',\n ],\n {\n variants: {\n size: {\n sm: 'w-6 h-6 text-xs',\n default: 'w-8 h-8 text-sm',\n lg: 'w-10 h-10 text-base',\n },\n status: {\n pending: 'bg-background border border-input text-muted-foreground ring-muted',\n current: 'bg-primary text-primary-foreground ring-primary/20',\n completed: 'bg-primary text-primary-foreground ring-primary/20',\n error: 'bg-destructive text-destructive-foreground ring-destructive/20',\n },\n },\n defaultVariants: {\n size: 'default',\n status: 'pending',\n },\n }\n);\n\nexport const zStepsLineVariants = cva(['absolute border-s border-input'], {\n variants: {\n size: {\n sm: 'start-3 top-3 bottom-0',\n default: 'start-4 top-4 bottom-0',\n lg: 'start-5 top-5 bottom-0',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n});\n\nexport const zStepsConnectorVariants = cva(['transition-colors duration-200'], {\n variants: {\n orientation: {\n vertical: 'hidden',\n horizontal: 'flex-1 h-1 mx-4 rounded-full',\n },\n status: {\n pending: 'bg-input',\n current: 'bg-input',\n completed: 'bg-primary',\n error: 'bg-destructive/30',\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n status: 'pending',\n },\n});\n\nexport const zStepsArrowItemVariants = cva(\n ['z-steps-arrow-item relative flex flex-1 flex-col justify-center transition-all duration-200'],\n {\n variants: {\n size: {\n sm: 'min-w-[120px] py-2 px-4',\n default: 'min-w-[150px] py-3 px-5',\n lg: 'min-w-[180px] py-4 px-6',\n },\n status: {\n pending: 'bg-muted text-muted-foreground',\n current: 'bg-primary text-primary-foreground z-steps-arrow-active',\n completed: 'bg-primary text-primary-foreground z-steps-arrow-active',\n error: 'bg-destructive text-destructive-foreground',\n },\n },\n defaultVariants: {\n size: 'default',\n status: 'pending',\n },\n }\n);\n\nexport const zStepsDotVariants = cva(['rounded-full transition-all duration-200'], {\n variants: {\n size: {\n sm: 'w-2 h-2',\n default: 'w-2.5 h-2.5',\n lg: 'w-3 h-3',\n },\n status: {\n pending: 'bg-muted-foreground/30',\n current: 'bg-primary ring-4 ring-primary/20',\n completed: 'bg-primary ring-4 ring-primary/20',\n error: 'bg-destructive ring-4 ring-destructive/20',\n },\n },\n defaultVariants: {\n size: 'default',\n status: 'pending',\n },\n});\n\nexport const zStepsDotLineVariants = cva(['transition-colors duration-200'], {\n variants: {\n orientation: {\n vertical: 'w-px flex-1 min-h-14',\n horizontal: 'h-px flex-1',\n },\n status: {\n pending: 'bg-muted-foreground/20',\n current: 'bg-muted-foreground/20',\n completed: 'bg-primary',\n error: 'bg-destructive/30',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n status: 'pending',\n },\n});\n\nexport type ZStepsContainerVariants = VariantProps<typeof zStepsContainerVariants>;\nexport type ZStepsItemVariants = VariantProps<typeof zStepsItemVariants>;\nexport type ZStepsIconVariants = VariantProps<typeof zStepsIconVariants>;\nexport type ZStepsLineVariants = VariantProps<typeof zStepsLineVariants>;\nexport type ZStepsConnectorVariants = VariantProps<typeof zStepsConnectorVariants>;\nexport type ZStepsArrowItemVariants = VariantProps<typeof zStepsArrowItemVariants>;\nexport type ZStepsDotVariants = VariantProps<typeof zStepsDotVariants>;\nexport type ZStepsDotLineVariants = VariantProps<typeof zStepsDotLineVariants>;\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n ElementRef,\n inject,\n input,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ZIconComponent, ZIconVariants } from '@shival99/z-ui/components/z-icon';\nimport { ZTooltipDirective } from '@shival99/z-ui/components/z-tooltip';\nimport { zMergeClasses, zTransform } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport type {\n ZStepItem,\n ZStepsControl,\n ZStepsOrientation,\n ZStepsSize,\n ZStepsStatus,\n ZStepsType,\n} from './z-steps.types';\nimport {\n zStepsArrowItemVariants,\n zStepsConnectorVariants,\n zStepsContainerVariants,\n zStepsDotLineVariants,\n zStepsDotVariants,\n zStepsIconVariants,\n zStepsItemVariants,\n zStepsLineVariants,\n} from './z-steps.variants';\n\nconst RESPONSIVE_BREAKPOINT = 640;\n\n@Component({\n selector: 'z-steps',\n imports: [ZIconComponent, ZTooltipDirective],\n templateUrl: './z-steps.component.html',\n styleUrl: './z-steps.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'block',\n },\n})\nexport class ZStepsComponent implements AfterViewInit {\n private readonly _elementRef = inject(ElementRef);\n private readonly _destroyRef = inject(DestroyRef);\n private _resizeObserver: ResizeObserver | null = null;\n\n public readonly class = input<ClassValue>('');\n public readonly zSteps = input.required<ZStepItem[]>();\n public readonly zCurrent = input<number>(0);\n public readonly zOrientation = input<ZStepsOrientation>('vertical');\n public readonly zType = input<ZStepsType>('default');\n public readonly zSize = input<ZStepsSize>('default');\n public readonly zClickable = input(false, { transform: zTransform });\n public readonly zShowNumber = input(true, { transform: zTransform });\n public readonly zResponsive = input(true, { transform: zTransform });\n public readonly zDisabled = input(false, { transform: zTransform });\n\n public readonly zOnStepClick = output<number>();\n public readonly zControl = output<ZStepsControl>();\n\n private readonly _internalCurrent = signal<number | null>(null);\n private readonly _stepOverrides = signal<Map<number, Partial<ZStepItem>>>(new Map());\n\n protected readonly isResponsiveVertical = signal(false);\n\n protected readonly currentStep = computed(() => this._internalCurrent() ?? this.zCurrent());\n\n protected readonly mergedSteps = computed(() => {\n const steps = this.zSteps();\n const overrides = this._stepOverrides();\n return steps.map((step, index) => {\n const override = overrides.get(index);\n return override ? { ...step, ...override } : step;\n });\n });\n\n protected readonly effectiveOrientation = computed<ZStepsOrientation>(() => {\n if (this.zResponsive() && this.isResponsiveVertical()) {\n return 'vertical';\n }\n return this.zOrientation();\n });\n\n protected readonly containerClasses = computed(() =>\n zMergeClasses(\n zStepsContainerVariants({\n orientation: this.effectiveOrientation(),\n }),\n this.class()\n )\n );\n\n protected readonly getItemClasses = computed(() =>\n zStepsItemVariants({\n orientation: this.effectiveOrientation(),\n size: this.zSize(),\n })\n );\n\n protected readonly getIconClassesByStatus = computed(() => {\n const size = this.zSize();\n const steps = this.mergedSteps();\n const current = this.currentStep();\n\n return steps.map((step, index) => {\n const status = this._getStepStatus(step, index, current);\n const baseClasses = zStepsIconVariants({ size, status });\n return zMergeClasses(baseClasses, step.iconClass);\n });\n });\n\n protected readonly lineClasses = computed(() => zStepsLineVariants({ size: this.zSize() }));\n\n protected readonly getConnectorClassesByIndex = computed(() => {\n const orientation = this.effectiveOrientation();\n const steps = this.mergedSteps();\n const current = this.currentStep();\n\n return steps.map((step, index) => {\n const status = this._getConnectorStatus(step, index, current);\n return zStepsConnectorVariants({ orientation, status });\n });\n });\n\n protected readonly stepStatuses = computed(() => {\n const steps = this.mergedSteps();\n const current = this.currentStep();\n return steps.map((step, index) => this._getStepStatus(step, index, current));\n });\n\n protected readonly getArrowClassesByIndex = computed(() => {\n const size = this.zSize();\n const steps = this.mergedSteps();\n const current = this.currentStep();\n const total = steps.length;\n\n return steps.map((step, index) => {\n const status = this._getStepStatus(step, index, current);\n const baseClasses = zStepsArrowItemVariants({ size, status });\n\n let positionClass = 'z-steps-arrow-middle';\n if (index === 0) {\n positionClass = 'z-steps-arrow-first';\n }\n if (index === total - 1) {\n positionClass = 'z-steps-arrow-last';\n }\n\n return zMergeClasses(baseClasses, positionClass);\n });\n });\n\n protected readonly getDotClassesByIndex = computed(() => {\n const size = this.zSize();\n const steps = this.mergedSteps();\n const current = this.currentStep();\n\n return steps.map((step, index) => {\n const status = this._getStepStatus(step, index, current);\n return zStepsDotVariants({ size, status });\n });\n });\n\n protected readonly getDotLineClassesByIndex = computed(() => {\n const orientation = this.effectiveOrientation();\n const steps = this.mergedSteps();\n const current = this.currentStep();\n\n return steps.map((step, index) => {\n const status = this._getConnectorStatus(step, index, current);\n return zStepsDotLineVariants({ orientation, status });\n });\n });\n\n protected readonly defaultIconSize = computed<NonNullable<ZIconVariants['zSize']>>(() => {\n const size = this.zSize();\n if (size === 'sm') {\n return '16';\n }\n if (size === 'lg') {\n return '24';\n }\n return '20';\n });\n\n protected readonly getIconSizeByIndex = computed(() => {\n const defaultSize = this.defaultIconSize();\n const steps = this.mergedSteps();\n return steps.map(step => step.iconSize ?? defaultSize);\n });\n\n protected readonly iconWidth = computed(() => {\n const size = this.zSize();\n if (size === 'sm') {\n return 24;\n }\n if (size === 'lg') {\n return 40;\n }\n return 32;\n });\n\n ngAfterViewInit(): void {\n if (this.zResponsive() && this.zOrientation() === 'horizontal') {\n this._setupResizeObserver();\n }\n\n this._destroyRef.onDestroy(() => {\n this._resizeObserver?.disconnect();\n });\n\n this.zControl.emit({\n setActive: (index: number) => {\n if (this.zDisabled()) {\n return;\n }\n if (index >= 0 && index < this.zSteps().length) {\n this._internalCurrent.set(index);\n }\n },\n next: () => {\n if (this.zDisabled()) {\n return;\n }\n const current = this.currentStep();\n const total = this.zSteps().length;\n if (current < total - 1) {\n this._internalCurrent.set(current + 1);\n }\n },\n prev: () => {\n if (this.zDisabled()) {\n return;\n }\n const current = this.currentStep();\n if (current > 0) {\n this._internalCurrent.set(current - 1);\n }\n },\n reset: () => {\n if (this.zDisabled()) {\n return;\n }\n this._internalCurrent.set(0);\n this._stepOverrides.set(new Map());\n },\n setDisabled: (index: number, disabled: boolean) => {\n if (this.zDisabled()) {\n return;\n }\n this._updateStepOverride(index, { disabled });\n },\n setStatus: (index: number, status: ZStepsStatus) => {\n if (this.zDisabled()) {\n return;\n }\n this._updateStepOverride(index, { status });\n },\n getCurrent: () => this.currentStep(),\n getTotal: () => this.zSteps().length,\n });\n }\n\n private _updateStepOverride(index: number, override: Partial<ZStepItem>): void {\n const overrides = new Map(this._stepOverrides());\n const existing = overrides.get(index) || {};\n overrides.set(index, { ...existing, ...override });\n this._stepOverrides.set(overrides);\n }\n\n private _setupResizeObserver(): void {\n const container = this._elementRef.nativeElement;\n this._resizeObserver = new ResizeObserver(entries => {\n const width = entries[0]?.contentRect.width || 0;\n this.isResponsiveVertical.set(width < RESPONSIVE_BREAKPOINT);\n });\n\n this._resizeObserver.observe(container);\n }\n\n private _getStepStatus(step: ZStepItem, index: number, current: number): ZStepsStatus {\n if (step.status) {\n return step.status;\n }\n\n if (index < current) {\n return 'completed';\n }\n\n if (index === current) {\n return 'current';\n }\n\n return 'pending';\n }\n\n private _getConnectorStatus(step: ZStepItem, index: number, current: number): ZStepsStatus {\n if (step.status === 'error') {\n return 'error';\n }\n\n if (index < current) {\n return 'completed';\n }\n\n return 'pending';\n }\n\n protected onStepClick(index: number): void {\n if (this.zDisabled()) {\n return;\n }\n\n const step = this.zSteps()[index];\n if (step.disabled) {\n return;\n }\n\n if (!this.zClickable()) {\n return;\n }\n\n this.zOnStepClick.emit(index);\n }\n}\n","<ol [class]=\"containerClasses()\">\n @for (step of mergedSteps(); track $index; let i = $index; let last = $last) {\n @if (effectiveOrientation() === 'vertical') {\n @if (zType() === 'dot') {\n <!-- Vertical Dot Layout -->\n <li\n class=\"flex items-start gap-3\"\n [class.cursor-pointer]=\"zClickable() && !step.disabled\"\n [class.cursor-not-allowed]=\"step.disabled\"\n [class.opacity-50]=\"step.disabled\"\n (click)=\"onStepClick(i)\">\n <!-- Dot + Line Column -->\n <div class=\"flex flex-col items-center\">\n <!-- Dot -->\n <span [class]=\"getDotClassesByIndex()[i]\" class=\"shrink-0\"></span>\n <!-- Vertical Line -->\n @if (!last) {\n <div [class]=\"getDotLineClassesByIndex()[i]\" class=\"my-1.5\"></div>\n }\n </div>\n\n <!-- Content (optional) -->\n @if (step.title) {\n <span\n class=\"pt-0.5 text-sm\"\n [class.text-foreground]=\"stepStatuses()[i] === 'current'\"\n [class.font-medium]=\"stepStatuses()[i] === 'current'\"\n [class.text-muted-foreground]=\"stepStatuses()[i] !== 'current'\">\n {{ step.title }}\n </span>\n }\n </li>\n } @else {\n <!-- Vertical Layout -->\n <li\n [class]=\"getItemClasses()\"\n [class.!items-start]=\"!step.description && (step.title || step.icon)\"\n [class.items-center]=\"!step.description && (step.title || step.icon)\"\n [class.cursor-pointer]=\"zClickable() && !step.disabled\"\n [class.cursor-not-allowed]=\"step.disabled\"\n [class.opacity-50]=\"step.disabled\"\n (click)=\"onStepClick(i)\">\n <!-- Vertical Line -->\n @if (!last) {\n <div [class]=\"lineClasses()\"></div>\n }\n\n <!-- Step Icon -->\n <span [class]=\"getIconClassesByStatus()[i]\">\n @switch (stepStatuses()[i]) {\n @case ('completed') {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else {\n <z-icon zType=\"lucideCheck\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n }\n @case ('error') {\n <z-icon zType=\"lucideX\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n @default {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else if (zShowNumber()) {\n <span class=\"font-medium\">{{ i + 1 }}</span>\n }\n }\n }\n </span>\n\n <!-- Content -->\n @if (step.title || step.description) {\n <div class=\"flex min-w-0 flex-col\" [style.padding-top.px]=\"!step.description ? iconWidth() / 5 : 0\">\n @if (step.title) {\n <h3 class=\"leading-tight font-medium\">{{ step.title }}</h3>\n }\n @if (step.description) {\n <p class=\"text-muted-foreground mt-1 text-sm\">{{ step.description }}</p>\n }\n </div>\n }\n </li>\n }\n } @else {\n <!-- Horizontal Layout -->\n <li\n [class]=\"zType() === 'arrow' ? 'flex-1' : 'flex-1 last:flex-none'\"\n [class.cursor-pointer]=\"zClickable() && !step.disabled\"\n [class.cursor-not-allowed]=\"step.disabled\"\n [class.opacity-50]=\"step.disabled\"\n (click)=\"onStepClick(i)\">\n @if (zType() === 'arrow') {\n <!-- Arrow Style -->\n <div [class]=\"getArrowClassesByIndex()[i]\">\n <div class=\"flex items-center gap-3.5\">\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" class=\"shrink-0\" />\n }\n <div class=\"flex min-w-0 flex-col\">\n @if (step.title) {\n <h3\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"truncate text-sm leading-tight font-semibold whitespace-nowrap\">\n {{ step.title }}\n </h3>\n }\n @if (step.description) {\n <p\n z-tooltip\n [zContent]=\"step.description\"\n [zAutoDetect]=\"true\"\n zPosition=\"bottom\"\n class=\"mt-1 truncate text-xs whitespace-nowrap opacity-80\">\n {{ step.description }}\n </p>\n }\n </div>\n </div>\n </div>\n } @else if (zType() === 'dot') {\n <!-- Dot Style: Simple dots with optional labels -->\n <div class=\"flex items-center\">\n <!-- Dot -->\n <span [class]=\"getDotClassesByIndex()[i]\"></span>\n\n <!-- Content (optional) -->\n @if (step.title) {\n <span\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"ms-2 max-w-20 truncate text-sm whitespace-nowrap\"\n [class.text-foreground]=\"stepStatuses()[i] === 'current'\"\n [class.text-muted-foreground]=\"stepStatuses()[i] !== 'current'\">\n {{ step.title }}\n </span>\n }\n\n <!-- Horizontal Line -->\n @if (!last) {\n <div [class]=\"getDotLineClassesByIndex()[i]\" class=\"mx-2 min-w-8\"></div>\n }\n </div>\n } @else if (zType() === 'inline') {\n <!-- Inline: Icon + Content + Line in one row -->\n <div class=\"flex items-center\">\n <!-- Step Icon -->\n <span [class]=\"getIconClassesByStatus()[i]\" class=\"relative! start-auto! shrink-0\">\n @switch (stepStatuses()[i]) {\n @case ('completed') {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else {\n <z-icon zType=\"lucideCheck\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n }\n @case ('error') {\n <z-icon zType=\"lucideX\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n @default {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else if (zShowNumber()) {\n <span class=\"font-medium\">{{ i + 1 }}</span>\n }\n }\n }\n </span>\n\n <!-- Content Inline -->\n @if (step.title || step.description) {\n <div class=\"ms-3 flex min-w-0 flex-col\">\n @if (step.title) {\n <h3\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"max-w-30 truncate text-sm leading-tight font-medium whitespace-nowrap\">\n {{ step.title }}\n </h3>\n }\n @if (step.description) {\n <p\n z-tooltip\n [zContent]=\"step.description\"\n [zAutoDetect]=\"true\"\n zPosition=\"bottom\"\n class=\"text-muted-foreground mt-1 max-w-30 truncate text-xs whitespace-nowrap\">\n {{ step.description }}\n </p>\n }\n </div>\n }\n\n <!-- Horizontal Line -->\n @if (!last) {\n <div [class]=\"getConnectorClassesByIndex()[i]\"></div>\n }\n </div>\n } @else {\n <!-- Default: Icon + Line row, Content below -->\n <div class=\"flex items-center\">\n <!-- Step Icon -->\n <span [class]=\"getIconClassesByStatus()[i]\" class=\"relative! start-auto! shrink-0\">\n @switch (stepStatuses()[i]) {\n @case ('completed') {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else {\n <z-icon zType=\"lucideCheck\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n }\n @case ('error') {\n <z-icon zType=\"lucideX\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n @default {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else if (zShowNumber()) {\n <span class=\"font-medium\">{{ i + 1 }}</span>\n }\n }\n }\n </span>\n\n <!-- Horizontal Line -->\n @if (!last) {\n <div [class]=\"getConnectorClassesByIndex()[i]\"></div>\n }\n </div>\n\n <!-- Content Below -->\n @if (step.title || step.description) {\n <div\n class=\"z-steps-content mt-3 flex flex-col text-center\"\n [style.width.px]=\"150\"\n [style.margin-left.px]=\"(iconWidth() - 150) / 2\">\n @if (step.title) {\n <h3\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"truncate text-sm leading-tight font-medium whitespace-nowrap\">\n {{ step.title }}\n </h3>\n }\n @if (step.description) {\n <p\n z-tooltip\n [zContent]=\"step.description\"\n [zAutoDetect]=\"true\"\n zPosition=\"bottom\"\n class=\"text-muted-foreground mt-1 truncate text-xs whitespace-nowrap\">\n {{ step.description }}\n </p>\n }\n </div>\n }\n }\n </li>\n }\n }\n</ol>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAEa,uBAAuB,GAAG,GAAG,CAAC,CAAC,4BAA4B,CAAC,EAAE;AACzE,IAAA,QAAQ,EAAE;AACR,QAAA,WAAW,EAAE;AACX,YAAA,QAAQ,EAAE,iBAAiB;AAC3B,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,WAAW,EAAE,UAAU;AACxB,KAAA;AACF,CAAA;MAEY,kBAAkB,GAAG,GAAG,CAAC,CAAC,2BAA2B,CAAC,EAAE;AACnE,IAAA,QAAQ,EAAE;AACR,QAAA,WAAW,EAAE;AACX,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,oBAAoB;AACxB,YAAA,OAAO,EAAE,oBAAoB;AAC7B,YAAA,EAAE,EAAE,sBAAsB;AAC3B,SAAA;AACF,KAAA;IACD,gBAAgB,EAAE,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;AAC7E,IAAA,eAAe,EAAE;AACf,QAAA,WAAW,EAAE,UAAU;AACvB,QAAA,IAAI,EAAE,SAAS;AAChB,KAAA;AACF,CAAA;AAEM,MAAM,kBAAkB,GAAG,GAAG,CACnC;IACE,qKAAqK;CACtK,EACD;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,iBAAiB;AACrB,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,EAAE,EAAE,qBAAqB;AAC1B,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,oEAAoE;AAC7E,YAAA,OAAO,EAAE,oDAAoD;AAC7D,YAAA,SAAS,EAAE,oDAAoD;AAC/D,YAAA,KAAK,EAAE,gEAAgE;AACxE,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,MAAM,EAAE,SAAS;AAClB,KAAA;AACF,CAAA;MAGU,kBAAkB,GAAG,GAAG,CAAC,CAAC,gCAAgC,CAAC,EAAE;AACxE,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,wBAAwB;AAC5B,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,EAAE,EAAE,wBAAwB;AAC7B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,SAAS;AAChB,KAAA;AACF,CAAA;MAEY,uBAAuB,GAAG,GAAG,CAAC,CAAC,gCAAgC,CAAC,EAAE;AAC7E,IAAA,QAAQ,EAAE;AACR,QAAA,WAAW,EAAE;AACX,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,KAAK,EAAE,mBAAmB;AAC3B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,WAAW,EAAE,UAAU;AACvB,QAAA,MAAM,EAAE,SAAS;AAClB,KAAA;AACF,CAAA;MAEY,uBAAuB,GAAG,GAAG,CACxC,CAAC,6FAA6F,CAAC,EAC/F;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,yBAAyB;AAC7B,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,EAAE,EAAE,yBAAyB;AAC9B,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,OAAO,EAAE,yDAAyD;AAClE,YAAA,SAAS,EAAE,yDAAyD;AACpE,YAAA,KAAK,EAAE,4CAA4C;AACpD,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,MAAM,EAAE,SAAS;AAClB,KAAA;AACF,CAAA;AAGI,MAAM,iBAAiB,GAAG,GAAG,CAAC,CAAC,0CAA0C,CAAC,EAAE;AACjF,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,EAAE,EAAE,SAAS;AACd,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,OAAO,EAAE,mCAAmC;AAC5C,YAAA,SAAS,EAAE,mCAAmC;AAC9C,YAAA,KAAK,EAAE,2CAA2C;AACnD,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,MAAM,EAAE,SAAS;AAClB,KAAA;AACF,CAAA,CAAC;AAEK,MAAM,qBAAqB,GAAG,GAAG,CAAC,CAAC,gCAAgC,CAAC,EAAE;AAC3E,IAAA,QAAQ,EAAE;AACR,QAAA,WAAW,EAAE;AACX,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,UAAU,EAAE,aAAa;AAC1B,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,KAAK,EAAE,mBAAmB;AAC3B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,WAAW,EAAE,YAAY;AACzB,QAAA,MAAM,EAAE,SAAS;AAClB,KAAA;AACF,CAAA,CAAC;;AClHF,MAAM,qBAAqB,GAAG,GAAG;MAapB,eAAe,CAAA;AACT,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;IACzC,eAAe,GAA0B,IAAI;AAErC,IAAA,KAAK,GAAG,KAAK,CAAa,EAAE,iDAAC;AAC7B,IAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,iDAAe;AACtC,IAAA,QAAQ,GAAG,KAAK,CAAS,CAAC,oDAAC;AAC3B,IAAA,YAAY,GAAG,KAAK,CAAoB,UAAU,wDAAC;AACnD,IAAA,KAAK,GAAG,KAAK,CAAa,SAAS,iDAAC;AACpC,IAAA,KAAK,GAAG,KAAK,CAAa,SAAS,iDAAC;IACpC,UAAU,GAAG,KAAK,CAAC,KAAK,uDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;IACpD,WAAW,GAAG,KAAK,CAAC,IAAI,wDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;IACpD,WAAW,GAAG,KAAK,CAAC,IAAI,wDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;IACpD,SAAS,GAAG,KAAK,CAAC,KAAK,sDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;IAEnD,YAAY,GAAG,MAAM,EAAU;IAC/B,QAAQ,GAAG,MAAM,EAAiB;AAEjC,IAAA,gBAAgB,GAAG,MAAM,CAAgB,IAAI,4DAAC;AAC9C,IAAA,cAAc,GAAG,MAAM,CAAkC,IAAI,GAAG,EAAE,0DAAC;AAEjE,IAAA,oBAAoB,GAAG,MAAM,CAAC,KAAK,gEAAC;AAEpC,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,uDAAC;AAExE,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;AAC3B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE;QACvC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;YAC/B,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACrC,YAAA,OAAO,QAAQ,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI;AACnD,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,uDAAC;AAEiB,IAAA,oBAAoB,GAAG,QAAQ,CAAoB,MAAK;QACzE,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;AACrD,YAAA,OAAO,UAAU;QACnB;AACA,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE;AAC5B,IAAA,CAAC,gEAAC;IAEiB,gBAAgB,GAAG,QAAQ,CAAC,MAC7C,aAAa,CACX,uBAAuB,CAAC;AACtB,QAAA,WAAW,EAAE,IAAI,CAAC,oBAAoB,EAAE;AACzC,KAAA,CAAC,EACF,IAAI,CAAC,KAAK,EAAE,CACb,4DACF;AAEkB,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC3C,kBAAkB,CAAC;AACjB,QAAA,WAAW,EAAE,IAAI,CAAC,oBAAoB,EAAE;AACxC,QAAA,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,KAAA,CAAC,0DACH;AAEkB,IAAA,sBAAsB,GAAG,QAAQ,CAAC,MAAK;AACxD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE;QAElC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAC/B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;YACxD,MAAM,WAAW,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACxD,OAAO,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;AACnD,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,kEAAC;AAEiB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,kBAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,uDAAC;AAExE,IAAA,0BAA0B,GAAG,QAAQ,CAAC,MAAK;AAC5D,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAC/C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE;QAElC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAC/B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;YAC7D,OAAO,uBAAuB,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AACzD,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,sEAAC;AAEiB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE;QAClC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC9E,IAAA,CAAC,wDAAC;AAEiB,IAAA,sBAAsB,GAAG,QAAQ,CAAC,MAAK;AACxD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE;AAClC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM;QAE1B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAC/B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;YACxD,MAAM,WAAW,GAAG,uBAAuB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAE7D,IAAI,aAAa,GAAG,sBAAsB;AAC1C,YAAA,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,aAAa,GAAG,qBAAqB;YACvC;AACA,YAAA,IAAI,KAAK,KAAK,KAAK,GAAG,CAAC,EAAE;gBACvB,aAAa,GAAG,oBAAoB;YACtC;AAEA,YAAA,OAAO,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC;AAClD,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,kEAAC;AAEiB,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;AACtD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE;QAElC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAC/B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;YACxD,OAAO,iBAAiB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5C,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,gEAAC;AAEiB,IAAA,wBAAwB,GAAG,QAAQ,CAAC,MAAK;AAC1D,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAC/C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE;QAElC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAC/B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;YAC7D,OAAO,qBAAqB,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AACvD,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,oEAAC;AAEiB,IAAA,eAAe,GAAG,QAAQ,CAAsC,MAAK;AACtF,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;AACzB,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,YAAA,OAAO,IAAI;QACb;AACA,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,YAAA,OAAO,IAAI;QACb;AACA,QAAA,OAAO,IAAI;AACb,IAAA,CAAC,2DAAC;AAEiB,IAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAK;AACpD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE;AAC1C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;AAChC,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC;AACxD,IAAA,CAAC,8DAAC;AAEiB,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AAC3C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;AACzB,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,YAAA,OAAO,EAAE;QACX;AACA,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,YAAA,OAAO,EAAE;QACX;AACA,QAAA,OAAO,EAAE;AACX,IAAA,CAAC,qDAAC;IAEF,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,YAAY,EAAE;YAC9D,IAAI,CAAC,oBAAoB,EAAE;QAC7B;AAEA,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAK;AAC9B,YAAA,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE;AACpC,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,YAAA,SAAS,EAAE,CAAC,KAAa,KAAI;AAC3B,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;oBACpB;gBACF;AACA,gBAAA,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE;AAC9C,oBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;gBAClC;YACF,CAAC;YACD,IAAI,EAAE,MAAK;AACT,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;oBACpB;gBACF;AACA,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE;gBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM;AAClC,gBAAA,IAAI,OAAO,GAAG,KAAK,GAAG,CAAC,EAAE;oBACvB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;gBACxC;YACF,CAAC;YACD,IAAI,EAAE,MAAK;AACT,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;oBACpB;gBACF;AACA,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE;AAClC,gBAAA,IAAI,OAAO,GAAG,CAAC,EAAE;oBACf,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;gBACxC;YACF,CAAC;YACD,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;oBACpB;gBACF;AACA,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;YACpC,CAAC;AACD,YAAA,WAAW,EAAE,CAAC,KAAa,EAAE,QAAiB,KAAI;AAChD,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;oBACpB;gBACF;gBACA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC;YAC/C,CAAC;AACD,YAAA,SAAS,EAAE,CAAC,KAAa,EAAE,MAAoB,KAAI;AACjD,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;oBACpB;gBACF;gBACA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC;YAC7C,CAAC;AACD,YAAA,UAAU,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE;YACpC,QAAQ,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM;AACrC,SAAA,CAAC;IACJ;IAEQ,mBAAmB,CAAC,KAAa,EAAE,QAA4B,EAAA;QACrE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;AAC3C,QAAA,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;AAClD,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;IACpC;IAEQ,oBAAoB,GAAA;AAC1B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa;QAChD,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,OAAO,IAAG;AAClD,YAAA,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC;YAChD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,GAAG,qBAAqB,CAAC;AAC9D,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC;IACzC;AAEQ,IAAA,cAAc,CAAC,IAAe,EAAE,KAAa,EAAE,OAAe,EAAA;AACpE,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,IAAI,CAAC,MAAM;QACpB;AAEA,QAAA,IAAI,KAAK,GAAG,OAAO,EAAE;AACnB,YAAA,OAAO,WAAW;QACpB;AAEA,QAAA,IAAI,KAAK,KAAK,OAAO,EAAE;AACrB,YAAA,OAAO,SAAS;QAClB;AAEA,QAAA,OAAO,SAAS;IAClB;AAEQ,IAAA,mBAAmB,CAAC,IAAe,EAAE,KAAa,EAAE,OAAe,EAAA;AACzE,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;AAC3B,YAAA,OAAO,OAAO;QAChB;AAEA,QAAA,IAAI,KAAK,GAAG,OAAO,EAAE;AACnB,YAAA,OAAO,WAAW;QACpB;AAEA,QAAA,OAAO,SAAS;IAClB;AAEU,IAAA,WAAW,CAAC,KAAa,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YACpB;QACF;QAEA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB;QACF;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;YACtB;QACF;AAEA,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;IAC/B;uGA1RW,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,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjD5B,y8UA6QA,EAAA,MAAA,EAAA,CAAA,u5BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDrOY,cAAc,0HAAE,iBAAiB,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,cAAA,EAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,YAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAShC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAX3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAAA,OAAA,EACV,CAAC,cAAc,EAAE,iBAAiB,CAAC,EAAA,eAAA,EAG3B,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,KAAK,EAAE,OAAO;AACf,qBAAA,EAAA,QAAA,EAAA,y8UAAA,EAAA,MAAA,EAAA,CAAA,u5BAAA,CAAA,EAAA;;;AE/CH;;AAEG;;;;"}
1
+ {"version":3,"file":"shival99-z-ui-components-z-steps.mjs","sources":["../../../../libs/core-ui/components/z-steps/z-steps.variants.ts","../../../../libs/core-ui/components/z-steps/z-steps.component.ts","../../../../libs/core-ui/components/z-steps/z-steps.component.html","../../../../libs/core-ui/components/z-steps/shival99-z-ui-components-z-steps.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zStepsContainerVariants = cva(['relative list-none m-0 p-0'], {\n variants: {\n orientation: {\n vertical: 'text-foreground',\n horizontal: 'flex items-center w-full',\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nexport const zStepsItemVariants = cva(['relative flex items-start'], {\n variants: {\n orientation: {\n vertical: 'last:mb-0',\n horizontal: 'flex-1 last:flex-none',\n },\n size: {\n sm: 'mb-6 ps-10 min-h-6',\n default: 'mb-8 ps-12 min-h-8',\n lg: 'mb-10 ps-14 min-h-10',\n },\n },\n compoundVariants: [{ orientation: 'horizontal', class: 'mb-0 ps-0 min-h-0' }],\n defaultVariants: {\n orientation: 'vertical',\n size: 'default',\n },\n});\n\nexport const zStepsIconVariants = cva(\n [\n 'absolute start-0 z-10 flex items-center justify-center rounded-full ring-6 ring-background transform-gpu transition-transform duration-200 ease-out hover:scale-110',\n ],\n {\n variants: {\n size: {\n sm: 'w-6 h-6 text-xs',\n default: 'w-8 h-8 text-sm',\n lg: 'w-10 h-10 text-base',\n },\n status: {\n pending: 'bg-background border border-input text-muted-foreground ring-muted',\n current: 'bg-primary text-primary-foreground ring-primary/20',\n completed: 'bg-primary text-primary-foreground ring-primary/20',\n error: 'bg-destructive text-destructive-foreground ring-destructive/20',\n },\n },\n defaultVariants: {\n size: 'default',\n status: 'pending',\n },\n }\n);\n\nexport const zStepsLineVariants = cva(['absolute border-s border-input'], {\n variants: {\n size: {\n sm: 'start-3 top-3 bottom-0',\n default: 'start-4 top-4 bottom-0',\n lg: 'start-5 top-5 bottom-0',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n});\n\nexport const zStepsConnectorVariants = cva(['transition-colors duration-200'], {\n variants: {\n orientation: {\n vertical: 'hidden',\n horizontal: 'flex-1 h-1 mx-4 rounded-full',\n },\n status: {\n pending: 'bg-input',\n current: 'bg-input',\n completed: 'bg-primary',\n error: 'bg-destructive/30',\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n status: 'pending',\n },\n});\n\nexport const zStepsArrowItemVariants = cva(\n ['z-steps-arrow-item relative flex flex-1 flex-col justify-center transition-all duration-200'],\n {\n variants: {\n size: {\n sm: 'min-w-[120px] py-2 px-4',\n default: 'min-w-[150px] py-3 px-5',\n lg: 'min-w-[180px] py-4 px-6',\n },\n status: {\n pending: 'bg-muted text-muted-foreground',\n current: 'bg-primary text-primary-foreground z-steps-arrow-active',\n completed: 'bg-primary text-primary-foreground z-steps-arrow-active',\n error: 'bg-destructive text-destructive-foreground',\n },\n },\n defaultVariants: {\n size: 'default',\n status: 'pending',\n },\n }\n);\n\nexport const zStepsDotVariants = cva(['rounded-full transition-all duration-200'], {\n variants: {\n size: {\n sm: 'w-2 h-2',\n default: 'w-2.5 h-2.5',\n lg: 'w-3 h-3',\n },\n status: {\n pending: 'bg-muted-foreground/30',\n current: 'bg-primary ring-4 ring-primary/20',\n completed: 'bg-primary ring-4 ring-primary/20',\n error: 'bg-destructive ring-4 ring-destructive/20',\n },\n },\n defaultVariants: {\n size: 'default',\n status: 'pending',\n },\n});\n\nexport const zStepsDotLineVariants = cva(['transition-colors duration-200'], {\n variants: {\n orientation: {\n vertical: 'w-px flex-1 min-h-14',\n horizontal: 'h-px flex-1',\n },\n status: {\n pending: 'bg-muted-foreground/20',\n current: 'bg-muted-foreground/20',\n completed: 'bg-primary',\n error: 'bg-destructive/30',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n status: 'pending',\n },\n});\n\nexport type ZStepsContainerVariants = VariantProps<typeof zStepsContainerVariants>;\nexport type ZStepsItemVariants = VariantProps<typeof zStepsItemVariants>;\nexport type ZStepsIconVariants = VariantProps<typeof zStepsIconVariants>;\nexport type ZStepsLineVariants = VariantProps<typeof zStepsLineVariants>;\nexport type ZStepsConnectorVariants = VariantProps<typeof zStepsConnectorVariants>;\nexport type ZStepsArrowItemVariants = VariantProps<typeof zStepsArrowItemVariants>;\nexport type ZStepsDotVariants = VariantProps<typeof zStepsDotVariants>;\nexport type ZStepsDotLineVariants = VariantProps<typeof zStepsDotLineVariants>;\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n ElementRef,\n inject,\n input,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ZIconComponent, ZIconVariants } from '@shival99/z-ui/components/z-icon';\nimport { ZTooltipDirective } from '@shival99/z-ui/components/z-tooltip';\nimport { zMergeClasses, zTransform } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport type {\n ZStepItem,\n ZStepsControl,\n ZStepsOrientation,\n ZStepsSize,\n ZStepsStatus,\n ZStepsType,\n} from './z-steps.types';\nimport {\n zStepsArrowItemVariants,\n zStepsConnectorVariants,\n zStepsContainerVariants,\n zStepsDotLineVariants,\n zStepsDotVariants,\n zStepsIconVariants,\n zStepsItemVariants,\n zStepsLineVariants,\n} from './z-steps.variants';\n\nconst RESPONSIVE_BREAKPOINT = 640;\n\n@Component({\n selector: 'z-steps',\n imports: [ZIconComponent, ZTooltipDirective],\n templateUrl: './z-steps.component.html',\n styleUrl: './z-steps.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'block',\n },\n})\nexport class ZStepsComponent implements AfterViewInit {\n private readonly _elementRef = inject(ElementRef);\n private readonly _destroyRef = inject(DestroyRef);\n\n public readonly zOnStepClick = output<number>();\n public readonly zControl = output<ZStepsControl>();\n\n public readonly class = input<ClassValue>('');\n public readonly zSteps = input.required<ZStepItem[]>();\n public readonly zCurrent = input<number>(0);\n public readonly zOrientation = input<ZStepsOrientation>('vertical');\n public readonly zType = input<ZStepsType>('default');\n public readonly zSize = input<ZStepsSize>('default');\n public readonly zClickable = input(false, { transform: zTransform });\n public readonly zShowNumber = input(true, { transform: zTransform });\n public readonly zResponsive = input(true, { transform: zTransform });\n public readonly zDisabled = input(false, { transform: zTransform });\n\n private readonly _internalCurrent = signal<number | null>(null);\n private readonly _stepOverrides = signal<Map<number, Partial<ZStepItem>>>(new Map());\n private _resizeObserver: ResizeObserver | null = null;\n\n protected readonly isResponsiveVertical = signal(false);\n\n protected readonly currentStep = computed(() => this._internalCurrent() ?? this.zCurrent());\n\n protected readonly mergedSteps = computed(() => {\n const steps = this.zSteps();\n const overrides = this._stepOverrides();\n return steps.map((step, index) => {\n const override = overrides.get(index);\n return override ? { ...step, ...override } : step;\n });\n });\n\n protected readonly effectiveOrientation = computed<ZStepsOrientation>(() => {\n if (this.zResponsive() && this.isResponsiveVertical()) {\n return 'vertical';\n }\n return this.zOrientation();\n });\n\n protected readonly containerClasses = computed(() =>\n zMergeClasses(\n zStepsContainerVariants({\n orientation: this.effectiveOrientation(),\n }),\n this.class()\n )\n );\n\n protected readonly getItemClasses = computed(() =>\n zStepsItemVariants({\n orientation: this.effectiveOrientation(),\n size: this.zSize(),\n })\n );\n\n protected readonly getIconClassesByStatus = computed(() => {\n const size = this.zSize();\n const steps = this.mergedSteps();\n const current = this.currentStep();\n\n return steps.map((step, index) => {\n const status = this._getStepStatus(step, index, current);\n const baseClasses = zStepsIconVariants({ size, status });\n return zMergeClasses(baseClasses, step.iconClass);\n });\n });\n\n protected readonly lineClasses = computed(() => zStepsLineVariants({ size: this.zSize() }));\n\n protected readonly getConnectorClassesByIndex = computed(() => {\n const orientation = this.effectiveOrientation();\n const steps = this.mergedSteps();\n const current = this.currentStep();\n\n return steps.map((step, index) => {\n const status = this._getConnectorStatus(step, index, current);\n return zStepsConnectorVariants({ orientation, status });\n });\n });\n\n protected readonly stepStatuses = computed(() => {\n const steps = this.mergedSteps();\n const current = this.currentStep();\n return steps.map((step, index) => this._getStepStatus(step, index, current));\n });\n\n protected readonly getArrowClassesByIndex = computed(() => {\n const size = this.zSize();\n const steps = this.mergedSteps();\n const current = this.currentStep();\n const total = steps.length;\n\n return steps.map((step, index) => {\n const status = this._getStepStatus(step, index, current);\n const baseClasses = zStepsArrowItemVariants({ size, status });\n\n let positionClass = 'z-steps-arrow-middle';\n if (index === 0) {\n positionClass = 'z-steps-arrow-first';\n }\n if (index === total - 1) {\n positionClass = 'z-steps-arrow-last';\n }\n\n return zMergeClasses(baseClasses, positionClass);\n });\n });\n\n protected readonly getDotClassesByIndex = computed(() => {\n const size = this.zSize();\n const steps = this.mergedSteps();\n const current = this.currentStep();\n\n return steps.map((step, index) => {\n const status = this._getStepStatus(step, index, current);\n return zStepsDotVariants({ size, status });\n });\n });\n\n protected readonly getDotLineClassesByIndex = computed(() => {\n const orientation = this.effectiveOrientation();\n const steps = this.mergedSteps();\n const current = this.currentStep();\n\n return steps.map((step, index) => {\n const status = this._getConnectorStatus(step, index, current);\n return zStepsDotLineVariants({ orientation, status });\n });\n });\n\n protected readonly defaultIconSize = computed<NonNullable<ZIconVariants['zSize']>>(() => {\n const size = this.zSize();\n if (size === 'sm') {\n return '16';\n }\n if (size === 'lg') {\n return '24';\n }\n return '20';\n });\n\n protected readonly getIconSizeByIndex = computed(() => {\n const defaultSize = this.defaultIconSize();\n const steps = this.mergedSteps();\n return steps.map(step => step.iconSize ?? defaultSize);\n });\n\n protected readonly iconWidth = computed(() => {\n const size = this.zSize();\n if (size === 'sm') {\n return 24;\n }\n if (size === 'lg') {\n return 40;\n }\n return 32;\n });\n\n ngAfterViewInit(): void {\n if (this.zResponsive() && this.zOrientation() === 'horizontal') {\n this._setupResizeObserver();\n }\n\n this._destroyRef.onDestroy(() => {\n this._resizeObserver?.disconnect();\n });\n\n this.zControl.emit({\n setActive: (index: number) => {\n if (this.zDisabled()) {\n return;\n }\n if (index >= 0 && index < this.zSteps().length) {\n this._internalCurrent.set(index);\n }\n },\n next: () => {\n if (this.zDisabled()) {\n return;\n }\n const current = this.currentStep();\n const total = this.zSteps().length;\n if (current < total - 1) {\n this._internalCurrent.set(current + 1);\n }\n },\n prev: () => {\n if (this.zDisabled()) {\n return;\n }\n const current = this.currentStep();\n if (current > 0) {\n this._internalCurrent.set(current - 1);\n }\n },\n reset: () => {\n if (this.zDisabled()) {\n return;\n }\n this._internalCurrent.set(0);\n this._stepOverrides.set(new Map());\n },\n setDisabled: (index: number, disabled: boolean) => {\n if (this.zDisabled()) {\n return;\n }\n this._updateStepOverride(index, { disabled });\n },\n setStatus: (index: number, status: ZStepsStatus) => {\n if (this.zDisabled()) {\n return;\n }\n this._updateStepOverride(index, { status });\n },\n getCurrent: () => this.currentStep(),\n getTotal: () => this.zSteps().length,\n });\n }\n\n private _updateStepOverride(index: number, override: Partial<ZStepItem>): void {\n const overrides = new Map(this._stepOverrides());\n const existing = overrides.get(index) || {};\n overrides.set(index, { ...existing, ...override });\n this._stepOverrides.set(overrides);\n }\n\n private _setupResizeObserver(): void {\n const container = this._elementRef.nativeElement;\n this._resizeObserver = new ResizeObserver(entries => {\n const width = entries[0]?.contentRect.width || 0;\n this.isResponsiveVertical.set(width < RESPONSIVE_BREAKPOINT);\n });\n\n this._resizeObserver.observe(container);\n }\n\n private _getStepStatus(step: ZStepItem, index: number, current: number): ZStepsStatus {\n if (step.status) {\n return step.status;\n }\n\n if (index < current) {\n return 'completed';\n }\n\n if (index === current) {\n return 'current';\n }\n\n return 'pending';\n }\n\n private _getConnectorStatus(step: ZStepItem, index: number, current: number): ZStepsStatus {\n if (step.status === 'error') {\n return 'error';\n }\n\n if (index < current) {\n return 'completed';\n }\n\n return 'pending';\n }\n\n protected onStepClick(index: number): void {\n if (this.zDisabled()) {\n return;\n }\n\n const step = this.zSteps()[index];\n if (step.disabled) {\n return;\n }\n\n if (!this.zClickable()) {\n return;\n }\n\n this.zOnStepClick.emit(index);\n }\n}\n","<ol [class]=\"containerClasses()\">\n @for (step of mergedSteps(); track $index; let i = $index; let last = $last) {\n @if (effectiveOrientation() === 'vertical') {\n @if (zType() === 'dot') {\n <!-- Vertical Dot Layout -->\n <li\n class=\"flex items-start gap-3\"\n [class.cursor-pointer]=\"zClickable() && !step.disabled\"\n [class.cursor-not-allowed]=\"step.disabled\"\n [class.opacity-50]=\"step.disabled\"\n (click)=\"onStepClick(i)\">\n <!-- Dot + Line Column -->\n <div class=\"flex flex-col items-center\">\n <!-- Dot -->\n <span [class]=\"getDotClassesByIndex()[i]\" class=\"shrink-0\"></span>\n <!-- Vertical Line -->\n @if (!last) {\n <div [class]=\"getDotLineClassesByIndex()[i]\" class=\"my-1.5\"></div>\n }\n </div>\n\n <!-- Content (optional) -->\n @if (step.title) {\n <span\n class=\"pt-0.5 text-sm\"\n [class.text-foreground]=\"stepStatuses()[i] === 'current'\"\n [class.font-medium]=\"stepStatuses()[i] === 'current'\"\n [class.text-muted-foreground]=\"stepStatuses()[i] !== 'current'\">\n {{ step.title }}\n </span>\n }\n </li>\n } @else {\n <!-- Vertical Layout -->\n <li\n [class]=\"getItemClasses()\"\n [class.!items-start]=\"!step.description && (step.title || step.icon)\"\n [class.items-center]=\"!step.description && (step.title || step.icon)\"\n [class.cursor-pointer]=\"zClickable() && !step.disabled\"\n [class.cursor-not-allowed]=\"step.disabled\"\n [class.opacity-50]=\"step.disabled\"\n (click)=\"onStepClick(i)\">\n <!-- Vertical Line -->\n @if (!last) {\n <div [class]=\"lineClasses()\"></div>\n }\n\n <!-- Step Icon -->\n <span [class]=\"getIconClassesByStatus()[i]\">\n @switch (stepStatuses()[i]) {\n @case ('completed') {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else {\n <z-icon zType=\"lucideCheck\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n }\n @case ('error') {\n <z-icon zType=\"lucideX\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n @default {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else if (zShowNumber()) {\n <span class=\"font-medium\">{{ i + 1 }}</span>\n }\n }\n }\n </span>\n\n <!-- Content -->\n @if (step.title || step.description) {\n <div class=\"flex min-w-0 flex-col\" [style.padding-top.px]=\"!step.description ? iconWidth() / 5 : 0\">\n @if (step.title) {\n <h3 class=\"leading-tight font-medium\">{{ step.title }}</h3>\n }\n @if (step.description) {\n <p class=\"text-muted-foreground mt-1 text-sm\">{{ step.description }}</p>\n }\n </div>\n }\n </li>\n }\n } @else {\n <!-- Horizontal Layout -->\n <li\n [class]=\"zType() === 'arrow' ? 'flex-1' : 'flex-1 last:flex-none'\"\n [class.cursor-pointer]=\"zClickable() && !step.disabled\"\n [class.cursor-not-allowed]=\"step.disabled\"\n [class.opacity-50]=\"step.disabled\"\n (click)=\"onStepClick(i)\">\n @if (zType() === 'arrow') {\n <!-- Arrow Style -->\n <div [class]=\"getArrowClassesByIndex()[i]\">\n <div class=\"flex items-center gap-3.5\">\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" class=\"shrink-0\" />\n }\n <div class=\"flex min-w-0 flex-col\">\n @if (step.title) {\n <h3\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"truncate text-sm leading-tight font-semibold whitespace-nowrap\">\n {{ step.title }}\n </h3>\n }\n @if (step.description) {\n <p\n z-tooltip\n [zContent]=\"step.description\"\n [zAutoDetect]=\"true\"\n zPosition=\"bottom\"\n class=\"mt-1 truncate text-xs whitespace-nowrap opacity-80\">\n {{ step.description }}\n </p>\n }\n </div>\n </div>\n </div>\n } @else if (zType() === 'dot') {\n <!-- Dot Style: Simple dots with optional labels -->\n <div class=\"flex items-center\">\n <!-- Dot -->\n <span [class]=\"getDotClassesByIndex()[i]\"></span>\n\n <!-- Content (optional) -->\n @if (step.title) {\n <span\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"ms-2 max-w-20 truncate text-sm whitespace-nowrap\"\n [class.text-foreground]=\"stepStatuses()[i] === 'current'\"\n [class.text-muted-foreground]=\"stepStatuses()[i] !== 'current'\">\n {{ step.title }}\n </span>\n }\n\n <!-- Horizontal Line -->\n @if (!last) {\n <div [class]=\"getDotLineClassesByIndex()[i]\" class=\"mx-2 min-w-8\"></div>\n }\n </div>\n } @else if (zType() === 'inline') {\n <!-- Inline: Icon + Content + Line in one row -->\n <div class=\"flex items-center\">\n <!-- Step Icon -->\n <span [class]=\"getIconClassesByStatus()[i]\" class=\"relative! start-auto! shrink-0\">\n @switch (stepStatuses()[i]) {\n @case ('completed') {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else {\n <z-icon zType=\"lucideCheck\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n }\n @case ('error') {\n <z-icon zType=\"lucideX\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n @default {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else if (zShowNumber()) {\n <span class=\"font-medium\">{{ i + 1 }}</span>\n }\n }\n }\n </span>\n\n <!-- Content Inline -->\n @if (step.title || step.description) {\n <div class=\"ms-3 flex min-w-0 flex-col\">\n @if (step.title) {\n <h3\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"max-w-30 truncate text-sm leading-tight font-medium whitespace-nowrap\">\n {{ step.title }}\n </h3>\n }\n @if (step.description) {\n <p\n z-tooltip\n [zContent]=\"step.description\"\n [zAutoDetect]=\"true\"\n zPosition=\"bottom\"\n class=\"text-muted-foreground mt-1 max-w-30 truncate text-xs whitespace-nowrap\">\n {{ step.description }}\n </p>\n }\n </div>\n }\n\n <!-- Horizontal Line -->\n @if (!last) {\n <div [class]=\"getConnectorClassesByIndex()[i]\"></div>\n }\n </div>\n } @else {\n <!-- Default: Icon + Line row, Content below -->\n <div class=\"flex items-center\">\n <!-- Step Icon -->\n <span [class]=\"getIconClassesByStatus()[i]\" class=\"relative! start-auto! shrink-0\">\n @switch (stepStatuses()[i]) {\n @case ('completed') {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else {\n <z-icon zType=\"lucideCheck\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n }\n @case ('error') {\n <z-icon zType=\"lucideX\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n @default {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else if (zShowNumber()) {\n <span class=\"font-medium\">{{ i + 1 }}</span>\n }\n }\n }\n </span>\n\n <!-- Horizontal Line -->\n @if (!last) {\n <div [class]=\"getConnectorClassesByIndex()[i]\"></div>\n }\n </div>\n\n <!-- Content Below -->\n @if (step.title || step.description) {\n <div\n class=\"z-steps-content mt-3 flex flex-col text-center\"\n [style.width.px]=\"150\"\n [style.margin-left.px]=\"(iconWidth() - 150) / 2\">\n @if (step.title) {\n <h3\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"truncate text-sm leading-tight font-medium whitespace-nowrap\">\n {{ step.title }}\n </h3>\n }\n @if (step.description) {\n <p\n z-tooltip\n [zContent]=\"step.description\"\n [zAutoDetect]=\"true\"\n zPosition=\"bottom\"\n class=\"text-muted-foreground mt-1 truncate text-xs whitespace-nowrap\">\n {{ step.description }}\n </p>\n }\n </div>\n }\n }\n </li>\n }\n }\n</ol>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, model, output, signal, computed, forwardRef, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
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
5
  import { zTransform, zMergeClasses } from '@shival99/z-ui/utils';
@@ -53,6 +53,7 @@ const zSwitchLabelVariants = cva('select-none cursor-pointer peer-disabled:curso
53
53
  });
54
54
 
55
55
  class ZSwitchComponent {
56
+ zChange = output();
56
57
  class = input('', ...(ngDevMode ? [{ debugName: "class" }] : []));
57
58
  zSize = input('default', ...(ngDevMode ? [{ debugName: "zSize" }] : []));
58
59
  zLabel = input('', ...(ngDevMode ? [{ debugName: "zLabel" }] : []));
@@ -61,7 +62,6 @@ class ZSwitchComponent {
61
62
  zLoading = input(false, { ...(ngDevMode ? { debugName: "zLoading" } : {}), transform: zTransform });
62
63
  zTextPosition = input('right', ...(ngDevMode ? [{ debugName: "zTextPosition" }] : []));
63
64
  zChecked = model(false, ...(ngDevMode ? [{ debugName: "zChecked" }] : []));
64
- zChange = output();
65
65
  _disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
66
66
  isDisabled = computed(() => this.zDisabled() || this._disabled() || this.zLoading(), ...(ngDevMode ? [{ debugName: "isDisabled" }] : []));
67
67
  hostClasses = computed(() => {
@@ -110,7 +110,7 @@ class ZSwitchComponent {
110
110
  this._onTouched();
111
111
  }
112
112
  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: { zChecked: "zCheckedChange", zChange: "zChange" }, host: { properties: { "class": "hostClasses()" } }, providers: [
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: [
114
114
  {
115
115
  provide: NG_VALUE_ACCESSOR,
116
116
  useExisting: forwardRef(() => ZSwitchComponent),
@@ -129,7 +129,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
129
129
  ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
130
130
  '[class]': 'hostClasses()',
131
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: { 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"] }], zChange: [{ type: i0.Output, args: ["zChange"] }] } });
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"] }] } });
133
133
 
134
134
  /**
135
135
  * 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 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 public readonly zChange = output<boolean>();\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 } 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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"}