@ngstarter-ui/components 21.0.50 → 21.0.51

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.
@@ -70,7 +70,7 @@ class Stepper extends CdkStepper {
70
70
  provide: CdkStepper,
71
71
  useExisting: Stepper
72
72
  }
73
- ], queries: [{ propertyName: "stepItems", predicate: Step, descendants: true, isSignal: true }, { propertyName: "_stepLabels", predicate: StepLabel, descendants: true, isSignal: true }], exportAs: ["ngsStepper"], usesInheritance: true, ngImport: i0, template: "<div class=\"ngs-stepper\"\n [class.ngs-stepper-vertical]=\"orientation === 'vertical'\"\n [class.ngs-stepper-horizontal]=\"orientation === 'horizontal'\"\n [class.ngs-stepper-header-bottom]=\"headerPosition() === 'bottom'\">\n @if (orientation === 'horizontal') {\n <div class=\"ngs-stepper-header-container\" [class.ngs-stepper-label-bottom-container]=\"labelPosition() === 'bottom'\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n [class.ngs-stepper-label-bottom]=\"labelPosition() === 'bottom'\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n @if (i < stepItems().length - 1 && labelPosition() !== 'bottom') {\n <div class=\"ngs-stepper-line\"></div>\n }\n }\n </div>\n\n <div class=\"ngs-stepper-content-container\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n }\n </div>\n } @else {\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n <div class=\"ngs-stepper-content-wrapper\" [class.ngs-stepper-last-step]=\"i === stepItems().length - 1\">\n <div class=\"ngs-stepper-vertical-line\"></div>\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n </div>\n }\n }\n</div>\n", styles: [":host{--ngs-stepper-header-padding: 16px;--ngs-stepper-header-gap: 8px;--ngs-stepper-icon-size: 24px;--ngs-stepper-icon-bg: var(--ngs-color-surface-container-high);--ngs-stepper-icon-color: var(--ngs-color-on-surface);--ngs-stepper-icon-active-bg: var(--ngs-color-primary);--ngs-stepper-icon-active-color: var(--ngs-color-on-primary);--ngs-stepper-icon-completed-bg: var(--ngs-color-success);--ngs-stepper-icon-completed-color: var(--ngs-color-on-success);--ngs-stepper-label-color: var(--ngs-color-on-surface-variant);--ngs-stepper-label-active-color: var(--ngs-color-on-surface);--ngs-stepper-line-color: var(--ngs-color-outline-variant);--ngs-stepper-content-padding: 24px}:host .ngs-stepper{display:flex;flex-direction:column}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-header{padding:16px 0}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper{margin-left:calc(var(--ngs-stepper-icon-size) / 2 - .5px);padding-left:calc(var(--ngs-stepper-icon-size) / 2 + var(--ngs-stepper-header-gap) + .5px);position:relative}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper.ngs-stepper-last-step .ngs-stepper-vertical-line{display:none}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-vertical-line{position:absolute;left:0;top:-16px;bottom:-16px;width:1px;background:var(--ngs-stepper-line-color)}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-content{padding:8px 0 24px}:host .ngs-stepper.ngs-stepper-header-bottom{flex-direction:column-reverse}:host .ngs-stepper.ngs-stepper-header-bottom .ngs-stepper-header-container{border-bottom:none;border-top:1px solid var(--ngs-stepper-line-color)}:host .ngs-stepper-header-container{display:flex;align-items:center;padding:0 var(--ngs-stepper-header-padding);border-bottom:1px solid var(--ngs-stepper-line-color);overflow-x:hidden}:host .ngs-stepper-header-container.ngs-stepper-label-bottom-container{align-items:flex-start;padding:0}:host .ngs-stepper-header-container.ngs-stepper-label-bottom-container .ngs-stepper-header{flex:1;padding-left:8px;padding-right:8px}:host .ngs-stepper-header{display:flex;align-items:center;gap:var(--ngs-stepper-header-gap);padding:16px 0;cursor:pointer;white-space:nowrap;outline:none;position:relative;min-width:0}:host .ngs-stepper-header:not(.ngs-stepper-header-active):hover .ngs-stepper-icon{background:var(--ngs-color-surface-container-highest)}:host .ngs-stepper-header.ngs-stepper-label-bottom{flex-direction:column;justify-content:center;width:auto;min-width:100px;gap:12px}:host .ngs-stepper-header.ngs-stepper-label-bottom .ngs-stepper-label{text-align:center;white-space:normal}:host .ngs-stepper-header.ngs-stepper-label-bottom:before,:host .ngs-stepper-header.ngs-stepper-label-bottom:after{content:\"\";position:absolute;top:calc(var(--ngs-stepper-icon-size) / 2 + 16px);height:1px;background:var(--ngs-stepper-line-color);width:calc(50% - var(--ngs-stepper-icon-size) / 2 - 8px)}:host .ngs-stepper-header.ngs-stepper-label-bottom:before{left:0}:host .ngs-stepper-header.ngs-stepper-label-bottom:after{right:0}:host .ngs-stepper-header.ngs-stepper-label-bottom:first-child:before,:host .ngs-stepper-header.ngs-stepper-label-bottom:last-of-type:after{display:none}:host .ngs-stepper-icon{width:var(--ngs-stepper-icon-size);height:var(--ngs-stepper-icon-size);border-radius:50%;background:var(--ngs-stepper-icon-bg);color:var(--ngs-stepper-icon-color);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;flex-shrink:0;transition:background-color .2s ease;z-index:1}:host .ngs-stepper-header-active .ngs-stepper-icon{background:var(--ngs-stepper-icon-active-bg);color:var(--ngs-stepper-icon-active-color)}:host .ngs-stepper-header-active .ngs-stepper-label{color:var(--ngs-stepper-label-active-color);font-weight:500}:host .ngs-stepper-header-completed .ngs-stepper-icon{background:var(--ngs-stepper-icon-completed-bg);color:var(--ngs-stepper-icon-completed-color)}:host .ngs-stepper-label{color:var(--ngs-stepper-label-color);font-size:14px;transition:color .2s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .ngs-stepper-line{flex:1;height:1px;background:var(--ngs-stepper-line-color);margin:0 16px;min-width:24px}:host .ngs-stepper-content-container{padding:var(--ngs-stepper-content-padding)}:host .ngs-stepper-content{outline:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
73
+ ], queries: [{ propertyName: "stepItems", predicate: Step, descendants: true, isSignal: true }, { propertyName: "_stepLabels", predicate: StepLabel, descendants: true, isSignal: true }], exportAs: ["ngsStepper"], usesInheritance: true, ngImport: i0, template: "<div class=\"ngs-stepper\"\n [class.ngs-stepper-vertical]=\"orientation === 'vertical'\"\n [class.ngs-stepper-horizontal]=\"orientation === 'horizontal'\"\n [class.ngs-stepper-header-bottom]=\"headerPosition() === 'bottom'\">\n @if (orientation === 'horizontal') {\n <div class=\"ngs-stepper-header-container\" [class.ngs-stepper-label-bottom-container]=\"labelPosition() === 'bottom'\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n [class.ngs-stepper-label-bottom]=\"labelPosition() === 'bottom'\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n @if (i < stepItems().length - 1 && labelPosition() !== 'bottom') {\n <div class=\"ngs-stepper-line\"></div>\n }\n }\n </div>\n\n <div class=\"ngs-stepper-content-container\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n }\n </div>\n } @else {\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n <div class=\"ngs-stepper-content-wrapper\" [class.ngs-stepper-last-step]=\"i === stepItems().length - 1\">\n <div class=\"ngs-stepper-vertical-line\"></div>\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n </div>\n }\n }\n</div>\n", styles: [":host{--ngs-stepper-header-padding: 16px;--ngs-stepper-header-gap: 8px;--ngs-stepper-icon-size: 24px;--ngs-stepper-icon-bg: var(--ngs-color-surface-container-high);--ngs-stepper-icon-color: var(--ngs-color-on-surface);--ngs-stepper-icon-active-bg: var(--ngs-color-primary);--ngs-stepper-icon-active-color: var(--ngs-color-on-primary);--ngs-stepper-icon-completed-bg: var(--ngs-color-success);--ngs-stepper-icon-completed-color: var(--ngs-color-on-success);--ngs-stepper-label-color: var(--ngs-color-on-surface-variant);--ngs-stepper-label-active-color: var(--ngs-color-on-surface);--ngs-stepper-line-color: var(--ngs-color-border);--ngs-stepper-content-padding: 24px}:host .ngs-stepper{display:flex;flex-direction:column}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-header{padding:16px 0}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper{margin-left:calc(var(--ngs-stepper-icon-size) / 2 - .5px);padding-left:calc(var(--ngs-stepper-icon-size) / 2 + var(--ngs-stepper-header-gap) + .5px);position:relative}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper.ngs-stepper-last-step .ngs-stepper-vertical-line{display:none}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-vertical-line{position:absolute;left:0;top:-16px;bottom:-16px;width:1px;background:var(--ngs-stepper-line-color)}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-content{padding:8px 0 24px}:host .ngs-stepper.ngs-stepper-header-bottom{flex-direction:column-reverse}:host .ngs-stepper.ngs-stepper-header-bottom .ngs-stepper-header-container{border-bottom:none;border-top:1px solid var(--ngs-stepper-line-color)}:host .ngs-stepper-header-container{display:flex;align-items:center;padding:0 var(--ngs-stepper-header-padding);border-bottom:1px solid var(--ngs-stepper-line-color);overflow-x:hidden}:host .ngs-stepper-header-container.ngs-stepper-label-bottom-container{align-items:flex-start;padding:0}:host .ngs-stepper-header-container.ngs-stepper-label-bottom-container .ngs-stepper-header{flex:1;padding-left:8px;padding-right:8px}:host .ngs-stepper-header{display:flex;align-items:center;gap:var(--ngs-stepper-header-gap);padding:16px 0;cursor:pointer;white-space:nowrap;outline:none;position:relative;min-width:0}:host .ngs-stepper-header:not(.ngs-stepper-header-active):hover .ngs-stepper-icon{background:var(--ngs-color-surface-container-highest)}:host .ngs-stepper-header.ngs-stepper-label-bottom{flex-direction:column;justify-content:center;width:auto;min-width:100px;gap:12px}:host .ngs-stepper-header.ngs-stepper-label-bottom .ngs-stepper-label{text-align:center;white-space:normal}:host .ngs-stepper-header.ngs-stepper-label-bottom:before,:host .ngs-stepper-header.ngs-stepper-label-bottom:after{content:\"\";position:absolute;top:calc(var(--ngs-stepper-icon-size) / 2 + 16px);height:1px;background:var(--ngs-stepper-line-color);width:calc(50% - var(--ngs-stepper-icon-size) / 2 - 8px)}:host .ngs-stepper-header.ngs-stepper-label-bottom:before{left:0}:host .ngs-stepper-header.ngs-stepper-label-bottom:after{right:0}:host .ngs-stepper-header.ngs-stepper-label-bottom:first-child:before,:host .ngs-stepper-header.ngs-stepper-label-bottom:last-of-type:after{display:none}:host .ngs-stepper-icon{width:var(--ngs-stepper-icon-size);height:var(--ngs-stepper-icon-size);border-radius:50%;background:var(--ngs-stepper-icon-bg);color:var(--ngs-stepper-icon-color);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;flex-shrink:0;transition:background-color .2s ease;z-index:1}:host .ngs-stepper-header-active .ngs-stepper-icon{background:var(--ngs-stepper-icon-active-bg);color:var(--ngs-stepper-icon-active-color)}:host .ngs-stepper-header-active .ngs-stepper-label{color:var(--ngs-stepper-label-active-color);font-weight:500}:host .ngs-stepper-header-completed .ngs-stepper-icon{background:var(--ngs-stepper-icon-completed-bg);color:var(--ngs-stepper-icon-completed-color)}:host .ngs-stepper-label{color:var(--ngs-stepper-label-color);font-size:14px;transition:color .2s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .ngs-stepper-line{flex:1;height:1px;background:var(--ngs-stepper-line-color);margin:0 16px;min-width:24px}:host .ngs-stepper-content-container{padding:var(--ngs-stepper-content-padding)}:host .ngs-stepper-content{outline:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
74
74
  }
