@eagami/ui 5.12.2 → 5.14.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eagami/ui",
3
- "version": "5.12.2",
3
+ "version": "5.14.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",
@@ -168,6 +168,7 @@ interface EagamiMessages {
168
168
  range: (start: string, end: string, total: string) => string;
169
169
  previousPage: string;
170
170
  nextPage: string;
171
+ page: (page: string) => string;
171
172
  };
172
173
  progressBar: {
173
174
  label: string;
@@ -220,6 +221,7 @@ interface EagamiMessages {
220
221
  moveSelectedToSource: string;
221
222
  moveAllToSource: string;
222
223
  empty: string;
224
+ moved: (count: string, listLabel: string) => string;
223
225
  };
224
226
  validation: {
225
227
  required: string;
@@ -819,8 +821,6 @@ declare class AvatarEditorComponent implements OnDestroy {
819
821
  [x: string]: boolean;
820
822
  'ea-avatar-editor--has-image': boolean;
821
823
  'ea-avatar-editor--drag-over': boolean;
822
- 'ea-avatar-editor--compact': boolean;
823
- 'ea-avatar-editor--ultra-compact': boolean;
824
824
  }>;
825
825
  private readonly injector;
826
826
  private readonly boundWheel;
@@ -1429,6 +1429,10 @@ declare class DataTableComponent<T = Record<string, unknown>> {
1429
1429
  private static readonly PAGE_JUMP;
1430
1430
  readonly columns: _angular_core.InputSignal<DataTableColumn<T>[]>;
1431
1431
  readonly data: _angular_core.InputSignal<T[]>;
1432
+ /** Accessible name for the table, announced when it takes focus as a grid. */
1433
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
1434
+ /** Visible caption rendered above the table; also names it for assistive technology. */
1435
+ readonly caption: _angular_core.InputSignal<string | undefined>;
1432
1436
  readonly trackBy: _angular_core.InputSignal<keyof T | undefined>;
1433
1437
  readonly density: _angular_core.InputSignal<DataTableDensity>;
1434
1438
  /** Visual size of the table; density paddings and icons scale with it. */
@@ -1473,7 +1477,7 @@ declare class DataTableComponent<T = Record<string, unknown>> {
1473
1477
  onGridKeydown(event: KeyboardEvent): void;
1474
1478
  private focusCell;
1475
1479
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataTableComponent<any>, never>;
1476
- 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; }; "size": { "alias": "size"; "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; }; "navigable": { "alias": "navigable"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; }, { "sort": "sortChange"; "sorted": "sorted"; "rowActivate": "rowActivate"; }, ["noDataTemplate"], ["ea-paginator"], true, never>;
1480
+ 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; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "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; }; "navigable": { "alias": "navigable"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; }, { "sort": "sortChange"; "sorted": "sorted"; "rowActivate": "rowActivate"; }, ["noDataTemplate"], ["ea-paginator"], true, never>;
1477
1481
  }
1478
1482
 
1479
1483
  /** Visual size of each digit cell. */
@@ -2150,6 +2154,8 @@ declare class InputComponent implements ControlValueAccessor {
2150
2154
  protected readonly i18n: EagamiI18nService;
2151
2155
  /** Text label rendered above the field. */
2152
2156
  readonly label: _angular_core.InputSignal<string | undefined>;
2157
+ /** Accessible name for the control when no visible `label` is set. */
2158
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
2153
2159
  /** Native input type; `password` adds a built-in show/hide toggle. */
2154
2160
  readonly type: _angular_core.InputSignal<InputType>;
2155
2161
  /** Placeholder shown while the field is empty. */
@@ -2242,7 +2248,7 @@ declare class InputComponent implements ControlValueAccessor {
2242
2248
  /** Moves keyboard focus to the underlying native input element. */
2243
2249
  focus(): void;
2244
2250
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputComponent, never>;
2245
- 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; }; "icon": { "alias": "icon"; "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; }; "errorMessages": { "alias": "errorMessages"; "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; }; "list": { "alias": "list"; "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; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "autofocus": { "alias": "autofocus"; "required": false; "isSignal": true; }; "showPasswordToggle": { "alias": "showPasswordToggle"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "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>;
2251
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputComponent, "ea-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "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; }; "errorMessages": { "alias": "errorMessages"; "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; }; "list": { "alias": "list"; "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; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "autofocus": { "alias": "autofocus"; "required": false; "isSignal": true; }; "showPasswordToggle": { "alias": "showPasswordToggle"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "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>;
2246
2252
  }
2247
2253
 
2248
2254
  /** Placement of the menu list relative to its trigger. */
@@ -2338,7 +2344,9 @@ declare class MenuItemComponent {
2338
2344
  */
2339
2345
  declare class MenuTriggerDirective {
2340
2346
  private readonly el;
2347
+ private readonly renderer;
2341
2348
  readonly menu: _angular_core.InputSignal<MenuComponent>;
2349
+ constructor();
2342
2350
  handleClick(): void;
2343
2351
  handleKeydown(event: KeyboardEvent): void;
2344
2352
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuTriggerDirective, never>;
@@ -3420,6 +3428,12 @@ declare class TagComponent {
3420
3428
  readonly removable: _angular_core.InputSignal<boolean>;
3421
3429
  readonly disabled: _angular_core.InputSignal<boolean>;
3422
3430
  readonly removeLabel: _angular_core.InputSignal<string | undefined>;
3431
+ /**
3432
+ * Whether the remove button is a tab stop. Set `false` inside a composite
3433
+ * widget (a combobox trigger, a grid cell) whose own keyboard model owns
3434
+ * navigation, since roles like `combobox` forbid focusable descendants.
3435
+ */
3436
+ readonly removeTabbable: _angular_core.InputSignal<boolean>;
3423
3437
  /** Fires when the user activates the remove button on a `removable` tag. */
3424
3438
  readonly removed: _angular_core.OutputEmitterRef<void>;
3425
3439
  /** Accessible label for the remove button, falling back to the active locale. */
@@ -3430,7 +3444,7 @@ declare class TagComponent {
3430
3444
  }>;
3431
3445
  onRemove(event: MouseEvent): void;
3432
3446
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TagComponent, never>;
3433
- 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>;
3447
+ 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; }; "removeTabbable": { "alias": "removeTabbable"; "required": false; "isSignal": true; }; }, { "removed": "removed"; }, never, ["*"], true, never>;
3434
3448
  }
3435
3449
 
3436
3450
  /** Visual size of the textarea. */
@@ -3445,6 +3459,8 @@ type TextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';
3445
3459
  declare class TextareaComponent implements ControlValueAccessor {
3446
3460
  readonly textareaEl: _angular_core.Signal<ElementRef<HTMLTextAreaElement> | undefined>;
3447
3461
  readonly label: _angular_core.InputSignal<string | undefined>;
3462
+ /** Accessible name for the control when no visible `label` is set. */
3463
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
3448
3464
  readonly placeholder: _angular_core.InputSignal<string>;
3449
3465
  readonly size: _angular_core.InputSignal<EaSize>;
3450
3466
  readonly hint: _angular_core.InputSignal<string | undefined>;
@@ -3496,7 +3512,7 @@ declare class TextareaComponent implements ControlValueAccessor {
3496
3512
  /** Moves keyboard focus to the underlying native textarea element. */
3497
3513
  focus(): void;
3498
3514
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextareaComponent, never>;
3499
- 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; }; "errorMessages": { "alias": "errorMessages"; "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; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "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>;
3515
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextareaComponent, "ea-textarea", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-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; }; "errorMessages": { "alias": "errorMessages"; "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; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "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>;
3500
3516
  }
3501
3517
 
3502
3518
  /** Visual size of the time picker trigger. */
@@ -3916,6 +3932,7 @@ declare class TransferListComponent {
3916
3932
  protected readonly canMoveAllLeft: _angular_core.Signal<boolean>;
3917
3933
  protected readonly resolvedSourceLabel: _angular_core.Signal<string>;
3918
3934
  protected readonly resolvedTargetLabel: _angular_core.Signal<string>;
3935
+ protected readonly announcement: _angular_core.WritableSignal<string>;
3919
3936
  protected readonly hostClasses: _angular_core.Signal<string[]>;
3920
3937
  protected isHighlighted(pane: 'source' | 'target', id: string): boolean;
3921
3938
  protected itemTabindex(pane: 'source' | 'target', index: number, item: TransferListItem): number;
@@ -3931,6 +3948,7 @@ declare class TransferListComponent {
3931
3948
  protected moveAllRight(): void;
3932
3949
  protected moveSelectedLeft(): void;
3933
3950
  protected moveAllLeft(): void;
3951
+ private announceMove;
3934
3952
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TransferListComponent, never>;
3935
3953
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TransferListComponent, "ea-transfer-list", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "sourceLabel": { "alias": "sourceLabel"; "required": false; "isSignal": true; }; "targetLabel": { "alias": "targetLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "selectedIds": "selectedIdsChange"; }, never, never, true, never>;
3936
3954
  }