@eagami/ui 5.57.0 → 5.58.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.
@@ -406,7 +406,10 @@ const ar = {
406
406
  invalidType: "يجب أن يكون الملف صورة",
407
407
  tooLarge: (maxMb) => `الملف يتجاوز حد ${maxMb} MB`
408
408
  },
409
- breadcrumbs: { label: "مسار التنقل" },
409
+ breadcrumbs: {
410
+ label: "مسار التنقل",
411
+ showHidden: "إظهار المستويات المخفية"
412
+ },
410
413
  chart: {
411
414
  roleDescription: "مخطط",
412
415
  lineChart: "مخطط خطي",
@@ -622,7 +625,10 @@ const de = {
622
625
  invalidType: "Datei muss ein Bild sein",
623
626
  tooLarge: (maxMb) => `Datei überschreitet das Limit von ${maxMb} MB`
624
627
  },
625
- breadcrumbs: { label: "Brotkrümelnavigation" },
628
+ breadcrumbs: {
629
+ label: "Brotkrümelnavigation",
630
+ showHidden: "Ausgeblendete Ebenen anzeigen"
631
+ },
626
632
  chart: {
627
633
  roleDescription: "Diagramm",
628
634
  lineChart: "Liniendiagramm",
@@ -838,7 +844,10 @@ const el = {
838
844
  invalidType: "Το αρχείο πρέπει να είναι εικόνα",
839
845
  tooLarge: (maxMb) => `Το αρχείο υπερβαίνει το όριο των ${maxMb} MB`
840
846
  },
841
- breadcrumbs: { label: "Διαδρομή πλοήγησης" },
847
+ breadcrumbs: {
848
+ label: "Διαδρομή πλοήγησης",
849
+ showHidden: "Εμφάνιση κρυφών επιπέδων"
850
+ },
842
851
  chart: {
843
852
  roleDescription: "γράφημα",
844
853
  lineChart: "Γράφημα γραμμών",
@@ -1054,7 +1063,10 @@ const en = {
1054
1063
  invalidType: "File must be an image",
1055
1064
  tooLarge: (maxMb) => `File exceeds ${maxMb} MB limit`
1056
1065
  },
1057
- breadcrumbs: { label: "Breadcrumb" },
1066
+ breadcrumbs: {
1067
+ label: "Breadcrumb",
1068
+ showHidden: "Show hidden levels"
1069
+ },
1058
1070
  chart: {
1059
1071
  roleDescription: "chart",
1060
1072
  lineChart: "Line chart",
@@ -1270,7 +1282,10 @@ const esES = {
1270
1282
  invalidType: "El archivo debe ser una imagen",
1271
1283
  tooLarge: (maxMb) => `El archivo supera el límite de ${maxMb} MB`
1272
1284
  },
1273
- breadcrumbs: { label: "Ruta de navegación" },
1285
+ breadcrumbs: {
1286
+ label: "Ruta de navegación",
1287
+ showHidden: "Mostrar los niveles ocultos"
1288
+ },
1274
1289
  chart: {
1275
1290
  roleDescription: "gráfico",
1276
1291
  lineChart: "Gráfico de líneas",
@@ -1486,7 +1501,10 @@ const frFR = {
1486
1501
  invalidType: "Le fichier doit être une image",
1487
1502
  tooLarge: (maxMb) => `Le fichier dépasse la limite de ${maxMb} MB`
1488
1503
  },
1489
- breadcrumbs: { label: "Fil d'Ariane" },
1504
+ breadcrumbs: {
1505
+ label: "Fil d'Ariane",
1506
+ showHidden: "Afficher les niveaux masqués"
1507
+ },
1490
1508
  chart: {
1491
1509
  roleDescription: "graphique",
1492
1510
  lineChart: "Graphique linéaire",
@@ -1702,7 +1720,10 @@ const he = {
1702
1720
  invalidType: "הקובץ חייב להיות תמונה",
1703
1721
  tooLarge: (maxMb) => `הקובץ חורג ממגבלת ${maxMb} MB`
1704
1722
  },
1705
- breadcrumbs: { label: "נתיב ניווט" },
1723
+ breadcrumbs: {
1724
+ label: "נתיב ניווט",
1725
+ showHidden: "הצגת הרמות המוסתרות"
1726
+ },
1706
1727
  chart: {
1707
1728
  roleDescription: "תרשים",
1708
1729
  lineChart: "תרשים קווי",
@@ -1918,7 +1939,10 @@ const hi = {
1918
1939
  invalidType: "फ़ाइल एक छवि होनी चाहिए",
1919
1940
  tooLarge: (maxMb) => `फ़ाइल ${maxMb} MB की सीमा से अधिक है`
1920
1941
  },
1921
- breadcrumbs: { label: "ब्रेडक्रंब" },
1942
+ breadcrumbs: {
1943
+ label: "ब्रेडक्रंब",
1944
+ showHidden: "छिपे हुए स्तर दिखाएँ"
1945
+ },
1922
1946
  chart: {
1923
1947
  roleDescription: "चार्ट",
1924
1948
  lineChart: "लाइन चार्ट",
@@ -2134,7 +2158,10 @@ const is = {
2134
2158
  invalidType: "Skráin verður að vera mynd",
2135
2159
  tooLarge: (maxMb) => `Skráin fer yfir ${maxMb} MB mörkin`
2136
2160
  },
2137
- breadcrumbs: { label: "Brauðmolaslóð" },
2161
+ breadcrumbs: {
2162
+ label: "Brauðmolaslóð",
2163
+ showHidden: "Sýna falin stig"
2164
+ },
2138
2165
  chart: {
2139
2166
  roleDescription: "graf",
2140
2167
  lineChart: "Línurit",
@@ -2350,7 +2377,10 @@ const nl = {
2350
2377
  invalidType: "Bestand moet een afbeelding zijn",
2351
2378
  tooLarge: (maxMb) => `Bestand overschrijdt de limiet van ${maxMb} MB`
2352
2379
  },
2353
- breadcrumbs: { label: "Broodkruimelnavigatie" },
2380
+ breadcrumbs: {
2381
+ label: "Broodkruimelnavigatie",
2382
+ showHidden: "Verborgen niveaus tonen"
2383
+ },
2354
2384
  chart: {
2355
2385
  roleDescription: "grafiek",
2356
2386
  lineChart: "Lijndiagram",
@@ -2566,7 +2596,10 @@ const pl = {
2566
2596
  invalidType: "Plik musi być obrazem",
2567
2597
  tooLarge: (maxMb) => `Plik przekracza limit ${maxMb} MB`
2568
2598
  },
2569
- breadcrumbs: { label: "Ścieżka nawigacji" },
2599
+ breadcrumbs: {
2600
+ label: "Ścieżka nawigacji",
2601
+ showHidden: "Pokaż ukryte poziomy"
2602
+ },
2570
2603
  chart: {
2571
2604
  roleDescription: "wykres",
2572
2605
  lineChart: "Wykres liniowy",
@@ -2782,7 +2815,10 @@ const ptBR = {
2782
2815
  invalidType: "O arquivo deve ser uma imagem",
2783
2816
  tooLarge: (maxMb) => `O arquivo excede o limite de ${maxMb} MB`
2784
2817
  },
2785
- breadcrumbs: { label: "Trilha de navegação" },
2818
+ breadcrumbs: {
2819
+ label: "Trilha de navegação",
2820
+ showHidden: "Mostrar os níveis ocultos"
2821
+ },
2786
2822
  chart: {
2787
2823
  roleDescription: "gráfico",
2788
2824
  lineChart: "Gráfico de linhas",
@@ -2998,7 +3034,10 @@ const ru = {
2998
3034
  invalidType: "Файл должен быть изображением",
2999
3035
  tooLarge: (maxMb) => `Файл превышает лимит ${maxMb} MB`
3000
3036
  },
3001
- breadcrumbs: { label: "Навигационная цепочка" },
3037
+ breadcrumbs: {
3038
+ label: "Навигационная цепочка",
3039
+ showHidden: "Показать скрытые уровни"
3040
+ },
3002
3041
  chart: {
3003
3042
  roleDescription: "диаграмма",
3004
3043
  lineChart: "Линейный график",
@@ -3214,7 +3253,10 @@ const uk = {
3214
3253
  invalidType: "Файл має бути зображенням",
3215
3254
  tooLarge: (maxMb) => `Файл перевищує ліміт ${maxMb} MB`
3216
3255
  },
3217
- breadcrumbs: { label: "Навігаційний ланцюжок" },
3256
+ breadcrumbs: {
3257
+ label: "Навігаційний ланцюжок",
3258
+ showHidden: "Показати приховані рівні"
3259
+ },
3218
3260
  chart: {
3219
3261
  roleDescription: "діаграма",
3220
3262
  lineChart: "Лінійний графік",
@@ -3430,7 +3472,10 @@ const zhCN = {
3430
3472
  invalidType: "文件必须是图片",
3431
3473
  tooLarge: (maxMb) => `文件超过 ${maxMb} MB 限制`
3432
3474
  },
3433
- breadcrumbs: { label: "面包屑导航" },
3475
+ breadcrumbs: {
3476
+ label: "面包屑导航",
3477
+ showHidden: "显示隐藏的层级"
3478
+ },
3434
3479
  chart: {
3435
3480
  roleDescription: "图表",
3436
3481
  lineChart: "折线图",
@@ -9940,17 +9985,169 @@ i0.ɵɵngDeclareClassMetadata({
9940
9985
  }]
9941
9986
  }]
9942
9987
  });
9988
+ var MoreHorizontalIconComponent = class MoreHorizontalIconComponent extends IconComponentBase {
9989
+ static slug = "more-horizontal";
9990
+ static category = "feather";
9991
+ static tags = [
9992
+ "more-horizontal",
9993
+ "more",
9994
+ "horizontal",
9995
+ "ellipsis",
9996
+ "menu",
9997
+ "dots",
9998
+ "options",
9999
+ "plus",
10000
+ "más",
10001
+ "περισσότερα",
10002
+ "więcej"
10003
+ ];
10004
+ static ɵfac = i0.ɵɵngDeclareFactory({
10005
+ minVersion: "12.0.0",
10006
+ version: "22.2.1",
10007
+ ngImport: i0,
10008
+ type: MoreHorizontalIconComponent,
10009
+ deps: null,
10010
+ target: i0.ɵɵFactoryTarget.Component
10011
+ });
10012
+ static ɵcmp = i0.ɵɵngDeclareComponent({
10013
+ minVersion: "14.0.0",
10014
+ version: "22.2.1",
10015
+ type: MoreHorizontalIconComponent,
10016
+ isStandalone: true,
10017
+ selector: "ea-icon-more-horizontal",
10018
+ usesInheritance: true,
10019
+ ngImport: i0,
10020
+ template: `
10021
+ <svg
10022
+ viewBox="0 0 24 24"
10023
+ fill="none"
10024
+ stroke="currentColor"
10025
+ [attr.stroke-width]="strokeWidth()"
10026
+ stroke-linecap="round"
10027
+ stroke-linejoin="round"
10028
+ aria-hidden="true"
10029
+ width="100%"
10030
+ height="100%">
10031
+ <circle
10032
+ cx="12"
10033
+ cy="12"
10034
+ r="1" />
10035
+ <circle
10036
+ cx="19"
10037
+ cy="12"
10038
+ r="1" />
10039
+ <circle
10040
+ cx="5"
10041
+ cy="12"
10042
+ r="1" />
10043
+ </svg>
10044
+ `,
10045
+ isInline: true,
10046
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
10047
+ });
10048
+ };
10049
+ i0.ɵɵngDeclareClassMetadata({
10050
+ minVersion: "12.0.0",
10051
+ version: "22.2.1",
10052
+ ngImport: i0,
10053
+ type: MoreHorizontalIconComponent,
10054
+ decorators: [{
10055
+ type: Component,
10056
+ args: [{
10057
+ selector: "ea-icon-more-horizontal",
10058
+ changeDetection: ChangeDetectionStrategy.OnPush,
10059
+ template: `
10060
+ <svg
10061
+ viewBox="0 0 24 24"
10062
+ fill="none"
10063
+ stroke="currentColor"
10064
+ [attr.stroke-width]="strokeWidth()"
10065
+ stroke-linecap="round"
10066
+ stroke-linejoin="round"
10067
+ aria-hidden="true"
10068
+ width="100%"
10069
+ height="100%">
10070
+ <circle
10071
+ cx="12"
10072
+ cy="12"
10073
+ r="1" />
10074
+ <circle
10075
+ cx="19"
10076
+ cy="12"
10077
+ r="1" />
10078
+ <circle
10079
+ cx="5"
10080
+ cy="12"
10081
+ r="1" />
10082
+ </svg>
10083
+ `
10084
+ }]
10085
+ }]
10086
+ });
9943
10087
  var BreadcrumbsComponent = class BreadcrumbsComponent {
9944
10088
  i18n = inject(EagamiI18nService);
10089
+ popover = viewChild(PopoverComponent, ...ngDevMode ? [{ debugName: "popover" }] : /* istanbul ignore next */ []);
10090
+ expandEl = viewChild("expandEl", ...ngDevMode ? [{ debugName: "expandEl" }] : /* istanbul ignore next */ []);
10091
+ menuEl = viewChild("menuEl", ...ngDevMode ? [{ debugName: "menuEl" }] : /* istanbul ignore next */ []);
10092
+ sizerEl = viewChild("sizerEl", ...ngDevMode ? [{ debugName: "sizerEl" }] : /* istanbul ignore next */ []);
10093
+ sizerItemEls = viewChildren("sizerItemEl", ...ngDevMode ? [{ debugName: "sizerItemEls" }] : /* istanbul ignore next */ []);
10094
+ sizerExpandEl = viewChild("sizerExpandEl", ...ngDevMode ? [{ debugName: "sizerExpandEl" }] : /* istanbul ignore next */ []);
9945
10095
  items = input([], ...ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []);
9946
10096
  separator = input("chevron", ...ngDevMode ? [{ debugName: "separator" }] : /* istanbul ignore next */ []);
9947
10097
  size = input("md", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
10098
+ maxItems = input(void 0, ...ngDevMode ? [{ debugName: "maxItems" }] : /* istanbul ignore next */ []);
10099
+ overflow = input("menu", ...ngDevMode ? [{ debugName: "overflow" }] : /* istanbul ignore next */ []);
9948
10100
  ariaLabel = input(void 0, {
9949
10101
  ...ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {},
9950
10102
  alias: "aria-label"
9951
10103
  });
9952
10104
  clicked = output();
10105
+ menuId = uniqueId("ea-breadcrumbs-menu");
10106
+ menuOpen = signal(false, ...ngDevMode ? [{ debugName: "menuOpen" }] : /* istanbul ignore next */ []);
10107
+ menuPinned = false;
10108
+ menuFocusPending = signal(false, ...ngDevMode ? [{ debugName: "menuFocusPending" }] : /* istanbul ignore next */ []);
10109
+ crowdedOut = signal(0, ...ngDevMode ? [{ debugName: "crowdedOut" }] : /* istanbul ignore next */ []);
9953
10110
  resolvedAriaLabel = computed(() => this.ariaLabel() ?? this.i18n.messages().breadcrumbs.label, ...ngDevMode ? [{ debugName: "resolvedAriaLabel" }] : /* istanbul ignore next */ []);
10111
+ indexed = computed(() => this.items().map((item, index) => ({
10112
+ item,
10113
+ index
10114
+ })), ...ngDevMode ? [{ debugName: "indexed" }] : /* istanbul ignore next */ []);
10115
+ menuCount = computed(() => {
10116
+ const count = this.items().length;
10117
+ const max = this.maxItems();
10118
+ const overMax = max ? count - Math.max(2, max) : 0;
10119
+ const crowdedOut = this.overflow() === "menu" ? this.crowdedOut() : 0;
10120
+ return Math.max(0, Math.min(count - 2, Math.max(overMax, crowdedOut)));
10121
+ }, ...ngDevMode ? [{ debugName: "menuCount" }] : /* istanbul ignore next */ []);
10122
+ crumbs = computed(() => {
10123
+ const all = this.indexed();
10124
+ const inMenu = this.menuCount();
10125
+ return inMenu > 0 ? [all[0], ...all.slice(inMenu + 1)] : all;
10126
+ }, ...ngDevMode ? [{ debugName: "crumbs" }] : /* istanbul ignore next */ []);
10127
+ menuCrumbs = computed(() => this.indexed().slice(1, 1 + this.menuCount()), ...ngDevMode ? [{ debugName: "menuCrumbs" }] : /* istanbul ignore next */ []);
10128
+ constructor() {
10129
+ afterRenderEffect((onCleanup) => {
10130
+ const sizer = this.sizerEl()?.nativeElement;
10131
+ const expand = this.sizerExpandEl()?.nativeElement;
10132
+ const levels = this.sizerItemEls();
10133
+ if (!sizer || !expand || typeof ResizeObserver === "undefined") return;
10134
+ const observer = new ResizeObserver(() => this.fit());
10135
+ observer.observe(sizer);
10136
+ observer.observe(expand);
10137
+ for (const level of levels) observer.observe(level.nativeElement);
10138
+ onCleanup(() => observer.disconnect());
10139
+ untracked(() => this.fit());
10140
+ });
10141
+ afterRenderEffect(() => {
10142
+ if (this.menuFocusPending() && this.popover()?.isPositioned()) untracked(() => {
10143
+ this.menuFocusPending.set(false);
10144
+ this.menuItems()[0]?.focus();
10145
+ });
10146
+ });
10147
+ effect(() => {
10148
+ if (this.menuCrumbs().length === 0) untracked(() => this.closeMenu());
10149
+ });
10150
+ }
9954
10151
  isLast(index) {
9955
10152
  return index === this.items().length - 1;
9956
10153
  }
@@ -9965,6 +10162,94 @@ var BreadcrumbsComponent = class BreadcrumbsComponent {
9965
10162
  event
9966
10163
  });
9967
10164
  }
10165
+ toggleMenu() {
10166
+ if (this.menuOpen() && this.menuPinned) this.closeMenu();
10167
+ else this.openMenu(true);
10168
+ }
10169
+ handleExpandKeydown(event) {
10170
+ if (event.key === "ArrowDown") {
10171
+ event.preventDefault();
10172
+ this.openMenu(true);
10173
+ } else if (event.key === "Escape" && this.menuOpen()) {
10174
+ event.preventDefault();
10175
+ this.closeMenu();
10176
+ }
10177
+ }
10178
+ handleExpandEnter() {
10179
+ if (!this.menuOpen()) this.openMenu(false);
10180
+ }
10181
+ handleHoverLeave(event) {
10182
+ if (this.menuPinned) return;
10183
+ const next = event.relatedTarget;
10184
+ if (!(next instanceof Node && (this.expandEl()?.nativeElement.contains(next) || this.menuEl()?.nativeElement.contains(next)))) this.closeMenu();
10185
+ }
10186
+ handleMenuClick(crumb, event) {
10187
+ this.clicked.emit({
10188
+ item: crumb.item,
10189
+ index: crumb.index,
10190
+ event
10191
+ });
10192
+ this.closeMenu(true);
10193
+ }
10194
+ handleMenuKeydown(event) {
10195
+ const items = this.menuItems();
10196
+ const current = items.findIndex((item) => item === document.activeElement);
10197
+ switch (event.key) {
10198
+ case "ArrowDown":
10199
+ event.preventDefault();
10200
+ items[current < items.length - 1 ? current + 1 : 0]?.focus();
10201
+ break;
10202
+ case "ArrowUp":
10203
+ event.preventDefault();
10204
+ items[current > 0 ? current - 1 : items.length - 1]?.focus();
10205
+ break;
10206
+ case "Home":
10207
+ event.preventDefault();
10208
+ items[0]?.focus();
10209
+ break;
10210
+ case "End":
10211
+ event.preventDefault();
10212
+ items[items.length - 1]?.focus();
10213
+ break;
10214
+ case "Escape":
10215
+ event.preventDefault();
10216
+ this.closeMenu(true);
10217
+ break;
10218
+ case "Tab": this.closeMenu(true);
10219
+ }
10220
+ }
10221
+ closeMenu(restoreFocus = false) {
10222
+ if (!this.menuOpen()) return;
10223
+ this.menuOpen.set(false);
10224
+ this.menuPinned = false;
10225
+ this.menuFocusPending.set(false);
10226
+ if (restoreFocus) this.expandEl()?.nativeElement.focus();
10227
+ }
10228
+ openMenu(pinned) {
10229
+ this.menuPinned = pinned;
10230
+ this.menuOpen.set(true);
10231
+ this.menuFocusPending.set(pinned);
10232
+ }
10233
+ menuItems() {
10234
+ const menu = this.menuEl()?.nativeElement;
10235
+ return menu ? Array.from(menu.querySelectorAll("[role=\"menuitem\"]:not([aria-disabled])")) : [];
10236
+ }
10237
+ fit() {
10238
+ const sizer = this.sizerEl()?.nativeElement;
10239
+ const expand = this.sizerExpandEl()?.nativeElement;
10240
+ if (!sizer || !expand) return;
10241
+ const widths = this.sizerItemEls().map((level) => level.nativeElement.getBoundingClientRect().width);
10242
+ const gap = parseFloat(getComputedStyle(sizer).columnGap) || 0;
10243
+ const available = sizer.getBoundingClientRect().width;
10244
+ let needed = widths.reduce((sum, width) => sum + width + gap, -gap);
10245
+ let crowdedOut = 0;
10246
+ while (crowdedOut < widths.length - 2 && needed > available + .5) {
10247
+ crowdedOut++;
10248
+ needed -= widths[crowdedOut] + gap;
10249
+ if (crowdedOut === 1) needed += expand.getBoundingClientRect().width + gap;
10250
+ }
10251
+ this.crowdedOut.set(crowdedOut);
10252
+ }
9968
10253
  static ɵfac = i0.ɵɵngDeclareFactory({
9969
10254
  minVersion: "12.0.0",
9970
10255
  version: "22.2.1",
@@ -10001,6 +10286,20 @@ var BreadcrumbsComponent = class BreadcrumbsComponent {
10001
10286
  isRequired: false,
10002
10287
  transformFunction: null
10003
10288
  },
10289
+ maxItems: {
10290
+ classPropertyName: "maxItems",
10291
+ publicName: "maxItems",
10292
+ isSignal: true,
10293
+ isRequired: false,
10294
+ transformFunction: null
10295
+ },
10296
+ overflow: {
10297
+ classPropertyName: "overflow",
10298
+ publicName: "overflow",
10299
+ isSignal: true,
10300
+ isRequired: false,
10301
+ transformFunction: null
10302
+ },
10004
10303
  ariaLabel: {
10005
10304
  classPropertyName: "ariaLabel",
10006
10305
  publicName: "aria-label",
@@ -10010,14 +10309,100 @@ var BreadcrumbsComponent = class BreadcrumbsComponent {
10010
10309
  }
10011
10310
  },
10012
10311
  outputs: { clicked: "clicked" },
10312
+ viewQueries: [
10313
+ {
10314
+ propertyName: "popover",
10315
+ first: true,
10316
+ predicate: PopoverComponent,
10317
+ descendants: true,
10318
+ isSignal: true
10319
+ },
10320
+ {
10321
+ propertyName: "expandEl",
10322
+ first: true,
10323
+ predicate: ["expandEl"],
10324
+ descendants: true,
10325
+ isSignal: true
10326
+ },
10327
+ {
10328
+ propertyName: "menuEl",
10329
+ first: true,
10330
+ predicate: ["menuEl"],
10331
+ descendants: true,
10332
+ isSignal: true
10333
+ },
10334
+ {
10335
+ propertyName: "sizerEl",
10336
+ first: true,
10337
+ predicate: ["sizerEl"],
10338
+ descendants: true,
10339
+ isSignal: true
10340
+ },
10341
+ {
10342
+ propertyName: "sizerItemEls",
10343
+ predicate: ["sizerItemEl"],
10344
+ descendants: true,
10345
+ isSignal: true
10346
+ },
10347
+ {
10348
+ propertyName: "sizerExpandEl",
10349
+ first: true,
10350
+ predicate: ["sizerExpandEl"],
10351
+ descendants: true,
10352
+ isSignal: true
10353
+ }
10354
+ ],
10013
10355
  ngImport: i0,
10014
- template: "<nav\n class=\"ea-breadcrumbs ea-breadcrumbs--{{ size() }}\"\n [attr.aria-label]=\"resolvedAriaLabel()\">\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 ea-rtl-flip\"\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",
10015
- styles: [".ea-breadcrumbs{font-family:var(--font-family-sans);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-breadcrumbs--2xs{font-size:var(--font-size-2xs)}.ea-breadcrumbs--xs{font-size:var(--font-size-xs)}.ea-breadcrumbs--sm{font-size:var(--font-size-sm)}.ea-breadcrumbs--md{font-size:var(--font-size-md)}.ea-breadcrumbs--lg{font-size:var(--font-size-lg)}.ea-breadcrumbs--xl{font-size:var(--font-size-xl)}.ea-breadcrumbs__list{display:flex;flex-wrap:wrap;align-items:center;gap:.25em;padding:0;margin:0;list-style:none}.ea-breadcrumbs__item{display:inline-flex;align-items:center;gap:.25em;min-width:0}.ea-breadcrumbs__link{padding:.125em .25em;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)}@media(forced-colors:active){.ea-breadcrumbs__link:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-breadcrumbs__link--disabled{color:var(--color-text-disabled);cursor:default}.ea-breadcrumbs__current{padding:.125em .25em;font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.ea-breadcrumbs__separator{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;color:var(--color-text-tertiary);flex-shrink:0;-webkit-user-select:none;user-select:none}.ea-breadcrumbs__separator--slash{width:auto;height:auto}\n"],
10016
- dependencies: [{
10017
- kind: "component",
10018
- type: ChevronRightIconComponent,
10019
- selector: "ea-icon-chevron-right"
10020
- }],
10356
+ template: "<nav\n class=\"ea-breadcrumbs ea-breadcrumbs--{{ size() }} ea-breadcrumbs--{{ overflow() }}\"\n [attr.aria-label]=\"resolvedAriaLabel()\">\n <ol class=\"ea-breadcrumbs__list\">\n @for (crumb of crumbs(); track crumb.index; let first = $first; let last = $last) {\n <li class=\"ea-breadcrumbs__item\">\n @if (last) {\n <span\n class=\"ea-breadcrumbs__current\"\n aria-current=\"page\">\n {{ crumb.item.label }}\n </span>\n } @else if (crumb.item.disabled) {\n <span class=\"ea-breadcrumbs__link ea-breadcrumbs__link--disabled\">\n {{ crumb.item.label }}\n </span>\n } @else if (crumb.item.href) {\n <a\n class=\"ea-breadcrumbs__link\"\n [href]=\"crumb.item.href\"\n (click)=\"handleClick(crumb.item, crumb.index, $event)\">\n {{ crumb.item.label }}\n </a>\n } @else {\n <button\n type=\"button\"\n class=\"ea-breadcrumbs__link ea-breadcrumbs__link--button\"\n (click)=\"handleClick(crumb.item, crumb.index, $event)\">\n {{ crumb.item.label }}\n </button>\n }\n\n @if (!last) {\n <ng-container [ngTemplateOutlet]=\"separatorTpl\" />\n }\n </li>\n @if (first && menuCrumbs().length > 0) {\n <li class=\"ea-breadcrumbs__item\">\n <button\n #expandEl\n type=\"button\"\n class=\"ea-breadcrumbs__link ea-breadcrumbs__link--button ea-breadcrumbs__expand\"\n aria-haspopup=\"menu\"\n [attr.aria-expanded]=\"menuOpen()\"\n [attr.aria-controls]=\"menuOpen() ? menuId : null\"\n [attr.aria-label]=\"i18n.messages().breadcrumbs.showHidden\"\n (click)=\"toggleMenu()\"\n (keydown)=\"handleExpandKeydown($event)\"\n (mouseenter)=\"handleExpandEnter()\"\n (mouseleave)=\"handleHoverLeave($event)\">\n <ea-icon-more-horizontal aria-hidden=\"true\" />\n </button>\n <ng-container [ngTemplateOutlet]=\"separatorTpl\" />\n </li>\n }\n }\n </ol>\n\n @if (overflow() === 'menu') {\n <div\n #sizerEl\n class=\"ea-breadcrumbs__sizer\"\n aria-hidden=\"true\">\n @for (item of items(); track $index; let last = $last) {\n <span\n #sizerItemEl\n class=\"ea-breadcrumbs__item\">\n <span [class]=\"last ? 'ea-breadcrumbs__current' : 'ea-breadcrumbs__link'\">\n {{ item.label }}\n </span>\n @if (!last) {\n <ng-container [ngTemplateOutlet]=\"separatorTpl\" />\n }\n </span>\n }\n <span\n #sizerExpandEl\n class=\"ea-breadcrumbs__item ea-breadcrumbs__sizer-expand\">\n <span class=\"ea-breadcrumbs__link ea-breadcrumbs__expand\">\n <ea-icon-more-horizontal />\n </span>\n <ng-container [ngTemplateOutlet]=\"separatorTpl\" />\n </span>\n </div>\n }\n</nav>\n\n<ea-popover\n [anchor]=\"expandEl()\"\n [open]=\"menuOpen()\"\n placement=\"bottom-start\"\n role=\"menu\"\n [surfaceId]=\"menuId\"\n [aria-label]=\"i18n.messages().breadcrumbs.showHidden\"\n [closeOnEscape]=\"false\"\n (closeRequested)=\"closeMenu()\">\n <div\n #menuEl\n class=\"ea-breadcrumbs__menu ea-breadcrumbs__menu--{{ size() }}\"\n role=\"none\"\n (keydown)=\"handleMenuKeydown($event)\"\n (mouseleave)=\"handleHoverLeave($event)\">\n <div\n class=\"ea-breadcrumbs__menu-list\"\n role=\"none\">\n @for (crumb of menuCrumbs(); track crumb.index) {\n @if (crumb.item.disabled) {\n <span\n class=\"ea-breadcrumbs__menu-item ea-breadcrumbs__menu-item--disabled\"\n role=\"menuitem\"\n aria-disabled=\"true\">\n {{ crumb.item.label }}\n </span>\n } @else if (crumb.item.href) {\n <a\n class=\"ea-breadcrumbs__menu-item\"\n role=\"menuitem\"\n tabindex=\"-1\"\n [href]=\"crumb.item.href\"\n (click)=\"handleMenuClick(crumb, $event)\">\n {{ crumb.item.label }}\n </a>\n } @else {\n <button\n type=\"button\"\n class=\"ea-breadcrumbs__menu-item\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"handleMenuClick(crumb, $event)\">\n {{ crumb.item.label }}\n </button>\n }\n }\n </div>\n </div>\n</ea-popover>\n\n<ng-template #separatorTpl>\n @if (separator() === 'chevron') {\n <ea-icon-chevron-right\n class=\"ea-breadcrumbs__separator ea-rtl-flip\"\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</ng-template>\n",
10357
+ styles: ["ea-breadcrumbs{display:block;min-width:0}.ea-breadcrumbs{font-family:var(--font-family-sans);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-breadcrumbs--2xs{font-size:var(--font-size-2xs)}.ea-breadcrumbs--xs{font-size:var(--font-size-xs)}.ea-breadcrumbs--sm{font-size:var(--font-size-sm)}.ea-breadcrumbs--md{font-size:var(--font-size-md)}.ea-breadcrumbs--lg{font-size:var(--font-size-lg)}.ea-breadcrumbs--xl{font-size:var(--font-size-xl)}.ea-breadcrumbs__list{display:flex;align-items:center;gap:.25em;padding:0;margin:0;list-style:none}.ea-breadcrumbs__item{display:inline-flex;flex-shrink:0;align-items:center;gap:.25em;min-width:0;white-space:nowrap}.ea-breadcrumbs--menu .ea-breadcrumbs__list>.ea-breadcrumbs__item:last-child{flex-shrink:1}.ea-breadcrumbs--scroll .ea-breadcrumbs__list{overflow-x:auto;padding:var(--space-1);margin:calc(-1 * var(--space-1))}.ea-breadcrumbs__sizer{position:relative;overflow:hidden;visibility:hidden;display:flex;flex-wrap:wrap;gap:.25em;height:0}.ea-breadcrumbs__sizer-expand{position:absolute;top:0;inset-inline-start:0}.ea-breadcrumbs__link{padding:.125em .25em;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)}@media(forced-colors:active){.ea-breadcrumbs__link:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-breadcrumbs__link--disabled{color:var(--color-text-disabled);cursor:default}.ea-breadcrumbs__expand{display:inline-flex;align-items:center}.ea-breadcrumbs__current{overflow:hidden;min-width:0;padding:.125em .25em;text-overflow:ellipsis;font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.ea-breadcrumbs__separator{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;color:var(--color-text-tertiary);flex-shrink:0;-webkit-user-select:none;user-select:none}.ea-breadcrumbs__separator--slash{width:auto;height:auto}.ea-breadcrumbs__menu{position:relative}.ea-breadcrumbs__menu--2xs{font-size:var(--font-size-2xs)}.ea-breadcrumbs__menu--xs{font-size:var(--font-size-xs)}.ea-breadcrumbs__menu--sm{font-size:var(--font-size-sm)}.ea-breadcrumbs__menu--md{font-size:var(--font-size-md)}.ea-breadcrumbs__menu--lg{font-size:var(--font-size-lg)}.ea-breadcrumbs__menu--xl{font-size:var(--font-size-xl)}.ea-breadcrumbs__menu:before,.ea-breadcrumbs__menu:after{position:absolute;right:0;left:0;height:var(--space-1);content:\"\"}.ea-breadcrumbs__menu:before{bottom:100%}.ea-breadcrumbs__menu:after{top:100%}.ea-breadcrumbs__menu-list{overflow-y:auto;min-width:10em;padding:.25em 0;border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}@media(forced-colors:active){.ea-breadcrumbs__menu-list{border:1px solid CanvasText}}.ea-breadcrumbs__menu-list{max-height:20rem;background-color:var(--color-bg-elevated)}.ea-breadcrumbs__menu-item{display:flex;align-items:center;gap:.5em;width:100%;padding:.5em .75em;font-size:inherit;text-align:start;font-family:var(--font-family-sans);border:none;background:transparent;color:var(--color-text-primary);cursor:pointer;transition:var(--transition-colors)}.ea-breadcrumbs__menu-item:hover:not(.ea-breadcrumbs__menu-item--disabled),.ea-breadcrumbs__menu-item:focus-visible:not(.ea-breadcrumbs__menu-item--disabled){background-color:var(--color-state-hover)}@media(forced-colors:active){.ea-breadcrumbs__menu-item:hover:not(.ea-breadcrumbs__menu-item--disabled),.ea-breadcrumbs__menu-item:focus-visible:not(.ea-breadcrumbs__menu-item--disabled){background-color:Highlight;color:HighlightText}}.ea-breadcrumbs__menu-item:focus-visible{outline:none}.ea-breadcrumbs__menu-item{text-decoration:none}.ea-breadcrumbs__menu-item--disabled{color:var(--color-text-disabled);cursor:default}\n"],
10358
+ dependencies: [
10359
+ {
10360
+ kind: "component",
10361
+ type: ChevronRightIconComponent,
10362
+ selector: "ea-icon-chevron-right"
10363
+ },
10364
+ {
10365
+ kind: "component",
10366
+ type: MoreHorizontalIconComponent,
10367
+ selector: "ea-icon-more-horizontal"
10368
+ },
10369
+ {
10370
+ kind: "directive",
10371
+ type: NgTemplateOutlet,
10372
+ selector: "[ngTemplateOutlet]",
10373
+ inputs: [
10374
+ "ngTemplateOutletContext",
10375
+ "ngTemplateOutlet",
10376
+ "ngTemplateOutletInjector"
10377
+ ]
10378
+ },
10379
+ {
10380
+ kind: "component",
10381
+ type: PopoverComponent,
10382
+ selector: "ea-popover",
10383
+ inputs: [
10384
+ "anchor",
10385
+ "open",
10386
+ "placement",
10387
+ "anchorPoint",
10388
+ "role",
10389
+ "aria-label",
10390
+ "aria-labelledby",
10391
+ "trapFocus",
10392
+ "surfaceId",
10393
+ "offset",
10394
+ "flip",
10395
+ "clamp",
10396
+ "matchAnchorWidth",
10397
+ "maxWidth",
10398
+ "closeOnOutsideClick",
10399
+ "closeOnEscape",
10400
+ "scrollBehavior",
10401
+ "contextMenu"
10402
+ ],
10403
+ outputs: ["closeRequested", "openRequested"]
10404
+ }
10405
+ ],
10021
10406
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
10022
10407
  encapsulation: i0.ViewEncapsulation.None
10023
10408
  });
@@ -10031,14 +10416,44 @@ i0.ɵɵngDeclareClassMetadata({
10031
10416
  type: Component,
10032
10417
  args: [{
10033
10418
  selector: "ea-breadcrumbs",
10034
- imports: [ChevronRightIconComponent],
10419
+ imports: [
10420
+ ChevronRightIconComponent,
10421
+ MoreHorizontalIconComponent,
10422
+ NgTemplateOutlet,
10423
+ PopoverComponent
10424
+ ],
10035
10425
  changeDetection: ChangeDetectionStrategy.OnPush,
10036
10426
  encapsulation: ViewEncapsulation.None,
10037
- template: "<nav\n class=\"ea-breadcrumbs ea-breadcrumbs--{{ size() }}\"\n [attr.aria-label]=\"resolvedAriaLabel()\">\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 ea-rtl-flip\"\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",
10038
- styles: [".ea-breadcrumbs{font-family:var(--font-family-sans);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-breadcrumbs--2xs{font-size:var(--font-size-2xs)}.ea-breadcrumbs--xs{font-size:var(--font-size-xs)}.ea-breadcrumbs--sm{font-size:var(--font-size-sm)}.ea-breadcrumbs--md{font-size:var(--font-size-md)}.ea-breadcrumbs--lg{font-size:var(--font-size-lg)}.ea-breadcrumbs--xl{font-size:var(--font-size-xl)}.ea-breadcrumbs__list{display:flex;flex-wrap:wrap;align-items:center;gap:.25em;padding:0;margin:0;list-style:none}.ea-breadcrumbs__item{display:inline-flex;align-items:center;gap:.25em;min-width:0}.ea-breadcrumbs__link{padding:.125em .25em;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)}@media(forced-colors:active){.ea-breadcrumbs__link:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-breadcrumbs__link--disabled{color:var(--color-text-disabled);cursor:default}.ea-breadcrumbs__current{padding:.125em .25em;font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.ea-breadcrumbs__separator{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;color:var(--color-text-tertiary);flex-shrink:0;-webkit-user-select:none;user-select:none}.ea-breadcrumbs__separator--slash{width:auto;height:auto}\n"]
10427
+ template: "<nav\n class=\"ea-breadcrumbs ea-breadcrumbs--{{ size() }} ea-breadcrumbs--{{ overflow() }}\"\n [attr.aria-label]=\"resolvedAriaLabel()\">\n <ol class=\"ea-breadcrumbs__list\">\n @for (crumb of crumbs(); track crumb.index; let first = $first; let last = $last) {\n <li class=\"ea-breadcrumbs__item\">\n @if (last) {\n <span\n class=\"ea-breadcrumbs__current\"\n aria-current=\"page\">\n {{ crumb.item.label }}\n </span>\n } @else if (crumb.item.disabled) {\n <span class=\"ea-breadcrumbs__link ea-breadcrumbs__link--disabled\">\n {{ crumb.item.label }}\n </span>\n } @else if (crumb.item.href) {\n <a\n class=\"ea-breadcrumbs__link\"\n [href]=\"crumb.item.href\"\n (click)=\"handleClick(crumb.item, crumb.index, $event)\">\n {{ crumb.item.label }}\n </a>\n } @else {\n <button\n type=\"button\"\n class=\"ea-breadcrumbs__link ea-breadcrumbs__link--button\"\n (click)=\"handleClick(crumb.item, crumb.index, $event)\">\n {{ crumb.item.label }}\n </button>\n }\n\n @if (!last) {\n <ng-container [ngTemplateOutlet]=\"separatorTpl\" />\n }\n </li>\n @if (first && menuCrumbs().length > 0) {\n <li class=\"ea-breadcrumbs__item\">\n <button\n #expandEl\n type=\"button\"\n class=\"ea-breadcrumbs__link ea-breadcrumbs__link--button ea-breadcrumbs__expand\"\n aria-haspopup=\"menu\"\n [attr.aria-expanded]=\"menuOpen()\"\n [attr.aria-controls]=\"menuOpen() ? menuId : null\"\n [attr.aria-label]=\"i18n.messages().breadcrumbs.showHidden\"\n (click)=\"toggleMenu()\"\n (keydown)=\"handleExpandKeydown($event)\"\n (mouseenter)=\"handleExpandEnter()\"\n (mouseleave)=\"handleHoverLeave($event)\">\n <ea-icon-more-horizontal aria-hidden=\"true\" />\n </button>\n <ng-container [ngTemplateOutlet]=\"separatorTpl\" />\n </li>\n }\n }\n </ol>\n\n @if (overflow() === 'menu') {\n <div\n #sizerEl\n class=\"ea-breadcrumbs__sizer\"\n aria-hidden=\"true\">\n @for (item of items(); track $index; let last = $last) {\n <span\n #sizerItemEl\n class=\"ea-breadcrumbs__item\">\n <span [class]=\"last ? 'ea-breadcrumbs__current' : 'ea-breadcrumbs__link'\">\n {{ item.label }}\n </span>\n @if (!last) {\n <ng-container [ngTemplateOutlet]=\"separatorTpl\" />\n }\n </span>\n }\n <span\n #sizerExpandEl\n class=\"ea-breadcrumbs__item ea-breadcrumbs__sizer-expand\">\n <span class=\"ea-breadcrumbs__link ea-breadcrumbs__expand\">\n <ea-icon-more-horizontal />\n </span>\n <ng-container [ngTemplateOutlet]=\"separatorTpl\" />\n </span>\n </div>\n }\n</nav>\n\n<ea-popover\n [anchor]=\"expandEl()\"\n [open]=\"menuOpen()\"\n placement=\"bottom-start\"\n role=\"menu\"\n [surfaceId]=\"menuId\"\n [aria-label]=\"i18n.messages().breadcrumbs.showHidden\"\n [closeOnEscape]=\"false\"\n (closeRequested)=\"closeMenu()\">\n <div\n #menuEl\n class=\"ea-breadcrumbs__menu ea-breadcrumbs__menu--{{ size() }}\"\n role=\"none\"\n (keydown)=\"handleMenuKeydown($event)\"\n (mouseleave)=\"handleHoverLeave($event)\">\n <div\n class=\"ea-breadcrumbs__menu-list\"\n role=\"none\">\n @for (crumb of menuCrumbs(); track crumb.index) {\n @if (crumb.item.disabled) {\n <span\n class=\"ea-breadcrumbs__menu-item ea-breadcrumbs__menu-item--disabled\"\n role=\"menuitem\"\n aria-disabled=\"true\">\n {{ crumb.item.label }}\n </span>\n } @else if (crumb.item.href) {\n <a\n class=\"ea-breadcrumbs__menu-item\"\n role=\"menuitem\"\n tabindex=\"-1\"\n [href]=\"crumb.item.href\"\n (click)=\"handleMenuClick(crumb, $event)\">\n {{ crumb.item.label }}\n </a>\n } @else {\n <button\n type=\"button\"\n class=\"ea-breadcrumbs__menu-item\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"handleMenuClick(crumb, $event)\">\n {{ crumb.item.label }}\n </button>\n }\n }\n </div>\n </div>\n</ea-popover>\n\n<ng-template #separatorTpl>\n @if (separator() === 'chevron') {\n <ea-icon-chevron-right\n class=\"ea-breadcrumbs__separator ea-rtl-flip\"\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</ng-template>\n",
10428
+ styles: ["ea-breadcrumbs{display:block;min-width:0}.ea-breadcrumbs{font-family:var(--font-family-sans);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-breadcrumbs--2xs{font-size:var(--font-size-2xs)}.ea-breadcrumbs--xs{font-size:var(--font-size-xs)}.ea-breadcrumbs--sm{font-size:var(--font-size-sm)}.ea-breadcrumbs--md{font-size:var(--font-size-md)}.ea-breadcrumbs--lg{font-size:var(--font-size-lg)}.ea-breadcrumbs--xl{font-size:var(--font-size-xl)}.ea-breadcrumbs__list{display:flex;align-items:center;gap:.25em;padding:0;margin:0;list-style:none}.ea-breadcrumbs__item{display:inline-flex;flex-shrink:0;align-items:center;gap:.25em;min-width:0;white-space:nowrap}.ea-breadcrumbs--menu .ea-breadcrumbs__list>.ea-breadcrumbs__item:last-child{flex-shrink:1}.ea-breadcrumbs--scroll .ea-breadcrumbs__list{overflow-x:auto;padding:var(--space-1);margin:calc(-1 * var(--space-1))}.ea-breadcrumbs__sizer{position:relative;overflow:hidden;visibility:hidden;display:flex;flex-wrap:wrap;gap:.25em;height:0}.ea-breadcrumbs__sizer-expand{position:absolute;top:0;inset-inline-start:0}.ea-breadcrumbs__link{padding:.125em .25em;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)}@media(forced-colors:active){.ea-breadcrumbs__link:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-breadcrumbs__link--disabled{color:var(--color-text-disabled);cursor:default}.ea-breadcrumbs__expand{display:inline-flex;align-items:center}.ea-breadcrumbs__current{overflow:hidden;min-width:0;padding:.125em .25em;text-overflow:ellipsis;font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.ea-breadcrumbs__separator{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;color:var(--color-text-tertiary);flex-shrink:0;-webkit-user-select:none;user-select:none}.ea-breadcrumbs__separator--slash{width:auto;height:auto}.ea-breadcrumbs__menu{position:relative}.ea-breadcrumbs__menu--2xs{font-size:var(--font-size-2xs)}.ea-breadcrumbs__menu--xs{font-size:var(--font-size-xs)}.ea-breadcrumbs__menu--sm{font-size:var(--font-size-sm)}.ea-breadcrumbs__menu--md{font-size:var(--font-size-md)}.ea-breadcrumbs__menu--lg{font-size:var(--font-size-lg)}.ea-breadcrumbs__menu--xl{font-size:var(--font-size-xl)}.ea-breadcrumbs__menu:before,.ea-breadcrumbs__menu:after{position:absolute;right:0;left:0;height:var(--space-1);content:\"\"}.ea-breadcrumbs__menu:before{bottom:100%}.ea-breadcrumbs__menu:after{top:100%}.ea-breadcrumbs__menu-list{overflow-y:auto;min-width:10em;padding:.25em 0;border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}@media(forced-colors:active){.ea-breadcrumbs__menu-list{border:1px solid CanvasText}}.ea-breadcrumbs__menu-list{max-height:20rem;background-color:var(--color-bg-elevated)}.ea-breadcrumbs__menu-item{display:flex;align-items:center;gap:.5em;width:100%;padding:.5em .75em;font-size:inherit;text-align:start;font-family:var(--font-family-sans);border:none;background:transparent;color:var(--color-text-primary);cursor:pointer;transition:var(--transition-colors)}.ea-breadcrumbs__menu-item:hover:not(.ea-breadcrumbs__menu-item--disabled),.ea-breadcrumbs__menu-item:focus-visible:not(.ea-breadcrumbs__menu-item--disabled){background-color:var(--color-state-hover)}@media(forced-colors:active){.ea-breadcrumbs__menu-item:hover:not(.ea-breadcrumbs__menu-item--disabled),.ea-breadcrumbs__menu-item:focus-visible:not(.ea-breadcrumbs__menu-item--disabled){background-color:Highlight;color:HighlightText}}.ea-breadcrumbs__menu-item:focus-visible{outline:none}.ea-breadcrumbs__menu-item{text-decoration:none}.ea-breadcrumbs__menu-item--disabled{color:var(--color-text-disabled);cursor:default}\n"]
10039
10429
  }]
10040
10430
  }],
10431
+ ctorParameters: () => [],
10041
10432
  propDecorators: {
10433
+ popover: [{
10434
+ type: i0.ViewChild,
10435
+ args: [i0.forwardRef(() => PopoverComponent), { isSignal: true }]
10436
+ }],
10437
+ expandEl: [{
10438
+ type: i0.ViewChild,
10439
+ args: ["expandEl", { isSignal: true }]
10440
+ }],
10441
+ menuEl: [{
10442
+ type: i0.ViewChild,
10443
+ args: ["menuEl", { isSignal: true }]
10444
+ }],
10445
+ sizerEl: [{
10446
+ type: i0.ViewChild,
10447
+ args: ["sizerEl", { isSignal: true }]
10448
+ }],
10449
+ sizerItemEls: [{
10450
+ type: i0.ViewChildren,
10451
+ args: ["sizerItemEl", { isSignal: true }]
10452
+ }],
10453
+ sizerExpandEl: [{
10454
+ type: i0.ViewChild,
10455
+ args: ["sizerExpandEl", { isSignal: true }]
10456
+ }],
10042
10457
  items: [{
10043
10458
  type: i0.Input,
10044
10459
  args: [{
@@ -10063,6 +10478,22 @@ i0.ɵɵngDeclareClassMetadata({
10063
10478
  required: false
10064
10479
  }]
10065
10480
  }],
10481
+ maxItems: [{
10482
+ type: i0.Input,
10483
+ args: [{
10484
+ isSignal: true,
10485
+ alias: "maxItems",
10486
+ required: false
10487
+ }]
10488
+ }],
10489
+ overflow: [{
10490
+ type: i0.Input,
10491
+ args: [{
10492
+ isSignal: true,
10493
+ alias: "overflow",
10494
+ required: false
10495
+ }]
10496
+ }],
10066
10497
  ariaLabel: [{
10067
10498
  type: i0.Input,
10068
10499
  args: [{
@@ -14111,7 +14542,7 @@ var MenuComponent = class MenuComponent {
14111
14542
  }],
14112
14543
  ngImport: i0,
14113
14544
  template: "<ea-popover\n [anchor]=\"triggerEl()\"\n [open]=\"open()\"\n [placement]=\"placement()\"\n [anchorPoint]=\"anchorPoint()\"\n [contextMenu]=\"asContextMenu()\"\n role=\"menu\"\n [surfaceId]=\"id()\"\n [aria-label]=\"resolvedAriaLabel()\"\n [closeOnEscape]=\"false\"\n scrollBehavior=\"reposition\"\n (closeRequested)=\"onPopoverCloseRequested()\">\n <div\n #listEl\n class=\"ea-menu__list ea-menu__list--{{ size() }}\"\n [style.max-height]=\"maxHeight()\">\n <ng-content />\n </div>\n</ea-popover>\n",
14114
- styles: [":host{display:contents}.ea-menu__list{min-width:10em;padding:.25em 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(--ea-menu-list-background-color, var(--color-bg-elevated))}@media(forced-colors:active){.ea-menu__list{border:1px solid CanvasText}}.ea-menu__list--2xs{font-size:var(--font-size-2xs)}.ea-menu__list--xs{font-size:var(--font-size-xs)}.ea-menu__list--sm{font-size:var(--font-size-sm)}.ea-menu__list--md{font-size:var(--font-size-md)}.ea-menu__list--lg{font-size:var(--font-size-lg)}.ea-menu__list--xl{font-size:var(--font-size-xl)}\n"],
14545
+ styles: [":host{display:contents}.ea-menu__list{overflow-y:auto;min-width:10em;padding:.25em 0;border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}@media(forced-colors:active){.ea-menu__list{border:1px solid CanvasText}}.ea-menu__list{background-color:var(--ea-menu-list-background-color, var(--color-bg-elevated))}.ea-menu__list--2xs{font-size:var(--font-size-2xs)}.ea-menu__list--xs{font-size:var(--font-size-xs)}.ea-menu__list--sm{font-size:var(--font-size-sm)}.ea-menu__list--md{font-size:var(--font-size-md)}.ea-menu__list--lg{font-size:var(--font-size-lg)}.ea-menu__list--xl{font-size:var(--font-size-xl)}\n"],
14115
14546
  dependencies: [{
14116
14547
  kind: "component",
14117
14548
  type: PopoverComponent,
@@ -14153,7 +14584,7 @@ i0.ɵɵngDeclareClassMetadata({
14153
14584
  imports: [PopoverComponent],
14154
14585
  changeDetection: ChangeDetectionStrategy.OnPush,
14155
14586
  template: "<ea-popover\n [anchor]=\"triggerEl()\"\n [open]=\"open()\"\n [placement]=\"placement()\"\n [anchorPoint]=\"anchorPoint()\"\n [contextMenu]=\"asContextMenu()\"\n role=\"menu\"\n [surfaceId]=\"id()\"\n [aria-label]=\"resolvedAriaLabel()\"\n [closeOnEscape]=\"false\"\n scrollBehavior=\"reposition\"\n (closeRequested)=\"onPopoverCloseRequested()\">\n <div\n #listEl\n class=\"ea-menu__list ea-menu__list--{{ size() }}\"\n [style.max-height]=\"maxHeight()\">\n <ng-content />\n </div>\n</ea-popover>\n",
14156
- styles: [":host{display:contents}.ea-menu__list{min-width:10em;padding:.25em 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(--ea-menu-list-background-color, var(--color-bg-elevated))}@media(forced-colors:active){.ea-menu__list{border:1px solid CanvasText}}.ea-menu__list--2xs{font-size:var(--font-size-2xs)}.ea-menu__list--xs{font-size:var(--font-size-xs)}.ea-menu__list--sm{font-size:var(--font-size-sm)}.ea-menu__list--md{font-size:var(--font-size-md)}.ea-menu__list--lg{font-size:var(--font-size-lg)}.ea-menu__list--xl{font-size:var(--font-size-xl)}\n"]
14587
+ styles: [":host{display:contents}.ea-menu__list{overflow-y:auto;min-width:10em;padding:.25em 0;border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}@media(forced-colors:active){.ea-menu__list{border:1px solid CanvasText}}.ea-menu__list{background-color:var(--ea-menu-list-background-color, var(--color-bg-elevated))}.ea-menu__list--2xs{font-size:var(--font-size-2xs)}.ea-menu__list--xs{font-size:var(--font-size-xs)}.ea-menu__list--sm{font-size:var(--font-size-sm)}.ea-menu__list--md{font-size:var(--font-size-md)}.ea-menu__list--lg{font-size:var(--font-size-lg)}.ea-menu__list--xl{font-size:var(--font-size-xl)}\n"]
14157
14588
  }]
14158
14589
  }],
14159
14590
  ctorParameters: () => [],
@@ -16008,6 +16439,8 @@ var DatePickerComponent = class DatePickerComponent {
16008
16439
  errorMessages = input(void 0, ...ngDevMode ? [{ debugName: "errorMessages" }] : /* istanbul ignore next */ []);
16009
16440
  minDate = input(null, ...ngDevMode ? [{ debugName: "minDate" }] : /* istanbul ignore next */ []);
16010
16441
  maxDate = input(null, ...ngDevMode ? [{ debugName: "maxDate" }] : /* istanbul ignore next */ []);
16442
+ disabledWeekdays = input([], ...ngDevMode ? [{ debugName: "disabledWeekdays" }] : /* istanbul ignore next */ []);
16443
+ disabledDates = input([], ...ngDevMode ? [{ debugName: "disabledDates" }] : /* istanbul ignore next */ []);
16011
16444
  format = input("medium", ...ngDevMode ? [{ debugName: "format" }] : /* istanbul ignore next */ []);
16012
16445
  weekStartsOn = input(1, ...ngDevMode ? [{ debugName: "weekStartsOn" }] : /* istanbul ignore next */ []);
16013
16446
  locale = input(void 0, ...ngDevMode ? [{ debugName: "locale" }] : /* istanbul ignore next */ []);
@@ -16095,8 +16528,6 @@ var DatePickerComponent = class DatePickerComponent {
16095
16528
  const today = this.startOfDay(/* @__PURE__ */ new Date());
16096
16529
  const selected = this.value();
16097
16530
  const focused = this.focusedDate();
16098
- const min = this.minDate() ? this.startOfDay(this.minDate()) : null;
16099
- const max = this.maxDate() ? this.startOfDay(this.maxDate()) : null;
16100
16531
  const rows = [];
16101
16532
  for (let row = 0; row < 6; row++) {
16102
16533
  const cells = [];
@@ -16109,7 +16540,7 @@ var DatePickerComponent = class DatePickerComponent {
16109
16540
  isCurrentMonth: cellDate.getMonth() === month,
16110
16541
  isToday: this.isSameDay(cellDate, today),
16111
16542
  isSelected: selected ? this.isSameDay(cellDate, selected) : false,
16112
- isDisabled: (min ? cellDate < min : false) || (max ? cellDate > max : false),
16543
+ isDisabled: this.isUnavailable(cellDate),
16113
16544
  isFocused: focused ? this.isSameDay(cellDate, focused) : false
16114
16545
  });
16115
16546
  }
@@ -16253,7 +16684,7 @@ var DatePickerComponent = class DatePickerComponent {
16253
16684
  locale: this.effectiveLocale(),
16254
16685
  monthNames: this.i18n.messages().datePicker.months
16255
16686
  });
16256
- if (!parsed || this.isOutOfRange(parsed)) return;
16687
+ if (!parsed || this.isUnavailable(parsed)) return;
16257
16688
  const current = this.value();
16258
16689
  if (!current || !this.isSameDay(parsed, current)) this.applyValue(this.startOfDay(parsed));
16259
16690
  }
@@ -16268,10 +16699,15 @@ var DatePickerComponent = class DatePickerComponent {
16268
16699
  this.onTouched();
16269
16700
  this.changed.emit(date);
16270
16701
  }
16271
- isOutOfRange(date) {
16702
+ isUnavailable(date) {
16272
16703
  const min = this.minDate();
16273
16704
  const max = this.maxDate();
16274
- return !!min && date < this.startOfDay(min) || !!max && date > this.startOfDay(max);
16705
+ return !!min && date < this.startOfDay(min) || !!max && date > this.startOfDay(max) || this.disabledWeekdays().includes(date.getDay()) || this.disabledDates().some((entry) => this.covers(entry, date));
16706
+ }
16707
+ covers(entry, date) {
16708
+ if (entry instanceof Date) return this.isSameDay(entry, date);
16709
+ const day = this.startOfDay(date);
16710
+ return day >= this.startOfDay(entry.start) && day <= this.startOfDay(entry.end);
16275
16711
  }
16276
16712
  handleGridKeydown(event) {
16277
16713
  if (!this.isOpen()) return;
@@ -16311,7 +16747,7 @@ var DatePickerComponent = class DatePickerComponent {
16311
16747
  case " ": {
16312
16748
  event.preventDefault();
16313
16749
  const current = this.focusedDate();
16314
- if (!current || this.isOutOfRange(current)) return;
16750
+ if (!current || this.isUnavailable(current)) return;
16315
16751
  this.selectDay({
16316
16752
  date: current,
16317
16753
  day: current.getDate(),
@@ -16476,6 +16912,20 @@ var DatePickerComponent = class DatePickerComponent {
16476
16912
  isRequired: false,
16477
16913
  transformFunction: null
16478
16914
  },
16915
+ disabledWeekdays: {
16916
+ classPropertyName: "disabledWeekdays",
16917
+ publicName: "disabledWeekdays",
16918
+ isSignal: true,
16919
+ isRequired: false,
16920
+ transformFunction: null
16921
+ },
16922
+ disabledDates: {
16923
+ classPropertyName: "disabledDates",
16924
+ publicName: "disabledDates",
16925
+ isSignal: true,
16926
+ isRequired: false,
16927
+ transformFunction: null
16928
+ },
16479
16929
  format: {
16480
16930
  classPropertyName: "format",
16481
16931
  publicName: "format",
@@ -16759,6 +17209,22 @@ i0.ɵɵngDeclareClassMetadata({
16759
17209
  required: false
16760
17210
  }]
16761
17211
  }],
17212
+ disabledWeekdays: [{
17213
+ type: i0.Input,
17214
+ args: [{
17215
+ isSignal: true,
17216
+ alias: "disabledWeekdays",
17217
+ required: false
17218
+ }]
17219
+ }],
17220
+ disabledDates: [{
17221
+ type: i0.Input,
17222
+ args: [{
17223
+ isSignal: true,
17224
+ alias: "disabledDates",
17225
+ required: false
17226
+ }]
17227
+ }],
16762
17228
  format: [{
16763
17229
  type: i0.Input,
16764
17230
  args: [{
@@ -22241,7 +22707,7 @@ var MenuItemComponent = class MenuItemComponent {
22241
22707
  outputs: { clicked: "clicked" },
22242
22708
  ngImport: i0,
22243
22709
  template: "<button\n type=\"button\"\n class=\"ea-menu-item\"\n role=\"menuitem\"\n [id]=\"itemId\"\n [attr.tabindex]=\"tabIndex()\"\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",
22244
- styles: [".ea-menu-item{display:flex;align-items:center;gap:.5em;width:100%;padding:.5em .75em;font-size:inherit;font-family:var(--font-family-sans);text-align:start;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-state-hover)}@media(forced-colors:active){.ea-menu-item:hover:not(.ea-menu-item--disabled),.ea-menu-item:focus-visible:not(.ea-menu-item--disabled){background-color:Highlight;color:HighlightText}}.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))}@media(forced-colors:active){.ea-menu-item--danger:hover:not(.ea-menu-item--disabled),.ea-menu-item--danger:focus-visible:not(.ea-menu-item--disabled){background-color:Highlight;color:HighlightText}}.ea-menu-item--disabled{color:var(--color-text-disabled);cursor:default}.ea-menu-item__icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:1em;height:1em;color:inherit}.ea-menu-item__icon>*{width:1em;height:1em}.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"],
22710
+ styles: [".ea-menu-item{display:flex;align-items:center;gap:.5em;width:100%;padding:.5em .75em;font-size:inherit;text-align:start;font-family:var(--font-family-sans);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-state-hover)}@media(forced-colors:active){.ea-menu-item:hover:not(.ea-menu-item--disabled),.ea-menu-item:focus-visible:not(.ea-menu-item--disabled){background-color:Highlight;color:HighlightText}}.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))}@media(forced-colors:active){.ea-menu-item--danger:hover:not(.ea-menu-item--disabled),.ea-menu-item--danger:focus-visible:not(.ea-menu-item--disabled){background-color:Highlight;color:HighlightText}}.ea-menu-item--disabled{color:var(--color-text-disabled);cursor:default}.ea-menu-item__icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:1em;height:1em;color:inherit}.ea-menu-item__icon>*{width:1em;height:1em}.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"],
22245
22711
  changeDetection: i0.ChangeDetectionStrategy.OnPush
22246
22712
  });
22247
22713
  };
@@ -22256,7 +22722,7 @@ i0.ɵɵngDeclareClassMetadata({
22256
22722
  selector: "ea-menu-item",
22257
22723
  changeDetection: ChangeDetectionStrategy.OnPush,
22258
22724
  template: "<button\n type=\"button\"\n class=\"ea-menu-item\"\n role=\"menuitem\"\n [id]=\"itemId\"\n [attr.tabindex]=\"tabIndex()\"\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",
22259
- styles: [".ea-menu-item{display:flex;align-items:center;gap:.5em;width:100%;padding:.5em .75em;font-size:inherit;font-family:var(--font-family-sans);text-align:start;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-state-hover)}@media(forced-colors:active){.ea-menu-item:hover:not(.ea-menu-item--disabled),.ea-menu-item:focus-visible:not(.ea-menu-item--disabled){background-color:Highlight;color:HighlightText}}.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))}@media(forced-colors:active){.ea-menu-item--danger:hover:not(.ea-menu-item--disabled),.ea-menu-item--danger:focus-visible:not(.ea-menu-item--disabled){background-color:Highlight;color:HighlightText}}.ea-menu-item--disabled{color:var(--color-text-disabled);cursor:default}.ea-menu-item__icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:1em;height:1em;color:inherit}.ea-menu-item__icon>*{width:1em;height:1em}.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"]
22725
+ styles: [".ea-menu-item{display:flex;align-items:center;gap:.5em;width:100%;padding:.5em .75em;font-size:inherit;text-align:start;font-family:var(--font-family-sans);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-state-hover)}@media(forced-colors:active){.ea-menu-item:hover:not(.ea-menu-item--disabled),.ea-menu-item:focus-visible:not(.ea-menu-item--disabled){background-color:Highlight;color:HighlightText}}.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))}@media(forced-colors:active){.ea-menu-item--danger:hover:not(.ea-menu-item--disabled),.ea-menu-item--danger:focus-visible:not(.ea-menu-item--disabled){background-color:Highlight;color:HighlightText}}.ea-menu-item--disabled{color:var(--color-text-disabled);cursor:default}.ea-menu-item__icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:1em;height:1em;color:inherit}.ea-menu-item__icon>*{width:1em;height:1em}.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"]
22260
22726
  }]
22261
22727
  }],
22262
22728
  propDecorators: {
@@ -28830,6 +29296,7 @@ var TabsComponent = class TabsComponent {
28830
29296
  registeredTabs = signal([], ...ngDevMode ? [{ debugName: "registeredTabs" }] : /* istanbul ignore next */ []);
28831
29297
  variant = input("underline", ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
28832
29298
  size = input("md", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
29299
+ orientation = input("horizontal", ...ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []);
28833
29300
  ariaLabel = input(void 0, ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
28834
29301
  activeTab = model("", ...ngDevMode ? [{ debugName: "activeTab" }] : /* istanbul ignore next */ []);
28835
29302
  changed = output();
@@ -28846,9 +29313,13 @@ var TabsComponent = class TabsComponent {
28846
29313
  handleKeydown(event) {
28847
29314
  const tabList = this.registeredTabs().filter((t) => !t.disabled());
28848
29315
  const currentIndex = tabList.findIndex((t) => t.value() === this.activeTab());
28849
- const rtl = isRtl(event.currentTarget);
28850
- const forwardKey = rtl ? "ArrowLeft" : "ArrowRight";
28851
- const backwardKey = rtl ? "ArrowRight" : "ArrowLeft";
29316
+ let forwardKey = "ArrowDown";
29317
+ let backwardKey = "ArrowUp";
29318
+ if (this.orientation() === "horizontal") {
29319
+ const rtl = isRtl(event.currentTarget);
29320
+ forwardKey = rtl ? "ArrowLeft" : "ArrowRight";
29321
+ backwardKey = rtl ? "ArrowRight" : "ArrowLeft";
29322
+ }
28852
29323
  let nextIndex = -1;
28853
29324
  if (event.key === forwardKey) {
28854
29325
  event.preventDefault();
@@ -28898,6 +29369,13 @@ var TabsComponent = class TabsComponent {
28898
29369
  isRequired: false,
28899
29370
  transformFunction: null
28900
29371
  },
29372
+ orientation: {
29373
+ classPropertyName: "orientation",
29374
+ publicName: "orientation",
29375
+ isSignal: true,
29376
+ isRequired: false,
29377
+ transformFunction: null
29378
+ },
28901
29379
  ariaLabel: {
28902
29380
  classPropertyName: "ariaLabel",
28903
29381
  publicName: "ariaLabel",
@@ -28918,8 +29396,8 @@ var TabsComponent = class TabsComponent {
28918
29396
  changed: "changed"
28919
29397
  },
28920
29398
  ngImport: i0,
28921
- template: "<div class=\"ea-tabs\">\n <div\n class=\"ea-tabs__list ea-tabs__list--{{ size() }}\"\n [class.ea-tabs__list--underline]=\"variant() === 'underline'\"\n [class.ea-tabs__list--filled]=\"variant() === 'filled'\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel() || null\"\n (keydown)=\"handleKeydown($event)\">\n @for (tab of registeredTabs(); track tab.value()) {\n <button\n class=\"ea-tabs__trigger\"\n [class.ea-tabs__trigger--active]=\"tab.isActive()\"\n type=\"button\"\n role=\"tab\"\n [id]=\"tab.id() + '-tab'\"\n [attr.aria-selected]=\"tab.isActive()\"\n [attr.aria-controls]=\"tab.id() + '-panel'\"\n [disabled]=\"tab.disabled()\"\n [tabindex]=\"tab.isActive() ? 0 : -1\"\n (click)=\"selectTab(tab.value())\">\n {{ tab.label() }}\n </button>\n }\n </div>\n <ng-content />\n</div>\n",
28922
- styles: [".ea-tabs{display:flex;flex-direction:column;gap:var(--space-4)}.ea-tabs__list{display:flex;gap:.25em}.ea-tabs__list--underline{border-bottom:var(--border-width-thin) solid var(--color-border-default);gap:0}.ea-tabs__list--underline .ea-tabs__trigger{border-radius:0;border-bottom:var(--border-width-medium) solid transparent;margin-bottom:calc(-1 * var(--border-width-thin))}.ea-tabs__list--underline .ea-tabs__trigger--active{border-bottom-color:var(--color-brand-text);color:var(--color-brand-text)}@media(forced-colors:active){.ea-tabs__list--underline .ea-tabs__trigger--active{border-color:Highlight;color:Highlight}}.ea-tabs__list--underline .ea-tabs__trigger:hover:not(:disabled):not(.ea-tabs__trigger--active){border-bottom-color:var(--color-border-strong)}.ea-tabs__list--filled{padding:.25em;border-radius:var(--radius-lg);background-color:var(--color-bg-muted)}.ea-tabs__list--filled .ea-tabs__trigger{border-radius:var(--radius-md)}.ea-tabs__list--filled .ea-tabs__trigger--active{background-color:var(--color-bg-base);box-shadow:var(--shadow-sm);color:var(--color-text-primary)}@media(forced-colors:active){.ea-tabs__list--filled .ea-tabs__trigger--active{background-color:Highlight;border-color:Highlight;color:HighlightText}}.ea-tabs__list--2xs{font-size:var(--font-size-2xs)}.ea-tabs__list--xs{font-size:var(--font-size-xs)}.ea-tabs__list--sm{font-size:var(--font-size-sm)}.ea-tabs__list--md{font-size:var(--font-size-md)}.ea-tabs__list--lg{font-size:var(--font-size-lg)}.ea-tabs__list--xl{font-size:var(--font-size-xl)}.ea-tabs__trigger{display:flex;align-items:center;justify-content:center;padding:.5em 1em;font-size:inherit;font-weight:var(--font-weight-medium);font-family:var(--font-family-sans);line-height:var(--line-height-normal);white-space:nowrap;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-tabs__trigger:hover:not(:disabled){color:var(--color-text-primary)}.ea-tabs__trigger:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-tabs__trigger:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-tabs__trigger:disabled{opacity:.5;cursor:default}\n"],
29399
+ template: "<div\n class=\"ea-tabs\"\n [class.ea-tabs--vertical]=\"orientation() === 'vertical'\">\n <div\n class=\"ea-tabs__list ea-tabs__list--{{ size() }}\"\n [class.ea-tabs__list--underline]=\"variant() === 'underline'\"\n [class.ea-tabs__list--filled]=\"variant() === 'filled'\"\n role=\"tablist\"\n [attr.aria-orientation]=\"orientation()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n (keydown)=\"handleKeydown($event)\">\n @for (tab of registeredTabs(); track tab.value()) {\n <button\n class=\"ea-tabs__trigger\"\n [class.ea-tabs__trigger--active]=\"tab.isActive()\"\n type=\"button\"\n role=\"tab\"\n [id]=\"tab.id() + '-tab'\"\n [attr.aria-selected]=\"tab.isActive()\"\n [attr.aria-controls]=\"tab.id() + '-panel'\"\n [disabled]=\"tab.disabled()\"\n [tabindex]=\"tab.isActive() ? 0 : -1\"\n (click)=\"selectTab(tab.value())\">\n {{ tab.label() }}\n </button>\n }\n </div>\n <ng-content />\n</div>\n",
29400
+ styles: [".ea-tabs{display:flex;flex-direction:column;gap:var(--space-4)}.ea-tabs__list{display:flex;gap:.25em}.ea-tabs__list--underline{border-bottom:var(--border-width-thin) solid var(--color-border-default);gap:0}.ea-tabs__list--underline .ea-tabs__trigger{border-radius:0;border-bottom:var(--border-width-medium) solid transparent;margin-bottom:calc(-1 * var(--border-width-thin))}.ea-tabs__list--underline .ea-tabs__trigger--active{border-bottom-color:var(--color-brand-text);color:var(--color-brand-text)}@media(forced-colors:active){.ea-tabs__list--underline .ea-tabs__trigger--active{border-color:Highlight;color:Highlight}}.ea-tabs__list--underline .ea-tabs__trigger:hover:not(:disabled):not(.ea-tabs__trigger--active){border-bottom-color:var(--color-border-strong)}.ea-tabs__list--filled{padding:.25em;border-radius:var(--radius-lg);background-color:var(--color-bg-muted)}.ea-tabs__list--filled .ea-tabs__trigger{border-radius:var(--radius-md)}.ea-tabs__list--filled .ea-tabs__trigger--active{background-color:var(--color-bg-base);box-shadow:var(--shadow-sm);color:var(--color-text-primary)}@media(forced-colors:active){.ea-tabs__list--filled .ea-tabs__trigger--active{background-color:Highlight;border-color:Highlight;color:HighlightText}}.ea-tabs__list--2xs{font-size:var(--font-size-2xs)}.ea-tabs__list--xs{font-size:var(--font-size-xs)}.ea-tabs__list--sm{font-size:var(--font-size-sm)}.ea-tabs__list--md{font-size:var(--font-size-md)}.ea-tabs__list--lg{font-size:var(--font-size-lg)}.ea-tabs__list--xl{font-size:var(--font-size-xl)}.ea-tabs__trigger{display:flex;align-items:center;justify-content:center;padding:.5em 1em;font-size:inherit;font-weight:var(--font-weight-medium);font-family:var(--font-family-sans);line-height:var(--line-height-normal);white-space:nowrap;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-tabs__trigger:hover:not(:disabled){color:var(--color-text-primary)}.ea-tabs__trigger:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-tabs__trigger:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-tabs__trigger:disabled{opacity:.5;cursor:default}.ea-tabs--vertical{flex-direction:row}.ea-tabs--vertical .ea-tabs__list{flex-direction:column;flex-shrink:0}.ea-tabs--vertical .ea-tabs__list--underline{border-bottom:none;border-inline-end:var(--border-width-thin) solid var(--color-border-default)}.ea-tabs--vertical .ea-tabs__list--underline .ea-tabs__trigger{margin-bottom:0;margin-inline-end:calc(-1 * var(--border-width-thin));border-bottom:none;border-inline-end:var(--border-width-medium) solid transparent}.ea-tabs--vertical .ea-tabs__list--underline .ea-tabs__trigger--active{border-inline-end-color:var(--color-brand-text)}@media(forced-colors:active){.ea-tabs--vertical .ea-tabs__list--underline .ea-tabs__trigger--active{border-inline-end-color:Highlight}}.ea-tabs--vertical .ea-tabs__list--underline .ea-tabs__trigger:hover:not(:disabled):not(.ea-tabs__trigger--active){border-inline-end-color:var(--color-border-strong)}.ea-tabs--vertical .ea-tabs__list--filled{align-self:flex-start}.ea-tabs--vertical .ea-tabs__trigger{justify-content:flex-start}\n"],
28923
29401
  changeDetection: i0.ChangeDetectionStrategy.OnPush
28924
29402
  });
28925
29403
  };
@@ -28933,8 +29411,8 @@ i0.ɵɵngDeclareClassMetadata({
28933
29411
  args: [{
28934
29412
  selector: "ea-tabs",
28935
29413
  changeDetection: ChangeDetectionStrategy.OnPush,
28936
- template: "<div class=\"ea-tabs\">\n <div\n class=\"ea-tabs__list ea-tabs__list--{{ size() }}\"\n [class.ea-tabs__list--underline]=\"variant() === 'underline'\"\n [class.ea-tabs__list--filled]=\"variant() === 'filled'\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel() || null\"\n (keydown)=\"handleKeydown($event)\">\n @for (tab of registeredTabs(); track tab.value()) {\n <button\n class=\"ea-tabs__trigger\"\n [class.ea-tabs__trigger--active]=\"tab.isActive()\"\n type=\"button\"\n role=\"tab\"\n [id]=\"tab.id() + '-tab'\"\n [attr.aria-selected]=\"tab.isActive()\"\n [attr.aria-controls]=\"tab.id() + '-panel'\"\n [disabled]=\"tab.disabled()\"\n [tabindex]=\"tab.isActive() ? 0 : -1\"\n (click)=\"selectTab(tab.value())\">\n {{ tab.label() }}\n </button>\n }\n </div>\n <ng-content />\n</div>\n",
28937
- styles: [".ea-tabs{display:flex;flex-direction:column;gap:var(--space-4)}.ea-tabs__list{display:flex;gap:.25em}.ea-tabs__list--underline{border-bottom:var(--border-width-thin) solid var(--color-border-default);gap:0}.ea-tabs__list--underline .ea-tabs__trigger{border-radius:0;border-bottom:var(--border-width-medium) solid transparent;margin-bottom:calc(-1 * var(--border-width-thin))}.ea-tabs__list--underline .ea-tabs__trigger--active{border-bottom-color:var(--color-brand-text);color:var(--color-brand-text)}@media(forced-colors:active){.ea-tabs__list--underline .ea-tabs__trigger--active{border-color:Highlight;color:Highlight}}.ea-tabs__list--underline .ea-tabs__trigger:hover:not(:disabled):not(.ea-tabs__trigger--active){border-bottom-color:var(--color-border-strong)}.ea-tabs__list--filled{padding:.25em;border-radius:var(--radius-lg);background-color:var(--color-bg-muted)}.ea-tabs__list--filled .ea-tabs__trigger{border-radius:var(--radius-md)}.ea-tabs__list--filled .ea-tabs__trigger--active{background-color:var(--color-bg-base);box-shadow:var(--shadow-sm);color:var(--color-text-primary)}@media(forced-colors:active){.ea-tabs__list--filled .ea-tabs__trigger--active{background-color:Highlight;border-color:Highlight;color:HighlightText}}.ea-tabs__list--2xs{font-size:var(--font-size-2xs)}.ea-tabs__list--xs{font-size:var(--font-size-xs)}.ea-tabs__list--sm{font-size:var(--font-size-sm)}.ea-tabs__list--md{font-size:var(--font-size-md)}.ea-tabs__list--lg{font-size:var(--font-size-lg)}.ea-tabs__list--xl{font-size:var(--font-size-xl)}.ea-tabs__trigger{display:flex;align-items:center;justify-content:center;padding:.5em 1em;font-size:inherit;font-weight:var(--font-weight-medium);font-family:var(--font-family-sans);line-height:var(--line-height-normal);white-space:nowrap;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-tabs__trigger:hover:not(:disabled){color:var(--color-text-primary)}.ea-tabs__trigger:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-tabs__trigger:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-tabs__trigger:disabled{opacity:.5;cursor:default}\n"]
29414
+ template: "<div\n class=\"ea-tabs\"\n [class.ea-tabs--vertical]=\"orientation() === 'vertical'\">\n <div\n class=\"ea-tabs__list ea-tabs__list--{{ size() }}\"\n [class.ea-tabs__list--underline]=\"variant() === 'underline'\"\n [class.ea-tabs__list--filled]=\"variant() === 'filled'\"\n role=\"tablist\"\n [attr.aria-orientation]=\"orientation()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n (keydown)=\"handleKeydown($event)\">\n @for (tab of registeredTabs(); track tab.value()) {\n <button\n class=\"ea-tabs__trigger\"\n [class.ea-tabs__trigger--active]=\"tab.isActive()\"\n type=\"button\"\n role=\"tab\"\n [id]=\"tab.id() + '-tab'\"\n [attr.aria-selected]=\"tab.isActive()\"\n [attr.aria-controls]=\"tab.id() + '-panel'\"\n [disabled]=\"tab.disabled()\"\n [tabindex]=\"tab.isActive() ? 0 : -1\"\n (click)=\"selectTab(tab.value())\">\n {{ tab.label() }}\n </button>\n }\n </div>\n <ng-content />\n</div>\n",
29415
+ styles: [".ea-tabs{display:flex;flex-direction:column;gap:var(--space-4)}.ea-tabs__list{display:flex;gap:.25em}.ea-tabs__list--underline{border-bottom:var(--border-width-thin) solid var(--color-border-default);gap:0}.ea-tabs__list--underline .ea-tabs__trigger{border-radius:0;border-bottom:var(--border-width-medium) solid transparent;margin-bottom:calc(-1 * var(--border-width-thin))}.ea-tabs__list--underline .ea-tabs__trigger--active{border-bottom-color:var(--color-brand-text);color:var(--color-brand-text)}@media(forced-colors:active){.ea-tabs__list--underline .ea-tabs__trigger--active{border-color:Highlight;color:Highlight}}.ea-tabs__list--underline .ea-tabs__trigger:hover:not(:disabled):not(.ea-tabs__trigger--active){border-bottom-color:var(--color-border-strong)}.ea-tabs__list--filled{padding:.25em;border-radius:var(--radius-lg);background-color:var(--color-bg-muted)}.ea-tabs__list--filled .ea-tabs__trigger{border-radius:var(--radius-md)}.ea-tabs__list--filled .ea-tabs__trigger--active{background-color:var(--color-bg-base);box-shadow:var(--shadow-sm);color:var(--color-text-primary)}@media(forced-colors:active){.ea-tabs__list--filled .ea-tabs__trigger--active{background-color:Highlight;border-color:Highlight;color:HighlightText}}.ea-tabs__list--2xs{font-size:var(--font-size-2xs)}.ea-tabs__list--xs{font-size:var(--font-size-xs)}.ea-tabs__list--sm{font-size:var(--font-size-sm)}.ea-tabs__list--md{font-size:var(--font-size-md)}.ea-tabs__list--lg{font-size:var(--font-size-lg)}.ea-tabs__list--xl{font-size:var(--font-size-xl)}.ea-tabs__trigger{display:flex;align-items:center;justify-content:center;padding:.5em 1em;font-size:inherit;font-weight:var(--font-weight-medium);font-family:var(--font-family-sans);line-height:var(--line-height-normal);white-space:nowrap;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-tabs__trigger:hover:not(:disabled){color:var(--color-text-primary)}.ea-tabs__trigger:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-tabs__trigger:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-tabs__trigger:disabled{opacity:.5;cursor:default}.ea-tabs--vertical{flex-direction:row}.ea-tabs--vertical .ea-tabs__list{flex-direction:column;flex-shrink:0}.ea-tabs--vertical .ea-tabs__list--underline{border-bottom:none;border-inline-end:var(--border-width-thin) solid var(--color-border-default)}.ea-tabs--vertical .ea-tabs__list--underline .ea-tabs__trigger{margin-bottom:0;margin-inline-end:calc(-1 * var(--border-width-thin));border-bottom:none;border-inline-end:var(--border-width-medium) solid transparent}.ea-tabs--vertical .ea-tabs__list--underline .ea-tabs__trigger--active{border-inline-end-color:var(--color-brand-text)}@media(forced-colors:active){.ea-tabs--vertical .ea-tabs__list--underline .ea-tabs__trigger--active{border-inline-end-color:Highlight}}.ea-tabs--vertical .ea-tabs__list--underline .ea-tabs__trigger:hover:not(:disabled):not(.ea-tabs__trigger--active){border-inline-end-color:var(--color-border-strong)}.ea-tabs--vertical .ea-tabs__list--filled{align-self:flex-start}.ea-tabs--vertical .ea-tabs__trigger{justify-content:flex-start}\n"]
28938
29416
  }]
28939
29417
  }],
28940
29418
  propDecorators: {
@@ -28954,6 +29432,14 @@ i0.ɵɵngDeclareClassMetadata({
28954
29432
  required: false
28955
29433
  }]
28956
29434
  }],
29435
+ orientation: [{
29436
+ type: i0.Input,
29437
+ args: [{
29438
+ isSignal: true,
29439
+ alias: "orientation",
29440
+ required: false
29441
+ }]
29442
+ }],
28957
29443
  ariaLabel: [{
28958
29444
  type: i0.Input,
28959
29445
  args: [{
@@ -28986,6 +29472,7 @@ var TabComponent = class TabComponent {
28986
29472
  disabled = input(false, ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
28987
29473
  id = input(uniqueId("ea-tab"), ...ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []);
28988
29474
  isActive = computed(() => this.tabs.activeTab() === this.value(), ...ngDevMode ? [{ debugName: "isActive" }] : /* istanbul ignore next */ []);
29475
+ vertical = computed(() => this.tabs.orientation() === "vertical", ...ngDevMode ? [{ debugName: "vertical" }] : /* istanbul ignore next */ []);
28989
29476
  ngOnInit() {
28990
29477
  this.tabs.registerTab(this);
28991
29478
  }
@@ -29036,7 +29523,10 @@ var TabComponent = class TabComponent {
29036
29523
  transformFunction: null
29037
29524
  }
29038
29525
  },
29039
- host: { properties: { "style.display": "isActive() ? null : \"none\"" } },
29526
+ host: { properties: {
29527
+ "style.display": "isActive() ? null : \"none\"",
29528
+ "class.ea-tab--vertical": "vertical()"
29529
+ } },
29040
29530
  ngImport: i0,
29041
29531
  template: `
29042
29532
  @if (isActive()) {
@@ -29051,6 +29541,7 @@ var TabComponent = class TabComponent {
29051
29541
  }
29052
29542
  `,
29053
29543
  isInline: true,
29544
+ styles: [":host(.ea-tab--vertical){flex:1;min-width:0}\n"],
29054
29545
  changeDetection: i0.ChangeDetectionStrategy.OnPush
29055
29546
  });
29056
29547
  };
@@ -29063,7 +29554,10 @@ i0.ɵɵngDeclareClassMetadata({
29063
29554
  type: Component,
29064
29555
  args: [{
29065
29556
  selector: "ea-tab",
29066
- host: { "[style.display]": "isActive() ? null : \"none\"" },
29557
+ host: {
29558
+ "[style.display]": "isActive() ? null : \"none\"",
29559
+ "[class.ea-tab--vertical]": "vertical()"
29560
+ },
29067
29561
  template: `
29068
29562
  @if (isActive()) {
29069
29563
  <div
@@ -29076,7 +29570,8 @@ i0.ɵɵngDeclareClassMetadata({
29076
29570
  </div>
29077
29571
  }
29078
29572
  `,
29079
- changeDetection: ChangeDetectionStrategy.OnPush
29573
+ changeDetection: ChangeDetectionStrategy.OnPush,
29574
+ styles: [":host(.ea-tab--vertical){flex:1;min-width:0}\n"]
29080
29575
  }]
29081
29576
  }],
29082
29577
  propDecorators: {
@@ -29134,6 +29629,7 @@ var TextareaComponent = class TextareaComponent {
29134
29629
  required = input(false, ...ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []);
29135
29630
  resize = input("vertical", ...ngDevMode ? [{ debugName: "resize" }] : /* istanbul ignore next */ []);
29136
29631
  maxlength = input(void 0, ...ngDevMode ? [{ debugName: "maxlength" }] : /* istanbul ignore next */ []);
29632
+ showCount = input(false, ...ngDevMode ? [{ debugName: "showCount" }] : /* istanbul ignore next */ []);
29137
29633
  maxHeight = input(void 0, ...ngDevMode ? [{ debugName: "maxHeight" }] : /* istanbul ignore next */ []);
29138
29634
  minHeight = input(void 0, ...ngDevMode ? [{ debugName: "minHeight" }] : /* istanbul ignore next */ []);
29139
29635
  id = input(uniqueId("ea-textarea"), ...ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []);
@@ -29153,6 +29649,18 @@ var TextareaComponent = class TextareaComponent {
29153
29649
  hasError = this.errorState.hasError;
29154
29650
  showError = this.hasError;
29155
29651
  showHint = computed(() => !!this.hint() && !this.hasError(), ...ngDevMode ? [{ debugName: "showHint" }] : /* istanbul ignore next */ []);
29652
+ countText = computed(() => {
29653
+ const length = this.value().length;
29654
+ const max = this.maxlength();
29655
+ return max ? `${length} / ${max}` : `${length}`;
29656
+ }, ...ngDevMode ? [{ debugName: "countText" }] : /* istanbul ignore next */ []);
29657
+ describedBy = computed(() => {
29658
+ const ids = [];
29659
+ if (this.showError()) ids.push(`${this.id()}-error`);
29660
+ else if (this.showHint()) ids.push(`${this.id()}-hint`);
29661
+ if (this.showCount()) ids.push(`${this.id()}-count`);
29662
+ return ids.length > 0 ? ids.join(" ") : null;
29663
+ }, ...ngDevMode ? [{ debugName: "describedBy" }] : /* istanbul ignore next */ []);
29156
29664
  wrapperClasses = computed(() => ({
29157
29665
  [`ea-textarea-wrapper--${this.size()}`]: true,
29158
29666
  "ea-textarea-wrapper--error": this.hasError(),
@@ -29321,6 +29829,13 @@ var TextareaComponent = class TextareaComponent {
29321
29829
  isRequired: false,
29322
29830
  transformFunction: null
29323
29831
  },
29832
+ showCount: {
29833
+ classPropertyName: "showCount",
29834
+ publicName: "showCount",
29835
+ isSignal: true,
29836
+ isRequired: false,
29837
+ transformFunction: null
29838
+ },
29324
29839
  maxHeight: {
29325
29840
  classPropertyName: "maxHeight",
29326
29841
  publicName: "maxHeight",
@@ -29368,8 +29883,8 @@ var TextareaComponent = class TextareaComponent {
29368
29883
  isSignal: true
29369
29884
  }],
29370
29885
  ngImport: i0,
29371
- template: "<div class=\"ea-textarea-field ea-textarea-field--{{ size() }}\">\n @if (label(); as labelText) {\n <ea-field-label\n [text]=\"labelText\"\n [icon]=\"labelIcon()\"\n [help]=\"labelHelp()\"\n [forId]=\"id()\"\n [required]=\"required()\" />\n }\n\n <div\n class=\"ea-textarea-wrapper\"\n [ngClass]=\"wrapperClasses()\"\n [style.resize]=\"resize()\"\n [style.min-height]=\"minHeightStyle()\"\n [style.max-height.px]=\"maxHeight() ?? null\">\n <textarea\n #textareaEl\n class=\"ea-textarea\"\n dir=\"auto\"\n [id]=\"id()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [value]=\"value()\"\n [attr.maxlength]=\"maxlength() ?? null\"\n [attr.aria-label]=\"label() ? null : (ariaLabel() ?? null)\"\n [attr.aria-invalid]=\"hasError() || 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)\"></textarea>\n </div>\n\n <ea-field-messages\n [id]=\"id()\"\n [error]=\"errorText()\"\n [hint]=\"showHint() ? hint() : null\" />\n</div>\n",
29372
- styles: [".ea-textarea-field{display:flex;flex-direction:column;gap:.375em;color:var(--color-text-secondary);--ea-field-label-size: .875em;--ea-field-messages-size: .8125em}.ea-textarea-field--2xs{font-size:var(--font-size-2xs)}.ea-textarea-field--xs{font-size:var(--font-size-xs)}.ea-textarea-field--sm{font-size:var(--font-size-sm)}.ea-textarea-field--md{font-size:var(--font-size-md)}.ea-textarea-field--lg{font-size:var(--font-size-lg)}.ea-textarea-field--xl{font-size:var(--font-size-xl)}.ea-textarea-wrapper{display:flex;min-width:12em;background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);transition:var(--transition-colors),var(--transition-shadow);overflow:hidden}.ea-textarea-wrapper--focused{border-color:var(--color-border-focus);box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-textarea-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--error{border-color:var(--color-error-default)}.ea-textarea-wrapper--error.ea-textarea-wrapper--focused{box-shadow:var(--shadow-focus-ring-error)}@media(forced-colors:active){.ea-textarea-wrapper--error.ea-textarea-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--disabled{background-color:var(--color-bg-muted);border-color:var(--color-border-default);cursor:default;opacity:.6}.ea-textarea-wrapper--disabled .ea-textarea{cursor:default}.ea-textarea-wrapper--readonly{background-color:var(--color-bg-subtle)}.ea-textarea-wrapper--readonly:has(:focus-visible){border-color:var(--color-border-focus);box-shadow:none}@media(forced-colors:active){.ea-textarea-wrapper--readonly:has(:focus-visible){outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--readonly button{cursor:default}.ea-textarea-wrapper--readonly button:hover{background-color:transparent;color:var(--color-text-secondary)}.ea-textarea{flex:1;width:100%;min-width:0;padding:.75em;background:transparent;border:none;outline:none;resize:none;color:var(--color-text-primary);font-family:var(--font-family-sans);line-height:var(--line-height-normal)}.ea-textarea::placeholder{color:var(--color-text-tertiary)}.ea-textarea:disabled{cursor:default}\n"],
29886
+ template: "<div class=\"ea-textarea-field ea-textarea-field--{{ size() }}\">\n @if (label(); as labelText) {\n <ea-field-label\n [text]=\"labelText\"\n [icon]=\"labelIcon()\"\n [help]=\"labelHelp()\"\n [forId]=\"id()\"\n [required]=\"required()\" />\n }\n\n <div\n class=\"ea-textarea-wrapper\"\n [ngClass]=\"wrapperClasses()\"\n [style.resize]=\"resize()\"\n [style.min-height]=\"minHeightStyle()\"\n [style.max-height.px]=\"maxHeight() ?? null\">\n <textarea\n #textareaEl\n class=\"ea-textarea\"\n dir=\"auto\"\n [id]=\"id()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [value]=\"value()\"\n [attr.maxlength]=\"maxlength() ?? null\"\n [attr.aria-label]=\"label() ? null : (ariaLabel() ?? null)\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"describedBy()\"\n (input)=\"handleInput($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\"></textarea>\n </div>\n\n <ng-template #messages>\n <ea-field-messages\n [id]=\"id()\"\n [error]=\"errorText()\"\n [hint]=\"showHint() ? hint() : null\" />\n </ng-template>\n\n @if (showCount()) {\n <div class=\"ea-textarea-field__footer\">\n <ng-container [ngTemplateOutlet]=\"messages\" />\n <span\n class=\"ea-textarea-field__count\"\n [id]=\"id() + '-count'\">\n {{ countText() }}\n </span>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"messages\" />\n }\n</div>\n",
29887
+ styles: [".ea-textarea-field{display:flex;flex-direction:column;gap:.375em;color:var(--color-text-secondary);--ea-field-label-size: .875em;--ea-field-messages-size: .8125em}.ea-textarea-field--2xs{font-size:var(--font-size-2xs)}.ea-textarea-field--xs{font-size:var(--font-size-xs)}.ea-textarea-field--sm{font-size:var(--font-size-sm)}.ea-textarea-field--md{font-size:var(--font-size-md)}.ea-textarea-field--lg{font-size:var(--font-size-lg)}.ea-textarea-field--xl{font-size:var(--font-size-xl)}.ea-textarea-field__footer{display:flex;align-items:flex-start;gap:.75em}.ea-textarea-field__count{flex-shrink:0;margin-inline-start:auto;font-size:max(var(--ea-field-messages-size, var(--text-helper-size)),.6875rem);font-weight:var(--text-helper-weight);line-height:var(--text-helper-lh);font-variant-numeric:tabular-nums}.ea-textarea-wrapper{display:flex;min-width:12em;background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);transition:var(--transition-colors),var(--transition-shadow);overflow:hidden}.ea-textarea-wrapper--focused{border-color:var(--color-border-focus);box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-textarea-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--error{border-color:var(--color-error-default)}.ea-textarea-wrapper--error.ea-textarea-wrapper--focused{box-shadow:var(--shadow-focus-ring-error)}@media(forced-colors:active){.ea-textarea-wrapper--error.ea-textarea-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--disabled{background-color:var(--color-bg-muted);border-color:var(--color-border-default);cursor:default;opacity:.6}.ea-textarea-wrapper--disabled .ea-textarea{cursor:default}.ea-textarea-wrapper--readonly{background-color:var(--color-bg-subtle)}.ea-textarea-wrapper--readonly:has(:focus-visible){border-color:var(--color-border-focus);box-shadow:none}@media(forced-colors:active){.ea-textarea-wrapper--readonly:has(:focus-visible){outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--readonly button{cursor:default}.ea-textarea-wrapper--readonly button:hover{background-color:transparent;color:var(--color-text-secondary)}.ea-textarea{flex:1;width:100%;min-width:0;padding:.75em;background:transparent;border:none;outline:none;resize:none;color:var(--color-text-primary);font-family:var(--font-family-sans);line-height:var(--line-height-normal)}.ea-textarea::placeholder{color:var(--color-text-tertiary)}.ea-textarea:disabled{cursor:default}\n"],
29373
29888
  dependencies: [
29374
29889
  {
29375
29890
  kind: "component",
@@ -29399,6 +29914,16 @@ var TextareaComponent = class TextareaComponent {
29399
29914
  type: NgClass,
29400
29915
  selector: "[ngClass]",
29401
29916
  inputs: ["class", "ngClass"]
29917
+ },
29918
+ {
29919
+ kind: "directive",
29920
+ type: NgTemplateOutlet,
29921
+ selector: "[ngTemplateOutlet]",
29922
+ inputs: [
29923
+ "ngTemplateOutletContext",
29924
+ "ngTemplateOutlet",
29925
+ "ngTemplateOutletInjector"
29926
+ ]
29402
29927
  }
29403
29928
  ],
29404
29929
  changeDetection: i0.ChangeDetectionStrategy.OnPush
@@ -29416,7 +29941,8 @@ i0.ɵɵngDeclareClassMetadata({
29416
29941
  imports: [
29417
29942
  FieldLabelComponent,
29418
29943
  FieldMessagesComponent,
29419
- NgClass
29944
+ NgClass,
29945
+ NgTemplateOutlet
29420
29946
  ],
29421
29947
  changeDetection: ChangeDetectionStrategy.OnPush,
29422
29948
  providers: [{
@@ -29424,8 +29950,8 @@ i0.ɵɵngDeclareClassMetadata({
29424
29950
  useExisting: forwardRef(() => TextareaComponent),
29425
29951
  multi: true
29426
29952
  }],
29427
- template: "<div class=\"ea-textarea-field ea-textarea-field--{{ size() }}\">\n @if (label(); as labelText) {\n <ea-field-label\n [text]=\"labelText\"\n [icon]=\"labelIcon()\"\n [help]=\"labelHelp()\"\n [forId]=\"id()\"\n [required]=\"required()\" />\n }\n\n <div\n class=\"ea-textarea-wrapper\"\n [ngClass]=\"wrapperClasses()\"\n [style.resize]=\"resize()\"\n [style.min-height]=\"minHeightStyle()\"\n [style.max-height.px]=\"maxHeight() ?? null\">\n <textarea\n #textareaEl\n class=\"ea-textarea\"\n dir=\"auto\"\n [id]=\"id()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [value]=\"value()\"\n [attr.maxlength]=\"maxlength() ?? null\"\n [attr.aria-label]=\"label() ? null : (ariaLabel() ?? null)\"\n [attr.aria-invalid]=\"hasError() || 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)\"></textarea>\n </div>\n\n <ea-field-messages\n [id]=\"id()\"\n [error]=\"errorText()\"\n [hint]=\"showHint() ? hint() : null\" />\n</div>\n",
29428
- styles: [".ea-textarea-field{display:flex;flex-direction:column;gap:.375em;color:var(--color-text-secondary);--ea-field-label-size: .875em;--ea-field-messages-size: .8125em}.ea-textarea-field--2xs{font-size:var(--font-size-2xs)}.ea-textarea-field--xs{font-size:var(--font-size-xs)}.ea-textarea-field--sm{font-size:var(--font-size-sm)}.ea-textarea-field--md{font-size:var(--font-size-md)}.ea-textarea-field--lg{font-size:var(--font-size-lg)}.ea-textarea-field--xl{font-size:var(--font-size-xl)}.ea-textarea-wrapper{display:flex;min-width:12em;background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);transition:var(--transition-colors),var(--transition-shadow);overflow:hidden}.ea-textarea-wrapper--focused{border-color:var(--color-border-focus);box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-textarea-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--error{border-color:var(--color-error-default)}.ea-textarea-wrapper--error.ea-textarea-wrapper--focused{box-shadow:var(--shadow-focus-ring-error)}@media(forced-colors:active){.ea-textarea-wrapper--error.ea-textarea-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--disabled{background-color:var(--color-bg-muted);border-color:var(--color-border-default);cursor:default;opacity:.6}.ea-textarea-wrapper--disabled .ea-textarea{cursor:default}.ea-textarea-wrapper--readonly{background-color:var(--color-bg-subtle)}.ea-textarea-wrapper--readonly:has(:focus-visible){border-color:var(--color-border-focus);box-shadow:none}@media(forced-colors:active){.ea-textarea-wrapper--readonly:has(:focus-visible){outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--readonly button{cursor:default}.ea-textarea-wrapper--readonly button:hover{background-color:transparent;color:var(--color-text-secondary)}.ea-textarea{flex:1;width:100%;min-width:0;padding:.75em;background:transparent;border:none;outline:none;resize:none;color:var(--color-text-primary);font-family:var(--font-family-sans);line-height:var(--line-height-normal)}.ea-textarea::placeholder{color:var(--color-text-tertiary)}.ea-textarea:disabled{cursor:default}\n"]
29953
+ template: "<div class=\"ea-textarea-field ea-textarea-field--{{ size() }}\">\n @if (label(); as labelText) {\n <ea-field-label\n [text]=\"labelText\"\n [icon]=\"labelIcon()\"\n [help]=\"labelHelp()\"\n [forId]=\"id()\"\n [required]=\"required()\" />\n }\n\n <div\n class=\"ea-textarea-wrapper\"\n [ngClass]=\"wrapperClasses()\"\n [style.resize]=\"resize()\"\n [style.min-height]=\"minHeightStyle()\"\n [style.max-height.px]=\"maxHeight() ?? null\">\n <textarea\n #textareaEl\n class=\"ea-textarea\"\n dir=\"auto\"\n [id]=\"id()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [value]=\"value()\"\n [attr.maxlength]=\"maxlength() ?? null\"\n [attr.aria-label]=\"label() ? null : (ariaLabel() ?? null)\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"describedBy()\"\n (input)=\"handleInput($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\"></textarea>\n </div>\n\n <ng-template #messages>\n <ea-field-messages\n [id]=\"id()\"\n [error]=\"errorText()\"\n [hint]=\"showHint() ? hint() : null\" />\n </ng-template>\n\n @if (showCount()) {\n <div class=\"ea-textarea-field__footer\">\n <ng-container [ngTemplateOutlet]=\"messages\" />\n <span\n class=\"ea-textarea-field__count\"\n [id]=\"id() + '-count'\">\n {{ countText() }}\n </span>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"messages\" />\n }\n</div>\n",
29954
+ styles: [".ea-textarea-field{display:flex;flex-direction:column;gap:.375em;color:var(--color-text-secondary);--ea-field-label-size: .875em;--ea-field-messages-size: .8125em}.ea-textarea-field--2xs{font-size:var(--font-size-2xs)}.ea-textarea-field--xs{font-size:var(--font-size-xs)}.ea-textarea-field--sm{font-size:var(--font-size-sm)}.ea-textarea-field--md{font-size:var(--font-size-md)}.ea-textarea-field--lg{font-size:var(--font-size-lg)}.ea-textarea-field--xl{font-size:var(--font-size-xl)}.ea-textarea-field__footer{display:flex;align-items:flex-start;gap:.75em}.ea-textarea-field__count{flex-shrink:0;margin-inline-start:auto;font-size:max(var(--ea-field-messages-size, var(--text-helper-size)),.6875rem);font-weight:var(--text-helper-weight);line-height:var(--text-helper-lh);font-variant-numeric:tabular-nums}.ea-textarea-wrapper{display:flex;min-width:12em;background-color:var(--color-bg-base);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-md);transition:var(--transition-colors),var(--transition-shadow);overflow:hidden}.ea-textarea-wrapper--focused{border-color:var(--color-border-focus);box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-textarea-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--error{border-color:var(--color-error-default)}.ea-textarea-wrapper--error.ea-textarea-wrapper--focused{box-shadow:var(--shadow-focus-ring-error)}@media(forced-colors:active){.ea-textarea-wrapper--error.ea-textarea-wrapper--focused{outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--disabled{background-color:var(--color-bg-muted);border-color:var(--color-border-default);cursor:default;opacity:.6}.ea-textarea-wrapper--disabled .ea-textarea{cursor:default}.ea-textarea-wrapper--readonly{background-color:var(--color-bg-subtle)}.ea-textarea-wrapper--readonly:has(:focus-visible){border-color:var(--color-border-focus);box-shadow:none}@media(forced-colors:active){.ea-textarea-wrapper--readonly:has(:focus-visible){outline:2px solid Highlight;outline-offset:2px}}.ea-textarea-wrapper--readonly button{cursor:default}.ea-textarea-wrapper--readonly button:hover{background-color:transparent;color:var(--color-text-secondary)}.ea-textarea{flex:1;width:100%;min-width:0;padding:.75em;background:transparent;border:none;outline:none;resize:none;color:var(--color-text-primary);font-family:var(--font-family-sans);line-height:var(--line-height-normal)}.ea-textarea::placeholder{color:var(--color-text-tertiary)}.ea-textarea:disabled{cursor:default}\n"]
29429
29955
  }]
29430
29956
  }],
29431
29957
  propDecorators: {
@@ -29545,6 +30071,14 @@ i0.ɵɵngDeclareClassMetadata({
29545
30071
  required: false
29546
30072
  }]
29547
30073
  }],
30074
+ showCount: [{
30075
+ type: i0.Input,
30076
+ args: [{
30077
+ isSignal: true,
30078
+ alias: "showCount",
30079
+ required: false
30080
+ }]
30081
+ }],
29548
30082
  maxHeight: [{
29549
30083
  type: i0.Input,
29550
30084
  args: [{
@@ -57409,105 +57943,6 @@ i0.ɵɵngDeclareClassMetadata({
57409
57943
  }]
57410
57944
  }]
57411
57945
  });
57412
- var MoreHorizontalIconComponent = class MoreHorizontalIconComponent extends IconComponentBase {
57413
- static slug = "more-horizontal";
57414
- static category = "feather";
57415
- static tags = [
57416
- "more-horizontal",
57417
- "more",
57418
- "horizontal",
57419
- "ellipsis",
57420
- "menu",
57421
- "dots",
57422
- "options",
57423
- "plus",
57424
- "más",
57425
- "περισσότερα",
57426
- "więcej"
57427
- ];
57428
- static ɵfac = i0.ɵɵngDeclareFactory({
57429
- minVersion: "12.0.0",
57430
- version: "22.2.1",
57431
- ngImport: i0,
57432
- type: MoreHorizontalIconComponent,
57433
- deps: null,
57434
- target: i0.ɵɵFactoryTarget.Component
57435
- });
57436
- static ɵcmp = i0.ɵɵngDeclareComponent({
57437
- minVersion: "14.0.0",
57438
- version: "22.2.1",
57439
- type: MoreHorizontalIconComponent,
57440
- isStandalone: true,
57441
- selector: "ea-icon-more-horizontal",
57442
- usesInheritance: true,
57443
- ngImport: i0,
57444
- template: `
57445
- <svg
57446
- viewBox="0 0 24 24"
57447
- fill="none"
57448
- stroke="currentColor"
57449
- [attr.stroke-width]="strokeWidth()"
57450
- stroke-linecap="round"
57451
- stroke-linejoin="round"
57452
- aria-hidden="true"
57453
- width="100%"
57454
- height="100%">
57455
- <circle
57456
- cx="12"
57457
- cy="12"
57458
- r="1" />
57459
- <circle
57460
- cx="19"
57461
- cy="12"
57462
- r="1" />
57463
- <circle
57464
- cx="5"
57465
- cy="12"
57466
- r="1" />
57467
- </svg>
57468
- `,
57469
- isInline: true,
57470
- changeDetection: i0.ChangeDetectionStrategy.OnPush
57471
- });
57472
- };
57473
- i0.ɵɵngDeclareClassMetadata({
57474
- minVersion: "12.0.0",
57475
- version: "22.2.1",
57476
- ngImport: i0,
57477
- type: MoreHorizontalIconComponent,
57478
- decorators: [{
57479
- type: Component,
57480
- args: [{
57481
- selector: "ea-icon-more-horizontal",
57482
- changeDetection: ChangeDetectionStrategy.OnPush,
57483
- template: `
57484
- <svg
57485
- viewBox="0 0 24 24"
57486
- fill="none"
57487
- stroke="currentColor"
57488
- [attr.stroke-width]="strokeWidth()"
57489
- stroke-linecap="round"
57490
- stroke-linejoin="round"
57491
- aria-hidden="true"
57492
- width="100%"
57493
- height="100%">
57494
- <circle
57495
- cx="12"
57496
- cy="12"
57497
- r="1" />
57498
- <circle
57499
- cx="19"
57500
- cy="12"
57501
- r="1" />
57502
- <circle
57503
- cx="5"
57504
- cy="12"
57505
- r="1" />
57506
- </svg>
57507
- `
57508
- }]
57509
- }]
57510
- });
57511
57946
  var MoreVerticalIconComponent = class MoreVerticalIconComponent extends IconComponentBase {
57512
57947
  static slug = "more-vertical";
57513
57948
  static category = "feather";