75
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Stepper, decorators: [{
76
76
  type: Component,
@@ -83,7 +83,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
83
83
  }
84
84
  ], host: {
85
85
  'class': 'ngs-stepper',
86
- }, template: "<div class=\"ngs-stepper\"\n [class.ngs-stepper-vertical]=\"orientation === 'vertical'\"\n [class.ngs-stepper-horizontal]=\"orientation === 'horizontal'\"\n [class.ngs-stepper-header-bottom]=\"headerPosition() === 'bottom'\">\n @if (orientation === 'horizontal') {\n <div class=\"ngs-stepper-header-container\" [class.ngs-stepper-label-bottom-container]=\"labelPosition() === 'bottom'\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n [class.ngs-stepper-label-bottom]=\"labelPosition() === 'bottom'\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n @if (i < stepItems().length - 1 && labelPosition() !== 'bottom') {\n <div class=\"ngs-stepper-line\"></div>\n }\n }\n </div>\n\n <div class=\"ngs-stepper-content-container\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n }\n </div>\n } @else {\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n <div class=\"ngs-stepper-content-wrapper\" [class.ngs-stepper-last-step]=\"i === stepItems().length - 1\">\n <div class=\"ngs-stepper-vertical-line\"></div>\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n </div>\n }\n }\n</div>\n", styles: [":host{--ngs-stepper-header-padding: 16px;--ngs-stepper-header-gap: 8px;--ngs-stepper-icon-size: 24px;--ngs-stepper-icon-bg: var(--ngs-color-surface-container-high);--ngs-stepper-icon-color: var(--ngs-color-on-surface);--ngs-stepper-icon-active-bg: var(--ngs-color-primary);--ngs-stepper-icon-active-color: var(--ngs-color-on-primary);--ngs-stepper-icon-completed-bg: var(--ngs-color-success);--ngs-stepper-icon-completed-color: var(--ngs-color-on-success);--ngs-stepper-label-color: var(--ngs-color-on-surface-variant);--ngs-stepper-label-active-color: var(--ngs-color-on-surface);--ngs-stepper-line-color: var(--ngs-color-outline-variant);--ngs-stepper-content-padding: 24px}:host .ngs-stepper{display:flex;flex-direction:column}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-header{padding:16px 0}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper{margin-left:calc(var(--ngs-stepper-icon-size) / 2 - .5px);padding-left:calc(var(--ngs-stepper-icon-size) / 2 + var(--ngs-stepper-header-gap) + .5px);position:relative}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper.ngs-stepper-last-step .ngs-stepper-vertical-line{display:none}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-vertical-line{position:absolute;left:0;top:-16px;bottom:-16px;width:1px;background:var(--ngs-stepper-line-color)}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-content{padding:8px 0 24px}:host .ngs-stepper.ngs-stepper-header-bottom{flex-direction:column-reverse}:host .ngs-stepper.ngs-stepper-header-bottom .ngs-stepper-header-container{border-bottom:none;border-top:1px solid var(--ngs-stepper-line-color)}:host .ngs-stepper-header-container{display:flex;align-items:center;padding:0 var(--ngs-stepper-header-padding);border-bottom:1px solid var(--ngs-stepper-line-color);overflow-x:hidden}:host .ngs-stepper-header-container.ngs-stepper-label-bottom-container{align-items:flex-start;padding:0}:host .ngs-stepper-header-container.ngs-stepper-label-bottom-container .ngs-stepper-header{flex:1;padding-left:8px;padding-right:8px}:host .ngs-stepper-header{display:flex;align-items:center;gap:var(--ngs-stepper-header-gap);padding:16px 0;cursor:pointer;white-space:nowrap;outline:none;position:relative;min-width:0}:host .ngs-stepper-header:not(.ngs-stepper-header-active):hover .ngs-stepper-icon{background:var(--ngs-color-surface-container-highest)}:host .ngs-stepper-header.ngs-stepper-label-bottom{flex-direction:column;justify-content:center;width:auto;min-width:100px;gap:12px}:host .ngs-stepper-header.ngs-stepper-label-bottom .ngs-stepper-label{text-align:center;white-space:normal}:host .ngs-stepper-header.ngs-stepper-label-bottom:before,:host .ngs-stepper-header.ngs-stepper-label-bottom:after{content:\"\";position:absolute;top:calc(var(--ngs-stepper-icon-size) / 2 + 16px);height:1px;background:var(--ngs-stepper-line-color);width:calc(50% - var(--ngs-stepper-icon-size) / 2 - 8px)}:host .ngs-stepper-header.ngs-stepper-label-bottom:before{left:0}:host .ngs-stepper-header.ngs-stepper-label-bottom:after{right:0}:host .ngs-stepper-header.ngs-stepper-label-bottom:first-child:before,:host .ngs-stepper-header.ngs-stepper-label-bottom:last-of-type:after{display:none}:host .ngs-stepper-icon{width:var(--ngs-stepper-icon-size);height:var(--ngs-stepper-icon-size);border-radius:50%;background:var(--ngs-stepper-icon-bg);color:var(--ngs-stepper-icon-color);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;flex-shrink:0;transition:background-color .2s ease;z-index:1}:host .ngs-stepper-header-active .ngs-stepper-icon{background:var(--ngs-stepper-icon-active-bg);color:var(--ngs-stepper-icon-active-color)}:host .ngs-stepper-header-active .ngs-stepper-label{color:var(--ngs-stepper-label-active-color);font-weight:500}:host .ngs-stepper-header-completed .ngs-stepper-icon{background:var(--ngs-stepper-icon-completed-bg);color:var(--ngs-stepper-icon-completed-color)}:host .ngs-stepper-label{color:var(--ngs-stepper-label-color);font-size:14px;transition:color .2s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .ngs-stepper-line{flex:1;height:1px;background:var(--ngs-stepper-line-color);margin:0 16px;min-width:24px}:host .ngs-stepper-content-container{padding:var(--ngs-stepper-content-padding)}:host .ngs-stepper-content{outline:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
86
+ }, template: "<div class=\"ngs-stepper\"\n [class.ngs-stepper-vertical]=\"orientation === 'vertical'\"\n [class.ngs-stepper-horizontal]=\"orientation === 'horizontal'\"\n [class.ngs-stepper-header-bottom]=\"headerPosition() === 'bottom'\">\n @if (orientation === 'horizontal') {\n <div class=\"ngs-stepper-header-container\" [class.ngs-stepper-label-bottom-container]=\"labelPosition() === 'bottom'\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n [class.ngs-stepper-label-bottom]=\"labelPosition() === 'bottom'\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n @if (i < stepItems().length - 1 && labelPosition() !== 'bottom') {\n <div class=\"ngs-stepper-line\"></div>\n }\n }\n </div>\n\n <div class=\"ngs-stepper-content-container\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n }\n </div>\n } @else {\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n <div class=\"ngs-stepper-content-wrapper\" [class.ngs-stepper-last-step]=\"i === stepItems().length - 1\">\n <div class=\"ngs-stepper-vertical-line\"></div>\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n </div>\n }\n }\n</div>\n", styles: [":host{--ngs-stepper-header-padding: 16px;--ngs-stepper-header-gap: 8px;--ngs-stepper-icon-size: 24px;--ngs-stepper-icon-bg: var(--ngs-color-surface-container-high);--ngs-stepper-icon-color: var(--ngs-color-on-surface);--ngs-stepper-icon-active-bg: var(--ngs-color-primary);--ngs-stepper-icon-active-color: var(--ngs-color-on-primary);--ngs-stepper-icon-completed-bg: var(--ngs-color-success);--ngs-stepper-icon-completed-color: var(--ngs-color-on-success);--ngs-stepper-label-color: var(--ngs-color-on-surface-variant);--ngs-stepper-label-active-color: var(--ngs-color-on-surface);--ngs-stepper-line-color: var(--ngs-color-border);--ngs-stepper-content-padding: 24px}:host .ngs-stepper{display:flex;flex-direction:column}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-header{padding:16px 0}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper{margin-left:calc(var(--ngs-stepper-icon-size) / 2 - .5px);padding-left:calc(var(--ngs-stepper-icon-size) / 2 + var(--ngs-stepper-header-gap) + .5px);position:relative}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper.ngs-stepper-last-step .ngs-stepper-vertical-line{display:none}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-vertical-line{position:absolute;left:0;top:-16px;bottom:-16px;width:1px;background:var(--ngs-stepper-line-color)}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-content{padding:8px 0 24px}:host .ngs-stepper.ngs-stepper-header-bottom{flex-direction:column-reverse}:host .ngs-stepper.ngs-stepper-header-bottom .ngs-stepper-header-container{border-bottom:none;border-top:1px solid var(--ngs-stepper-line-color)}:host .ngs-stepper-header-container{display:flex;align-items:center;padding:0 var(--ngs-stepper-header-padding);border-bottom:1px solid var(--ngs-stepper-line-color);overflow-x:hidden}:host .ngs-stepper-header-container.ngs-stepper-label-bottom-container{align-items:flex-start;padding:0}:host .ngs-stepper-header-container.ngs-stepper-label-bottom-container .ngs-stepper-header{flex:1;padding-left:8px;padding-right:8px}:host .ngs-stepper-header{display:flex;align-items:center;gap:var(--ngs-stepper-header-gap);padding:16px 0;cursor:pointer;white-space:nowrap;outline:none;position:relative;min-width:0}:host .ngs-stepper-header:not(.ngs-stepper-header-active):hover .ngs-stepper-icon{background:var(--ngs-color-surface-container-highest)}:host .ngs-stepper-header.ngs-stepper-label-bottom{flex-direction:column;justify-content:center;width:auto;min-width:100px;gap:12px}:host .ngs-stepper-header.ngs-stepper-label-bottom .ngs-stepper-label{text-align:center;white-space:normal}:host .ngs-stepper-header.ngs-stepper-label-bottom:before,:host .ngs-stepper-header.ngs-stepper-label-bottom:after{content:\"\";position:absolute;top:calc(var(--ngs-stepper-icon-size) / 2 + 16px);height:1px;background:var(--ngs-stepper-line-color);width:calc(50% - var(--ngs-stepper-icon-size) / 2 - 8px)}:host .ngs-stepper-header.ngs-stepper-label-bottom:before{left:0}:host .ngs-stepper-header.ngs-stepper-label-bottom:after{right:0}:host .ngs-stepper-header.ngs-stepper-label-bottom:first-child:before,:host .ngs-stepper-header.ngs-stepper-label-bottom:last-of-type:after{display:none}:host .ngs-stepper-icon{width:var(--ngs-stepper-icon-size);height:var(--ngs-stepper-icon-size);border-radius:50%;background:var(--ngs-stepper-icon-bg);color:var(--ngs-stepper-icon-color);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;flex-shrink:0;transition:background-color .2s ease;z-index:1}:host .ngs-stepper-header-active .ngs-stepper-icon{background:var(--ngs-stepper-icon-active-bg);color:var(--ngs-stepper-icon-active-color)}:host .ngs-stepper-header-active .ngs-stepper-label{color:var(--ngs-stepper-label-active-color);font-weight:500}:host .ngs-stepper-header-completed .ngs-stepper-icon{background:var(--ngs-stepper-icon-completed-bg);color:var(--ngs-stepper-icon-completed-color)}:host .ngs-stepper-label{color:var(--ngs-stepper-label-color);font-size:14px;transition:color .2s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .ngs-stepper-line{flex:1;height:1px;background:var(--ngs-stepper-line-color);margin:0 16px;min-width:24px}:host .ngs-stepper-content-container{padding:var(--ngs-stepper-content-padding)}:host .ngs-stepper-content{outline:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
87
87
  }], propDecorators: { headerPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerPosition", required: false }] }], labelPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelPosition", required: false }] }], stepItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => Step), { ...{ descendants: true }, isSignal: true }] }], _stepLabels: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => StepLabel), { ...{ descendants: true }, isSignal: true }] }] } });
