@eagami/ui 5.71.1 → 5.72.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.71.1",
3
+ "version": "5.72.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",
@@ -7,10 +7,12 @@ import { AbstractControl, ControlValueAccessor } from "@angular/forms";
7
7
  * - `'change'`: once the user changes the field and leaves it, or submits the
8
8
  * form. A field the user tabs past stays quiet, and a new error waits until
9
9
  * focus leaves the field.
10
+ * - `'blur'`: as soon as the user leaves the field, even unchanged, while a new
11
+ * error still waits until focus leaves the field.
10
12
  * - `'touch'`: as soon as the user leaves the field, even unchanged, and live
11
13
  * while they edit it after that.
12
14
  */
13
- type EaShowErrorsOn = 'change' | 'touch';
15
+ type EaShowErrorsOn = 'change' | 'blur' | 'touch';
14
16
  /**
15
17
  * App-wide defaults for form components, set through
16
18
  * `provideEagamiUi({ forms })`. A form component's own `showErrorsOn` input
@@ -950,7 +952,7 @@ export declare class AutocompleteComponent implements ControlValueAccessor {
950
952
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
951
953
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
952
954
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
953
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
955
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
954
956
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
955
957
  readonly minLength: import("@angular/core").InputSignal<number>;
956
958
  /** Maximum number of characters the input accepts (native `maxlength`). */
