@eagami/ui 0.11.1 → 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,43 +17,70 @@ 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>;
18
28
  readonly label: _angular_core.InputSignal<string>;
19
29
  readonly disabled: _angular_core.InputSignal<boolean>;
30
+ readonly id: _angular_core.InputSignal<string>;
20
31
  readonly isExpanded: _angular_core.Signal<boolean>;
21
32
  toggle(): void;
22
33
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AccordionItemComponent, never>;
23
- 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; }; }, {}, never, ["*"], true, never>;
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>;
24
35
  }
25
36
 
37
+ /** Semantic colour scheme of an alert. Drives icon and palette. */
26
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
+ */
27
44
  declare class AlertComponent {
28
45
  readonly variant: _angular_core.InputSignal<AlertVariant>;
29
46
  readonly dismissible: _angular_core.InputSignal<boolean>;
30
47
  readonly visible: _angular_core.ModelSignal<boolean>;
48
+ /** Fires when the user dismisses the alert via its close button. */
31
49
  readonly dismissed: _angular_core.OutputEmitterRef<void>;
32
50
  readonly alertClasses: _angular_core.Signal<{
33
51
  [x: string]: boolean;
34
52
  }>;
53
+ readonly role: _angular_core.Signal<"alert" | "status">;
54
+ /** Hides the alert and emits `dismissed`. */
35
55
  dismiss(): void;
36
56
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AlertComponent, never>;
37
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>;
38
58
  }
39
59
 
