@eagami/ui 5.71.0 → 5.71.2

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.0",
3
+ "version": "5.71.2",
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",
@@ -1,6 +1,29 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import { AfterContentChecked, ElementRef, EnvironmentProviders, InjectionToken, Injector, OnDestroy, OnInit, Signal, TemplateRef, Type } from "@angular/core";
3
3
  import { AbstractControl, ControlValueAccessor } from "@angular/forms";
4
+ /**
5
+ * When a form component shows its validation error.
6
+ *
7
+ * - `'change'`: once the user changes the field and leaves it, or submits the
8
+ * form. A field the user tabs past stays quiet, and a new error waits until
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.
12
+ * - `'touch'`: as soon as the user leaves the field, even unchanged, and live
13
+ * while they edit it after that.
14
+ */
15
+ type EaShowErrorsOn = 'change' | 'blur' | 'touch';
16
+ /**
17
+ * App-wide defaults for form components, set through
18
+ * `provideEagamiUi({ forms })`. A form component's own `showErrorsOn` input
19
+ * wins over these for that one field.
20
+ */
21
+ interface EagamiFormsConfig {
22
+ /** When form components show their validation errors; `'change'` by default. */
23
+ showErrorsOn?: EaShowErrorsOn;
24
+ }
25
+ /** DI token carrying the consumer-supplied form defaults. */
26
+ declare const EAGAMI_FORMS_CONFIG: InjectionToken<EagamiFormsConfig>;
4
27
  /**
5
28
  * BCP 47 locale tags supported out of the box. Consumers select one of these
6
29
  * via `provideEagamiUi({ locale })` or `EagamiI18nService.setLocale()`.
@@ -391,8 +414,8 @@ export interface ModePalette {
391
414
  }
392
415
  /**
393
416
  * Full provider configuration for `provideEagamiUi()`. Extends the i18n config
394
- * with an optional brand palette; omit `palette` to keep the un-themed SCSS
395
- * defaults.
417
+ * with an optional brand palette and form error timing; omit `palette` to keep
418
+ * the un-themed SCSS defaults.
396
419
  */
397
420
  export interface EagamiUiConfig extends EagamiI18nConfig {
398
421
  /**
@@ -401,6 +424,11 @@ export interface EagamiUiConfig extends EagamiI18nConfig {
401
424
  * pairing. A contrast violation throws at bootstrap.
402
425
  */
403
426
  palette?: EagamiPaletteConfig;
427
+ /**
428
+ * App-wide defaults for form components, such as `showErrorsOn` for when
429
+ * they show their validation errors. Omit it to keep the `'change'` default.
430
+ */
431
+ forms?: EagamiFormsConfig;
404
432
  }
405
433
  /**
406
434
  * Configures Eagami UI for the application.
@@ -924,6 +952,8 @@ export declare class AutocompleteComponent implements ControlValueAccessor {
924
952
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
925
953
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
926
954
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
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`. */
956
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
927
957
  readonly minLength: import("@angular/core").InputSignal<number>;
928
958
  /** Maximum number of characters the input accepts (native `maxlength`). */
929
959
  readonly maxLength: import("@angular/core").InputSignal<number | undefined>;
@@ -1061,6 +1091,11 @@ export declare class AutocompleteComponent implements ControlValueAccessor {
1061
1091
  "required": false;
1062
1092
  "isSignal": true;
1063
1093
  };
