@eagami/ui 0.8.1 → 0.10.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,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, signal, ChangeDetectionStrategy, Component, inject, computed, model, output, ElementRef, Renderer2, Directive, viewChild, Injector, effect, untracked, afterNextRender, ViewEncapsulation, forwardRef, contentChild, viewChildren, HostListener, Injectable } from '@angular/core';
2
+ import { input, signal, ChangeDetectionStrategy, Component, inject, computed, model, output, viewChild, forwardRef, HostListener, ElementRef, Renderer2, Directive, Injector, effect, untracked, afterNextRender, ViewEncapsulation, contentChild, viewChildren, Injectable } from '@angular/core';
3
3
  import { NgClass, NgTemplateOutlet } from '@angular/common';
4
4
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
5
 
@@ -33,7 +33,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
33
33
 
34
34
  class ChevronDownIconComponent {
35
35
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ChevronDownIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ChevronDownIconComponent, isStandalone: true, selector: "ea-icon-chevron-down", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
36
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ChevronDownIconComponent, isStandalone: true, selector: "ea-icon-chevron-down", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
37
37
  <svg
38
38
  viewBox="0 0 24 24"
39
39
  fill="none"
@@ -53,7 +53,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
53
53
  args: [{
54
54
  selector: 'ea-icon-chevron-down',
55
55
  changeDetection: ChangeDetectionStrategy.OnPush,
56
- host: { style: 'display: inline-flex;' },
56
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
57
57
  template: `
58
58
  <svg
59
59
  viewBox="0 0 24 24"
@@ -92,7 +92,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
92
92
 
93
93
  class AlertCircleIconComponent {
94
94
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: AlertCircleIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
95
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: AlertCircleIconComponent, isStandalone: true, selector: "ea-icon-alert-circle", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
95
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: AlertCircleIconComponent, isStandalone: true, selector: "ea-icon-alert-circle", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
96
96
  <svg
97
97
  viewBox="0 0 16 16"
98
98
  fill="currentColor"
@@ -109,7 +109,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
109
109
  args: [{
110
110
  selector: 'ea-icon-alert-circle',
111
111
  changeDetection: ChangeDetectionStrategy.OnPush,
112
- host: { style: 'display: inline-flex;' },
112
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
113
113
  template: `
114
114
  <svg
115
115
  viewBox="0 0 16 16"
@@ -126,7 +126,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
126
126
 
127
127
  class CheckIconComponent {
128
128
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: CheckIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
129
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: CheckIconComponent, isStandalone: true, selector: "ea-icon-check", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
129
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: CheckIconComponent, isStandalone: true, selector: "ea-icon-check", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
130
130
  <svg
131
131
  viewBox="0 0 24 24"
132
132
  fill="none"
@@ -146,7 +146,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
146
146
  args: [{
147
147
  selector: 'ea-icon-check',
148
148
  changeDetection: ChangeDetectionStrategy.OnPush,
149
- host: { style: 'display: inline-flex;' },
149
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
150
150
  template: `
151
151
  <svg
152
152
  viewBox="0 0 24 24"
@@ -166,7 +166,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
166
166
 
167
167
  class InfoIconComponent {
168
168
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: InfoIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
169
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: InfoIconComponent, isStandalone: true, selector: "ea-icon-info", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
169
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: InfoIconComponent, isStandalone: true, selector: "ea-icon-info", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
170
170
  <svg
171
171
  viewBox="0 0 24 24"
172
172
  fill="none"
@@ -199,7 +199,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
199
199
  args: [{
200
200
  selector: 'ea-icon-info',
201
201
  changeDetection: ChangeDetectionStrategy.OnPush,
202
- host: { style: 'display: inline-flex;' },
202
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
203
203
  template: `
204
204
  <svg
205
205
  viewBox="0 0 24 24"
@@ -232,7 +232,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
232
232
 
233
233
  class XIconComponent {
234
234
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: XIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
235
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: XIconComponent, isStandalone: true, selector: "ea-icon-x", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
235
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: XIconComponent, isStandalone: true, selector: "ea-icon-x", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
236
236
  <svg
237
237
  viewBox="0 0 24 24"
238
238
  fill="none"
@@ -261,7 +261,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
261
261
  args: [{
262
262
  selector: 'ea-icon-x',
263
263
  changeDetection: ChangeDetectionStrategy.OnPush,
264
- host: { style: 'display: inline-flex;' },
264
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
265
265
  template: `
266
266
  <svg
267
267
  viewBox="0 0 24 24"
@@ -313,9 +313,193 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
313
313
  ], template: "@if (visible()) {\n <div\n class=\"ea-alert\"\n [class.ea-alert--default]=\"variant() === 'default'\"\n [class.ea-alert--success]=\"variant() === 'success'\"\n [class.ea-alert--warning]=\"variant() === 'warning'\"\n [class.ea-alert--error]=\"variant() === 'error'\"\n [class.ea-alert--info]=\"variant() === 'info'\"\n role=\"alert\">\n <span class=\"ea-alert__icon\">\n @switch (variant()) {\n @case ('success') {\n <ea-icon-check />\n }\n @case ('warning') {\n <ea-icon-alert-circle />\n }\n @case ('error') {\n <ea-icon-alert-circle />\n }\n @case ('info') {\n <ea-icon-info />\n }\n @default {\n <ea-icon-info />\n }\n }\n </span>\n <div class=\"ea-alert__content\">\n <ng-content />\n </div>\n @if (dismissible()) {\n <button\n class=\"ea-alert__close\"\n type=\"button\"\n aria-label=\"Dismiss\"\n (click)=\"dismiss()\">\n <ea-icon-x />\n </button>\n }\n </div>\n}\n", styles: [".ea-alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);border:var(--border-width-thin) solid;border-radius:var(--radius-lg)}.ea-alert--default{background-color:var(--color-bg-subtle);border-color:var(--color-border-default);color:var(--color-text-primary)}.ea-alert--default .ea-alert__icon{color:var(--color-text-secondary)}.ea-alert--success{background-color:var(--color-success-subtle);border-color:var(--color-success-default);color:var(--color-text-primary)}.ea-alert--success .ea-alert__icon{color:var(--color-success-default)}.ea-alert--warning{background-color:var(--color-warning-subtle);border-color:var(--color-warning-default);color:var(--color-text-primary)}.ea-alert--warning .ea-alert__icon{color:var(--color-warning-default)}.ea-alert--error{background-color:var(--color-error-subtle);border-color:var(--color-error-default);color:var(--color-text-primary)}.ea-alert--error .ea-alert__icon{color:var(--color-error-default)}.ea-alert--info{background-color:var(--color-info-subtle);border-color:var(--color-info-default);color:var(--color-text-primary)}.ea-alert--info .ea-alert__icon{color:var(--color-info-default)}.ea-alert__icon{display:flex;flex-shrink:0;width:1.25rem;height:1.25rem;padding-top:1px}.ea-alert__content{flex:1;min-width:0}.ea-alert__close{display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;width:1.25rem;height:1.25rem;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-alert__close:hover{color:var(--color-text-primary)}.ea-alert__close:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}\n"] }]
314
314
  }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], dismissible: [{ type: i0.Input, args: [{ isSignal: true, alias: "dismissible", required: false }] }], visible: [{ type: i0.Input, args: [{ isSignal: true, alias: "visible", required: false }] }, { type: i0.Output, args: ["visibleChange"] }], dismissed: [{ type: i0.Output, args: ["dismissed"] }] } });
315
315
 
316
+ class AutocompleteComponent {
317
+ inputEl = viewChild('inputEl', ...(ngDevMode ? [{ debugName: "inputEl" }] : /* istanbul ignore next */ []));
318
+ hostEl = viewChild('hostEl', ...(ngDevMode ? [{ debugName: "hostEl" }] : /* istanbul ignore next */ []));
319
+ // Inputs
320
+ label = input(undefined, ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
321
+ placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
322
+ options = input([], ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
323
+ size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
324
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
325
+ readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
326
+ required = input(false, ...(ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []));
327
+ hint = input(undefined, ...(ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []));
328
+ errorMsg = input(undefined, { ...(ngDevMode ? { debugName: "errorMsg" } : /* istanbul ignore next */ {}), alias: 'error' });
329
+ minLength = input(0, ...(ngDevMode ? [{ debugName: "minLength" }] : /* istanbul ignore next */ []));
330
+ maxResults = input(10, ...(ngDevMode ? [{ debugName: "maxResults" }] : /* istanbul ignore next */ []));
331
+ emptyMessage = input('No results', ...(ngDevMode ? [{ debugName: "emptyMessage" }] : /* istanbul ignore next */ []));
332
+ id = input(`ea-autocomplete-${Math.random().toString(36).slice(2, 9)}`, ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
333
+ // Two-way value binding (current text value in the input)
334
+ value = model('', ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
335
+ // Outputs
336
+ optionSelected = output();
337
+ valueChanged = output();
338
+ // Internal state
339
+ isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
340
+ focused = signal(false, ...(ngDevMode ? [{ debugName: "focused" }] : /* istanbul ignore next */ []));
341
+ focusedIndex = signal(-1, ...(ngDevMode ? [{ debugName: "focusedIndex" }] : /* istanbul ignore next */ []));
342
+ _formDisabled = signal(false, ...(ngDevMode ? [{ debugName: "_formDisabled" }] : /* istanbul ignore next */ []));
343
+ justSelected = false;
344
+ // ControlValueAccessor callbacks
345
+ onChange = () => { };
346
+ onTouched = () => { };
347
+ // Computed
348
+ isDisabled = computed(() => this.disabled() || this._formDisabled(), ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
349
+ resolvedStatus = computed(() => (this.errorMsg() ? 'error' : 'default'), ...(ngDevMode ? [{ debugName: "resolvedStatus" }] : /* istanbul ignore next */ []));
350
+ showError = computed(() => !!this.errorMsg(), ...(ngDevMode ? [{ debugName: "showError" }] : /* istanbul ignore next */ []));
351
+ showHint = computed(() => !!this.hint() && !this.showError(), ...(ngDevMode ? [{ debugName: "showHint" }] : /* istanbul ignore next */ []));
352
+ filteredOptions = computed(() => {
353
+ const query = this.value().trim().toLowerCase();
354
+ const allOptions = this.options();
355
+ const max = this.maxResults();
356
+ if (query.length < this.minLength())
357
+ return [];
358
+ const matched = query
359
+ ? allOptions.filter(o => o.label.toLowerCase().includes(query))
360
+ : allOptions;
361
+ return matched.slice(0, max);
362
+ }, ...(ngDevMode ? [{ debugName: "filteredOptions" }] : /* istanbul ignore next */ []));
363
+ showList = computed(() => this.isOpen() && this.value().length >= this.minLength(), ...(ngDevMode ? [{ debugName: "showList" }] : /* istanbul ignore next */ []));
364
+ showEmpty = computed(() => this.showList() && this.filteredOptions().length === 0, ...(ngDevMode ? [{ debugName: "showEmpty" }] : /* istanbul ignore next */ []));
365
+ wrapperClasses = computed(() => ({
366
+ [`ea-autocomplete__wrapper--${this.size()}`]: true,
367
+ [`ea-autocomplete__wrapper--${this.resolvedStatus()}`]: true,
368
+ 'ea-autocomplete__wrapper--focused': this.focused(),
369
+ 'ea-autocomplete__wrapper--disabled': this.isDisabled(),
370
+ }), ...(ngDevMode ? [{ debugName: "wrapperClasses" }] : /* istanbul ignore next */ []));
371
+ // ControlValueAccessor
372
+ writeValue(val) {
373
+ this.value.set(val ?? '');
374
+ }
375
+ registerOnChange(fn) {
376
+ this.onChange = fn;
377
+ }
378
+ registerOnTouched(fn) {
379
+ this.onTouched = fn;
380
+ }
381
+ setDisabledState(isDisabled) {
382
+ this._formDisabled.set(isDisabled);
383
+ }
384
+ // Handlers
385
+ handleInput(event) {
386
+ const next = event.target.value;
387
+ this.value.set(next);
388
+ this.onChange(next);
389
+ this.valueChanged.emit(next);
390
+ this.isOpen.set(true);
391
+ this.focusedIndex.set(-1);
392
+ }
393
+ handleFocus() {
394
+ this.focused.set(true);
395
+ if (this.justSelected) {
396
+ this.justSelected = false;
397
+ return;
398
+ }
399
+ if (this.value().length >= this.minLength()) {
400
+ this.isOpen.set(true);
401
+ }
402
+ }
403
+ handleBlur() {
404
+ this.focused.set(false);
405
+ this.onTouched();
406
+ }
407
+ handleKeydown(event) {
408
+ if (this.isDisabled() || this.readonly())
409
+ return;
410
+ switch (event.key) {
411
+ case 'ArrowDown':
412
+ event.preventDefault();
413
+ if (!this.isOpen()) {
414
+ this.isOpen.set(true);
415
+ }
416
+ else {
417
+ this.moveFocus(1);
418
+ }
419
+ break;
420
+ case 'ArrowUp':
421
+ event.preventDefault();
422
+ if (this.isOpen())
423
+ this.moveFocus(-1);
424
+ break;
425
+ case 'Enter': {
426
+ const opts = this.filteredOptions();
427
+ const idx = this.focusedIndex();
428
+ if (this.isOpen() && idx >= 0 && idx < opts.length && !opts[idx].disabled) {
429
+ event.preventDefault();
430
+ this.selectOption(opts[idx]);
431
+ }
432
+ break;
433
+ }
434
+ case 'Escape':
435
+ if (this.isOpen()) {
436
+ event.preventDefault();
437
+ this.close();
438
+ }
439
+ break;
440
+ }
441
+ }
442
+ selectOption(option) {
443
+ if (option.disabled || this.isDisabled())
444
+ return;
445
+ this.value.set(option.label);
446
+ this.onChange(option.label);
447
+ this.valueChanged.emit(option.label);
448
+ this.optionSelected.emit(option);
449
+ this.justSelected = true;
450
+ this.close();
451
+ this.inputEl()?.nativeElement.focus();
452
+ }
453
+ close() {
454
+ this.isOpen.set(false);
455
+ this.focusedIndex.set(-1);
456
+ }
457
+ moveFocus(delta) {
458
+ const opts = this.filteredOptions();
459
+ if (opts.length === 0)
460
+ return;
461
+ let idx = this.focusedIndex() + delta;
462
+ while (idx >= 0 && idx < opts.length && opts[idx].disabled) {
463
+ idx += delta;
464
+ }
465
+ if (idx < 0 || idx >= opts.length)
466
+ return;
467
+ this.focusedIndex.set(idx);
468
+ }
469
+ onDocumentClick(event) {
470
+ if (!this.isOpen())
471
+ return;
472
+ const host = this.hostEl()?.nativeElement;
473
+ if (host && !host.contains(event.target)) {
474
+ this.close();
475
+ }
476
+ }
477
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: AutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
478
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: AutocompleteComponent, isStandalone: true, selector: "ea-autocomplete", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", 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 }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, errorMsg: { classPropertyName: "errorMsg", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, minLength: { classPropertyName: "minLength", publicName: "minLength", isSignal: true, isRequired: false, transformFunction: null }, maxResults: { classPropertyName: "maxResults", publicName: "maxResults", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", optionSelected: "optionSelected", valueChanged: "valueChanged" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, providers: [
479
+ {
480
+ provide: NG_VALUE_ACCESSOR,
481
+ useExisting: forwardRef(() => AutocompleteComponent),
482
+ multi: true,
483
+ },
484
+ ], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["inputEl"], descendants: true, isSignal: true }, { propertyName: "hostEl", first: true, predicate: ["hostEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n #hostEl\n class=\"ea-autocomplete\">\n @if (label()) {\n <label\n class=\"ea-autocomplete__label\"\n [for]=\"id()\"\n [class.ea-autocomplete__label--required]=\"required()\">\n {{ label() }}\n </label>\n }\n\n <div\n class=\"ea-autocomplete__wrapper\"\n [ngClass]=\"wrapperClasses()\">\n <span class=\"ea-autocomplete__prefix\">\n <ng-content select=\"[slot=prefix]\" />\n </span>\n\n <input\n #inputEl\n class=\"ea-autocomplete__input\"\n type=\"text\"\n autocomplete=\"off\"\n role=\"combobox\"\n [id]=\"id()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [value]=\"value()\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-controls]=\"id() + '-listbox'\"\n [attr.aria-activedescendant]=\"\n focusedIndex() >= 0 ? id() + '-option-' + focusedIndex() : null\n \"\n [attr.aria-invalid]=\"resolvedStatus() === 'error' || null\"\n [attr.aria-describedby]=\"\n showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n \"\n (input)=\"handleInput($event)\"\n (focus)=\"handleFocus()\"\n (blur)=\"handleBlur()\"\n (keydown)=\"handleKeydown($event)\" />\n\n <span class=\"ea-autocomplete__suffix\">\n <ng-content select=\"[slot=suffix]\" />\n </span>\n </div>\n\n @if (showList()) {\n <ul\n class=\"ea-autocomplete__listbox\"\n role=\"listbox\"\n [id]=\"id() + '-listbox'\">\n @for (option of filteredOptions(); track option.value; let i = $index) {\n <li\n class=\"ea-autocomplete__option\"\n role=\"option\"\n [id]=\"id() + '-option-' + i\"\n [class.ea-autocomplete__option--focused]=\"i === focusedIndex()\"\n [class.ea-autocomplete__option--disabled]=\"option.disabled\"\n [attr.aria-selected]=\"i === focusedIndex()\"\n [attr.aria-disabled]=\"option.disabled || null\"\n (mousedown)=\"selectOption(option)\"\n (mouseenter)=\"focusedIndex.set(i)\">\n {{ option.label }}\n </li>\n }\n @if (showEmpty()) {\n <li\n class=\"ea-autocomplete__empty\"\n role=\"presentation\">\n {{ emptyMessage() }}\n </li>\n }\n </ul>\n }\n\n @if (showError()) {\n <p\n class=\"ea-autocomplete__message ea-autocomplete__message--error\"\n [id]=\"id() + '-error'\"\n role=\"alert\">\n {{ errorMsg() }}\n </p>\n }\n\n @if (showHint()) {\n <p\n class=\"ea-autocomplete__message ea-autocomplete__message--hint\"\n [id]=\"id() + '-hint'\">\n {{ hint() }}\n </p>\n }\n</div>\n", styles: [".ea-autocomplete{position:relative;display:flex;flex-direction:column;gap:var(--space-1-5)}.ea-autocomplete__label{font-size:var(--text-label-md-size);font-weight:var(--text-label-md-weight);line-height:var(--text-label-md-lh);color:var(--color-text-primary)}.ea-autocomplete__label--required:after{content:\" *\";color:var(--color-error-default)}.ea-autocomplete__wrapper{display:flex;align-items:center;gap:var(--space-2);width:100%;border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);background-color:var(--color-bg-base);transition:var(--transition-colors),var(--transition-shadow)}.ea-autocomplete__wrapper--sm{padding:var(--space-1-5) var(--space-2);min-height:2rem}.ea-autocomplete__wrapper--sm .ea-autocomplete__input{font-size:var(--font-size-sm)}.ea-autocomplete__wrapper--md{padding:var(--space-2) var(--space-3);min-height:2.5rem}.ea-autocomplete__wrapper--md .ea-autocomplete__input{font-size:var(--font-size-sm)}.ea-autocomplete__wrapper--lg{padding:var(--space-2-5) var(--space-4);min-height:3rem}.ea-autocomplete__wrapper--lg .ea-autocomplete__input{font-size:var(--font-size-md)}.ea-autocomplete__wrapper--focused{border-color:var(--color-border-focus);box-shadow:var(--shadow-focus-ring)}.ea-autocomplete__wrapper--error{border-color:var(--color-error-default)}.ea-autocomplete__wrapper--error.ea-autocomplete__wrapper--focused{box-shadow:var(--shadow-focus-ring-error)}.ea-autocomplete__wrapper--disabled{background-color:var(--color-bg-muted);opacity:.6;cursor:not-allowed}.ea-autocomplete__input{flex:1;min-width:0;padding:0;border:none;background:transparent;font-family:var(--font-family-sans);color:var(--color-text-primary);outline:none}.ea-autocomplete__input::placeholder{color:var(--color-text-tertiary)}.ea-autocomplete__input:disabled{cursor:not-allowed}.ea-autocomplete__prefix,.ea-autocomplete__suffix{display:flex;flex-shrink:0;align-items:center;color:var(--color-text-secondary)}.ea-autocomplete__prefix:empty,.ea-autocomplete__suffix:empty{display:none}.ea-autocomplete__listbox{position:absolute;z-index:var(--z-index-dropdown);top:100%;left:0;right:0;max-height:15rem;padding:var(--space-1) 0;margin:var(--space-1) 0 0;overflow-y:auto;list-style:none;border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);background-color:var(--color-bg-base)}.ea-autocomplete__option{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-family:var(--font-family-sans);color:var(--color-text-primary);cursor:pointer;transition:var(--transition-colors)}.ea-autocomplete__option--focused{background-color:var(--color-bg-muted)}.ea-autocomplete__option--disabled{color:var(--color-text-disabled);cursor:not-allowed}.ea-autocomplete__empty{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-style:italic;color:var(--color-text-tertiary)}.ea-autocomplete__message{display:flex;align-items:center;gap:var(--space-1);margin:0;font-size:var(--text-helper-size);font-weight:var(--text-helper-weight);line-height:var(--text-helper-lh)}.ea-autocomplete__message--hint{color:var(--color-text-secondary)}.ea-autocomplete__message--error{color:var(--color-error-default)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
485
+ }
486
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: AutocompleteComponent, decorators: [{
487
+ type: Component,
488
+ args: [{ selector: 'ea-autocomplete', imports: [NgClass], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
489
+ {
490
+ provide: NG_VALUE_ACCESSOR,
491
+ useExisting: forwardRef(() => AutocompleteComponent),
492
+ multi: true,
493
+ },
494
+ ], template: "<div\n #hostEl\n class=\"ea-autocomplete\">\n @if (label()) {\n <label\n class=\"ea-autocomplete__label\"\n [for]=\"id()\"\n [class.ea-autocomplete__label--required]=\"required()\">\n {{ label() }}\n </label>\n }\n\n <div\n class=\"ea-autocomplete__wrapper\"\n [ngClass]=\"wrapperClasses()\">\n <span class=\"ea-autocomplete__prefix\">\n <ng-content select=\"[slot=prefix]\" />\n </span>\n\n <input\n #inputEl\n class=\"ea-autocomplete__input\"\n type=\"text\"\n autocomplete=\"off\"\n role=\"combobox\"\n [id]=\"id()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [value]=\"value()\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-controls]=\"id() + '-listbox'\"\n [attr.aria-activedescendant]=\"\n focusedIndex() >= 0 ? id() + '-option-' + focusedIndex() : null\n \"\n [attr.aria-invalid]=\"resolvedStatus() === 'error' || null\"\n [attr.aria-describedby]=\"\n showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n \"\n (input)=\"handleInput($event)\"\n (focus)=\"handleFocus()\"\n (blur)=\"handleBlur()\"\n (keydown)=\"handleKeydown($event)\" />\n\n <span class=\"ea-autocomplete__suffix\">\n <ng-content select=\"[slot=suffix]\" />\n </span>\n </div>\n\n @if (showList()) {\n <ul\n class=\"ea-autocomplete__listbox\"\n role=\"listbox\"\n [id]=\"id() + '-listbox'\">\n @for (option of filteredOptions(); track option.value; let i = $index) {\n <li\n class=\"ea-autocomplete__option\"\n role=\"option\"\n [id]=\"id() + '-option-' + i\"\n [class.ea-autocomplete__option--focused]=\"i === focusedIndex()\"\n [class.ea-autocomplete__option--disabled]=\"option.disabled\"\n [attr.aria-selected]=\"i === focusedIndex()\"\n [attr.aria-disabled]=\"option.disabled || null\"\n (mousedown)=\"selectOption(option)\"\n (mouseenter)=\"focusedIndex.set(i)\">\n {{ option.label }}\n </li>\n }\n @if (showEmpty()) {\n <li\n class=\"ea-autocomplete__empty\"\n role=\"presentation\">\n {{ emptyMessage() }}\n </li>\n }\n </ul>\n }\n\n @if (showError()) {\n <p\n class=\"ea-autocomplete__message ea-autocomplete__message--error\"\n [id]=\"id() + '-error'\"\n role=\"alert\">\n {{ errorMsg() }}\n </p>\n }\n\n @if (showHint()) {\n <p\n class=\"ea-autocomplete__message ea-autocomplete__message--hint\"\n [id]=\"id() + '-hint'\">\n {{ hint() }}\n </p>\n }\n</div>\n", styles: [".ea-autocomplete{position:relative;display:flex;flex-direction:column;gap:var(--space-1-5)}.ea-autocomplete__label{font-size:var(--text-label-md-size);font-weight:var(--text-label-md-weight);line-height:var(--text-label-md-lh);color:var(--color-text-primary)}.ea-autocomplete__label--required:after{content:\" *\";color:var(--color-error-default)}.ea-autocomplete__wrapper{display:flex;align-items:center;gap:var(--space-2);width:100%;border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);background-color:var(--color-bg-base);transition:var(--transition-colors),var(--transition-shadow)}.ea-autocomplete__wrapper--sm{padding:var(--space-1-5) var(--space-2);min-height:2rem}.ea-autocomplete__wrapper--sm .ea-autocomplete__input{font-size:var(--font-size-sm)}.ea-autocomplete__wrapper--md{padding:var(--space-2) var(--space-3);min-height:2.5rem}.ea-autocomplete__wrapper--md .ea-autocomplete__input{font-size:var(--font-size-sm)}.ea-autocomplete__wrapper--lg{padding:var(--space-2-5) var(--space-4);min-height:3rem}.ea-autocomplete__wrapper--lg .ea-autocomplete__input{font-size:var(--font-size-md)}.ea-autocomplete__wrapper--focused{border-color:var(--color-border-focus);box-shadow:var(--shadow-focus-ring)}.ea-autocomplete__wrapper--error{border-color:var(--color-error-default)}.ea-autocomplete__wrapper--error.ea-autocomplete__wrapper--focused{box-shadow:var(--shadow-focus-ring-error)}.ea-autocomplete__wrapper--disabled{background-color:var(--color-bg-muted);opacity:.6;cursor:not-allowed}.ea-autocomplete__input{flex:1;min-width:0;padding:0;border:none;background:transparent;font-family:var(--font-family-sans);color:var(--color-text-primary);outline:none}.ea-autocomplete__input::placeholder{color:var(--color-text-tertiary)}.ea-autocomplete__input:disabled{cursor:not-allowed}.ea-autocomplete__prefix,.ea-autocomplete__suffix{display:flex;flex-shrink:0;align-items:center;color:var(--color-text-secondary)}.ea-autocomplete__prefix:empty,.ea-autocomplete__suffix:empty{display:none}.ea-autocomplete__listbox{position:absolute;z-index:var(--z-index-dropdown);top:100%;left:0;right:0;max-height:15rem;padding:var(--space-1) 0;margin:var(--space-1) 0 0;overflow-y:auto;list-style:none;border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);background-color:var(--color-bg-base)}.ea-autocomplete__option{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-family:var(--font-family-sans);color:var(--color-text-primary);cursor:pointer;transition:var(--transition-colors)}.ea-autocomplete__option--focused{background-color:var(--color-bg-muted)}.ea-autocomplete__option--disabled{color:var(--color-text-disabled);cursor:not-allowed}.ea-autocomplete__empty{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-style:italic;color:var(--color-text-tertiary)}.ea-autocomplete__message{display:flex;align-items:center;gap:var(--space-1);margin:0;font-size:var(--text-helper-size);font-weight:var(--text-helper-weight);line-height:var(--text-helper-lh)}.ea-autocomplete__message--hint{color:var(--color-text-secondary)}.ea-autocomplete__message--error{color:var(--color-error-default)}\n"] }]
495
+ }], propDecorators: { inputEl: [{ type: i0.ViewChild, args: ['inputEl', { isSignal: true }] }], hostEl: [{ type: i0.ViewChild, args: ['hostEl', { isSignal: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }], errorMsg: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], minLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "minLength", required: false }] }], maxResults: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxResults", required: false }] }], emptyMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyMessage", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], optionSelected: [{ type: i0.Output, args: ["optionSelected"] }], valueChanged: [{ type: i0.Output, args: ["valueChanged"] }], onDocumentClick: [{
496
+ type: HostListener,
497
+ args: ['document:click', ['$event']]
498
+ }] } });
499
+
316
500
  class CameraIconComponent {
317
501
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: CameraIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
318
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: CameraIconComponent, isStandalone: true, selector: "ea-icon-camera", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
502
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: CameraIconComponent, isStandalone: true, selector: "ea-icon-camera", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
319
503
  <svg
320
504
  viewBox="0 0 24 24"
321
505
  fill="none"
@@ -340,7 +524,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
340
524
  args: [{
341
525
  selector: 'ea-icon-camera',
342
526
  changeDetection: ChangeDetectionStrategy.OnPush,
343
- host: { style: 'display: inline-flex;' },
527
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
344
528
  template: `
345
529
  <svg
346
530
  viewBox="0 0 24 24"
@@ -365,7 +549,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
365
549
 
366
550
  class MinusIconComponent {
367
551
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: MinusIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
368
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: MinusIconComponent, isStandalone: true, selector: "ea-icon-minus", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
552
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: MinusIconComponent, isStandalone: true, selector: "ea-icon-minus", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
369
553
  <svg
370
554
  viewBox="0 0 24 24"
371
555
  fill="none"
@@ -389,7 +573,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
389
573
  args: [{
390
574
  selector: 'ea-icon-minus',
391
575
  changeDetection: ChangeDetectionStrategy.OnPush,
392
- host: { style: 'display: inline-flex;' },
576
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
393
577
  template: `
394
578
  <svg
395
579
  viewBox="0 0 24 24"
@@ -413,7 +597,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
413
597
 
414
598
  class PlusIconComponent {
415
599
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: PlusIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
416
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: PlusIconComponent, isStandalone: true, selector: "ea-icon-plus", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
600
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: PlusIconComponent, isStandalone: true, selector: "ea-icon-plus", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
417
601
  <svg
418
602
  viewBox="0 0 24 24"
419
603
  fill="none"
@@ -442,7 +626,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
442
626
  args: [{
443
627
  selector: 'ea-icon-plus',
444
628
  changeDetection: ChangeDetectionStrategy.OnPush,
445
- host: { style: 'display: inline-flex;' },
629
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
446
630
  template: `
447
631
  <svg
448
632
  viewBox="0 0 24 24"
@@ -471,7 +655,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
471
655
 
472
656
  class RotateCcwIconComponent {
473
657
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: RotateCcwIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
474
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: RotateCcwIconComponent, isStandalone: true, selector: "ea-icon-rotate-ccw", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
658
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: RotateCcwIconComponent, isStandalone: true, selector: "ea-icon-rotate-ccw", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
475
659
  <svg
476
660
  viewBox="0 0 24 24"
477
661
  fill="none"
@@ -492,7 +676,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
492
676
  args: [{
493
677
  selector: 'ea-icon-rotate-ccw',
494
678
  changeDetection: ChangeDetectionStrategy.OnPush,
495
- host: { style: 'display: inline-flex;' },
679
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
496
680
  template: `
497
681
  <svg
498
682
  viewBox="0 0 24 24"
@@ -513,7 +697,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
513
697
 
514
698
  class TrashIconComponent {
515
699
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: TrashIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
516
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: TrashIconComponent, isStandalone: true, selector: "ea-icon-trash", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
700
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: TrashIconComponent, isStandalone: true, selector: "ea-icon-trash", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
517
701
  <svg
518
702
  viewBox="0 0 24 24"
519
703
  fill="none"
@@ -535,7 +719,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
535
719
  args: [{
536
720
  selector: 'ea-icon-trash',
537
721
  changeDetection: ChangeDetectionStrategy.OnPush,
538
- host: { style: 'display: inline-flex;' },
722
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
539
723
  template: `
540
724
  <svg
541
725
  viewBox="0 0 24 24"
@@ -557,7 +741,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
557
741
 
558
742
  class UploadIconComponent {
559
743
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: UploadIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
560
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: UploadIconComponent, isStandalone: true, selector: "ea-icon-upload", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
744
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: UploadIconComponent, isStandalone: true, selector: "ea-icon-upload", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
561
745
  <svg
562
746
  viewBox="0 0 24 24"
563
747
  fill="none"
@@ -583,7 +767,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
583
767
  args: [{
584
768
  selector: 'ea-icon-upload',
585
769
  changeDetection: ChangeDetectionStrategy.OnPush,
586
- host: { style: 'display: inline-flex;' },
770
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
587
771
  template: `
588
772
  <svg
589
773
  viewBox="0 0 24 24"
@@ -1154,7 +1338,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
1154
1338
 
1155
1339
  class UserIconComponent {
1156
1340
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: UserIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1157
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: UserIconComponent, isStandalone: true, selector: "ea-icon-user", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
1341
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: UserIconComponent, isStandalone: true, selector: "ea-icon-user", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
1158
1342
  <svg
1159
1343
  viewBox="0 0 24 24"
1160
1344
  fill="none"
@@ -1178,7 +1362,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
1178
1362
  args: [{
1179
1363
  selector: 'ea-icon-user',
1180
1364
  changeDetection: ChangeDetectionStrategy.OnPush,
1181
- host: { style: 'display: inline-flex;' },
1365
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
1182
1366
  template: `
1183
1367
  <svg
1184
1368
  viewBox="0 0 24 24"
@@ -1239,6 +1423,69 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
1239
1423
  args: [{ selector: 'ea-badge', imports: [NgClass], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<span\n class=\"ea-badge\"\n [ngClass]=\"hostClasses()\">\n <ng-content />\n</span>\n", styles: [".ea-badge{display:inline-flex;align-items:center;gap:var(--space-1);font-family:var(--font-family-sans);font-weight:var(--font-weight-medium);line-height:var(--line-height-none);white-space:nowrap;border-radius:var(--radius-full)}.ea-badge--sm{padding:var(--space-0-5) var(--space-2);font-size:var(--font-size-xs)}.ea-badge--md{padding:var(--space-1) var(--space-2-5);font-size:var(--font-size-xs)}.ea-badge--lg{padding:var(--space-1) var(--space-3);font-size:var(--font-size-sm)}.ea-badge--default{background-color:var(--color-bg-muted);color:var(--color-text-secondary)}.ea-badge--success{background-color:var(--color-success-subtle);color:var(--color-success-700)}.ea-badge--warning{background-color:var(--color-warning-subtle);color:var(--color-warning-700)}.ea-badge--error{background-color:var(--color-error-subtle);color:var(--color-error-700)}.ea-badge--info{background-color:var(--color-info-subtle);color:var(--color-info-700)}\n"] }]
1240
1424
  }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
1241
1425
 
1426
+ class ChevronRightIconComponent {
1427
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ChevronRightIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1428
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ChevronRightIconComponent, isStandalone: true, selector: "ea-icon-chevron-right", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
1429
+ <svg
1430
+ viewBox="0 0 24 24"
1431
+ fill="none"
1432
+ stroke="currentColor"
1433
+ stroke-width="2"
1434
+ stroke-linecap="round"
1435
+ stroke-linejoin="round"
1436
+ aria-hidden="true"
1437
+ width="100%"
1438
+ height="100%">
1439
+ <polyline points="9 18 15 12 9 6" />
1440
+ </svg>
1441
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1442
+ }
1443
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ChevronRightIconComponent, decorators: [{
1444
+ type: Component,
1445
+ args: [{
1446
+ selector: 'ea-icon-chevron-right',
1447
+ changeDetection: ChangeDetectionStrategy.OnPush,
1448
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
1449
+ template: `
1450
+ <svg
1451
+ viewBox="0 0 24 24"
1452
+ fill="none"
1453
+ stroke="currentColor"
1454
+ stroke-width="2"
1455
+ stroke-linecap="round"
1456
+ stroke-linejoin="round"
1457
+ aria-hidden="true"
1458
+ width="100%"
1459
+ height="100%">
1460
+ <polyline points="9 18 15 12 9 6" />
1461
+ </svg>
1462
+ `,
1463
+ }]
1464
+ }] });
1465
+
1466
+ class BreadcrumbsComponent {
1467
+ items = input([], ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
1468
+ separator = input('chevron', ...(ngDevMode ? [{ debugName: "separator" }] : /* istanbul ignore next */ []));
1469
+ ariaLabel = input('Breadcrumb', { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
1470
+ itemClicked = output();
1471
+ isLast(index) {
1472
+ return index === this.items().length - 1;
1473
+ }
1474
+ handleClick(item, index, event) {
1475
+ if (item.disabled || this.isLast(index)) {
1476
+ event.preventDefault();
1477
+ return;
1478
+ }
1479
+ this.itemClicked.emit({ item, index, event });
1480
+ }
1481
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: BreadcrumbsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1482
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: BreadcrumbsComponent, isStandalone: true, selector: "ea-breadcrumbs", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClicked: "itemClicked" }, ngImport: i0, template: "<nav\n class=\"ea-breadcrumbs\"\n [attr.aria-label]=\"ariaLabel()\">\n <ol class=\"ea-breadcrumbs__list\">\n @for (item of items(); track $index; let i = $index; let last = $last) {\n <li class=\"ea-breadcrumbs__item\">\n @if (last) {\n <span\n class=\"ea-breadcrumbs__current\"\n aria-current=\"page\">\n {{ item.label }}\n </span>\n } @else if (item.disabled) {\n <span class=\"ea-breadcrumbs__link ea-breadcrumbs__link--disabled\">\n {{ item.label }}\n </span>\n } @else if (item.href) {\n <a\n class=\"ea-breadcrumbs__link\"\n [href]=\"item.href\"\n (click)=\"handleClick(item, i, $event)\">\n {{ item.label }}\n </a>\n } @else {\n <button\n type=\"button\"\n class=\"ea-breadcrumbs__link ea-breadcrumbs__link--button\"\n (click)=\"handleClick(item, i, $event)\">\n {{ item.label }}\n </button>\n }\n\n @if (!last) {\n @if (separator() === 'chevron') {\n <ea-icon-chevron-right\n class=\"ea-breadcrumbs__separator\"\n aria-hidden=\"true\" />\n } @else {\n <span\n class=\"ea-breadcrumbs__separator ea-breadcrumbs__separator--slash\"\n aria-hidden=\"true\">\n /\n </span>\n }\n }\n </li>\n }\n </ol>\n</nav>\n", styles: [".ea-breadcrumbs{font-family:var(--font-family-sans);font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-breadcrumbs__list{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);padding:0;margin:0;list-style:none}.ea-breadcrumbs__item{display:inline-flex;align-items:center;gap:var(--space-1);min-width:0}.ea-breadcrumbs__link{padding:var(--space-0-5) var(--space-1);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-family:inherit;font-size:inherit;text-decoration:none;cursor:pointer;transition:var(--transition-colors)}.ea-breadcrumbs__link:hover:not(.ea-breadcrumbs__link--disabled){color:var(--color-text-primary);text-decoration:underline}.ea-breadcrumbs__link:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-breadcrumbs__link--disabled{color:var(--color-text-disabled);cursor:not-allowed}.ea-breadcrumbs__current{padding:var(--space-0-5) var(--space-1);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.ea-breadcrumbs__separator{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;color:var(--color-text-tertiary);flex-shrink:0;-webkit-user-select:none;user-select:none}.ea-breadcrumbs__separator--slash{width:auto;height:auto;font-size:var(--font-size-sm)}\n"], dependencies: [{ kind: "component", type: ChevronRightIconComponent, selector: "ea-icon-chevron-right" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1483
+ }
1484
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: BreadcrumbsComponent, decorators: [{
1485
+ type: Component,
1486
+ args: [{ selector: 'ea-breadcrumbs', imports: [ChevronRightIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<nav\n class=\"ea-breadcrumbs\"\n [attr.aria-label]=\"ariaLabel()\">\n <ol class=\"ea-breadcrumbs__list\">\n @for (item of items(); track $index; let i = $index; let last = $last) {\n <li class=\"ea-breadcrumbs__item\">\n @if (last) {\n <span\n class=\"ea-breadcrumbs__current\"\n aria-current=\"page\">\n {{ item.label }}\n </span>\n } @else if (item.disabled) {\n <span class=\"ea-breadcrumbs__link ea-breadcrumbs__link--disabled\">\n {{ item.label }}\n </span>\n } @else if (item.href) {\n <a\n class=\"ea-breadcrumbs__link\"\n [href]=\"item.href\"\n (click)=\"handleClick(item, i, $event)\">\n {{ item.label }}\n </a>\n } @else {\n <button\n type=\"button\"\n class=\"ea-breadcrumbs__link ea-breadcrumbs__link--button\"\n (click)=\"handleClick(item, i, $event)\">\n {{ item.label }}\n </button>\n }\n\n @if (!last) {\n @if (separator() === 'chevron') {\n <ea-icon-chevron-right\n class=\"ea-breadcrumbs__separator\"\n aria-hidden=\"true\" />\n } @else {\n <span\n class=\"ea-breadcrumbs__separator ea-breadcrumbs__separator--slash\"\n aria-hidden=\"true\">\n /\n </span>\n }\n }\n </li>\n }\n </ol>\n</nav>\n", styles: [".ea-breadcrumbs{font-family:var(--font-family-sans);font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-breadcrumbs__list{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);padding:0;margin:0;list-style:none}.ea-breadcrumbs__item{display:inline-flex;align-items:center;gap:var(--space-1);min-width:0}.ea-breadcrumbs__link{padding:var(--space-0-5) var(--space-1);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-family:inherit;font-size:inherit;text-decoration:none;cursor:pointer;transition:var(--transition-colors)}.ea-breadcrumbs__link:hover:not(.ea-breadcrumbs__link--disabled){color:var(--color-text-primary);text-decoration:underline}.ea-breadcrumbs__link:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-breadcrumbs__link--disabled{color:var(--color-text-disabled);cursor:not-allowed}.ea-breadcrumbs__current{padding:var(--space-0-5) var(--space-1);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.ea-breadcrumbs__separator{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;color:var(--color-text-tertiary);flex-shrink:0;-webkit-user-select:none;user-select:none}.ea-breadcrumbs__separator--slash{width:auto;height:auto;font-size:var(--font-size-sm)}\n"] }]
1487
+ }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], itemClicked: [{ type: i0.Output, args: ["itemClicked"] }] } });
1488
+
1242
1489
  class ButtonComponent {
1243
1490
  // Inputs
1244
1491
  variant = input('primary', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
@@ -1277,12 +1524,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
1277
1524
  }, template: "<button\n class=\"ea-button\"\n [ngClass]=\"hostClasses()\"\n [type]=\"type()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-current]=\"ariaCurrent() || null\"\n [attr.aria-busy]=\"loading() || null\"\n [attr.aria-disabled]=\"isDisabled() || null\"\n (click)=\"handleClick($event)\">\n @if (loading()) {\n <span\n class=\"ea-button__spinner\"\n aria-hidden=\"true\">\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-dasharray=\"31.4\"\n stroke-dashoffset=\"10\" />\n </svg>\n </span>\n }\n\n <span\n class=\"ea-button__content\"\n [class.ea-button__content--hidden]=\"loading()\">\n <ng-content select=\"[slot=prefix]\" />\n <span class=\"ea-button__label\">\n <ng-content />\n </span>\n <ng-content select=\"[slot=suffix]\" />\n </span>\n</button>\n", styles: [".ea-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--inline-xs);position:relative;white-space:nowrap;-webkit-user-select:none;user-select:none;font-family:var(--font-family-sans);font-weight:var(--ea-button-font-weight, var(--font-weight-medium));letter-spacing:var(--letter-spacing-wide);text-decoration:none;line-height:var(--line-height-none);border-width:var(--border-width-thin);border-style:solid;border-radius:var(--radius-md);transition:var(--transition-colors),var(--transition-shadow);cursor:pointer}.ea-button:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-button--sm{padding:var(--space-1-5) var(--space-3);font-size:var(--ea-button-font-size, var(--font-size-sm));min-height:2rem}.ea-button--md{padding:var(--space-2) var(--space-4);font-size:var(--ea-button-font-size, var(--font-size-sm));min-height:2.5rem}.ea-button--lg{padding:var(--space-2-5) var(--space-6);font-size:var(--ea-button-font-size, var(--font-size-md));min-height:3rem}.ea-button--primary{background-color:var(--color-brand-default);border-color:var(--color-brand-default);color:var(--color-text-inverse)}.ea-button--primary:hover:not(.ea-button--disabled){background-color:var(--color-brand-hover);border-color:var(--color-brand-hover)}.ea-button--primary:active:not(.ea-button--disabled){background-color:var(--color-brand-active);border-color:var(--color-brand-active)}.ea-button--secondary{background-color:transparent;border-color:var(--color-border-strong);color:var(--color-text-primary)}.ea-button--secondary:hover:not(.ea-button--disabled){background-color:var(--color-bg-muted);border-color:var(--color-neutral-500)}.ea-button--secondary:active:not(.ea-button--disabled){background-color:var(--color-neutral-200)}.ea-button--ghost{background-color:transparent;border-color:transparent;color:var(--color-text-primary)}.ea-button--ghost:hover:not(.ea-button--disabled){background-color:var(--color-bg-muted)}.ea-button--ghost:active:not(.ea-button--disabled){background-color:var(--color-neutral-200)}.ea-button--danger{background-color:var(--color-error-default);border-color:var(--color-error-default);color:var(--color-text-inverse)}.ea-button--danger:hover:not(.ea-button--disabled){background-color:var(--color-error-700);border-color:var(--color-error-700)}.ea-button--danger:active:not(.ea-button--disabled){background-color:var(--color-error-700);border-color:var(--color-error-700);filter:brightness(.9)}.ea-button--full-width{width:100%}.ea-button--disabled,.ea-button:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.ea-button--loading{cursor:wait;pointer-events:none}.ea-button__content{display:inline-flex;align-items:center;gap:var(--inline-xs)}.ea-button__content--hidden{visibility:hidden}.ea-button__label{display:inline-flex;align-items:center}.ea-button__spinner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.ea-button__spinner svg{width:1.1em;height:1.1em;animation:ea-spin .75s linear infinite}:host(.ea-button--full-width){display:block;width:100%}@keyframes ea-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
1278
1525
  }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaCurrent: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-current", required: false }] }], clicked: [{ type: i0.Output, args: ["clicked"] }] } });
1279
1526
 
1527
+ class DividerComponent {
1528
+ orientation = input('horizontal', ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
1529
+ label = input(undefined, ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
1530
+ hostClasses = computed(() => ({
1531
+ [`ea-divider--${this.orientation()}`]: true,
1532
+ 'ea-divider--with-label': !!this.label(),
1533
+ }), ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
1534
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1535
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: DividerComponent, isStandalone: true, selector: "ea-divider", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"ea-divider\"\n [ngClass]=\"hostClasses()\"\n [attr.role]=\"'separator'\"\n [attr.aria-orientation]=\"orientation()\">\n @if (label()) {\n <span class=\"ea-divider__label\">{{ label() }}</span>\n }\n</div>\n", styles: [".ea-divider{flex-shrink:0;border:0;font-family:var(--font-family-sans)}.ea-divider--horizontal{display:flex;align-items:center;width:100%;height:1px;background-color:var(--color-border-default)}.ea-divider--vertical{display:inline-block;width:1px;height:100%;min-height:1rem;background-color:var(--color-border-default)}.ea-divider--with-label{height:auto;background-color:transparent;gap:var(--space-3)}.ea-divider--with-label:before,.ea-divider--with-label:after{content:\"\";flex:1;height:1px;background-color:var(--color-border-default)}.ea-divider__label{flex-shrink:0;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary);white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1536
+ }
1537
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DividerComponent, decorators: [{
1538
+ type: Component,
1539
+ args: [{ selector: 'ea-divider', imports: [NgClass], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"ea-divider\"\n [ngClass]=\"hostClasses()\"\n [attr.role]=\"'separator'\"\n [attr.aria-orientation]=\"orientation()\">\n @if (label()) {\n <span class=\"ea-divider__label\">{{ label() }}</span>\n }\n</div>\n", styles: [".ea-divider{flex-shrink:0;border:0;font-family:var(--font-family-sans)}.ea-divider--horizontal{display:flex;align-items:center;width:100%;height:1px;background-color:var(--color-border-default)}.ea-divider--vertical{display:inline-block;width:1px;height:100%;min-height:1rem;background-color:var(--color-border-default)}.ea-divider--with-label{height:auto;background-color:transparent;gap:var(--space-3)}.ea-divider--with-label:before,.ea-divider--with-label:after{content:\"\";flex:1;height:1px;background-color:var(--color-border-default)}.ea-divider__label{flex-shrink:0;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary);white-space:nowrap}\n"] }]
1540
+ }], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }] } });
1541
+
1280
1542
  class CardComponent {
1281
1543
  // Inputs
1282
1544
  variant = input('elevated', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
1283
1545
  padding = input('md', ...(ngDevMode ? [{ debugName: "padding" }] : /* istanbul ignore next */ []));
1284
1546
  fullWidth = input(false, ...(ngDevMode ? [{ debugName: "fullWidth" }] : /* istanbul ignore next */ []));
1285
1547
  headerAlign = input('center', ...(ngDevMode ? [{ debugName: "headerAlign" }] : /* istanbul ignore next */ []));
1548
+ headerDivider = input(false, ...(ngDevMode ? [{ debugName: "headerDivider" }] : /* istanbul ignore next */ []));
1286
1549
  // Computed
1287
1550
  hostClasses = computed(() => ({
1288
1551
  [`ea-card--${this.variant()}`]: true,
@@ -1290,12 +1553,12 @@ class CardComponent {
1290
1553
  'ea-card--full-width': this.fullWidth(),
1291
1554
  }), ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
1292
1555
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1293
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.8", type: CardComponent, isStandalone: true, selector: "ea-card", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null }, headerAlign: { classPropertyName: "headerAlign", publicName: "headerAlign", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"ea-card\"\n [ngClass]=\"hostClasses()\">\n <div\n class=\"ea-card__header\"\n [style.text-align]=\"headerAlign()\">\n <ng-content select=\"[eaCardHeader]\" />\n </div>\n\n <div class=\"ea-card__body\">\n <ng-content />\n </div>\n\n <div class=\"ea-card__footer\">\n <ng-content select=\"[eaCardFooter]\" />\n </div>\n</div>\n", styles: ["ea-card{display:block;min-height:0}.ea-card{display:flex;flex-direction:column;min-height:0;border-radius:var(--radius-lg);font-family:var(--font-family-sans);color:var(--color-text-primary);overflow:hidden}.ea-card--elevated{background-color:var(--color-bg-base);box-shadow:var(--ea-card-shadow, var(--shadow-md))}.ea-card--outlined{background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default)}.ea-card--filled{background-color:var(--color-bg-subtle)}.ea-card--padding-none .ea-card__header{padding:var(--ea-card-header-padding, 0)}.ea-card--padding-none .ea-card__body{padding:var(--ea-card-body-padding, 0)}.ea-card--padding-none .ea-card__footer{padding:var(--ea-card-footer-padding, 0)}.ea-card--padding-sm .ea-card__header{padding:var(--ea-card-header-padding, var(--space-3) var(--space-3) 0)}.ea-card--padding-sm .ea-card__body{padding:var(--ea-card-body-padding, var(--space-3))}.ea-card--padding-sm .ea-card__footer{padding:var(--ea-card-footer-padding, 0 var(--space-3) var(--space-3))}.ea-card--padding-md .ea-card__header{padding:var(--ea-card-header-padding, var(--space-4) var(--space-4) 0)}.ea-card--padding-md .ea-card__body{padding:var(--ea-card-body-padding, var(--space-4))}.ea-card--padding-md .ea-card__footer{padding:var(--ea-card-footer-padding, 0 var(--space-4) var(--space-4))}.ea-card--padding-lg .ea-card__header{padding:var(--ea-card-header-padding, var(--space-6) var(--space-6) 0)}.ea-card--padding-lg .ea-card__body{padding:var(--ea-card-body-padding, var(--space-6))}.ea-card--padding-lg .ea-card__footer{padding:var(--ea-card-footer-padding, 0 var(--space-6) var(--space-6))}.ea-card--padding-xl .ea-card__header{padding:var(--ea-card-header-padding, var(--space-8) var(--space-8) 0)}.ea-card--padding-xl .ea-card__body{padding:var(--ea-card-body-padding, var(--space-8))}.ea-card--padding-xl .ea-card__footer{padding:var(--ea-card-footer-padding, 0 var(--space-8) var(--space-8))}.ea-card--full-width{width:100%}.ea-card__header:empty,.ea-card__footer:empty{display:none}.ea-card__header{font-size:var(--text-label-lg-size);font-weight:var(--text-label-lg-weight);line-height:var(--text-label-lg-lh)}.ea-card__body{flex:1;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-card__footer{display:flex;align-items:center;justify-content:center;gap:var(--space-3)}.ea-card__footer>*{display:flex;align-items:center;justify-content:center;gap:var(--space-3)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1556
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: CardComponent, isStandalone: true, selector: "ea-card", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null }, headerAlign: { classPropertyName: "headerAlign", publicName: "headerAlign", isSignal: true, isRequired: false, transformFunction: null }, headerDivider: { classPropertyName: "headerDivider", publicName: "headerDivider", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"ea-card\"\n [ngClass]=\"hostClasses()\">\n <div\n class=\"ea-card__header\"\n [style.text-align]=\"headerAlign()\">\n <ng-content select=\"[eaCardHeader]\" />\n </div>\n\n @if (headerDivider()) {\n <ea-divider class=\"ea-card__divider\" />\n }\n\n <div class=\"ea-card__body\">\n <ng-content />\n </div>\n\n <div class=\"ea-card__footer\">\n <ng-content select=\"[eaCardFooter]\" />\n </div>\n</div>\n", styles: ["ea-card{display:block;min-height:0}.ea-card{display:flex;flex-direction:column;min-height:0;border-radius:var(--radius-lg);font-family:var(--font-family-sans);color:var(--color-text-primary);overflow:hidden}.ea-card--elevated{background-color:var(--color-bg-base);box-shadow:var(--ea-card-shadow, var(--shadow-md))}.ea-card--outlined{background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default)}.ea-card--filled{background-color:var(--color-bg-subtle)}.ea-card--padding-none .ea-card__header{padding:var(--ea-card-header-padding, 0)}.ea-card--padding-none .ea-card__body{padding:var(--ea-card-body-padding, 0)}.ea-card--padding-none .ea-card__footer{padding:var(--ea-card-footer-padding, 0)}.ea-card--padding-sm .ea-card__header{padding:var(--ea-card-header-padding, var(--space-3) var(--space-3) 0)}.ea-card--padding-sm .ea-card__body{padding:var(--ea-card-body-padding, var(--space-3))}.ea-card--padding-sm .ea-card__footer{padding:var(--ea-card-footer-padding, 0 var(--space-3) var(--space-3))}.ea-card--padding-md .ea-card__header{padding:var(--ea-card-header-padding, var(--space-4) var(--space-4) 0)}.ea-card--padding-md .ea-card__body{padding:var(--ea-card-body-padding, var(--space-4))}.ea-card--padding-md .ea-card__footer{padding:var(--ea-card-footer-padding, 0 var(--space-4) var(--space-4))}.ea-card--padding-lg .ea-card__header{padding:var(--ea-card-header-padding, var(--space-6) var(--space-6) 0)}.ea-card--padding-lg .ea-card__body{padding:var(--ea-card-body-padding, var(--space-6))}.ea-card--padding-lg .ea-card__footer{padding:var(--ea-card-footer-padding, 0 var(--space-6) var(--space-6))}.ea-card--padding-xl .ea-card__header{padding:var(--ea-card-header-padding, var(--space-8) var(--space-8) 0)}.ea-card--padding-xl .ea-card__body{padding:var(--ea-card-body-padding, var(--space-8))}.ea-card--padding-xl .ea-card__footer{padding:var(--ea-card-footer-padding, 0 var(--space-8) var(--space-8))}.ea-card--full-width{width:100%}.ea-card__divider{margin:var(--space-2) var(--space-4) 0}.ea-card__header:empty,.ea-card__footer:empty{display:none}.ea-card__header{font-size:var(--text-label-lg-size);font-weight:var(--text-label-lg-weight);line-height:var(--text-label-lg-lh)}.ea-card__body{flex:1;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-card__footer{display:flex;align-items:center;justify-content:center;gap:var(--space-3)}.ea-card__footer>*{display:flex;align-items:center;justify-content:center;gap:var(--space-3)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DividerComponent, selector: "ea-divider", inputs: ["orientation", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1294
1557
  }
1295
1558
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: CardComponent, decorators: [{
1296
1559
  type: Component,
1297
- args: [{ selector: 'ea-card', imports: [NgClass], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"ea-card\"\n [ngClass]=\"hostClasses()\">\n <div\n class=\"ea-card__header\"\n [style.text-align]=\"headerAlign()\">\n <ng-content select=\"[eaCardHeader]\" />\n </div>\n\n <div class=\"ea-card__body\">\n <ng-content />\n </div>\n\n <div class=\"ea-card__footer\">\n <ng-content select=\"[eaCardFooter]\" />\n </div>\n</div>\n", styles: ["ea-card{display:block;min-height:0}.ea-card{display:flex;flex-direction:column;min-height:0;border-radius:var(--radius-lg);font-family:var(--font-family-sans);color:var(--color-text-primary);overflow:hidden}.ea-card--elevated{background-color:var(--color-bg-base);box-shadow:var(--ea-card-shadow, var(--shadow-md))}.ea-card--outlined{background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default)}.ea-card--filled{background-color:var(--color-bg-subtle)}.ea-card--padding-none .ea-card__header{padding:var(--ea-card-header-padding, 0)}.ea-card--padding-none .ea-card__body{padding:var(--ea-card-body-padding, 0)}.ea-card--padding-none .ea-card__footer{padding:var(--ea-card-footer-padding, 0)}.ea-card--padding-sm .ea-card__header{padding:var(--ea-card-header-padding, var(--space-3) var(--space-3) 0)}.ea-card--padding-sm .ea-card__body{padding:var(--ea-card-body-padding, var(--space-3))}.ea-card--padding-sm .ea-card__footer{padding:var(--ea-card-footer-padding, 0 var(--space-3) var(--space-3))}.ea-card--padding-md .ea-card__header{padding:var(--ea-card-header-padding, var(--space-4) var(--space-4) 0)}.ea-card--padding-md .ea-card__body{padding:var(--ea-card-body-padding, var(--space-4))}.ea-card--padding-md .ea-card__footer{padding:var(--ea-card-footer-padding, 0 var(--space-4) var(--space-4))}.ea-card--padding-lg .ea-card__header{padding:var(--ea-card-header-padding, var(--space-6) var(--space-6) 0)}.ea-card--padding-lg .ea-card__body{padding:var(--ea-card-body-padding, var(--space-6))}.ea-card--padding-lg .ea-card__footer{padding:var(--ea-card-footer-padding, 0 var(--space-6) var(--space-6))}.ea-card--padding-xl .ea-card__header{padding:var(--ea-card-header-padding, var(--space-8) var(--space-8) 0)}.ea-card--padding-xl .ea-card__body{padding:var(--ea-card-body-padding, var(--space-8))}.ea-card--padding-xl .ea-card__footer{padding:var(--ea-card-footer-padding, 0 var(--space-8) var(--space-8))}.ea-card--full-width{width:100%}.ea-card__header:empty,.ea-card__footer:empty{display:none}.ea-card__header{font-size:var(--text-label-lg-size);font-weight:var(--text-label-lg-weight);line-height:var(--text-label-lg-lh)}.ea-card__body{flex:1;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-card__footer{display:flex;align-items:center;justify-content:center;gap:var(--space-3)}.ea-card__footer>*{display:flex;align-items:center;justify-content:center;gap:var(--space-3)}\n"] }]
1298
- }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], padding: [{ type: i0.Input, args: [{ isSignal: true, alias: "padding", required: false }] }], fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }], headerAlign: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerAlign", required: false }] }] } });
1560
+ args: [{ selector: 'ea-card', imports: [NgClass, DividerComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"ea-card\"\n [ngClass]=\"hostClasses()\">\n <div\n class=\"ea-card__header\"\n [style.text-align]=\"headerAlign()\">\n <ng-content select=\"[eaCardHeader]\" />\n </div>\n\n @if (headerDivider()) {\n <ea-divider class=\"ea-card__divider\" />\n }\n\n <div class=\"ea-card__body\">\n <ng-content />\n </div>\n\n <div class=\"ea-card__footer\">\n <ng-content select=\"[eaCardFooter]\" />\n </div>\n</div>\n", styles: ["ea-card{display:block;min-height:0}.ea-card{display:flex;flex-direction:column;min-height:0;border-radius:var(--radius-lg);font-family:var(--font-family-sans);color:var(--color-text-primary);overflow:hidden}.ea-card--elevated{background-color:var(--color-bg-base);box-shadow:var(--ea-card-shadow, var(--shadow-md))}.ea-card--outlined{background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default)}.ea-card--filled{background-color:var(--color-bg-subtle)}.ea-card--padding-none .ea-card__header{padding:var(--ea-card-header-padding, 0)}.ea-card--padding-none .ea-card__body{padding:var(--ea-card-body-padding, 0)}.ea-card--padding-none .ea-card__footer{padding:var(--ea-card-footer-padding, 0)}.ea-card--padding-sm .ea-card__header{padding:var(--ea-card-header-padding, var(--space-3) var(--space-3) 0)}.ea-card--padding-sm .ea-card__body{padding:var(--ea-card-body-padding, var(--space-3))}.ea-card--padding-sm .ea-card__footer{padding:var(--ea-card-footer-padding, 0 var(--space-3) var(--space-3))}.ea-card--padding-md .ea-card__header{padding:var(--ea-card-header-padding, var(--space-4) var(--space-4) 0)}.ea-card--padding-md .ea-card__body{padding:var(--ea-card-body-padding, var(--space-4))}.ea-card--padding-md .ea-card__footer{padding:var(--ea-card-footer-padding, 0 var(--space-4) var(--space-4))}.ea-card--padding-lg .ea-card__header{padding:var(--ea-card-header-padding, var(--space-6) var(--space-6) 0)}.ea-card--padding-lg .ea-card__body{padding:var(--ea-card-body-padding, var(--space-6))}.ea-card--padding-lg .ea-card__footer{padding:var(--ea-card-footer-padding, 0 var(--space-6) var(--space-6))}.ea-card--padding-xl .ea-card__header{padding:var(--ea-card-header-padding, var(--space-8) var(--space-8) 0)}.ea-card--padding-xl .ea-card__body{padding:var(--ea-card-body-padding, var(--space-8))}.ea-card--padding-xl .ea-card__footer{padding:var(--ea-card-footer-padding, 0 var(--space-8) var(--space-8))}.ea-card--full-width{width:100%}.ea-card__divider{margin:var(--space-2) var(--space-4) 0}.ea-card__header:empty,.ea-card__footer:empty{display:none}.ea-card__header{font-size:var(--text-label-lg-size);font-weight:var(--text-label-lg-weight);line-height:var(--text-label-lg-lh)}.ea-card__body{flex:1;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-card__footer{display:flex;align-items:center;justify-content:center;gap:var(--space-3)}.ea-card__footer>*{display:flex;align-items:center;justify-content:center;gap:var(--space-3)}\n"] }]
1561
+ }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], padding: [{ type: i0.Input, args: [{ isSignal: true, alias: "padding", required: false }] }], fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }], headerAlign: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerAlign", required: false }] }], headerDivider: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerDivider", required: false }] }] } });
1299
1562
 
1300
1563
  class CheckboxComponent {
1301
1564
  // Inputs
@@ -1367,7 +1630,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
1367
1630
 
1368
1631
  class ArrowDownIconComponent {
1369
1632
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ArrowDownIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1370
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ArrowDownIconComponent, isStandalone: true, selector: "ea-icon-arrow-down", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
1633
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ArrowDownIconComponent, isStandalone: true, selector: "ea-icon-arrow-down", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
1371
1634
  <svg
1372
1635
  viewBox="0 0 24 24"
1373
1636
  fill="none"
@@ -1392,7 +1655,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
1392
1655
  args: [{
1393
1656
  selector: 'ea-icon-arrow-down',
1394
1657
  changeDetection: ChangeDetectionStrategy.OnPush,
1395
- host: { style: 'display: inline-flex;' },
1658
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
1396
1659
  template: `
1397
1660
  <svg
1398
1661
  viewBox="0 0 24 24"
@@ -1417,7 +1680,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
1417
1680
 
1418
1681
  class ArrowUpIconComponent {
1419
1682
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ArrowUpIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1420
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ArrowUpIconComponent, isStandalone: true, selector: "ea-icon-arrow-up", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
1683
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ArrowUpIconComponent, isStandalone: true, selector: "ea-icon-arrow-up", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
1421
1684
  <svg
1422
1685
  viewBox="0 0 24 24"
1423
1686
  fill="none"
@@ -1442,7 +1705,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
1442
1705
  args: [{
1443
1706
  selector: 'ea-icon-arrow-up',
1444
1707
  changeDetection: ChangeDetectionStrategy.OnPush,
1445
- host: { style: 'display: inline-flex;' },
1708
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
1446
1709
  template: `
1447
1710
  <svg
1448
1711
  viewBox="0 0 24 24"
@@ -1467,7 +1730,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
1467
1730
 
1468
1731
  class ChevronsUpDownIconComponent {
1469
1732
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ChevronsUpDownIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1470
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ChevronsUpDownIconComponent, isStandalone: true, selector: "ea-icon-chevrons-up-down", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
1733
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ChevronsUpDownIconComponent, isStandalone: true, selector: "ea-icon-chevrons-up-down", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
1471
1734
  <svg
1472
1735
  viewBox="0 0 24 24"
1473
1736
  fill="none"
@@ -1488,7 +1751,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
1488
1751
  args: [{
1489
1752
  selector: 'ea-icon-chevrons-up-down',
1490
1753
  changeDetection: ChangeDetectionStrategy.OnPush,
1491
- host: { style: 'display: inline-flex;' },
1754
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
1492
1755
  template: `
1493
1756
  <svg
1494
1757
  viewBox="0 0 24 24"
@@ -1734,6 +1997,484 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
1734
1997
  ], template: "<div class=\"ea-code-input-field\">\n @if (label()) {\n <label\n class=\"ea-code-input-field__label\"\n [class.ea-code-input-field__label--required]=\"required()\"\n [id]=\"id() + '-label'\">\n {{ label() }}\n </label>\n }\n\n <div\n class=\"ea-code-input-group\"\n [class.ea-code-input-group--sm]=\"size() === 'sm'\"\n [class.ea-code-input-group--md]=\"size() === 'md'\"\n [class.ea-code-input-group--lg]=\"size() === 'lg'\"\n [class.ea-code-input-group--error]=\"resolvedStatus() === 'error'\"\n [class.ea-code-input-group--success]=\"resolvedStatus() === 'success'\"\n [class.ea-code-input-group--disabled]=\"isDisabled()\"\n role=\"group\"\n [attr.aria-labelledby]=\"label() ? id() + '-label' : null\"\n [attr.aria-describedby]=\"\n showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n \">\n @for (i of indices(); track i) {\n <input\n #digitEl\n class=\"ea-code-input\"\n [class.ea-code-input--focused]=\"focusedIndex() === i\"\n [class.ea-code-input--filled]=\"digits()[i] !== ''\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"one-time-code\"\n maxlength=\"1\"\n [disabled]=\"isDisabled()\"\n [required]=\"required()\"\n [value]=\"digits()[i]\"\n [attr.aria-label]=\"'Digit ' + (i + 1) + ' of ' + length()\"\n (input)=\"handleInput($event, i)\"\n (keydown)=\"handleKeydown($event, i)\"\n (paste)=\"handlePaste($event)\"\n (focus)=\"handleFocus(i)\"\n (blur)=\"handleBlur()\" />\n }\n </div>\n\n @if (showError()) {\n <p\n class=\"ea-code-input-field__message ea-code-input-field__message--error\"\n [id]=\"id() + '-error'\"\n role=\"alert\">\n {{ errorMsg() }}\n </p>\n }\n\n @if (showHint()) {\n <p\n class=\"ea-code-input-field__message ea-code-input-field__message--hint\"\n [id]=\"id() + '-hint'\">\n {{ hint() }}\n </p>\n }\n</div>\n", styles: [".ea-code-input-field{display:flex;flex-direction:column;gap:var(--space-1-5);color:var(--color-text-secondary)}.ea-code-input-field__label{font-size:var(--text-label-md-size);font-weight:var(--text-label-md-weight);line-height:var(--text-label-md-lh);color:var(--color-text-primary)}.ea-code-input-field__label--required:after{content:\" *\";color:var(--color-error-default)}.ea-code-input-field__message{font-size:var(--text-helper-size);font-weight:var(--text-helper-weight);line-height:var(--text-helper-lh)}.ea-code-input-field__message--hint{color:inherit}.ea-code-input-field__message--error{color:var(--color-error-default)}.ea-code-input-group{display:flex;gap:var(--space-2)}.ea-code-input-group--sm .ea-code-input{width:2rem;height:2.5rem;font-size:var(--font-size-md)}.ea-code-input-group--md .ea-code-input{width:2.5rem;height:3rem;font-size:var(--font-size-xl)}.ea-code-input-group--lg .ea-code-input{width:3rem;height:3.5rem;font-size:var(--font-size-2xl)}.ea-code-input-group--error .ea-code-input{border-color:var(--color-error-default)}.ea-code-input-group--error .ea-code-input--focused{box-shadow:var(--shadow-focus-ring-error)}.ea-code-input-group--success .ea-code-input{border-color:var(--color-success-default)}.ea-code-input-group--success .ea-code-input--focused{box-shadow:var(--shadow-focus-ring-success)}.ea-code-input-group--disabled{opacity:.6}.ea-code-input-group--disabled .ea-code-input{background-color:var(--color-bg-muted);border-color:var(--color-border-default);cursor:not-allowed}.ea-code-input{display:flex;align-items:center;justify-content:center;padding:0;font-weight:var(--font-weight-semibold);text-align:center;font-family:var(--font-family-sans);line-height:var(--line-height-none);letter-spacing:var(--letter-spacing-normal);background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);outline:none;color:var(--color-text-primary);caret-color:transparent;transition:var(--transition-colors),var(--transition-shadow)}.ea-code-input::placeholder{color:var(--color-text-tertiary)}.ea-code-input--focused{border-color:var(--color-border-focus);box-shadow:var(--shadow-focus-ring)}.ea-code-input--filled{border-color:var(--color-border-strong)}.ea-code-input:disabled{cursor:not-allowed}.ea-code-input::-webkit-outer-spin-button,.ea-code-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
1735
1998
  }], propDecorators: { digitEls: [{ type: i0.ViewChildren, args: ['digitEl', { isSignal: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], length: [{ type: i0.Input, args: [{ isSignal: true, alias: "length", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }], errorMsg: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], completed: [{ type: i0.Output, args: ["completed"] }] } });
1736
1999
 
2000
+ class CalendarIconComponent {
2001
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: CalendarIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2002
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: CalendarIconComponent, isStandalone: true, selector: "ea-icon-calendar", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2003
+ <svg
2004
+ viewBox="0 0 24 24"
2005
+ fill="none"
2006
+ stroke="currentColor"
2007
+ stroke-width="2"
2008
+ stroke-linecap="round"
2009
+ stroke-linejoin="round"
2010
+ aria-hidden="true"
2011
+ width="100%"
2012
+ height="100%">
2013
+ <rect
2014
+ x="3"
2015
+ y="4"
2016
+ width="18"
2017
+ height="18"
2018
+ rx="2"
2019
+ ry="2" />
2020
+ <line
2021
+ x1="16"
2022
+ y1="2"
2023
+ x2="16"
2024
+ y2="6" />
2025
+ <line
2026
+ x1="8"
2027
+ y1="2"
2028
+ x2="8"
2029
+ y2="6" />
2030
+ <line
2031
+ x1="3"
2032
+ y1="10"
2033
+ x2="21"
2034
+ y2="10" />
2035
+ </svg>
2036
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2037
+ }
2038
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: CalendarIconComponent, decorators: [{
2039
+ type: Component,
2040
+ args: [{
2041
+ selector: 'ea-icon-calendar',
2042
+ changeDetection: ChangeDetectionStrategy.OnPush,
2043
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2044
+ template: `
2045
+ <svg
2046
+ viewBox="0 0 24 24"
2047
+ fill="none"
2048
+ stroke="currentColor"
2049
+ stroke-width="2"
2050
+ stroke-linecap="round"
2051
+ stroke-linejoin="round"
2052
+ aria-hidden="true"
2053
+ width="100%"
2054
+ height="100%">
2055
+ <rect
2056
+ x="3"
2057
+ y="4"
2058
+ width="18"
2059
+ height="18"
2060
+ rx="2"
2061
+ ry="2" />
2062
+ <line
2063
+ x1="16"
2064
+ y1="2"
2065
+ x2="16"
2066
+ y2="6" />
2067
+ <line
2068
+ x1="8"
2069
+ y1="2"
2070
+ x2="8"
2071
+ y2="6" />
2072
+ <line
2073
+ x1="3"
2074
+ y1="10"
2075
+ x2="21"
2076
+ y2="10" />
2077
+ </svg>
2078
+ `,
2079
+ }]
2080
+ }] });
2081
+
2082
+ class ChevronLeftIconComponent {
2083
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ChevronLeftIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2084
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ChevronLeftIconComponent, isStandalone: true, selector: "ea-icon-chevron-left", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2085
+ <svg
2086
+ viewBox="0 0 24 24"
2087
+ fill="none"
2088
+ stroke="currentColor"
2089
+ stroke-width="2"
2090
+ stroke-linecap="round"
2091
+ stroke-linejoin="round"
2092
+ aria-hidden="true"
2093
+ width="100%"
2094
+ height="100%">
2095
+ <polyline points="15 18 9 12 15 6" />
2096
+ </svg>
2097
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2098
+ }
2099
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ChevronLeftIconComponent, decorators: [{
2100
+ type: Component,
2101
+ args: [{
2102
+ selector: 'ea-icon-chevron-left',
2103
+ changeDetection: ChangeDetectionStrategy.OnPush,
2104
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2105
+ template: `
2106
+ <svg
2107
+ viewBox="0 0 24 24"
2108
+ fill="none"
2109
+ stroke="currentColor"
2110
+ stroke-width="2"
2111
+ stroke-linecap="round"
2112
+ stroke-linejoin="round"
2113
+ aria-hidden="true"
2114
+ width="100%"
2115
+ height="100%">
2116
+ <polyline points="15 18 9 12 15 6" />
2117
+ </svg>
2118
+ `,
2119
+ }]
2120
+ }] });
2121
+
2122
+ class DatePickerComponent {
2123
+ hostEl = viewChild('hostEl', ...(ngDevMode ? [{ debugName: "hostEl" }] : /* istanbul ignore next */ []));
2124
+ triggerEl = viewChild('triggerEl', ...(ngDevMode ? [{ debugName: "triggerEl" }] : /* istanbul ignore next */ []));
2125
+ // Inputs
2126
+ label = input(undefined, ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
2127
+ placeholder = input('Select date…', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
2128
+ size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
2129
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
2130
+ required = input(false, ...(ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []));
2131
+ hint = input(undefined, ...(ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []));
2132
+ errorMsg = input(undefined, { ...(ngDevMode ? { debugName: "errorMsg" } : /* istanbul ignore next */ {}), alias: 'error' });
2133
+ minDate = input(null, ...(ngDevMode ? [{ debugName: "minDate" }] : /* istanbul ignore next */ []));
2134
+ maxDate = input(null, ...(ngDevMode ? [{ debugName: "maxDate" }] : /* istanbul ignore next */ []));
2135
+ format = input('medium', ...(ngDevMode ? [{ debugName: "format" }] : /* istanbul ignore next */ []));
2136
+ weekStartsOn = input(1, ...(ngDevMode ? [{ debugName: "weekStartsOn" }] : /* istanbul ignore next */ []));
2137
+ locale = input(undefined, ...(ngDevMode ? [{ debugName: "locale" }] : /* istanbul ignore next */ []));
2138
+ id = input(`ea-date-picker-${Math.random().toString(36).slice(2, 9)}`, ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
2139
+ // Two-way value binding (Date at local midnight, or null)
2140
+ value = model(null, ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
2141
+ // Outputs
2142
+ changed = output();
2143
+ // Internal state
2144
+ isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
2145
+ viewYear = signal(new Date().getFullYear(), ...(ngDevMode ? [{ debugName: "viewYear" }] : /* istanbul ignore next */ []));
2146
+ viewMonth = signal(new Date().getMonth(), ...(ngDevMode ? [{ debugName: "viewMonth" }] : /* istanbul ignore next */ []));
2147
+ focusedDate = signal(null, ...(ngDevMode ? [{ debugName: "focusedDate" }] : /* istanbul ignore next */ []));
2148
+ _formDisabled = signal(false, ...(ngDevMode ? [{ debugName: "_formDisabled" }] : /* istanbul ignore next */ []));
2149
+ // ControlValueAccessor callbacks
2150
+ onChange = () => { };
2151
+ onTouched = () => { };
2152
+ // Computed
2153
+ isDisabled = computed(() => this.disabled() || this._formDisabled(), ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
2154
+ resolvedStatus = computed(() => (this.errorMsg() ? 'error' : 'default'), ...(ngDevMode ? [{ debugName: "resolvedStatus" }] : /* istanbul ignore next */ []));
2155
+ showError = computed(() => !!this.errorMsg(), ...(ngDevMode ? [{ debugName: "showError" }] : /* istanbul ignore next */ []));
2156
+ showHint = computed(() => !!this.hint() && !this.showError(), ...(ngDevMode ? [{ debugName: "showHint" }] : /* istanbul ignore next */ []));
2157
+ triggerClasses = computed(() => ({
2158
+ [`ea-date-picker__trigger--${this.size()}`]: true,
2159
+ [`ea-date-picker__trigger--${this.resolvedStatus()}`]: true,
2160
+ 'ea-date-picker__trigger--open': this.isOpen(),
2161
+ 'ea-date-picker__trigger--disabled': this.isDisabled(),
2162
+ }), ...(ngDevMode ? [{ debugName: "triggerClasses" }] : /* istanbul ignore next */ []));
2163
+ displayValue = computed(() => {
2164
+ const val = this.value();
2165
+ if (!val)
2166
+ return '';
2167
+ return new Intl.DateTimeFormat(this.locale(), this.formatOptions()).format(val);
2168
+ }, ...(ngDevMode ? [{ debugName: "displayValue" }] : /* istanbul ignore next */ []));
2169
+ monthYearLabel = computed(() => {
2170
+ const date = new Date(this.viewYear(), this.viewMonth(), 1);
2171
+ return new Intl.DateTimeFormat(this.locale(), {
2172
+ month: 'long',
2173
+ year: 'numeric',
2174
+ }).format(date);
2175
+ }, ...(ngDevMode ? [{ debugName: "monthYearLabel" }] : /* istanbul ignore next */ []));
2176
+ weekdayLabels = computed(() => {
2177
+ const start = this.weekStartsOn();
2178
+ const formatter = new Intl.DateTimeFormat(this.locale(), { weekday: 'short' });
2179
+ const labels = [];
2180
+ // Use a known Sunday (2024-01-07) as anchor so we can offset for locale
2181
+ const base = new Date(2024, 0, 7);
2182
+ for (let i = 0; i < 7; i++) {
2183
+ const d = new Date(base);
2184
+ d.setDate(base.getDate() + ((i + start) % 7));
2185
+ labels.push(formatter.format(d));
2186
+ }
2187
+ return labels;
2188
+ }, ...(ngDevMode ? [{ debugName: "weekdayLabels" }] : /* istanbul ignore next */ []));
2189
+ weeks = computed(() => {
2190
+ const year = this.viewYear();
2191
+ const month = this.viewMonth();
2192
+ const start = this.weekStartsOn();
2193
+ const firstOfMonth = new Date(year, month, 1);
2194
+ const dayOfWeek = firstOfMonth.getDay();
2195
+ // Offset so grid starts on weekStartsOn (0=Sun, 1=Mon)
2196
+ const leading = (dayOfWeek - start + 7) % 7;
2197
+ const gridStart = new Date(year, month, 1 - leading);
2198
+ const today = this.startOfDay(new Date());
2199
+ const selected = this.value();
2200
+ const focused = this.focusedDate();
2201
+ const min = this.minDate() ? this.startOfDay(this.minDate()) : null;
2202
+ const max = this.maxDate() ? this.startOfDay(this.maxDate()) : null;
2203
+ const rows = [];
2204
+ for (let row = 0; row < 6; row++) {
2205
+ const cells = [];
2206
+ for (let col = 0; col < 7; col++) {
2207
+ const cellDate = new Date(gridStart);
2208
+ cellDate.setDate(gridStart.getDate() + row * 7 + col);
2209
+ cells.push({
2210
+ date: cellDate,
2211
+ day: cellDate.getDate(),
2212
+ isCurrentMonth: cellDate.getMonth() === month,
2213
+ isToday: this.isSameDay(cellDate, today),
2214
+ isSelected: selected ? this.isSameDay(cellDate, selected) : false,
2215
+ isDisabled: (min ? cellDate < min : false) || (max ? cellDate > max : false),
2216
+ isFocused: focused ? this.isSameDay(cellDate, focused) : false,
2217
+ });
2218
+ }
2219
+ rows.push(cells);
2220
+ }
2221
+ return rows;
2222
+ }, ...(ngDevMode ? [{ debugName: "weeks" }] : /* istanbul ignore next */ []));
2223
+ // ControlValueAccessor
2224
+ writeValue(val) {
2225
+ const date = this.toDate(val);
2226
+ this.value.set(date);
2227
+ if (date) {
2228
+ this.viewYear.set(date.getFullYear());
2229
+ this.viewMonth.set(date.getMonth());
2230
+ }
2231
+ }
2232
+ registerOnChange(fn) {
2233
+ this.onChange = fn;
2234
+ }
2235
+ registerOnTouched(fn) {
2236
+ this.onTouched = fn;
2237
+ }
2238
+ setDisabledState(isDisabled) {
2239
+ this._formDisabled.set(isDisabled);
2240
+ }
2241
+ // Handlers
2242
+ toggle() {
2243
+ if (this.isDisabled())
2244
+ return;
2245
+ if (this.isOpen()) {
2246
+ this.close();
2247
+ }
2248
+ else {
2249
+ this.open();
2250
+ }
2251
+ }
2252
+ open() {
2253
+ if (this.isDisabled())
2254
+ return;
2255
+ const current = this.value() ?? new Date();
2256
+ this.viewYear.set(current.getFullYear());
2257
+ this.viewMonth.set(current.getMonth());
2258
+ this.focusedDate.set(this.startOfDay(current));
2259
+ this.isOpen.set(true);
2260
+ }
2261
+ close() {
2262
+ this.isOpen.set(false);
2263
+ this.focusedDate.set(null);
2264
+ }
2265
+ selectDay(day) {
2266
+ if (day.isDisabled)
2267
+ return;
2268
+ const date = this.startOfDay(day.date);
2269
+ this.value.set(date);
2270
+ this.onChange(date);
2271
+ this.onTouched();
2272
+ this.changed.emit(date);
2273
+ this.close();
2274
+ this.triggerEl()?.nativeElement.focus();
2275
+ }
2276
+ clear(event) {
2277
+ event.stopPropagation();
2278
+ if (this.isDisabled())
2279
+ return;
2280
+ this.value.set(null);
2281
+ this.onChange(null);
2282
+ this.onTouched();
2283
+ this.changed.emit(null);
2284
+ }
2285
+ goToPrevMonth() {
2286
+ const month = this.viewMonth();
2287
+ if (month === 0) {
2288
+ this.viewMonth.set(11);
2289
+ this.viewYear.update(y => y - 1);
2290
+ }
2291
+ else {
2292
+ this.viewMonth.set(month - 1);
2293
+ }
2294
+ }
2295
+ goToNextMonth() {
2296
+ const month = this.viewMonth();
2297
+ if (month === 11) {
2298
+ this.viewMonth.set(0);
2299
+ this.viewYear.update(y => y + 1);
2300
+ }
2301
+ else {
2302
+ this.viewMonth.set(month + 1);
2303
+ }
2304
+ }
2305
+ goToPrevYear() {
2306
+ this.viewYear.update(y => y - 1);
2307
+ }
2308
+ goToNextYear() {
2309
+ this.viewYear.update(y => y + 1);
2310
+ }
2311
+ goToToday() {
2312
+ const today = this.startOfDay(new Date());
2313
+ this.viewYear.set(today.getFullYear());
2314
+ this.viewMonth.set(today.getMonth());
2315
+ this.focusedDate.set(today);
2316
+ }
2317
+ handleTriggerKeydown(event) {
2318
+ if (this.isDisabled())
2319
+ return;
2320
+ switch (event.key) {
2321
+ case 'Enter':
2322
+ case ' ':
2323
+ case 'ArrowDown':
2324
+ event.preventDefault();
2325
+ this.open();
2326
+ break;
2327
+ }
2328
+ }
2329
+ handleGridKeydown(event) {
2330
+ if (!this.isOpen())
2331
+ return;
2332
+ const focused = this.focusedDate() ?? this.startOfDay(new Date());
2333
+ let next;
2334
+ switch (event.key) {
2335
+ case 'ArrowLeft':
2336
+ next = this.addDays(focused, -1);
2337
+ break;
2338
+ case 'ArrowRight':
2339
+ next = this.addDays(focused, 1);
2340
+ break;
2341
+ case 'ArrowUp':
2342
+ next = this.addDays(focused, -7);
2343
+ break;
2344
+ case 'ArrowDown':
2345
+ next = this.addDays(focused, 7);
2346
+ break;
2347
+ case 'PageUp':
2348
+ next = this.addMonths(focused, event.shiftKey ? -12 : -1);
2349
+ break;
2350
+ case 'PageDown':
2351
+ next = this.addMonths(focused, event.shiftKey ? 12 : 1);
2352
+ break;
2353
+ case 'Home':
2354
+ next = this.addDays(focused, -focused.getDay() + this.weekStartsOn());
2355
+ if (next > focused)
2356
+ next = this.addDays(next, -7);
2357
+ break;
2358
+ case 'End': {
2359
+ const weekStart = this.weekStartsOn();
2360
+ const offset = (focused.getDay() - weekStart + 7) % 7;
2361
+ next = this.addDays(focused, 6 - offset);
2362
+ break;
2363
+ }
2364
+ case 'Enter':
2365
+ case ' ': {
2366
+ event.preventDefault();
2367
+ const current = this.focusedDate();
2368
+ if (!current)
2369
+ return;
2370
+ const min = this.minDate();
2371
+ const max = this.maxDate();
2372
+ if (min && current < this.startOfDay(min))
2373
+ return;
2374
+ if (max && current > this.startOfDay(max))
2375
+ return;
2376
+ this.selectDay({
2377
+ date: current,
2378
+ day: current.getDate(),
2379
+ isCurrentMonth: current.getMonth() === this.viewMonth(),
2380
+ isToday: false,
2381
+ isSelected: false,
2382
+ isDisabled: false,
2383
+ isFocused: false,
2384
+ });
2385
+ return;
2386
+ }
2387
+ case 'Escape':
2388
+ event.preventDefault();
2389
+ this.close();
2390
+ this.triggerEl()?.nativeElement.focus();
2391
+ return;
2392
+ default:
2393
+ return;
2394
+ }
2395
+ if (next) {
2396
+ event.preventDefault();
2397
+ this.focusedDate.set(next);
2398
+ this.viewYear.set(next.getFullYear());
2399
+ this.viewMonth.set(next.getMonth());
2400
+ }
2401
+ }
2402
+ onDocumentClick(event) {
2403
+ if (!this.isOpen())
2404
+ return;
2405
+ const host = this.hostEl()?.nativeElement;
2406
+ if (host && !host.contains(event.target)) {
2407
+ this.close();
2408
+ this.onTouched();
2409
+ }
2410
+ }
2411
+ // Internal helpers
2412
+ formatOptions() {
2413
+ switch (this.format()) {
2414
+ case 'short':
2415
+ return { dateStyle: 'short' };
2416
+ case 'long':
2417
+ return { dateStyle: 'long' };
2418
+ case 'medium':
2419
+ default:
2420
+ return { dateStyle: 'medium' };
2421
+ }
2422
+ }
2423
+ toDate(val) {
2424
+ if (!val)
2425
+ return null;
2426
+ if (val instanceof Date)
2427
+ return isNaN(val.getTime()) ? null : this.startOfDay(val);
2428
+ const parsed = new Date(val);
2429
+ return isNaN(parsed.getTime()) ? null : this.startOfDay(parsed);
2430
+ }
2431
+ startOfDay(date) {
2432
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate());
2433
+ }
2434
+ isSameDay(a, b) {
2435
+ return (a.getFullYear() === b.getFullYear() &&
2436
+ a.getMonth() === b.getMonth() &&
2437
+ a.getDate() === b.getDate());
2438
+ }
2439
+ addDays(date, days) {
2440
+ const result = new Date(date);
2441
+ result.setDate(date.getDate() + days);
2442
+ return result;
2443
+ }
2444
+ addMonths(date, months) {
2445
+ const result = new Date(date);
2446
+ result.setMonth(date.getMonth() + months);
2447
+ return result;
2448
+ }
2449
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2450
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: DatePickerComponent, isStandalone: true, selector: "ea-date-picker", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", 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 }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, errorMsg: { classPropertyName: "errorMsg", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, weekStartsOn: { classPropertyName: "weekStartsOn", publicName: "weekStartsOn", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", changed: "changed" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, providers: [
2451
+ {
2452
+ provide: NG_VALUE_ACCESSOR,
2453
+ useExisting: forwardRef(() => DatePickerComponent),
2454
+ multi: true,
2455
+ },
2456
+ ], viewQueries: [{ propertyName: "hostEl", first: true, predicate: ["hostEl"], descendants: true, isSignal: true }, { propertyName: "triggerEl", first: true, predicate: ["triggerEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n #hostEl\n class=\"ea-date-picker-field\">\n @if (label()) {\n <label\n class=\"ea-date-picker-field__label\"\n [for]=\"id()\"\n [class.ea-date-picker-field__label--required]=\"required()\">\n {{ label() }}\n </label>\n }\n\n <div class=\"ea-date-picker\">\n <button\n #triggerEl\n type=\"button\"\n class=\"ea-date-picker__trigger\"\n [ngClass]=\"triggerClasses()\"\n [id]=\"id()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.aria-invalid]=\"resolvedStatus() === 'error' || null\"\n [attr.aria-describedby]=\"\n showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n \"\n (click)=\"toggle()\"\n (keydown)=\"handleTriggerKeydown($event)\">\n <ea-icon-calendar\n class=\"ea-date-picker__trigger-icon\"\n aria-hidden=\"true\" />\n <span\n class=\"ea-date-picker__trigger-value\"\n [class.ea-date-picker__trigger-value--placeholder]=\"!displayValue()\">\n {{ displayValue() || placeholder() }}\n </span>\n @if (value() && !isDisabled()) {\n <button\n type=\"button\"\n class=\"ea-date-picker__clear\"\n aria-label=\"Clear date\"\n tabindex=\"-1\"\n (click)=\"clear($event)\">\n <span aria-hidden=\"true\">\u00D7</span>\n </button>\n }\n </button>\n\n @if (isOpen()) {\n <div\n class=\"ea-date-picker__popover\"\n role=\"dialog\"\n aria-modal=\"false\"\n [attr.aria-labelledby]=\"id() + '-label'\"\n (keydown)=\"handleGridKeydown($event)\">\n <div class=\"ea-date-picker__header\">\n <button\n type=\"button\"\n class=\"ea-date-picker__nav-btn\"\n aria-label=\"Previous year\"\n (click)=\"goToPrevYear()\">\n <ea-icon-chevron-left aria-hidden=\"true\" />\n <ea-icon-chevron-left aria-hidden=\"true\" />\n </button>\n <button\n type=\"button\"\n class=\"ea-date-picker__nav-btn\"\n aria-label=\"Previous month\"\n (click)=\"goToPrevMonth()\">\n <ea-icon-chevron-left aria-hidden=\"true\" />\n </button>\n <span\n class=\"ea-date-picker__month-label\"\n [id]=\"id() + '-label'\"\n aria-live=\"polite\">\n {{ monthYearLabel() }}\n </span>\n <button\n type=\"button\"\n class=\"ea-date-picker__nav-btn\"\n aria-label=\"Next month\"\n (click)=\"goToNextMonth()\">\n <ea-icon-chevron-right aria-hidden=\"true\" />\n </button>\n <button\n type=\"button\"\n class=\"ea-date-picker__nav-btn\"\n aria-label=\"Next year\"\n (click)=\"goToNextYear()\">\n <ea-icon-chevron-right aria-hidden=\"true\" />\n <ea-icon-chevron-right aria-hidden=\"true\" />\n </button>\n </div>\n\n <div\n class=\"ea-date-picker__grid\"\n role=\"grid\">\n <div\n class=\"ea-date-picker__weekday-row\"\n role=\"row\">\n @for (label of weekdayLabels(); track label) {\n <div\n class=\"ea-date-picker__weekday\"\n role=\"columnheader\">\n {{ label }}\n </div>\n }\n </div>\n @for (week of weeks(); track $index) {\n <div\n class=\"ea-date-picker__week\"\n role=\"row\">\n @for (day of week; track day.date.getTime()) {\n <button\n type=\"button\"\n class=\"ea-date-picker__day\"\n role=\"gridcell\"\n [class.ea-date-picker__day--outside]=\"!day.isCurrentMonth\"\n [class.ea-date-picker__day--today]=\"day.isToday\"\n [class.ea-date-picker__day--selected]=\"day.isSelected\"\n [class.ea-date-picker__day--focused]=\"day.isFocused\"\n [class.ea-date-picker__day--disabled]=\"day.isDisabled\"\n [disabled]=\"day.isDisabled\"\n [attr.aria-selected]=\"day.isSelected\"\n [attr.aria-current]=\"day.isToday ? 'date' : null\"\n [attr.tabindex]=\"day.isFocused ? 0 : -1\"\n (click)=\"selectDay(day)\">\n {{ day.day }}\n </button>\n }\n </div>\n }\n </div>\n\n <div class=\"ea-date-picker__footer\">\n <button\n type=\"button\"\n class=\"ea-date-picker__today-btn\"\n (click)=\"goToToday()\">\n Today\n </button>\n </div>\n </div>\n }\n </div>\n\n @if (showError()) {\n <p\n class=\"ea-date-picker-field__message ea-date-picker-field__message--error\"\n [id]=\"id() + '-error'\"\n role=\"alert\">\n <ea-icon-alert-circle class=\"ea-date-picker-field__message-icon\" />\n {{ errorMsg() }}\n </p>\n }\n\n @if (showHint()) {\n <p\n class=\"ea-date-picker-field__message ea-date-picker-field__message--hint\"\n [id]=\"id() + '-hint'\">\n {{ hint() }}\n </p>\n }\n</div>\n", styles: [".ea-date-picker-field{display:flex;flex-direction:column;gap:var(--space-1-5)}.ea-date-picker-field__label{font-size:var(--text-label-md-size);font-weight:var(--text-label-md-weight);line-height:var(--text-label-md-lh);color:var(--color-text-primary)}.ea-date-picker-field__label--required:after{content:\" *\";color:var(--color-error-default)}.ea-date-picker-field__message{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-helper-size);font-weight:var(--text-helper-weight);line-height:var(--text-helper-lh)}.ea-date-picker-field__message--hint{color:var(--color-text-secondary)}.ea-date-picker-field__message--error{color:var(--color-error-default)}.ea-date-picker-field__message-icon{flex-shrink:0;width:.875em;height:.875em}.ea-date-picker{position:relative}.ea-date-picker__trigger{display:flex;align-items:center;gap:var(--space-2);width:100%;background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);font-family:var(--font-family-sans);color:var(--color-text-primary);cursor:pointer;transition:var(--transition-colors),var(--transition-shadow);text-align:left}.ea-date-picker__trigger:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-date-picker__trigger--sm{padding:var(--space-1-5) var(--space-2);font-size:var(--font-size-sm);min-height:2rem}.ea-date-picker__trigger--md{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);min-height:2.5rem}.ea-date-picker__trigger--lg{padding:var(--space-2-5) var(--space-4);font-size:var(--font-size-md);min-height:3rem}.ea-date-picker__trigger--open{border-color:var(--color-border-focus);box-shadow:var(--shadow-focus-ring)}.ea-date-picker__trigger--error{border-color:var(--color-error-default)}.ea-date-picker__trigger--error.ea-date-picker__trigger--open{box-shadow:var(--shadow-focus-ring-error)}.ea-date-picker__trigger--disabled{background-color:var(--color-bg-muted);opacity:.6;cursor:not-allowed}.ea-date-picker__trigger-icon{flex-shrink:0;width:1em;height:1em;color:var(--color-text-secondary)}.ea-date-picker__trigger-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ea-date-picker__trigger-value--placeholder{color:var(--color-text-tertiary)}.ea-date-picker__clear{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:1.25rem;height:1.25rem;padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);font-size:1rem;line-height:1;cursor:pointer;transition:var(--transition-colors)}.ea-date-picker__clear:hover{background-color:var(--color-bg-muted);color:var(--color-text-primary)}.ea-date-picker__popover{position:absolute;top:calc(100% + var(--space-1));left:0;z-index:var(--z-index-dropdown);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);min-width:17.5rem;background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.ea-date-picker__header{display:flex;align-items:center;gap:var(--space-1)}.ea-date-picker__nav-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.75rem;height:1.75rem;padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-date-picker__nav-btn:hover{background-color:var(--color-bg-muted);color:var(--color-text-primary)}.ea-date-picker__nav-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-date-picker__nav-btn ea-icon-chevron-left,.ea-date-picker__nav-btn ea-icon-chevron-right{width:.875em;height:.875em}.ea-date-picker__nav-btn ea-icon-chevron-left+ea-icon-chevron-left,.ea-date-picker__nav-btn ea-icon-chevron-right+ea-icon-chevron-right{margin-left:-.375em}.ea-date-picker__month-label{flex:1;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-align:center;color:var(--color-text-primary)}.ea-date-picker__grid{display:flex;flex-direction:column;gap:var(--space-1)}.ea-date-picker__weekday-row,.ea-date-picker__week{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-1)}.ea-date-picker__weekday{display:flex;align-items:center;justify-content:center;height:1.5rem;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;color:var(--color-text-tertiary)}.ea-date-picker__day{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:var(--radius-sm);background:none;font-family:var(--font-family-sans);font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer;transition:var(--transition-colors)}.ea-date-picker__day:hover:not(:disabled){background-color:var(--color-bg-muted)}.ea-date-picker__day:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-date-picker__day--outside{color:var(--color-text-tertiary)}.ea-date-picker__day--today{font-weight:var(--font-weight-semibold);color:var(--color-brand-default)}.ea-date-picker__day--focused:not(.ea-date-picker__day--selected){background-color:var(--color-bg-muted)}.ea-date-picker__day--selected{background-color:var(--color-brand-default);color:var(--color-text-inverse);font-weight:var(--font-weight-medium)}.ea-date-picker__day--selected:hover{background-color:var(--color-brand-hover)}.ea-date-picker__day--disabled{color:var(--color-text-disabled);cursor:not-allowed}.ea-date-picker__day--disabled:hover{background-color:transparent}.ea-date-picker__footer{display:flex;justify-content:flex-end;padding-top:var(--space-2);border-top:var(--border-width-thin) solid var(--color-border-default)}.ea-date-picker__today-btn{padding:var(--space-1) var(--space-2);border:none;border-radius:var(--radius-sm);background:none;font-family:var(--font-family-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-brand-default);cursor:pointer;transition:var(--transition-colors)}.ea-date-picker__today-btn:hover{background-color:var(--color-brand-subtle)}.ea-date-picker__today-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: AlertCircleIconComponent, selector: "ea-icon-alert-circle" }, { kind: "component", type: CalendarIconComponent, selector: "ea-icon-calendar" }, { kind: "component", type: ChevronLeftIconComponent, selector: "ea-icon-chevron-left" }, { kind: "component", type: ChevronRightIconComponent, selector: "ea-icon-chevron-right" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2457
+ }
2458
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DatePickerComponent, decorators: [{
2459
+ type: Component,
2460
+ args: [{ selector: 'ea-date-picker', imports: [
2461
+ NgClass,
2462
+ AlertCircleIconComponent,
2463
+ CalendarIconComponent,
2464
+ ChevronLeftIconComponent,
2465
+ ChevronRightIconComponent,
2466
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
2467
+ {
2468
+ provide: NG_VALUE_ACCESSOR,
2469
+ useExisting: forwardRef(() => DatePickerComponent),
2470
+ multi: true,
2471
+ },
2472
+ ], template: "<div\n #hostEl\n class=\"ea-date-picker-field\">\n @if (label()) {\n <label\n class=\"ea-date-picker-field__label\"\n [for]=\"id()\"\n [class.ea-date-picker-field__label--required]=\"required()\">\n {{ label() }}\n </label>\n }\n\n <div class=\"ea-date-picker\">\n <button\n #triggerEl\n type=\"button\"\n class=\"ea-date-picker__trigger\"\n [ngClass]=\"triggerClasses()\"\n [id]=\"id()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.aria-invalid]=\"resolvedStatus() === 'error' || null\"\n [attr.aria-describedby]=\"\n showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n \"\n (click)=\"toggle()\"\n (keydown)=\"handleTriggerKeydown($event)\">\n <ea-icon-calendar\n class=\"ea-date-picker__trigger-icon\"\n aria-hidden=\"true\" />\n <span\n class=\"ea-date-picker__trigger-value\"\n [class.ea-date-picker__trigger-value--placeholder]=\"!displayValue()\">\n {{ displayValue() || placeholder() }}\n </span>\n @if (value() && !isDisabled()) {\n <button\n type=\"button\"\n class=\"ea-date-picker__clear\"\n aria-label=\"Clear date\"\n tabindex=\"-1\"\n (click)=\"clear($event)\">\n <span aria-hidden=\"true\">\u00D7</span>\n </button>\n }\n </button>\n\n @if (isOpen()) {\n <div\n class=\"ea-date-picker__popover\"\n role=\"dialog\"\n aria-modal=\"false\"\n [attr.aria-labelledby]=\"id() + '-label'\"\n (keydown)=\"handleGridKeydown($event)\">\n <div class=\"ea-date-picker__header\">\n <button\n type=\"button\"\n class=\"ea-date-picker__nav-btn\"\n aria-label=\"Previous year\"\n (click)=\"goToPrevYear()\">\n <ea-icon-chevron-left aria-hidden=\"true\" />\n <ea-icon-chevron-left aria-hidden=\"true\" />\n </button>\n <button\n type=\"button\"\n class=\"ea-date-picker__nav-btn\"\n aria-label=\"Previous month\"\n (click)=\"goToPrevMonth()\">\n <ea-icon-chevron-left aria-hidden=\"true\" />\n </button>\n <span\n class=\"ea-date-picker__month-label\"\n [id]=\"id() + '-label'\"\n aria-live=\"polite\">\n {{ monthYearLabel() }}\n </span>\n <button\n type=\"button\"\n class=\"ea-date-picker__nav-btn\"\n aria-label=\"Next month\"\n (click)=\"goToNextMonth()\">\n <ea-icon-chevron-right aria-hidden=\"true\" />\n </button>\n <button\n type=\"button\"\n class=\"ea-date-picker__nav-btn\"\n aria-label=\"Next year\"\n (click)=\"goToNextYear()\">\n <ea-icon-chevron-right aria-hidden=\"true\" />\n <ea-icon-chevron-right aria-hidden=\"true\" />\n </button>\n </div>\n\n <div\n class=\"ea-date-picker__grid\"\n role=\"grid\">\n <div\n class=\"ea-date-picker__weekday-row\"\n role=\"row\">\n @for (label of weekdayLabels(); track label) {\n <div\n class=\"ea-date-picker__weekday\"\n role=\"columnheader\">\n {{ label }}\n </div>\n }\n </div>\n @for (week of weeks(); track $index) {\n <div\n class=\"ea-date-picker__week\"\n role=\"row\">\n @for (day of week; track day.date.getTime()) {\n <button\n type=\"button\"\n class=\"ea-date-picker__day\"\n role=\"gridcell\"\n [class.ea-date-picker__day--outside]=\"!day.isCurrentMonth\"\n [class.ea-date-picker__day--today]=\"day.isToday\"\n [class.ea-date-picker__day--selected]=\"day.isSelected\"\n [class.ea-date-picker__day--focused]=\"day.isFocused\"\n [class.ea-date-picker__day--disabled]=\"day.isDisabled\"\n [disabled]=\"day.isDisabled\"\n [attr.aria-selected]=\"day.isSelected\"\n [attr.aria-current]=\"day.isToday ? 'date' : null\"\n [attr.tabindex]=\"day.isFocused ? 0 : -1\"\n (click)=\"selectDay(day)\">\n {{ day.day }}\n </button>\n }\n </div>\n }\n </div>\n\n <div class=\"ea-date-picker__footer\">\n <button\n type=\"button\"\n class=\"ea-date-picker__today-btn\"\n (click)=\"goToToday()\">\n Today\n </button>\n </div>\n </div>\n }\n </div>\n\n @if (showError()) {\n <p\n class=\"ea-date-picker-field__message ea-date-picker-field__message--error\"\n [id]=\"id() + '-error'\"\n role=\"alert\">\n <ea-icon-alert-circle class=\"ea-date-picker-field__message-icon\" />\n {{ errorMsg() }}\n </p>\n }\n\n @if (showHint()) {\n <p\n class=\"ea-date-picker-field__message ea-date-picker-field__message--hint\"\n [id]=\"id() + '-hint'\">\n {{ hint() }}\n </p>\n }\n</div>\n", styles: [".ea-date-picker-field{display:flex;flex-direction:column;gap:var(--space-1-5)}.ea-date-picker-field__label{font-size:var(--text-label-md-size);font-weight:var(--text-label-md-weight);line-height:var(--text-label-md-lh);color:var(--color-text-primary)}.ea-date-picker-field__label--required:after{content:\" *\";color:var(--color-error-default)}.ea-date-picker-field__message{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-helper-size);font-weight:var(--text-helper-weight);line-height:var(--text-helper-lh)}.ea-date-picker-field__message--hint{color:var(--color-text-secondary)}.ea-date-picker-field__message--error{color:var(--color-error-default)}.ea-date-picker-field__message-icon{flex-shrink:0;width:.875em;height:.875em}.ea-date-picker{position:relative}.ea-date-picker__trigger{display:flex;align-items:center;gap:var(--space-2);width:100%;background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);font-family:var(--font-family-sans);color:var(--color-text-primary);cursor:pointer;transition:var(--transition-colors),var(--transition-shadow);text-align:left}.ea-date-picker__trigger:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-date-picker__trigger--sm{padding:var(--space-1-5) var(--space-2);font-size:var(--font-size-sm);min-height:2rem}.ea-date-picker__trigger--md{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);min-height:2.5rem}.ea-date-picker__trigger--lg{padding:var(--space-2-5) var(--space-4);font-size:var(--font-size-md);min-height:3rem}.ea-date-picker__trigger--open{border-color:var(--color-border-focus);box-shadow:var(--shadow-focus-ring)}.ea-date-picker__trigger--error{border-color:var(--color-error-default)}.ea-date-picker__trigger--error.ea-date-picker__trigger--open{box-shadow:var(--shadow-focus-ring-error)}.ea-date-picker__trigger--disabled{background-color:var(--color-bg-muted);opacity:.6;cursor:not-allowed}.ea-date-picker__trigger-icon{flex-shrink:0;width:1em;height:1em;color:var(--color-text-secondary)}.ea-date-picker__trigger-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ea-date-picker__trigger-value--placeholder{color:var(--color-text-tertiary)}.ea-date-picker__clear{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:1.25rem;height:1.25rem;padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);font-size:1rem;line-height:1;cursor:pointer;transition:var(--transition-colors)}.ea-date-picker__clear:hover{background-color:var(--color-bg-muted);color:var(--color-text-primary)}.ea-date-picker__popover{position:absolute;top:calc(100% + var(--space-1));left:0;z-index:var(--z-index-dropdown);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);min-width:17.5rem;background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.ea-date-picker__header{display:flex;align-items:center;gap:var(--space-1)}.ea-date-picker__nav-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.75rem;height:1.75rem;padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-date-picker__nav-btn:hover{background-color:var(--color-bg-muted);color:var(--color-text-primary)}.ea-date-picker__nav-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-date-picker__nav-btn ea-icon-chevron-left,.ea-date-picker__nav-btn ea-icon-chevron-right{width:.875em;height:.875em}.ea-date-picker__nav-btn ea-icon-chevron-left+ea-icon-chevron-left,.ea-date-picker__nav-btn ea-icon-chevron-right+ea-icon-chevron-right{margin-left:-.375em}.ea-date-picker__month-label{flex:1;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-align:center;color:var(--color-text-primary)}.ea-date-picker__grid{display:flex;flex-direction:column;gap:var(--space-1)}.ea-date-picker__weekday-row,.ea-date-picker__week{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-1)}.ea-date-picker__weekday{display:flex;align-items:center;justify-content:center;height:1.5rem;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;color:var(--color-text-tertiary)}.ea-date-picker__day{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:var(--radius-sm);background:none;font-family:var(--font-family-sans);font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer;transition:var(--transition-colors)}.ea-date-picker__day:hover:not(:disabled){background-color:var(--color-bg-muted)}.ea-date-picker__day:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-date-picker__day--outside{color:var(--color-text-tertiary)}.ea-date-picker__day--today{font-weight:var(--font-weight-semibold);color:var(--color-brand-default)}.ea-date-picker__day--focused:not(.ea-date-picker__day--selected){background-color:var(--color-bg-muted)}.ea-date-picker__day--selected{background-color:var(--color-brand-default);color:var(--color-text-inverse);font-weight:var(--font-weight-medium)}.ea-date-picker__day--selected:hover{background-color:var(--color-brand-hover)}.ea-date-picker__day--disabled{color:var(--color-text-disabled);cursor:not-allowed}.ea-date-picker__day--disabled:hover{background-color:transparent}.ea-date-picker__footer{display:flex;justify-content:flex-end;padding-top:var(--space-2);border-top:var(--border-width-thin) solid var(--color-border-default)}.ea-date-picker__today-btn{padding:var(--space-1) var(--space-2);border:none;border-radius:var(--radius-sm);background:none;font-family:var(--font-family-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-brand-default);cursor:pointer;transition:var(--transition-colors)}.ea-date-picker__today-btn:hover{background-color:var(--color-brand-subtle)}.ea-date-picker__today-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}\n"] }]
2473
+ }], propDecorators: { hostEl: [{ type: i0.ViewChild, args: ['hostEl', { isSignal: true }] }], triggerEl: [{ type: i0.ViewChild, args: ['triggerEl', { isSignal: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }], errorMsg: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], minDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "minDate", required: false }] }], maxDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDate", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], weekStartsOn: [{ type: i0.Input, args: [{ isSignal: true, alias: "weekStartsOn", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], changed: [{ type: i0.Output, args: ["changed"] }], onDocumentClick: [{
2474
+ type: HostListener,
2475
+ args: ['document:click', ['$event']]
2476
+ }] } });
2477
+
1737
2478
  class DialogComponent {
1738
2479
  dialogEl = viewChild('dialogEl', ...(ngDevMode ? [{ debugName: "dialogEl" }] : /* istanbul ignore next */ []));
1739
2480
  // Inputs
@@ -1788,28 +2529,77 @@ class DialogComponent {
1788
2529
  }
1789
2530
  this.handleClose();
1790
2531
  }
1791
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1792
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: DialogComponent, isStandalone: true, selector: "ea-dialog", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdrop: { classPropertyName: "closeOnBackdrop", publicName: "closeOnBackdrop", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, showClose: { classPropertyName: "showClose", publicName: "showClose", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", opened: "opened", closed: "closed" }, viewQueries: [{ propertyName: "dialogEl", first: true, predicate: ["dialogEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<dialog\n #dialogEl\n class=\"ea-dialog\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"handleBackdropClick($event)\"\n (cancel)=\"handleCancel($event)\">\n <div\n class=\"ea-dialog__panel\"\n [ngClass]=\"panelClasses()\">\n @if (showClose()) {\n <button\n type=\"button\"\n class=\"ea-dialog__close\"\n aria-label=\"Close dialog\"\n (click)=\"handleClose()\">\n <ea-icon-x />\n </button>\n }\n\n <div class=\"ea-dialog__header\">\n <ng-content select=\"[slot=header]\" />\n </div>\n\n <div class=\"ea-dialog__body\">\n <ng-content />\n </div>\n\n <div class=\"ea-dialog__footer\">\n <ng-content select=\"[slot=footer]\" />\n </div>\n </div>\n</dialog>\n", styles: [".ea-dialog{border:none;background:transparent;padding:0;margin:auto;max-width:none;max-height:none;overflow:visible}.ea-dialog::backdrop{background-color:var(--color-bg-overlay)}.ea-dialog__panel{position:relative;display:flex;flex-direction:column;background-color:var(--color-bg-base);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-height:85vh;overflow:hidden}.ea-dialog__panel--sm{width:24rem}.ea-dialog__panel--md{width:32rem}.ea-dialog__panel--lg{width:42rem}.ea-dialog__panel--full{width:calc(100vw - 2rem);height:calc(100vh - 2rem);max-height:calc(100vh - 2rem)}.ea-dialog__close{position:absolute;top:var(--space-3);right:var(--space-3);display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors);z-index:1}.ea-dialog__close:hover{background-color:var(--color-bg-muted);color:var(--color-text-primary)}.ea-dialog__close:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-dialog__close svg{width:1rem;height:1rem}.ea-dialog__header{padding:var(--space-5) var(--space-6) var(--space-3);font-size:var(--text-h4-size);font-weight:var(--text-h4-weight);line-height:var(--text-h4-lh);color:var(--color-text-primary)}.ea-dialog__header:empty{display:none}.ea-dialog__body{flex:1;padding:var(--space-3) var(--space-6);overflow-y:auto;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-dialog__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-6) var(--space-5)}.ea-dialog__footer>*{display:flex;align-items:center;gap:var(--space-3)}.ea-dialog__footer:empty{display:none}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: XIconComponent, selector: "ea-icon-x" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1793
- }
1794
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DialogComponent, decorators: [{
1795
- type: Component,
1796
- args: [{ selector: 'ea-dialog', imports: [NgClass, XIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<dialog\n #dialogEl\n class=\"ea-dialog\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"handleBackdropClick($event)\"\n (cancel)=\"handleCancel($event)\">\n <div\n class=\"ea-dialog__panel\"\n [ngClass]=\"panelClasses()\">\n @if (showClose()) {\n <button\n type=\"button\"\n class=\"ea-dialog__close\"\n aria-label=\"Close dialog\"\n (click)=\"handleClose()\">\n <ea-icon-x />\n </button>\n }\n\n <div class=\"ea-dialog__header\">\n <ng-content select=\"[slot=header]\" />\n </div>\n\n <div class=\"ea-dialog__body\">\n <ng-content />\n </div>\n\n <div class=\"ea-dialog__footer\">\n <ng-content select=\"[slot=footer]\" />\n </div>\n </div>\n</dialog>\n", styles: [".ea-dialog{border:none;background:transparent;padding:0;margin:auto;max-width:none;max-height:none;overflow:visible}.ea-dialog::backdrop{background-color:var(--color-bg-overlay)}.ea-dialog__panel{position:relative;display:flex;flex-direction:column;background-color:var(--color-bg-base);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-height:85vh;overflow:hidden}.ea-dialog__panel--sm{width:24rem}.ea-dialog__panel--md{width:32rem}.ea-dialog__panel--lg{width:42rem}.ea-dialog__panel--full{width:calc(100vw - 2rem);height:calc(100vh - 2rem);max-height:calc(100vh - 2rem)}.ea-dialog__close{position:absolute;top:var(--space-3);right:var(--space-3);display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors);z-index:1}.ea-dialog__close:hover{background-color:var(--color-bg-muted);color:var(--color-text-primary)}.ea-dialog__close:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-dialog__close svg{width:1rem;height:1rem}.ea-dialog__header{padding:var(--space-5) var(--space-6) var(--space-3);font-size:var(--text-h4-size);font-weight:var(--text-h4-weight);line-height:var(--text-h4-lh);color:var(--color-text-primary)}.ea-dialog__header:empty{display:none}.ea-dialog__body{flex:1;padding:var(--space-3) var(--space-6);overflow-y:auto;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-dialog__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-6) var(--space-5)}.ea-dialog__footer>*{display:flex;align-items:center;gap:var(--space-3)}.ea-dialog__footer:empty{display:none}\n"] }]
1797
- }], ctorParameters: () => [], propDecorators: { dialogEl: [{ type: i0.ViewChild, args: ['dialogEl', { isSignal: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], closeOnBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnBackdrop", required: false }] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }], showClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "showClose", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], opened: [{ type: i0.Output, args: ["opened"] }], closed: [{ type: i0.Output, args: ["closed"] }] } });
1798
-
1799
- class DividerComponent {
1800
- orientation = input('horizontal', ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
1801
- label = input(undefined, ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
1802
- hostClasses = computed(() => ({
1803
- [`ea-divider--${this.orientation()}`]: true,
1804
- 'ea-divider--with-label': !!this.label(),
1805
- }), ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
1806
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1807
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: DividerComponent, isStandalone: true, selector: "ea-divider", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"ea-divider\"\n [ngClass]=\"hostClasses()\"\n [attr.role]=\"'separator'\"\n [attr.aria-orientation]=\"orientation()\">\n @if (label()) {\n <span class=\"ea-divider__label\">{{ label() }}</span>\n }\n</div>\n", styles: [".ea-divider{flex-shrink:0;border:0;font-family:var(--font-family-sans)}.ea-divider--horizontal{display:flex;align-items:center;width:100%;height:1px;background-color:var(--color-border-default)}.ea-divider--vertical{display:inline-block;width:1px;height:100%;min-height:1rem;background-color:var(--color-border-default)}.ea-divider--with-label{height:auto;background-color:transparent;gap:var(--space-3)}.ea-divider--with-label:before,.ea-divider--with-label:after{content:\"\";flex:1;height:1px;background-color:var(--color-border-default)}.ea-divider__label{flex-shrink:0;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary);white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2532
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2533
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: DialogComponent, isStandalone: true, selector: "ea-dialog", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdrop: { classPropertyName: "closeOnBackdrop", publicName: "closeOnBackdrop", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, showClose: { classPropertyName: "showClose", publicName: "showClose", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", opened: "opened", closed: "closed" }, viewQueries: [{ propertyName: "dialogEl", first: true, predicate: ["dialogEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<dialog\n #dialogEl\n class=\"ea-dialog\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"handleBackdropClick($event)\"\n (cancel)=\"handleCancel($event)\">\n <div\n class=\"ea-dialog__panel\"\n [ngClass]=\"panelClasses()\">\n @if (showClose()) {\n <button\n type=\"button\"\n class=\"ea-dialog__close\"\n aria-label=\"Close dialog\"\n (click)=\"handleClose()\">\n <ea-icon-x />\n </button>\n }\n\n <div class=\"ea-dialog__header\">\n <ng-content select=\"[slot=header]\" />\n </div>\n\n <div class=\"ea-dialog__body\">\n <ng-content />\n </div>\n\n <div class=\"ea-dialog__footer\">\n <ng-content select=\"[slot=footer]\" />\n </div>\n </div>\n</dialog>\n", styles: [".ea-dialog{border:none;background:transparent;padding:0;margin:auto;max-width:none;max-height:none;overflow:visible}.ea-dialog::backdrop{background-color:var(--color-bg-overlay)}.ea-dialog__panel{position:relative;display:flex;flex-direction:column;background-color:var(--color-bg-base);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-height:85vh;overflow:hidden}.ea-dialog__panel--sm{width:24rem}.ea-dialog__panel--md{width:32rem}.ea-dialog__panel--lg{width:42rem}.ea-dialog__panel--full{width:calc(100vw - 2rem);height:calc(100vh - 2rem);max-height:calc(100vh - 2rem)}.ea-dialog__close{position:absolute;top:var(--space-3);right:var(--space-3);display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors);z-index:1}.ea-dialog__close:hover{background-color:var(--color-bg-muted);color:var(--color-text-primary)}.ea-dialog__close:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-dialog__close svg{width:1rem;height:1rem}.ea-dialog__header{padding:var(--space-5) var(--space-6) var(--space-3);font-size:var(--text-h4-size);font-weight:var(--text-h4-weight);line-height:var(--text-h4-lh);color:var(--color-text-primary)}.ea-dialog__header:empty{display:none}.ea-dialog__body{flex:1;padding:var(--space-3) var(--space-6);overflow-y:auto;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-dialog__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-6) var(--space-5)}.ea-dialog__footer>*{display:flex;align-items:center;gap:var(--space-3)}.ea-dialog__footer:empty{display:none}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: XIconComponent, selector: "ea-icon-x" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2534
+ }
2535
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DialogComponent, decorators: [{
2536
+ type: Component,
2537
+ args: [{ selector: 'ea-dialog', imports: [NgClass, XIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<dialog\n #dialogEl\n class=\"ea-dialog\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"handleBackdropClick($event)\"\n (cancel)=\"handleCancel($event)\">\n <div\n class=\"ea-dialog__panel\"\n [ngClass]=\"panelClasses()\">\n @if (showClose()) {\n <button\n type=\"button\"\n class=\"ea-dialog__close\"\n aria-label=\"Close dialog\"\n (click)=\"handleClose()\">\n <ea-icon-x />\n </button>\n }\n\n <div class=\"ea-dialog__header\">\n <ng-content select=\"[slot=header]\" />\n </div>\n\n <div class=\"ea-dialog__body\">\n <ng-content />\n </div>\n\n <div class=\"ea-dialog__footer\">\n <ng-content select=\"[slot=footer]\" />\n </div>\n </div>\n</dialog>\n", styles: [".ea-dialog{border:none;background:transparent;padding:0;margin:auto;max-width:none;max-height:none;overflow:visible}.ea-dialog::backdrop{background-color:var(--color-bg-overlay)}.ea-dialog__panel{position:relative;display:flex;flex-direction:column;background-color:var(--color-bg-base);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-height:85vh;overflow:hidden}.ea-dialog__panel--sm{width:24rem}.ea-dialog__panel--md{width:32rem}.ea-dialog__panel--lg{width:42rem}.ea-dialog__panel--full{width:calc(100vw - 2rem);height:calc(100vh - 2rem);max-height:calc(100vh - 2rem)}.ea-dialog__close{position:absolute;top:var(--space-3);right:var(--space-3);display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors);z-index:1}.ea-dialog__close:hover{background-color:var(--color-bg-muted);color:var(--color-text-primary)}.ea-dialog__close:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-dialog__close svg{width:1rem;height:1rem}.ea-dialog__header{padding:var(--space-5) var(--space-6) var(--space-3);font-size:var(--text-h4-size);font-weight:var(--text-h4-weight);line-height:var(--text-h4-lh);color:var(--color-text-primary)}.ea-dialog__header:empty{display:none}.ea-dialog__body{flex:1;padding:var(--space-3) var(--space-6);overflow-y:auto;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-dialog__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-6) var(--space-5)}.ea-dialog__footer>*{display:flex;align-items:center;gap:var(--space-3)}.ea-dialog__footer:empty{display:none}\n"] }]
2538
+ }], ctorParameters: () => [], propDecorators: { dialogEl: [{ type: i0.ViewChild, args: ['dialogEl', { isSignal: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], closeOnBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnBackdrop", required: false }] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }], showClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "showClose", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], opened: [{ type: i0.Output, args: ["opened"] }], closed: [{ type: i0.Output, args: ["closed"] }] } });
2539
+
2540
+ class DrawerComponent {
2541
+ drawerEl = viewChild('drawerEl', ...(ngDevMode ? [{ debugName: "drawerEl" }] : /* istanbul ignore next */ []));
2542
+ // Inputs
2543
+ position = input('right', ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
2544
+ size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
2545
+ closeOnBackdrop = input(true, ...(ngDevMode ? [{ debugName: "closeOnBackdrop" }] : /* istanbul ignore next */ []));
2546
+ closeOnEscape = input(true, ...(ngDevMode ? [{ debugName: "closeOnEscape" }] : /* istanbul ignore next */ []));
2547
+ showClose = input(true, ...(ngDevMode ? [{ debugName: "showClose" }] : /* istanbul ignore next */ []));
2548
+ ariaLabel = input(undefined, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
2549
+ // Two-way open binding
2550
+ open = model(false, ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
2551
+ // Outputs
2552
+ opened = output();
2553
+ closed = output();
2554
+ // Computed
2555
+ panelClasses = computed(() => ({
2556
+ [`ea-drawer__panel--${this.position()}`]: true,
2557
+ [`ea-drawer__panel--${this.size()}`]: true,
2558
+ }), ...(ngDevMode ? [{ debugName: "panelClasses" }] : /* istanbul ignore next */ []));
2559
+ constructor() {
2560
+ effect(() => {
2561
+ const drawerRef = this.drawerEl()?.nativeElement;
2562
+ if (!drawerRef)
2563
+ return;
2564
+ if (this.open()) {
2565
+ if (!drawerRef.open) {
2566
+ drawerRef.showModal();
2567
+ this.opened.emit();
2568
+ }
2569
+ }
2570
+ else {
2571
+ if (drawerRef.open) {
2572
+ drawerRef.close();
2573
+ }
2574
+ }
2575
+ });
2576
+ }
2577
+ handleClose() {
2578
+ this.open.set(false);
2579
+ this.closed.emit();
2580
+ }
2581
+ handleBackdropClick(event) {
2582
+ if (!this.closeOnBackdrop())
2583
+ return;
2584
+ const drawerRef = this.drawerEl()?.nativeElement;
2585
+ if (event.target === drawerRef) {
2586
+ this.handleClose();
2587
+ }
2588
+ }
2589
+ handleCancel(event) {
2590
+ if (!this.closeOnEscape()) {
2591
+ event.preventDefault();
2592
+ return;
2593
+ }
2594
+ this.handleClose();
2595
+ }
2596
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2597
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: DrawerComponent, isStandalone: true, selector: "ea-drawer", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdrop: { classPropertyName: "closeOnBackdrop", publicName: "closeOnBackdrop", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, showClose: { classPropertyName: "showClose", publicName: "showClose", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", opened: "opened", closed: "closed" }, viewQueries: [{ propertyName: "drawerEl", first: true, predicate: ["drawerEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<dialog\n #drawerEl\n class=\"ea-drawer\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"handleBackdropClick($event)\"\n (cancel)=\"handleCancel($event)\">\n <div\n class=\"ea-drawer__panel\"\n [ngClass]=\"panelClasses()\">\n @if (showClose()) {\n <button\n type=\"button\"\n class=\"ea-drawer__close\"\n aria-label=\"Close drawer\"\n (click)=\"handleClose()\">\n <ea-icon-x />\n </button>\n }\n\n <div class=\"ea-drawer__header\">\n <ng-content select=\"[slot=header]\" />\n </div>\n\n <div class=\"ea-drawer__body\">\n <ng-content />\n </div>\n\n <div class=\"ea-drawer__footer\">\n <ng-content select=\"[slot=footer]\" />\n </div>\n </div>\n</dialog>\n", styles: [".ea-drawer{position:fixed;inset:0;width:100vw;max-width:none;height:100vh;max-height:none;padding:0;margin:0;border:none;background:transparent;overflow:hidden}.ea-drawer::backdrop{background-color:var(--color-bg-overlay)}.ea-drawer__panel{position:absolute;display:flex;flex-direction:column;background-color:var(--color-bg-base);box-shadow:var(--shadow-2xl);overflow:hidden}.ea-drawer__panel--right{top:0;right:0;bottom:0;height:100%}.ea-drawer__panel--right.ea-drawer__panel--sm{width:20rem}.ea-drawer__panel--right.ea-drawer__panel--md{width:28rem}.ea-drawer__panel--right.ea-drawer__panel--lg{width:36rem}.ea-drawer__panel--right.ea-drawer__panel--full{width:calc(100vw - 3rem)}.ea-drawer__panel--left{top:0;left:0;bottom:0;height:100%}.ea-drawer__panel--left.ea-drawer__panel--sm{width:20rem}.ea-drawer__panel--left.ea-drawer__panel--md{width:28rem}.ea-drawer__panel--left.ea-drawer__panel--lg{width:36rem}.ea-drawer__panel--left.ea-drawer__panel--full{width:calc(100vw - 3rem)}.ea-drawer__panel--top{top:0;left:0;right:0;width:100%}.ea-drawer__panel--top.ea-drawer__panel--sm{height:12rem}.ea-drawer__panel--top.ea-drawer__panel--md{height:20rem}.ea-drawer__panel--top.ea-drawer__panel--lg{height:28rem}.ea-drawer__panel--top.ea-drawer__panel--full{height:calc(100vh - 3rem)}.ea-drawer__panel--bottom{bottom:0;left:0;right:0;width:100%}.ea-drawer__panel--bottom.ea-drawer__panel--sm{height:12rem}.ea-drawer__panel--bottom.ea-drawer__panel--md{height:20rem}.ea-drawer__panel--bottom.ea-drawer__panel--lg{height:28rem}.ea-drawer__panel--bottom.ea-drawer__panel--full{height:calc(100vh - 3rem)}.ea-drawer__close{position:absolute;top:var(--space-3);right:var(--space-3);z-index:1;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-drawer__close:hover{background-color:var(--color-bg-muted);color:var(--color-text-primary)}.ea-drawer__close:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-drawer__close svg{width:1rem;height:1rem}.ea-drawer__header{padding:var(--space-5) var(--space-6) var(--space-3);font-size:var(--text-h4-size);font-weight:var(--text-h4-weight);line-height:var(--text-h4-lh);color:var(--color-text-primary)}.ea-drawer__header:empty{display:none}.ea-drawer__body{flex:1;padding:var(--space-3) var(--space-6);overflow-y:auto;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-drawer__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-6) var(--space-5)}.ea-drawer__footer>*{display:flex;align-items:center;gap:var(--space-3)}.ea-drawer__footer:empty{display:none}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: XIconComponent, selector: "ea-icon-x" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1808
2598
  }
1809
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DividerComponent, decorators: [{
2599
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DrawerComponent, decorators: [{
1810
2600
  type: Component,
1811
- args: [{ selector: 'ea-divider', imports: [NgClass], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"ea-divider\"\n [ngClass]=\"hostClasses()\"\n [attr.role]=\"'separator'\"\n [attr.aria-orientation]=\"orientation()\">\n @if (label()) {\n <span class=\"ea-divider__label\">{{ label() }}</span>\n }\n</div>\n", styles: [".ea-divider{flex-shrink:0;border:0;font-family:var(--font-family-sans)}.ea-divider--horizontal{display:flex;align-items:center;width:100%;height:1px;background-color:var(--color-border-default)}.ea-divider--vertical{display:inline-block;width:1px;height:100%;min-height:1rem;background-color:var(--color-border-default)}.ea-divider--with-label{height:auto;background-color:transparent;gap:var(--space-3)}.ea-divider--with-label:before,.ea-divider--with-label:after{content:\"\";flex:1;height:1px;background-color:var(--color-border-default)}.ea-divider__label{flex-shrink:0;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary);white-space:nowrap}\n"] }]
1812
- }], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }] } });
2601
+ args: [{ selector: 'ea-drawer', imports: [NgClass, XIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<dialog\n #drawerEl\n class=\"ea-drawer\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"handleBackdropClick($event)\"\n (cancel)=\"handleCancel($event)\">\n <div\n class=\"ea-drawer__panel\"\n [ngClass]=\"panelClasses()\">\n @if (showClose()) {\n <button\n type=\"button\"\n class=\"ea-drawer__close\"\n aria-label=\"Close drawer\"\n (click)=\"handleClose()\">\n <ea-icon-x />\n </button>\n }\n\n <div class=\"ea-drawer__header\">\n <ng-content select=\"[slot=header]\" />\n </div>\n\n <div class=\"ea-drawer__body\">\n <ng-content />\n </div>\n\n <div class=\"ea-drawer__footer\">\n <ng-content select=\"[slot=footer]\" />\n </div>\n </div>\n</dialog>\n", styles: [".ea-drawer{position:fixed;inset:0;width:100vw;max-width:none;height:100vh;max-height:none;padding:0;margin:0;border:none;background:transparent;overflow:hidden}.ea-drawer::backdrop{background-color:var(--color-bg-overlay)}.ea-drawer__panel{position:absolute;display:flex;flex-direction:column;background-color:var(--color-bg-base);box-shadow:var(--shadow-2xl);overflow:hidden}.ea-drawer__panel--right{top:0;right:0;bottom:0;height:100%}.ea-drawer__panel--right.ea-drawer__panel--sm{width:20rem}.ea-drawer__panel--right.ea-drawer__panel--md{width:28rem}.ea-drawer__panel--right.ea-drawer__panel--lg{width:36rem}.ea-drawer__panel--right.ea-drawer__panel--full{width:calc(100vw - 3rem)}.ea-drawer__panel--left{top:0;left:0;bottom:0;height:100%}.ea-drawer__panel--left.ea-drawer__panel--sm{width:20rem}.ea-drawer__panel--left.ea-drawer__panel--md{width:28rem}.ea-drawer__panel--left.ea-drawer__panel--lg{width:36rem}.ea-drawer__panel--left.ea-drawer__panel--full{width:calc(100vw - 3rem)}.ea-drawer__panel--top{top:0;left:0;right:0;width:100%}.ea-drawer__panel--top.ea-drawer__panel--sm{height:12rem}.ea-drawer__panel--top.ea-drawer__panel--md{height:20rem}.ea-drawer__panel--top.ea-drawer__panel--lg{height:28rem}.ea-drawer__panel--top.ea-drawer__panel--full{height:calc(100vh - 3rem)}.ea-drawer__panel--bottom{bottom:0;left:0;right:0;width:100%}.ea-drawer__panel--bottom.ea-drawer__panel--sm{height:12rem}.ea-drawer__panel--bottom.ea-drawer__panel--md{height:20rem}.ea-drawer__panel--bottom.ea-drawer__panel--lg{height:28rem}.ea-drawer__panel--bottom.ea-drawer__panel--full{height:calc(100vh - 3rem)}.ea-drawer__close{position:absolute;top:var(--space-3);right:var(--space-3);z-index:1;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-drawer__close:hover{background-color:var(--color-bg-muted);color:var(--color-text-primary)}.ea-drawer__close:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-drawer__close svg{width:1rem;height:1rem}.ea-drawer__header{padding:var(--space-5) var(--space-6) var(--space-3);font-size:var(--text-h4-size);font-weight:var(--text-h4-weight);line-height:var(--text-h4-lh);color:var(--color-text-primary)}.ea-drawer__header:empty{display:none}.ea-drawer__body{flex:1;padding:var(--space-3) var(--space-6);overflow-y:auto;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-drawer__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-6) var(--space-5)}.ea-drawer__footer>*{display:flex;align-items:center;gap:var(--space-3)}.ea-drawer__footer:empty{display:none}\n"] }]
2602
+ }], ctorParameters: () => [], propDecorators: { drawerEl: [{ type: i0.ViewChild, args: ['drawerEl', { isSignal: true }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], closeOnBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnBackdrop", required: false }] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }], showClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "showClose", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], opened: [{ type: i0.Output, args: ["opened"] }], closed: [{ type: i0.Output, args: ["closed"] }] } });
1813
2603
 
1814
2604
  class DropdownComponent {
1815
2605
  elRef = viewChild('triggerEl', ...(ngDevMode ? [{ debugName: "elRef" }] : /* istanbul ignore next */ []));
@@ -1970,9 +2760,406 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
1970
2760
  args: ['document:click', ['$event']]
1971
2761
  }] } });
1972
2762
 
2763
+ class EagamiIconComponent {
2764
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EagamiIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2765
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: EagamiIconComponent, isStandalone: true, selector: "ea-icon-eagami", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2766
+ <svg
2767
+ xmlns="http://www.w3.org/2000/svg"
2768
+ viewBox="0 0 1962.34 1962.34"
2769
+ aria-hidden="true"
2770
+ width="100%"
2771
+ height="100%">
2772
+ <g>
2773
+ <polygon
2774
+ fill="#718e99"
2775
+ points="843.82 1872.78 800.19 1873.73 747.86 1550.57 798.02 1579.39 843.82 1872.78" />
2776
+ <polygon
2777
+ fill="#72808c"
2778
+ points="798.01 1579.39 747.85 1550.57 735.89 1503.54 790.69 1529.94 798.01 1579.39" />
2779
+ <path
2780
+ fill="#3c6c90"
2781
+ d="M1369.61,147.98l-105.89-6.22s-.05,0-.07-.01c-1.06-.1-1.75-.11-1.94-.11h-.06l-187.74-15.4,147.76-37.63,147.94,59.38Z" />
2782
+ <polygon
2783
+ fill="#46293f"
2784
+ points="1242.39 201.49 1023.2 236.73 1000.3 239.43 1005.76 200.7 1073.91 126.23 1242.39 201.49" />
2785
+ <polygon
2786
+ fill="#653f54"
2787
+ points="1144.89 343.97 1140.97 360.09 1034.47 456.62 978.85 341.04 1000.3 239.43 1023.2 236.73 1144.89 343.97" />
2788
+ <polygon
2789
+ fill="#46293f"
2790
+ points="1149.33 499.16 1034.47 456.62 1140.97 360.09 1149.33 499.16" />
2791
+ <polygon
2792
+ fill="#331b2a"
2793
+ points="1318.72 563.47 1130.07 532.19 1149.33 499.16 1318.72 563.47" />
2794
+ <polygon
2795
+ fill="#4b273c"
2796
+ points="1318.72 563.47 1076.63 609.03 1130.07 532.19 1318.72 563.47" />
2797
+ <polygon
2798
+ fill="#4b2f3f"
2799
+ points="1066 741.83 1066 693.01 1035.47 664.68 1003.57 571.56 1076.63 609.03 1083.18 790.66 1059.73 811.84 1066 741.83" />
2800
+ <polygon
2801
+ fill="#3c6c90"
2802
+ points="667.69 998.55 555.65 1178.36 470.69 1211.06 590.27 1015.47 667.69 998.55" />
2803
+ <polygon
2804
+ fill="#2a445f"
2805
+ points="832.91 957.82 705.13 1117.7 555.65 1178.36 667.69 998.55 832.91 957.82" />
2806
+ <polygon
2807
+ fill="#11253c"
2808
+ points="725.23 1109.29 780.56 1088.46 751.67 1105.48 709.41 1120.01 687.32 1156.44 680.06 1168.82 419.79 1252.33 319.47 1293.93 458.32 1053.08 202.43 1176.77 237.68 1130.08 567.1 877.57 346 1256.78 470.69 1211.06 555.65 1178.36 705.13 1117.7 832.91 957.82 841.09 956.88 725.23 1109.29" />
2809
+ <polygon
2810
+ fill="#72808c"
2811
+ points="917.67 1070.61 873.26 1105.96 667.34 1192.96 680.06 1168.82 687.32 1156.44 901.06 1071.66 917.67 1070.61" />
2812
+ <path
2813
+ fill="#bbcbd2"
2814
+ d="M1038.72,1696.39l-46.05,2.39-55.25-98.11-146.73-70.72-54.8-26.4-164.16-79.11-25.44-51.12s112.32-146.39,121.05-180.36l205.92-87-119.96,97.64-58.34,44.77-80.69,118.59,14.17,37.15,93.25,43.58,61.72,33.13,195.9,95.94,59.41,119.62Z" />
2815
+ <polygon
2816
+ fill="#254b71"
2817
+ points="458.32 1053.08 319.47 1293.93 290.75 1344.73 190.85 1368.4 136.63 1381.25 114.46 1290.44 202.43 1176.77 458.32 1053.08" />
2818
+ <polygon
2819
+ fill="#2a445f"
2820
+ points="940.14 614.9 567.1 877.57 237.68 1130.08 490.22 786.13 940.14 614.9" />
2821
+ <polygon
2822
+ fill="#3c6c90"
2823
+ points="1003.57 571.56 940.14 614.9 490.22 786.13 865.63 537.27 1003.57 571.56" />
2824
+ <polygon
2825
+ fill="#808d97"
2826
+ points="1379.25 231.73 1163.33 267.92 1212.39 225.78 1379.25 231.73" />
2827
+ <polygon
2828
+ fill="#3a0a23"
2829
+ points="1090.1 267.24 1023.2 236.73 1163.33 267.92 1156.18 297.37 1090.1 267.24 1090.1 267.24" />
2830
+ <polygon
2831
+ fill="#4d1832"
2832
+ points="1156.18 297.37 1150.7 320 1023.2 236.73 1156.18 297.37" />
2833
+ <polygon
2834
+ fill="#594b6e"
2835
+ points="1150.7 320 1144.89 343.97 1023.2 236.73 1150.7 320" />
2836
+ <polygon
2837
+ fill="#4f1730"
2838
+ points="1276.02 379.71 1236.58 373.98 1140.97 360.09 1248.38 360.09 1276.02 379.71" />
2839
+ <polygon
2840
+ fill="#d8dee3"
2841
+ points="1341.26 475.03 1295.08 447.72 1295.07 447.71 1292.55 435.34 1236.58 373.98 1276.02 379.71 1336.29 447.7 1336.3 447.71 1341.26 475.03" />
2842
+ <polygon
2843
+ fill="#6c2741"
2844
+ points="1336.29 447.7 1276.02 379.71 1328.9 417.25 1335.44 442.96 1336.29 447.7" />
2845
+ <polygon
2846
+ fill="#9fb1b7"
2847
+ points="1346.71 505.52 1320.36 490.59 1298.63 465.1 1295.08 447.72 1341.26 475.03 1346.71 505.52" />
2848
+ <polygon
2849
+ fill="#bbcbd2"
2850
+ points="1356.16 554.73 1311.09 698.25 1240.75 757.31 1318.72 563.47 1298.63 465.1 1320.36 490.59 1356.16 554.73" />
2851
+ <polygon
2852
+ fill="#72808c"
2853
+ points="1279.46 804.94 1174.42 902.74 1240.75 757.31 1279.46 804.94" />
2854
+ <polygon
2855
+ fill="#3c4d5e"
2856
+ points="1240.75 757.31 1174.42 902.74 1068.04 1002.02 1081.79 810.12 1240.75 757.31" />
2857
+ <polygon
2858
+ fill="#04111b"
2859
+ points="1083.18 790.66 1081.79 810.12 1068.04 1002.02 1062.82 1006.89 1062.82 941.16 1059.73 811.84 1083.18 790.66" />
2860
+ <polygon
2861
+ fill="#11253c"
2862
+ points="1062.82 941.16 928.32 1062.14 917.68 1070.61 917.67 1070.61 901.06 1071.66 880.35 1049.28 911.78 1034.51 999.93 921 1059.73 811.84 1062.82 941.16" />
2863
+ <polygon
2864
+ fill="#72808c"
2865
+ points="873.26 1105.96 817.64 1235.99 812.19 1254.56 741.3 1304.8 753.3 1203.59 873.26 1105.96" />
2866
+ <polygon
2867
+ fill="#8b9da8"
2868
+ points="778.38 1446.98 783.4 1480.82 721.68 1447.69 741.3 1304.8 812.19 1254.56 778.38 1446.98" />
2869
+ <polygon
2870
+ fill="#8b9da8"
2871
+ points="1311.09 698.25 1279.46 804.94 1240.75 757.31 1311.09 698.25" />
2872
+ <polygon
2873
+ fill="#9ea4bc"
2874
+ points="1847.88 236.73 1837.25 237.12 1670.95 211.49 1325.63 194.03 1363.79 169.1 1387.06 154.33 1717.11 201.01 1847.88 236.73" />
2875
+ <polygon
2876
+ fill="#0d2533"
2877
+ points="1837.25 237.12 1710.47 241.73 1696.44 241.3 1325.63 194.03 1670.95 211.49 1837.25 237.12" />
2878
+ <polygon
2879
+ fill="#04111b"
2880
+ points="901.06 1071.66 687.32 1156.44 709.41 1120.01 751.67 1105.48 780.56 1088.46 880.35 1049.28 901.06 1071.66" />
2881
+ <polygon
2882
+ fill="#3c6c90"
2883
+ points="956.32 929.73 880.35 1049.28 780.56 1088.46 725.23 1109.29 841.09 956.88 956.32 929.73" />
2884
+ <polygon
2885
+ fill="#2a445f"
2886
+ points="999.93 921 911.78 1034.51 880.35 1049.28 956.32 929.73 999.93 921" />
2887
+ <polygon
2888
+ fill="#2f567a"
2889
+ points="1066 741.83 1059.73 811.84 999.93 921 956.32 929.73 841.09 956.88 832.91 957.82 667.69 998.55 590.27 1015.47 470.69 1211.06 346 1256.78 567.1 877.57 1066 741.83" />
2890
+ <polygon
2891
+ fill="#3c6c90"
2892
+ points="1066 693.01 1066 741.83 567.1 877.57 961.31 626.09 1035.47 664.68 1066 693.01" />
2893
+ <polygon
2894
+ fill="#182f44"
2895
+ points="961.31 626.09 567.1 877.57 940.14 614.9 961.31 626.09" />
2896
+ <polygon
2897
+ fill="#40374f"
2898
+ points="1035.47 664.68 961.31 626.09 940.14 614.9 1003.57 571.56 1035.47 664.68" />
2899
+ <polygon
2900
+ fill="#444e77"
2901
+ points="1318.72 563.47 1240.75 757.31 1081.79 810.12 1083.18 790.66 1318.72 563.47" />
2902
+ <polygon
2903
+ fill="#11365c"
2904
+ points="419.79 1252.33 248.23 1407.29 190.85 1368.4 290.75 1344.73 319.47 1293.93 419.79 1252.33" />
2905
+ <polygon
2906
+ fill="#594b6e"
2907
+ points="1318.72 563.47 1149.33 499.16 1140.97 360.09 1292.55 435.34 1295.07 447.71 1295.08 447.72 1298.63 465.1 1318.72 563.47" />
2908
+ <polygon
2909
+ fill="#653f54"
2910
+ points="1318.72 563.47 1083.18 790.66 1076.63 609.03 1318.72 563.47" />
2911
+ <polygon
2912
+ fill="#6d1f44"
2913
+ points="1356.16 554.73 1320.36 490.59 1346.71 505.52 1356.16 554.73" />
2914
+ <polygon
2915
+ fill="#aeb9bc"
2916
+ points="1292.55 435.34 1140.97 360.09 1236.58 373.98 1292.55 435.34" />
2917
+ <polygon
2918
+ fill="#541730"
2919
+ points="1242.39 201.49 1212.39 225.78 1163.33 267.92 1023.2 236.73 1242.39 201.49" />
2920
+ <polygon
2921
+ fill="#d8dee3"
2922
+ points="1379.25 231.73 1212.4 225.78 1242.39 201.49 1325.63 194.03 1379.25 231.73" />
2923
+ <polygon
2924
+ fill="#7a929c"
2925
+ points="1696.44 241.3 1379.25 231.73 1325.63 194.03 1696.44 241.3" />
2926
+ <polygon
2927
+ fill="#d8dee3"
2928
+ points="1387.06 154.34 1325.63 194.03 1293.1 167.67 1280.37 157.13 1261.66 141.64 1358.76 172.62 1387.06 154.34" />
2929
+ <polygon
2930
+ fill="#628ead"
2931
+ points="1387.06 154.34 1358.76 172.62 1261.66 141.64 1369.61 147.98 1387.06 154.34" />
2932
+ <polygon
2933
+ fill="#285175"
2934
+ points="1325.63 194.03 1242.39 201.49 1255.66 186.41 1280.37 157.13 1293.1 167.67 1325.63 194.03" />
2935
+ <polygon
2936
+ fill="#2a445f"
2937
+ points="1280.37 157.13 1255.66 186.41 1242.39 201.49 1073.91 126.23 1261.66 141.64 1280.37 157.13" />
2938
+ </g>
2939
+ <polygon
2940
+ fill="#8b9da8"
2941
+ points="628.44 1404.11 546.3 1373.32 614.27 1366.96 628.44 1404.11" />
2942
+ <polygon
2943
+ fill="#8b9da8"
2944
+ points="937.42 1600.66 979.31 1576.77 1038.72 1696.39 992.67 1698.78 937.42 1600.66" />
2945
+ </svg>
2946
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2947
+ }
2948
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EagamiIconComponent, decorators: [{
2949
+ type: Component,
2950
+ args: [{
2951
+ selector: 'ea-icon-eagami',
2952
+ changeDetection: ChangeDetectionStrategy.OnPush,
2953
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2954
+ template: `
2955
+ <svg
2956
+ xmlns="http://www.w3.org/2000/svg"
2957
+ viewBox="0 0 1962.34 1962.34"
2958
+ aria-hidden="true"
2959
+ width="100%"
2960
+ height="100%">
2961
+ <g>
2962
+ <polygon
2963
+ fill="#718e99"
2964
+ points="843.82 1872.78 800.19 1873.73 747.86 1550.57 798.02 1579.39 843.82 1872.78" />
2965
+ <polygon
2966
+ fill="#72808c"
2967
+ points="798.01 1579.39 747.85 1550.57 735.89 1503.54 790.69 1529.94 798.01 1579.39" />
2968
+ <path
2969
+ fill="#3c6c90"
2970
+ d="M1369.61,147.98l-105.89-6.22s-.05,0-.07-.01c-1.06-.1-1.75-.11-1.94-.11h-.06l-187.74-15.4,147.76-37.63,147.94,59.38Z" />
2971
+ <polygon
2972
+ fill="#46293f"
2973
+ points="1242.39 201.49 1023.2 236.73 1000.3 239.43 1005.76 200.7 1073.91 126.23 1242.39 201.49" />
2974
+ <polygon
2975
+ fill="#653f54"
2976
+ points="1144.89 343.97 1140.97 360.09 1034.47 456.62 978.85 341.04 1000.3 239.43 1023.2 236.73 1144.89 343.97" />
2977
+ <polygon
2978
+ fill="#46293f"
2979
+ points="1149.33 499.16 1034.47 456.62 1140.97 360.09 1149.33 499.16" />
2980
+ <polygon
2981
+ fill="#331b2a"
2982
+ points="1318.72 563.47 1130.07 532.19 1149.33 499.16 1318.72 563.47" />
2983
+ <polygon
2984
+ fill="#4b273c"
2985
+ points="1318.72 563.47 1076.63 609.03 1130.07 532.19 1318.72 563.47" />
2986
+ <polygon
2987
+ fill="#4b2f3f"
2988
+ points="1066 741.83 1066 693.01 1035.47 664.68 1003.57 571.56 1076.63 609.03 1083.18 790.66 1059.73 811.84 1066 741.83" />
2989
+ <polygon
2990
+ fill="#3c6c90"
2991
+ points="667.69 998.55 555.65 1178.36 470.69 1211.06 590.27 1015.47 667.69 998.55" />
2992
+ <polygon
2993
+ fill="#2a445f"
2994
+ points="832.91 957.82 705.13 1117.7 555.65 1178.36 667.69 998.55 832.91 957.82" />
2995
+ <polygon
2996
+ fill="#11253c"
2997
+ points="725.23 1109.29 780.56 1088.46 751.67 1105.48 709.41 1120.01 687.32 1156.44 680.06 1168.82 419.79 1252.33 319.47 1293.93 458.32 1053.08 202.43 1176.77 237.68 1130.08 567.1 877.57 346 1256.78 470.69 1211.06 555.65 1178.36 705.13 1117.7 832.91 957.82 841.09 956.88 725.23 1109.29" />
2998
+ <polygon
2999
+ fill="#72808c"
3000
+ points="917.67 1070.61 873.26 1105.96 667.34 1192.96 680.06 1168.82 687.32 1156.44 901.06 1071.66 917.67 1070.61" />
3001
+ <path
3002
+ fill="#bbcbd2"
3003
+ d="M1038.72,1696.39l-46.05,2.39-55.25-98.11-146.73-70.72-54.8-26.4-164.16-79.11-25.44-51.12s112.32-146.39,121.05-180.36l205.92-87-119.96,97.64-58.34,44.77-80.69,118.59,14.17,37.15,93.25,43.58,61.72,33.13,195.9,95.94,59.41,119.62Z" />
3004
+ <polygon
3005
+ fill="#254b71"
3006
+ points="458.32 1053.08 319.47 1293.93 290.75 1344.73 190.85 1368.4 136.63 1381.25 114.46 1290.44 202.43 1176.77 458.32 1053.08" />
3007
+ <polygon
3008
+ fill="#2a445f"
3009
+ points="940.14 614.9 567.1 877.57 237.68 1130.08 490.22 786.13 940.14 614.9" />
3010
+ <polygon
3011
+ fill="#3c6c90"
3012
+ points="1003.57 571.56 940.14 614.9 490.22 786.13 865.63 537.27 1003.57 571.56" />
3013
+ <polygon
3014
+ fill="#808d97"
3015
+ points="1379.25 231.73 1163.33 267.92 1212.39 225.78 1379.25 231.73" />
3016
+ <polygon
3017
+ fill="#3a0a23"
3018
+ points="1090.1 267.24 1023.2 236.73 1163.33 267.92 1156.18 297.37 1090.1 267.24 1090.1 267.24" />
3019
+ <polygon
3020
+ fill="#4d1832"
3021
+ points="1156.18 297.37 1150.7 320 1023.2 236.73 1156.18 297.37" />
3022
+ <polygon
3023
+ fill="#594b6e"
3024
+ points="1150.7 320 1144.89 343.97 1023.2 236.73 1150.7 320" />
3025
+ <polygon
3026
+ fill="#4f1730"
3027
+ points="1276.02 379.71 1236.58 373.98 1140.97 360.09 1248.38 360.09 1276.02 379.71" />
3028
+ <polygon
3029
+ fill="#d8dee3"
3030
+ points="1341.26 475.03 1295.08 447.72 1295.07 447.71 1292.55 435.34 1236.58 373.98 1276.02 379.71 1336.29 447.7 1336.3 447.71 1341.26 475.03" />
3031
+ <polygon
3032
+ fill="#6c2741"
3033
+ points="1336.29 447.7 1276.02 379.71 1328.9 417.25 1335.44 442.96 1336.29 447.7" />
3034
+ <polygon
3035
+ fill="#9fb1b7"
3036
+ points="1346.71 505.52 1320.36 490.59 1298.63 465.1 1295.08 447.72 1341.26 475.03 1346.71 505.52" />
3037
+ <polygon
3038
+ fill="#bbcbd2"
3039
+ points="1356.16 554.73 1311.09 698.25 1240.75 757.31 1318.72 563.47 1298.63 465.1 1320.36 490.59 1356.16 554.73" />
3040
+ <polygon
3041
+ fill="#72808c"
3042
+ points="1279.46 804.94 1174.42 902.74 1240.75 757.31 1279.46 804.94" />
3043
+ <polygon
3044
+ fill="#3c4d5e"
3045
+ points="1240.75 757.31 1174.42 902.74 1068.04 1002.02 1081.79 810.12 1240.75 757.31" />
3046
+ <polygon
3047
+ fill="#04111b"
3048
+ points="1083.18 790.66 1081.79 810.12 1068.04 1002.02 1062.82 1006.89 1062.82 941.16 1059.73 811.84 1083.18 790.66" />
3049
+ <polygon
3050
+ fill="#11253c"
3051
+ points="1062.82 941.16 928.32 1062.14 917.68 1070.61 917.67 1070.61 901.06 1071.66 880.35 1049.28 911.78 1034.51 999.93 921 1059.73 811.84 1062.82 941.16" />
3052
+ <polygon
3053
+ fill="#72808c"
3054
+ points="873.26 1105.96 817.64 1235.99 812.19 1254.56 741.3 1304.8 753.3 1203.59 873.26 1105.96" />
3055
+ <polygon
3056
+ fill="#8b9da8"
3057
+ points="778.38 1446.98 783.4 1480.82 721.68 1447.69 741.3 1304.8 812.19 1254.56 778.38 1446.98" />
3058
+ <polygon
3059
+ fill="#8b9da8"
3060
+ points="1311.09 698.25 1279.46 804.94 1240.75 757.31 1311.09 698.25" />
3061
+ <polygon
3062
+ fill="#9ea4bc"
3063
+ points="1847.88 236.73 1837.25 237.12 1670.95 211.49 1325.63 194.03 1363.79 169.1 1387.06 154.33 1717.11 201.01 1847.88 236.73" />
3064
+ <polygon
3065
+ fill="#0d2533"
3066
+ points="1837.25 237.12 1710.47 241.73 1696.44 241.3 1325.63 194.03 1670.95 211.49 1837.25 237.12" />
3067
+ <polygon
3068
+ fill="#04111b"
3069
+ points="901.06 1071.66 687.32 1156.44 709.41 1120.01 751.67 1105.48 780.56 1088.46 880.35 1049.28 901.06 1071.66" />
3070
+ <polygon
3071
+ fill="#3c6c90"
3072
+ points="956.32 929.73 880.35 1049.28 780.56 1088.46 725.23 1109.29 841.09 956.88 956.32 929.73" />
3073
+ <polygon
3074
+ fill="#2a445f"
3075
+ points="999.93 921 911.78 1034.51 880.35 1049.28 956.32 929.73 999.93 921" />
3076
+ <polygon
3077
+ fill="#2f567a"
3078
+ points="1066 741.83 1059.73 811.84 999.93 921 956.32 929.73 841.09 956.88 832.91 957.82 667.69 998.55 590.27 1015.47 470.69 1211.06 346 1256.78 567.1 877.57 1066 741.83" />
3079
+ <polygon
3080
+ fill="#3c6c90"
3081
+ points="1066 693.01 1066 741.83 567.1 877.57 961.31 626.09 1035.47 664.68 1066 693.01" />
3082
+ <polygon
3083
+ fill="#182f44"
3084
+ points="961.31 626.09 567.1 877.57 940.14 614.9 961.31 626.09" />
3085
+ <polygon
3086
+ fill="#40374f"
3087
+ points="1035.47 664.68 961.31 626.09 940.14 614.9 1003.57 571.56 1035.47 664.68" />
3088
+ <polygon
3089
+ fill="#444e77"
3090
+ points="1318.72 563.47 1240.75 757.31 1081.79 810.12 1083.18 790.66 1318.72 563.47" />
3091
+ <polygon
3092
+ fill="#11365c"
3093
+ points="419.79 1252.33 248.23 1407.29 190.85 1368.4 290.75 1344.73 319.47 1293.93 419.79 1252.33" />
3094
+ <polygon
3095
+ fill="#594b6e"
3096
+ points="1318.72 563.47 1149.33 499.16 1140.97 360.09 1292.55 435.34 1295.07 447.71 1295.08 447.72 1298.63 465.1 1318.72 563.47" />
3097
+ <polygon
3098
+ fill="#653f54"
3099
+ points="1318.72 563.47 1083.18 790.66 1076.63 609.03 1318.72 563.47" />
3100
+ <polygon
3101
+ fill="#6d1f44"
3102
+ points="1356.16 554.73 1320.36 490.59 1346.71 505.52 1356.16 554.73" />
3103
+ <polygon
3104
+ fill="#aeb9bc"
3105
+ points="1292.55 435.34 1140.97 360.09 1236.58 373.98 1292.55 435.34" />
3106
+ <polygon
3107
+ fill="#541730"
3108
+ points="1242.39 201.49 1212.39 225.78 1163.33 267.92 1023.2 236.73 1242.39 201.49" />
3109
+ <polygon
3110
+ fill="#d8dee3"
3111
+ points="1379.25 231.73 1212.4 225.78 1242.39 201.49 1325.63 194.03 1379.25 231.73" />
3112
+ <polygon
3113
+ fill="#7a929c"
3114
+ points="1696.44 241.3 1379.25 231.73 1325.63 194.03 1696.44 241.3" />
3115
+ <polygon
3116
+ fill="#d8dee3"
3117
+ points="1387.06 154.34 1325.63 194.03 1293.1 167.67 1280.37 157.13 1261.66 141.64 1358.76 172.62 1387.06 154.34" />
3118
+ <polygon
3119
+ fill="#628ead"
3120
+ points="1387.06 154.34 1358.76 172.62 1261.66 141.64 1369.61 147.98 1387.06 154.34" />
3121
+ <polygon
3122
+ fill="#285175"
3123
+ points="1325.63 194.03 1242.39 201.49 1255.66 186.41 1280.37 157.13 1293.1 167.67 1325.63 194.03" />
3124
+ <polygon
3125
+ fill="#2a445f"
3126
+ points="1280.37 157.13 1255.66 186.41 1242.39 201.49 1073.91 126.23 1261.66 141.64 1280.37 157.13" />
3127
+ </g>
3128
+ <polygon
3129
+ fill="#8b9da8"
3130
+ points="628.44 1404.11 546.3 1373.32 614.27 1366.96 628.44 1404.11" />
3131
+ <polygon
3132
+ fill="#8b9da8"
3133
+ points="937.42 1600.66 979.31 1576.77 1038.72 1696.39 992.67 1698.78 937.42 1600.66" />
3134
+ </svg>
3135
+ `,
3136
+ }]
3137
+ }] });
3138
+
3139
+ class EagamiWordmarkComponent {
3140
+ variant = input('logo', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
3141
+ size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
3142
+ text = input('eagami', ...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
3143
+ ariaLabel = computed(() => {
3144
+ const variant = this.variant();
3145
+ const text = this.text();
3146
+ if (variant === 'signature')
3147
+ return `handcrafted by ${text}`;
3148
+ if (variant === 'brand')
3149
+ return `${text} — elegant web design`;
3150
+ return text;
3151
+ }, ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
3152
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EagamiWordmarkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3153
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EagamiWordmarkComponent, isStandalone: true, selector: "ea-eagami-wordmark", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<a\n class=\"ea-eagami-wordmark\"\n [class.ea-eagami-wordmark--sm]=\"size() === 'sm'\"\n [class.ea-eagami-wordmark--md]=\"size() === 'md'\"\n [class.ea-eagami-wordmark--lg]=\"size() === 'lg'\"\n href=\"https://eagami.com\"\n target=\"_blank\"\n rel=\"noopener\"\n [attr.aria-label]=\"ariaLabel()\">\n <ea-icon-eagami\n class=\"ea-eagami-wordmark__logo\"\n aria-hidden=\"true\" />\n\n @if (variant() === 'signature') {\n <span class=\"ea-eagami-wordmark__text\">\n <span class=\"ea-eagami-wordmark__overline\">handcrafted by</span>\n <span class=\"ea-eagami-wordmark__brand\">{{ text() }}</span>\n </span>\n } @else if (variant() === 'brand') {\n <span class=\"ea-eagami-wordmark__text\">\n <span class=\"ea-eagami-wordmark__brand\">{{ text() }}</span>\n <span class=\"ea-eagami-wordmark__tagline\">elegant web design</span>\n </span>\n }\n</a>\n", styles: [":host{display:inline-block;line-height:var(--line-height-none)}.ea-eagami-wordmark{display:inline-flex;align-items:center;border-radius:var(--radius-sm);color:var(--color-text-primary);text-decoration:none;transition:var(--transition-opacity)}.ea-eagami-wordmark:hover{opacity:.75}.ea-eagami-wordmark:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-eagami-wordmark__logo{flex-shrink:0}.ea-eagami-wordmark__text{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;line-height:var(--line-height-tight)}.ea-eagami-wordmark__overline,.ea-eagami-wordmark__brand,.ea-eagami-wordmark__tagline{white-space:nowrap;text-transform:lowercase}.ea-eagami-wordmark__overline,.ea-eagami-wordmark__tagline{font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-widest);font-family:var(--font-family-sans);color:var(--color-text-secondary)}.ea-eagami-wordmark__brand{font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);font-family:var(--font-family-brand)}.ea-eagami-wordmark--sm .ea-eagami-wordmark__logo{font-size:48px}.ea-eagami-wordmark--md .ea-eagami-wordmark__logo{font-size:64px}.ea-eagami-wordmark--lg .ea-eagami-wordmark__logo{font-size:96px}.ea-eagami-wordmark--sm .ea-eagami-wordmark__brand{font-size:var(--font-size-2xl)}.ea-eagami-wordmark--md .ea-eagami-wordmark__brand{font-size:var(--font-size-4xl)}.ea-eagami-wordmark--lg .ea-eagami-wordmark__brand{font-size:var(--font-size-5xl)}.ea-eagami-wordmark--sm .ea-eagami-wordmark__overline,.ea-eagami-wordmark--sm .ea-eagami-wordmark__tagline{font-size:var(--font-size-2xs)}.ea-eagami-wordmark--md .ea-eagami-wordmark__overline,.ea-eagami-wordmark--md .ea-eagami-wordmark__tagline{font-size:var(--font-size-sm)}.ea-eagami-wordmark--lg .ea-eagami-wordmark__overline,.ea-eagami-wordmark--lg .ea-eagami-wordmark__tagline{font-size:var(--font-size-xl)}\n"], dependencies: [{ kind: "component", type: EagamiIconComponent, selector: "ea-icon-eagami" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3154
+ }
3155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EagamiWordmarkComponent, decorators: [{
3156
+ type: Component,
3157
+ args: [{ selector: 'ea-eagami-wordmark', imports: [EagamiIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"ea-eagami-wordmark\"\n [class.ea-eagami-wordmark--sm]=\"size() === 'sm'\"\n [class.ea-eagami-wordmark--md]=\"size() === 'md'\"\n [class.ea-eagami-wordmark--lg]=\"size() === 'lg'\"\n href=\"https://eagami.com\"\n target=\"_blank\"\n rel=\"noopener\"\n [attr.aria-label]=\"ariaLabel()\">\n <ea-icon-eagami\n class=\"ea-eagami-wordmark__logo\"\n aria-hidden=\"true\" />\n\n @if (variant() === 'signature') {\n <span class=\"ea-eagami-wordmark__text\">\n <span class=\"ea-eagami-wordmark__overline\">handcrafted by</span>\n <span class=\"ea-eagami-wordmark__brand\">{{ text() }}</span>\n </span>\n } @else if (variant() === 'brand') {\n <span class=\"ea-eagami-wordmark__text\">\n <span class=\"ea-eagami-wordmark__brand\">{{ text() }}</span>\n <span class=\"ea-eagami-wordmark__tagline\">elegant web design</span>\n </span>\n }\n</a>\n", styles: [":host{display:inline-block;line-height:var(--line-height-none)}.ea-eagami-wordmark{display:inline-flex;align-items:center;border-radius:var(--radius-sm);color:var(--color-text-primary);text-decoration:none;transition:var(--transition-opacity)}.ea-eagami-wordmark:hover{opacity:.75}.ea-eagami-wordmark:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-eagami-wordmark__logo{flex-shrink:0}.ea-eagami-wordmark__text{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;line-height:var(--line-height-tight)}.ea-eagami-wordmark__overline,.ea-eagami-wordmark__brand,.ea-eagami-wordmark__tagline{white-space:nowrap;text-transform:lowercase}.ea-eagami-wordmark__overline,.ea-eagami-wordmark__tagline{font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-widest);font-family:var(--font-family-sans);color:var(--color-text-secondary)}.ea-eagami-wordmark__brand{font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);font-family:var(--font-family-brand)}.ea-eagami-wordmark--sm .ea-eagami-wordmark__logo{font-size:48px}.ea-eagami-wordmark--md .ea-eagami-wordmark__logo{font-size:64px}.ea-eagami-wordmark--lg .ea-eagami-wordmark__logo{font-size:96px}.ea-eagami-wordmark--sm .ea-eagami-wordmark__brand{font-size:var(--font-size-2xl)}.ea-eagami-wordmark--md .ea-eagami-wordmark__brand{font-size:var(--font-size-4xl)}.ea-eagami-wordmark--lg .ea-eagami-wordmark__brand{font-size:var(--font-size-5xl)}.ea-eagami-wordmark--sm .ea-eagami-wordmark__overline,.ea-eagami-wordmark--sm .ea-eagami-wordmark__tagline{font-size:var(--font-size-2xs)}.ea-eagami-wordmark--md .ea-eagami-wordmark__overline,.ea-eagami-wordmark--md .ea-eagami-wordmark__tagline{font-size:var(--font-size-sm)}.ea-eagami-wordmark--lg .ea-eagami-wordmark__overline,.ea-eagami-wordmark--lg .ea-eagami-wordmark__tagline{font-size:var(--font-size-xl)}\n"] }]
3158
+ }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }] } });
3159
+
1973
3160
  class AlertTriangleIconComponent {
1974
3161
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: AlertTriangleIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1975
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: AlertTriangleIconComponent, isStandalone: true, selector: "ea-icon-alert-triangle", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3162
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: AlertTriangleIconComponent, isStandalone: true, selector: "ea-icon-alert-triangle", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
1976
3163
  <svg
1977
3164
  viewBox="0 0 24 24"
1978
3165
  fill="none"
@@ -2003,7 +3190,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2003
3190
  args: [{
2004
3191
  selector: 'ea-icon-alert-triangle',
2005
3192
  changeDetection: ChangeDetectionStrategy.OnPush,
2006
- host: { style: 'display: inline-flex;' },
3193
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2007
3194
  template: `
2008
3195
  <svg
2009
3196
  viewBox="0 0 24 24"
@@ -2034,7 +3221,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2034
3221
 
2035
3222
  class AppleIconComponent {
2036
3223
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: AppleIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2037
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: AppleIconComponent, isStandalone: true, selector: "ea-icon-apple", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3224
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: AppleIconComponent, isStandalone: true, selector: "ea-icon-apple", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2038
3225
  <svg
2039
3226
  viewBox="0 0 24 24"
2040
3227
  fill="#000000"
@@ -2051,7 +3238,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2051
3238
  args: [{
2052
3239
  selector: 'ea-icon-apple',
2053
3240
  changeDetection: ChangeDetectionStrategy.OnPush,
2054
- host: { style: 'display: inline-flex;' },
3241
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2055
3242
  template: `
2056
3243
  <svg
2057
3244
  viewBox="0 0 24 24"
@@ -2068,7 +3255,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2068
3255
 
2069
3256
  class ArrowLeftIconComponent {
2070
3257
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ArrowLeftIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2071
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ArrowLeftIconComponent, isStandalone: true, selector: "ea-icon-arrow-left", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3258
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ArrowLeftIconComponent, isStandalone: true, selector: "ea-icon-arrow-left", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2072
3259
  <svg
2073
3260
  viewBox="0 0 24 24"
2074
3261
  fill="none"
@@ -2093,7 +3280,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2093
3280
  args: [{
2094
3281
  selector: 'ea-icon-arrow-left',
2095
3282
  changeDetection: ChangeDetectionStrategy.OnPush,
2096
- host: { style: 'display: inline-flex;' },
3283
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2097
3284
  template: `
2098
3285
  <svg
2099
3286
  viewBox="0 0 24 24"
@@ -2118,7 +3305,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2118
3305
 
2119
3306
  class ArrowRightIconComponent {
2120
3307
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ArrowRightIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2121
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ArrowRightIconComponent, isStandalone: true, selector: "ea-icon-arrow-right", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3308
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ArrowRightIconComponent, isStandalone: true, selector: "ea-icon-arrow-right", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2122
3309
  <svg
2123
3310
  viewBox="0 0 24 24"
2124
3311
  fill="none"
@@ -2143,7 +3330,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2143
3330
  args: [{
2144
3331
  selector: 'ea-icon-arrow-right',
2145
3332
  changeDetection: ChangeDetectionStrategy.OnPush,
2146
- host: { style: 'display: inline-flex;' },
3333
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2147
3334
  template: `
2148
3335
  <svg
2149
3336
  viewBox="0 0 24 24"
@@ -2168,7 +3355,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2168
3355
 
2169
3356
  class BellIconComponent {
2170
3357
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: BellIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2171
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: BellIconComponent, isStandalone: true, selector: "ea-icon-bell", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3358
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: BellIconComponent, isStandalone: true, selector: "ea-icon-bell", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2172
3359
  <svg
2173
3360
  viewBox="0 0 24 24"
2174
3361
  fill="none"
@@ -2189,7 +3376,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2189
3376
  args: [{
2190
3377
  selector: 'ea-icon-bell',
2191
3378
  changeDetection: ChangeDetectionStrategy.OnPush,
2192
- host: { style: 'display: inline-flex;' },
3379
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2193
3380
  template: `
2194
3381
  <svg
2195
3382
  viewBox="0 0 24 24"
@@ -2208,91 +3395,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2208
3395
  }]
2209
3396
  }] });
2210
3397
 
2211
- class CalendarIconComponent {
2212
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: CalendarIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2213
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: CalendarIconComponent, isStandalone: true, selector: "ea-icon-calendar", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
2214
- <svg
2215
- viewBox="0 0 24 24"
2216
- fill="none"
2217
- stroke="currentColor"
2218
- stroke-width="2"
2219
- stroke-linecap="round"
2220
- stroke-linejoin="round"
2221
- aria-hidden="true"
2222
- width="100%"
2223
- height="100%">
2224
- <rect
2225
- x="3"
2226
- y="4"
2227
- width="18"
2228
- height="18"
2229
- rx="2"
2230
- ry="2" />
2231
- <line
2232
- x1="16"
2233
- y1="2"
2234
- x2="16"
2235
- y2="6" />
2236
- <line
2237
- x1="8"
2238
- y1="2"
2239
- x2="8"
2240
- y2="6" />
2241
- <line
2242
- x1="3"
2243
- y1="10"
2244
- x2="21"
2245
- y2="10" />
2246
- </svg>
2247
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2248
- }
2249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: CalendarIconComponent, decorators: [{
2250
- type: Component,
2251
- args: [{
2252
- selector: 'ea-icon-calendar',
2253
- changeDetection: ChangeDetectionStrategy.OnPush,
2254
- host: { style: 'display: inline-flex;' },
2255
- template: `
2256
- <svg
2257
- viewBox="0 0 24 24"
2258
- fill="none"
2259
- stroke="currentColor"
2260
- stroke-width="2"
2261
- stroke-linecap="round"
2262
- stroke-linejoin="round"
2263
- aria-hidden="true"
2264
- width="100%"
2265
- height="100%">
2266
- <rect
2267
- x="3"
2268
- y="4"
2269
- width="18"
2270
- height="18"
2271
- rx="2"
2272
- ry="2" />
2273
- <line
2274
- x1="16"
2275
- y1="2"
2276
- x2="16"
2277
- y2="6" />
2278
- <line
2279
- x1="8"
2280
- y1="2"
2281
- x2="8"
2282
- y2="6" />
2283
- <line
2284
- x1="3"
2285
- y1="10"
2286
- x2="21"
2287
- y2="10" />
2288
- </svg>
2289
- `,
2290
- }]
2291
- }] });
2292
-
2293
3398
  class CheckCircleIconComponent {
2294
3399
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: CheckCircleIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2295
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: CheckCircleIconComponent, isStandalone: true, selector: "ea-icon-check-circle", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3400
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: CheckCircleIconComponent, isStandalone: true, selector: "ea-icon-check-circle", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2296
3401
  <svg
2297
3402
  viewBox="0 0 24 24"
2298
3403
  fill="none"
@@ -2313,7 +3418,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2313
3418
  args: [{
2314
3419
  selector: 'ea-icon-check-circle',
2315
3420
  changeDetection: ChangeDetectionStrategy.OnPush,
2316
- host: { style: 'display: inline-flex;' },
3421
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2317
3422
  template: `
2318
3423
  <svg
2319
3424
  viewBox="0 0 24 24"
@@ -2332,89 +3437,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2332
3437
  }]
2333
3438
  }] });
2334
3439
 
2335
- class ChevronLeftIconComponent {
2336
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ChevronLeftIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2337
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ChevronLeftIconComponent, isStandalone: true, selector: "ea-icon-chevron-left", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
2338
- <svg
2339
- viewBox="0 0 24 24"
2340
- fill="none"
2341
- stroke="currentColor"
2342
- stroke-width="2"
2343
- stroke-linecap="round"
2344
- stroke-linejoin="round"
2345
- aria-hidden="true"
2346
- width="100%"
2347
- height="100%">
2348
- <polyline points="15 18 9 12 15 6" />
2349
- </svg>
2350
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2351
- }
2352
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ChevronLeftIconComponent, decorators: [{
2353
- type: Component,
2354
- args: [{
2355
- selector: 'ea-icon-chevron-left',
2356
- changeDetection: ChangeDetectionStrategy.OnPush,
2357
- host: { style: 'display: inline-flex;' },
2358
- template: `
2359
- <svg
2360
- viewBox="0 0 24 24"
2361
- fill="none"
2362
- stroke="currentColor"
2363
- stroke-width="2"
2364
- stroke-linecap="round"
2365
- stroke-linejoin="round"
2366
- aria-hidden="true"
2367
- width="100%"
2368
- height="100%">
2369
- <polyline points="15 18 9 12 15 6" />
2370
- </svg>
2371
- `,
2372
- }]
2373
- }] });
2374
-
2375
- class ChevronRightIconComponent {
2376
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ChevronRightIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2377
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ChevronRightIconComponent, isStandalone: true, selector: "ea-icon-chevron-right", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
2378
- <svg
2379
- viewBox="0 0 24 24"
2380
- fill="none"
2381
- stroke="currentColor"
2382
- stroke-width="2"
2383
- stroke-linecap="round"
2384
- stroke-linejoin="round"
2385
- aria-hidden="true"
2386
- width="100%"
2387
- height="100%">
2388
- <polyline points="9 18 15 12 9 6" />
2389
- </svg>
2390
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2391
- }
2392
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ChevronRightIconComponent, decorators: [{
2393
- type: Component,
2394
- args: [{
2395
- selector: 'ea-icon-chevron-right',
2396
- changeDetection: ChangeDetectionStrategy.OnPush,
2397
- host: { style: 'display: inline-flex;' },
2398
- template: `
2399
- <svg
2400
- viewBox="0 0 24 24"
2401
- fill="none"
2402
- stroke="currentColor"
2403
- stroke-width="2"
2404
- stroke-linecap="round"
2405
- stroke-linejoin="round"
2406
- aria-hidden="true"
2407
- width="100%"
2408
- height="100%">
2409
- <polyline points="9 18 15 12 9 6" />
2410
- </svg>
2411
- `,
2412
- }]
2413
- }] });
2414
-
2415
3440
  class ChevronUpIconComponent {
2416
3441
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ChevronUpIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2417
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ChevronUpIconComponent, isStandalone: true, selector: "ea-icon-chevron-up", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3442
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ChevronUpIconComponent, isStandalone: true, selector: "ea-icon-chevron-up", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2418
3443
  <svg
2419
3444
  viewBox="0 0 24 24"
2420
3445
  fill="none"
@@ -2434,7 +3459,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2434
3459
  args: [{
2435
3460
  selector: 'ea-icon-chevron-up',
2436
3461
  changeDetection: ChangeDetectionStrategy.OnPush,
2437
- host: { style: 'display: inline-flex;' },
3462
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2438
3463
  template: `
2439
3464
  <svg
2440
3465
  viewBox="0 0 24 24"
@@ -2454,7 +3479,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2454
3479
 
2455
3480
  class ClockIconComponent {
2456
3481
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ClockIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2457
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ClockIconComponent, isStandalone: true, selector: "ea-icon-clock", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3482
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ClockIconComponent, isStandalone: true, selector: "ea-icon-clock", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2458
3483
  <svg
2459
3484
  viewBox="0 0 24 24"
2460
3485
  fill="none"
@@ -2478,7 +3503,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2478
3503
  args: [{
2479
3504
  selector: 'ea-icon-clock',
2480
3505
  changeDetection: ChangeDetectionStrategy.OnPush,
2481
- host: { style: 'display: inline-flex;' },
3506
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2482
3507
  template: `
2483
3508
  <svg
2484
3509
  viewBox="0 0 24 24"
@@ -2502,7 +3527,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2502
3527
 
2503
3528
  class CopyIconComponent {
2504
3529
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: CopyIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2505
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: CopyIconComponent, isStandalone: true, selector: "ea-icon-copy", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3530
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: CopyIconComponent, isStandalone: true, selector: "ea-icon-copy", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2506
3531
  <svg
2507
3532
  viewBox="0 0 24 24"
2508
3533
  fill="none"
@@ -2529,7 +3554,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2529
3554
  args: [{
2530
3555
  selector: 'ea-icon-copy',
2531
3556
  changeDetection: ChangeDetectionStrategy.OnPush,
2532
- host: { style: 'display: inline-flex;' },
3557
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2533
3558
  template: `
2534
3559
  <svg
2535
3560
  viewBox="0 0 24 24"
@@ -2556,7 +3581,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2556
3581
 
2557
3582
  class DownloadIconComponent {
2558
3583
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: DownloadIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2559
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: DownloadIconComponent, isStandalone: true, selector: "ea-icon-download", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3584
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: DownloadIconComponent, isStandalone: true, selector: "ea-icon-download", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2560
3585
  <svg
2561
3586
  viewBox="0 0 24 24"
2562
3587
  fill="none"
@@ -2582,7 +3607,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2582
3607
  args: [{
2583
3608
  selector: 'ea-icon-download',
2584
3609
  changeDetection: ChangeDetectionStrategy.OnPush,
2585
- host: { style: 'display: inline-flex;' },
3610
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2586
3611
  template: `
2587
3612
  <svg
2588
3613
  viewBox="0 0 24 24"
@@ -2608,7 +3633,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2608
3633
 
2609
3634
  class ExternalLinkIconComponent {
2610
3635
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ExternalLinkIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2611
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ExternalLinkIconComponent, isStandalone: true, selector: "ea-icon-external-link", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3636
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ExternalLinkIconComponent, isStandalone: true, selector: "ea-icon-external-link", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2612
3637
  <svg
2613
3638
  viewBox="0 0 24 24"
2614
3639
  fill="none"
@@ -2634,7 +3659,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2634
3659
  args: [{
2635
3660
  selector: 'ea-icon-external-link',
2636
3661
  changeDetection: ChangeDetectionStrategy.OnPush,
2637
- host: { style: 'display: inline-flex;' },
3662
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2638
3663
  template: `
2639
3664
  <svg
2640
3665
  viewBox="0 0 24 24"
@@ -2660,7 +3685,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2660
3685
 
2661
3686
  class EyeOffIconComponent {
2662
3687
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EyeOffIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2663
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: EyeOffIconComponent, isStandalone: true, selector: "ea-icon-eye-off", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3688
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: EyeOffIconComponent, isStandalone: true, selector: "ea-icon-eye-off", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2664
3689
  <svg
2665
3690
  viewBox="0 0 24 24"
2666
3691
  fill="none"
@@ -2686,7 +3711,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2686
3711
  args: [{
2687
3712
  selector: 'ea-icon-eye-off',
2688
3713
  changeDetection: ChangeDetectionStrategy.OnPush,
2689
- host: { style: 'display: inline-flex;' },
3714
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2690
3715
  template: `
2691
3716
  <svg
2692
3717
  viewBox="0 0 24 24"
@@ -2712,7 +3737,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2712
3737
 
2713
3738
  class EyeIconComponent {
2714
3739
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EyeIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2715
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: EyeIconComponent, isStandalone: true, selector: "ea-icon-eye", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3740
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: EyeIconComponent, isStandalone: true, selector: "ea-icon-eye", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2716
3741
  <svg
2717
3742
  viewBox="0 0 24 24"
2718
3743
  fill="none"
@@ -2736,7 +3761,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2736
3761
  args: [{
2737
3762
  selector: 'ea-icon-eye',
2738
3763
  changeDetection: ChangeDetectionStrategy.OnPush,
2739
- host: { style: 'display: inline-flex;' },
3764
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2740
3765
  template: `
2741
3766
  <svg
2742
3767
  viewBox="0 0 24 24"
@@ -2760,7 +3785,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2760
3785
 
2761
3786
  class FacebookIconComponent {
2762
3787
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: FacebookIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2763
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: FacebookIconComponent, isStandalone: true, selector: "ea-icon-facebook", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3788
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: FacebookIconComponent, isStandalone: true, selector: "ea-icon-facebook", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2764
3789
  <svg
2765
3790
  viewBox="0 0 24 24"
2766
3791
  fill="#1877F2"
@@ -2777,7 +3802,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2777
3802
  args: [{
2778
3803
  selector: 'ea-icon-facebook',
2779
3804
  changeDetection: ChangeDetectionStrategy.OnPush,
2780
- host: { style: 'display: inline-flex;' },
3805
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2781
3806
  template: `
2782
3807
  <svg
2783
3808
  viewBox="0 0 24 24"
@@ -2794,7 +3819,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2794
3819
 
2795
3820
  class FileIconComponent {
2796
3821
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: FileIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2797
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: FileIconComponent, isStandalone: true, selector: "ea-icon-file", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3822
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: FileIconComponent, isStandalone: true, selector: "ea-icon-file", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2798
3823
  <svg
2799
3824
  viewBox="0 0 24 24"
2800
3825
  fill="none"
@@ -2815,7 +3840,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2815
3840
  args: [{
2816
3841
  selector: 'ea-icon-file',
2817
3842
  changeDetection: ChangeDetectionStrategy.OnPush,
2818
- host: { style: 'display: inline-flex;' },
3843
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2819
3844
  template: `
2820
3845
  <svg
2821
3846
  viewBox="0 0 24 24"
@@ -2836,7 +3861,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2836
3861
 
2837
3862
  class FilterIconComponent {
2838
3863
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: FilterIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2839
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: FilterIconComponent, isStandalone: true, selector: "ea-icon-filter", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3864
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: FilterIconComponent, isStandalone: true, selector: "ea-icon-filter", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2840
3865
  <svg
2841
3866
  viewBox="0 0 24 24"
2842
3867
  fill="none"
@@ -2856,7 +3881,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2856
3881
  args: [{
2857
3882
  selector: 'ea-icon-filter',
2858
3883
  changeDetection: ChangeDetectionStrategy.OnPush,
2859
- host: { style: 'display: inline-flex;' },
3884
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2860
3885
  template: `
2861
3886
  <svg
2862
3887
  viewBox="0 0 24 24"
@@ -2876,7 +3901,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2876
3901
 
2877
3902
  class GithubIconComponent {
2878
3903
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GithubIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2879
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: GithubIconComponent, isStandalone: true, selector: "ea-icon-github", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3904
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: GithubIconComponent, isStandalone: true, selector: "ea-icon-github", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2880
3905
  <svg
2881
3906
  viewBox="0 0 24 24"
2882
3907
  fill="#181717"
@@ -2893,7 +3918,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2893
3918
  args: [{
2894
3919
  selector: 'ea-icon-github',
2895
3920
  changeDetection: ChangeDetectionStrategy.OnPush,
2896
- host: { style: 'display: inline-flex;' },
3921
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2897
3922
  template: `
2898
3923
  <svg
2899
3924
  viewBox="0 0 24 24"
@@ -2910,7 +3935,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2910
3935
 
2911
3936
  class GoogleIconComponent {
2912
3937
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: GoogleIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2913
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: GoogleIconComponent, isStandalone: true, selector: "ea-icon-google", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3938
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: GoogleIconComponent, isStandalone: true, selector: "ea-icon-google", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2914
3939
  <svg
2915
3940
  viewBox="0 0 24 24"
2916
3941
  aria-hidden="true"
@@ -2936,7 +3961,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2936
3961
  args: [{
2937
3962
  selector: 'ea-icon-google',
2938
3963
  changeDetection: ChangeDetectionStrategy.OnPush,
2939
- host: { style: 'display: inline-flex;' },
3964
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2940
3965
  template: `
2941
3966
  <svg
2942
3967
  viewBox="0 0 24 24"
@@ -2962,7 +3987,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2962
3987
 
2963
3988
  class HeartIconComponent {
2964
3989
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HeartIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2965
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: HeartIconComponent, isStandalone: true, selector: "ea-icon-heart", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
3990
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: HeartIconComponent, isStandalone: true, selector: "ea-icon-heart", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
2966
3991
  <svg
2967
3992
  viewBox="0 0 24 24"
2968
3993
  fill="none"
@@ -2983,7 +4008,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
2983
4008
  args: [{
2984
4009
  selector: 'ea-icon-heart',
2985
4010
  changeDetection: ChangeDetectionStrategy.OnPush,
2986
- host: { style: 'display: inline-flex;' },
4011
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
2987
4012
  template: `
2988
4013
  <svg
2989
4014
  viewBox="0 0 24 24"
@@ -3004,7 +4029,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3004
4029
 
3005
4030
  class ImageIconComponent {
3006
4031
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ImageIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3007
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ImageIconComponent, isStandalone: true, selector: "ea-icon-image", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
4032
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: ImageIconComponent, isStandalone: true, selector: "ea-icon-image", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
3008
4033
  <svg
3009
4034
  viewBox="0 0 24 24"
3010
4035
  fill="none"
@@ -3035,7 +4060,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3035
4060
  args: [{
3036
4061
  selector: 'ea-icon-image',
3037
4062
  changeDetection: ChangeDetectionStrategy.OnPush,
3038
- host: { style: 'display: inline-flex;' },
4063
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
3039
4064
  template: `
3040
4065
  <svg
3041
4066
  viewBox="0 0 24 24"
@@ -3066,7 +4091,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3066
4091
 
3067
4092
  class LinkIconComponent {
3068
4093
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LinkIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3069
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: LinkIconComponent, isStandalone: true, selector: "ea-icon-link", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
4094
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: LinkIconComponent, isStandalone: true, selector: "ea-icon-link", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
3070
4095
  <svg
3071
4096
  viewBox="0 0 24 24"
3072
4097
  fill="none"
@@ -3087,7 +4112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3087
4112
  args: [{
3088
4113
  selector: 'ea-icon-link',
3089
4114
  changeDetection: ChangeDetectionStrategy.OnPush,
3090
- host: { style: 'display: inline-flex;' },
4115
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
3091
4116
  template: `
3092
4117
  <svg
3093
4118
  viewBox="0 0 24 24"
@@ -3108,7 +4133,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3108
4133
 
3109
4134
  class LoaderIconComponent {
3110
4135
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LoaderIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3111
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: LoaderIconComponent, isStandalone: true, selector: "ea-icon-loader", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
4136
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: LoaderIconComponent, isStandalone: true, selector: "ea-icon-loader", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
3112
4137
  <svg
3113
4138
  viewBox="0 0 24 24"
3114
4139
  fill="none"
@@ -3167,7 +4192,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3167
4192
  args: [{
3168
4193
  selector: 'ea-icon-loader',
3169
4194
  changeDetection: ChangeDetectionStrategy.OnPush,
3170
- host: { style: 'display: inline-flex;' },
4195
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
3171
4196
  template: `
3172
4197
  <svg
3173
4198
  viewBox="0 0 24 24"
@@ -3226,7 +4251,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3226
4251
 
3227
4252
  class LogOutIconComponent {
3228
4253
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LogOutIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3229
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: LogOutIconComponent, isStandalone: true, selector: "ea-icon-log-out", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
4254
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: LogOutIconComponent, isStandalone: true, selector: "ea-icon-log-out", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
3230
4255
  <svg
3231
4256
  viewBox="0 0 24 24"
3232
4257
  fill="none"
@@ -3252,7 +4277,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3252
4277
  args: [{
3253
4278
  selector: 'ea-icon-log-out',
3254
4279
  changeDetection: ChangeDetectionStrategy.OnPush,
3255
- host: { style: 'display: inline-flex;' },
4280
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
3256
4281
  template: `
3257
4282
  <svg
3258
4283
  viewBox="0 0 24 24"
@@ -3278,7 +4303,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3278
4303
 
3279
4304
  class MailIconComponent {
3280
4305
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: MailIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3281
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: MailIconComponent, isStandalone: true, selector: "ea-icon-mail", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
4306
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: MailIconComponent, isStandalone: true, selector: "ea-icon-mail", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
3282
4307
  <svg
3283
4308
  viewBox="0 0 24 24"
3284
4309
  fill="none"
@@ -3300,7 +4325,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3300
4325
  args: [{
3301
4326
  selector: 'ea-icon-mail',
3302
4327
  changeDetection: ChangeDetectionStrategy.OnPush,
3303
- host: { style: 'display: inline-flex;' },
4328
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
3304
4329
  template: `
3305
4330
  <svg
3306
4331
  viewBox="0 0 24 24"
@@ -3322,7 +4347,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3322
4347
 
3323
4348
  class MenuIconComponent {
3324
4349
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: MenuIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3325
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: MenuIconComponent, isStandalone: true, selector: "ea-icon-menu", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
4350
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: MenuIconComponent, isStandalone: true, selector: "ea-icon-menu", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
3326
4351
  <svg
3327
4352
  viewBox="0 0 24 24"
3328
4353
  fill="none"
@@ -3356,7 +4381,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3356
4381
  args: [{
3357
4382
  selector: 'ea-icon-menu',
3358
4383
  changeDetection: ChangeDetectionStrategy.OnPush,
3359
- host: { style: 'display: inline-flex;' },
4384
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
3360
4385
  template: `
3361
4386
  <svg
3362
4387
  viewBox="0 0 24 24"
@@ -3390,7 +4415,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3390
4415
 
3391
4416
  class MicrosoftIconComponent {
3392
4417
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: MicrosoftIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3393
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: MicrosoftIconComponent, isStandalone: true, selector: "ea-icon-microsoft", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
4418
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: MicrosoftIconComponent, isStandalone: true, selector: "ea-icon-microsoft", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
3394
4419
  <svg
3395
4420
  viewBox="0 0 24 24"
3396
4421
  aria-hidden="true"
@@ -3428,7 +4453,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3428
4453
  args: [{
3429
4454
  selector: 'ea-icon-microsoft',
3430
4455
  changeDetection: ChangeDetectionStrategy.OnPush,
3431
- host: { style: 'display: inline-flex;' },
4456
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
3432
4457
  template: `
3433
4458
  <svg
3434
4459
  viewBox="0 0 24 24"
@@ -3466,7 +4491,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3466
4491
 
3467
4492
  class MoreHorizontalIconComponent {
3468
4493
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: MoreHorizontalIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3469
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: MoreHorizontalIconComponent, isStandalone: true, selector: "ea-icon-more-horizontal", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
4494
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: MoreHorizontalIconComponent, isStandalone: true, selector: "ea-icon-more-horizontal", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
3470
4495
  <svg
3471
4496
  viewBox="0 0 24 24"
3472
4497
  fill="none"
@@ -3497,7 +4522,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3497
4522
  args: [{
3498
4523
  selector: 'ea-icon-more-horizontal',
3499
4524
  changeDetection: ChangeDetectionStrategy.OnPush,
3500
- host: { style: 'display: inline-flex;' },
4525
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
3501
4526
  template: `
3502
4527
  <svg
3503
4528
  viewBox="0 0 24 24"
@@ -3528,7 +4553,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3528
4553
 
3529
4554
  class PencilIconComponent {
3530
4555
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: PencilIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3531
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: PencilIconComponent, isStandalone: true, selector: "ea-icon-pencil", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
4556
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: PencilIconComponent, isStandalone: true, selector: "ea-icon-pencil", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
3532
4557
  <svg
3533
4558
  viewBox="0 0 24 24"
3534
4559
  fill="none"
@@ -3548,7 +4573,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3548
4573
  args: [{
3549
4574
  selector: 'ea-icon-pencil',
3550
4575
  changeDetection: ChangeDetectionStrategy.OnPush,
3551
- host: { style: 'display: inline-flex;' },
4576
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
3552
4577
  template: `
3553
4578
  <svg
3554
4579
  viewBox="0 0 24 24"
@@ -3568,7 +4593,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3568
4593
 
3569
4594
  class SearchIconComponent {
3570
4595
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SearchIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3571
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: SearchIconComponent, isStandalone: true, selector: "ea-icon-search", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
4596
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: SearchIconComponent, isStandalone: true, selector: "ea-icon-search", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
3572
4597
  <svg
3573
4598
  viewBox="0 0 24 24"
3574
4599
  fill="none"
@@ -3592,7 +4617,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3592
4617
  args: [{
3593
4618
  selector: 'ea-icon-search',
3594
4619
  changeDetection: ChangeDetectionStrategy.OnPush,
3595
- host: { style: 'display: inline-flex;' },
4620
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
3596
4621
  template: `
3597
4622
  <svg
3598
4623
  viewBox="0 0 24 24"
@@ -3616,7 +4641,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3616
4641
 
3617
4642
  class SettingsIconComponent {
3618
4643
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: SettingsIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3619
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: SettingsIconComponent, isStandalone: true, selector: "ea-icon-settings", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
4644
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: SettingsIconComponent, isStandalone: true, selector: "ea-icon-settings", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
3620
4645
  <svg
3621
4646
  viewBox="0 0 24 24"
3622
4647
  fill="none"
@@ -3641,7 +4666,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3641
4666
  args: [{
3642
4667
  selector: 'ea-icon-settings',
3643
4668
  changeDetection: ChangeDetectionStrategy.OnPush,
3644
- host: { style: 'display: inline-flex;' },
4669
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
3645
4670
  template: `
3646
4671
  <svg
3647
4672
  viewBox="0 0 24 24"
@@ -3666,7 +4691,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3666
4691
 
3667
4692
  class StarIconComponent {
3668
4693
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: StarIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3669
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: StarIconComponent, isStandalone: true, selector: "ea-icon-star", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
4694
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: StarIconComponent, isStandalone: true, selector: "ea-icon-star", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
3670
4695
  <svg
3671
4696
  viewBox="0 0 24 24"
3672
4697
  fill="none"
@@ -3687,7 +4712,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3687
4712
  args: [{
3688
4713
  selector: 'ea-icon-star',
3689
4714
  changeDetection: ChangeDetectionStrategy.OnPush,
3690
- host: { style: 'display: inline-flex;' },
4715
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
3691
4716
  template: `
3692
4717
  <svg
3693
4718
  viewBox="0 0 24 24"
@@ -3708,7 +4733,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3708
4733
 
3709
4734
  class XCircleIconComponent {
3710
4735
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: XCircleIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3711
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: XCircleIconComponent, isStandalone: true, selector: "ea-icon-x-circle", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
4736
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: XCircleIconComponent, isStandalone: true, selector: "ea-icon-x-circle", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
3712
4737
  <svg
3713
4738
  viewBox="0 0 24 24"
3714
4739
  fill="none"
@@ -3741,7 +4766,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3741
4766
  args: [{
3742
4767
  selector: 'ea-icon-x-circle',
3743
4768
  changeDetection: ChangeDetectionStrategy.OnPush,
3744
- host: { style: 'display: inline-flex;' },
4769
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
3745
4770
  template: `
3746
4771
  <svg
3747
4772
  viewBox="0 0 24 24"
@@ -3774,7 +4799,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3774
4799
 
3775
4800
  class XTwitterIconComponent {
3776
4801
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: XTwitterIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3777
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: XTwitterIconComponent, isStandalone: true, selector: "ea-icon-x-twitter", host: { styleAttribute: "display: inline-flex;" }, ngImport: i0, template: `
4802
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: XTwitterIconComponent, isStandalone: true, selector: "ea-icon-x-twitter", host: { styleAttribute: "display: inline-flex; width: 1em; height: 1em;" }, ngImport: i0, template: `
3778
4803
  <svg
3779
4804
  viewBox="0 0 24 24"
3780
4805
  fill="#000000"
@@ -3791,7 +4816,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3791
4816
  args: [{
3792
4817
  selector: 'ea-icon-x-twitter',
3793
4818
  changeDetection: ChangeDetectionStrategy.OnPush,
3794
- host: { style: 'display: inline-flex;' },
4819
+ host: { style: 'display: inline-flex; width: 1em; height: 1em;' },
3795
4820
  template: `
3796
4821
  <svg
3797
4822
  viewBox="0 0 24 24"
@@ -3906,6 +4931,101 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
3906
4931
  ], template: "<div class=\"ea-input-field\">\n @if (label()) {\n <label\n class=\"ea-input-field__label\"\n [for]=\"id()\"\n [class.ea-input-field__label--required]=\"required()\">\n {{ label() }}\n </label>\n }\n\n <div\n class=\"ea-input-wrapper\"\n [ngClass]=\"wrapperClasses()\">\n <!-- Prefix slot (icon or text) -->\n <span class=\"ea-input-wrapper__prefix\">\n <ng-content select=\"[slot=prefix]\" />\n </span>\n\n <input\n #inputEl\n class=\"ea-input\"\n [id]=\"id()\"\n [type]=\"effectiveType()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [value]=\"value()\"\n [attr.autocomplete]=\"autocomplete() ?? null\"\n [attr.aria-invalid]=\"resolvedStatus() === 'error' || null\"\n [attr.aria-describedby]=\"\n showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n \"\n (input)=\"handleInput($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\" />\n\n <!-- Suffix slot (icon, clear button, etc.) -->\n <span class=\"ea-input-wrapper__suffix\">\n <ng-content select=\"[slot=suffix]\" />\n </span>\n\n <!-- Built-in password visibility toggle -->\n @if (type() === 'password' && showPasswordToggle()) {\n <button\n type=\"button\"\n class=\"ea-input-wrapper__password-toggle\"\n [attr.aria-label]=\"passwordVisible() ? 'Hide password' : 'Show password'\"\n [attr.aria-pressed]=\"passwordVisible()\"\n (click)=\"togglePasswordVisibility()\"\n tabindex=\"-1\">\n @if (passwordVisible()) {\n <ea-icon-eye-off />\n } @else {\n <ea-icon-eye />\n }\n </button>\n }\n </div>\n\n @if (showError()) {\n <p\n class=\"ea-input-field__message ea-input-field__message--error\"\n [id]=\"id() + '-error'\"\n role=\"alert\">\n <ea-icon-alert-circle class=\"ea-input-field__message-icon\" />\n {{ errorMsg() }}\n </p>\n }\n\n @if (showHint()) {\n <p\n class=\"ea-input-field__message ea-input-field__message--hint\"\n [id]=\"id() + '-hint'\">\n {{ hint() }}\n </p>\n }\n</div>\n", styles: [".ea-input-field{display:flex;flex-direction:column;gap:var(--space-1-5);color:var(--color-text-secondary)}.ea-input-field__label{font-size:var(--text-label-md-size);font-weight:var(--text-label-md-weight);line-height:var(--text-label-md-lh);color:var(--color-text-primary)}.ea-input-field__label--required:after{content:\" *\";color:var(--color-error-default)}.ea-input-field__message{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-helper-size);font-weight:var(--text-helper-weight);line-height:var(--text-helper-lh)}.ea-input-field__message--hint{color:inherit}.ea-input-field__message--error{color:var(--color-error-default)}.ea-input-field__message-icon{flex-shrink:0;width:.875em;height:.875em}.ea-input-wrapper{display:flex;align-items:center;gap:var(--space-2);background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-secondary);transition:var(--transition-colors),var(--transition-shadow);overflow:hidden}.ea-input-wrapper--sm{padding:0 var(--space-2);min-height:2rem}.ea-input-wrapper--sm .ea-input{font-size:var(--font-size-sm);padding:var(--space-1-5) 0}.ea-input-wrapper--md{padding:0 var(--space-3);min-height:2.5rem}.ea-input-wrapper--md .ea-input{font-size:var(--font-size-md);padding:var(--space-2) 0}.ea-input-wrapper--lg{padding:0 var(--space-4);min-height:3rem}.ea-input-wrapper--lg .ea-input{font-size:var(--font-size-lg);padding:var(--space-2-5) 0}.ea-input-wrapper--focused{border-color:var(--color-border-focus);box-shadow:var(--shadow-focus-ring)}.ea-input-wrapper--error{border-color:var(--color-error-default)}.ea-input-wrapper--error.ea-input-wrapper--focused{box-shadow:var(--shadow-focus-ring-error)}.ea-input-wrapper--success{border-color:var(--color-success-default)}.ea-input-wrapper--success.ea-input-wrapper--focused{box-shadow:var(--shadow-focus-ring-success)}.ea-input-wrapper--disabled{background-color:var(--color-bg-muted);border-color:var(--color-border-default);cursor:not-allowed;opacity:.6}.ea-input-wrapper--disabled .ea-input{cursor:not-allowed}.ea-input-wrapper--readonly{background-color:var(--color-bg-subtle)}.ea-input-wrapper__prefix,.ea-input-wrapper__suffix{display:flex;align-items:center;flex-shrink:0;color:inherit}.ea-input-wrapper__prefix:empty,.ea-input-wrapper__suffix:empty{display:none}.ea-input-wrapper__password-toggle{display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;width:1.25rem;height:1.25rem;background:none;border:none;cursor:pointer;color:var(--ea-input-toggle-color, inherit);border-radius:var(--radius-sm);transition:var(--transition-colors)}.ea-input-wrapper__password-toggle:hover{color:var(--color-text-primary)}.ea-input-wrapper__password-toggle ea-icon-eye,.ea-input-wrapper__password-toggle ea-icon-eye-off{width:1rem;height:1rem;pointer-events:none}.ea-input{flex:1;width:100%;min-width:0;background:transparent;border:none;outline:none;color:var(--color-text-primary);font-family:var(--font-family-sans);line-height:var(--line-height-normal)}.ea-input::placeholder{color:var(--color-text-tertiary)}.ea-input:-webkit-autofill,.ea-input:autofill{-webkit-text-fill-color:var(--color-text-primary);-webkit-box-shadow:0 0 0 1000px var(--color-bg-base) inset;transition:background-color 5000s ease-in-out 0s}.ea-input:disabled{cursor:not-allowed}.ea-input[type=number]::-webkit-inner-spin-button,.ea-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ea-input[type=number]{-moz-appearance:textfield;appearance:textfield}.ea-input[type=search]::-webkit-search-decoration,.ea-input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}\n"] }]
3907
4932
  }], propDecorators: { inputEl: [{ type: i0.ViewChild, args: ['inputEl', { isSignal: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }], errorMsg: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], autocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocomplete", required: false }] }], autofocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "autofocus", required: false }] }], showPasswordToggle: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPasswordToggle", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], inputFocused: [{ type: i0.Output, args: ["inputFocused"] }], inputBlurred: [{ type: i0.Output, args: ["inputBlurred"] }] } });
3908
4933
 
4934
+ class MenuComponent {
4935
+ elRef = inject((ElementRef));
4936
+ // Inputs
4937
+ placement = input('bottom-start', ...(ngDevMode ? [{ debugName: "placement" }] : /* istanbul ignore next */ []));
4938
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
4939
+ ariaLabel = input('Menu', { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
4940
+ // Two-way open binding
4941
+ open = model(false, ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
4942
+ // Outputs
4943
+ opened = output();
4944
+ closed = output();
4945
+ // Computed
4946
+ menuId = signal(`ea-menu-${Math.random().toString(36).slice(2, 9)}`, ...(ngDevMode ? [{ debugName: "menuId" }] : /* istanbul ignore next */ []));
4947
+ menuClasses = computed(() => ({
4948
+ [`ea-menu__list--${this.placement()}`]: true,
4949
+ }), ...(ngDevMode ? [{ debugName: "menuClasses" }] : /* istanbul ignore next */ []));
4950
+ toggle() {
4951
+ if (this.disabled())
4952
+ return;
4953
+ const next = !this.open();
4954
+ this.open.set(next);
4955
+ if (next) {
4956
+ this.opened.emit();
4957
+ }
4958
+ else {
4959
+ this.closed.emit();
4960
+ }
4961
+ }
4962
+ close() {
4963
+ if (!this.open())
4964
+ return;
4965
+ this.open.set(false);
4966
+ this.closed.emit();
4967
+ }
4968
+ handleTriggerKeydown(event) {
4969
+ if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {
4970
+ event.preventDefault();
4971
+ if (!this.open())
4972
+ this.toggle();
4973
+ }
4974
+ else if (event.key === 'Escape' && this.open()) {
4975
+ event.preventDefault();
4976
+ this.close();
4977
+ }
4978
+ }
4979
+ onDocumentClick(event) {
4980
+ if (!this.open())
4981
+ return;
4982
+ const target = event.target;
4983
+ if (!this.elRef.nativeElement.contains(target)) {
4984
+ this.close();
4985
+ }
4986
+ }
4987
+ onEscape() {
4988
+ if (this.open())
4989
+ this.close();
4990
+ }
4991
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4992
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: MenuComponent, isStandalone: true, selector: "ea-menu", inputs: { placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", opened: "opened", closed: "closed" }, host: { listeners: { "document:click": "onDocumentClick($event)", "document:keydown.escape": "onEscape()" } }, ngImport: i0, template: "<div class=\"ea-menu\">\n <div\n class=\"ea-menu__trigger\"\n [attr.aria-haspopup]=\"'menu'\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"menuId()\"\n (click)=\"toggle()\"\n (keydown)=\"handleTriggerKeydown($event)\">\n <ng-content select=\"[slot=trigger]\" />\n </div>\n\n @if (open()) {\n <div\n class=\"ea-menu__list\"\n role=\"menu\"\n [id]=\"menuId()\"\n [ngClass]=\"menuClasses()\"\n [attr.aria-label]=\"ariaLabel()\">\n <ng-content />\n </div>\n }\n</div>\n", styles: [".ea-menu{position:relative;display:inline-block}.ea-menu__trigger{display:inline-flex}.ea-menu__list{position:absolute;z-index:var(--z-index-dropdown);min-width:10rem;max-height:20rem;padding:var(--space-1) 0;overflow-y:auto;border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);background-color:var(--color-bg-base)}.ea-menu__list--bottom-start{top:calc(100% + var(--space-1));left:0}.ea-menu__list--bottom-end{top:calc(100% + var(--space-1));right:0}.ea-menu__list--top-start{bottom:calc(100% + var(--space-1));left:0}.ea-menu__list--top-end{bottom:calc(100% + var(--space-1));right:0}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4993
+ }
4994
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: MenuComponent, decorators: [{
4995
+ type: Component,
4996
+ args: [{ selector: 'ea-menu', imports: [NgClass], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ea-menu\">\n <div\n class=\"ea-menu__trigger\"\n [attr.aria-haspopup]=\"'menu'\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"menuId()\"\n (click)=\"toggle()\"\n (keydown)=\"handleTriggerKeydown($event)\">\n <ng-content select=\"[slot=trigger]\" />\n </div>\n\n @if (open()) {\n <div\n class=\"ea-menu__list\"\n role=\"menu\"\n [id]=\"menuId()\"\n [ngClass]=\"menuClasses()\"\n [attr.aria-label]=\"ariaLabel()\">\n <ng-content />\n </div>\n }\n</div>\n", styles: [".ea-menu{position:relative;display:inline-block}.ea-menu__trigger{display:inline-flex}.ea-menu__list{position:absolute;z-index:var(--z-index-dropdown);min-width:10rem;max-height:20rem;padding:var(--space-1) 0;overflow-y:auto;border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);background-color:var(--color-bg-base)}.ea-menu__list--bottom-start{top:calc(100% + var(--space-1));left:0}.ea-menu__list--bottom-end{top:calc(100% + var(--space-1));right:0}.ea-menu__list--top-start{bottom:calc(100% + var(--space-1));left:0}.ea-menu__list--top-end{bottom:calc(100% + var(--space-1));right:0}\n"] }]
4997
+ }], propDecorators: { placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], opened: [{ type: i0.Output, args: ["opened"] }], closed: [{ type: i0.Output, args: ["closed"] }], onDocumentClick: [{
4998
+ type: HostListener,
4999
+ args: ['document:click', ['$event']]
5000
+ }], onEscape: [{
5001
+ type: HostListener,
5002
+ args: ['document:keydown.escape']
5003
+ }] } });
5004
+
5005
+ class MenuItemComponent {
5006
+ menu = inject(MenuComponent, { optional: true });
5007
+ // Inputs
5008
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
5009
+ variant = input('default', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
5010
+ // Outputs
5011
+ itemClicked = output();
5012
+ handleClick(event) {
5013
+ if (this.disabled()) {
5014
+ event.preventDefault();
5015
+ event.stopPropagation();
5016
+ return;
5017
+ }
5018
+ this.itemClicked.emit(event);
5019
+ this.menu?.close();
5020
+ }
5021
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: MenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5022
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.8", type: MenuItemComponent, isStandalone: true, selector: "ea-menu-item", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClicked: "itemClicked" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"ea-menu-item\"\n role=\"menuitem\"\n [class.ea-menu-item--disabled]=\"disabled()\"\n [class.ea-menu-item--danger]=\"variant() === 'danger'\"\n [disabled]=\"disabled()\"\n (click)=\"handleClick($event)\">\n <span class=\"ea-menu-item__icon\">\n <ng-content select=\"[slot=icon]\" />\n </span>\n <span class=\"ea-menu-item__label\">\n <ng-content />\n </span>\n</button>\n", styles: [".ea-menu-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-family:var(--font-family-sans);text-align:left;border:none;background:transparent;color:var(--color-text-primary);cursor:pointer;transition:var(--transition-colors)}.ea-menu-item:hover:not(.ea-menu-item--disabled),.ea-menu-item:focus-visible:not(.ea-menu-item--disabled){background-color:var(--color-bg-muted)}.ea-menu-item:focus-visible{outline:none}.ea-menu-item--danger{color:var(--color-error-default)}.ea-menu-item--danger:hover:not(.ea-menu-item--disabled),.ea-menu-item--danger:focus-visible:not(.ea-menu-item--disabled){background-color:var(--color-error-subtle, var(--color-bg-muted))}.ea-menu-item--disabled{color:var(--color-text-disabled);cursor:not-allowed}.ea-menu-item__icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:1rem;height:1rem;color:inherit}.ea-menu-item__icon>*{width:1rem;height:1rem}.ea-menu-item__icon:empty{display:none}.ea-menu-item__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5023
+ }
5024
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: MenuItemComponent, decorators: [{
5025
+ type: Component,
5026
+ args: [{ selector: 'ea-menu-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n class=\"ea-menu-item\"\n role=\"menuitem\"\n [class.ea-menu-item--disabled]=\"disabled()\"\n [class.ea-menu-item--danger]=\"variant() === 'danger'\"\n [disabled]=\"disabled()\"\n (click)=\"handleClick($event)\">\n <span class=\"ea-menu-item__icon\">\n <ng-content select=\"[slot=icon]\" />\n </span>\n <span class=\"ea-menu-item__label\">\n <ng-content />\n </span>\n</button>\n", styles: [".ea-menu-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-family:var(--font-family-sans);text-align:left;border:none;background:transparent;color:var(--color-text-primary);cursor:pointer;transition:var(--transition-colors)}.ea-menu-item:hover:not(.ea-menu-item--disabled),.ea-menu-item:focus-visible:not(.ea-menu-item--disabled){background-color:var(--color-bg-muted)}.ea-menu-item:focus-visible{outline:none}.ea-menu-item--danger{color:var(--color-error-default)}.ea-menu-item--danger:hover:not(.ea-menu-item--disabled),.ea-menu-item--danger:focus-visible:not(.ea-menu-item--disabled){background-color:var(--color-error-subtle, var(--color-bg-muted))}.ea-menu-item--disabled{color:var(--color-text-disabled);cursor:not-allowed}.ea-menu-item__icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:1rem;height:1rem;color:inherit}.ea-menu-item__icon>*{width:1rem;height:1rem}.ea-menu-item__icon:empty{display:none}.ea-menu-item__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"] }]
5027
+ }], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], itemClicked: [{ type: i0.Output, args: ["itemClicked"] }] } });
5028
+
3909
5029
  class PaginatorComponent {
3910
5030
  totalItems = input.required(...(ngDevMode ? [{ debugName: "totalItems" }] : /* istanbul ignore next */ []));
3911
5031
  pageSizeOptions = input([10, 25, 50, 100], ...(ngDevMode ? [{ debugName: "pageSizeOptions" }] : /* istanbul ignore next */ []));
@@ -3971,11 +5091,11 @@ class PaginatorComponent {
3971
5091
  this.changed.emit({ page: 1, pageSize: newSize });
3972
5092
  }
3973
5093
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: PaginatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3974
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: PaginatorComponent, isStandalone: true, selector: "ea-paginator", inputs: { totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: true, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, showPageSizeSelector: { classPropertyName: "showPageSizeSelector", publicName: "showPageSizeSelector", isSignal: true, isRequired: false, transformFunction: null }, showRangeLabel: { classPropertyName: "showRangeLabel", publicName: "showRangeLabel", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { page: "pageChange", pageSize: "pageSizeChange", changed: "changed" }, ngImport: i0, template: "<div\n class=\"ea-paginator\"\n [class.ea-paginator--left]=\"placement() === 'left'\"\n [class.ea-paginator--center]=\"placement() === 'center'\"\n [class.ea-paginator--disabled]=\"disabled()\"\n role=\"navigation\"\n aria-label=\"Pagination\">\n @if (showPageSizeSelector()) {\n <div class=\"ea-paginator__page-size\">\n <label\n class=\"ea-paginator__label\"\n for=\"ea-paginator-size\">\n Rows per page:\n </label>\n <select\n class=\"ea-paginator__select\"\n id=\"ea-paginator-size\"\n [disabled]=\"disabled()\"\n (change)=\"onPageSizeChange($event)\">\n @for (size of pageSizeOptions(); track size) {\n <option\n [value]=\"size\"\n [selected]=\"size === pageSize()\">\n {{ size }}\n </option>\n }\n </select>\n </div>\n }\n\n @if (showRangeLabel()) {\n <span class=\"ea-paginator__range\">\n {{ rangeStart() }}\u2013{{ rangeEnd() }} of {{ totalItems() }}\n </span>\n }\n\n <div class=\"ea-paginator__controls\">\n <ea-button\n variant=\"ghost\"\n size=\"sm\"\n [disabled]=\"disabled() || !canGoPrev()\"\n aria-label=\"Previous page\"\n (clicked)=\"prevPage()\">\n <ea-icon-chevron-left />\n </ea-button>\n\n @for (p of visiblePages(); track $index) {\n @if (p === 'ellipsis') {\n <span class=\"ea-paginator__ellipsis\">\u2026</span>\n } @else {\n <ea-button\n class=\"ea-paginator__page-btn\"\n [class.ea-paginator__page-btn--active]=\"p === page()\"\n variant=\"ghost\"\n size=\"sm\"\n [disabled]=\"disabled()\"\n [aria-current]=\"p === page() ? 'page' : undefined\"\n (clicked)=\"goToPage(p)\">\n {{ p }}\n </ea-button>\n }\n }\n\n <ea-button\n variant=\"ghost\"\n size=\"sm\"\n [disabled]=\"disabled() || !canGoNext()\"\n aria-label=\"Next page\"\n (clicked)=\"nextPage()\">\n <ea-icon-chevron-right />\n </ea-button>\n </div>\n</div>\n", styles: [".ea-paginator{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-4);padding:var(--space-3) var(--space-4);font-family:var(--font-family-sans);font-size:var(--font-size-sm);color:var(--color-text-secondary);border-top:var(--border-width-thin) solid var(--color-border-default)}.ea-paginator--left{justify-content:flex-start}.ea-paginator--center{justify-content:center}.ea-paginator__page-size{display:flex;align-items:center;gap:var(--space-2)}.ea-paginator__label{white-space:nowrap;color:var(--color-text-secondary)}.ea-paginator__select{padding:var(--space-1) calc(var(--space-2) + 1rem) var(--space-1) var(--space-2);font-size:var(--font-size-sm);font-family:var(--font-family-sans);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);background-color:var(--color-bg-base);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 6px center;color:var(--color-text-primary);cursor:pointer;appearance:none;transition:var(--transition-colors),var(--transition-shadow)}.ea-paginator__select:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-paginator__select:disabled{opacity:.5;cursor:not-allowed}.ea-paginator__range{white-space:nowrap;color:var(--color-text-secondary)}.ea-paginator__controls{display:flex;align-items:center;gap:var(--space-1)}.ea-paginator__controls ea-icon-chevron-left,.ea-paginator__controls ea-icon-chevron-right{width:1rem;height:1rem}.ea-paginator__page-btn--active .ea-button{font-weight:var(--font-weight-medium);border-color:var(--color-brand-default);background-color:var(--color-brand-subtle);color:var(--color-brand-default)}.ea-paginator__page-btn--active .ea-button:hover:not(.ea-button--disabled){background-color:var(--color-brand-muted)}.ea-paginator__ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;color:var(--color-text-tertiary);pointer-events:none;-webkit-user-select:none;user-select:none}.ea-paginator--disabled{pointer-events:none}.ea-paginator--disabled .ea-paginator__range,.ea-paginator--disabled .ea-paginator__label{opacity:.5}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "ea-button", inputs: ["variant", "size", "type", "disabled", "loading", "fullWidth", "aria-label", "aria-current"], outputs: ["clicked"] }, { kind: "component", type: ChevronLeftIconComponent, selector: "ea-icon-chevron-left" }, { kind: "component", type: ChevronRightIconComponent, selector: "ea-icon-chevron-right" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
5094
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: PaginatorComponent, isStandalone: true, selector: "ea-paginator", inputs: { totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: true, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, showPageSizeSelector: { classPropertyName: "showPageSizeSelector", publicName: "showPageSizeSelector", isSignal: true, isRequired: false, transformFunction: null }, showRangeLabel: { classPropertyName: "showRangeLabel", publicName: "showRangeLabel", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { page: "pageChange", pageSize: "pageSizeChange", changed: "changed" }, ngImport: i0, template: "<div\n class=\"ea-paginator\"\n [class.ea-paginator--left]=\"placement() === 'left'\"\n [class.ea-paginator--center]=\"placement() === 'center'\"\n [class.ea-paginator--disabled]=\"disabled()\"\n role=\"navigation\"\n aria-label=\"Pagination\">\n @if (showPageSizeSelector()) {\n <div class=\"ea-paginator__page-size\">\n <label\n class=\"ea-paginator__label\"\n for=\"ea-paginator-size\">\n Rows per page:\n </label>\n <select\n class=\"ea-paginator__select\"\n id=\"ea-paginator-size\"\n [disabled]=\"disabled()\"\n (change)=\"onPageSizeChange($event)\">\n @for (size of pageSizeOptions(); track size) {\n <option\n [value]=\"size\"\n [selected]=\"size === pageSize()\">\n {{ size }}\n </option>\n }\n </select>\n </div>\n }\n\n @if (showRangeLabel()) {\n <span class=\"ea-paginator__range\">\n {{ rangeStart() }}\u2013{{ rangeEnd() }} of {{ totalItems() }}\n </span>\n }\n\n <div class=\"ea-paginator__controls\">\n <ea-button\n variant=\"ghost\"\n size=\"sm\"\n [disabled]=\"disabled() || !canGoPrev()\"\n aria-label=\"Previous page\"\n (clicked)=\"prevPage()\">\n <ea-icon-chevron-left />\n </ea-button>\n\n @for (p of visiblePages(); track $index) {\n @if (p === 'ellipsis') {\n <span class=\"ea-paginator__ellipsis\">\u2026</span>\n } @else {\n <ea-button\n class=\"ea-paginator__page-btn\"\n [class.ea-paginator__page-btn--active]=\"p === page()\"\n variant=\"ghost\"\n size=\"sm\"\n [disabled]=\"disabled()\"\n [aria-current]=\"p === page() ? 'page' : undefined\"\n (clicked)=\"goToPage(p)\">\n {{ p }}\n </ea-button>\n }\n }\n\n <ea-button\n variant=\"ghost\"\n size=\"sm\"\n [disabled]=\"disabled() || !canGoNext()\"\n aria-label=\"Next page\"\n (clicked)=\"nextPage()\">\n <ea-icon-chevron-right />\n </ea-button>\n </div>\n</div>\n", styles: [".ea-paginator{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-4);padding:var(--space-3) var(--space-4);font-family:var(--font-family-sans);font-size:var(--font-size-sm);color:var(--color-text-secondary);border-top:var(--border-width-thin) solid var(--color-border-default)}.ea-paginator--left{justify-content:flex-start}.ea-paginator--center{justify-content:center}.ea-paginator__page-size{display:flex;align-items:center;gap:var(--space-2)}.ea-paginator__label{white-space:nowrap;color:var(--color-text-secondary)}.ea-paginator__select{padding:var(--space-1) calc(var(--space-2) + 1rem) var(--space-1) var(--space-2);font-size:var(--font-size-sm);font-family:var(--font-family-sans);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);background-color:var(--color-bg-base);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 6px center;color:var(--color-text-primary);cursor:pointer;appearance:none;transition:var(--transition-colors),var(--transition-shadow)}.ea-paginator__select:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-paginator__select:disabled{opacity:.5;cursor:not-allowed}.ea-paginator__range{white-space:nowrap;color:var(--color-text-secondary)}.ea-paginator__controls{display:flex;align-items:center;gap:var(--space-1)}.ea-paginator__controls ea-icon-chevron-left,.ea-paginator__controls ea-icon-chevron-right{width:1rem;height:1rem}.ea-paginator__page-btn--active .ea-button{font-weight:var(--font-weight-medium);border-color:var(--color-brand-default);background-color:var(--color-brand-subtle);color:var(--color-brand-default)}.ea-paginator__page-btn--active .ea-button:hover:not(.ea-button--disabled){background-color:var(--color-brand-muted)}.ea-paginator__ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;color:var(--color-text-tertiary);pointer-events:none;-webkit-user-select:none;user-select:none}.ea-paginator--disabled{pointer-events:none}.ea-paginator--disabled .ea-paginator__range,.ea-paginator--disabled .ea-paginator__label{opacity:.5}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "ea-button", inputs: ["variant", "size", "type", "disabled", "loading", "fullWidth", "aria-label", "aria-current"], outputs: ["clicked"] }, { kind: "component", type: ChevronLeftIconComponent, selector: "ea-icon-chevron-left" }, { kind: "component", type: ChevronRightIconComponent, selector: "ea-icon-chevron-right" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3975
5095
  }
3976
5096
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: PaginatorComponent, decorators: [{
3977
5097
  type: Component,
3978
- args: [{ selector: 'ea-paginator', imports: [ButtonComponent, ChevronLeftIconComponent, ChevronRightIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"ea-paginator\"\n [class.ea-paginator--left]=\"placement() === 'left'\"\n [class.ea-paginator--center]=\"placement() === 'center'\"\n [class.ea-paginator--disabled]=\"disabled()\"\n role=\"navigation\"\n aria-label=\"Pagination\">\n @if (showPageSizeSelector()) {\n <div class=\"ea-paginator__page-size\">\n <label\n class=\"ea-paginator__label\"\n for=\"ea-paginator-size\">\n Rows per page:\n </label>\n <select\n class=\"ea-paginator__select\"\n id=\"ea-paginator-size\"\n [disabled]=\"disabled()\"\n (change)=\"onPageSizeChange($event)\">\n @for (size of pageSizeOptions(); track size) {\n <option\n [value]=\"size\"\n [selected]=\"size === pageSize()\">\n {{ size }}\n </option>\n }\n </select>\n </div>\n }\n\n @if (showRangeLabel()) {\n <span class=\"ea-paginator__range\">\n {{ rangeStart() }}\u2013{{ rangeEnd() }} of {{ totalItems() }}\n </span>\n }\n\n <div class=\"ea-paginator__controls\">\n <ea-button\n variant=\"ghost\"\n size=\"sm\"\n [disabled]=\"disabled() || !canGoPrev()\"\n aria-label=\"Previous page\"\n (clicked)=\"prevPage()\">\n <ea-icon-chevron-left />\n </ea-button>\n\n @for (p of visiblePages(); track $index) {\n @if (p === 'ellipsis') {\n <span class=\"ea-paginator__ellipsis\">\u2026</span>\n } @else {\n <ea-button\n class=\"ea-paginator__page-btn\"\n [class.ea-paginator__page-btn--active]=\"p === page()\"\n variant=\"ghost\"\n size=\"sm\"\n [disabled]=\"disabled()\"\n [aria-current]=\"p === page() ? 'page' : undefined\"\n (clicked)=\"goToPage(p)\">\n {{ p }}\n </ea-button>\n }\n }\n\n <ea-button\n variant=\"ghost\"\n size=\"sm\"\n [disabled]=\"disabled() || !canGoNext()\"\n aria-label=\"Next page\"\n (clicked)=\"nextPage()\">\n <ea-icon-chevron-right />\n </ea-button>\n </div>\n</div>\n", styles: [".ea-paginator{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-4);padding:var(--space-3) var(--space-4);font-family:var(--font-family-sans);font-size:var(--font-size-sm);color:var(--color-text-secondary);border-top:var(--border-width-thin) solid var(--color-border-default)}.ea-paginator--left{justify-content:flex-start}.ea-paginator--center{justify-content:center}.ea-paginator__page-size{display:flex;align-items:center;gap:var(--space-2)}.ea-paginator__label{white-space:nowrap;color:var(--color-text-secondary)}.ea-paginator__select{padding:var(--space-1) calc(var(--space-2) + 1rem) var(--space-1) var(--space-2);font-size:var(--font-size-sm);font-family:var(--font-family-sans);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);background-color:var(--color-bg-base);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 6px center;color:var(--color-text-primary);cursor:pointer;appearance:none;transition:var(--transition-colors),var(--transition-shadow)}.ea-paginator__select:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-paginator__select:disabled{opacity:.5;cursor:not-allowed}.ea-paginator__range{white-space:nowrap;color:var(--color-text-secondary)}.ea-paginator__controls{display:flex;align-items:center;gap:var(--space-1)}.ea-paginator__controls ea-icon-chevron-left,.ea-paginator__controls ea-icon-chevron-right{width:1rem;height:1rem}.ea-paginator__page-btn--active .ea-button{font-weight:var(--font-weight-medium);border-color:var(--color-brand-default);background-color:var(--color-brand-subtle);color:var(--color-brand-default)}.ea-paginator__page-btn--active .ea-button:hover:not(.ea-button--disabled){background-color:var(--color-brand-muted)}.ea-paginator__ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;color:var(--color-text-tertiary);pointer-events:none;-webkit-user-select:none;user-select:none}.ea-paginator--disabled{pointer-events:none}.ea-paginator--disabled .ea-paginator__range,.ea-paginator--disabled .ea-paginator__label{opacity:.5}\n"] }]
5098
+ args: [{ selector: 'ea-paginator', imports: [ButtonComponent, ChevronLeftIconComponent, ChevronRightIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"ea-paginator\"\n [class.ea-paginator--left]=\"placement() === 'left'\"\n [class.ea-paginator--center]=\"placement() === 'center'\"\n [class.ea-paginator--disabled]=\"disabled()\"\n role=\"navigation\"\n aria-label=\"Pagination\">\n @if (showPageSizeSelector()) {\n <div class=\"ea-paginator__page-size\">\n <label\n class=\"ea-paginator__label\"\n for=\"ea-paginator-size\">\n Rows per page:\n </label>\n <select\n class=\"ea-paginator__select\"\n id=\"ea-paginator-size\"\n [disabled]=\"disabled()\"\n (change)=\"onPageSizeChange($event)\">\n @for (size of pageSizeOptions(); track size) {\n <option\n [value]=\"size\"\n [selected]=\"size === pageSize()\">\n {{ size }}\n </option>\n }\n </select>\n </div>\n }\n\n @if (showRangeLabel()) {\n <span class=\"ea-paginator__range\">\n {{ rangeStart() }}\u2013{{ rangeEnd() }} of {{ totalItems() }}\n </span>\n }\n\n <div class=\"ea-paginator__controls\">\n <ea-button\n variant=\"ghost\"\n size=\"sm\"\n [disabled]=\"disabled() || !canGoPrev()\"\n aria-label=\"Previous page\"\n (clicked)=\"prevPage()\">\n <ea-icon-chevron-left />\n </ea-button>\n\n @for (p of visiblePages(); track $index) {\n @if (p === 'ellipsis') {\n <span class=\"ea-paginator__ellipsis\">\u2026</span>\n } @else {\n <ea-button\n class=\"ea-paginator__page-btn\"\n [class.ea-paginator__page-btn--active]=\"p === page()\"\n variant=\"ghost\"\n size=\"sm\"\n [disabled]=\"disabled()\"\n [aria-current]=\"p === page() ? 'page' : undefined\"\n (clicked)=\"goToPage(p)\">\n {{ p }}\n </ea-button>\n }\n }\n\n <ea-button\n variant=\"ghost\"\n size=\"sm\"\n [disabled]=\"disabled() || !canGoNext()\"\n aria-label=\"Next page\"\n (clicked)=\"nextPage()\">\n <ea-icon-chevron-right />\n </ea-button>\n </div>\n</div>\n", styles: [".ea-paginator{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-4);padding:var(--space-3) var(--space-4);font-family:var(--font-family-sans);font-size:var(--font-size-sm);color:var(--color-text-secondary);border-top:var(--border-width-thin) solid var(--color-border-default)}.ea-paginator--left{justify-content:flex-start}.ea-paginator--center{justify-content:center}.ea-paginator__page-size{display:flex;align-items:center;gap:var(--space-2)}.ea-paginator__label{white-space:nowrap;color:var(--color-text-secondary)}.ea-paginator__select{padding:var(--space-1) calc(var(--space-2) + 1rem) var(--space-1) var(--space-2);font-size:var(--font-size-sm);font-family:var(--font-family-sans);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);background-color:var(--color-bg-base);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 6px center;color:var(--color-text-primary);cursor:pointer;appearance:none;transition:var(--transition-colors),var(--transition-shadow)}.ea-paginator__select:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.ea-paginator__select:disabled{opacity:.5;cursor:not-allowed}.ea-paginator__range{white-space:nowrap;color:var(--color-text-secondary)}.ea-paginator__controls{display:flex;align-items:center;gap:var(--space-1)}.ea-paginator__controls ea-icon-chevron-left,.ea-paginator__controls ea-icon-chevron-right{width:1rem;height:1rem}.ea-paginator__page-btn--active .ea-button{font-weight:var(--font-weight-medium);border-color:var(--color-brand-default);background-color:var(--color-brand-subtle);color:var(--color-brand-default)}.ea-paginator__page-btn--active .ea-button:hover:not(.ea-button--disabled){background-color:var(--color-brand-muted)}.ea-paginator__ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;color:var(--color-text-tertiary);pointer-events:none;-webkit-user-select:none;user-select:none}.ea-paginator--disabled{pointer-events:none}.ea-paginator--disabled .ea-paginator__range,.ea-paginator--disabled .ea-paginator__label{opacity:.5}\n"] }]
3979
5099
  }], propDecorators: { totalItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalItems", required: true }] }], pageSizeOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizeOptions", required: false }] }], showPageSizeSelector: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPageSizeSelector", required: false }] }], showRangeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRangeLabel", required: false }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], page: [{ type: i0.Input, args: [{ isSignal: true, alias: "page", required: false }] }, { type: i0.Output, args: ["pageChange"] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSize", required: false }] }, { type: i0.Output, args: ["pageSizeChange"] }], changed: [{ type: i0.Output, args: ["changed"] }] } });
3980
5100
 
3981
5101
  class ProgressBarComponent {
@@ -4425,5 +5545,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
4425
5545
  * Generated bundle index. Do not edit.
4426
5546
  */
4427
5547
 
4428
- export { AccordionComponent, AccordionItemComponent, AlertCircleIconComponent, AlertComponent, AlertTriangleIconComponent, AppleIconComponent, ArrowDownIconComponent, ArrowLeftIconComponent, ArrowRightIconComponent, ArrowUpIconComponent, AvatarComponent, AvatarEditorComponent, BadgeComponent, BellIconComponent, ButtonComponent, CalendarIconComponent, CameraIconComponent, CardComponent, CheckCircleIconComponent, CheckIconComponent, CheckboxComponent, ChevronDownIconComponent, ChevronLeftIconComponent, ChevronRightIconComponent, ChevronUpIconComponent, ChevronsUpDownIconComponent, ClockIconComponent, CodeInputComponent, CopyIconComponent, DataTableComponent, DialogComponent, DividerComponent, DownloadIconComponent, DropdownComponent, ExternalLinkIconComponent, EyeIconComponent, EyeOffIconComponent, FacebookIconComponent, FileIconComponent, FilterIconComponent, GithubIconComponent, GoogleIconComponent, HeartIconComponent, ImageIconComponent, InfoIconComponent, InputComponent, LinkIconComponent, LoaderIconComponent, LogOutIconComponent, MailIconComponent, MenuIconComponent, MicrosoftIconComponent, MinusIconComponent, MoreHorizontalIconComponent, PaginatorComponent, PencilIconComponent, PlusIconComponent, ProgressBarComponent, RadioComponent, RadioGroupComponent, RotateCcwIconComponent, SearchIconComponent, SettingsIconComponent, SkeletonComponent, SpinnerComponent, StarIconComponent, SwitchComponent, TabComponent, TabsComponent, TagComponent, TextareaComponent, ToastComponent, ToastService, TooltipDirective, TrashIconComponent, UploadIconComponent, UserIconComponent, XCircleIconComponent, XIconComponent, XTwitterIconComponent };
5548
+ export { AccordionComponent, AccordionItemComponent, AlertCircleIconComponent, AlertComponent, AlertTriangleIconComponent, AppleIconComponent, ArrowDownIconComponent, ArrowLeftIconComponent, ArrowRightIconComponent, ArrowUpIconComponent, AutocompleteComponent, AvatarComponent, AvatarEditorComponent, BadgeComponent, BellIconComponent, BreadcrumbsComponent, ButtonComponent, CalendarIconComponent, CameraIconComponent, CardComponent, CheckCircleIconComponent, CheckIconComponent, CheckboxComponent, ChevronDownIconComponent, ChevronLeftIconComponent, ChevronRightIconComponent, ChevronUpIconComponent, ChevronsUpDownIconComponent, ClockIconComponent, CodeInputComponent, CopyIconComponent, DataTableComponent, DatePickerComponent, DialogComponent, DividerComponent, DownloadIconComponent, DrawerComponent, DropdownComponent, EagamiIconComponent, EagamiWordmarkComponent, ExternalLinkIconComponent, EyeIconComponent, EyeOffIconComponent, FacebookIconComponent, FileIconComponent, FilterIconComponent, GithubIconComponent, GoogleIconComponent, HeartIconComponent, ImageIconComponent, InfoIconComponent, InputComponent, LinkIconComponent, LoaderIconComponent, LogOutIconComponent, MailIconComponent, MenuComponent, MenuIconComponent, MenuItemComponent, MicrosoftIconComponent, MinusIconComponent, MoreHorizontalIconComponent, PaginatorComponent, PencilIconComponent, PlusIconComponent, ProgressBarComponent, RadioComponent, RadioGroupComponent, RotateCcwIconComponent, SearchIconComponent, SettingsIconComponent, SkeletonComponent, SpinnerComponent, StarIconComponent, SwitchComponent, TabComponent, TabsComponent, TagComponent, TextareaComponent, ToastComponent, ToastService, TooltipDirective, TrashIconComponent, UploadIconComponent, UserIconComponent, XCircleIconComponent, XIconComponent, XTwitterIconComponent };
4429
5549
  //# sourceMappingURL=eagami-ui.mjs.map