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