@eagami/ui 0.2.0 → 0.4.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 +1160 -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 +281 -5
package/package.json
CHANGED
|
@@ -1,20 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eagami/ui",
|
|
3
|
+
"version": "0.4.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,109 @@
|
|
|
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
|
+
constructor();
|
|
43
|
+
ngOnDestroy(): void;
|
|
44
|
+
onDragOver(event: DragEvent): void;
|
|
45
|
+
onDragLeave(event: DragEvent): void;
|
|
46
|
+
onDrop(event: DragEvent): void;
|
|
47
|
+
onFileSelected(event: Event): void;
|
|
48
|
+
openFilePicker(): void;
|
|
49
|
+
onMouseDown(event: MouseEvent): void;
|
|
50
|
+
onTouchStart(event: TouchEvent): void;
|
|
51
|
+
private readonly onMouseMoveBound;
|
|
52
|
+
private readonly onMouseUpBound;
|
|
53
|
+
private readonly onTouchMoveBound;
|
|
54
|
+
private readonly onTouchEndBound;
|
|
55
|
+
private onMouseMove;
|
|
56
|
+
private onMouseUp;
|
|
57
|
+
private onTouchMove;
|
|
58
|
+
private onTouchEnd;
|
|
59
|
+
private onWheel;
|
|
60
|
+
setZoom(value: number): void;
|
|
61
|
+
onZoomInput(event: Event): void;
|
|
62
|
+
removeImage(): void;
|
|
63
|
+
exportCrop(): void;
|
|
64
|
+
private loadFromUrl;
|
|
65
|
+
private loadFile;
|
|
66
|
+
private centerImage;
|
|
67
|
+
private getScale;
|
|
68
|
+
private getDrawParams;
|
|
69
|
+
private clampOffset;
|
|
70
|
+
private draw;
|
|
71
|
+
private clearCanvas;
|
|
72
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AvatarEditorComponent, never>;
|
|
73
|
+
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>;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
77
|
+
type AvatarShape = 'circle' | 'square';
|
|
78
|
+
declare class AvatarComponent {
|
|
79
|
+
readonly src: _angular_core.InputSignal<string | undefined>;
|
|
80
|
+
readonly alt: _angular_core.InputSignal<string>;
|
|
81
|
+
readonly initials: _angular_core.InputSignal<string | undefined>;
|
|
82
|
+
readonly size: _angular_core.InputSignal<AvatarSize>;
|
|
83
|
+
readonly shape: _angular_core.InputSignal<AvatarShape>;
|
|
84
|
+
readonly hostClasses: _angular_core.Signal<{
|
|
85
|
+
[x: string]: boolean;
|
|
86
|
+
}>;
|
|
87
|
+
readonly showImage: _angular_core.Signal<boolean>;
|
|
88
|
+
readonly showInitials: _angular_core.Signal<boolean>;
|
|
89
|
+
readonly showFallback: _angular_core.Signal<boolean>;
|
|
90
|
+
handleImageError(event: Event): void;
|
|
91
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AvatarComponent, never>;
|
|
92
|
+
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>;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
type BadgeVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
|
|
96
|
+
type BadgeSize = 'sm' | 'md' | 'lg';
|
|
97
|
+
declare class BadgeComponent {
|
|
98
|
+
readonly variant: _angular_core.InputSignal<BadgeVariant>;
|
|
99
|
+
readonly size: _angular_core.InputSignal<BadgeSize>;
|
|
100
|
+
readonly hostClasses: _angular_core.Signal<{
|
|
101
|
+
[x: string]: boolean;
|
|
102
|
+
}>;
|
|
103
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BadgeComponent, never>;
|
|
104
|
+
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>;
|
|
105
|
+
}
|
|
106
|
+
|
|
6
107
|
type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger';
|
|
7
108
|
type ButtonSize = 'sm' | 'md' | 'lg';
|
|
8
109
|
type ButtonType = 'button' | 'submit' | 'reset';
|
|
@@ -28,7 +129,7 @@ declare class ButtonComponent {
|
|
|
28
129
|
}
|
|
29
130
|
|
|
30
131
|
type CardVariant = 'elevated' | 'outlined' | 'filled';
|
|
31
|
-
type CardPadding = 'none' | 'sm' | 'md' | 'lg';
|
|
132
|
+
type CardPadding = 'none' | 'sm' | 'md' | 'lg' | 'xl';
|
|
32
133
|
type CardHeaderAlign = 'start' | 'center' | 'end';
|
|
33
134
|
declare class CardComponent {
|
|
34
135
|
readonly variant: _angular_core.InputSignal<CardVariant>;
|
|
@@ -94,6 +195,18 @@ declare class DialogComponent {
|
|
|
94
195
|
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
196
|
}
|
|
96
197
|
|
|
198
|
+
type DividerOrientation = 'horizontal' | 'vertical';
|
|
199
|
+
declare class DividerComponent {
|
|
200
|
+
readonly orientation: _angular_core.InputSignal<DividerOrientation>;
|
|
201
|
+
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
202
|
+
readonly hostClasses: _angular_core.Signal<{
|
|
203
|
+
[x: string]: boolean;
|
|
204
|
+
'ea-divider--with-label': boolean;
|
|
205
|
+
}>;
|
|
206
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DividerComponent, never>;
|
|
207
|
+
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>;
|
|
208
|
+
}
|
|
209
|
+
|
|
97
210
|
type DropdownSize = 'sm' | 'md' | 'lg';
|
|
98
211
|
interface DropdownOption {
|
|
99
212
|
value: string;
|
|
@@ -119,7 +232,7 @@ declare class DropdownComponent implements ControlValueAccessor {
|
|
|
119
232
|
private onChange;
|
|
120
233
|
private onTouched;
|
|
121
234
|
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
122
|
-
readonly resolvedStatus: _angular_core.Signal<"
|
|
235
|
+
readonly resolvedStatus: _angular_core.Signal<"default" | "error">;
|
|
123
236
|
readonly showError: _angular_core.Signal<boolean>;
|
|
124
237
|
readonly showHint: _angular_core.Signal<boolean>;
|
|
125
238
|
readonly selectedLabel: _angular_core.Signal<string>;
|
|
@@ -147,6 +260,11 @@ declare class AlertCircleIconComponent {
|
|
|
147
260
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AlertCircleIconComponent, "ea-icon-alert-circle", never, {}, {}, never, never, true, never>;
|
|
148
261
|
}
|
|
149
262
|
|
|
263
|
+
declare class CheckIconComponent {
|
|
264
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckIconComponent, never>;
|
|
265
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckIconComponent, "ea-icon-check", never, {}, {}, never, never, true, never>;
|
|
266
|
+
}
|
|
267
|
+
|
|
150
268
|
declare class EyeOffIconComponent {
|
|
151
269
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EyeOffIconComponent, never>;
|
|
152
270
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EyeOffIconComponent, "ea-icon-eye-off", never, {}, {}, never, never, true, never>;
|
|
@@ -157,6 +275,31 @@ declare class EyeIconComponent {
|
|
|
157
275
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EyeIconComponent, "ea-icon-eye", never, {}, {}, never, never, true, never>;
|
|
158
276
|
}
|
|
159
277
|
|
|
278
|
+
declare class GoogleIconComponent {
|
|
279
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<GoogleIconComponent, never>;
|
|
280
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<GoogleIconComponent, "ea-icon-google", never, {}, {}, never, never, true, never>;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
declare class InfoIconComponent {
|
|
284
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InfoIconComponent, never>;
|
|
285
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InfoIconComponent, "ea-icon-info", never, {}, {}, never, never, true, never>;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
declare class LoaderIconComponent {
|
|
289
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoaderIconComponent, never>;
|
|
290
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoaderIconComponent, "ea-icon-loader", never, {}, {}, never, never, true, never>;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
declare class UserIconComponent {
|
|
294
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UserIconComponent, never>;
|
|
295
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UserIconComponent, "ea-icon-user", never, {}, {}, never, never, true, never>;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
declare class XIconComponent {
|
|
299
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<XIconComponent, never>;
|
|
300
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<XIconComponent, "ea-icon-x", never, {}, {}, never, never, true, never>;
|
|
301
|
+
}
|
|
302
|
+
|
|
160
303
|
type InputSize = 'sm' | 'md' | 'lg';
|
|
161
304
|
type InputStatus = 'default' | 'error' | 'success';
|
|
162
305
|
type InputType = 'text' | 'email' | 'password' | 'number' | 'search' | 'tel' | 'url';
|
|
@@ -252,5 +395,138 @@ declare class RadioComponent {
|
|
|
252
395
|
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
396
|
}
|
|
254
397
|
|
|
255
|
-
|
|
256
|
-
|
|
398
|
+
type SpinnerSize = 'sm' | 'md' | 'lg';
|
|
399
|
+
declare class SpinnerComponent {
|
|
400
|
+
readonly size: _angular_core.InputSignal<SpinnerSize>;
|
|
401
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
402
|
+
readonly hostClasses: _angular_core.Signal<{
|
|
403
|
+
[x: string]: boolean;
|
|
404
|
+
}>;
|
|
405
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SpinnerComponent, never>;
|
|
406
|
+
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>;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
type SwitchSize = 'sm' | 'md' | 'lg';
|
|
410
|
+
declare class SwitchComponent implements ControlValueAccessor {
|
|
411
|
+
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
412
|
+
readonly size: _angular_core.InputSignal<SwitchSize>;
|
|
413
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
414
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
415
|
+
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
416
|
+
readonly changed: _angular_core.OutputEmitterRef<boolean>;
|
|
417
|
+
private readonly _formDisabled;
|
|
418
|
+
private onChange;
|
|
419
|
+
private onTouched;
|
|
420
|
+
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
421
|
+
readonly hostClasses: _angular_core.Signal<{
|
|
422
|
+
[x: string]: boolean;
|
|
423
|
+
'ea-switch--checked': boolean;
|
|
424
|
+
'ea-switch--disabled': boolean;
|
|
425
|
+
}>;
|
|
426
|
+
writeValue(val: boolean): void;
|
|
427
|
+
registerOnChange(fn: (value: boolean) => void): void;
|
|
428
|
+
registerOnTouched(fn: () => void): void;
|
|
429
|
+
setDisabledState(isDisabled: boolean): void;
|
|
430
|
+
handleChange(): void;
|
|
431
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SwitchComponent, never>;
|
|
432
|
+
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>;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
type TextareaSize = 'sm' | 'md' | 'lg';
|
|
436
|
+
type TextareaStatus = 'default' | 'error' | 'success';
|
|
437
|
+
type TextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';
|
|
438
|
+
declare class TextareaComponent implements ControlValueAccessor {
|
|
439
|
+
readonly textareaEl: _angular_core.Signal<ElementRef<HTMLTextAreaElement> | undefined>;
|
|
440
|
+
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
441
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
442
|
+
readonly size: _angular_core.InputSignal<TextareaSize>;
|
|
443
|
+
readonly status: _angular_core.InputSignal<TextareaStatus>;
|
|
444
|
+
readonly hint: _angular_core.InputSignal<string | undefined>;
|
|
445
|
+
readonly errorMsg: _angular_core.InputSignal<string | undefined>;
|
|
446
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
447
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
448
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
449
|
+
readonly rows: _angular_core.InputSignal<number>;
|
|
450
|
+
readonly resize: _angular_core.InputSignal<TextareaResize>;
|
|
451
|
+
readonly maxlength: _angular_core.InputSignal<number | undefined>;
|
|
452
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
453
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
454
|
+
readonly focused: _angular_core.WritableSignal<boolean>;
|
|
455
|
+
private readonly _formDisabled;
|
|
456
|
+
readonly textareaFocused: _angular_core.OutputEmitterRef<FocusEvent>;
|
|
457
|
+
readonly textareaBlurred: _angular_core.OutputEmitterRef<FocusEvent>;
|
|
458
|
+
private onChange;
|
|
459
|
+
private onTouched;
|
|
460
|
+
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
461
|
+
readonly resolvedStatus: _angular_core.Signal<TextareaStatus>;
|
|
462
|
+
readonly showError: _angular_core.Signal<boolean>;
|
|
463
|
+
readonly showHint: _angular_core.Signal<boolean>;
|
|
464
|
+
readonly wrapperClasses: _angular_core.Signal<{
|
|
465
|
+
[x: string]: boolean;
|
|
466
|
+
'ea-textarea-wrapper--focused': boolean;
|
|
467
|
+
'ea-textarea-wrapper--disabled': boolean;
|
|
468
|
+
'ea-textarea-wrapper--readonly': boolean;
|
|
469
|
+
}>;
|
|
470
|
+
writeValue(val: string): void;
|
|
471
|
+
registerOnChange(fn: (value: string) => void): void;
|
|
472
|
+
registerOnTouched(fn: () => void): void;
|
|
473
|
+
setDisabledState(isDisabled: boolean): void;
|
|
474
|
+
handleInput(event: Event): void;
|
|
475
|
+
handleFocus(event: FocusEvent): void;
|
|
476
|
+
handleBlur(event: FocusEvent): void;
|
|
477
|
+
focus(): void;
|
|
478
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextareaComponent, never>;
|
|
479
|
+
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>;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
type ToastVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
|
|
483
|
+
interface Toast {
|
|
484
|
+
id: number;
|
|
485
|
+
message: string;
|
|
486
|
+
variant: ToastVariant;
|
|
487
|
+
duration: number;
|
|
488
|
+
}
|
|
489
|
+
interface ToastOptions {
|
|
490
|
+
variant?: ToastVariant;
|
|
491
|
+
duration?: number;
|
|
492
|
+
}
|
|
493
|
+
declare class ToastService {
|
|
494
|
+
private nextId;
|
|
495
|
+
readonly toasts: _angular_core.WritableSignal<Toast[]>;
|
|
496
|
+
show(message: string, options?: ToastOptions): number;
|
|
497
|
+
success(message: string, duration?: number): number;
|
|
498
|
+
error(message: string, duration?: number): number;
|
|
499
|
+
warning(message: string, duration?: number): number;
|
|
500
|
+
info(message: string, duration?: number): number;
|
|
501
|
+
dismiss(id: number): void;
|
|
502
|
+
clear(): void;
|
|
503
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastService, never>;
|
|
504
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ToastService>;
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
declare class ToastComponent {
|
|
508
|
+
protected readonly toastService: ToastService;
|
|
509
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastComponent, never>;
|
|
510
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToastComponent, "ea-toast", never, {}, {}, never, never, true, never>;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';
|
|
514
|
+
declare class TooltipDirective implements OnDestroy {
|
|
515
|
+
private readonly el;
|
|
516
|
+
private readonly renderer;
|
|
517
|
+
readonly eaTooltip: _angular_core.InputSignal<string>;
|
|
518
|
+
readonly tooltipPosition: _angular_core.InputSignal<TooltipPosition>;
|
|
519
|
+
private tooltipEl;
|
|
520
|
+
private readonly showHandler;
|
|
521
|
+
private readonly hideHandler;
|
|
522
|
+
constructor();
|
|
523
|
+
ngOnDestroy(): void;
|
|
524
|
+
private show;
|
|
525
|
+
private hide;
|
|
526
|
+
private positionTooltip;
|
|
527
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipDirective, never>;
|
|
528
|
+
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>;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
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 };
|
|
532
|
+
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 };
|