@flywheel-io/vision 19.0.0 → 19.2.0

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.
@@ -1,7 +1,7 @@
1
1
  import * as i1$5 from '@angular/common';
2
- import { NgClass, NgIf, CommonModule, NgSwitch, NgSwitchCase, NgTemplateOutlet, NgStyle, NgFor, SlicePipe } from '@angular/common';
2
+ import { NgClass, CommonModule, NgIf, NgStyle, NgTemplateOutlet, NgFor, SlicePipe } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { HostBinding, Input, ChangeDetectionStrategy, Component, input, EventEmitter, Output, NgModule, model, computed, ViewEncapsulation, HostListener, signal, effect, inject, ElementRef, ViewContainerRef, Directive, contentChildren, viewChild, ChangeDetectorRef, ContentChildren, ViewChild, forwardRef, Optional, Inject, SkipSelf, Injectable, Pipe, ContentChild, DestroyRef, output, Host, ViewChildren, Self, TemplateRef, viewChildren } from '@angular/core';
4
+ import { HostBinding, Input, ChangeDetectionStrategy, Component, input, output, NgModule, model, computed, signal, HostListener, ViewEncapsulation, EventEmitter, Output, effect, inject, ElementRef, ViewContainerRef, Directive, contentChildren, viewChild, ChangeDetectorRef, ContentChildren, ViewChild, forwardRef, Optional, Inject, SkipSelf, Injectable, Pipe, ContentChild, DestroyRef, Host, ViewChildren, Self, TemplateRef, viewChildren } from '@angular/core';
5
5
  import * as i1 from '@angular/platform-browser';
6
6
  import { DomSanitizer } from '@angular/platform-browser';
7
7
  import { BehaviorSubject, debounce, timer, distinctUntilChanged, of, Subscription, min, combineLatest, tap, switchMap, map } from 'rxjs';
@@ -92,74 +92,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
92
92
 