88
88
 
89
89
  class StepperNext extends CdkStepperNext {
@@ -1 +1 @@
1
- {"version":3,"file":"ngstarter-ui-components-stepper.mjs","sources":["../../../projects/components/stepper/src/step-label.ts","../../../projects/components/stepper/src/step/step.ts","../../../projects/components/stepper/src/step/step.html","../../../projects/components/stepper/src/stepper/stepper.ts","../../../projects/components/stepper/src/stepper/stepper.html","../../../projects/components/stepper/src/stepper-next.ts","../../../projects/components/stepper/src/stepper-previous.ts","../../../projects/components/stepper/ngstarter-ui-components-stepper.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ngsStepLabel]',\n standalone: true\n})\nexport class StepLabel {\n constructor(public template: TemplateRef<any>) { }\n}\n","import { Component, contentChild, forwardRef, Inject } from '@angular/core';\nimport { CdkStep } from '@angular/cdk/stepper';\nimport { StepLabel } from '../step-label';\nimport { Stepper } from '../stepper/stepper';\n\n@Component({\n selector: 'ngs-step',\n exportAs: 'ngsStep',\n templateUrl: './step.html',\n styleUrl: './step.scss',\n providers: [\n {\n provide: CdkStep,\n useExisting: Step\n }\n ],\n host: {\n 'class': 'ngs-step'\n }\n})\nexport class Step extends CdkStep {\n readonly ngsStepLabel = contentChild(StepLabel);\n\n constructor(@Inject(forwardRef(() => Stepper)) stepper: Stepper) {\n super(stepper);\n }\n}\n","<ng-template>\n <ng-content />\n</ng-template>\n","import { Component, input, contentChildren } from '@angular/core';\nimport { CdkStepper, StepperOrientation } from '@angular/cdk/stepper';\nimport { Step } from '../step/step';\nimport { StepLabel } from '../step-label';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'ngs-stepper',\n exportAs: 'ngsStepper',\n standalone: true,\n imports: [\n CommonModule\n ],\n templateUrl: './stepper.html',\n styleUrl: './stepper.scss',\n providers: [\n {\n provide: CdkStepper,\n useExisting: Stepper\n }\n ],\n host: {\n 'class': 'ngs-stepper',\n }\n})\nexport class Stepper extends CdkStepper {\n headerPosition = input<'top' | 'bottom'>('top');\n labelPosition = input<'top' | 'bottom'>('top');\n\n private _stepperOrientation: StepperOrientation = 'horizontal';\n\n override get orientation(): StepperOrientation {\n return this._stepperOrientation;\n }\n override set orientation(value: StepperOrientation) {\n this._stepperOrientation = value;\n }\n\n // Use a separate signal for template iteration to avoid overriding CdkStepper's QueryList `_steps`.\n readonly stepItems = contentChildren(Step, { descendants: true });\n readonly _stepLabels = contentChildren(StepLabel, { descendants: true });\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n }\n}\n","<div class=\"ngs-stepper\"\n [class.ngs-stepper-vertical]=\"orientation === 'vertical'\"\n [class.ngs-stepper-horizontal]=\"orientation === 'horizontal'\"\n [class.ngs-stepper-header-bottom]=\"headerPosition() === 'bottom'\">\n @if (orientation === 'horizontal') {\n <div class=\"ngs-stepper-header-container\" [class.ngs-stepper-label-bottom-container]=\"labelPosition() === 'bottom'\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n [class.ngs-stepper-label-bottom]=\"labelPosition() === 'bottom'\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n @if (i < stepItems().length - 1 && labelPosition() !== 'bottom') {\n <div class=\"ngs-stepper-line\"></div>\n }\n }\n </div>\n\n <div class=\"ngs-stepper-content-container\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n }\n </div>\n } @else {\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n <div class=\"ngs-stepper-content-wrapper\" [class.ngs-stepper-last-step]=\"i === stepItems().length - 1\">\n <div class=\"ngs-stepper-vertical-line\"></div>\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n </div>\n }\n }\n</div>\n","import { Directive, input } from '@angular/core';\nimport { CdkStepperNext } from '@angular/cdk/stepper';\n\n@Directive({\n selector: 'button[ngsStepperNext]',\n host: {\n '[type]': 'type',\n },\n standalone: true\n})\nexport class StepperNext extends CdkStepperNext {\n override type: string = 'submit';\n}\n","import { Directive, input } from '@angular/core';\nimport { CdkStepperPrevious } from '@angular/cdk/stepper';\n\n@Directive({\n selector: 'button[ngsStepperPrevious]',\n host: {\n '[type]': 'type',\n },\n standalone: true\n})\nexport class StepperPrevious extends CdkStepperPrevious {\n override type: string = 'button';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngstarter-ui-components-stepper.mjs","sources":["../../../projects/components/stepper/src/step-label.ts","../../../projects/components/stepper/src/step/step.ts","../../../projects/components/stepper/src/step/step.html","../../../projects/components/stepper/src/stepper/stepper.ts","../../../projects/components/stepper/src/stepper/stepper.html","../../../projects/components/stepper/src/stepper-next.ts","../../../projects/components/stepper/src/stepper-previous.ts","../../../projects/components/stepper/ngstarter-ui-components-stepper.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ngsStepLabel]',\n standalone: true\n})\nexport class StepLabel {\n constructor(public template: TemplateRef<any>) { }\n}\n","import { Component, contentChild, forwardRef, Inject } from '@angular/core';\nimport { CdkStep } from '@angular/cdk/stepper';\nimport { StepLabel } from '../step-label';\nimport { Stepper } from '../stepper/stepper';\n\n@Component({\n selector: 'ngs-step',\n exportAs: 'ngsStep',\n templateUrl: './step.html',\n styleUrl: './step.scss',\n providers: [\n {\n provide: CdkStep,\n useExisting: Step\n }\n ],\n host: {\n 'class': 'ngs-step'\n }\n})\nexport class Step extends CdkStep {\n readonly ngsStepLabel = contentChild(StepLabel);\n\n constructor(@Inject(forwardRef(() => Stepper)) stepper: Stepper) {\n super(stepper);\n }\n}\n","<ng-template>\n <ng-content />\n</ng-template>\n","import { Component, input, contentChildren } from '@angular/core';\nimport { CdkStepper, StepperOrientation } from '@angular/cdk/stepper';\nimport { Step } from '../step/step';\nimport { StepLabel } from '../step-label';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'ngs-stepper',\n exportAs: 'ngsStepper',\n standalone: true,\n imports: [\n CommonModule\n ],\n templateUrl: './stepper.html',\n styleUrl: './stepper.scss',\n providers: [\n {\n provide: CdkStepper,\n useExisting: Stepper\n }\n ],\n host: {\n 'class': 'ngs-stepper',\n }\n})\nexport class Stepper extends CdkStepper {\n headerPosition = input<'top' | 'bottom'>('top');\n labelPosition = input<'top' | 'bottom'>('top');\n\n private _stepperOrientation: StepperOrientation = 'horizontal';\n\n override get orientation(): StepperOrientation {\n return this._stepperOrientation;\n }\n override set orientation(value: StepperOrientation) {\n this._stepperOrientation = value;\n }\n\n // Use a separate signal for template iteration to avoid overriding CdkStepper's QueryList `_steps`.\n readonly stepItems = contentChildren(Step, { descendants: true });\n readonly _stepLabels = contentChildren(StepLabel, { descendants: true });\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n }\n}\n","<div class=\"ngs-stepper\"\n [class.ngs-stepper-vertical]=\"orientation === 'vertical'\"\n [class.ngs-stepper-horizontal]=\"orientation === 'horizontal'\"\n [class.ngs-stepper-header-bottom]=\"headerPosition() === 'bottom'\">\n @if (orientation === 'horizontal') {\n <div class=\"ngs-stepper-header-container\" [class.ngs-stepper-label-bottom-container]=\"labelPosition() === 'bottom'\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n [class.ngs-stepper-label-bottom]=\"labelPosition() === 'bottom'\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n @if (i < stepItems().length - 1 && labelPosition() !== 'bottom') {\n <div class=\"ngs-stepper-line\"></div>\n }\n }\n </div>\n\n <div class=\"ngs-stepper-content-container\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n }\n </div>\n } @else {\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n <div class=\"ngs-stepper-content-wrapper\" [class.ngs-stepper-last-step]=\"i === stepItems().length - 1\">\n <div class=\"ngs-stepper-vertical-line\"></div>\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n </div>\n }\n }\n</div>\n","import { Directive, input } from '@angular/core';\nimport { CdkStepperNext } from '@angular/cdk/stepper';\n\n@Directive({\n selector: 'button[ngsStepperNext]',\n host: {\n '[type]': 'type',\n },\n standalone: true\n})\nexport class StepperNext extends CdkStepperNext {\n override type: string = 'submit';\n}\n","import { Directive, input } from '@angular/core';\nimport { CdkStepperPrevious } from '@angular/cdk/stepper';\n\n@Directive({\n selector: 'button[ngsStepperPrevious]',\n host: {\n '[type]': 'type',\n },\n standalone: true\n})\nexport class StepperPrevious extends CdkStepperPrevious {\n override type: string = 'button';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ngstarter-ui/components",
3
3
  "description": "NgStarter - AI-friendly Enterprise Angular UI Components and Admin Panel",
4
- "version": "21.0.50",
4
+ "version": "21.0.51",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/elementarlabsdev/ngstarter.git"
@@ -23,13 +23,15 @@ declare class DialogConfig<D = any> {
23
23
  ariaLabel?: string | null;
24
24
  role?: 'dialog' | 'alertdialog';
25
25
  closeOnNavigation?: boolean;
26
+ showCloseButton?: boolean;
26
27
  }
27
28
  declare const DIALOG_DATA: InjectionToken<any>;
28
29
  declare const DIALOG_DEFAULT_OPTIONS: InjectionToken<DialogConfig<any>>;
29
30
 
30
31
  declare class DialogContainer extends CdkDialogContainer implements OnInit {
31
32
  private readonly _cdr;
32
- readonly _portalOutlet: any;
33
+ private _closeHandler?;
34
+ get showCloseButton(): boolean;
33
35
  /** State of the dialog animation. */
34
36
  _animationState: 'void' | 'enter' | 'exit';
35
37
  /** Emits when an animation state changes. */
@@ -41,8 +43,10 @@ declare class DialogContainer extends CdkDialogContainer implements OnInit {
41
43
  _startEnterAnimation(): void;
42
44
  /** Starts the dialog exit animation. */
43
45
  _startExitAnimation(): void;
46
+ _setCloseHandler(handler: () => void): void;
47
+ protected close(): void;
44
48
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogContainer, never>;
45
- static ɵcmp: i0.ɵɵComponentDeclaration<DialogContainer, "ngs-dialog-container", never, {}, {}, never, never, true, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<DialogContainer, "ngs-dialog-container", ["ngsDialogContainer"], {}, {}, never, never, true, never>;
46
50
  }
47
51
 
48
52
  declare class DialogRef<T, R = any> {
@@ -109,7 +113,12 @@ declare class DialogClose {
109
113
  private _dialog;
110
114
  protected _onClick(): void;
111
115
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogClose, never>;
112
- static ɵdir: i0.ɵɵDirectiveDeclaration<DialogClose, "[ngs-dialog-close], [ngsDialogClose]", ["ngsDialogClose"], { "dialogResult": { "alias": "ngs-dialog-close"; "required": false; "isSignal": true; }; "_dialogResult": { "alias": "ngsDialogClose"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
116
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DialogClose, "[ngs-dialog-close],[ngsDialogClose]", ["ngsDialogClose"], { "dialogResult": { "alias": "ngs-dialog-close"; "required": false; "isSignal": true; }; "_dialogResult": { "alias": "ngsDialogClose"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
113
117
  }
114
118
 
115
- export { DIALOG_DATA, DIALOG_DEFAULT_OPTIONS, Dialog, DialogActions, DialogClose, DialogConfig, DialogContainer, DialogContent, DialogRef, DialogTitle };
119
+ declare class DialogHeader {
120
+ static ɵfac: i0.ɵɵFactoryDeclaration<DialogHeader, never>;
121
+ static ɵcmp: i0.ɵɵComponentDeclaration<DialogHeader, "ngs-dialog-header", ["ngsDialogHeader"], {}, {}, never, ["*"], true, never>;
122
+ }
123
+
124
+ export { DIALOG_DATA, DIALOG_DEFAULT_OPTIONS, Dialog, DialogActions, DialogClose, DialogConfig, DialogContainer, DialogContent, DialogHeader, DialogRef, DialogTitle };
@@ -349,6 +349,14 @@ declare class FormBuilder implements OnDestroy {
349
349
  }
350
350
  declare function createDefaultFormBuilderSchema(): FormBuilderSchema;
351
351
 
352
+ declare class FormLogic {
353
+ readonly schema: _angular_core.InputSignal<FormBuilderSchema | null>;
354
+ readonly title: _angular_core.InputSignal<string>;
355
+ readonly description: _angular_core.InputSignal<string>;
356
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormLogic, never>;
357
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormLogic, "ngs-form-logic", ["ngsFormLogic"], { "schema": { "alias": "schema"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
358
+ }
359
+
352
360
  interface FormRendererCanvasItem extends FormBuilderLayoutItem {
353
361
  field?: FormBuilderField;
354
362
  section?: FormBuilderSection;
@@ -516,5 +524,5 @@ declare class BasicFormBuilderSectionSettings {
516
524
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<BasicFormBuilderSectionSettings, "ngs-basic-form-builder-section-settings", ["ngsBasicFormBuilderSectionSettings"], { "section": { "alias": "section"; "required": true; "isSignal": true; }; "update": { "alias": "update"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
517
525
  }
518
526
 
519
- export { BasicFormBuilderFieldSettings, BasicFormBuilderLayoutSettings, BasicFormBuilderSectionSettings, DEFAULT_FORM_BUILDER_FIELDS, DEFAULT_FORM_BUILDER_ITEMS, FORM_BUILDER_FIELDS, FORM_BUILDER_FIELD_BASE_SETTINGS_SCHEMA, FORM_BUILDER_INPUT_FIELD_BASE_SETTINGS_SCHEMA, FORM_BUILDER_ITEMS, FORM_BUILDER_LAYOUT_BASE_SETTINGS_SCHEMA, FORM_BUILDER_LAYOUT_CONTAINER_BASE_SETTINGS_SCHEMA, FORM_BUILDER_SECTION_BASE_SETTINGS_SCHEMA, FORM_BUILDER_SELECT_DATA_SOURCES, FORM_BUILDER_SETTINGS, FORM_BUILDER_STATIC_BASE_SETTINGS_SCHEMA, FORM_BUILDER_UPLOAD_CALLBACK, FormBuilder, FormBuilderFieldHost, FormBuilderSettingsHost, FormRenderer, createDefaultFormBuilderSchema, formBuilderField, formBuilderItem, formBuilderSettings, provideFormBuilder, provideFormBuilderField, provideFormBuilderFields, provideFormBuilderSelectDataSource, provideFormBuilderSelectDataSources, validatorsFromRules };
527
+ export { BasicFormBuilderFieldSettings, BasicFormBuilderLayoutSettings, BasicFormBuilderSectionSettings, DEFAULT_FORM_BUILDER_FIELDS, DEFAULT_FORM_BUILDER_ITEMS, FORM_BUILDER_FIELDS, FORM_BUILDER_FIELD_BASE_SETTINGS_SCHEMA, FORM_BUILDER_INPUT_FIELD_BASE_SETTINGS_SCHEMA, FORM_BUILDER_ITEMS, FORM_BUILDER_LAYOUT_BASE_SETTINGS_SCHEMA, FORM_BUILDER_LAYOUT_CONTAINER_BASE_SETTINGS_SCHEMA, FORM_BUILDER_SECTION_BASE_SETTINGS_SCHEMA, FORM_BUILDER_SELECT_DATA_SOURCES, FORM_BUILDER_SETTINGS, FORM_BUILDER_STATIC_BASE_SETTINGS_SCHEMA, FORM_BUILDER_UPLOAD_CALLBACK, FormBuilder, FormBuilderFieldHost, FormBuilderSettingsHost, FormLogic, FormRenderer, createDefaultFormBuilderSchema, formBuilderField, formBuilderItem, formBuilderSettings, provideFormBuilder, provideFormBuilderField, provideFormBuilderFields, provideFormBuilderSelectDataSource, provideFormBuilderSelectDataSources, validatorsFromRules };
520
528
  export type { FormBuilderComponentImporter, FormBuilderField, FormBuilderFieldChange, FormBuilderFieldDefinition, FormBuilderFieldRenderContext, FormBuilderFieldSettingsContext, FormBuilderFieldWidth, FormBuilderItemDefinition, FormBuilderItemKind, FormBuilderLayoutItem, FormBuilderOption, FormBuilderSchema, FormBuilderSection, FormBuilderSectionSettingsContext, FormBuilderSelectDataSourceDefinition, FormBuilderSelectDataSourceOptions, FormBuilderSelectOptionsSource, FormBuilderSettingsConfig, FormBuilderSettingsContext, FormBuilderSettingsDefinition, FormBuilderSettingsInheritance, FormBuilderSettingsSchemaFactory, FormBuilderUploadCallback, FormBuilderUploadContext, FormBuilderValidationRule };