@eagami/ui 1.1.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eagami/ui",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "description": "Lightweight, accessible Angular UI component library built on CSS custom properties",
5
5
  "author": "Michal Wiraszka <michal@eagami.com>",
6
6
  "license": "MIT",
@@ -1,8 +1,191 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnDestroy, ElementRef, TemplateRef, AfterViewInit, OnInit } from '@angular/core';
2
+ import { InjectionToken, EnvironmentProviders, Signal, OnDestroy, ElementRef, TemplateRef, AfterViewInit, OnInit } from '@angular/core';
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
4
  import * as _eagami_ui from '@eagami/ui';
5
5
 
6
+ /**
7
+ * BCP 47 locale tags supported out of the box. Consumers select one of these
8
+ * via `provideEagamiUi({ locale })` or `EagamiI18nService.setLocale()`.
9
+ */
10
+ type EagamiLocale = 'en' | 'fr-FR' | 'el' | 'pl' | 'es-ES';
11
+ /** Ordered list of every supported locale — handy for language switchers. */
12
+ declare const EAGAMI_LOCALES: readonly EagamiLocale[];
13
+ /**
14
+ * Every user-facing string baked into the component library, grouped by
15
+ * component. Parameterized strings are functions so each locale controls its
16
+ * own word order and pluralization.
17
+ */
18
+ interface EagamiMessages {
19
+ alert: {
20
+ dismiss: string;
21
+ };
22
+ autocomplete: {
23
+ empty: string;
24
+ };
25
+ avatarEditor: {
26
+ upload: string;
27
+ dropzone: string;
28
+ canvas: string;
29
+ change: string;
30
+ revert: string;
31
+ zoomOut: string;
32
+ zoom: string;
33
+ zoomIn: string;
34
+ remove: string;
35
+ };
36
+ breadcrumbs: {
37
+ label: string;
38
+ };
39
+ codeInput: {
40
+ groupLabel: (length: number) => string;
41
+ digitLabel: (index: number, length: number) => string;
42
+ };
43
+ dataTable: {
44
+ noData: string;
45
+ };
46
+ datePicker: {
47
+ placeholder: string;
48
+ clear: string;
49
+ previousYear: string;
50
+ previousMonth: string;
51
+ nextMonth: string;
52
+ nextYear: string;
53
+ today: string;
54
+ };
55
+ dialog: {
56
+ close: string;
57
+ };
58
+ drawer: {
59
+ close: string;
60
+ };
61
+ dropdown: {
62
+ placeholder: string;
63
+ };
64
+ input: {
65
+ showPassword: string;
66
+ hidePassword: string;
67
+ };
68
+ menu: {
69
+ label: string;
70
+ };
71
+ paginator: {
72
+ label: string;
73
+ rowsPerPage: string;
74
+ range: (start: number, end: number, total: number) => string;
75
+ previousPage: string;
76
+ nextPage: string;
77
+ };
78
+ progressBar: {
79
+ label: string;
80
+ };
81
+ spinner: {
82
+ label: string;
83
+ };
84
+ tag: {
85
+ remove: string;
86
+ };
87
+ toast: {
88
+ dismiss: string;
89
+ };
90
+ wordmark: {
91
+ overline: string;
92
+ tagline: string;
93
+ };
94
+ }
95
+ /** A partial set of message overrides, applied per component group. */
96
+ type EagamiMessagesOverride = {
97
+ [G in keyof EagamiMessages]?: Partial<EagamiMessages[G]>;
98
+ };
99
+ /** Configuration accepted by `provideEagamiUi`. */
100
+ interface EagamiI18nConfig {
101
+ /** Initial locale. Defaults to `'en'`. */
102
+ locale?: EagamiLocale;
103
+ /** Optional per-string overrides merged over the active locale's messages. */
104
+ messages?: EagamiMessagesOverride;
105
+ }
106
+
107
+ /** DI token carrying the consumer-supplied i18n configuration. */
108
+ declare const EAGAMI_I18N_CONFIG: InjectionToken<EagamiI18nConfig>;
109
+ /**
110
+ * Configures Eagami UI for the application. Pass a `locale` to switch every
111
+ * component's built-in strings (and locale-aware date formatting) at once, and
112
+ * optionally `messages` to override individual strings.
113
+ *
114
+ * ```ts
115
+ * bootstrapApplication(AppComponent, {
116
+ * providers: [provideEagamiUi({ locale: 'fr-FR' })],
117
+ * });
118
+ * ```
119
+ *
120
+ * Calling this is optional — without it the library defaults to English.
121
+ */
122
+ declare function provideEagamiUi(config?: EagamiI18nConfig): EnvironmentProviders;
123
+
124
+ /**
125
+ * Holds the active locale and resolves the matching message dictionary for
126
+ * every Eagami UI component. The `locale` signal is reactive, so changing it
127
+ * at runtime re-renders all components with the new strings. Unknown locales
128
+ * (or missing keys via partial overrides) fall back to English.
129
+ */
130
+ declare class EagamiI18nService {
131
+ private readonly config;
132
+ private readonly _locale;
133
+ /** The currently active locale. Read it reactively or call `setLocale()`. */
134
+ readonly locale: Signal<EagamiLocale>;
135
+ /** The resolved message dictionary for the active locale. */
136
+ readonly messages: Signal<EagamiMessages>;
137
+ /** Switches the active locale; falls back to English if unsupported. */
138
+ setLocale(locale: EagamiLocale): void;
139
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EagamiI18nService, never>;
140
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<EagamiI18nService>;
141
+ }
142
+
143
+ /** Greek messages. */
144
+ declare const el: EagamiMessages;
145
+
146
+ /** English (default / fallback) messages. */
147
+ declare const en: EagamiMessages;
148
+
149
+ /** Spanish (Spain) messages. */
150
+ declare const esES: EagamiMessages;
151
+
152
+ /** French (France) messages. */
153
+ declare const frFR: EagamiMessages;
154
+
155
+ /** Polish messages. */
156
+ declare const pl: EagamiMessages;
157
+
158
+ /** Built-in message dictionaries, keyed by locale. */
159
+ declare const EAGAMI_MESSAGES: Record<EagamiLocale, EagamiMessages>;
160
+
161
+ /**
162
+ * Replaces regular spaces with U+202F (narrow non-breaking space) in the
163
+ * positions where standard French typography requires "espace fine insécable":
164
+ * before `!` `?` `:` `;` `»`, and after `«`. This is what publishers like the
165
+ * Imprimerie nationale and most French press follow, and it prevents the
166
+ * punctuation from wrapping onto its own line.
167
+ *
168
+ * Opt-in: the library does not auto-apply this to anything. Components render
169
+ * whatever string they receive. Apply this to consumer-supplied content (user
170
+ * input, content from your CMS, etc.) that you want to format correctly for a
171
+ * French audience. The function is idempotent — already-converted text passes
172
+ * through unchanged.
173
+ *
174
+ * Do not apply it to URLs, CSS, JSON, code snippets, or other technical
175
+ * strings where `:` or `?` have non-prose meaning.
176
+ *
177
+ * @example
178
+ * frenchSpacing('Lignes par page :');
179
+ * // → 'Lignes par page\u202F:'
180
+ *
181
+ * frenchSpacing("Qu'est-ce que c'est ?");
182
+ * // → "Qu'est-ce que c'est\u202F?"
183
+ *
184
+ * frenchSpacing('Il a dit « bonjour ».');
185
+ * // → 'Il a dit «\u202Fbonjour\u202F».'
186
+ */
187
+ declare function frenchSpacing(text: string): string;
188
+
6
189
  /**
7
190
  * Container for expandable content sections. By default only one item can be
8
191
  * open at a time; set `multi` to allow several to stay expanded together.
@@ -42,6 +225,7 @@ type AlertVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
42
225
  * binding and an automatically chosen ARIA role based on severity.
43
226
  */