93
93
  class FwIconButtonComponent {
94
94
  constructor() {
95
- this.color = 'primary';
96
- this.icon = '';
97
- this.size = 'medium';
98
- this.disabled = false;
99
- this.selected = false;
95
+ this.color = input('primary');
96
+ this.icon = input('icon-placeholder');
97
+ this.size = input('medium');
98
+ this.disabled = input(false);
99
+ this.selected = input(false);
100
100
  this.border = input(false);
101
101
  }
102
- get classes() {
103
- return this.size;
104
- }
105
- ;
106
102
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwIconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
107
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.18", type: FwIconButtonComponent, isStandalone: true, selector: "fw-icon-button", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: false, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: false, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.class": "this.classes", "tabindex": "this.tabindex" } }, ngImport: i0, template: "<button [disabled]=\"disabled\"\n [class]=\"color + '-button'\"\n [class.selected-button]=\"selected\"\n [class.border]=\"border()\"\n [tabindex]=\"tabindex\">\n <fw-icon>{{ icon }}</fw-icon>\n</button>\n", styles: [":host{display:inline-block;position:relative}:host button{border:none;min-height:inherit;min-width:inherit;border-radius:8px;background:none;padding:0;display:flex;align-items:center;justify-content:center}:host button:hover{border:none;cursor:pointer}:host button.border{border-radius:8px;border:1px solid var(--separations-divider)}:host .primary-button:hover,:host .info-button:hover{background:var(--primary-hover)}:host .primary-button:focus,:host .info-button:focus{background:var(--primary-focus)}:host .primary-button.selected-button,:host .info-button.selected-button{background-color:var(--primary-base)}:host .primary-button fw-icon,:host .info-button fw-icon{color:var(--primary-base)}:host .secondary-button:hover{background:var(--secondary-hover)}:host .secondary-button:focus{background:var(--secondary-focus)}:host .secondary-button.selected-button{background-color:var(--secondary-base)}:host .secondary-button fw-icon{color:var(--secondary-base)}:host .slate-button:hover{background:var(--slate-hover)}:host .slate-button:focus{background:var(--slate-focus)}:host .slate-button.selected-button{background-color:var(--typography-muted)}:host .slate-button fw-icon{color:var(--typography-muted)}:host .light-slate-button:hover{background:var(--slate-hover)}:host .light-slate-button:focus{background:var(--slate-focus)}:host .light-slate-button.selected-button{background-color:var(--typography-muted)}:host .light-slate-button fw-icon{color:var(--typography-light)}:host .overlay-button:hover{background:var(--slate-hover)}:host .overlay-button:focus{background:var(--slate-focus)}:host .overlay-button.selected-button{background-color:var(--typography-muted)}:host .overlay-button fw-icon{color:var(--typography-contrast)}:host .red-button:hover,:host .error-button:hover{background:var(--red-hover)}:host .red-button:focus,:host .error-button:focus{background:var(--red-focus)}:host .red-button.selected-button,:host .error-button.selected-button{background-color:var(--red-base)}:host .red-button fw-icon,:host .error-button fw-icon{color:var(--red-base)}:host .orange-button:hover,:host .warning-button:hover{background:var(--orange-hover)}:host .orange-button:focus,:host .warning-button:focus{background:var(--orange-focus)}:host .orange-button.selected-button,:host .warning-button.selected-button{background-color:var(--orange-base)}:host .orange-button fw-icon,:host .warning-button fw-icon{color:var(--orange-base)}:host .green-button:hover,:host .success-button:hover{background:var(--green-hover)}:host .green-button:focus,:host .success-button:focus{background:var(--green-focus)}:host .green-button.selected-button,:host .success-button.selected-button{background-color:var(--green-base)}:host .green-button fw-icon,:host .success-button fw-icon{color:var(--green-base)}:host .selected-button fw-icon{color:var(--typography-contrast)}:host button:disabled{cursor:not-allowed}:host button:disabled:hover{background:none}:host button:disabled:focus{background:none}:host button:disabled fw-icon{color:var(--typography-muted);opacity:.2}:host button:disabled.selected-button{background-color:var(--typography-light)!important}:host button:disabled.selected-button fw-icon{color:var(--typography-contrast)!important}:host.small{min-height:30px;min-width:30px}:host.small fw-icon{font-size:22px;min-width:22px;width:22px}:host.medium{min-height:36px;min-width:36px}:host.medium fw-icon{font-size:24px;min-width:24px;width:24px}:host.large{min-height:40px;min-width:40px}:host.large fw-icon{font-size:28px;min-width:28px;width:28px}\n"], dependencies: [{ kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }] }); }
103
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.18", type: FwIconButtonComponent, isStandalone: true, selector: "fw-icon-button", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<button [disabled]=\"disabled()\"\n [class]=\"[color() + '-button', size()]\"\n [class.selected-button]=\"selected()\"\n [class.border]=\"border()\">\n <fw-icon>{{ icon() }}</fw-icon>\n</button>\n", styles: [":host{display:inline-block;position:relative}:host button{border:none;min-height:inherit;min-width:inherit;border-radius:8px;background:none;padding:0;display:flex;align-items:center;justify-content:center}:host button:hover{border:none;cursor:pointer}:host button.border{border-radius:8px;border:1px solid var(--separations-divider)}:host .primary-button:hover,:host .info-button:hover{background:var(--primary-hover)}:host .primary-button:focus,:host .info-button:focus{background:var(--primary-focus)}:host .primary-button.selected-button,:host .info-button.selected-button{background-color:var(--primary-base)}:host .primary-button fw-icon,:host .info-button fw-icon{color:var(--primary-base)}:host .secondary-button:hover{background:var(--secondary-hover)}:host .secondary-button:focus{background:var(--secondary-focus)}:host .secondary-button.selected-button{background-color:var(--secondary-base)}:host .secondary-button fw-icon{color:var(--secondary-base)}:host .slate-button:hover{background:var(--slate-hover)}:host .slate-button:focus{background:var(--slate-focus)}:host .slate-button.selected-button{background-color:var(--typography-muted)}:host .slate-button fw-icon{color:var(--typography-muted)}:host .light-slate-button:hover{background:var(--slate-hover)}:host .light-slate-button:focus{background:var(--slate-focus)}:host .light-slate-button.selected-button{background-color:var(--typography-muted)}:host .light-slate-button fw-icon{color:var(--typography-light)}:host .overlay-button:hover{background:var(--slate-hover)}:host .overlay-button:focus{background:var(--slate-focus)}:host .overlay-button.selected-button{background-color:var(--typography-muted)}:host .overlay-button fw-icon{color:var(--typography-contrast)}:host .red-button:hover,:host .error-button:hover{background:var(--red-hover)}:host .red-button:focus,:host .error-button:focus{background:var(--red-focus)}:host .red-button.selected-button,:host .error-button.selected-button{background-color:var(--red-base)}:host .red-button fw-icon,:host .error-button fw-icon{color:var(--red-base)}:host .orange-button:hover,:host .warning-button:hover{background:var(--orange-hover)}:host .orange-button:focus,:host .warning-button:focus{background:var(--orange-focus)}:host .orange-button.selected-button,:host .warning-button.selected-button{background-color:var(--orange-base)}:host .orange-button fw-icon,:host .warning-button fw-icon{color:var(--orange-base)}:host .green-button:hover,:host .success-button:hover{background:var(--green-hover)}:host .green-button:focus,:host .success-button:focus{background:var(--green-focus)}:host .green-button.selected-button,:host .success-button.selected-button{background-color:var(--green-base)}:host .green-button fw-icon,:host .success-button fw-icon{color:var(--green-base)}:host .selected-button fw-icon{color:var(--typography-contrast)}:host button:disabled{cursor:not-allowed}:host button:disabled:hover{background:none}:host button:disabled:focus{background:none}:host button:disabled fw-icon{color:var(--typography-muted);opacity:.2}:host button:disabled.selected-button{background-color:var(--typography-light)!important}:host button:disabled.selected-button fw-icon{color:var(--typography-contrast)!important}:host .small{min-height:30px;min-width:30px}:host .small fw-icon{font-size:22px;min-width:22px;width:22px}:host .medium{min-height:36px;min-width:36px}:host .medium fw-icon{font-size:24px;min-width:24px;width:24px}:host .large{min-height:40px;min-width:40px}:host .large fw-icon{font-size:28px;min-width:28px;width:28px}\n"], dependencies: [{ kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
108
104
  }
109
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwIconButtonComponent, decorators: [{
110
106
  type: Component,
111
- args: [{ selector: 'fw-icon-button', imports: [FwIconComponent], template: "<button [disabled]=\"disabled\"\n [class]=\"color + '-button'\"\n [class.selected-button]=\"selected\"\n [class.border]=\"border()\"\n [tabindex]=\"tabindex\">\n <fw-icon>{{ icon }}</fw-icon>\n</button>\n", styles: [":host{display:inline-block;position:relative}:host button{border:none;min-height:inherit;min-width:inherit;border-radius:8px;background:none;padding:0;display:flex;align-items:center;justify-content:center}:host button:hover{border:none;cursor:pointer}:host button.border{border-radius:8px;border:1px solid var(--separations-divider)}:host .primary-button:hover,:host .info-button:hover{background:var(--primary-hover)}:host .primary-button:focus,:host .info-button:focus{background:var(--primary-focus)}:host .primary-button.selected-button,:host .info-button.selected-button{background-color:var(--primary-base)}:host .primary-button fw-icon,:host .info-button fw-icon{color:var(--primary-base)}:host .secondary-button:hover{background:var(--secondary-hover)}:host .secondary-button:focus{background:var(--secondary-focus)}:host .secondary-button.selected-button{background-color:var(--secondary-base)}:host .secondary-button fw-icon{color:var(--secondary-base)}:host .slate-button:hover{background:var(--slate-hover)}:host .slate-button:focus{background:var(--slate-focus)}:host .slate-button.selected-button{background-color:var(--typography-muted)}:host .slate-button fw-icon{color:var(--typography-muted)}:host .light-slate-button:hover{background:var(--slate-hover)}:host .light-slate-button:focus{background:var(--slate-focus)}:host .light-slate-button.selected-button{background-color:var(--typography-muted)}:host .light-slate-button fw-icon{color:var(--typography-light)}:host .overlay-button:hover{background:var(--slate-hover)}:host .overlay-button:focus{background:var(--slate-focus)}:host .overlay-button.selected-button{background-color:var(--typography-muted)}:host .overlay-button fw-icon{color:var(--typography-contrast)}:host .red-button:hover,:host .error-button:hover{background:var(--red-hover)}:host .red-button:focus,:host .error-button:focus{background:var(--red-focus)}:host .red-button.selected-button,:host .error-button.selected-button{background-color:var(--red-base)}:host .red-button fw-icon,:host .error-button fw-icon{color:var(--red-base)}:host .orange-button:hover,:host .warning-button:hover{background:var(--orange-hover)}:host .orange-button:focus,:host .warning-button:focus{background:var(--orange-focus)}:host .orange-button.selected-button,:host .warning-button.selected-button{background-color:var(--orange-base)}:host .orange-button fw-icon,:host .warning-button fw-icon{color:var(--orange-base)}:host .green-button:hover,:host .success-button:hover{background:var(--green-hover)}:host .green-button:focus,:host .success-button:focus{background:var(--green-focus)}:host .green-button.selected-button,:host .success-button.selected-button{background-color:var(--green-base)}:host .green-button fw-icon,:host .success-button fw-icon{color:var(--green-base)}:host .selected-button fw-icon{color:var(--typography-contrast)}:host button:disabled{cursor:not-allowed}:host button:disabled:hover{background:none}:host button:disabled:focus{background:none}:host button:disabled fw-icon{color:var(--typography-muted);opacity:.2}:host button:disabled.selected-button{background-color:var(--typography-light)!important}:host button:disabled.selected-button fw-icon{color:var(--typography-contrast)!important}:host.small{min-height:30px;min-width:30px}:host.small fw-icon{font-size:22px;min-width:22px;width:22px}:host.medium{min-height:36px;min-width:36px}:host.medium fw-icon{font-size:24px;min-width:24px;width:24px}:host.large{min-height:40px;min-width:40px}:host.large fw-icon{font-size:28px;min-width:28px;width:28px}\n"] }]
112
- }], propDecorators: { classes: [{
113
- type: HostBinding,
114
- args: ['attr.class']
115
- }], tabindex: [{
116
- type: HostBinding,
117
- args: ['tabindex']
118
- }], color: [{
119
- type: Input
120
- }], icon: [{
121
- type: Input
122
- }], size: [{
123
- type: Input
124
- }], disabled: [{
125
- type: Input
126
- }], selected: [{
127
- type: Input
128
- }] } });
107
+ args: [{ selector: 'fw-icon-button', changeDetection: ChangeDetectionStrategy.OnPush, imports: [FwIconComponent], template: "<button [disabled]=\"disabled()\"\n [class]=\"[color() + '-button', size()]\"\n [class.selected-button]=\"selected()\"\n [class.border]=\"border()\">\n <fw-icon>{{ icon() }}</fw-icon>\n</button>\n", styles: [":host{display:inline-block;position:relative}:host button{border:none;min-height:inherit;min-width:inherit;border-radius:8px;background:none;padding:0;display:flex;align-items:center;justify-content:center}:host button:hover{border:none;cursor:pointer}:host button.border{border-radius:8px;border:1px solid var(--separations-divider)}:host .primary-button:hover,:host .info-button:hover{background:var(--primary-hover)}:host .primary-button:focus,:host .info-button:focus{background:var(--primary-focus)}:host .primary-button.selected-button,:host .info-button.selected-button{background-color:var(--primary-base)}:host .primary-button fw-icon,:host .info-button fw-icon{color:var(--primary-base)}:host .secondary-button:hover{background:var(--secondary-hover)}:host .secondary-button:focus{background:var(--secondary-focus)}:host .secondary-button.selected-button{background-color:var(--secondary-base)}:host .secondary-button fw-icon{color:var(--secondary-base)}:host .slate-button:hover{background:var(--slate-hover)}:host .slate-button:focus{background:var(--slate-focus)}:host .slate-button.selected-button{background-color:var(--typography-muted)}:host .slate-button fw-icon{color:var(--typography-muted)}:host .light-slate-button:hover{background:var(--slate-hover)}:host .light-slate-button:focus{background:var(--slate-focus)}:host .light-slate-button.selected-button{background-color:var(--typography-muted)}:host .light-slate-button fw-icon{color:var(--typography-light)}:host .overlay-button:hover{background:var(--slate-hover)}:host .overlay-button:focus{background:var(--slate-focus)}:host .overlay-button.selected-button{background-color:var(--typography-muted)}:host .overlay-button fw-icon{color:var(--typography-contrast)}:host .red-button:hover,:host .error-button:hover{background:var(--red-hover)}:host .red-button:focus,:host .error-button:focus{background:var(--red-focus)}:host .red-button.selected-button,:host .error-button.selected-button{background-color:var(--red-base)}:host .red-button fw-icon,:host .error-button fw-icon{color:var(--red-base)}:host .orange-button:hover,:host .warning-button:hover{background:var(--orange-hover)}:host .orange-button:focus,:host .warning-button:focus{background:var(--orange-focus)}:host .orange-button.selected-button,:host .warning-button.selected-button{background-color:var(--orange-base)}:host .orange-button fw-icon,:host .warning-button fw-icon{color:var(--orange-base)}:host .green-button:hover,:host .success-button:hover{background:var(--green-hover)}:host .green-button:focus,:host .success-button:focus{background:var(--green-focus)}:host .green-button.selected-button,:host .success-button.selected-button{background-color:var(--green-base)}:host .green-button fw-icon,:host .success-button fw-icon{color:var(--green-base)}:host .selected-button fw-icon{color:var(--typography-contrast)}:host button:disabled{cursor:not-allowed}:host button:disabled:hover{background:none}:host button:disabled:focus{background:none}:host button:disabled fw-icon{color:var(--typography-muted);opacity:.2}:host button:disabled.selected-button{background-color:var(--typography-light)!important}:host button:disabled.selected-button fw-icon{color:var(--typography-contrast)!important}:host .small{min-height:30px;min-width:30px}:host .small fw-icon{font-size:22px;min-width:22px;width:22px}:host .medium{min-height:36px;min-width:36px}:host .medium fw-icon{font-size:24px;min-width:24px;width:24px}:host .large{min-height:40px;min-width:40px}:host .large fw-icon{font-size:28px;min-width:28px;width:28px}\n"] }]
108
+ }] });
129
109
 
