@eagami/ui 5.34.0 → 5.36.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/fesm2022/eagami-ui.mjs +173 -36
- package/fesm2022/eagami-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/eagami-ui.d.ts +45 -12
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eagami/ui",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.36.0",
|
|
4
4
|
"description": "Lightweight, accessible, themeable Angular UI component library and icon set built on CSS custom properties",
|
|
5
5
|
"author": "Michal Wiraszka <michal@eagami.com>",
|
|
6
6
|
"license": "MIT",
|
package/types/eagami-ui.d.ts
CHANGED
|
@@ -979,11 +979,13 @@ declare class BadgeComponent {
|
|
|
979
979
|
readonly variant: _angular_core.InputSignal<BadgeVariant>;
|
|
980
980
|
readonly size: _angular_core.InputSignal<BadgeSize>;
|
|
981
981
|
readonly shape: _angular_core.InputSignal<BadgeShape>;
|
|
982
|
+
readonly uppercase: _angular_core.InputSignal<boolean>;
|
|
982
983
|
readonly hostClasses: _angular_core.Signal<{
|
|
983
984
|
[x: string]: boolean;
|
|
985
|
+
'ea-badge--uppercase': boolean;
|
|
984
986
|
}>;
|
|
985
987
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BadgeComponent, never>;
|
|
986
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BadgeComponent, "ea-badge", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
988
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BadgeComponent, "ea-badge", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "uppercase": { "alias": "uppercase"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
987
989
|
}
|
|
988
990
|
|
|
989
991
|
/** Visual style of the separator rendered between breadcrumb items. */
|
|
@@ -1034,8 +1036,9 @@ type ButtonType = 'button' | 'submit' | 'reset';
|
|
|
1034
1036
|
* Standard action button supporting primary, secondary, ghost, and danger
|
|
1035
1037
|
* variants. Includes a loading state that swaps the label for a spinner while
|
|
1036
1038
|
* preserving the rendered width. Chrome is tunable per instance via
|
|
1037
|
-
* `--ea-button-padding
|
|
1038
|
-
* icon-only button comes down to little more than its glyph
|
|
1039
|
+
* `--ea-button-padding`, `--ea-button-min-height` and `--ea-button-radius`,
|
|
1040
|
+
* which is how an icon-only button comes down to little more than its glyph
|
|
1041
|
+
* and how a call-to-action becomes a pill.
|
|
1039
1042
|
*/
|
|
1040
1043
|
declare class ButtonComponent {
|
|
1041
1044
|
readonly variant: _angular_core.InputSignal<ButtonVariant>;
|
|
@@ -1044,6 +1047,7 @@ declare class ButtonComponent {
|
|
|
1044
1047
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1045
1048
|
readonly loading: _angular_core.InputSignal<boolean>;
|
|
1046
1049
|
readonly fullWidth: _angular_core.InputSignal<boolean>;
|
|
1050
|
+
readonly uppercase: _angular_core.InputSignal<boolean>;
|
|
1047
1051
|
/** Optional icon component rendered to the left of the label. */
|
|
1048
1052
|
readonly icon: _angular_core.InputSignal<Type<unknown> | undefined>;
|
|
1049
1053
|
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
@@ -1054,12 +1058,13 @@ declare class ButtonComponent {
|
|
|
1054
1058
|
readonly hostClasses: _angular_core.Signal<{
|
|
1055
1059
|
[x: string]: boolean;
|
|
1056
1060
|
'ea-button--full-width': boolean;
|
|
1061
|
+
'ea-button--uppercase': boolean;
|
|
1057
1062
|
'ea-button--loading': boolean;
|
|
1058
1063
|
'ea-button--disabled': boolean;
|
|
1059
1064
|
}>;
|
|
1060
1065
|
handleClick(event: MouseEvent): void;
|
|
1061
1066
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonComponent, never>;
|
|
1062
|
-
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; }; "icon": { "alias": "icon"; "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>;
|
|
1067
|
+
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; }; "uppercase": { "alias": "uppercase"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "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>;
|
|
1063
1068
|
}
|
|
1064
1069
|
|
|
1065
1070
|
/** Visual style of a card surface. */
|
|
@@ -3872,6 +3877,7 @@ declare class TagComponent {
|
|
|
3872
3877
|
* navigation, since roles like `combobox` forbid focusable descendants.
|
|
3873
3878
|
*/
|
|
3874
3879
|
readonly removeTabbable: _angular_core.InputSignal<boolean>;
|
|
3880
|
+
readonly uppercase: _angular_core.InputSignal<boolean>;
|
|
3875
3881
|
/** Fires when the user activates the remove button on a `removable` tag. */
|
|
3876
3882
|
readonly removed: _angular_core.OutputEmitterRef<void>;
|
|
3877
3883
|
/** Full label text, held only while the rendered label is clipped. */
|
|
@@ -3884,6 +3890,7 @@ declare class TagComponent {
|
|
|
3884
3890
|
readonly hostClasses: _angular_core.Signal<{
|
|
3885
3891
|
[x: string]: boolean;
|
|
3886
3892
|
'ea-tag--disabled': boolean;
|
|
3893
|
+
'ea-tag--uppercase': boolean;
|
|
3887
3894
|
}>;
|
|
3888
3895
|
/** `maxWidth` as a CSS length; a bare number is px, as the input documents. */
|
|
3889
3896
|
protected readonly resolvedMaxWidth: _angular_core.Signal<string | null>;
|
|
@@ -3899,7 +3906,7 @@ declare class TagComponent {
|
|
|
3899
3906
|
*/
|
|
3900
3907
|
private watchLabel;
|
|
3901
3908
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TagComponent, never>;
|
|
3902
|
-
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; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "removeTabbable": { "alias": "removeTabbable"; "required": false; "isSignal": true; }; }, { "removed": "removed"; }, never, ["*"], true, never>;
|
|
3909
|
+
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; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "removeTabbable": { "alias": "removeTabbable"; "required": false; "isSignal": true; }; "uppercase": { "alias": "uppercase"; "required": false; "isSignal": true; }; }, { "removed": "removed"; }, never, ["*"], true, never>;
|
|
3903
3910
|
}
|
|
3904
3911
|
|
|
3905
3912
|
/** Visual size of the textarea. */
|
|
@@ -3988,15 +3995,25 @@ interface ParsedTime {
|
|
|
3988
3995
|
* configurable steps for minutes and seconds, optional seconds column, and
|
|
3989
3996
|
* integrates with Angular forms via `ControlValueAccessor`.
|
|
3990
3997
|
*
|
|
3991
|
-
*
|
|
3992
|
-
*
|
|
3993
|
-
*
|
|
3998
|
+
* The field itself is a text input: a time can be typed by hand and is read
|
|
3999
|
+
* leniently on Enter or blur. Bare digits are a 24-hour clock ("5" is 05:00,
|
|
4000
|
+
* "1234" is 12:34, "123456" adds seconds), `:`, `.`, `h`, and spaces all
|
|
4001
|
+
* separate units ("17h30", "12.34"), and an AM/PM suffix reads the hour on
|
|
4002
|
+
* the 12-hour clock ("5pm" is 17:00). Text that parses to no time is
|
|
4003
|
+
* discarded and the field falls back to the current value; clearing the text
|
|
4004
|
+
* clears the value.
|
|
4005
|
+
*
|
|
4006
|
+
* Keyboard: ArrowDown opens the popover and moves into the hour column. Tab
|
|
4007
|
+
* moves between the hour, minute, (seconds), and AM/PM columns. Each spinner
|
|
4008
|
+
* accepts ArrowUp/ArrowDown to step by 1 (or by the configured step),
|
|
4009
|
+
* PageUp/PageDown for a coarser bump, and digit keys to type a value
|
|
3994
4010
|
* directly. After typing two digits (or one digit that already maxes the
|
|
3995
4011
|
* unit), focus auto-advances to the next column. Backspace clears the typed
|
|
3996
4012
|
* buffer; Escape closes the popover.
|
|
3997
4013
|
*/
|
|
3998
4014
|
declare class TimePickerComponent implements ControlValueAccessor {
|
|
3999
|
-
protected readonly triggerEl: _angular_core.Signal<ElementRef<
|
|
4015
|
+
protected readonly triggerEl: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
|
|
4016
|
+
protected readonly inputEl: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
4000
4017
|
protected readonly hoursEl: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
4001
4018
|
protected readonly minutesEl: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
4002
4019
|
protected readonly secondsEl: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
@@ -4025,6 +4042,8 @@ declare class TimePickerComponent implements ControlValueAccessor {
|
|
|
4025
4042
|
/** Fires with the new value whenever the user changes the time. */
|
|
4026
4043
|
readonly changed: _angular_core.OutputEmitterRef<string | null>;
|
|
4027
4044
|
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
4045
|
+
/** Raw text under edit in the field, or `null` while it mirrors the value. */
|
|
4046
|
+
readonly typedText: _angular_core.WritableSignal<string | null>;
|
|
4028
4047
|
/** Typed-digit buffer for the currently focused column, or `null` when idle. */
|
|
4029
4048
|
readonly editBuffer: _angular_core.WritableSignal<{
|
|
4030
4049
|
unit: Unit;
|
|
@@ -4063,13 +4082,14 @@ declare class TimePickerComponent implements ControlValueAccessor {
|
|
|
4063
4082
|
/** Localized text shown on the trigger. Falls back to placeholder when no value. */
|
|
4064
4083
|
readonly displayValue: _angular_core.Signal<string | null>;
|
|
4065
4084
|
readonly resolvedPlaceholder: _angular_core.Signal<string>;
|
|
4085
|
+
/** What the field's input shows: the text mid-edit, else the formatted value. */
|
|
4086
|
+
readonly triggerText: _angular_core.Signal<string>;
|
|
4066
4087
|
readonly triggerClasses: _angular_core.Signal<{
|
|
4067
4088
|
[x: string]: boolean;
|
|
4068
4089
|
'ea-time-picker__trigger--error': boolean;
|
|
4069
4090
|
'ea-time-picker__trigger--open': boolean;
|
|
4070
4091
|
'ea-time-picker__trigger--disabled': boolean;
|
|
4071
4092
|
'ea-time-picker__trigger--readonly': boolean;
|
|
4072
|
-
'ea-time-picker__trigger--placeholder': boolean;
|
|
4073
4093
|
}>;
|
|
4074
4094
|
readonly wrapperClasses: _angular_core.Signal<{
|
|
4075
4095
|
[x: string]: boolean;
|
|
@@ -4082,7 +4102,12 @@ declare class TimePickerComponent implements ControlValueAccessor {
|
|
|
4082
4102
|
registerOnTouched(fn: () => void): void;
|
|
4083
4103
|
setDisabledState(isDisabled: boolean): void;
|
|
4084
4104
|
constructor();
|
|
4085
|
-
|
|
4105
|
+
/**
|
|
4106
|
+
* A click anywhere on the field opens the popover and leaves the focus in
|
|
4107
|
+
* the input, so the caret lands where it was aimed and typing can start
|
|
4108
|
+
* straight away. A click while open only moves the caret.
|
|
4109
|
+
*/
|
|
4110
|
+
onTriggerClick(): void;
|
|
4086
4111
|
/**
|
|
4087
4112
|
* Push focus into the hours input once the popover surface has been
|
|
4088
4113
|
* rendered. `afterNextRender` guarantees the DOM has been updated (and the
|
|
@@ -4094,6 +4119,14 @@ declare class TimePickerComponent implements ControlValueAccessor {
|
|
|
4094
4119
|
onPopoverCloseRequested(): void;
|
|
4095
4120
|
clear(event: Event): void;
|
|
4096
4121
|
handleTriggerKeydown(event: KeyboardEvent): void;
|
|
4122
|
+
onTriggerInput(event: Event): void;
|
|
4123
|
+
onTriggerBlur(): void;
|
|
4124
|
+
/**
|
|
4125
|
+
* Reads the hand-typed text and commits what it says: a time updates the
|
|
4126
|
+
* value, emptied text clears it, and anything unreadable is dropped so the
|
|
4127
|
+
* field falls back to the value it already shows.
|
|
4128
|
+
*/
|
|
4129
|
+
private commitTyped;
|
|
4097
4130
|
/** Stepper button or keyboard arrow nudges one column up or down. */
|
|
4098
4131
|
step(unit: Unit, direction: 1 | -1): void;
|
|
4099
4132
|
/**
|
|
@@ -4115,7 +4148,7 @@ declare class TimePickerComponent implements ControlValueAccessor {
|
|
|
4115
4148
|
/** Switches the AM/PM period in 12h mode by toggling the 12-hour offset. */
|
|
4116
4149
|
togglePeriod(): void;
|
|
4117
4150
|
handlePopoverKeydown(event: KeyboardEvent, unit: Unit): void;
|
|
4118
|
-
/** Escape from anywhere inside the popover closes it and refocuses the
|
|
4151
|
+
/** Escape from anywhere inside the popover closes it and refocuses the field. */
|
|
4119
4152
|
onPopoverEscape(event: Event): void;
|
|
4120
4153
|
/** Select-all on focus so the first keystroke replaces the current value. */
|
|
4121
4154
|
onSpinnerFocus(event: FocusEvent): void;
|