suis 4.0.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/suis.mjs +482 -686
  3. package/fesm2022/suis.mjs.map +1 -1
  4. package/lib/components/suis-accordion/suis-accordion.component.d.ts +5 -4
  5. package/lib/components/suis-alert/suis-alert.component.d.ts +6 -5
  6. package/lib/components/suis-box/suis-box.component.d.ts +3 -3
  7. package/lib/components/suis-breadcrumbs/suis-breadcrumbs.component.d.ts +2 -2
  8. package/lib/components/suis-chart/suis-chart.component.d.ts +8 -8
  9. package/lib/components/suis-chip/suis-chip.component.d.ts +5 -6
  10. package/lib/components/suis-container/suis-container.component.d.ts +2 -2
  11. package/lib/components/suis-dialog/suis-dialog.component.d.ts +6 -7
  12. package/lib/components/suis-divider/suis-divider.component.d.ts +2 -2
  13. package/lib/components/suis-form-field/suis-form-field.component.d.ts +2 -2
  14. package/lib/components/suis-icon/suis-icon.component.d.ts +8 -8
  15. package/lib/components/suis-input/suis-input.component.d.ts +4 -5
  16. package/lib/components/suis-input-chips/suis-input-chips.component.d.ts +5 -5
  17. package/lib/components/suis-input-image/suis-input-image.component.d.ts +3 -3
  18. package/lib/components/suis-input-number/suis-input-number.component.d.ts +2 -2
  19. package/lib/components/suis-input-radio/suis-input-radio.component.d.ts +6 -6
  20. package/lib/components/suis-item/suis-item.component.d.ts +4 -4
  21. package/lib/components/suis-label/suis-label.component.d.ts +5 -5
  22. package/lib/components/suis-notification/suis-notification.component.d.ts +3 -4
  23. package/lib/components/suis-pagination/suis-pagination.component.d.ts +15 -13
  24. package/lib/components/suis-progress-bar/suis-progress-bar.component.d.ts +6 -6
  25. package/lib/components/suis-spinner/suis-spinner.component.d.ts +3 -3
  26. package/lib/components/suis-spinner-container/suis-spinner-container.component.d.ts +5 -5
  27. package/lib/components/suis-table/suis-table-column.directive.d.ts +1 -1
  28. package/lib/components/suis-table/suis-table.component.d.ts +12 -10
  29. package/lib/components/suis-tabs/suis-tab-actions.pipe.d.ts +2 -2
  30. package/lib/components/suis-tabs/suis-tab-template.pipe.d.ts +2 -2
  31. package/lib/components/suis-tabs/suis-tab.directive.d.ts +2 -2
  32. package/lib/components/suis-tabs/suis-tabs.component.d.ts +6 -5
  33. package/lib/components/suis-text-area/suis-text-area.component.d.ts +2 -2
  34. package/lib/components/suis-title/suis-title.component.d.ts +2 -2
  35. package/lib/components/suis-toolbar/suis-toolbar.component.d.ts +2 -2
  36. package/lib/modules/suis-button/components/suis-button-link/suis-button-link.component.d.ts +6 -6
  37. package/lib/modules/suis-navigation/components/suis-navigation/suis-navigation.component.d.ts +11 -9
  38. package/lib/modules/suis-navigation/components/suis-navigation-group/suis-navigation-group.component.d.ts +10 -7
  39. package/lib/modules/suis-navigation/components/suis-navigation-group-item/suis-navigation-group-item.component.d.ts +11 -9
  40. package/lib/modules/suis-navigation/components/suis-navigation-item/suis-navigation-item.component.d.ts +5 -5
  41. package/lib/modules/suis-select/classes/suis-select-button.base.d.ts +7 -8
  42. package/lib/modules/suis-select/classes/suis-select-multi.base.d.ts +4 -4
  43. package/lib/modules/suis-select/classes/suis-select-single.base.d.ts +2 -2
  44. package/lib/modules/suis-select/classes/suis-select.base.d.ts +12 -12
  45. package/lib/modules/suis-select/components/suis-select-group/suis-select-group.component.d.ts +3 -3
  46. package/lib/modules/suis-select/components/suis-select-group-option/suis-select-group-option.component.d.ts +4 -4
  47. package/lib/modules/suis-select/components/suis-select-multi-group/suis-select-multi-group.component.d.ts +3 -3
  48. package/lib/modules/suis-select/components/suis-select-option/suis-select-option.component.d.ts +10 -10
  49. package/lib/shared/classes/suis-button.base.d.ts +7 -8
  50. package/lib/shared/classes/suis-checkbox.base.d.ts +2 -2
  51. package/lib/shared/classes/suis-input.base.d.ts +8 -8
  52. package/package.json +1 -1
package/fesm2022/suis.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Pipe, Component, ChangeDetectionStrategy, Input, EventEmitter, Output, Directive, signal, Injectable, inject, ChangeDetectorRef, ElementRef, forwardRef, ViewChild, HostListener, TemplateRef, ContentChild, NgModule, DestroyRef, ContentChildren } from '@angular/core';
2
+ import { Pipe, input, Component, ChangeDetectionStrategy, signal, output, effect, Input, Directive, Injectable, inject, ChangeDetectorRef, ElementRef, forwardRef, viewChild, HostListener, TemplateRef, contentChild, NgModule, DestroyRef, computed, contentChildren, EventEmitter } from '@angular/core';
3
3
  import * as i1$1 from '@angular/common';
4
4
  import { NgClass, NgComponentOutlet, CommonModule, NgTemplateOutlet } from '@angular/common';
5
5
  import * as i1 from '@angular/router';
@@ -72,157 +72,135 @@ class SuisIconComponent {
72
72
  /**
73
73
  * Sets the font size of the HTML Entity itself. Type of SuisSize. By default set to 'md'.
74
74
  */
75
- this.size = 'md';
75
+ this.size = input('md');
76
76
  /**
77
77
  * Sets the color pallette of the icon and surroundings. Type of SuisColor. By default set to 'dark'.
78
78
  */
79
- this.color = 'dark';
79
+ this.color = input('dark');
80
80
  /**
81
81
  * Sets the HTML Entity displayed in content. Type of SuisIconType. By default set to 'question'.
82
82
  */
83
- this.type = 'question';
83
+ this.type = input('question');
84
84
  /**
85
85
  * Shows the circled border around the icon. By default set to false. Can not be combined with filled (will be overriden then).
86
86
  */
87
- this.outlined = false;
87
+ this.outlined = input(false);
88
88
  /**
89
89
  * Shows the circled background behind the icon. By default set to false. Overrides outlined behavior if used at the sime time.
90
90
  */
91
- this.filled = false;
91
+ this.filled = input(false);
92
92
  /**
93
93
  * Shows the pointer cursor when hovered. By default set to false.
94
94
  */
95
- this.pointer = false;
95
+ this.pointer = input(false);
96
96
  /**
97
97
  * Sets HTML Entity font weight to bold. By default set to false.
98
98
  */
99
- this.bold = false;
99
+ this.bold = input(false);
100
100
  }
101
101
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
102
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: SuisIconComponent, isStandalone: true, selector: "suis-icon", inputs: { size: "size", color: "color", type: "type", outlined: "outlined", filled: "filled", pointer: "pointer", bold: "bold" }, ngImport: i0, template: "<div\n class=\"suis-icon\"\n [class.suis-icon--outlined]=\"outlined\"\n [class.suis-icon--filled]=\"filled\"\n [class.suis-icon--pointer]=\"pointer\"\n [class.suis-icon--bold]=\"bold\"\n [class.suis-icon--rotate]=\"type === 'chevron-up' || type === 'chevron-down'\"\n [ngClass]=\"'suis-icon' | suisNgClass : color : size\"\n>\n <span\n [innerHTML]=\"type | suisIconType\"\n [ngClass]=\"'suis-icon' | suisNgClass : type\"\n ></span>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-icon{display:flex;justify-content:center;align-items:center;width:1rem;height:1rem;border-radius:100%;line-height:1rem;background-color:transparent;border:none}.suis-icon--rotate{transform:rotate(90deg)}.suis-icon--outlined{border-width:.0625rem;border-style:solid}.suis-icon--bold{font-weight:700}.suis-icon--pointer{cursor:pointer}.suis-icon--xs{font-size:.75rem}.suis-icon--sm{font-size:.875rem}.suis-icon--md{font-size:1rem;width:1.125rem;height:1.125rem}.suis-icon--lg{font-size:1.25rem;width:1.5rem;height:1.5rem}.suis-icon--xl{font-size:1.5rem;width:2rem;height:2rem}.suis-icon--primary{color:#192a56;border-color:#192a56}.suis-icon--secondary{color:#273c75;border-color:#273c75}.suis-icon--tertiary{color:#dcdde1;border-color:#dcdde1}.suis-icon--complementary{color:#f5f6fa;border-color:#f5f6fa}.suis-icon--success{color:#2ed573;border-color:#2ed573}.suis-icon--warning{color:#ffa502;border-color:#ffa502}.suis-icon--danger{color:#ff4757;border-color:#ff4757}.suis-icon--white{color:#fff;border-color:#fff}.suis-icon--gray{color:#bcbcbc;border-color:#bcbcbc}.suis-icon--dark{color:#000;border-color:#000}.suis-icon--filled{border:none;background-color:#000;color:#fff}.suis-icon--filled.suis-icon--primary{background-color:#192a56}.suis-icon--filled.suis-icon--secondary{background-color:#273c75}.suis-icon--filled.suis-icon--tertiary{background-color:#dcdde1;color:#2f3640}.suis-icon--filled.suis-icon--complementary{background-color:#f5f6fa;color:#2f3640}.suis-icon--filled.suis-icon--success{background-color:#2ed573}.suis-icon--filled.suis-icon--warning{background-color:#ffa502}.suis-icon--filled.suis-icon--danger{background-color:#ff4757}.suis-icon--filled.suis-icon--white{background-color:#fff;color:#2f3640}.suis-icon--filled.suis-icon--gray{background-color:#bcbcbc}.suis-icon--filled.suis-icon--dark{background-color:#000}.suis-icon span.suis-icon--arrow-down,.suis-icon span.suis-icon--arrow-up,.suis-icon span.suis-icon--arrow-left,.suis-icon span.suis-icon--arrow-right,.suis-icon span.suis-icon--check{font-size:.625em}.suis-icon span.suis-icon--question,.suis-icon span.suis-icon--exclamation{font-size:.875em}.suis-icon--xs span.suis-icon--arrow-down,.suis-icon--xs span.suis-icon--arrow-up,.suis-icon--sm span.suis-icon--arrow-down,.suis-icon--sm span.suis-icon--arrow-up,.suis-icon--md span.suis-icon--arrow-down,.suis-icon--md span.suis-icon--arrow-up,.suis-icon--xs span.suis-icon--chevron-up,.suis-icon--xs span.suis-icon--chevron-down,.suis-icon--xs span.suis-icon--chevron-left,.suis-icon--xs span.suis-icon--chevron-right,.suis-icon--sm span.suis-icon--chevron-up,.suis-icon--sm span.suis-icon--chevron-down,.suis-icon--sm span.suis-icon--chevron-left,.suis-icon--sm span.suis-icon--chevron-right,.suis-icon--md span.suis-icon--chevron-up,.suis-icon--md span.suis-icon--chevron-down,.suis-icon--md span.suis-icon--chevron-left,.suis-icon--md span.suis-icon--chevron-right{margin-bottom:.125rem}.suis-icon--lg span.suis-icon--arrow-down,.suis-icon--lg span.suis-icon--arrow-up,.suis-icon--xl span.suis-icon--arrow-down,.suis-icon--xl span.suis-icon--arrow-up{margin-bottom:.1875rem}.suis-icon--lg span.suis-icon--chevron-up,.suis-icon--lg span.suis-icon--chevron-down,.suis-icon--lg span.suis-icon--chevron-left,.suis-icon--lg span.suis-icon--chevron-right,.suis-icon--xl span.suis-icon--chevron-up,.suis-icon--xl span.suis-icon--chevron-down,.suis-icon--xl span.suis-icon--chevron-left,.suis-icon--xl span.suis-icon--chevron-right{margin-bottom:.25rem}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisIconTypePipe, name: "suisIconType" }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: SuisIconComponent, isStandalone: true, selector: "suis-icon", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, outlined: { classPropertyName: "outlined", publicName: "outlined", isSignal: true, isRequired: false, transformFunction: null }, filled: { classPropertyName: "filled", publicName: "filled", isSignal: true, isRequired: false, transformFunction: null }, pointer: { classPropertyName: "pointer", publicName: "pointer", isSignal: true, isRequired: false, transformFunction: null }, bold: { classPropertyName: "bold", publicName: "bold", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"suis-icon\"\n [class.suis-icon--outlined]=\"outlined()\"\n [class.suis-icon--filled]=\"filled()\"\n [class.suis-icon--pointer]=\"pointer()\"\n [class.suis-icon--bold]=\"bold()\"\n [class.suis-icon--rotate]=\"\n type() === 'chevron-up' || type() === 'chevron-down'\n \"\n [ngClass]=\"'suis-icon' | suisNgClass : color() : size()\"\n>\n <span\n [innerHTML]=\"type() | suisIconType\"\n [ngClass]=\"'suis-icon' | suisNgClass : type()\"\n ></span>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-icon{display:flex;justify-content:center;align-items:center;width:1rem;height:1rem;border-radius:100%;line-height:1rem;background-color:transparent;border:none}.suis-icon--rotate{transform:rotate(90deg)}.suis-icon--outlined{border-width:.0625rem;border-style:solid}.suis-icon--bold{font-weight:700}.suis-icon--pointer{cursor:pointer}.suis-icon--xs{font-size:.75rem}.suis-icon--sm{font-size:.875rem}.suis-icon--md{font-size:1rem;width:1.125rem;height:1.125rem}.suis-icon--lg{font-size:1.25rem;width:1.5rem;height:1.5rem}.suis-icon--xl{font-size:1.5rem;width:2rem;height:2rem}.suis-icon--primary{color:#192a56;border-color:#192a56}.suis-icon--secondary{color:#273c75;border-color:#273c75}.suis-icon--tertiary{color:#dcdde1;border-color:#dcdde1}.suis-icon--complementary{color:#f5f6fa;border-color:#f5f6fa}.suis-icon--success{color:#2ed573;border-color:#2ed573}.suis-icon--warning{color:#ffa502;border-color:#ffa502}.suis-icon--danger{color:#ff4757;border-color:#ff4757}.suis-icon--white{color:#fff;border-color:#fff}.suis-icon--gray{color:#bcbcbc;border-color:#bcbcbc}.suis-icon--dark{color:#000;border-color:#000}.suis-icon--filled{border:none;background-color:#000;color:#fff}.suis-icon--filled.suis-icon--primary{background-color:#192a56}.suis-icon--filled.suis-icon--secondary{background-color:#273c75}.suis-icon--filled.suis-icon--tertiary{background-color:#dcdde1;color:#2f3640}.suis-icon--filled.suis-icon--complementary{background-color:#f5f6fa;color:#2f3640}.suis-icon--filled.suis-icon--success{background-color:#2ed573}.suis-icon--filled.suis-icon--warning{background-color:#ffa502}.suis-icon--filled.suis-icon--danger{background-color:#ff4757}.suis-icon--filled.suis-icon--white{background-color:#fff;color:#2f3640}.suis-icon--filled.suis-icon--gray{background-color:#bcbcbc}.suis-icon--filled.suis-icon--dark{background-color:#000}.suis-icon span.suis-icon--arrow-down,.suis-icon span.suis-icon--arrow-up,.suis-icon span.suis-icon--arrow-left,.suis-icon span.suis-icon--arrow-right,.suis-icon span.suis-icon--check{font-size:.625em}.suis-icon span.suis-icon--question,.suis-icon span.suis-icon--exclamation{font-size:.875em}.suis-icon--xs span.suis-icon--arrow-down,.suis-icon--xs span.suis-icon--arrow-up,.suis-icon--sm span.suis-icon--arrow-down,.suis-icon--sm span.suis-icon--arrow-up,.suis-icon--md span.suis-icon--arrow-down,.suis-icon--md span.suis-icon--arrow-up,.suis-icon--xs span.suis-icon--chevron-up,.suis-icon--xs span.suis-icon--chevron-down,.suis-icon--xs span.suis-icon--chevron-left,.suis-icon--xs span.suis-icon--chevron-right,.suis-icon--sm span.suis-icon--chevron-up,.suis-icon--sm span.suis-icon--chevron-down,.suis-icon--sm span.suis-icon--chevron-left,.suis-icon--sm span.suis-icon--chevron-right,.suis-icon--md span.suis-icon--chevron-up,.suis-icon--md span.suis-icon--chevron-down,.suis-icon--md span.suis-icon--chevron-left,.suis-icon--md span.suis-icon--chevron-right{margin-bottom:.125rem}.suis-icon--lg span.suis-icon--arrow-down,.suis-icon--lg span.suis-icon--arrow-up,.suis-icon--xl span.suis-icon--arrow-down,.suis-icon--xl span.suis-icon--arrow-up{margin-bottom:.1875rem}.suis-icon--lg span.suis-icon--chevron-up,.suis-icon--lg span.suis-icon--chevron-down,.suis-icon--lg span.suis-icon--chevron-left,.suis-icon--lg span.suis-icon--chevron-right,.suis-icon--xl span.suis-icon--chevron-up,.suis-icon--xl span.suis-icon--chevron-down,.suis-icon--xl span.suis-icon--chevron-left,.suis-icon--xl span.suis-icon--chevron-right{margin-bottom:.25rem}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisIconTypePipe, name: "suisIconType" }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
103
103
  }
104
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisIconComponent, decorators: [{
105
105
  type: Component,
106
- args: [{ selector: 'suis-icon', imports: [NgClass, SuisIconTypePipe, SuisNgClassPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"suis-icon\"\n [class.suis-icon--outlined]=\"outlined\"\n [class.suis-icon--filled]=\"filled\"\n [class.suis-icon--pointer]=\"pointer\"\n [class.suis-icon--bold]=\"bold\"\n [class.suis-icon--rotate]=\"type === 'chevron-up' || type === 'chevron-down'\"\n [ngClass]=\"'suis-icon' | suisNgClass : color : size\"\n>\n <span\n [innerHTML]=\"type | suisIconType\"\n [ngClass]=\"'suis-icon' | suisNgClass : type\"\n ></span>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-icon{display:flex;justify-content:center;align-items:center;width:1rem;height:1rem;border-radius:100%;line-height:1rem;background-color:transparent;border:none}.suis-icon--rotate{transform:rotate(90deg)}.suis-icon--outlined{border-width:.0625rem;border-style:solid}.suis-icon--bold{font-weight:700}.suis-icon--pointer{cursor:pointer}.suis-icon--xs{font-size:.75rem}.suis-icon--sm{font-size:.875rem}.suis-icon--md{font-size:1rem;width:1.125rem;height:1.125rem}.suis-icon--lg{font-size:1.25rem;width:1.5rem;height:1.5rem}.suis-icon--xl{font-size:1.5rem;width:2rem;height:2rem}.suis-icon--primary{color:#192a56;border-color:#192a56}.suis-icon--secondary{color:#273c75;border-color:#273c75}.suis-icon--tertiary{color:#dcdde1;border-color:#dcdde1}.suis-icon--complementary{color:#f5f6fa;border-color:#f5f6fa}.suis-icon--success{color:#2ed573;border-color:#2ed573}.suis-icon--warning{color:#ffa502;border-color:#ffa502}.suis-icon--danger{color:#ff4757;border-color:#ff4757}.suis-icon--white{color:#fff;border-color:#fff}.suis-icon--gray{color:#bcbcbc;border-color:#bcbcbc}.suis-icon--dark{color:#000;border-color:#000}.suis-icon--filled{border:none;background-color:#000;color:#fff}.suis-icon--filled.suis-icon--primary{background-color:#192a56}.suis-icon--filled.suis-icon--secondary{background-color:#273c75}.suis-icon--filled.suis-icon--tertiary{background-color:#dcdde1;color:#2f3640}.suis-icon--filled.suis-icon--complementary{background-color:#f5f6fa;color:#2f3640}.suis-icon--filled.suis-icon--success{background-color:#2ed573}.suis-icon--filled.suis-icon--warning{background-color:#ffa502}.suis-icon--filled.suis-icon--danger{background-color:#ff4757}.suis-icon--filled.suis-icon--white{background-color:#fff;color:#2f3640}.suis-icon--filled.suis-icon--gray{background-color:#bcbcbc}.suis-icon--filled.suis-icon--dark{background-color:#000}.suis-icon span.suis-icon--arrow-down,.suis-icon span.suis-icon--arrow-up,.suis-icon span.suis-icon--arrow-left,.suis-icon span.suis-icon--arrow-right,.suis-icon span.suis-icon--check{font-size:.625em}.suis-icon span.suis-icon--question,.suis-icon span.suis-icon--exclamation{font-size:.875em}.suis-icon--xs span.suis-icon--arrow-down,.suis-icon--xs span.suis-icon--arrow-up,.suis-icon--sm span.suis-icon--arrow-down,.suis-icon--sm span.suis-icon--arrow-up,.suis-icon--md span.suis-icon--arrow-down,.suis-icon--md span.suis-icon--arrow-up,.suis-icon--xs span.suis-icon--chevron-up,.suis-icon--xs span.suis-icon--chevron-down,.suis-icon--xs span.suis-icon--chevron-left,.suis-icon--xs span.suis-icon--chevron-right,.suis-icon--sm span.suis-icon--chevron-up,.suis-icon--sm span.suis-icon--chevron-down,.suis-icon--sm span.suis-icon--chevron-left,.suis-icon--sm span.suis-icon--chevron-right,.suis-icon--md span.suis-icon--chevron-up,.suis-icon--md span.suis-icon--chevron-down,.suis-icon--md span.suis-icon--chevron-left,.suis-icon--md span.suis-icon--chevron-right{margin-bottom:.125rem}.suis-icon--lg span.suis-icon--arrow-down,.suis-icon--lg span.suis-icon--arrow-up,.suis-icon--xl span.suis-icon--arrow-down,.suis-icon--xl span.suis-icon--arrow-up{margin-bottom:.1875rem}.suis-icon--lg span.suis-icon--chevron-up,.suis-icon--lg span.suis-icon--chevron-down,.suis-icon--lg span.suis-icon--chevron-left,.suis-icon--lg span.suis-icon--chevron-right,.suis-icon--xl span.suis-icon--chevron-up,.suis-icon--xl span.suis-icon--chevron-down,.suis-icon--xl span.suis-icon--chevron-left,.suis-icon--xl span.suis-icon--chevron-right{margin-bottom:.25rem}\n"] }]
107
- }], propDecorators: { size: [{
108
- type: Input
109
- }], color: [{
110
- type: Input
111
- }], type: [{
112
- type: Input
113
- }], outlined: [{
114
- type: Input
115
- }], filled: [{
116
- type: Input
117
- }], pointer: [{
118
- type: Input
119
- }], bold: [{
120
- type: Input
121
- }] } });
106
+ args: [{ selector: 'suis-icon', imports: [NgClass, SuisIconTypePipe, SuisNgClassPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"suis-icon\"\n [class.suis-icon--outlined]=\"outlined()\"\n [class.suis-icon--filled]=\"filled()\"\n [class.suis-icon--pointer]=\"pointer()\"\n [class.suis-icon--bold]=\"bold()\"\n [class.suis-icon--rotate]=\"\n type() === 'chevron-up' || type() === 'chevron-down'\n \"\n [ngClass]=\"'suis-icon' | suisNgClass : color() : size()\"\n>\n <span\n [innerHTML]=\"type() | suisIconType\"\n [ngClass]=\"'suis-icon' | suisNgClass : type()\"\n ></span>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-icon{display:flex;justify-content:center;align-items:center;width:1rem;height:1rem;border-radius:100%;line-height:1rem;background-color:transparent;border:none}.suis-icon--rotate{transform:rotate(90deg)}.suis-icon--outlined{border-width:.0625rem;border-style:solid}.suis-icon--bold{font-weight:700}.suis-icon--pointer{cursor:pointer}.suis-icon--xs{font-size:.75rem}.suis-icon--sm{font-size:.875rem}.suis-icon--md{font-size:1rem;width:1.125rem;height:1.125rem}.suis-icon--lg{font-size:1.25rem;width:1.5rem;height:1.5rem}.suis-icon--xl{font-size:1.5rem;width:2rem;height:2rem}.suis-icon--primary{color:#192a56;border-color:#192a56}.suis-icon--secondary{color:#273c75;border-color:#273c75}.suis-icon--tertiary{color:#dcdde1;border-color:#dcdde1}.suis-icon--complementary{color:#f5f6fa;border-color:#f5f6fa}.suis-icon--success{color:#2ed573;border-color:#2ed573}.suis-icon--warning{color:#ffa502;border-color:#ffa502}.suis-icon--danger{color:#ff4757;border-color:#ff4757}.suis-icon--white{color:#fff;border-color:#fff}.suis-icon--gray{color:#bcbcbc;border-color:#bcbcbc}.suis-icon--dark{color:#000;border-color:#000}.suis-icon--filled{border:none;background-color:#000;color:#fff}.suis-icon--filled.suis-icon--primary{background-color:#192a56}.suis-icon--filled.suis-icon--secondary{background-color:#273c75}.suis-icon--filled.suis-icon--tertiary{background-color:#dcdde1;color:#2f3640}.suis-icon--filled.suis-icon--complementary{background-color:#f5f6fa;color:#2f3640}.suis-icon--filled.suis-icon--success{background-color:#2ed573}.suis-icon--filled.suis-icon--warning{background-color:#ffa502}.suis-icon--filled.suis-icon--danger{background-color:#ff4757}.suis-icon--filled.suis-icon--white{background-color:#fff;color:#2f3640}.suis-icon--filled.suis-icon--gray{background-color:#bcbcbc}.suis-icon--filled.suis-icon--dark{background-color:#000}.suis-icon span.suis-icon--arrow-down,.suis-icon span.suis-icon--arrow-up,.suis-icon span.suis-icon--arrow-left,.suis-icon span.suis-icon--arrow-right,.suis-icon span.suis-icon--check{font-size:.625em}.suis-icon span.suis-icon--question,.suis-icon span.suis-icon--exclamation{font-size:.875em}.suis-icon--xs span.suis-icon--arrow-down,.suis-icon--xs span.suis-icon--arrow-up,.suis-icon--sm span.suis-icon--arrow-down,.suis-icon--sm span.suis-icon--arrow-up,.suis-icon--md span.suis-icon--arrow-down,.suis-icon--md span.suis-icon--arrow-up,.suis-icon--xs span.suis-icon--chevron-up,.suis-icon--xs span.suis-icon--chevron-down,.suis-icon--xs span.suis-icon--chevron-left,.suis-icon--xs span.suis-icon--chevron-right,.suis-icon--sm span.suis-icon--chevron-up,.suis-icon--sm span.suis-icon--chevron-down,.suis-icon--sm span.suis-icon--chevron-left,.suis-icon--sm span.suis-icon--chevron-right,.suis-icon--md span.suis-icon--chevron-up,.suis-icon--md span.suis-icon--chevron-down,.suis-icon--md span.suis-icon--chevron-left,.suis-icon--md span.suis-icon--chevron-right{margin-bottom:.125rem}.suis-icon--lg span.suis-icon--arrow-down,.suis-icon--lg span.suis-icon--arrow-up,.suis-icon--xl span.suis-icon--arrow-down,.suis-icon--xl span.suis-icon--arrow-up{margin-bottom:.1875rem}.suis-icon--lg span.suis-icon--chevron-up,.suis-icon--lg span.suis-icon--chevron-down,.suis-icon--lg span.suis-icon--chevron-left,.suis-icon--lg span.suis-icon--chevron-right,.suis-icon--xl span.suis-icon--chevron-up,.suis-icon--xl span.suis-icon--chevron-down,.suis-icon--xl span.suis-icon--chevron-left,.suis-icon--xl span.suis-icon--chevron-right{margin-bottom:.25rem}\n"] }]
107
+ }] });
122
108
 
123
109
  class SuisAccordionComponent {
124
110
  constructor() {
125
111
  /**
126
112
  * Controlls styling of the accordion based on expanded state of group. By default set to false.
127
113
  */
128
- this.expanded = false;
114
+ this.expanded = input(false);
115
+ this._expanded = signal(false);
129
116
  /**
130
117
  * Emits when expanded value of the accordion has been changed.
131
118
  */
132
- this.expandedChange = new EventEmitter();
119
+ this.expandedChange = output();
120
+ effect(() => {
121
+ this._expanded.set(this.expanded());
122
+ });
133
123
  }
134
124
  onToggle() {
135
- this.expanded = !this.expanded;
136
- this.expandedChange.emit(this.expanded);
125
+ this._expanded.set(!this._expanded());
126
+ this.expandedChange.emit(this._expanded());
137
127
  }
138
128
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
139
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisAccordionComponent, isStandalone: true, selector: "suis-accordion", inputs: { expanded: "expanded" }, outputs: { expandedChange: "expandedChange" }, ngImport: i0, template: "<div class=\"suis-accordion\">\n <button (click)=\"onToggle()\" class=\"suis-accordion__header\">\n <ng-content select=\"[suisAccordionHeader]\"></ng-content>\n <suis-icon\n [type]=\"expanded ? 'chevron-up' : 'chevron-down'\"\n size=\"lg\"\n color=\"primary\"\n ></suis-icon>\n </button>\n @if (expanded) {\n <div class=\"suis-accordion__content\">\n <ng-content select=\"[suisAccordionContent]\"></ng-content>\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-accordion__header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background-color:#fff;border:.0625rem solid #dcdde1;border-radius:.25rem;font-size:1rem;font-weight:500;color:#192a56}.suis-accordion__header:hover{cursor:pointer}.suis-accordion__content{padding:.75rem 1rem;border:.0625rem solid #dcdde1;border-top:0;font-size:.875rem}\n"], dependencies: [{ kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisAccordionComponent, isStandalone: true, selector: "suis-accordion", inputs: { expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expandedChange: "expandedChange" }, ngImport: i0, template: "<div class=\"suis-accordion\">\n <button (click)=\"onToggle()\" class=\"suis-accordion__header\">\n <ng-content select=\"[suisAccordionHeader]\"></ng-content>\n <suis-icon\n [type]=\"_expanded() ? 'chevron-up' : 'chevron-down'\"\n size=\"lg\"\n color=\"primary\"\n ></suis-icon>\n </button>\n @if (_expanded()) {\n <div class=\"suis-accordion__content\">\n <ng-content select=\"[suisAccordionContent]\"></ng-content>\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-accordion__header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background-color:#fff;border:.0625rem solid #dcdde1;border-radius:.25rem;font-size:1rem;font-weight:500;color:#192a56}.suis-accordion__header:hover{cursor:pointer}.suis-accordion__content{padding:.75rem 1rem;border:.0625rem solid #dcdde1;border-top:0;font-size:.875rem}\n"], dependencies: [{ kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
140
130
  }
141
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisAccordionComponent, decorators: [{
142
132
  type: Component,
143
- args: [{ selector: 'suis-accordion', imports: [SuisIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-accordion\">\n <button (click)=\"onToggle()\" class=\"suis-accordion__header\">\n <ng-content select=\"[suisAccordionHeader]\"></ng-content>\n <suis-icon\n [type]=\"expanded ? 'chevron-up' : 'chevron-down'\"\n size=\"lg\"\n color=\"primary\"\n ></suis-icon>\n </button>\n @if (expanded) {\n <div class=\"suis-accordion__content\">\n <ng-content select=\"[suisAccordionContent]\"></ng-content>\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-accordion__header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background-color:#fff;border:.0625rem solid #dcdde1;border-radius:.25rem;font-size:1rem;font-weight:500;color:#192a56}.suis-accordion__header:hover{cursor:pointer}.suis-accordion__content{padding:.75rem 1rem;border:.0625rem solid #dcdde1;border-top:0;font-size:.875rem}\n"] }]
144
- }], propDecorators: { expanded: [{
145
- type: Input
146
- }], expandedChange: [{
147
- type: Output
148
- }] } });
133
+ args: [{ selector: 'suis-accordion', imports: [SuisIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-accordion\">\n <button (click)=\"onToggle()\" class=\"suis-accordion__header\">\n <ng-content select=\"[suisAccordionHeader]\"></ng-content>\n <suis-icon\n [type]=\"_expanded() ? 'chevron-up' : 'chevron-down'\"\n size=\"lg\"\n color=\"primary\"\n ></suis-icon>\n </button>\n @if (_expanded()) {\n <div class=\"suis-accordion__content\">\n <ng-content select=\"[suisAccordionContent]\"></ng-content>\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-accordion__header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background-color:#fff;border:.0625rem solid #dcdde1;border-radius:.25rem;font-size:1rem;font-weight:500;color:#192a56}.suis-accordion__header:hover{cursor:pointer}.suis-accordion__content{padding:.75rem 1rem;border:.0625rem solid #dcdde1;border-top:0;font-size:.875rem}\n"] }]
134
+ }], ctorParameters: () => [] });
149
135
 
150
136
  class SuisAlertComponent {
151
137
  constructor() {
152
138
  /**
153
139
  * Controls visibilty of the alert. By default set to false.
154
140
  */
155
- this.hidden = false;
141
+ this.hidden = input(false);
142
+ this._hidden = signal(false);
156
143
  /**
157
144
  * Emits change of hidden state.
158
145
  */
159
- this.hiddenChange = new EventEmitter();
146
+ this.hiddenChange = output();
160
147
  /**
161
148
  * Sets the color pallette of the alert. Type of SuisInfoColor. By default set to 'danger'.
162
149
  */
163
- this.color = 'danger';
150
+ this.color = input('danger');
151
+ effect(() => {
152
+ this._hidden.set(this.hidden());
153
+ });
164
154
  }
165
155
  onCancel() {
166
- this.hidden = true;
156
+ this._hidden.set(true);
167
157
  this.hiddenChange.emit(true);
168
158
  }
169
159
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
170
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisAlertComponent, isStandalone: true, selector: "suis-alert", inputs: { hidden: "hidden", color: "color" }, outputs: { hiddenChange: "hiddenChange" }, ngImport: i0, template: "@if (!hidden) {\n<div class=\"suis-alert\" [ngClass]=\"'suis-alert' | suisNgClass : color\">\n <ng-content></ng-content>\n <button class=\"suis-alert__cancel\" type=\"button\" (click)=\"onCancel()\">\n <suis-icon type=\"times\" [color]=\"'white'\" [size]=\"'lg'\"></suis-icon>\n </button>\n</div>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-alert{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.75rem 1.25rem;border-radius:.25rem;color:#fff;font-weight:500}.suis-alert--success{background-color:#2ed573}.suis-alert--warning{background-color:#ffa502}.suis-alert--danger{background-color:#ff4757}.suis-alert__cancel{background-color:transparent;border:none;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
160
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisAlertComponent, isStandalone: true, selector: "suis-alert", inputs: { hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hiddenChange: "hiddenChange" }, ngImport: i0, template: "@if (!_hidden()) {\n<div class=\"suis-alert\" [ngClass]=\"'suis-alert' | suisNgClass : color()\">\n <ng-content></ng-content>\n <button class=\"suis-alert__cancel\" type=\"button\" (click)=\"onCancel()\">\n <suis-icon type=\"times\" [color]=\"'white'\" [size]=\"'lg'\"></suis-icon>\n </button>\n</div>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-alert{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.75rem 1.25rem;border-radius:.25rem;color:#fff;font-weight:500}.suis-alert--success{background-color:#2ed573}.suis-alert--warning{background-color:#ffa502}.suis-alert--danger{background-color:#ff4757}.suis-alert__cancel{background-color:transparent;border:none;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
171
161
  }
172
162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisAlertComponent, decorators: [{
173
163
  type: Component,
174
- args: [{ selector: 'suis-alert', imports: [NgClass, SuisNgClassPipe, SuisIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!hidden) {\n<div class=\"suis-alert\" [ngClass]=\"'suis-alert' | suisNgClass : color\">\n <ng-content></ng-content>\n <button class=\"suis-alert__cancel\" type=\"button\" (click)=\"onCancel()\">\n <suis-icon type=\"times\" [color]=\"'white'\" [size]=\"'lg'\"></suis-icon>\n </button>\n</div>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-alert{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.75rem 1.25rem;border-radius:.25rem;color:#fff;font-weight:500}.suis-alert--success{background-color:#2ed573}.suis-alert--warning{background-color:#ffa502}.suis-alert--danger{background-color:#ff4757}.suis-alert__cancel{background-color:transparent;border:none;cursor:pointer}\n"] }]
175
- }], propDecorators: { hidden: [{
176
- type: Input
177
- }], hiddenChange: [{
178
- type: Output
179
- }], color: [{
180
- type: Input
181
- }] } });
164
+ args: [{ selector: 'suis-alert', imports: [NgClass, SuisNgClassPipe, SuisIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!_hidden()) {\n<div class=\"suis-alert\" [ngClass]=\"'suis-alert' | suisNgClass : color()\">\n <ng-content></ng-content>\n <button class=\"suis-alert__cancel\" type=\"button\" (click)=\"onCancel()\">\n <suis-icon type=\"times\" [color]=\"'white'\" [size]=\"'lg'\"></suis-icon>\n </button>\n</div>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-alert{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.75rem 1.25rem;border-radius:.25rem;color:#fff;font-weight:500}.suis-alert--success{background-color:#2ed573}.suis-alert--warning{background-color:#ffa502}.suis-alert--danger{background-color:#ff4757}.suis-alert__cancel{background-color:transparent;border:none;cursor:pointer}\n"] }]
165
+ }], ctorParameters: () => [] });
182
166
 
183
167
  class SuisBoxComponent {
184
168
  constructor() {
185
169
  /**
186
170
  * Adds a padding around the content. By default set to false.
187
171
  */
188
- this.spacing = false;
172
+ this.spacing = input(false);
189
173
  /**
190
174
  * Sets box height to 100%. By default set to false.
191
175
  */
192
- this.fullHeight = false;
176
+ this.fullHeight = input(false);
193
177
  }
194
178
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
195
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: SuisBoxComponent, isStandalone: true, selector: "suis-box", inputs: { spacing: "spacing", fullHeight: "fullHeight" }, ngImport: i0, template: "<div\n class=\"suis-box\"\n [class.suis-box--spacing]=\"spacing\"\n [class.suis-box--full-height]=\"fullHeight\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-box{background-color:#fff;border:.0625rem solid #dcdde1;border-radius:.25rem}.suis-box--full-height{height:100%}.suis-box--spacing{padding:1rem}@media (min-width: 768px){.suis-box--spacing{padding:1.25rem}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
179
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: SuisBoxComponent, isStandalone: true, selector: "suis-box", inputs: { spacing: { classPropertyName: "spacing", publicName: "spacing", isSignal: true, isRequired: false, transformFunction: null }, fullHeight: { classPropertyName: "fullHeight", publicName: "fullHeight", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"suis-box\"\n [class.suis-box--spacing]=\"spacing()\"\n [class.suis-box--full-height]=\"fullHeight()\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-box{background-color:#fff;border:.0625rem solid #dcdde1;border-radius:.25rem}.suis-box--full-height{height:100%}.suis-box--spacing{padding:1rem}@media (min-width: 768px){.suis-box--spacing{padding:1.25rem}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
196
180
  }
197
181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisBoxComponent, decorators: [{
198
182
  type: Component,
199
- args: [{ selector: 'suis-box', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"suis-box\"\n [class.suis-box--spacing]=\"spacing\"\n [class.suis-box--full-height]=\"fullHeight\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-box{background-color:#fff;border:.0625rem solid #dcdde1;border-radius:.25rem}.suis-box--full-height{height:100%}.suis-box--spacing{padding:1rem}@media (min-width: 768px){.suis-box--spacing{padding:1.25rem}}\n"] }]
200
- }], propDecorators: { spacing: [{
201
- type: Input
202
- }], fullHeight: [{
203
- type: Input
204
- }] } });
183
+ args: [{ selector: 'suis-box', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"suis-box\"\n [class.suis-box--spacing]=\"spacing()\"\n [class.suis-box--full-height]=\"fullHeight()\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-box{background-color:#fff;border:.0625rem solid #dcdde1;border-radius:.25rem}.suis-box--full-height{height:100%}.suis-box--spacing{padding:1rem}@media (min-width: 768px){.suis-box--spacing{padding:1.25rem}}\n"] }]
184
+ }] });
205
185
 
206
186
  class SuisBreadcrumbsComponent {
207
187
  constructor() {
208
188
  /**
209
189
  * List of breadcrumbs items. Type of SuisBreadcrumbItem[]. By default set to empty array.
210
190
  */
211
- this.items = [];
191
+ this.items = input([]);
212
192
  }
213
193
  /** @internal */
214
194
  itemTrackBy(index, item) {
215
195
  return `${item.label}-${index}`;
216
196
  }
217
197
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisBreadcrumbsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
218
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisBreadcrumbsComponent, isStandalone: true, selector: "suis-breadcrumbs", inputs: { items: "items" }, ngImport: i0, template: "<div class=\"suis-breadcrumbs\">\n @for (item of items; track itemTrackBy($index, item); let last = $last) {\n <a [routerLink]=\"last ? undefined : item.link\">\n {{ item.label }}\n </a>\n @if (!last) {\n <span>/</span>\n } }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-breadcrumbs a{text-decoration:none;color:#2f3640;font-weight:400}.suis-breadcrumbs a:not(:last-of-type){font-weight:600;color:#40739e}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
198
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisBreadcrumbsComponent, isStandalone: true, selector: "suis-breadcrumbs", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"suis-breadcrumbs\">\n @for (item of items(); track itemTrackBy($index, item); let last = $last) {\n <a [routerLink]=\"last ? undefined : item.link\">\n {{ item.label }}\n </a>\n @if (!last) {\n <span>/</span>\n } }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-breadcrumbs a{text-decoration:none;color:#2f3640;font-weight:400}.suis-breadcrumbs a:not(:last-of-type){font-weight:600;color:#40739e}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
219
199
  }
220
200
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisBreadcrumbsComponent, decorators: [{
221
201
  type: Component,
222
- args: [{ selector: 'suis-breadcrumbs', imports: [RouterModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-breadcrumbs\">\n @for (item of items; track itemTrackBy($index, item); let last = $last) {\n <a [routerLink]=\"last ? undefined : item.link\">\n {{ item.label }}\n </a>\n @if (!last) {\n <span>/</span>\n } }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-breadcrumbs a{text-decoration:none;color:#2f3640;font-weight:400}.suis-breadcrumbs a:not(:last-of-type){font-weight:600;color:#40739e}\n"] }]
223
- }], propDecorators: { items: [{
224
- type: Input
225
- }] } });
202
+ args: [{ selector: 'suis-breadcrumbs', imports: [RouterModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-breadcrumbs\">\n @for (item of items(); track itemTrackBy($index, item); let last = $last) {\n <a [routerLink]=\"last ? undefined : item.link\">\n {{ item.label }}\n </a>\n @if (!last) {\n <span>/</span>\n } }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-breadcrumbs a{text-decoration:none;color:#2f3640;font-weight:400}.suis-breadcrumbs a:not(:last-of-type){font-weight:600;color:#40739e}\n"] }]
203
+ }] });
226
204
 
227
205
  class SuisChartHeightPipe {
228
206
  transform(value, maxValue) {
@@ -281,37 +259,37 @@ class SuisChartComponent {
281
259
  /**
282
260
  * Array of the chart bars labels. By default set to empty array.
283
261
  */
284
- this.labels = [];
262
+ this.labels = input([]);
285
263
  /**
286
264
  * Array of data values and optionally colors. Type of SuisChartDataItem[]. By default set to empty array.
287
265
  */
288
- this.data = [];
266
+ this.data = input([]);
289
267
  /**
290
268
  * Sets the default color of the chart bars. Type of SuisColor. By default set to 'primary'.
291
269
  */
292
- this.color = 'primary';
270
+ this.color = input('primary');
293
271
  /**
294
272
  * Adjusts the width of the chart bars. Type of SuisSize. By default set to 'md'.
295
273
  */
296
- this.size = 'md';
274
+ this.size = input('md');
297
275
  /**
298
276
  * Sets the maximum value automatically based on data values. By default set to false.
299
277
  */
300
- this.autoMax = false;
278
+ this.autoMax = input(false);
301
279
  /**
302
280
  * Array of comparision data values and optionally colors. Type of SuisChartDataItem[]. By default set to empty array.
303
281
  */
304
- this.compareData = [];
282
+ this.compareData = input([]);
305
283
  /**
306
284
  * Sets the default color of the comparision chart bars. Type of SuisColor. By default set to 'warning'.
307
285
  */
308
- this.compareColor = 'warning';
286
+ this.compareColor = input('warning');
309
287
  }
310
288
  /** @internal */
311
289
  get maxValue() {
312
- if (!this.autoMax)
290
+ if (!this.autoMax())
313
291
  return this._maxValue;
314
- return Math.max(...[...this.data, ...this.compareData].map((item) => item.value));
292
+ return Math.max(...[...this.data(), ...this.compareData()].map((item) => item.value));
315
293
  }
316
294
  /**
317
295
  * Set the maximum value of the chart bars. By default set to 100.
@@ -320,27 +298,13 @@ class SuisChartComponent {
320
298
  this._maxValue = value;
321
299
  }
322
300
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
323
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisChartComponent, isStandalone: true, selector: "suis-chart", inputs: { maxValue: "maxValue", labels: "labels", data: "data", color: "color", size: "size", autoMax: "autoMax", compareData: "compareData", compareColor: "compareColor" }, ngImport: i0, template: "<div class=\"suis-chart\">\n <div\n class=\"suis-chart__content\"\n [ngClass]=\"'suis-chart__content' | suisNgClass : size\"\n >\n @for (item of data | suisChartData : compareData; track item) {\n <div\n class=\"suis-chart__content__item\"\n [ngClass]=\"\n 'suis-chart__content__item'\n | suisNgClass\n : (item.compare ? item.color || compareColor : item.color || color)\n : (item.compare ? 'compare' : 'single')\n \"\n [style.height]=\"item.value | suisChartHeight : maxValue\"\n >\n <div class=\"suis-chart__content__item__value\">\n {{ item.value }}\n </div>\n </div>\n }\n </div>\n <div\n class=\"suis-chart__labels\"\n [ngClass]=\"'suis-chart__labels' | suisNgClass : size\"\n >\n @for (label of labels; track label) {\n <div\n class=\"suis-chart__labels__item\"\n [class.suis-chart__labels__item--double]=\"compareData.length\"\n >\n {{ label }}\n </div>\n }\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;height:100%}.suis-chart{height:100%}.suis-chart__content,.suis-chart__labels{display:flex;align-items:flex-end;justify-content:center}.suis-chart__content--xs .suis-chart__content__item,.suis-chart__content--xs .suis-chart__labels__item,.suis-chart__labels--xs .suis-chart__content__item,.suis-chart__labels--xs .suis-chart__labels__item{width:1rem}.suis-chart__content--xs .suis-chart__content__item:not(:last-child),.suis-chart__content--xs .suis-chart__labels__item:not(:last-child),.suis-chart__labels--xs .suis-chart__content__item:not(:last-child),.suis-chart__labels--xs .suis-chart__labels__item:not(:last-child){margin-right:.5rem}.suis-chart__content--xs .suis-chart__content__item--compare,.suis-chart__content--xs .suis-chart__labels__item--compare,.suis-chart__labels--xs .suis-chart__content__item--compare,.suis-chart__labels--xs .suis-chart__labels__item--compare{margin-left:-.5rem}.suis-chart__content--xs .suis-chart__content__item--double,.suis-chart__content--xs .suis-chart__labels__item--double,.suis-chart__labels--xs .suis-chart__content__item--double,.suis-chart__labels--xs .suis-chart__labels__item--double{width:2rem}.suis-chart__content--sm .suis-chart__content__item,.suis-chart__content--sm .suis-chart__labels__item,.suis-chart__labels--sm .suis-chart__content__item,.suis-chart__labels--sm .suis-chart__labels__item{width:1.25rem}.suis-chart__content--sm .suis-chart__content__item:not(:last-child),.suis-chart__content--sm .suis-chart__labels__item:not(:last-child),.suis-chart__labels--sm .suis-chart__content__item:not(:last-child),.suis-chart__labels--sm .suis-chart__labels__item:not(:last-child){margin-right:.625rem}.suis-chart__content--sm .suis-chart__content__item--compare,.suis-chart__content--sm .suis-chart__labels__item--compare,.suis-chart__labels--sm .suis-chart__content__item--compare,.suis-chart__labels--sm .suis-chart__labels__item--compare{margin-left:-.625rem}.suis-chart__content--sm .suis-chart__content__item--double,.suis-chart__content--sm .suis-chart__labels__item--double,.suis-chart__labels--sm .suis-chart__content__item--double,.suis-chart__labels--sm .suis-chart__labels__item--double{width:2.5rem}.suis-chart__content--md .suis-chart__content__item,.suis-chart__content--md .suis-chart__labels__item,.suis-chart__labels--md .suis-chart__content__item,.suis-chart__labels--md .suis-chart__labels__item{width:1.5rem}.suis-chart__content--md .suis-chart__content__item:not(:last-child),.suis-chart__content--md .suis-chart__labels__item:not(:last-child),.suis-chart__labels--md .suis-chart__content__item:not(:last-child),.suis-chart__labels--md .suis-chart__labels__item:not(:last-child){margin-right:.75rem}.suis-chart__content--md .suis-chart__content__item--compare,.suis-chart__content--md .suis-chart__labels__item--compare,.suis-chart__labels--md .suis-chart__content__item--compare,.suis-chart__labels--md .suis-chart__labels__item--compare{margin-left:-.75rem}.suis-chart__content--md .suis-chart__content__item--double,.suis-chart__content--md .suis-chart__labels__item--double,.suis-chart__labels--md .suis-chart__content__item--double,.suis-chart__labels--md .suis-chart__labels__item--double{width:3rem}.suis-chart__content--lg .suis-chart__content__item,.suis-chart__content--lg .suis-chart__labels__item,.suis-chart__labels--lg .suis-chart__content__item,.suis-chart__labels--lg .suis-chart__labels__item{width:1.75rem}.suis-chart__content--lg .suis-chart__content__item:not(:last-child),.suis-chart__content--lg .suis-chart__labels__item:not(:last-child),.suis-chart__labels--lg .suis-chart__content__item:not(:last-child),.suis-chart__labels--lg .suis-chart__labels__item:not(:last-child){margin-right:.875rem}.suis-chart__content--lg .suis-chart__content__item--compare,.suis-chart__content--lg .suis-chart__labels__item--compare,.suis-chart__labels--lg .suis-chart__content__item--compare,.suis-chart__labels--lg .suis-chart__labels__item--compare{margin-left:-1rem}.suis-chart__content--lg .suis-chart__content__item--double,.suis-chart__content--lg .suis-chart__labels__item--double,.suis-chart__labels--lg .suis-chart__content__item--double,.suis-chart__labels--lg .suis-chart__labels__item--double{width:3.5rem}.suis-chart__content--xl .suis-chart__content__item,.suis-chart__content--xl .suis-chart__labels__item,.suis-chart__labels--xl .suis-chart__content__item,.suis-chart__labels--xl .suis-chart__labels__item{width:2rem}.suis-chart__content--xl .suis-chart__content__item:not(:last-child),.suis-chart__content--xl .suis-chart__labels__item:not(:last-child),.suis-chart__labels--xl .suis-chart__content__item:not(:last-child),.suis-chart__labels--xl .suis-chart__labels__item:not(:last-child){margin-right:1rem}.suis-chart__content--xl .suis-chart__content__item--compare,.suis-chart__content--xl .suis-chart__labels__item--compare,.suis-chart__labels--xl .suis-chart__content__item--compare,.suis-chart__labels--xl .suis-chart__labels__item--compare{margin-left:-1rem}.suis-chart__content--xl .suis-chart__content__item--double,.suis-chart__content--xl .suis-chart__labels__item--double,.suis-chart__labels--xl .suis-chart__content__item--double,.suis-chart__labels--xl .suis-chart__labels__item--double{width:4rem}.suis-chart__content{height:calc(100% - 1.25rem)}.suis-chart__content__item{background-color:#192a56;min-height:.0625rem;position:relative}.suis-chart__content__item--primary{background-color:#192a56}.suis-chart__content__item--secondary{background-color:#273c75}.suis-chart__content__item--tertiary{background-color:#dcdde1}.suis-chart__content__item--complementary{background-color:#f5f6fa}.suis-chart__content__item--success{background-color:#2ed573}.suis-chart__content__item--warning{background-color:#ffa502}.suis-chart__content__item--danger{background-color:#ff4757}.suis-chart__content__item--white{background-color:#fff}.suis-chart__content__item--gray{background-color:#bcbcbc}.suis-chart__content__item--dark{background-color:#000}.suis-chart__content__item__value{position:absolute;top:-1rem;text-align:center;width:100%;font-size:.75rem;color:#a4a7b0}.suis-chart__labels__item{margin-top:.25rem;font-size:.75rem;color:#a4a7b0;text-align:center}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisChartHeightPipe, name: "suisChartHeight" }, { kind: "pipe", type: SuisChartDataPipe, name: "suisChartData" }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
301
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisChartComponent, isStandalone: true, selector: "suis-chart", inputs: { maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: false, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, autoMax: { classPropertyName: "autoMax", publicName: "autoMax", isSignal: true, isRequired: false, transformFunction: null }, compareData: { classPropertyName: "compareData", publicName: "compareData", isSignal: true, isRequired: false, transformFunction: null }, compareColor: { classPropertyName: "compareColor", publicName: "compareColor", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"suis-chart\">\n <div\n class=\"suis-chart__content\"\n [ngClass]=\"'suis-chart__content' | suisNgClass : size()\"\n >\n @for (item of data() | suisChartData : compareData(); track item) {\n <div\n class=\"suis-chart__content__item\"\n [ngClass]=\"\n 'suis-chart__content__item'\n | suisNgClass\n : (item.compare\n ? item.color || compareColor()\n : item.color || color())\n : (item.compare ? 'compare' : 'single')\n \"\n [style.height]=\"item.value | suisChartHeight : maxValue\"\n >\n <div class=\"suis-chart__content__item__value\">\n {{ item.value }}\n </div>\n </div>\n }\n </div>\n <div\n class=\"suis-chart__labels\"\n [ngClass]=\"'suis-chart__labels' | suisNgClass : size()\"\n >\n @for (label of labels(); track label) {\n <div\n class=\"suis-chart__labels__item\"\n [class.suis-chart__labels__item--double]=\"compareData().length\"\n >\n {{ label }}\n </div>\n }\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;height:100%}.suis-chart{height:100%}.suis-chart__content,.suis-chart__labels{display:flex;align-items:flex-end;justify-content:center}.suis-chart__content--xs .suis-chart__content__item,.suis-chart__content--xs .suis-chart__labels__item,.suis-chart__labels--xs .suis-chart__content__item,.suis-chart__labels--xs .suis-chart__labels__item{width:1rem}.suis-chart__content--xs .suis-chart__content__item:not(:last-child),.suis-chart__content--xs .suis-chart__labels__item:not(:last-child),.suis-chart__labels--xs .suis-chart__content__item:not(:last-child),.suis-chart__labels--xs .suis-chart__labels__item:not(:last-child){margin-right:.5rem}.suis-chart__content--xs .suis-chart__content__item--compare,.suis-chart__content--xs .suis-chart__labels__item--compare,.suis-chart__labels--xs .suis-chart__content__item--compare,.suis-chart__labels--xs .suis-chart__labels__item--compare{margin-left:-.5rem}.suis-chart__content--xs .suis-chart__content__item--double,.suis-chart__content--xs .suis-chart__labels__item--double,.suis-chart__labels--xs .suis-chart__content__item--double,.suis-chart__labels--xs .suis-chart__labels__item--double{width:2rem}.suis-chart__content--sm .suis-chart__content__item,.suis-chart__content--sm .suis-chart__labels__item,.suis-chart__labels--sm .suis-chart__content__item,.suis-chart__labels--sm .suis-chart__labels__item{width:1.25rem}.suis-chart__content--sm .suis-chart__content__item:not(:last-child),.suis-chart__content--sm .suis-chart__labels__item:not(:last-child),.suis-chart__labels--sm .suis-chart__content__item:not(:last-child),.suis-chart__labels--sm .suis-chart__labels__item:not(:last-child){margin-right:.625rem}.suis-chart__content--sm .suis-chart__content__item--compare,.suis-chart__content--sm .suis-chart__labels__item--compare,.suis-chart__labels--sm .suis-chart__content__item--compare,.suis-chart__labels--sm .suis-chart__labels__item--compare{margin-left:-.625rem}.suis-chart__content--sm .suis-chart__content__item--double,.suis-chart__content--sm .suis-chart__labels__item--double,.suis-chart__labels--sm .suis-chart__content__item--double,.suis-chart__labels--sm .suis-chart__labels__item--double{width:2.5rem}.suis-chart__content--md .suis-chart__content__item,.suis-chart__content--md .suis-chart__labels__item,.suis-chart__labels--md .suis-chart__content__item,.suis-chart__labels--md .suis-chart__labels__item{width:1.5rem}.suis-chart__content--md .suis-chart__content__item:not(:last-child),.suis-chart__content--md .suis-chart__labels__item:not(:last-child),.suis-chart__labels--md .suis-chart__content__item:not(:last-child),.suis-chart__labels--md .suis-chart__labels__item:not(:last-child){margin-right:.75rem}.suis-chart__content--md .suis-chart__content__item--compare,.suis-chart__content--md .suis-chart__labels__item--compare,.suis-chart__labels--md .suis-chart__content__item--compare,.suis-chart__labels--md .suis-chart__labels__item--compare{margin-left:-.75rem}.suis-chart__content--md .suis-chart__content__item--double,.suis-chart__content--md .suis-chart__labels__item--double,.suis-chart__labels--md .suis-chart__content__item--double,.suis-chart__labels--md .suis-chart__labels__item--double{width:3rem}.suis-chart__content--lg .suis-chart__content__item,.suis-chart__content--lg .suis-chart__labels__item,.suis-chart__labels--lg .suis-chart__content__item,.suis-chart__labels--lg .suis-chart__labels__item{width:1.75rem}.suis-chart__content--lg .suis-chart__content__item:not(:last-child),.suis-chart__content--lg .suis-chart__labels__item:not(:last-child),.suis-chart__labels--lg .suis-chart__content__item:not(:last-child),.suis-chart__labels--lg .suis-chart__labels__item:not(:last-child){margin-right:.875rem}.suis-chart__content--lg .suis-chart__content__item--compare,.suis-chart__content--lg .suis-chart__labels__item--compare,.suis-chart__labels--lg .suis-chart__content__item--compare,.suis-chart__labels--lg .suis-chart__labels__item--compare{margin-left:-1rem}.suis-chart__content--lg .suis-chart__content__item--double,.suis-chart__content--lg .suis-chart__labels__item--double,.suis-chart__labels--lg .suis-chart__content__item--double,.suis-chart__labels--lg .suis-chart__labels__item--double{width:3.5rem}.suis-chart__content--xl .suis-chart__content__item,.suis-chart__content--xl .suis-chart__labels__item,.suis-chart__labels--xl .suis-chart__content__item,.suis-chart__labels--xl .suis-chart__labels__item{width:2rem}.suis-chart__content--xl .suis-chart__content__item:not(:last-child),.suis-chart__content--xl .suis-chart__labels__item:not(:last-child),.suis-chart__labels--xl .suis-chart__content__item:not(:last-child),.suis-chart__labels--xl .suis-chart__labels__item:not(:last-child){margin-right:1rem}.suis-chart__content--xl .suis-chart__content__item--compare,.suis-chart__content--xl .suis-chart__labels__item--compare,.suis-chart__labels--xl .suis-chart__content__item--compare,.suis-chart__labels--xl .suis-chart__labels__item--compare{margin-left:-1rem}.suis-chart__content--xl .suis-chart__content__item--double,.suis-chart__content--xl .suis-chart__labels__item--double,.suis-chart__labels--xl .suis-chart__content__item--double,.suis-chart__labels--xl .suis-chart__labels__item--double{width:4rem}.suis-chart__content{height:calc(100% - 1.25rem)}.suis-chart__content__item{background-color:#192a56;min-height:.0625rem;position:relative}.suis-chart__content__item--primary{background-color:#192a56}.suis-chart__content__item--secondary{background-color:#273c75}.suis-chart__content__item--tertiary{background-color:#dcdde1}.suis-chart__content__item--complementary{background-color:#f5f6fa}.suis-chart__content__item--success{background-color:#2ed573}.suis-chart__content__item--warning{background-color:#ffa502}.suis-chart__content__item--danger{background-color:#ff4757}.suis-chart__content__item--white{background-color:#fff}.suis-chart__content__item--gray{background-color:#bcbcbc}.suis-chart__content__item--dark{background-color:#000}.suis-chart__content__item__value{position:absolute;top:-1rem;text-align:center;width:100%;font-size:.75rem;color:#a4a7b0}.suis-chart__labels__item{margin-top:.25rem;font-size:.75rem;color:#a4a7b0;text-align:center}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisChartHeightPipe, name: "suisChartHeight" }, { kind: "pipe", type: SuisChartDataPipe, name: "suisChartData" }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
324
302
  }
325
303
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisChartComponent, decorators: [{
326
304
  type: Component,
327
- args: [{ selector: 'suis-chart', imports: [NgClass, SuisChartHeightPipe, SuisChartDataPipe, SuisNgClassPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-chart\">\n <div\n class=\"suis-chart__content\"\n [ngClass]=\"'suis-chart__content' | suisNgClass : size\"\n >\n @for (item of data | suisChartData : compareData; track item) {\n <div\n class=\"suis-chart__content__item\"\n [ngClass]=\"\n 'suis-chart__content__item'\n | suisNgClass\n : (item.compare ? item.color || compareColor : item.color || color)\n : (item.compare ? 'compare' : 'single')\n \"\n [style.height]=\"item.value | suisChartHeight : maxValue\"\n >\n <div class=\"suis-chart__content__item__value\">\n {{ item.value }}\n </div>\n </div>\n }\n </div>\n <div\n class=\"suis-chart__labels\"\n [ngClass]=\"'suis-chart__labels' | suisNgClass : size\"\n >\n @for (label of labels; track label) {\n <div\n class=\"suis-chart__labels__item\"\n [class.suis-chart__labels__item--double]=\"compareData.length\"\n >\n {{ label }}\n </div>\n }\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;height:100%}.suis-chart{height:100%}.suis-chart__content,.suis-chart__labels{display:flex;align-items:flex-end;justify-content:center}.suis-chart__content--xs .suis-chart__content__item,.suis-chart__content--xs .suis-chart__labels__item,.suis-chart__labels--xs .suis-chart__content__item,.suis-chart__labels--xs .suis-chart__labels__item{width:1rem}.suis-chart__content--xs .suis-chart__content__item:not(:last-child),.suis-chart__content--xs .suis-chart__labels__item:not(:last-child),.suis-chart__labels--xs .suis-chart__content__item:not(:last-child),.suis-chart__labels--xs .suis-chart__labels__item:not(:last-child){margin-right:.5rem}.suis-chart__content--xs .suis-chart__content__item--compare,.suis-chart__content--xs .suis-chart__labels__item--compare,.suis-chart__labels--xs .suis-chart__content__item--compare,.suis-chart__labels--xs .suis-chart__labels__item--compare{margin-left:-.5rem}.suis-chart__content--xs .suis-chart__content__item--double,.suis-chart__content--xs .suis-chart__labels__item--double,.suis-chart__labels--xs .suis-chart__content__item--double,.suis-chart__labels--xs .suis-chart__labels__item--double{width:2rem}.suis-chart__content--sm .suis-chart__content__item,.suis-chart__content--sm .suis-chart__labels__item,.suis-chart__labels--sm .suis-chart__content__item,.suis-chart__labels--sm .suis-chart__labels__item{width:1.25rem}.suis-chart__content--sm .suis-chart__content__item:not(:last-child),.suis-chart__content--sm .suis-chart__labels__item:not(:last-child),.suis-chart__labels--sm .suis-chart__content__item:not(:last-child),.suis-chart__labels--sm .suis-chart__labels__item:not(:last-child){margin-right:.625rem}.suis-chart__content--sm .suis-chart__content__item--compare,.suis-chart__content--sm .suis-chart__labels__item--compare,.suis-chart__labels--sm .suis-chart__content__item--compare,.suis-chart__labels--sm .suis-chart__labels__item--compare{margin-left:-.625rem}.suis-chart__content--sm .suis-chart__content__item--double,.suis-chart__content--sm .suis-chart__labels__item--double,.suis-chart__labels--sm .suis-chart__content__item--double,.suis-chart__labels--sm .suis-chart__labels__item--double{width:2.5rem}.suis-chart__content--md .suis-chart__content__item,.suis-chart__content--md .suis-chart__labels__item,.suis-chart__labels--md .suis-chart__content__item,.suis-chart__labels--md .suis-chart__labels__item{width:1.5rem}.suis-chart__content--md .suis-chart__content__item:not(:last-child),.suis-chart__content--md .suis-chart__labels__item:not(:last-child),.suis-chart__labels--md .suis-chart__content__item:not(:last-child),.suis-chart__labels--md .suis-chart__labels__item:not(:last-child){margin-right:.75rem}.suis-chart__content--md .suis-chart__content__item--compare,.suis-chart__content--md .suis-chart__labels__item--compare,.suis-chart__labels--md .suis-chart__content__item--compare,.suis-chart__labels--md .suis-chart__labels__item--compare{margin-left:-.75rem}.suis-chart__content--md .suis-chart__content__item--double,.suis-chart__content--md .suis-chart__labels__item--double,.suis-chart__labels--md .suis-chart__content__item--double,.suis-chart__labels--md .suis-chart__labels__item--double{width:3rem}.suis-chart__content--lg .suis-chart__content__item,.suis-chart__content--lg .suis-chart__labels__item,.suis-chart__labels--lg .suis-chart__content__item,.suis-chart__labels--lg .suis-chart__labels__item{width:1.75rem}.suis-chart__content--lg .suis-chart__content__item:not(:last-child),.suis-chart__content--lg .suis-chart__labels__item:not(:last-child),.suis-chart__labels--lg .suis-chart__content__item:not(:last-child),.suis-chart__labels--lg .suis-chart__labels__item:not(:last-child){margin-right:.875rem}.suis-chart__content--lg .suis-chart__content__item--compare,.suis-chart__content--lg .suis-chart__labels__item--compare,.suis-chart__labels--lg .suis-chart__content__item--compare,.suis-chart__labels--lg .suis-chart__labels__item--compare{margin-left:-1rem}.suis-chart__content--lg .suis-chart__content__item--double,.suis-chart__content--lg .suis-chart__labels__item--double,.suis-chart__labels--lg .suis-chart__content__item--double,.suis-chart__labels--lg .suis-chart__labels__item--double{width:3.5rem}.suis-chart__content--xl .suis-chart__content__item,.suis-chart__content--xl .suis-chart__labels__item,.suis-chart__labels--xl .suis-chart__content__item,.suis-chart__labels--xl .suis-chart__labels__item{width:2rem}.suis-chart__content--xl .suis-chart__content__item:not(:last-child),.suis-chart__content--xl .suis-chart__labels__item:not(:last-child),.suis-chart__labels--xl .suis-chart__content__item:not(:last-child),.suis-chart__labels--xl .suis-chart__labels__item:not(:last-child){margin-right:1rem}.suis-chart__content--xl .suis-chart__content__item--compare,.suis-chart__content--xl .suis-chart__labels__item--compare,.suis-chart__labels--xl .suis-chart__content__item--compare,.suis-chart__labels--xl .suis-chart__labels__item--compare{margin-left:-1rem}.suis-chart__content--xl .suis-chart__content__item--double,.suis-chart__content--xl .suis-chart__labels__item--double,.suis-chart__labels--xl .suis-chart__content__item--double,.suis-chart__labels--xl .suis-chart__labels__item--double{width:4rem}.suis-chart__content{height:calc(100% - 1.25rem)}.suis-chart__content__item{background-color:#192a56;min-height:.0625rem;position:relative}.suis-chart__content__item--primary{background-color:#192a56}.suis-chart__content__item--secondary{background-color:#273c75}.suis-chart__content__item--tertiary{background-color:#dcdde1}.suis-chart__content__item--complementary{background-color:#f5f6fa}.suis-chart__content__item--success{background-color:#2ed573}.suis-chart__content__item--warning{background-color:#ffa502}.suis-chart__content__item--danger{background-color:#ff4757}.suis-chart__content__item--white{background-color:#fff}.suis-chart__content__item--gray{background-color:#bcbcbc}.suis-chart__content__item--dark{background-color:#000}.suis-chart__content__item__value{position:absolute;top:-1rem;text-align:center;width:100%;font-size:.75rem;color:#a4a7b0}.suis-chart__labels__item{margin-top:.25rem;font-size:.75rem;color:#a4a7b0;text-align:center}\n"] }]
305
+ args: [{ selector: 'suis-chart', imports: [NgClass, SuisChartHeightPipe, SuisChartDataPipe, SuisNgClassPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-chart\">\n <div\n class=\"suis-chart__content\"\n [ngClass]=\"'suis-chart__content' | suisNgClass : size()\"\n >\n @for (item of data() | suisChartData : compareData(); track item) {\n <div\n class=\"suis-chart__content__item\"\n [ngClass]=\"\n 'suis-chart__content__item'\n | suisNgClass\n : (item.compare\n ? item.color || compareColor()\n : item.color || color())\n : (item.compare ? 'compare' : 'single')\n \"\n [style.height]=\"item.value | suisChartHeight : maxValue\"\n >\n <div class=\"suis-chart__content__item__value\">\n {{ item.value }}\n </div>\n </div>\n }\n </div>\n <div\n class=\"suis-chart__labels\"\n [ngClass]=\"'suis-chart__labels' | suisNgClass : size()\"\n >\n @for (label of labels(); track label) {\n <div\n class=\"suis-chart__labels__item\"\n [class.suis-chart__labels__item--double]=\"compareData().length\"\n >\n {{ label }}\n </div>\n }\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;height:100%}.suis-chart{height:100%}.suis-chart__content,.suis-chart__labels{display:flex;align-items:flex-end;justify-content:center}.suis-chart__content--xs .suis-chart__content__item,.suis-chart__content--xs .suis-chart__labels__item,.suis-chart__labels--xs .suis-chart__content__item,.suis-chart__labels--xs .suis-chart__labels__item{width:1rem}.suis-chart__content--xs .suis-chart__content__item:not(:last-child),.suis-chart__content--xs .suis-chart__labels__item:not(:last-child),.suis-chart__labels--xs .suis-chart__content__item:not(:last-child),.suis-chart__labels--xs .suis-chart__labels__item:not(:last-child){margin-right:.5rem}.suis-chart__content--xs .suis-chart__content__item--compare,.suis-chart__content--xs .suis-chart__labels__item--compare,.suis-chart__labels--xs .suis-chart__content__item--compare,.suis-chart__labels--xs .suis-chart__labels__item--compare{margin-left:-.5rem}.suis-chart__content--xs .suis-chart__content__item--double,.suis-chart__content--xs .suis-chart__labels__item--double,.suis-chart__labels--xs .suis-chart__content__item--double,.suis-chart__labels--xs .suis-chart__labels__item--double{width:2rem}.suis-chart__content--sm .suis-chart__content__item,.suis-chart__content--sm .suis-chart__labels__item,.suis-chart__labels--sm .suis-chart__content__item,.suis-chart__labels--sm .suis-chart__labels__item{width:1.25rem}.suis-chart__content--sm .suis-chart__content__item:not(:last-child),.suis-chart__content--sm .suis-chart__labels__item:not(:last-child),.suis-chart__labels--sm .suis-chart__content__item:not(:last-child),.suis-chart__labels--sm .suis-chart__labels__item:not(:last-child){margin-right:.625rem}.suis-chart__content--sm .suis-chart__content__item--compare,.suis-chart__content--sm .suis-chart__labels__item--compare,.suis-chart__labels--sm .suis-chart__content__item--compare,.suis-chart__labels--sm .suis-chart__labels__item--compare{margin-left:-.625rem}.suis-chart__content--sm .suis-chart__content__item--double,.suis-chart__content--sm .suis-chart__labels__item--double,.suis-chart__labels--sm .suis-chart__content__item--double,.suis-chart__labels--sm .suis-chart__labels__item--double{width:2.5rem}.suis-chart__content--md .suis-chart__content__item,.suis-chart__content--md .suis-chart__labels__item,.suis-chart__labels--md .suis-chart__content__item,.suis-chart__labels--md .suis-chart__labels__item{width:1.5rem}.suis-chart__content--md .suis-chart__content__item:not(:last-child),.suis-chart__content--md .suis-chart__labels__item:not(:last-child),.suis-chart__labels--md .suis-chart__content__item:not(:last-child),.suis-chart__labels--md .suis-chart__labels__item:not(:last-child){margin-right:.75rem}.suis-chart__content--md .suis-chart__content__item--compare,.suis-chart__content--md .suis-chart__labels__item--compare,.suis-chart__labels--md .suis-chart__content__item--compare,.suis-chart__labels--md .suis-chart__labels__item--compare{margin-left:-.75rem}.suis-chart__content--md .suis-chart__content__item--double,.suis-chart__content--md .suis-chart__labels__item--double,.suis-chart__labels--md .suis-chart__content__item--double,.suis-chart__labels--md .suis-chart__labels__item--double{width:3rem}.suis-chart__content--lg .suis-chart__content__item,.suis-chart__content--lg .suis-chart__labels__item,.suis-chart__labels--lg .suis-chart__content__item,.suis-chart__labels--lg .suis-chart__labels__item{width:1.75rem}.suis-chart__content--lg .suis-chart__content__item:not(:last-child),.suis-chart__content--lg .suis-chart__labels__item:not(:last-child),.suis-chart__labels--lg .suis-chart__content__item:not(:last-child),.suis-chart__labels--lg .suis-chart__labels__item:not(:last-child){margin-right:.875rem}.suis-chart__content--lg .suis-chart__content__item--compare,.suis-chart__content--lg .suis-chart__labels__item--compare,.suis-chart__labels--lg .suis-chart__content__item--compare,.suis-chart__labels--lg .suis-chart__labels__item--compare{margin-left:-1rem}.suis-chart__content--lg .suis-chart__content__item--double,.suis-chart__content--lg .suis-chart__labels__item--double,.suis-chart__labels--lg .suis-chart__content__item--double,.suis-chart__labels--lg .suis-chart__labels__item--double{width:3.5rem}.suis-chart__content--xl .suis-chart__content__item,.suis-chart__content--xl .suis-chart__labels__item,.suis-chart__labels--xl .suis-chart__content__item,.suis-chart__labels--xl .suis-chart__labels__item{width:2rem}.suis-chart__content--xl .suis-chart__content__item:not(:last-child),.suis-chart__content--xl .suis-chart__labels__item:not(:last-child),.suis-chart__labels--xl .suis-chart__content__item:not(:last-child),.suis-chart__labels--xl .suis-chart__labels__item:not(:last-child){margin-right:1rem}.suis-chart__content--xl .suis-chart__content__item--compare,.suis-chart__content--xl .suis-chart__labels__item--compare,.suis-chart__labels--xl .suis-chart__content__item--compare,.suis-chart__labels--xl .suis-chart__labels__item--compare{margin-left:-1rem}.suis-chart__content--xl .suis-chart__content__item--double,.suis-chart__content--xl .suis-chart__labels__item--double,.suis-chart__labels--xl .suis-chart__content__item--double,.suis-chart__labels--xl .suis-chart__labels__item--double{width:4rem}.suis-chart__content{height:calc(100% - 1.25rem)}.suis-chart__content__item{background-color:#192a56;min-height:.0625rem;position:relative}.suis-chart__content__item--primary{background-color:#192a56}.suis-chart__content__item--secondary{background-color:#273c75}.suis-chart__content__item--tertiary{background-color:#dcdde1}.suis-chart__content__item--complementary{background-color:#f5f6fa}.suis-chart__content__item--success{background-color:#2ed573}.suis-chart__content__item--warning{background-color:#ffa502}.suis-chart__content__item--danger{background-color:#ff4757}.suis-chart__content__item--white{background-color:#fff}.suis-chart__content__item--gray{background-color:#bcbcbc}.suis-chart__content__item--dark{background-color:#000}.suis-chart__content__item__value{position:absolute;top:-1rem;text-align:center;width:100%;font-size:.75rem;color:#a4a7b0}.suis-chart__labels__item{margin-top:.25rem;font-size:.75rem;color:#a4a7b0;text-align:center}\n"] }]
328
306
  }], propDecorators: { maxValue: [{
329
307
  type: Input
330
- }], labels: [{
331
- type: Input
332
- }], data: [{
333
- type: Input
334
- }], color: [{
335
- type: Input
336
- }], size: [{
337
- type: Input
338
- }], autoMax: [{
339
- type: Input
340
- }], compareData: [{
341
- type: Input
342
- }], compareColor: [{
343
- type: Input
344
308
  }] } });
345
309
 
346
310
  class SuisChipComponent {
@@ -348,137 +312,111 @@ class SuisChipComponent {
348
312
  /**
349
313
  * Sets the color pallette of the chip. Type of SuisColor. By default set to 'primary'.
350
314
  */
351
- this.color = 'primary';
315
+ this.color = input('primary');
352
316
  /**
353
317
  * Sets the color of the cross icon. Visible only if removable set to true. Type of SuisColor. By default set to 'white'.
354
318
  */
355
- this.iconColor = 'white';
319
+ this.iconColor = input('white');
356
320
  /**
357
321
  * Shows cross icon with remove action. By default set to false.
358
322
  */
359
- this.removable = false;
323
+ this.removable = input(false);
360
324
  /**
361
325
  * Emits on cross icon click.
362
326
  */
363
- this.remove = new EventEmitter();
327
+ this.remove = output();
364
328
  }
365
329
  /** @internal */
366
330
  onRemove() {
367
331
  this.remove.emit();
368
332
  }
369
333
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
370
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisChipComponent, isStandalone: true, selector: "suis-chip", inputs: { color: "color", iconColor: "iconColor", removable: "removable" }, outputs: { remove: "remove" }, ngImport: i0, template: "<div class=\"suis-chip\" [ngClass]=\"'suis-chip' | suisNgClass : color\">\n <ng-content></ng-content>\n @if (removable) {\n <button class=\"suis-chip__remove\" type=\"button\" (click)=\"onRemove()\">\n <suis-icon\n type=\"times\"\n [color]=\"iconColor\"\n [pointer]=\"true\"\n [size]=\"'md'\"\n ></suis-icon>\n </button>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-chip{display:flex;align-items:center;justify-content:center;width:fit-content;border-radius:1rem;font-size:.875rem;padding:.25rem .5rem;color:#fff}.suis-chip--primary{background-color:#192a56}.suis-chip--secondary{background-color:#273c75}.suis-chip--tertiary{background-color:#dcdde1}.suis-chip--complementary{background-color:#f5f6fa}.suis-chip--success{background-color:#2ed573}.suis-chip--warning{background-color:#ffa502}.suis-chip--danger{background-color:#ff4757}.suis-chip--white{background-color:#fff}.suis-chip--gray{background-color:#bcbcbc}.suis-chip--dark{background-color:#000}.suis-chip__remove{border:none;background-color:transparent}.suis-chip--tertiary,.suis-chip--complementary,.suis-chip--white{color:#2f3640}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
334
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisChipComponent, isStandalone: true, selector: "suis-chip", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, iconColor: { classPropertyName: "iconColor", publicName: "iconColor", isSignal: true, isRequired: false, transformFunction: null }, removable: { classPropertyName: "removable", publicName: "removable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { remove: "remove" }, ngImport: i0, template: "<div class=\"suis-chip\" [ngClass]=\"'suis-chip' | suisNgClass : color()\">\n <ng-content></ng-content>\n @if (removable()) {\n <button class=\"suis-chip__remove\" type=\"button\" (click)=\"onRemove()\">\n <suis-icon\n type=\"times\"\n [color]=\"iconColor()\"\n [pointer]=\"true\"\n [size]=\"'md'\"\n ></suis-icon>\n </button>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-chip{display:flex;align-items:center;justify-content:center;width:fit-content;border-radius:1rem;font-size:.875rem;padding:.25rem .5rem;color:#fff}.suis-chip--primary{background-color:#192a56}.suis-chip--secondary{background-color:#273c75}.suis-chip--tertiary{background-color:#dcdde1}.suis-chip--complementary{background-color:#f5f6fa}.suis-chip--success{background-color:#2ed573}.suis-chip--warning{background-color:#ffa502}.suis-chip--danger{background-color:#ff4757}.suis-chip--white{background-color:#fff}.suis-chip--gray{background-color:#bcbcbc}.suis-chip--dark{background-color:#000}.suis-chip__remove{border:none;background-color:transparent}.suis-chip--tertiary,.suis-chip--complementary,.suis-chip--white{color:#2f3640}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
371
335
  }
372
336
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisChipComponent, decorators: [{
373
337
  type: Component,
374
- args: [{ selector: 'suis-chip', imports: [NgClass, SuisIconComponent, SuisNgClassPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-chip\" [ngClass]=\"'suis-chip' | suisNgClass : color\">\n <ng-content></ng-content>\n @if (removable) {\n <button class=\"suis-chip__remove\" type=\"button\" (click)=\"onRemove()\">\n <suis-icon\n type=\"times\"\n [color]=\"iconColor\"\n [pointer]=\"true\"\n [size]=\"'md'\"\n ></suis-icon>\n </button>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-chip{display:flex;align-items:center;justify-content:center;width:fit-content;border-radius:1rem;font-size:.875rem;padding:.25rem .5rem;color:#fff}.suis-chip--primary{background-color:#192a56}.suis-chip--secondary{background-color:#273c75}.suis-chip--tertiary{background-color:#dcdde1}.suis-chip--complementary{background-color:#f5f6fa}.suis-chip--success{background-color:#2ed573}.suis-chip--warning{background-color:#ffa502}.suis-chip--danger{background-color:#ff4757}.suis-chip--white{background-color:#fff}.suis-chip--gray{background-color:#bcbcbc}.suis-chip--dark{background-color:#000}.suis-chip__remove{border:none;background-color:transparent}.suis-chip--tertiary,.suis-chip--complementary,.suis-chip--white{color:#2f3640}\n"] }]
375
- }], propDecorators: { color: [{
376
- type: Input
377
- }], iconColor: [{
378
- type: Input
379
- }], removable: [{
380
- type: Input
381
- }], remove: [{
382
- type: Output
383
- }] } });
338
+ args: [{ selector: 'suis-chip', imports: [NgClass, SuisIconComponent, SuisNgClassPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-chip\" [ngClass]=\"'suis-chip' | suisNgClass : color()\">\n <ng-content></ng-content>\n @if (removable()) {\n <button class=\"suis-chip__remove\" type=\"button\" (click)=\"onRemove()\">\n <suis-icon\n type=\"times\"\n [color]=\"iconColor()\"\n [pointer]=\"true\"\n [size]=\"'md'\"\n ></suis-icon>\n </button>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-chip{display:flex;align-items:center;justify-content:center;width:fit-content;border-radius:1rem;font-size:.875rem;padding:.25rem .5rem;color:#fff}.suis-chip--primary{background-color:#192a56}.suis-chip--secondary{background-color:#273c75}.suis-chip--tertiary{background-color:#dcdde1}.suis-chip--complementary{background-color:#f5f6fa}.suis-chip--success{background-color:#2ed573}.suis-chip--warning{background-color:#ffa502}.suis-chip--danger{background-color:#ff4757}.suis-chip--white{background-color:#fff}.suis-chip--gray{background-color:#bcbcbc}.suis-chip--dark{background-color:#000}.suis-chip__remove{border:none;background-color:transparent}.suis-chip--tertiary,.suis-chip--complementary,.suis-chip--white{color:#2f3640}\n"] }]
339
+ }] });
384
340
 
385
341
  class SuisContainerComponent {
386
342
  constructor() {
387
343
  /**
388
344
  * Adds a padding around the content. By default set to false.
389
345
  */
390
- this.spacing = false;
346
+ this.spacing = input(false);
391
347
  }
392
348
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
393
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: SuisContainerComponent, isStandalone: true, selector: "suis-container", inputs: { spacing: "spacing" }, ngImport: i0, template: "<div class=\"suis-container\" [class.suis-container--spacing]=\"spacing\">\n <ng-content></ng-content>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;width:100%}.suis-container{width:100%;max-width:1440px;margin:auto}.suis-container--spacing{padding:1rem}@media (min-width: 768px){.suis-container--spacing{padding:1.25rem}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
349
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: SuisContainerComponent, isStandalone: true, selector: "suis-container", inputs: { spacing: { classPropertyName: "spacing", publicName: "spacing", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"suis-container\" [class.suis-container--spacing]=\"spacing()\">\n <ng-content></ng-content>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;width:100%}.suis-container{width:100%;max-width:1440px;margin:auto}.suis-container--spacing{padding:1rem}@media (min-width: 768px){.suis-container--spacing{padding:1.25rem}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
394
350
  }
395
351
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisContainerComponent, decorators: [{
396
352
  type: Component,
397
- args: [{ selector: 'suis-container', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-container\" [class.suis-container--spacing]=\"spacing\">\n <ng-content></ng-content>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;width:100%}.suis-container{width:100%;max-width:1440px;margin:auto}.suis-container--spacing{padding:1rem}@media (min-width: 768px){.suis-container--spacing{padding:1.25rem}}\n"] }]
398
- }], propDecorators: { spacing: [{
399
- type: Input
400
- }] } });
353
+ args: [{ selector: 'suis-container', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-container\" [class.suis-container--spacing]=\"spacing()\">\n <ng-content></ng-content>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;width:100%}.suis-container{width:100%;max-width:1440px;margin:auto}.suis-container--spacing{padding:1rem}@media (min-width: 768px){.suis-container--spacing{padding:1.25rem}}\n"] }]
354
+ }] });
401
355
 
402
356
  class SuisSpinnerComponent {
403
357
  constructor() {
404
358
  /**
405
359
  * Sets the size of the spinner. Type of SuisSize. By default set to 'sm'.
406
360
  */
407
- this.size = 'sm';
361
+ this.size = input('sm');
408
362
  /**
409
363
  * Sets the color of the spinner. Type of SuisColor. By default set to 'primary'.
410
364
  */
411
- this.color = 'primary';
365
+ this.color = input('primary');
412
366
  }
413
367
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
414
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: SuisSpinnerComponent, isStandalone: true, selector: "suis-spinner", inputs: { size: "size", color: "color" }, ngImport: i0, template: "<div\n class=\"suis-spinner\"\n [ngClass]=\"'suis-spinner' | suisNgClass : size : color\"\n></div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-spinner{animation:spin .5s infinite linear;border-style:solid;border-radius:50%;border-left-color:transparent!important}.suis-spinner--primary{border-color:#192a56}.suis-spinner--secondary{border-color:#273c75}.suis-spinner--tertiary{border-color:#dcdde1}.suis-spinner--complementary{border-color:#f5f6fa}.suis-spinner--success{border-color:#2ed573}.suis-spinner--warning{border-color:#ffa502}.suis-spinner--danger{border-color:#ff4757}.suis-spinner--dark{border-color:#000}.suis-spinner--gray{border-color:#bcbcbc}.suis-spinner--white{border-color:#fff}.suis-spinner--xs{width:1rem;height:1rem;border-width:.1875rem}.suis-spinner--sm{width:1.5rem;height:1.5rem;border-width:.25rem}.suis-spinner--md{width:2rem;height:2rem;border-width:.375rem}.suis-spinner--lg{width:3rem;height:3rem;border-width:.5rem}.suis-spinner--xl{width:4rem;height:4rem;border-width:.625rem}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
368
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: SuisSpinnerComponent, isStandalone: true, selector: "suis-spinner", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"suis-spinner\"\n [ngClass]=\"'suis-spinner' | suisNgClass : size() : color()\"\n></div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-spinner{animation:spin .5s infinite linear;border-style:solid;border-radius:50%;border-left-color:transparent!important}.suis-spinner--primary{border-color:#192a56}.suis-spinner--secondary{border-color:#273c75}.suis-spinner--tertiary{border-color:#dcdde1}.suis-spinner--complementary{border-color:#f5f6fa}.suis-spinner--success{border-color:#2ed573}.suis-spinner--warning{border-color:#ffa502}.suis-spinner--danger{border-color:#ff4757}.suis-spinner--dark{border-color:#000}.suis-spinner--gray{border-color:#bcbcbc}.suis-spinner--white{border-color:#fff}.suis-spinner--xs{width:1rem;height:1rem;border-width:.1875rem}.suis-spinner--sm{width:1.5rem;height:1.5rem;border-width:.25rem}.suis-spinner--md{width:2rem;height:2rem;border-width:.375rem}.suis-spinner--lg{width:3rem;height:3rem;border-width:.5rem}.suis-spinner--xl{width:4rem;height:4rem;border-width:.625rem}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
415
369
  }
416
370
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSpinnerComponent, decorators: [{
417
371
  type: Component,
418
- args: [{ selector: 'suis-spinner', imports: [NgClass, SuisNgClassPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"suis-spinner\"\n [ngClass]=\"'suis-spinner' | suisNgClass : size : color\"\n></div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-spinner{animation:spin .5s infinite linear;border-style:solid;border-radius:50%;border-left-color:transparent!important}.suis-spinner--primary{border-color:#192a56}.suis-spinner--secondary{border-color:#273c75}.suis-spinner--tertiary{border-color:#dcdde1}.suis-spinner--complementary{border-color:#f5f6fa}.suis-spinner--success{border-color:#2ed573}.suis-spinner--warning{border-color:#ffa502}.suis-spinner--danger{border-color:#ff4757}.suis-spinner--dark{border-color:#000}.suis-spinner--gray{border-color:#bcbcbc}.suis-spinner--white{border-color:#fff}.suis-spinner--xs{width:1rem;height:1rem;border-width:.1875rem}.suis-spinner--sm{width:1.5rem;height:1.5rem;border-width:.25rem}.suis-spinner--md{width:2rem;height:2rem;border-width:.375rem}.suis-spinner--lg{width:3rem;height:3rem;border-width:.5rem}.suis-spinner--xl{width:4rem;height:4rem;border-width:.625rem}\n"] }]
419
- }], propDecorators: { size: [{
420
- type: Input
421
- }], color: [{
422
- type: Input
423
- }] } });
372
+ args: [{ selector: 'suis-spinner', imports: [NgClass, SuisNgClassPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"suis-spinner\"\n [ngClass]=\"'suis-spinner' | suisNgClass : size() : color()\"\n></div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-spinner{animation:spin .5s infinite linear;border-style:solid;border-radius:50%;border-left-color:transparent!important}.suis-spinner--primary{border-color:#192a56}.suis-spinner--secondary{border-color:#273c75}.suis-spinner--tertiary{border-color:#dcdde1}.suis-spinner--complementary{border-color:#f5f6fa}.suis-spinner--success{border-color:#2ed573}.suis-spinner--warning{border-color:#ffa502}.suis-spinner--danger{border-color:#ff4757}.suis-spinner--dark{border-color:#000}.suis-spinner--gray{border-color:#bcbcbc}.suis-spinner--white{border-color:#fff}.suis-spinner--xs{width:1rem;height:1rem;border-width:.1875rem}.suis-spinner--sm{width:1.5rem;height:1.5rem;border-width:.25rem}.suis-spinner--md{width:2rem;height:2rem;border-width:.375rem}.suis-spinner--lg{width:3rem;height:3rem;border-width:.5rem}.suis-spinner--xl{width:4rem;height:4rem;border-width:.625rem}\n"] }]
373
+ }] });
424
374
 
425
375
  class SuisButtonBase {
426
376
  constructor() {
427
377
  /**
428
378
  * Sets button's color theme. Type of SuisPalleteColor | SuisInfoColor. By default set to 'primary'.
429
379
  */
430
- this.color = 'primary';
380
+ this.color = input('primary');
431
381
  /**
432
382
  * Sets button's disabled attribute. By default set to false.
433
383
  */
434
- this.disabled = false;
384
+ this.disabled = input(false);
435
385
  /**
436
386
  * Sets button's type attribute. By default set to 'button'.
437
387
  */
438
- this.type = 'button';
388
+ this.type = input('button');
439
389
  /**
440
390
  * Shows loading spinner instead of content projection. By default set to false.
441
391
  */
442
- this.loading = false;
392
+ this.loading = input(false);
443
393
  /**
444
394
  * Sets width to 100% instead of fit-content. By default set to false.
445
395
  */
446
- this.fullWidth = false;
396
+ this.fullWidth = input(false);
447
397
  /**
448
398
  * Emits on button click event.
449
399
  */
450
- this.clicked = new EventEmitter();
400
+ this.clicked = output();
451
401
  }
452
402
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
453
403
  onClick(event) {
454
404
  this.clicked.emit();
455
405
  }
456
406
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisButtonBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
457
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: SuisButtonBase, isStandalone: true, inputs: { color: "color", disabled: "disabled", type: "type", loading: "loading", fullWidth: "fullWidth" }, outputs: { clicked: "clicked" }, ngImport: i0 }); }
407
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.7", type: SuisButtonBase, isStandalone: true, inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, ngImport: i0 }); }
458
408
  }
459
409
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisButtonBase, decorators: [{
460
410
  type: Directive
461
- }], propDecorators: { color: [{
462
- type: Input
463
- }], disabled: [{
464
- type: Input
465
- }], type: [{
466
- type: Input
467
- }], loading: [{
468
- type: Input
469
- }], fullWidth: [{
470
- type: Input
471
- }], clicked: [{
472
- type: Output
473
- }] } });
411
+ }] });
474
412
 
475
413
  class SuisButtonComponent extends SuisButtonBase {
476
414
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
477
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisButtonComponent, isStandalone: true, selector: "suis-button", usesInheritance: true, ngImport: i0, template: "<button\n class=\"suis-button\"\n [class.suis-button--full-width]=\"fullWidth\"\n [ngClass]=\"'suis-button' | suisNgClass : color\"\n [attr.disabled]=\"disabled || loading ? true : undefined\"\n [attr.tabindex]=\"disabled || loading ? -1 : 0\"\n [attr.type]=\"type\"\n (click)=\"onClick()\"\n>\n <span\n class=\"suis-button__content\"\n [class.suis-button__content--loading]=\"loading\"\n >\n <ng-content></ng-content>\n </span>\n @if (loading) {\n <suis-spinner size=\"xs\" color=\"white\"></suis-spinner>\n }\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-button{width:fit-content;display:flex;align-items:center;justify-content:center;padding:.375rem 1rem;border-radius:.25rem;text-align:center;text-decoration:none;transition:background-color .25s ease-in-out;border-width:.125rem;border-style:solid;font-size:.875rem}.suis-button--full-width{width:100%}.suis-button--disabled{opacity:.5}.suis-button__content{display:flex;align-items:center;justify-content:center}.suis-button__content--loading{visibility:hidden}.suis-button suis-spinner{position:absolute}.suis-button:disabled{opacity:.5}.suis-button:hover:not(:disabled){cursor:pointer}.suis-button:hover:disabled{cursor:not-allowed}.suis-button:focus,.suis-button:focus-within{outline:none}.suis-button--primary{background-color:#192a56;border-color:#192a56;color:#fff}.suis-button--primary:hover:not(:disabled){background-color:#192a56d9}.suis-button--primary:focus:not(:disabled){box-shadow:0 2px 5px #192a56bf}.suis-button--secondary{background-color:#273c75;border-color:#273c75;color:#fff}.suis-button--secondary:hover:not(:disabled){background-color:#273c75d9}.suis-button--secondary:focus:not(:disabled){box-shadow:0 2px 5px #273c75bf}.suis-button--tertiary{background-color:#dcdde1;border-color:#dcdde1;color:#2f3640}.suis-button--tertiary:hover:not(:disabled){background-color:#dcdde1d9}.suis-button--tertiary:focus:not(:disabled){box-shadow:0 2px 5px #dcdde1bf}.suis-button--complementary{background-color:#f5f6fa;border-color:#f5f6fa;color:#2f3640}.suis-button--complementary:hover:not(:disabled){background-color:#f5f6fad9}.suis-button--complementary:focus:not(:disabled){box-shadow:0 2px 5px #f5f6fabf}.suis-button--success{background-color:#2ed573;border-color:#2ed573;color:#fff}.suis-button--success:hover:not(:disabled){background-color:#2ed573d9}.suis-button--success:focus:not(:disabled){box-shadow:0 2px 5px #2ed573bf}.suis-button--warning{background-color:#ffa502;border-color:#ffa502;color:#fff}.suis-button--warning:hover:not(:disabled){background-color:#ffa502d9}.suis-button--warning:focus:not(:disabled){box-shadow:0 2px 5px #ffa502bf}.suis-button--danger{background-color:#ff4757;border-color:#ff4757;color:#fff}.suis-button--danger:hover:not(:disabled){background-color:#ff4757d9}.suis-button--danger:focus:not(:disabled){box-shadow:0 2px 5px #ff4757bf}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }, { kind: "component", type: SuisSpinnerComponent, selector: "suis-spinner", inputs: ["size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
415
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisButtonComponent, isStandalone: true, selector: "suis-button", usesInheritance: true, ngImport: i0, template: "<button\n class=\"suis-button\"\n [class.suis-button--full-width]=\"fullWidth()\"\n [ngClass]=\"'suis-button' | suisNgClass : color()\"\n [attr.disabled]=\"disabled() || loading() ? true : undefined\"\n [attr.tabindex]=\"disabled() || loading() ? -1 : 0\"\n [attr.type]=\"type()\"\n (click)=\"onClick()\"\n>\n <span\n class=\"suis-button__content\"\n [class.suis-button__content--loading]=\"loading()\"\n >\n <ng-content></ng-content>\n </span>\n @if (loading()) {\n <suis-spinner size=\"xs\" color=\"white\"></suis-spinner>\n }\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-button{width:fit-content;display:flex;align-items:center;justify-content:center;padding:.375rem 1rem;border-radius:.25rem;text-align:center;text-decoration:none;transition:background-color .25s ease-in-out;border-width:.125rem;border-style:solid;font-size:.875rem}.suis-button--full-width{width:100%}.suis-button--disabled{opacity:.5}.suis-button__content{display:flex;align-items:center;justify-content:center}.suis-button__content--loading{visibility:hidden}.suis-button suis-spinner{position:absolute}.suis-button:disabled{opacity:.5}.suis-button:hover:not(:disabled){cursor:pointer}.suis-button:hover:disabled{cursor:not-allowed}.suis-button:focus,.suis-button:focus-within{outline:none}.suis-button--primary{background-color:#192a56;border-color:#192a56;color:#fff}.suis-button--primary:hover:not(:disabled){background-color:#192a56d9}.suis-button--primary:focus:not(:disabled){box-shadow:0 2px 5px #192a56bf}.suis-button--secondary{background-color:#273c75;border-color:#273c75;color:#fff}.suis-button--secondary:hover:not(:disabled){background-color:#273c75d9}.suis-button--secondary:focus:not(:disabled){box-shadow:0 2px 5px #273c75bf}.suis-button--tertiary{background-color:#dcdde1;border-color:#dcdde1;color:#2f3640}.suis-button--tertiary:hover:not(:disabled){background-color:#dcdde1d9}.suis-button--tertiary:focus:not(:disabled){box-shadow:0 2px 5px #dcdde1bf}.suis-button--complementary{background-color:#f5f6fa;border-color:#f5f6fa;color:#2f3640}.suis-button--complementary:hover:not(:disabled){background-color:#f5f6fad9}.suis-button--complementary:focus:not(:disabled){box-shadow:0 2px 5px #f5f6fabf}.suis-button--success{background-color:#2ed573;border-color:#2ed573;color:#fff}.suis-button--success:hover:not(:disabled){background-color:#2ed573d9}.suis-button--success:focus:not(:disabled){box-shadow:0 2px 5px #2ed573bf}.suis-button--warning{background-color:#ffa502;border-color:#ffa502;color:#fff}.suis-button--warning:hover:not(:disabled){background-color:#ffa502d9}.suis-button--warning:focus:not(:disabled){box-shadow:0 2px 5px #ffa502bf}.suis-button--danger{background-color:#ff4757;border-color:#ff4757;color:#fff}.suis-button--danger:hover:not(:disabled){background-color:#ff4757d9}.suis-button--danger:focus:not(:disabled){box-shadow:0 2px 5px #ff4757bf}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }, { kind: "component", type: SuisSpinnerComponent, selector: "suis-spinner", inputs: ["size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
478
416
  }
479
417
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisButtonComponent, decorators: [{
480
418
  type: Component,
481
- args: [{ selector: 'suis-button', imports: [NgClass, SuisNgClassPipe, SuisSpinnerComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n class=\"suis-button\"\n [class.suis-button--full-width]=\"fullWidth\"\n [ngClass]=\"'suis-button' | suisNgClass : color\"\n [attr.disabled]=\"disabled || loading ? true : undefined\"\n [attr.tabindex]=\"disabled || loading ? -1 : 0\"\n [attr.type]=\"type\"\n (click)=\"onClick()\"\n>\n <span\n class=\"suis-button__content\"\n [class.suis-button__content--loading]=\"loading\"\n >\n <ng-content></ng-content>\n </span>\n @if (loading) {\n <suis-spinner size=\"xs\" color=\"white\"></suis-spinner>\n }\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-button{width:fit-content;display:flex;align-items:center;justify-content:center;padding:.375rem 1rem;border-radius:.25rem;text-align:center;text-decoration:none;transition:background-color .25s ease-in-out;border-width:.125rem;border-style:solid;font-size:.875rem}.suis-button--full-width{width:100%}.suis-button--disabled{opacity:.5}.suis-button__content{display:flex;align-items:center;justify-content:center}.suis-button__content--loading{visibility:hidden}.suis-button suis-spinner{position:absolute}.suis-button:disabled{opacity:.5}.suis-button:hover:not(:disabled){cursor:pointer}.suis-button:hover:disabled{cursor:not-allowed}.suis-button:focus,.suis-button:focus-within{outline:none}.suis-button--primary{background-color:#192a56;border-color:#192a56;color:#fff}.suis-button--primary:hover:not(:disabled){background-color:#192a56d9}.suis-button--primary:focus:not(:disabled){box-shadow:0 2px 5px #192a56bf}.suis-button--secondary{background-color:#273c75;border-color:#273c75;color:#fff}.suis-button--secondary:hover:not(:disabled){background-color:#273c75d9}.suis-button--secondary:focus:not(:disabled){box-shadow:0 2px 5px #273c75bf}.suis-button--tertiary{background-color:#dcdde1;border-color:#dcdde1;color:#2f3640}.suis-button--tertiary:hover:not(:disabled){background-color:#dcdde1d9}.suis-button--tertiary:focus:not(:disabled){box-shadow:0 2px 5px #dcdde1bf}.suis-button--complementary{background-color:#f5f6fa;border-color:#f5f6fa;color:#2f3640}.suis-button--complementary:hover:not(:disabled){background-color:#f5f6fad9}.suis-button--complementary:focus:not(:disabled){box-shadow:0 2px 5px #f5f6fabf}.suis-button--success{background-color:#2ed573;border-color:#2ed573;color:#fff}.suis-button--success:hover:not(:disabled){background-color:#2ed573d9}.suis-button--success:focus:not(:disabled){box-shadow:0 2px 5px #2ed573bf}.suis-button--warning{background-color:#ffa502;border-color:#ffa502;color:#fff}.suis-button--warning:hover:not(:disabled){background-color:#ffa502d9}.suis-button--warning:focus:not(:disabled){box-shadow:0 2px 5px #ffa502bf}.suis-button--danger{background-color:#ff4757;border-color:#ff4757;color:#fff}.suis-button--danger:hover:not(:disabled){background-color:#ff4757d9}.suis-button--danger:focus:not(:disabled){box-shadow:0 2px 5px #ff4757bf}\n"] }]
419
+ args: [{ selector: 'suis-button', imports: [NgClass, SuisNgClassPipe, SuisSpinnerComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n class=\"suis-button\"\n [class.suis-button--full-width]=\"fullWidth()\"\n [ngClass]=\"'suis-button' | suisNgClass : color()\"\n [attr.disabled]=\"disabled() || loading() ? true : undefined\"\n [attr.tabindex]=\"disabled() || loading() ? -1 : 0\"\n [attr.type]=\"type()\"\n (click)=\"onClick()\"\n>\n <span\n class=\"suis-button__content\"\n [class.suis-button__content--loading]=\"loading()\"\n >\n <ng-content></ng-content>\n </span>\n @if (loading()) {\n <suis-spinner size=\"xs\" color=\"white\"></suis-spinner>\n }\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-button{width:fit-content;display:flex;align-items:center;justify-content:center;padding:.375rem 1rem;border-radius:.25rem;text-align:center;text-decoration:none;transition:background-color .25s ease-in-out;border-width:.125rem;border-style:solid;font-size:.875rem}.suis-button--full-width{width:100%}.suis-button--disabled{opacity:.5}.suis-button__content{display:flex;align-items:center;justify-content:center}.suis-button__content--loading{visibility:hidden}.suis-button suis-spinner{position:absolute}.suis-button:disabled{opacity:.5}.suis-button:hover:not(:disabled){cursor:pointer}.suis-button:hover:disabled{cursor:not-allowed}.suis-button:focus,.suis-button:focus-within{outline:none}.suis-button--primary{background-color:#192a56;border-color:#192a56;color:#fff}.suis-button--primary:hover:not(:disabled){background-color:#192a56d9}.suis-button--primary:focus:not(:disabled){box-shadow:0 2px 5px #192a56bf}.suis-button--secondary{background-color:#273c75;border-color:#273c75;color:#fff}.suis-button--secondary:hover:not(:disabled){background-color:#273c75d9}.suis-button--secondary:focus:not(:disabled){box-shadow:0 2px 5px #273c75bf}.suis-button--tertiary{background-color:#dcdde1;border-color:#dcdde1;color:#2f3640}.suis-button--tertiary:hover:not(:disabled){background-color:#dcdde1d9}.suis-button--tertiary:focus:not(:disabled){box-shadow:0 2px 5px #dcdde1bf}.suis-button--complementary{background-color:#f5f6fa;border-color:#f5f6fa;color:#2f3640}.suis-button--complementary:hover:not(:disabled){background-color:#f5f6fad9}.suis-button--complementary:focus:not(:disabled){box-shadow:0 2px 5px #f5f6fabf}.suis-button--success{background-color:#2ed573;border-color:#2ed573;color:#fff}.suis-button--success:hover:not(:disabled){background-color:#2ed573d9}.suis-button--success:focus:not(:disabled){box-shadow:0 2px 5px #2ed573bf}.suis-button--warning{background-color:#ffa502;border-color:#ffa502;color:#fff}.suis-button--warning:hover:not(:disabled){background-color:#ffa502d9}.suis-button--warning:focus:not(:disabled){box-shadow:0 2px 5px #ffa502bf}.suis-button--danger{background-color:#ff4757;border-color:#ff4757;color:#fff}.suis-button--danger:hover:not(:disabled){background-color:#ff4757d9}.suis-button--danger:focus:not(:disabled){box-shadow:0 2px 5px #ff4757bf}\n"] }]
482
420
  }] });
483
421
 
484
422
  /* eslint-disable @typescript-eslint/no-explicit-any */
@@ -521,23 +459,23 @@ class SuisDialogComponent {
521
459
  /**
522
460
  * Sets width size of the dialog. Type of SuisSize. By default set to 'md'.
523
461
  */
524
- this.size = 'md';
462
+ this.size = input('md');
525
463
  /**
526
464
  * Displays the cancel button in the actions footer of the dialog. By default set to true.
527
465
  */
528
- this.cancelButton = true;
466
+ this.cancelButton = input(true);
529
467
  /**
530
468
  * Displays the confirm button in the actions footer of the dialog. By default set to true.
531
469
  */
532
- this.confirmButton = true;
470
+ this.confirmButton = input(true);
533
471
  /**
534
472
  * Emits on confirm button clicked.
535
473
  */
536
- this.confirmed = new EventEmitter();
474
+ this.confirmed = output();
537
475
  /**
538
476
  * Emits on cancel button or cross icon clicked.
539
477
  */
540
- this.cancelled = new EventEmitter();
478
+ this.cancelled = output();
541
479
  }
542
480
  onConfirm() {
543
481
  this.confirmed.emit();
@@ -547,22 +485,12 @@ class SuisDialogComponent {
547
485
  this.suisDialogService.close();
548
486
  }
549
487
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
550
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisDialogComponent, isStandalone: true, selector: "suis-dialog", inputs: { size: "size", cancelButton: "cancelButton", confirmButton: "confirmButton" }, outputs: { confirmed: "confirmed", cancelled: "cancelled" }, ngImport: i0, template: "<div class=\"suis-dialog\" [ngClass]=\"'suis-dialog' | suisNgClass : size\">\n <header class=\"suis-dialog__header\">\n <ng-content select=\"[suisDialogHeader]\"></ng-content>\n <button type=\"button\" (click)=\"onCancel()\">\n <suis-icon type=\"times\" color=\"dark\" size=\"lg\"></suis-icon>\n </button>\n </header>\n <section class=\"suis-dialog__content\">\n <ng-content select=\"[suisDialogContent]\"></ng-content>\n </section>\n <footer class=\"suis-dialog__actions\">\n @if (cancelButton) {\n <suis-button color=\"danger\" (click)=\"onCancel()\"> Cancel </suis-button>\n } @if (confirmButton) {\n <suis-button color=\"success\" (click)=\"onConfirm()\"> Confirm </suis-button>\n }\n </footer>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{z-index:30;position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background-color:#f5f6fad9;-webkit-backdrop-filter:blur(.125rem);backdrop-filter:blur(.125rem)}.suis-dialog{background-color:#fff;border:.0625rem solid #dcdde1;border-radius:.25rem;width:100%;margin:1rem}.suis-dialog__header{padding:1rem;border-bottom:.0625rem solid #dcdde1;display:flex;align-items:center;justify-content:space-between;font-weight:500}.suis-dialog__header button{background-color:transparent;border-radius:.25rem;border:0;margin-left:auto}.suis-dialog__header button:hover{cursor:pointer}.suis-dialog__header button:hover{background-color:#dcdde1}.suis-dialog__content{padding:1rem;border-bottom:.0625rem solid #dcdde1;max-height:calc(100vh - 12rem);overflow-y:auto}.suis-dialog__content::-webkit-scrollbar{width:.5rem}.suis-dialog__content::-webkit-scrollbar-track{background:#f5f6fa}.suis-dialog__content::-webkit-scrollbar-thumb{background:#dcdde1}.suis-dialog__content::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-dialog__actions{padding:1rem;display:flex;justify-content:space-between}.suis-dialog--xs{max-width:20rem}.suis-dialog--sm{max-width:25rem}.suis-dialog--md{max-width:30rem}.suis-dialog--lg{max-width:40rem}.suis-dialog--xl{max-width:50rem}@media (min-width: 992px){.suis-dialog--sm{max-width:30rem}.suis-dialog--md{max-width:40rem}.suis-dialog--lg{max-width:50rem}.suis-dialog--xl{max-width:60rem}}@media (min-width: 1200px){.suis-dialog--lg{max-width:60rem}.suis-dialog--xl{max-width:70rem}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }, { kind: "component", type: SuisButtonComponent, selector: "suis-button" }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
488
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisDialogComponent, isStandalone: true, selector: "suis-dialog", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, cancelButton: { classPropertyName: "cancelButton", publicName: "cancelButton", isSignal: true, isRequired: false, transformFunction: null }, confirmButton: { classPropertyName: "confirmButton", publicName: "confirmButton", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { confirmed: "confirmed", cancelled: "cancelled" }, ngImport: i0, template: "<div class=\"suis-dialog\" [ngClass]=\"'suis-dialog' | suisNgClass : size()\">\n <header class=\"suis-dialog__header\">\n <ng-content select=\"[suisDialogHeader]\"></ng-content>\n <button type=\"button\" (click)=\"onCancel()\">\n <suis-icon type=\"times\" color=\"dark\" size=\"lg\"></suis-icon>\n </button>\n </header>\n <section class=\"suis-dialog__content\">\n <ng-content select=\"[suisDialogContent]\"></ng-content>\n </section>\n <footer class=\"suis-dialog__actions\">\n @if (cancelButton()) {\n <suis-button color=\"danger\" (click)=\"onCancel()\"> Cancel </suis-button>\n } @if (confirmButton()) {\n <suis-button color=\"success\" (click)=\"onConfirm()\"> Confirm </suis-button>\n }\n </footer>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{z-index:30;position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background-color:#f5f6fad9;-webkit-backdrop-filter:blur(.125rem);backdrop-filter:blur(.125rem)}.suis-dialog{background-color:#fff;border:.0625rem solid #dcdde1;border-radius:.25rem;width:100%;margin:1rem}.suis-dialog__header{padding:1rem;border-bottom:.0625rem solid #dcdde1;display:flex;align-items:center;justify-content:space-between;font-weight:500}.suis-dialog__header button{background-color:transparent;border-radius:.25rem;border:0;margin-left:auto}.suis-dialog__header button:hover{cursor:pointer}.suis-dialog__header button:hover{background-color:#dcdde1}.suis-dialog__content{padding:1rem;border-bottom:.0625rem solid #dcdde1;max-height:calc(100vh - 12rem);overflow-y:auto}.suis-dialog__content::-webkit-scrollbar{width:.5rem}.suis-dialog__content::-webkit-scrollbar-track{background:#f5f6fa}.suis-dialog__content::-webkit-scrollbar-thumb{background:#dcdde1}.suis-dialog__content::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-dialog__actions{padding:1rem;display:flex;justify-content:space-between}.suis-dialog--xs{max-width:20rem}.suis-dialog--sm{max-width:25rem}.suis-dialog--md{max-width:30rem}.suis-dialog--lg{max-width:40rem}.suis-dialog--xl{max-width:50rem}@media (min-width: 992px){.suis-dialog--sm{max-width:30rem}.suis-dialog--md{max-width:40rem}.suis-dialog--lg{max-width:50rem}.suis-dialog--xl{max-width:60rem}}@media (min-width: 1200px){.suis-dialog--lg{max-width:60rem}.suis-dialog--xl{max-width:70rem}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }, { kind: "component", type: SuisButtonComponent, selector: "suis-button" }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
551
489
  }
552
490
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisDialogComponent, decorators: [{
553
491
  type: Component,
554
- args: [{ selector: 'suis-dialog', imports: [NgClass, SuisIconComponent, SuisButtonComponent, SuisNgClassPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-dialog\" [ngClass]=\"'suis-dialog' | suisNgClass : size\">\n <header class=\"suis-dialog__header\">\n <ng-content select=\"[suisDialogHeader]\"></ng-content>\n <button type=\"button\" (click)=\"onCancel()\">\n <suis-icon type=\"times\" color=\"dark\" size=\"lg\"></suis-icon>\n </button>\n </header>\n <section class=\"suis-dialog__content\">\n <ng-content select=\"[suisDialogContent]\"></ng-content>\n </section>\n <footer class=\"suis-dialog__actions\">\n @if (cancelButton) {\n <suis-button color=\"danger\" (click)=\"onCancel()\"> Cancel </suis-button>\n } @if (confirmButton) {\n <suis-button color=\"success\" (click)=\"onConfirm()\"> Confirm </suis-button>\n }\n </footer>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{z-index:30;position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background-color:#f5f6fad9;-webkit-backdrop-filter:blur(.125rem);backdrop-filter:blur(.125rem)}.suis-dialog{background-color:#fff;border:.0625rem solid #dcdde1;border-radius:.25rem;width:100%;margin:1rem}.suis-dialog__header{padding:1rem;border-bottom:.0625rem solid #dcdde1;display:flex;align-items:center;justify-content:space-between;font-weight:500}.suis-dialog__header button{background-color:transparent;border-radius:.25rem;border:0;margin-left:auto}.suis-dialog__header button:hover{cursor:pointer}.suis-dialog__header button:hover{background-color:#dcdde1}.suis-dialog__content{padding:1rem;border-bottom:.0625rem solid #dcdde1;max-height:calc(100vh - 12rem);overflow-y:auto}.suis-dialog__content::-webkit-scrollbar{width:.5rem}.suis-dialog__content::-webkit-scrollbar-track{background:#f5f6fa}.suis-dialog__content::-webkit-scrollbar-thumb{background:#dcdde1}.suis-dialog__content::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-dialog__actions{padding:1rem;display:flex;justify-content:space-between}.suis-dialog--xs{max-width:20rem}.suis-dialog--sm{max-width:25rem}.suis-dialog--md{max-width:30rem}.suis-dialog--lg{max-width:40rem}.suis-dialog--xl{max-width:50rem}@media (min-width: 992px){.suis-dialog--sm{max-width:30rem}.suis-dialog--md{max-width:40rem}.suis-dialog--lg{max-width:50rem}.suis-dialog--xl{max-width:60rem}}@media (min-width: 1200px){.suis-dialog--lg{max-width:60rem}.suis-dialog--xl{max-width:70rem}}\n"] }]
555
- }], propDecorators: { size: [{
556
- type: Input
557
- }], cancelButton: [{
558
- type: Input
559
- }], confirmButton: [{
560
- type: Input
561
- }], confirmed: [{
562
- type: Output
563
- }], cancelled: [{
564
- type: Output
565
- }] } });
492
+ args: [{ selector: 'suis-dialog', imports: [NgClass, SuisIconComponent, SuisButtonComponent, SuisNgClassPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-dialog\" [ngClass]=\"'suis-dialog' | suisNgClass : size()\">\n <header class=\"suis-dialog__header\">\n <ng-content select=\"[suisDialogHeader]\"></ng-content>\n <button type=\"button\" (click)=\"onCancel()\">\n <suis-icon type=\"times\" color=\"dark\" size=\"lg\"></suis-icon>\n </button>\n </header>\n <section class=\"suis-dialog__content\">\n <ng-content select=\"[suisDialogContent]\"></ng-content>\n </section>\n <footer class=\"suis-dialog__actions\">\n @if (cancelButton()) {\n <suis-button color=\"danger\" (click)=\"onCancel()\"> Cancel </suis-button>\n } @if (confirmButton()) {\n <suis-button color=\"success\" (click)=\"onConfirm()\"> Confirm </suis-button>\n }\n </footer>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{z-index:30;position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background-color:#f5f6fad9;-webkit-backdrop-filter:blur(.125rem);backdrop-filter:blur(.125rem)}.suis-dialog{background-color:#fff;border:.0625rem solid #dcdde1;border-radius:.25rem;width:100%;margin:1rem}.suis-dialog__header{padding:1rem;border-bottom:.0625rem solid #dcdde1;display:flex;align-items:center;justify-content:space-between;font-weight:500}.suis-dialog__header button{background-color:transparent;border-radius:.25rem;border:0;margin-left:auto}.suis-dialog__header button:hover{cursor:pointer}.suis-dialog__header button:hover{background-color:#dcdde1}.suis-dialog__content{padding:1rem;border-bottom:.0625rem solid #dcdde1;max-height:calc(100vh - 12rem);overflow-y:auto}.suis-dialog__content::-webkit-scrollbar{width:.5rem}.suis-dialog__content::-webkit-scrollbar-track{background:#f5f6fa}.suis-dialog__content::-webkit-scrollbar-thumb{background:#dcdde1}.suis-dialog__content::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-dialog__actions{padding:1rem;display:flex;justify-content:space-between}.suis-dialog--xs{max-width:20rem}.suis-dialog--sm{max-width:25rem}.suis-dialog--md{max-width:30rem}.suis-dialog--lg{max-width:40rem}.suis-dialog--xl{max-width:50rem}@media (min-width: 992px){.suis-dialog--sm{max-width:30rem}.suis-dialog--md{max-width:40rem}.suis-dialog--lg{max-width:50rem}.suis-dialog--xl{max-width:60rem}}@media (min-width: 1200px){.suis-dialog--lg{max-width:60rem}.suis-dialog--xl{max-width:70rem}}\n"] }]
493
+ }] });
566
494
 
567
495
  let UNIQUE_ID = 1;
568
496
  class SuisNotificationService {
@@ -662,28 +590,30 @@ class SuisDividerComponent {
662
590
  /**
663
591
  * Sets the color of the divider. Type of SuisColor. By default set to 'tertiary'.
664
592
  */
665
- this.color = 'tertiary';
593
+ this.color = input('tertiary');
666
594
  }
667
595
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisDividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
668
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: SuisDividerComponent, isStandalone: true, selector: "suis-divider", inputs: { color: "color" }, ngImport: i0, template: "<div\n class=\"suis-divider\"\n [ngClass]=\"'suis-divider' | suisNgClass : color\"\n></div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-divider{border:0;border-bottom-width:.0625rem;border-style:solid}.suis-divider--primary{border-color:#192a56}.suis-divider--secondary{border-color:#273c75}.suis-divider--tertiary{border-color:#dcdde1}.suis-divider--complementary{border-color:#f5f6fa}.suis-divider--success{border-color:#2ed573}.suis-divider--warning{border-color:#ffa502}.suis-divider--danger{border-color:#ff4757}.suis-divider--white{border-color:#fff}.suis-divider--gray{border-color:#bcbcbc}.suis-divider--dark{border-color:#000}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
596
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: SuisDividerComponent, isStandalone: true, selector: "suis-divider", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"suis-divider\"\n [ngClass]=\"'suis-divider' | suisNgClass : color()\"\n></div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-divider{border:0;border-bottom-width:.0625rem;border-style:solid}.suis-divider--primary{border-color:#192a56}.suis-divider--secondary{border-color:#273c75}.suis-divider--tertiary{border-color:#dcdde1}.suis-divider--complementary{border-color:#f5f6fa}.suis-divider--success{border-color:#2ed573}.suis-divider--warning{border-color:#ffa502}.suis-divider--danger{border-color:#ff4757}.suis-divider--white{border-color:#fff}.suis-divider--gray{border-color:#bcbcbc}.suis-divider--dark{border-color:#000}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
669
597
  }
670
598
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisDividerComponent, decorators: [{
671
599
  type: Component,
672
- args: [{ selector: 'suis-divider', imports: [CommonModule, SuisNgClassPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"suis-divider\"\n [ngClass]=\"'suis-divider' | suisNgClass : color\"\n></div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-divider{border:0;border-bottom-width:.0625rem;border-style:solid}.suis-divider--primary{border-color:#192a56}.suis-divider--secondary{border-color:#273c75}.suis-divider--tertiary{border-color:#dcdde1}.suis-divider--complementary{border-color:#f5f6fa}.suis-divider--success{border-color:#2ed573}.suis-divider--warning{border-color:#ffa502}.suis-divider--danger{border-color:#ff4757}.suis-divider--white{border-color:#fff}.suis-divider--gray{border-color:#bcbcbc}.suis-divider--dark{border-color:#000}\n"] }]
673
- }], propDecorators: { color: [{
674
- type: Input
675
- }] } });
600
+ args: [{ selector: 'suis-divider', imports: [CommonModule, SuisNgClassPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"suis-divider\"\n [ngClass]=\"'suis-divider' | suisNgClass : color()\"\n></div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-divider{border:0;border-bottom-width:.0625rem;border-style:solid}.suis-divider--primary{border-color:#192a56}.suis-divider--secondary{border-color:#273c75}.suis-divider--tertiary{border-color:#dcdde1}.suis-divider--complementary{border-color:#f5f6fa}.suis-divider--success{border-color:#2ed573}.suis-divider--warning{border-color:#ffa502}.suis-divider--danger{border-color:#ff4757}.suis-divider--white{border-color:#fff}.suis-divider--gray{border-color:#bcbcbc}.suis-divider--dark{border-color:#000}\n"] }]
601
+ }] });
676
602
 
677
603
  class SuisFormFieldComponent {
604
+ constructor() {
605
+ /**
606
+ * Template to be added below the field with error message.
607
+ */
608
+ this.errorTemplate = input();
609
+ }
678
610
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
679
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisFormFieldComponent, isStandalone: true, selector: "suis-form-field", inputs: { errorTemplate: "errorTemplate" }, ngImport: i0, template: "<div class=\"suis-form-field\">\n <ng-content></ng-content>\n @if (errorTemplate) {\n <div class=\"suis-form-field__error\">\n <ng-container [ngTemplateOutlet]=\"errorTemplate\"></ng-container>\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-form-field{width:100%}.suis-form-field__error{color:#ff4757;margin-top:.125rem;font-size:.75rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
611
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisFormFieldComponent, isStandalone: true, selector: "suis-form-field", inputs: { errorTemplate: { classPropertyName: "errorTemplate", publicName: "errorTemplate", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"suis-form-field\">\n <ng-content></ng-content>\n @if (errorTemplate()) {\n <div class=\"suis-form-field__error\">\n <ng-container [ngTemplateOutlet]=\"errorTemplate()!\"></ng-container>\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-form-field{width:100%}.suis-form-field__error{color:#ff4757;margin-top:.125rem;font-size:.75rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
680
612
  }
681
613
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisFormFieldComponent, decorators: [{
682
614
  type: Component,
683
- args: [{ selector: 'suis-form-field', imports: [NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-form-field\">\n <ng-content></ng-content>\n @if (errorTemplate) {\n <div class=\"suis-form-field__error\">\n <ng-container [ngTemplateOutlet]=\"errorTemplate\"></ng-container>\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-form-field{width:100%}.suis-form-field__error{color:#ff4757;margin-top:.125rem;font-size:.75rem}\n"] }]
684
- }], propDecorators: { errorTemplate: [{
685
- type: Input
686
- }] } });
615
+ args: [{ selector: 'suis-form-field', imports: [NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-form-field\">\n <ng-content></ng-content>\n @if (errorTemplate()) {\n <div class=\"suis-form-field__error\">\n <ng-container [ngTemplateOutlet]=\"errorTemplate()!\"></ng-container>\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-form-field{width:100%}.suis-form-field__error{color:#ff4757;margin-top:.125rem;font-size:.75rem}\n"] }]
616
+ }] });
687
617
 
688
618
  class SuisInputBase {
689
619
  constructor() {
@@ -691,23 +621,31 @@ class SuisInputBase {
691
621
  this.cdRef = inject(ChangeDetectorRef);
692
622
  /** @internal */
693
623
  this.elRef = inject(ElementRef);
624
+ /**
625
+ * Sets HTML id attribute of the input. By default is undefined.
626
+ */
627
+ this.id = input();
628
+ /**
629
+ * Sets HTML name attribute of the input. By default is undefined.
630
+ */
631
+ this.name = input();
694
632
  /**
695
633
  * Sets input disabled state. By default set to false.
696
634
  */
697
- this.readonly = false;
635
+ this.readonly = input(false);
698
636
  /**
699
637
  * Adds invalid styling to the input. By default set to false.
700
638
  */
701
- this.invalid = false;
639
+ this.invalid = input(false);
702
640
  /**
703
641
  * Emits on value changed.
704
642
  */
705
643
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
706
- this.changed = new EventEmitter();
644
+ this.changed = output();
707
645
  /**
708
646
  * Emits on input touched.
709
647
  */
710
- this.touched = new EventEmitter();
648
+ this.touched = output();
711
649
  // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
712
650
  this._onChange = (value) => { };
713
651
  // eslint-disable-next-line @typescript-eslint/no-empty-function
@@ -728,23 +666,11 @@ class SuisInputBase {
728
666
  this.cdRef.markForCheck();
729
667
  }
730
668
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisInputBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
731
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: SuisInputBase, isStandalone: true, inputs: { id: "id", name: "name", readonly: "readonly", invalid: "invalid" }, outputs: { changed: "changed", touched: "touched" }, ngImport: i0 }); }
669
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.7", type: SuisInputBase, isStandalone: true, inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed", touched: "touched" }, ngImport: i0 }); }
732
670
  }
733
671
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisInputBase, decorators: [{
734
672
  type: Directive
735
- }], propDecorators: { id: [{
736
- type: Input
737
- }], name: [{
738
- type: Input
739
- }], readonly: [{
740
- type: Input
741
- }], invalid: [{
742
- type: Input
743
- }], changed: [{
744
- type: Output
745
- }], touched: [{
746
- type: Output
747
- }] } });
673
+ }] });
748
674
 
749
675
  class SuisInputComponent extends SuisInputBase {
750
676
  constructor() {
@@ -752,15 +678,15 @@ class SuisInputComponent extends SuisInputBase {
752
678
  /**
753
679
  * Sets input's type to one of the accepted values - type of SuisInputType. By default set to 'text'.
754
680
  */
755
- this.type = 'text';
681
+ this.type = input('text');
756
682
  /**
757
683
  * Placeholder text displayed in input. By default set to empty string.
758
684
  */
759
- this.placeholder = '';
685
+ this.placeholder = input('');
760
686
  /**
761
687
  * Emits on keydown enter input event.
762
688
  */
763
- this.enterPressed = new EventEmitter();
689
+ this.enterPressed = output();
764
690
  /** @internal */
765
691
  this.value = '';
766
692
  }
@@ -781,13 +707,13 @@ class SuisInputComponent extends SuisInputBase {
781
707
  this.enterPressed.emit();
782
708
  }
783
709
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
784
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: SuisInputComponent, isStandalone: true, selector: "suis-input", inputs: { type: "type", placeholder: "placeholder" }, outputs: { enterPressed: "enterPressed" }, providers: [
710
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: SuisInputComponent, isStandalone: true, selector: "suis-input", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { enterPressed: "enterPressed" }, providers: [
785
711
  {
786
712
  provide: NG_VALUE_ACCESSOR,
787
713
  multi: true,
788
714
  useExisting: forwardRef(() => SuisInputComponent),
789
715
  },
790
- ], usesInheritance: true, ngImport: i0, template: "<input\n class=\"suis-input\"\n [class.suis-input--invalid]=\"invalid\"\n [class.suis-input--readonly]=\"readonly\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n (keydown.enter)=\"onEnter()\"\n/>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-input{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem}.suis-input:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input--invalid{border:.0625rem solid #ff4757}.suis-input--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-input--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-input--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
716
+ ], usesInheritance: true, ngImport: i0, template: "<input\n class=\"suis-input\"\n [class.suis-input--invalid]=\"invalid()\"\n [class.suis-input--readonly]=\"readonly()\"\n [attr.id]=\"id()\"\n [attr.name]=\"name()\"\n [type]=\"type()\"\n [value]=\"value\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"readonly()\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n (keydown.enter)=\"onEnter()\"\n/>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-input{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem}.suis-input:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input--invalid{border:.0625rem solid #ff4757}.suis-input--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-input--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-input--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
791
717
  }
792
718
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisInputComponent, decorators: [{
793
719
  type: Component,
@@ -797,45 +723,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
797
723
  multi: true,
798
724
  useExisting: forwardRef(() => SuisInputComponent),
799
725
  },
800
- ], template: "<input\n class=\"suis-input\"\n [class.suis-input--invalid]=\"invalid\"\n [class.suis-input--readonly]=\"readonly\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n (keydown.enter)=\"onEnter()\"\n/>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-input{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem}.suis-input:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input--invalid{border:.0625rem solid #ff4757}.suis-input--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-input--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-input--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}\n"] }]
801
- }], propDecorators: { type: [{
802
- type: Input
803
- }], placeholder: [{
804
- type: Input
805
- }], enterPressed: [{
806
- type: Output
807
- }] } });
726
+ ], template: "<input\n class=\"suis-input\"\n [class.suis-input--invalid]=\"invalid()\"\n [class.suis-input--readonly]=\"readonly()\"\n [attr.id]=\"id()\"\n [attr.name]=\"name()\"\n [type]=\"type()\"\n [value]=\"value\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"readonly()\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n (keydown.enter)=\"onEnter()\"\n/>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-input{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem}.suis-input:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input--invalid{border:.0625rem solid #ff4757}.suis-input--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-input--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-input--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}\n"] }]
727
+ }] });
808
728
 
809
729
  class SuisLabelComponent {
810
730
  constructor() {
731
+ /**
732
+ * Sets the HTML for attribute of the label. By default is undefined.
733
+ */
734
+ this.for = input();
811
735
  /**
812
736
  * Adds a red colored asterisk after the label. By default set to false.
813
737
  */
814
- this.required = false;
738
+ this.required = input(false);
815
739
  /**
816
740
  * Shows the pointer cursor when hovered. By default set to false.
817
741
  */
818
- this.pointer = false;
742
+ this.pointer = input(false);
819
743
  /**
820
744
  * Grays out the label content and removes cursor pointer behavior. By default set to false.
821
745
  */
822
- this.readonly = false;
746
+ this.readonly = input(false);
823
747
  }
824
748
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
825
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisLabelComponent, isStandalone: true, selector: "suis-label", inputs: { for: "for", required: "required", pointer: "pointer", readonly: "readonly" }, ngImport: i0, template: "<label\n class=\"suis-label\"\n [class.suis-label--pointer]=\"!readonly && pointer\"\n [class.suis-label--readonly]=\"readonly\"\n [htmlFor]=\"for ? for : undefined\"\n>\n <ng-content></ng-content>\n @if (required) {\n <span class=\"suis-label__asterisk\">*</span>\n }\n <ng-content select=\"[suisLabelAside]\"></ng-content>\n</label>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-label{font-size:.875rem;display:flex;align-items:center}.suis-label__asterisk{color:#ff4757;margin-left:.0625rem}.suis-label--pointer{cursor:pointer}.suis-label--readonly{color:#dcdde1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
749
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisLabelComponent, isStandalone: true, selector: "suis-label", inputs: { for: { classPropertyName: "for", publicName: "for", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, pointer: { classPropertyName: "pointer", publicName: "pointer", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<label\n class=\"suis-label\"\n [class.suis-label--pointer]=\"!readonly() && pointer()\"\n [class.suis-label--readonly]=\"readonly()\"\n [htmlFor]=\"for() ? for() : undefined\"\n>\n <ng-content></ng-content>\n @if (required()) {\n <span class=\"suis-label__asterisk\">*</span>\n }\n <ng-content select=\"[suisLabelAside]\"></ng-content>\n</label>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-label{font-size:.875rem;display:flex;align-items:center}.suis-label__asterisk{color:#ff4757;margin-left:.0625rem}.suis-label--pointer{cursor:pointer}.suis-label--readonly{color:#dcdde1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
826
750
  }
827
751
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisLabelComponent, decorators: [{
828
752
  type: Component,
829
- args: [{ selector: 'suis-label', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<label\n class=\"suis-label\"\n [class.suis-label--pointer]=\"!readonly && pointer\"\n [class.suis-label--readonly]=\"readonly\"\n [htmlFor]=\"for ? for : undefined\"\n>\n <ng-content></ng-content>\n @if (required) {\n <span class=\"suis-label__asterisk\">*</span>\n }\n <ng-content select=\"[suisLabelAside]\"></ng-content>\n</label>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-label{font-size:.875rem;display:flex;align-items:center}.suis-label__asterisk{color:#ff4757;margin-left:.0625rem}.suis-label--pointer{cursor:pointer}.suis-label--readonly{color:#dcdde1}\n"] }]
830
- }], propDecorators: { for: [{
831
- type: Input
832
- }], required: [{
833
- type: Input
834
- }], pointer: [{
835
- type: Input
836
- }], readonly: [{
837
- type: Input
838
- }] } });
753
+ args: [{ selector: 'suis-label', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<label\n class=\"suis-label\"\n [class.suis-label--pointer]=\"!readonly() && pointer()\"\n [class.suis-label--readonly]=\"readonly()\"\n [htmlFor]=\"for() ? for() : undefined\"\n>\n <ng-content></ng-content>\n @if (required()) {\n <span class=\"suis-label__asterisk\">*</span>\n }\n <ng-content select=\"[suisLabelAside]\"></ng-content>\n</label>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-label{font-size:.875rem;display:flex;align-items:center}.suis-label__asterisk{color:#ff4757;margin-left:.0625rem}.suis-label--pointer{cursor:pointer}.suis-label--readonly{color:#dcdde1}\n"] }]
754
+ }] });
839
755
 
840
756
  class SuisCheckboxBase extends SuisInputBase {
841
757
  constructor() {
@@ -845,7 +761,7 @@ class SuisCheckboxBase extends SuisInputBase {
845
761
  /**
846
762
  * Adds a red colored asterisk after the label. By default set to false.
847
763
  */
848
- this.required = false;
764
+ this.required = input(false);
849
765
  }
850
766
  writeValue(obj) {
851
767
  this.value = obj;
@@ -860,13 +776,11 @@ class SuisCheckboxBase extends SuisInputBase {
860
776
  this.cdRef.markForCheck();
861
777
  }
862
778
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisCheckboxBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
863
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: SuisCheckboxBase, isStandalone: true, inputs: { required: "required" }, usesInheritance: true, ngImport: i0 }); }
779
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.7", type: SuisCheckboxBase, isStandalone: true, inputs: { required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
864
780
  }
865
781
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisCheckboxBase, decorators: [{
866
782
  type: Directive
867
- }], propDecorators: { required: [{
868
- type: Input
869
- }] } });
783
+ }] });
870
784
 
871
785
  class SuisInputCheckboxComponent extends SuisCheckboxBase {
872
786
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisInputCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
@@ -876,7 +790,7 @@ class SuisInputCheckboxComponent extends SuisCheckboxBase {
876
790
  multi: true,
877
791
  useExisting: forwardRef(() => SuisInputCheckboxComponent),
878
792
  },
879
- ], usesInheritance: true, ngImport: i0, template: "<input\n type=\"checkbox\"\n class=\"suis-input-checkbox\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [value]=\"value\"\n [disabled]=\"readonly\"\n/>\n\n<suis-label\n class=\"suis-input-checkbox__label\"\n [class.suis-input-checkbox__label--invalid]=\"invalid\"\n [class.suis-input-checkbox__label--readonly]=\"readonly\"\n [for]=\"id\"\n [required]=\"required\"\n [pointer]=\"true\"\n [readonly]=\"readonly\"\n (click)=\"onChange($event)\"\n>\n <div\n [tabindex]=\"readonly ? -1 : 0\"\n class=\"suis-input-checkbox__check\"\n [class.suis-input-checkbox__check--invalid]=\"invalid\"\n [class.suis-input-checkbox__check--readonly]=\"readonly\"\n >\n @if (value) {\n <suis-icon\n type=\"check\"\n size=\"lg\"\n [color]=\"readonly ? 'tertiary' : 'primary'\"\n ></suis-icon>\n }\n </div>\n <ng-content></ng-content>\n</suis-label>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:flex}.suis-input-checkbox{display:none}.suis-input-checkbox__label--invalid{color:#ff4757}.suis-input-checkbox__label--readonly{cursor:not-allowed}.suis-input-checkbox__check{width:1.25rem;height:1.25rem;border:.0625rem solid #dcdde1;display:flex;justify-content:center;align-items:center;margin-right:.5rem;background-color:#fff;border-radius:.25rem}.suis-input-checkbox__check:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input-checkbox__check--readonly{border:.0625rem solid #dcdde1;cursor:not-allowed}.suis-input-checkbox__check--readonly:focus{box-shadow:none}.suis-input-checkbox__check--invalid{border:.0625rem solid #ff4757;color:#ff4757}.suis-input-checkbox__check--invalid:focus{box-shadow:0 2px 5px #ff4757bf}\n"], dependencies: [{ kind: "component", type: SuisLabelComponent, selector: "suis-label", inputs: ["for", "required", "pointer", "readonly"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
793
+ ], usesInheritance: true, ngImport: i0, template: "<input\n type=\"checkbox\"\n class=\"suis-input-checkbox\"\n [attr.id]=\"id()\"\n [attr.name]=\"name()\"\n [value]=\"value\"\n [disabled]=\"readonly()\"\n/>\n\n<suis-label\n class=\"suis-input-checkbox__label\"\n [class.suis-input-checkbox__label--invalid]=\"invalid()\"\n [class.suis-input-checkbox__label--readonly]=\"readonly()\"\n [for]=\"id()\"\n [required]=\"required()\"\n [pointer]=\"true\"\n [readonly]=\"readonly()\"\n (click)=\"onChange($event)\"\n>\n <div\n [tabindex]=\"readonly() ? -1 : 0\"\n class=\"suis-input-checkbox__check\"\n [class.suis-input-checkbox__check--invalid]=\"invalid()\"\n [class.suis-input-checkbox__check--readonly]=\"readonly()\"\n >\n @if (value) {\n <suis-icon\n type=\"check\"\n size=\"lg\"\n [color]=\"readonly() ? 'tertiary' : 'primary'\"\n ></suis-icon>\n }\n </div>\n <ng-content></ng-content>\n</suis-label>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:flex}.suis-input-checkbox{display:none}.suis-input-checkbox__label--invalid{color:#ff4757}.suis-input-checkbox__label--readonly{cursor:not-allowed}.suis-input-checkbox__check{width:1.25rem;height:1.25rem;border:.0625rem solid #dcdde1;display:flex;justify-content:center;align-items:center;margin-right:.5rem;background-color:#fff;border-radius:.25rem}.suis-input-checkbox__check:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input-checkbox__check--readonly{border:.0625rem solid #dcdde1;cursor:not-allowed}.suis-input-checkbox__check--readonly:focus{box-shadow:none}.suis-input-checkbox__check--invalid{border:.0625rem solid #ff4757;color:#ff4757}.suis-input-checkbox__check--invalid:focus{box-shadow:0 2px 5px #ff4757bf}\n"], dependencies: [{ kind: "component", type: SuisLabelComponent, selector: "suis-label", inputs: ["for", "required", "pointer", "readonly"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
880
794
  }
881
795
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisInputCheckboxComponent, decorators: [{
882
796
  type: Component,
@@ -886,24 +800,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
886
800
  multi: true,
887
801
  useExisting: forwardRef(() => SuisInputCheckboxComponent),
888
802
  },
889
- ], template: "<input\n type=\"checkbox\"\n class=\"suis-input-checkbox\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [value]=\"value\"\n [disabled]=\"readonly\"\n/>\n\n<suis-label\n class=\"suis-input-checkbox__label\"\n [class.suis-input-checkbox__label--invalid]=\"invalid\"\n [class.suis-input-checkbox__label--readonly]=\"readonly\"\n [for]=\"id\"\n [required]=\"required\"\n [pointer]=\"true\"\n [readonly]=\"readonly\"\n (click)=\"onChange($event)\"\n>\n <div\n [tabindex]=\"readonly ? -1 : 0\"\n class=\"suis-input-checkbox__check\"\n [class.suis-input-checkbox__check--invalid]=\"invalid\"\n [class.suis-input-checkbox__check--readonly]=\"readonly\"\n >\n @if (value) {\n <suis-icon\n type=\"check\"\n size=\"lg\"\n [color]=\"readonly ? 'tertiary' : 'primary'\"\n ></suis-icon>\n }\n </div>\n <ng-content></ng-content>\n</suis-label>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:flex}.suis-input-checkbox{display:none}.suis-input-checkbox__label--invalid{color:#ff4757}.suis-input-checkbox__label--readonly{cursor:not-allowed}.suis-input-checkbox__check{width:1.25rem;height:1.25rem;border:.0625rem solid #dcdde1;display:flex;justify-content:center;align-items:center;margin-right:.5rem;background-color:#fff;border-radius:.25rem}.suis-input-checkbox__check:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input-checkbox__check--readonly{border:.0625rem solid #dcdde1;cursor:not-allowed}.suis-input-checkbox__check--readonly:focus{box-shadow:none}.suis-input-checkbox__check--invalid{border:.0625rem solid #ff4757;color:#ff4757}.suis-input-checkbox__check--invalid:focus{box-shadow:0 2px 5px #ff4757bf}\n"] }]
803
+ ], template: "<input\n type=\"checkbox\"\n class=\"suis-input-checkbox\"\n [attr.id]=\"id()\"\n [attr.name]=\"name()\"\n [value]=\"value\"\n [disabled]=\"readonly()\"\n/>\n\n<suis-label\n class=\"suis-input-checkbox__label\"\n [class.suis-input-checkbox__label--invalid]=\"invalid()\"\n [class.suis-input-checkbox__label--readonly]=\"readonly()\"\n [for]=\"id()\"\n [required]=\"required()\"\n [pointer]=\"true\"\n [readonly]=\"readonly()\"\n (click)=\"onChange($event)\"\n>\n <div\n [tabindex]=\"readonly() ? -1 : 0\"\n class=\"suis-input-checkbox__check\"\n [class.suis-input-checkbox__check--invalid]=\"invalid()\"\n [class.suis-input-checkbox__check--readonly]=\"readonly()\"\n >\n @if (value) {\n <suis-icon\n type=\"check\"\n size=\"lg\"\n [color]=\"readonly() ? 'tertiary' : 'primary'\"\n ></suis-icon>\n }\n </div>\n <ng-content></ng-content>\n</suis-label>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:flex}.suis-input-checkbox{display:none}.suis-input-checkbox__label--invalid{color:#ff4757}.suis-input-checkbox__label--readonly{cursor:not-allowed}.suis-input-checkbox__check{width:1.25rem;height:1.25rem;border:.0625rem solid #dcdde1;display:flex;justify-content:center;align-items:center;margin-right:.5rem;background-color:#fff;border-radius:.25rem}.suis-input-checkbox__check:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input-checkbox__check--readonly{border:.0625rem solid #dcdde1;cursor:not-allowed}.suis-input-checkbox__check--readonly:focus{box-shadow:none}.suis-input-checkbox__check--invalid{border:.0625rem solid #ff4757;color:#ff4757}.suis-input-checkbox__check--invalid:focus{box-shadow:0 2px 5px #ff4757bf}\n"] }]
890
804
  }] });
891
805
 
892
806
  class SuisInputChipsComponent extends SuisInputBase {
893
807
  constructor() {
894
808
  super(...arguments);
809
+ /** @internal */
810
+ this.inputEl = viewChild('input');
895
811
  /**
896
812
  * Placeholder text displayed in input. By default set to empty string.
897
813
  */
898
- this.placeholder = '';
814
+ this.placeholder = input('');
899
815
  /**
900
816
  * Sets the color pallette of the chips. Type of SuisColor. By default set to 'primary'.
901
817
  */
902
- this.chipColor = 'primary';
818
+ this.chipColor = input('primary');
903
819
  /**
904
820
  * Sets the color of the chips' cross icon. Type of SuisColor. By default set to 'white'.
905
821
  */
906
- this.chipIconColor = 'white';
822
+ this.chipIconColor = input('white');
907
823
  /** @internal */
908
824
  this.value = [];
909
825
  /** @internal */
@@ -931,17 +847,17 @@ class SuisInputChipsComponent extends SuisInputBase {
931
847
  this.addItem(inputValue);
932
848
  }
933
849
  onDocumentClick(event) {
934
- if (!this.inputEl?.nativeElement.contains(event.target))
850
+ if (!this.inputEl()?.nativeElement.contains(event.target))
935
851
  this.submitValue();
936
852
  }
937
853
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisInputChipsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
938
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisInputChipsComponent, isStandalone: true, selector: "suis-input-chips", inputs: { placeholder: "placeholder", chipColor: "chipColor", chipIconColor: "chipIconColor" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, providers: [
854
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisInputChipsComponent, isStandalone: true, selector: "suis-input-chips", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, chipColor: { classPropertyName: "chipColor", publicName: "chipColor", isSignal: true, isRequired: false, transformFunction: null }, chipIconColor: { classPropertyName: "chipIconColor", publicName: "chipIconColor", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, providers: [
939
855
  {
940
856
  provide: NG_VALUE_ACCESSOR,
941
857
  multi: true,
942
858
  useExisting: forwardRef(() => SuisInputChipsComponent),
943
859
  },
944
- ], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"suis-input-chips\">\n @if (!readonly) {\n <div #input class=\"suis-input-chips__input\">\n <suis-input\n [id]=\"id\"\n [name]=\"name\"\n [formControl]=\"inputControl\"\n [readonly]=\"readonly\"\n [invalid]=\"invalid\"\n [placeholder]=\"placeholder\"\n (touched)=\"onTouch()\"\n (enterPressed)=\"submitValue()\"\n ></suis-input>\n </div>\n } @if (value.length) {\n <div class=\"suis-input-chips__chips\">\n @for (item of value; track item) {\n <suis-chip\n [removable]=\"readonly ? false : true\"\n [color]=\"chipColor\"\n [iconColor]=\"chipIconColor\"\n (remove)=\"removeItem(item)\"\n >\n {{ item }}\n </suis-chip>\n }\n </div>\n }\n</div>\n", styles: [":host{display:block}.suis-input-chips__chips{margin-top:.375rem;display:flex;flex-wrap:wrap}.suis-input-chips__chips suis-chip:not(:last-child){margin-right:.25rem}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SuisChipComponent, selector: "suis-chip", inputs: ["color", "iconColor", "removable"], outputs: ["remove"] }, { kind: "component", type: SuisInputComponent, selector: "suis-input", inputs: ["type", "placeholder"], outputs: ["enterPressed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
860
+ ], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"suis-input-chips\">\n @if (!readonly()) {\n <div #input class=\"suis-input-chips__input\">\n <suis-input\n [id]=\"id()\"\n [name]=\"name()\"\n [formControl]=\"inputControl\"\n [readonly]=\"readonly()\"\n [invalid]=\"invalid()\"\n [placeholder]=\"placeholder()\"\n (touched)=\"onTouch()\"\n (enterPressed)=\"submitValue()\"\n ></suis-input>\n </div>\n } @if (value.length) {\n <div class=\"suis-input-chips__chips\">\n @for (item of value; track item) {\n <suis-chip\n [removable]=\"readonly() ? false : true\"\n [color]=\"chipColor()\"\n [iconColor]=\"chipIconColor()\"\n (remove)=\"removeItem(item)\"\n >\n {{ item }}\n </suis-chip>\n }\n </div>\n }\n</div>\n", styles: [":host{display:block}.suis-input-chips__chips{margin-top:.375rem;display:flex;flex-wrap:wrap}.suis-input-chips__chips suis-chip:not(:last-child){margin-right:.25rem}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SuisChipComponent, selector: "suis-chip", inputs: ["color", "iconColor", "removable"], outputs: ["remove"] }, { kind: "component", type: SuisInputComponent, selector: "suis-input", inputs: ["type", "placeholder"], outputs: ["enterPressed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
945
861
  }
946
862
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisInputChipsComponent, decorators: [{
947
863
  type: Component,
@@ -951,17 +867,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
951
867
  multi: true,
952
868
  useExisting: forwardRef(() => SuisInputChipsComponent),
953
869
  },
954
- ], template: "<div class=\"suis-input-chips\">\n @if (!readonly) {\n <div #input class=\"suis-input-chips__input\">\n <suis-input\n [id]=\"id\"\n [name]=\"name\"\n [formControl]=\"inputControl\"\n [readonly]=\"readonly\"\n [invalid]=\"invalid\"\n [placeholder]=\"placeholder\"\n (touched)=\"onTouch()\"\n (enterPressed)=\"submitValue()\"\n ></suis-input>\n </div>\n } @if (value.length) {\n <div class=\"suis-input-chips__chips\">\n @for (item of value; track item) {\n <suis-chip\n [removable]=\"readonly ? false : true\"\n [color]=\"chipColor\"\n [iconColor]=\"chipIconColor\"\n (remove)=\"removeItem(item)\"\n >\n {{ item }}\n </suis-chip>\n }\n </div>\n }\n</div>\n", styles: [":host{display:block}.suis-input-chips__chips{margin-top:.375rem;display:flex;flex-wrap:wrap}.suis-input-chips__chips suis-chip:not(:last-child){margin-right:.25rem}\n"] }]
955
- }], propDecorators: { inputEl: [{
956
- type: ViewChild,
957
- args: ['input']
958
- }], placeholder: [{
959
- type: Input
960
- }], chipColor: [{
961
- type: Input
962
- }], chipIconColor: [{
963
- type: Input
964
- }], onDocumentClick: [{
870
+ ], template: "<div class=\"suis-input-chips\">\n @if (!readonly()) {\n <div #input class=\"suis-input-chips__input\">\n <suis-input\n [id]=\"id()\"\n [name]=\"name()\"\n [formControl]=\"inputControl\"\n [readonly]=\"readonly()\"\n [invalid]=\"invalid()\"\n [placeholder]=\"placeholder()\"\n (touched)=\"onTouch()\"\n (enterPressed)=\"submitValue()\"\n ></suis-input>\n </div>\n } @if (value.length) {\n <div class=\"suis-input-chips__chips\">\n @for (item of value; track item) {\n <suis-chip\n [removable]=\"readonly() ? false : true\"\n [color]=\"chipColor()\"\n [iconColor]=\"chipIconColor()\"\n (remove)=\"removeItem(item)\"\n >\n {{ item }}\n </suis-chip>\n }\n </div>\n }\n</div>\n", styles: [":host{display:block}.suis-input-chips__chips{margin-top:.375rem;display:flex;flex-wrap:wrap}.suis-input-chips__chips suis-chip:not(:last-child){margin-right:.25rem}\n"] }]
871
+ }], propDecorators: { onDocumentClick: [{
965
872
  type: HostListener,
966
873
  args: ['document:click', ['$event']]
967
874
  }] } });
@@ -969,10 +876,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
969
876
  class SuisInputImageComponent extends SuisInputBase {
970
877
  constructor() {
971
878
  super(...arguments);
879
+ /** @internal */
880
+ this.fileInput = viewChild('input');
972
881
  /**
973
882
  * Emits value on FileList upload.
974
883
  */
975
- this.uploaded = new EventEmitter();
884
+ this.uploaded = output();
976
885
  /** @internal */
977
886
  this.value = null;
978
887
  /** @internal */
@@ -992,7 +901,7 @@ class SuisInputImageComponent extends SuisInputBase {
992
901
  onRemove() {
993
902
  this.imageUrl = null;
994
903
  this.value = null;
995
- (this.fileInput?.nativeElement).value = '';
904
+ (this.fileInput()?.nativeElement).value = '';
996
905
  this._onChange(this.value);
997
906
  this.changed.emit(this.value);
998
907
  this.cdRef.markForCheck();
@@ -1004,7 +913,7 @@ class SuisInputImageComponent extends SuisInputBase {
1004
913
  multi: true,
1005
914
  useExisting: forwardRef(() => SuisInputImageComponent),
1006
915
  },
1007
- ], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"suis-input-image\"\n [class.suis-input-image--invalid]=\"invalid\"\n [class.suis-input-image--readonly]=\"readonly\"\n>\n @if (imageUrl) {\n <figure class=\"suis-input-image__preview\">\n <img [src]=\"imageUrl\" alt=\"Uploaded image\" />\n <button type=\"button\" (click)=\"onRemove()\" [disabled]=\"readonly\">\n <suis-icon\n type=\"times\"\n color=\"danger\"\n size=\"md\"\n [filled]=\"true\"\n ></suis-icon>\n </button>\n </figure>\n }\n <input\n #input\n type=\"file\"\n class=\"suis-input-image__input\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n />\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-input-image{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;display:flex;align-items:center}.suis-input-image:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input-image--invalid{border:.0625rem solid #ff4757}.suis-input-image--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-input-image--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-input-image--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}.suis-input-image__preview{position:relative;margin-right:1rem}.suis-input-image__preview img{display:block;min-width:6.25rem;min-height:6.25rem;max-width:6.25rem;max-height:6.25rem;border-radius:.25rem;object-fit:contain}.suis-input-image__preview button{position:absolute;top:.1875rem;right:.1875rem;border:0;background-color:transparent;cursor:pointer}.suis-input-image--invalid{color:#ff4757}.suis-input-image__input::file-selector-button{color:#fff;background-color:#273c75;border-radius:.25rem;transition:background-color .25s ease-in-out;padding:.25rem .75rem;border:0;font-size:.75rem}.suis-input-image__input:not(:disabled)::file-selector-button:hover{background-color:#273c75d9;cursor:pointer}.suis-input-image__input:disabled::file-selector-button,.suis-input-image__input:disabled{cursor:not-allowed}\n"], dependencies: [{ kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
916
+ ], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"suis-input-image\"\n [class.suis-input-image--invalid]=\"invalid()\"\n [class.suis-input-image--readonly]=\"readonly()\"\n>\n @if (imageUrl) {\n <figure class=\"suis-input-image__preview\">\n <img [src]=\"imageUrl\" alt=\"Uploaded image\" />\n <button type=\"button\" (click)=\"onRemove()\" [disabled]=\"readonly()\">\n <suis-icon\n type=\"times\"\n color=\"danger\"\n size=\"md\"\n [filled]=\"true\"\n ></suis-icon>\n </button>\n </figure>\n }\n <input\n #input\n type=\"file\"\n class=\"suis-input-image__input\"\n [attr.id]=\"id()\"\n [attr.name]=\"name()\"\n [disabled]=\"readonly()\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n />\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-input-image{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;display:flex;align-items:center}.suis-input-image:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input-image--invalid{border:.0625rem solid #ff4757}.suis-input-image--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-input-image--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-input-image--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}.suis-input-image__preview{position:relative;margin-right:1rem}.suis-input-image__preview img{display:block;min-width:6.25rem;min-height:6.25rem;max-width:6.25rem;max-height:6.25rem;border-radius:.25rem;object-fit:contain}.suis-input-image__preview button{position:absolute;top:.1875rem;right:.1875rem;border:0;background-color:transparent;cursor:pointer}.suis-input-image--invalid{color:#ff4757}.suis-input-image__input::file-selector-button{color:#fff;background-color:#273c75;border-radius:.25rem;transition:background-color .25s ease-in-out;padding:.25rem .75rem;border:0;font-size:.75rem}.suis-input-image__input:not(:disabled)::file-selector-button:hover{background-color:#273c75d9;cursor:pointer}.suis-input-image__input:disabled::file-selector-button,.suis-input-image__input:disabled{cursor:not-allowed}\n"], dependencies: [{ kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1008
917
  }
1009
918
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisInputImageComponent, decorators: [{
1010
919
  type: Component,
@@ -1014,13 +923,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
1014
923
  multi: true,
1015
924
  useExisting: forwardRef(() => SuisInputImageComponent),
1016
925
  },
1017
- ], template: "<div\n class=\"suis-input-image\"\n [class.suis-input-image--invalid]=\"invalid\"\n [class.suis-input-image--readonly]=\"readonly\"\n>\n @if (imageUrl) {\n <figure class=\"suis-input-image__preview\">\n <img [src]=\"imageUrl\" alt=\"Uploaded image\" />\n <button type=\"button\" (click)=\"onRemove()\" [disabled]=\"readonly\">\n <suis-icon\n type=\"times\"\n color=\"danger\"\n size=\"md\"\n [filled]=\"true\"\n ></suis-icon>\n </button>\n </figure>\n }\n <input\n #input\n type=\"file\"\n class=\"suis-input-image__input\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n />\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-input-image{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;display:flex;align-items:center}.suis-input-image:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input-image--invalid{border:.0625rem solid #ff4757}.suis-input-image--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-input-image--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-input-image--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}.suis-input-image__preview{position:relative;margin-right:1rem}.suis-input-image__preview img{display:block;min-width:6.25rem;min-height:6.25rem;max-width:6.25rem;max-height:6.25rem;border-radius:.25rem;object-fit:contain}.suis-input-image__preview button{position:absolute;top:.1875rem;right:.1875rem;border:0;background-color:transparent;cursor:pointer}.suis-input-image--invalid{color:#ff4757}.suis-input-image__input::file-selector-button{color:#fff;background-color:#273c75;border-radius:.25rem;transition:background-color .25s ease-in-out;padding:.25rem .75rem;border:0;font-size:.75rem}.suis-input-image__input:not(:disabled)::file-selector-button:hover{background-color:#273c75d9;cursor:pointer}.suis-input-image__input:disabled::file-selector-button,.suis-input-image__input:disabled{cursor:not-allowed}\n"] }]
1018
- }], propDecorators: { fileInput: [{
1019
- type: ViewChild,
1020
- args: ['input']
1021
- }], uploaded: [{
1022
- type: Output
1023
- }] } });
926
+ ], template: "<div\n class=\"suis-input-image\"\n [class.suis-input-image--invalid]=\"invalid()\"\n [class.suis-input-image--readonly]=\"readonly()\"\n>\n @if (imageUrl) {\n <figure class=\"suis-input-image__preview\">\n <img [src]=\"imageUrl\" alt=\"Uploaded image\" />\n <button type=\"button\" (click)=\"onRemove()\" [disabled]=\"readonly()\">\n <suis-icon\n type=\"times\"\n color=\"danger\"\n size=\"md\"\n [filled]=\"true\"\n ></suis-icon>\n </button>\n </figure>\n }\n <input\n #input\n type=\"file\"\n class=\"suis-input-image__input\"\n [attr.id]=\"id()\"\n [attr.name]=\"name()\"\n [disabled]=\"readonly()\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n />\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-input-image{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;display:flex;align-items:center}.suis-input-image:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input-image--invalid{border:.0625rem solid #ff4757}.suis-input-image--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-input-image--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-input-image--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}.suis-input-image__preview{position:relative;margin-right:1rem}.suis-input-image__preview img{display:block;min-width:6.25rem;min-height:6.25rem;max-width:6.25rem;max-height:6.25rem;border-radius:.25rem;object-fit:contain}.suis-input-image__preview button{position:absolute;top:.1875rem;right:.1875rem;border:0;background-color:transparent;cursor:pointer}.suis-input-image--invalid{color:#ff4757}.suis-input-image__input::file-selector-button{color:#fff;background-color:#273c75;border-radius:.25rem;transition:background-color .25s ease-in-out;padding:.25rem .75rem;border:0;font-size:.75rem}.suis-input-image__input:not(:disabled)::file-selector-button:hover{background-color:#273c75d9;cursor:pointer}.suis-input-image__input:disabled::file-selector-button,.suis-input-image__input:disabled{cursor:not-allowed}\n"] }]
927
+ }] });
1024
928
 
1025
929
  class SuisInputNumberComponent extends SuisInputBase {
1026
930
  constructor() {
@@ -1028,7 +932,7 @@ class SuisInputNumberComponent extends SuisInputBase {
1028
932
  /**
1029
933
  * Placeholder text displayed in input. By default set to empty string.
1030
934
  */
1031
- this.placeholder = '';
935
+ this.placeholder = input('');
1032
936
  /** @internal */
1033
937
  this.value = null;
1034
938
  }
@@ -1046,13 +950,13 @@ class SuisInputNumberComponent extends SuisInputBase {
1046
950
  this.cdRef.markForCheck();
1047
951
  }
1048
952
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisInputNumberComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1049
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: SuisInputNumberComponent, isStandalone: true, selector: "suis-input-number", inputs: { placeholder: "placeholder" }, providers: [
953
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: SuisInputNumberComponent, isStandalone: true, selector: "suis-input-number", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
1050
954
  {
1051
955
  provide: NG_VALUE_ACCESSOR,
1052
956
  multi: true,
1053
957
  useExisting: forwardRef(() => SuisInputNumberComponent),
1054
958
  },
1055
- ], usesInheritance: true, ngImport: i0, template: "<input\n type=\"number\"\n class=\"suis-input-number\"\n [class.suis-input-number--invalid]=\"invalid\"\n [class.suis-input-number--readonly]=\"readonly\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n/>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-input-number{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;-moz-appearance:textfield}.suis-input-number:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input-number--invalid{border:.0625rem solid #ff4757}.suis-input-number--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-input-number--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-input-number--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}.suis-input-number::-webkit-outer-spin-button,.suis-input-number::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
959
+ ], usesInheritance: true, ngImport: i0, template: "<input\n type=\"number\"\n class=\"suis-input-number\"\n [class.suis-input-number--invalid]=\"invalid()\"\n [class.suis-input-number--readonly]=\"readonly()\"\n [attr.id]=\"id()\"\n [attr.name]=\"name()\"\n [value]=\"value\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"readonly()\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n/>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-input-number{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;-moz-appearance:textfield}.suis-input-number:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input-number--invalid{border:.0625rem solid #ff4757}.suis-input-number--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-input-number--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-input-number--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}.suis-input-number::-webkit-outer-spin-button,.suis-input-number::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1056
960
  }
1057
961
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisInputNumberComponent, decorators: [{
1058
962
  type: Component,
@@ -1062,39 +966,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
1062
966
  multi: true,
1063
967
  useExisting: forwardRef(() => SuisInputNumberComponent),
1064
968
  },
1065
- ], template: "<input\n type=\"number\"\n class=\"suis-input-number\"\n [class.suis-input-number--invalid]=\"invalid\"\n [class.suis-input-number--readonly]=\"readonly\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n/>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-input-number{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;-moz-appearance:textfield}.suis-input-number:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input-number--invalid{border:.0625rem solid #ff4757}.suis-input-number--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-input-number--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-input-number--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}.suis-input-number::-webkit-outer-spin-button,.suis-input-number::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
1066
- }], propDecorators: { placeholder: [{
1067
- type: Input
1068
- }] } });
969
+ ], template: "<input\n type=\"number\"\n class=\"suis-input-number\"\n [class.suis-input-number--invalid]=\"invalid()\"\n [class.suis-input-number--readonly]=\"readonly()\"\n [attr.id]=\"id()\"\n [attr.name]=\"name()\"\n [value]=\"value\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"readonly()\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n/>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-input-number{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;-moz-appearance:textfield}.suis-input-number:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input-number--invalid{border:.0625rem solid #ff4757}.suis-input-number--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-input-number--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-input-number--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}.suis-input-number::-webkit-outer-spin-button,.suis-input-number::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
970
+ }] });
1069
971
 
1070
972
  class SuisInputRadioComponent extends RadioControlValueAccessor {
1071
973
  constructor() {
1072
974
  super(...arguments);
975
+ /** @internal */
976
+ this.radioInput = viewChild('input');
977
+ /**
978
+ * Sets HTML id attribute of the input. By default is undefined.
979
+ */
980
+ this.id = input.required();
1073
981
  /**
1074
982
  * Sets input disabled state. By default set to false.
1075
983
  */
1076
- this.readonly = false;
984
+ this.readonly = input(false);
1077
985
  /**
1078
986
  * Adds invalid styling to the input. By default set to false.
1079
987
  */
1080
- this.invalid = false;
988
+ this.invalid = input(false);
1081
989
  /**
1082
990
  * Sets input checked state to true. By default set to false.
1083
991
  */
1084
- this.default = false;
992
+ this.default = input(false);
1085
993
  }
1086
994
  ngAfterViewInit() {
1087
- if (this.default)
1088
- (this.radioInput?.nativeElement).checked = true;
995
+ if (this.default())
996
+ (this.radioInput()?.nativeElement).checked = true;
1089
997
  }
1090
998
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisInputRadioComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1091
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: SuisInputRadioComponent, isStandalone: true, selector: "suis-input-radio", inputs: { id: "id", readonly: "readonly", invalid: "invalid", default: "default" }, providers: [
999
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.7", type: SuisInputRadioComponent, isStandalone: true, selector: "suis-input-radio", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, default: { classPropertyName: "default", publicName: "default", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
1092
1000
  {
1093
1001
  provide: NG_VALUE_ACCESSOR,
1094
1002
  multi: true,
1095
1003
  useExisting: forwardRef(() => SuisInputRadioComponent),
1096
1004
  },
1097
- ], viewQueries: [{ propertyName: "radioInput", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<input\n #input\n type=\"radio\"\n class=\"suis-input-radio\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [value]=\"value\"\n [disabled]=\"readonly\"\n/>\n\n<suis-label\n class=\"suis-input-radio__label\"\n [class.suis-input-radio__label--invalid]=\"invalid\"\n [class.suis-input-radio__label--readonly]=\"readonly\"\n [for]=\"id\"\n [pointer]=\"true\"\n [readonly]=\"readonly\"\n>\n <div\n [tabindex]=\"readonly ? -1 : 0\"\n class=\"suis-input-radio__circle\"\n [class.suis-input-radio__circle--invalid]=\"invalid\"\n [class.suis-input-radio__circle--readonly]=\"readonly\"\n >\n <div class=\"suis-input-radio__circle__fill\"></div>\n </div>\n <ng-content></ng-content>\n</suis-label>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:flex}.suis-input-radio{display:none}.suis-input-radio:checked~suis-label ::ng-deep .suis-input-radio__circle{border:.0625rem solid #192a56}.suis-input-radio:checked~suis-label ::ng-deep .suis-input-radio__circle__fill{border-radius:100%;height:.75rem;width:.75rem;background-color:#273c75}.suis-input-radio:checked~suis-label ::ng-deep .suis-input-radio__circle--readonly{border:.0625rem solid #dcdde1}.suis-input-radio:checked~suis-label ::ng-deep .suis-input-radio__circle--readonly .suis-input-radio__circle__fill{background-color:#dcdde1}.suis-input-radio__label--invalid{color:#ff4757}.suis-input-radio__label--readonly{cursor:not-allowed}.suis-input-radio__circle{margin-right:.5rem;border:.0625rem solid #dcdde1;border-radius:100%;height:1.25rem;width:1.25rem;display:flex;justify-content:center;align-items:center}.suis-input-radio__circle:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input-radio__circle--readonly{border:.0625rem solid #dcdde1;cursor:not-allowed}.suis-input-radio__circle--readonly:focus{box-shadow:none}.suis-input-radio__circle--invalid{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}\n"], dependencies: [{ kind: "component", type: SuisLabelComponent, selector: "suis-label", inputs: ["for", "required", "pointer", "readonly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1005
+ ], viewQueries: [{ propertyName: "radioInput", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<input\n #input\n type=\"radio\"\n class=\"suis-input-radio\"\n [attr.id]=\"id()\"\n [attr.name]=\"name\"\n [value]=\"value\"\n [disabled]=\"readonly()\"\n/>\n\n<suis-label\n class=\"suis-input-radio__label\"\n [class.suis-input-radio__label--invalid]=\"invalid()\"\n [class.suis-input-radio__label--readonly]=\"readonly()\"\n [for]=\"id()\"\n [pointer]=\"true\"\n [readonly]=\"readonly()\"\n>\n <div\n [tabindex]=\"readonly() ? -1 : 0\"\n class=\"suis-input-radio__circle\"\n [class.suis-input-radio__circle--invalid]=\"invalid()\"\n [class.suis-input-radio__circle--readonly]=\"readonly()\"\n >\n <div class=\"suis-input-radio__circle__fill\"></div>\n </div>\n <ng-content></ng-content>\n</suis-label>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:flex}.suis-input-radio{display:none}.suis-input-radio:checked~suis-label ::ng-deep .suis-input-radio__circle{border:.0625rem solid #192a56}.suis-input-radio:checked~suis-label ::ng-deep .suis-input-radio__circle__fill{border-radius:100%;height:.75rem;width:.75rem;background-color:#273c75}.suis-input-radio:checked~suis-label ::ng-deep .suis-input-radio__circle--readonly{border:.0625rem solid #dcdde1}.suis-input-radio:checked~suis-label ::ng-deep .suis-input-radio__circle--readonly .suis-input-radio__circle__fill{background-color:#dcdde1}.suis-input-radio__label--invalid{color:#ff4757}.suis-input-radio__label--readonly{cursor:not-allowed}.suis-input-radio__circle{margin-right:.5rem;border:.0625rem solid #dcdde1;border-radius:100%;height:1.25rem;width:1.25rem;display:flex;justify-content:center;align-items:center}.suis-input-radio__circle:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input-radio__circle--readonly{border:.0625rem solid #dcdde1;cursor:not-allowed}.suis-input-radio__circle--readonly:focus{box-shadow:none}.suis-input-radio__circle--invalid{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}\n"], dependencies: [{ kind: "component", type: SuisLabelComponent, selector: "suis-label", inputs: ["for", "required", "pointer", "readonly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1098
1006
  }
1099
1007
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisInputRadioComponent, decorators: [{
1100
1008
  type: Component,
@@ -1104,77 +1012,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
1104
1012
  multi: true,
1105
1013
  useExisting: forwardRef(() => SuisInputRadioComponent),
1106
1014
  },
1107
- ], template: "<input\n #input\n type=\"radio\"\n class=\"suis-input-radio\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [value]=\"value\"\n [disabled]=\"readonly\"\n/>\n\n<suis-label\n class=\"suis-input-radio__label\"\n [class.suis-input-radio__label--invalid]=\"invalid\"\n [class.suis-input-radio__label--readonly]=\"readonly\"\n [for]=\"id\"\n [pointer]=\"true\"\n [readonly]=\"readonly\"\n>\n <div\n [tabindex]=\"readonly ? -1 : 0\"\n class=\"suis-input-radio__circle\"\n [class.suis-input-radio__circle--invalid]=\"invalid\"\n [class.suis-input-radio__circle--readonly]=\"readonly\"\n >\n <div class=\"suis-input-radio__circle__fill\"></div>\n </div>\n <ng-content></ng-content>\n</suis-label>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:flex}.suis-input-radio{display:none}.suis-input-radio:checked~suis-label ::ng-deep .suis-input-radio__circle{border:.0625rem solid #192a56}.suis-input-radio:checked~suis-label ::ng-deep .suis-input-radio__circle__fill{border-radius:100%;height:.75rem;width:.75rem;background-color:#273c75}.suis-input-radio:checked~suis-label ::ng-deep .suis-input-radio__circle--readonly{border:.0625rem solid #dcdde1}.suis-input-radio:checked~suis-label ::ng-deep .suis-input-radio__circle--readonly .suis-input-radio__circle__fill{background-color:#dcdde1}.suis-input-radio__label--invalid{color:#ff4757}.suis-input-radio__label--readonly{cursor:not-allowed}.suis-input-radio__circle{margin-right:.5rem;border:.0625rem solid #dcdde1;border-radius:100%;height:1.25rem;width:1.25rem;display:flex;justify-content:center;align-items:center}.suis-input-radio__circle:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input-radio__circle--readonly{border:.0625rem solid #dcdde1;cursor:not-allowed}.suis-input-radio__circle--readonly:focus{box-shadow:none}.suis-input-radio__circle--invalid{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}\n"] }]
1108
- }], propDecorators: { radioInput: [{
1109
- type: ViewChild,
1110
- args: ['input']
1111
- }], id: [{
1112
- type: Input,
1113
- args: [{ required: true }]
1114
- }], readonly: [{
1115
- type: Input
1116
- }], invalid: [{
1117
- type: Input
1118
- }], default: [{
1119
- type: Input
1120
- }] } });
1015
+ ], template: "<input\n #input\n type=\"radio\"\n class=\"suis-input-radio\"\n [attr.id]=\"id()\"\n [attr.name]=\"name\"\n [value]=\"value\"\n [disabled]=\"readonly()\"\n/>\n\n<suis-label\n class=\"suis-input-radio__label\"\n [class.suis-input-radio__label--invalid]=\"invalid()\"\n [class.suis-input-radio__label--readonly]=\"readonly()\"\n [for]=\"id()\"\n [pointer]=\"true\"\n [readonly]=\"readonly()\"\n>\n <div\n [tabindex]=\"readonly() ? -1 : 0\"\n class=\"suis-input-radio__circle\"\n [class.suis-input-radio__circle--invalid]=\"invalid()\"\n [class.suis-input-radio__circle--readonly]=\"readonly()\"\n >\n <div class=\"suis-input-radio__circle__fill\"></div>\n </div>\n <ng-content></ng-content>\n</suis-label>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:flex}.suis-input-radio{display:none}.suis-input-radio:checked~suis-label ::ng-deep .suis-input-radio__circle{border:.0625rem solid #192a56}.suis-input-radio:checked~suis-label ::ng-deep .suis-input-radio__circle__fill{border-radius:100%;height:.75rem;width:.75rem;background-color:#273c75}.suis-input-radio:checked~suis-label ::ng-deep .suis-input-radio__circle--readonly{border:.0625rem solid #dcdde1}.suis-input-radio:checked~suis-label ::ng-deep .suis-input-radio__circle--readonly .suis-input-radio__circle__fill{background-color:#dcdde1}.suis-input-radio__label--invalid{color:#ff4757}.suis-input-radio__label--readonly{cursor:not-allowed}.suis-input-radio__circle{margin-right:.5rem;border:.0625rem solid #dcdde1;border-radius:100%;height:1.25rem;width:1.25rem;display:flex;justify-content:center;align-items:center}.suis-input-radio__circle:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input-radio__circle--readonly{border:.0625rem solid #dcdde1;cursor:not-allowed}.suis-input-radio__circle--readonly:focus{box-shadow:none}.suis-input-radio__circle--invalid{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}\n"] }]
1016
+ }] });
1121
1017
 
1122
1018
  class SuisItemComponent {
1123
1019
  constructor() {
1124
1020
  /**
1125
1021
  * Adds a padding around the content. By default set to true.
1126
1022
  */
1127
- this.spacing = true;
1023
+ this.spacing = input(true);
1128
1024
  /**
1129
1025
  * Styles item as a header. By default set to false.
1130
1026
  */
1131
- this.header = false;
1027
+ this.header = input(false);
1132
1028
  /**
1133
1029
  * Displays border bottom below the item. Does not effect header item. By default set to true.
1134
1030
  */
1135
- this.divider = true;
1031
+ this.divider = input(true);
1136
1032
  }
1137
1033
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1138
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: SuisItemComponent, isStandalone: true, selector: "suis-item", inputs: { spacing: "spacing", header: "header", divider: "divider" }, ngImport: i0, template: "<div\n class=\"suis-item\"\n [class.suis-item--spacing]=\"spacing\"\n [class.suis-item--header]=\"header\"\n [class.suis-item--divider]=\"divider && !header\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-item{background-color:#fff;border:0}.suis-item--spacing{padding:1rem}.suis-item--divider{border-bottom:.0625rem solid #dcdde1}.suis-item--header{font-weight:500;display:flex;color:#192a56;justify-content:center;align-items:center;border-bottom:.1875rem solid #192a56}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1034
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: SuisItemComponent, isStandalone: true, selector: "suis-item", inputs: { spacing: { classPropertyName: "spacing", publicName: "spacing", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, divider: { classPropertyName: "divider", publicName: "divider", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"suis-item\"\n [class.suis-item--spacing]=\"spacing()\"\n [class.suis-item--header]=\"header()\"\n [class.suis-item--divider]=\"divider() && !header()\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-item{background-color:#fff;border:0}.suis-item--spacing{padding:1rem}.suis-item--divider{border-bottom:.0625rem solid #dcdde1}.suis-item--header{font-weight:500;display:flex;color:#192a56;justify-content:center;align-items:center;border-bottom:.1875rem solid #192a56}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1139
1035
  }
1140
1036
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisItemComponent, decorators: [{
1141
1037
  type: Component,
1142
- args: [{ selector: 'suis-item', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"suis-item\"\n [class.suis-item--spacing]=\"spacing\"\n [class.suis-item--header]=\"header\"\n [class.suis-item--divider]=\"divider && !header\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-item{background-color:#fff;border:0}.suis-item--spacing{padding:1rem}.suis-item--divider{border-bottom:.0625rem solid #dcdde1}.suis-item--header{font-weight:500;display:flex;color:#192a56;justify-content:center;align-items:center;border-bottom:.1875rem solid #192a56}\n"] }]
1143
- }], propDecorators: { spacing: [{
1144
- type: Input
1145
- }], header: [{
1146
- type: Input
1147
- }], divider: [{
1148
- type: Input
1149
- }] } });
1038
+ args: [{ selector: 'suis-item', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"suis-item\"\n [class.suis-item--spacing]=\"spacing()\"\n [class.suis-item--header]=\"header()\"\n [class.suis-item--divider]=\"divider() && !header()\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-item{background-color:#fff;border:0}.suis-item--spacing{padding:1rem}.suis-item--divider{border-bottom:.0625rem solid #dcdde1}.suis-item--header{font-weight:500;display:flex;color:#192a56;justify-content:center;align-items:center;border-bottom:.1875rem solid #192a56}\n"] }]
1039
+ }] });
1150
1040
 
1151
1041
  class SuisNotificationComponent {
1152
1042
  constructor() {
1153
1043
  /**
1154
1044
  * Notification item data. Type of SuisNotification.
1155
1045
  */
1156
- this.notification = null;
1046
+ this.notification = input.required();
1157
1047
  /**
1158
1048
  * Emits on close button action.
1159
1049
  */
1160
- this.closed = new EventEmitter();
1050
+ this.closed = output();
1161
1051
  }
1162
1052
  onClose() {
1163
- this.notification = null;
1164
1053
  this.closed.emit();
1165
1054
  }
1166
1055
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1167
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisNotificationComponent, isStandalone: true, selector: "suis-notification", inputs: { notification: "notification" }, outputs: { closed: "closed" }, ngImport: i0, template: "@if (notification) {\n<div\n class=\"suis-notification\"\n [ngClass]=\"'suis-notification' | suisNgClass : notification.type\"\n>\n <div class=\"suis-notification__header\">\n <span>\n {{ notification.header }}\n </span>\n <button\n class=\"suis-notification__header__close\"\n type=\"button\"\n (click)=\"onClose()\"\n >\n <suis-icon type=\"times\" [color]=\"'white'\" [size]=\"'lg'\"></suis-icon>\n </button>\n </div>\n <div class=\"suis-notification__message\">\n {{ notification.message }}\n </div>\n</div>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-notification{min-width:16.25rem;max-width:16.25rem;padding:1rem;border-radius:.25rem;color:#fff;position:relative;font-size:.875rem}.suis-notification--success{background-color:#2ed573}.suis-notification--warning{background-color:#ffa502}.suis-notification--danger{background-color:#ff4757}.suis-notification__header{display:flex;align-items:center;justify-content:space-between;font-size:1rem;font-weight:700;margin-bottom:.75rem}.suis-notification__header__close{background-color:transparent;border:none;cursor:pointer}.suis-notification__header__close:hover{opacity:.75}.suis-notification__message{font-size:.875rem}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1056
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisNotificationComponent, isStandalone: true, selector: "suis-notification", inputs: { notification: { classPropertyName: "notification", publicName: "notification", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { closed: "closed" }, ngImport: i0, template: "@if (notification()) {\n<div\n class=\"suis-notification\"\n [ngClass]=\"'suis-notification' | suisNgClass : notification()!.type\"\n>\n <div class=\"suis-notification__header\">\n <span>\n {{ notification()!.header }}\n </span>\n <button\n class=\"suis-notification__header__close\"\n type=\"button\"\n (click)=\"onClose()\"\n >\n <suis-icon type=\"times\" [color]=\"'white'\" [size]=\"'lg'\"></suis-icon>\n </button>\n </div>\n <div class=\"suis-notification__message\">\n {{ notification()!.message }}\n </div>\n</div>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-notification{min-width:16.25rem;max-width:16.25rem;padding:1rem;border-radius:.25rem;color:#fff;position:relative;font-size:.875rem}.suis-notification--success{background-color:#2ed573}.suis-notification--warning{background-color:#ffa502}.suis-notification--danger{background-color:#ff4757}.suis-notification__header{display:flex;align-items:center;justify-content:space-between;font-size:1rem;font-weight:700;margin-bottom:.75rem}.suis-notification__header__close{background-color:transparent;border:none;cursor:pointer}.suis-notification__header__close:hover{opacity:.75}.suis-notification__message{font-size:.875rem}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1168
1057
  }
1169
1058
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisNotificationComponent, decorators: [{
1170
1059
  type: Component,
1171
- args: [{ selector: 'suis-notification', imports: [NgClass, SuisNgClassPipe, SuisIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (notification) {\n<div\n class=\"suis-notification\"\n [ngClass]=\"'suis-notification' | suisNgClass : notification.type\"\n>\n <div class=\"suis-notification__header\">\n <span>\n {{ notification.header }}\n </span>\n <button\n class=\"suis-notification__header__close\"\n type=\"button\"\n (click)=\"onClose()\"\n >\n <suis-icon type=\"times\" [color]=\"'white'\" [size]=\"'lg'\"></suis-icon>\n </button>\n </div>\n <div class=\"suis-notification__message\">\n {{ notification.message }}\n </div>\n</div>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-notification{min-width:16.25rem;max-width:16.25rem;padding:1rem;border-radius:.25rem;color:#fff;position:relative;font-size:.875rem}.suis-notification--success{background-color:#2ed573}.suis-notification--warning{background-color:#ffa502}.suis-notification--danger{background-color:#ff4757}.suis-notification__header{display:flex;align-items:center;justify-content:space-between;font-size:1rem;font-weight:700;margin-bottom:.75rem}.suis-notification__header__close{background-color:transparent;border:none;cursor:pointer}.suis-notification__header__close:hover{opacity:.75}.suis-notification__message{font-size:.875rem}\n"] }]
1172
- }], propDecorators: { notification: [{
1173
- type: Input,
1174
- args: [{ required: true }]
1175
- }], closed: [{
1176
- type: Output
1177
- }] } });
1060
+ args: [{ selector: 'suis-notification', imports: [NgClass, SuisNgClassPipe, SuisIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (notification()) {\n<div\n class=\"suis-notification\"\n [ngClass]=\"'suis-notification' | suisNgClass : notification()!.type\"\n>\n <div class=\"suis-notification__header\">\n <span>\n {{ notification()!.header }}\n </span>\n <button\n class=\"suis-notification__header__close\"\n type=\"button\"\n (click)=\"onClose()\"\n >\n <suis-icon type=\"times\" [color]=\"'white'\" [size]=\"'lg'\"></suis-icon>\n </button>\n </div>\n <div class=\"suis-notification__message\">\n {{ notification()!.message }}\n </div>\n</div>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-notification{min-width:16.25rem;max-width:16.25rem;padding:1rem;border-radius:.25rem;color:#fff;position:relative;font-size:.875rem}.suis-notification--success{background-color:#2ed573}.suis-notification--warning{background-color:#ffa502}.suis-notification--danger{background-color:#ff4757}.suis-notification__header{display:flex;align-items:center;justify-content:space-between;font-size:1rem;font-weight:700;margin-bottom:.75rem}.suis-notification__header__close{background-color:transparent;border:none;cursor:pointer}.suis-notification__header__close:hover{opacity:.75}.suis-notification__message{font-size:.875rem}\n"] }]
1061
+ }] });
1178
1062
 
1179
1063
  class SuisNotificationsComponent {
1180
1064
  constructor() {
@@ -1272,53 +1156,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
1272
1156
 
1273
1157
  class SuisSelectOptionComponent {
1274
1158
  constructor() {
1159
+ /**
1160
+ * Option data. Type of SuisSelectOption. Required input.
1161
+ */
1162
+ this.option = input.required();
1163
+ /**
1164
+ * Template to be displayed instead of option's label.
1165
+ */
1166
+ this.templateRef = input();
1275
1167
  /**
1276
1168
  * Option value property name in options. By default set to 'value'.
1277
1169
  */
1278
- this.optionValue = 'value';
1170
+ this.optionValue = input('value');
1279
1171
  /**
1280
1172
  * Option label property name in options. By default set to 'label'.
1281
1173
  */
1282
- this.optionLabel = 'label';
1174
+ this.optionLabel = input('label');
1283
1175
  /**
1284
1176
  * Adds checkmark icon to checkbox (if checkbox input set to true). By default set to false.
1285
1177
  */
1286
- this.selected = false;
1178
+ this.selected = input(false);
1287
1179
  /**
1288
1180
  * Display checkbox next to option label. By default set to true.
1289
1181
  */
1290
- this.checkbox = true;
1182
+ this.checkbox = input(true);
1291
1183
  /**
1292
1184
  * Emits on option selected.
1293
1185
  */
1294
- this.clicked = new EventEmitter();
1186
+ this.clicked = output();
1295
1187
  }
1296
1188
  /** @internal */
1297
1189
  onClick() {
1298
1190
  this.clicked.emit();
1299
1191
  }
1300
1192
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1301
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisSelectOptionComponent, isStandalone: true, selector: "suis-select-option", inputs: { option: "option", templateRef: "templateRef", optionValue: "optionValue", optionLabel: "optionLabel", selected: "selected", checkbox: "checkbox" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<button\n class=\"suis-select-option\"\n type=\"button\"\n tabindex=\"-1\"\n (click)=\"onClick()\"\n>\n @if (checkbox) {\n <span\n class=\"suis-select-option__checkbox\"\n [class.suis-select-option__checkbox--selected]=\"selected\"\n >\n @if (selected) {\n <suis-icon [bold]=\"true\" color=\"primary\" type=\"check\" size=\"sm\"></suis-icon>\n }\n </span>\n }\n <span class=\"suis-select-option__label\">\n @if (templateRef) {\n <ng-container\n *ngTemplateOutlet=\"templateRef; context: { $implicit: option }\"\n ></ng-container>\n } @else {\n {{ option ? option[optionLabel] : '' }}\n }\n <ng-template #label>\n {{ option ? option[optionLabel] : '' }}\n </ng-template>\n </span>\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-option{width:100%;display:flex;align-items:center;background-color:transparent;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;cursor:pointer}.suis-select-option:hover{background-color:#f5f6fa}.suis-select-option__checkbox{min-width:1.125rem;min-height:1.125rem;border:.0625rem solid #dcdde1;margin-right:.75rem;display:flex;justify-content:center;align-items:center}.suis-select-option__checkbox--selected{border:.0625rem solid #bcbcbc}.suis-select-option__label{display:flex;justify-content:left;align-items:center;text-align:left;font-size:.875rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1193
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisSelectOptionComponent, isStandalone: true, selector: "suis-select-option", inputs: { option: { classPropertyName: "option", publicName: "option", isSignal: true, isRequired: true, transformFunction: null }, templateRef: { classPropertyName: "templateRef", publicName: "templateRef", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, checkbox: { classPropertyName: "checkbox", publicName: "checkbox", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<button\n class=\"suis-select-option\"\n type=\"button\"\n tabindex=\"-1\"\n (click)=\"onClick()\"\n>\n @if (checkbox()) {\n <span\n class=\"suis-select-option__checkbox\"\n [class.suis-select-option__checkbox--selected]=\"selected()\"\n >\n @if (selected()) {\n <suis-icon [bold]=\"true\" color=\"primary\" type=\"check\" size=\"sm\"></suis-icon>\n }\n </span>\n }\n <span class=\"suis-select-option__label\">\n @if (templateRef()) {\n <ng-container\n *ngTemplateOutlet=\"templateRef()!; context: { $implicit: option() }\"\n ></ng-container>\n } @else {\n {{ option() ? option()![optionLabel()] : '' }}\n }\n <ng-template #label>\n {{ option() ? option()![optionLabel()] : '' }}\n </ng-template>\n </span>\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-option{width:100%;display:flex;align-items:center;background-color:transparent;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;cursor:pointer}.suis-select-option:hover{background-color:#f5f6fa}.suis-select-option__checkbox{min-width:1.125rem;min-height:1.125rem;border:.0625rem solid #dcdde1;margin-right:.75rem;display:flex;justify-content:center;align-items:center}.suis-select-option__checkbox--selected{border:.0625rem solid #bcbcbc}.suis-select-option__label{display:flex;justify-content:left;align-items:center;text-align:left;font-size:.875rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1302
1194
  }
1303
1195
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectOptionComponent, decorators: [{
1304
1196
  type: Component,
1305
- args: [{ selector: 'suis-select-option', imports: [NgTemplateOutlet, SuisIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n class=\"suis-select-option\"\n type=\"button\"\n tabindex=\"-1\"\n (click)=\"onClick()\"\n>\n @if (checkbox) {\n <span\n class=\"suis-select-option__checkbox\"\n [class.suis-select-option__checkbox--selected]=\"selected\"\n >\n @if (selected) {\n <suis-icon [bold]=\"true\" color=\"primary\" type=\"check\" size=\"sm\"></suis-icon>\n }\n </span>\n }\n <span class=\"suis-select-option__label\">\n @if (templateRef) {\n <ng-container\n *ngTemplateOutlet=\"templateRef; context: { $implicit: option }\"\n ></ng-container>\n } @else {\n {{ option ? option[optionLabel] : '' }}\n }\n <ng-template #label>\n {{ option ? option[optionLabel] : '' }}\n </ng-template>\n </span>\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-option{width:100%;display:flex;align-items:center;background-color:transparent;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;cursor:pointer}.suis-select-option:hover{background-color:#f5f6fa}.suis-select-option__checkbox{min-width:1.125rem;min-height:1.125rem;border:.0625rem solid #dcdde1;margin-right:.75rem;display:flex;justify-content:center;align-items:center}.suis-select-option__checkbox--selected{border:.0625rem solid #bcbcbc}.suis-select-option__label{display:flex;justify-content:left;align-items:center;text-align:left;font-size:.875rem}\n"] }]
1306
- }], propDecorators: { option: [{
1307
- type: Input,
1308
- args: [{ required: true }]
1309
- }], templateRef: [{
1310
- type: Input
1311
- }], optionValue: [{
1312
- type: Input
1313
- }], optionLabel: [{
1314
- type: Input
1315
- }], selected: [{
1316
- type: Input
1317
- }], checkbox: [{
1318
- type: Input
1319
- }], clicked: [{
1320
- type: Output
1321
- }] } });
1197
+ args: [{ selector: 'suis-select-option', imports: [NgTemplateOutlet, SuisIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n class=\"suis-select-option\"\n type=\"button\"\n tabindex=\"-1\"\n (click)=\"onClick()\"\n>\n @if (checkbox()) {\n <span\n class=\"suis-select-option__checkbox\"\n [class.suis-select-option__checkbox--selected]=\"selected()\"\n >\n @if (selected()) {\n <suis-icon [bold]=\"true\" color=\"primary\" type=\"check\" size=\"sm\"></suis-icon>\n }\n </span>\n }\n <span class=\"suis-select-option__label\">\n @if (templateRef()) {\n <ng-container\n *ngTemplateOutlet=\"templateRef()!; context: { $implicit: option() }\"\n ></ng-container>\n } @else {\n {{ option() ? option()![optionLabel()] : '' }}\n }\n <ng-template #label>\n {{ option() ? option()![optionLabel()] : '' }}\n </ng-template>\n </span>\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-option{width:100%;display:flex;align-items:center;background-color:transparent;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;cursor:pointer}.suis-select-option:hover{background-color:#f5f6fa}.suis-select-option__checkbox{min-width:1.125rem;min-height:1.125rem;border:.0625rem solid #dcdde1;margin-right:.75rem;display:flex;justify-content:center;align-items:center}.suis-select-option__checkbox--selected{border:.0625rem solid #bcbcbc}.suis-select-option__label{display:flex;justify-content:left;align-items:center;text-align:left;font-size:.875rem}\n"] }]
1198
+ }] });
1322
1199
 
1323
1200
  class SuisSelectSortOptionsPipe {
1324
1201
  transform(options, optionLabel, sortOptions) {
@@ -1366,28 +1243,28 @@ class SuisSelectButtonBase {
1366
1243
  /**
1367
1244
  * Sets the readonly state of select button. By default set to false.
1368
1245
  */
1369
- this.readonly = false;
1246
+ this.readonly = input(false);
1370
1247
  /**
1371
1248
  * Sets the invalid state of select button. By default set to false.
1372
1249
  */
1373
- this.invalid = false;
1250
+ this.invalid = input(false);
1374
1251
  /**
1375
1252
  * Allows to clear the select value by using cross icon in button. By default set to false.
1376
1253
  */
1377
- this.clearable = false;
1254
+ this.clearable = input(false);
1378
1255
  /**
1379
1256
  * Indicates if select content is expanded and styles chevron accordingly. By default set to false.
1380
1257
  */
1381
- this.expanded = false;
1258
+ this.expanded = input(false);
1382
1259
  /**
1383
1260
  * Emits on button click.
1384
1261
  */
1385
- this.expandedChange = new EventEmitter();
1262
+ this.expandedChange = output();
1386
1263
  /**
1387
1264
  * Emits on button cross icon click.
1388
1265
  */
1389
1266
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1390
- this.cleared = new EventEmitter();
1267
+ this.cleared = output();
1391
1268
  }
1392
1269
  onExpand() {
1393
1270
  this.expandedChange.emit();
@@ -1397,31 +1274,19 @@ class SuisSelectButtonBase {
1397
1274
  this.cleared.emit(event);
1398
1275
  }
1399
1276
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectButtonBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1400
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: SuisSelectButtonBase, isStandalone: true, inputs: { readonly: "readonly", invalid: "invalid", clearable: "clearable", expanded: "expanded" }, outputs: { expandedChange: "expandedChange", cleared: "cleared" }, ngImport: i0 }); }
1277
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.7", type: SuisSelectButtonBase, isStandalone: true, inputs: { readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expandedChange: "expandedChange", cleared: "cleared" }, ngImport: i0 }); }
1401
1278
  }
1402
1279
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectButtonBase, decorators: [{
1403
1280
  type: Directive
1404
- }], propDecorators: { readonly: [{
1405
- type: Input
1406
- }], invalid: [{
1407
- type: Input
1408
- }], clearable: [{
1409
- type: Input
1410
- }], expanded: [{
1411
- type: Input
1412
- }], expandedChange: [{
1413
- type: Output
1414
- }], cleared: [{
1415
- type: Output
1416
- }] } });
1281
+ }] });
1417
1282
 
1418
1283
  class SuisSelectButtonComponent extends SuisSelectButtonBase {
1419
1284
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1420
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisSelectButtonComponent, isStandalone: true, selector: "suis-select-button", usesInheritance: true, ngImport: i0, template: "<button\n type=\"button\"\n (click)=\"onExpand()\"\n class=\"suis-select-button\"\n [class.suis-select-button--invalid]=\"invalid\"\n [class.suis-select-button--readonly]=\"readonly\"\n [disabled]=\"readonly\"\n>\n <span class=\"suis-select-button__value\">\n <ng-content></ng-content>\n </span>\n <span class=\"suis-select-button__actions\">\n @if (clearable && !readonly) {\n <suis-icon\n class=\"suis-select-button__cross\"\n type=\"times\"\n size=\"lg\"\n color=\"primary\"\n (click)=\"onClear($event)\"\n ></suis-icon>\n }\n <suis-icon\n class=\"suis-select-button__chevron\"\n [type]=\"expanded ? 'chevron-up' : 'chevron-down'\"\n size=\"lg\"\n color=\"primary\"\n ></suis-icon>\n </span>\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-button{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;min-width:5rem;position:relative;display:flex;align-items:center;justify-content:space-between;padding:.25rem .5rem .25rem 1rem;cursor:pointer}.suis-select-button:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-select-button--invalid{border:.0625rem solid #ff4757}.suis-select-button--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-select-button--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-select-button--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}.suis-select-button__value{width:100%;text-align:left;text-overflow:ellipsis;text-wrap:nowrap;overflow:hidden}.suis-select-button__actions{margin-left:.25rem;display:flex;justify-content:right;align-items:center}\n"], dependencies: [{ kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1285
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisSelectButtonComponent, isStandalone: true, selector: "suis-select-button", usesInheritance: true, ngImport: i0, template: "<button\n type=\"button\"\n (click)=\"onExpand()\"\n class=\"suis-select-button\"\n [class.suis-select-button--invalid]=\"invalid()\"\n [class.suis-select-button--readonly]=\"readonly()\"\n [disabled]=\"readonly()\"\n>\n <span class=\"suis-select-button__value\">\n <ng-content></ng-content>\n </span>\n <span class=\"suis-select-button__actions\">\n @if (clearable() && !readonly()) {\n <suis-icon\n class=\"suis-select-button__cross\"\n type=\"times\"\n size=\"lg\"\n color=\"primary\"\n (click)=\"onClear($event)\"\n ></suis-icon>\n }\n <suis-icon\n class=\"suis-select-button__chevron\"\n [type]=\"expanded() ? 'chevron-up' : 'chevron-down'\"\n size=\"lg\"\n color=\"primary\"\n ></suis-icon>\n </span>\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-button{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;min-width:5rem;position:relative;display:flex;align-items:center;justify-content:space-between;padding:.25rem .5rem .25rem 1rem;cursor:pointer}.suis-select-button:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-select-button--invalid{border:.0625rem solid #ff4757}.suis-select-button--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-select-button--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-select-button--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}.suis-select-button__value{width:100%;text-align:left;text-overflow:ellipsis;text-wrap:nowrap;overflow:hidden}.suis-select-button__actions{margin-left:.25rem;display:flex;justify-content:right;align-items:center}\n"], dependencies: [{ kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1421
1286
  }
1422
1287
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectButtonComponent, decorators: [{
1423
1288
  type: Component,
1424
- args: [{ selector: 'suis-select-button', imports: [SuisIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n (click)=\"onExpand()\"\n class=\"suis-select-button\"\n [class.suis-select-button--invalid]=\"invalid\"\n [class.suis-select-button--readonly]=\"readonly\"\n [disabled]=\"readonly\"\n>\n <span class=\"suis-select-button__value\">\n <ng-content></ng-content>\n </span>\n <span class=\"suis-select-button__actions\">\n @if (clearable && !readonly) {\n <suis-icon\n class=\"suis-select-button__cross\"\n type=\"times\"\n size=\"lg\"\n color=\"primary\"\n (click)=\"onClear($event)\"\n ></suis-icon>\n }\n <suis-icon\n class=\"suis-select-button__chevron\"\n [type]=\"expanded ? 'chevron-up' : 'chevron-down'\"\n size=\"lg\"\n color=\"primary\"\n ></suis-icon>\n </span>\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-button{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;min-width:5rem;position:relative;display:flex;align-items:center;justify-content:space-between;padding:.25rem .5rem .25rem 1rem;cursor:pointer}.suis-select-button:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-select-button--invalid{border:.0625rem solid #ff4757}.suis-select-button--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-select-button--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-select-button--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}.suis-select-button__value{width:100%;text-align:left;text-overflow:ellipsis;text-wrap:nowrap;overflow:hidden}.suis-select-button__actions{margin-left:.25rem;display:flex;justify-content:right;align-items:center}\n"] }]
1289
+ args: [{ selector: 'suis-select-button', imports: [SuisIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n (click)=\"onExpand()\"\n class=\"suis-select-button\"\n [class.suis-select-button--invalid]=\"invalid()\"\n [class.suis-select-button--readonly]=\"readonly()\"\n [disabled]=\"readonly()\"\n>\n <span class=\"suis-select-button__value\">\n <ng-content></ng-content>\n </span>\n <span class=\"suis-select-button__actions\">\n @if (clearable() && !readonly()) {\n <suis-icon\n class=\"suis-select-button__cross\"\n type=\"times\"\n size=\"lg\"\n color=\"primary\"\n (click)=\"onClear($event)\"\n ></suis-icon>\n }\n <suis-icon\n class=\"suis-select-button__chevron\"\n [type]=\"expanded() ? 'chevron-up' : 'chevron-down'\"\n size=\"lg\"\n color=\"primary\"\n ></suis-icon>\n </span>\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-button{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;min-width:5rem;position:relative;display:flex;align-items:center;justify-content:space-between;padding:.25rem .5rem .25rem 1rem;cursor:pointer}.suis-select-button:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-select-button--invalid{border:.0625rem solid #ff4757}.suis-select-button--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-select-button--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-select-button--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}.suis-select-button__value{width:100%;text-align:left;text-overflow:ellipsis;text-wrap:nowrap;overflow:hidden}.suis-select-button__actions{margin-left:.25rem;display:flex;justify-content:right;align-items:center}\n"] }]
1425
1290
  }] });
1426
1291
 
1427
1292
  class SuisSelectOptionDirective {
@@ -1446,41 +1311,45 @@ class SuisSelectBase extends SuisInputBase {
1446
1311
  constructor() {
1447
1312
  super(...arguments);
1448
1313
  /** @internal */
1314
+ this.suisSelectOption = contentChild(SuisSelectOptionDirective);
1315
+ /** @internal */
1316
+ this.searchInput = viewChild('searchInput');
1317
+ /** @internal */
1449
1318
  this.searchPhrase = '';
1450
1319
  /** @internal */
1451
1320
  this.expanded = false; // TODO: Remove
1452
1321
  /**
1453
1322
  * Options displayed in dropdown list. Type of SuisSelectOption[].
1454
1323
  */
1455
- this.options = [];
1324
+ this.options = input([]);
1456
1325
  /**
1457
1326
  * Defines way of sorting options. Type of SuisSortOptional. By default set to 'asc'.
1458
1327
  */
1459
- this.sortOptions = 'asc';
1328
+ this.sortOptions = input('asc');
1460
1329
  /**
1461
1330
  * Displays search input above options. By default set to true.
1462
1331
  */
1463
- this.search = true;
1332
+ this.search = input(true);
1464
1333
  /**
1465
1334
  * Placeholder text displayed in options search. By default set to 'Search...'.
1466
1335
  */
1467
- this.searchPlaceholder = 'Search...';
1336
+ this.searchPlaceholder = input('Search...');
1468
1337
  /**
1469
1338
  * Placeholder text displayed when value is not selected. By default set to 'Select option...'.
1470
1339
  */
1471
- this.placeholder = 'Select option...';
1340
+ this.placeholder = input('Select option...');
1472
1341
  /**
1473
1342
  * Option value property name in options. By default set to 'value'.
1474
1343
  */
1475
- this.optionValue = 'value';
1344
+ this.optionValue = input('value');
1476
1345
  /**
1477
1346
  * Option label property name in options. By default set to 'label'.
1478
1347
  */
1479
- this.optionLabel = 'label';
1348
+ this.optionLabel = input('label');
1480
1349
  /**
1481
1350
  * Emits on search phrase changed.
1482
1351
  */
1483
- this.searchPhraseChanged = new EventEmitter();
1352
+ this.searchPhraseChanged = output();
1484
1353
  }
1485
1354
  onClear(event) {
1486
1355
  this.clearValue();
@@ -1499,7 +1368,7 @@ class SuisSelectBase extends SuisInputBase {
1499
1368
  this.searchPhrase = '';
1500
1369
  if (this.expanded)
1501
1370
  setTimeout(() => {
1502
- this.searchInput?.nativeElement.focus();
1371
+ this.searchInput()?.nativeElement.focus();
1503
1372
  }, 0);
1504
1373
  }
1505
1374
  onDocumentClick(event) {
@@ -1509,36 +1378,14 @@ class SuisSelectBase extends SuisInputBase {
1509
1378
  }
1510
1379
  /** @internal */
1511
1380
  optionTrackBy(index, option) {
1512
- return `${JSON.stringify(option[this.optionValue])}`;
1381
+ return `${JSON.stringify(option[this.optionValue()])}`;
1513
1382
  }
1514
1383
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
1515
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: SuisSelectBase, isStandalone: true, inputs: { options: "options", sortOptions: "sortOptions", search: "search", searchPlaceholder: "searchPlaceholder", placeholder: "placeholder", optionValue: "optionValue", optionLabel: "optionLabel" }, outputs: { searchPhraseChanged: "searchPhraseChanged" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, queries: [{ propertyName: "suisSelectOption", first: true, predicate: SuisSelectOptionDirective, descendants: true }], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], usesInheritance: true, ngImport: i0 }); }
1384
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.0.7", type: SuisSelectBase, isStandalone: true, inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, sortOptions: { classPropertyName: "sortOptions", publicName: "sortOptions", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchPhraseChanged: "searchPhraseChanged" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, queries: [{ propertyName: "suisSelectOption", first: true, predicate: SuisSelectOptionDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 }); }
1516
1385
  }
1517
1386
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectBase, decorators: [{
1518
1387
  type: Directive
1519
- }], propDecorators: { suisSelectOption: [{
1520
- type: ContentChild,
1521
- args: [SuisSelectOptionDirective]
1522
- }], searchInput: [{
1523
- type: ViewChild,
1524
- args: ['searchInput', { static: false }]
1525
- }], options: [{
1526
- type: Input
1527
- }], sortOptions: [{
1528
- type: Input
1529
- }], search: [{
1530
- type: Input
1531
- }], searchPlaceholder: [{
1532
- type: Input
1533
- }], placeholder: [{
1534
- type: Input
1535
- }], optionValue: [{
1536
- type: Input
1537
- }], optionLabel: [{
1538
- type: Input
1539
- }], searchPhraseChanged: [{
1540
- type: Output
1541
- }], onDocumentClick: [{
1388
+ }], propDecorators: { onDocumentClick: [{
1542
1389
  type: HostListener,
1543
1390
  args: ['document:click', ['$event']]
1544
1391
  }] } });
@@ -1551,7 +1398,7 @@ class SuisSelectSingleBase extends SuisSelectBase {
1551
1398
  /**
1552
1399
  * Allows mechanism of clearing value. By default set to true.
1553
1400
  */
1554
- this.nullable = true;
1401
+ this.nullable = input(true);
1555
1402
  }
1556
1403
  writeValue(obj) {
1557
1404
  this.value = obj;
@@ -1560,7 +1407,7 @@ class SuisSelectSingleBase extends SuisSelectBase {
1560
1407
  }
1561
1408
  onSelect(value) {
1562
1409
  if (JSON.stringify(this.value) === JSON.stringify(value)) {
1563
- if (this.nullable)
1410
+ if (this.nullable())
1564
1411
  this.clearValue();
1565
1412
  }
1566
1413
  else {
@@ -1574,17 +1421,15 @@ class SuisSelectSingleBase extends SuisSelectBase {
1574
1421
  this.value = value;
1575
1422
  this.toggle(false);
1576
1423
  this._onChange(this.value);
1577
- this.changed.emit();
1424
+ this.changed.emit(this.value);
1578
1425
  this.cdRef.markForCheck();
1579
1426
  }
1580
1427
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectSingleBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
1581
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: SuisSelectSingleBase, isStandalone: true, inputs: { nullable: "nullable" }, usesInheritance: true, ngImport: i0 }); }
1428
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.7", type: SuisSelectSingleBase, isStandalone: true, inputs: { nullable: { classPropertyName: "nullable", publicName: "nullable", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
1582
1429
  }
1583
1430
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectSingleBase, decorators: [{
1584
1431
  type: Directive
1585
- }], propDecorators: { nullable: [{
1586
- type: Input
1587
- }] } });
1432
+ }] });
1588
1433
 
1589
1434
  class SuisSelectComponent extends SuisSelectSingleBase {
1590
1435
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
@@ -1594,7 +1439,7 @@ class SuisSelectComponent extends SuisSelectSingleBase {
1594
1439
  multi: true,
1595
1440
  useExisting: forwardRef(() => SuisSelectComponent),
1596
1441
  },
1597
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"suis-select\">\n <suis-select-button\n [invalid]=\"invalid\"\n [readonly]=\"readonly\"\n [clearable]=\"!!(nullable && value)\"\n [expanded]=\"expanded\"\n (expandedChange)=\"onExpand()\"\n (cleared)=\"onClear($event)\"\n >\n {{\n value\n | suisSelectLabel : options : placeholder : optionValue : optionLabel\n }}\n </suis-select-button>\n @if (expanded) {\n <div class=\"suis-select__list\">\n @if (search) {\n <input\n #searchInput\n [ngModel]=\"searchPhrase\"\n (ngModelChange)=\"onSearchPhraseChange($event)\"\n class=\"suis-select__list__search\"\n type=\"search\"\n [placeholder]=\"searchPlaceholder\"\n />\n } @for ( option of options | suisSelectSortOptions : optionLabel :\n sortOptions | suisSelectFilterOptions : searchPhrase : optionLabel; track\n optionTrackBy($index, option)) {\n <suis-select-option\n [option]=\"option\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [templateRef]=\"suisSelectOption?.templateRef\"\n [selected]=\"option[optionValue] | suisSelectIsSelected : value\"\n (clicked)=\"onSelect(option[optionValue])\"\n ></suis-select-option>\n }\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select{position:relative}.suis-select__list{position:absolute;z-index:10;background-color:#fff;box-shadow:0 2px 5px #00000040;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;width:100%;top:2.625rem;left:0;max-height:13.375rem;overflow-y:auto}.suis-select__list::-webkit-scrollbar{width:.5rem}.suis-select__list::-webkit-scrollbar-track{background:#f5f6fa}.suis-select__list::-webkit-scrollbar-thumb{background:#dcdde1}.suis-select__list::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-select__list__search{width:100%;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}.suis-select__list__search:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SuisSelectOptionComponent, selector: "suis-select-option", inputs: ["option", "templateRef", "optionValue", "optionLabel", "selected", "checkbox"], outputs: ["clicked"] }, { kind: "component", type: SuisSelectButtonComponent, selector: "suis-select-button" }, { kind: "pipe", type: SuisSelectLabelPipe, name: "suisSelectLabel" }, { kind: "pipe", type: SuisSelectIsSelectedPipe, name: "suisSelectIsSelected" }, { kind: "pipe", type: SuisSelectSortOptionsPipe, name: "suisSelectSortOptions" }, { kind: "pipe", type: SuisSelectFilterOptionsPipe, name: "suisSelectFilterOptions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1442
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"suis-select\">\n <suis-select-button\n [invalid]=\"invalid()\"\n [readonly]=\"readonly()\"\n [clearable]=\"!!(nullable() && value)\"\n [expanded]=\"expanded\"\n (expandedChange)=\"onExpand()\"\n (cleared)=\"onClear($event)\"\n >\n {{\n value\n | suisSelectLabel\n : options()\n : placeholder()\n : optionValue()\n : optionLabel()\n }}\n </suis-select-button>\n @if (expanded) {\n <div class=\"suis-select__list\">\n @if (search()) {\n <input\n #searchInput\n [ngModel]=\"searchPhrase\"\n (ngModelChange)=\"onSearchPhraseChange($event)\"\n class=\"suis-select__list__search\"\n type=\"search\"\n [placeholder]=\"searchPlaceholder()\"\n />\n } @for ( option of options() | suisSelectSortOptions : optionLabel() :\n sortOptions() | suisSelectFilterOptions : searchPhrase : optionLabel();\n track optionTrackBy($index, option)) {\n <suis-select-option\n [option]=\"option\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n [templateRef]=\"suisSelectOption()?.templateRef\"\n [selected]=\"option[optionValue()] | suisSelectIsSelected : value\"\n (clicked)=\"onSelect(option[optionValue()])\"\n ></suis-select-option>\n }\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select{position:relative}.suis-select__list{position:absolute;z-index:10;background-color:#fff;box-shadow:0 2px 5px #00000040;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;width:100%;top:2.625rem;left:0;max-height:13.375rem;overflow-y:auto}.suis-select__list::-webkit-scrollbar{width:.5rem}.suis-select__list::-webkit-scrollbar-track{background:#f5f6fa}.suis-select__list::-webkit-scrollbar-thumb{background:#dcdde1}.suis-select__list::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-select__list__search{width:100%;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}.suis-select__list__search:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SuisSelectOptionComponent, selector: "suis-select-option", inputs: ["option", "templateRef", "optionValue", "optionLabel", "selected", "checkbox"], outputs: ["clicked"] }, { kind: "component", type: SuisSelectButtonComponent, selector: "suis-select-button" }, { kind: "pipe", type: SuisSelectLabelPipe, name: "suisSelectLabel" }, { kind: "pipe", type: SuisSelectIsSelectedPipe, name: "suisSelectIsSelected" }, { kind: "pipe", type: SuisSelectSortOptionsPipe, name: "suisSelectSortOptions" }, { kind: "pipe", type: SuisSelectFilterOptionsPipe, name: "suisSelectFilterOptions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1598
1443
  }
1599
1444
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectComponent, decorators: [{
1600
1445
  type: Component,
@@ -1612,22 +1457,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
1612
1457
  multi: true,
1613
1458
  useExisting: forwardRef(() => SuisSelectComponent),
1614
1459
  },
1615
- ], template: "<div class=\"suis-select\">\n <suis-select-button\n [invalid]=\"invalid\"\n [readonly]=\"readonly\"\n [clearable]=\"!!(nullable && value)\"\n [expanded]=\"expanded\"\n (expandedChange)=\"onExpand()\"\n (cleared)=\"onClear($event)\"\n >\n {{\n value\n | suisSelectLabel : options : placeholder : optionValue : optionLabel\n }}\n </suis-select-button>\n @if (expanded) {\n <div class=\"suis-select__list\">\n @if (search) {\n <input\n #searchInput\n [ngModel]=\"searchPhrase\"\n (ngModelChange)=\"onSearchPhraseChange($event)\"\n class=\"suis-select__list__search\"\n type=\"search\"\n [placeholder]=\"searchPlaceholder\"\n />\n } @for ( option of options | suisSelectSortOptions : optionLabel :\n sortOptions | suisSelectFilterOptions : searchPhrase : optionLabel; track\n optionTrackBy($index, option)) {\n <suis-select-option\n [option]=\"option\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [templateRef]=\"suisSelectOption?.templateRef\"\n [selected]=\"option[optionValue] | suisSelectIsSelected : value\"\n (clicked)=\"onSelect(option[optionValue])\"\n ></suis-select-option>\n }\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select{position:relative}.suis-select__list{position:absolute;z-index:10;background-color:#fff;box-shadow:0 2px 5px #00000040;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;width:100%;top:2.625rem;left:0;max-height:13.375rem;overflow-y:auto}.suis-select__list::-webkit-scrollbar{width:.5rem}.suis-select__list::-webkit-scrollbar-track{background:#f5f6fa}.suis-select__list::-webkit-scrollbar-thumb{background:#dcdde1}.suis-select__list::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-select__list__search{width:100%;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}.suis-select__list__search:focus{outline:none}\n"] }]
1460
+ ], template: "<div class=\"suis-select\">\n <suis-select-button\n [invalid]=\"invalid()\"\n [readonly]=\"readonly()\"\n [clearable]=\"!!(nullable() && value)\"\n [expanded]=\"expanded\"\n (expandedChange)=\"onExpand()\"\n (cleared)=\"onClear($event)\"\n >\n {{\n value\n | suisSelectLabel\n : options()\n : placeholder()\n : optionValue()\n : optionLabel()\n }}\n </suis-select-button>\n @if (expanded) {\n <div class=\"suis-select__list\">\n @if (search()) {\n <input\n #searchInput\n [ngModel]=\"searchPhrase\"\n (ngModelChange)=\"onSearchPhraseChange($event)\"\n class=\"suis-select__list__search\"\n type=\"search\"\n [placeholder]=\"searchPlaceholder()\"\n />\n } @for ( option of options() | suisSelectSortOptions : optionLabel() :\n sortOptions() | suisSelectFilterOptions : searchPhrase : optionLabel();\n track optionTrackBy($index, option)) {\n <suis-select-option\n [option]=\"option\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n [templateRef]=\"suisSelectOption()?.templateRef\"\n [selected]=\"option[optionValue()] | suisSelectIsSelected : value\"\n (clicked)=\"onSelect(option[optionValue()])\"\n ></suis-select-option>\n }\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select{position:relative}.suis-select__list{position:absolute;z-index:10;background-color:#fff;box-shadow:0 2px 5px #00000040;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;width:100%;top:2.625rem;left:0;max-height:13.375rem;overflow-y:auto}.suis-select__list::-webkit-scrollbar{width:.5rem}.suis-select__list::-webkit-scrollbar-track{background:#f5f6fa}.suis-select__list::-webkit-scrollbar-thumb{background:#dcdde1}.suis-select__list::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-select__list__search{width:100%;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}.suis-select__list__search:focus{outline:none}\n"] }]
1616
1461
  }] });
1617
1462
 
1618
1463
  class SuisSelectGroupOptionComponent {
1464
+ constructor() {
1465
+ /**
1466
+ * Item data. Type of SuisSelectGroupOption. Required input.
1467
+ */
1468
+ this.option = input.required();
1469
+ /**
1470
+ * Template to be displayed instead of item's label.
1471
+ */
1472
+ this.templateRef = input();
1473
+ }
1619
1474
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectGroupOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1620
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisSelectGroupOptionComponent, isStandalone: true, selector: "suis-select-group-option", inputs: { option: "option", templateRef: "templateRef" }, ngImport: i0, template: "<div class=\"suis-select-group-option\">\n @if (templateRef) {\n <ng-container\n *ngTemplateOutlet=\"templateRef; context: { $implicit: option }\"\n ></ng-container>\n } @else {\n {{ option?.label }}\n }\n <ng-template #label>\n {{ option?.label }}\n </ng-template>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-group-option{width:100%;display:flex;align-items:center;justify-content:left;text-align:left;background-color:#f5f6fa;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1475
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisSelectGroupOptionComponent, isStandalone: true, selector: "suis-select-group-option", inputs: { option: { classPropertyName: "option", publicName: "option", isSignal: true, isRequired: true, transformFunction: null }, templateRef: { classPropertyName: "templateRef", publicName: "templateRef", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"suis-select-group-option\">\n @if (templateRef()) {\n <ng-container\n *ngTemplateOutlet=\"templateRef()!; context: { $implicit: option() }\"\n ></ng-container>\n } @else {\n {{ option()?.label }}\n }\n <ng-template #label>\n {{ option()?.label }}\n </ng-template>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-group-option{width:100%;display:flex;align-items:center;justify-content:left;text-align:left;background-color:#f5f6fa;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1621
1476
  }
1622
1477
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectGroupOptionComponent, decorators: [{
1623
1478
  type: Component,
1624
- args: [{ selector: 'suis-select-group-option', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-select-group-option\">\n @if (templateRef) {\n <ng-container\n *ngTemplateOutlet=\"templateRef; context: { $implicit: option }\"\n ></ng-container>\n } @else {\n {{ option?.label }}\n }\n <ng-template #label>\n {{ option?.label }}\n </ng-template>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-group-option{width:100%;display:flex;align-items:center;justify-content:left;text-align:left;background-color:#f5f6fa;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}\n"] }]
1625
- }], propDecorators: { option: [{
1626
- type: Input,
1627
- args: [{ required: true }]
1628
- }], templateRef: [{
1629
- type: Input
1630
- }] } });
1479
+ args: [{ selector: 'suis-select-group-option', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-select-group-option\">\n @if (templateRef()) {\n <ng-container\n *ngTemplateOutlet=\"templateRef()!; context: { $implicit: option() }\"\n ></ng-container>\n } @else {\n {{ option()?.label }}\n }\n <ng-template #label>\n {{ option()?.label }}\n </ng-template>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-group-option{width:100%;display:flex;align-items:center;justify-content:left;text-align:left;background-color:#f5f6fa;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}\n"] }]
1480
+ }] });
1631
1481
 
1632
1482
  class SuisSelectFilterGroupOptionsPipe {
1633
1483
  transform(groupOptions, phrase, optionLabel) {
@@ -1714,19 +1564,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
1714
1564
  class SuisSelectGroupComponent extends SuisSelectSingleBase {
1715
1565
  constructor() {
1716
1566
  super(...arguments);
1567
+ /** @internal */
1568
+ this.suisSelectGroupOption = contentChild(SuisSelectGroupOptionDirective);
1717
1569
  /**
1718
1570
  * Group options displayed in dropdown list. Type of SuisSelectGroupOption[].
1719
1571
  */
1720
- this.groupOptions = [];
1572
+ this.groupOptions = input([]);
1721
1573
  }
1722
1574
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1723
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisSelectGroupComponent, isStandalone: true, selector: "suis-select-group", inputs: { groupOptions: "groupOptions" }, providers: [
1575
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisSelectGroupComponent, isStandalone: true, selector: "suis-select-group", inputs: { groupOptions: { classPropertyName: "groupOptions", publicName: "groupOptions", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
1724
1576
  {
1725
1577
  provide: NG_VALUE_ACCESSOR,
1726
1578
  multi: true,
1727
1579
  useExisting: forwardRef(() => SuisSelectGroupComponent),
1728
1580
  },
1729
- ], queries: [{ propertyName: "suisSelectGroupOption", first: true, predicate: SuisSelectGroupOptionDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"suis-select-group\">\n <suis-select-button\n [invalid]=\"invalid\"\n [readonly]=\"readonly\"\n [clearable]=\"!!(nullable && value)\"\n [expanded]=\"expanded\"\n (expandedChange)=\"onExpand()\"\n (cleared)=\"onClear($event)\"\n >\n {{\n value\n | suisSelectGroupLabel\n : groupOptions\n : placeholder\n : optionValue\n : optionLabel\n }}\n </suis-select-button>\n @if (expanded) {\n <div class=\"suis-select-group__list\">\n @if (search) {\n <input\n #searchInput\n [ngModel]=\"searchPhrase\"\n (ngModelChange)=\"onSearchPhraseChange($event)\"\n class=\"suis-select-group__list__search\"\n type=\"search\"\n [placeholder]=\"searchPlaceholder\"\n />\n } @for ( group of groupOptions | suisSelectSortGroupOptions : sortOptions |\n suisSelectFilterGroupOptions : searchPhrase : optionLabel ; track group) {\n <suis-select-group-option\n [option]=\"group\"\n [templateRef]=\"suisSelectGroupOption?.templateRef\"\n ></suis-select-group-option>\n @for ( option of group.children | suisSelectSortOptions : optionLabel :\n sortOptions | suisSelectFilterOptions : searchPhrase : optionLabel; track\n optionTrackBy($index, option)) {\n <suis-select-option\n [option]=\"option\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [templateRef]=\"suisSelectOption?.templateRef\"\n [selected]=\"option[optionValue] | suisSelectIsSelected : value\"\n (clicked)=\"onSelect(option[optionValue])\"\n ></suis-select-option>\n } }\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-group{position:relative}.suis-select-group__list{position:absolute;z-index:10;background-color:#fff;box-shadow:0 2px 5px #00000040;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;width:100%;top:2.625rem;left:0;max-height:13.375rem;overflow-y:auto;max-height:15.25rem}.suis-select-group__list::-webkit-scrollbar{width:.5rem}.suis-select-group__list::-webkit-scrollbar-track{background:#f5f6fa}.suis-select-group__list::-webkit-scrollbar-thumb{background:#dcdde1}.suis-select-group__list::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-select-group__list__search{width:100%;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}.suis-select-group__list__search:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SuisSelectOptionComponent, selector: "suis-select-option", inputs: ["option", "templateRef", "optionValue", "optionLabel", "selected", "checkbox"], outputs: ["clicked"] }, { kind: "component", type: SuisSelectGroupOptionComponent, selector: "suis-select-group-option", inputs: ["option", "templateRef"] }, { kind: "pipe", type: SuisSelectIsSelectedPipe, name: "suisSelectIsSelected" }, { kind: "pipe", type: SuisSelectSortOptionsPipe, name: "suisSelectSortOptions" }, { kind: "pipe", type: SuisSelectFilterOptionsPipe, name: "suisSelectFilterOptions" }, { kind: "pipe", type: SuisSelectFilterGroupOptionsPipe, name: "suisSelectFilterGroupOptions" }, { kind: "pipe", type: SuisSelectGroupLabelPipe, name: "suisSelectGroupLabel" }, { kind: "component", type: SuisSelectButtonComponent, selector: "suis-select-button" }, { kind: "pipe", type: SuisSelectSortGroupOptionsPipe, name: "suisSelectSortGroupOptions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1581
+ ], queries: [{ propertyName: "suisSelectGroupOption", first: true, predicate: SuisSelectGroupOptionDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"suis-select-group\">\n <suis-select-button\n [invalid]=\"invalid()\"\n [readonly]=\"readonly()\"\n [clearable]=\"!!(nullable() && value)\"\n [expanded]=\"expanded\"\n (expandedChange)=\"onExpand()\"\n (cleared)=\"onClear($event)\"\n >\n {{\n value\n | suisSelectGroupLabel\n : groupOptions()\n : placeholder()\n : optionValue()\n : optionLabel()\n }}\n </suis-select-button>\n @if (expanded) {\n <div class=\"suis-select-group__list\">\n @if (search()) {\n <input\n #searchInput\n [ngModel]=\"searchPhrase\"\n (ngModelChange)=\"onSearchPhraseChange($event)\"\n class=\"suis-select-group__list__search\"\n type=\"search\"\n [placeholder]=\"searchPlaceholder()\"\n />\n } @for ( group of groupOptions() | suisSelectSortGroupOptions :\n sortOptions() | suisSelectFilterGroupOptions : searchPhrase : optionLabel()\n ; track group) {\n <suis-select-group-option\n [option]=\"group\"\n [templateRef]=\"suisSelectGroupOption()?.templateRef\"\n ></suis-select-group-option>\n @for ( option of group.children | suisSelectSortOptions : optionLabel() :\n sortOptions() | suisSelectFilterOptions : searchPhrase : optionLabel();\n track optionTrackBy($index, option)) {\n <suis-select-option\n [option]=\"option\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n [templateRef]=\"suisSelectOption()?.templateRef\"\n [selected]=\"option[optionValue()] | suisSelectIsSelected : value\"\n (clicked)=\"onSelect(option[optionValue()])\"\n ></suis-select-option>\n } }\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-group{position:relative}.suis-select-group__list{position:absolute;z-index:10;background-color:#fff;box-shadow:0 2px 5px #00000040;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;width:100%;top:2.625rem;left:0;max-height:13.375rem;overflow-y:auto;max-height:15.25rem}.suis-select-group__list::-webkit-scrollbar{width:.5rem}.suis-select-group__list::-webkit-scrollbar-track{background:#f5f6fa}.suis-select-group__list::-webkit-scrollbar-thumb{background:#dcdde1}.suis-select-group__list::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-select-group__list__search{width:100%;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}.suis-select-group__list__search:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SuisSelectOptionComponent, selector: "suis-select-option", inputs: ["option", "templateRef", "optionValue", "optionLabel", "selected", "checkbox"], outputs: ["clicked"] }, { kind: "component", type: SuisSelectGroupOptionComponent, selector: "suis-select-group-option", inputs: ["option", "templateRef"] }, { kind: "pipe", type: SuisSelectIsSelectedPipe, name: "suisSelectIsSelected" }, { kind: "pipe", type: SuisSelectSortOptionsPipe, name: "suisSelectSortOptions" }, { kind: "pipe", type: SuisSelectFilterOptionsPipe, name: "suisSelectFilterOptions" }, { kind: "pipe", type: SuisSelectFilterGroupOptionsPipe, name: "suisSelectFilterGroupOptions" }, { kind: "pipe", type: SuisSelectGroupLabelPipe, name: "suisSelectGroupLabel" }, { kind: "component", type: SuisSelectButtonComponent, selector: "suis-select-button" }, { kind: "pipe", type: SuisSelectSortGroupOptionsPipe, name: "suisSelectSortGroupOptions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1730
1582
  }
1731
1583
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectGroupComponent, decorators: [{
1732
1584
  type: Component,
@@ -1747,13 +1599,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
1747
1599
  multi: true,
1748
1600
  useExisting: forwardRef(() => SuisSelectGroupComponent),
1749
1601
  },
1750
- ], template: "<div class=\"suis-select-group\">\n <suis-select-button\n [invalid]=\"invalid\"\n [readonly]=\"readonly\"\n [clearable]=\"!!(nullable && value)\"\n [expanded]=\"expanded\"\n (expandedChange)=\"onExpand()\"\n (cleared)=\"onClear($event)\"\n >\n {{\n value\n | suisSelectGroupLabel\n : groupOptions\n : placeholder\n : optionValue\n : optionLabel\n }}\n </suis-select-button>\n @if (expanded) {\n <div class=\"suis-select-group__list\">\n @if (search) {\n <input\n #searchInput\n [ngModel]=\"searchPhrase\"\n (ngModelChange)=\"onSearchPhraseChange($event)\"\n class=\"suis-select-group__list__search\"\n type=\"search\"\n [placeholder]=\"searchPlaceholder\"\n />\n } @for ( group of groupOptions | suisSelectSortGroupOptions : sortOptions |\n suisSelectFilterGroupOptions : searchPhrase : optionLabel ; track group) {\n <suis-select-group-option\n [option]=\"group\"\n [templateRef]=\"suisSelectGroupOption?.templateRef\"\n ></suis-select-group-option>\n @for ( option of group.children | suisSelectSortOptions : optionLabel :\n sortOptions | suisSelectFilterOptions : searchPhrase : optionLabel; track\n optionTrackBy($index, option)) {\n <suis-select-option\n [option]=\"option\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [templateRef]=\"suisSelectOption?.templateRef\"\n [selected]=\"option[optionValue] | suisSelectIsSelected : value\"\n (clicked)=\"onSelect(option[optionValue])\"\n ></suis-select-option>\n } }\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-group{position:relative}.suis-select-group__list{position:absolute;z-index:10;background-color:#fff;box-shadow:0 2px 5px #00000040;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;width:100%;top:2.625rem;left:0;max-height:13.375rem;overflow-y:auto;max-height:15.25rem}.suis-select-group__list::-webkit-scrollbar{width:.5rem}.suis-select-group__list::-webkit-scrollbar-track{background:#f5f6fa}.suis-select-group__list::-webkit-scrollbar-thumb{background:#dcdde1}.suis-select-group__list::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-select-group__list__search{width:100%;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}.suis-select-group__list__search:focus{outline:none}\n"] }]
1751
- }], propDecorators: { suisSelectGroupOption: [{
1752
- type: ContentChild,
1753
- args: [SuisSelectGroupOptionDirective]
1754
- }], groupOptions: [{
1755
- type: Input
1756
- }] } });
1602
+ ], template: "<div class=\"suis-select-group\">\n <suis-select-button\n [invalid]=\"invalid()\"\n [readonly]=\"readonly()\"\n [clearable]=\"!!(nullable() && value)\"\n [expanded]=\"expanded\"\n (expandedChange)=\"onExpand()\"\n (cleared)=\"onClear($event)\"\n >\n {{\n value\n | suisSelectGroupLabel\n : groupOptions()\n : placeholder()\n : optionValue()\n : optionLabel()\n }}\n </suis-select-button>\n @if (expanded) {\n <div class=\"suis-select-group__list\">\n @if (search()) {\n <input\n #searchInput\n [ngModel]=\"searchPhrase\"\n (ngModelChange)=\"onSearchPhraseChange($event)\"\n class=\"suis-select-group__list__search\"\n type=\"search\"\n [placeholder]=\"searchPlaceholder()\"\n />\n } @for ( group of groupOptions() | suisSelectSortGroupOptions :\n sortOptions() | suisSelectFilterGroupOptions : searchPhrase : optionLabel()\n ; track group) {\n <suis-select-group-option\n [option]=\"group\"\n [templateRef]=\"suisSelectGroupOption()?.templateRef\"\n ></suis-select-group-option>\n @for ( option of group.children | suisSelectSortOptions : optionLabel() :\n sortOptions() | suisSelectFilterOptions : searchPhrase : optionLabel();\n track optionTrackBy($index, option)) {\n <suis-select-option\n [option]=\"option\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n [templateRef]=\"suisSelectOption()?.templateRef\"\n [selected]=\"option[optionValue()] | suisSelectIsSelected : value\"\n (clicked)=\"onSelect(option[optionValue()])\"\n ></suis-select-option>\n } }\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-group{position:relative}.suis-select-group__list{position:absolute;z-index:10;background-color:#fff;box-shadow:0 2px 5px #00000040;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;width:100%;top:2.625rem;left:0;max-height:13.375rem;overflow-y:auto;max-height:15.25rem}.suis-select-group__list::-webkit-scrollbar{width:.5rem}.suis-select-group__list::-webkit-scrollbar-track{background:#f5f6fa}.suis-select-group__list::-webkit-scrollbar-thumb{background:#dcdde1}.suis-select-group__list::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-select-group__list__search{width:100%;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}.suis-select-group__list__search:focus{outline:none}\n"] }]
1603
+ }] });
1757
1604
 
1758
1605
  class SuisSelectMultiChipsPipe {
1759
1606
  transform(values, options, optionValue, optionLabel) {
@@ -1794,11 +1641,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
1794
1641
 
1795
1642
  class SuisSelectButtonMultiComponent extends SuisSelectButtonBase {
1796
1643
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectButtonMultiComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1797
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisSelectButtonMultiComponent, isStandalone: true, selector: "suis-select-button-multi", usesInheritance: true, ngImport: i0, template: "<button\n type=\"button\"\n (click)=\"onExpand()\"\n class=\"suis-select-button-multi\"\n [class.suis-select-button-multi--invalid]=\"invalid\"\n [class.suis-select-button-multi--readonly]=\"readonly\"\n [class.suis-select-button-multi--valid]=\"clearable\"\n [disabled]=\"readonly\"\n>\n <span class=\"suis-select-button-multi__value\">\n <ng-content></ng-content>\n </span>\n <span class=\"suis-select-button-multi__actions\">\n @if (clearable && !readonly) {\n <suis-icon\n class=\"suis-select-button-multi__cross\"\n type=\"times\"\n size=\"lg\"\n color=\"primary\"\n (click)=\"onClear($event)\"\n tabindex=\"0\"\n ></suis-icon>\n }\n <suis-icon\n class=\"suis-select-button-multi__chevron\"\n [type]=\"expanded ? 'chevron-up' : 'chevron-down'\"\n size=\"lg\"\n color=\"primary\"\n tabindex=\"0\"\n ></suis-icon>\n </span>\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-button-multi{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;min-width:5rem;position:relative;display:flex;align-items:center;justify-content:space-between;padding:.25rem .5rem .25rem 1rem;cursor:pointer}.suis-select-button-multi:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-select-button-multi--invalid{border:.0625rem solid #ff4757}.suis-select-button-multi--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-select-button-multi--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-select-button-multi--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}.suis-select-button-multi__value{width:100%;text-align:left;text-overflow:ellipsis;text-wrap:nowrap;overflow:hidden}.suis-select-button-multi__actions{margin-left:.25rem;display:flex;justify-content:right;align-items:center}.suis-select-button-multi--valid{padding-bottom:.125rem}.suis-select-button-multi__value{display:flex;flex-wrap:wrap;gap:.25rem}\n"], dependencies: [{ kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1644
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisSelectButtonMultiComponent, isStandalone: true, selector: "suis-select-button-multi", usesInheritance: true, ngImport: i0, template: "<button\n type=\"button\"\n (click)=\"onExpand()\"\n class=\"suis-select-button-multi\"\n [class.suis-select-button-multi--invalid]=\"invalid()\"\n [class.suis-select-button-multi--readonly]=\"readonly()\"\n [class.suis-select-button-multi--valid]=\"clearable()\"\n [disabled]=\"readonly()\"\n>\n <span class=\"suis-select-button-multi__value\">\n <ng-content></ng-content>\n </span>\n <span class=\"suis-select-button-multi__actions\">\n @if (clearable() && !readonly()) {\n <suis-icon\n class=\"suis-select-button-multi__cross\"\n type=\"times\"\n size=\"lg\"\n color=\"primary\"\n (click)=\"onClear($event)\"\n tabindex=\"0\"\n ></suis-icon>\n }\n <suis-icon\n class=\"suis-select-button-multi__chevron\"\n [type]=\"expanded() ? 'chevron-up' : 'chevron-down'\"\n size=\"lg\"\n color=\"primary\"\n tabindex=\"0\"\n ></suis-icon>\n </span>\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-button-multi{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;min-width:5rem;position:relative;display:flex;align-items:center;justify-content:space-between;padding:.25rem .5rem .25rem 1rem;cursor:pointer}.suis-select-button-multi:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-select-button-multi--invalid{border:.0625rem solid #ff4757}.suis-select-button-multi--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-select-button-multi--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-select-button-multi--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}.suis-select-button-multi__value{width:100%;text-align:left;text-overflow:ellipsis;text-wrap:nowrap;overflow:hidden}.suis-select-button-multi__actions{margin-left:.25rem;display:flex;justify-content:right;align-items:center}.suis-select-button-multi--valid{padding-bottom:.125rem}.suis-select-button-multi__value{display:flex;flex-wrap:wrap;gap:.25rem}\n"], dependencies: [{ kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1798
1645
  }
1799
1646
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectButtonMultiComponent, decorators: [{
1800
1647
  type: Component,
1801
- args: [{ selector: 'suis-select-button-multi', imports: [SuisIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n (click)=\"onExpand()\"\n class=\"suis-select-button-multi\"\n [class.suis-select-button-multi--invalid]=\"invalid\"\n [class.suis-select-button-multi--readonly]=\"readonly\"\n [class.suis-select-button-multi--valid]=\"clearable\"\n [disabled]=\"readonly\"\n>\n <span class=\"suis-select-button-multi__value\">\n <ng-content></ng-content>\n </span>\n <span class=\"suis-select-button-multi__actions\">\n @if (clearable && !readonly) {\n <suis-icon\n class=\"suis-select-button-multi__cross\"\n type=\"times\"\n size=\"lg\"\n color=\"primary\"\n (click)=\"onClear($event)\"\n tabindex=\"0\"\n ></suis-icon>\n }\n <suis-icon\n class=\"suis-select-button-multi__chevron\"\n [type]=\"expanded ? 'chevron-up' : 'chevron-down'\"\n size=\"lg\"\n color=\"primary\"\n tabindex=\"0\"\n ></suis-icon>\n </span>\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-button-multi{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;min-width:5rem;position:relative;display:flex;align-items:center;justify-content:space-between;padding:.25rem .5rem .25rem 1rem;cursor:pointer}.suis-select-button-multi:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-select-button-multi--invalid{border:.0625rem solid #ff4757}.suis-select-button-multi--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-select-button-multi--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-select-button-multi--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}.suis-select-button-multi__value{width:100%;text-align:left;text-overflow:ellipsis;text-wrap:nowrap;overflow:hidden}.suis-select-button-multi__actions{margin-left:.25rem;display:flex;justify-content:right;align-items:center}.suis-select-button-multi--valid{padding-bottom:.125rem}.suis-select-button-multi__value{display:flex;flex-wrap:wrap;gap:.25rem}\n"] }]
1648
+ args: [{ selector: 'suis-select-button-multi', imports: [SuisIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n (click)=\"onExpand()\"\n class=\"suis-select-button-multi\"\n [class.suis-select-button-multi--invalid]=\"invalid()\"\n [class.suis-select-button-multi--readonly]=\"readonly()\"\n [class.suis-select-button-multi--valid]=\"clearable()\"\n [disabled]=\"readonly()\"\n>\n <span class=\"suis-select-button-multi__value\">\n <ng-content></ng-content>\n </span>\n <span class=\"suis-select-button-multi__actions\">\n @if (clearable() && !readonly()) {\n <suis-icon\n class=\"suis-select-button-multi__cross\"\n type=\"times\"\n size=\"lg\"\n color=\"primary\"\n (click)=\"onClear($event)\"\n tabindex=\"0\"\n ></suis-icon>\n }\n <suis-icon\n class=\"suis-select-button-multi__chevron\"\n [type]=\"expanded() ? 'chevron-up' : 'chevron-down'\"\n size=\"lg\"\n color=\"primary\"\n tabindex=\"0\"\n ></suis-icon>\n </span>\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-button-multi{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;min-width:5rem;position:relative;display:flex;align-items:center;justify-content:space-between;padding:.25rem .5rem .25rem 1rem;cursor:pointer}.suis-select-button-multi:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-select-button-multi--invalid{border:.0625rem solid #ff4757}.suis-select-button-multi--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-select-button-multi--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-select-button-multi--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}.suis-select-button-multi__value{width:100%;text-align:left;text-overflow:ellipsis;text-wrap:nowrap;overflow:hidden}.suis-select-button-multi__actions{margin-left:.25rem;display:flex;justify-content:right;align-items:center}.suis-select-button-multi--valid{padding-bottom:.125rem}.suis-select-button-multi__value{display:flex;flex-wrap:wrap;gap:.25rem}\n"] }]
1802
1649
  }] });
1803
1650
 
1804
1651
  class SuisSelectMultiBase extends SuisSelectBase {
@@ -1809,15 +1656,15 @@ class SuisSelectMultiBase extends SuisSelectBase {
1809
1656
  /**
1810
1657
  * Allows to select duplicated values and remove checkboxes next to options' label. By default set to false.
1811
1658
  */
1812
- this.duplicate = false;
1659
+ this.duplicate = input(false);
1813
1660
  /**
1814
1661
  * Sets the color pallette of the chips. Type of SuisColor. By default set to 'primary'.
1815
1662
  */
1816
- this.chipColor = 'primary';
1663
+ this.chipColor = input('primary');
1817
1664
  /**
1818
1665
  * Sets the color of the chips' cross icon. Type of SuisColor. By default set to 'white'.
1819
1666
  */
1820
- this.chipIconColor = 'white';
1667
+ this.chipIconColor = input('white');
1821
1668
  }
1822
1669
  writeValue(obj) {
1823
1670
  this.values = obj;
@@ -1825,7 +1672,7 @@ class SuisSelectMultiBase extends SuisSelectBase {
1825
1672
  this.cdRef.markForCheck();
1826
1673
  }
1827
1674
  onSelect(value) {
1828
- if (this.duplicate ||
1675
+ if (this.duplicate() ||
1829
1676
  !this.values.some((v) => JSON.stringify(v) === JSON.stringify(value))) {
1830
1677
  this.setValue([...this.values, value]);
1831
1678
  }
@@ -1848,21 +1695,15 @@ class SuisSelectMultiBase extends SuisSelectBase {
1848
1695
  setValue(value) {
1849
1696
  this.values = value;
1850
1697
  this._onChange(this.values);
1851
- this.changed.emit();
1698
+ this.changed.emit(this.values);
1852
1699
  this.cdRef.markForCheck();
1853
1700
  }
1854
1701
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectMultiBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
1855
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: SuisSelectMultiBase, isStandalone: true, inputs: { duplicate: "duplicate", chipColor: "chipColor", chipIconColor: "chipIconColor" }, usesInheritance: true, ngImport: i0 }); }
1702
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.7", type: SuisSelectMultiBase, isStandalone: true, inputs: { duplicate: { classPropertyName: "duplicate", publicName: "duplicate", isSignal: true, isRequired: false, transformFunction: null }, chipColor: { classPropertyName: "chipColor", publicName: "chipColor", isSignal: true, isRequired: false, transformFunction: null }, chipIconColor: { classPropertyName: "chipIconColor", publicName: "chipIconColor", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
1856
1703
  }
1857
1704
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectMultiBase, decorators: [{
1858
1705
  type: Directive
1859
- }], propDecorators: { duplicate: [{
1860
- type: Input
1861
- }], chipColor: [{
1862
- type: Input
1863
- }], chipIconColor: [{
1864
- type: Input
1865
- }] } });
1706
+ }] });
1866
1707
 
1867
1708
  class SuisSelectMultiComponent extends SuisSelectMultiBase {
1868
1709
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectMultiComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
@@ -1872,7 +1713,7 @@ class SuisSelectMultiComponent extends SuisSelectMultiBase {
1872
1713
  multi: true,
1873
1714
  useExisting: forwardRef(() => SuisSelectMultiComponent),
1874
1715
  },
1875
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"suis-select-multi\">\n <suis-select-button-multi\n [invalid]=\"invalid\"\n [readonly]=\"readonly\"\n [expanded]=\"expanded\"\n [clearable]=\"values.length > 0\"\n (expandedChange)=\"onExpand()\"\n (cleared)=\"onClear($event)\"\n >\n @if (!values?.length) {\n {{ placeholder }}\n } @if (values?.length) { @for ( value of values | suisSelectMultiChips :\n options : optionValue : optionLabel; track value; let index = $index) {\n <suis-chip\n [removable]=\"true\"\n [color]=\"chipColor\"\n [iconColor]=\"chipIconColor\"\n (remove)=\"onRemove(index)\"\n >\n {{ value }}\n </suis-chip>\n } }\n </suis-select-button-multi>\n @if (expanded) {\n <div class=\"suis-select-multi__list\">\n @if (search) {\n <input\n #searchInput\n [ngModel]=\"searchPhrase\"\n (ngModelChange)=\"onSearchPhraseChange($event)\"\n class=\"suis-select-multi__list__search\"\n type=\"search\"\n [placeholder]=\"searchPlaceholder\"\n />\n } @for ( option of options | suisSelectSortOptions : optionLabel :\n sortOptions | suisSelectFilterOptions : searchPhrase : optionLabel; track\n optionTrackBy($index, option)) {\n <suis-select-option\n [option]=\"option\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [templateRef]=\"suisSelectOption?.templateRef\"\n [selected]=\"option[optionValue] | suisSelectMultiIsSelected : values\"\n [checkbox]=\"!duplicate\"\n (clicked)=\"onSelect(option[optionValue])\"\n ></suis-select-option>\n }\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-multi{position:relative}.suis-select-multi__list{position:absolute;z-index:10;background-color:#fff;box-shadow:0 2px 5px #00000040;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;width:100%;top:2.625rem;left:0;max-height:13.375rem;overflow-y:auto}.suis-select-multi__list::-webkit-scrollbar{width:.5rem}.suis-select-multi__list::-webkit-scrollbar-track{background:#f5f6fa}.suis-select-multi__list::-webkit-scrollbar-thumb{background:#dcdde1}.suis-select-multi__list::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-select-multi__list__search{width:100%;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}.suis-select-multi__list__search:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SuisChipComponent, selector: "suis-chip", inputs: ["color", "iconColor", "removable"], outputs: ["remove"] }, { kind: "component", type: SuisSelectOptionComponent, selector: "suis-select-option", inputs: ["option", "templateRef", "optionValue", "optionLabel", "selected", "checkbox"], outputs: ["clicked"] }, { kind: "pipe", type: SuisSelectMultiChipsPipe, name: "suisSelectMultiChips" }, { kind: "pipe", type: SuisSelectMultiIsSelectedPipe, name: "suisSelectMultiIsSelected" }, { kind: "pipe", type: SuisSelectSortOptionsPipe, name: "suisSelectSortOptions" }, { kind: "pipe", type: SuisSelectFilterOptionsPipe, name: "suisSelectFilterOptions" }, { kind: "component", type: SuisSelectButtonMultiComponent, selector: "suis-select-button-multi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1716
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"suis-select-multi\">\n <suis-select-button-multi\n [invalid]=\"invalid()\"\n [readonly]=\"readonly()\"\n [expanded]=\"expanded\"\n [clearable]=\"values.length > 0\"\n (expandedChange)=\"onExpand()\"\n (cleared)=\"onClear($event)\"\n >\n @if (!values?.length) {\n {{ placeholder() }}\n } @if (values?.length) { @for ( value of values | suisSelectMultiChips :\n options() : optionValue() : optionLabel(); track value; let index = $index)\n {\n <suis-chip\n [removable]=\"true\"\n [color]=\"chipColor()\"\n [iconColor]=\"chipIconColor()\"\n (remove)=\"onRemove(index)\"\n >\n {{ value }}\n </suis-chip>\n } }\n </suis-select-button-multi>\n @if (expanded) {\n <div class=\"suis-select-multi__list\">\n @if (search()) {\n <input\n #searchInput\n [ngModel]=\"searchPhrase\"\n (ngModelChange)=\"onSearchPhraseChange($event)\"\n class=\"suis-select-multi__list__search\"\n type=\"search\"\n [placeholder]=\"searchPlaceholder()\"\n />\n } @for ( option of options() | suisSelectSortOptions : optionLabel() :\n sortOptions() | suisSelectFilterOptions : searchPhrase : optionLabel();\n track optionTrackBy($index, option)) {\n <suis-select-option\n [option]=\"option\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n [templateRef]=\"suisSelectOption()?.templateRef\"\n [selected]=\"option[optionValue()] | suisSelectMultiIsSelected : values\"\n [checkbox]=\"!duplicate()\"\n (clicked)=\"onSelect(option[optionValue()])\"\n ></suis-select-option>\n }\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-multi{position:relative}.suis-select-multi__list{position:absolute;z-index:10;background-color:#fff;box-shadow:0 2px 5px #00000040;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;width:100%;top:2.625rem;left:0;max-height:13.375rem;overflow-y:auto}.suis-select-multi__list::-webkit-scrollbar{width:.5rem}.suis-select-multi__list::-webkit-scrollbar-track{background:#f5f6fa}.suis-select-multi__list::-webkit-scrollbar-thumb{background:#dcdde1}.suis-select-multi__list::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-select-multi__list__search{width:100%;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}.suis-select-multi__list__search:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SuisChipComponent, selector: "suis-chip", inputs: ["color", "iconColor", "removable"], outputs: ["remove"] }, { kind: "component", type: SuisSelectOptionComponent, selector: "suis-select-option", inputs: ["option", "templateRef", "optionValue", "optionLabel", "selected", "checkbox"], outputs: ["clicked"] }, { kind: "pipe", type: SuisSelectMultiChipsPipe, name: "suisSelectMultiChips" }, { kind: "pipe", type: SuisSelectMultiIsSelectedPipe, name: "suisSelectMultiIsSelected" }, { kind: "pipe", type: SuisSelectSortOptionsPipe, name: "suisSelectSortOptions" }, { kind: "pipe", type: SuisSelectFilterOptionsPipe, name: "suisSelectFilterOptions" }, { kind: "component", type: SuisSelectButtonMultiComponent, selector: "suis-select-button-multi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1876
1717
  }
1877
1718
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectMultiComponent, decorators: [{
1878
1719
  type: Component,
@@ -1891,7 +1732,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
1891
1732
  multi: true,
1892
1733
  useExisting: forwardRef(() => SuisSelectMultiComponent),
1893
1734
  },
1894
- ], template: "<div class=\"suis-select-multi\">\n <suis-select-button-multi\n [invalid]=\"invalid\"\n [readonly]=\"readonly\"\n [expanded]=\"expanded\"\n [clearable]=\"values.length > 0\"\n (expandedChange)=\"onExpand()\"\n (cleared)=\"onClear($event)\"\n >\n @if (!values?.length) {\n {{ placeholder }}\n } @if (values?.length) { @for ( value of values | suisSelectMultiChips :\n options : optionValue : optionLabel; track value; let index = $index) {\n <suis-chip\n [removable]=\"true\"\n [color]=\"chipColor\"\n [iconColor]=\"chipIconColor\"\n (remove)=\"onRemove(index)\"\n >\n {{ value }}\n </suis-chip>\n } }\n </suis-select-button-multi>\n @if (expanded) {\n <div class=\"suis-select-multi__list\">\n @if (search) {\n <input\n #searchInput\n [ngModel]=\"searchPhrase\"\n (ngModelChange)=\"onSearchPhraseChange($event)\"\n class=\"suis-select-multi__list__search\"\n type=\"search\"\n [placeholder]=\"searchPlaceholder\"\n />\n } @for ( option of options | suisSelectSortOptions : optionLabel :\n sortOptions | suisSelectFilterOptions : searchPhrase : optionLabel; track\n optionTrackBy($index, option)) {\n <suis-select-option\n [option]=\"option\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [templateRef]=\"suisSelectOption?.templateRef\"\n [selected]=\"option[optionValue] | suisSelectMultiIsSelected : values\"\n [checkbox]=\"!duplicate\"\n (clicked)=\"onSelect(option[optionValue])\"\n ></suis-select-option>\n }\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-multi{position:relative}.suis-select-multi__list{position:absolute;z-index:10;background-color:#fff;box-shadow:0 2px 5px #00000040;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;width:100%;top:2.625rem;left:0;max-height:13.375rem;overflow-y:auto}.suis-select-multi__list::-webkit-scrollbar{width:.5rem}.suis-select-multi__list::-webkit-scrollbar-track{background:#f5f6fa}.suis-select-multi__list::-webkit-scrollbar-thumb{background:#dcdde1}.suis-select-multi__list::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-select-multi__list__search{width:100%;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}.suis-select-multi__list__search:focus{outline:none}\n"] }]
1735
+ ], template: "<div class=\"suis-select-multi\">\n <suis-select-button-multi\n [invalid]=\"invalid()\"\n [readonly]=\"readonly()\"\n [expanded]=\"expanded\"\n [clearable]=\"values.length > 0\"\n (expandedChange)=\"onExpand()\"\n (cleared)=\"onClear($event)\"\n >\n @if (!values?.length) {\n {{ placeholder() }}\n } @if (values?.length) { @for ( value of values | suisSelectMultiChips :\n options() : optionValue() : optionLabel(); track value; let index = $index)\n {\n <suis-chip\n [removable]=\"true\"\n [color]=\"chipColor()\"\n [iconColor]=\"chipIconColor()\"\n (remove)=\"onRemove(index)\"\n >\n {{ value }}\n </suis-chip>\n } }\n </suis-select-button-multi>\n @if (expanded) {\n <div class=\"suis-select-multi__list\">\n @if (search()) {\n <input\n #searchInput\n [ngModel]=\"searchPhrase\"\n (ngModelChange)=\"onSearchPhraseChange($event)\"\n class=\"suis-select-multi__list__search\"\n type=\"search\"\n [placeholder]=\"searchPlaceholder()\"\n />\n } @for ( option of options() | suisSelectSortOptions : optionLabel() :\n sortOptions() | suisSelectFilterOptions : searchPhrase : optionLabel();\n track optionTrackBy($index, option)) {\n <suis-select-option\n [option]=\"option\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n [templateRef]=\"suisSelectOption()?.templateRef\"\n [selected]=\"option[optionValue()] | suisSelectMultiIsSelected : values\"\n [checkbox]=\"!duplicate()\"\n (clicked)=\"onSelect(option[optionValue()])\"\n ></suis-select-option>\n }\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-multi{position:relative}.suis-select-multi__list{position:absolute;z-index:10;background-color:#fff;box-shadow:0 2px 5px #00000040;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;width:100%;top:2.625rem;left:0;max-height:13.375rem;overflow-y:auto}.suis-select-multi__list::-webkit-scrollbar{width:.5rem}.suis-select-multi__list::-webkit-scrollbar-track{background:#f5f6fa}.suis-select-multi__list::-webkit-scrollbar-thumb{background:#dcdde1}.suis-select-multi__list::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-select-multi__list__search{width:100%;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}.suis-select-multi__list__search:focus{outline:none}\n"] }]
1895
1736
  }] });
1896
1737
 
1897
1738
  class SuisSelectMultiGroupChipsPipe {
@@ -1920,19 +1761,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
1920
1761
  class SuisSelectMultiGroupComponent extends SuisSelectMultiBase {
1921
1762
  constructor() {
1922
1763
  super(...arguments);
1764
+ /** @internal */
1765
+ this.suisSelectGroupOption = contentChild(SuisSelectGroupOptionDirective);
1923
1766
  /**
1924
1767
  * Group options displayed in dropdown list. Type of SuisSelectGroupOption[].
1925
1768
  */
1926
- this.groupOptions = [];
1769
+ this.groupOptions = input([]);
1927
1770
  }
1928
1771
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectMultiGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1929
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisSelectMultiGroupComponent, isStandalone: true, selector: "suis-select-multi-group", inputs: { groupOptions: "groupOptions" }, providers: [
1772
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisSelectMultiGroupComponent, isStandalone: true, selector: "suis-select-multi-group", inputs: { groupOptions: { classPropertyName: "groupOptions", publicName: "groupOptions", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
1930
1773
  {
1931
1774
  provide: NG_VALUE_ACCESSOR,
1932
1775
  multi: true,
1933
1776
  useExisting: forwardRef(() => SuisSelectMultiGroupComponent),
1934
1777
  },
1935
- ], queries: [{ propertyName: "suisSelectGroupOption", first: true, predicate: SuisSelectGroupOptionDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"suis-select-multi-group\">\n <suis-select-button-multi\n [invalid]=\"invalid\"\n [readonly]=\"readonly\"\n [expanded]=\"expanded\"\n [clearable]=\"values.length > 0\"\n (expandedChange)=\"onExpand()\"\n (cleared)=\"onClear($event)\"\n >\n @if (!values?.length) {\n {{ placeholder }}\n } @if (values?.length) { @for ( value of values | suisSelectMultiGroupChips\n : groupOptions : optionValue : optionLabel; track value; let index = $index)\n {\n <suis-chip\n [removable]=\"true\"\n [color]=\"chipColor\"\n [iconColor]=\"chipIconColor\"\n (remove)=\"onRemove(index)\"\n >\n {{ value }}\n </suis-chip>\n } }\n </suis-select-button-multi>\n @if (expanded) {\n <div class=\"suis-select-multi-group__list\">\n @if (search) {\n <input\n #searchInput\n [ngModel]=\"searchPhrase\"\n (ngModelChange)=\"onSearchPhraseChange($event)\"\n class=\"suis-select-multi-group__list__search\"\n type=\"search\"\n [placeholder]=\"searchPlaceholder\"\n />\n } @for ( group of groupOptions | suisSelectSortGroupOptions : sortOptions |\n suisSelectFilterGroupOptions : searchPhrase : optionLabel ; track group) {\n <suis-select-group-option\n [option]=\"group\"\n [templateRef]=\"suisSelectGroupOption?.templateRef\"\n ></suis-select-group-option>\n @for ( option of group.children | suisSelectSortOptions : optionLabel :\n sortOptions | suisSelectFilterOptions : searchPhrase : optionLabel; track\n optionTrackBy($index, option)) {\n <suis-select-option\n [option]=\"option\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [templateRef]=\"suisSelectOption?.templateRef\"\n [selected]=\"option[optionValue] | suisSelectMultiIsSelected : values\"\n [checkbox]=\"!duplicate\"\n (clicked)=\"onSelect(option[optionValue])\"\n ></suis-select-option>\n } }\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-multi-group{position:relative}.suis-select-multi-group__list{position:absolute;z-index:10;background-color:#fff;box-shadow:0 2px 5px #00000040;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;width:100%;top:2.625rem;left:0;max-height:13.375rem;overflow-y:auto}.suis-select-multi-group__list::-webkit-scrollbar{width:.5rem}.suis-select-multi-group__list::-webkit-scrollbar-track{background:#f5f6fa}.suis-select-multi-group__list::-webkit-scrollbar-thumb{background:#dcdde1}.suis-select-multi-group__list::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-select-multi-group__list__search{width:100%;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}.suis-select-multi-group__list__search:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SuisChipComponent, selector: "suis-chip", inputs: ["color", "iconColor", "removable"], outputs: ["remove"] }, { kind: "component", type: SuisSelectButtonMultiComponent, selector: "suis-select-button-multi" }, { kind: "component", type: SuisSelectOptionComponent, selector: "suis-select-option", inputs: ["option", "templateRef", "optionValue", "optionLabel", "selected", "checkbox"], outputs: ["clicked"] }, { kind: "component", type: SuisSelectGroupOptionComponent, selector: "suis-select-group-option", inputs: ["option", "templateRef"] }, { kind: "pipe", type: SuisSelectSortOptionsPipe, name: "suisSelectSortOptions" }, { kind: "pipe", type: SuisSelectMultiGroupChipsPipe, name: "suisSelectMultiGroupChips" }, { kind: "pipe", type: SuisSelectFilterOptionsPipe, name: "suisSelectFilterOptions" }, { kind: "pipe", type: SuisSelectFilterGroupOptionsPipe, name: "suisSelectFilterGroupOptions" }, { kind: "pipe", type: SuisSelectMultiIsSelectedPipe, name: "suisSelectMultiIsSelected" }, { kind: "pipe", type: SuisSelectSortGroupOptionsPipe, name: "suisSelectSortGroupOptions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1778
+ ], queries: [{ propertyName: "suisSelectGroupOption", first: true, predicate: SuisSelectGroupOptionDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"suis-select-multi-group\">\n <suis-select-button-multi\n [invalid]=\"invalid()\"\n [readonly]=\"readonly()\"\n [expanded]=\"expanded\"\n [clearable]=\"values.length > 0\"\n (expandedChange)=\"onExpand()\"\n (cleared)=\"onClear($event)\"\n >\n @if (!values?.length) {\n {{ placeholder() }}\n } @if (values?.length) { @for ( value of values | suisSelectMultiGroupChips\n : groupOptions() : optionValue() : optionLabel(); track value; let index =\n $index) {\n <suis-chip\n [removable]=\"true\"\n [color]=\"chipColor()\"\n [iconColor]=\"chipIconColor()\"\n (remove)=\"onRemove(index)\"\n >\n {{ value }}\n </suis-chip>\n } }\n </suis-select-button-multi>\n @if (expanded) {\n <div class=\"suis-select-multi-group__list\">\n @if (search()) {\n <input\n #searchInput\n [ngModel]=\"searchPhrase\"\n (ngModelChange)=\"onSearchPhraseChange($event)\"\n class=\"suis-select-multi-group__list__search\"\n type=\"search\"\n [placeholder]=\"searchPlaceholder()\"\n />\n } @for ( group of groupOptions() | suisSelectSortGroupOptions :\n sortOptions() | suisSelectFilterGroupOptions : searchPhrase : optionLabel()\n ; track group) {\n <suis-select-group-option\n [option]=\"group\"\n [templateRef]=\"suisSelectGroupOption()?.templateRef\"\n ></suis-select-group-option>\n @for ( option of group.children | suisSelectSortOptions : optionLabel() :\n sortOptions() | suisSelectFilterOptions : searchPhrase : optionLabel();\n track optionTrackBy($index, option)) {\n <suis-select-option\n [option]=\"option\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n [templateRef]=\"suisSelectOption()?.templateRef\"\n [selected]=\"option[optionValue()] | suisSelectMultiIsSelected : values\"\n [checkbox]=\"!duplicate()\"\n (clicked)=\"onSelect(option[optionValue()])\"\n ></suis-select-option>\n } }\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-multi-group{position:relative}.suis-select-multi-group__list{position:absolute;z-index:10;background-color:#fff;box-shadow:0 2px 5px #00000040;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;width:100%;top:2.625rem;left:0;max-height:13.375rem;overflow-y:auto}.suis-select-multi-group__list::-webkit-scrollbar{width:.5rem}.suis-select-multi-group__list::-webkit-scrollbar-track{background:#f5f6fa}.suis-select-multi-group__list::-webkit-scrollbar-thumb{background:#dcdde1}.suis-select-multi-group__list::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-select-multi-group__list__search{width:100%;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}.suis-select-multi-group__list__search:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SuisChipComponent, selector: "suis-chip", inputs: ["color", "iconColor", "removable"], outputs: ["remove"] }, { kind: "component", type: SuisSelectButtonMultiComponent, selector: "suis-select-button-multi" }, { kind: "component", type: SuisSelectOptionComponent, selector: "suis-select-option", inputs: ["option", "templateRef", "optionValue", "optionLabel", "selected", "checkbox"], outputs: ["clicked"] }, { kind: "component", type: SuisSelectGroupOptionComponent, selector: "suis-select-group-option", inputs: ["option", "templateRef"] }, { kind: "pipe", type: SuisSelectSortOptionsPipe, name: "suisSelectSortOptions" }, { kind: "pipe", type: SuisSelectMultiGroupChipsPipe, name: "suisSelectMultiGroupChips" }, { kind: "pipe", type: SuisSelectFilterOptionsPipe, name: "suisSelectFilterOptions" }, { kind: "pipe", type: SuisSelectFilterGroupOptionsPipe, name: "suisSelectFilterGroupOptions" }, { kind: "pipe", type: SuisSelectMultiIsSelectedPipe, name: "suisSelectMultiIsSelected" }, { kind: "pipe", type: SuisSelectSortGroupOptionsPipe, name: "suisSelectSortGroupOptions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1936
1779
  }
1937
1780
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectMultiGroupComponent, decorators: [{
1938
1781
  type: Component,
@@ -1954,13 +1797,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
1954
1797
  multi: true,
1955
1798
  useExisting: forwardRef(() => SuisSelectMultiGroupComponent),
1956
1799
  },
1957
- ], template: "<div class=\"suis-select-multi-group\">\n <suis-select-button-multi\n [invalid]=\"invalid\"\n [readonly]=\"readonly\"\n [expanded]=\"expanded\"\n [clearable]=\"values.length > 0\"\n (expandedChange)=\"onExpand()\"\n (cleared)=\"onClear($event)\"\n >\n @if (!values?.length) {\n {{ placeholder }}\n } @if (values?.length) { @for ( value of values | suisSelectMultiGroupChips\n : groupOptions : optionValue : optionLabel; track value; let index = $index)\n {\n <suis-chip\n [removable]=\"true\"\n [color]=\"chipColor\"\n [iconColor]=\"chipIconColor\"\n (remove)=\"onRemove(index)\"\n >\n {{ value }}\n </suis-chip>\n } }\n </suis-select-button-multi>\n @if (expanded) {\n <div class=\"suis-select-multi-group__list\">\n @if (search) {\n <input\n #searchInput\n [ngModel]=\"searchPhrase\"\n (ngModelChange)=\"onSearchPhraseChange($event)\"\n class=\"suis-select-multi-group__list__search\"\n type=\"search\"\n [placeholder]=\"searchPlaceholder\"\n />\n } @for ( group of groupOptions | suisSelectSortGroupOptions : sortOptions |\n suisSelectFilterGroupOptions : searchPhrase : optionLabel ; track group) {\n <suis-select-group-option\n [option]=\"group\"\n [templateRef]=\"suisSelectGroupOption?.templateRef\"\n ></suis-select-group-option>\n @for ( option of group.children | suisSelectSortOptions : optionLabel :\n sortOptions | suisSelectFilterOptions : searchPhrase : optionLabel; track\n optionTrackBy($index, option)) {\n <suis-select-option\n [option]=\"option\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [templateRef]=\"suisSelectOption?.templateRef\"\n [selected]=\"option[optionValue] | suisSelectMultiIsSelected : values\"\n [checkbox]=\"!duplicate\"\n (clicked)=\"onSelect(option[optionValue])\"\n ></suis-select-option>\n } }\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-multi-group{position:relative}.suis-select-multi-group__list{position:absolute;z-index:10;background-color:#fff;box-shadow:0 2px 5px #00000040;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;width:100%;top:2.625rem;left:0;max-height:13.375rem;overflow-y:auto}.suis-select-multi-group__list::-webkit-scrollbar{width:.5rem}.suis-select-multi-group__list::-webkit-scrollbar-track{background:#f5f6fa}.suis-select-multi-group__list::-webkit-scrollbar-thumb{background:#dcdde1}.suis-select-multi-group__list::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-select-multi-group__list__search{width:100%;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}.suis-select-multi-group__list__search:focus{outline:none}\n"] }]
1958
- }], propDecorators: { suisSelectGroupOption: [{
1959
- type: ContentChild,
1960
- args: [SuisSelectGroupOptionDirective]
1961
- }], groupOptions: [{
1962
- type: Input
1963
- }] } });
1800
+ ], template: "<div class=\"suis-select-multi-group\">\n <suis-select-button-multi\n [invalid]=\"invalid()\"\n [readonly]=\"readonly()\"\n [expanded]=\"expanded\"\n [clearable]=\"values.length > 0\"\n (expandedChange)=\"onExpand()\"\n (cleared)=\"onClear($event)\"\n >\n @if (!values?.length) {\n {{ placeholder() }}\n } @if (values?.length) { @for ( value of values | suisSelectMultiGroupChips\n : groupOptions() : optionValue() : optionLabel(); track value; let index =\n $index) {\n <suis-chip\n [removable]=\"true\"\n [color]=\"chipColor()\"\n [iconColor]=\"chipIconColor()\"\n (remove)=\"onRemove(index)\"\n >\n {{ value }}\n </suis-chip>\n } }\n </suis-select-button-multi>\n @if (expanded) {\n <div class=\"suis-select-multi-group__list\">\n @if (search()) {\n <input\n #searchInput\n [ngModel]=\"searchPhrase\"\n (ngModelChange)=\"onSearchPhraseChange($event)\"\n class=\"suis-select-multi-group__list__search\"\n type=\"search\"\n [placeholder]=\"searchPlaceholder()\"\n />\n } @for ( group of groupOptions() | suisSelectSortGroupOptions :\n sortOptions() | suisSelectFilterGroupOptions : searchPhrase : optionLabel()\n ; track group) {\n <suis-select-group-option\n [option]=\"group\"\n [templateRef]=\"suisSelectGroupOption()?.templateRef\"\n ></suis-select-group-option>\n @for ( option of group.children | suisSelectSortOptions : optionLabel() :\n sortOptions() | suisSelectFilterOptions : searchPhrase : optionLabel();\n track optionTrackBy($index, option)) {\n <suis-select-option\n [option]=\"option\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n [templateRef]=\"suisSelectOption()?.templateRef\"\n [selected]=\"option[optionValue()] | suisSelectMultiIsSelected : values\"\n [checkbox]=\"!duplicate()\"\n (clicked)=\"onSelect(option[optionValue()])\"\n ></suis-select-option>\n } }\n </div>\n }\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-multi-group{position:relative}.suis-select-multi-group__list{position:absolute;z-index:10;background-color:#fff;box-shadow:0 2px 5px #00000040;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;width:100%;top:2.625rem;left:0;max-height:13.375rem;overflow-y:auto}.suis-select-multi-group__list::-webkit-scrollbar{width:.5rem}.suis-select-multi-group__list::-webkit-scrollbar-track{background:#f5f6fa}.suis-select-multi-group__list::-webkit-scrollbar-thumb{background:#dcdde1}.suis-select-multi-group__list::-webkit-scrollbar-thumb:hover{background:#bcbcbc}.suis-select-multi-group__list__search{width:100%;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;font-size:.875rem}.suis-select-multi-group__list__search:focus{outline:none}\n"] }]
1801
+ }] });
1964
1802
 
1965
1803
  class SuisSelectModule {
1966
1804
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -2026,43 +1864,52 @@ class SuisPaginationComponent {
2026
1864
  /**
2027
1865
  * Number of the maximum page that can be reached based on totalItems and perPage values.
2028
1866
  */
2029
- this.maxPage = 1;
1867
+ this.maxPage = computed(() => Math.ceil(this.totalItems() / this.perPage()));
2030
1868
  /**
2031
1869
  * Number of the page presented. By default set to 1.
2032
1870
  */
2033
- this.page = 1;
1871
+ this.page = input(1);
1872
+ this._page = signal(1);
2034
1873
  /**
2035
1874
  * Number of items presented per page. Value must be included in perPageOptions. By default set to 15.
2036
1875
  */
2037
- this.perPage = 15;
1876
+ this.perPage = input(15);
1877
+ this._perPage = signal(15);
2038
1878
  /**
2039
1879
  * Options of perPage dropdown. Be default set to [10, 15, 20, 25].
2040
1880
  */
2041
- this.perPageOptions = [10, 15, 20, 25];
1881
+ this.perPageOptions = input([10, 15, 20, 25]);
2042
1882
  /**
2043
1883
  * Number of total items in data source. By default set to 0.
2044
1884
  */
2045
- this.totalItems = 0;
1885
+ this.totalItems = input(0);
2046
1886
  /**
2047
1887
  * Sets the of label in "1 'of' 25". By default set to 'of'.
2048
1888
  */
2049
- this.ofLabel = 'of';
1889
+ this.ofLabel = input('of');
2050
1890
  /**
2051
1891
  * Sets the items label in "1-10 'of' 25 'items'". By default set to 'Page'.
2052
1892
  */
2053
- this.itemsLabel = 'items';
1893
+ this.itemsLabel = input('items');
2054
1894
  /**
2055
1895
  * Emits on page value change.
2056
1896
  */
2057
- this.pageChange = new EventEmitter();
1897
+ this.pageChange = output();
2058
1898
  /**
2059
1899
  * Emits on perPage value change.
2060
1900
  */
2061
- this.perPageChange = new EventEmitter();
1901
+ this.perPageChange = output();
2062
1902
  /** @internal */
2063
- this.perPageControl = new FormControl(this.perPage, {
1903
+ this.perPageControl = new FormControl(this.perPage(), {
2064
1904
  nonNullable: true,
2065
1905
  });
1906
+ effect(() => {
1907
+ this._page.set(this.page());
1908
+ });
1909
+ effect(() => {
1910
+ this._perPage.set(this.perPage());
1911
+ this.perPageControl.setValue(this.perPage());
1912
+ });
2066
1913
  }
2067
1914
  ngOnInit() {
2068
1915
  this.perPageControl.valueChanges
@@ -2071,32 +1918,26 @@ class SuisPaginationComponent {
2071
1918
  this.onPerPageChange(value);
2072
1919
  });
2073
1920
  }
2074
- ngOnChanges(changes) {
2075
- if (changes['totalItems'] || changes['perPage']) {
2076
- this.maxPage = Math.ceil(this.totalItems / this.perPage);
2077
- this.perPageControl.setValue(this.perPage);
2078
- }
2079
- }
2080
1921
  next() {
2081
- if (this.page < this.maxPage) {
2082
- this.page++;
2083
- this.pageChange.emit(this.page);
1922
+ if (this._page() < this.maxPage()) {
1923
+ this._page.update((value) => value + 1);
1924
+ this.pageChange.emit(this._page());
2084
1925
  }
2085
1926
  }
2086
1927
  previous() {
2087
- if (this.page > 1) {
2088
- this.page--;
2089
- this.pageChange.emit(this.page);
1928
+ if (this._page() > 1) {
1929
+ this._page.update((value) => value - 1);
1930
+ this.pageChange.emit(this._page());
2090
1931
  }
2091
1932
  }
2092
1933
  onPerPageChange(value) {
2093
- this.page = 1;
2094
- this.perPage = value;
2095
- this.pageChange.emit(this.page);
2096
- this.perPageChange.emit(this.perPage);
1934
+ this._page.set(1);
1935
+ this._perPage.set(value);
1936
+ this.pageChange.emit(this._page());
1937
+ this.perPageChange.emit(this._perPage());
2097
1938
  }
2098
1939
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2099
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: SuisPaginationComponent, isStandalone: true, selector: "suis-pagination", inputs: { page: "page", perPage: "perPage", perPageOptions: "perPageOptions", totalItems: "totalItems", ofLabel: "ofLabel", itemsLabel: "itemsLabel" }, outputs: { pageChange: "pageChange", perPageChange: "perPageChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"suis-pagination\">\n <div>\n <suis-select\n [formControl]=\"perPageControl\"\n [options]=\"perPageOptions | suisPaginationPerPageOptions\"\n [search]=\"false\"\n [nullable]=\"false\"\n ></suis-select>\n </div>\n <div class=\"suis-pagination__actions\">\n <suis-button color=\"secondary\" [disabled]=\"page === 1\" (click)=\"previous()\">\n <suis-icon [type]=\"'chevron-left'\" color=\"white\"></suis-icon>\n </suis-button>\n <div>\n {{ ofLabel | suisPaginationPage : page : perPage : totalItems }}\n </div>\n <suis-button\n color=\"secondary\"\n [disabled]=\"page === maxPage\"\n (click)=\"next()\"\n >\n <suis-icon [type]=\"'chevron-right'\" color=\"white\"></suis-icon>\n </suis-button>\n </div>\n <div class=\"suis-pagination__items\">\n {{\n ofLabel | suisPaginationItems : page : perPage : totalItems : itemsLabel\n }}\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-pagination{display:flex;align-items:center;justify-content:space-between;font-size:.875rem}.suis-pagination__actions{display:flex;align-items:center;justify-content:center}.suis-pagination__items{color:#a4a7b0}.suis-pagination suis-button:first-child{margin-right:1rem}.suis-pagination suis-button:last-child{margin-left:1rem}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }, { kind: "component", type: SuisButtonComponent, selector: "suis-button" }, { kind: "pipe", type: SuisPaginationPagePipe, name: "suisPaginationPage" }, { kind: "pipe", type: SuisPaginationItemsPipe, name: "suisPaginationItems" }, { kind: "pipe", type: SuisPaginationPerPageOptionsPipe, name: "suisPaginationPerPageOptions" }, { kind: "ngmodule", type: SuisSelectModule }, { kind: "component", type: SuisSelectComponent, selector: "suis-select" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1940
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: SuisPaginationComponent, isStandalone: true, selector: "suis-pagination", inputs: { page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, perPage: { classPropertyName: "perPage", publicName: "perPage", isSignal: true, isRequired: false, transformFunction: null }, perPageOptions: { classPropertyName: "perPageOptions", publicName: "perPageOptions", isSignal: true, isRequired: false, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: false, transformFunction: null }, ofLabel: { classPropertyName: "ofLabel", publicName: "ofLabel", isSignal: true, isRequired: false, transformFunction: null }, itemsLabel: { classPropertyName: "itemsLabel", publicName: "itemsLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pageChange: "pageChange", perPageChange: "perPageChange" }, ngImport: i0, template: "<div class=\"suis-pagination\">\n <div>\n <suis-select\n [formControl]=\"perPageControl\"\n [options]=\"perPageOptions() | suisPaginationPerPageOptions\"\n [search]=\"false\"\n [nullable]=\"false\"\n ></suis-select>\n </div>\n <div class=\"suis-pagination__actions\">\n <suis-button\n color=\"secondary\"\n [disabled]=\"_page() === 1\"\n (click)=\"previous()\"\n >\n <suis-icon [type]=\"'chevron-left'\" color=\"white\"></suis-icon>\n </suis-button>\n <div>\n {{ ofLabel() | suisPaginationPage : _page() : _perPage() : totalItems() }}\n </div>\n <suis-button\n color=\"secondary\"\n [disabled]=\"_page() === maxPage()\"\n (click)=\"next()\"\n >\n <suis-icon [type]=\"'chevron-right'\" color=\"white\"></suis-icon>\n </suis-button>\n </div>\n <div class=\"suis-pagination__items\">\n {{\n ofLabel()\n | suisPaginationItems\n : _page()\n : _perPage()\n : totalItems()\n : itemsLabel()\n }}\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-pagination{display:flex;align-items:center;justify-content:space-between;font-size:.875rem}.suis-pagination__actions{display:flex;align-items:center;justify-content:center}.suis-pagination__items{color:#a4a7b0}.suis-pagination suis-button:first-child{margin-right:1rem}.suis-pagination suis-button:last-child{margin-left:1rem}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }, { kind: "component", type: SuisButtonComponent, selector: "suis-button" }, { kind: "pipe", type: SuisPaginationPagePipe, name: "suisPaginationPage" }, { kind: "pipe", type: SuisPaginationItemsPipe, name: "suisPaginationItems" }, { kind: "pipe", type: SuisPaginationPerPageOptionsPipe, name: "suisPaginationPerPageOptions" }, { kind: "ngmodule", type: SuisSelectModule }, { kind: "component", type: SuisSelectComponent, selector: "suis-select" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2100
1941
  }
2101
1942
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisPaginationComponent, decorators: [{
2102
1943
  type: Component,
@@ -2108,24 +1949,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
2108
1949
  SuisPaginationItemsPipe,
2109
1950
  SuisPaginationPerPageOptionsPipe,
2110
1951
  SuisSelectModule,
2111
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-pagination\">\n <div>\n <suis-select\n [formControl]=\"perPageControl\"\n [options]=\"perPageOptions | suisPaginationPerPageOptions\"\n [search]=\"false\"\n [nullable]=\"false\"\n ></suis-select>\n </div>\n <div class=\"suis-pagination__actions\">\n <suis-button color=\"secondary\" [disabled]=\"page === 1\" (click)=\"previous()\">\n <suis-icon [type]=\"'chevron-left'\" color=\"white\"></suis-icon>\n </suis-button>\n <div>\n {{ ofLabel | suisPaginationPage : page : perPage : totalItems }}\n </div>\n <suis-button\n color=\"secondary\"\n [disabled]=\"page === maxPage\"\n (click)=\"next()\"\n >\n <suis-icon [type]=\"'chevron-right'\" color=\"white\"></suis-icon>\n </suis-button>\n </div>\n <div class=\"suis-pagination__items\">\n {{\n ofLabel | suisPaginationItems : page : perPage : totalItems : itemsLabel\n }}\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-pagination{display:flex;align-items:center;justify-content:space-between;font-size:.875rem}.suis-pagination__actions{display:flex;align-items:center;justify-content:center}.suis-pagination__items{color:#a4a7b0}.suis-pagination suis-button:first-child{margin-right:1rem}.suis-pagination suis-button:last-child{margin-left:1rem}\n"] }]
2112
- }], propDecorators: { page: [{
2113
- type: Input
2114
- }], perPage: [{
2115
- type: Input
2116
- }], perPageOptions: [{
2117
- type: Input
2118
- }], totalItems: [{
2119
- type: Input
2120
- }], ofLabel: [{
2121
- type: Input
2122
- }], itemsLabel: [{
2123
- type: Input
2124
- }], pageChange: [{
2125
- type: Output
2126
- }], perPageChange: [{
2127
- type: Output
2128
- }] } });
1952
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-pagination\">\n <div>\n <suis-select\n [formControl]=\"perPageControl\"\n [options]=\"perPageOptions() | suisPaginationPerPageOptions\"\n [search]=\"false\"\n [nullable]=\"false\"\n ></suis-select>\n </div>\n <div class=\"suis-pagination__actions\">\n <suis-button\n color=\"secondary\"\n [disabled]=\"_page() === 1\"\n (click)=\"previous()\"\n >\n <suis-icon [type]=\"'chevron-left'\" color=\"white\"></suis-icon>\n </suis-button>\n <div>\n {{ ofLabel() | suisPaginationPage : _page() : _perPage() : totalItems() }}\n </div>\n <suis-button\n color=\"secondary\"\n [disabled]=\"_page() === maxPage()\"\n (click)=\"next()\"\n >\n <suis-icon [type]=\"'chevron-right'\" color=\"white\"></suis-icon>\n </suis-button>\n </div>\n <div class=\"suis-pagination__items\">\n {{\n ofLabel()\n | suisPaginationItems\n : _page()\n : _perPage()\n : totalItems()\n : itemsLabel()\n }}\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-pagination{display:flex;align-items:center;justify-content:space-between;font-size:.875rem}.suis-pagination__actions{display:flex;align-items:center;justify-content:center}.suis-pagination__items{color:#a4a7b0}.suis-pagination suis-button:first-child{margin-right:1rem}.suis-pagination suis-button:last-child{margin-left:1rem}\n"] }]
1953
+ }], ctorParameters: () => [] });
2129
1954
 
2130
1955
  class SuisProgressBarPipe {
2131
1956
  transform(value, maxValue) {
@@ -2149,76 +1974,58 @@ class SuisProgressBarComponent {
2149
1974
  /**
2150
1975
  * The value corresponding to the progress bar. By default set to 0.
2151
1976
  */
2152
- this.value = 0;
1977
+ this.value = input(0);
2153
1978
  /**
2154
1979
  * Maximum value of the progress bar. By default set to 100.
2155
1980
  */
2156
- this.maxValue = 100;
1981
+ this.maxValue = input(100);
2157
1982
  /**
2158
1983
  * Sets the color of the progress bar. Type of SuisColor. By default set to 'primary'.
2159
1984
  */
2160
- this.color = 'primary';
1985
+ this.color = input('primary');
2161
1986
  /**
2162
1987
  * Sets the background color of the progress bar. Type of SuisColor. By default set to 'tertiary'.
2163
1988
  */
2164
- this.backgroundColor = 'tertiary';
1989
+ this.backgroundColor = input('tertiary');
2165
1990
  /**
2166
1991
  * Sets the height of the progress bar. Type of SuisSize. By default set to 'md'.
2167
1992
  */
2168
- this.size = 'md';
1993
+ this.size = input('md');
2169
1994
  }
2170
1995
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2171
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: SuisProgressBarComponent, isStandalone: true, selector: "suis-progress-bar", inputs: { value: "value", maxValue: "maxValue", color: "color", backgroundColor: "backgroundColor", size: "size" }, ngImport: i0, template: "<div\n class=\"suis-progress-bar\"\n [ngClass]=\"'suis-progress-bar' | suisNgClass : backgroundColor : size\"\n>\n <div\n class=\"suis-progress-bar__progress\"\n [style]=\"{ width: value | suisProgressBar : maxValue }\"\n [ngClass]=\"'suis-progress-bar__progress' | suisNgClass : color : size\"\n ></div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-progress-bar{width:100%}.suis-progress-bar,.suis-progress-bar__progress{border-radius:1rem}.suis-progress-bar--primary,.suis-progress-bar__progress--primary{background-color:#192a56}.suis-progress-bar--secondary,.suis-progress-bar__progress--secondary{background-color:#273c75}.suis-progress-bar--tertiary,.suis-progress-bar__progress--tertiary{background-color:#dcdde1}.suis-progress-bar--complementary,.suis-progress-bar__progress--complementary{background-color:#f5f6fa}.suis-progress-bar--success,.suis-progress-bar__progress--success{background-color:#2ed573}.suis-progress-bar--warning,.suis-progress-bar__progress--warning{background-color:#ffa502}.suis-progress-bar--danger,.suis-progress-bar__progress--danger{background-color:#ff4757}.suis-progress-bar--white,.suis-progress-bar__progress--white{background-color:#fff}.suis-progress-bar--gray,.suis-progress-bar__progress--gray{background-color:#bcbcbc}.suis-progress-bar--dark,.suis-progress-bar__progress--dark{background-color:#000}.suis-progress-bar--xs,.suis-progress-bar__progress--xs{height:.375rem}.suis-progress-bar--sm,.suis-progress-bar__progress--sm{height:.5rem}.suis-progress-bar--md,.suis-progress-bar__progress--md{height:.625rem}.suis-progress-bar--lg,.suis-progress-bar__progress--lg{height:.75rem}.suis-progress-bar--xl,.suis-progress-bar__progress--xl{height:1rem}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }, { kind: "pipe", type: SuisProgressBarPipe, name: "suisProgressBar" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1996
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: SuisProgressBarComponent, isStandalone: true, selector: "suis-progress-bar", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, backgroundColor: { classPropertyName: "backgroundColor", publicName: "backgroundColor", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"suis-progress-bar\"\n [ngClass]=\"'suis-progress-bar' | suisNgClass : backgroundColor() : size()\"\n>\n <div\n class=\"suis-progress-bar__progress\"\n [style]=\"{ width: value() | suisProgressBar : maxValue() }\"\n [ngClass]=\"'suis-progress-bar__progress' | suisNgClass : color() : size()\"\n ></div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-progress-bar{width:100%}.suis-progress-bar,.suis-progress-bar__progress{border-radius:1rem}.suis-progress-bar--primary,.suis-progress-bar__progress--primary{background-color:#192a56}.suis-progress-bar--secondary,.suis-progress-bar__progress--secondary{background-color:#273c75}.suis-progress-bar--tertiary,.suis-progress-bar__progress--tertiary{background-color:#dcdde1}.suis-progress-bar--complementary,.suis-progress-bar__progress--complementary{background-color:#f5f6fa}.suis-progress-bar--success,.suis-progress-bar__progress--success{background-color:#2ed573}.suis-progress-bar--warning,.suis-progress-bar__progress--warning{background-color:#ffa502}.suis-progress-bar--danger,.suis-progress-bar__progress--danger{background-color:#ff4757}.suis-progress-bar--white,.suis-progress-bar__progress--white{background-color:#fff}.suis-progress-bar--gray,.suis-progress-bar__progress--gray{background-color:#bcbcbc}.suis-progress-bar--dark,.suis-progress-bar__progress--dark{background-color:#000}.suis-progress-bar--xs,.suis-progress-bar__progress--xs{height:.375rem}.suis-progress-bar--sm,.suis-progress-bar__progress--sm{height:.5rem}.suis-progress-bar--md,.suis-progress-bar__progress--md{height:.625rem}.suis-progress-bar--lg,.suis-progress-bar__progress--lg{height:.75rem}.suis-progress-bar--xl,.suis-progress-bar__progress--xl{height:1rem}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }, { kind: "pipe", type: SuisProgressBarPipe, name: "suisProgressBar" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2172
1997
  }
2173
1998
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisProgressBarComponent, decorators: [{
2174
1999
  type: Component,
2175
- args: [{ selector: 'suis-progress-bar', imports: [NgClass, SuisNgClassPipe, SuisProgressBarPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"suis-progress-bar\"\n [ngClass]=\"'suis-progress-bar' | suisNgClass : backgroundColor : size\"\n>\n <div\n class=\"suis-progress-bar__progress\"\n [style]=\"{ width: value | suisProgressBar : maxValue }\"\n [ngClass]=\"'suis-progress-bar__progress' | suisNgClass : color : size\"\n ></div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-progress-bar{width:100%}.suis-progress-bar,.suis-progress-bar__progress{border-radius:1rem}.suis-progress-bar--primary,.suis-progress-bar__progress--primary{background-color:#192a56}.suis-progress-bar--secondary,.suis-progress-bar__progress--secondary{background-color:#273c75}.suis-progress-bar--tertiary,.suis-progress-bar__progress--tertiary{background-color:#dcdde1}.suis-progress-bar--complementary,.suis-progress-bar__progress--complementary{background-color:#f5f6fa}.suis-progress-bar--success,.suis-progress-bar__progress--success{background-color:#2ed573}.suis-progress-bar--warning,.suis-progress-bar__progress--warning{background-color:#ffa502}.suis-progress-bar--danger,.suis-progress-bar__progress--danger{background-color:#ff4757}.suis-progress-bar--white,.suis-progress-bar__progress--white{background-color:#fff}.suis-progress-bar--gray,.suis-progress-bar__progress--gray{background-color:#bcbcbc}.suis-progress-bar--dark,.suis-progress-bar__progress--dark{background-color:#000}.suis-progress-bar--xs,.suis-progress-bar__progress--xs{height:.375rem}.suis-progress-bar--sm,.suis-progress-bar__progress--sm{height:.5rem}.suis-progress-bar--md,.suis-progress-bar__progress--md{height:.625rem}.suis-progress-bar--lg,.suis-progress-bar__progress--lg{height:.75rem}.suis-progress-bar--xl,.suis-progress-bar__progress--xl{height:1rem}\n"] }]
2176
- }], propDecorators: { value: [{
2177
- type: Input
2178
- }], maxValue: [{
2179
- type: Input
2180
- }], color: [{
2181
- type: Input
2182
- }], backgroundColor: [{
2183
- type: Input
2184
- }], size: [{
2185
- type: Input
2186
- }] } });
2000
+ args: [{ selector: 'suis-progress-bar', imports: [NgClass, SuisNgClassPipe, SuisProgressBarPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"suis-progress-bar\"\n [ngClass]=\"'suis-progress-bar' | suisNgClass : backgroundColor() : size()\"\n>\n <div\n class=\"suis-progress-bar__progress\"\n [style]=\"{ width: value() | suisProgressBar : maxValue() }\"\n [ngClass]=\"'suis-progress-bar__progress' | suisNgClass : color() : size()\"\n ></div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-progress-bar{width:100%}.suis-progress-bar,.suis-progress-bar__progress{border-radius:1rem}.suis-progress-bar--primary,.suis-progress-bar__progress--primary{background-color:#192a56}.suis-progress-bar--secondary,.suis-progress-bar__progress--secondary{background-color:#273c75}.suis-progress-bar--tertiary,.suis-progress-bar__progress--tertiary{background-color:#dcdde1}.suis-progress-bar--complementary,.suis-progress-bar__progress--complementary{background-color:#f5f6fa}.suis-progress-bar--success,.suis-progress-bar__progress--success{background-color:#2ed573}.suis-progress-bar--warning,.suis-progress-bar__progress--warning{background-color:#ffa502}.suis-progress-bar--danger,.suis-progress-bar__progress--danger{background-color:#ff4757}.suis-progress-bar--white,.suis-progress-bar__progress--white{background-color:#fff}.suis-progress-bar--gray,.suis-progress-bar__progress--gray{background-color:#bcbcbc}.suis-progress-bar--dark,.suis-progress-bar__progress--dark{background-color:#000}.suis-progress-bar--xs,.suis-progress-bar__progress--xs{height:.375rem}.suis-progress-bar--sm,.suis-progress-bar__progress--sm{height:.5rem}.suis-progress-bar--md,.suis-progress-bar__progress--md{height:.625rem}.suis-progress-bar--lg,.suis-progress-bar__progress--lg{height:.75rem}.suis-progress-bar--xl,.suis-progress-bar__progress--xl{height:1rem}\n"] }]
2001
+ }] });
2187
2002
 
2188
2003
  class SuisSpinnerContainerComponent {
2189
2004
  constructor() {
2190
2005
  /**
2191
2006
  * Sets the size of the spinner. Type of SuisSize. By default set to 'md'.
2192
2007
  */
2193
- this.size = 'md';
2008
+ this.size = input('md');
2194
2009
  /**
2195
2010
  * Sets the color of the spinner. Type of SuisColor. By default set to 'primary'.
2196
2011
  */
2197
- this.color = 'primary';
2012
+ this.color = input('primary');
2198
2013
  /**
2199
2014
  * Adds blur effect to the container background. By default set to false.
2200
2015
  */
2201
- this.blur = false;
2016
+ this.blur = input(false);
2202
2017
  /**
2203
2018
  * Position absolute to the parent element (must have relative position). By default set to false.
2204
2019
  */
2205
- this.absolute = false;
2020
+ this.absolute = input(false);
2206
2021
  }
2207
2022
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSpinnerContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2208
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: SuisSpinnerContainerComponent, isStandalone: true, selector: "suis-spinner-container", inputs: { size: "size", color: "color", blur: "blur", absolute: "absolute" }, ngImport: i0, template: "<div\n class=\"suis-spinner-container\"\n [class.suis-spinner-container--blur]=\"blur\"\n [class.suis-spinner-container--absolute]=\"absolute\"\n>\n <suis-spinner [size]=\"size\" [color]=\"color\"></suis-spinner>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;height:100%}.suis-spinner-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.suis-spinner-container--blur{background-color:#ffffff20;-webkit-backdrop-filter:blur(.25rem);backdrop-filter:blur(.25rem)}.suis-spinner-container--absolute{position:absolute;inset:0}\n"], dependencies: [{ kind: "component", type: SuisSpinnerComponent, selector: "suis-spinner", inputs: ["size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2023
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: SuisSpinnerContainerComponent, isStandalone: true, selector: "suis-spinner-container", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, blur: { classPropertyName: "blur", publicName: "blur", isSignal: true, isRequired: false, transformFunction: null }, absolute: { classPropertyName: "absolute", publicName: "absolute", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"suis-spinner-container\"\n [class.suis-spinner-container--blur]=\"blur()\"\n [class.suis-spinner-container--absolute]=\"absolute()\"\n>\n <suis-spinner [size]=\"size()\" [color]=\"color()\"></suis-spinner>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;height:100%}.suis-spinner-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.suis-spinner-container--blur{background-color:#ffffff20;-webkit-backdrop-filter:blur(.25rem);backdrop-filter:blur(.25rem)}.suis-spinner-container--absolute{position:absolute;inset:0}\n"], dependencies: [{ kind: "component", type: SuisSpinnerComponent, selector: "suis-spinner", inputs: ["size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2209
2024
  }
2210
2025
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisSpinnerContainerComponent, decorators: [{
2211
2026
  type: Component,
2212
- args: [{ selector: 'suis-spinner-container', imports: [SuisSpinnerComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"suis-spinner-container\"\n [class.suis-spinner-container--blur]=\"blur\"\n [class.suis-spinner-container--absolute]=\"absolute\"\n>\n <suis-spinner [size]=\"size\" [color]=\"color\"></suis-spinner>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;height:100%}.suis-spinner-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.suis-spinner-container--blur{background-color:#ffffff20;-webkit-backdrop-filter:blur(.25rem);backdrop-filter:blur(.25rem)}.suis-spinner-container--absolute{position:absolute;inset:0}\n"] }]
2213
- }], propDecorators: { size: [{
2214
- type: Input
2215
- }], color: [{
2216
- type: Input
2217
- }], blur: [{
2218
- type: Input
2219
- }], absolute: [{
2220
- type: Input
2221
- }] } });
2027
+ args: [{ selector: 'suis-spinner-container', imports: [SuisSpinnerComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"suis-spinner-container\"\n [class.suis-spinner-container--blur]=\"blur()\"\n [class.suis-spinner-container--absolute]=\"absolute()\"\n>\n <suis-spinner [size]=\"size()\" [color]=\"color()\"></suis-spinner>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;height:100%}.suis-spinner-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.suis-spinner-container--blur{background-color:#ffffff20;-webkit-backdrop-filter:blur(.25rem);backdrop-filter:blur(.25rem)}.suis-spinner-container--absolute{position:absolute;inset:0}\n"] }]
2028
+ }] });
2222
2029
 
2223
2030
  class SuisTableCellDirective {
2224
2031
  constructor() {
@@ -2241,6 +2048,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
2241
2048
 
2242
2049
  class SuisTableColumnDirective {
2243
2050
  constructor() {
2051
+ this.cell = contentChild(SuisTableCellDirective);
2244
2052
  this._name = '';
2245
2053
  this._orderProperty = '';
2246
2054
  }
@@ -2258,7 +2066,7 @@ class SuisTableColumnDirective {
2258
2066
  this._orderProperty = orderProperty;
2259
2067
  }
2260
2068
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisTableColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2261
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: SuisTableColumnDirective, isStandalone: true, selector: "[suisTableColumn]", inputs: { name: ["suisTableColumn", "name"], orderProperty: ["suisTableColumnOrderProperty", "orderProperty"] }, queries: [{ propertyName: "cell", first: true, predicate: SuisTableCellDirective, descendants: true }], ngImport: i0 }); }
2069
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.0.7", type: SuisTableColumnDirective, isStandalone: true, selector: "[suisTableColumn]", inputs: { name: ["suisTableColumn", "name"], orderProperty: ["suisTableColumnOrderProperty", "orderProperty"] }, queries: [{ propertyName: "cell", first: true, predicate: SuisTableCellDirective, descendants: true, isSignal: true }], ngImport: i0 }); }
2262
2070
  }
2263
2071
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisTableColumnDirective, decorators: [{
2264
2072
  type: Directive,
@@ -2266,10 +2074,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
2266
2074
  selector: '[suisTableColumn]',
2267
2075
  standalone: true,
2268
2076
  }]
2269
- }], propDecorators: { cell: [{
2270
- type: ContentChild,
2271
- args: [SuisTableCellDirective]
2272
- }], name: [{
2077
+ }], propDecorators: { name: [{
2273
2078
  type: Input,
2274
2079
  args: ['suisTableColumn']
2275
2080
  }], orderProperty: [{
@@ -2279,70 +2084,62 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
2279
2084
 
2280
2085
  class SuisTableComponent {
2281
2086
  constructor() {
2087
+ /** @internal */
2088
+ this.columns = contentChildren(SuisTableColumnDirective);
2282
2089
  /**
2283
2090
  * Data items collection. Type of SuisTableDataItem[]. By default set to empty array. Required input.
2284
2091
  */
2285
- this.data = [];
2092
+ this.data = input.required();
2286
2093
  /**
2287
2094
  * Specifies property that data is ordered. By default set to empty string.
2288
2095
  */
2289
- this.orderBy = '';
2096
+ this.orderBy = input('');
2097
+ this._orderBy = signal('');
2290
2098
  /**
2291
2099
  * Specifies sort condition. Type of SuisSort - 'asc' and 'desc'. By default set to 'asc'.
2292
2100
  */
2293
- this.sortBy = 'asc';
2101
+ this.sortBy = input('asc');
2102
+ this._sortBy = signal('asc');
2294
2103
  /**
2295
2104
  * Shows loading spinner and blurs data. By default set to false.
2296
2105
  */
2297
- this.loading = false;
2106
+ this.loading = input(false);
2298
2107
  /**
2299
2108
  * Message shown in table when there is no data to display.
2300
2109
  */
2301
- this.emptyMessage = 'There is no data to be displayed in the table';
2110
+ this.emptyMessage = input('There is no data to be displayed in the table');
2302
2111
  /**
2303
2112
  * Emits value on sort condition change.
2304
2113
  */
2305
- this.sortByChange = new EventEmitter();
2114
+ this.sortByChange = output();
2306
2115
  /**
2307
2116
  * Emits value on order property change.
2308
2117
  */
2309
- this.orderByChange = new EventEmitter();
2118
+ this.orderByChange = output();
2119
+ effect(() => {
2120
+ this._orderBy.set(this.orderBy());
2121
+ });
2122
+ effect(() => {
2123
+ this._sortBy.set(this.sortBy());
2124
+ });
2310
2125
  }
2311
2126
  onColumnClick(property) {
2312
- if (this.orderBy !== property) {
2313
- this.orderBy = property;
2314
- this.orderByChange.emit(this.orderBy);
2127
+ if (this._orderBy() !== property) {
2128
+ this._orderBy.set(property);
2129
+ this.orderByChange.emit(this._orderBy());
2315
2130
  }
2316
2131
  else {
2317
- this.sortBy = this.sortBy === 'asc' ? 'desc' : 'asc';
2318
- this.sortByChange.emit(this.sortBy);
2132
+ this._sortBy.update((value) => (value === 'asc' ? 'desc' : 'asc'));
2133
+ this.sortByChange.emit(this._sortBy());
2319
2134
  }
2320
2135
  }
2321
2136
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2322
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisTableComponent, isStandalone: true, selector: "suis-table", inputs: { data: "data", orderBy: "orderBy", sortBy: "sortBy", loading: "loading", emptyMessage: "emptyMessage" }, outputs: { sortByChange: "sortByChange", orderByChange: "orderByChange" }, queries: [{ propertyName: "columns", predicate: SuisTableColumnDirective }], ngImport: i0, template: "@if (columns) {\n<table class=\"suis-table\">\n <thead>\n <tr>\n @for (column of columns; track column) {\n <th\n [class.pointer]=\"column.orderProperty\"\n (click)=\"\n column.orderProperty ? onColumnClick(column.orderProperty) : undefined\n \"\n >\n <div class=\"suis-table__header\">\n <span>\n {{ column.name }}\n </span>\n @if (column.orderProperty && column.orderProperty === orderBy) {\n <suis-icon\n [type]=\"sortBy === 'asc' ? 'chevron-down' : 'chevron-up'\"\n size=\"lg\"\n color=\"white\"\n ></suis-icon>\n }\n </div>\n </th>\n } @if (!columns?.length) {\n <th></th>\n }\n </tr>\n </thead>\n <tbody>\n @for (item of data || []; track item) {\n <tr>\n @for (column of columns; track column) {\n <td>\n <ng-container\n *ngTemplateOutlet=\"\n column.cell!.templateRef;\n context: { $implicit: item }\n \"\n ></ng-container>\n </td>\n }\n </tr>\n } @if (!data?.length) {\n <tr>\n <td class=\"empty\" [attr.colspan]=\"columns ? columns.length : 1\">\n {{ loading ? '' : emptyMessage }}\n </td>\n </tr>\n } @if (loading) {\n <suis-spinner-container\n [absolute]=\"true\"\n [blur]=\"true\"\n [color]=\"'secondary'\"\n ></suis-spinner-container>\n }\n </tbody>\n</table>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-table{width:100%;border-collapse:collapse}.suis-table thead tr th{font-weight:500;padding:.75rem 1rem;background-color:#273c75;color:#fff}.suis-table thead tr th:first-child{border-top-left-radius:.25rem}.suis-table thead tr th:last-child{border-top-right-radius:.25rem}.suis-table thead tr th.pointer{cursor:pointer}.suis-table thead tr th.pointer:hover{background-color:#273c75d9}.suis-table thead tr th>.suis-table__header{display:flex;align-items:center}.suis-table thead tr th>.suis-table__header suis-icon{display:block;margin-left:.125rem}.suis-table tbody{position:relative;background-color:#f5f6fa}.suis-table tbody tr{border-bottom:.0625rem solid #dcdde1}.suis-table tbody tr td{padding:.375rem 1rem}.suis-table tbody tr td.empty{text-align:center;padding:1.5rem 1rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }, { kind: "component", type: SuisSpinnerContainerComponent, selector: "suis-spinner-container", inputs: ["size", "color", "blur", "absolute"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2137
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisTableComponent, isStandalone: true, selector: "suis-table", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, orderBy: { classPropertyName: "orderBy", publicName: "orderBy", isSignal: true, isRequired: false, transformFunction: null }, sortBy: { classPropertyName: "sortBy", publicName: "sortBy", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sortByChange: "sortByChange", orderByChange: "orderByChange" }, queries: [{ propertyName: "columns", predicate: SuisTableColumnDirective, isSignal: true }], ngImport: i0, template: "@if (columns()) {\n<table class=\"suis-table\">\n <thead>\n <tr>\n @for (column of columns(); track column) {\n <th\n [class.pointer]=\"column.orderProperty\"\n (click)=\"\n column.orderProperty ? onColumnClick(column.orderProperty) : undefined\n \"\n >\n <div class=\"suis-table__header\">\n <span>\n {{ column.name }}\n </span>\n @if (column.orderProperty && column.orderProperty === _orderBy()) {\n <suis-icon\n [type]=\"_sortBy() === 'asc' ? 'chevron-down' : 'chevron-up'\"\n size=\"lg\"\n color=\"white\"\n ></suis-icon>\n }\n </div>\n </th>\n } @if (!columns()?.length) {\n <th></th>\n }\n </tr>\n </thead>\n <tbody>\n @for (item of data() || []; track item) {\n <tr>\n @for (column of columns(); track column) {\n <td>\n <ng-container\n *ngTemplateOutlet=\"\n column.cell()!.templateRef;\n context: { $implicit: item }\n \"\n ></ng-container>\n </td>\n }\n </tr>\n } @if (!data()?.length) {\n <tr>\n <td class=\"empty\" [attr.colspan]=\"columns() ? columns().length : 1\">\n {{ loading() ? '' : emptyMessage() }}\n </td>\n </tr>\n } @if (loading()) {\n <suis-spinner-container\n [absolute]=\"true\"\n [blur]=\"true\"\n [color]=\"'secondary'\"\n ></suis-spinner-container>\n }\n </tbody>\n</table>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-table{width:100%;border-collapse:collapse}.suis-table thead tr th{font-weight:500;padding:.75rem 1rem;background-color:#273c75;color:#fff}.suis-table thead tr th:first-child{border-top-left-radius:.25rem}.suis-table thead tr th:last-child{border-top-right-radius:.25rem}.suis-table thead tr th.pointer{cursor:pointer}.suis-table thead tr th.pointer:hover{background-color:#273c75d9}.suis-table thead tr th>.suis-table__header{display:flex;align-items:center}.suis-table thead tr th>.suis-table__header suis-icon{display:block;margin-left:.125rem}.suis-table tbody{position:relative;background-color:#f5f6fa}.suis-table tbody tr{border-bottom:.0625rem solid #dcdde1}.suis-table tbody tr td{padding:.375rem 1rem}.suis-table tbody tr td.empty{text-align:center;padding:1.5rem 1rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }, { kind: "component", type: SuisSpinnerContainerComponent, selector: "suis-spinner-container", inputs: ["size", "color", "blur", "absolute"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2323
2138
  }
2324
2139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisTableComponent, decorators: [{
2325
2140
  type: Component,
2326
- args: [{ selector: 'suis-table', imports: [NgTemplateOutlet, SuisIconComponent, SuisSpinnerContainerComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (columns) {\n<table class=\"suis-table\">\n <thead>\n <tr>\n @for (column of columns; track column) {\n <th\n [class.pointer]=\"column.orderProperty\"\n (click)=\"\n column.orderProperty ? onColumnClick(column.orderProperty) : undefined\n \"\n >\n <div class=\"suis-table__header\">\n <span>\n {{ column.name }}\n </span>\n @if (column.orderProperty && column.orderProperty === orderBy) {\n <suis-icon\n [type]=\"sortBy === 'asc' ? 'chevron-down' : 'chevron-up'\"\n size=\"lg\"\n color=\"white\"\n ></suis-icon>\n }\n </div>\n </th>\n } @if (!columns?.length) {\n <th></th>\n }\n </tr>\n </thead>\n <tbody>\n @for (item of data || []; track item) {\n <tr>\n @for (column of columns; track column) {\n <td>\n <ng-container\n *ngTemplateOutlet=\"\n column.cell!.templateRef;\n context: { $implicit: item }\n \"\n ></ng-container>\n </td>\n }\n </tr>\n } @if (!data?.length) {\n <tr>\n <td class=\"empty\" [attr.colspan]=\"columns ? columns.length : 1\">\n {{ loading ? '' : emptyMessage }}\n </td>\n </tr>\n } @if (loading) {\n <suis-spinner-container\n [absolute]=\"true\"\n [blur]=\"true\"\n [color]=\"'secondary'\"\n ></suis-spinner-container>\n }\n </tbody>\n</table>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-table{width:100%;border-collapse:collapse}.suis-table thead tr th{font-weight:500;padding:.75rem 1rem;background-color:#273c75;color:#fff}.suis-table thead tr th:first-child{border-top-left-radius:.25rem}.suis-table thead tr th:last-child{border-top-right-radius:.25rem}.suis-table thead tr th.pointer{cursor:pointer}.suis-table thead tr th.pointer:hover{background-color:#273c75d9}.suis-table thead tr th>.suis-table__header{display:flex;align-items:center}.suis-table thead tr th>.suis-table__header suis-icon{display:block;margin-left:.125rem}.suis-table tbody{position:relative;background-color:#f5f6fa}.suis-table tbody tr{border-bottom:.0625rem solid #dcdde1}.suis-table tbody tr td{padding:.375rem 1rem}.suis-table tbody tr td.empty{text-align:center;padding:1.5rem 1rem}\n"] }]
2327
- }], propDecorators: { columns: [{
2328
- type: ContentChildren,
2329
- args: [SuisTableColumnDirective]
2330
- }], data: [{
2331
- type: Input,
2332
- args: [{ required: true }]
2333
- }], orderBy: [{
2334
- type: Input
2335
- }], sortBy: [{
2336
- type: Input
2337
- }], loading: [{
2338
- type: Input
2339
- }], emptyMessage: [{
2340
- type: Input
2341
- }], sortByChange: [{
2342
- type: Output
2343
- }], orderByChange: [{
2344
- type: Output
2345
- }] } });
2141
+ args: [{ selector: 'suis-table', imports: [NgTemplateOutlet, SuisIconComponent, SuisSpinnerContainerComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (columns()) {\n<table class=\"suis-table\">\n <thead>\n <tr>\n @for (column of columns(); track column) {\n <th\n [class.pointer]=\"column.orderProperty\"\n (click)=\"\n column.orderProperty ? onColumnClick(column.orderProperty) : undefined\n \"\n >\n <div class=\"suis-table__header\">\n <span>\n {{ column.name }}\n </span>\n @if (column.orderProperty && column.orderProperty === _orderBy()) {\n <suis-icon\n [type]=\"_sortBy() === 'asc' ? 'chevron-down' : 'chevron-up'\"\n size=\"lg\"\n color=\"white\"\n ></suis-icon>\n }\n </div>\n </th>\n } @if (!columns()?.length) {\n <th></th>\n }\n </tr>\n </thead>\n <tbody>\n @for (item of data() || []; track item) {\n <tr>\n @for (column of columns(); track column) {\n <td>\n <ng-container\n *ngTemplateOutlet=\"\n column.cell()!.templateRef;\n context: { $implicit: item }\n \"\n ></ng-container>\n </td>\n }\n </tr>\n } @if (!data()?.length) {\n <tr>\n <td class=\"empty\" [attr.colspan]=\"columns() ? columns().length : 1\">\n {{ loading() ? '' : emptyMessage() }}\n </td>\n </tr>\n } @if (loading()) {\n <suis-spinner-container\n [absolute]=\"true\"\n [blur]=\"true\"\n [color]=\"'secondary'\"\n ></suis-spinner-container>\n }\n </tbody>\n</table>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-table{width:100%;border-collapse:collapse}.suis-table thead tr th{font-weight:500;padding:.75rem 1rem;background-color:#273c75;color:#fff}.suis-table thead tr th:first-child{border-top-left-radius:.25rem}.suis-table thead tr th:last-child{border-top-right-radius:.25rem}.suis-table thead tr th.pointer{cursor:pointer}.suis-table thead tr th.pointer:hover{background-color:#273c75d9}.suis-table thead tr th>.suis-table__header{display:flex;align-items:center}.suis-table thead tr th>.suis-table__header suis-icon{display:block;margin-left:.125rem}.suis-table tbody{position:relative;background-color:#f5f6fa}.suis-table tbody tr{border-bottom:.0625rem solid #dcdde1}.suis-table tbody tr td{padding:.375rem 1rem}.suis-table tbody tr td.empty{text-align:center;padding:1.5rem 1rem}\n"] }]
2142
+ }], ctorParameters: () => [] });
2346
2143
 
2347
2144
  class SuisTableModule {
2348
2145
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -2376,10 +2173,10 @@ class SuisTabDirective {
2376
2173
  */
2377
2174
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2378
2175
  this.templateRef = inject((TemplateRef));
2379
- this.name = '';
2176
+ this.name = input.required({ alias: 'suisTab' });
2380
2177
  }
2381
2178
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisTabDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2382
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: SuisTabDirective, isStandalone: true, selector: "[suisTab]", inputs: { name: ["suisTab", "name"] }, ngImport: i0 }); }
2179
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.7", type: SuisTabDirective, isStandalone: true, selector: "[suisTab]", inputs: { name: { classPropertyName: "name", publicName: "suisTab", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
2383
2180
  }
2384
2181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisTabDirective, decorators: [{
2385
2182
  type: Directive,
@@ -2387,16 +2184,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
2387
2184
  selector: '[suisTab]',
2388
2185
  standalone: true,
2389
2186
  }]
2390
- }], propDecorators: { name: [{
2391
- type: Input,
2392
- args: [{ required: true, alias: 'suisTab' }]
2393
- }] } });
2187
+ }] });
2394
2188
 
2395
2189
  class SuisTabActionsPipe {
2396
2190
  transform(tabs) {
2397
2191
  if (!tabs)
2398
2192
  return [];
2399
- return tabs.toArray().map((tab) => tab.name);
2193
+ return tabs.map((tab) => tab.name());
2400
2194
  }
2401
2195
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisTabActionsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2402
2196
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: SuisTabActionsPipe, isStandalone: true, name: "suisTabActions" }); }
@@ -2414,7 +2208,7 @@ class SuisTabTemplatePipe {
2414
2208
  transform(tabs, currentTab) {
2415
2209
  if (!tabs)
2416
2210
  return null;
2417
- const tab = tabs.toArray().find((tab) => tab.name === currentTab);
2211
+ const tab = tabs.find((tab) => tab.name() === currentTab);
2418
2212
  if (!tab)
2419
2213
  return null;
2420
2214
  return tab.templateRef;
@@ -2432,33 +2226,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
2432
2226
 
2433
2227
  class SuisTabsComponent {
2434
2228
  constructor() {
2229
+ /** @internal */
2230
+ this.tabs = contentChildren(SuisTabDirective);
2435
2231
  /**
2436
2232
  * Name of the current displayed tab. Must correspond with the name passed into suisTab directive. By default set to empty string.
2437
2233
  */
2438
- this.currentTab = '';
2234
+ this.currentTab = input('');
2235
+ this._currentTab = signal('');
2439
2236
  /**
2440
2237
  * Emits name of the clicked tab.
2441
2238
  */
2442
- this.tabClicked = new EventEmitter();
2239
+ this.tabClicked = output();
2240
+ effect(() => {
2241
+ this._currentTab.set(this.currentTab());
2242
+ });
2443
2243
  }
2444
2244
  onTabActionClick(name) {
2445
- this.currentTab = name;
2446
- this.tabClicked.emit(name);
2245
+ this._currentTab.set(name);
2246
+ this.tabClicked.emit(this._currentTab());
2447
2247
  }
2448
2248
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2449
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisTabsComponent, isStandalone: true, selector: "suis-tabs", inputs: { currentTab: "currentTab" }, outputs: { tabClicked: "tabClicked" }, queries: [{ propertyName: "tabs", predicate: SuisTabDirective }], ngImport: i0, template: "<div class=\"suis-tabs\">\n <div class=\"suis-tabs__actions\">\n @for (name of tabs | suisTabActions; track name) {\n <button\n [class.active]=\"name === currentTab\"\n (click)=\"onTabActionClick(name)\"\n >\n {{ name }}\n </button>\n }\n </div>\n <div class=\"suis-tabs__content\">\n <ng-container\n *ngTemplateOutlet=\"tabs | suisTabTemplate : currentTab\"\n ></ng-container>\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-tabs__actions{width:100%;display:flex}.suis-tabs__actions button{flex:1;border:0;background-color:#fff;border-bottom:.1875rem solid #f5f6fa;margin:0 .5rem;padding:1rem;transition:.5s border-bottom-color ease-in-out}.suis-tabs__actions button:first-child{margin-left:0}.suis-tabs__actions button:last-child{margin-right:0}.suis-tabs__actions button.active{font-weight:500;color:#192a56;border-bottom-color:#192a56}.suis-tabs__actions button:hover{border-bottom-color:#273c75;cursor:pointer}.suis-tabs__content{margin-top:1rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: SuisTabActionsPipe, name: "suisTabActions" }, { kind: "pipe", type: SuisTabTemplatePipe, name: "suisTabTemplate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2249
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisTabsComponent, isStandalone: true, selector: "suis-tabs", inputs: { currentTab: { classPropertyName: "currentTab", publicName: "currentTab", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tabClicked: "tabClicked" }, queries: [{ propertyName: "tabs", predicate: SuisTabDirective, isSignal: true }], ngImport: i0, template: "<div class=\"suis-tabs\">\n <div class=\"suis-tabs__actions\">\n @for (name of tabs() | suisTabActions; track name) {\n <button\n [class.active]=\"name === _currentTab()\"\n (click)=\"onTabActionClick(name)\"\n >\n {{ name }}\n </button>\n }\n </div>\n <div class=\"suis-tabs__content\">\n <ng-container\n *ngTemplateOutlet=\"tabs() | suisTabTemplate : _currentTab()\"\n ></ng-container>\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-tabs__actions{width:100%;display:flex}.suis-tabs__actions button{flex:1;border:0;background-color:#fff;border-bottom:.1875rem solid #f5f6fa;margin:0 .5rem;padding:1rem;transition:.5s border-bottom-color ease-in-out}.suis-tabs__actions button:first-child{margin-left:0}.suis-tabs__actions button:last-child{margin-right:0}.suis-tabs__actions button.active{font-weight:500;color:#192a56;border-bottom-color:#192a56}.suis-tabs__actions button:hover{border-bottom-color:#273c75;cursor:pointer}.suis-tabs__content{margin-top:1rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: SuisTabActionsPipe, name: "suisTabActions" }, { kind: "pipe", type: SuisTabTemplatePipe, name: "suisTabTemplate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2450
2250
  }
2451
2251
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisTabsComponent, decorators: [{
2452
2252
  type: Component,
2453
- args: [{ selector: 'suis-tabs', imports: [NgTemplateOutlet, SuisTabActionsPipe, SuisTabTemplatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-tabs\">\n <div class=\"suis-tabs__actions\">\n @for (name of tabs | suisTabActions; track name) {\n <button\n [class.active]=\"name === currentTab\"\n (click)=\"onTabActionClick(name)\"\n >\n {{ name }}\n </button>\n }\n </div>\n <div class=\"suis-tabs__content\">\n <ng-container\n *ngTemplateOutlet=\"tabs | suisTabTemplate : currentTab\"\n ></ng-container>\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-tabs__actions{width:100%;display:flex}.suis-tabs__actions button{flex:1;border:0;background-color:#fff;border-bottom:.1875rem solid #f5f6fa;margin:0 .5rem;padding:1rem;transition:.5s border-bottom-color ease-in-out}.suis-tabs__actions button:first-child{margin-left:0}.suis-tabs__actions button:last-child{margin-right:0}.suis-tabs__actions button.active{font-weight:500;color:#192a56;border-bottom-color:#192a56}.suis-tabs__actions button:hover{border-bottom-color:#273c75;cursor:pointer}.suis-tabs__content{margin-top:1rem}\n"] }]
2454
- }], propDecorators: { tabs: [{
2455
- type: ContentChildren,
2456
- args: [SuisTabDirective]
2457
- }], currentTab: [{
2458
- type: Input
2459
- }], tabClicked: [{
2460
- type: Output
2461
- }] } });
2253
+ args: [{ selector: 'suis-tabs', imports: [NgTemplateOutlet, SuisTabActionsPipe, SuisTabTemplatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-tabs\">\n <div class=\"suis-tabs__actions\">\n @for (name of tabs() | suisTabActions; track name) {\n <button\n [class.active]=\"name === _currentTab()\"\n (click)=\"onTabActionClick(name)\"\n >\n {{ name }}\n </button>\n }\n </div>\n <div class=\"suis-tabs__content\">\n <ng-container\n *ngTemplateOutlet=\"tabs() | suisTabTemplate : _currentTab()\"\n ></ng-container>\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-tabs__actions{width:100%;display:flex}.suis-tabs__actions button{flex:1;border:0;background-color:#fff;border-bottom:.1875rem solid #f5f6fa;margin:0 .5rem;padding:1rem;transition:.5s border-bottom-color ease-in-out}.suis-tabs__actions button:first-child{margin-left:0}.suis-tabs__actions button:last-child{margin-right:0}.suis-tabs__actions button.active{font-weight:500;color:#192a56;border-bottom-color:#192a56}.suis-tabs__actions button:hover{border-bottom-color:#273c75;cursor:pointer}.suis-tabs__content{margin-top:1rem}\n"] }]
2254
+ }], ctorParameters: () => [] });
2462
2255
 
2463
2256
  class SuisTabsModule {
2464
2257
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -2479,7 +2272,7 @@ class SuisTextAreaComponent extends SuisInputBase {
2479
2272
  /**
2480
2273
  * Placeholder text displayed in input. By default set to empty string.
2481
2274
  */
2482
- this.placeholder = '';
2275
+ this.placeholder = input('');
2483
2276
  /** @internal */
2484
2277
  this.value = '';
2485
2278
  }
@@ -2497,13 +2290,13 @@ class SuisTextAreaComponent extends SuisInputBase {
2497
2290
  this.cdRef.markForCheck();
2498
2291
  }
2499
2292
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisTextAreaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2500
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: SuisTextAreaComponent, isStandalone: true, selector: "suis-text-area", inputs: { placeholder: "placeholder" }, providers: [
2293
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: SuisTextAreaComponent, isStandalone: true, selector: "suis-text-area", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
2501
2294
  {
2502
2295
  provide: NG_VALUE_ACCESSOR,
2503
2296
  multi: true,
2504
2297
  useExisting: forwardRef(() => SuisTextAreaComponent),
2505
2298
  },
2506
- ], usesInheritance: true, ngImport: i0, template: "<textarea\n class=\"suis-text-area\"\n [class.suis-text-area--invalid]=\"invalid\"\n [class.suis-text-area--readonly]=\"readonly\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n></textarea>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-text-area{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;min-height:6.25rem}.suis-text-area:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-text-area--invalid{border:.0625rem solid #ff4757}.suis-text-area--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-text-area--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-text-area--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2299
+ ], usesInheritance: true, ngImport: i0, template: "<textarea\n class=\"suis-text-area\"\n [class.suis-text-area--invalid]=\"invalid()\"\n [class.suis-text-area--readonly]=\"readonly()\"\n [attr.id]=\"id()\"\n [attr.name]=\"name()\"\n [value]=\"value\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"readonly()\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n></textarea>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-text-area{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;min-height:6.25rem}.suis-text-area:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-text-area--invalid{border:.0625rem solid #ff4757}.suis-text-area--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-text-area--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-text-area--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2507
2300
  }
2508
2301
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisTextAreaComponent, decorators: [{
2509
2302
  type: Component,
@@ -2513,10 +2306,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
2513
2306
  multi: true,
2514
2307
  useExisting: forwardRef(() => SuisTextAreaComponent),
2515
2308
  },
2516
- ], template: "<textarea\n class=\"suis-text-area\"\n [class.suis-text-area--invalid]=\"invalid\"\n [class.suis-text-area--readonly]=\"readonly\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n></textarea>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-text-area{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;min-height:6.25rem}.suis-text-area:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-text-area--invalid{border:.0625rem solid #ff4757}.suis-text-area--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-text-area--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-text-area--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}\n"] }]
2517
- }], propDecorators: { placeholder: [{
2518
- type: Input
2519
- }] } });
2309
+ ], template: "<textarea\n class=\"suis-text-area\"\n [class.suis-text-area--invalid]=\"invalid()\"\n [class.suis-text-area--readonly]=\"readonly()\"\n [attr.id]=\"id()\"\n [attr.name]=\"name()\"\n [value]=\"value\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"readonly()\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n></textarea>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-text-area{width:100%;background-color:#fff;border-radius:.25rem;padding:.5rem 1rem;border:.0625rem solid #dcdde1;min-height:2.625rem;min-height:6.25rem}.suis-text-area:focus{border:.0625rem solid #192a56;box-shadow:0 2px 5px #192a56bf;outline:none}.suis-text-area--invalid{border:.0625rem solid #ff4757}.suis-text-area--invalid:focus{border:.0625rem solid #ff4757;box-shadow:0 2px 5px #ff4757bf}.suis-text-area--readonly{background-color:#f5f6fa;cursor:not-allowed}.suis-text-area--readonly:focus{border:.0625rem solid #dcdde1;box-shadow:none;outline:none}\n"] }]
2310
+ }] });
2520
2311
 
2521
2312
  var SuisTitle;
2522
2313
  (function (SuisTitle) {
@@ -2532,17 +2323,15 @@ class SuisTitleComponent {
2532
2323
  /**
2533
2324
  * Sets level of the header tag. Type of SuisTitle. By default set to H1.
2534
2325
  */
2535
- this.level = SuisTitle.H1;
2326
+ this.level = input(SuisTitle.H1);
2536
2327
  }
2537
2328
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2538
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisTitleComponent, isStandalone: true, selector: "suis-title", inputs: { level: "level" }, ngImport: i0, template: "@switch (level) { @case (SuisTitle.H1) {\n<h1 class=\"suis-title--h1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h1>\n} @case (SuisTitle.H2) {\n<h2 class=\"suis-title--h2\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h2>\n} @case (SuisTitle.H3) {\n<h3 class=\"suis-title--h3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h3>\n} }\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-title--h1{color:#192a56;font-weight:600;font-size:1.25rem}.suis-title--h2{color:#273c75;font-weight:500;font-size:1.125rem}.suis-title--h3{color:#bcbcbc;font-weight:400;font-size:1rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2329
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisTitleComponent, isStandalone: true, selector: "suis-title", inputs: { level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@switch (level()) { @case (SuisTitle.H1) {\n<h1 class=\"suis-title--h1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h1>\n} @case (SuisTitle.H2) {\n<h2 class=\"suis-title--h2\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h2>\n} @case (SuisTitle.H3) {\n<h3 class=\"suis-title--h3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h3>\n} }\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-title--h1{color:#192a56;font-weight:600;font-size:1.25rem}.suis-title--h2{color:#273c75;font-weight:500;font-size:1.125rem}.suis-title--h3{color:#bcbcbc;font-weight:400;font-size:1rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2539
2330
  }
2540
2331
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisTitleComponent, decorators: [{
2541
2332
  type: Component,
2542
- args: [{ selector: 'suis-title', imports: [NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "@switch (level) { @case (SuisTitle.H1) {\n<h1 class=\"suis-title--h1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h1>\n} @case (SuisTitle.H2) {\n<h2 class=\"suis-title--h2\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h2>\n} @case (SuisTitle.H3) {\n<h3 class=\"suis-title--h3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h3>\n} }\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-title--h1{color:#192a56;font-weight:600;font-size:1.25rem}.suis-title--h2{color:#273c75;font-weight:500;font-size:1.125rem}.suis-title--h3{color:#bcbcbc;font-weight:400;font-size:1rem}\n"] }]
2543
- }], propDecorators: { level: [{
2544
- type: Input
2545
- }] } });
2333
+ args: [{ selector: 'suis-title', imports: [NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "@switch (level()) { @case (SuisTitle.H1) {\n<h1 class=\"suis-title--h1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h1>\n} @case (SuisTitle.H2) {\n<h2 class=\"suis-title--h2\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h2>\n} @case (SuisTitle.H3) {\n<h3 class=\"suis-title--h3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h3>\n} }\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-title--h1{color:#192a56;font-weight:600;font-size:1.25rem}.suis-title--h2{color:#273c75;font-weight:500;font-size:1.125rem}.suis-title--h3{color:#bcbcbc;font-weight:400;font-size:1rem}\n"] }]
2334
+ }] });
2546
2335
 
2547
2336
  class SuisToggleComponent extends SuisCheckboxBase {
2548
2337
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisToggleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
@@ -2552,7 +2341,7 @@ class SuisToggleComponent extends SuisCheckboxBase {
2552
2341
  multi: true,
2553
2342
  useExisting: forwardRef(() => SuisToggleComponent),
2554
2343
  },
2555
- ], usesInheritance: true, ngImport: i0, template: "<input\n type=\"checkbox\"\n class=\"suis-toggle\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [value]=\"value\"\n [disabled]=\"readonly\"\n/>\n\n<suis-label\n class=\"suis-toggle__label\"\n [class.suis-toggle__label--invalid]=\"invalid\"\n [class.suis-toggle__label--readonly]=\"readonly\"\n [for]=\"id\"\n [required]=\"required\"\n [pointer]=\"true\"\n [readonly]=\"readonly\"\n (click)=\"onChange($event)\"\n>\n <div\n [tabindex]=\"readonly ? -1 : 0\"\n class=\"suis-toggle__container\"\n [class.suis-toggle__container--invalid]=\"invalid\"\n [class.suis-toggle__container--readonly]=\"readonly\"\n >\n <div\n class=\"suis-toggle__container__thumb\"\n [class.suis-toggle__container__thumb--active]=\"value\"\n [class.suis-toggle__container__thumb--invalid]=\"invalid\"\n [class.suis-toggle__container__thumb--readonly]=\"readonly\"\n ></div>\n </div>\n <ng-content></ng-content>\n</suis-label>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:flex}.suis-toggle{display:none}.suis-toggle:checked~suis-label ::ng-deep .suis-toggle__container{border:.0625rem solid #192a56}.suis-toggle__label--invalid{color:#ff4757}.suis-toggle__label--readonly{cursor:not-allowed}.suis-toggle__container{width:2.25rem;height:1.25rem;border:.0625rem solid #dcdde1;border-radius:1rem;display:flex;align-items:center;margin-right:.5rem;background-color:#fff}.suis-toggle__container:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-toggle__container--readonly{border:.0625rem solid #dcdde1;cursor:not-allowed}.suis-toggle__container--readonly:focus{box-shadow:none}.suis-toggle__container--invalid{border:.0625rem solid #ff4757}.suis-toggle__container--invalid:focus{box-shadow:0 2px 5px #ff4757bf}.suis-toggle__container__thumb{border-radius:100%;height:.75rem;width:.75rem;background-color:#dcdde1;transform:translate(.25rem);transition:.25s ease-in-out}.suis-toggle__container__thumb--invalid{background-color:#ff4757d9}.suis-toggle__container__thumb--active{background-color:#192a56;transform:translate(1.125rem)}.suis-toggle__container__thumb--readonly{background-color:#dcdde1}\n"], dependencies: [{ kind: "component", type: SuisLabelComponent, selector: "suis-label", inputs: ["for", "required", "pointer", "readonly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2344
+ ], usesInheritance: true, ngImport: i0, template: "<input\n type=\"checkbox\"\n class=\"suis-toggle\"\n [attr.id]=\"id()\"\n [attr.name]=\"name()\"\n [value]=\"value\"\n [disabled]=\"readonly()\"\n/>\n\n<suis-label\n class=\"suis-toggle__label\"\n [class.suis-toggle__label--invalid]=\"invalid()\"\n [class.suis-toggle__label--readonly]=\"readonly()\"\n [for]=\"id()\"\n [required]=\"required()\"\n [pointer]=\"true\"\n [readonly]=\"readonly()\"\n (click)=\"onChange($event)\"\n>\n <div\n [tabindex]=\"readonly() ? -1 : 0\"\n class=\"suis-toggle__container\"\n [class.suis-toggle__container--invalid]=\"invalid()\"\n [class.suis-toggle__container--readonly]=\"readonly()\"\n >\n <div\n class=\"suis-toggle__container__thumb\"\n [class.suis-toggle__container__thumb--active]=\"value\"\n [class.suis-toggle__container__thumb--invalid]=\"invalid()\"\n [class.suis-toggle__container__thumb--readonly]=\"readonly()\"\n ></div>\n </div>\n <ng-content></ng-content>\n</suis-label>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:flex}.suis-toggle{display:none}.suis-toggle:checked~suis-label ::ng-deep .suis-toggle__container{border:.0625rem solid #192a56}.suis-toggle__label--invalid{color:#ff4757}.suis-toggle__label--readonly{cursor:not-allowed}.suis-toggle__container{width:2.25rem;height:1.25rem;border:.0625rem solid #dcdde1;border-radius:1rem;display:flex;align-items:center;margin-right:.5rem;background-color:#fff}.suis-toggle__container:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-toggle__container--readonly{border:.0625rem solid #dcdde1;cursor:not-allowed}.suis-toggle__container--readonly:focus{box-shadow:none}.suis-toggle__container--invalid{border:.0625rem solid #ff4757}.suis-toggle__container--invalid:focus{box-shadow:0 2px 5px #ff4757bf}.suis-toggle__container__thumb{border-radius:100%;height:.75rem;width:.75rem;background-color:#dcdde1;transform:translate(.25rem);transition:.25s ease-in-out}.suis-toggle__container__thumb--invalid{background-color:#ff4757d9}.suis-toggle__container__thumb--active{background-color:#192a56;transform:translate(1.125rem)}.suis-toggle__container__thumb--readonly{background-color:#dcdde1}\n"], dependencies: [{ kind: "component", type: SuisLabelComponent, selector: "suis-label", inputs: ["for", "required", "pointer", "readonly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2556
2345
  }
2557
2346
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisToggleComponent, decorators: [{
2558
2347
  type: Component,
@@ -2562,7 +2351,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
2562
2351
  multi: true,
2563
2352
  useExisting: forwardRef(() => SuisToggleComponent),
2564
2353
  },
2565
- ], template: "<input\n type=\"checkbox\"\n class=\"suis-toggle\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [value]=\"value\"\n [disabled]=\"readonly\"\n/>\n\n<suis-label\n class=\"suis-toggle__label\"\n [class.suis-toggle__label--invalid]=\"invalid\"\n [class.suis-toggle__label--readonly]=\"readonly\"\n [for]=\"id\"\n [required]=\"required\"\n [pointer]=\"true\"\n [readonly]=\"readonly\"\n (click)=\"onChange($event)\"\n>\n <div\n [tabindex]=\"readonly ? -1 : 0\"\n class=\"suis-toggle__container\"\n [class.suis-toggle__container--invalid]=\"invalid\"\n [class.suis-toggle__container--readonly]=\"readonly\"\n >\n <div\n class=\"suis-toggle__container__thumb\"\n [class.suis-toggle__container__thumb--active]=\"value\"\n [class.suis-toggle__container__thumb--invalid]=\"invalid\"\n [class.suis-toggle__container__thumb--readonly]=\"readonly\"\n ></div>\n </div>\n <ng-content></ng-content>\n</suis-label>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:flex}.suis-toggle{display:none}.suis-toggle:checked~suis-label ::ng-deep .suis-toggle__container{border:.0625rem solid #192a56}.suis-toggle__label--invalid{color:#ff4757}.suis-toggle__label--readonly{cursor:not-allowed}.suis-toggle__container{width:2.25rem;height:1.25rem;border:.0625rem solid #dcdde1;border-radius:1rem;display:flex;align-items:center;margin-right:.5rem;background-color:#fff}.suis-toggle__container:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-toggle__container--readonly{border:.0625rem solid #dcdde1;cursor:not-allowed}.suis-toggle__container--readonly:focus{box-shadow:none}.suis-toggle__container--invalid{border:.0625rem solid #ff4757}.suis-toggle__container--invalid:focus{box-shadow:0 2px 5px #ff4757bf}.suis-toggle__container__thumb{border-radius:100%;height:.75rem;width:.75rem;background-color:#dcdde1;transform:translate(.25rem);transition:.25s ease-in-out}.suis-toggle__container__thumb--invalid{background-color:#ff4757d9}.suis-toggle__container__thumb--active{background-color:#192a56;transform:translate(1.125rem)}.suis-toggle__container__thumb--readonly{background-color:#dcdde1}\n"] }]
2354
+ ], template: "<input\n type=\"checkbox\"\n class=\"suis-toggle\"\n [attr.id]=\"id()\"\n [attr.name]=\"name()\"\n [value]=\"value\"\n [disabled]=\"readonly()\"\n/>\n\n<suis-label\n class=\"suis-toggle__label\"\n [class.suis-toggle__label--invalid]=\"invalid()\"\n [class.suis-toggle__label--readonly]=\"readonly()\"\n [for]=\"id()\"\n [required]=\"required()\"\n [pointer]=\"true\"\n [readonly]=\"readonly()\"\n (click)=\"onChange($event)\"\n>\n <div\n [tabindex]=\"readonly() ? -1 : 0\"\n class=\"suis-toggle__container\"\n [class.suis-toggle__container--invalid]=\"invalid()\"\n [class.suis-toggle__container--readonly]=\"readonly()\"\n >\n <div\n class=\"suis-toggle__container__thumb\"\n [class.suis-toggle__container__thumb--active]=\"value\"\n [class.suis-toggle__container__thumb--invalid]=\"invalid()\"\n [class.suis-toggle__container__thumb--readonly]=\"readonly()\"\n ></div>\n </div>\n <ng-content></ng-content>\n</suis-label>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:flex}.suis-toggle{display:none}.suis-toggle:checked~suis-label ::ng-deep .suis-toggle__container{border:.0625rem solid #192a56}.suis-toggle__label--invalid{color:#ff4757}.suis-toggle__label--readonly{cursor:not-allowed}.suis-toggle__container{width:2.25rem;height:1.25rem;border:.0625rem solid #dcdde1;border-radius:1rem;display:flex;align-items:center;margin-right:.5rem;background-color:#fff}.suis-toggle__container:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-toggle__container--readonly{border:.0625rem solid #dcdde1;cursor:not-allowed}.suis-toggle__container--readonly:focus{box-shadow:none}.suis-toggle__container--invalid{border:.0625rem solid #ff4757}.suis-toggle__container--invalid:focus{box-shadow:0 2px 5px #ff4757bf}.suis-toggle__container__thumb{border-radius:100%;height:.75rem;width:.75rem;background-color:#dcdde1;transform:translate(.25rem);transition:.25s ease-in-out}.suis-toggle__container__thumb--invalid{background-color:#ff4757d9}.suis-toggle__container__thumb--active{background-color:#192a56;transform:translate(1.125rem)}.suis-toggle__container__thumb--readonly{background-color:#dcdde1}\n"] }]
2566
2355
  }] });
2567
2356
 
2568
2357
  class SuisToolbarComponent {
@@ -2570,21 +2359,43 @@ class SuisToolbarComponent {
2570
2359
  /**
2571
2360
  * Adds a padding around the content. By default set to false.
2572
2361
  */
2573
- this.spacing = false;
2362
+ this.spacing = input(false);
2574
2363
  }
2575
2364
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2576
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: SuisToolbarComponent, isStandalone: true, selector: "suis-toolbar", inputs: { spacing: "spacing" }, ngImport: i0, template: "<div class=\"suis-toolbar\" [class.suis-toolbar--spacing]=\"spacing\">\n <div>\n <ng-content select=\"[suisToolbarLeft]\"></ng-content>\n </div>\n <div>\n <ng-content select=\"[suisToolbarCenter]\"></ng-content>\n </div>\n <div>\n <ng-content select=\"[suisToolbarRight]\"></ng-content>\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-toolbar{width:100%;display:flex;align-items:center;justify-content:space-between;background-color:#fff;border-bottom:.0625rem solid #dcdde1}.suis-toolbar--spacing{padding:.75rem 1rem}@media (min-width: 768px){.suis-toolbar--spacing{padding:1rem 1.25rem}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2365
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: SuisToolbarComponent, isStandalone: true, selector: "suis-toolbar", inputs: { spacing: { classPropertyName: "spacing", publicName: "spacing", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"suis-toolbar\" [class.suis-toolbar--spacing]=\"spacing()\">\n <div>\n <ng-content select=\"[suisToolbarLeft]\"></ng-content>\n </div>\n <div>\n <ng-content select=\"[suisToolbarCenter]\"></ng-content>\n </div>\n <div>\n <ng-content select=\"[suisToolbarRight]\"></ng-content>\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-toolbar{width:100%;display:flex;align-items:center;justify-content:space-between;background-color:#fff;border-bottom:.0625rem solid #dcdde1}.suis-toolbar--spacing{padding:.75rem 1rem}@media (min-width: 768px){.suis-toolbar--spacing{padding:1rem 1.25rem}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2577
2366
  }
2578
2367
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisToolbarComponent, decorators: [{
2579
2368
  type: Component,
2580
- args: [{ selector: 'suis-toolbar', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-toolbar\" [class.suis-toolbar--spacing]=\"spacing\">\n <div>\n <ng-content select=\"[suisToolbarLeft]\"></ng-content>\n </div>\n <div>\n <ng-content select=\"[suisToolbarCenter]\"></ng-content>\n </div>\n <div>\n <ng-content select=\"[suisToolbarRight]\"></ng-content>\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-toolbar{width:100%;display:flex;align-items:center;justify-content:space-between;background-color:#fff;border-bottom:.0625rem solid #dcdde1}.suis-toolbar--spacing{padding:.75rem 1rem}@media (min-width: 768px){.suis-toolbar--spacing{padding:1rem 1.25rem}}\n"] }]
2581
- }], propDecorators: { spacing: [{
2582
- type: Input
2583
- }] } });
2369
+ args: [{ selector: 'suis-toolbar', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-toolbar\" [class.suis-toolbar--spacing]=\"spacing()\">\n <div>\n <ng-content select=\"[suisToolbarLeft]\"></ng-content>\n </div>\n <div>\n <ng-content select=\"[suisToolbarCenter]\"></ng-content>\n </div>\n <div>\n <ng-content select=\"[suisToolbarRight]\"></ng-content>\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-toolbar{width:100%;display:flex;align-items:center;justify-content:space-between;background-color:#fff;border-bottom:.0625rem solid #dcdde1}.suis-toolbar--spacing{padding:.75rem 1rem}@media (min-width: 768px){.suis-toolbar--spacing{padding:1rem 1.25rem}}\n"] }]
2370
+ }] });
2584
2371
 
2585
2372
  class SuisButtonLinkComponent extends SuisButtonBase {
2373
+ constructor() {
2374
+ super(...arguments);
2375
+ /**
2376
+ * Sets routerLink of the anchor tag. No default value.
2377
+ */
2378
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2379
+ this.routerLink = input.required();
2380
+ /**
2381
+ * Sets target of the anchor tag. No default value.
2382
+ */
2383
+ this.target = input();
2384
+ /**
2385
+ * Sets queryParams of the anchor tag. No default value.
2386
+ */
2387
+ this.queryParams = input();
2388
+ /**
2389
+ * Sets queryParamsHandling of the anchor tag. No default value.
2390
+ */
2391
+ this.queryParamsHandling = input();
2392
+ /**
2393
+ * Sets relativeTo of the anchor tag. No default value.
2394
+ */
2395
+ this.relativeTo = input();
2396
+ }
2586
2397
  onClick(event) {
2587
- if (this.disabled) {
2398
+ if (this.disabled()) {
2588
2399
  event.preventDefault();
2589
2400
  event.stopImmediatePropagation();
2590
2401
  }
@@ -2593,31 +2404,20 @@ class SuisButtonLinkComponent extends SuisButtonBase {
2593
2404
  }
2594
2405
  }
2595
2406
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisButtonLinkComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2596
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisButtonLinkComponent, isStandalone: true, selector: "suis-button-link", inputs: { routerLink: "routerLink", target: "target", queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", relativeTo: "relativeTo" }, usesInheritance: true, ngImport: i0, template: "<a\n class=\"suis-button-link\"\n [class.suis-button-link--full-width]=\"fullWidth\"\n [class.suis-button-link--disabled]=\"disabled || loading ? true : undefined\"\n [routerLink]=\"routerLink\"\n [target]=\"target\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [relativeTo]=\"relativeTo\"\n [ngClass]=\"'suis-button-link' | suisNgClass : color\"\n [attr.tabindex]=\"disabled || loading ? -1 : 0\"\n (click)=\"onClick($event)\"\n>\n <span\n class=\"suis-button-link__content\"\n [class.suis-button-link__content--loading]=\"loading\"\n >\n <ng-content></ng-content>\n </span>\n @if (loading) {\n <suis-spinner size=\"xs\" color=\"white\"></suis-spinner>\n }\n</a>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-button-link{width:fit-content;display:flex;align-items:center;justify-content:center;padding:.375rem 1rem;border-radius:.25rem;text-align:center;text-decoration:none;transition:background-color .25s ease-in-out;border-width:.125rem;border-style:solid;font-size:.875rem}.suis-button-link--full-width{width:100%}.suis-button-link--disabled{opacity:.5}.suis-button-link__content{display:flex;align-items:center;justify-content:center}.suis-button-link__content--loading{visibility:hidden}.suis-button-link suis-spinner{position:absolute}.suis-button-link:disabled{opacity:.5}.suis-button-link:hover:not(:disabled){cursor:pointer}.suis-button-link:hover:disabled{cursor:not-allowed}.suis-button-link:focus,.suis-button-link:focus-within{outline:none}.suis-button-link--primary{background-color:#192a56;border-color:#192a56;color:#fff}.suis-button-link--primary:hover:not(:disabled){background-color:#192a56d9}.suis-button-link--primary:focus:not(:disabled){box-shadow:0 2px 5px #192a56bf}.suis-button-link--secondary{background-color:#273c75;border-color:#273c75;color:#fff}.suis-button-link--secondary:hover:not(:disabled){background-color:#273c75d9}.suis-button-link--secondary:focus:not(:disabled){box-shadow:0 2px 5px #273c75bf}.suis-button-link--tertiary{background-color:#dcdde1;border-color:#dcdde1;color:#2f3640}.suis-button-link--tertiary:hover:not(:disabled){background-color:#dcdde1d9}.suis-button-link--tertiary:focus:not(:disabled){box-shadow:0 2px 5px #dcdde1bf}.suis-button-link--complementary{background-color:#f5f6fa;border-color:#f5f6fa;color:#2f3640}.suis-button-link--complementary:hover:not(:disabled){background-color:#f5f6fad9}.suis-button-link--complementary:focus:not(:disabled){box-shadow:0 2px 5px #f5f6fabf}.suis-button-link--success{background-color:#2ed573;border-color:#2ed573;color:#fff}.suis-button-link--success:hover:not(:disabled){background-color:#2ed573d9}.suis-button-link--success:focus:not(:disabled){box-shadow:0 2px 5px #2ed573bf}.suis-button-link--warning{background-color:#ffa502;border-color:#ffa502;color:#fff}.suis-button-link--warning:hover:not(:disabled){background-color:#ffa502d9}.suis-button-link--warning:focus:not(:disabled){box-shadow:0 2px 5px #ffa502bf}.suis-button-link--danger{background-color:#ff4757;border-color:#ff4757;color:#fff}.suis-button-link--danger:hover:not(:disabled){background-color:#ff4757d9}.suis-button-link--danger:focus:not(:disabled){box-shadow:0 2px 5px #ff4757bf}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }, { kind: "component", type: SuisSpinnerComponent, selector: "suis-spinner", inputs: ["size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2407
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisButtonLinkComponent, isStandalone: true, selector: "suis-button-link", inputs: { routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: true, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, queryParams: { classPropertyName: "queryParams", publicName: "queryParams", isSignal: true, isRequired: false, transformFunction: null }, queryParamsHandling: { classPropertyName: "queryParamsHandling", publicName: "queryParamsHandling", isSignal: true, isRequired: false, transformFunction: null }, relativeTo: { classPropertyName: "relativeTo", publicName: "relativeTo", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<a\n class=\"suis-button-link\"\n [class.suis-button-link--full-width]=\"fullWidth()\"\n [class.suis-button-link--disabled]=\"\n disabled() || loading() ? true : undefined\n \"\n [routerLink]=\"routerLink()\"\n [target]=\"target()\"\n [queryParams]=\"queryParams()\"\n [queryParamsHandling]=\"queryParamsHandling()\"\n [relativeTo]=\"relativeTo()\"\n [ngClass]=\"'suis-button-link' | suisNgClass : color()\"\n [attr.tabindex]=\"disabled() || loading() ? -1 : 0\"\n (click)=\"onClick($event)\"\n>\n <span\n class=\"suis-button-link__content\"\n [class.suis-button-link__content--loading]=\"loading()\"\n >\n <ng-content></ng-content>\n </span>\n @if (loading()) {\n <suis-spinner size=\"xs\" color=\"white\"></suis-spinner>\n }\n</a>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-button-link{width:fit-content;display:flex;align-items:center;justify-content:center;padding:.375rem 1rem;border-radius:.25rem;text-align:center;text-decoration:none;transition:background-color .25s ease-in-out;border-width:.125rem;border-style:solid;font-size:.875rem}.suis-button-link--full-width{width:100%}.suis-button-link--disabled{opacity:.5}.suis-button-link__content{display:flex;align-items:center;justify-content:center}.suis-button-link__content--loading{visibility:hidden}.suis-button-link suis-spinner{position:absolute}.suis-button-link:disabled{opacity:.5}.suis-button-link:hover:not(:disabled){cursor:pointer}.suis-button-link:hover:disabled{cursor:not-allowed}.suis-button-link:focus,.suis-button-link:focus-within{outline:none}.suis-button-link--primary{background-color:#192a56;border-color:#192a56;color:#fff}.suis-button-link--primary:hover:not(:disabled){background-color:#192a56d9}.suis-button-link--primary:focus:not(:disabled){box-shadow:0 2px 5px #192a56bf}.suis-button-link--secondary{background-color:#273c75;border-color:#273c75;color:#fff}.suis-button-link--secondary:hover:not(:disabled){background-color:#273c75d9}.suis-button-link--secondary:focus:not(:disabled){box-shadow:0 2px 5px #273c75bf}.suis-button-link--tertiary{background-color:#dcdde1;border-color:#dcdde1;color:#2f3640}.suis-button-link--tertiary:hover:not(:disabled){background-color:#dcdde1d9}.suis-button-link--tertiary:focus:not(:disabled){box-shadow:0 2px 5px #dcdde1bf}.suis-button-link--complementary{background-color:#f5f6fa;border-color:#f5f6fa;color:#2f3640}.suis-button-link--complementary:hover:not(:disabled){background-color:#f5f6fad9}.suis-button-link--complementary:focus:not(:disabled){box-shadow:0 2px 5px #f5f6fabf}.suis-button-link--success{background-color:#2ed573;border-color:#2ed573;color:#fff}.suis-button-link--success:hover:not(:disabled){background-color:#2ed573d9}.suis-button-link--success:focus:not(:disabled){box-shadow:0 2px 5px #2ed573bf}.suis-button-link--warning{background-color:#ffa502;border-color:#ffa502;color:#fff}.suis-button-link--warning:hover:not(:disabled){background-color:#ffa502d9}.suis-button-link--warning:focus:not(:disabled){box-shadow:0 2px 5px #ffa502bf}.suis-button-link--danger{background-color:#ff4757;border-color:#ff4757;color:#fff}.suis-button-link--danger:hover:not(:disabled){background-color:#ff4757d9}.suis-button-link--danger:focus:not(:disabled){box-shadow:0 2px 5px #ff4757bf}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }, { kind: "component", type: SuisSpinnerComponent, selector: "suis-spinner", inputs: ["size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2597
2408
  }
2598
2409
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisButtonLinkComponent, decorators: [{
2599
2410
  type: Component,
2600
- args: [{ selector: 'suis-button-link', imports: [NgClass, RouterModule, SuisNgClassPipe, SuisSpinnerComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"suis-button-link\"\n [class.suis-button-link--full-width]=\"fullWidth\"\n [class.suis-button-link--disabled]=\"disabled || loading ? true : undefined\"\n [routerLink]=\"routerLink\"\n [target]=\"target\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [relativeTo]=\"relativeTo\"\n [ngClass]=\"'suis-button-link' | suisNgClass : color\"\n [attr.tabindex]=\"disabled || loading ? -1 : 0\"\n (click)=\"onClick($event)\"\n>\n <span\n class=\"suis-button-link__content\"\n [class.suis-button-link__content--loading]=\"loading\"\n >\n <ng-content></ng-content>\n </span>\n @if (loading) {\n <suis-spinner size=\"xs\" color=\"white\"></suis-spinner>\n }\n</a>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-button-link{width:fit-content;display:flex;align-items:center;justify-content:center;padding:.375rem 1rem;border-radius:.25rem;text-align:center;text-decoration:none;transition:background-color .25s ease-in-out;border-width:.125rem;border-style:solid;font-size:.875rem}.suis-button-link--full-width{width:100%}.suis-button-link--disabled{opacity:.5}.suis-button-link__content{display:flex;align-items:center;justify-content:center}.suis-button-link__content--loading{visibility:hidden}.suis-button-link suis-spinner{position:absolute}.suis-button-link:disabled{opacity:.5}.suis-button-link:hover:not(:disabled){cursor:pointer}.suis-button-link:hover:disabled{cursor:not-allowed}.suis-button-link:focus,.suis-button-link:focus-within{outline:none}.suis-button-link--primary{background-color:#192a56;border-color:#192a56;color:#fff}.suis-button-link--primary:hover:not(:disabled){background-color:#192a56d9}.suis-button-link--primary:focus:not(:disabled){box-shadow:0 2px 5px #192a56bf}.suis-button-link--secondary{background-color:#273c75;border-color:#273c75;color:#fff}.suis-button-link--secondary:hover:not(:disabled){background-color:#273c75d9}.suis-button-link--secondary:focus:not(:disabled){box-shadow:0 2px 5px #273c75bf}.suis-button-link--tertiary{background-color:#dcdde1;border-color:#dcdde1;color:#2f3640}.suis-button-link--tertiary:hover:not(:disabled){background-color:#dcdde1d9}.suis-button-link--tertiary:focus:not(:disabled){box-shadow:0 2px 5px #dcdde1bf}.suis-button-link--complementary{background-color:#f5f6fa;border-color:#f5f6fa;color:#2f3640}.suis-button-link--complementary:hover:not(:disabled){background-color:#f5f6fad9}.suis-button-link--complementary:focus:not(:disabled){box-shadow:0 2px 5px #f5f6fabf}.suis-button-link--success{background-color:#2ed573;border-color:#2ed573;color:#fff}.suis-button-link--success:hover:not(:disabled){background-color:#2ed573d9}.suis-button-link--success:focus:not(:disabled){box-shadow:0 2px 5px #2ed573bf}.suis-button-link--warning{background-color:#ffa502;border-color:#ffa502;color:#fff}.suis-button-link--warning:hover:not(:disabled){background-color:#ffa502d9}.suis-button-link--warning:focus:not(:disabled){box-shadow:0 2px 5px #ffa502bf}.suis-button-link--danger{background-color:#ff4757;border-color:#ff4757;color:#fff}.suis-button-link--danger:hover:not(:disabled){background-color:#ff4757d9}.suis-button-link--danger:focus:not(:disabled){box-shadow:0 2px 5px #ff4757bf}\n"] }]
2601
- }], propDecorators: { routerLink: [{
2602
- type: Input,
2603
- args: [{ required: true }]
2604
- }], target: [{
2605
- type: Input
2606
- }], queryParams: [{
2607
- type: Input
2608
- }], queryParamsHandling: [{
2609
- type: Input
2610
- }], relativeTo: [{
2611
- type: Input
2612
- }] } });
2411
+ args: [{ selector: 'suis-button-link', imports: [NgClass, RouterModule, SuisNgClassPipe, SuisSpinnerComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"suis-button-link\"\n [class.suis-button-link--full-width]=\"fullWidth()\"\n [class.suis-button-link--disabled]=\"\n disabled() || loading() ? true : undefined\n \"\n [routerLink]=\"routerLink()\"\n [target]=\"target()\"\n [queryParams]=\"queryParams()\"\n [queryParamsHandling]=\"queryParamsHandling()\"\n [relativeTo]=\"relativeTo()\"\n [ngClass]=\"'suis-button-link' | suisNgClass : color()\"\n [attr.tabindex]=\"disabled() || loading() ? -1 : 0\"\n (click)=\"onClick($event)\"\n>\n <span\n class=\"suis-button-link__content\"\n [class.suis-button-link__content--loading]=\"loading()\"\n >\n <ng-content></ng-content>\n </span>\n @if (loading()) {\n <suis-spinner size=\"xs\" color=\"white\"></suis-spinner>\n }\n</a>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-button-link{width:fit-content;display:flex;align-items:center;justify-content:center;padding:.375rem 1rem;border-radius:.25rem;text-align:center;text-decoration:none;transition:background-color .25s ease-in-out;border-width:.125rem;border-style:solid;font-size:.875rem}.suis-button-link--full-width{width:100%}.suis-button-link--disabled{opacity:.5}.suis-button-link__content{display:flex;align-items:center;justify-content:center}.suis-button-link__content--loading{visibility:hidden}.suis-button-link suis-spinner{position:absolute}.suis-button-link:disabled{opacity:.5}.suis-button-link:hover:not(:disabled){cursor:pointer}.suis-button-link:hover:disabled{cursor:not-allowed}.suis-button-link:focus,.suis-button-link:focus-within{outline:none}.suis-button-link--primary{background-color:#192a56;border-color:#192a56;color:#fff}.suis-button-link--primary:hover:not(:disabled){background-color:#192a56d9}.suis-button-link--primary:focus:not(:disabled){box-shadow:0 2px 5px #192a56bf}.suis-button-link--secondary{background-color:#273c75;border-color:#273c75;color:#fff}.suis-button-link--secondary:hover:not(:disabled){background-color:#273c75d9}.suis-button-link--secondary:focus:not(:disabled){box-shadow:0 2px 5px #273c75bf}.suis-button-link--tertiary{background-color:#dcdde1;border-color:#dcdde1;color:#2f3640}.suis-button-link--tertiary:hover:not(:disabled){background-color:#dcdde1d9}.suis-button-link--tertiary:focus:not(:disabled){box-shadow:0 2px 5px #dcdde1bf}.suis-button-link--complementary{background-color:#f5f6fa;border-color:#f5f6fa;color:#2f3640}.suis-button-link--complementary:hover:not(:disabled){background-color:#f5f6fad9}.suis-button-link--complementary:focus:not(:disabled){box-shadow:0 2px 5px #f5f6fabf}.suis-button-link--success{background-color:#2ed573;border-color:#2ed573;color:#fff}.suis-button-link--success:hover:not(:disabled){background-color:#2ed573d9}.suis-button-link--success:focus:not(:disabled){box-shadow:0 2px 5px #2ed573bf}.suis-button-link--warning{background-color:#ffa502;border-color:#ffa502;color:#fff}.suis-button-link--warning:hover:not(:disabled){background-color:#ffa502d9}.suis-button-link--warning:focus:not(:disabled){box-shadow:0 2px 5px #ffa502bf}.suis-button-link--danger{background-color:#ff4757;border-color:#ff4757;color:#fff}.suis-button-link--danger:hover:not(:disabled){background-color:#ff4757d9}.suis-button-link--danger:focus:not(:disabled){box-shadow:0 2px 5px #ff4757bf}\n"] }]
2412
+ }] });
2613
2413
 
2614
2414
  class SuisButtonOutlinedComponent extends SuisButtonBase {
2615
2415
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisButtonOutlinedComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2616
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisButtonOutlinedComponent, isStandalone: true, selector: "suis-button-outlined", usesInheritance: true, ngImport: i0, template: "<button\n class=\"suis-button-outlined\"\n [class.suis-button-outlined--full-width]=\"fullWidth\"\n [ngClass]=\"'suis-button-outlined' | suisNgClass : color\"\n [attr.disabled]=\"disabled || loading ? true : undefined\"\n [attr.tabindex]=\"disabled || loading ? -1 : 0\"\n [attr.type]=\"type\"\n (click)=\"onClick()\"\n>\n <span\n class=\"suis-button-outlined__content\"\n [class.suis-button-outlined__content--loading]=\"loading\"\n >\n <ng-content></ng-content>\n </span>\n @if (loading) {\n <suis-spinner size=\"xs\" [color]=\"color\"></suis-spinner>\n }\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-button-outlined{width:fit-content;display:flex;align-items:center;justify-content:center;padding:.375rem 1rem;border-radius:.25rem;text-align:center;text-decoration:none;transition:background-color .25s ease-in-out;font-size:.875rem;border-width:.125rem;border-style:solid;background-color:transparent}.suis-button-outlined--full-width{width:100%}.suis-button-outlined--disabled{opacity:.5}.suis-button-outlined__content{display:flex;align-items:center;justify-content:center}.suis-button-outlined__content--loading{visibility:hidden}.suis-button-outlined suis-spinner{position:absolute}.suis-button-outlined:disabled{opacity:.5}.suis-button-outlined:hover:not(:disabled){cursor:pointer}.suis-button-outlined:hover:disabled{cursor:not-allowed}.suis-button-outlined:focus,.suis-button-outlined:focus-within{outline:none}.suis-button-outlined--primary{border-color:#192a56;color:#192a56}.suis-button-outlined--primary:hover:not(:disabled){background-color:#192a56;color:#fff}.suis-button-outlined--primary:focus:not(:disabled){box-shadow:0 2px 5px #192a56bf}.suis-button-outlined--secondary{border-color:#273c75;color:#273c75}.suis-button-outlined--secondary:hover:not(:disabled){background-color:#273c75;color:#fff}.suis-button-outlined--secondary:focus:not(:disabled){box-shadow:0 2px 5px #273c75bf}.suis-button-outlined--tertiary{border-color:#dcdde1;color:#dcdde1}.suis-button-outlined--tertiary:hover:not(:disabled){background-color:#dcdde1;color:#2f3640}.suis-button-outlined--tertiary:focus:not(:disabled){box-shadow:0 2px 5px #dcdde1bf}.suis-button-outlined--complementary{border-color:#f5f6fa;color:#f5f6fa}.suis-button-outlined--complementary:hover:not(:disabled){background-color:#f5f6fa;color:#2f3640}.suis-button-outlined--complementary:focus:not(:disabled){box-shadow:0 2px 5px #f5f6fabf}.suis-button-outlined--success{border-color:#2ed573;color:#2ed573}.suis-button-outlined--success:hover:not(:disabled){background-color:#2ed573;color:#fff}.suis-button-outlined--success:focus:not(:disabled){box-shadow:0 2px 5px #2ed573bf}.suis-button-outlined--warning{border-color:#ffa502;color:#ffa502}.suis-button-outlined--warning:hover:not(:disabled){background-color:#ffa502;color:#fff}.suis-button-outlined--warning:focus:not(:disabled){box-shadow:0 2px 5px #ffa502bf}.suis-button-outlined--danger{border-color:#ff4757;color:#ff4757}.suis-button-outlined--danger:hover:not(:disabled){background-color:#ff4757;color:#fff}.suis-button-outlined--danger:focus:not(:disabled){box-shadow:0 2px 5px #ff4757bf}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }, { kind: "component", type: SuisSpinnerComponent, selector: "suis-spinner", inputs: ["size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2416
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisButtonOutlinedComponent, isStandalone: true, selector: "suis-button-outlined", usesInheritance: true, ngImport: i0, template: "<button\n class=\"suis-button-outlined\"\n [class.suis-button-outlined--full-width]=\"fullWidth()\"\n [ngClass]=\"'suis-button-outlined' | suisNgClass : color()\"\n [attr.disabled]=\"disabled() || loading() ? true : undefined\"\n [attr.tabindex]=\"disabled() || loading() ? -1 : 0\"\n [attr.type]=\"type()\"\n (click)=\"onClick()\"\n>\n <span\n class=\"suis-button-outlined__content\"\n [class.suis-button-outlined__content--loading]=\"loading()\"\n >\n <ng-content></ng-content>\n </span>\n @if (loading()) {\n <suis-spinner size=\"xs\" [color]=\"color()\"></suis-spinner>\n }\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-button-outlined{width:fit-content;display:flex;align-items:center;justify-content:center;padding:.375rem 1rem;border-radius:.25rem;text-align:center;text-decoration:none;transition:background-color .25s ease-in-out;font-size:.875rem;border-width:.125rem;border-style:solid;background-color:transparent}.suis-button-outlined--full-width{width:100%}.suis-button-outlined--disabled{opacity:.5}.suis-button-outlined__content{display:flex;align-items:center;justify-content:center}.suis-button-outlined__content--loading{visibility:hidden}.suis-button-outlined suis-spinner{position:absolute}.suis-button-outlined:disabled{opacity:.5}.suis-button-outlined:hover:not(:disabled){cursor:pointer}.suis-button-outlined:hover:disabled{cursor:not-allowed}.suis-button-outlined:focus,.suis-button-outlined:focus-within{outline:none}.suis-button-outlined--primary{border-color:#192a56;color:#192a56}.suis-button-outlined--primary:hover:not(:disabled){background-color:#192a56;color:#fff}.suis-button-outlined--primary:focus:not(:disabled){box-shadow:0 2px 5px #192a56bf}.suis-button-outlined--secondary{border-color:#273c75;color:#273c75}.suis-button-outlined--secondary:hover:not(:disabled){background-color:#273c75;color:#fff}.suis-button-outlined--secondary:focus:not(:disabled){box-shadow:0 2px 5px #273c75bf}.suis-button-outlined--tertiary{border-color:#dcdde1;color:#dcdde1}.suis-button-outlined--tertiary:hover:not(:disabled){background-color:#dcdde1;color:#2f3640}.suis-button-outlined--tertiary:focus:not(:disabled){box-shadow:0 2px 5px #dcdde1bf}.suis-button-outlined--complementary{border-color:#f5f6fa;color:#f5f6fa}.suis-button-outlined--complementary:hover:not(:disabled){background-color:#f5f6fa;color:#2f3640}.suis-button-outlined--complementary:focus:not(:disabled){box-shadow:0 2px 5px #f5f6fabf}.suis-button-outlined--success{border-color:#2ed573;color:#2ed573}.suis-button-outlined--success:hover:not(:disabled){background-color:#2ed573;color:#fff}.suis-button-outlined--success:focus:not(:disabled){box-shadow:0 2px 5px #2ed573bf}.suis-button-outlined--warning{border-color:#ffa502;color:#ffa502}.suis-button-outlined--warning:hover:not(:disabled){background-color:#ffa502;color:#fff}.suis-button-outlined--warning:focus:not(:disabled){box-shadow:0 2px 5px #ffa502bf}.suis-button-outlined--danger{border-color:#ff4757;color:#ff4757}.suis-button-outlined--danger:hover:not(:disabled){background-color:#ff4757;color:#fff}.suis-button-outlined--danger:focus:not(:disabled){box-shadow:0 2px 5px #ff4757bf}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }, { kind: "component", type: SuisSpinnerComponent, selector: "suis-spinner", inputs: ["size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2617
2417
  }
2618
2418
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisButtonOutlinedComponent, decorators: [{
2619
2419
  type: Component,
2620
- args: [{ selector: 'suis-button-outlined', imports: [NgClass, SuisNgClassPipe, SuisSpinnerComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n class=\"suis-button-outlined\"\n [class.suis-button-outlined--full-width]=\"fullWidth\"\n [ngClass]=\"'suis-button-outlined' | suisNgClass : color\"\n [attr.disabled]=\"disabled || loading ? true : undefined\"\n [attr.tabindex]=\"disabled || loading ? -1 : 0\"\n [attr.type]=\"type\"\n (click)=\"onClick()\"\n>\n <span\n class=\"suis-button-outlined__content\"\n [class.suis-button-outlined__content--loading]=\"loading\"\n >\n <ng-content></ng-content>\n </span>\n @if (loading) {\n <suis-spinner size=\"xs\" [color]=\"color\"></suis-spinner>\n }\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-button-outlined{width:fit-content;display:flex;align-items:center;justify-content:center;padding:.375rem 1rem;border-radius:.25rem;text-align:center;text-decoration:none;transition:background-color .25s ease-in-out;font-size:.875rem;border-width:.125rem;border-style:solid;background-color:transparent}.suis-button-outlined--full-width{width:100%}.suis-button-outlined--disabled{opacity:.5}.suis-button-outlined__content{display:flex;align-items:center;justify-content:center}.suis-button-outlined__content--loading{visibility:hidden}.suis-button-outlined suis-spinner{position:absolute}.suis-button-outlined:disabled{opacity:.5}.suis-button-outlined:hover:not(:disabled){cursor:pointer}.suis-button-outlined:hover:disabled{cursor:not-allowed}.suis-button-outlined:focus,.suis-button-outlined:focus-within{outline:none}.suis-button-outlined--primary{border-color:#192a56;color:#192a56}.suis-button-outlined--primary:hover:not(:disabled){background-color:#192a56;color:#fff}.suis-button-outlined--primary:focus:not(:disabled){box-shadow:0 2px 5px #192a56bf}.suis-button-outlined--secondary{border-color:#273c75;color:#273c75}.suis-button-outlined--secondary:hover:not(:disabled){background-color:#273c75;color:#fff}.suis-button-outlined--secondary:focus:not(:disabled){box-shadow:0 2px 5px #273c75bf}.suis-button-outlined--tertiary{border-color:#dcdde1;color:#dcdde1}.suis-button-outlined--tertiary:hover:not(:disabled){background-color:#dcdde1;color:#2f3640}.suis-button-outlined--tertiary:focus:not(:disabled){box-shadow:0 2px 5px #dcdde1bf}.suis-button-outlined--complementary{border-color:#f5f6fa;color:#f5f6fa}.suis-button-outlined--complementary:hover:not(:disabled){background-color:#f5f6fa;color:#2f3640}.suis-button-outlined--complementary:focus:not(:disabled){box-shadow:0 2px 5px #f5f6fabf}.suis-button-outlined--success{border-color:#2ed573;color:#2ed573}.suis-button-outlined--success:hover:not(:disabled){background-color:#2ed573;color:#fff}.suis-button-outlined--success:focus:not(:disabled){box-shadow:0 2px 5px #2ed573bf}.suis-button-outlined--warning{border-color:#ffa502;color:#ffa502}.suis-button-outlined--warning:hover:not(:disabled){background-color:#ffa502;color:#fff}.suis-button-outlined--warning:focus:not(:disabled){box-shadow:0 2px 5px #ffa502bf}.suis-button-outlined--danger{border-color:#ff4757;color:#ff4757}.suis-button-outlined--danger:hover:not(:disabled){background-color:#ff4757;color:#fff}.suis-button-outlined--danger:focus:not(:disabled){box-shadow:0 2px 5px #ff4757bf}\n"] }]
2420
+ args: [{ selector: 'suis-button-outlined', imports: [NgClass, SuisNgClassPipe, SuisSpinnerComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n class=\"suis-button-outlined\"\n [class.suis-button-outlined--full-width]=\"fullWidth()\"\n [ngClass]=\"'suis-button-outlined' | suisNgClass : color()\"\n [attr.disabled]=\"disabled() || loading() ? true : undefined\"\n [attr.tabindex]=\"disabled() || loading() ? -1 : 0\"\n [attr.type]=\"type()\"\n (click)=\"onClick()\"\n>\n <span\n class=\"suis-button-outlined__content\"\n [class.suis-button-outlined__content--loading]=\"loading()\"\n >\n <ng-content></ng-content>\n </span>\n @if (loading()) {\n <suis-spinner size=\"xs\" [color]=\"color()\"></suis-spinner>\n }\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-button-outlined{width:fit-content;display:flex;align-items:center;justify-content:center;padding:.375rem 1rem;border-radius:.25rem;text-align:center;text-decoration:none;transition:background-color .25s ease-in-out;font-size:.875rem;border-width:.125rem;border-style:solid;background-color:transparent}.suis-button-outlined--full-width{width:100%}.suis-button-outlined--disabled{opacity:.5}.suis-button-outlined__content{display:flex;align-items:center;justify-content:center}.suis-button-outlined__content--loading{visibility:hidden}.suis-button-outlined suis-spinner{position:absolute}.suis-button-outlined:disabled{opacity:.5}.suis-button-outlined:hover:not(:disabled){cursor:pointer}.suis-button-outlined:hover:disabled{cursor:not-allowed}.suis-button-outlined:focus,.suis-button-outlined:focus-within{outline:none}.suis-button-outlined--primary{border-color:#192a56;color:#192a56}.suis-button-outlined--primary:hover:not(:disabled){background-color:#192a56;color:#fff}.suis-button-outlined--primary:focus:not(:disabled){box-shadow:0 2px 5px #192a56bf}.suis-button-outlined--secondary{border-color:#273c75;color:#273c75}.suis-button-outlined--secondary:hover:not(:disabled){background-color:#273c75;color:#fff}.suis-button-outlined--secondary:focus:not(:disabled){box-shadow:0 2px 5px #273c75bf}.suis-button-outlined--tertiary{border-color:#dcdde1;color:#dcdde1}.suis-button-outlined--tertiary:hover:not(:disabled){background-color:#dcdde1;color:#2f3640}.suis-button-outlined--tertiary:focus:not(:disabled){box-shadow:0 2px 5px #dcdde1bf}.suis-button-outlined--complementary{border-color:#f5f6fa;color:#f5f6fa}.suis-button-outlined--complementary:hover:not(:disabled){background-color:#f5f6fa;color:#2f3640}.suis-button-outlined--complementary:focus:not(:disabled){box-shadow:0 2px 5px #f5f6fabf}.suis-button-outlined--success{border-color:#2ed573;color:#2ed573}.suis-button-outlined--success:hover:not(:disabled){background-color:#2ed573;color:#fff}.suis-button-outlined--success:focus:not(:disabled){box-shadow:0 2px 5px #2ed573bf}.suis-button-outlined--warning{border-color:#ffa502;color:#ffa502}.suis-button-outlined--warning:hover:not(:disabled){background-color:#ffa502;color:#fff}.suis-button-outlined--warning:focus:not(:disabled){box-shadow:0 2px 5px #ffa502bf}.suis-button-outlined--danger{border-color:#ff4757;color:#ff4757}.suis-button-outlined--danger:hover:not(:disabled){background-color:#ff4757;color:#fff}.suis-button-outlined--danger:focus:not(:disabled){box-shadow:0 2px 5px #ff4757bf}\n"] }]
2621
2421
  }] });
2622
2422
 
2623
2423
  class SuisButtonModule {
@@ -2665,91 +2465,108 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
2665
2465
 
2666
2466
  class SuisNavigationItemComponent {
2667
2467
  constructor() {
2468
+ /**
2469
+ * Navigation item data. Type of SuisNavigationItem.
2470
+ */
2471
+ this.item = input();
2472
+ /**
2473
+ * Template to be displayed instead of item's label.
2474
+ */
2475
+ this.templateRef = input();
2668
2476
  /**
2669
2477
  * Enables dark mode pallette. By default set to true.
2670
2478
  */
2671
- this.darkMode = true;
2479
+ this.darkMode = input(true);
2672
2480
  }
2673
2481
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisNavigationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2674
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisNavigationItemComponent, isStandalone: true, selector: "suis-navigation-item", inputs: { item: "item", templateRef: "templateRef", darkMode: "darkMode" }, ngImport: i0, template: "@if (item) {\n<a\n class=\"suis-navigation-item\"\n [routerLink]=\"item.link\"\n routerLinkActive=\"active\"\n [class.suis-navigation-item--dark]=\"darkMode\"\n>\n <div class=\"suis-navigation-item__content\">\n @if (templateRef) {\n <ng-container\n *ngTemplateOutlet=\"templateRef; context: { $implicit: item }\"\n ></ng-container>\n } @else {\n {{ item.label }}\n }\n <ng-template #label>\n {{ item.label }}\n </ng-template>\n </div>\n</a>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;width:100%}.suis-navigation-item{display:flex;justify-content:space-between;padding:1rem;color:#192a56;border-bottom:.0625rem solid #dcdde1;font-size:.875rem;text-decoration:none;text-transform:uppercase;width:100%;position:relative;cursor:pointer;padding:.75rem 1rem .75rem 2rem}.suis-navigation-item:hover{background-color:#f5f6fad9}.suis-navigation-item.active{font-weight:600}.suis-navigation-item.active:hover{background-color:#f5f6fa}.suis-navigation-item--dark{color:#fff;border-bottom:.0625rem solid #273c75}.suis-navigation-item--dark:hover{background-color:#273c75d9}.suis-navigation-item--dark.active,.suis-navigation-item--dark.active:hover{background-color:#273c75}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2482
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisNavigationItemComponent, isStandalone: true, selector: "suis-navigation-item", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, templateRef: { classPropertyName: "templateRef", publicName: "templateRef", isSignal: true, isRequired: false, transformFunction: null }, darkMode: { classPropertyName: "darkMode", publicName: "darkMode", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (item()) {\n<a\n class=\"suis-navigation-item\"\n [routerLink]=\"item()!.link\"\n routerLinkActive=\"active\"\n [class.suis-navigation-item--dark]=\"darkMode()\"\n>\n <div class=\"suis-navigation-item__content\">\n @if (templateRef()) {\n <ng-container\n *ngTemplateOutlet=\"templateRef()!; context: { $implicit: item() }\"\n ></ng-container>\n } @else {\n {{ item()!.label }}\n }\n <ng-template #label>\n {{ item()!.label }}\n </ng-template>\n </div>\n</a>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;width:100%}.suis-navigation-item{display:flex;justify-content:space-between;padding:1rem;color:#192a56;border-bottom:.0625rem solid #dcdde1;font-size:.875rem;text-decoration:none;text-transform:uppercase;width:100%;position:relative;cursor:pointer;padding:.75rem 1rem .75rem 2rem}.suis-navigation-item:hover{background-color:#f5f6fad9}.suis-navigation-item.active{font-weight:600}.suis-navigation-item.active:hover{background-color:#f5f6fa}.suis-navigation-item--dark{color:#fff;border-bottom:.0625rem solid #273c75}.suis-navigation-item--dark:hover{background-color:#273c75d9}.suis-navigation-item--dark.active,.suis-navigation-item--dark.active:hover{background-color:#273c75}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2675
2483
  }
2676
2484
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisNavigationItemComponent, decorators: [{
2677
2485
  type: Component,
2678
- args: [{ selector: 'suis-navigation-item', imports: [NgTemplateOutlet, RouterModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (item) {\n<a\n class=\"suis-navigation-item\"\n [routerLink]=\"item.link\"\n routerLinkActive=\"active\"\n [class.suis-navigation-item--dark]=\"darkMode\"\n>\n <div class=\"suis-navigation-item__content\">\n @if (templateRef) {\n <ng-container\n *ngTemplateOutlet=\"templateRef; context: { $implicit: item }\"\n ></ng-container>\n } @else {\n {{ item.label }}\n }\n <ng-template #label>\n {{ item.label }}\n </ng-template>\n </div>\n</a>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;width:100%}.suis-navigation-item{display:flex;justify-content:space-between;padding:1rem;color:#192a56;border-bottom:.0625rem solid #dcdde1;font-size:.875rem;text-decoration:none;text-transform:uppercase;width:100%;position:relative;cursor:pointer;padding:.75rem 1rem .75rem 2rem}.suis-navigation-item:hover{background-color:#f5f6fad9}.suis-navigation-item.active{font-weight:600}.suis-navigation-item.active:hover{background-color:#f5f6fa}.suis-navigation-item--dark{color:#fff;border-bottom:.0625rem solid #273c75}.suis-navigation-item--dark:hover{background-color:#273c75d9}.suis-navigation-item--dark.active,.suis-navigation-item--dark.active:hover{background-color:#273c75}\n"] }]
2679
- }], propDecorators: { item: [{
2680
- type: Input
2681
- }], templateRef: [{
2682
- type: Input
2683
- }], darkMode: [{
2684
- type: Input
2685
- }] } });
2486
+ args: [{ selector: 'suis-navigation-item', imports: [NgTemplateOutlet, RouterModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (item()) {\n<a\n class=\"suis-navigation-item\"\n [routerLink]=\"item()!.link\"\n routerLinkActive=\"active\"\n [class.suis-navigation-item--dark]=\"darkMode()\"\n>\n <div class=\"suis-navigation-item__content\">\n @if (templateRef()) {\n <ng-container\n *ngTemplateOutlet=\"templateRef()!; context: { $implicit: item() }\"\n ></ng-container>\n } @else {\n {{ item()!.label }}\n }\n <ng-template #label>\n {{ item()!.label }}\n </ng-template>\n </div>\n</a>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;width:100%}.suis-navigation-item{display:flex;justify-content:space-between;padding:1rem;color:#192a56;border-bottom:.0625rem solid #dcdde1;font-size:.875rem;text-decoration:none;text-transform:uppercase;width:100%;position:relative;cursor:pointer;padding:.75rem 1rem .75rem 2rem}.suis-navigation-item:hover{background-color:#f5f6fad9}.suis-navigation-item.active{font-weight:600}.suis-navigation-item.active:hover{background-color:#f5f6fa}.suis-navigation-item--dark{color:#fff;border-bottom:.0625rem solid #273c75}.suis-navigation-item--dark:hover{background-color:#273c75d9}.suis-navigation-item--dark.active,.suis-navigation-item--dark.active:hover{background-color:#273c75}\n"] }]
2487
+ }] });
2686
2488
 
2687
2489
  class SuisNavigationGroupItemComponent {
2688
2490
  constructor() {
2491
+ /**
2492
+ * Navigation item data. Type of SuisNavigationGroupItem.
2493
+ */
2494
+ this.item = input();
2495
+ /**
2496
+ * Template to be displayed instead of item's label.s
2497
+ */
2498
+ this.templateRef = input();
2689
2499
  /**
2690
2500
  * Controlls styling of the item based on expanded state of group. By default set to true.
2691
2501
  */
2692
- this.expanded = true;
2502
+ this.expanded = input(true);
2503
+ this._expanded = signal(true);
2693
2504
  /**
2694
2505
  * Adds expand / collapse logic to item. By default set to false.
2695
2506
  */
2696
- this.expandable = false;
2507
+ this.expandable = input(false);
2697
2508
  /**
2698
2509
  * Emits when expanded value of the item has been changed.
2699
2510
  */
2700
- this.expandedChange = new EventEmitter();
2511
+ this.expandedChange = output();
2701
2512
  /**
2702
2513
  * Enables dark mode pallette. By default set to true.
2703
2514
  */
2704
- this.darkMode = true;
2515
+ this.darkMode = input(true);
2516
+ effect(() => {
2517
+ this._expanded.set(this.expanded());
2518
+ });
2705
2519
  }
2706
2520
  onToggle() {
2707
- if (!this.expandable)
2521
+ if (!this.expandable())
2708
2522
  return;
2709
- this.expanded = !this.expanded;
2710
- this.expandedChange.emit(this.expanded);
2523
+ this._expanded.update((value) => !value);
2524
+ this.expandedChange.emit(this._expanded());
2711
2525
  }
2712
2526
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisNavigationGroupItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2713
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisNavigationGroupItemComponent, isStandalone: true, selector: "suis-navigation-group-item", inputs: { item: "item", templateRef: "templateRef", expanded: "expanded", expandable: "expandable", darkMode: "darkMode" }, outputs: { expandedChange: "expandedChange" }, ngImport: i0, template: "@if (item) {\n<a\n class=\"suis-navigation-group-item\"\n [class.suis-navigation-group-item--dark]=\"darkMode\"\n [routerLink]=\"expandable ? undefined : item.link ?? undefined\"\n routerLinkActive=\"active\"\n (click)=\"onToggle()\"\n>\n <div class=\"suis-navigation-group-item__content\">\n @if (templateRef) {\n <ng-container\n *ngTemplateOutlet=\"templateRef; context: { $implicit: item }\"\n ></ng-container>\n } @else {\n {{ item.label }}\n }\n <ng-template #label>\n {{ item.label }}\n </ng-template>\n </div>\n @if (expandable) {\n <div class=\"suis-navigation-group-item__actions\">\n <suis-icon\n [type]=\"expanded ? 'chevron-up' : 'chevron-down'\"\n [size]=\"'lg'\"\n [color]=\"darkMode ? 'white' : 'primary'\"\n ></suis-icon>\n </div>\n }\n</a>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;width:100%}.suis-navigation-group-item{display:flex;justify-content:space-between;padding:1rem;color:#192a56;border-bottom:.0625rem solid #dcdde1;font-size:.875rem;text-decoration:none;text-transform:uppercase;width:100%;position:relative;cursor:pointer;font-size:1rem}.suis-navigation-group-item:hover{background-color:#f5f6fad9}.suis-navigation-group-item.active{font-weight:600}.suis-navigation-group-item.active:hover{background-color:#f5f6fa}.suis-navigation-group-item--dark{color:#fff;border-bottom:.0625rem solid #273c75}.suis-navigation-group-item--dark:hover{background-color:#273c75d9}.suis-navigation-group-item--dark.active,.suis-navigation-group-item--dark.active:hover{background-color:#273c75}.suis-navigation-group-item__actions suis-icon{height:1.125rem;margin-top:-.0625rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2527
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisNavigationGroupItemComponent, isStandalone: true, selector: "suis-navigation-group-item", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, templateRef: { classPropertyName: "templateRef", publicName: "templateRef", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, expandable: { classPropertyName: "expandable", publicName: "expandable", isSignal: true, isRequired: false, transformFunction: null }, darkMode: { classPropertyName: "darkMode", publicName: "darkMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expandedChange: "expandedChange" }, ngImport: i0, template: "@if (item()) {\n<a\n class=\"suis-navigation-group-item\"\n [class.suis-navigation-group-item--dark]=\"darkMode()\"\n [routerLink]=\"expandable() ? undefined : item()!.link ?? undefined\"\n routerLinkActive=\"active\"\n (click)=\"onToggle()\"\n>\n <div class=\"suis-navigation-group-item__content\">\n @if (templateRef()) {\n <ng-container\n *ngTemplateOutlet=\"templateRef()!; context: { $implicit: item()! }\"\n ></ng-container>\n } @else {\n {{ item()!.label }}\n }\n <ng-template #label>\n {{ item()!.label }}\n </ng-template>\n </div>\n @if (expandable()) {\n <div class=\"suis-navigation-group-item__actions\">\n <suis-icon\n [type]=\"_expanded() ? 'chevron-up' : 'chevron-down'\"\n [size]=\"'lg'\"\n [color]=\"darkMode() ? 'white' : 'primary'\"\n ></suis-icon>\n </div>\n }\n</a>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;width:100%}.suis-navigation-group-item{display:flex;justify-content:space-between;padding:1rem;color:#192a56;border-bottom:.0625rem solid #dcdde1;font-size:.875rem;text-decoration:none;text-transform:uppercase;width:100%;position:relative;cursor:pointer;font-size:1rem}.suis-navigation-group-item:hover{background-color:#f5f6fad9}.suis-navigation-group-item.active{font-weight:600}.suis-navigation-group-item.active:hover{background-color:#f5f6fa}.suis-navigation-group-item--dark{color:#fff;border-bottom:.0625rem solid #273c75}.suis-navigation-group-item--dark:hover{background-color:#273c75d9}.suis-navigation-group-item--dark.active,.suis-navigation-group-item--dark.active:hover{background-color:#273c75}.suis-navigation-group-item__actions suis-icon{height:1.125rem;margin-top:-.0625rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2714
2528
  }
2715
2529
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisNavigationGroupItemComponent, decorators: [{
2716
2530
  type: Component,
2717
- args: [{ selector: 'suis-navigation-group-item', imports: [NgTemplateOutlet, SuisIconComponent, RouterModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (item) {\n<a\n class=\"suis-navigation-group-item\"\n [class.suis-navigation-group-item--dark]=\"darkMode\"\n [routerLink]=\"expandable ? undefined : item.link ?? undefined\"\n routerLinkActive=\"active\"\n (click)=\"onToggle()\"\n>\n <div class=\"suis-navigation-group-item__content\">\n @if (templateRef) {\n <ng-container\n *ngTemplateOutlet=\"templateRef; context: { $implicit: item }\"\n ></ng-container>\n } @else {\n {{ item.label }}\n }\n <ng-template #label>\n {{ item.label }}\n </ng-template>\n </div>\n @if (expandable) {\n <div class=\"suis-navigation-group-item__actions\">\n <suis-icon\n [type]=\"expanded ? 'chevron-up' : 'chevron-down'\"\n [size]=\"'lg'\"\n [color]=\"darkMode ? 'white' : 'primary'\"\n ></suis-icon>\n </div>\n }\n</a>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;width:100%}.suis-navigation-group-item{display:flex;justify-content:space-between;padding:1rem;color:#192a56;border-bottom:.0625rem solid #dcdde1;font-size:.875rem;text-decoration:none;text-transform:uppercase;width:100%;position:relative;cursor:pointer;font-size:1rem}.suis-navigation-group-item:hover{background-color:#f5f6fad9}.suis-navigation-group-item.active{font-weight:600}.suis-navigation-group-item.active:hover{background-color:#f5f6fa}.suis-navigation-group-item--dark{color:#fff;border-bottom:.0625rem solid #273c75}.suis-navigation-group-item--dark:hover{background-color:#273c75d9}.suis-navigation-group-item--dark.active,.suis-navigation-group-item--dark.active:hover{background-color:#273c75}.suis-navigation-group-item__actions suis-icon{height:1.125rem;margin-top:-.0625rem}\n"] }]
2718
- }], propDecorators: { item: [{
2719
- type: Input
2720
- }], templateRef: [{
2721
- type: Input
2722
- }], expanded: [{
2723
- type: Input
2724
- }], expandable: [{
2725
- type: Input
2726
- }], expandedChange: [{
2727
- type: Output
2728
- }], darkMode: [{
2729
- type: Input
2730
- }] } });
2531
+ args: [{ selector: 'suis-navigation-group-item', imports: [NgTemplateOutlet, SuisIconComponent, RouterModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (item()) {\n<a\n class=\"suis-navigation-group-item\"\n [class.suis-navigation-group-item--dark]=\"darkMode()\"\n [routerLink]=\"expandable() ? undefined : item()!.link ?? undefined\"\n routerLinkActive=\"active\"\n (click)=\"onToggle()\"\n>\n <div class=\"suis-navigation-group-item__content\">\n @if (templateRef()) {\n <ng-container\n *ngTemplateOutlet=\"templateRef()!; context: { $implicit: item()! }\"\n ></ng-container>\n } @else {\n {{ item()!.label }}\n }\n <ng-template #label>\n {{ item()!.label }}\n </ng-template>\n </div>\n @if (expandable()) {\n <div class=\"suis-navigation-group-item__actions\">\n <suis-icon\n [type]=\"_expanded() ? 'chevron-up' : 'chevron-down'\"\n [size]=\"'lg'\"\n [color]=\"darkMode() ? 'white' : 'primary'\"\n ></suis-icon>\n </div>\n }\n</a>\n}\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;width:100%}.suis-navigation-group-item{display:flex;justify-content:space-between;padding:1rem;color:#192a56;border-bottom:.0625rem solid #dcdde1;font-size:.875rem;text-decoration:none;text-transform:uppercase;width:100%;position:relative;cursor:pointer;font-size:1rem}.suis-navigation-group-item:hover{background-color:#f5f6fad9}.suis-navigation-group-item.active{font-weight:600}.suis-navigation-group-item.active:hover{background-color:#f5f6fa}.suis-navigation-group-item--dark{color:#fff;border-bottom:.0625rem solid #273c75}.suis-navigation-group-item--dark:hover{background-color:#273c75d9}.suis-navigation-group-item--dark.active,.suis-navigation-group-item--dark.active:hover{background-color:#273c75}.suis-navigation-group-item__actions suis-icon{height:1.125rem;margin-top:-.0625rem}\n"] }]
2532
+ }], ctorParameters: () => [] });
2731
2533
 
2732
2534
  class SuisNavigationGroupComponent {
2733
2535
  constructor() {
2536
+ /**
2537
+ * Navigation item data. Type of SuisNavigationGroupItem.
2538
+ */
2539
+ this.item = input();
2540
+ /**
2541
+ * Template to be displayed instead of item's label.
2542
+ */
2543
+ this.templateRef = input();
2734
2544
  /**
2735
2545
  * Expanded state of the navigation group. By default set to true.
2736
2546
  */
2737
- this.expanded = true;
2547
+ this.expanded = input(true);
2548
+ this._expanded = signal(true);
2738
2549
  /**
2739
2550
  * Adds expand / collapse logic to group header items. By default set to false.
2740
2551
  */
2741
- this.expandable = false;
2552
+ this.expandable = input(false);
2742
2553
  /**
2743
2554
  * Enables dark mode pallette. By default set to true.
2744
2555
  */
2745
- this.darkMode = true;
2556
+ this.darkMode = input(true);
2557
+ effect(() => {
2558
+ this._expanded.set(this.expanded());
2559
+ });
2746
2560
  }
2747
2561
  /** @internal */
2748
2562
  itemTrackBy(index, item) {
2749
2563
  return `${item.label}-${index}`;
2750
2564
  }
2565
+ onExpandedChange(value) {
2566
+ this._expanded.set(value);
2567
+ }
2751
2568
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisNavigationGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2752
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisNavigationGroupComponent, isStandalone: true, selector: "suis-navigation-group", inputs: { item: "item", templateRef: "templateRef", expanded: "expanded", expandable: "expandable", darkMode: "darkMode" }, ngImport: i0, template: "@if (item) {\n<div class=\"suis-navigation-group\">\n <div class=\"suis-navigation-group__header\">\n <suis-navigation-group-item\n [item]=\"item\"\n [templateRef]=\"templateRef\"\n [expandable]=\"expandable && !!item.children\"\n [(expanded)]=\"expanded\"\n [darkMode]=\"darkMode\"\n ></suis-navigation-group-item>\n </div>\n @if (expanded) {\n <div class=\"suis-navigation-group__children\">\n @for (childItem of item.children; track itemTrackBy($index, childItem)) {\n <suis-navigation-item\n [item]=\"childItem\"\n [templateRef]=\"templateRef\"\n [darkMode]=\"darkMode\"\n ></suis-navigation-item>\n }\n </div>\n }\n</div>\n}\n", styles: [":host{display:block}.suis-navigation-group__header{display:flex;justify-content:space-between}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "component", type: SuisNavigationItemComponent, selector: "suis-navigation-item", inputs: ["item", "templateRef", "darkMode"] }, { kind: "component", type: SuisNavigationGroupItemComponent, selector: "suis-navigation-group-item", inputs: ["item", "templateRef", "expanded", "expandable", "darkMode"], outputs: ["expandedChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2569
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisNavigationGroupComponent, isStandalone: true, selector: "suis-navigation-group", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, templateRef: { classPropertyName: "templateRef", publicName: "templateRef", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, expandable: { classPropertyName: "expandable", publicName: "expandable", isSignal: true, isRequired: false, transformFunction: null }, darkMode: { classPropertyName: "darkMode", publicName: "darkMode", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (item()) {\n<div class=\"suis-navigation-group\">\n <div class=\"suis-navigation-group__header\">\n <suis-navigation-group-item\n [item]=\"item()\"\n [templateRef]=\"templateRef()\"\n [expandable]=\"expandable() && !!item()!.children\"\n [expanded]=\"_expanded()\"\n (expandedChange)=\"onExpandedChange($event)\"\n [darkMode]=\"darkMode()\"\n ></suis-navigation-group-item>\n </div>\n @if (_expanded()) {\n <div class=\"suis-navigation-group__children\">\n @for (childItem of item()!.children; track itemTrackBy($index, childItem)) {\n <suis-navigation-item\n [item]=\"childItem\"\n [templateRef]=\"templateRef()\"\n [darkMode]=\"darkMode()\"\n ></suis-navigation-item>\n }\n </div>\n }\n</div>\n}\n", styles: [":host{display:block}.suis-navigation-group__header{display:flex;justify-content:space-between}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "component", type: SuisNavigationItemComponent, selector: "suis-navigation-item", inputs: ["item", "templateRef", "darkMode"] }, { kind: "component", type: SuisNavigationGroupItemComponent, selector: "suis-navigation-group-item", inputs: ["item", "templateRef", "expanded", "expandable", "darkMode"], outputs: ["expandedChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2753
2570
  }
2754
2571
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisNavigationGroupComponent, decorators: [{
2755
2572
  type: Component,
@@ -2757,82 +2574,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
2757
2574
  RouterModule,
2758
2575
  SuisNavigationItemComponent,
2759
2576
  SuisNavigationGroupItemComponent,
2760
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (item) {\n<div class=\"suis-navigation-group\">\n <div class=\"suis-navigation-group__header\">\n <suis-navigation-group-item\n [item]=\"item\"\n [templateRef]=\"templateRef\"\n [expandable]=\"expandable && !!item.children\"\n [(expanded)]=\"expanded\"\n [darkMode]=\"darkMode\"\n ></suis-navigation-group-item>\n </div>\n @if (expanded) {\n <div class=\"suis-navigation-group__children\">\n @for (childItem of item.children; track itemTrackBy($index, childItem)) {\n <suis-navigation-item\n [item]=\"childItem\"\n [templateRef]=\"templateRef\"\n [darkMode]=\"darkMode\"\n ></suis-navigation-item>\n }\n </div>\n }\n</div>\n}\n", styles: [":host{display:block}.suis-navigation-group__header{display:flex;justify-content:space-between}\n"] }]
2761
- }], propDecorators: { item: [{
2762
- type: Input
2763
- }], templateRef: [{
2764
- type: Input
2765
- }], expanded: [{
2766
- type: Input
2767
- }], expandable: [{
2768
- type: Input
2769
- }], darkMode: [{
2770
- type: Input
2771
- }] } });
2577
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (item()) {\n<div class=\"suis-navigation-group\">\n <div class=\"suis-navigation-group__header\">\n <suis-navigation-group-item\n [item]=\"item()\"\n [templateRef]=\"templateRef()\"\n [expandable]=\"expandable() && !!item()!.children\"\n [expanded]=\"_expanded()\"\n (expandedChange)=\"onExpandedChange($event)\"\n [darkMode]=\"darkMode()\"\n ></suis-navigation-group-item>\n </div>\n @if (_expanded()) {\n <div class=\"suis-navigation-group__children\">\n @for (childItem of item()!.children; track itemTrackBy($index, childItem)) {\n <suis-navigation-item\n [item]=\"childItem\"\n [templateRef]=\"templateRef()\"\n [darkMode]=\"darkMode()\"\n ></suis-navigation-item>\n }\n </div>\n }\n</div>\n}\n", styles: [":host{display:block}.suis-navigation-group__header{display:flex;justify-content:space-between}\n"] }]
2578
+ }], ctorParameters: () => [] });
2772
2579
 
2773
2580
  class SuisNavigationComponent {
2774
2581
  constructor() {
2582
+ /** @internal */
2583
+ this.suisNavigationItem = contentChild(SuisNavigationItemDirective);
2775
2584
  /**
2776
2585
  * List of navigation items. Type of SuisNavigationGroupItem[]. By default set to empty array.
2777
2586
  */
2778
- this.items = [];
2587
+ this.items = input([]);
2779
2588
  /**
2780
2589
  * Condition to expand groups at view initialization. By default set to true.
2781
2590
  */
2782
- this.expandedGroups = true;
2591
+ this.expandedGroups = input(true);
2783
2592
  /**
2784
2593
  * Adds expand / collapse logic to group header items. By default set to false.
2785
2594
  */
2786
- this.expandable = false;
2595
+ this.expandable = input(false);
2787
2596
  /**
2788
2597
  * Adds collapse / expand logic to navigiaton. By default set to false.
2789
2598
  */
2790
- this.collapsable = false;
2599
+ this.collapsable = input(false);
2791
2600
  /**
2792
2601
  * Collapses the navigiation, when collapsable is enabled. By default set to false.
2793
2602
  */
2794
- this.collapsed = false;
2603
+ this.collapsed = input(false);
2604
+ this._collapsed = signal(false);
2795
2605
  /**
2796
2606
  * Emits on collapsed value changed.
2797
2607
  */
2798
- this.collaspedChange = new EventEmitter();
2608
+ this.collaspedChange = input(new EventEmitter());
2799
2609
  /**
2800
2610
  * Enables dark mode pallette. By default set to true.
2801
2611
  */
2802
- this.darkMode = true;
2612
+ this.darkMode = input(true);
2613
+ effect(() => {
2614
+ this._collapsed.set(this.collapsed());
2615
+ });
2803
2616
  }
2804
2617
  onToggle() {
2805
- this.collapsed = !this.collapsed;
2806
- this.collaspedChange.emit(this.collapsed);
2618
+ this._collapsed.update((value) => !value);
2619
+ this.collaspedChange().emit(this._collapsed());
2807
2620
  }
2808
2621
  /** @internal */
2809
2622
  groupItemTrackBy(index, groupItem) {
2810
2623
  return `${groupItem.label}-${index}`;
2811
2624
  }
2812
2625
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2813
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisNavigationComponent, isStandalone: true, selector: "suis-navigation", inputs: { items: "items", expandedGroups: "expandedGroups", expandable: "expandable", collapsable: "collapsable", collapsed: "collapsed", collaspedChange: "collaspedChange", darkMode: "darkMode" }, queries: [{ propertyName: "suisNavigationItem", first: true, predicate: SuisNavigationItemDirective, descendants: true }], ngImport: i0, template: "<div\n class=\"suis-navigation\"\n [class.suis-navigation--collapsed]=\"collapsable && collapsed\"\n [class.suis-navigation--dark]=\"darkMode\"\n>\n <div class=\"suis-navigation__actions\">\n @if (collapsable) {\n <button type=\"button\" (click)=\"onToggle()\">\n <suis-icon\n [type]=\"collapsed ? 'arrow-right' : 'arrow-left'\"\n [color]=\"darkMode ? 'white' : 'primary'\"\n size=\"xl\"\n ></suis-icon>\n </button>\n }\n </div>\n <div class=\"suis-navigation__groups\">\n @if (!collapsed) { @for (groupItem of items; track groupItemTrackBy($index,\n groupItem)) {\n <suis-navigation-group\n [item]=\"groupItem\"\n [templateRef]=\"suisNavigationItem?.templateRef\"\n [expanded]=\"expandedGroups\"\n [expandable]=\"expandable\"\n [darkMode]=\"darkMode\"\n ></suis-navigation-group>\n } }\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;height:100%}.suis-navigation{width:100%;min-width:16rem;max-width:16rem;background-color:#fff;border-right:.0625rem solid #dcdde1;height:100%;min-height:100vh;padding:1rem;display:flex;flex-direction:column}.suis-navigation--dark{background-color:#192a56;border-right:none}.suis-navigation--collapsed{min-width:4rem;max-width:4rem}.suis-navigation__groups{overflow-y:auto}.suis-navigation__actions{display:flex;justify-content:flex-end}.suis-navigation__actions button{margin-bottom:.75rem;background-color:transparent;border-radius:.25rem;border:0}.suis-navigation__actions button:hover{cursor:pointer}\n"], dependencies: [{ kind: "component", type: SuisNavigationGroupComponent, selector: "suis-navigation-group", inputs: ["item", "templateRef", "expanded", "expandable", "darkMode"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2626
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: SuisNavigationComponent, isStandalone: true, selector: "suis-navigation", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, expandedGroups: { classPropertyName: "expandedGroups", publicName: "expandedGroups", isSignal: true, isRequired: false, transformFunction: null }, expandable: { classPropertyName: "expandable", publicName: "expandable", isSignal: true, isRequired: false, transformFunction: null }, collapsable: { classPropertyName: "collapsable", publicName: "collapsable", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, collaspedChange: { classPropertyName: "collaspedChange", publicName: "collaspedChange", isSignal: true, isRequired: false, transformFunction: null }, darkMode: { classPropertyName: "darkMode", publicName: "darkMode", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "suisNavigationItem", first: true, predicate: SuisNavigationItemDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"suis-navigation\"\n [class.suis-navigation--collapsed]=\"collapsable() && _collapsed()\"\n [class.suis-navigation--dark]=\"darkMode()\"\n>\n <div class=\"suis-navigation__actions\">\n @if (collapsable()) {\n <button type=\"button\" (click)=\"onToggle()\">\n <suis-icon\n [type]=\"_collapsed() ? 'arrow-right' : 'arrow-left'\"\n [color]=\"darkMode() ? 'white' : 'primary'\"\n size=\"xl\"\n ></suis-icon>\n </button>\n }\n </div>\n <div class=\"suis-navigation__groups\">\n @if (!_collapsed()) { @for (groupItem of items(); track\n groupItemTrackBy($index, groupItem)) {\n <suis-navigation-group\n [item]=\"groupItem\"\n [templateRef]=\"suisNavigationItem()?.templateRef\"\n [expanded]=\"expandedGroups()\"\n [expandable]=\"expandable()\"\n [darkMode]=\"darkMode()\"\n ></suis-navigation-group>\n } }\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;height:100%}.suis-navigation{width:100%;min-width:16rem;max-width:16rem;background-color:#fff;border-right:.0625rem solid #dcdde1;height:100%;min-height:100vh;padding:1rem;display:flex;flex-direction:column}.suis-navigation--dark{background-color:#192a56;border-right:none}.suis-navigation--collapsed{min-width:4rem;max-width:4rem}.suis-navigation__groups{overflow-y:auto}.suis-navigation__actions{display:flex;justify-content:flex-end}.suis-navigation__actions button{margin-bottom:.75rem;background-color:transparent;border-radius:.25rem;border:0}.suis-navigation__actions button:hover{cursor:pointer}\n"], dependencies: [{ kind: "component", type: SuisNavigationGroupComponent, selector: "suis-navigation-group", inputs: ["item", "templateRef", "expanded", "expandable", "darkMode"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2814
2627
  }
2815
2628
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisNavigationComponent, decorators: [{
2816
2629
  type: Component,
2817
- args: [{ selector: 'suis-navigation', imports: [SuisNavigationGroupComponent, SuisIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"suis-navigation\"\n [class.suis-navigation--collapsed]=\"collapsable && collapsed\"\n [class.suis-navigation--dark]=\"darkMode\"\n>\n <div class=\"suis-navigation__actions\">\n @if (collapsable) {\n <button type=\"button\" (click)=\"onToggle()\">\n <suis-icon\n [type]=\"collapsed ? 'arrow-right' : 'arrow-left'\"\n [color]=\"darkMode ? 'white' : 'primary'\"\n size=\"xl\"\n ></suis-icon>\n </button>\n }\n </div>\n <div class=\"suis-navigation__groups\">\n @if (!collapsed) { @for (groupItem of items; track groupItemTrackBy($index,\n groupItem)) {\n <suis-navigation-group\n [item]=\"groupItem\"\n [templateRef]=\"suisNavigationItem?.templateRef\"\n [expanded]=\"expandedGroups\"\n [expandable]=\"expandable\"\n [darkMode]=\"darkMode\"\n ></suis-navigation-group>\n } }\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;height:100%}.suis-navigation{width:100%;min-width:16rem;max-width:16rem;background-color:#fff;border-right:.0625rem solid #dcdde1;height:100%;min-height:100vh;padding:1rem;display:flex;flex-direction:column}.suis-navigation--dark{background-color:#192a56;border-right:none}.suis-navigation--collapsed{min-width:4rem;max-width:4rem}.suis-navigation__groups{overflow-y:auto}.suis-navigation__actions{display:flex;justify-content:flex-end}.suis-navigation__actions button{margin-bottom:.75rem;background-color:transparent;border-radius:.25rem;border:0}.suis-navigation__actions button:hover{cursor:pointer}\n"] }]
2818
- }], propDecorators: { suisNavigationItem: [{
2819
- type: ContentChild,
2820
- args: [SuisNavigationItemDirective]
2821
- }], items: [{
2822
- type: Input
2823
- }], expandedGroups: [{
2824
- type: Input
2825
- }], expandable: [{
2826
- type: Input
2827
- }], collapsable: [{
2828
- type: Input
2829
- }], collapsed: [{
2830
- type: Input
2831
- }], collaspedChange: [{
2832
- type: Input
2833
- }], darkMode: [{
2834
- type: Input
2835
- }] } });
2630
+ args: [{ selector: 'suis-navigation', imports: [SuisNavigationGroupComponent, SuisIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"suis-navigation\"\n [class.suis-navigation--collapsed]=\"collapsable() && _collapsed()\"\n [class.suis-navigation--dark]=\"darkMode()\"\n>\n <div class=\"suis-navigation__actions\">\n @if (collapsable()) {\n <button type=\"button\" (click)=\"onToggle()\">\n <suis-icon\n [type]=\"_collapsed() ? 'arrow-right' : 'arrow-left'\"\n [color]=\"darkMode() ? 'white' : 'primary'\"\n size=\"xl\"\n ></suis-icon>\n </button>\n }\n </div>\n <div class=\"suis-navigation__groups\">\n @if (!_collapsed()) { @for (groupItem of items(); track\n groupItemTrackBy($index, groupItem)) {\n <suis-navigation-group\n [item]=\"groupItem\"\n [templateRef]=\"suisNavigationItem()?.templateRef\"\n [expanded]=\"expandedGroups()\"\n [expandable]=\"expandable()\"\n [darkMode]=\"darkMode()\"\n ></suis-navigation-group>\n } }\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block;height:100%}.suis-navigation{width:100%;min-width:16rem;max-width:16rem;background-color:#fff;border-right:.0625rem solid #dcdde1;height:100%;min-height:100vh;padding:1rem;display:flex;flex-direction:column}.suis-navigation--dark{background-color:#192a56;border-right:none}.suis-navigation--collapsed{min-width:4rem;max-width:4rem}.suis-navigation__groups{overflow-y:auto}.suis-navigation__actions{display:flex;justify-content:flex-end}.suis-navigation__actions button{margin-bottom:.75rem;background-color:transparent;border-radius:.25rem;border:0}.suis-navigation__actions button:hover{cursor:pointer}\n"] }]
2631
+ }], ctorParameters: () => [] });
2836
2632
 
2837
2633
  class SuisNavigationModule {
2838
2634
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SuisNavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }