@eagami/ui 5.10.1 → 5.12.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.
@@ -604,10 +604,6 @@ const messages$e = {
604
604
  moveAllToSource: 'نقل الكل إلى اليسار',
605
605
  empty: 'لا توجد عناصر',
606
606
  },
607
- tree: {
608
- expand: 'توسيع',
609
- collapse: 'طي',
610
- },
611
607
  validation: {
612
608
  required: 'هذا الحقل مطلوب',
613
609
  email: 'أدخل عنوان بريد إلكتروني صالحًا',
@@ -619,7 +615,7 @@ const messages$e = {
619
615
  invalid: 'قيمة غير صالحة',
620
616
  },
621
617
  wordmark: {
622
- overline: 'صناعة يدوية من',
618
+ overline: 'من تصميم',
623
619
  tagline: 'تصميم ويب أنيق',
624
620
  },
625
621
  };
@@ -810,10 +806,6 @@ const messages$d = {
810
806
  moveAllToSource: 'Alle nach links verschieben',
811
807
  empty: 'Keine Einträge',
812
808
  },
813
- tree: {
814
- expand: 'Aufklappen',
815
- collapse: 'Zuklappen',
816
- },
817
809
  validation: {
818
810
  required: 'Dieses Feld ist erforderlich',
819
811
  email: 'Gültige E-Mail-Adresse eingeben',
@@ -825,7 +817,7 @@ const messages$d = {
825
817
  invalid: 'Ungültiger Wert',
826
818
  },
827
819
  wordmark: {
828
- overline: 'handgefertigt von',
820
+ overline: 'gestaltet von',
829
821
  tagline: 'elegantes Webdesign',
830
822
  },
831
823
  };
@@ -1016,10 +1008,6 @@ const messages$c = {
1016
1008
  moveAllToSource: 'Μεταφορά όλων στην πηγή',
1017
1009
  empty: 'Καμία εγγραφή',
1018
1010
  },
1019
- tree: {
1020
- expand: 'Ανάπτυξη',
1021
- collapse: 'Σύμπτυξη',
1022
- },
1023
1011
  validation: {
1024
1012
  required: 'Αυτό το πεδίο είναι υποχρεωτικό',
1025
1013
  email: 'Εισαγάγετε έγκυρη διεύθυνση email',
@@ -1031,7 +1019,7 @@ const messages$c = {
1031
1019
  invalid: 'Μη έγκυρη τιμή',
1032
1020
  },
1033
1021
  wordmark: {
1034
- overline: 'φτιαγμένο με μεράκι από',
1022
+ overline: 'σχεδιασμένο από',
1035
1023
  tagline: 'κομψός σχεδιασμός ιστού',
1036
1024
  },
1037
1025
  };
@@ -1222,10 +1210,6 @@ const messages$b = {
1222
1210
  moveAllToSource: 'Move all to source',
1223
1211
  empty: 'No items',
1224
1212
  },
1225
- tree: {
1226
- expand: 'Expand',
1227
- collapse: 'Collapse',
1228
- },
1229
1213
  validation: {
1230
1214
  required: 'This field is required',
1231
1215
  email: 'Enter a valid email address',
@@ -1237,7 +1221,7 @@ const messages$b = {
1237
1221
  invalid: 'Invalid value',
1238
1222
  },
1239
1223
  wordmark: {
1240
- overline: 'handcrafted by',
1224
+ overline: 'designed by',
1241
1225
  tagline: 'elegant web design',
1242
1226
  },
1243
1227
  };
@@ -1428,10 +1412,6 @@ const messages$a = {
1428
1412
  moveAllToSource: 'Mover todos al origen',
1429
1413
  empty: 'Sin elementos',
1430
1414
  },
1431
- tree: {
1432
- expand: 'Expandir',
1433
- collapse: 'Contraer',
1434
- },
1435
1415
  validation: {
1436
1416
  required: 'Este campo es obligatorio',
1437
1417
  email: 'Introduce un correo electrónico válido',
@@ -1443,7 +1423,7 @@ const messages$a = {
1443
1423
  invalid: 'Valor no válido',
1444
1424
  },
1445
1425
  wordmark: {
1446
- overline: 'hecho a mano por',
1426
+ overline: 'diseñado por',
1447
1427
  tagline: 'diseño web elegante',
1448
1428
  },
1449
1429
  };
@@ -1634,10 +1614,6 @@ const messages$9 = {
1634
1614
  moveAllToSource: 'Tout déplacer vers la source',
1635
1615
  empty: 'Aucun élément',
1636
1616
  },
1637
- tree: {
1638
- expand: 'Développer',
1639
- collapse: 'Réduire',
1640
- },
1641
1617
  validation: {
1642
1618
  required: 'Ce champ est obligatoire',
1643
1619
  email: 'Saisissez une adresse e-mail valide',
@@ -1649,7 +1625,7 @@ const messages$9 = {
1649
1625
  invalid: 'Valeur invalide',
1650
1626
  },
1651
1627
  wordmark: {
1652
- overline: 'conçu avec soin par',
1628
+ overline: 'conçu par',
1653
1629
  tagline: 'design web élégant',
1654
1630
  },
1655
1631
  };
@@ -1840,10 +1816,6 @@ const messages$8 = {
1840
1816
  moveAllToSource: 'העברת הכול למקור',
1841
1817
  empty: 'אין פריטים',
1842
1818
  },
1843
- tree: {
1844
- expand: 'הרחבה',
1845
- collapse: 'כיווץ',
1846
- },
1847
1819
  validation: {
1848
1820
  required: 'שדה זה הוא חובה',
1849
1821
  email: 'הזן כתובת אימייל תקינה',
@@ -1855,7 +1827,7 @@ const messages$8 = {
1855
1827
  invalid: 'ערך לא תקין',
1856
1828
  },
1857
1829
  wordmark: {
1858
- overline: 'מעשה ידי',
1830
+ overline: 'בעיצוב',
1859
1831
  tagline: 'עיצוב אתרים אלגנטי',
1860
1832
  },
1861
1833
  };
@@ -2046,10 +2018,6 @@ const messages$7 = {
2046
2018
  moveAllToSource: 'सभी को स्रोत में ले जाएं',
2047
2019
  empty: 'कोई आइटम नहीं',
2048
2020
  },
2049
- tree: {
2050
- expand: 'विस्तृत करें',
2051
- collapse: 'संक्षिप्त करें',
2052
- },
2053
2021
  validation: {
2054
2022
  required: 'यह फ़ील्ड आवश्यक है',
2055
2023
  email: 'एक मान्य ईमेल पता दर्ज करें',
@@ -2061,7 +2029,7 @@ const messages$7 = {
2061
2029
  invalid: 'अमान्य मान',
2062
2030
  },
2063
2031
  wordmark: {
2064
- overline: 'हस्तनिर्मित द्वारा',
2032
+ overline: 'डिज़ाइन द्वारा',
2065
2033
  tagline: 'सुरुचिपूर्ण वेब डिज़ाइन',
2066
2034
  },
2067
2035
  };
@@ -2252,10 +2220,6 @@ const messages$6 = {
2252
2220
  moveAllToSource: 'Færa allt til baka',
2253
2221
  empty: 'Engin atriði',
2254
2222
  },
2255
- tree: {
2256
- expand: 'Fletta út',
2257
- collapse: 'Fella saman',
2258
- },
2259
2223
  validation: {
2260
2224
  required: 'Þennan reit þarf að fylla út',
2261
2225
  email: 'Sláðu inn gilt netfang',
@@ -2267,7 +2231,7 @@ const messages$6 = {
2267
2231
  invalid: 'Ógilt gildi',
2268
2232
  },
2269
2233
  wordmark: {
2270
- overline: 'handunnið af',
2234
+ overline: 'hannað af',
2271
2235
  tagline: 'glæsileg vefhönnun',
2272
2236
  },
2273
2237
  };
@@ -2458,10 +2422,6 @@ const messages$5 = {
2458
2422
  moveAllToSource: 'Alles naar links verplaatsen',
2459
2423
  empty: 'Geen items',
2460
2424
  },
2461
- tree: {
2462
- expand: 'Uitvouwen',
2463
- collapse: 'Invouwen',
2464
- },
2465
2425
  validation: {
2466
2426
  required: 'Dit veld is verplicht',
2467
2427
  email: 'Voer een geldig e-mailadres in',
@@ -2473,7 +2433,7 @@ const messages$5 = {
2473
2433
  invalid: 'Ongeldige waarde',
2474
2434
  },
2475
2435
  wordmark: {
2476
- overline: 'handgemaakt door',
2436
+ overline: 'ontworpen door',
2477
2437
  tagline: 'elegant webontwerp',
2478
2438
  },
2479
2439
  };
@@ -2664,10 +2624,6 @@ const messages$4 = {
2664
2624
  moveAllToSource: 'Przenieś wszystko do źródła',
2665
2625
  empty: 'Brak elementów',
2666
2626
  },
2667
- tree: {
2668
- expand: 'Rozwiń',
2669
- collapse: 'Zwiń',
2670
- },
2671
2627
  validation: {
2672
2628
  required: 'To pole jest wymagane',
2673
2629
  email: 'Podaj prawidłowy adres e-mail',
@@ -2679,7 +2635,7 @@ const messages$4 = {
2679
2635
  invalid: 'Nieprawidłowa wartość',
2680
2636
  },
2681
2637
  wordmark: {
2682
- overline: 'ręcznie wykonane przez',
2638
+ overline: 'zaprojektowane przez',
2683
2639
  tagline: 'elegancki projekt stron',
2684
2640
  },
2685
2641
  };
@@ -2870,10 +2826,6 @@ const messages$3 = {
2870
2826
  moveAllToSource: 'Mover todos para a origem',
2871
2827
  empty: 'Nenhum item',
2872
2828
  },
2873
- tree: {
2874
- expand: 'Expandir',
2875
- collapse: 'Recolher',
2876
- },
2877
2829
  validation: {
2878
2830
  required: 'Este campo é obrigatório',
2879
2831
  email: 'Insira um e-mail válido',
@@ -2885,7 +2837,7 @@ const messages$3 = {
2885
2837
  invalid: 'Valor inválido',
2886
2838
  },
2887
2839
  wordmark: {
2888
- overline: 'feito à mão por',
2840
+ overline: 'projetado por',
2889
2841
  tagline: 'web design elegante',
2890
2842
  },
2891
2843
  };
@@ -3076,10 +3028,6 @@ const messages$2 = {
3076
3028
  moveAllToSource: 'Переместить все влево',
3077
3029
  empty: 'Нет элементов',
3078
3030
  },
3079
- tree: {
3080
- expand: 'Развернуть',
3081
- collapse: 'Свернуть',
3082
- },
3083
3031
  validation: {
3084
3032
  required: 'Это поле обязательно для заполнения',
3085
3033
  email: 'Введите действительный адрес электронной почты',
@@ -3091,7 +3039,7 @@ const messages$2 = {
3091
3039
  invalid: 'Недопустимое значение',
3092
3040
  },
3093
3041
  wordmark: {
3094
- overline: 'ручная работа от',
3042
+ overline: 'дизайн от',
3095
3043
  tagline: 'элегантный веб-дизайн',
3096
3044
  },
3097
3045
  };
@@ -3282,10 +3230,6 @@ const messages$1 = {
3282
3230
  moveAllToSource: 'Перенести все вліво',
3283
3231
  empty: 'Немає елементів',
3284
3232
  },
3285
- tree: {
3286
- expand: 'Розгорнути',
3287
- collapse: 'Згорнути',
3288
- },
3289
3233
  validation: {
3290
3234
  required: 'Це поле обов’язкове',
3291
3235
  email: 'Введіть дійсну електронну адресу',
@@ -3297,7 +3241,7 @@ const messages$1 = {
3297
3241
  invalid: 'Неправильне значення',
3298
3242
  },
3299
3243
  wordmark: {
3300
- overline: 'ручна робота від',
3244
+ overline: 'дизайн від',
3301
3245
  tagline: 'елегантний веб-дизайн',
3302
3246
  },
3303
3247
  };
@@ -3488,10 +3432,6 @@ const messages = {
3488
3432
  moveAllToSource: '将全部移至左侧',
3489
3433
  empty: '无项目',
3490
3434
  },
3491
- tree: {
3492
- expand: '展开',
3493
- collapse: '折叠',
3494
- },
3495
3435
  validation: {
3496
3436
  required: '此字段为必填项',
3497
3437
  email: '请输入有效的电子邮件地址',
@@ -3503,7 +3443,7 @@ const messages = {
3503
3443
  invalid: '值无效',
3504
3444
  },
3505
3445
  wordmark: {
3506
- overline: '匠心打造',
3446
+ overline: '设计出品',
3507
3447
  tagline: '优雅的网页设计',
3508
3448
  },
3509
3449
  };
@@ -9193,11 +9133,11 @@ class DialogComponent {
9193
9133
  this.handleClose();
9194
9134
  }
9195
9135
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: DialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9196
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: DialogComponent, isStandalone: true, selector: "ea-dialog", inputs: { width: { classPropertyName: "width", publicName: "width", 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 }, id: { classPropertyName: "id", publicName: "id", 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 [id]=\"id()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-labelledby]=\"!ariaLabel() ? id() + '-header' : null\"\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 [attr.aria-label]=\"i18n.messages().dialog.close\"\n (click)=\"handleClose()\">\n <ea-icon-x />\n </button>\n }\n\n <div\n class=\"ea-dialog__header\"\n [id]=\"id() + '-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(--ea-dialog-panel-background-color, var(--color-bg-elevated));border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-height:85vh;overflow:hidden}@media(forced-colors:active){.ea-dialog__panel{border:1px solid CanvasText}}.ea-dialog__panel--xs{width:20rem}.ea-dialog__panel--sm{width:24rem}.ea-dialog__panel--md{width:32rem}.ea-dialog__panel--lg{width:42rem}.ea-dialog__panel--xl{width:52rem}.ea-dialog__panel--full{width:calc(100vw - 2rem);height:calc(100vh - 2rem);max-height:calc(100vh - 2rem)}.ea-dialog__close{z-index:1;position:absolute;top:var(--space-3);inset-inline-end:var(--space-3);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ea-icon-button-size, 1.75em);height:var(--ea-icon-button-size, 1.75em);padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-dialog__close>*{font-size:1.25em}.ea-dialog__close:hover{background-color:var(--color-state-hover);color:var(--color-text-primary)}.ea-dialog__close:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-dialog__close:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-dialog__close:disabled{cursor:not-allowed;opacity:.5}.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 });
9136
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: DialogComponent, isStandalone: true, selector: "ea-dialog", inputs: { width: { classPropertyName: "width", publicName: "width", 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 }, id: { classPropertyName: "id", publicName: "id", 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 [id]=\"id()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-labelledby]=\"!ariaLabel() ? id() + '-header' : null\"\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 [attr.aria-label]=\"i18n.messages().dialog.close\"\n (click)=\"handleClose()\">\n <ea-icon-x />\n </button>\n }\n\n <div\n class=\"ea-dialog__header\"\n [id]=\"id() + '-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;width:var(--ea-dialog-size, 32rem);background-color:var(--ea-dialog-panel-background-color, var(--color-bg-elevated));border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-height:85vh;overflow:hidden}@media(forced-colors:active){.ea-dialog__panel{border:1px solid CanvasText}}.ea-dialog__panel--xs{--ea-dialog-size: 20rem}.ea-dialog__panel--sm{--ea-dialog-size: 24rem}.ea-dialog__panel--md{--ea-dialog-size: 32rem}.ea-dialog__panel--lg{--ea-dialog-size: 42rem}.ea-dialog__panel--xl{--ea-dialog-size: 52rem}.ea-dialog__panel--full{width:calc(100vw - 2rem);height:calc(100vh - 2rem);max-height:calc(100vh - 2rem)}.ea-dialog__close{z-index:1;position:absolute;top:var(--space-3);inset-inline-end:var(--space-3);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ea-icon-button-size, 1.75em);height:var(--ea-icon-button-size, 1.75em);padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-dialog__close>*{font-size:1.25em}.ea-dialog__close:hover{background-color:var(--color-state-hover);color:var(--color-text-primary)}.ea-dialog__close:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-dialog__close:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-dialog__close:disabled{cursor:not-allowed;opacity:.5}.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 });
9197
9137
  }
9198
9138
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: DialogComponent, decorators: [{
9199
9139
  type: Component,
9200
- args: [{ selector: 'ea-dialog', imports: [NgClass, XIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<dialog\n #dialogEl\n class=\"ea-dialog\"\n [id]=\"id()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-labelledby]=\"!ariaLabel() ? id() + '-header' : null\"\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 [attr.aria-label]=\"i18n.messages().dialog.close\"\n (click)=\"handleClose()\">\n <ea-icon-x />\n </button>\n }\n\n <div\n class=\"ea-dialog__header\"\n [id]=\"id() + '-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(--ea-dialog-panel-background-color, var(--color-bg-elevated));border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-height:85vh;overflow:hidden}@media(forced-colors:active){.ea-dialog__panel{border:1px solid CanvasText}}.ea-dialog__panel--xs{width:20rem}.ea-dialog__panel--sm{width:24rem}.ea-dialog__panel--md{width:32rem}.ea-dialog__panel--lg{width:42rem}.ea-dialog__panel--xl{width:52rem}.ea-dialog__panel--full{width:calc(100vw - 2rem);height:calc(100vh - 2rem);max-height:calc(100vh - 2rem)}.ea-dialog__close{z-index:1;position:absolute;top:var(--space-3);inset-inline-end:var(--space-3);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ea-icon-button-size, 1.75em);height:var(--ea-icon-button-size, 1.75em);padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-dialog__close>*{font-size:1.25em}.ea-dialog__close:hover{background-color:var(--color-state-hover);color:var(--color-text-primary)}.ea-dialog__close:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-dialog__close:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-dialog__close:disabled{cursor:not-allowed;opacity:.5}.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"] }]
9140
+ args: [{ selector: 'ea-dialog', imports: [NgClass, XIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<dialog\n #dialogEl\n class=\"ea-dialog\"\n [id]=\"id()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-labelledby]=\"!ariaLabel() ? id() + '-header' : null\"\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 [attr.aria-label]=\"i18n.messages().dialog.close\"\n (click)=\"handleClose()\">\n <ea-icon-x />\n </button>\n }\n\n <div\n class=\"ea-dialog__header\"\n [id]=\"id() + '-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;width:var(--ea-dialog-size, 32rem);background-color:var(--ea-dialog-panel-background-color, var(--color-bg-elevated));border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-height:85vh;overflow:hidden}@media(forced-colors:active){.ea-dialog__panel{border:1px solid CanvasText}}.ea-dialog__panel--xs{--ea-dialog-size: 20rem}.ea-dialog__panel--sm{--ea-dialog-size: 24rem}.ea-dialog__panel--md{--ea-dialog-size: 32rem}.ea-dialog__panel--lg{--ea-dialog-size: 42rem}.ea-dialog__panel--xl{--ea-dialog-size: 52rem}.ea-dialog__panel--full{width:calc(100vw - 2rem);height:calc(100vh - 2rem);max-height:calc(100vh - 2rem)}.ea-dialog__close{z-index:1;position:absolute;top:var(--space-3);inset-inline-end:var(--space-3);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ea-icon-button-size, 1.75em);height:var(--ea-icon-button-size, 1.75em);padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-dialog__close>*{font-size:1.25em}.ea-dialog__close:hover{background-color:var(--color-state-hover);color:var(--color-text-primary)}.ea-dialog__close:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-dialog__close:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-dialog__close:disabled{cursor:not-allowed;opacity:.5}.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"] }]
9201
9141
  }], ctorParameters: () => [], propDecorators: { dialogEl: [{ type: i0.ViewChild, args: ['dialogEl', { isSignal: true }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", 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 }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", 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"] }] } });
9202
9142
 
9203
9143
  // The padding side, per position, applied to the push target so its content
@@ -10244,22 +10184,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImpo
10244
10184
  }] });
10245
10185
 
10246
10186
  /**
10247
- * Branded eagami wordmark logo. Scales continuously from a single `size`
10248
- * pixel value and supports three content variants paired with stacked or
10249
- * inline layouts.
10187
+ * Branded eagami wordmark logo. `size` is the brand text's font-size in px
10188
+ * and the rest of the lockup scales proportionally from it; supports three
10189
+ * content variants paired with stacked or inline layouts.
10250
10190
  */
10251
10191
  class EagamiWordmarkComponent {
10252
10192
  i18n = inject(EagamiI18nService);
10253
10193
  /** Content variant. */
10254
10194
  variant = input('default', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
10255
10195
  layout = input('stacked', ...(ngDevMode ? [{ debugName: "layout" }] : /* istanbul ignore next */ []));
10256
- size = input(48, ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
10196
+ size = input(24, ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
10197
+ /** Renders the wordmark as a link to eagami.com; disable to embed it inside a custom link or static context. */
10198
+ linked = input(true, ...(ngDevMode ? [{ debugName: "linked" }] : /* istanbul ignore next */ []));
10257
10199
  /** Clamps size to a 10px floor and falls back to the default when cleared. */
10258
10200
  resolvedSize = computed(() => {
10259
10201
  const raw = this.size();
10260
10202
  const value = typeof raw === 'number' ? raw : Number(raw);
10261
10203
  if (!Number.isFinite(value) || value <= 0) {
10262
- return 48;
10204
+ return 24;
10263
10205
  }
10264
10206
  return Math.max(10, value);
10265
10207
  }, ...(ngDevMode ? [{ debugName: "resolvedSize" }] : /* istanbul ignore next */ []));
@@ -10280,16 +10222,16 @@ class EagamiWordmarkComponent {
10280
10222
  }
10281
10223
  }, ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
10282
10224
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: EagamiWordmarkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10283
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: EagamiWordmarkComponent, isStandalone: true, selector: "ea-eagami-wordmark", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "dir": "ltr" }, properties: { "style.--_size": "resolvedSize()" } }, ngImport: i0, template: "<a\n class=\"ea-eagami-wordmark\"\n [class.ea-eagami-wordmark--inline]=\"layout() === 'inline'\"\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 <span class=\"ea-eagami-wordmark__text\">\n @if (showOverline()) {\n <span class=\"ea-eagami-wordmark__overline\">\n {{ i18n.messages().wordmark.overline }}\n </span>\n }\n <span class=\"ea-eagami-wordmark__brand\">{{ brandText() }}</span>\n @if (showTagline()) {\n @if (layout() === 'inline') {\n <span\n class=\"ea-eagami-wordmark__separator\"\n aria-hidden=\"true\">\n \u2014\n </span>\n }\n <span class=\"ea-eagami-wordmark__tagline\">\n {{ i18n.messages().wordmark.tagline }}\n </span>\n }\n </span>\n</a>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Syne:wght@400;500&display=swap\";: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)}@media(forced-colors:active){.ea-eagami-wordmark:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-eagami-wordmark__logo{flex-shrink:0;font-size:calc(var(--_size) * 1px);forced-color-adjust:none}.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__separator,.ea-eagami-wordmark__tagline{font-size:calc(var(--_size) * .2px);font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-wide);font-family:var(--font-family-sans);color:var(--color-text-secondary)}.ea-eagami-wordmark__overline{color:var(--ea-eagami-wordmark-overline-color, var(--color-text-secondary))}.ea-eagami-wordmark__brand{font-size:calc(var(--_size) * .5px);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);font-family:var(--font-family-brand)}.ea-eagami-wordmark--inline .ea-eagami-wordmark__text{flex-direction:row;align-items:baseline;gap:calc(var(--_size) * .2px)}.ea-eagami-wordmark--inline .ea-eagami-wordmark__overline,.ea-eagami-wordmark--inline .ea-eagami-wordmark__separator,.ea-eagami-wordmark--inline .ea-eagami-wordmark__tagline{font-size:calc(var(--_size) * .5px)}\n"], dependencies: [{ kind: "component", type: EagamiIconComponent, selector: "ea-icon-eagami" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10225
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: EagamiWordmarkComponent, isStandalone: true, selector: "ea-eagami-wordmark", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, linked: { classPropertyName: "linked", publicName: "linked", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "dir": "ltr" }, properties: { "style.--_size": "resolvedSize()" } }, ngImport: i0, template: "@if (linked()) {\n <a\n class=\"ea-eagami-wordmark\"\n [class.ea-eagami-wordmark--inline]=\"layout() === 'inline'\"\n [class.ea-eagami-wordmark--tagline]=\"showTagline()\"\n href=\"https://eagami.com\"\n target=\"_blank\"\n rel=\"noopener\"\n [attr.aria-label]=\"ariaLabel()\">\n <ng-container [ngTemplateOutlet]=\"lockup\" />\n </a>\n} @else {\n <span\n class=\"ea-eagami-wordmark\"\n [class.ea-eagami-wordmark--inline]=\"layout() === 'inline'\"\n [class.ea-eagami-wordmark--tagline]=\"showTagline()\">\n <ng-container [ngTemplateOutlet]=\"lockup\" />\n </span>\n}\n\n<ng-template #lockup>\n <ea-icon-eagami\n class=\"ea-eagami-wordmark__logo\"\n aria-hidden=\"true\" />\n\n <span class=\"ea-eagami-wordmark__text\">\n @if (showOverline()) {\n <span class=\"ea-eagami-wordmark__overline\">\n {{ i18n.messages().wordmark.overline }}\n </span>\n }\n <span class=\"ea-eagami-wordmark__brand\">{{ brandText() }}</span>\n @if (showTagline()) {\n @if (layout() === 'inline') {\n <span\n class=\"ea-eagami-wordmark__separator\"\n aria-hidden=\"true\">\n \u2014\n </span>\n }\n <span class=\"ea-eagami-wordmark__tagline\">\n {{ i18n.messages().wordmark.tagline }}\n </span>\n }\n </span>\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Syne:wght@400;500&display=swap\";:host{display:inline-block;line-height:var(--line-height-none)}.ea-eagami-wordmark{display:inline-flex;align-items:center;gap:calc(var(--_size) * .125px);border-radius:var(--radius-sm);color:var(--color-text-primary);text-decoration:none;transition:var(--transition-opacity)}.ea-eagami-wordmark:any-link:hover{opacity:.75}.ea-eagami-wordmark:any-link:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-eagami-wordmark:any-link:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-eagami-wordmark__logo{flex-shrink:0;font-size:calc(var(--_size) * 1.5px);forced-color-adjust:none}.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__separator,.ea-eagami-wordmark__tagline{font-size:calc(var(--_size) * .4px);font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-wide);font-family:var(--font-family-sans);color:var(--color-text-secondary)}.ea-eagami-wordmark__overline{margin-bottom:calc(var(--_size) * -.15px);color:var(--ea-eagami-wordmark-overline-color, var(--color-text-secondary))}.ea-eagami-wordmark__brand{font-size:calc(var(--_size) * 1px);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);font-family:var(--font-family-brand)}.ea-eagami-wordmark--tagline .ea-eagami-wordmark__text{transform:translateY(calc(var(--_size) * -.125px))}.ea-eagami-wordmark--inline .ea-eagami-wordmark__text{flex-direction:row;align-items:baseline;gap:calc(var(--_size) * .4px);transform:none}.ea-eagami-wordmark--inline .ea-eagami-wordmark__overline,.ea-eagami-wordmark--inline .ea-eagami-wordmark__separator,.ea-eagami-wordmark--inline .ea-eagami-wordmark__tagline{margin-bottom:0;font-size:calc(var(--_size) * 1px)}\n"], dependencies: [{ kind: "component", type: EagamiIconComponent, selector: "ea-icon-eagami" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10284
10226
  }
10285
10227
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: EagamiWordmarkComponent, decorators: [{
10286
10228
  type: Component,
10287
- args: [{ selector: 'ea-eagami-wordmark', imports: [EagamiIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: {
10229
+ args: [{ selector: 'ea-eagami-wordmark', imports: [EagamiIconComponent, NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, host: {
10288
10230
  // The wordmark is a fixed brand lockup; it never mirrors with UI direction
10289
10231
  dir: 'ltr',
10290
10232
  '[style.--_size]': 'resolvedSize()',
10291
- }, template: "<a\n class=\"ea-eagami-wordmark\"\n [class.ea-eagami-wordmark--inline]=\"layout() === 'inline'\"\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 <span class=\"ea-eagami-wordmark__text\">\n @if (showOverline()) {\n <span class=\"ea-eagami-wordmark__overline\">\n {{ i18n.messages().wordmark.overline }}\n </span>\n }\n <span class=\"ea-eagami-wordmark__brand\">{{ brandText() }}</span>\n @if (showTagline()) {\n @if (layout() === 'inline') {\n <span\n class=\"ea-eagami-wordmark__separator\"\n aria-hidden=\"true\">\n \u2014\n </span>\n }\n <span class=\"ea-eagami-wordmark__tagline\">\n {{ i18n.messages().wordmark.tagline }}\n </span>\n }\n </span>\n</a>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Syne:wght@400;500&display=swap\";: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)}@media(forced-colors:active){.ea-eagami-wordmark:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-eagami-wordmark__logo{flex-shrink:0;font-size:calc(var(--_size) * 1px);forced-color-adjust:none}.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__separator,.ea-eagami-wordmark__tagline{font-size:calc(var(--_size) * .2px);font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-wide);font-family:var(--font-family-sans);color:var(--color-text-secondary)}.ea-eagami-wordmark__overline{color:var(--ea-eagami-wordmark-overline-color, var(--color-text-secondary))}.ea-eagami-wordmark__brand{font-size:calc(var(--_size) * .5px);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);font-family:var(--font-family-brand)}.ea-eagami-wordmark--inline .ea-eagami-wordmark__text{flex-direction:row;align-items:baseline;gap:calc(var(--_size) * .2px)}.ea-eagami-wordmark--inline .ea-eagami-wordmark__overline,.ea-eagami-wordmark--inline .ea-eagami-wordmark__separator,.ea-eagami-wordmark--inline .ea-eagami-wordmark__tagline{font-size:calc(var(--_size) * .5px)}\n"] }]
10292
- }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
10233
+ }, template: "@if (linked()) {\n <a\n class=\"ea-eagami-wordmark\"\n [class.ea-eagami-wordmark--inline]=\"layout() === 'inline'\"\n [class.ea-eagami-wordmark--tagline]=\"showTagline()\"\n href=\"https://eagami.com\"\n target=\"_blank\"\n rel=\"noopener\"\n [attr.aria-label]=\"ariaLabel()\">\n <ng-container [ngTemplateOutlet]=\"lockup\" />\n </a>\n} @else {\n <span\n class=\"ea-eagami-wordmark\"\n [class.ea-eagami-wordmark--inline]=\"layout() === 'inline'\"\n [class.ea-eagami-wordmark--tagline]=\"showTagline()\">\n <ng-container [ngTemplateOutlet]=\"lockup\" />\n </span>\n}\n\n<ng-template #lockup>\n <ea-icon-eagami\n class=\"ea-eagami-wordmark__logo\"\n aria-hidden=\"true\" />\n\n <span class=\"ea-eagami-wordmark__text\">\n @if (showOverline()) {\n <span class=\"ea-eagami-wordmark__overline\">\n {{ i18n.messages().wordmark.overline }}\n </span>\n }\n <span class=\"ea-eagami-wordmark__brand\">{{ brandText() }}</span>\n @if (showTagline()) {\n @if (layout() === 'inline') {\n <span\n class=\"ea-eagami-wordmark__separator\"\n aria-hidden=\"true\">\n \u2014\n </span>\n }\n <span class=\"ea-eagami-wordmark__tagline\">\n {{ i18n.messages().wordmark.tagline }}\n </span>\n }\n </span>\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Syne:wght@400;500&display=swap\";:host{display:inline-block;line-height:var(--line-height-none)}.ea-eagami-wordmark{display:inline-flex;align-items:center;gap:calc(var(--_size) * .125px);border-radius:var(--radius-sm);color:var(--color-text-primary);text-decoration:none;transition:var(--transition-opacity)}.ea-eagami-wordmark:any-link:hover{opacity:.75}.ea-eagami-wordmark:any-link:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-eagami-wordmark:any-link:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-eagami-wordmark__logo{flex-shrink:0;font-size:calc(var(--_size) * 1.5px);forced-color-adjust:none}.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__separator,.ea-eagami-wordmark__tagline{font-size:calc(var(--_size) * .4px);font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-wide);font-family:var(--font-family-sans);color:var(--color-text-secondary)}.ea-eagami-wordmark__overline{margin-bottom:calc(var(--_size) * -.15px);color:var(--ea-eagami-wordmark-overline-color, var(--color-text-secondary))}.ea-eagami-wordmark__brand{font-size:calc(var(--_size) * 1px);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);font-family:var(--font-family-brand)}.ea-eagami-wordmark--tagline .ea-eagami-wordmark__text{transform:translateY(calc(var(--_size) * -.125px))}.ea-eagami-wordmark--inline .ea-eagami-wordmark__text{flex-direction:row;align-items:baseline;gap:calc(var(--_size) * .4px);transform:none}.ea-eagami-wordmark--inline .ea-eagami-wordmark__overline,.ea-eagami-wordmark--inline .ea-eagami-wordmark__separator,.ea-eagami-wordmark--inline .ea-eagami-wordmark__tagline{margin-bottom:0;font-size:calc(var(--_size) * 1px)}\n"] }]
10234
+ }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], linked: [{ type: i0.Input, args: [{ isSignal: true, alias: "linked", required: false }] }] } });
10293
10235
 
10294
10236
  /**
10295
10237
  * Pattern for "no results" or "nothing here yet" screens. Combines an
@@ -15745,7 +15687,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImpo
15745
15687
  * them against the shared signals.
15746
15688
  */
15747
15689
  class TreeNodeComponent {
15748
- i18n = inject(EagamiI18nService);
15749
15690
  node = input.required(...(ngDevMode ? [{ debugName: "node" }] : /* istanbul ignore next */ []));
15750
15691
  /** Depth from the tree root (0-indexed). Drives indentation and `aria-level`. */
15751
15692
  level = input.required(...(ngDevMode ? [{ debugName: "level" }] : /* istanbul ignore next */ []));
@@ -15761,12 +15702,6 @@ class TreeNodeComponent {
15761
15702
  expandedIds = input.required(...(ngDevMode ? [{ debugName: "expandedIds" }] : /* istanbul ignore next */ []));
15762
15703
  /** Whole-tree disabled state. */
15763
15704
  disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
15764
- /** aria-label for the expand chevron; falls back to the active locale's default. */
15765
- expandLabel = input(undefined, ...(ngDevMode ? [{ debugName: "expandLabel" }] : /* istanbul ignore next */ []));
15766
- /** aria-label for the collapse chevron; falls back to the active locale's default. */
15767
- collapseLabel = input(undefined, ...(ngDevMode ? [{ debugName: "collapseLabel" }] : /* istanbul ignore next */ []));
15768
- resolvedExpandLabel = computed(() => this.expandLabel() ?? this.i18n.messages().tree.expand, ...(ngDevMode ? [{ debugName: "resolvedExpandLabel" }] : /* istanbul ignore next */ []));
15769
- resolvedCollapseLabel = computed(() => this.collapseLabel() ?? this.i18n.messages().tree.collapse, ...(ngDevMode ? [{ debugName: "resolvedCollapseLabel" }] : /* istanbul ignore next */ []));
15770
15705
  toggle = output();
15771
15706
  select = output();
15772
15707
  hasChildren = computed(() => (this.node().children?.length ?? 0) > 0, ...(ngDevMode ? [{ debugName: "hasChildren" }] : /* istanbul ignore next */ []));
@@ -15796,14 +15731,14 @@ class TreeNodeComponent {
15796
15731
  this.toggle.emit(this.node().id);
15797
15732
  }
15798
15733
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: TreeNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15799
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: TreeNodeComponent, isStandalone: true, selector: "ea-tree-node", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: true, transformFunction: null }, posInSet: { classPropertyName: "posInSet", publicName: "posInSet", isSignal: true, isRequired: true, transformFunction: null }, setSize: { classPropertyName: "setSize", publicName: "setSize", isSignal: true, isRequired: true, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null }, focusedId: { classPropertyName: "focusedId", publicName: "focusedId", isSignal: true, isRequired: false, transformFunction: null }, expandedIds: { classPropertyName: "expandedIds", publicName: "expandedIds", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, expandLabel: { classPropertyName: "expandLabel", publicName: "expandLabel", isSignal: true, isRequired: false, transformFunction: null }, collapseLabel: { classPropertyName: "collapseLabel", publicName: "collapseLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggle: "toggle", select: "select" }, host: { attributes: { "role": "none" } }, ngImport: i0, template: "<li\n class=\"ea-tree-node\"\n role=\"treeitem\"\n [attr.id]=\"'ea-tree-item-' + node().id\"\n [attr.data-treeitem-id]=\"node().id\"\n [attr.aria-level]=\"level() + 1\"\n [attr.aria-posinset]=\"posInSet()\"\n [attr.aria-setsize]=\"setSize()\"\n [attr.aria-selected]=\"isSelected()\"\n [attr.aria-expanded]=\"hasChildren() ? isExpanded() : null\"\n [attr.aria-disabled]=\"isDisabled() || null\"\n [attr.tabindex]=\"isFocused() ? 0 : -1\"\n [class.ea-tree-node--selected]=\"isSelected()\"\n [class.ea-tree-node--disabled]=\"isDisabled()\"\n [class.ea-tree-node--leaf]=\"!hasChildren()\"\n [style]=\"indentStyle()\">\n <div\n class=\"ea-tree-node__row\"\n (click)=\"onRowClick()\">\n @if (hasChildren()) {\n <span\n class=\"ea-tree-node__chevron\"\n [class.ea-tree-node__chevron--open]=\"isExpanded()\"\n [attr.aria-label]=\"isExpanded() ? resolvedCollapseLabel() : resolvedExpandLabel()\"\n role=\"button\"\n (click)=\"onChevronClick($event)\">\n <ea-icon-chevron-right />\n </span>\n } @else {\n <span\n class=\"ea-tree-node__chevron-spacer\"\n aria-hidden=\"true\">\n </span>\n }\n\n @if (node().icon; as iconClass) {\n <span\n class=\"ea-tree-node__icon\"\n aria-hidden=\"true\">\n <ng-container *ngComponentOutlet=\"iconClass\" />\n </span>\n }\n\n <span class=\"ea-tree-node__label\">\n {{ node().label }}\n </span>\n </div>\n\n @if (hasChildren() && isExpanded()) {\n <ul\n class=\"ea-tree-node__children\"\n role=\"group\">\n @for (child of node().children; track child.id; let i = $index) {\n <ea-tree-node\n [node]=\"child\"\n [level]=\"level() + 1\"\n [posInSet]=\"i + 1\"\n [setSize]=\"node().children!.length\"\n [selectedId]=\"selectedId()\"\n [focusedId]=\"focusedId()\"\n [expandedIds]=\"expandedIds()\"\n [disabled]=\"disabled()\"\n [expandLabel]=\"expandLabel()\"\n [collapseLabel]=\"collapseLabel()\"\n (toggle)=\"toggle.emit($event)\"\n (select)=\"select.emit($event)\" />\n }\n </ul>\n }\n</li>\n", styles: [":host{display:block}.ea-tree-node{display:block;outline:none;list-style:none}.ea-tree-node__row{display:flex;align-items:center;gap:.5em;padding:var(--ea-tree-row-padding-block, .5em) var(--ea-tree-row-padding-inline, .5em);padding-inline-start:calc(var(--ea-tree-row-padding-inline, .5em) + var(--ea-tree-node-level) * var(--ea-tree-indent, 1em));border-radius:var(--radius-sm);background-color:transparent;color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--transition-colors)}.ea-tree-node:focus-visible>.ea-tree-node__row{box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-tree-node:focus-visible>.ea-tree-node__row{outline:2px solid Highlight;outline-offset:2px}}.ea-tree-node__row:hover{background-color:var(--color-state-hover)}.ea-tree-node--selected>.ea-tree-node__row{background-color:var(--color-bg-selected, var(--color-brand-subtle));color:var(--color-text-on-selected, var(--color-text-primary))}@media(forced-colors:active){.ea-tree-node--selected>.ea-tree-node__row{background-color:Highlight;color:HighlightText}}.ea-tree-node--disabled>.ea-tree-node__row{opacity:.6;cursor:not-allowed}.ea-tree-node--disabled>.ea-tree-node__row:hover{background-color:transparent}.ea-tree-node__chevron,.ea-tree-node__chevron-spacer{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;flex-shrink:0;color:var(--color-text-secondary)}.ea-tree-node__chevron{cursor:pointer;transition:transform var(--motion-duration-fast) var(--motion-easing-standard)}.ea-tree-node__chevron--open{transform:rotate(90deg)}.ea-tree-node__icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;flex-shrink:0;color:var(--color-text-secondary)}.ea-tree-node__label{font-size:inherit;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;min-width:0;flex:1}.ea-tree-node__children{display:block;padding:0;margin:0;list-style:none}\n"], dependencies: [{ kind: "component", type: TreeNodeComponent, selector: "ea-tree-node", inputs: ["node", "level", "posInSet", "setSize", "selectedId", "focusedId", "expandedIds", "disabled", "expandLabel", "collapseLabel"], outputs: ["toggle", "select"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: ChevronRightIconComponent, selector: "ea-icon-chevron-right" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15734
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: TreeNodeComponent, isStandalone: true, selector: "ea-tree-node", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: true, transformFunction: null }, posInSet: { classPropertyName: "posInSet", publicName: "posInSet", isSignal: true, isRequired: true, transformFunction: null }, setSize: { classPropertyName: "setSize", publicName: "setSize", isSignal: true, isRequired: true, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null }, focusedId: { classPropertyName: "focusedId", publicName: "focusedId", isSignal: true, isRequired: false, transformFunction: null }, expandedIds: { classPropertyName: "expandedIds", publicName: "expandedIds", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggle: "toggle", select: "select" }, host: { attributes: { "role": "none" } }, ngImport: i0, template: "<li\n class=\"ea-tree-node\"\n role=\"treeitem\"\n [attr.id]=\"'ea-tree-item-' + node().id\"\n [attr.data-treeitem-id]=\"node().id\"\n [attr.aria-level]=\"level() + 1\"\n [attr.aria-posinset]=\"posInSet()\"\n [attr.aria-setsize]=\"setSize()\"\n [attr.aria-selected]=\"isSelected()\"\n [attr.aria-expanded]=\"hasChildren() ? isExpanded() : null\"\n [attr.aria-disabled]=\"isDisabled() || null\"\n [attr.tabindex]=\"isFocused() ? 0 : -1\"\n [class.ea-tree-node--selected]=\"isSelected()\"\n [class.ea-tree-node--disabled]=\"isDisabled()\"\n [class.ea-tree-node--leaf]=\"!hasChildren()\"\n [style]=\"indentStyle()\">\n <div\n class=\"ea-tree-node__row\"\n (click)=\"onRowClick()\">\n @if (hasChildren()) {\n <span\n class=\"ea-tree-node__chevron\"\n [class.ea-tree-node__chevron--open]=\"isExpanded()\"\n aria-hidden=\"true\"\n (click)=\"onChevronClick($event)\">\n <ea-icon-chevron-right />\n </span>\n } @else {\n <span\n class=\"ea-tree-node__chevron-spacer\"\n aria-hidden=\"true\">\n </span>\n }\n\n @if (node().icon; as iconClass) {\n <span\n class=\"ea-tree-node__icon\"\n aria-hidden=\"true\">\n <ng-container *ngComponentOutlet=\"iconClass\" />\n </span>\n }\n\n <span class=\"ea-tree-node__label\">\n {{ node().label }}\n </span>\n </div>\n\n @if (hasChildren() && isExpanded()) {\n <ul\n class=\"ea-tree-node__children\"\n role=\"group\">\n @for (child of node().children; track child.id; let i = $index) {\n <ea-tree-node\n [node]=\"child\"\n [level]=\"level() + 1\"\n [posInSet]=\"i + 1\"\n [setSize]=\"node().children!.length\"\n [selectedId]=\"selectedId()\"\n [focusedId]=\"focusedId()\"\n [expandedIds]=\"expandedIds()\"\n [disabled]=\"disabled()\"\n (toggle)=\"toggle.emit($event)\"\n (select)=\"select.emit($event)\" />\n }\n </ul>\n }\n</li>\n", styles: [":host{display:block}.ea-tree-node{display:block;outline:none;list-style:none}.ea-tree-node__row{display:flex;align-items:center;gap:.5em;padding:var(--ea-tree-row-padding-block, .5em) var(--ea-tree-row-padding-inline, .5em);padding-inline-start:calc(var(--ea-tree-row-padding-inline, .5em) + var(--ea-tree-node-level) * var(--ea-tree-indent, 1em));border-radius:var(--radius-sm);background-color:transparent;color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--transition-colors)}.ea-tree-node:focus-visible>.ea-tree-node__row{box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-tree-node:focus-visible>.ea-tree-node__row{outline:2px solid Highlight;outline-offset:2px}}.ea-tree-node__row:hover{background-color:var(--color-state-hover)}.ea-tree-node--selected>.ea-tree-node__row{background-color:var(--color-bg-selected, var(--color-brand-subtle));color:var(--color-text-on-selected, var(--color-text-primary))}@media(forced-colors:active){.ea-tree-node--selected>.ea-tree-node__row{background-color:Highlight;color:HighlightText}}.ea-tree-node--disabled>.ea-tree-node__row{opacity:.6;cursor:not-allowed}.ea-tree-node--disabled>.ea-tree-node__row:hover{background-color:transparent}.ea-tree-node__chevron,.ea-tree-node__chevron-spacer{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;flex-shrink:0;color:var(--color-text-secondary)}.ea-tree-node__chevron{cursor:pointer;transition:transform var(--motion-duration-fast) var(--motion-easing-standard)}.ea-tree-node__chevron--open{transform:rotate(90deg)}.ea-tree-node__icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;flex-shrink:0;color:var(--color-text-secondary)}.ea-tree-node__label{font-size:inherit;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;min-width:0;flex:1}.ea-tree-node__children{display:block;padding:0;margin:0;list-style:none}\n"], dependencies: [{ kind: "component", type: TreeNodeComponent, selector: "ea-tree-node", inputs: ["node", "level", "posInSet", "setSize", "selectedId", "focusedId", "expandedIds", "disabled"], outputs: ["toggle", "select"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: ChevronRightIconComponent, selector: "ea-icon-chevron-right" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15800
15735
  }
15801
15736
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: TreeNodeComponent, decorators: [{
15802
15737
  type: Component,
15803
15738
  args: [{ selector: 'ea-tree-node', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgComponentOutlet, ChevronRightIconComponent], host: {
15804
15739
  role: 'none',
15805
- }, template: "<li\n class=\"ea-tree-node\"\n role=\"treeitem\"\n [attr.id]=\"'ea-tree-item-' + node().id\"\n [attr.data-treeitem-id]=\"node().id\"\n [attr.aria-level]=\"level() + 1\"\n [attr.aria-posinset]=\"posInSet()\"\n [attr.aria-setsize]=\"setSize()\"\n [attr.aria-selected]=\"isSelected()\"\n [attr.aria-expanded]=\"hasChildren() ? isExpanded() : null\"\n [attr.aria-disabled]=\"isDisabled() || null\"\n [attr.tabindex]=\"isFocused() ? 0 : -1\"\n [class.ea-tree-node--selected]=\"isSelected()\"\n [class.ea-tree-node--disabled]=\"isDisabled()\"\n [class.ea-tree-node--leaf]=\"!hasChildren()\"\n [style]=\"indentStyle()\">\n <div\n class=\"ea-tree-node__row\"\n (click)=\"onRowClick()\">\n @if (hasChildren()) {\n <span\n class=\"ea-tree-node__chevron\"\n [class.ea-tree-node__chevron--open]=\"isExpanded()\"\n [attr.aria-label]=\"isExpanded() ? resolvedCollapseLabel() : resolvedExpandLabel()\"\n role=\"button\"\n (click)=\"onChevronClick($event)\">\n <ea-icon-chevron-right />\n </span>\n } @else {\n <span\n class=\"ea-tree-node__chevron-spacer\"\n aria-hidden=\"true\">\n </span>\n }\n\n @if (node().icon; as iconClass) {\n <span\n class=\"ea-tree-node__icon\"\n aria-hidden=\"true\">\n <ng-container *ngComponentOutlet=\"iconClass\" />\n </span>\n }\n\n <span class=\"ea-tree-node__label\">\n {{ node().label }}\n </span>\n </div>\n\n @if (hasChildren() && isExpanded()) {\n <ul\n class=\"ea-tree-node__children\"\n role=\"group\">\n @for (child of node().children; track child.id; let i = $index) {\n <ea-tree-node\n [node]=\"child\"\n [level]=\"level() + 1\"\n [posInSet]=\"i + 1\"\n [setSize]=\"node().children!.length\"\n [selectedId]=\"selectedId()\"\n [focusedId]=\"focusedId()\"\n [expandedIds]=\"expandedIds()\"\n [disabled]=\"disabled()\"\n [expandLabel]=\"expandLabel()\"\n [collapseLabel]=\"collapseLabel()\"\n (toggle)=\"toggle.emit($event)\"\n (select)=\"select.emit($event)\" />\n }\n </ul>\n }\n</li>\n", styles: [":host{display:block}.ea-tree-node{display:block;outline:none;list-style:none}.ea-tree-node__row{display:flex;align-items:center;gap:.5em;padding:var(--ea-tree-row-padding-block, .5em) var(--ea-tree-row-padding-inline, .5em);padding-inline-start:calc(var(--ea-tree-row-padding-inline, .5em) + var(--ea-tree-node-level) * var(--ea-tree-indent, 1em));border-radius:var(--radius-sm);background-color:transparent;color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--transition-colors)}.ea-tree-node:focus-visible>.ea-tree-node__row{box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-tree-node:focus-visible>.ea-tree-node__row{outline:2px solid Highlight;outline-offset:2px}}.ea-tree-node__row:hover{background-color:var(--color-state-hover)}.ea-tree-node--selected>.ea-tree-node__row{background-color:var(--color-bg-selected, var(--color-brand-subtle));color:var(--color-text-on-selected, var(--color-text-primary))}@media(forced-colors:active){.ea-tree-node--selected>.ea-tree-node__row{background-color:Highlight;color:HighlightText}}.ea-tree-node--disabled>.ea-tree-node__row{opacity:.6;cursor:not-allowed}.ea-tree-node--disabled>.ea-tree-node__row:hover{background-color:transparent}.ea-tree-node__chevron,.ea-tree-node__chevron-spacer{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;flex-shrink:0;color:var(--color-text-secondary)}.ea-tree-node__chevron{cursor:pointer;transition:transform var(--motion-duration-fast) var(--motion-easing-standard)}.ea-tree-node__chevron--open{transform:rotate(90deg)}.ea-tree-node__icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;flex-shrink:0;color:var(--color-text-secondary)}.ea-tree-node__label{font-size:inherit;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;min-width:0;flex:1}.ea-tree-node__children{display:block;padding:0;margin:0;list-style:none}\n"] }]
15806
- }], propDecorators: { node: [{ type: i0.Input, args: [{ isSignal: true, alias: "node", required: true }] }], level: [{ type: i0.Input, args: [{ isSignal: true, alias: "level", required: true }] }], posInSet: [{ type: i0.Input, args: [{ isSignal: true, alias: "posInSet", required: true }] }], setSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "setSize", required: true }] }], selectedId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedId", required: false }] }], focusedId: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusedId", required: false }] }], expandedIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedIds", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], expandLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandLabel", required: false }] }], collapseLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseLabel", required: false }] }], toggle: [{ type: i0.Output, args: ["toggle"] }], select: [{ type: i0.Output, args: ["select"] }] } });
15740
+ }, template: "<li\n class=\"ea-tree-node\"\n role=\"treeitem\"\n [attr.id]=\"'ea-tree-item-' + node().id\"\n [attr.data-treeitem-id]=\"node().id\"\n [attr.aria-level]=\"level() + 1\"\n [attr.aria-posinset]=\"posInSet()\"\n [attr.aria-setsize]=\"setSize()\"\n [attr.aria-selected]=\"isSelected()\"\n [attr.aria-expanded]=\"hasChildren() ? isExpanded() : null\"\n [attr.aria-disabled]=\"isDisabled() || null\"\n [attr.tabindex]=\"isFocused() ? 0 : -1\"\n [class.ea-tree-node--selected]=\"isSelected()\"\n [class.ea-tree-node--disabled]=\"isDisabled()\"\n [class.ea-tree-node--leaf]=\"!hasChildren()\"\n [style]=\"indentStyle()\">\n <div\n class=\"ea-tree-node__row\"\n (click)=\"onRowClick()\">\n @if (hasChildren()) {\n <span\n class=\"ea-tree-node__chevron\"\n [class.ea-tree-node__chevron--open]=\"isExpanded()\"\n aria-hidden=\"true\"\n (click)=\"onChevronClick($event)\">\n <ea-icon-chevron-right />\n </span>\n } @else {\n <span\n class=\"ea-tree-node__chevron-spacer\"\n aria-hidden=\"true\">\n </span>\n }\n\n @if (node().icon; as iconClass) {\n <span\n class=\"ea-tree-node__icon\"\n aria-hidden=\"true\">\n <ng-container *ngComponentOutlet=\"iconClass\" />\n </span>\n }\n\n <span class=\"ea-tree-node__label\">\n {{ node().label }}\n </span>\n </div>\n\n @if (hasChildren() && isExpanded()) {\n <ul\n class=\"ea-tree-node__children\"\n role=\"group\">\n @for (child of node().children; track child.id; let i = $index) {\n <ea-tree-node\n [node]=\"child\"\n [level]=\"level() + 1\"\n [posInSet]=\"i + 1\"\n [setSize]=\"node().children!.length\"\n [selectedId]=\"selectedId()\"\n [focusedId]=\"focusedId()\"\n [expandedIds]=\"expandedIds()\"\n [disabled]=\"disabled()\"\n (toggle)=\"toggle.emit($event)\"\n (select)=\"select.emit($event)\" />\n }\n </ul>\n }\n</li>\n", styles: [":host{display:block}.ea-tree-node{display:block;outline:none;list-style:none}.ea-tree-node__row{display:flex;align-items:center;gap:.5em;padding:var(--ea-tree-row-padding-block, .5em) var(--ea-tree-row-padding-inline, .5em);padding-inline-start:calc(var(--ea-tree-row-padding-inline, .5em) + var(--ea-tree-node-level) * var(--ea-tree-indent, 1em));border-radius:var(--radius-sm);background-color:transparent;color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--transition-colors)}.ea-tree-node:focus-visible>.ea-tree-node__row{box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-tree-node:focus-visible>.ea-tree-node__row{outline:2px solid Highlight;outline-offset:2px}}.ea-tree-node__row:hover{background-color:var(--color-state-hover)}.ea-tree-node--selected>.ea-tree-node__row{background-color:var(--color-bg-selected, var(--color-brand-subtle));color:var(--color-text-on-selected, var(--color-text-primary))}@media(forced-colors:active){.ea-tree-node--selected>.ea-tree-node__row{background-color:Highlight;color:HighlightText}}.ea-tree-node--disabled>.ea-tree-node__row{opacity:.6;cursor:not-allowed}.ea-tree-node--disabled>.ea-tree-node__row:hover{background-color:transparent}.ea-tree-node__chevron,.ea-tree-node__chevron-spacer{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;flex-shrink:0;color:var(--color-text-secondary)}.ea-tree-node__chevron{cursor:pointer;transition:transform var(--motion-duration-fast) var(--motion-easing-standard)}.ea-tree-node__chevron--open{transform:rotate(90deg)}.ea-tree-node__icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;flex-shrink:0;color:var(--color-text-secondary)}.ea-tree-node__label{font-size:inherit;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;min-width:0;flex:1}.ea-tree-node__children{display:block;padding:0;margin:0;list-style:none}\n"] }]
15741
+ }], propDecorators: { node: [{ type: i0.Input, args: [{ isSignal: true, alias: "node", required: true }] }], level: [{ type: i0.Input, args: [{ isSignal: true, alias: "level", required: true }] }], posInSet: [{ type: i0.Input, args: [{ isSignal: true, alias: "posInSet", required: true }] }], setSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "setSize", required: true }] }], selectedId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedId", required: false }] }], focusedId: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusedId", required: false }] }], expandedIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedIds", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], toggle: [{ type: i0.Output, args: ["toggle"] }], select: [{ type: i0.Output, args: ["select"] }] } });
15807
15742
 
15808
15743
  /**
15809
15744
  * Internal helper: walks a tree depth-first, yielding every node along with
@@ -15850,7 +15785,6 @@ function visibleNodeIds(nodes, expandedIds) {
15850
15785
  */
15851
15786
  class TreeComponent {
15852
15787
  hostEl = inject(ElementRef);
15853
- i18n = inject(EagamiI18nService);
15854
15788
  nodes = input.required(...(ngDevMode ? [{ debugName: "nodes" }] : /* istanbul ignore next */ []));
15855
15789
  size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
15856
15790
  disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
@@ -15882,7 +15816,6 @@ class TreeComponent {
15882
15816
  const visible = visibleNodeIds(this.nodes(), this.expandedSet());
15883
15817
  return visible[0] ?? null;
15884
15818
  }, ...(ngDevMode ? [{ debugName: "focusedId" }] : /* istanbul ignore next */ []));
15885
- messages = this.i18n.messages;
15886
15819
  hostClasses = computed(() => [
15887
15820
  'ea-tree',
15888
15821
  `ea-tree--${this.size()}`,
@@ -16079,11 +16012,11 @@ class TreeComponent {
16079
16012
  // focus behaviour (e.g. focusing the tree from a parent component).
16080
16013
  _listEl = this.listEl;
16081
16014
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16082
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: TreeComponent, isStandalone: true, selector: "ea-tree", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null }, expandedIds: { classPropertyName: "expandedIds", publicName: "expandedIds", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedId: "selectedIdChange", expandedIds: "expandedIdsChange", nodeClick: "nodeClick" }, viewQueries: [{ propertyName: "listEl", first: true, predicate: ["listEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<ul\n #listEl\n class=\"ea-tree__list\"\n [class]=\"hostClasses()\"\n role=\"tree\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-disabled]=\"disabled() || null\"\n (keydown)=\"onKeydown($event)\"\n (focusin)=\"onTreeFocus($event)\">\n @for (root of nodes(); track root.id; let i = $index) {\n <ea-tree-node\n [node]=\"root\"\n [level]=\"0\"\n [posInSet]=\"i + 1\"\n [setSize]=\"nodes().length\"\n [selectedId]=\"selectedId()\"\n [focusedId]=\"focusedId()\"\n [expandedIds]=\"expandedSet()\"\n [disabled]=\"disabled()\"\n [expandLabel]=\"messages().tree.expand\"\n [collapseLabel]=\"messages().tree.collapse\"\n (toggle)=\"onNodeToggle($event)\"\n (select)=\"onNodeSelect($event)\" />\n }\n</ul>\n", styles: [":host{display:block}.ea-tree__list{display:block;padding:0;margin:0;border-radius:var(--radius-md);background-color:var(--ea-tree-background-color, transparent);color:var(--color-text-primary);list-style:none}.ea-tree__list:focus-visible{outline:none}.ea-tree--xs{font-size:var(--font-size-xs)}.ea-tree--sm{font-size:var(--font-size-sm)}.ea-tree--md{font-size:var(--font-size-md)}.ea-tree--lg{font-size:var(--font-size-lg)}.ea-tree--xl{font-size:var(--font-size-xl)}.ea-tree--disabled{opacity:.6;pointer-events:none}\n"], dependencies: [{ kind: "component", type: TreeNodeComponent, selector: "ea-tree-node", inputs: ["node", "level", "posInSet", "setSize", "selectedId", "focusedId", "expandedIds", "disabled", "expandLabel", "collapseLabel"], outputs: ["toggle", "select"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16015
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: TreeComponent, isStandalone: true, selector: "ea-tree", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null }, expandedIds: { classPropertyName: "expandedIds", publicName: "expandedIds", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedId: "selectedIdChange", expandedIds: "expandedIdsChange", nodeClick: "nodeClick" }, viewQueries: [{ propertyName: "listEl", first: true, predicate: ["listEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<ul\n #listEl\n class=\"ea-tree__list\"\n [class]=\"hostClasses()\"\n role=\"tree\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-disabled]=\"disabled() || null\"\n (keydown)=\"onKeydown($event)\"\n (focusin)=\"onTreeFocus($event)\">\n @for (root of nodes(); track root.id; let i = $index) {\n <ea-tree-node\n [node]=\"root\"\n [level]=\"0\"\n [posInSet]=\"i + 1\"\n [setSize]=\"nodes().length\"\n [selectedId]=\"selectedId()\"\n [focusedId]=\"focusedId()\"\n [expandedIds]=\"expandedSet()\"\n [disabled]=\"disabled()\"\n (toggle)=\"onNodeToggle($event)\"\n (select)=\"onNodeSelect($event)\" />\n }\n</ul>\n", styles: [":host{display:block}.ea-tree__list{display:block;padding:0;margin:0;border-radius:var(--radius-md);background-color:var(--ea-tree-background-color, transparent);color:var(--color-text-primary);list-style:none}.ea-tree__list:focus-visible{outline:none}.ea-tree--xs{font-size:var(--font-size-xs)}.ea-tree--sm{font-size:var(--font-size-sm)}.ea-tree--md{font-size:var(--font-size-md)}.ea-tree--lg{font-size:var(--font-size-lg)}.ea-tree--xl{font-size:var(--font-size-xl)}.ea-tree--disabled{opacity:.6;pointer-events:none}\n"], dependencies: [{ kind: "component", type: TreeNodeComponent, selector: "ea-tree-node", inputs: ["node", "level", "posInSet", "setSize", "selectedId", "focusedId", "expandedIds", "disabled"], outputs: ["toggle", "select"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16083
16016
  }
16084
16017
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: TreeComponent, decorators: [{
16085
16018
  type: Component,
16086
- args: [{ selector: 'ea-tree', changeDetection: ChangeDetectionStrategy.OnPush, imports: [TreeNodeComponent], template: "<ul\n #listEl\n class=\"ea-tree__list\"\n [class]=\"hostClasses()\"\n role=\"tree\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-disabled]=\"disabled() || null\"\n (keydown)=\"onKeydown($event)\"\n (focusin)=\"onTreeFocus($event)\">\n @for (root of nodes(); track root.id; let i = $index) {\n <ea-tree-node\n [node]=\"root\"\n [level]=\"0\"\n [posInSet]=\"i + 1\"\n [setSize]=\"nodes().length\"\n [selectedId]=\"selectedId()\"\n [focusedId]=\"focusedId()\"\n [expandedIds]=\"expandedSet()\"\n [disabled]=\"disabled()\"\n [expandLabel]=\"messages().tree.expand\"\n [collapseLabel]=\"messages().tree.collapse\"\n (toggle)=\"onNodeToggle($event)\"\n (select)=\"onNodeSelect($event)\" />\n }\n</ul>\n", styles: [":host{display:block}.ea-tree__list{display:block;padding:0;margin:0;border-radius:var(--radius-md);background-color:var(--ea-tree-background-color, transparent);color:var(--color-text-primary);list-style:none}.ea-tree__list:focus-visible{outline:none}.ea-tree--xs{font-size:var(--font-size-xs)}.ea-tree--sm{font-size:var(--font-size-sm)}.ea-tree--md{font-size:var(--font-size-md)}.ea-tree--lg{font-size:var(--font-size-lg)}.ea-tree--xl{font-size:var(--font-size-xl)}.ea-tree--disabled{opacity:.6;pointer-events:none}\n"] }]
16019
+ args: [{ selector: 'ea-tree', changeDetection: ChangeDetectionStrategy.OnPush, imports: [TreeNodeComponent], template: "<ul\n #listEl\n class=\"ea-tree__list\"\n [class]=\"hostClasses()\"\n role=\"tree\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-disabled]=\"disabled() || null\"\n (keydown)=\"onKeydown($event)\"\n (focusin)=\"onTreeFocus($event)\">\n @for (root of nodes(); track root.id; let i = $index) {\n <ea-tree-node\n [node]=\"root\"\n [level]=\"0\"\n [posInSet]=\"i + 1\"\n [setSize]=\"nodes().length\"\n [selectedId]=\"selectedId()\"\n [focusedId]=\"focusedId()\"\n [expandedIds]=\"expandedSet()\"\n [disabled]=\"disabled()\"\n (toggle)=\"onNodeToggle($event)\"\n (select)=\"onNodeSelect($event)\" />\n }\n</ul>\n", styles: [":host{display:block}.ea-tree__list{display:block;padding:0;margin:0;border-radius:var(--radius-md);background-color:var(--ea-tree-background-color, transparent);color:var(--color-text-primary);list-style:none}.ea-tree__list:focus-visible{outline:none}.ea-tree--xs{font-size:var(--font-size-xs)}.ea-tree--sm{font-size:var(--font-size-sm)}.ea-tree--md{font-size:var(--font-size-md)}.ea-tree--lg{font-size:var(--font-size-lg)}.ea-tree--xl{font-size:var(--font-size-xl)}.ea-tree--disabled{opacity:.6;pointer-events:none}\n"] }]
16087
16020
  }], ctorParameters: () => [], propDecorators: { nodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodes", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], selectedId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedId", required: false }] }, { type: i0.Output, args: ["selectedIdChange"] }], expandedIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedIds", required: false }] }, { type: i0.Output, args: ["expandedIdsChange"] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], nodeClick: [{ type: i0.Output, args: ["nodeClick"] }], listEl: [{ type: i0.ViewChild, args: ['listEl', { isSignal: true }] }] } });
16088
16021
 
16089
16022
  /**