130
110
  class FwAlertComponent {
131
111
  constructor() {
132
- this.severity = 'info';
133
- this.variant = 'standard';
112
+ this.description = input();
113
+ this.icon = input();
114
+ this.severity = input('info');
115
+ this.title = input();
116
+ this.variant = input('standard');
117
+ this.showClose = input();
134
118
  // eslint-disable-next-line @angular-eslint/no-output-native
135
- this.close = new EventEmitter();
119
+ this.close = output();
136
120
  }
137
121
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
138
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: FwAlertComponent, isStandalone: true, selector: "fw-alert", inputs: { description: "description", icon: "icon", severity: "severity", title: "title", variant: "variant", showClose: "showClose" }, outputs: { close: "close" }, ngImport: i0, template: "<div [ngClass]=\"['fw-alert', variant, severity]\">\n <fw-icon *ngIf=\"icon\" class=\"fw-alert-icon\">{{ icon }}</fw-icon>\n <div class=\"fw-alert-text\">\n <h4 *ngIf=\"title\" class=\"vision-h4\">{{ title }}</h4>\n <p *ngIf=\"description\" class=\"vision-p2\">{{ description }}</p>\n <p class=\"vision-p2\">\n <ng-content></ng-content>\n </p>\n </div>\n <div class=\"close-icon\">\n <ng-content select=\"fw-button\"></ng-content>\n <fw-icon-button\n *ngIf=\"showClose\"\n icon=\"close\" size=\"small\"\n [color]=\"variant==='filled'?'overlay':severity\"\n (click)=\"close?close.emit():undefined\">\n </fw-icon-button>\n </div>\n</div>\n", styles: [".fw-alert{border-radius:8px;padding:6px 16px;display:flex;box-sizing:border-box;min-height:48px}.fw-alert .fw-alert-icon{padding:7px 12px 7px 0;align-items:flex-start;font-size:22px}.fw-alert .fw-alert-text{padding:6px 0;flex:1;display:flex;flex-direction:column;justify-items:center}.fw-alert h4{margin:3px 0;color:var(--typography-contrast)}.fw-alert p{margin:3px 0 0;color:inherit;font-size:12px;font-weight:400;line-height:16.8px}.fw-alert .close-icon{display:flex;align-items:flex-start;margin-left:16px;gap:16px;margin-top:4px;height:30px}.fw-alert .close-icon:empty{display:none}.fw-alert.standard.info{color:var(--primary-base);background-color:var(--primary-hover);border:1px solid var(--primary-border)}.fw-alert.standard.info h4{color:var(--primary-base)}.fw-alert.standard.warning{color:var(--orange-base);background-color:var(--orange-hover);border:1px solid var(--orange-border)}.fw-alert.standard.warning h4{color:var(--orange-base)}.fw-alert.standard.success{color:var(--green-base);background-color:var(--green-hover);border:1px solid var(--green-border)}.fw-alert.standard.success h4{color:var(--green-base)}.fw-alert.standard.error{color:var(--red-base);background-color:var(--red-hover);border:1px solid var(--red-border)}.fw-alert.standard.error h4{color:var(--red-base)}.fw-alert.outlined.info{color:var(--primary-base);border:1px solid var(--primary-base)}.fw-alert.outlined.info h4{color:var(--primary-base)}.fw-alert.outlined.warning{color:var(--orange-base);border:1px solid var(--orange-base)}.fw-alert.outlined.warning h4{color:var(--orange-base)}.fw-alert.outlined.success{color:var(--green-base);border:1px solid var(--green-base)}.fw-alert.outlined.success h4{color:var(--green-base)}.fw-alert.outlined.error{color:var(--red-base);border:1px solid var(--red-base)}.fw-alert.outlined.error h4{color:var(--red-base)}.fw-alert.filled.info{color:var(--typography-contrast);background-color:var(--primary-base)}.fw-alert.filled.warning{color:var(--typography-contrast);background-color:var(--orange-base)}.fw-alert.filled.success{color:var(--typography-contrast);background-color:var(--green-base)}.fw-alert.filled.error{color:var(--typography-contrast);background-color:var(--red-base)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }, { kind: "component", type: FwIconButtonComponent, selector: "fw-icon-button", inputs: ["color", "icon", "size", "disabled", "selected", "border"] }] }); }
122
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: FwAlertComponent, isStandalone: true, selector: "fw-alert", inputs: { description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, showClose: { classPropertyName: "showClose", publicName: "showClose", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { close: "close" }, ngImport: i0, template: "<div [ngClass]=\"['fw-alert', variant(), severity()]\">\n @if (icon()) {\n <fw-icon class=\"fw-alert-icon\">{{ icon() }}</fw-icon>\n }\n <div class=\"fw-alert-text\">\n @if (title()) {\n <h4 class=\"vision-h4\">{{ title() }}</h4>\n }\n @if (description()) {\n <p class=\"vision-p2\">{{ description() }}</p>\n }\n <p class=\"vision-p2\">\n <ng-content></ng-content>\n </p>\n </div>\n <div class=\"close-icon\">\n <ng-content select=\"fw-button\"></ng-content>\n @if (showClose()) {\n <fw-icon-button\n icon=\"close\" size=\"small\"\n [color]=\"variant() === 'filled' ? 'overlay' : severity()\"\n (click)=\"close ? close.emit() : undefined\">\n </fw-icon-button>\n }\n </div>\n</div>\n", styles: [".fw-alert{border-radius:8px;padding:6px 16px;display:flex;box-sizing:border-box;min-height:48px}.fw-alert .fw-alert-icon{padding:7px 12px 7px 0;align-items:flex-start;font-size:22px}.fw-alert .fw-alert-text{padding:6px 0;flex:1;display:flex;flex-direction:column;justify-items:center}.fw-alert h4{margin:3px 0;color:var(--typography-contrast)}.fw-alert p{margin:3px 0 0;color:inherit;font-size:12px;font-weight:400;line-height:16.8px}.fw-alert .close-icon{display:flex;align-items:flex-start;margin-left:16px;gap:16px;margin-top:4px;height:30px}.fw-alert .close-icon:empty{display:none}.fw-alert.standard.info{color:var(--primary-base);background-color:var(--primary-hover);border:1px solid var(--primary-border)}.fw-alert.standard.info h4{color:var(--primary-base)}.fw-alert.standard.warning{color:var(--orange-base);background-color:var(--orange-hover);border:1px solid var(--orange-border)}.fw-alert.standard.warning h4{color:var(--orange-base)}.fw-alert.standard.success{color:var(--green-base);background-color:var(--green-hover);border:1px solid var(--green-border)}.fw-alert.standard.success h4{color:var(--green-base)}.fw-alert.standard.error{color:var(--red-base);background-color:var(--red-hover);border:1px solid var(--red-border)}.fw-alert.standard.error h4{color:var(--red-base)}.fw-alert.outlined.info{color:var(--primary-base);border:1px solid var(--primary-base)}.fw-alert.outlined.info h4{color:var(--primary-base)}.fw-alert.outlined.warning{color:var(--orange-base);border:1px solid var(--orange-base)}.fw-alert.outlined.warning h4{color:var(--orange-base)}.fw-alert.outlined.success{color:var(--green-base);border:1px solid var(--green-base)}.fw-alert.outlined.success h4{color:var(--green-base)}.fw-alert.outlined.error{color:var(--red-base);border:1px solid var(--red-base)}.fw-alert.outlined.error h4{color:var(--red-base)}.fw-alert.filled.info{color:var(--typography-contrast);background-color:var(--primary-base)}.fw-alert.filled.warning{color:var(--typography-contrast);background-color:var(--orange-base)}.fw-alert.filled.success{color:var(--typography-contrast);background-color:var(--green-base)}.fw-alert.filled.error{color:var(--typography-contrast);background-color:var(--red-base)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }, { kind: "component", type: FwIconButtonComponent, selector: "fw-icon-button", inputs: ["color", "icon", "size", "disabled", "selected", "border"] }] }); }
139
123
  }
140
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwAlertComponent, decorators: [{
141
125
  type: Component,
142
126
  args: [{ selector: 'fw-alert', imports: [
143
127
  NgClass,
144
- NgIf,
145
128
  FwIconComponent,
146
129
  FwIconButtonComponent,
147
- ], template: "<div [ngClass]=\"['fw-alert', variant, severity]\">\n <fw-icon *ngIf=\"icon\" class=\"fw-alert-icon\">{{ icon }}</fw-icon>\n <div class=\"fw-alert-text\">\n <h4 *ngIf=\"title\" class=\"vision-h4\">{{ title }}</h4>\n <p *ngIf=\"description\" class=\"vision-p2\">{{ description }}</p>\n <p class=\"vision-p2\">\n <ng-content></ng-content>\n </p>\n </div>\n <div class=\"close-icon\">\n <ng-content select=\"fw-button\"></ng-content>\n <fw-icon-button\n *ngIf=\"showClose\"\n icon=\"close\" size=\"small\"\n [color]=\"variant==='filled'?'overlay':severity\"\n (click)=\"close?close.emit():undefined\">\n </fw-icon-button>\n </div>\n</div>\n", styles: [".fw-alert{border-radius:8px;padding:6px 16px;display:flex;box-sizing:border-box;min-height:48px}.fw-alert .fw-alert-icon{padding:7px 12px 7px 0;align-items:flex-start;font-size:22px}.fw-alert .fw-alert-text{padding:6px 0;flex:1;display:flex;flex-direction:column;justify-items:center}.fw-alert h4{margin:3px 0;color:var(--typography-contrast)}.fw-alert p{margin:3px 0 0;color:inherit;font-size:12px;font-weight:400;line-height:16.8px}.fw-alert .close-icon{display:flex;align-items:flex-start;margin-left:16px;gap:16px;margin-top:4px;height:30px}.fw-alert .close-icon:empty{display:none}.fw-alert.standard.info{color:var(--primary-base);background-color:var(--primary-hover);border:1px solid var(--primary-border)}.fw-alert.standard.info h4{color:var(--primary-base)}.fw-alert.standard.warning{color:var(--orange-base);background-color:var(--orange-hover);border:1px solid var(--orange-border)}.fw-alert.standard.warning h4{color:var(--orange-base)}.fw-alert.standard.success{color:var(--green-base);background-color:var(--green-hover);border:1px solid var(--green-border)}.fw-alert.standard.success h4{color:var(--green-base)}.fw-alert.standard.error{color:var(--red-base);background-color:var(--red-hover);border:1px solid var(--red-border)}.fw-alert.standard.error h4{color:var(--red-base)}.fw-alert.outlined.info{color:var(--primary-base);border:1px solid var(--primary-base)}.fw-alert.outlined.info h4{color:var(--primary-base)}.fw-alert.outlined.warning{color:var(--orange-base);border:1px solid var(--orange-base)}.fw-alert.outlined.warning h4{color:var(--orange-base)}.fw-alert.outlined.success{color:var(--green-base);border:1px solid var(--green-base)}.fw-alert.outlined.success h4{color:var(--green-base)}.fw-alert.outlined.error{color:var(--red-base);border:1px solid var(--red-base)}.fw-alert.outlined.error h4{color:var(--red-base)}.fw-alert.filled.info{color:var(--typography-contrast);background-color:var(--primary-base)}.fw-alert.filled.warning{color:var(--typography-contrast);background-color:var(--orange-base)}.fw-alert.filled.success{color:var(--typography-contrast);background-color:var(--green-base)}.fw-alert.filled.error{color:var(--typography-contrast);background-color:var(--red-base)}\n"] }]
148
- }], propDecorators: { description: [{
149
- type: Input
150
- }], icon: [{
151
- type: Input
152
- }], severity: [{
153
- type: Input
154
- }], title: [{
155
- type: Input
156
- }], variant: [{
157
- type: Input
158
- }], showClose: [{
159
- type: Input
160
- }], close: [{
161
- type: Output
162
- }] } });
130
+ ], template: "<div [ngClass]=\"['fw-alert', variant(), severity()]\">\n @if (icon()) {\n <fw-icon class=\"fw-alert-icon\">{{ icon() }}</fw-icon>\n }\n <div class=\"fw-alert-text\">\n @if (title()) {\n <h4 class=\"vision-h4\">{{ title() }}</h4>\n }\n @if (description()) {\n <p class=\"vision-p2\">{{ description() }}</p>\n }\n <p class=\"vision-p2\">\n <ng-content></ng-content>\n </p>\n </div>\n <div class=\"close-icon\">\n <ng-content select=\"fw-button\"></ng-content>\n @if (showClose()) {\n <fw-icon-button\n icon=\"close\" size=\"small\"\n [color]=\"variant() === 'filled' ? 'overlay' : severity()\"\n (click)=\"close ? close.emit() : undefined\">\n </fw-icon-button>\n }\n </div>\n</div>\n", styles: [".fw-alert{border-radius:8px;padding:6px 16px;display:flex;box-sizing:border-box;min-height:48px}.fw-alert .fw-alert-icon{padding:7px 12px 7px 0;align-items:flex-start;font-size:22px}.fw-alert .fw-alert-text{padding:6px 0;flex:1;display:flex;flex-direction:column;justify-items:center}.fw-alert h4{margin:3px 0;color:var(--typography-contrast)}.fw-alert p{margin:3px 0 0;color:inherit;font-size:12px;font-weight:400;line-height:16.8px}.fw-alert .close-icon{display:flex;align-items:flex-start;margin-left:16px;gap:16px;margin-top:4px;height:30px}.fw-alert .close-icon:empty{display:none}.fw-alert.standard.info{color:var(--primary-base);background-color:var(--primary-hover);border:1px solid var(--primary-border)}.fw-alert.standard.info h4{color:var(--primary-base)}.fw-alert.standard.warning{color:var(--orange-base);background-color:var(--orange-hover);border:1px solid var(--orange-border)}.fw-alert.standard.warning h4{color:var(--orange-base)}.fw-alert.standard.success{color:var(--green-base);background-color:var(--green-hover);border:1px solid var(--green-border)}.fw-alert.standard.success h4{color:var(--green-base)}.fw-alert.standard.error{color:var(--red-base);background-color:var(--red-hover);border:1px solid var(--red-border)}.fw-alert.standard.error h4{color:var(--red-base)}.fw-alert.outlined.info{color:var(--primary-base);border:1px solid var(--primary-base)}.fw-alert.outlined.info h4{color:var(--primary-base)}.fw-alert.outlined.warning{color:var(--orange-base);border:1px solid var(--orange-base)}.fw-alert.outlined.warning h4{color:var(--orange-base)}.fw-alert.outlined.success{color:var(--green-base);border:1px solid var(--green-base)}.fw-alert.outlined.success h4{color:var(--green-base)}.fw-alert.outlined.error{color:var(--red-base);border:1px solid var(--red-base)}.fw-alert.outlined.error h4{color:var(--red-base)}.fw-alert.filled.info{color:var(--typography-contrast);background-color:var(--primary-base)}.fw-alert.filled.warning{color:var(--typography-contrast);background-color:var(--orange-base)}.fw-alert.filled.success{color:var(--typography-contrast);background-color:var(--green-base)}.fw-alert.filled.error{color:var(--typography-contrast);background-color:var(--red-base)}\n"] }]
131
+ }] });
163
132
 
