@eagami/ui 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +238 -238
- package/fesm2022/eagami-ui.mjs +1135 -133
- package/fesm2022/eagami-ui.mjs.map +1 -1
- package/package.json +9 -17
- package/src/styles/_tooltip.scss +29 -0
- package/src/styles/eagami-ui.scss +1 -0
- package/types/eagami-ui.d.ts +279 -5
package/package.json
CHANGED
|
@@ -1,20 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eagami/ui",
|
|
3
|
+
"version": "0.3.0",
|
|
3
4
|
"description": "Lightweight, accessible Angular UI component library built on CSS custom properties",
|
|
4
5
|
"author": "Michal Wiraszka <michal@eagami.com>",
|
|
5
|
-
"
|
|
6
|
-
"dependencies": {
|
|
7
|
-
"@angular/common": "21.2.1",
|
|
8
|
-
"@angular/compiler": "21.2.1",
|
|
9
|
-
"@angular/core": "21.2.1",
|
|
10
|
-
"@angular/forms": "21.2.1",
|
|
11
|
-
"@angular/platform-browser": "21.2.1",
|
|
12
|
-
"@angular/platform-browser-dynamic": "21.2.1",
|
|
13
|
-
"@angular/router": "21.2.1",
|
|
14
|
-
"rxjs": "7.8.2",
|
|
15
|
-
"tslib": "2.3.0",
|
|
16
|
-
"zone.js": "0.16.1"
|
|
17
|
-
},
|
|
6
|
+
"license": "MIT",
|
|
18
7
|
"keywords": [
|
|
19
8
|
"angular",
|
|
20
9
|
"ui",
|
|
@@ -22,21 +11,24 @@
|
|
|
22
11
|
"design-system",
|
|
23
12
|
"accessible"
|
|
24
13
|
],
|
|
25
|
-
"
|
|
14
|
+
"homepage": "https://github.com/mwiraszka/eagami-design-system#readme",
|
|
26
15
|
"repository": {
|
|
27
16
|
"type": "git",
|
|
28
17
|
"url": "https://github.com/mwiraszka/eagami-design-system.git"
|
|
29
18
|
},
|
|
30
|
-
"homepage": "https://github.com/mwiraszka/eagami-design-system#readme",
|
|
31
19
|
"bugs": {
|
|
32
20
|
"url": "https://github.com/mwiraszka/eagami-design-system/issues"
|
|
33
21
|
},
|
|
22
|
+
"sideEffects": false,
|
|
34
23
|
"peerDependencies": {
|
|
35
24
|
"@angular/common": "^21.0.0",
|
|
36
25
|
"@angular/core": "^21.0.0",
|
|
37
|
-
"@angular/forms": "^21.0.0"
|
|
26
|
+
"@angular/forms": "^21.0.0",
|
|
27
|
+
"rxjs": "^7.0.0"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"tslib": "^2.3.0"
|
|
38
31
|
},
|
|
39
|
-
"sideEffects": false,
|
|
40
32
|
"module": "fesm2022/eagami-ui.mjs",
|
|
41
33
|
"typings": "types/eagami-ui.d.ts",
|
|
42
34
|
"exports": {
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// TOOLTIP GLOBAL STYLES
|
|
3
|
+
// =============================================================================
|
|
4
|
+
|
|
5
|
+
.ea-tooltip {
|
|
6
|
+
z-index: var(--z-index-tooltip);
|
|
7
|
+
position: absolute;
|
|
8
|
+
padding: var(--space-1-5) var(--space-2-5);
|
|
9
|
+
font-family: var(--font-family-sans);
|
|
10
|
+
font-size: var(--font-size-xs);
|
|
11
|
+
font-weight: var(--font-weight-medium);
|
|
12
|
+
line-height: var(--line-height-normal);
|
|
13
|
+
white-space: nowrap;
|
|
14
|
+
border-radius: var(--radius-md);
|
|
15
|
+
background-color: var(--color-neutral-800);
|
|
16
|
+
color: var(--color-neutral-0);
|
|
17
|
+
pointer-events: none;
|
|
18
|
+
animation: ea-tooltip-fade-in var(--duration-fast) var(--ease-out);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@keyframes ea-tooltip-fade-in {
|
|
22
|
+
from {
|
|
23
|
+
opacity: 0;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
to {
|
|
27
|
+
opacity: 1;
|
|
28
|
+
}
|
|
29
|
+
}
|
package/types/eagami-ui.d.ts
CHANGED
|
@@ -1,8 +1,107 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { OnDestroy, ElementRef, AfterViewInit } from '@angular/core';
|
|
3
3
|
import { ControlValueAccessor } from '@angular/forms';
|
|
4
4
|
import * as _eagami_ui from '@eagami/ui';
|
|
5
5
|
|
|
6
|
+
type AvatarEditorShape = 'circle' | 'square';
|
|
7
|
+
interface AvatarEditorCropEvent {
|
|
8
|
+
blob: Blob;
|
|
9
|
+
dataUrl: string;
|
|
10
|
+
}
|
|
11
|
+
declare class AvatarEditorComponent implements OnDestroy {
|
|
12
|
+
readonly canvasEl: _angular_core.Signal<ElementRef<HTMLCanvasElement> | undefined>;
|
|
13
|
+
readonly fileInputEl: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
14
|
+
readonly shape: _angular_core.InputSignal<AvatarEditorShape>;
|
|
15
|
+
readonly canvasSize: _angular_core.InputSignal<number>;
|
|
16
|
+
readonly currentSrc: _angular_core.InputSignal<string | undefined>;
|
|
17
|
+
readonly accept: _angular_core.InputSignal<string>;
|
|
18
|
+
readonly maxFileSize: _angular_core.InputSignal<number>;
|
|
19
|
+
readonly minZoom: _angular_core.InputSignal<number>;
|
|
20
|
+
readonly maxZoom: _angular_core.InputSignal<number>;
|
|
21
|
+
readonly exportQuality: _angular_core.InputSignal<number>;
|
|
22
|
+
readonly exportType: _angular_core.InputSignal<string>;
|
|
23
|
+
readonly cropped: _angular_core.OutputEmitterRef<AvatarEditorCropEvent>;
|
|
24
|
+
readonly fileError: _angular_core.OutputEmitterRef<string>;
|
|
25
|
+
readonly hasImage: _angular_core.WritableSignal<boolean>;
|
|
26
|
+
readonly isDragOver: _angular_core.WritableSignal<boolean>;
|
|
27
|
+
readonly zoom: _angular_core.WritableSignal<number>;
|
|
28
|
+
private image;
|
|
29
|
+
private offsetX;
|
|
30
|
+
private offsetY;
|
|
31
|
+
private dragStartX;
|
|
32
|
+
private dragStartY;
|
|
33
|
+
private isDragging;
|
|
34
|
+
private initialOffsetX;
|
|
35
|
+
private initialOffsetY;
|
|
36
|
+
readonly hostClasses: _angular_core.Signal<{
|
|
37
|
+
[x: string]: boolean;
|
|
38
|
+
'ea-avatar-editor--has-image': boolean;
|
|
39
|
+
'ea-avatar-editor--drag-over': boolean;
|
|
40
|
+
}>;
|
|
41
|
+
private readonly boundWheel;
|
|
42
|
+
ngOnDestroy(): void;
|
|
43
|
+
onDragOver(event: DragEvent): void;
|
|
44
|
+
onDragLeave(event: DragEvent): void;
|
|
45
|
+
onDrop(event: DragEvent): void;
|
|
46
|
+
onFileSelected(event: Event): void;
|
|
47
|
+
openFilePicker(): void;
|
|
48
|
+
onMouseDown(event: MouseEvent): void;
|
|
49
|
+
onTouchStart(event: TouchEvent): void;
|
|
50
|
+
private readonly onMouseMoveBound;
|
|
51
|
+
private readonly onMouseUpBound;
|
|
52
|
+
private readonly onTouchMoveBound;
|
|
53
|
+
private readonly onTouchEndBound;
|
|
54
|
+
private onMouseMove;
|
|
55
|
+
private onMouseUp;
|
|
56
|
+
private onTouchMove;
|
|
57
|
+
private onTouchEnd;
|
|
58
|
+
private onWheel;
|
|
59
|
+
setZoom(value: number): void;
|
|
60
|
+
onZoomInput(event: Event): void;
|
|
61
|
+
removeImage(): void;
|
|
62
|
+
exportCrop(): void;
|
|
63
|
+
private loadFile;
|
|
64
|
+
private centerImage;
|
|
65
|
+
private getScale;
|
|
66
|
+
private getDrawParams;
|
|
67
|
+
private clampOffset;
|
|
68
|
+
private draw;
|
|
69
|
+
private clearCanvas;
|
|
70
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AvatarEditorComponent, never>;
|
|
71
|
+
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; }; "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; }; }, { "cropped": "cropped"; "fileError": "fileError"; }, never, never, true, never>;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
75
|
+
type AvatarShape = 'circle' | 'square';
|
|
76
|
+
declare class AvatarComponent {
|
|
77
|
+
readonly src: _angular_core.InputSignal<string | undefined>;
|
|
78
|
+
readonly alt: _angular_core.InputSignal<string>;
|
|
79
|
+
readonly initials: _angular_core.InputSignal<string | undefined>;
|
|
80
|
+
readonly size: _angular_core.InputSignal<AvatarSize>;
|
|
81
|
+
readonly shape: _angular_core.InputSignal<AvatarShape>;
|
|
82
|
+
readonly hostClasses: _angular_core.Signal<{
|
|
83
|
+
[x: string]: boolean;
|
|
84
|
+
}>;
|
|
85
|
+
readonly showImage: _angular_core.Signal<boolean>;
|
|
86
|
+
readonly showInitials: _angular_core.Signal<boolean>;
|
|
87
|
+
readonly showFallback: _angular_core.Signal<boolean>;
|
|
88
|
+
handleImageError(event: Event): void;
|
|
89
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AvatarComponent, never>;
|
|
90
|
+
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>;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
type BadgeVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
|
|
94
|
+
type BadgeSize = 'sm' | 'md' | 'lg';
|
|
95
|
+
declare class BadgeComponent {
|
|
96
|
+
readonly variant: _angular_core.InputSignal<BadgeVariant>;
|
|
97
|
+
readonly size: _angular_core.InputSignal<BadgeSize>;
|
|
98
|
+
readonly hostClasses: _angular_core.Signal<{
|
|
99
|
+
[x: string]: boolean;
|
|
100
|
+
}>;
|
|
101
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BadgeComponent, never>;
|
|
102
|
+
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>;
|
|
103
|
+
}
|
|
104
|
+
|
|
6
105
|
type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger';
|
|
7
106
|
type ButtonSize = 'sm' | 'md' | 'lg';
|
|
8
107
|
type ButtonType = 'button' | 'submit' | 'reset';
|
|
@@ -28,7 +127,7 @@ declare class ButtonComponent {
|
|
|
28
127
|
}
|
|
29
128
|
|
|
30
129
|
type CardVariant = 'elevated' | 'outlined' | 'filled';
|
|
31
|
-
type CardPadding = 'none' | 'sm' | 'md' | 'lg';
|
|
130
|
+
type CardPadding = 'none' | 'sm' | 'md' | 'lg' | 'xl';
|
|
32
131
|
type CardHeaderAlign = 'start' | 'center' | 'end';
|
|
33
132
|
declare class CardComponent {
|
|
34
133
|
readonly variant: _angular_core.InputSignal<CardVariant>;
|
|
@@ -94,6 +193,18 @@ declare class DialogComponent {
|
|
|
94
193
|
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>;
|
|
95
194
|
}
|
|
96
195
|
|
|
196
|
+
type DividerOrientation = 'horizontal' | 'vertical';
|
|
197
|
+
declare class DividerComponent {
|
|
198
|
+
readonly orientation: _angular_core.InputSignal<DividerOrientation>;
|
|
199
|
+
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
200
|
+
readonly hostClasses: _angular_core.Signal<{
|
|
201
|
+
[x: string]: boolean;
|
|
202
|
+
'ea-divider--with-label': boolean;
|
|
203
|
+
}>;
|
|
204
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DividerComponent, never>;
|
|
205
|
+
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>;
|
|
206
|
+
}
|
|
207
|
+
|
|
97
208
|
type DropdownSize = 'sm' | 'md' | 'lg';
|
|
98
209
|
interface DropdownOption {
|
|
99
210
|
value: string;
|
|
@@ -119,7 +230,7 @@ declare class DropdownComponent implements ControlValueAccessor {
|
|
|
119
230
|
private onChange;
|
|
120
231
|
private onTouched;
|
|
121
232
|
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
122
|
-
readonly resolvedStatus: _angular_core.Signal<"
|
|
233
|
+
readonly resolvedStatus: _angular_core.Signal<"default" | "error">;
|
|
123
234
|
readonly showError: _angular_core.Signal<boolean>;
|
|
124
235
|
readonly showHint: _angular_core.Signal<boolean>;
|
|
125
236
|
readonly selectedLabel: _angular_core.Signal<string>;
|
|
@@ -147,6 +258,11 @@ declare class AlertCircleIconComponent {
|
|
|
147
258
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AlertCircleIconComponent, "ea-icon-alert-circle", never, {}, {}, never, never, true, never>;
|
|
148
259
|
}
|
|
149
260
|
|
|
261
|
+
declare class CheckIconComponent {
|
|
262
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckIconComponent, never>;
|
|
263
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckIconComponent, "ea-icon-check", never, {}, {}, never, never, true, never>;
|
|
264
|
+
}
|
|
265
|
+
|
|
150
266
|
declare class EyeOffIconComponent {
|
|
151
267
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EyeOffIconComponent, never>;
|
|
152
268
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EyeOffIconComponent, "ea-icon-eye-off", never, {}, {}, never, never, true, never>;
|
|
@@ -157,6 +273,31 @@ declare class EyeIconComponent {
|
|
|
157
273
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EyeIconComponent, "ea-icon-eye", never, {}, {}, never, never, true, never>;
|
|
158
274
|
}
|
|
159
275
|
|
|
276
|
+
declare class GoogleIconComponent {
|
|
277
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<GoogleIconComponent, never>;
|
|
278
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<GoogleIconComponent, "ea-icon-google", never, {}, {}, never, never, true, never>;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
declare class InfoIconComponent {
|
|
282
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InfoIconComponent, never>;
|
|
283
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InfoIconComponent, "ea-icon-info", never, {}, {}, never, never, true, never>;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
declare class LoaderIconComponent {
|
|
287
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoaderIconComponent, never>;
|
|
288
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoaderIconComponent, "ea-icon-loader", never, {}, {}, never, never, true, never>;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
declare class UserIconComponent {
|
|
292
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UserIconComponent, never>;
|
|
293
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UserIconComponent, "ea-icon-user", never, {}, {}, never, never, true, never>;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
declare class XIconComponent {
|
|
297
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XIconComponent, never>;
|
|
298
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<XIconComponent, "ea-icon-x", never, {}, {}, never, never, true, never>;
|
|
299
|
+
}
|
|
300
|
+
|
|
160
301
|
type InputSize = 'sm' | 'md' | 'lg';
|
|
161
302
|
type InputStatus = 'default' | 'error' | 'success';
|
|
162
303
|
type InputType = 'text' | 'email' | 'password' | 'number' | 'search' | 'tel' | 'url';
|
|
@@ -252,5 +393,138 @@ declare class RadioComponent {
|
|
|
252
393
|
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>;
|
|
253
394
|
}
|
|
254
395
|
|
|
255
|
-
|
|
256
|
-
|
|
396
|
+
type SpinnerSize = 'sm' | 'md' | 'lg';
|
|
397
|
+
declare class SpinnerComponent {
|
|
398
|
+
readonly size: _angular_core.InputSignal<SpinnerSize>;
|
|
399
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
400
|
+
readonly hostClasses: _angular_core.Signal<{
|
|
401
|
+
[x: string]: boolean;
|
|
402
|
+
}>;
|
|
403
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SpinnerComponent, never>;
|
|
404
|
+
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>;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
type SwitchSize = 'sm' | 'md' | 'lg';
|
|
408
|
+
declare class SwitchComponent implements ControlValueAccessor {
|
|
409
|
+
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
410
|
+
readonly size: _angular_core.InputSignal<SwitchSize>;
|
|
411
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
412
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
413
|
+
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
414
|
+
readonly changed: _angular_core.OutputEmitterRef<boolean>;
|
|
415
|
+
private readonly _formDisabled;
|
|
416
|
+
private onChange;
|
|
417
|
+
private onTouched;
|
|
418
|
+
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
419
|
+
readonly hostClasses: _angular_core.Signal<{
|
|
420
|
+
[x: string]: boolean;
|
|
421
|
+
'ea-switch--checked': boolean;
|
|
422
|
+
'ea-switch--disabled': boolean;
|
|
423
|
+
}>;
|
|
424
|
+
writeValue(val: boolean): void;
|
|
425
|
+
registerOnChange(fn: (value: boolean) => void): void;
|
|
426
|
+
registerOnTouched(fn: () => void): void;
|
|
427
|
+
setDisabledState(isDisabled: boolean): void;
|
|
428
|
+
handleChange(): void;
|
|
429
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SwitchComponent, never>;
|
|
430
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SwitchComponent, "ea-switch", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "changed": "changed"; }, never, never, true, never>;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
type TextareaSize = 'sm' | 'md' | 'lg';
|
|
434
|
+
type TextareaStatus = 'default' | 'error' | 'success';
|
|
435
|
+
type TextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';
|
|
436
|
+
declare class TextareaComponent implements ControlValueAccessor {
|
|
437
|
+
readonly textareaEl: _angular_core.Signal<ElementRef<HTMLTextAreaElement> | undefined>;
|
|
438
|
+
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
439
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
440
|
+
readonly size: _angular_core.InputSignal<TextareaSize>;
|
|
441
|
+
readonly status: _angular_core.InputSignal<TextareaStatus>;
|
|
442
|
+
readonly hint: _angular_core.InputSignal<string | undefined>;
|
|
443
|
+
readonly errorMsg: _angular_core.InputSignal<string | undefined>;
|
|
444
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
445
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
446
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
447
|
+
readonly rows: _angular_core.InputSignal<number>;
|
|
448
|
+
readonly resize: _angular_core.InputSignal<TextareaResize>;
|
|
449
|
+
readonly maxlength: _angular_core.InputSignal<number | undefined>;
|
|
450
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
451
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
452
|
+
readonly focused: _angular_core.WritableSignal<boolean>;
|
|
453
|
+
private readonly _formDisabled;
|
|
454
|
+
readonly textareaFocused: _angular_core.OutputEmitterRef<FocusEvent>;
|
|
455
|
+
readonly textareaBlurred: _angular_core.OutputEmitterRef<FocusEvent>;
|
|
456
|
+
private onChange;
|
|
457
|
+
private onTouched;
|
|
458
|
+
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
459
|
+
readonly resolvedStatus: _angular_core.Signal<TextareaStatus>;
|
|
460
|
+
readonly showError: _angular_core.Signal<boolean>;
|
|
461
|
+
readonly showHint: _angular_core.Signal<boolean>;
|
|
462
|
+
readonly wrapperClasses: _angular_core.Signal<{
|
|
463
|
+
[x: string]: boolean;
|
|
464
|
+
'ea-textarea-wrapper--focused': boolean;
|
|
465
|
+
'ea-textarea-wrapper--disabled': boolean;
|
|
466
|
+
'ea-textarea-wrapper--readonly': boolean;
|
|
467
|
+
}>;
|
|
468
|
+
writeValue(val: string): void;
|
|
469
|
+
registerOnChange(fn: (value: string) => void): void;
|
|
470
|
+
registerOnTouched(fn: () => void): void;
|
|
471
|
+
setDisabledState(isDisabled: boolean): void;
|
|
472
|
+
handleInput(event: Event): void;
|
|
473
|
+
handleFocus(event: FocusEvent): void;
|
|
474
|
+
handleBlur(event: FocusEvent): void;
|
|
475
|
+
focus(): void;
|
|
476
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextareaComponent, never>;
|
|
477
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextareaComponent, "ea-textarea", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "textareaFocused": "textareaFocused"; "textareaBlurred": "textareaBlurred"; }, never, never, true, never>;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
type ToastVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
|
|
481
|
+
interface Toast {
|
|
482
|
+
id: number;
|
|
483
|
+
message: string;
|
|
484
|
+
variant: ToastVariant;
|
|
485
|
+
duration: number;
|
|
486
|
+
}
|
|
487
|
+
interface ToastOptions {
|
|
488
|
+
variant?: ToastVariant;
|
|
489
|
+
duration?: number;
|
|
490
|
+
}
|
|
491
|
+
declare class ToastService {
|
|
492
|
+
private nextId;
|
|
493
|
+
readonly toasts: _angular_core.WritableSignal<Toast[]>;
|
|
494
|
+
show(message: string, options?: ToastOptions): number;
|
|
495
|
+
success(message: string, duration?: number): number;
|
|
496
|
+
error(message: string, duration?: number): number;
|
|
497
|
+
warning(message: string, duration?: number): number;
|
|
498
|
+
info(message: string, duration?: number): number;
|
|
499
|
+
dismiss(id: number): void;
|
|
500
|
+
clear(): void;
|
|
501
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastService, never>;
|
|
502
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ToastService>;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
declare class ToastComponent {
|
|
506
|
+
protected readonly toastService: ToastService;
|
|
507
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastComponent, never>;
|
|
508
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToastComponent, "ea-toast", never, {}, {}, never, never, true, never>;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';
|
|
512
|
+
declare class TooltipDirective implements OnDestroy {
|
|
513
|
+
private readonly el;
|
|
514
|
+
private readonly renderer;
|
|
515
|
+
readonly eaTooltip: _angular_core.InputSignal<string>;
|
|
516
|
+
readonly tooltipPosition: _angular_core.InputSignal<TooltipPosition>;
|
|
517
|
+
private tooltipEl;
|
|
518
|
+
private readonly showHandler;
|
|
519
|
+
private readonly hideHandler;
|
|
520
|
+
constructor();
|
|
521
|
+
ngOnDestroy(): void;
|
|
522
|
+
private show;
|
|
523
|
+
private hide;
|
|
524
|
+
private positionTooltip;
|
|
525
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipDirective, never>;
|
|
526
|
+
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>;
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
export { AlertCircleIconComponent, AvatarComponent, AvatarEditorComponent, BadgeComponent, ButtonComponent, CardComponent, CheckIconComponent, CheckboxComponent, DialogComponent, DividerComponent, DropdownComponent, EyeIconComponent, EyeOffIconComponent, GoogleIconComponent, InfoIconComponent, InputComponent, LoaderIconComponent, RadioComponent, RadioGroupComponent, SpinnerComponent, SwitchComponent, TextareaComponent, ToastComponent, ToastService, TooltipDirective, UserIconComponent, XIconComponent };
|
|
530
|
+
export type { AvatarEditorCropEvent, AvatarEditorShape, AvatarShape, AvatarSize, BadgeSize, BadgeVariant, ButtonSize, ButtonType, ButtonVariant, CardHeaderAlign, CardPadding, CardVariant, CheckboxSize, DialogSize, DividerOrientation, DropdownOption, DropdownSize, InputSize, InputStatus, InputType, RadioOrientation, RadioSize, SpinnerSize, SwitchSize, TextareaResize, TextareaSize, TextareaStatus, Toast, ToastOptions, ToastVariant, TooltipPosition };
|