44
227
  declare class AlertComponent {
228
+ protected readonly i18n: EagamiI18nService;
45
229
  readonly variant: _angular_core.InputSignal<AlertVariant>;
46
230
  readonly dismissible: _angular_core.InputSignal<boolean>;
47
231
  readonly visible: _angular_core.ModelSignal<boolean>;
@@ -78,6 +262,7 @@ type AutocompleteSize = 'sm' | 'md' | 'lg';
78
262
  declare class AutocompleteComponent implements ControlValueAccessor {
79
263
  private readonly inputEl;
80
264
  private readonly hostEl;
265
+ private readonly i18n;
81
266
  readonly label: _angular_core.InputSignal<string | undefined>;
82
267
  readonly placeholder: _angular_core.InputSignal<string>;
83
268
  readonly options: _angular_core.InputSignal<SelectOption[]>;
@@ -89,7 +274,7 @@ declare class AutocompleteComponent implements ControlValueAccessor {
89
274
  readonly errorMsg: _angular_core.InputSignal<string | undefined>;
90
275
  readonly minLength: _angular_core.InputSignal<number>;
91
276
  readonly maxResults: _angular_core.InputSignal<number>;
92
- readonly emptyMessage: _angular_core.InputSignal<string>;
277
+ readonly emptyMessage: _angular_core.InputSignal<string | undefined>;
93
278
  readonly id: _angular_core.InputSignal<string>;
94
279
  readonly value: _angular_core.ModelSignal<string>;
95
280
  /** Fires when the user picks an option from the suggestion list. */
@@ -114,6 +299,8 @@ declare class AutocompleteComponent implements ControlValueAccessor {
114
299
  readonly filteredOptions: _angular_core.Signal<SelectOption[]>;
115
300
  readonly showList: _angular_core.Signal<boolean>;
116
301
  readonly showEmpty: _angular_core.Signal<boolean>;
302
+ /** Empty-list message, falling back to the active locale's translation. */
303
+ readonly resolvedEmptyMessage: _angular_core.Signal<string>;
117
304
  readonly wrapperClasses: _angular_core.Signal<{
118
305
  [x: string]: boolean;
119
306
  'ea-autocomplete__wrapper--error': boolean;
@@ -161,6 +348,7 @@ interface AvatarEditorCropState {
161
348
  declare class AvatarEditorComponent implements OnDestroy {
162
349
  readonly canvasEl: _angular_core.Signal<ElementRef<HTMLCanvasElement> | undefined>;
163
350
  readonly fileInputEl: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
351
+ protected readonly i18n: EagamiI18nService;
164
352
  readonly shape: _angular_core.InputSignal<AvatarEditorShape>;
165
353
  readonly canvasSize: _angular_core.InputSignal<number>;
166
354
  readonly currentSrc: _angular_core.InputSignal<string | undefined>;
@@ -331,11 +519,14 @@ interface BreadcrumbClickEvent {
331
519
  * always treated as the current page and is non-interactive.
332
520
  */
333
521
  declare class BreadcrumbsComponent {
522
+ private readonly i18n;
334
523
  readonly items: _angular_core.InputSignal<BreadcrumbItem[]>;
335
524
  readonly separator: _angular_core.InputSignal<BreadcrumbsSeparator>;
336
- readonly ariaLabel: _angular_core.InputSignal<string>;
525
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
337
526
  /** Fires when a non-disabled, non-final breadcrumb is activated. */
338
527
  readonly clicked: _angular_core.OutputEmitterRef<BreadcrumbClickEvent>;
528
+ /** Accessible label for the breadcrumb nav, falling back to the active locale. */
529
+ readonly resolvedAriaLabel: _angular_core.Signal<string>;
339
530
  isLast(index: number): boolean;
340
531
  handleClick(item: BreadcrumbItem, index: number, event: MouseEvent): void;
341
532
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbsComponent, never>;
@@ -477,6 +668,7 @@ interface DataTableSortState {
477
668
  * `model()` binding.
478
669
  */
479
670
  declare class DataTableComponent<T = Record<string, unknown>> {
671
+ private readonly i18n;
480
672
  readonly columns: _angular_core.InputSignal<DataTableColumn<T>[]>;
481
673
  readonly data: _angular_core.InputSignal<T[]>;
482
674
  readonly trackBy: _angular_core.InputSignal<keyof T | undefined>;
@@ -485,11 +677,13 @@ declare class DataTableComponent<T = Record<string, unknown>> {
485
677
  readonly striped: _angular_core.InputSignal<boolean>;
486
678
  readonly hoverable: _angular_core.InputSignal<boolean>;
487
679
  readonly bordered: _angular_core.InputSignal<boolean>;
488
- readonly noDataText: _angular_core.InputSignal<string>;
680
+ readonly noDataText: _angular_core.InputSignal<string | undefined>;
489
681
  readonly sort: _angular_core.ModelSignal<DataTableSortState>;
490
682
  /** Fires whenever the sort column or direction changes via header click. */
491
683
  readonly sorted: _angular_core.OutputEmitterRef<DataTableSortState>;
492
684
  readonly noDataTemplate: _angular_core.Signal<TemplateRef<unknown> | undefined>;
685
+ /** Empty-state text, falling back to the active locale's translation. */
686
+ readonly resolvedNoDataText: _angular_core.Signal<string>;
493
687
  readonly hostClasses: _angular_core.Signal<{
494
688
  [x: string]: boolean;
495
689
  'ea-data-table--sticky': boolean;
@@ -514,6 +708,7 @@ type CodeInputSize = 'sm' | 'md' | 'lg';
514
708
  */
515
709
  declare class CodeInputComponent implements ControlValueAccessor {
516
710
  readonly digitEls: _angular_core.Signal<readonly ElementRef<HTMLInputElement>[]>;
711
+ protected readonly i18n: EagamiI18nService;
517
712
  readonly label: _angular_core.InputSignal<string | undefined>;
518
713
  readonly placeholder: _angular_core.InputSignal<string>;
519
714
  readonly length: _angular_core.InputSignal<number>;
@@ -580,8 +775,10 @@ declare class DatePickerComponent implements ControlValueAccessor {
580
775
  private readonly hostEl;
581
776
  private readonly triggerEl;
582
777
  private readonly injector;
778
+ protected readonly i18n: EagamiI18nService;
583
779
  readonly label: _angular_core.InputSignal<string | undefined>;
584
- readonly placeholder: _angular_core.InputSignal<string>;
780
+ /** Placeholder shown when no date is selected. Defaults to the active locale's text. */
781
+ readonly placeholder: _angular_core.InputSignal<string | undefined>;
585
782
  readonly size: _angular_core.InputSignal<DatePickerSize>;
586
783
  readonly disabled: _angular_core.InputSignal<boolean>;
587
784
  readonly readonly: _angular_core.InputSignal<boolean>;
@@ -608,6 +805,10 @@ declare class DatePickerComponent implements ControlValueAccessor {
608
805
  readonly hasError: _angular_core.Signal<boolean>;
609
806
  readonly showError: _angular_core.Signal<boolean>;
610
807
  readonly showHint: _angular_core.Signal<boolean>;
808
+ /** Locale used for date formatting — explicit `locale` input, else the global locale. */
809
+ readonly effectiveLocale: _angular_core.Signal<string>;
810
+ /** Placeholder text — explicit `placeholder` input, else the active locale's default. */
811
+ readonly resolvedPlaceholder: _angular_core.Signal<string>;
611
812
  readonly triggerClasses: _angular_core.Signal<{
612
813
  [x: string]: boolean;
613
814
  'ea-date-picker__trigger--error': boolean;
@@ -663,6 +864,7 @@ type DialogSize = 'sm' | 'md' | 'lg' | 'full';
663
864
  declare class DialogComponent {
664
865
  private readonly dialogEl;
665
866
  private previouslyFocused;
867
+ protected readonly i18n: EagamiI18nService;
666
868
  readonly size: _angular_core.InputSignal<DialogSize>;
667
869
  readonly closeOnBackdrop: _angular_core.InputSignal<boolean>;
668
870
  readonly closeOnEscape: _angular_core.InputSignal<boolean>;
@@ -715,6 +917,7 @@ type DrawerSize = 'sm' | 'md' | 'lg' | 'full';
715
917
  declare class DrawerComponent {
716
918
  private readonly drawerEl;
717
919
  private previouslyFocused;
920
+ protected readonly i18n: EagamiI18nService;
718
921
  readonly position: _angular_core.InputSignal<DrawerPosition>;
719
922
  readonly size: _angular_core.InputSignal<DrawerSize>;
720
923
  readonly closeOnBackdrop: _angular_core.InputSignal<boolean>;
@@ -750,8 +953,9 @@ declare class DropdownComponent implements ControlValueAccessor {
750
953
  private readonly elRef;
751
954
  private readonly menuEl;
752
955
  private readonly destroyRef;
956
+ private readonly i18n;
753
957
  readonly label: _angular_core.InputSignal<string | undefined>;
754
- readonly placeholder: _angular_core.InputSignal<string>;
958
+ readonly placeholder: _angular_core.InputSignal<string | undefined>;
755
959
  readonly options: _angular_core.InputSignal<SelectOption[]>;
756
960
  readonly size: _angular_core.InputSignal<DropdownSize>;
757
961
  readonly disabled: _angular_core.InputSignal<boolean>;
@@ -773,6 +977,8 @@ declare class DropdownComponent implements ControlValueAccessor {
773
977
  readonly showError: _angular_core.Signal<boolean>;
774
978
  readonly showHint: _angular_core.Signal<boolean>;
775
979
  readonly selectedLabel: _angular_core.Signal<string>;
980
+ /** Placeholder text, falling back to the active locale's translation. */
981
+ readonly resolvedPlaceholder: _angular_core.Signal<string>;
776
982
  readonly triggerClasses: _angular_core.Signal<{
777
983
  [x: string]: boolean;
778
984
  'ea-dropdown__trigger--error': boolean;
@@ -809,13 +1015,14 @@ type EagamiWordmarkLayout = 'stacked' | 'inline';
809
1015
  * inline layouts.
810
1016
  */
811
1017
  declare class EagamiWordmarkComponent {
1018
+ protected readonly i18n: EagamiI18nService;
812
1019
  readonly variant: _angular_core.InputSignal<EagamiWordmarkVariant>;
813
1020
  readonly layout: _angular_core.InputSignal<EagamiWordmarkLayout>;
814
1021
  readonly size: _angular_core.InputSignal<number>;
815
1022
  protected readonly showOverline: _angular_core.Signal<boolean>;
816
1023
  protected readonly showTagline: _angular_core.Signal<boolean>;
817
1024
  protected readonly brandText: _angular_core.Signal<"eagami" | "eagami design system">;
818
- protected readonly ariaLabel: _angular_core.Signal<"eagami" | "eagami design system" | "handcrafted by eagami" | "eagami design system — elegant web design">;
1025
+ protected readonly ariaLabel: _angular_core.Signal<string>;
819
1026
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<EagamiWordmarkComponent, never>;
820
1027
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<EagamiWordmarkComponent, "ea-eagami-wordmark", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
821
1028
  }
@@ -1368,6 +1575,7 @@ type InputType = 'text' | 'email' | 'password' | 'number' | 'search' | 'tel' | '
1368
1575
  */
1369
1576
  declare class InputComponent implements ControlValueAccessor, AfterViewInit {
1370
1577
  readonly inputEl: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
1578
+ protected readonly i18n: EagamiI18nService;
1371
1579
  readonly label: _angular_core.InputSignal<string | undefined>;
1372
1580
  readonly type: _angular_core.InputSignal<InputType>;
1373
1581
  readonly placeholder: _angular_core.InputSignal<string>;
@@ -1429,11 +1637,14 @@ type MenuPlacement = 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';
1429
1637
  */
1430
1638
  declare class MenuComponent {
1431
1639
  private readonly injector;
1640
+ private readonly i18n;
1432
1641
  private readonly listEl;
1433
1642
  readonly placement: _angular_core.InputSignal<MenuPlacement>;
1434
1643
  readonly disabled: _angular_core.InputSignal<boolean>;
1435
- readonly ariaLabel: _angular_core.InputSignal<string>;
1644
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
1436
1645
  readonly id: _angular_core.InputSignal<string>;
1646
+ /** Accessible label for the menu, falling back to the active locale. */
1647
+ readonly resolvedAriaLabel: _angular_core.Signal<string>;
1437
1648
  readonly open: _angular_core.ModelSignal<boolean>;
1438
1649
  /** Fires when the menu opens. */
1439
1650
  readonly opened: _angular_core.OutputEmitterRef<void>;
@@ -1511,6 +1722,7 @@ interface PaginatorState {
1511
1722
  * event whenever either changes.
1512
1723
  */
1513
1724
  declare class PaginatorComponent {
1725
+ protected readonly i18n: EagamiI18nService;
1514
1726
  readonly totalItems: _angular_core.InputSignal<number>;
1515
1727
  readonly pageSizeOptions: _angular_core.InputSignal<number[]>;
1516
1728
  readonly showPageSizeSelector: _angular_core.InputSignal<boolean>;
@@ -1548,6 +1760,7 @@ type ProgressBarSize = 'sm' | 'md' | 'lg';
1548
1760
  * and/or the current percentage.
1549
1761
  */
1550
1762
  declare class ProgressBarComponent {
1763
+ protected readonly i18n: EagamiI18nService;
1551
1764
  readonly value: _angular_core.InputSignal<number>;
1552
1765
  readonly max: _angular_core.InputSignal<number>;
1553
1766
  readonly variant: _angular_core.InputSignal<ProgressBarVariant>;
@@ -1762,12 +1975,16 @@ declare class SliderComponent implements ControlValueAccessor {
1762
1975
  /** Visual size of the spinner. */
1763
1976
  type SpinnerSize = 'sm' | 'md' | 'lg';
1764
1977
  /**
1765
- * SVG loading indicator with an accessible `role="status"`. Uses the `label`
1766
- * input as the accessible name announced to assistive technology.
1978
+ * SVG loading indicator with an accessible `role="status"`. The `label` input
1979
+ * overrides the accessible name announced to assistive technology; when unset
1980
+ * it falls back to the active locale's translation.
1767
1981
  */
1768
1982
  declare class SpinnerComponent {
1983
+ private readonly i18n;
1769
1984
  readonly size: _angular_core.InputSignal<SpinnerSize>;
1770
- readonly label: _angular_core.InputSignal<string>;
1985
+ readonly label: _angular_core.InputSignal<string | undefined>;
1986
+ /** Accessible label, falling back to the active locale's translation. */
1987
+ readonly resolvedLabel: _angular_core.Signal<string>;
1771
1988
  readonly hostClasses: _angular_core.Signal<{
1772
1989
  [x: string]: boolean;
1773
1990
  }>;
@@ -1869,16 +2086,20 @@ type TagSize = 'sm' | 'md' | 'lg';
1869
2086
  /**
1870
2087
  * Inline label commonly used to represent filters, categories, or selected
1871
2088
  * items. When `removable`, renders a close button that emits `removed`; the
1872
- * accessible name of that button is configurable via `removeLabel`.
2089
+ * accessible name of that button is configurable via `removeLabel` and
2090
+ * otherwise falls back to the active locale's translation.
1873
2091
  */
1874
2092
  declare class TagComponent {
2093
+ private readonly i18n;
1875
2094
  readonly variant: _angular_core.InputSignal<TagVariant>;
1876
2095
  readonly size: _angular_core.InputSignal<TagSize>;
1877
2096
  readonly removable: _angular_core.InputSignal<boolean>;
1878
2097
  readonly disabled: _angular_core.InputSignal<boolean>;
1879
- readonly removeLabel: _angular_core.InputSignal<string>;
2098
+ readonly removeLabel: _angular_core.InputSignal<string | undefined>;
1880
2099
  /** Fires when the user activates the remove button on a `removable` tag. */
1881
2100
  readonly removed: _angular_core.OutputEmitterRef<void>;
2101
+ /** Accessible label for the remove button, falling back to the active locale. */
2102
+ readonly resolvedRemoveLabel: _angular_core.Signal<string>;
1882
2103
  readonly hostClasses: _angular_core.Signal<{
1883
2104
  [x: string]: boolean;
1884
2105
  'ea-tag--disabled': boolean;
@@ -1992,6 +2213,7 @@ declare class ToastService {
1992
2213
  */
1993
2214
  declare class ToastComponent {
1994
2215
  protected readonly toastService: ToastService;
2216
+ protected readonly i18n: EagamiI18nService;
1995
2217
  protected getRole(toast: Toast): 'alert' | 'status';
1996
2218
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastComponent, never>;
1997
2219
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToastComponent, "ea-toast", never, {}, {}, never, never, true, never>;
@@ -2028,5 +2250,5 @@ declare class TooltipDirective implements OnDestroy {
2028
2250
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TooltipDirective, "[eaTooltip]", never, { "eaTooltip": { "alias": "eaTooltip"; "required": true; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2029
2251
  }
2030
2252
 
2031
- export { AccordionComponent, AccordionItemComponent, AlertCircleIconComponent, AlertComponent, AlertTriangleIconComponent, AppleIconComponent, ArchiveIconComponent, ArrowDownIconComponent, ArrowLeftIconComponent, ArrowRightIconComponent, ArrowUpIconComponent, AtSignIconComponent, AutocompleteComponent, AvatarComponent, AvatarEditorComponent, BadgeComponent, BarChartIconComponent, BellIconComponent, BookmarkIconComponent, BreadcrumbsComponent, BriefcaseIconComponent, ButtonComponent, CalendarIconComponent, CameraIconComponent, CardComponent, CheckCircleIconComponent, CheckIconComponent, CheckboxComponent, ChevronDownIconComponent, ChevronLeftIconComponent, ChevronRightIconComponent, ChevronUpIconComponent, ChevronsUpDownIconComponent, ClipboardIconComponent, ClockIconComponent, CloudIconComponent, CodeInputComponent, CopyIconComponent, CreditCardIconComponent, DataTableComponent, DatePickerComponent, DialogComponent, DividerComponent, DollarSignIconComponent, DownloadIconComponent, DrawerComponent, DropdownComponent, EagamiIconComponent, EagamiWordmarkComponent, EmptyStateComponent, ExternalLinkIconComponent, EyeIconComponent, EyeOffIconComponent, FacebookIconComponent, FileIconComponent, FilterIconComponent, FlagIconComponent, FolderIconComponent, GiftIconComponent, GithubIconComponent, GlobeIconComponent, GoogleIconComponent, HashIconComponent, HeartIconComponent, HelpCircleIconComponent, HomeIconComponent, ImageIconComponent, InboxIconComponent, InfoIconComponent, InputComponent, LinkIconComponent, ListIconComponent, LoaderIconComponent, LockIconComponent, LogInIconComponent, LogOutIconComponent, MailIconComponent, MapPinIconComponent, MaximizeIconComponent, MenuComponent, MenuIconComponent, MenuItemComponent, MenuTriggerDirective, MicIconComponent, MicrosoftIconComponent, MinimizeIconComponent, MinusIconComponent, MonitorIconComponent, MoonIconComponent, MoreHorizontalIconComponent, PackageIconComponent, PaginatorComponent, PaperclipIconComponent, PauseIconComponent, PencilIconComponent, PhoneIconComponent, PlayIconComponent, PlusIconComponent, PrinterIconComponent, ProgressBarComponent, RadioComponent, RadioGroupComponent, RefreshCwIconComponent, RotateCcwIconComponent, SaveIconComponent, SearchIconComponent, SegmentedComponent, SendIconComponent, SettingsIconComponent, ShareIconComponent, ShieldIconComponent, ShoppingCartIconComponent, SkeletonComponent, SliderComponent, SmartphoneIconComponent, SpinnerComponent, StarIconComponent, SunIconComponent, SwitchComponent, TabComponent, TabsComponent, TagComponent, TextareaComponent, ThumbsDownIconComponent, ThumbsUpIconComponent, ToastComponent, ToastService, TooltipDirective, TrashIconComponent, TrendingUpIconComponent, UnlockIconComponent, UploadIconComponent, UserIconComponent, UsersIconComponent, VideoIconComponent, Volume2IconComponent, WifiIconComponent, XCircleIconComponent, XIconComponent, XTwitterIconComponent, ZapIconComponent };
2032
- export type { AlertVariant, AutocompleteSize, AvatarEditorCropEvent, AvatarEditorCropState, AvatarEditorShape, AvatarShape, AvatarSize, BadgeSize, BadgeVariant, BreadcrumbClickEvent, BreadcrumbItem, BreadcrumbsSeparator, ButtonSize, ButtonType, ButtonVariant, CardHeaderAlign, CardPadding, CardVariant, CheckboxSize, CodeInputSize, DataTableColumn, DataTableDensity, DataTableSortDirection, DataTableSortState, DatePickerFormat, DatePickerSize, DatePickerValue, DatePickerWeekStart, DialogSize, DividerOrientation, DrawerPosition, DrawerSize, DropdownSize, EagamiWordmarkLayout, EagamiWordmarkVariant, EmptyStateHeadingLevel, EmptyStateSize, InputSize, InputType, MenuItemVariant, MenuPlacement, PaginatorAlign, PaginatorState, ProgressBarSize, ProgressBarVariant, RadioOrientation, RadioSize, SegmentedSize, SelectOption, SkeletonVariant, SliderSize, SpinnerSize, SwitchSize, TabsSize, TabsVariant, TagSize, TagVariant, TextareaResize, TextareaSize, Toast, ToastOptions, ToastVariant, TooltipPosition };
2253
+ export { AccordionComponent, AccordionItemComponent, AlertCircleIconComponent, AlertComponent, AlertTriangleIconComponent, AppleIconComponent, ArchiveIconComponent, ArrowDownIconComponent, ArrowLeftIconComponent, ArrowRightIconComponent, ArrowUpIconComponent, AtSignIconComponent, AutocompleteComponent, AvatarComponent, AvatarEditorComponent, BadgeComponent, BarChartIconComponent, BellIconComponent, BookmarkIconComponent, BreadcrumbsComponent, BriefcaseIconComponent, ButtonComponent, CalendarIconComponent, CameraIconComponent, CardComponent, CheckCircleIconComponent, CheckIconComponent, CheckboxComponent, ChevronDownIconComponent, ChevronLeftIconComponent, ChevronRightIconComponent, ChevronUpIconComponent, ChevronsUpDownIconComponent, ClipboardIconComponent, ClockIconComponent, CloudIconComponent, CodeInputComponent, CopyIconComponent, CreditCardIconComponent, DataTableComponent, DatePickerComponent, DialogComponent, DividerComponent, DollarSignIconComponent, DownloadIconComponent, DrawerComponent, DropdownComponent, EAGAMI_I18N_CONFIG, EAGAMI_LOCALES, EAGAMI_MESSAGES, EagamiI18nService, EagamiIconComponent, EagamiWordmarkComponent, EmptyStateComponent, ExternalLinkIconComponent, EyeIconComponent, EyeOffIconComponent, FacebookIconComponent, FileIconComponent, FilterIconComponent, FlagIconComponent, FolderIconComponent, GiftIconComponent, GithubIconComponent, GlobeIconComponent, GoogleIconComponent, HashIconComponent, HeartIconComponent, HelpCircleIconComponent, HomeIconComponent, ImageIconComponent, InboxIconComponent, InfoIconComponent, InputComponent, LinkIconComponent, ListIconComponent, LoaderIconComponent, LockIconComponent, LogInIconComponent, LogOutIconComponent, MailIconComponent, MapPinIconComponent, MaximizeIconComponent, MenuComponent, MenuIconComponent, MenuItemComponent, MenuTriggerDirective, MicIconComponent, MicrosoftIconComponent, MinimizeIconComponent, MinusIconComponent, MonitorIconComponent, MoonIconComponent, MoreHorizontalIconComponent, PackageIconComponent, PaginatorComponent, PaperclipIconComponent, PauseIconComponent, PencilIconComponent, PhoneIconComponent, PlayIconComponent, PlusIconComponent, PrinterIconComponent, ProgressBarComponent, RadioComponent, RadioGroupComponent, RefreshCwIconComponent, RotateCcwIconComponent, SaveIconComponent, SearchIconComponent, SegmentedComponent, SendIconComponent, SettingsIconComponent, ShareIconComponent, ShieldIconComponent, ShoppingCartIconComponent, SkeletonComponent, SliderComponent, SmartphoneIconComponent, SpinnerComponent, StarIconComponent, SunIconComponent, SwitchComponent, TabComponent, TabsComponent, TagComponent, TextareaComponent, ThumbsDownIconComponent, ThumbsUpIconComponent, ToastComponent, ToastService, TooltipDirective, TrashIconComponent, TrendingUpIconComponent, UnlockIconComponent, UploadIconComponent, UserIconComponent, UsersIconComponent, VideoIconComponent, Volume2IconComponent, WifiIconComponent, XCircleIconComponent, XIconComponent, XTwitterIconComponent, ZapIconComponent, el, en, esES, frFR, frenchSpacing, pl, provideEagamiUi };
2254
+ export type { AlertVariant, AutocompleteSize, AvatarEditorCropEvent, AvatarEditorCropState, AvatarEditorShape, AvatarShape, AvatarSize, BadgeSize, BadgeVariant, BreadcrumbClickEvent, BreadcrumbItem, BreadcrumbsSeparator, ButtonSize, ButtonType, ButtonVariant, CardHeaderAlign, CardPadding, CardVariant, CheckboxSize, CodeInputSize, DataTableColumn, DataTableDensity, DataTableSortDirection, DataTableSortState, DatePickerFormat, DatePickerSize, DatePickerValue, DatePickerWeekStart, DialogSize, DividerOrientation, DrawerPosition, DrawerSize, DropdownSize, EagamiI18nConfig, EagamiLocale, EagamiMessages, EagamiMessagesOverride, EagamiWordmarkLayout, EagamiWordmarkVariant, EmptyStateHeadingLevel, EmptyStateSize, InputSize, InputType, MenuItemVariant, MenuPlacement, PaginatorAlign, PaginatorState, ProgressBarSize, ProgressBarVariant, RadioOrientation, RadioSize, SegmentedSize, SelectOption, SkeletonVariant, SliderSize, SpinnerSize, SwitchSize, TabsSize, TabsVariant, TagSize, TagVariant, TextareaResize, TextareaSize, Toast, ToastOptions, ToastVariant, TooltipPosition };