40
- type AutocompleteSize = 'sm' | 'md' | 'lg';
41
- interface AutocompleteOption {
60
+ /**
61
+ * Common option shape used by single-select form controls
62
+ * (autocomplete, dropdown, segmented).
63
+ */
64
+ interface SelectOption {
42
65
  value: string;
43
66
  label: string;
44
67
  disabled?: boolean;
45
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
+ */
46
78
  declare class AutocompleteComponent implements ControlValueAccessor {
47
79
  private readonly inputEl;
48
80
  private readonly hostEl;
49
81
  readonly label: _angular_core.InputSignal<string | undefined>;
50
82
  readonly placeholder: _angular_core.InputSignal<string>;
51
- readonly options: _angular_core.InputSignal<AutocompleteOption[]>;
83
+ readonly options: _angular_core.InputSignal<SelectOption[]>;
52
84
  readonly size: _angular_core.InputSignal<AutocompleteSize>;
53
85
  readonly disabled: _angular_core.InputSignal<boolean>;
54
86
  readonly readonly: _angular_core.InputSignal<boolean>;
@@ -60,24 +92,31 @@ declare class AutocompleteComponent implements ControlValueAccessor {
60
92
  readonly emptyMessage: _angular_core.InputSignal<string>;
61
93
  readonly id: _angular_core.InputSignal<string>;
62
94
  readonly value: _angular_core.ModelSignal<string>;
63
- readonly optionSelected: _angular_core.OutputEmitterRef<AutocompleteOption>;
64
- 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>;
65
103
  readonly isOpen: _angular_core.WritableSignal<boolean>;
66
- readonly focused: _angular_core.WritableSignal<boolean>;
104
+ readonly isFocused: _angular_core.WritableSignal<boolean>;
67
105
  readonly focusedIndex: _angular_core.WritableSignal<number>;
68
106
  private readonly _formDisabled;
69
107
  private justSelected;
70
108
  private onChange;
71
109
  private onTouched;
72
110
  readonly isDisabled: _angular_core.Signal<boolean>;
73
- readonly resolvedStatus: _angular_core.Signal<"default" | "error">;
111
+ readonly hasError: _angular_core.Signal<boolean>;
74
112
  readonly showError: _angular_core.Signal<boolean>;
75
113
  readonly showHint: _angular_core.Signal<boolean>;
76
- readonly filteredOptions: _angular_core.Signal<AutocompleteOption[]>;
114
+ readonly filteredOptions: _angular_core.Signal<SelectOption[]>;
77
115
  readonly showList: _angular_core.Signal<boolean>;
78
116
  readonly showEmpty: _angular_core.Signal<boolean>;
79
117
  readonly wrapperClasses: _angular_core.Signal<{
80
118
  [x: string]: boolean;
119
+ 'ea-autocomplete__wrapper--error': boolean;
81
120
  'ea-autocomplete__wrapper--focused': boolean;
82
121
  'ea-autocomplete__wrapper--disabled': boolean;
83
122
  }>;
@@ -86,27 +125,39 @@ declare class AutocompleteComponent implements ControlValueAccessor {
86
125
  registerOnTouched(fn: () => void): void;
87
126
  setDisabledState(isDisabled: boolean): void;
88
127
  handleInput(event: Event): void;
89
- handleFocus(): void;
90
- handleBlur(): void;
128
+ handleFocus(event: FocusEvent): void;
129
+ handleBlur(event: FocusEvent): void;
91
130
  handleKeydown(event: KeyboardEvent): void;
92
- 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. */
93
134
  close(): void;
135
+ /** Moves keyboard focus to the underlying text input. */
136
+ focus(): void;
94
137
  private moveFocus;
95
138
  onDocumentClick(event: Event): void;
96
139
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AutocompleteComponent, never>;
97
- 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>;
98
141
  }
99
142
 
143
+ /** Crop mask shape applied to the exported image. */
100
144
  type AvatarEditorShape = 'circle' | 'square';
145
+ /** Result of a successful crop, providing both a `Blob` and a data URL. */
101
146
  interface AvatarEditorCropEvent {
102
147
  blob: Blob;
103
148
  dataUrl: string;
104
149
  }
150
+ /** Persisted pan/zoom state, suitable for restoring an in-progress edit. */
105
151
  interface AvatarEditorCropState {
106
152
  zoom: number;
107
153
  offsetX: number;
108
154
  offsetY: number;
109
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
+ */
110
161
  declare class AvatarEditorComponent implements OnDestroy {
111
162
  readonly canvasEl: _angular_core.Signal<ElementRef<HTMLCanvasElement> | undefined>;
112
163
  readonly fileInputEl: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
@@ -121,11 +172,16 @@ declare class AvatarEditorComponent implements OnDestroy {
121
172
  readonly exportQuality: _angular_core.InputSignal<number>;
122
173
  readonly exportType: _angular_core.InputSignal<string>;
123
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. */
124
176
  readonly cropped: _angular_core.OutputEmitterRef<AvatarEditorCropEvent>;
177
+ /** Fires when a file is chosen from disk or dropped onto the editor. */
125
178
  readonly fileSelected: _angular_core.OutputEmitterRef<File>;
179
+ /** Fires when the current image is cleared via the remove control. */
126
180
  readonly removed: _angular_core.OutputEmitterRef<void>;
127
- readonly fileError: _angular_core.OutputEmitterRef<string>;
128
- 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>;
129
185
  readonly hasImage: _angular_core.WritableSignal<boolean>;
130
186
  readonly isDragOver: _angular_core.WritableSignal<boolean>;
131
187
  readonly isAtOriginal: _angular_core.WritableSignal<boolean>;
@@ -159,6 +215,7 @@ declare class AvatarEditorComponent implements OnDestroy {
159
215
  onDragLeave(event: DragEvent): void;
160
216
  onDrop(event: DragEvent): void;
161
217
  onFileSelected(event: Event): void;
218
+ /** Opens the native file picker dialog. */
162
219
  openFilePicker(): void;
163
220
  onMouseDown(event: MouseEvent): void;
164
221
  onTouchStart(event: TouchEvent): void;
@@ -171,11 +228,17 @@ declare class AvatarEditorComponent implements OnDestroy {
171
228
  private onTouchMove;
172
229
  private onTouchEnd;
173
230
  private onWheel;
231
+ onCanvasKeydown(event: KeyboardEvent): void;
232
+ /** Sets the zoom level, clamped to the configured `minZoom`/`maxZoom` range. */
174
233
  setZoom(value: number): void;
175
234
  onZoomInput(event: Event): void;
235
+ /** Clears the loaded image and resets pan/zoom to defaults. */
176
236
  removeImage(): void;
237
+ /** Marks the current image and crop state as the baseline for {@link revertImage}. */
177
238
  captureOriginal(): void;
239
+ /** Restores the image and crop state captured by the most recent {@link captureOriginal}. */
178
240
  revertImage(): void;
241
+ /** Renders the current crop to an offscreen canvas, emits `cropped`, and resolves with the resulting `Blob`. */
179
242
  exportCrop(): Promise<Blob>;
180
243
  private loadFromUrl;
181
244
  private loadFile;
@@ -188,11 +251,18 @@ declare class AvatarEditorComponent implements OnDestroy {
188
251
  private emitCropStateChange;
189
252
  private clearCanvas;
190
253
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AvatarEditorComponent, never>;
191
- 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>;
192
255
  }
193
256
 
257
+ /** Diameter (or side length) preset for an avatar. */
194
258
  type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
259
+ /** Outline of the avatar — round or rounded-square. */
195
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
+ */
196
266
  declare class AvatarComponent {
197
267
  readonly src: _angular_core.InputSignal<string | undefined>;
198
268
  readonly alt: _angular_core.InputSignal<string>;
@@ -210,8 +280,14 @@ declare class AvatarComponent {
210
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>;
211
281
  }
212
282
 
283
+ /** Semantic colour scheme of a badge. */
213
284
  type BadgeVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
285
+ /** Visual size of a badge. */
214
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
+ */
215
291
  declare class BadgeComponent {
216
292
  readonly variant: _angular_core.InputSignal<BadgeVariant>;
217
293
  readonly size: _angular_core.InputSignal<BadgeSize>;
@@ -222,31 +298,48 @@ declare class BadgeComponent {
222
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>;
223
299
  }
224
300
 
301
+ /** Visual style of the separator rendered between breadcrumb items. */
225
302
  type BreadcrumbsSeparator = 'chevron' | 'slash';
303
+ /** Single entry in a breadcrumb trail. */
226
304
  interface BreadcrumbItem {
227
305
  label: string;
228
306
  href?: string;
229
307
  disabled?: boolean;
230
308
  }
309
+ /** Payload emitted when a breadcrumb is activated. */
231
310
  interface BreadcrumbClickEvent {
232
311
  item: BreadcrumbItem;
233
312
  index: number;
234
313
  event: MouseEvent;
235
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
+ */
236
320
  declare class BreadcrumbsComponent {
237
321
  readonly items: _angular_core.InputSignal<BreadcrumbItem[]>;
238
322
  readonly separator: _angular_core.InputSignal<BreadcrumbsSeparator>;
239
323
  readonly ariaLabel: _angular_core.InputSignal<string>;
240
- readonly itemClicked: _angular_core.OutputEmitterRef<BreadcrumbClickEvent>;
324
+ /** Fires when a non-disabled, non-final breadcrumb is activated. */
325
+ readonly clicked: _angular_core.OutputEmitterRef<BreadcrumbClickEvent>;
241
326
  isLast(index: number): boolean;
242
327
  handleClick(item: BreadcrumbItem, index: number, event: MouseEvent): void;
243
328
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbsComponent, never>;
244
- 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>;
245
330
  }
246
331
 
332
+ /** Visual style of a button — drives colour and emphasis. */
247
333
  type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger';
334
+ /** Visual size of a button. */
248
335
  type ButtonSize = 'sm' | 'md' | 'lg';
336
+ /** HTML `type` attribute applied to the underlying `<button>` element. */
249
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
+ */
250
343
  declare class ButtonComponent {
251
344
  readonly variant: _angular_core.InputSignal<ButtonVariant>;
252
345
  readonly size: _angular_core.InputSignal<ButtonSize>;
@@ -256,6 +349,7 @@ declare class ButtonComponent {
256
349
  readonly fullWidth: _angular_core.InputSignal<boolean>;
257
350
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
258
351
  readonly ariaCurrent: _angular_core.InputSignal<string | undefined>;
352
+ /** Fires when the button is activated; suppressed while disabled or loading. */
259
353
  readonly clicked: _angular_core.OutputEmitterRef<MouseEvent>;
260
354
  readonly isDisabled: _angular_core.Signal<boolean>;
261
355
  readonly hostClasses: _angular_core.Signal<{
@@ -269,9 +363,18 @@ declare class ButtonComponent {
269
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>;
270
364
  }
271
365
 
366
+ /** Visual style of a card surface. */
272
367
  type CardVariant = 'elevated' | 'outlined' | 'filled';
368
+ /** Padding preset applied to the card's content area. */
273
369
  type CardPadding = 'none' | 'sm' | 'md' | 'lg' | 'xl';
370
+ /** Horizontal alignment of card header content. */
274
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
+ */
275
378
  declare class CardComponent {
276
379
  readonly variant: _angular_core.InputSignal<CardVariant>;
277
380
  readonly padding: _angular_core.InputSignal<CardPadding>;
@@ -283,26 +386,40 @@ declare class CardComponent {
283
386
  'ea-card--full-width': boolean;
284
387
  }>;
285
388
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardComponent, never>;
286
- 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>;
287
390
  }
288
391
 
392
+ /** Visual size of a checkbox. */
289
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
+ */
290
399
  declare class CheckboxComponent implements ControlValueAccessor {
291
400
  readonly label: _angular_core.InputSignal<string | undefined>;
401
+ readonly hint: _angular_core.InputSignal<string | undefined>;
402
+ readonly errorMsg: _angular_core.InputSignal<string | undefined>;
292
403
  readonly size: _angular_core.InputSignal<CheckboxSize>;
293
404
  readonly disabled: _angular_core.InputSignal<boolean>;
294
405
  readonly required: _angular_core.InputSignal<boolean>;
295
406
  readonly indeterminate: _angular_core.InputSignal<boolean>;
407
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
296
408
  readonly id: _angular_core.InputSignal<string>;
297
409
  readonly checked: _angular_core.ModelSignal<boolean>;
410
+ /** Fires with the new checked state whenever the user toggles the checkbox. */
298
411
  readonly changed: _angular_core.OutputEmitterRef<boolean>;
299
412
  private readonly _formDisabled;
300
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>;
301
417
  readonly hostClasses: _angular_core.Signal<{
302
418
  [x: string]: boolean;
303
419
  'ea-checkbox--disabled': boolean;
304
420
  'ea-checkbox--checked': boolean;
305
421
  'ea-checkbox--indeterminate': boolean;
422
+ 'ea-checkbox--error': boolean;
306
423
  }>;
307
424
  private onChange;
308
425
  private onTouched;
@@ -312,11 +429,14 @@ declare class CheckboxComponent implements ControlValueAccessor {
312
429
  setDisabledState(isDisabled: boolean): void;
313
430
  handleChange(): void;
314
431
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckboxComponent, never>;
315
- 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>;
316
433
  }
317
434
 
435
+ /** Vertical density preset for table rows and header cells. */
318
436
  type DataTableDensity = 'compact' | 'comfortable' | 'spacious';
319
- 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. */
320
440
  interface DataTableColumn<T = Record<string, unknown>> {
321
441
  key: string;
322
442
  label: string;
@@ -332,10 +452,17 @@ interface DataTableColumn<T = Record<string, unknown>> {
332
452
  $implicit: DataTableColumn<T>;
333
453
  }>;
334
454
  }
455
+ /** Current sort state — which column is sorted and in which direction. */
335
456
  interface DataTableSortState {
336
457
  column: string;
337
- direction: SortDirection;
338
- }
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
+ */
339
466
  declare class DataTableComponent<T = Record<string, unknown>> {
340
467
  readonly columns: _angular_core.InputSignal<DataTableColumn<T>[]>;
341
468
  readonly data: _angular_core.InputSignal<T[]>;
@@ -347,7 +474,8 @@ declare class DataTableComponent<T = Record<string, unknown>> {
347
474
  readonly bordered: _angular_core.InputSignal<boolean>;
348
475
  readonly noDataText: _angular_core.InputSignal<string>;
349
476
  readonly sort: _angular_core.ModelSignal<DataTableSortState>;
350
- 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>;
351
479
  readonly noDataTemplate: _angular_core.Signal<TemplateRef<unknown> | undefined>;
352
480
  readonly hostClasses: _angular_core.Signal<{
353
481
  [x: string]: boolean;
@@ -361,30 +489,37 @@ declare class DataTableComponent<T = Record<string, unknown>> {
361
489
  onHeaderClick(col: DataTableColumn<T>): void;
362
490
  trackByFn(_index: number, item: T): unknown;
363
491
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataTableComponent<any>, never>;
364
- 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>;
365
493
  }
366
494
 
495
+ /** Visual size of each digit cell. */
367
496
  type CodeInputSize = 'sm' | 'md' | 'lg';
368
- 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
+ */
369
502
  declare class CodeInputComponent implements ControlValueAccessor {
370
503
  readonly digitEls: _angular_core.Signal<readonly ElementRef<HTMLInputElement>[]>;
371
504
  readonly label: _angular_core.InputSignal<string | undefined>;
505
+ readonly placeholder: _angular_core.InputSignal<string>;
372
506
  readonly length: _angular_core.InputSignal<number>;
373
507
  readonly size: _angular_core.InputSignal<CodeInputSize>;
374
- readonly status: _angular_core.InputSignal<CodeInputStatus>;
375
508
  readonly hint: _angular_core.InputSignal<string | undefined>;
376
509
  readonly errorMsg: _angular_core.InputSignal<string | undefined>;
377
510
  readonly disabled: _angular_core.InputSignal<boolean>;
511
+ readonly readonly: _angular_core.InputSignal<boolean>;
378
512
  readonly required: _angular_core.InputSignal<boolean>;
379
513
  readonly id: _angular_core.InputSignal<string>;
380
514
  readonly value: _angular_core.ModelSignal<string>;
381
515
  readonly focusedIndex: _angular_core.WritableSignal<number>;
382
516
  private readonly _formDisabled;
517
+ /** Fires with the full code once every digit has been entered. */
383
518
  readonly completed: _angular_core.OutputEmitterRef<string>;
384
519
  private onChange;
385
520
  private onTouched;
386
521
  readonly isDisabled: _angular_core.Signal<boolean>;
387
- readonly resolvedStatus: _angular_core.Signal<CodeInputStatus>;
522
+ readonly hasError: _angular_core.Signal<boolean>;
388
523
  readonly showError: _angular_core.Signal<boolean>;
389
524
  readonly showHint: _angular_core.Signal<boolean>;
390
525
  readonly digits: _angular_core.Signal<string[]>;
@@ -398,15 +533,20 @@ declare class CodeInputComponent implements ControlValueAccessor {
398
533
  handlePaste(event: ClipboardEvent): void;
399
534
  handleFocus(index: number): void;
400
535
  handleBlur(): void;
536
+ /** Moves keyboard focus to the next empty digit (or the last one when full). */
401
537
  focus(): void;
402
538
  private focusDigit;
403
539
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CodeInputComponent, never>;
404
- 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>;
405
541
  }
406
542
 
543
+ /** Visual size of the date picker trigger. */
407
544
  type DatePickerSize = 'sm' | 'md' | 'lg';
545
+ /** Locale-aware date format used for the displayed value. */
408
546
  type DatePickerFormat = 'short' | 'medium' | 'long';
547
+ /** First day of the week in the calendar grid (0 = Sunday, 1 = Monday). */
409
548
  type DatePickerWeekStart = 0 | 1;
549
+ /** Value accepted via `writeValue` — a `Date`, ISO/parseable string, or `null`. */
410
550
  type DatePickerValue = Date | string | null;
411
551
  interface CalendarDay {
412
552
  date: Date;
@@ -417,13 +557,21 @@ interface CalendarDay {
417
557
  isDisabled: boolean;
418
558
  isFocused: boolean;
419
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
+ */
420
566
  declare class DatePickerComponent implements ControlValueAccessor {
421
567
  private readonly hostEl;
422
568
  private readonly triggerEl;
569
+ private readonly injector;
423
570
  readonly label: _angular_core.InputSignal<string | undefined>;
424
571
  readonly placeholder: _angular_core.InputSignal<string>;
425
572
  readonly size: _angular_core.InputSignal<DatePickerSize>;
426
573
  readonly disabled: _angular_core.InputSignal<boolean>;
574
+ readonly readonly: _angular_core.InputSignal<boolean>;
427
575
  readonly required: _angular_core.InputSignal<boolean>;
428
576
  readonly hint: _angular_core.InputSignal<string | undefined>;
429
577
  readonly errorMsg: _angular_core.InputSignal<string | undefined>;
@@ -434,6 +582,7 @@ declare class DatePickerComponent implements ControlValueAccessor {
434
582
  readonly locale: _angular_core.InputSignal<string | undefined>;
435
583
  readonly id: _angular_core.InputSignal<string>;
436
584
  readonly value: _angular_core.ModelSignal<Date | null>;
585
+ /** Fires when the selected date changes, including when cleared. */
437
586
  readonly changed: _angular_core.OutputEmitterRef<Date | null>;
438
587
  readonly isOpen: _angular_core.WritableSignal<boolean>;
439
588
  readonly viewYear: _angular_core.WritableSignal<number>;
@@ -443,11 +592,12 @@ declare class DatePickerComponent implements ControlValueAccessor {
443
592
  private onChange;
444
593
  private onTouched;
445
594
  readonly isDisabled: _angular_core.Signal<boolean>;
446
- readonly resolvedStatus: _angular_core.Signal<"default" | "error">;
595
+ readonly hasError: _angular_core.Signal<boolean>;
447
596
  readonly showError: _angular_core.Signal<boolean>;
448
597
  readonly showHint: _angular_core.Signal<boolean>;
449
598
  readonly triggerClasses: _angular_core.Signal<{
450
599
  [x: string]: boolean;
600
+ 'ea-date-picker__trigger--error': boolean;
451
601
  'ea-date-picker__trigger--open': boolean;
452
602
  'ea-date-picker__trigger--disabled': boolean;
453
603
  }>;
@@ -459,10 +609,17 @@ declare class DatePickerComponent implements ControlValueAccessor {
459
609
  registerOnChange(fn: (value: Date | null) => void): void;
460
610
  registerOnTouched(fn: () => void): void;
461
611
  setDisabledState(isDisabled: boolean): void;
612
+ /** Toggles the calendar popover between open and closed. */
462
613
  toggle(): void;
614
+ /** Opens the calendar popover and moves focus to the focused day cell. */
463
615
  open(): void;
616
+ /** Closes the calendar popover. */
464
617
  close(): void;
618
+ private focusFocusedDayCell;
619
+ /** Moves keyboard focus to the trigger button. */
620
+ focus(): void;
465
621
  selectDay(day: CalendarDay): void;
622
+ /** Clears the selected date and emits `changed` with `null`. */
466
623
  clear(event: Event): void;
467
624
  goToPrevMonth(): void;
468
625
  goToNextMonth(): void;
@@ -479,19 +636,30 @@ declare class DatePickerComponent implements ControlValueAccessor {
479
636
  private addDays;
480
637
  private addMonths;
481
638
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatePickerComponent, never>;
482
- 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>;
483
640
  }
484
641
 
642
+ /** Width preset of the dialog panel. */
485
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
+ */
486
650
  declare class DialogComponent {
487
651
  private readonly dialogEl;
652
+ private previouslyFocused;
488
653
  readonly size: _angular_core.InputSignal<DialogSize>;
489
654
  readonly closeOnBackdrop: _angular_core.InputSignal<boolean>;
490
655
  readonly closeOnEscape: _angular_core.InputSignal<boolean>;
491
656
  readonly showClose: _angular_core.InputSignal<boolean>;
492
657
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
658
+ readonly id: _angular_core.InputSignal<string>;
493
659
  readonly open: _angular_core.ModelSignal<boolean>;
660
+ /** Fires once the dialog has been shown via `showModal()`. */
494
661
  readonly opened: _angular_core.OutputEmitterRef<void>;
662
+ /** Fires when the dialog closes (via close button, backdrop, or Escape). */
495
663
  readonly closed: _angular_core.OutputEmitterRef<void>;
496
664
  readonly panelClasses: _angular_core.Signal<{
497
665
  [x: string]: boolean;
@@ -501,10 +669,15 @@ declare class DialogComponent {
501
669
  handleBackdropClick(event: MouseEvent): void;
502
670
  handleCancel(event: Event): void;
503
671
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DialogComponent, never>;
504
- 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>;
505
673
  }
506
674
 
675
+ /** Orientation of the divider rule. */
507
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
+ */
508
681
  declare class DividerComponent {
509
682
  readonly orientation: _angular_core.InputSignal<DividerOrientation>;
510
683
  readonly label: _angular_core.InputSignal<string | undefined>;
@@ -516,18 +689,30 @@ declare class DividerComponent {
516
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>;
517
690
  }
518
691
 
692
+ /** Edge of the viewport from which the drawer slides in. */
519
693
  type DrawerPosition = 'left' | 'right' | 'top' | 'bottom';
694
+ /** Size of the drawer panel along its primary axis. */
520
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
+ */
521
702
  declare class DrawerComponent {
522
703
  private readonly drawerEl;
704
+ private previouslyFocused;
523
705
  readonly position: _angular_core.InputSignal<DrawerPosition>;
524
706
  readonly size: _angular_core.InputSignal<DrawerSize>;
525
707
  readonly closeOnBackdrop: _angular_core.InputSignal<boolean>;
526
708
  readonly closeOnEscape: _angular_core.InputSignal<boolean>;
527
709
  readonly showClose: _angular_core.InputSignal<boolean>;
528
710
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
711
+ readonly id: _angular_core.InputSignal<string>;
529
712
  readonly open: _angular_core.ModelSignal<boolean>;
713
+ /** Fires once the drawer has been shown via `showModal()`. */
530
714
  readonly opened: _angular_core.OutputEmitterRef<void>;
715
+ /** Fires when the drawer closes (via close button, backdrop, or Escape). */
531
716
  readonly closed: _angular_core.OutputEmitterRef<void>;
532
717
  readonly panelClasses: _angular_core.Signal<{
533
718
  [x: string]: boolean;
@@ -537,29 +722,33 @@ declare class DrawerComponent {
537
722
  handleBackdropClick(event: MouseEvent): void;
538
723
  handleCancel(event: Event): void;
539
724
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DrawerComponent, never>;
540
- 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>;
541
726
  }
542
727
 
728
+ /** Visual size of the dropdown trigger. */
543
729
  type DropdownSize = 'sm' | 'md' | 'lg';
544
- interface DropdownOption {
545
- value: string;
546
- label: string;
547
- disabled?: boolean;
548
- }
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
+ */
549
736
  declare class DropdownComponent implements ControlValueAccessor {
550
737
  private readonly elRef;
551
738
  private readonly menuEl;
552
739
  private readonly destroyRef;
553
740
  readonly label: _angular_core.InputSignal<string | undefined>;
554
741
  readonly placeholder: _angular_core.InputSignal<string>;
555
- readonly options: _angular_core.InputSignal<DropdownOption[]>;
742
+ readonly options: _angular_core.InputSignal<SelectOption[]>;
556
743
  readonly size: _angular_core.InputSignal<DropdownSize>;
557
744
  readonly disabled: _angular_core.InputSignal<boolean>;
745
+ readonly readonly: _angular_core.InputSignal<boolean>;
558
746
  readonly required: _angular_core.InputSignal<boolean>;
559
747
  readonly hint: _angular_core.InputSignal<string | undefined>;
560
748
  readonly errorMsg: _angular_core.InputSignal<string | undefined>;
561
749
  readonly id: _angular_core.InputSignal<string>;
562
750
  readonly value: _angular_core.ModelSignal<string>;
751
+ /** Fires with the new value when the user selects an option. */
563
752
  readonly changed: _angular_core.OutputEmitterRef<string>;
564
753
  readonly isOpen: _angular_core.WritableSignal<boolean>;
565
754
  readonly focusedIndex: _angular_core.WritableSignal<number>;
@@ -567,12 +756,13 @@ declare class DropdownComponent implements ControlValueAccessor {
567
756
  private onChange;
568
757
  private onTouched;
569
758
  readonly isDisabled: _angular_core.Signal<boolean>;
570
- readonly resolvedStatus: _angular_core.Signal<"default" | "error">;
759
+ readonly hasError: _angular_core.Signal<boolean>;
571
760
  readonly showError: _angular_core.Signal<boolean>;
572
761
  readonly showHint: _angular_core.Signal<boolean>;
573
762
  readonly selectedLabel: _angular_core.Signal<string>;
574
763
  readonly triggerClasses: _angular_core.Signal<{
575
764
  [x: string]: boolean;
765
+ 'ea-dropdown__trigger--error': boolean;
576
766
  'ea-dropdown__trigger--open': boolean;
577
767
  'ea-dropdown__trigger--disabled': boolean;
578
768
  }>;
@@ -581,18 +771,30 @@ declare class DropdownComponent implements ControlValueAccessor {
581
771
  registerOnChange(fn: (value: string) => void): void;
582
772
  registerOnTouched(fn: () => void): void;
583
773
  setDisabledState(isDisabled: boolean): void;
774
+ /** Toggles the dropdown list between open and closed. */
584
775
  toggle(): void;
585
- 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. */
586
779
  close(): void;
780
+ /** Moves keyboard focus to the dropdown trigger. */
781
+ focus(): void;
587
782
  handleKeydown(event: KeyboardEvent): void;
588
783
  private moveFocus;
589
784
  onDocumentClick(event: Event): void;
590
785
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownComponent, never>;
591
- 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>;
592
787
  }
593
788
 
789
+ /** Variant of the wordmark — 1: "eagami", 2: "handcrafted by eagami", 3: "eagami design system", 4: with tagline. */
594
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. */
595
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
+ */
596
798
  declare class EagamiWordmarkComponent {
597
799
  readonly variant: _angular_core.InputSignal<EagamiWordmarkVariant>;
598
800
  readonly layout: _angular_core.InputSignal<EagamiWordmarkLayout>;
@@ -605,6 +807,27 @@ declare class EagamiWordmarkComponent {
605
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>;
606
808
  }
607
809
 
810
+ /** Visual size of the empty-state block. */
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
+ */
819
+ declare class EmptyStateComponent {
820
+ readonly title: _angular_core.InputSignal<string | undefined>;
821
+ readonly description: _angular_core.InputSignal<string | undefined>;
822
+ readonly size: _angular_core.InputSignal<EmptyStateSize>;
823
+ readonly headingLevel: _angular_core.InputSignal<EmptyStateHeadingLevel>;
824
+ readonly hostClasses: _angular_core.Signal<{
825
+ [x: string]: boolean;
826
+ }>;
827
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EmptyStateComponent, 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>;
829
+ }
830
+
608
831
  declare class AlertCircleIconComponent {
609
832
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AlertCircleIconComponent, never>;
610
833
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AlertCircleIconComponent, "ea-icon-alert-circle", never, {}, {}, never, never, true, never>;
@@ -865,16 +1088,22 @@ declare class XIconComponent {
865
1088
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<XIconComponent, "ea-icon-x", never, {}, {}, never, never, true, never>;
866
1089
  }
867
1090
 
1091
+ /** Visual size of the input. */
868
1092
  type InputSize = 'sm' | 'md' | 'lg';
869
- type InputStatus = 'default' | 'error' | 'success';
1093
+ /** HTML `type` attribute applied to the underlying `<input>`. */
870
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
+ */
871
1101
  declare class InputComponent implements ControlValueAccessor, AfterViewInit {
872
1102
  readonly inputEl: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
873
1103
  readonly label: _angular_core.InputSignal<string | undefined>;
874
1104
  readonly type: _angular_core.InputSignal<InputType>;
875
1105
  readonly placeholder: _angular_core.InputSignal<string>;
876
1106
  readonly size: _angular_core.InputSignal<InputSize>;
877
- readonly status: _angular_core.InputSignal<InputStatus>;
878
1107
  readonly hint: _angular_core.InputSignal<string | undefined>;
879
1108
  readonly errorMsg: _angular_core.InputSignal<string | undefined>;
880
1109
  readonly disabled: _angular_core.InputSignal<boolean>;
@@ -885,20 +1114,23 @@ declare class InputComponent implements ControlValueAccessor, AfterViewInit {
885
1114
  readonly showPasswordToggle: _angular_core.InputSignal<boolean>;
886
1115
  readonly id: _angular_core.InputSignal<string>;
887
1116
  readonly value: _angular_core.ModelSignal<string>;
888
- readonly focused: _angular_core.WritableSignal<boolean>;
1117
+ readonly isFocused: _angular_core.WritableSignal<boolean>;
889
1118
  readonly passwordVisible: _angular_core.WritableSignal<boolean>;
890
1119
  private readonly _formDisabled;
891
- readonly inputFocused: _angular_core.OutputEmitterRef<FocusEvent>;
892
- 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>;
893
1124
  private onChange;
894
1125
  private onTouched;
895
1126
  readonly isDisabled: _angular_core.Signal<boolean>;
896
1127
  readonly effectiveType: _angular_core.Signal<InputType>;
897
- readonly resolvedStatus: _angular_core.Signal<InputStatus>;
1128
+ readonly hasError: _angular_core.Signal<boolean>;
898
1129
  readonly showError: _angular_core.Signal<boolean>;
899
1130
  readonly showHint: _angular_core.Signal<boolean>;
900
1131
  readonly wrapperClasses: _angular_core.Signal<{
901
1132
  [x: string]: boolean;
1133
+ 'ea-input-wrapper--error': boolean;
902
1134
  'ea-input-wrapper--focused': boolean;
903
1135
  'ea-input-wrapper--disabled': boolean;
904
1136
  'ea-input-wrapper--readonly': boolean;
@@ -911,59 +1143,115 @@ declare class InputComponent implements ControlValueAccessor, AfterViewInit {
911
1143
  handleInput(event: Event): void;
912
1144
  handleFocus(event: FocusEvent): void;
913
1145
  handleBlur(event: FocusEvent): void;
1146
+ /** Toggles the password reveal state for `type="password"` inputs. */
914
1147
  togglePasswordVisibility(): void;
1148
+ /** Moves keyboard focus to the underlying native input element. */
915
1149
  focus(): void;
916
1150
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputComponent, never>;
917
- 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>;
918
1152
  }
919
1153
 
1154
+ /** Placement of the menu list relative to its trigger. */
920
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
+ */
921
1162
  declare class MenuComponent {
922
- private readonly elRef;
1163
+ private readonly injector;
1164
+ private readonly listEl;
923
1165
  readonly placement: _angular_core.InputSignal<MenuPlacement>;
924
1166
  readonly disabled: _angular_core.InputSignal<boolean>;
925
1167
  readonly ariaLabel: _angular_core.InputSignal<string>;
1168
+ readonly id: _angular_core.InputSignal<string>;
926
1169
  readonly open: _angular_core.ModelSignal<boolean>;
1170
+ /** Fires when the menu opens. */
927
1171
  readonly opened: _angular_core.OutputEmitterRef<void>;
1172
+ /** Fires when the menu closes. */
928
1173
  readonly closed: _angular_core.OutputEmitterRef<void>;
929
- readonly menuId: _angular_core.WritableSignal<string>;
930
- readonly menuClasses: _angular_core.Signal<{
1174
+ private triggerEl;
1175
+ private readonly triggerRect;
1176
+ readonly listClasses: _angular_core.Signal<{
931
1177
  [x: string]: boolean;
932
1178
  }>;
933
- toggle(): void;
934
- close(): void;
935
- handleTriggerKeydown(event: KeyboardEvent): void;
1179
+ readonly listStyle: _angular_core.Signal<Record<string, string>>;
1180
+ /** Toggles the menu open state, anchoring it to the given trigger element. */
1181
+ toggleAt(triggerEl: HTMLElement): void;
1182
+ /** Opens the menu anchored to the given trigger element and focuses the first item. */
1183
+ openAt(triggerEl: HTMLElement): 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;
936
1193
  onDocumentClick(event: Event): void;
937
1194
  onEscape(): void;
1195
+ onViewportChange(): void;
938
1196
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuComponent, never>;
939
- 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, ["[slot=trigger]", "*"], 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>;
940
1198
  }
941
1199
 
1200
+ /** Visual style of a menu item — `danger` for destructive actions. */
942
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
+ */
943
1207
  declare class MenuItemComponent {
944
1208
  private readonly menu;
945
1209
  readonly disabled: _angular_core.InputSignal<boolean>;
946
1210
  readonly variant: _angular_core.InputSignal<MenuItemVariant>;
947
- 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>;
948
1213
  handleClick(event: MouseEvent): void;
949
1214
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuItemComponent, never>;
950
- 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>;
1216
+ }
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
+ */
1223
+ declare class MenuTriggerDirective {
1224
+ private readonly el;
1225
+ readonly menu: _angular_core.InputSignal<MenuComponent>;
1226
+ handleClick(): void;
1227
+ handleKeydown(event: KeyboardEvent): void;
1228
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuTriggerDirective, never>;
1229
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuTriggerDirective, "[eaMenuTrigger]", never, { "menu": { "alias": "eaMenuTrigger"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
951
1230
  }
952
1231
 
953
- 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. */
954
1235
  interface PaginatorState {
955
1236
  page: number;
956
1237
  pageSize: number;
957
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
+ */
958
1245
  declare class PaginatorComponent {
959
1246
  readonly totalItems: _angular_core.InputSignal<number>;
960
1247
  readonly pageSizeOptions: _angular_core.InputSignal<number[]>;
961
1248
  readonly showPageSizeSelector: _angular_core.InputSignal<boolean>;
962
1249
  readonly showRangeLabel: _angular_core.InputSignal<boolean>;
963
- readonly placement: _angular_core.InputSignal<PaginatorPlacement>;
1250
+ readonly align: _angular_core.InputSignal<PaginatorAlign>;
964
1251
  readonly disabled: _angular_core.InputSignal<boolean>;
965
1252
  readonly page: _angular_core.ModelSignal<number>;
966
1253
  readonly pageSize: _angular_core.ModelSignal<number>;
1254
+ /** Fires when the user changes either the current page or the page size. */
967
1255
  readonly changed: _angular_core.OutputEmitterRef<PaginatorState>;
968
1256
  readonly totalPages: _angular_core.Signal<number>;
969
1257
  readonly rangeStart: _angular_core.Signal<number>;
@@ -971,22 +1259,32 @@ declare class PaginatorComponent {
971
1259
  readonly canGoPrev: _angular_core.Signal<boolean>;
972
1260
  readonly canGoNext: _angular_core.Signal<boolean>;
973
1261
  readonly visiblePages: _angular_core.Signal<(number | "ellipsis")[]>;
1262
+ /** Navigates to the given page, clamped into the valid range. */
974
1263
  goToPage(page: number): void;
1264
+ /** Navigates to the previous page if one exists. */
975
1265
  prevPage(): void;
1266
+ /** Navigates to the next page if one exists. */
976
1267
  nextPage(): void;
977
1268
  onPageSizeChange(event: Event): void;
978
1269
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PaginatorComponent, never>;
979
- 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>;
980
1271
  }
981
1272
 
1273
+ /** Semantic colour scheme of the progress bar. */
982
1274
  type ProgressBarVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
1275
+ /** Visual height of the progress bar. */
983
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
+ */
984
1282
  declare class ProgressBarComponent {
985
1283
  readonly value: _angular_core.InputSignal<number>;
986
1284
  readonly max: _angular_core.InputSignal<number>;
987
1285
  readonly variant: _angular_core.InputSignal<ProgressBarVariant>;
988
1286
  readonly size: _angular_core.InputSignal<ProgressBarSize>;
989
- readonly label: _angular_core.InputSignal<string>;
1287
+ readonly label: _angular_core.InputSignal<string | undefined>;
990
1288
  readonly showValue: _angular_core.InputSignal<boolean>;
991
1289
  readonly indeterminate: _angular_core.InputSignal<boolean>;
992
1290
  readonly percentage: _angular_core.Signal<number>;
@@ -999,29 +1297,51 @@ declare class ProgressBarComponent {
999
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>;
1000
1298
  }
1001
1299
 
1300
+ /** Visual size shared by all radios in the group. */
1002
1301
  type RadioSize = 'sm' | 'md' | 'lg';
1302
+ /** Layout direction for radios within the group. */
1003
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
+ */
1004
1309
  declare class RadioGroupComponent implements ControlValueAccessor {
1310
+ readonly id: _angular_core.InputSignal<string>;
1005
1311
  readonly name: _angular_core.InputSignal<string>;
1006
1312
  readonly size: _angular_core.InputSignal<RadioSize>;
1007
1313
  readonly orientation: _angular_core.InputSignal<RadioOrientation>;
1008
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>;
1009
1319
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
1010
1320
  readonly value: _angular_core.ModelSignal<string>;
1321
+ /** Fires with the new value when an option is selected. */
1011
1322
  readonly changed: _angular_core.OutputEmitterRef<string>;
1012
1323
  private readonly _formDisabled;
1013
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>;
1014
1328
  private onChange;
1015
1329
  private onTouched;
1016
1330
  writeValue(val: string): void;
1017
1331
  registerOnChange(fn: (value: string) => void): void;
1018
1332
  registerOnTouched(fn: () => void): void;
1019
1333
  setDisabledState(isDisabled: boolean): void;
1334
+ /** Programmatically selects the option with the given value. */
1020
1335
  select(val: string): void;
1021
1336
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioGroupComponent, never>;
1022
- 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>;
1023
1338
  }
1024
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
+ */
1025
1345
  declare class RadioComponent {
1026
1346
  private readonly group;
1027
1347
  readonly value: _angular_core.InputSignal<string>;
@@ -1042,7 +1362,63 @@ declare class RadioComponent {
1042
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>;
1043
1363
  }
1044
1364
 
1365
+ /** Visual size of the segmented control. */
1366
+ type SegmentedSize = 'sm' | 'md' | 'lg';
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
+ */
1373
+ declare class SegmentedComponent implements ControlValueAccessor {
1374
+ readonly buttonEls: _angular_core.Signal<readonly ElementRef<HTMLButtonElement>[]>;
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>;
1379
+ readonly size: _angular_core.InputSignal<SegmentedSize>;
1380
+ readonly disabled: _angular_core.InputSignal<boolean>;
1381
+ readonly required: _angular_core.InputSignal<boolean>;
1382
+ readonly fullWidth: _angular_core.InputSignal<boolean>;
1383
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
1384
+ readonly id: _angular_core.InputSignal<string>;
1385
+ readonly value: _angular_core.ModelSignal<string>;
1386
+ /** Fires with the new value when the user selects a different option. */
1387
+ readonly changed: _angular_core.OutputEmitterRef<string>;
1388
+ private readonly _formDisabled;
1389
+ private onChange;
1390
+ private onTouched;
1391
+ readonly isDisabled: _angular_core.Signal<boolean>;
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[]>;
1396
+ readonly hostClasses: _angular_core.Signal<{
1397
+ [x: string]: boolean;
1398
+ 'ea-segmented--full-width': boolean;
1399
+ 'ea-segmented--disabled': boolean;
1400
+ 'ea-segmented--error': boolean;
1401
+ }>;
1402
+ writeValue(val: string): void;
1403
+ registerOnChange(fn: (value: string) => void): void;
1404
+ registerOnTouched(fn: () => void): void;
1405
+ setDisabledState(isDisabled: boolean): void;
1406
+ isSelected(option: SelectOption): boolean;
1407
+ isOptionDisabled(option: SelectOption): boolean;
1408
+ /** Programmatically selects the given option. */
1409
+ select(option: SelectOption): void;
1410
+ handleKeydown(event: KeyboardEvent, index: number): void;
1411
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SegmentedComponent, 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>;
1413
+ }
1414
+
1415
+ /** Shape preset of a skeleton placeholder. */
1045
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
+ */
1046
1422
  declare class SkeletonComponent {
1047
1423
  readonly variant: _angular_core.InputSignal<SkeletonVariant>;
1048
1424
  readonly width: _angular_core.InputSignal<string | undefined>;
@@ -1057,7 +1433,70 @@ declare class SkeletonComponent {
1057
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>;
1058
1434
  }
1059
1435
 
1436
+ /** Visual size of the slider track and thumb. */
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
+ */
1444
+ declare class SliderComponent implements ControlValueAccessor {
1445
+ readonly trackEl: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
1446
+ readonly label: _angular_core.InputSignal<string | undefined>;
1447
+ readonly hint: _angular_core.InputSignal<string | undefined>;
1448
+ readonly errorMsg: _angular_core.InputSignal<string | undefined>;
1449
+ readonly min: _angular_core.InputSignal<number>;
1450
+ readonly max: _angular_core.InputSignal<number>;
1451
+ readonly step: _angular_core.InputSignal<number>;
1452
+ readonly size: _angular_core.InputSignal<SliderSize>;
1453
+ readonly disabled: _angular_core.InputSignal<boolean>;
1454
+ readonly required: _angular_core.InputSignal<boolean>;
1455
+ readonly showValue: _angular_core.InputSignal<boolean>;
1456
+ readonly showMinMaxLabels: _angular_core.InputSignal<boolean>;
1457
+ readonly formatValue: _angular_core.InputSignal<(value: number) => string>;
1458
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
1459
+ readonly id: _angular_core.InputSignal<string>;
1460
+ readonly value: _angular_core.ModelSignal<number>;
1461
+ /** Fires with the new (snapped, clamped) numeric value whenever the slider moves. */
1462
+ readonly changed: _angular_core.OutputEmitterRef<number>;
1463
+ private readonly _formDisabled;
1464
+ readonly dragging: _angular_core.WritableSignal<boolean>;
1465
+ private onChange;
1466
+ private onTouched;
1467
+ readonly isDisabled: _angular_core.Signal<boolean>;
1468
+ readonly clampedValue: _angular_core.Signal<number>;
1469
+ readonly percent: _angular_core.Signal<number>;
1470
+ readonly hasError: _angular_core.Signal<boolean>;
1471
+ readonly showError: _angular_core.Signal<boolean>;
1472
+ readonly showHint: _angular_core.Signal<boolean>;
1473
+ readonly hostClasses: _angular_core.Signal<{
1474
+ [x: string]: boolean;
1475
+ 'ea-slider--error': boolean;
1476
+ 'ea-slider--disabled': boolean;
1477
+ 'ea-slider--dragging': boolean;
1478
+ }>;
1479
+ writeValue(val: number): void;
1480
+ registerOnChange(fn: (value: number) => void): void;
1481
+ registerOnTouched(fn: () => void): void;
1482
+ setDisabledState(isDisabled: boolean): void;
1483
+ handleKeydown(event: KeyboardEvent): void;
1484
+ handlePointerDown(event: PointerEvent): void;
1485
+ handlePointerMove(event: PointerEvent): void;
1486
+ handlePointerUp(event: PointerEvent): void;
1487
+ handleBlur(): void;
1488
+ private updateFromPointer;
1489
+ private commitValue;
1490
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SliderComponent, 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>;
1492
+ }
1493
+
1494
+ /** Visual size of the spinner. */
1060
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
+ */
1061
1500
  declare class SpinnerComponent {
1062
1501
  readonly size: _angular_core.InputSignal<SpinnerSize>;
1063
1502
  readonly label: _angular_core.InputSignal<string>;
@@ -1068,22 +1507,37 @@ declare class SpinnerComponent {
1068
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>;
1069
1508
  }
1070
1509
 
1510
+ /** Visual size of the switch. */
1071
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
+ */
1072
1517
  declare class SwitchComponent implements ControlValueAccessor {
1073
1518
  readonly label: _angular_core.InputSignal<string | undefined>;
1519
+ readonly hint: _angular_core.InputSignal<string | undefined>;
1520
+ readonly errorMsg: _angular_core.InputSignal<string | undefined>;
1074
1521
  readonly size: _angular_core.InputSignal<SwitchSize>;
1075
1522
  readonly disabled: _angular_core.InputSignal<boolean>;
1523
+ readonly required: _angular_core.InputSignal<boolean>;
1524
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
1076
1525
  readonly id: _angular_core.InputSignal<string>;
1077
1526
  readonly checked: _angular_core.ModelSignal<boolean>;
1527
+ /** Fires with the new checked state whenever the user toggles the switch. */
1078
1528
  readonly changed: _angular_core.OutputEmitterRef<boolean>;
1079
1529
  private readonly _formDisabled;
1080
1530
  private onChange;
1081
1531
  private onTouched;
1082
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>;
1083
1536
  readonly hostClasses: _angular_core.Signal<{
1084
1537
  [x: string]: boolean;
1085
1538
  'ea-switch--checked': boolean;
1086
1539
  'ea-switch--disabled': boolean;
1540
+ 'ea-switch--error': boolean;
1087
1541
  }>;
1088
1542
  writeValue(val: boolean): void;
1089
1543
  registerOnChange(fn: (value: boolean) => void): void;
@@ -1091,44 +1545,71 @@ declare class SwitchComponent implements ControlValueAccessor {
1091
1545
  setDisabledState(isDisabled: boolean): void;
1092
1546
  handleChange(): void;
1093
1547
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SwitchComponent, never>;
1094
- 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; }; "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>;
1095
1549
  }
1096
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
+ */
1097
1556
  declare class TabComponent implements OnInit, OnDestroy {
1098
1557
  private readonly tabs;
1099
1558
  readonly value: _angular_core.InputSignal<string>;
1100
1559
  readonly label: _angular_core.InputSignal<string>;
1101
1560
  readonly disabled: _angular_core.InputSignal<boolean>;
1561
+ readonly id: _angular_core.InputSignal<string>;
1102
1562
  readonly isActive: _angular_core.Signal<boolean>;
1103
1563
  ngOnInit(): void;
1104
1564
  ngOnDestroy(): void;
1105
1565
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabComponent, never>;
1106
- 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; }; }, {}, never, ["*"], true, never>;
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>;
1107
1567
  }
1108
1568
 
1569
+ /** Visual style of the tab bar. */
1109
1570
  type TabsVariant = 'underline' | 'filled';
1571
+ /** Visual size of the tabs. */
1110
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
+ */
1111
1579
  declare class TabsComponent {
1112
1580
  readonly registeredTabs: _angular_core.WritableSignal<TabComponent[]>;
1113
1581
  readonly variant: _angular_core.InputSignal<TabsVariant>;
1114
1582
  readonly size: _angular_core.InputSignal<TabsSize>;
1115
1583
  readonly activeTab: _angular_core.ModelSignal<string>;
1116
- 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`. */
1117
1587
  registerTab(tab: TabComponent): void;
1588
+ /** Removes a previously registered child tab; called automatically by `ea-tab`. */
1118
1589
  unregisterTab(tab: TabComponent): void;
1590
+ /** Programmatically activates the tab with the given value. */
1119
1591
  selectTab(value: string): void;
1120
1592
  handleKeydown(event: KeyboardEvent): void;
1121
1593
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabsComponent, never>;
1122
- 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>;
1123
1595
  }
1124
1596
 
1125
- 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. */
1126
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
+ */
1127
1606
  declare class TagComponent {
1128
1607
  readonly variant: _angular_core.InputSignal<TagVariant>;
1129
1608
  readonly size: _angular_core.InputSignal<TagSize>;
1130
1609
  readonly removable: _angular_core.InputSignal<boolean>;
1131
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. */
1132
1613
  readonly removed: _angular_core.OutputEmitterRef<void>;
1133
1614
  readonly hostClasses: _angular_core.Signal<{
1134
1615
  [x: string]: boolean;
@@ -1136,18 +1617,23 @@ declare class TagComponent {
1136
1617
  }>;
1137
1618
  onRemove(event: MouseEvent): void;
1138
1619
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TagComponent, never>;
1139
- 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>;
1140
1621
  }
1141
1622
 
1623
+ /** Visual size of the textarea. */
1142
1624
  type TextareaSize = 'sm' | 'md' | 'lg';
1143
- type TextareaStatus = 'default' | 'error' | 'success';
1625
+ /** Axis along which the user is allowed to resize the textarea. */
1144
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
+ */
1145
1632
  declare class TextareaComponent implements ControlValueAccessor {
1146
1633
  readonly textareaEl: _angular_core.Signal<ElementRef<HTMLTextAreaElement> | undefined>;
1147
1634
  readonly label: _angular_core.InputSignal<string | undefined>;
1148
1635
  readonly placeholder: _angular_core.InputSignal<string>;
1149
1636
  readonly size: _angular_core.InputSignal<TextareaSize>;
1150
- readonly status: _angular_core.InputSignal<TextareaStatus>;
1151
1637
  readonly hint: _angular_core.InputSignal<string | undefined>;
1152
1638
  readonly errorMsg: _angular_core.InputSignal<string | undefined>;
1153
1639
  readonly disabled: _angular_core.InputSignal<boolean>;
@@ -1158,18 +1644,21 @@ declare class TextareaComponent implements ControlValueAccessor {
1158
1644
  readonly maxlength: _angular_core.InputSignal<number | undefined>;
1159
1645
  readonly id: _angular_core.InputSignal<string>;
1160
1646
  readonly value: _angular_core.ModelSignal<string>;
1161
- readonly focused: _angular_core.WritableSignal<boolean>;
1647
+ readonly isFocused: _angular_core.WritableSignal<boolean>;
1162
1648
  private readonly _formDisabled;
1163
- readonly textareaFocused: _angular_core.OutputEmitterRef<FocusEvent>;
1164
- 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>;
1165
1653
  private onChange;
1166
1654
  private onTouched;
1167
1655
  readonly isDisabled: _angular_core.Signal<boolean>;
1168
- readonly resolvedStatus: _angular_core.Signal<TextareaStatus>;
1656
+ readonly hasError: _angular_core.Signal<boolean>;
1169
1657
  readonly showError: _angular_core.Signal<boolean>;
1170
1658
  readonly showHint: _angular_core.Signal<boolean>;
1171
1659
  readonly wrapperClasses: _angular_core.Signal<{
1172
1660
  [x: string]: boolean;
1661
+ 'ea-textarea-wrapper--error': boolean;
1173
1662
  'ea-textarea-wrapper--focused': boolean;
1174
1663
  'ea-textarea-wrapper--disabled': boolean;
1175
1664
  'ea-textarea-wrapper--readonly': boolean;
@@ -1181,59 +1670,92 @@ declare class TextareaComponent implements ControlValueAccessor {
1181
1670
  handleInput(event: Event): void;
1182
1671
  handleFocus(event: FocusEvent): void;
1183
1672
  handleBlur(event: FocusEvent): void;
1673
+ /** Moves keyboard focus to the underlying native textarea element. */
1184
1674
  focus(): void;
1185
1675
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextareaComponent, never>;
1186
- 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>;
1187
1677
  }
1188
1678
 
1679
+ /** Semantic colour scheme of a toast. */
1189
1680
  type ToastVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
1681
+ /** A single live toast notification rendered by `ea-toast`. */
1190
1682
  interface Toast {
1191
1683
  id: number;
1192
1684
  message: string;
1193
1685
  variant: ToastVariant;
1194
1686
  duration: number;
1195
1687
  }
1688
+ /** Optional configuration for a toast — defaults to `default` variant and 4s duration. */
1196
1689
  interface ToastOptions {
1197
1690
  variant?: ToastVariant;
1198
1691
  duration?: number;
1199
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
+ */
1200
1699
  declare class ToastService {
1201
1700
  private nextId;
1202
1701
  readonly toasts: _angular_core.WritableSignal<Toast[]>;
1702
+ /** Shows a toast and returns its id; pass `duration: 0` to disable auto-dismiss. */
1203
1703
  show(message: string, options?: ToastOptions): number;
1704
+ /** Shows a `success` toast and returns its id. */
1204
1705
  success(message: string, duration?: number): number;
1706
+ /** Shows an `error` toast and returns its id. */
1205
1707
  error(message: string, duration?: number): number;
1708
+ /** Shows a `warning` toast and returns its id. */
1206
1709
  warning(message: string, duration?: number): number;
1710
+ /** Shows an `info` toast and returns its id. */
1207
1711
  info(message: string, duration?: number): number;
1712
+ /** Removes the toast with the given id, if it is still active. */
1208
1713
  dismiss(id: number): void;
1714
+ /** Removes all currently visible toasts. */
1209
1715
  clear(): void;
1210
1716
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastService, never>;
1211
1717
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ToastService>;
1212
1718
  }
1213
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
+ */
1214
1725
  declare class ToastComponent {
1215
1726
  protected readonly toastService: ToastService;
1727
+ protected getRole(toast: Toast): 'alert' | 'status';
1216
1728
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastComponent, never>;
1217
1729
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToastComponent, "ea-toast", never, {}, {}, never, never, true, never>;
1218
1730
  }
1219
1731
 
1732
+ /** Placement of the tooltip relative to its host element. */
1220
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
+ */
1221
1739
  declare class TooltipDirective implements OnDestroy {
1222
1740
  private readonly el;
1223
1741
  private readonly renderer;
1224
1742
  readonly eaTooltip: _angular_core.InputSignal<string>;
1225
1743
  readonly tooltipPosition: _angular_core.InputSignal<TooltipPosition>;
1226
1744
  private tooltipEl;
1745
+ private readonly tooltipId;
1227
1746
  private readonly showHandler;
1228
1747
  private readonly hideHandler;
1748
+ private readonly keydownHandler;
1229
1749
  constructor();
1230
1750
  ngOnDestroy(): void;
1231
1751
  private show;
1232
1752
  private hide;
1753
+ private appendDescribedBy;
1754
+ private removeDescribedBy;
1233
1755
  private positionTooltip;
1234
1756
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipDirective, never>;
1235
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>;
1236
1758
  }
1237
1759
 
1238
- export { AccordionComponent, AccordionItemComponent, AlertCircleIconComponent, AlertComponent, AlertTriangleIconComponent, AppleIconComponent, ArrowDownIconComponent, ArrowLeftIconComponent, ArrowRightIconComponent, ArrowUpIconComponent, AutocompleteComponent, AvatarComponent, AvatarEditorComponent, BadgeComponent, BellIconComponent, BreadcrumbsComponent, ButtonComponent, CalendarIconComponent, CameraIconComponent, CardComponent, CheckCircleIconComponent, CheckIconComponent, CheckboxComponent, ChevronDownIconComponent, ChevronLeftIconComponent, ChevronRightIconComponent, ChevronUpIconComponent, ChevronsUpDownIconComponent, ClockIconComponent, CodeInputComponent, CopyIconComponent, DataTableComponent, DatePickerComponent, DialogComponent, DividerComponent, DownloadIconComponent, DrawerComponent, DropdownComponent, EagamiIconComponent, EagamiWordmarkComponent, ExternalLinkIconComponent, EyeIconComponent, EyeOffIconComponent, FacebookIconComponent, FileIconComponent, FilterIconComponent, GithubIconComponent, GoogleIconComponent, HeartIconComponent, ImageIconComponent, InfoIconComponent, InputComponent, LinkIconComponent, LoaderIconComponent, LogOutIconComponent, MailIconComponent, MenuComponent, MenuIconComponent, MenuItemComponent, MicrosoftIconComponent, MinusIconComponent, MoreHorizontalIconComponent, PaginatorComponent, PencilIconComponent, PlusIconComponent, ProgressBarComponent, RadioComponent, RadioGroupComponent, RotateCcwIconComponent, SearchIconComponent, SettingsIconComponent, SkeletonComponent, SpinnerComponent, StarIconComponent, SwitchComponent, TabComponent, TabsComponent, TagComponent, TextareaComponent, ToastComponent, ToastService, TooltipDirective, TrashIconComponent, UploadIconComponent, UserIconComponent, XCircleIconComponent, XIconComponent, XTwitterIconComponent };
1239
- 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, InputSize, InputStatus, InputType, MenuItemVariant, MenuPlacement, PaginatorPlacement, PaginatorState, ProgressBarSize, ProgressBarVariant, RadioOrientation, RadioSize, SkeletonVariant, SortDirection, SpinnerSize, SwitchSize, TabsSize, TabsVariant, TagSize, TagVariant, TextareaResize, TextareaSize, TextareaStatus, Toast, ToastOptions, ToastVariant, TooltipPosition };
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 };
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 };