@@ -2200,7 +2202,7 @@ export declare class CheckboxComponent implements ControlValueAccessor {
2200
2202
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
2201
2203
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
2202
2204
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
2203
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
2205
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
2204
2206
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
2205
2207
  readonly size: import("@angular/core").InputSignal<EaSize>;
2206
2208
  /**
@@ -2590,7 +2592,7 @@ export declare class ColorPickerComponent implements ControlValueAccessor {
2590
2592
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
2591
2593
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
2592
2594
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
2593
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
2595
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
2594
2596
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
2595
2597
  /** Whether to show the alpha slider. When `false` the emitted value always has alpha = 1. */
2596
2598
  readonly showAlpha: import("@angular/core").InputSignal<boolean>;
@@ -2965,6 +2967,13 @@ export declare class MenuComponent {
2965
2967
  protected readonly triggerEl: import("@angular/core").WritableSignal<HTMLElement | undefined>;
2966
2968
  protected readonly asContextMenu: import("@angular/core").WritableSignal<boolean>;
2967
2969
  protected readonly anchorPoint: import("@angular/core").WritableSignal<PopoverAnchorPoint | null>;
2970
+ private readonly openedWith;
2971
+ /**
2972
+ * The `contextMenuData` of the `[eaContextMenuTrigger]` host that last opened the
2973
+ * menu, so one menu can act on whichever of many hosts it was opened from. Kept
2974
+ * after the menu closes, and cleared when a trigger button opens it instead.
2975
+ */
2976
+ readonly triggerData: import("@angular/core").Signal<unknown>;
2968
2977
  readonly activeItemId: import("@angular/core").WritableSignal<string | null>;
2969
2978
  constructor();
2970
2979
  /** Toggles the menu open state, anchoring it to the given trigger element. */
@@ -2975,9 +2984,10 @@ export declare class MenuComponent {
2975
2984
  * Opens the menu as the context menu of `anchorEl`: at `point` when given (a
2976
2985
  * pointer position, in viewport coordinates), else at its placement against the
2977
2986
  * anchor. Focuses the first item, closes on any click or context-menu request
2978
- * outside the menu, and hands focus back to wherever it was on close.
2987
+ * outside the menu, and hands focus back to wherever it was on close. `data`
2988
+ * becomes `triggerData()`.
2979
2989
  */
2980
- openAsContextMenu(anchorEl: HTMLElement, point?: PopoverAnchorPoint | null): void;
2990
+ openAsContextMenu(anchorEl: HTMLElement, point?: PopoverAnchorPoint | null, data?: unknown): void;
2981
2991
  private show;
2982
2992
  /**
2983
2993
  * Closes the menu if it is open. Pass `restoreFocus: true` to return focus
@@ -3281,20 +3291,31 @@ export type ContextMenuPosition = 'pointer' | 'anchor';
3281
3291
  export type ContextMenuTarget = MenuComponent | PopoverComponent;
3282
3292
  /**
3283
3293
  * Opens an `<ea-menu>` or `<ea-popover>` as the context menu of its host: on a
3284
- * right-click or long press, or from the keyboard with Shift+F10 or the
3294
+ * right-click or a touch long press, or from the keyboard with Shift+F10 or the
3285
3295
  * context-menu key while focus is on the host or inside it. The browser's own
3286
3296
  * menu is suppressed only when the target opens, so a `null` target, a disabled
3287
3297
  * menu, or a request something inside the host has already handled leaves it be.
3288
3298
  *
3299
+ * The long press is recognised here rather than left to the browser, since iOS
3300
+ * Safari never turns one into a `contextmenu` event. While a target is set, the
3301
+ * host also drops the iOS link and image preview a long press would raise.
3302
+ *
3289
3303
  * A menu opens straight away. A popover's parent drives its `[open]` state, so it
3290
3304
  * emits `openRequested` with the point to bind to `[anchorPoint]` instead; give it
3291
3305
  * `[contextMenu]="true"` so it takes focus and dismisses like a context menu.
3292
3306
  *
3307
+ * One menu can serve many hosts: give each its own `contextMenuData`, and the
3308
+ * menu's `triggerData()` holds the data of whichever host opened it.
3309
+ *
3293
3310
  * @example
3294
3311
  * ```html
3295
- * <article [eaContextMenuTrigger]="actions">Right-click me</article>
3312
+ * @for (file of files; track file.id) {
3313
+ * <article [eaContextMenuTrigger]="actions" [contextMenuData]="file">
3314
+ * {{ file.name }}
3315
+ * </article>
3316
+ * }
3296
3317
  * <ea-menu #actions>
3297
- * <ea-menu-item>Rename</ea-menu-item>
3318
+ * <ea-menu-item (clicked)="rename(actions.triggerData())">Rename</ea-menu-item>
3298
3319
  * </ea-menu>
3299
3320
  * ```
3300
3321
  */
@@ -3307,9 +3328,14 @@ export declare class ContextMenuTriggerDirective {
3307
3328
  * `anchor` opens at the target's placement against the host instead.
3308
3329
  */
3309
3330
  readonly contextMenuPosition: import("@angular/core").InputSignal<ContextMenuPosition>;
3331
+ /** Handed to an `<ea-menu>` target as it opens, where its `triggerData()` reads it back. */
3332
+ readonly contextMenuData: import("@angular/core").InputSignal<unknown>;
3333
+ constructor();
3310
3334
  onContextMenu(event: MouseEvent): void;
3311
3335
  onKeydown(event: KeyboardEvent): void;
3312
3336
  private request;
3337
+ private canOpen;
3338
+ private open;
3313
3339
  static ɵfac: i0.ɵɵFactoryDeclaration<ContextMenuTriggerDirective, never>;
3314
3340
  static ɵdir: i0.ɵɵDirectiveDeclaration<ContextMenuTriggerDirective, "[eaContextMenuTrigger]", never, {
3315
3341
  "target": {
@@ -3322,6 +3348,11 @@ export declare class ContextMenuTriggerDirective {
3322
3348
  "required": false;
3323
3349
  "isSignal": true;
3324
3350
  };
3351
+ "contextMenuData": {
3352
+ "alias": "contextMenuData";
3353
+ "required": false;
3354
+ "isSignal": true;
3355
+ };
3325
3356
  }, {}, never, never, true, never>;
3326
3357
  }
3327
3358
  /** Vertical density preset for table rows and header cells. */
@@ -3361,7 +3392,11 @@ export interface DataTableRowContextMenuEvent<T = Record<string, unknown>> {
3361
3392
  readonly rowElement: HTMLElement;
3362
3393
  /** Where to open a menu: the pointer, or below the focused row or cell for a keyboard request. */
3363
3394
  readonly point: PopoverAnchorPoint;
3364
- /** The originating event; call `preventDefault()` on it to suppress the browser's own menu. */
3395
+ /**
3396
+ * The originating event, or a stand-in `contextmenu` event for a touch long press;
3397
+ * call `preventDefault()` on it to claim the request, which also suppresses the
3398
+ * browser's own menu.
3399
+ */
3365
3400
  readonly event: MouseEvent | KeyboardEvent;
3366
3401
  }
3367
3402
  /** Current sort state: which column is sorted and in which direction. */
@@ -3378,6 +3413,7 @@ export interface DataTableSortState {
3378
3413
  export declare class DataTableComponent<T = Record<string, unknown>> {
3379
3414
  private readonly i18n;
3380
3415
  private readonly host;
3416
+ private readonly rowEls;
3381
3417
  private readonly activeCell;
3382
3418
  private static readonly PAGE_JUMP;
3383
3419
  private keyboardRequestPending;
@@ -3473,6 +3509,7 @@ export declare class DataTableComponent<T = Record<string, unknown>> {
3473
3509
  rowTabindex(row: T): number | null;
3474
3510
  onRowActivate(row: T, event?: Event): void;
3475
3511
  onRowContextMenu(row: T, rowElement: HTMLElement, event: MouseEvent | KeyboardEvent): void;
3512
+ private onRowLongPress;
3476
3513
  clearKeyboardRequest(): void;
3477
3514
  onCellFocus(row: number, col: number): void;
3478
3515
  onGridKeydown(event: KeyboardEvent): void;
@@ -3618,7 +3655,7 @@ export declare class CodeInputComponent implements ControlValueAccessor {
3618
3655
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
3619
3656
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
3620
3657
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
3621
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
3658
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
3622
3659
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
3623
3660
  readonly disabled: import("@angular/core").InputSignal<boolean>;
3624
3661
  readonly readonly: import("@angular/core").InputSignal<boolean>;
@@ -3807,7 +3844,7 @@ export declare class DatePickerComponent implements ControlValueAccessor {
3807
3844
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
3808
3845
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
3809
3846
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
3810
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
3847
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
3811
3848
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
3812
3849
  readonly minDate: import("@angular/core").InputSignal<Date | null>;
3813
3850
  readonly maxDate: import("@angular/core").InputSignal<Date | null>;
@@ -4479,7 +4516,7 @@ export declare class DropdownComponent implements ControlValueAccessor {
4479
4516
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
4480
4517
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
4481
4518
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
4482
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
4519
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
4483
4520
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
4484
4521
  readonly id: import("@angular/core").InputSignal<string>;
4485
4522
  readonly value: import("@angular/core").ModelSignal<string>;
@@ -4886,7 +4923,7 @@ export declare class FormFieldComponent {
4886
4923
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
4887
4924
  /** Per-validator-key message overrides for the projected form control (e.g. `{ required: '...' }`). */
4888
4925
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
4889
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
4926
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
4890
4927
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
4891
4928
  /** Marks the field as required. */
4892
4929
  readonly required: import("@angular/core").InputSignal<boolean>;
@@ -4999,10 +5036,10 @@ interface ControlErrorState {
4999
5036
  * form, so nothing is flagged mid-edit, and a field the user only passed
5000
5037
  * through, leaving it without changing it, stays quiet until they change it or
5001
5038
  * the form is submitted, so tabbing past an empty required field never flags
5002
- * it. `'touch'` drops both holds. A message already showing follows the value
5003
- * as it is typed and clears the moment it is fixed. A message revealed by a
5004
- * pointer press moving focus away waits until that press has landed its click,
5005
- * in either mode. The control arrives as a signal
5039
+ * it. `'blur'` drops the second hold and `'touch'` drops both. A message
5040
+ * already showing follows the value as it is typed and clears the moment it is
5041
+ * fixed. A message revealed by a pointer press moving focus away waits until
5042
+ * that press has landed its click, in every mode. The control arrives as a signal
5006
5043
  * so callers decide how it is resolved: from the host's own `NgControl` (CVA
5007
5044
  * components) or from projected content (`<ea-form-field>`).
5008
5045
  */
@@ -5078,7 +5115,7 @@ export declare class FileUploaderComponent implements ControlValueAccessor {
5078
5115
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
5079
5116
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
5080
5117
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
5081
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
5118
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
5082
5119
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
5083
5120
  readonly size: import("@angular/core").InputSignal<EaSize>;
5084
5121
  /**
@@ -5399,7 +5436,7 @@ export declare class InputComponent implements ControlValueAccessor {
5399
5436
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
5400
5437
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
5401
5438
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
5402
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
5439
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
5403
5440
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
5404
5441
  /** Disables the field. */
5405
5442
  readonly disabled: import("@angular/core").InputSignal<boolean>;
@@ -6149,7 +6186,7 @@ export declare class MultiSelectComponent implements ControlValueAccessor {
6149
6186
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
6150
6187
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
6151
6188
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
6152
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
6189
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
6153
6190
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
6154
6191
  /** Toggle the search input at the top of the popover. */
6155
6192
  readonly searchable: import("@angular/core").InputSignal<boolean>;
@@ -6480,7 +6517,7 @@ export declare class NumberInputComponent implements ControlValueAccessor {
6480
6517
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
6481
6518
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
6482
6519
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
6483
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
6520
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
6484
6521
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
6485
6522
  /** Disables the field. */
6486
6523
  readonly disabled: import("@angular/core").InputSignal<boolean>;
@@ -7091,7 +7128,7 @@ export declare class RadioGroupComponent implements ControlValueAccessor {
7091
7128
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
7092
7129
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
7093
7130
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
7094
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
7131
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
7095
7132
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
7096
7133
  readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
7097
7134
  /** Space-separated ids of the elements whose text names the group, such as a label outside the component. */
@@ -7283,7 +7320,7 @@ export declare class RangeSliderComponent implements ControlValueAccessor {
7283
7320
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
7284
7321
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
7285
7322
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
7286
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
7323
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
7287
7324
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
7288
7325
  readonly min: import("@angular/core").InputSignal<number>;
7289
7326
  readonly max: import("@angular/core").InputSignal<number>;
@@ -7504,7 +7541,7 @@ export declare class RatingComponent implements ControlValueAccessor {
7504
7541
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
7505
7542
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
7506
7543
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
7507
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
7544
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
7508
7545
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
7509
7546
  readonly size: import("@angular/core").InputSignal<EaSize>;
7510
7547
  readonly min: import("@angular/core").InputSignal<number>;
@@ -7704,7 +7741,7 @@ export declare class SegmentedComponent implements ControlValueAccessor {
7704
7741
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
7705
7742
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
7706
7743
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
7707
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
7744
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
7708
7745
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
7709
7746
  readonly size: import("@angular/core").InputSignal<EaSize>;
7710
7747
  readonly disabled: import("@angular/core").InputSignal<boolean>;
@@ -7893,7 +7930,7 @@ export declare class SliderComponent implements ControlValueAccessor {
7893
7930
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
7894
7931
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
7895
7932
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
7896
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
7933
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
7897
7934
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
7898
7935
  /** Force the error-state styling without binding `errorMsg`. Lets consumers
7899
7936
  * render the error text themselves (e.g. above the slider in a form layout)
@@ -8433,7 +8470,7 @@ export declare class SwitchComponent implements ControlValueAccessor {
8433
8470
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
8434
8471
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
8435
8472
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
8436
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
8473
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
8437
8474
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
8438
8475
  readonly size: import("@angular/core").InputSignal<EaSize>;
8439
8476
  /**
@@ -8998,7 +9035,7 @@ export declare class TextareaComponent implements ControlValueAccessor {
8998
9035
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
8999
9036
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
9000
9037
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
9001
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
9038
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
9002
9039
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
9003
9040
  readonly disabled: import("@angular/core").InputSignal<boolean>;
9004
9041
  readonly readonly: import("@angular/core").InputSignal<boolean>;
@@ -9241,7 +9278,7 @@ export declare class TimePickerComponent implements ControlValueAccessor {
9241
9278
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
9242
9279
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
9243
9280
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
9244
- /** When the error shows: `'change'` once the user changes the field and leaves it, `'touch'` as soon as they leave it, even unchanged; unset follows the app-wide `forms` option of `provideEagamiUi`. */
9281
+ /** When the error shows: `'change'` once the user changes the field and leaves it, `'blur'` once they leave it, even unchanged, `'touch'` the same but live while they edit; unset follows the app-wide `forms` option of `provideEagamiUi`. */
9245
9282
  readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
9246
9283
  /** Display format for the trigger label. Wire value is always 24h. */
9247
9284
  readonly format: import("@angular/core").InputSignal<TimePickerFormat>;