164
133
  /**
165
134
  * @deprecated import component directly, intent to remove in v20
@@ -362,76 +331,57 @@ const namedColorMap = {
362
331
  };
363
332
  class FwAvatarComponent {
364
333
  constructor() {
365
- this.color = 'primary';
366
- this.variant = 'circular';
367
- this.content = 'icon';
368
- this.size = 'small';
369
- this.initial = '';
370
- this.imageUrl = '';
371
- this.imageAltText = '';
372
- this.icon = 'user';
373
- this.bordered = false;
374
- this.selected = input(false);
334
+ this.bordered = input(false);
335
+ this.color = input('primary');
375
336
  this.colorSeed = model();
337
+ this.content = input('icon');
338
+ this.icon = input('user');
339
+ this.imageAltText = input('');
340
+ this.imageUrl = input('');
341
+ this.initial = input('');
342
+ this.selectable = input(false);
343
+ this.selected = model(false);
344
+ this.size = input('small');
345
+ this.variant = input('circular');
346
+ this.hostClasses = computed(() => {
347
+ const classes = [
348
+ this.size(),
349
+ this.variant(),
350
+ this.content(),
351
+ this.bordered() ? 'bordered' : null,
352
+ this.selected() ? 'selected' : null,
353
+ this.selectable() ? 'selectable' : null,
354
+ ];
355
+ return classes.filter(Boolean).join(' ');
356
+ });
376
357
  this.hasedColor = computed(() => pickColorViaHash(this.colorSeed()));
377
- this.colorToDisplay = computed(() => this.colorSeed() ? this.hasedColor() : namedColorMap[this.color]);
378
- this.isImageBroken = false;
358
+ this.colorToDisplay = computed(() => this.colorSeed() ? this.hasedColor() : namedColorMap[this.color()]);
359
+ this.isImageBroken = signal(false);
379
360
  }
380
- get classes() {
381
- return [this.size, this.variant, this.content, 'selected'].filter(Boolean).join(' ');
382
- }
383
- ;
384
- get borderClass() {
385
- return this.bordered;
386
- }
387
- get selectedClassApplied() {
388
- return this.selected();
361
+ onClick() {
362
+ if (this.selectable()) {
363
+ this.selected.update(v => !v);
364
+ }
389
365
  }
390
366
  loadImage() {
391
- this.isImageBroken = false;
367
+ this.isImageBroken.set(false);
392
368
  }
393
369
  errorImage() {
394
- this.isImageBroken = true;
370
+ this.isImageBroken.set(true);
395
371
  }
396
372
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
397
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.18", type: FwAvatarComponent, isStandalone: true, selector: "fw-avatar", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: false, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: false, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, initial: { classPropertyName: "initial", publicName: "initial", isSignal: false, isRequired: false, transformFunction: null }, imageUrl: { classPropertyName: "imageUrl", publicName: "imageUrl", isSignal: false, isRequired: false, transformFunction: null }, imageAltText: { classPropertyName: "imageAltText", publicName: "imageAltText", isSignal: false, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: false, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: false, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, colorSeed: { classPropertyName: "colorSeed", publicName: "colorSeed", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { colorSeed: "colorSeedChange" }, host: { properties: { "attr.class": "this.classes", "class.bordered": "this.borderClass", "class.selected": "this.selectedClassApplied" } }, ngImport: i0, template: "<ng-container [ngSwitch]=\"content\">\n <div [style.backgroundColor]=\"colorToDisplay()\" *ngSwitchCase=\"'image'\" class=\"avatar\">\n <img\n *ngIf=\"!isImageBroken else displayInitial\"\n [src]=\"imageUrl\"\n [alt]=\"imageAltText\"\n (load)=\"loadImage()\"\n (error)=\"errorImage()\">\n </div>\n <div *ngSwitchCase=\"'icon'\" [style.backgroundColor]=\"colorToDisplay()\" class=\"avatar\">\n <ng-container *ngTemplateOutlet=\"displayIcon\"></ng-container>\n </div>\n <div *ngSwitchCase=\"'initial'\" [style.backgroundColor]=\"colorToDisplay()\" class=\"avatar\">\n <ng-container *ngTemplateOutlet=\"displayInitial\"></ng-container>\n </div>\n</ng-container>\n<ng-template #displayInitial>\n <span class=\"initial\" *ngIf=\"initial else displayIcon\">{{ initial }}</span>\n</ng-template>\n<ng-template #displayIcon>\n <fw-icon>{{ icon }}</fw-icon>\n</ng-template>\n", styles: [":host-context(.selected):after{content:\"\";position:absolute;width:calc(100% + 6px);height:calc(100% + 6px);border-radius:inherit;top:-6px;left:-6px;border:3px solid var(--primary-base)}:host.bordered:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:inherit;top:-1px;left:-1px;border:1px solid var(--separations-base)}:host{display:block;position:relative;box-sizing:border-box}:host.selected:after{content:\"\";position:absolute;width:calc(100% + 6px);height:calc(100% + 6px);border-radius:inherit;top:-6px;left:-6px;border:3px solid var(--primary-base)}:host .avatar{display:flex;flex-direction:row;justify-content:center;align-items:center;width:inherit;height:inherit;border-radius:inherit;font-size:inherit;overflow:clip}:host .avatar fw-icon{color:var(--typography-contrast);font-size:inherit}:host .avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}:host .avatar .initial{font-family:Inter,sans-serif;font-style:normal;font-weight:500;color:var(--typography-contrast);font-size:inherit}:host.small{width:16px;height:16px;font-size:8px}:host.small .avatar fw-icon{font-size:12px}:host.medium{width:32px;height:32px;font-size:14px}:host.medium .avatar fw-icon{font-size:24px}:host.large{width:48px;height:48px;font-size:22px}:host.large .avatar fw-icon{font-size:32px}:host.x-large{width:96px;height:96px;font-size:36px}:host.x-large .avatar fw-icon{font-size:64px}:host.rounded.small{border-radius:4px}:host.rounded.medium{border-radius:8px}:host.rounded.large{border-radius:12px}:host.rounded.x-large{border-radius:16px}:host.circular{border-radius:64px}\n"], dependencies: [{ kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }] }); }
373
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: FwAvatarComponent, isStandalone: true, selector: "fw-avatar", inputs: { bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, colorSeed: { classPropertyName: "colorSeed", publicName: "colorSeed", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, imageAltText: { classPropertyName: "imageAltText", publicName: "imageAltText", isSignal: true, isRequired: false, transformFunction: null }, imageUrl: { classPropertyName: "imageUrl", publicName: "imageUrl", isSignal: true, isRequired: false, transformFunction: null }, initial: { classPropertyName: "initial", publicName: "initial", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { colorSeed: "colorSeedChange", selected: "selectedChange" }, host: { listeners: { "click": "onClick()" }, properties: { "class": "hostClasses()" } }, ngImport: i0, template: "<div class=\"avatar\" [style.background]=\"colorToDisplay()\">\n @switch (content()) {\n @case ('image') {\n @if (!isImageBroken()) {\n <img\n [alt]=\"imageAltText()\"\n [src]=\"imageUrl()\"\n (load)=\"loadImage()\"\n (error)=\"errorImage()\">\n } @else {\n @if (initial()) {\n <span class=\"initial\">{{ initial() }}</span>\n } @else {\n <fw-icon>{{ icon() }}</fw-icon>\n }\n }\n }\n @case ('icon') {\n <fw-icon>{{ icon() }}</fw-icon>\n }\n @case ('initial') {\n @if (initial()) {\n <span class=\"initial\">{{ initial() }}</span>\n } @else {\n <fw-icon>{{ icon() }}</fw-icon>\n }\n }\n }\n</div>\n", styles: [":host:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:inherit;pointer-events:none}:host-context(.selected):after{box-shadow:0 0 0 .05rem #fff,0 0 0 .15rem var(--primary-base)}:host.bordered:after{box-shadow:0 0 0 1px var(--separations-base)}:host{display:block;position:relative;box-sizing:border-box}:host.selectable{cursor:pointer}:host:not(.selected).selectable:hover:after{box-shadow:0 0 0 .1rem #fff,0 0 0 .25rem var(--primary-border)}:host.selected:after{box-shadow:0 0 0 .05rem #fff,0 0 0 .15rem var(--primary-base)}:host.rounded.small:not(.selected).selectable:hover:after{box-shadow:0 0 0 .1rem #fff,0 0 0 .25rem var(--primary-border)}:host.rounded.small.selected:after{box-shadow:0 0 0 .05rem #fff,0 0 0 .15rem var(--primary-base)}:host.rounded.medium:not(.selected).selectable:hover:after{box-shadow:0 0 0 .1rem #fff,0 0 0 .25rem var(--primary-border)}:host.rounded.medium.selected:after{box-shadow:0 0 0 .05rem #fff,0 0 0 .15rem var(--primary-base)}:host.rounded.large:not(.selected).selectable:hover:after{box-shadow:0 0 0 .1rem #fff,0 0 0 .25rem var(--primary-border)}:host.rounded.large.selected:after{box-shadow:0 0 0 .05rem #fff,0 0 0 .15rem var(--primary-base)}:host.rounded.x-large:not(.selected).selectable:hover:after{box-shadow:0 0 0 .1rem #fff,0 0 0 .25rem var(--primary-border)}:host.rounded.x-large.selected:after{box-shadow:0 0 0 .05rem #fff,0 0 0 .15rem var(--primary-base)}:host .avatar{display:flex;flex-direction:row;justify-content:center;align-items:center;width:inherit;height:inherit;border-radius:inherit;font-size:inherit;overflow:clip}:host .avatar fw-icon{color:var(--typography-contrast);font-size:inherit}:host .avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}:host .avatar .initial{font-family:Inter,sans-serif;font-style:normal;font-weight:500;color:var(--typography-contrast);font-size:inherit}:host.small{width:16px;height:16px;font-size:8px}:host.small .avatar fw-icon{font-size:12px}:host.medium{width:32px;height:32px;font-size:14px}:host.medium .avatar fw-icon{font-size:24px}:host.large{width:48px;height:48px;font-size:22px}:host.large .avatar fw-icon{font-size:32px}:host.x-large{width:96px;height:96px;font-size:36px}:host.x-large .avatar fw-icon{font-size:64px}:host.rounded.small{border-radius:4px}:host.rounded.medium{border-radius:8px}:host.rounded.large{border-radius:12px}:host.rounded.x-large{border-radius:16px}:host.circular{border-radius:64px}\n"], dependencies: [{ kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }] }); }
398
374
  }
399
375
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwAvatarComponent, decorators: [{
400
376
  type: Component,
401
377
  args: [{ selector: 'fw-avatar', imports: [
402
- NgSwitch,
403
- NgSwitchCase,
404
- NgIf,
405
- NgTemplateOutlet,
406
378
  FwIconComponent,
407
- ], template: "<ng-container [ngSwitch]=\"content\">\n <div [style.backgroundColor]=\"colorToDisplay()\" *ngSwitchCase=\"'image'\" class=\"avatar\">\n <img\n *ngIf=\"!isImageBroken else displayInitial\"\n [src]=\"imageUrl\"\n [alt]=\"imageAltText\"\n (load)=\"loadImage()\"\n (error)=\"errorImage()\">\n </div>\n <div *ngSwitchCase=\"'icon'\" [style.backgroundColor]=\"colorToDisplay()\" class=\"avatar\">\n <ng-container *ngTemplateOutlet=\"displayIcon\"></ng-container>\n </div>\n <div *ngSwitchCase=\"'initial'\" [style.backgroundColor]=\"colorToDisplay()\" class=\"avatar\">\n <ng-container *ngTemplateOutlet=\"displayInitial\"></ng-container>\n </div>\n</ng-container>\n<ng-template #displayInitial>\n <span class=\"initial\" *ngIf=\"initial else displayIcon\">{{ initial }}</span>\n</ng-template>\n<ng-template #displayIcon>\n <fw-icon>{{ icon }}</fw-icon>\n</ng-template>\n", styles: [":host-context(.selected):after{content:\"\";position:absolute;width:calc(100% + 6px);height:calc(100% + 6px);border-radius:inherit;top:-6px;left:-6px;border:3px solid var(--primary-base)}:host.bordered:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:inherit;top:-1px;left:-1px;border:1px solid var(--separations-base)}:host{display:block;position:relative;box-sizing:border-box}:host.selected:after{content:\"\";position:absolute;width:calc(100% + 6px);height:calc(100% + 6px);border-radius:inherit;top:-6px;left:-6px;border:3px solid var(--primary-base)}:host .avatar{display:flex;flex-direction:row;justify-content:center;align-items:center;width:inherit;height:inherit;border-radius:inherit;font-size:inherit;overflow:clip}:host .avatar fw-icon{color:var(--typography-contrast);font-size:inherit}:host .avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}:host .avatar .initial{font-family:Inter,sans-serif;font-style:normal;font-weight:500;color:var(--typography-contrast);font-size:inherit}:host.small{width:16px;height:16px;font-size:8px}:host.small .avatar fw-icon{font-size:12px}:host.medium{width:32px;height:32px;font-size:14px}:host.medium .avatar fw-icon{font-size:24px}:host.large{width:48px;height:48px;font-size:22px}:host.large .avatar fw-icon{font-size:32px}:host.x-large{width:96px;height:96px;font-size:36px}:host.x-large .avatar fw-icon{font-size:64px}:host.rounded.small{border-radius:4px}:host.rounded.medium{border-radius:8px}:host.rounded.large{border-radius:12px}:host.rounded.x-large{border-radius:16px}:host.circular{border-radius:64px}\n"] }]
408
- }], propDecorators: { classes: [{
409
- type: HostBinding,
410
- args: ['attr.class']
411
- }], color: [{
412
- type: Input
413
- }], variant: [{
414
- type: Input
415
- }], content: [{
416
- type: Input
417
- }], size: [{
418
- type: Input
419
- }], initial: [{
420
- type: Input
421
- }], imageUrl: [{
422
- type: Input
423
- }], imageAltText: [{
424
- type: Input
425
- }], icon: [{
426
- type: Input
427
- }], bordered: [{
428
- type: Input
429
- }], borderClass: [{
430
- type: HostBinding,
431
- args: ['class.bordered']
432
- }], selectedClassApplied: [{
433
- type: HostBinding,
434
- args: ['class.selected']
379
+ ], host: {
380
+ '[class]': 'hostClasses()',
381
+ }, template: "<div class=\"avatar\" [style.background]=\"colorToDisplay()\">\n @switch (content()) {\n @case ('image') {\n @if (!isImageBroken()) {\n <img\n [alt]=\"imageAltText()\"\n [src]=\"imageUrl()\"\n (load)=\"loadImage()\"\n (error)=\"errorImage()\">\n } @else {\n @if (initial()) {\n <span class=\"initial\">{{ initial() }}</span>\n } @else {\n <fw-icon>{{ icon() }}</fw-icon>\n }\n }\n }\n @case ('icon') {\n <fw-icon>{{ icon() }}</fw-icon>\n }\n @case ('initial') {\n @if (initial()) {\n <span class=\"initial\">{{ initial() }}</span>\n } @else {\n <fw-icon>{{ icon() }}</fw-icon>\n }\n }\n }\n</div>\n", styles: [":host:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:inherit;pointer-events:none}:host-context(.selected):after{box-shadow:0 0 0 .05rem #fff,0 0 0 .15rem var(--primary-base)}:host.bordered:after{box-shadow:0 0 0 1px var(--separations-base)}:host{display:block;position:relative;box-sizing:border-box}:host.selectable{cursor:pointer}:host:not(.selected).selectable:hover:after{box-shadow:0 0 0 .1rem #fff,0 0 0 .25rem var(--primary-border)}:host.selected:after{box-shadow:0 0 0 .05rem #fff,0 0 0 .15rem var(--primary-base)}:host.rounded.small:not(.selected).selectable:hover:after{box-shadow:0 0 0 .1rem #fff,0 0 0 .25rem var(--primary-border)}:host.rounded.small.selected:after{box-shadow:0 0 0 .05rem #fff,0 0 0 .15rem var(--primary-base)}:host.rounded.medium:not(.selected).selectable:hover:after{box-shadow:0 0 0 .1rem #fff,0 0 0 .25rem var(--primary-border)}:host.rounded.medium.selected:after{box-shadow:0 0 0 .05rem #fff,0 0 0 .15rem var(--primary-base)}:host.rounded.large:not(.selected).selectable:hover:after{box-shadow:0 0 0 .1rem #fff,0 0 0 .25rem var(--primary-border)}:host.rounded.large.selected:after{box-shadow:0 0 0 .05rem #fff,0 0 0 .15rem var(--primary-base)}:host.rounded.x-large:not(.selected).selectable:hover:after{box-shadow:0 0 0 .1rem #fff,0 0 0 .25rem var(--primary-border)}:host.rounded.x-large.selected:after{box-shadow:0 0 0 .05rem #fff,0 0 0 .15rem var(--primary-base)}:host .avatar{display:flex;flex-direction:row;justify-content:center;align-items:center;width:inherit;height:inherit;border-radius:inherit;font-size:inherit;overflow:clip}:host .avatar fw-icon{color:var(--typography-contrast);font-size:inherit}:host .avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}:host .avatar .initial{font-family:Inter,sans-serif;font-style:normal;font-weight:500;color:var(--typography-contrast);font-size:inherit}:host.small{width:16px;height:16px;font-size:8px}:host.small .avatar fw-icon{font-size:12px}:host.medium{width:32px;height:32px;font-size:14px}:host.medium .avatar fw-icon{font-size:24px}:host.large{width:48px;height:48px;font-size:22px}:host.large .avatar fw-icon{font-size:32px}:host.x-large{width:96px;height:96px;font-size:36px}:host.x-large .avatar fw-icon{font-size:64px}:host.rounded.small{border-radius:4px}:host.rounded.medium{border-radius:8px}:host.rounded.large{border-radius:12px}:host.rounded.x-large{border-radius:16px}:host.circular{border-radius:64px}\n"] }]
382
+ }], propDecorators: { onClick: [{
383
+ type: HostListener,
384
+ args: ['click']
435
385
  }] } });
436
386
 
437
387
  /**
@@ -481,7 +431,7 @@ class FwLayoutContextComponent {
481
431
  }
482
432
  ;
483
433
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwLayoutContextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
484
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: FwLayoutContextComponent, isStandalone: true, selector: "fw-layout-context", inputs: { width: "width", icon: "icon", iconColor: "iconColor", title: "title", description: "description" }, host: { properties: { "attr.class": "this.classes" } }, ngImport: i0, template: "<fw-icon *ngIf=\"icon\" [ngClass]=\"iconColor\">{{ icon }}</fw-icon>\n<h3 *ngIf=\"title\">{{ title }}</h3>\n<p class=\"vision-p3\" *ngIf=\"description\">{{ description }}</p>\n<div class=\"context-actions\">\n <ng-content select=\"fw-button\"></ng-content>\n</div>\n", styles: [":host{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:50px;max-width:100%}:host fw-icon{font-size:50px;width:50px;max-width:50px}:host fw-icon.primary{color:var(--primary-base)}:host fw-icon.secondary{color:var(--secondary-base)}:host fw-icon.slate{color:var(--slate-base)}:host fw-icon.danger{color:var(--red-base)}:host fw-icon.warning{color:var(--orange-base)}:host fw-icon.success{color:var(--green-base)}:host h3{margin:0}:host p{margin:0;text-align:center;color:var(--typography-muted)}:host .context-actions{display:flex;gap:8px}:host.context-width-small{width:444px}:host.context-width-medium{width:600px}:host.context-width-large{width:900px}:host.context-width-extra-large{width:1200px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
434
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: FwLayoutContextComponent, isStandalone: true, selector: "fw-layout-context", inputs: { width: "width", icon: "icon", iconColor: "iconColor", title: "title", description: "description" }, host: { properties: { "attr.class": "this.classes" } }, ngImport: i0, template: "@if (icon) {\n <fw-icon [ngClass]=\"iconColor\">{{ icon }}</fw-icon>\n}\n\n@if (title) {\n <h3>{{ title }}</h3>\n}\n\n@if (description) {\n <p class=\"vision-p3\">{{ description }}</p>\n} @else {\n <ng-content select=\"[slot='description']\"></ng-content>\n}\n\n<div class=\"context-actions\">\n <ng-content select=\"fw-button\"></ng-content>\n</div>\n", styles: [":host{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:50px;max-width:100%}:host fw-icon{font-size:50px;width:50px;max-width:50px}:host fw-icon.primary{color:var(--primary-base)}:host fw-icon.secondary{color:var(--secondary-base)}:host fw-icon.slate{color:var(--slate-base)}:host fw-icon.danger{color:var(--red-base)}:host fw-icon.warning{color:var(--orange-base)}:host fw-icon.success{color:var(--green-base)}:host h3{margin:0}:host p{margin:0;text-align:center;color:var(--typography-muted)}:host .context-actions{display:flex;gap:8px}:host.context-width-small{width:444px}:host.context-width-medium{width:600px}:host.context-width-large{width:900px}:host.context-width-extra-large{width:1200px}\n"], dependencies: [{ kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
485
435
  }
486
436
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwLayoutContextComponent, decorators: [{
487
437
  type: Component,
@@ -489,7 +439,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
489
439
  NgIf,
490
440
  FwIconComponent,
491
441
  NgClass,
492
- ], template: "<fw-icon *ngIf=\"icon\" [ngClass]=\"iconColor\">{{ icon }}</fw-icon>\n<h3 *ngIf=\"title\">{{ title }}</h3>\n<p class=\"vision-p3\" *ngIf=\"description\">{{ description }}</p>\n<div class=\"context-actions\">\n <ng-content select=\"fw-button\"></ng-content>\n</div>\n", styles: [":host{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:50px;max-width:100%}:host fw-icon{font-size:50px;width:50px;max-width:50px}:host fw-icon.primary{color:var(--primary-base)}:host fw-icon.secondary{color:var(--secondary-base)}:host fw-icon.slate{color:var(--slate-base)}:host fw-icon.danger{color:var(--red-base)}:host fw-icon.warning{color:var(--orange-base)}:host fw-icon.success{color:var(--green-base)}:host h3{margin:0}:host p{margin:0;text-align:center;color:var(--typography-muted)}:host .context-actions{display:flex;gap:8px}:host.context-width-small{width:444px}:host.context-width-medium{width:600px}:host.context-width-large{width:900px}:host.context-width-extra-large{width:1200px}\n"] }]
442
+ ], template: "@if (icon) {\n <fw-icon [ngClass]=\"iconColor\">{{ icon }}</fw-icon>\n}\n\n@if (title) {\n <h3>{{ title }}</h3>\n}\n\n@if (description) {\n <p class=\"vision-p3\">{{ description }}</p>\n} @else {\n <ng-content select=\"[slot='description']\"></ng-content>\n}\n\n<div class=\"context-actions\">\n <ng-content select=\"fw-button\"></ng-content>\n</div>\n", styles: [":host{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:50px;max-width:100%}:host fw-icon{font-size:50px;width:50px;max-width:50px}:host fw-icon.primary{color:var(--primary-base)}:host fw-icon.secondary{color:var(--secondary-base)}:host fw-icon.slate{color:var(--slate-base)}:host fw-icon.danger{color:var(--red-base)}:host fw-icon.warning{color:var(--orange-base)}:host fw-icon.success{color:var(--green-base)}:host h3{margin:0}:host p{margin:0;text-align:center;color:var(--typography-muted)}:host .context-actions{display:flex;gap:8px}:host.context-width-small{width:444px}:host.context-width-medium{width:600px}:host.context-width-large{width:900px}:host.context-width-extra-large{width:1200px}\n"] }]
493
443
  }], propDecorators: { width: [{
494
444
  type: Input
495
445
  }], icon: [{
@@ -1322,8 +1272,8 @@ class FwAvatarListComponent {
1322
1272
  this.changeDetector = inject(ChangeDetectorRef);
1323
1273
  this.resizeDebounceMs = input(100);
1324
1274
  this.applyBorderToChildAvatars = effect(() => {
1325
- this.avatars().forEach(avatar => {
1326
- avatar.bordered = true;
1275
+ this.avatarElementRefs().forEach(ref => {
1276
+ ref.nativeElement.setAttribute('bordered', 'true');
1327
1277
  });
1328
1278
  });
1329
1279
  this.childrenChanged = effect(() => {
@@ -5168,11 +5118,11 @@ class FwMenuItemGroupComponent {
5168
5118
  this.disabled = false;
5169
5119
  }
5170
5120
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwMenuItemGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5171
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: FwMenuItemGroupComponent, isStandalone: true, selector: "fw-menu-item-group", inputs: { role: "role", title: "title", icon: "icon", iconColor: "iconColor", disabled: "disabled" }, host: { properties: { "role": "this.role" } }, ngImport: i0, template: "<div class=\"menu-item-group\">\n <label *ngIf=\"title\">\n <fw-icon [color]=\"iconColor\" *ngIf=\"icon\" class=\"menu-icon {{iconColor}}\">{{ icon }}</fw-icon>\n <span>{{ title }}</span>\n </label>\n <div class=\"menu-item-group-items\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700\";.vision-h1{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:22px}.vision-h2{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:18px}.vision-h3{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:16px}.vision-h4,:host .menu-item-group label{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:14px}.vision-h5{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:12px;line-height:130%}.vision-h6{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:10px;line-height:120%}.vision-p1{font-size:18px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p2{font-size:14px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p3{font-size:12px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p4{font-size:10px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p5{font-size:8px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-link{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link:hover{text-decoration:none}.vision-link:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link:visited{color:var(--secondary-base)}.vision-link-inherited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-inherited:hover{text-decoration:none}.vision-link-inherited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-inherited:visited{color:var(--secondary-base)}.vision-link-inherited,.vision-link-inherited:visited{color:inherit}.vision-link-no-visited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-no-visited:hover{text-decoration:none}.vision-link-no-visited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-no-visited:visited{color:var(--secondary-base)}.vision-link-no-visited:visited{color:var(--primary-base)}:host .menu-item-group{box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;flex:1;gap:8px;padding:8px;margin:1px 4px;color:var(--typography-base);width:stretch}:host .menu-item-group label{display:flex;align-items:center;gap:8px}:host .menu-item-group label .menu-icon{font-size:18px;white-space:nowrap}:host .menu-item-group .menu-item-group-items{width:stretch}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }] }); }
5121
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: FwMenuItemGroupComponent, isStandalone: true, selector: "fw-menu-item-group", inputs: { role: "role", title: "title", icon: "icon", iconColor: "iconColor", disabled: "disabled" }, host: { properties: { "role": "this.role" } }, ngImport: i0, template: "<div class=\"menu-item-group\">\n <label *ngIf=\"title\">\n <fw-icon [color]=\"iconColor\" *ngIf=\"icon\" class=\"menu-icon {{iconColor}}\">{{ icon }}</fw-icon>\n <span>{{ title }}</span>\n </label>\n <div class=\"menu-item-group-items\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700\";.vision-h1{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:22px}.vision-h2{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:18px}.vision-h3{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:16px}.vision-h4,:host .menu-item-group label{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:14px}.vision-h5{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:12px;line-height:130%}.vision-h6{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:10px;line-height:120%}.vision-p1{font-size:18px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p2{font-size:14px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p3{font-size:12px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p4{font-size:10px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p5{font-size:8px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-link{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link:hover{text-decoration:none}.vision-link:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link:visited{color:var(--secondary-base)}.vision-link-inherited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-inherited:hover{text-decoration:none}.vision-link-inherited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-inherited:visited{color:var(--secondary-base)}.vision-link-inherited,.vision-link-inherited:visited{color:inherit}.vision-link-no-visited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-no-visited:hover{text-decoration:none}.vision-link-no-visited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-no-visited:visited{color:var(--secondary-base)}.vision-link-no-visited:visited{color:var(--primary-base)}:host .menu-item-group{box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch;flex:1;gap:8px;padding:8px;margin:1px 4px;color:var(--typography-base);width:stretch}:host .menu-item-group label{display:flex;align-items:center;gap:8px}:host .menu-item-group label .menu-icon{font-size:18px;white-space:nowrap}:host .menu-item-group .menu-item-group-items{width:stretch}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }] }); }
5172
5122
  }
5173
5123
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwMenuItemGroupComponent, decorators: [{
5174
5124
  type: Component,
5175
- args: [{ selector: 'fw-menu-item-group', imports: [NgIf, FwIconComponent], template: "<div class=\"menu-item-group\">\n <label *ngIf=\"title\">\n <fw-icon [color]=\"iconColor\" *ngIf=\"icon\" class=\"menu-icon {{iconColor}}\">{{ icon }}</fw-icon>\n <span>{{ title }}</span>\n </label>\n <div class=\"menu-item-group-items\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700\";.vision-h1{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:22px}.vision-h2{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:18px}.vision-h3{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:16px}.vision-h4,:host .menu-item-group label{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:14px}.vision-h5{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:12px;line-height:130%}.vision-h6{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:10px;line-height:120%}.vision-p1{font-size:18px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p2{font-size:14px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p3{font-size:12px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p4{font-size:10px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p5{font-size:8px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-link{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link:hover{text-decoration:none}.vision-link:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link:visited{color:var(--secondary-base)}.vision-link-inherited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-inherited:hover{text-decoration:none}.vision-link-inherited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-inherited:visited{color:var(--secondary-base)}.vision-link-inherited,.vision-link-inherited:visited{color:inherit}.vision-link-no-visited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-no-visited:hover{text-decoration:none}.vision-link-no-visited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-no-visited:visited{color:var(--secondary-base)}.vision-link-no-visited:visited{color:var(--primary-base)}:host .menu-item-group{box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;flex:1;gap:8px;padding:8px;margin:1px 4px;color:var(--typography-base);width:stretch}:host .menu-item-group label{display:flex;align-items:center;gap:8px}:host .menu-item-group label .menu-icon{font-size:18px;white-space:nowrap}:host .menu-item-group .menu-item-group-items{width:stretch}\n"] }]
5125
+ args: [{ selector: 'fw-menu-item-group', imports: [NgIf, FwIconComponent], template: "<div class=\"menu-item-group\">\n <label *ngIf=\"title\">\n <fw-icon [color]=\"iconColor\" *ngIf=\"icon\" class=\"menu-icon {{iconColor}}\">{{ icon }}</fw-icon>\n <span>{{ title }}</span>\n </label>\n <div class=\"menu-item-group-items\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700\";.vision-h1{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:22px}.vision-h2{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:18px}.vision-h3{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:16px}.vision-h4,:host .menu-item-group label{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:14px}.vision-h5{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:12px;line-height:130%}.vision-h6{font-family:Inter,sans-serif;color:var(--typography-base);font-weight:500;font-size:10px;line-height:120%}.vision-p1{font-size:18px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p2{font-size:14px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p3{font-size:12px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p4{font-size:10px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-p5{font-size:8px;font-family:Inter,sans-serif;color:var(--typography-base);font-weight:400}.vision-link{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link:hover{text-decoration:none}.vision-link:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link:visited{color:var(--secondary-base)}.vision-link-inherited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-inherited:hover{text-decoration:none}.vision-link-inherited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-inherited:visited{color:var(--secondary-base)}.vision-link-inherited,.vision-link-inherited:visited{color:inherit}.vision-link-no-visited{text-decoration:underline;color:var(--primary-base);cursor:pointer}.vision-link-no-visited:hover{text-decoration:none}.vision-link-no-visited:active{text-decoration:none;outline:2px solid var(--primary-dark);border-radius:4px}.vision-link-no-visited:visited{color:var(--secondary-base)}.vision-link-no-visited:visited{color:var(--primary-base)}:host .menu-item-group{box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch;flex:1;gap:8px;padding:8px;margin:1px 4px;color:var(--typography-base);width:stretch}:host .menu-item-group label{display:flex;align-items:center;gap:8px}:host .menu-item-group label .menu-icon{font-size:18px;white-space:nowrap}:host .menu-item-group .menu-item-group-items{width:stretch}\n"] }]
5176
5126
  }], propDecorators: { role: [{
5177
5127
  type: HostBinding,
5178
5128
  args: ['role']
@@ -8917,6 +8867,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
8917
8867
  }]
8918
8868
  }] });
8919
8869
 
8870
+ class FwTextComponent {
8871
+ constructor() {
8872
+ this.variant = input('body');
8873
+ this.align = input('inherit');
8874
+ this.display = input('block');
8875
+ this.color = input();
8876
+ this.margin = input(false);
8877
+ this.overflow = input(true);
8878
+ }
8879
+ get classes() {
8880
+ const classes = ['fw-text', `text-${this.variant()}`];
8881
+ classes.push(`vision-${this.variant()}`);
8882
+ classes.push(`text-align-${this.align()}`);
8883
+ classes.push(`text-display-${this.display()}`);
8884
+ if (this.color()) {
8885
+ classes.push(`text-color-${this.color()}`);
8886
+ }
8887
+ if (this.margin()) {
8888
+ classes.push('text-margin');
8889
+ }
8890
+ if (!this.overflow()) {
8891
+ classes.push('text-no-overflow');
8892
+ }
8893
+ return classes.join(' ');
8894
+ }
8895
+ ;
8896
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8897
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.18", type: FwTextComponent, isStandalone: true, selector: "fw-text", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, display: { classPropertyName: "display", publicName: "display", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, margin: { classPropertyName: "margin", publicName: "margin", isSignal: true, isRequired: false, transformFunction: null }, overflow: { classPropertyName: "overflow", publicName: "overflow", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.class": "this.classes" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{font-family:Inter,sans-serif;text-align:inherit;line-height:normal;display:block;color:var(--typography-base)}:host.text-p1,:host.text-p2,:host.text-p3,:host.text-p4,:host.text-p5,:host.text-body{color:var(--typography-muted);line-height:140%}:host.text-p4,:host.text-p5{line-height:130%}:host.text-body{font-size:14px}:host.text-align-left{text-align:left}:host.text-align-center{text-align:center}:host.text-align-right{text-align:right}:host.text-align-justify{text-align:justify}:host.text-color-base{color:var(--typography-base)}:host.text-color-muted{color:var(--typography-muted)}:host.text-color-light{color:var(--typography-light)}:host.text-color-contrast{color:var(--typography-contrast)}:host.text-color-disabled{color:var(--typography-disabled)}:host.text-display-initial{display:initial}:host.text-display-block{display:block}:host.text-display-flex{display:flex}:host.text-display-inline{display:inline}:host.text-display-grow{flex-grow:1}:host.text-margin{margin-top:4px;margin-bottom:8px}:host.text-no-overflow{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8898
+ }
8899
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FwTextComponent, decorators: [{
8900
+ type: Component,
8901
+ args: [{ selector: 'fw-text', template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, imports: [], styles: [":host{font-family:Inter,sans-serif;text-align:inherit;line-height:normal;display:block;color:var(--typography-base)}:host.text-p1,:host.text-p2,:host.text-p3,:host.text-p4,:host.text-p5,:host.text-body{color:var(--typography-muted);line-height:140%}:host.text-p4,:host.text-p5{line-height:130%}:host.text-body{font-size:14px}:host.text-align-left{text-align:left}:host.text-align-center{text-align:center}:host.text-align-right{text-align:right}:host.text-align-justify{text-align:justify}:host.text-color-base{color:var(--typography-base)}:host.text-color-muted{color:var(--typography-muted)}:host.text-color-light{color:var(--typography-light)}:host.text-color-contrast{color:var(--typography-contrast)}:host.text-color-disabled{color:var(--typography-disabled)}:host.text-display-initial{display:initial}:host.text-display-block{display:block}:host.text-display-flex{display:flex}:host.text-display-inline{display:inline}:host.text-display-grow{flex-grow:1}:host.text-margin{margin-top:4px;margin-bottom:8px}:host.text-no-overflow{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}\n"] }]
8902
+ }], propDecorators: { classes: [{
8903
+ type: HostBinding,
8904
+ args: ['attr.class']
8905
+ }] } });
8906
+
8920
8907
  class FwTextAreaInputComponent {
8921
8908
  constructor() {
8922
8909
  this.minRows = 2;
@@ -9433,5 +9420,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
9433
9420
  * Generated bundle index. Do not edit.
9434
9421
  */
