@eagami/ui 0.12.0 → 1.0.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.
@@ -3,6 +3,11 @@ import { OnDestroy, ElementRef, TemplateRef, AfterViewInit, OnInit } from '@angu
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
4
  import * as _eagami_ui from '@eagami/ui';
5
5
 
6
+ /**
7
+ * Container for expandable content sections. By default only one item can be
8
+ * open at a time; set `multi` to allow several to stay expanded together.
9
+ * Provides a built-in chevron animation and supports per-item disabling.
10
+ */
6
11
  declare class AccordionComponent {
7
12
  readonly multi: _angular_core.InputSignal<boolean>;
8
13
  readonly expandedItems: _angular_core.WritableSignal<Set<string>>;
@@ -12,6 +17,11 @@ declare class AccordionComponent {
12
17
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AccordionComponent, "ea-accordion", never, { "multi": { "alias": "multi"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
13
18
  }
14
19
 
20
+ /**
21
+ * Single expandable section within an `ea-accordion`. Each item exposes a
22
+ * header button with the supplied `label` and reveals its projected content
23
+ * when expanded. Must be rendered inside an `ea-accordion`.
24
+ */
15
25
  declare class AccordionItemComponent {
16
26
  private readonly accordion;
17
27
  readonly value: _angular_core.InputSignal<string>;
@@ -24,32 +34,53 @@ declare class AccordionItemComponent {
24
34
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AccordionItemComponent, "ea-accordion-item", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
25
35
  }
26
36
 
37
+ /** Semantic colour scheme of an alert. Drives icon and palette. */
27
38
  type AlertVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
39
+ /**
40
+ * Inline banner for surfacing semantic messages such as success confirmations,
41
+ * warnings, or errors. Optionally dismissible, with a two-way `visible`
42
+ * binding and an automatically chosen ARIA role based on severity.
43
+ */
28
44
  declare class AlertComponent {
29
45
  readonly variant: _angular_core.InputSignal<AlertVariant>;
30
46
  readonly dismissible: _angular_core.InputSignal<boolean>;
31
47
  readonly visible: _angular_core.ModelSignal<boolean>;
48
+ /** Fires when the user dismisses the alert via its close button. */
32
49
  readonly dismissed: _angular_core.OutputEmitterRef<void>;
33
50
  readonly alertClasses: _angular_core.Signal<{
34
51
  [x: string]: boolean;
35
52
  }>;
53
+ readonly role: _angular_core.Signal<"alert" | "status">;
54
+ /** Hides the alert and emits `dismissed`. */
36
55
  dismiss(): void;
37
56
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AlertComponent, never>;
38
57
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AlertComponent, "ea-alert", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; }, { "visible": "visibleChange"; "dismissed": "dismissed"; }, never, ["*"], true, never>;
39
58
  }
40
59
 
41
- type AutocompleteSize = 'sm' | 'md' | 'lg';
42
- interface AutocompleteOption {
60
+ /**
61
+ * Common option shape used by single-select form controls
62
+ * (autocomplete, dropdown, segmented).
63
+ */
64
+ interface SelectOption {
43
65
  value: string;
44
66
  label: string;
45
67
  disabled?: boolean;
46
68
  }
69
+
70
+ /** Visual size of the autocomplete input. */
71
+ type AutocompleteSize = 'sm' | 'md' | 'lg';
72
+ /**
73
+ * Text input paired with a filtered suggestion list. Filters options by
74
+ * case-insensitive substring match, supports arrow-key navigation, and
75
+ * implements `ControlValueAccessor` for use with reactive and template-driven
76
+ * forms.
77
+ */
47
78
  declare class AutocompleteComponent implements ControlValueAccessor {
48
79
  private readonly inputEl;
49
80
  private readonly hostEl;
50
81
  readonly label: _angular_core.InputSignal<string | undefined>;
51
82
  readonly placeholder: _angular_core.InputSignal<string>;
52
- readonly options: _angular_core.InputSignal<AutocompleteOption[]>;
83
+ readonly options: _angular_core.InputSignal<SelectOption[]>;
53
84
  readonly size: _angular_core.InputSignal<AutocompleteSize>;
54
85
  readonly disabled: _angular_core.InputSignal<boolean>;
55
86
  readonly readonly: _angular_core.InputSignal<boolean>;
@@ -61,24 +92,31 @@ declare class AutocompleteComponent implements ControlValueAccessor {
61
92
  readonly emptyMessage: _angular_core.InputSignal<string>;
62
93
  readonly id: _angular_core.InputSignal<string>;
63
94
  readonly value: _angular_core.ModelSignal<string>;
64
- readonly optionSelected: _angular_core.OutputEmitterRef<AutocompleteOption>;
65
- readonly valueChanged: _angular_core.OutputEmitterRef<string>;
95
+ /** Fires when the user picks an option from the suggestion list. */
96
+ readonly selected: _angular_core.OutputEmitterRef<SelectOption>;
97
+ /** Fires whenever the input text changes, including on free-text edits. */
98
+ readonly changed: _angular_core.OutputEmitterRef<string>;
99
+ /** Fires when the input receives focus. */
100
+ readonly focused: _angular_core.OutputEmitterRef<FocusEvent>;
101
+ /** Fires when the input loses focus. */
102
+ readonly blurred: _angular_core.OutputEmitterRef<FocusEvent>;
66
103
  readonly isOpen: _angular_core.WritableSignal<boolean>;
67
- readonly focused: _angular_core.WritableSignal<boolean>;
104
+ readonly isFocused: _angular_core.WritableSignal<boolean>;
68
105
  readonly focusedIndex: _angular_core.WritableSignal<number>;
69
106
  private readonly _formDisabled;
70
107
  private justSelected;
71
108
  private onChange;
72
109
  private onTouched;
73
110
  readonly isDisabled: _angular_core.Signal<boolean>;
74
- readonly resolvedStatus: _angular_core.Signal<"default" | "error">;
111
+ readonly hasError: _angular_core.Signal<boolean>;
75
112
  readonly showError: _angular_core.Signal<boolean>;
76
113
  readonly showHint: _angular_core.Signal<boolean>;
77
- readonly filteredOptions: _angular_core.Signal<AutocompleteOption[]>;
114
+ readonly filteredOptions: _angular_core.Signal<SelectOption[]>;
78
115
  readonly showList: _angular_core.Signal<boolean>;
79
116
  readonly showEmpty: _angular_core.Signal<boolean>;
80
117
  readonly wrapperClasses: _angular_core.Signal<{
81
118
  [x: string]: boolean;
119
+ 'ea-autocomplete__wrapper--error': boolean;
82
120
  'ea-autocomplete__wrapper--focused': boolean;
83
121
  'ea-autocomplete__wrapper--disabled': boolean;
84
122
  }>;
@@ -87,27 +125,39 @@ declare class AutocompleteComponent implements ControlValueAccessor {
87
125
  registerOnTouched(fn: () => void): void;
88
126
  setDisabledState(isDisabled: boolean): void;
89
127
  handleInput(event: Event): void;
90
- handleFocus(): void;
91
- handleBlur(): void;
128
+ handleFocus(event: FocusEvent): void;
129
+ handleBlur(event: FocusEvent): void;
92
130
  handleKeydown(event: KeyboardEvent): void;
93
- selectOption(option: AutocompleteOption): void;
131
+ /** Programmatically selects the given option, updating the value and closing the list. */
132
+ selectOption(option: SelectOption): void;
133
+ /** Closes the suggestion list without changing the current value. */
94
134
  close(): void;
135
+ /** Moves keyboard focus to the underlying text input. */
136
+ focus(): void;
95
137
  private moveFocus;
96
138
  onDocumentClick(event: Event): void;
97
139
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AutocompleteComponent, never>;
98
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AutocompleteComponent, "ea-autocomplete", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "error"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "maxResults": { "alias": "maxResults"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "optionSelected": "optionSelected"; "valueChanged": "valueChanged"; }, never, ["[slot=prefix]", "[slot=suffix]"], true, never>;
140
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AutocompleteComponent, "ea-autocomplete", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "maxResults": { "alias": "maxResults"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "selected": "selected"; "changed": "changed"; "focused": "focused"; "blurred": "blurred"; }, never, ["[slot=prefix]", "[slot=suffix]"], true, never>;
99
141
  }
100
142
 
143
+ /** Crop mask shape applied to the exported image. */
101
144
  type AvatarEditorShape = 'circle' | 'square';
145
+ /** Result of a successful crop, providing both a `Blob` and a data URL. */
102
146
  interface AvatarEditorCropEvent {
103
147
  blob: Blob;
104
148
  dataUrl: string;
105
149
  }
150
+ /** Persisted pan/zoom state, suitable for restoring an in-progress edit. */
106
151
  interface AvatarEditorCropState {
107
152
  zoom: number;
108
153
  offsetX: number;
109
154
  offsetY: number;
110
155
  }
156
+ /**
157
+ * Canvas-based image editor for cropping avatars. Supports drag-and-drop
158
+ * upload, mouse/touch panning, zoom via slider or scroll wheel, and exports
159
+ * the cropped image as either a `Blob` or a data URL.
160
+ */
111
161
  declare class AvatarEditorComponent implements OnDestroy {
112
162
  readonly canvasEl: _angular_core.Signal<ElementRef<HTMLCanvasElement> | undefined>;
113
163
  readonly fileInputEl: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
@@ -122,11 +172,16 @@ declare class AvatarEditorComponent implements OnDestroy {
122
172
  readonly exportQuality: _angular_core.InputSignal<number>;
123
173
  readonly exportType: _angular_core.InputSignal<string>;
124
174
  readonly cropState: _angular_core.InputSignal<AvatarEditorCropState | null | undefined>;
175
+ /** Fires when the user finalises a crop via {@link exportCrop}; payload contains both `Blob` and data URL. */
125
176
  readonly cropped: _angular_core.OutputEmitterRef<AvatarEditorCropEvent>;
177
+ /** Fires when a file is chosen from disk or dropped onto the editor. */
126
178
  readonly fileSelected: _angular_core.OutputEmitterRef<File>;
179
+ /** Fires when the current image is cleared via the remove control. */
127
180
  readonly removed: _angular_core.OutputEmitterRef<void>;
128
- readonly fileError: _angular_core.OutputEmitterRef<string>;
129
- readonly cropStateChange: _angular_core.OutputEmitterRef<AvatarEditorCropState>;
181
+ /** Fires with a human-readable message when validation fails (wrong type, oversized file, etc.). */
182
+ readonly errored: _angular_core.OutputEmitterRef<string>;
183
+ /** Fires whenever the user pans or zooms the image; useful for persisting in-progress crops. */
184
+ readonly cropStateChanged: _angular_core.OutputEmitterRef<AvatarEditorCropState>;
130
185
  readonly hasImage: _angular_core.WritableSignal<boolean>;
131
186
  readonly isDragOver: _angular_core.WritableSignal<boolean>;
132
187
  readonly isAtOriginal: _angular_core.WritableSignal<boolean>;
@@ -160,6 +215,7 @@ declare class AvatarEditorComponent implements OnDestroy {
160
215
  onDragLeave(event: DragEvent): void;
161
216
  onDrop(event: DragEvent): void;
162
217
  onFileSelected(event: Event): void;
218
+ /** Opens the native file picker dialog. */
163
219
  openFilePicker(): void;
164
220
  onMouseDown(event: MouseEvent): void;
165
221
  onTouchStart(event: TouchEvent): void;
@@ -172,11 +228,17 @@ declare class AvatarEditorComponent implements OnDestroy {
172
228
  private onTouchMove;
173
229
  private onTouchEnd;
174
230
  private onWheel;
231
+ onCanvasKeydown(event: KeyboardEvent): void;
232
+ /** Sets the zoom level, clamped to the configured `minZoom`/`maxZoom` range. */
175
233
  setZoom(value: number): void;
176
234
  onZoomInput(event: Event): void;
235
+ /** Clears the loaded image and resets pan/zoom to defaults. */
177
236
  removeImage(): void;
237
+ /** Marks the current image and crop state as the baseline for {@link revertImage}. */
178
238
  captureOriginal(): void;
239
+ /** Restores the image and crop state captured by the most recent {@link captureOriginal}. */
179
240
  revertImage(): void;
241
+ /** Renders the current crop to an offscreen canvas, emits `cropped`, and resolves with the resulting `Blob`. */
180
242
  exportCrop(): Promise<Blob>;
181
243
  private loadFromUrl;
182
244
  private loadFile;
@@ -189,11 +251,18 @@ declare class AvatarEditorComponent implements OnDestroy {
189
251
  private emitCropStateChange;
190
252
  private clearCanvas;
191
253
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AvatarEditorComponent, never>;
192
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AvatarEditorComponent, "ea-avatar-editor", never, { "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": false; "isSignal": true; }; "currentSrc": { "alias": "currentSrc"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; "isSignal": true; }; "minZoom": { "alias": "minZoom"; "required": false; "isSignal": true; }; "maxZoom": { "alias": "maxZoom"; "required": false; "isSignal": true; }; "exportQuality": { "alias": "exportQuality"; "required": false; "isSignal": true; }; "exportType": { "alias": "exportType"; "required": false; "isSignal": true; }; "cropState": { "alias": "cropState"; "required": false; "isSignal": true; }; }, { "cropped": "cropped"; "fileSelected": "fileSelected"; "removed": "removed"; "fileError": "fileError"; "cropStateChange": "cropStateChange"; }, never, never, true, never>;
254
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AvatarEditorComponent, "ea-avatar-editor", never, { "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": false; "isSignal": true; }; "currentSrc": { "alias": "currentSrc"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; "isSignal": true; }; "minZoom": { "alias": "minZoom"; "required": false; "isSignal": true; }; "maxZoom": { "alias": "maxZoom"; "required": false; "isSignal": true; }; "exportQuality": { "alias": "exportQuality"; "required": false; "isSignal": true; }; "exportType": { "alias": "exportType"; "required": false; "isSignal": true; }; "cropState": { "alias": "cropState"; "required": false; "isSignal": true; }; }, { "cropped": "cropped"; "fileSelected": "fileSelected"; "removed": "removed"; "errored": "errored"; "cropStateChanged": "cropStateChanged"; }, never, never, true, never>;
193
255
  }
194
256
 
257
+ /** Diameter (or side length) preset for an avatar. */
195
258
  type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
259
+ /** Outline of the avatar — round or rounded-square. */
196
260
  type AvatarShape = 'circle' | 'square';
261
+ /**
262
+ * Compact image used to represent a user or entity. Falls back to initials
263
+ * when no `src` is provided, then to a generic user icon when neither image
264
+ * nor initials are available.
265
+ */
197
266
  declare class AvatarComponent {
198
267
  readonly src: _angular_core.InputSignal<string | undefined>;
199
268
  readonly alt: _angular_core.InputSignal<string>;
@@ -211,8 +280,14 @@ declare class AvatarComponent {
211
280
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AvatarComponent, "ea-avatar", never, { "src": { "alias": "src"; "required": false; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "initials": { "alias": "initials"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
212
281
  }
213
282
 
283
+ /** Semantic colour scheme of a badge. */
214
284
  type BadgeVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
285
+ /** Visual size of a badge. */
215
286
  type BadgeSize = 'sm' | 'md' | 'lg';
287
+ /**
288
+ * Compact pill-shaped indicator used to communicate status, counts, or labels
289
+ * inline with surrounding content.
290
+ */
216
291
  declare class BadgeComponent {
217
292
  readonly variant: _angular_core.InputSignal<BadgeVariant>;
218
293
  readonly size: _angular_core.InputSignal<BadgeSize>;
@@ -223,31 +298,48 @@ declare class BadgeComponent {
223
298
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<BadgeComponent, "ea-badge", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
224
299
  }
225
300
 
301
+ /** Visual style of the separator rendered between breadcrumb items. */
226
302
  type BreadcrumbsSeparator = 'chevron' | 'slash';
303
+ /** Single entry in a breadcrumb trail. */
227
304
  interface BreadcrumbItem {
228
305
  label: string;
229
306
  href?: string;
230
307
  disabled?: boolean;
231
308
  }
309
+ /** Payload emitted when a breadcrumb is activated. */
232
310
  interface BreadcrumbClickEvent {
233
311
  item: BreadcrumbItem;
234
312
  index: number;
235
313
  event: MouseEvent;
236
314
  }
315
+ /**
316
+ * Navigation trail that shows the user's location within a hierarchy. Items
317
+ * with an `href` render as links, others render as buttons; the final item is
318
+ * always treated as the current page and is non-interactive.
319
+ */
237
320
  declare class BreadcrumbsComponent {
238
321
  readonly items: _angular_core.InputSignal<BreadcrumbItem[]>;
239
322
  readonly separator: _angular_core.InputSignal<BreadcrumbsSeparator>;
240
323
  readonly ariaLabel: _angular_core.InputSignal<string>;
241
- readonly itemClicked: _angular_core.OutputEmitterRef<BreadcrumbClickEvent>;
324
+ /** Fires when a non-disabled, non-final breadcrumb is activated. */
325
+ readonly clicked: _angular_core.OutputEmitterRef<BreadcrumbClickEvent>;
242
326
  isLast(index: number): boolean;
243
327
  handleClick(item: BreadcrumbItem, index: number, event: MouseEvent): void;
244
328
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbsComponent, never>;
245
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BreadcrumbsComponent, "ea-breadcrumbs", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, { "itemClicked": "itemClicked"; }, never, never, true, never>;
329
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BreadcrumbsComponent, "ea-breadcrumbs", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true, never>;
246
330
  }
247
331
 
332
+ /** Visual style of a button — drives colour and emphasis. */
248
333
  type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger';
334
+ /** Visual size of a button. */
249
335
  type ButtonSize = 'sm' | 'md' | 'lg';
336
+ /** HTML `type` attribute applied to the underlying `<button>` element. */
250
337
  type ButtonType = 'button' | 'submit' | 'reset';
338
+ /**
339
+ * Standard action button supporting primary, secondary, ghost, and danger
340
+ * variants. Includes a loading state that swaps the label for a spinner while
341
+ * preserving the rendered width.
342
+ */
251
343
  declare class ButtonComponent {
252
344
  readonly variant: _angular_core.InputSignal<ButtonVariant>;
253
345
  readonly size: _angular_core.InputSignal<ButtonSize>;
@@ -257,6 +349,7 @@ declare class ButtonComponent {
257
349
  readonly fullWidth: _angular_core.InputSignal<boolean>;
258
350
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
259
351
  readonly ariaCurrent: _angular_core.InputSignal<string | undefined>;
352
+ /** Fires when the button is activated; suppressed while disabled or loading. */
260
353
  readonly clicked: _angular_core.OutputEmitterRef<MouseEvent>;
261
354
  readonly isDisabled: _angular_core.Signal<boolean>;
262
355
  readonly hostClasses: _angular_core.Signal<{
@@ -270,9 +363,18 @@ declare class ButtonComponent {
270
363
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonComponent, "ea-button", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaCurrent": { "alias": "aria-current"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, ["[slot=prefix]", "*", "[slot=suffix]"], true, never>;
271
364
  }
272
365
 
366
+ /** Visual style of a card surface. */
273
367
  type CardVariant = 'elevated' | 'outlined' | 'filled';
368
+ /** Padding preset applied to the card's content area. */
274
369
  type CardPadding = 'none' | 'sm' | 'md' | 'lg' | 'xl';
370
+ /** Horizontal alignment of card header content. */
275
371
  type CardHeaderAlign = 'start' | 'center' | 'end';
372
+ /**
373
+ * Surface for grouping related content. Provides optional `header` and
374
+ * `footer` content slots and supports elevated, outlined, and filled
375
+ * variants. The card shadow can be customised per instance via the
376
+ * `--ea-card-shadow` CSS custom property.
377
+ */
276
378
  declare class CardComponent {
277
379
  readonly variant: _angular_core.InputSignal<CardVariant>;
278
380
  readonly padding: _angular_core.InputSignal<CardPadding>;
@@ -284,26 +386,40 @@ declare class CardComponent {
284
386
  'ea-card--full-width': boolean;
285
387
  }>;
286
388
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardComponent, never>;
287
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardComponent, "ea-card", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "headerAlign": { "alias": "headerAlign"; "required": false; "isSignal": true; }; "headerDivider": { "alias": "headerDivider"; "required": false; "isSignal": true; }; }, {}, never, ["[eaCardHeader]", "*", "[eaCardFooter]"], true, never>;
389
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardComponent, "ea-card", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "headerAlign": { "alias": "headerAlign"; "required": false; "isSignal": true; }; "headerDivider": { "alias": "headerDivider"; "required": false; "isSignal": true; }; }, {}, never, ["[slot=header]", "*", "[slot=footer]"], true, never>;
288
390
  }
289
391
 
392
+ /** Visual size of a checkbox. */
290
393
  type CheckboxSize = 'sm' | 'md' | 'lg';
394
+ /**
395
+ * Boolean form control with support for an indeterminate visual state. Pairs
396
+ * a visually hidden native input with a custom checkmark and integrates with
397
+ * Angular forms via `ControlValueAccessor`.
398
+ */
291
399
  declare class CheckboxComponent implements ControlValueAccessor {
292
400
  readonly label: _angular_core.InputSignal<string | undefined>;
401
+ readonly hint: _angular_core.InputSignal<string | undefined>;
402
+ readonly errorMsg: _angular_core.InputSignal<string | undefined>;
293
403
  readonly size: _angular_core.InputSignal<CheckboxSize>;
294
404
  readonly disabled: _angular_core.InputSignal<boolean>;
295
405
  readonly required: _angular_core.InputSignal<boolean>;
296
406
  readonly indeterminate: _angular_core.InputSignal<boolean>;
407
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
297
408
  readonly id: _angular_core.InputSignal<string>;
298
409
  readonly checked: _angular_core.ModelSignal<boolean>;
410
+ /** Fires with the new checked state whenever the user toggles the checkbox. */
299
411
  readonly changed: _angular_core.OutputEmitterRef<boolean>;
300
412
  private readonly _formDisabled;
301
413
  readonly isDisabled: _angular_core.Signal<boolean>;
414
+ readonly hasError: _angular_core.Signal<boolean>;
415
+ readonly showError: _angular_core.Signal<boolean>;
416
+ readonly showHint: _angular_core.Signal<boolean>;
302
417
  readonly hostClasses: _angular_core.Signal<{
303
418
  [x: string]: boolean;
304
419
  'ea-checkbox--disabled': boolean;
305
420
  'ea-checkbox--checked': boolean;
306
421
  'ea-checkbox--indeterminate': boolean;
422
+ 'ea-checkbox--error': boolean;
307
423
  }>;
308
424
  private onChange;
309
425
  private onTouched;
@@ -313,11 +429,14 @@ declare class CheckboxComponent implements ControlValueAccessor {
313
429
  setDisabledState(isDisabled: boolean): void;
314
430
  handleChange(): void;
315
431
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckboxComponent, never>;
316
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxComponent, "ea-checkbox", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "changed": "changed"; }, never, never, true, never>;
432
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxComponent, "ea-checkbox", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "changed": "changed"; }, never, never, true, never>;
317
433
  }
318
434
 
435
+ /** Vertical density preset for table rows and header cells. */
319
436
  type DataTableDensity = 'compact' | 'comfortable' | 'spacious';
320
- type SortDirection = 'asc' | 'desc' | null;
437
+ /** Sort direction; `null` means no sort is applied. */
438
+ type DataTableSortDirection = 'asc' | 'desc' | null;
439
+ /** Column definition for the data table, including optional cell/header templates. */
321
440
  interface DataTableColumn<T = Record<string, unknown>> {
322
441
  key: string;
323
442
  label: string;
@@ -333,10 +452,17 @@ interface DataTableColumn<T = Record<string, unknown>> {
333
452
  $implicit: DataTableColumn<T>;
334
453
  }>;
335
454
  }
455
+ /** Current sort state — which column is sorted and in which direction. */
336
456
  interface DataTableSortState {
337
457
  column: string;
338
- direction: SortDirection;
339
- }
458
+ direction: DataTableSortDirection;
459
+ }
460
+ /**
461
+ * Table for tabular data with sortable columns, sticky headers, and density
462
+ * presets. Supports striping, borders, hoverable rows, and custom cell or
463
+ * header templates via `ng-template`. Sort state is exposed as a two-way
464
+ * `model()` binding.
465
+ */
340
466
  declare class DataTableComponent<T = Record<string, unknown>> {
341
467
  readonly columns: _angular_core.InputSignal<DataTableColumn<T>[]>;
342
468
  readonly data: _angular_core.InputSignal<T[]>;
@@ -348,7 +474,8 @@ declare class DataTableComponent<T = Record<string, unknown>> {
348
474
  readonly bordered: _angular_core.InputSignal<boolean>;
349
475
  readonly noDataText: _angular_core.InputSignal<string>;
350
476
  readonly sort: _angular_core.ModelSignal<DataTableSortState>;
351
- readonly sortChange: _angular_core.OutputEmitterRef<DataTableSortState>;
477
+ /** Fires whenever the sort column or direction changes via header click. */
478
+ readonly sorted: _angular_core.OutputEmitterRef<DataTableSortState>;
352
479
  readonly noDataTemplate: _angular_core.Signal<TemplateRef<unknown> | undefined>;
353
480
  readonly hostClasses: _angular_core.Signal<{
354
481
  [x: string]: boolean;
@@ -362,30 +489,37 @@ declare class DataTableComponent<T = Record<string, unknown>> {
362
489
  onHeaderClick(col: DataTableColumn<T>): void;
363
490
  trackByFn(_index: number, item: T): unknown;
364
491
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataTableComponent<any>, never>;
365
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataTableComponent<any>, "ea-data-table", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": true; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "noDataText": { "alias": "noDataText"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; }, { "sort": "sortChange"; "sortChange": "sortChange"; }, ["noDataTemplate"], ["ea-paginator"], true, never>;
492
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataTableComponent<any>, "ea-data-table", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": true; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "noDataText": { "alias": "noDataText"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; }, { "sort": "sortChange"; "sorted": "sorted"; }, ["noDataTemplate"], ["ea-paginator"], true, never>;
366
493
  }
367
494
 
495
+ /** Visual size of each digit cell. */
368
496
  type CodeInputSize = 'sm' | 'md' | 'lg';
369
- type CodeInputStatus = 'default' | 'error' | 'success';
497
+ /**
498
+ * Verification code entry made up of one input per digit. Auto-advances on
499
+ * input, supports paste of the full code at once, and integrates with Angular
500
+ * forms via `ControlValueAccessor`.
501
+ */
370
502
  declare class CodeInputComponent implements ControlValueAccessor {
371
503
  readonly digitEls: _angular_core.Signal<readonly ElementRef<HTMLInputElement>[]>;
372
504
  readonly label: _angular_core.InputSignal<string | undefined>;
505
+ readonly placeholder: _angular_core.InputSignal<string>;
373
506
  readonly length: _angular_core.InputSignal<number>;
374
507
  readonly size: _angular_core.InputSignal<CodeInputSize>;
375
- readonly status: _angular_core.InputSignal<CodeInputStatus>;
376
508
  readonly hint: _angular_core.InputSignal<string | undefined>;
377
509
  readonly errorMsg: _angular_core.InputSignal<string | undefined>;
378
510
  readonly disabled: _angular_core.InputSignal<boolean>;
511
+ readonly readonly: _angular_core.InputSignal<boolean>;
379
512
  readonly required: _angular_core.InputSignal<boolean>;
380
513
  readonly id: _angular_core.InputSignal<string>;
381
514
  readonly value: _angular_core.ModelSignal<string>;
382
515
  readonly focusedIndex: _angular_core.WritableSignal<number>;
383
516
  private readonly _formDisabled;
517
+ /** Fires with the full code once every digit has been entered. */
384
518
  readonly completed: _angular_core.OutputEmitterRef<string>;
385
519
  private onChange;
386
520
  private onTouched;
387
521
  readonly isDisabled: _angular_core.Signal<boolean>;
388
- readonly resolvedStatus: _angular_core.Signal<CodeInputStatus>;
522
+ readonly hasError: _angular_core.Signal<boolean>;
389
523
  readonly showError: _angular_core.Signal<boolean>;
390
524
  readonly showHint: _angular_core.Signal<boolean>;
391
525
  readonly digits: _angular_core.Signal<string[]>;
@@ -399,15 +533,20 @@ declare class CodeInputComponent implements ControlValueAccessor {
399
533
  handlePaste(event: ClipboardEvent): void;
400
534
  handleFocus(index: number): void;
401
535
  handleBlur(): void;
536
+ /** Moves keyboard focus to the next empty digit (or the last one when full). */
402
537
  focus(): void;
403
538
  private focusDigit;
404
539
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CodeInputComponent, never>;
405
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CodeInputComponent, "ea-code-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "length": { "alias": "length"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "completed": "completed"; }, never, never, true, never>;
540
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CodeInputComponent, "ea-code-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "length": { "alias": "length"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "completed": "completed"; }, never, never, true, never>;
406
541
  }
407
542
 
543
+ /** Visual size of the date picker trigger. */
408
544
  type DatePickerSize = 'sm' | 'md' | 'lg';
545
+ /** Locale-aware date format used for the displayed value. */
409
546
  type DatePickerFormat = 'short' | 'medium' | 'long';
547
+ /** First day of the week in the calendar grid (0 = Sunday, 1 = Monday). */
410
548
  type DatePickerWeekStart = 0 | 1;
549
+ /** Value accepted via `writeValue` — a `Date`, ISO/parseable string, or `null`. */
411
550
  type DatePickerValue = Date | string | null;
412
551
  interface CalendarDay {
413
552
  date: Date;
@@ -418,13 +557,21 @@ interface CalendarDay {
418
557
  isDisabled: boolean;
419
558
  isFocused: boolean;
420
559
  }
560
+ /**
561
+ * Calendar popover for selecting a single date. Supports `min`/`max` bounds,
562
+ * configurable week start, locale-aware formatting via `Intl.DateTimeFormat`,
563
+ * and full keyboard navigation (arrows, PageUp/PageDown, Home/End, Enter,
564
+ * Escape). Integrates with Angular forms via `ControlValueAccessor`.
565
+ */
421
566
  declare class DatePickerComponent implements ControlValueAccessor {
422
567
  private readonly hostEl;
423
568
  private readonly triggerEl;
569
+ private readonly injector;
424
570
  readonly label: _angular_core.InputSignal<string | undefined>;
425
571
  readonly placeholder: _angular_core.InputSignal<string>;
426
572
  readonly size: _angular_core.InputSignal<DatePickerSize>;
427
573
  readonly disabled: _angular_core.InputSignal<boolean>;
574
+ readonly readonly: _angular_core.InputSignal<boolean>;
428
575
  readonly required: _angular_core.InputSignal<boolean>;
429
576
  readonly hint: _angular_core.InputSignal<string | undefined>;
430
577
  readonly errorMsg: _angular_core.InputSignal<string | undefined>;
@@ -435,6 +582,7 @@ declare class DatePickerComponent implements ControlValueAccessor {
435
582
  readonly locale: _angular_core.InputSignal<string | undefined>;
436
583
  readonly id: _angular_core.InputSignal<string>;
437
584
  readonly value: _angular_core.ModelSignal<Date | null>;
585
+ /** Fires when the selected date changes, including when cleared. */
438
586
  readonly changed: _angular_core.OutputEmitterRef<Date | null>;
439
587
  readonly isOpen: _angular_core.WritableSignal<boolean>;
440
588
  readonly viewYear: _angular_core.WritableSignal<number>;
@@ -444,11 +592,12 @@ declare class DatePickerComponent implements ControlValueAccessor {
444
592
  private onChange;
445
593
  private onTouched;
446
594
  readonly isDisabled: _angular_core.Signal<boolean>;
447
- readonly resolvedStatus: _angular_core.Signal<"default" | "error">;
595
+ readonly hasError: _angular_core.Signal<boolean>;
448
596
  readonly showError: _angular_core.Signal<boolean>;
449
597
  readonly showHint: _angular_core.Signal<boolean>;
450
598
  readonly triggerClasses: _angular_core.Signal<{
451
599
  [x: string]: boolean;
600
+ 'ea-date-picker__trigger--error': boolean;
452
601
  'ea-date-picker__trigger--open': boolean;
453
602
  'ea-date-picker__trigger--disabled': boolean;
454
603
  }>;
@@ -460,10 +609,17 @@ declare class DatePickerComponent implements ControlValueAccessor {
460
609
  registerOnChange(fn: (value: Date | null) => void): void;
461
610
  registerOnTouched(fn: () => void): void;
462
611
  setDisabledState(isDisabled: boolean): void;
612
+ /** Toggles the calendar popover between open and closed. */
463
613
  toggle(): void;
614
+ /** Opens the calendar popover and moves focus to the focused day cell. */
464
615
  open(): void;
616
+ /** Closes the calendar popover. */
465
617
  close(): void;
618
+ private focusFocusedDayCell;
619
+ /** Moves keyboard focus to the trigger button. */
620
+ focus(): void;
466
621
  selectDay(day: CalendarDay): void;
622
+ /** Clears the selected date and emits `changed` with `null`. */
467
623
  clear(event: Event): void;
468
624
  goToPrevMonth(): void;
469
625
  goToNextMonth(): void;
@@ -480,10 +636,17 @@ declare class DatePickerComponent implements ControlValueAccessor {
480
636
  private addDays;
481
637
  private addMonths;
482
638
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatePickerComponent, never>;
483
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatePickerComponent, "ea-date-picker", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "error"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "weekStartsOn": { "alias": "weekStartsOn"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "changed": "changed"; }, never, never, true, never>;
639
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatePickerComponent, "ea-date-picker", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "weekStartsOn": { "alias": "weekStartsOn"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "changed": "changed"; }, never, never, true, never>;
484
640
  }
485
641
 
642
+ /** Width preset of the dialog panel. */
486
643
  type DialogSize = 'sm' | 'md' | 'lg' | 'full';
644
+ /**
645
+ * Modal dialog backed by the native `<dialog>` element. Uses `showModal()`
646
+ * for browser-managed focus trapping, supports backdrop and Escape dismissal,
647
+ * and exposes `header`, default, and `footer` content slots. The `open` state
648
+ * is a two-way `model()` binding.
649
+ */
487
650
  declare class DialogComponent {
488
651
  private readonly dialogEl;
489
652
  private previouslyFocused;
@@ -492,8 +655,11 @@ declare class DialogComponent {
492
655
  readonly closeOnEscape: _angular_core.InputSignal<boolean>;
493
656
  readonly showClose: _angular_core.InputSignal<boolean>;
494
657
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
658
+ readonly id: _angular_core.InputSignal<string>;
495
659
  readonly open: _angular_core.ModelSignal<boolean>;
660
+ /** Fires once the dialog has been shown via `showModal()`. */
496
661
  readonly opened: _angular_core.OutputEmitterRef<void>;
662
+ /** Fires when the dialog closes (via close button, backdrop, or Escape). */
497
663
  readonly closed: _angular_core.OutputEmitterRef<void>;
498
664
  readonly panelClasses: _angular_core.Signal<{
499
665
  [x: string]: boolean;
@@ -503,10 +669,15 @@ declare class DialogComponent {
503
669
  handleBackdropClick(event: MouseEvent): void;
504
670
  handleCancel(event: Event): void;
505
671
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DialogComponent, never>;
506
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DialogComponent, "ea-dialog", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "showClose": { "alias": "showClose"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "opened": "opened"; "closed": "closed"; }, never, ["[slot=header]", "*", "[slot=footer]"], true, never>;
672
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DialogComponent, "ea-dialog", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "showClose": { "alias": "showClose"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "opened": "opened"; "closed": "closed"; }, never, ["[slot=header]", "*", "[slot=footer]"], true, never>;
507
673
  }
508
674
 
675
+ /** Orientation of the divider rule. */
509
676
  type DividerOrientation = 'horizontal' | 'vertical';
677
+ /**
678
+ * Thin separator used to visually divide content. Renders horizontally by
679
+ * default and may include an optional centred label (e.g. "or").
680
+ */
510
681
  declare class DividerComponent {
511
682
  readonly orientation: _angular_core.InputSignal<DividerOrientation>;
512
683
  readonly label: _angular_core.InputSignal<string | undefined>;
@@ -518,8 +689,16 @@ declare class DividerComponent {
518
689
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DividerComponent, "ea-divider", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
519
690
  }
520
691
 
692
+ /** Edge of the viewport from which the drawer slides in. */
521
693
  type DrawerPosition = 'left' | 'right' | 'top' | 'bottom';
694
+ /** Size of the drawer panel along its primary axis. */
522
695
  type DrawerSize = 'sm' | 'md' | 'lg' | 'full';
696
+ /**
697
+ * Side panel backed by the native `<dialog>` element for browser-managed
698
+ * focus trapping. Slides in from a configurable edge, supports backdrop and
699
+ * Escape dismissal, and exposes `header`, default, and `footer` content
700
+ * slots. The `open` state is a two-way `model()` binding.
701
+ */
523
702
  declare class DrawerComponent {
524
703
  private readonly drawerEl;
525
704
  private previouslyFocused;
@@ -529,8 +708,11 @@ declare class DrawerComponent {
529
708
  readonly closeOnEscape: _angular_core.InputSignal<boolean>;
530
709
  readonly showClose: _angular_core.InputSignal<boolean>;
531
710
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
711
+ readonly id: _angular_core.InputSignal<string>;
532
712
  readonly open: _angular_core.ModelSignal<boolean>;
713
+ /** Fires once the drawer has been shown via `showModal()`. */
533
714
  readonly opened: _angular_core.OutputEmitterRef<void>;
715
+ /** Fires when the drawer closes (via close button, backdrop, or Escape). */
534
716
  readonly closed: _angular_core.OutputEmitterRef<void>;
535
717
  readonly panelClasses: _angular_core.Signal<{
536
718
  [x: string]: boolean;
@@ -540,29 +722,33 @@ declare class DrawerComponent {
540
722
  handleBackdropClick(event: MouseEvent): void;
541
723
  handleCancel(event: Event): void;
542
724
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DrawerComponent, never>;
543
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DrawerComponent, "ea-drawer", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "showClose": { "alias": "showClose"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "opened": "opened"; "closed": "closed"; }, never, ["[slot=header]", "*", "[slot=footer]"], true, never>;
725
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DrawerComponent, "ea-drawer", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "showClose": { "alias": "showClose"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "opened": "opened"; "closed": "closed"; }, never, ["[slot=header]", "*", "[slot=footer]"], true, never>;
544
726
  }
545
727
 
728
+ /** Visual size of the dropdown trigger. */
546
729
  type DropdownSize = 'sm' | 'md' | 'lg';
547
- interface DropdownOption {
548
- value: string;
549
- label: string;
550
- disabled?: boolean;
551
- }
730
+ /**
731
+ * Single-select dropdown with a custom popup list. Supports keyboard
732
+ * navigation (arrow keys, Enter/Space to select, Escape to close), closes
733
+ * on outside click or viewport scroll/resize, and integrates with Angular
734
+ * forms via `ControlValueAccessor`.
735
+ */
552
736
  declare class DropdownComponent implements ControlValueAccessor {
553
737
  private readonly elRef;
554
738
  private readonly menuEl;
555
739
  private readonly destroyRef;
556
740
  readonly label: _angular_core.InputSignal<string | undefined>;
557
741
  readonly placeholder: _angular_core.InputSignal<string>;
558
- readonly options: _angular_core.InputSignal<DropdownOption[]>;
742
+ readonly options: _angular_core.InputSignal<SelectOption[]>;
559
743
  readonly size: _angular_core.InputSignal<DropdownSize>;
560
744
  readonly disabled: _angular_core.InputSignal<boolean>;
745
+ readonly readonly: _angular_core.InputSignal<boolean>;
561
746
  readonly required: _angular_core.InputSignal<boolean>;
562
747
  readonly hint: _angular_core.InputSignal<string | undefined>;
563
748
  readonly errorMsg: _angular_core.InputSignal<string | undefined>;
564
749
  readonly id: _angular_core.InputSignal<string>;
565
750
  readonly value: _angular_core.ModelSignal<string>;
751
+ /** Fires with the new value when the user selects an option. */
566
752
  readonly changed: _angular_core.OutputEmitterRef<string>;
567
753
  readonly isOpen: _angular_core.WritableSignal<boolean>;
568
754
  readonly focusedIndex: _angular_core.WritableSignal<number>;
@@ -570,12 +756,13 @@ declare class DropdownComponent implements ControlValueAccessor {
570
756
  private onChange;
571
757
  private onTouched;
572
758
  readonly isDisabled: _angular_core.Signal<boolean>;
573
- readonly resolvedStatus: _angular_core.Signal<"default" | "error">;
759
+ readonly hasError: _angular_core.Signal<boolean>;
574
760
  readonly showError: _angular_core.Signal<boolean>;
575
761
  readonly showHint: _angular_core.Signal<boolean>;
576
762
  readonly selectedLabel: _angular_core.Signal<string>;
577
763
  readonly triggerClasses: _angular_core.Signal<{
578
764
  [x: string]: boolean;
765
+ 'ea-dropdown__trigger--error': boolean;
579
766
  'ea-dropdown__trigger--open': boolean;
580
767
  'ea-dropdown__trigger--disabled': boolean;
581
768
  }>;
@@ -584,18 +771,30 @@ declare class DropdownComponent implements ControlValueAccessor {
584
771
  registerOnChange(fn: (value: string) => void): void;
585
772
  registerOnTouched(fn: () => void): void;
586
773
  setDisabledState(isDisabled: boolean): void;
774
+ /** Toggles the dropdown list between open and closed. */
587
775
  toggle(): void;
588
- select(option: DropdownOption): void;
776
+ /** Programmatically selects the given option, closing the list. */
777
+ select(option: SelectOption): void;
778
+ /** Closes the dropdown list without changing the current value. */
589
779
  close(): void;
780
+ /** Moves keyboard focus to the dropdown trigger. */
781
+ focus(): void;
590
782
  handleKeydown(event: KeyboardEvent): void;
591
783
  private moveFocus;
592
784
  onDocumentClick(event: Event): void;
593
785
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownComponent, never>;
594
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownComponent, "ea-dropdown", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "error"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "changed": "changed"; }, never, never, true, never>;
786
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownComponent, "ea-dropdown", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "changed": "changed"; }, never, never, true, never>;
595
787
  }
596
788
 
789
+ /** Variant of the wordmark — 1: "eagami", 2: "handcrafted by eagami", 3: "eagami design system", 4: with tagline. */
597
790
  type EagamiWordmarkVariant = 1 | 2 | 3 | 4;
791
+ /** Layout of the wordmark — `stacked` for multi-line, `inline` for a single line with em-dash separators. */
598
792
  type EagamiWordmarkLayout = 'stacked' | 'inline';
793
+ /**
794
+ * Branded eagami wordmark logo. Scales continuously from a single `size`
795
+ * pixel value and supports four content variants paired with stacked or
796
+ * inline layouts.
797
+ */
599
798
  declare class EagamiWordmarkComponent {
600
799
  readonly variant: _angular_core.InputSignal<EagamiWordmarkVariant>;
601
800
  readonly layout: _angular_core.InputSignal<EagamiWordmarkLayout>;
@@ -608,16 +807,25 @@ declare class EagamiWordmarkComponent {
608
807
  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>;
609
808
  }
610
809
 
810
+ /** Visual size of the empty-state block. */
611
811
  type EmptyStateSize = 'sm' | 'md' | 'lg';
812
+ /** Heading level used for the title so it fits the surrounding document outline. */
813
+ type EmptyStateHeadingLevel = 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
814
+ /**
815
+ * Pattern for "no results" or "nothing here yet" screens. Combines an
816
+ * optional title and description with `[slot=media]` (icon or illustration)
817
+ * and `[slot=actions]` (follow-up buttons) content slots.
818
+ */
612
819
  declare class EmptyStateComponent {
613
820
  readonly title: _angular_core.InputSignal<string | undefined>;
614
821
  readonly description: _angular_core.InputSignal<string | undefined>;
615
822
  readonly size: _angular_core.InputSignal<EmptyStateSize>;
823
+ readonly headingLevel: _angular_core.InputSignal<EmptyStateHeadingLevel>;
616
824
  readonly hostClasses: _angular_core.Signal<{
617
825
  [x: string]: boolean;
618
826
  }>;
619
827
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<EmptyStateComponent, never>;
620
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<EmptyStateComponent, "ea-empty-state", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["[slot=media]", "[slot=actions]"], true, never>;
828
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<EmptyStateComponent, "ea-empty-state", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "headingLevel": { "alias": "headingLevel"; "required": false; "isSignal": true; }; }, {}, never, ["[slot=media]", "[slot=actions]"], true, never>;
621
829
  }
622
830
 
623
831
  declare class AlertCircleIconComponent {
@@ -880,16 +1088,22 @@ declare class XIconComponent {
880
1088
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<XIconComponent, "ea-icon-x", never, {}, {}, never, never, true, never>;
881
1089
  }
882
1090
 
1091
+ /** Visual size of the input. */
883
1092
  type InputSize = 'sm' | 'md' | 'lg';
884
- type InputStatus = 'default' | 'error' | 'success';
1093
+ /** HTML `type` attribute applied to the underlying `<input>`. */
885
1094
  type InputType = 'text' | 'email' | 'password' | 'number' | 'search' | 'tel' | 'url';
1095
+ /**
1096
+ * Single-line text field with label, hint, and error message support.
1097
+ * Includes a built-in show/hide toggle for `password` inputs and integrates
1098
+ * with Angular forms via `ControlValueAccessor`. Prefix and suffix content
1099
+ * can be projected via the `prefix` and `suffix` slots.
1100
+ */
886
1101
  declare class InputComponent implements ControlValueAccessor, AfterViewInit {
887
1102
  readonly inputEl: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
888
1103
  readonly label: _angular_core.InputSignal<string | undefined>;
889
1104
  readonly type: _angular_core.InputSignal<InputType>;
890
1105
  readonly placeholder: _angular_core.InputSignal<string>;
891
1106
  readonly size: _angular_core.InputSignal<InputSize>;
892
- readonly status: _angular_core.InputSignal<InputStatus>;
893
1107
  readonly hint: _angular_core.InputSignal<string | undefined>;
894
1108
  readonly errorMsg: _angular_core.InputSignal<string | undefined>;
895
1109
  readonly disabled: _angular_core.InputSignal<boolean>;
@@ -900,20 +1114,23 @@ declare class InputComponent implements ControlValueAccessor, AfterViewInit {
900
1114
  readonly showPasswordToggle: _angular_core.InputSignal<boolean>;
901
1115
  readonly id: _angular_core.InputSignal<string>;
902
1116
  readonly value: _angular_core.ModelSignal<string>;
903
- readonly focused: _angular_core.WritableSignal<boolean>;
1117
+ readonly isFocused: _angular_core.WritableSignal<boolean>;
904
1118
  readonly passwordVisible: _angular_core.WritableSignal<boolean>;
905
1119
  private readonly _formDisabled;
906
- readonly inputFocused: _angular_core.OutputEmitterRef<FocusEvent>;
907
- readonly inputBlurred: _angular_core.OutputEmitterRef<FocusEvent>;
1120
+ /** Fires when the input receives focus. */
1121
+ readonly focused: _angular_core.OutputEmitterRef<FocusEvent>;
1122
+ /** Fires when the input loses focus. */
1123
+ readonly blurred: _angular_core.OutputEmitterRef<FocusEvent>;
908
1124
  private onChange;
909
1125
  private onTouched;
910
1126
  readonly isDisabled: _angular_core.Signal<boolean>;
911
1127
  readonly effectiveType: _angular_core.Signal<InputType>;
912
- readonly resolvedStatus: _angular_core.Signal<InputStatus>;
1128
+ readonly hasError: _angular_core.Signal<boolean>;
913
1129
  readonly showError: _angular_core.Signal<boolean>;
914
1130
  readonly showHint: _angular_core.Signal<boolean>;
915
1131
  readonly wrapperClasses: _angular_core.Signal<{
916
1132
  [x: string]: boolean;
1133
+ 'ea-input-wrapper--error': boolean;
917
1134
  'ea-input-wrapper--focused': boolean;
918
1135
  'ea-input-wrapper--disabled': boolean;
919
1136
  'ea-input-wrapper--readonly': boolean;
@@ -926,50 +1143,83 @@ declare class InputComponent implements ControlValueAccessor, AfterViewInit {
926
1143
  handleInput(event: Event): void;
927
1144
  handleFocus(event: FocusEvent): void;
928
1145
  handleBlur(event: FocusEvent): void;
1146
+ /** Toggles the password reveal state for `type="password"` inputs. */
929
1147
  togglePasswordVisibility(): void;
1148
+ /** Moves keyboard focus to the underlying native input element. */
930
1149
  focus(): void;
931
1150
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputComponent, never>;
932
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputComponent, "ea-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "autofocus": { "alias": "autofocus"; "required": false; "isSignal": true; }; "showPasswordToggle": { "alias": "showPasswordToggle"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "inputFocused": "inputFocused"; "inputBlurred": "inputBlurred"; }, never, ["[slot=prefix]", "[slot=suffix]"], true, never>;
1151
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputComponent, "ea-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "autofocus": { "alias": "autofocus"; "required": false; "isSignal": true; }; "showPasswordToggle": { "alias": "showPasswordToggle"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "focused": "focused"; "blurred": "blurred"; }, never, ["[slot=prefix]", "[slot=suffix]"], true, never>;
933
1152
  }
934
1153
 
1154
+ /** Placement of the menu list relative to its trigger. */
935
1155
  type MenuPlacement = 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';
1156
+ /**
1157
+ * Popup action menu attached to any focusable element via the
1158
+ * `[eaMenuTrigger]` directive. Supports keyboard navigation
1159
+ * (arrow keys, Home/End), closes on outside click or Escape, and restores
1160
+ * focus to the trigger on close.
1161
+ */
936
1162
  declare class MenuComponent {
937
- private readonly elRef;
1163
+ private readonly injector;
938
1164
  private readonly listEl;
939
1165
  readonly placement: _angular_core.InputSignal<MenuPlacement>;
940
1166
  readonly disabled: _angular_core.InputSignal<boolean>;
941
1167
  readonly ariaLabel: _angular_core.InputSignal<string>;
1168
+ readonly id: _angular_core.InputSignal<string>;
942
1169
  readonly open: _angular_core.ModelSignal<boolean>;
1170
+ /** Fires when the menu opens. */
943
1171
  readonly opened: _angular_core.OutputEmitterRef<void>;
1172
+ /** Fires when the menu closes. */
944
1173
  readonly closed: _angular_core.OutputEmitterRef<void>;
945
- readonly menuId: _angular_core.WritableSignal<string>;
946
1174
  private triggerEl;
947
1175
  private readonly triggerRect;
948
1176
  readonly listClasses: _angular_core.Signal<{
949
1177
  [x: string]: boolean;
950
1178
  }>;
951
1179
  readonly listStyle: _angular_core.Signal<Record<string, string>>;
1180
+ /** Toggles the menu open state, anchoring it to the given trigger element. */
952
1181
  toggleAt(triggerEl: HTMLElement): void;
1182
+ /** Opens the menu anchored to the given trigger element and focuses the first item. */
953
1183
  openAt(triggerEl: HTMLElement): void;
954
- close(): void;
1184
+ /**
1185
+ * Closes the menu if it is open. Pass `restoreFocus: true` to return focus
1186
+ * to the trigger element (used when closing via Escape or item activation;
1187
+ * not used on outside click, where the user has chosen a new focus target).
1188
+ */
1189
+ close(restoreFocus?: boolean): void;
1190
+ private getEnabledItems;
1191
+ private focusFirstItem;
1192
+ onKeydown(event: KeyboardEvent): void;
955
1193
  onDocumentClick(event: Event): void;
956
1194
  onEscape(): void;
957
1195
  onViewportChange(): void;
958
1196
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuComponent, never>;
959
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuComponent, "ea-menu", never, { "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "opened": "opened"; "closed": "closed"; }, never, ["*"], true, never>;
1197
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuComponent, "ea-menu", never, { "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "opened": "opened"; "closed": "closed"; }, never, ["*"], true, never>;
960
1198
  }
961
1199
 
1200
+ /** Visual style of a menu item — `danger` for destructive actions. */
962
1201
  type MenuItemVariant = 'default' | 'danger';
1202
+ /**
1203
+ * Selectable row inside an `ea-menu`. Supports leading icons via the `icon`
1204
+ * content slot, a disabled state, and a `danger` variant for destructive
1205
+ * actions. Activating an item closes its parent menu.
1206
+ */
963
1207
  declare class MenuItemComponent {
964
1208
  private readonly menu;
965
1209
  readonly disabled: _angular_core.InputSignal<boolean>;
966
1210
  readonly variant: _angular_core.InputSignal<MenuItemVariant>;
967
- readonly itemClicked: _angular_core.OutputEmitterRef<MouseEvent>;
1211
+ /** Fires when the item is activated; the parent menu closes immediately afterwards. */
1212
+ readonly clicked: _angular_core.OutputEmitterRef<MouseEvent>;
968
1213
  handleClick(event: MouseEvent): void;
969
1214
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuItemComponent, never>;
970
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuItemComponent, "ea-menu-item", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, { "itemClicked": "itemClicked"; }, never, ["[slot=icon]", "*"], true, never>;
1215
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuItemComponent, "ea-menu-item", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, ["[slot=icon]", "*"], true, never>;
971
1216
  }
972
1217
 
1218
+ /**
1219
+ * Wires a focusable host element (typically a button) to an `ea-menu`,
1220
+ * handling click and keyboard activation (ArrowDown/Enter/Space to open,
1221
+ * Escape to close) and applying the appropriate ARIA attributes.
1222
+ */
973
1223
  declare class MenuTriggerDirective {
974
1224
  private readonly el;
975
1225
  readonly menu: _angular_core.InputSignal<MenuComponent>;
@@ -979,20 +1229,29 @@ declare class MenuTriggerDirective {
979
1229
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuTriggerDirective, "[eaMenuTrigger]", never, { "menu": { "alias": "eaMenuTrigger"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
980
1230
  }
981
1231
 
982
- type PaginatorPlacement = 'left' | 'center' | 'right';
1232
+ /** Horizontal alignment of paginator controls within their container. */
1233
+ type PaginatorAlign = 'left' | 'center' | 'right';
1234
+ /** Snapshot of the paginator's page and page size. */
983
1235
  interface PaginatorState {
984
1236
  page: number;
985
1237
  pageSize: number;
986
1238
  }
1239
+ /**
1240
+ * Page navigation control with previous/next buttons, numbered page jumps,
1241
+ * an optional page-size selector, and a range label. Exposes `page` and
1242
+ * `pageSize` as two-way `model()` bindings and emits a single `changed`
1243
+ * event whenever either changes.
1244
+ */
987
1245
  declare class PaginatorComponent {
988
1246
  readonly totalItems: _angular_core.InputSignal<number>;
989
1247
  readonly pageSizeOptions: _angular_core.InputSignal<number[]>;
990
1248
  readonly showPageSizeSelector: _angular_core.InputSignal<boolean>;
991
1249
  readonly showRangeLabel: _angular_core.InputSignal<boolean>;
992
- readonly placement: _angular_core.InputSignal<PaginatorPlacement>;
1250
+ readonly align: _angular_core.InputSignal<PaginatorAlign>;
993
1251
  readonly disabled: _angular_core.InputSignal<boolean>;
994
1252
  readonly page: _angular_core.ModelSignal<number>;
995
1253
  readonly pageSize: _angular_core.ModelSignal<number>;
1254
+ /** Fires when the user changes either the current page or the page size. */
996
1255
  readonly changed: _angular_core.OutputEmitterRef<PaginatorState>;
997
1256
  readonly totalPages: _angular_core.Signal<number>;
998
1257
  readonly rangeStart: _angular_core.Signal<number>;
@@ -1000,22 +1259,32 @@ declare class PaginatorComponent {
1000
1259
  readonly canGoPrev: _angular_core.Signal<boolean>;
1001
1260
  readonly canGoNext: _angular_core.Signal<boolean>;
1002
1261
  readonly visiblePages: _angular_core.Signal<(number | "ellipsis")[]>;
1262
+ /** Navigates to the given page, clamped into the valid range. */
1003
1263
  goToPage(page: number): void;
1264
+ /** Navigates to the previous page if one exists. */
1004
1265
  prevPage(): void;
1266
+ /** Navigates to the next page if one exists. */
1005
1267
  nextPage(): void;
1006
1268
  onPageSizeChange(event: Event): void;
1007
1269
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PaginatorComponent, never>;
1008
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PaginatorComponent, "ea-paginator", never, { "totalItems": { "alias": "totalItems"; "required": true; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "showPageSizeSelector": { "alias": "showPageSizeSelector"; "required": false; "isSignal": true; }; "showRangeLabel": { "alias": "showRangeLabel"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; }, { "page": "pageChange"; "pageSize": "pageSizeChange"; "changed": "changed"; }, never, never, true, never>;
1270
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PaginatorComponent, "ea-paginator", never, { "totalItems": { "alias": "totalItems"; "required": true; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "showPageSizeSelector": { "alias": "showPageSizeSelector"; "required": false; "isSignal": true; }; "showRangeLabel": { "alias": "showRangeLabel"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; }, { "page": "pageChange"; "pageSize": "pageSizeChange"; "changed": "changed"; }, never, never, true, never>;
1009
1271
  }
1010
1272
 
1273
+ /** Semantic colour scheme of the progress bar. */
1011
1274
  type ProgressBarVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
1275
+ /** Visual height of the progress bar. */
1012
1276
  type ProgressBarSize = 'sm' | 'md' | 'lg';
1277
+ /**
1278
+ * Linear progress indicator supporting both determinate (driven by `value`
1279
+ * and `max`) and indeterminate modes. Optionally renders an inline label
1280
+ * and/or the current percentage.
1281
+ */
1013
1282
  declare class ProgressBarComponent {
1014
1283
  readonly value: _angular_core.InputSignal<number>;
1015
1284
  readonly max: _angular_core.InputSignal<number>;
1016
1285
  readonly variant: _angular_core.InputSignal<ProgressBarVariant>;
1017
1286
  readonly size: _angular_core.InputSignal<ProgressBarSize>;
1018
- readonly label: _angular_core.InputSignal<string>;
1287
+ readonly label: _angular_core.InputSignal<string | undefined>;
1019
1288
  readonly showValue: _angular_core.InputSignal<boolean>;
1020
1289
  readonly indeterminate: _angular_core.InputSignal<boolean>;
1021
1290
  readonly percentage: _angular_core.Signal<number>;
@@ -1028,29 +1297,51 @@ declare class ProgressBarComponent {
1028
1297
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProgressBarComponent, "ea-progress-bar", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1029
1298
  }
1030
1299
 
1300
+ /** Visual size shared by all radios in the group. */
1031
1301
  type RadioSize = 'sm' | 'md' | 'lg';
1302
+ /** Layout direction for radios within the group. */
1032
1303
  type RadioOrientation = 'vertical' | 'horizontal';
1304
+ /**
1305
+ * Composite single-select control made up of `ea-radio` children. Manages
1306
+ * shared state (name, size, disabled) for its options and integrates with
1307
+ * Angular forms via `ControlValueAccessor`.
1308
+ */
1033
1309
  declare class RadioGroupComponent implements ControlValueAccessor {
1310
+ readonly id: _angular_core.InputSignal<string>;
1034
1311
  readonly name: _angular_core.InputSignal<string>;
1035
1312
  readonly size: _angular_core.InputSignal<RadioSize>;
1036
1313
  readonly orientation: _angular_core.InputSignal<RadioOrientation>;
1037
1314
  readonly disabled: _angular_core.InputSignal<boolean>;
1315
+ readonly required: _angular_core.InputSignal<boolean>;
1316
+ readonly label: _angular_core.InputSignal<string | undefined>;
1317
+ readonly hint: _angular_core.InputSignal<string | undefined>;
1318
+ readonly errorMsg: _angular_core.InputSignal<string | undefined>;
1038
1319
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
1039
1320
  readonly value: _angular_core.ModelSignal<string>;
1321
+ /** Fires with the new value when an option is selected. */
1040
1322
  readonly changed: _angular_core.OutputEmitterRef<string>;
1041
1323
  private readonly _formDisabled;
1042
1324
  readonly isDisabled: _angular_core.Signal<boolean>;
1325
+ readonly hasError: _angular_core.Signal<boolean>;
1326
+ readonly showError: _angular_core.Signal<boolean>;
1327
+ readonly showHint: _angular_core.Signal<boolean>;
1043
1328
  private onChange;
1044
1329
  private onTouched;
1045
1330
  writeValue(val: string): void;
1046
1331
  registerOnChange(fn: (value: string) => void): void;
1047
1332
  registerOnTouched(fn: () => void): void;
1048
1333
  setDisabledState(isDisabled: boolean): void;
1334
+ /** Programmatically selects the option with the given value. */
1049
1335
  select(val: string): void;
1050
1336
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioGroupComponent, never>;
1051
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioGroupComponent, "ea-radio-group", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "changed": "changed"; }, never, ["*"], true, never>;
1337
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioGroupComponent, "ea-radio-group", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "changed": "changed"; }, never, ["*"], true, never>;
1052
1338
  }
1053
1339
 
1340
+ /**
1341
+ * Single radio option used inside an `ea-radio-group`. Inherits its size and
1342
+ * disabled state from the parent group and selecting it updates the group's
1343
+ * value.
1344
+ */
1054
1345
  declare class RadioComponent {
1055
1346
  private readonly group;
1056
1347
  readonly value: _angular_core.InputSignal<string>;
@@ -1071,45 +1362,63 @@ declare class RadioComponent {
1071
1362
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioComponent, "ea-radio", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1072
1363
  }
1073
1364
 
1365
+ /** Visual size of the segmented control. */
1074
1366
  type SegmentedSize = 'sm' | 'md' | 'lg';
1075
- interface SegmentedOption {
1076
- value: string;
1077
- label: string;
1078
- disabled?: boolean;
1079
- }
1367
+ /**
1368
+ * Compact toggle button group for picking one of a small set of options
1369
+ * (e.g. List/Grid/Kanban or Light/Dark). Implements `radiogroup` semantics
1370
+ * and `ControlValueAccessor`, with full keyboard support
1371
+ * (arrow keys, Home/End, Enter/Space).
1372
+ */
1080
1373
  declare class SegmentedComponent implements ControlValueAccessor {
1081
1374
  readonly buttonEls: _angular_core.Signal<readonly ElementRef<HTMLButtonElement>[]>;
1082
- readonly options: _angular_core.InputSignal<SegmentedOption[]>;
1375
+ readonly options: _angular_core.InputSignal<SelectOption[]>;
1376
+ readonly label: _angular_core.InputSignal<string | undefined>;
1377
+ readonly hint: _angular_core.InputSignal<string | undefined>;
1378
+ readonly errorMsg: _angular_core.InputSignal<string | undefined>;
1083
1379
  readonly size: _angular_core.InputSignal<SegmentedSize>;
1084
1380
  readonly disabled: _angular_core.InputSignal<boolean>;
1381
+ readonly required: _angular_core.InputSignal<boolean>;
1085
1382
  readonly fullWidth: _angular_core.InputSignal<boolean>;
1086
1383
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
1087
1384
  readonly id: _angular_core.InputSignal<string>;
1088
1385
  readonly value: _angular_core.ModelSignal<string>;
1386
+ /** Fires with the new value when the user selects a different option. */
1089
1387
  readonly changed: _angular_core.OutputEmitterRef<string>;
1090
1388
  private readonly _formDisabled;
1091
1389
  private onChange;
1092
1390
  private onTouched;
1093
1391
  readonly isDisabled: _angular_core.Signal<boolean>;
1094
- readonly enabledOptions: _angular_core.Signal<SegmentedOption[]>;
1392
+ readonly hasError: _angular_core.Signal<boolean>;
1393
+ readonly showError: _angular_core.Signal<boolean>;
1394
+ readonly showHint: _angular_core.Signal<boolean>;
1395
+ readonly enabledOptions: _angular_core.Signal<SelectOption[]>;
1095
1396
  readonly hostClasses: _angular_core.Signal<{
1096
1397
  [x: string]: boolean;
1097
1398
  'ea-segmented--full-width': boolean;
1098
1399
  'ea-segmented--disabled': boolean;
1400
+ 'ea-segmented--error': boolean;
1099
1401
  }>;
1100
1402
  writeValue(val: string): void;
1101
1403
  registerOnChange(fn: (value: string) => void): void;
1102
1404
  registerOnTouched(fn: () => void): void;
1103
1405
  setDisabledState(isDisabled: boolean): void;
1104
- isSelected(option: SegmentedOption): boolean;
1105
- isOptionDisabled(option: SegmentedOption): boolean;
1106
- select(option: SegmentedOption): void;
1406
+ isSelected(option: SelectOption): boolean;
1407
+ isOptionDisabled(option: SelectOption): boolean;
1408
+ /** Programmatically selects the given option. */
1409
+ select(option: SelectOption): void;
1107
1410
  handleKeydown(event: KeyboardEvent, index: number): void;
1108
1411
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SegmentedComponent, never>;
1109
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SegmentedComponent, "ea-segmented", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "changed": "changed"; }, never, never, true, never>;
1412
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SegmentedComponent, "ea-segmented", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "changed": "changed"; }, never, never, true, never>;
1110
1413
  }
1111
1414
 
1415
+ /** Shape preset of a skeleton placeholder. */
1112
1416
  type SkeletonVariant = 'text' | 'circle' | 'rect';
1417
+ /**
1418
+ * Loading placeholder rendered as a pulsing block in one of three shapes.
1419
+ * Honours `prefers-reduced-motion` by suppressing the pulse animation when
1420
+ * the user has expressed that preference.
1421
+ */
1113
1422
  declare class SkeletonComponent {
1114
1423
  readonly variant: _angular_core.InputSignal<SkeletonVariant>;
1115
1424
  readonly width: _angular_core.InputSignal<string | undefined>;
@@ -1124,7 +1433,14 @@ declare class SkeletonComponent {
1124
1433
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonComponent, "ea-skeleton", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "animated": { "alias": "animated"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1125
1434
  }
1126
1435
 
1436
+ /** Visual size of the slider track and thumb. */
1127
1437
  type SliderSize = 'sm' | 'md' | 'lg';
1438
+ /**
1439
+ * Single-value range input controlled with pointer drag or full keyboard
1440
+ * navigation (arrows, PageUp/PageDown, Home/End). Supports configurable
1441
+ * `min`, `max`, and `step`, optional value display, and integrates with
1442
+ * Angular forms via `ControlValueAccessor`.
1443
+ */
1128
1444
  declare class SliderComponent implements ControlValueAccessor {
1129
1445
  readonly trackEl: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
1130
1446
  readonly label: _angular_core.InputSignal<string | undefined>;
@@ -1142,6 +1458,7 @@ declare class SliderComponent implements ControlValueAccessor {
1142
1458
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
1143
1459
  readonly id: _angular_core.InputSignal<string>;
1144
1460
  readonly value: _angular_core.ModelSignal<number>;
1461
+ /** Fires with the new (snapped, clamped) numeric value whenever the slider moves. */
1145
1462
  readonly changed: _angular_core.OutputEmitterRef<number>;
1146
1463
  private readonly _formDisabled;
1147
1464
  readonly dragging: _angular_core.WritableSignal<boolean>;
@@ -1150,11 +1467,12 @@ declare class SliderComponent implements ControlValueAccessor {
1150
1467
  readonly isDisabled: _angular_core.Signal<boolean>;
1151
1468
  readonly clampedValue: _angular_core.Signal<number>;
1152
1469
  readonly percent: _angular_core.Signal<number>;
1153
- readonly resolvedStatus: _angular_core.Signal<"default" | "error">;
1470
+ readonly hasError: _angular_core.Signal<boolean>;
1154
1471
  readonly showError: _angular_core.Signal<boolean>;
1155
1472
  readonly showHint: _angular_core.Signal<boolean>;
1156
1473
  readonly hostClasses: _angular_core.Signal<{
1157
1474
  [x: string]: boolean;
1475
+ 'ea-slider--error': boolean;
1158
1476
  'ea-slider--disabled': boolean;
1159
1477
  'ea-slider--dragging': boolean;
1160
1478
  }>;
@@ -1170,10 +1488,15 @@ declare class SliderComponent implements ControlValueAccessor {
1170
1488
  private updateFromPointer;
1171
1489
  private commitValue;
1172
1490
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SliderComponent, never>;
1173
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SliderComponent, "ea-slider", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "error"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "showMinMaxLabels": { "alias": "showMinMaxLabels"; "required": false; "isSignal": true; }; "formatValue": { "alias": "formatValue"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "changed": "changed"; }, never, never, true, never>;
1491
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SliderComponent, "ea-slider", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "showMinMaxLabels": { "alias": "showMinMaxLabels"; "required": false; "isSignal": true; }; "formatValue": { "alias": "formatValue"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "changed": "changed"; }, never, never, true, never>;
1174
1492
  }
1175
1493
 
1494
+ /** Visual size of the spinner. */
1176
1495
  type SpinnerSize = 'sm' | 'md' | 'lg';
1496
+ /**
1497
+ * SVG loading indicator with an accessible `role="status"`. Uses the `label`
1498
+ * input as the accessible name announced to assistive technology.
1499
+ */
1177
1500
  declare class SpinnerComponent {
1178
1501
  readonly size: _angular_core.InputSignal<SpinnerSize>;
1179
1502
  readonly label: _angular_core.InputSignal<string>;
@@ -1184,23 +1507,37 @@ declare class SpinnerComponent {
1184
1507
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SpinnerComponent, "ea-spinner", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1185
1508
  }
1186
1509
 
1510
+ /** Visual size of the switch. */
1187
1511
  type SwitchSize = 'sm' | 'md' | 'lg';
1512
+ /**
1513
+ * On/off toggle styled as a sliding switch. Backed by a visually hidden
1514
+ * native checkbox and integrates with Angular forms via
1515
+ * `ControlValueAccessor`.
1516
+ */
1188
1517
  declare class SwitchComponent implements ControlValueAccessor {
1189
1518
  readonly label: _angular_core.InputSignal<string | undefined>;
1519
+ readonly hint: _angular_core.InputSignal<string | undefined>;
1520
+ readonly errorMsg: _angular_core.InputSignal<string | undefined>;
1190
1521
  readonly size: _angular_core.InputSignal<SwitchSize>;
1191
1522
  readonly disabled: _angular_core.InputSignal<boolean>;
1523
+ readonly required: _angular_core.InputSignal<boolean>;
1192
1524
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
1193
1525
  readonly id: _angular_core.InputSignal<string>;
1194
1526
  readonly checked: _angular_core.ModelSignal<boolean>;
1527
+ /** Fires with the new checked state whenever the user toggles the switch. */
1195
1528
  readonly changed: _angular_core.OutputEmitterRef<boolean>;
1196
1529
  private readonly _formDisabled;
1197
1530
  private onChange;
1198
1531
  private onTouched;
1199
1532
  readonly isDisabled: _angular_core.Signal<boolean>;
1533
+ readonly hasError: _angular_core.Signal<boolean>;
1534
+ readonly showError: _angular_core.Signal<boolean>;
1535
+ readonly showHint: _angular_core.Signal<boolean>;
1200
1536
  readonly hostClasses: _angular_core.Signal<{
1201
1537
  [x: string]: boolean;
1202
1538
  'ea-switch--checked': boolean;
1203
1539
  'ea-switch--disabled': boolean;
1540
+ 'ea-switch--error': boolean;
1204
1541
  }>;
1205
1542
  writeValue(val: boolean): void;
1206
1543
  registerOnChange(fn: (value: boolean) => void): void;
@@ -1208,9 +1545,14 @@ declare class SwitchComponent implements ControlValueAccessor {
1208
1545
  setDisabledState(isDisabled: boolean): void;
1209
1546
  handleChange(): void;
1210
1547
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SwitchComponent, never>;
1211
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SwitchComponent, "ea-switch", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "changed": "changed"; }, never, never, true, never>;
1548
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SwitchComponent, "ea-switch", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "changed": "changed"; }, never, never, true, never>;
1212
1549
  }
1213
1550
 
1551
+ /**
1552
+ * Single tab within an `ea-tabs` group. Registers itself with the parent on
1553
+ * init, exposes its `value` and `label`, and shows its projected content
1554
+ * when active.
1555
+ */
1214
1556
  declare class TabComponent implements OnInit, OnDestroy {
1215
1557
  private readonly tabs;
1216
1558
  readonly value: _angular_core.InputSignal<string>;
@@ -1224,29 +1566,50 @@ declare class TabComponent implements OnInit, OnDestroy {
1224
1566
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabComponent, "ea-tab", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1225
1567
  }
1226
1568
 
1569
+ /** Visual style of the tab bar. */
1227
1570
  type TabsVariant = 'underline' | 'filled';
1571
+ /** Visual size of the tabs. */
1228
1572
  type TabsSize = 'sm' | 'md' | 'lg';
1573
+ /**
1574
+ * Tab bar paired with content panels. Child `ea-tab` components register
1575
+ * themselves automatically and the active panel is shown based on the
1576
+ * `activeTab` two-way binding. Supports keyboard navigation
1577
+ * (arrow keys, Home/End).
1578
+ */
1229
1579
  declare class TabsComponent {
1230
1580
  readonly registeredTabs: _angular_core.WritableSignal<TabComponent[]>;
1231
1581
  readonly variant: _angular_core.InputSignal<TabsVariant>;
1232
1582
  readonly size: _angular_core.InputSignal<TabsSize>;
1233
1583
  readonly activeTab: _angular_core.ModelSignal<string>;
1234
- readonly tabChange: _angular_core.OutputEmitterRef<string>;
1584
+ /** Fires with the value of the newly active tab. */
1585
+ readonly changed: _angular_core.OutputEmitterRef<string>;
1586
+ /** Registers a child tab so it appears in the tab bar; called automatically by `ea-tab`. */
1235
1587
  registerTab(tab: TabComponent): void;
1588
+ /** Removes a previously registered child tab; called automatically by `ea-tab`. */
1236
1589
  unregisterTab(tab: TabComponent): void;
1590
+ /** Programmatically activates the tab with the given value. */
1237
1591
  selectTab(value: string): void;
1238
1592
  handleKeydown(event: KeyboardEvent): void;
1239
1593
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabsComponent, never>;
1240
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabsComponent, "ea-tabs", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "activeTab": { "alias": "activeTab"; "required": false; "isSignal": true; }; }, { "activeTab": "activeTabChange"; "tabChange": "tabChange"; }, never, ["*"], true, never>;
1594
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabsComponent, "ea-tabs", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "activeTab": { "alias": "activeTab"; "required": false; "isSignal": true; }; }, { "activeTab": "activeTabChange"; "changed": "changed"; }, never, ["*"], true, never>;
1241
1595
  }
1242
1596
 
1243
- type TagVariant = 'default' | 'primary' | 'success' | 'warning' | 'error' | 'info';
1597
+ /** Semantic colour scheme of a tag. */
1598
+ type TagVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
1599
+ /** Visual size of a tag. */
1244
1600
  type TagSize = 'sm' | 'md' | 'lg';
1601
+ /**
1602
+ * Inline label commonly used to represent filters, categories, or selected
1603
+ * items. When `removable`, renders a close button that emits `removed`; the
1604
+ * accessible name of that button is configurable via `removeLabel`.
1605
+ */
1245
1606
  declare class TagComponent {
1246
1607
  readonly variant: _angular_core.InputSignal<TagVariant>;
1247
1608
  readonly size: _angular_core.InputSignal<TagSize>;
1248
1609
  readonly removable: _angular_core.InputSignal<boolean>;
1249
1610
  readonly disabled: _angular_core.InputSignal<boolean>;
1611
+ readonly removeLabel: _angular_core.InputSignal<string>;
1612
+ /** Fires when the user activates the remove button on a `removable` tag. */
1250
1613
  readonly removed: _angular_core.OutputEmitterRef<void>;
1251
1614
  readonly hostClasses: _angular_core.Signal<{
1252
1615
  [x: string]: boolean;
@@ -1254,18 +1617,23 @@ declare class TagComponent {
1254
1617
  }>;
1255
1618
  onRemove(event: MouseEvent): void;
1256
1619
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TagComponent, never>;
1257
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TagComponent, "ea-tag", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "removed": "removed"; }, never, ["*"], true, never>;
1620
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TagComponent, "ea-tag", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "removeLabel": { "alias": "removeLabel"; "required": false; "isSignal": true; }; }, { "removed": "removed"; }, never, ["*"], true, never>;
1258
1621
  }
1259
1622
 
1623
+ /** Visual size of the textarea. */
1260
1624
  type TextareaSize = 'sm' | 'md' | 'lg';
1261
- type TextareaStatus = 'default' | 'error' | 'success';
1625
+ /** Axis along which the user is allowed to resize the textarea. */
1262
1626
  type TextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';
1627
+ /**
1628
+ * Multiline text field that mirrors the `ea-input` API. Supports configurable
1629
+ * `rows`, `resize` direction, and `maxlength`, and integrates with Angular
1630
+ * forms via `ControlValueAccessor`.
1631
+ */
1263
1632
  declare class TextareaComponent implements ControlValueAccessor {
1264
1633
  readonly textareaEl: _angular_core.Signal<ElementRef<HTMLTextAreaElement> | undefined>;
1265
1634
  readonly label: _angular_core.InputSignal<string | undefined>;
1266
1635
  readonly placeholder: _angular_core.InputSignal<string>;
1267
1636
  readonly size: _angular_core.InputSignal<TextareaSize>;
1268
- readonly status: _angular_core.InputSignal<TextareaStatus>;
1269
1637
  readonly hint: _angular_core.InputSignal<string | undefined>;
1270
1638
  readonly errorMsg: _angular_core.InputSignal<string | undefined>;
1271
1639
  readonly disabled: _angular_core.InputSignal<boolean>;
@@ -1276,18 +1644,21 @@ declare class TextareaComponent implements ControlValueAccessor {
1276
1644
  readonly maxlength: _angular_core.InputSignal<number | undefined>;
1277
1645
  readonly id: _angular_core.InputSignal<string>;
1278
1646
  readonly value: _angular_core.ModelSignal<string>;
1279
- readonly focused: _angular_core.WritableSignal<boolean>;
1647
+ readonly isFocused: _angular_core.WritableSignal<boolean>;
1280
1648
  private readonly _formDisabled;
1281
- readonly textareaFocused: _angular_core.OutputEmitterRef<FocusEvent>;
1282
- readonly textareaBlurred: _angular_core.OutputEmitterRef<FocusEvent>;
1649
+ /** Fires when the textarea receives focus. */
1650
+ readonly focused: _angular_core.OutputEmitterRef<FocusEvent>;
1651
+ /** Fires when the textarea loses focus. */
1652
+ readonly blurred: _angular_core.OutputEmitterRef<FocusEvent>;
1283
1653
  private onChange;
1284
1654
  private onTouched;
1285
1655
  readonly isDisabled: _angular_core.Signal<boolean>;
1286
- readonly resolvedStatus: _angular_core.Signal<TextareaStatus>;
1656
+ readonly hasError: _angular_core.Signal<boolean>;
1287
1657
  readonly showError: _angular_core.Signal<boolean>;
1288
1658
  readonly showHint: _angular_core.Signal<boolean>;
1289
1659
  readonly wrapperClasses: _angular_core.Signal<{
1290
1660
  [x: string]: boolean;
1661
+ 'ea-textarea-wrapper--error': boolean;
1291
1662
  'ea-textarea-wrapper--focused': boolean;
1292
1663
  'ea-textarea-wrapper--disabled': boolean;
1293
1664
  'ea-textarea-wrapper--readonly': boolean;
@@ -1299,43 +1670,72 @@ declare class TextareaComponent implements ControlValueAccessor {
1299
1670
  handleInput(event: Event): void;
1300
1671
  handleFocus(event: FocusEvent): void;
1301
1672
  handleBlur(event: FocusEvent): void;
1673
+ /** Moves keyboard focus to the underlying native textarea element. */
1302
1674
  focus(): void;
1303
1675
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextareaComponent, never>;
1304
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextareaComponent, "ea-textarea", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "textareaFocused": "textareaFocused"; "textareaBlurred": "textareaBlurred"; }, never, never, true, never>;
1676
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextareaComponent, "ea-textarea", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "focused": "focused"; "blurred": "blurred"; }, never, never, true, never>;
1305
1677
  }
1306
1678
 
1679
+ /** Semantic colour scheme of a toast. */
1307
1680
  type ToastVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
1681
+ /** A single live toast notification rendered by `ea-toast`. */
1308
1682
  interface Toast {
1309
1683
  id: number;
1310
1684
  message: string;
1311
1685
  variant: ToastVariant;
1312
1686
  duration: number;
1313
1687
  }
1688
+ /** Optional configuration for a toast — defaults to `default` variant and 4s duration. */
1314
1689
  interface ToastOptions {
1315
1690
  variant?: ToastVariant;
1316
1691
  duration?: number;
1317
1692
  }
1693
+ /**
1694
+ * Application-wide notification service. Use the convenience methods
1695
+ * (`success`, `error`, `warning`, `info`) to push a toast, or call
1696
+ * {@link show} for full control. A single `<ea-toast />` outlet must be
1697
+ * present in the app for toasts to appear.
1698
+ */
1318
1699
  declare class ToastService {
1319
1700
  private nextId;
1320
1701
  readonly toasts: _angular_core.WritableSignal<Toast[]>;
1702
+ /** Shows a toast and returns its id; pass `duration: 0` to disable auto-dismiss. */
1321
1703
  show(message: string, options?: ToastOptions): number;
1704
+ /** Shows a `success` toast and returns its id. */
1322
1705
  success(message: string, duration?: number): number;
1706
+ /** Shows an `error` toast and returns its id. */
1323
1707
  error(message: string, duration?: number): number;
1708
+ /** Shows a `warning` toast and returns its id. */
1324
1709
  warning(message: string, duration?: number): number;
1710
+ /** Shows an `info` toast and returns its id. */
1325
1711
  info(message: string, duration?: number): number;
1712
+ /** Removes the toast with the given id, if it is still active. */
1326
1713
  dismiss(id: number): void;
1714
+ /** Removes all currently visible toasts. */
1327
1715
  clear(): void;
1328
1716
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastService, never>;
1329
1717
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ToastService>;
1330
1718
  }
1331
1719
 
1720
+ /**
1721
+ * Outlet that renders the stack of active toasts produced by
1722
+ * {@link ToastService}. Place a single `<ea-toast />` once in the root
1723
+ * template so toasts created from anywhere in the app are surfaced.
1724
+ */
1332
1725
  declare class ToastComponent {
1333
1726
  protected readonly toastService: ToastService;
1727
+ protected getRole(toast: Toast): 'alert' | 'status';
1334
1728
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastComponent, never>;
1335
1729
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToastComponent, "ea-toast", never, {}, {}, never, never, true, never>;
1336
1730
  }
1337
1731
 
1732
+ /** Placement of the tooltip relative to its host element. */
1338
1733
  type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';
1734
+ /**
1735
+ * Attaches a positioned tooltip to its host element. Shows on hover and
1736
+ * focus, hides on leave/blur or Escape, and wires up `aria-describedby` so
1737
+ * the tooltip text is announced to assistive technology.
1738
+ */
1339
1739
  declare class TooltipDirective implements OnDestroy {
1340
1740
  private readonly el;
1341
1741
  private readonly renderer;
@@ -1350,10 +1750,12 @@ declare class TooltipDirective implements OnDestroy {
1350
1750
  ngOnDestroy(): void;
1351
1751
  private show;
1352
1752
  private hide;
1753
+ private appendDescribedBy;
1754
+ private removeDescribedBy;
1353
1755
  private positionTooltip;
1354
1756
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipDirective, never>;
1355
1757
  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>;
1356
1758
  }
1357
1759
 
1358
1760
  export { AccordionComponent, AccordionItemComponent, AlertCircleIconComponent, AlertComponent, AlertTriangleIconComponent, AppleIconComponent, ArrowDownIconComponent, ArrowLeftIconComponent, ArrowRightIconComponent, ArrowUpIconComponent, AutocompleteComponent, AvatarComponent, AvatarEditorComponent, BadgeComponent, BellIconComponent, BreadcrumbsComponent, ButtonComponent, CalendarIconComponent, CameraIconComponent, CardComponent, CheckCircleIconComponent, CheckIconComponent, CheckboxComponent, ChevronDownIconComponent, ChevronLeftIconComponent, ChevronRightIconComponent, ChevronUpIconComponent, ChevronsUpDownIconComponent, ClockIconComponent, CodeInputComponent, CopyIconComponent, DataTableComponent, DatePickerComponent, DialogComponent, DividerComponent, DownloadIconComponent, DrawerComponent, DropdownComponent, EagamiIconComponent, EagamiWordmarkComponent, EmptyStateComponent, ExternalLinkIconComponent, EyeIconComponent, EyeOffIconComponent, FacebookIconComponent, FileIconComponent, FilterIconComponent, GithubIconComponent, GoogleIconComponent, HeartIconComponent, ImageIconComponent, InfoIconComponent, InputComponent, LinkIconComponent, LoaderIconComponent, LogOutIconComponent, MailIconComponent, MenuComponent, MenuIconComponent, MenuItemComponent, MenuTriggerDirective, MicrosoftIconComponent, MinusIconComponent, MoreHorizontalIconComponent, PaginatorComponent, PencilIconComponent, PlusIconComponent, ProgressBarComponent, RadioComponent, RadioGroupComponent, RotateCcwIconComponent, SearchIconComponent, SegmentedComponent, SettingsIconComponent, SkeletonComponent, SliderComponent, SpinnerComponent, StarIconComponent, SwitchComponent, TabComponent, TabsComponent, TagComponent, TextareaComponent, ToastComponent, ToastService, TooltipDirective, TrashIconComponent, UploadIconComponent, UserIconComponent, XCircleIconComponent, XIconComponent, XTwitterIconComponent };
1359
- export type { AlertVariant, AutocompleteOption, AutocompleteSize, AvatarEditorCropEvent, AvatarEditorCropState, AvatarEditorShape, AvatarShape, AvatarSize, BadgeSize, BadgeVariant, BreadcrumbClickEvent, BreadcrumbItem, BreadcrumbsSeparator, ButtonSize, ButtonType, ButtonVariant, CardHeaderAlign, CardPadding, CardVariant, CheckboxSize, CodeInputSize, CodeInputStatus, DataTableColumn, DataTableDensity, DataTableSortState, DatePickerFormat, DatePickerSize, DatePickerValue, DatePickerWeekStart, DialogSize, DividerOrientation, DrawerPosition, DrawerSize, DropdownOption, DropdownSize, EagamiWordmarkLayout, EagamiWordmarkVariant, EmptyStateSize, InputSize, InputStatus, InputType, MenuItemVariant, MenuPlacement, PaginatorPlacement, PaginatorState, ProgressBarSize, ProgressBarVariant, RadioOrientation, RadioSize, SegmentedOption, SegmentedSize, SkeletonVariant, SliderSize, SortDirection, SpinnerSize, SwitchSize, TabsSize, TabsVariant, TagSize, TagVariant, TextareaResize, TextareaSize, TextareaStatus, Toast, ToastOptions, ToastVariant, TooltipPosition };
1761
+ 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 };