@eagami/ui 0.12.0 → 1.0.1
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 +733 -202
- package/fesm2022/eagami-ui.mjs.map +1 -1
- package/package.json +4 -1
- package/src/styles/tokens/_colors.scss +53 -21
- package/src/styles/tokens/_elevation.scss +24 -0
- package/types/eagami-ui.d.ts +509 -90
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,17 +172,24 @@ 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>;
|
|
133
188
|
readonly isLoading: _angular_core.Signal<boolean>;
|
|
134
189
|
readonly zoom: _angular_core.WritableSignal<number>;
|
|
135
190
|
readonly canRevert: _angular_core.Signal<boolean>;
|
|
191
|
+
/** True when the visible crop is darker than mid-grey; drives the `--on-light` class on the overlay so the "Change photo" affordance stays readable. */
|
|
192
|
+
readonly isImageDark: _angular_core.WritableSignal<boolean>;
|
|
136
193
|
private image;
|
|
137
194
|
private offsetX;
|
|
138
195
|
private offsetY;
|
|
@@ -160,6 +217,7 @@ declare class AvatarEditorComponent implements OnDestroy {
|
|
|
160
217
|
onDragLeave(event: DragEvent): void;
|
|
161
218
|
onDrop(event: DragEvent): void;
|
|
162
219
|
onFileSelected(event: Event): void;
|
|
220
|
+
/** Opens the native file picker dialog. */
|
|
163
221
|
openFilePicker(): void;
|
|
164
222
|
onMouseDown(event: MouseEvent): void;
|
|
165
223
|
onTouchStart(event: TouchEvent): void;
|
|
@@ -172,11 +230,17 @@ declare class AvatarEditorComponent implements OnDestroy {
|
|
|
172
230
|
private onTouchMove;
|
|
173
231
|
private onTouchEnd;
|
|
174
232
|
private onWheel;
|
|
233
|
+
onCanvasKeydown(event: KeyboardEvent): void;
|
|
234
|
+
/** Sets the zoom level, clamped to the configured `minZoom`/`maxZoom` range. */
|
|
175
235
|
setZoom(value: number): void;
|
|
176
236
|
onZoomInput(event: Event): void;
|
|
237
|
+
/** Clears the loaded image and resets pan/zoom to defaults. */
|
|
177
238
|
removeImage(): void;
|
|
239
|
+
/** Marks the current image and crop state as the baseline for {@link revertImage}. */
|
|
178
240
|
captureOriginal(): void;
|
|
241
|
+
/** Restores the image and crop state captured by the most recent {@link captureOriginal}. */
|
|
179
242
|
revertImage(): void;
|
|
243
|
+
/** Renders the current crop to an offscreen canvas, emits `cropped`, and resolves with the resulting `Blob`. */
|
|
180
244
|
exportCrop(): Promise<Blob>;
|
|
181
245
|
private loadFromUrl;
|
|
182
246
|
private loadFile;
|
|
@@ -186,14 +250,32 @@ declare class AvatarEditorComponent implements OnDestroy {
|
|
|
186
250
|
private getDrawParams;
|
|
187
251
|
private clampOffset;
|
|
188
252
|
private draw;
|
|
253
|
+
/**
|
|
254
|
+
* Samples the visible crop region and stores whether it's darker than
|
|
255
|
+
* mid-grey, so the hover overlay can flip its label and icon between
|
|
256
|
+
* white (on dark photos) and black (on light photos).
|
|
257
|
+
*
|
|
258
|
+
* Restricts sampling to the inscribed circle for circle crops to ignore
|
|
259
|
+
* the soon-to-be-masked corners. Uses Rec. 601 perceptual luminance
|
|
260
|
+
* weights; transparent pixels and CORS-tainted canvases default to a
|
|
261
|
+
* "dark" assumption (white ink).
|
|
262
|
+
*/
|
|
263
|
+
private updateImageDarkness;
|
|
189
264
|
private emitCropStateChange;
|
|
190
265
|
private clearCanvas;
|
|
191
266
|
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"; "
|
|
267
|
+
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
268
|
}
|
|
194
269
|
|
|
270
|
+
/** Diameter (or side length) preset for an avatar. */
|
|
195
271
|
type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
272
|
+
/** Outline of the avatar — round or rounded-square. */
|
|
196
273
|
type AvatarShape = 'circle' | 'square';
|
|
274
|
+
/**
|
|
275
|
+
* Compact image used to represent a user or entity. Falls back to initials
|
|
276
|
+
* when no `src` is provided, then to a generic user icon when neither image
|
|
277
|
+
* nor initials are available.
|
|
278
|
+
*/
|
|
197
279
|
declare class AvatarComponent {
|
|
198
280
|
readonly src: _angular_core.InputSignal<string | undefined>;
|
|
199
281
|
readonly alt: _angular_core.InputSignal<string>;
|
|
@@ -211,8 +293,14 @@ declare class AvatarComponent {
|
|
|
211
293
|
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
294
|
}
|
|
213
295
|
|
|
296
|
+
/** Semantic colour scheme of a badge. */
|
|
214
297
|
type BadgeVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
|
|
298
|
+
/** Visual size of a badge. */
|
|
215
299
|
type BadgeSize = 'sm' | 'md' | 'lg';
|
|
300
|
+
/**
|
|
301
|
+
* Compact pill-shaped indicator used to communicate status, counts, or labels
|
|
302
|
+
* inline with surrounding content.
|
|
303
|
+
*/
|
|
216
304
|
declare class BadgeComponent {
|
|
217
305
|
readonly variant: _angular_core.InputSignal<BadgeVariant>;
|
|
218
306
|
readonly size: _angular_core.InputSignal<BadgeSize>;
|
|
@@ -223,31 +311,48 @@ declare class BadgeComponent {
|
|
|
223
311
|
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
312
|
}
|
|
225
313
|
|
|
314
|
+
/** Visual style of the separator rendered between breadcrumb items. */
|
|
226
315
|
type BreadcrumbsSeparator = 'chevron' | 'slash';
|
|
316
|
+
/** Single entry in a breadcrumb trail. */
|
|
227
317
|
interface BreadcrumbItem {
|
|
228
318
|
label: string;
|
|
229
319
|
href?: string;
|
|
230
320
|
disabled?: boolean;
|
|
231
321
|
}
|
|
322
|
+
/** Payload emitted when a breadcrumb is activated. */
|
|
232
323
|
interface BreadcrumbClickEvent {
|
|
233
324
|
item: BreadcrumbItem;
|
|
234
325
|
index: number;
|
|
235
326
|
event: MouseEvent;
|
|
236
327
|
}
|
|
328
|
+
/**
|
|
329
|
+
* Navigation trail that shows the user's location within a hierarchy. Items
|
|
330
|
+
* with an `href` render as links, others render as buttons; the final item is
|
|
331
|
+
* always treated as the current page and is non-interactive.
|
|
332
|
+
*/
|
|
237
333
|
declare class BreadcrumbsComponent {
|
|
238
334
|
readonly items: _angular_core.InputSignal<BreadcrumbItem[]>;
|
|
239
335
|
readonly separator: _angular_core.InputSignal<BreadcrumbsSeparator>;
|
|
240
336
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
241
|
-
|
|
337
|
+
/** Fires when a non-disabled, non-final breadcrumb is activated. */
|
|
338
|
+
readonly clicked: _angular_core.OutputEmitterRef<BreadcrumbClickEvent>;
|
|
242
339
|
isLast(index: number): boolean;
|
|
243
340
|
handleClick(item: BreadcrumbItem, index: number, event: MouseEvent): void;
|
|
244
341
|
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; }; }, { "
|
|
342
|
+
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
343
|
}
|
|
247
344
|
|
|
345
|
+
/** Visual style of a button — drives colour and emphasis. */
|
|
248
346
|
type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger';
|
|
347
|
+
/** Visual size of a button. */
|
|
249
348
|
type ButtonSize = 'sm' | 'md' | 'lg';
|
|
349
|
+
/** HTML `type` attribute applied to the underlying `<button>` element. */
|
|
250
350
|
type ButtonType = 'button' | 'submit' | 'reset';
|
|
351
|
+
/**
|
|
352
|
+
* Standard action button supporting primary, secondary, ghost, and danger
|
|
353
|
+
* variants. Includes a loading state that swaps the label for a spinner while
|
|
354
|
+
* preserving the rendered width.
|
|
355
|
+
*/
|
|
251
356
|
declare class ButtonComponent {
|
|
252
357
|
readonly variant: _angular_core.InputSignal<ButtonVariant>;
|
|
253
358
|
readonly size: _angular_core.InputSignal<ButtonSize>;
|
|
@@ -257,6 +362,7 @@ declare class ButtonComponent {
|
|
|
257
362
|
readonly fullWidth: _angular_core.InputSignal<boolean>;
|
|
258
363
|
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
259
364
|
readonly ariaCurrent: _angular_core.InputSignal<string | undefined>;
|
|
365
|
+
/** Fires when the button is activated; suppressed while disabled or loading. */
|
|
260
366
|
readonly clicked: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
261
367
|
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
262
368
|
readonly hostClasses: _angular_core.Signal<{
|
|
@@ -270,9 +376,18 @@ declare class ButtonComponent {
|
|
|
270
376
|
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
377
|
}
|
|
272
378
|
|
|
379
|
+
/** Visual style of a card surface. */
|
|
273
380
|
type CardVariant = 'elevated' | 'outlined' | 'filled';
|
|
381
|
+
/** Padding preset applied to the card's content area. */
|
|
274
382
|
type CardPadding = 'none' | 'sm' | 'md' | 'lg' | 'xl';
|
|
383
|
+
/** Horizontal alignment of card header content. */
|
|
275
384
|
type CardHeaderAlign = 'start' | 'center' | 'end';
|
|
385
|
+
/**
|
|
386
|
+
* Surface for grouping related content. Provides optional `header` and
|
|
387
|
+
* `footer` content slots and supports elevated, outlined, and filled
|
|
388
|
+
* variants. The card shadow can be customised per instance via the
|
|
389
|
+
* `--ea-card-shadow` CSS custom property.
|
|
390
|
+
*/
|
|
276
391
|
declare class CardComponent {
|
|
277
392
|
readonly variant: _angular_core.InputSignal<CardVariant>;
|
|
278
393
|
readonly padding: _angular_core.InputSignal<CardPadding>;
|
|
@@ -284,26 +399,40 @@ declare class CardComponent {
|
|
|
284
399
|
'ea-card--full-width': boolean;
|
|
285
400
|
}>;
|
|
286
401
|
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, ["[
|
|
402
|
+
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
403
|
}
|
|
289
404
|
|
|
405
|
+
/** Visual size of a checkbox. */
|
|
290
406
|
type CheckboxSize = 'sm' | 'md' | 'lg';
|
|
407
|
+
/**
|
|
408
|
+
* Boolean form control with support for an indeterminate visual state. Pairs
|
|
409
|
+
* a visually hidden native input with a custom checkmark and integrates with
|
|
410
|
+
* Angular forms via `ControlValueAccessor`.
|
|
411
|
+
*/
|
|
291
412
|
declare class CheckboxComponent implements ControlValueAccessor {
|
|
292
413
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
414
|
+
readonly hint: _angular_core.InputSignal<string | undefined>;
|
|
415
|
+
readonly errorMsg: _angular_core.InputSignal<string | undefined>;
|
|
293
416
|
readonly size: _angular_core.InputSignal<CheckboxSize>;
|
|
294
417
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
295
418
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
296
419
|
readonly indeterminate: _angular_core.InputSignal<boolean>;
|
|
420
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
297
421
|
readonly id: _angular_core.InputSignal<string>;
|
|
298
422
|
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
423
|
+
/** Fires with the new checked state whenever the user toggles the checkbox. */
|
|
299
424
|
readonly changed: _angular_core.OutputEmitterRef<boolean>;
|
|
300
425
|
private readonly _formDisabled;
|
|
301
426
|
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
427
|
+
readonly hasError: _angular_core.Signal<boolean>;
|
|
428
|
+
readonly showError: _angular_core.Signal<boolean>;
|
|
429
|
+
readonly showHint: _angular_core.Signal<boolean>;
|
|
302
430
|
readonly hostClasses: _angular_core.Signal<{
|
|
303
431
|
[x: string]: boolean;
|
|
304
432
|
'ea-checkbox--disabled': boolean;
|
|
305
433
|
'ea-checkbox--checked': boolean;
|
|
306
434
|
'ea-checkbox--indeterminate': boolean;
|
|
435
|
+
'ea-checkbox--error': boolean;
|
|
307
436
|
}>;
|
|
308
437
|
private onChange;
|
|
309
438
|
private onTouched;
|
|
@@ -313,11 +442,14 @@ declare class CheckboxComponent implements ControlValueAccessor {
|
|
|
313
442
|
setDisabledState(isDisabled: boolean): void;
|
|
314
443
|
handleChange(): void;
|
|
315
444
|
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>;
|
|
445
|
+
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
446
|
}
|
|
318
447
|
|
|
448
|
+
/** Vertical density preset for table rows and header cells. */
|
|
319
449
|
type DataTableDensity = 'compact' | 'comfortable' | 'spacious';
|
|
320
|
-
|
|
450
|
+
/** Sort direction; `null` means no sort is applied. */
|
|
451
|
+
type DataTableSortDirection = 'asc' | 'desc' | null;
|
|
452
|
+
/** Column definition for the data table, including optional cell/header templates. */
|
|
321
453
|
interface DataTableColumn<T = Record<string, unknown>> {
|
|
322
454
|
key: string;
|
|
323
455
|
label: string;
|
|
@@ -333,10 +465,17 @@ interface DataTableColumn<T = Record<string, unknown>> {
|
|
|
333
465
|
$implicit: DataTableColumn<T>;
|
|
334
466
|
}>;
|
|
335
467
|
}
|
|
468
|
+
/** Current sort state — which column is sorted and in which direction. */
|
|
336
469
|
interface DataTableSortState {
|
|
337
470
|
column: string;
|
|
338
|
-
direction:
|
|
339
|
-
}
|
|
471
|
+
direction: DataTableSortDirection;
|
|
472
|
+
}
|
|
473
|
+
/**
|
|
474
|
+
* Table for tabular data with sortable columns, sticky headers, and density
|
|
475
|
+
* presets. Supports striping, borders, hoverable rows, and custom cell or
|
|
476
|
+
* header templates via `ng-template`. Sort state is exposed as a two-way
|
|
477
|
+
* `model()` binding.
|
|
478
|
+
*/
|
|
340
479
|
declare class DataTableComponent<T = Record<string, unknown>> {
|
|
341
480
|
readonly columns: _angular_core.InputSignal<DataTableColumn<T>[]>;
|
|
342
481
|
readonly data: _angular_core.InputSignal<T[]>;
|
|
@@ -348,7 +487,8 @@ declare class DataTableComponent<T = Record<string, unknown>> {
|
|
|
348
487
|
readonly bordered: _angular_core.InputSignal<boolean>;
|
|
349
488
|
readonly noDataText: _angular_core.InputSignal<string>;
|
|
350
489
|
readonly sort: _angular_core.ModelSignal<DataTableSortState>;
|
|
351
|
-
|
|
490
|
+
/** Fires whenever the sort column or direction changes via header click. */
|
|
491
|
+
readonly sorted: _angular_core.OutputEmitterRef<DataTableSortState>;
|
|
352
492
|
readonly noDataTemplate: _angular_core.Signal<TemplateRef<unknown> | undefined>;
|
|
353
493
|
readonly hostClasses: _angular_core.Signal<{
|
|
354
494
|
[x: string]: boolean;
|
|
@@ -362,30 +502,37 @@ declare class DataTableComponent<T = Record<string, unknown>> {
|
|
|
362
502
|
onHeaderClick(col: DataTableColumn<T>): void;
|
|
363
503
|
trackByFn(_index: number, item: T): unknown;
|
|
364
504
|
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"; "
|
|
505
|
+
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
506
|
}
|
|
367
507
|
|
|
508
|
+
/** Visual size of each digit cell. */
|
|
368
509
|
type CodeInputSize = 'sm' | 'md' | 'lg';
|
|
369
|
-
|
|
510
|
+
/**
|
|
511
|
+
* Verification code entry made up of one input per digit. Auto-advances on
|
|
512
|
+
* input, supports paste of the full code at once, and integrates with Angular
|
|
513
|
+
* forms via `ControlValueAccessor`.
|
|
514
|
+
*/
|
|
370
515
|
declare class CodeInputComponent implements ControlValueAccessor {
|
|
371
516
|
readonly digitEls: _angular_core.Signal<readonly ElementRef<HTMLInputElement>[]>;
|
|
372
517
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
518
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
373
519
|
readonly length: _angular_core.InputSignal<number>;
|
|
374
520
|
readonly size: _angular_core.InputSignal<CodeInputSize>;
|
|
375
|
-
readonly status: _angular_core.InputSignal<CodeInputStatus>;
|
|
376
521
|
readonly hint: _angular_core.InputSignal<string | undefined>;
|
|
377
522
|
readonly errorMsg: _angular_core.InputSignal<string | undefined>;
|
|
378
523
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
524
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
379
525
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
380
526
|
readonly id: _angular_core.InputSignal<string>;
|
|
381
527
|
readonly value: _angular_core.ModelSignal<string>;
|
|
382
528
|
readonly focusedIndex: _angular_core.WritableSignal<number>;
|
|
383
529
|
private readonly _formDisabled;
|
|
530
|
+
/** Fires with the full code once every digit has been entered. */
|
|
384
531
|
readonly completed: _angular_core.OutputEmitterRef<string>;
|
|
385
532
|
private onChange;
|
|
386
533
|
private onTouched;
|
|
387
534
|
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
388
|
-
readonly
|
|
535
|
+
readonly hasError: _angular_core.Signal<boolean>;
|
|
389
536
|
readonly showError: _angular_core.Signal<boolean>;
|
|
390
537
|
readonly showHint: _angular_core.Signal<boolean>;
|
|
391
538
|
readonly digits: _angular_core.Signal<string[]>;
|
|
@@ -399,15 +546,20 @@ declare class CodeInputComponent implements ControlValueAccessor {
|
|
|
399
546
|
handlePaste(event: ClipboardEvent): void;
|
|
400
547
|
handleFocus(index: number): void;
|
|
401
548
|
handleBlur(): void;
|
|
549
|
+
/** Moves keyboard focus to the next empty digit (or the last one when full). */
|
|
402
550
|
focus(): void;
|
|
403
551
|
private focusDigit;
|
|
404
552
|
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; }; "
|
|
553
|
+
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
554
|
}
|
|
407
555
|
|
|
556
|
+
/** Visual size of the date picker trigger. */
|
|
408
557
|
type DatePickerSize = 'sm' | 'md' | 'lg';
|
|
558
|
+
/** Locale-aware date format used for the displayed value. */
|
|
409
559
|
type DatePickerFormat = 'short' | 'medium' | 'long';
|
|
560
|
+
/** First day of the week in the calendar grid (0 = Sunday, 1 = Monday). */
|
|
410
561
|
type DatePickerWeekStart = 0 | 1;
|
|
562
|
+
/** Value accepted via `writeValue` — a `Date`, ISO/parseable string, or `null`. */
|
|
411
563
|
type DatePickerValue = Date | string | null;
|
|
412
564
|
interface CalendarDay {
|
|
413
565
|
date: Date;
|
|
@@ -418,13 +570,21 @@ interface CalendarDay {
|
|
|
418
570
|
isDisabled: boolean;
|
|
419
571
|
isFocused: boolean;
|
|
420
572
|
}
|
|
573
|
+
/**
|
|
574
|
+
* Calendar popover for selecting a single date. Supports `min`/`max` bounds,
|
|
575
|
+
* configurable week start, locale-aware formatting via `Intl.DateTimeFormat`,
|
|
576
|
+
* and full keyboard navigation (arrows, PageUp/PageDown, Home/End, Enter,
|
|
577
|
+
* Escape). Integrates with Angular forms via `ControlValueAccessor`.
|
|
578
|
+
*/
|
|
421
579
|
declare class DatePickerComponent implements ControlValueAccessor {
|
|
422
580
|
private readonly hostEl;
|
|
423
581
|
private readonly triggerEl;
|
|
582
|
+
private readonly injector;
|
|
424
583
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
425
584
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
426
585
|
readonly size: _angular_core.InputSignal<DatePickerSize>;
|
|
427
586
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
587
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
428
588
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
429
589
|
readonly hint: _angular_core.InputSignal<string | undefined>;
|
|
430
590
|
readonly errorMsg: _angular_core.InputSignal<string | undefined>;
|
|
@@ -435,6 +595,7 @@ declare class DatePickerComponent implements ControlValueAccessor {
|
|
|
435
595
|
readonly locale: _angular_core.InputSignal<string | undefined>;
|
|
436
596
|
readonly id: _angular_core.InputSignal<string>;
|
|
437
597
|
readonly value: _angular_core.ModelSignal<Date | null>;
|
|
598
|
+
/** Fires when the selected date changes, including when cleared. */
|
|
438
599
|
readonly changed: _angular_core.OutputEmitterRef<Date | null>;
|
|
439
600
|
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
440
601
|
readonly viewYear: _angular_core.WritableSignal<number>;
|
|
@@ -444,11 +605,12 @@ declare class DatePickerComponent implements ControlValueAccessor {
|
|
|
444
605
|
private onChange;
|
|
445
606
|
private onTouched;
|
|
446
607
|
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
447
|
-
readonly
|
|
608
|
+
readonly hasError: _angular_core.Signal<boolean>;
|
|
448
609
|
readonly showError: _angular_core.Signal<boolean>;
|
|
449
610
|
readonly showHint: _angular_core.Signal<boolean>;
|
|
450
611
|
readonly triggerClasses: _angular_core.Signal<{
|
|
451
612
|
[x: string]: boolean;
|
|
613
|
+
'ea-date-picker__trigger--error': boolean;
|
|
452
614
|
'ea-date-picker__trigger--open': boolean;
|
|
453
615
|
'ea-date-picker__trigger--disabled': boolean;
|
|
454
616
|
}>;
|
|
@@ -460,10 +622,17 @@ declare class DatePickerComponent implements ControlValueAccessor {
|
|
|
460
622
|
registerOnChange(fn: (value: Date | null) => void): void;
|
|
461
623
|
registerOnTouched(fn: () => void): void;
|
|
462
624
|
setDisabledState(isDisabled: boolean): void;
|
|
625
|
+
/** Toggles the calendar popover between open and closed. */
|
|
463
626
|
toggle(): void;
|
|
627
|
+
/** Opens the calendar popover and moves focus to the focused day cell. */
|
|
464
628
|
open(): void;
|
|
629
|
+
/** Closes the calendar popover. */
|
|
465
630
|
close(): void;
|
|
631
|
+
private focusFocusedDayCell;
|
|
632
|
+
/** Moves keyboard focus to the trigger button. */
|
|
633
|
+
focus(): void;
|
|
466
634
|
selectDay(day: CalendarDay): void;
|
|
635
|
+
/** Clears the selected date and emits `changed` with `null`. */
|
|
467
636
|
clear(event: Event): void;
|
|
468
637
|
goToPrevMonth(): void;
|
|
469
638
|
goToNextMonth(): void;
|
|
@@ -480,10 +649,17 @@ declare class DatePickerComponent implements ControlValueAccessor {
|
|
|
480
649
|
private addDays;
|
|
481
650
|
private addMonths;
|
|
482
651
|
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": "
|
|
652
|
+
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
653
|
}
|
|
485
654
|
|
|
655
|
+
/** Width preset of the dialog panel. */
|
|
486
656
|
type DialogSize = 'sm' | 'md' | 'lg' | 'full';
|
|
657
|
+
/**
|
|
658
|
+
* Modal dialog backed by the native `<dialog>` element. Uses `showModal()`
|
|
659
|
+
* for browser-managed focus trapping, supports backdrop and Escape dismissal,
|
|
660
|
+
* and exposes `header`, default, and `footer` content slots. The `open` state
|
|
661
|
+
* is a two-way `model()` binding.
|
|
662
|
+
*/
|
|
487
663
|
declare class DialogComponent {
|
|
488
664
|
private readonly dialogEl;
|
|
489
665
|
private previouslyFocused;
|
|
@@ -492,8 +668,11 @@ declare class DialogComponent {
|
|
|
492
668
|
readonly closeOnEscape: _angular_core.InputSignal<boolean>;
|
|
493
669
|
readonly showClose: _angular_core.InputSignal<boolean>;
|
|
494
670
|
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
671
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
495
672
|
readonly open: _angular_core.ModelSignal<boolean>;
|
|
673
|
+
/** Fires once the dialog has been shown via `showModal()`. */
|
|
496
674
|
readonly opened: _angular_core.OutputEmitterRef<void>;
|
|
675
|
+
/** Fires when the dialog closes (via close button, backdrop, or Escape). */
|
|
497
676
|
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
498
677
|
readonly panelClasses: _angular_core.Signal<{
|
|
499
678
|
[x: string]: boolean;
|
|
@@ -503,10 +682,15 @@ declare class DialogComponent {
|
|
|
503
682
|
handleBackdropClick(event: MouseEvent): void;
|
|
504
683
|
handleCancel(event: Event): void;
|
|
505
684
|
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>;
|
|
685
|
+
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
686
|
}
|
|
508
687
|
|
|
688
|
+
/** Orientation of the divider rule. */
|
|
509
689
|
type DividerOrientation = 'horizontal' | 'vertical';
|
|
690
|
+
/**
|
|
691
|
+
* Thin separator used to visually divide content. Renders horizontally by
|
|
692
|
+
* default and may include an optional centred label (e.g. "or").
|
|
693
|
+
*/
|
|
510
694
|
declare class DividerComponent {
|
|
511
695
|
readonly orientation: _angular_core.InputSignal<DividerOrientation>;
|
|
512
696
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
@@ -518,8 +702,16 @@ declare class DividerComponent {
|
|
|
518
702
|
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
703
|
}
|
|
520
704
|
|
|
705
|
+
/** Edge of the viewport from which the drawer slides in. */
|
|
521
706
|
type DrawerPosition = 'left' | 'right' | 'top' | 'bottom';
|
|
707
|
+
/** Size of the drawer panel along its primary axis. */
|
|
522
708
|
type DrawerSize = 'sm' | 'md' | 'lg' | 'full';
|
|
709
|
+
/**
|
|
710
|
+
* Side panel backed by the native `<dialog>` element for browser-managed
|
|
711
|
+
* focus trapping. Slides in from a configurable edge, supports backdrop and
|
|
712
|
+
* Escape dismissal, and exposes `header`, default, and `footer` content
|
|
713
|
+
* slots. The `open` state is a two-way `model()` binding.
|
|
714
|
+
*/
|
|
523
715
|
declare class DrawerComponent {
|
|
524
716
|
private readonly drawerEl;
|
|
525
717
|
private previouslyFocused;
|
|
@@ -529,8 +721,11 @@ declare class DrawerComponent {
|
|
|
529
721
|
readonly closeOnEscape: _angular_core.InputSignal<boolean>;
|
|
530
722
|
readonly showClose: _angular_core.InputSignal<boolean>;
|
|
531
723
|
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
724
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
532
725
|
readonly open: _angular_core.ModelSignal<boolean>;
|
|
726
|
+
/** Fires once the drawer has been shown via `showModal()`. */
|
|
533
727
|
readonly opened: _angular_core.OutputEmitterRef<void>;
|
|
728
|
+
/** Fires when the drawer closes (via close button, backdrop, or Escape). */
|
|
534
729
|
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
535
730
|
readonly panelClasses: _angular_core.Signal<{
|
|
536
731
|
[x: string]: boolean;
|
|
@@ -540,29 +735,33 @@ declare class DrawerComponent {
|
|
|
540
735
|
handleBackdropClick(event: MouseEvent): void;
|
|
541
736
|
handleCancel(event: Event): void;
|
|
542
737
|
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>;
|
|
738
|
+
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
739
|
}
|
|
545
740
|
|
|
741
|
+
/** Visual size of the dropdown trigger. */
|
|
546
742
|
type DropdownSize = 'sm' | 'md' | 'lg';
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
743
|
+
/**
|
|
744
|
+
* Single-select dropdown with a custom popup list. Supports keyboard
|
|
745
|
+
* navigation (arrow keys, Enter/Space to select, Escape to close), closes
|
|
746
|
+
* on outside click or viewport scroll/resize, and integrates with Angular
|
|
747
|
+
* forms via `ControlValueAccessor`.
|
|
748
|
+
*/
|
|
552
749
|
declare class DropdownComponent implements ControlValueAccessor {
|
|
553
750
|
private readonly elRef;
|
|
554
751
|
private readonly menuEl;
|
|
555
752
|
private readonly destroyRef;
|
|
556
753
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
557
754
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
558
|
-
readonly options: _angular_core.InputSignal<
|
|
755
|
+
readonly options: _angular_core.InputSignal<SelectOption[]>;
|
|
559
756
|
readonly size: _angular_core.InputSignal<DropdownSize>;
|
|
560
757
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
758
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
561
759
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
562
760
|
readonly hint: _angular_core.InputSignal<string | undefined>;
|
|
563
761
|
readonly errorMsg: _angular_core.InputSignal<string | undefined>;
|
|
564
762
|
readonly id: _angular_core.InputSignal<string>;
|
|
565
763
|
readonly value: _angular_core.ModelSignal<string>;
|
|
764
|
+
/** Fires with the new value when the user selects an option. */
|
|
566
765
|
readonly changed: _angular_core.OutputEmitterRef<string>;
|
|
567
766
|
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
568
767
|
readonly focusedIndex: _angular_core.WritableSignal<number>;
|
|
@@ -570,12 +769,13 @@ declare class DropdownComponent implements ControlValueAccessor {
|
|
|
570
769
|
private onChange;
|
|
571
770
|
private onTouched;
|
|
572
771
|
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
573
|
-
readonly
|
|
772
|
+
readonly hasError: _angular_core.Signal<boolean>;
|
|
574
773
|
readonly showError: _angular_core.Signal<boolean>;
|
|
575
774
|
readonly showHint: _angular_core.Signal<boolean>;
|
|
576
775
|
readonly selectedLabel: _angular_core.Signal<string>;
|
|
577
776
|
readonly triggerClasses: _angular_core.Signal<{
|
|
578
777
|
[x: string]: boolean;
|
|
778
|
+
'ea-dropdown__trigger--error': boolean;
|
|
579
779
|
'ea-dropdown__trigger--open': boolean;
|
|
580
780
|
'ea-dropdown__trigger--disabled': boolean;
|
|
581
781
|
}>;
|
|
@@ -584,18 +784,30 @@ declare class DropdownComponent implements ControlValueAccessor {
|
|
|
584
784
|
registerOnChange(fn: (value: string) => void): void;
|
|
585
785
|
registerOnTouched(fn: () => void): void;
|
|
586
786
|
setDisabledState(isDisabled: boolean): void;
|
|
787
|
+
/** Toggles the dropdown list between open and closed. */
|
|
587
788
|
toggle(): void;
|
|
588
|
-
|
|
789
|
+
/** Programmatically selects the given option, closing the list. */
|
|
790
|
+
select(option: SelectOption): void;
|
|
791
|
+
/** Closes the dropdown list without changing the current value. */
|
|
589
792
|
close(): void;
|
|
793
|
+
/** Moves keyboard focus to the dropdown trigger. */
|
|
794
|
+
focus(): void;
|
|
590
795
|
handleKeydown(event: KeyboardEvent): void;
|
|
591
796
|
private moveFocus;
|
|
592
797
|
onDocumentClick(event: Event): void;
|
|
593
798
|
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": "
|
|
799
|
+
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
800
|
}
|
|
596
801
|
|
|
802
|
+
/** Variant of the wordmark — 1: "eagami", 2: "handcrafted by eagami", 3: "eagami design system", 4: with tagline. */
|
|
597
803
|
type EagamiWordmarkVariant = 1 | 2 | 3 | 4;
|
|
804
|
+
/** Layout of the wordmark — `stacked` for multi-line, `inline` for a single line with em-dash separators. */
|
|
598
805
|
type EagamiWordmarkLayout = 'stacked' | 'inline';
|
|
806
|
+
/**
|
|
807
|
+
* Branded eagami wordmark logo. Scales continuously from a single `size`
|
|
808
|
+
* pixel value and supports four content variants paired with stacked or
|
|
809
|
+
* inline layouts.
|
|
810
|
+
*/
|
|
599
811
|
declare class EagamiWordmarkComponent {
|
|
600
812
|
readonly variant: _angular_core.InputSignal<EagamiWordmarkVariant>;
|
|
601
813
|
readonly layout: _angular_core.InputSignal<EagamiWordmarkLayout>;
|
|
@@ -608,16 +820,25 @@ declare class EagamiWordmarkComponent {
|
|
|
608
820
|
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
821
|
}
|
|
610
822
|
|
|
823
|
+
/** Visual size of the empty-state block. */
|
|
611
824
|
type EmptyStateSize = 'sm' | 'md' | 'lg';
|
|
825
|
+
/** Heading level used for the title so it fits the surrounding document outline. */
|
|
826
|
+
type EmptyStateHeadingLevel = 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
827
|
+
/**
|
|
828
|
+
* Pattern for "no results" or "nothing here yet" screens. Combines an
|
|
829
|
+
* optional title and description with `[slot=media]` (icon or illustration)
|
|
830
|
+
* and `[slot=actions]` (follow-up buttons) content slots.
|
|
831
|
+
*/
|
|
612
832
|
declare class EmptyStateComponent {
|
|
613
833
|
readonly title: _angular_core.InputSignal<string | undefined>;
|
|
614
834
|
readonly description: _angular_core.InputSignal<string | undefined>;
|
|
615
835
|
readonly size: _angular_core.InputSignal<EmptyStateSize>;
|
|
836
|
+
readonly headingLevel: _angular_core.InputSignal<EmptyStateHeadingLevel>;
|
|
616
837
|
readonly hostClasses: _angular_core.Signal<{
|
|
617
838
|
[x: string]: boolean;
|
|
618
839
|
}>;
|
|
619
840
|
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>;
|
|
841
|
+
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
842
|
}
|
|
622
843
|
|
|
623
844
|
declare class AlertCircleIconComponent {
|
|
@@ -631,8 +852,9 @@ declare class AlertTriangleIconComponent {
|
|
|
631
852
|
}
|
|
632
853
|
|
|
633
854
|
declare class AppleIconComponent {
|
|
855
|
+
readonly brand: _angular_core.InputSignal<boolean>;
|
|
634
856
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AppleIconComponent, never>;
|
|
635
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AppleIconComponent, "ea-icon-apple", never, {}, {}, never, never, true, never>;
|
|
857
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AppleIconComponent, "ea-icon-apple", never, { "brand": { "alias": "brand"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
636
858
|
}
|
|
637
859
|
|
|
638
860
|
declare class ArrowDownIconComponent {
|
|
@@ -741,8 +963,9 @@ declare class EyeIconComponent {
|
|
|
741
963
|
}
|
|
742
964
|
|
|
743
965
|
declare class FacebookIconComponent {
|
|
966
|
+
readonly brand: _angular_core.InputSignal<boolean>;
|
|
744
967
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FacebookIconComponent, never>;
|
|
745
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FacebookIconComponent, "ea-icon-facebook", never, {}, {}, never, never, true, never>;
|
|
968
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FacebookIconComponent, "ea-icon-facebook", never, { "brand": { "alias": "brand"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
746
969
|
}
|
|
747
970
|
|
|
748
971
|
declare class FileIconComponent {
|
|
@@ -756,8 +979,9 @@ declare class FilterIconComponent {
|
|
|
756
979
|
}
|
|
757
980
|
|
|
758
981
|
declare class GithubIconComponent {
|
|
982
|
+
readonly brand: _angular_core.InputSignal<boolean>;
|
|
759
983
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<GithubIconComponent, never>;
|
|
760
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<GithubIconComponent, "ea-icon-github", never, {}, {}, never, never, true, never>;
|
|
984
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<GithubIconComponent, "ea-icon-github", never, { "brand": { "alias": "brand"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
761
985
|
}
|
|
762
986
|
|
|
763
987
|
declare class GoogleIconComponent {
|
|
@@ -871,8 +1095,9 @@ declare class XCircleIconComponent {
|
|
|
871
1095
|
}
|
|
872
1096
|
|
|
873
1097
|
declare class XTwitterIconComponent {
|
|
1098
|
+
readonly brand: _angular_core.InputSignal<boolean>;
|
|
874
1099
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XTwitterIconComponent, never>;
|
|
875
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<XTwitterIconComponent, "ea-icon-x-twitter", never, {}, {}, never, never, true, never>;
|
|
1100
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<XTwitterIconComponent, "ea-icon-x-twitter", never, { "brand": { "alias": "brand"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
876
1101
|
}
|
|
877
1102
|
|
|
878
1103
|
declare class XIconComponent {
|
|
@@ -880,16 +1105,22 @@ declare class XIconComponent {
|
|
|
880
1105
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<XIconComponent, "ea-icon-x", never, {}, {}, never, never, true, never>;
|
|
881
1106
|
}
|
|
882
1107
|
|
|
1108
|
+
/** Visual size of the input. */
|
|
883
1109
|
type InputSize = 'sm' | 'md' | 'lg';
|
|
884
|
-
type
|
|
1110
|
+
/** HTML `type` attribute applied to the underlying `<input>`. */
|
|
885
1111
|
type InputType = 'text' | 'email' | 'password' | 'number' | 'search' | 'tel' | 'url';
|
|
1112
|
+
/**
|
|
1113
|
+
* Single-line text field with label, hint, and error message support.
|
|
1114
|
+
* Includes a built-in show/hide toggle for `password` inputs and integrates
|
|
1115
|
+
* with Angular forms via `ControlValueAccessor`. Prefix and suffix content
|
|
1116
|
+
* can be projected via the `prefix` and `suffix` slots.
|
|
1117
|
+
*/
|
|
886
1118
|
declare class InputComponent implements ControlValueAccessor, AfterViewInit {
|
|
887
1119
|
readonly inputEl: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
888
1120
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
889
1121
|
readonly type: _angular_core.InputSignal<InputType>;
|
|
890
1122
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
891
1123
|
readonly size: _angular_core.InputSignal<InputSize>;
|
|
892
|
-
readonly status: _angular_core.InputSignal<InputStatus>;
|
|
893
1124
|
readonly hint: _angular_core.InputSignal<string | undefined>;
|
|
894
1125
|
readonly errorMsg: _angular_core.InputSignal<string | undefined>;
|
|
895
1126
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
@@ -900,20 +1131,23 @@ declare class InputComponent implements ControlValueAccessor, AfterViewInit {
|
|
|
900
1131
|
readonly showPasswordToggle: _angular_core.InputSignal<boolean>;
|
|
901
1132
|
readonly id: _angular_core.InputSignal<string>;
|
|
902
1133
|
readonly value: _angular_core.ModelSignal<string>;
|
|
903
|
-
readonly
|
|
1134
|
+
readonly isFocused: _angular_core.WritableSignal<boolean>;
|
|
904
1135
|
readonly passwordVisible: _angular_core.WritableSignal<boolean>;
|
|
905
1136
|
private readonly _formDisabled;
|
|
906
|
-
|
|
907
|
-
readonly
|
|
1137
|
+
/** Fires when the input receives focus. */
|
|
1138
|
+
readonly focused: _angular_core.OutputEmitterRef<FocusEvent>;
|
|
1139
|
+
/** Fires when the input loses focus. */
|
|
1140
|
+
readonly blurred: _angular_core.OutputEmitterRef<FocusEvent>;
|
|
908
1141
|
private onChange;
|
|
909
1142
|
private onTouched;
|
|
910
1143
|
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
911
1144
|
readonly effectiveType: _angular_core.Signal<InputType>;
|
|
912
|
-
readonly
|
|
1145
|
+
readonly hasError: _angular_core.Signal<boolean>;
|
|
913
1146
|
readonly showError: _angular_core.Signal<boolean>;
|
|
914
1147
|
readonly showHint: _angular_core.Signal<boolean>;
|
|
915
1148
|
readonly wrapperClasses: _angular_core.Signal<{
|
|
916
1149
|
[x: string]: boolean;
|
|
1150
|
+
'ea-input-wrapper--error': boolean;
|
|
917
1151
|
'ea-input-wrapper--focused': boolean;
|
|
918
1152
|
'ea-input-wrapper--disabled': boolean;
|
|
919
1153
|
'ea-input-wrapper--readonly': boolean;
|
|
@@ -926,50 +1160,83 @@ declare class InputComponent implements ControlValueAccessor, AfterViewInit {
|
|
|
926
1160
|
handleInput(event: Event): void;
|
|
927
1161
|
handleFocus(event: FocusEvent): void;
|
|
928
1162
|
handleBlur(event: FocusEvent): void;
|
|
1163
|
+
/** Toggles the password reveal state for `type="password"` inputs. */
|
|
929
1164
|
togglePasswordVisibility(): void;
|
|
1165
|
+
/** Moves keyboard focus to the underlying native input element. */
|
|
930
1166
|
focus(): void;
|
|
931
1167
|
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; }; "
|
|
1168
|
+
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
1169
|
}
|
|
934
1170
|
|
|
1171
|
+
/** Placement of the menu list relative to its trigger. */
|
|
935
1172
|
type MenuPlacement = 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';
|
|
1173
|
+
/**
|
|
1174
|
+
* Popup action menu attached to any focusable element via the
|
|
1175
|
+
* `[eaMenuTrigger]` directive. Supports keyboard navigation
|
|
1176
|
+
* (arrow keys, Home/End), closes on outside click or Escape, and restores
|
|
1177
|
+
* focus to the trigger on close.
|
|
1178
|
+
*/
|
|
936
1179
|
declare class MenuComponent {
|
|
937
|
-
private readonly
|
|
1180
|
+
private readonly injector;
|
|
938
1181
|
private readonly listEl;
|
|
939
1182
|
readonly placement: _angular_core.InputSignal<MenuPlacement>;
|
|
940
1183
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
941
1184
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
1185
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
942
1186
|
readonly open: _angular_core.ModelSignal<boolean>;
|
|
1187
|
+
/** Fires when the menu opens. */
|
|
943
1188
|
readonly opened: _angular_core.OutputEmitterRef<void>;
|
|
1189
|
+
/** Fires when the menu closes. */
|
|
944
1190
|
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
945
|
-
readonly menuId: _angular_core.WritableSignal<string>;
|
|
946
1191
|
private triggerEl;
|
|
947
1192
|
private readonly triggerRect;
|
|
948
1193
|
readonly listClasses: _angular_core.Signal<{
|
|
949
1194
|
[x: string]: boolean;
|
|
950
1195
|
}>;
|
|
951
1196
|
readonly listStyle: _angular_core.Signal<Record<string, string>>;
|
|
1197
|
+
/** Toggles the menu open state, anchoring it to the given trigger element. */
|
|
952
1198
|
toggleAt(triggerEl: HTMLElement): void;
|
|
1199
|
+
/** Opens the menu anchored to the given trigger element and focuses the first item. */
|
|
953
1200
|
openAt(triggerEl: HTMLElement): void;
|
|
954
|
-
|
|
1201
|
+
/**
|
|
1202
|
+
* Closes the menu if it is open. Pass `restoreFocus: true` to return focus
|
|
1203
|
+
* to the trigger element (used when closing via Escape or item activation;
|
|
1204
|
+
* not used on outside click, where the user has chosen a new focus target).
|
|
1205
|
+
*/
|
|
1206
|
+
close(restoreFocus?: boolean): void;
|
|
1207
|
+
private getEnabledItems;
|
|
1208
|
+
private focusFirstItem;
|
|
1209
|
+
onKeydown(event: KeyboardEvent): void;
|
|
955
1210
|
onDocumentClick(event: Event): void;
|
|
956
1211
|
onEscape(): void;
|
|
957
1212
|
onViewportChange(): void;
|
|
958
1213
|
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>;
|
|
1214
|
+
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
1215
|
}
|
|
961
1216
|
|
|
1217
|
+
/** Visual style of a menu item — `danger` for destructive actions. */
|
|
962
1218
|
type MenuItemVariant = 'default' | 'danger';
|
|
1219
|
+
/**
|
|
1220
|
+
* Selectable row inside an `ea-menu`. Supports leading icons via the `icon`
|
|
1221
|
+
* content slot, a disabled state, and a `danger` variant for destructive
|
|
1222
|
+
* actions. Activating an item closes its parent menu.
|
|
1223
|
+
*/
|
|
963
1224
|
declare class MenuItemComponent {
|
|
964
1225
|
private readonly menu;
|
|
965
1226
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
966
1227
|
readonly variant: _angular_core.InputSignal<MenuItemVariant>;
|
|
967
|
-
|
|
1228
|
+
/** Fires when the item is activated; the parent menu closes immediately afterwards. */
|
|
1229
|
+
readonly clicked: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
968
1230
|
handleClick(event: MouseEvent): void;
|
|
969
1231
|
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; }; }, { "
|
|
1232
|
+
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
1233
|
}
|
|
972
1234
|
|
|
1235
|
+
/**
|
|
1236
|
+
* Wires a focusable host element (typically a button) to an `ea-menu`,
|
|
1237
|
+
* handling click and keyboard activation (ArrowDown/Enter/Space to open,
|
|
1238
|
+
* Escape to close) and applying the appropriate ARIA attributes.
|
|
1239
|
+
*/
|
|
973
1240
|
declare class MenuTriggerDirective {
|
|
974
1241
|
private readonly el;
|
|
975
1242
|
readonly menu: _angular_core.InputSignal<MenuComponent>;
|
|
@@ -979,20 +1246,29 @@ declare class MenuTriggerDirective {
|
|
|
979
1246
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuTriggerDirective, "[eaMenuTrigger]", never, { "menu": { "alias": "eaMenuTrigger"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
980
1247
|
}
|
|
981
1248
|
|
|
982
|
-
|
|
1249
|
+
/** Horizontal alignment of paginator controls within their container. */
|
|
1250
|
+
type PaginatorAlign = 'left' | 'center' | 'right';
|
|
1251
|
+
/** Snapshot of the paginator's page and page size. */
|
|
983
1252
|
interface PaginatorState {
|
|
984
1253
|
page: number;
|
|
985
1254
|
pageSize: number;
|
|
986
1255
|
}
|
|
1256
|
+
/**
|
|
1257
|
+
* Page navigation control with previous/next buttons, numbered page jumps,
|
|
1258
|
+
* an optional page-size selector, and a range label. Exposes `page` and
|
|
1259
|
+
* `pageSize` as two-way `model()` bindings and emits a single `changed`
|
|
1260
|
+
* event whenever either changes.
|
|
1261
|
+
*/
|
|
987
1262
|
declare class PaginatorComponent {
|
|
988
1263
|
readonly totalItems: _angular_core.InputSignal<number>;
|
|
989
1264
|
readonly pageSizeOptions: _angular_core.InputSignal<number[]>;
|
|
990
1265
|
readonly showPageSizeSelector: _angular_core.InputSignal<boolean>;
|
|
991
1266
|
readonly showRangeLabel: _angular_core.InputSignal<boolean>;
|
|
992
|
-
readonly
|
|
1267
|
+
readonly align: _angular_core.InputSignal<PaginatorAlign>;
|
|
993
1268
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
994
1269
|
readonly page: _angular_core.ModelSignal<number>;
|
|
995
1270
|
readonly pageSize: _angular_core.ModelSignal<number>;
|
|
1271
|
+
/** Fires when the user changes either the current page or the page size. */
|
|
996
1272
|
readonly changed: _angular_core.OutputEmitterRef<PaginatorState>;
|
|
997
1273
|
readonly totalPages: _angular_core.Signal<number>;
|
|
998
1274
|
readonly rangeStart: _angular_core.Signal<number>;
|
|
@@ -1000,22 +1276,32 @@ declare class PaginatorComponent {
|
|
|
1000
1276
|
readonly canGoPrev: _angular_core.Signal<boolean>;
|
|
1001
1277
|
readonly canGoNext: _angular_core.Signal<boolean>;
|
|
1002
1278
|
readonly visiblePages: _angular_core.Signal<(number | "ellipsis")[]>;
|
|
1279
|
+
/** Navigates to the given page, clamped into the valid range. */
|
|
1003
1280
|
goToPage(page: number): void;
|
|
1281
|
+
/** Navigates to the previous page if one exists. */
|
|
1004
1282
|
prevPage(): void;
|
|
1283
|
+
/** Navigates to the next page if one exists. */
|
|
1005
1284
|
nextPage(): void;
|
|
1006
1285
|
onPageSizeChange(event: Event): void;
|
|
1007
1286
|
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; }; "
|
|
1287
|
+
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
1288
|
}
|
|
1010
1289
|
|
|
1290
|
+
/** Semantic colour scheme of the progress bar. */
|
|
1011
1291
|
type ProgressBarVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
|
|
1292
|
+
/** Visual height of the progress bar. */
|
|
1012
1293
|
type ProgressBarSize = 'sm' | 'md' | 'lg';
|
|
1294
|
+
/**
|
|
1295
|
+
* Linear progress indicator supporting both determinate (driven by `value`
|
|
1296
|
+
* and `max`) and indeterminate modes. Optionally renders an inline label
|
|
1297
|
+
* and/or the current percentage.
|
|
1298
|
+
*/
|
|
1013
1299
|
declare class ProgressBarComponent {
|
|
1014
1300
|
readonly value: _angular_core.InputSignal<number>;
|
|
1015
1301
|
readonly max: _angular_core.InputSignal<number>;
|
|
1016
1302
|
readonly variant: _angular_core.InputSignal<ProgressBarVariant>;
|
|
1017
1303
|
readonly size: _angular_core.InputSignal<ProgressBarSize>;
|
|
1018
|
-
readonly label: _angular_core.InputSignal<string>;
|
|
1304
|
+
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
1019
1305
|
readonly showValue: _angular_core.InputSignal<boolean>;
|
|
1020
1306
|
readonly indeterminate: _angular_core.InputSignal<boolean>;
|
|
1021
1307
|
readonly percentage: _angular_core.Signal<number>;
|
|
@@ -1028,29 +1314,51 @@ declare class ProgressBarComponent {
|
|
|
1028
1314
|
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
1315
|
}
|
|
1030
1316
|
|
|
1317
|
+
/** Visual size shared by all radios in the group. */
|
|
1031
1318
|
type RadioSize = 'sm' | 'md' | 'lg';
|
|
1319
|
+
/** Layout direction for radios within the group. */
|
|
1032
1320
|
type RadioOrientation = 'vertical' | 'horizontal';
|
|
1321
|
+
/**
|
|
1322
|
+
* Composite single-select control made up of `ea-radio` children. Manages
|
|
1323
|
+
* shared state (name, size, disabled) for its options and integrates with
|
|
1324
|
+
* Angular forms via `ControlValueAccessor`.
|
|
1325
|
+
*/
|
|
1033
1326
|
declare class RadioGroupComponent implements ControlValueAccessor {
|
|
1327
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
1034
1328
|
readonly name: _angular_core.InputSignal<string>;
|
|
1035
1329
|
readonly size: _angular_core.InputSignal<RadioSize>;
|
|
1036
1330
|
readonly orientation: _angular_core.InputSignal<RadioOrientation>;
|
|
1037
1331
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1332
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
1333
|
+
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
1334
|
+
readonly hint: _angular_core.InputSignal<string | undefined>;
|
|
1335
|
+
readonly errorMsg: _angular_core.InputSignal<string | undefined>;
|
|
1038
1336
|
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
1039
1337
|
readonly value: _angular_core.ModelSignal<string>;
|
|
1338
|
+
/** Fires with the new value when an option is selected. */
|
|
1040
1339
|
readonly changed: _angular_core.OutputEmitterRef<string>;
|
|
1041
1340
|
private readonly _formDisabled;
|
|
1042
1341
|
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
1342
|
+
readonly hasError: _angular_core.Signal<boolean>;
|
|
1343
|
+
readonly showError: _angular_core.Signal<boolean>;
|
|
1344
|
+
readonly showHint: _angular_core.Signal<boolean>;
|
|
1043
1345
|
private onChange;
|
|
1044
1346
|
private onTouched;
|
|
1045
1347
|
writeValue(val: string): void;
|
|
1046
1348
|
registerOnChange(fn: (value: string) => void): void;
|
|
1047
1349
|
registerOnTouched(fn: () => void): void;
|
|
1048
1350
|
setDisabledState(isDisabled: boolean): void;
|
|
1351
|
+
/** Programmatically selects the option with the given value. */
|
|
1049
1352
|
select(val: string): void;
|
|
1050
1353
|
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>;
|
|
1354
|
+
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
1355
|
}
|
|
1053
1356
|
|
|
1357
|
+
/**
|
|
1358
|
+
* Single radio option used inside an `ea-radio-group`. Inherits its size and
|
|
1359
|
+
* disabled state from the parent group and selecting it updates the group's
|
|
1360
|
+
* value.
|
|
1361
|
+
*/
|
|
1054
1362
|
declare class RadioComponent {
|
|
1055
1363
|
private readonly group;
|
|
1056
1364
|
readonly value: _angular_core.InputSignal<string>;
|
|
@@ -1071,45 +1379,63 @@ declare class RadioComponent {
|
|
|
1071
1379
|
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
1380
|
}
|
|
1073
1381
|
|
|
1382
|
+
/** Visual size of the segmented control. */
|
|
1074
1383
|
type SegmentedSize = 'sm' | 'md' | 'lg';
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1384
|
+
/**
|
|
1385
|
+
* Compact toggle button group for picking one of a small set of options
|
|
1386
|
+
* (e.g. List/Grid/Kanban or Light/Dark). Implements `radiogroup` semantics
|
|
1387
|
+
* and `ControlValueAccessor`, with full keyboard support
|
|
1388
|
+
* (arrow keys, Home/End, Enter/Space).
|
|
1389
|
+
*/
|
|
1080
1390
|
declare class SegmentedComponent implements ControlValueAccessor {
|
|
1081
1391
|
readonly buttonEls: _angular_core.Signal<readonly ElementRef<HTMLButtonElement>[]>;
|
|
1082
|
-
readonly options: _angular_core.InputSignal<
|
|
1392
|
+
readonly options: _angular_core.InputSignal<SelectOption[]>;
|
|
1393
|
+
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
1394
|
+
readonly hint: _angular_core.InputSignal<string | undefined>;
|
|
1395
|
+
readonly errorMsg: _angular_core.InputSignal<string | undefined>;
|
|
1083
1396
|
readonly size: _angular_core.InputSignal<SegmentedSize>;
|
|
1084
1397
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1398
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
1085
1399
|
readonly fullWidth: _angular_core.InputSignal<boolean>;
|
|
1086
1400
|
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
1087
1401
|
readonly id: _angular_core.InputSignal<string>;
|
|
1088
1402
|
readonly value: _angular_core.ModelSignal<string>;
|
|
1403
|
+
/** Fires with the new value when the user selects a different option. */
|
|
1089
1404
|
readonly changed: _angular_core.OutputEmitterRef<string>;
|
|
1090
1405
|
private readonly _formDisabled;
|
|
1091
1406
|
private onChange;
|
|
1092
1407
|
private onTouched;
|
|
1093
1408
|
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
1094
|
-
readonly
|
|
1409
|
+
readonly hasError: _angular_core.Signal<boolean>;
|
|
1410
|
+
readonly showError: _angular_core.Signal<boolean>;
|
|
1411
|
+
readonly showHint: _angular_core.Signal<boolean>;
|
|
1412
|
+
readonly enabledOptions: _angular_core.Signal<SelectOption[]>;
|
|
1095
1413
|
readonly hostClasses: _angular_core.Signal<{
|
|
1096
1414
|
[x: string]: boolean;
|
|
1097
1415
|
'ea-segmented--full-width': boolean;
|
|
1098
1416
|
'ea-segmented--disabled': boolean;
|
|
1417
|
+
'ea-segmented--error': boolean;
|
|
1099
1418
|
}>;
|
|
1100
1419
|
writeValue(val: string): void;
|
|
1101
1420
|
registerOnChange(fn: (value: string) => void): void;
|
|
1102
1421
|
registerOnTouched(fn: () => void): void;
|
|
1103
1422
|
setDisabledState(isDisabled: boolean): void;
|
|
1104
|
-
isSelected(option:
|
|
1105
|
-
isOptionDisabled(option:
|
|
1106
|
-
|
|
1423
|
+
isSelected(option: SelectOption): boolean;
|
|
1424
|
+
isOptionDisabled(option: SelectOption): boolean;
|
|
1425
|
+
/** Programmatically selects the given option. */
|
|
1426
|
+
select(option: SelectOption): void;
|
|
1107
1427
|
handleKeydown(event: KeyboardEvent, index: number): void;
|
|
1108
1428
|
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>;
|
|
1429
|
+
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
1430
|
}
|
|
1111
1431
|
|
|
1432
|
+
/** Shape preset of a skeleton placeholder. */
|
|
1112
1433
|
type SkeletonVariant = 'text' | 'circle' | 'rect';
|
|
1434
|
+
/**
|
|
1435
|
+
* Loading placeholder rendered as a pulsing block in one of three shapes.
|
|
1436
|
+
* Honours `prefers-reduced-motion` by suppressing the pulse animation when
|
|
1437
|
+
* the user has expressed that preference.
|
|
1438
|
+
*/
|
|
1113
1439
|
declare class SkeletonComponent {
|
|
1114
1440
|
readonly variant: _angular_core.InputSignal<SkeletonVariant>;
|
|
1115
1441
|
readonly width: _angular_core.InputSignal<string | undefined>;
|
|
@@ -1124,7 +1450,14 @@ declare class SkeletonComponent {
|
|
|
1124
1450
|
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
1451
|
}
|
|
1126
1452
|
|
|
1453
|
+
/** Visual size of the slider track and thumb. */
|
|
1127
1454
|
type SliderSize = 'sm' | 'md' | 'lg';
|
|
1455
|
+
/**
|
|
1456
|
+
* Single-value range input controlled with pointer drag or full keyboard
|
|
1457
|
+
* navigation (arrows, PageUp/PageDown, Home/End). Supports configurable
|
|
1458
|
+
* `min`, `max`, and `step`, optional value display, and integrates with
|
|
1459
|
+
* Angular forms via `ControlValueAccessor`.
|
|
1460
|
+
*/
|
|
1128
1461
|
declare class SliderComponent implements ControlValueAccessor {
|
|
1129
1462
|
readonly trackEl: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
|
|
1130
1463
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
@@ -1142,6 +1475,7 @@ declare class SliderComponent implements ControlValueAccessor {
|
|
|
1142
1475
|
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
1143
1476
|
readonly id: _angular_core.InputSignal<string>;
|
|
1144
1477
|
readonly value: _angular_core.ModelSignal<number>;
|
|
1478
|
+
/** Fires with the new (snapped, clamped) numeric value whenever the slider moves. */
|
|
1145
1479
|
readonly changed: _angular_core.OutputEmitterRef<number>;
|
|
1146
1480
|
private readonly _formDisabled;
|
|
1147
1481
|
readonly dragging: _angular_core.WritableSignal<boolean>;
|
|
@@ -1150,11 +1484,12 @@ declare class SliderComponent implements ControlValueAccessor {
|
|
|
1150
1484
|
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
1151
1485
|
readonly clampedValue: _angular_core.Signal<number>;
|
|
1152
1486
|
readonly percent: _angular_core.Signal<number>;
|
|
1153
|
-
readonly
|
|
1487
|
+
readonly hasError: _angular_core.Signal<boolean>;
|
|
1154
1488
|
readonly showError: _angular_core.Signal<boolean>;
|
|
1155
1489
|
readonly showHint: _angular_core.Signal<boolean>;
|
|
1156
1490
|
readonly hostClasses: _angular_core.Signal<{
|
|
1157
1491
|
[x: string]: boolean;
|
|
1492
|
+
'ea-slider--error': boolean;
|
|
1158
1493
|
'ea-slider--disabled': boolean;
|
|
1159
1494
|
'ea-slider--dragging': boolean;
|
|
1160
1495
|
}>;
|
|
@@ -1170,10 +1505,15 @@ declare class SliderComponent implements ControlValueAccessor {
|
|
|
1170
1505
|
private updateFromPointer;
|
|
1171
1506
|
private commitValue;
|
|
1172
1507
|
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": "
|
|
1508
|
+
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
1509
|
}
|
|
1175
1510
|
|
|
1511
|
+
/** Visual size of the spinner. */
|
|
1176
1512
|
type SpinnerSize = 'sm' | 'md' | 'lg';
|
|
1513
|
+
/**
|
|
1514
|
+
* SVG loading indicator with an accessible `role="status"`. Uses the `label`
|
|
1515
|
+
* input as the accessible name announced to assistive technology.
|
|
1516
|
+
*/
|
|
1177
1517
|
declare class SpinnerComponent {
|
|
1178
1518
|
readonly size: _angular_core.InputSignal<SpinnerSize>;
|
|
1179
1519
|
readonly label: _angular_core.InputSignal<string>;
|
|
@@ -1184,23 +1524,37 @@ declare class SpinnerComponent {
|
|
|
1184
1524
|
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
1525
|
}
|
|
1186
1526
|
|
|
1527
|
+
/** Visual size of the switch. */
|
|
1187
1528
|
type SwitchSize = 'sm' | 'md' | 'lg';
|
|
1529
|
+
/**
|
|
1530
|
+
* On/off toggle styled as a sliding switch. Backed by a visually hidden
|
|
1531
|
+
* native checkbox and integrates with Angular forms via
|
|
1532
|
+
* `ControlValueAccessor`.
|
|
1533
|
+
*/
|
|
1188
1534
|
declare class SwitchComponent implements ControlValueAccessor {
|
|
1189
1535
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
1536
|
+
readonly hint: _angular_core.InputSignal<string | undefined>;
|
|
1537
|
+
readonly errorMsg: _angular_core.InputSignal<string | undefined>;
|
|
1190
1538
|
readonly size: _angular_core.InputSignal<SwitchSize>;
|
|
1191
1539
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1540
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
1192
1541
|
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
1193
1542
|
readonly id: _angular_core.InputSignal<string>;
|
|
1194
1543
|
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
1544
|
+
/** Fires with the new checked state whenever the user toggles the switch. */
|
|
1195
1545
|
readonly changed: _angular_core.OutputEmitterRef<boolean>;
|
|
1196
1546
|
private readonly _formDisabled;
|
|
1197
1547
|
private onChange;
|
|
1198
1548
|
private onTouched;
|
|
1199
1549
|
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
1550
|
+
readonly hasError: _angular_core.Signal<boolean>;
|
|
1551
|
+
readonly showError: _angular_core.Signal<boolean>;
|
|
1552
|
+
readonly showHint: _angular_core.Signal<boolean>;
|
|
1200
1553
|
readonly hostClasses: _angular_core.Signal<{
|
|
1201
1554
|
[x: string]: boolean;
|
|
1202
1555
|
'ea-switch--checked': boolean;
|
|
1203
1556
|
'ea-switch--disabled': boolean;
|
|
1557
|
+
'ea-switch--error': boolean;
|
|
1204
1558
|
}>;
|
|
1205
1559
|
writeValue(val: boolean): void;
|
|
1206
1560
|
registerOnChange(fn: (value: boolean) => void): void;
|
|
@@ -1208,9 +1562,14 @@ declare class SwitchComponent implements ControlValueAccessor {
|
|
|
1208
1562
|
setDisabledState(isDisabled: boolean): void;
|
|
1209
1563
|
handleChange(): void;
|
|
1210
1564
|
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>;
|
|
1565
|
+
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
1566
|
}
|
|
1213
1567
|
|
|
1568
|
+
/**
|
|
1569
|
+
* Single tab within an `ea-tabs` group. Registers itself with the parent on
|
|
1570
|
+
* init, exposes its `value` and `label`, and shows its projected content
|
|
1571
|
+
* when active.
|
|
1572
|
+
*/
|
|
1214
1573
|
declare class TabComponent implements OnInit, OnDestroy {
|
|
1215
1574
|
private readonly tabs;
|
|
1216
1575
|
readonly value: _angular_core.InputSignal<string>;
|
|
@@ -1224,29 +1583,50 @@ declare class TabComponent implements OnInit, OnDestroy {
|
|
|
1224
1583
|
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
1584
|
}
|
|
1226
1585
|
|
|
1586
|
+
/** Visual style of the tab bar. */
|
|
1227
1587
|
type TabsVariant = 'underline' | 'filled';
|
|
1588
|
+
/** Visual size of the tabs. */
|
|
1228
1589
|
type TabsSize = 'sm' | 'md' | 'lg';
|
|
1590
|
+
/**
|
|
1591
|
+
* Tab bar paired with content panels. Child `ea-tab` components register
|
|
1592
|
+
* themselves automatically and the active panel is shown based on the
|
|
1593
|
+
* `activeTab` two-way binding. Supports keyboard navigation
|
|
1594
|
+
* (arrow keys, Home/End).
|
|
1595
|
+
*/
|
|
1229
1596
|
declare class TabsComponent {
|
|
1230
1597
|
readonly registeredTabs: _angular_core.WritableSignal<TabComponent[]>;
|
|
1231
1598
|
readonly variant: _angular_core.InputSignal<TabsVariant>;
|
|
1232
1599
|
readonly size: _angular_core.InputSignal<TabsSize>;
|
|
1233
1600
|
readonly activeTab: _angular_core.ModelSignal<string>;
|
|
1234
|
-
|
|
1601
|
+
/** Fires with the value of the newly active tab. */
|
|
1602
|
+
readonly changed: _angular_core.OutputEmitterRef<string>;
|
|
1603
|
+
/** Registers a child tab so it appears in the tab bar; called automatically by `ea-tab`. */
|
|
1235
1604
|
registerTab(tab: TabComponent): void;
|
|
1605
|
+
/** Removes a previously registered child tab; called automatically by `ea-tab`. */
|
|
1236
1606
|
unregisterTab(tab: TabComponent): void;
|
|
1607
|
+
/** Programmatically activates the tab with the given value. */
|
|
1237
1608
|
selectTab(value: string): void;
|
|
1238
1609
|
handleKeydown(event: KeyboardEvent): void;
|
|
1239
1610
|
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"; "
|
|
1611
|
+
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
1612
|
}
|
|
1242
1613
|
|
|
1243
|
-
|
|
1614
|
+
/** Semantic colour scheme of a tag. */
|
|
1615
|
+
type TagVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
|
|
1616
|
+
/** Visual size of a tag. */
|
|
1244
1617
|
type TagSize = 'sm' | 'md' | 'lg';
|
|
1618
|
+
/**
|
|
1619
|
+
* Inline label commonly used to represent filters, categories, or selected
|
|
1620
|
+
* items. When `removable`, renders a close button that emits `removed`; the
|
|
1621
|
+
* accessible name of that button is configurable via `removeLabel`.
|
|
1622
|
+
*/
|
|
1245
1623
|
declare class TagComponent {
|
|
1246
1624
|
readonly variant: _angular_core.InputSignal<TagVariant>;
|
|
1247
1625
|
readonly size: _angular_core.InputSignal<TagSize>;
|
|
1248
1626
|
readonly removable: _angular_core.InputSignal<boolean>;
|
|
1249
1627
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1628
|
+
readonly removeLabel: _angular_core.InputSignal<string>;
|
|
1629
|
+
/** Fires when the user activates the remove button on a `removable` tag. */
|
|
1250
1630
|
readonly removed: _angular_core.OutputEmitterRef<void>;
|
|
1251
1631
|
readonly hostClasses: _angular_core.Signal<{
|
|
1252
1632
|
[x: string]: boolean;
|
|
@@ -1254,18 +1634,23 @@ declare class TagComponent {
|
|
|
1254
1634
|
}>;
|
|
1255
1635
|
onRemove(event: MouseEvent): void;
|
|
1256
1636
|
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>;
|
|
1637
|
+
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
1638
|
}
|
|
1259
1639
|
|
|
1640
|
+
/** Visual size of the textarea. */
|
|
1260
1641
|
type TextareaSize = 'sm' | 'md' | 'lg';
|
|
1261
|
-
|
|
1642
|
+
/** Axis along which the user is allowed to resize the textarea. */
|
|
1262
1643
|
type TextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';
|
|
1644
|
+
/**
|
|
1645
|
+
* Multiline text field that mirrors the `ea-input` API. Supports configurable
|
|
1646
|
+
* `rows`, `resize` direction, and `maxlength`, and integrates with Angular
|
|
1647
|
+
* forms via `ControlValueAccessor`.
|
|
1648
|
+
*/
|
|
1263
1649
|
declare class TextareaComponent implements ControlValueAccessor {
|
|
1264
1650
|
readonly textareaEl: _angular_core.Signal<ElementRef<HTMLTextAreaElement> | undefined>;
|
|
1265
1651
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
1266
1652
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1267
1653
|
readonly size: _angular_core.InputSignal<TextareaSize>;
|
|
1268
|
-
readonly status: _angular_core.InputSignal<TextareaStatus>;
|
|
1269
1654
|
readonly hint: _angular_core.InputSignal<string | undefined>;
|
|
1270
1655
|
readonly errorMsg: _angular_core.InputSignal<string | undefined>;
|
|
1271
1656
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
@@ -1276,18 +1661,21 @@ declare class TextareaComponent implements ControlValueAccessor {
|
|
|
1276
1661
|
readonly maxlength: _angular_core.InputSignal<number | undefined>;
|
|
1277
1662
|
readonly id: _angular_core.InputSignal<string>;
|
|
1278
1663
|
readonly value: _angular_core.ModelSignal<string>;
|
|
1279
|
-
readonly
|
|
1664
|
+
readonly isFocused: _angular_core.WritableSignal<boolean>;
|
|
1280
1665
|
private readonly _formDisabled;
|
|
1281
|
-
|
|
1282
|
-
readonly
|
|
1666
|
+
/** Fires when the textarea receives focus. */
|
|
1667
|
+
readonly focused: _angular_core.OutputEmitterRef<FocusEvent>;
|
|
1668
|
+
/** Fires when the textarea loses focus. */
|
|
1669
|
+
readonly blurred: _angular_core.OutputEmitterRef<FocusEvent>;
|
|
1283
1670
|
private onChange;
|
|
1284
1671
|
private onTouched;
|
|
1285
1672
|
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
1286
|
-
readonly
|
|
1673
|
+
readonly hasError: _angular_core.Signal<boolean>;
|
|
1287
1674
|
readonly showError: _angular_core.Signal<boolean>;
|
|
1288
1675
|
readonly showHint: _angular_core.Signal<boolean>;
|
|
1289
1676
|
readonly wrapperClasses: _angular_core.Signal<{
|
|
1290
1677
|
[x: string]: boolean;
|
|
1678
|
+
'ea-textarea-wrapper--error': boolean;
|
|
1291
1679
|
'ea-textarea-wrapper--focused': boolean;
|
|
1292
1680
|
'ea-textarea-wrapper--disabled': boolean;
|
|
1293
1681
|
'ea-textarea-wrapper--readonly': boolean;
|
|
@@ -1299,43 +1687,72 @@ declare class TextareaComponent implements ControlValueAccessor {
|
|
|
1299
1687
|
handleInput(event: Event): void;
|
|
1300
1688
|
handleFocus(event: FocusEvent): void;
|
|
1301
1689
|
handleBlur(event: FocusEvent): void;
|
|
1690
|
+
/** Moves keyboard focus to the underlying native textarea element. */
|
|
1302
1691
|
focus(): void;
|
|
1303
1692
|
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; }; "
|
|
1693
|
+
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
1694
|
}
|
|
1306
1695
|
|
|
1696
|
+
/** Semantic colour scheme of a toast. */
|
|
1307
1697
|
type ToastVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
|
|
1698
|
+
/** A single live toast notification rendered by `ea-toast`. */
|
|
1308
1699
|
interface Toast {
|
|
1309
1700
|
id: number;
|
|
1310
1701
|
message: string;
|
|
1311
1702
|
variant: ToastVariant;
|
|
1312
1703
|
duration: number;
|
|
1313
1704
|
}
|
|
1705
|
+
/** Optional configuration for a toast — defaults to `default` variant and 4s duration. */
|
|
1314
1706
|
interface ToastOptions {
|
|
1315
1707
|
variant?: ToastVariant;
|
|
1316
1708
|
duration?: number;
|
|
1317
1709
|
}
|
|
1710
|
+
/**
|
|
1711
|
+
* Application-wide notification service. Use the convenience methods
|
|
1712
|
+
* (`success`, `error`, `warning`, `info`) to push a toast, or call
|
|
1713
|
+
* {@link show} for full control. A single `<ea-toast />` outlet must be
|
|
1714
|
+
* present in the app for toasts to appear.
|
|
1715
|
+
*/
|
|
1318
1716
|
declare class ToastService {
|
|
1319
1717
|
private nextId;
|
|
1320
1718
|
readonly toasts: _angular_core.WritableSignal<Toast[]>;
|
|
1719
|
+
/** Shows a toast and returns its id; pass `duration: 0` to disable auto-dismiss. */
|
|
1321
1720
|
show(message: string, options?: ToastOptions): number;
|
|
1721
|
+
/** Shows a `success` toast and returns its id. */
|
|
1322
1722
|
success(message: string, duration?: number): number;
|
|
1723
|
+
/** Shows an `error` toast and returns its id. */
|
|
1323
1724
|
error(message: string, duration?: number): number;
|
|
1725
|
+
/** Shows a `warning` toast and returns its id. */
|
|
1324
1726
|
warning(message: string, duration?: number): number;
|
|
1727
|
+
/** Shows an `info` toast and returns its id. */
|
|
1325
1728
|
info(message: string, duration?: number): number;
|
|
1729
|
+
/** Removes the toast with the given id, if it is still active. */
|
|
1326
1730
|
dismiss(id: number): void;
|
|
1731
|
+
/** Removes all currently visible toasts. */
|
|
1327
1732
|
clear(): void;
|
|
1328
1733
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastService, never>;
|
|
1329
1734
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ToastService>;
|
|
1330
1735
|
}
|
|
1331
1736
|
|
|
1737
|
+
/**
|
|
1738
|
+
* Outlet that renders the stack of active toasts produced by
|
|
1739
|
+
* {@link ToastService}. Place a single `<ea-toast />` once in the root
|
|
1740
|
+
* template so toasts created from anywhere in the app are surfaced.
|
|
1741
|
+
*/
|
|
1332
1742
|
declare class ToastComponent {
|
|
1333
1743
|
protected readonly toastService: ToastService;
|
|
1744
|
+
protected getRole(toast: Toast): 'alert' | 'status';
|
|
1334
1745
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastComponent, never>;
|
|
1335
1746
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToastComponent, "ea-toast", never, {}, {}, never, never, true, never>;
|
|
1336
1747
|
}
|
|
1337
1748
|
|
|
1749
|
+
/** Placement of the tooltip relative to its host element. */
|
|
1338
1750
|
type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';
|
|
1751
|
+
/**
|
|
1752
|
+
* Attaches a positioned tooltip to its host element. Shows on hover and
|
|
1753
|
+
* focus, hides on leave/blur or Escape, and wires up `aria-describedby` so
|
|
1754
|
+
* the tooltip text is announced to assistive technology.
|
|
1755
|
+
*/
|
|
1339
1756
|
declare class TooltipDirective implements OnDestroy {
|
|
1340
1757
|
private readonly el;
|
|
1341
1758
|
private readonly renderer;
|
|
@@ -1350,10 +1767,12 @@ declare class TooltipDirective implements OnDestroy {
|
|
|
1350
1767
|
ngOnDestroy(): void;
|
|
1351
1768
|
private show;
|
|
1352
1769
|
private hide;
|
|
1770
|
+
private appendDescribedBy;
|
|
1771
|
+
private removeDescribedBy;
|
|
1353
1772
|
private positionTooltip;
|
|
1354
1773
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipDirective, never>;
|
|
1355
1774
|
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
1775
|
}
|
|
1357
1776
|
|
|
1358
1777
|
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,
|
|
1778
|
+
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 };
|