9435
9422
 
9436
- export { DialogWidth, FwAlertComponent, FwAlertModule, FwAppIconComponent, FwAppIconModule, FwAvatarComponent, FwAvatarListComponent, FwAvatarModule, FwBackButtonComponent, FwBadgeComponent, FwBadgeModule, FwBreadcrumbsComponent, FwBreadcrumbsModule, FwButtonComponent, FwButtonDangerDirective, FwButtonDirective, FwButtonGroupComponent, FwButtonGroupModule, FwButtonModule, FwButtonPrimaryDirective, FwButtonSecondaryDirective, FwButtonSuccessDirective, FwButtonToggleComponent, FwButtonToggleItemComponent, FwButtonToggleModule, FwCardAttributeComponent, FwCardAuthorComponent, FwCardComponent, FwCardContentComponent, FwCardFooterComponent, FwCardHeaderComponent, FwCardModule, FwCell, FwCellDef, FwCheckboxComponent, FwCheckboxModule, FwChipComponent, FwChipModule, FwColumnDef, FwContainedInputComponent, FwContainedInputModule, FwCrumbComponent, FwDateInputComponent, FwDateInputModule, FwDialogActionsComponent, FwDialogComponent, FwDialogConfirmComponent, FwDialogContentComponent, FwDialogHeaderComponent, FwDialogService, FwDialogSimpleComponent, FwDialogsModule, FwFooterCell, FwFooterCellDef, FwFooterRow, FwFooterRowDef, FwFormHeadingComponent, FwFormHeadingModule, FwGridComponent, FwGridItemComponent, FwHeaderCell, FwHeaderCellDef, FwHeaderRow, FwHeaderRowDef, FwIconButtonComponent, FwIconButtonModule, FwIconComponent, FwIconModule, FwLayoutContextComponent, FwLayoutGroupComponent, FwLayoutPanelComponent, FwLayoutSidebarComponent, FwLayoutToolbarComponent, FwLayoutsModule, FwMenuCloseTriggersDirective, FwMenuComponent, FwMenuContainerComponent, FwMenuHeaderComponent, FwMenuItemComponent, FwMenuItemGroupComponent, FwMenuModule, FwMenuSeparatorComponent, FwMenuSubItemComponent, FwMultiSelectMenuComponent, FwNavbarComponent, FwNavbarHeaderComponent, FwNavbarItemComponent, FwNavbarModule, FwNavbarSubItemComponent, FwNoDataRow, FwNumberInputComponent, FwNumberInputModule, FwPaginatorAdvancedComponent, FwPaginatorComponent, FwPaginatorModule, FwPhoneInputComponent, FwPhoneInputModule, FwPopoverComponent, FwPopoverModule, FwPopoverPanelComponent, FwProgressBarComponent, FwProgressModule, FwProgressSpinnerComponent, FwRadioComponent, FwRadioGroupComponent, FwRadioModule, FwRow, FwRowDef, FwSectionHeadingComponent, FwSectionHeadingModule, FwSelectMenuComponent, FwSelectMenuModule, FwSnackbarComponent, FwSnackbarContainerComponent, FwSnackbarModule, FwSnackbarService, FwStepComponent, FwStepDecoratorComponent, FwStepperComponent, FwStepperModule, FwSubsectionHeadingComponent, FwSwitchComponent, FwSwitchModule, FwTabComponent, FwTabPanelComponent, FwTableComponent, FwTableDenseComponent, FwTableModule, FwTabsComponent, FwTabsModule, FwTextAreaInputComponent, FwTextAreaInputModule, FwTextInputComponent, FwTextInputModule, FwTooltipComponent, FwTooltipDirective, FwTooltipModule, FwTooltipPanelComponent, FwTypeaheadComponent, FwValidators, FwWrappedInputComponent, FwWrappedInputModule, LayoutWidth, MenuManagerService, MenuRegisterDirective, MinimalTranslationService, TranslationService, allIcons, genMessageId, notBeforeDate, notFutureDate };
9423
+ export { DialogWidth, FwAlertComponent, FwAlertModule, FwAppIconComponent, FwAppIconModule, FwAvatarComponent, FwAvatarListComponent, FwAvatarModule, FwBackButtonComponent, FwBadgeComponent, FwBadgeModule, FwBreadcrumbsComponent, FwBreadcrumbsModule, FwButtonComponent, FwButtonDangerDirective, FwButtonDirective, FwButtonGroupComponent, FwButtonGroupModule, FwButtonModule, FwButtonPrimaryDirective, FwButtonSecondaryDirective, FwButtonSuccessDirective, FwButtonToggleComponent, FwButtonToggleItemComponent, FwButtonToggleModule, FwCardAttributeComponent, FwCardAuthorComponent, FwCardComponent, FwCardContentComponent, FwCardFooterComponent, FwCardHeaderComponent, FwCardModule, FwCell, FwCellDef, FwCheckboxComponent, FwCheckboxModule, FwChipComponent, FwChipModule, FwColumnDef, FwContainedInputComponent, FwContainedInputModule, FwCrumbComponent, FwDateInputComponent, FwDateInputModule, FwDialogActionsComponent, FwDialogComponent, FwDialogConfirmComponent, FwDialogContentComponent, FwDialogHeaderComponent, FwDialogService, FwDialogSimpleComponent, FwDialogsModule, FwFooterCell, FwFooterCellDef, FwFooterRow, FwFooterRowDef, FwFormHeadingComponent, FwFormHeadingModule, FwGridComponent, FwGridItemComponent, FwHeaderCell, FwHeaderCellDef, FwHeaderRow, FwHeaderRowDef, FwIconButtonComponent, FwIconButtonModule, FwIconComponent, FwIconModule, FwLayoutContextComponent, FwLayoutGroupComponent, FwLayoutPanelComponent, FwLayoutSidebarComponent, FwLayoutToolbarComponent, FwLayoutsModule, FwMenuCloseTriggersDirective, FwMenuComponent, FwMenuContainerComponent, FwMenuHeaderComponent, FwMenuItemComponent, FwMenuItemGroupComponent, FwMenuModule, FwMenuSeparatorComponent, FwMenuSubItemComponent, FwMultiSelectMenuComponent, FwNavbarComponent, FwNavbarHeaderComponent, FwNavbarItemComponent, FwNavbarModule, FwNavbarSubItemComponent, FwNoDataRow, FwNumberInputComponent, FwNumberInputModule, FwPaginatorAdvancedComponent, FwPaginatorComponent, FwPaginatorModule, FwPhoneInputComponent, FwPhoneInputModule, FwPopoverComponent, FwPopoverModule, FwPopoverPanelComponent, FwProgressBarComponent, FwProgressModule, FwProgressSpinnerComponent, FwRadioComponent, FwRadioGroupComponent, FwRadioModule, FwRow, FwRowDef, FwSectionHeadingComponent, FwSectionHeadingModule, FwSelectMenuComponent, FwSelectMenuModule, FwSnackbarComponent, FwSnackbarContainerComponent, FwSnackbarModule, FwSnackbarService, FwStepComponent, FwStepDecoratorComponent, FwStepperComponent, FwStepperModule, FwSubsectionHeadingComponent, FwSwitchComponent, FwSwitchModule, FwTabComponent, FwTabPanelComponent, FwTableComponent, FwTableDenseComponent, FwTableModule, FwTabsComponent, FwTabsModule, FwTextAreaInputComponent, FwTextAreaInputModule, FwTextComponent, FwTextInputComponent, FwTextInputModule, FwTooltipComponent, FwTooltipDirective, FwTooltipModule, FwTooltipPanelComponent, FwTypeaheadComponent, FwValidators, FwWrappedInputComponent, FwWrappedInputModule, LayoutWidth, MenuManagerService, MenuRegisterDirective, MinimalTranslationService, TranslationService, allIcons, genMessageId, notBeforeDate, notFutureDate };
9437
9424
  //# sourceMappingURL=flywheel-io-vision.mjs.map