1094
+ "showErrorsOn": {
1095
+ "alias": "showErrorsOn";
1096
+ "required": false;
1097
+ "isSignal": true;
1098
+ };
1064
1099
  "minLength": {
1065
1100
  "alias": "minLength";
1066
1101
  "required": false;
@@ -2167,6 +2202,8 @@ export declare class CheckboxComponent implements ControlValueAccessor {
2167
2202
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
2168
2203
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
2169
2204
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
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`. */
2206
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
2170
2207
  readonly size: import("@angular/core").InputSignal<EaSize>;
2171
2208
  /**
2172
2209
  * Ellipsize a label too long for the space the checkbox is given, revealing
@@ -2234,6 +2271,11 @@ export declare class CheckboxComponent implements ControlValueAccessor {
2234
2271
  "required": false;
2235
2272
  "isSignal": true;
2236
2273
  };
2274
+ "showErrorsOn": {
2275
+ "alias": "showErrorsOn";
2276
+ "required": false;
2277
+ "isSignal": true;
2278
+ };
2237
2279
  "size": {
2238
2280
  "alias": "size";
2239
2281
  "required": false;
@@ -2550,6 +2592,8 @@ export declare class ColorPickerComponent implements ControlValueAccessor {
2550
2592
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
2551
2593
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
2552
2594
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
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`. */
2596
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
2553
2597
  /** Whether to show the alpha slider. When `false` the emitted value always has alpha = 1. */
2554
2598
  readonly showAlpha: import("@angular/core").InputSignal<boolean>;
2555
2599
  /** Whether to show the clear button when a value is set. */
@@ -2764,6 +2808,11 @@ export declare class ColorPickerComponent implements ControlValueAccessor {
2764
2808
  "required": false;
2765
2809
  "isSignal": true;
2766
2810
  };
2811
+ "showErrorsOn": {
2812
+ "alias": "showErrorsOn";
2813
+ "required": false;
2814
+ "isSignal": true;
2815
+ };
2767
2816
  "showAlpha": {
2768
2817
  "alias": "showAlpha";
2769
2818
  "required": false;
@@ -3571,6 +3620,8 @@ export declare class CodeInputComponent implements ControlValueAccessor {
3571
3620
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
3572
3621
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
3573
3622
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
3623
+ /** 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`. */
3624
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
3574
3625
  readonly disabled: import("@angular/core").InputSignal<boolean>;
3575
3626
  readonly readonly: import("@angular/core").InputSignal<boolean>;
3576
3627
  readonly required: import("@angular/core").InputSignal<boolean>;
@@ -3663,6 +3714,11 @@ export declare class CodeInputComponent implements ControlValueAccessor {
3663
3714
  "required": false;
3664
3715
  "isSignal": true;
3665
3716
  };
3717
+ "showErrorsOn": {
3718
+ "alias": "showErrorsOn";
3719
+ "required": false;
3720
+ "isSignal": true;
3721
+ };
3666
3722
  "disabled": {
3667
3723
  "alias": "disabled";
3668
3724
  "required": false;
@@ -3753,6 +3809,8 @@ export declare class DatePickerComponent implements ControlValueAccessor {
3753
3809
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
3754
3810
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
3755
3811
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
3812
+ /** 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`. */
3813
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
3756
3814
  readonly minDate: import("@angular/core").InputSignal<Date | null>;
3757
3815
  readonly maxDate: import("@angular/core").InputSignal<Date | null>;
3758
3816
  /** Weekdays that cannot be picked, numbered as `Date.getDay()` does: 0 for Sunday through 6 for Saturday. */
@@ -3925,6 +3983,11 @@ export declare class DatePickerComponent implements ControlValueAccessor {
3925
3983
  "required": false;
3926
3984
  "isSignal": true;
3927
3985
  };
3986
+ "showErrorsOn": {
3987
+ "alias": "showErrorsOn";
3988
+ "required": false;
3989
+ "isSignal": true;
3990
+ };
3928
3991
  "minDate": {
3929
3992
  "alias": "minDate";
3930
3993
  "required": false;
@@ -4418,6 +4481,8 @@ export declare class DropdownComponent implements ControlValueAccessor {
4418
4481
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
4419
4482
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
4420
4483
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
4484
+ /** 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`. */
4485
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
4421
4486
  readonly id: import("@angular/core").InputSignal<string>;
4422
4487
  readonly value: import("@angular/core").ModelSignal<string>;
4423
4488
  /** Fires with the new value when the user selects an option or clears the selection. */
@@ -4573,6 +4638,11 @@ export declare class DropdownComponent implements ControlValueAccessor {
4573
4638
  "required": false;
4574
4639
  "isSignal": true;
4575
4640
  };
4641
+ "showErrorsOn": {
4642
+ "alias": "showErrorsOn";
4643
+ "required": false;
4644
+ "isSignal": true;
4645
+ };
4576
4646
  "id": {
4577
4647
  "alias": "id";
4578
4648
  "required": false;
@@ -4818,6 +4888,8 @@ export declare class FormFieldComponent {
4818
4888
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
4819
4889
  /** Per-validator-key message overrides for the projected form control (e.g. `{ required: '...' }`). */
4820
4890
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
4891
+ /** 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`. */
4892
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
4821
4893
  /** Marks the field as required. */
4822
4894
  readonly required: import("@angular/core").InputSignal<boolean>;
4823
4895
  /** Visual size of the field; the label, control text, spacing, and messages scale with it. */
@@ -4872,6 +4944,11 @@ export declare class FormFieldComponent {
4872
4944
  "required": false;
4873
4945
  "isSignal": true;
4874
4946
  };
4947
+ "showErrorsOn": {
4948
+ "alias": "showErrorsOn";
4949
+ "required": false;
4950
+ "isSignal": true;
4951
+ };
4875
4952
  "required": {
4876
4953
  "alias": "required";
4877
4954
  "required": false;
@@ -4904,6 +4981,8 @@ interface ControlErrorStateConfig {
4904
4981
  errorMsg: Signal<string | null | undefined>;
4905
4982
  /** Per-error-key overrides for auto-derived validation messages. */
4906
4983
  errorMessages: Signal<EaErrorMessages | undefined>;
4984
+ /** Field-level `showErrorsOn`; `undefined` falls back to the app-wide `forms` config. */
4985
+ showErrorsOn?: Signal<EaShowErrorsOn | undefined>;
4907
4986
  }
4908
4987
  interface ControlErrorState {
4909
4988
  /** Error text to display, or `null` when the field is valid or untouched. */
@@ -4917,14 +4996,15 @@ interface ControlErrorState {
4917
4996
  * default for the active `ValidationErrors` key.
4918
4997
  *
4919
4998
  * Auto-derived messages surface only once the bound control is `invalid &&
4920
- * touched`, and a new one waits while focus is still inside the field, until
4921
- * the user leaves it or submits the form, so nothing is flagged mid-edit. A
4922
- * field the user only passed through, leaving it without changing it, stays
4923
- * quiet until they change it or the form is submitted, so tabbing past an
4924
- * empty required field never flags it. A
4925
- * message already showing follows the value as it is typed and clears the
4926
- * moment it is fixed. A message revealed by a pointer press moving focus away
4927
- * waits until that press has landed its click. The control arrives as a signal
4999
+ * touched`. Under the default `showErrorsOn: 'change'`, a new one waits while
5000
+ * focus is still inside the field, until the user leaves it or submits the
5001
+ * form, so nothing is flagged mid-edit, and a field the user only passed
5002
+ * through, leaving it without changing it, stays quiet until they change it or
5003
+ * the form is submitted, so tabbing past an empty required field never flags
5004
+ * it. `'blur'` drops the second hold and `'touch'` drops both. A message
5005
+ * already showing follows the value as it is typed and clears the moment it is
5006
+ * fixed. A message revealed by a pointer press moving focus away waits until
5007
+ * that press has landed its click, in every mode. The control arrives as a signal
4928
5008
  * so callers decide how it is resolved: from the host's own `NgControl` (CVA
4929
5009
  * components) or from projected content (`<ea-form-field>`).
4930
5010
  */
@@ -5000,6 +5080,8 @@ export declare class FileUploaderComponent implements ControlValueAccessor {
5000
5080
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
5001
5081
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
5002
5082
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
5083
+ /** 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`. */
5084
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
5003
5085
  readonly size: import("@angular/core").InputSignal<EaSize>;
5004
5086
  /**
5005
5087
  * `dropzone` renders the drag-and-drop area; `button` renders a compact
@@ -5149,6 +5231,11 @@ export declare class FileUploaderComponent implements ControlValueAccessor {
5149
5231
  "required": false;
5150
5232
  "isSignal": true;
5151
5233
  };
5234
+ "showErrorsOn": {
5235
+ "alias": "showErrorsOn";
5236
+ "required": false;
5237
+ "isSignal": true;
5238
+ };
5152
5239
  "size": {
5153
5240
  "alias": "size";
5154
5241
  "required": false;
@@ -5314,6 +5401,8 @@ export declare class InputComponent implements ControlValueAccessor {
5314
5401
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
5315
5402
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
5316
5403
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
5404
+ /** 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`. */
5405
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
5317
5406
  /** Disables the field. */
5318
5407
  readonly disabled: import("@angular/core").InputSignal<boolean>;
5319
5408
  /** Renders the field read-only. */
@@ -5493,6 +5582,11 @@ export declare class InputComponent implements ControlValueAccessor {
5493
5582
  "required": false;
5494
5583
  "isSignal": true;
5495
5584
  };
5585
+ "showErrorsOn": {
5586
+ "alias": "showErrorsOn";
5587
+ "required": false;
5588
+ "isSignal": true;
5589
+ };
5496
5590
  "disabled": {
5497
5591
  "alias": "disabled";
5498
5592
  "required": false;
@@ -6057,6 +6151,8 @@ export declare class MultiSelectComponent implements ControlValueAccessor {
6057
6151
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
6058
6152
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
6059
6153
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
6154
+ /** 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`. */
6155
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
6060
6156
  /** Toggle the search input at the top of the popover. */
6061
6157
  readonly searchable: import("@angular/core").InputSignal<boolean>;
6062
6158
  /** Toggle the "Select all" row at the top of the option list. */
@@ -6301,6 +6397,11 @@ export declare class MultiSelectComponent implements ControlValueAccessor {
6301
6397
  "required": false;
6302
6398
  "isSignal": true;
6303
6399
  };
6400
+ "showErrorsOn": {
6401
+ "alias": "showErrorsOn";
6402
+ "required": false;
6403
+ "isSignal": true;
6404
+ };
6304
6405
  "searchable": {
6305
6406
  "alias": "searchable";
6306
6407
  "required": false;
@@ -6381,6 +6482,8 @@ export declare class NumberInputComponent implements ControlValueAccessor {
6381
6482
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
6382
6483
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
6383
6484
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
6485
+ /** 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`. */
6486
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
6384
6487
  /** Disables the field. */
6385
6488
  readonly disabled: import("@angular/core").InputSignal<boolean>;
6386
6489
  /** Renders the field read-only. */
@@ -6494,6 +6597,11 @@ export declare class NumberInputComponent implements ControlValueAccessor {
6494
6597
  "required": false;
6495
6598
  "isSignal": true;
6496
6599
  };
6600
+ "showErrorsOn": {
6601
+ "alias": "showErrorsOn";
6602
+ "required": false;
6603
+ "isSignal": true;
6604
+ };
6497
6605
  "disabled": {
6498
6606
  "alias": "disabled";
6499
6607
  "required": false;
@@ -6985,6 +7093,8 @@ export declare class RadioGroupComponent implements ControlValueAccessor {
6985
7093
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
6986
7094
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
6987
7095
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
7096
+ /** 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`. */
7097
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
6988
7098
  readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
6989
7099
  /** Space-separated ids of the elements whose text names the group, such as a label outside the component. */
6990
7100
  readonly ariaLabelledby: import("@angular/core").InputSignal<string | undefined>;
@@ -7073,6 +7183,11 @@ export declare class RadioGroupComponent implements ControlValueAccessor {
7073
7183
  "required": false;
7074
7184
  "isSignal": true;
7075
7185
  };
7186
+ "showErrorsOn": {
7187
+ "alias": "showErrorsOn";
7188
+ "required": false;
7189
+ "isSignal": true;
7190
+ };
7076
7191
  "ariaLabel": {
7077
7192
  "alias": "aria-label";
7078
7193
  "required": false;
@@ -7170,6 +7285,8 @@ export declare class RangeSliderComponent implements ControlValueAccessor {
7170
7285
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
7171
7286
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
7172
7287
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
7288
+ /** 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`. */
7289
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
7173
7290
  readonly min: import("@angular/core").InputSignal<number>;
7174
7291
  readonly max: import("@angular/core").InputSignal<number>;
7175
7292
  readonly step: import("@angular/core").InputSignal<number>;
@@ -7268,6 +7385,11 @@ export declare class RangeSliderComponent implements ControlValueAccessor {
7268
7385
  "required": false;
7269
7386
  "isSignal": true;
7270
7387
  };
7388
+ "showErrorsOn": {
7389
+ "alias": "showErrorsOn";
7390
+ "required": false;
7391
+ "isSignal": true;
7392
+ };
7271
7393
  "min": {
7272
7394
  "alias": "min";
7273
7395
  "required": false;
@@ -7384,6 +7506,8 @@ export declare class RatingComponent implements ControlValueAccessor {
7384
7506
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
7385
7507
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
7386
7508
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
7509
+ /** 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`. */
7510
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
7387
7511
  readonly size: import("@angular/core").InputSignal<EaSize>;
7388
7512
  readonly min: import("@angular/core").InputSignal<number>;
7389
7513
  readonly max: import("@angular/core").InputSignal<number>;
@@ -7490,6 +7614,11 @@ export declare class RatingComponent implements ControlValueAccessor {
7490
7614
  "required": false;
7491
7615
  "isSignal": true;
7492
7616
  };
7617
+ "showErrorsOn": {
7618
+ "alias": "showErrorsOn";
7619
+ "required": false;
7620
+ "isSignal": true;
7621
+ };
7493
7622
  "size": {
7494
7623
  "alias": "size";
7495
7624
  "required": false;
@@ -7577,6 +7706,8 @@ export declare class SegmentedComponent implements ControlValueAccessor {
7577
7706
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
7578
7707
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
7579
7708
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
7709
+ /** 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`. */
7710
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
7580
7711
  readonly size: import("@angular/core").InputSignal<EaSize>;
7581
7712
  readonly disabled: import("@angular/core").InputSignal<boolean>;
7582
7713
  readonly required: import("@angular/core").InputSignal<boolean>;
@@ -7657,6 +7788,11 @@ export declare class SegmentedComponent implements ControlValueAccessor {
7657
7788
  "required": false;
7658
7789
  "isSignal": true;
7659
7790
  };
7791
+ "showErrorsOn": {
7792
+ "alias": "showErrorsOn";
7793
+ "required": false;
7794
+ "isSignal": true;
7795
+ };
7660
7796
  "size": {
7661
7797
  "alias": "size";
7662
7798
  "required": false;
@@ -7759,6 +7895,8 @@ export declare class SliderComponent implements ControlValueAccessor {
7759
7895
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
7760
7896
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
7761
7897
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
7898
+ /** 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`. */
7899
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
7762
7900
  /** Force the error-state styling without binding `errorMsg`. Lets consumers
7763
7901
  * render the error text themselves (e.g. above the slider in a form layout)
7764
7902
  * while still getting the built-in recolour of the fill and thumb. */
@@ -7859,6 +7997,11 @@ export declare class SliderComponent implements ControlValueAccessor {
7859
7997
  "required": false;
7860
7998
  "isSignal": true;
7861
7999
  };
8000
+ "showErrorsOn": {
8001
+ "alias": "showErrorsOn";
8002
+ "required": false;
8003
+ "isSignal": true;
8004
+ };
7862
8005
  "hasError": {
7863
8006
  "alias": "hasError";
7864
8007
  "required": false;
@@ -8292,6 +8435,8 @@ export declare class SwitchComponent implements ControlValueAccessor {
8292
8435
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
8293
8436
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
8294
8437
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
8438
+ /** 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`. */
8439
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
8295
8440
  readonly size: import("@angular/core").InputSignal<EaSize>;
8296
8441
  /**
8297
8442
  * Status tone for the track: a tinted wash with a toned border while off and
@@ -8352,6 +8497,11 @@ export declare class SwitchComponent implements ControlValueAccessor {
8352
8497
  "required": false;
8353
8498
  "isSignal": true;
8354
8499
  };
8500
+ "showErrorsOn": {
8501
+ "alias": "showErrorsOn";
8502
+ "required": false;
8503
+ "isSignal": true;
8504
+ };
8355
8505
  "size": {
8356
8506
  "alias": "size";
8357
8507
  "required": false;
@@ -8850,6 +9000,8 @@ export declare class TextareaComponent implements ControlValueAccessor {
8850
9000
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
8851
9001
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
8852
9002
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
9003
+ /** 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`. */
9004
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
8853
9005
  readonly disabled: import("@angular/core").InputSignal<boolean>;
8854
9006
  readonly readonly: import("@angular/core").InputSignal<boolean>;
8855
9007
  readonly required: import("@angular/core").InputSignal<boolean>;
@@ -8971,6 +9123,11 @@ export declare class TextareaComponent implements ControlValueAccessor {
8971
9123
  "required": false;
8972
9124
  "isSignal": true;
8973
9125
  };
9126
+ "showErrorsOn": {
9127
+ "alias": "showErrorsOn";
9128
+ "required": false;
9129
+ "isSignal": true;
9130
+ };
8974
9131
  "disabled": {
8975
9132
  "alias": "disabled";
8976
9133
  "required": false;
@@ -9086,6 +9243,8 @@ export declare class TimePickerComponent implements ControlValueAccessor {
9086
9243
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
9087
9244
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
9088
9245
  readonly errorMessages: import("@angular/core").InputSignal<Partial<Record<string, string | null>> | undefined>;
9246
+ /** 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`. */
9247
+ readonly showErrorsOn: import("@angular/core").InputSignal<EaShowErrorsOn | undefined>;
9089
9248
  /** Display format for the trigger label. Wire value is always 24h. */
9090
9249
  readonly format: import("@angular/core").InputSignal<TimePickerFormat>;
9091
9250
  readonly includeSeconds: import("@angular/core").InputSignal<boolean>;
@@ -9297,6 +9456,11 @@ export declare class TimePickerComponent implements ControlValueAccessor {
9297
9456
  "required": false;
9298
9457
  "isSignal": true;
9299
9458
  };
9459
+ "showErrorsOn": {
9460
+ "alias": "showErrorsOn";
9461
+ "required": false;
9462
+ "isSignal": true;
9463
+ };
9300
9464
  "format": {
9301
9465
  "alias": "format";
9302
9466
  "required": false;
@@ -14034,4 +14198,4 @@ export declare class ZoomOutIconComponent extends IconComponentBase {
14034
14198
  static ɵfac: i0.ɵɵFactoryDeclaration<ZoomOutIconComponent, never>;
14035
14199
  static ɵcmp: i0.ɵɵComponentDeclaration<ZoomOutIconComponent, "ea-icon-zoom-out", never, {}, {}, never, never, true, never>;
14036
14200
  }
14037
- export type { ChartCurve, ChartLabelOrientation, ChartPointEvent, ChartReferenceLine, ChartSeries, ChartSize, EaErrorMessages, EaValidationErrorKey };
14201
+ export type { ChartCurve, ChartLabelOrientation, ChartPointEvent, ChartReferenceLine, ChartSeries, ChartSize, EaErrorMessages, EaShowErrorsOn, EaValidationErrorKey, EagamiFormsConfig };