@eagami/ui 5.69.0 → 5.71.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.69.0",
3
+ "version": "5.71.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",
@@ -31,8 +31,10 @@
31
31
 
32
32
  // Native fields use dir="auto" so typed LTR text stays LTR, but that resolves
33
33
  // an empty field to LTR and parks its placeholder on the left. Pin them to the
34
- // inline-end edge so every RTL field reads from the right like the others.
34
+ // inline-end edge so every RTL field reads from the right like the others. The
35
+ // typed placeholder drawn over an empty field follows its placeholder.
35
36
  [dir='rtl'] input[dir='auto'],
36
- [dir='rtl'] textarea[dir='auto'] {
37
+ [dir='rtl'] textarea[dir='auto'],
38
+ [dir='rtl'] ea-typed-placeholder[dir='auto'] {
37
39
  text-align: right;
38
40
  }
@@ -152,6 +152,8 @@ export interface EagamiMessages {
152
152
  fieldLabel: {
153
153
  /** Accessible name of the button that reveals a field label's help. */
154
154
  help: (label: string) => string;
155
+ /** Note after the label of a field that may be left empty, parentheses included. */
156
+ optional: string;
155
157
  };
156
158
  fileUploader: {
157
159
  prompt: string;
@@ -907,6 +909,8 @@ export declare class AutocompleteComponent implements ControlValueAccessor {
907
909
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
908
910
  /** Help revealed by an info button beside the label, as plain text or a template. */
909
911
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
912
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
913
+ readonly optional: import("@angular/core").InputSignal<boolean>;
910
914
  /** Accessible name for the input and suggestion list when no visible label is provided. */
911
915
  readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
912
916
  readonly placeholder: import("@angular/core").InputSignal<string>;
@@ -1002,6 +1006,11 @@ export declare class AutocompleteComponent implements ControlValueAccessor {
1002
1006
  "required": false;
1003
1007
  "isSignal": true;
1004
1008
  };
1009
+ "optional": {
1010
+ "alias": "optional";
1011
+ "required": false;
1012
+ "isSignal": true;
1013
+ };
1005
1014
  "ariaLabel": {
1006
1015
  "alias": "ariaLabel";
1007
1016
  "required": false;
@@ -1921,14 +1930,22 @@ export declare class ButtonComponent {
1921
1930
  readonly ariaLabelledby: import("@angular/core").InputSignal<string | undefined>;
1922
1931
  /** Space-separated ids of the elements that describe the button, e.g. a hint. */
1923
1932
  readonly ariaDescribedby: import("@angular/core").InputSignal<string | undefined>;
1933
+ /** Whether the content this button shows and hides is open, for a disclosure toggle. */
1934
+ readonly ariaExpanded: import("@angular/core").InputSignal<boolean | undefined>;
1935
+ /** Id of the element this button shows, hides or otherwise controls. */
1936
+ readonly ariaControls: import("@angular/core").InputSignal<string | undefined>;
1937
+ private readonly renderer;
1924
1938
  private readonly buttonEl;
1939
+ private readonly ownedAria;
1925
1940
  /** Fires when the button is activated; suppressed while disabled or loading. */
1926
1941
  readonly clicked: import("@angular/core").OutputEmitterRef<MouseEvent>;
1927
1942
  readonly isDisabled: import("@angular/core").Signal<boolean>;
1928
1943
  readonly hostClasses: import("@angular/core").Signal<Record<string, boolean>>;
1944
+ constructor();
1929
1945
  handleClick(event: MouseEvent): void;
1930
1946
  /** Moves keyboard focus to the underlying native button. */
1931
1947
  focus(): void;
1948
+ private reflectAria;
1932
1949
  static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
1933
1950
  static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "ea-button", never, {
1934
1951
  "variant": {
@@ -1996,6 +2013,16 @@ export declare class ButtonComponent {
1996
2013
  "required": false;
1997
2014
  "isSignal": true;
1998
2015
  };
2016
+ "ariaExpanded": {
2017
+ "alias": "aria-expanded";
2018
+ "required": false;
2019
+ "isSignal": true;
2020
+ };
2021
+ "ariaControls": {
2022
+ "alias": "aria-controls";
2023
+ "required": false;
2024
+ "isSignal": true;
2025
+ };
1999
2026
  }, {
2000
2027
  "clicked": "clicked";
2001
2028
  }, never, ["[slot=prefix]", "*", "[slot=suffix]"], true, never>;
@@ -2512,6 +2539,8 @@ export declare class ColorPickerComponent implements ControlValueAccessor {
2512
2539
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
2513
2540
  /** Help revealed by an info button beside the label, as plain text or a template. */
2514
2541
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
2542
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
2543
+ readonly optional: import("@angular/core").InputSignal<boolean>;
2515
2544
  readonly placeholder: import("@angular/core").InputSignal<string | undefined>;
2516
2545
  readonly size: import("@angular/core").InputSignal<EaSize>;
2517
2546
  readonly disabled: import("@angular/core").InputSignal<boolean>;
@@ -2690,6 +2719,11 @@ export declare class ColorPickerComponent implements ControlValueAccessor {
2690
2719
  "required": false;
2691
2720
  "isSignal": true;
2692
2721
  };
2722
+ "optional": {
2723
+ "alias": "optional";
2724
+ "required": false;
2725
+ "isSignal": true;
2726
+ };
2693
2727
  "placeholder": {
2694
2728
  "alias": "placeholder";
2695
2729
  "required": false;
@@ -3527,6 +3561,8 @@ export declare class CodeInputComponent implements ControlValueAccessor {
3527
3561
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
3528
3562
  /** Help revealed by an info button beside the label, as plain text or a template. */
3529
3563
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
3564
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
3565
+ readonly optional: import("@angular/core").InputSignal<boolean>;
3530
3566
  /** Placeholder text spread one character per cell (cell i shows character i). */
3531
3567
  readonly placeholder: import("@angular/core").InputSignal<string>;
3532
3568
  readonly length: import("@angular/core").InputSignal<number>;
@@ -3592,6 +3628,11 @@ export declare class CodeInputComponent implements ControlValueAccessor {
3592
3628
  "required": false;
3593
3629
  "isSignal": true;
3594
3630
  };
3631
+ "optional": {
3632
+ "alias": "optional";
3633
+ "required": false;
3634
+ "isSignal": true;
3635
+ };
3595
3636
  "placeholder": {
3596
3637
  "alias": "placeholder";
3597
3638
  "required": false;
@@ -3698,6 +3739,8 @@ export declare class DatePickerComponent implements ControlValueAccessor {
3698
3739
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
3699
3740
  /** Help revealed by an info button beside the label, as plain text or a template. */
3700
3741
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
3742
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
3743
+ readonly optional: import("@angular/core").InputSignal<boolean>;
3701
3744
  /** Placeholder shown in the field when no date is selected. */
3702
3745
  readonly placeholder: import("@angular/core").InputSignal<string | undefined>;
3703
3746
  /** Space-separated ids of the elements whose text names the field, such as a label outside the component. */
@@ -3832,6 +3875,11 @@ export declare class DatePickerComponent implements ControlValueAccessor {
3832
3875
  "required": false;
3833
3876
  "isSignal": true;
3834
3877
  };
3878
+ "optional": {
3879
+ "alias": "optional";
3880
+ "required": false;
3881
+ "isSignal": true;
3882
+ };
3835
3883
  "placeholder": {
3836
3884
  "alias": "placeholder";
3837
3885
  "required": false;
@@ -4353,6 +4401,8 @@ export declare class DropdownComponent implements ControlValueAccessor {
4353
4401
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
4354
4402
  /** Help revealed by an info button beside the label, as plain text or a template. */
4355
4403
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
4404
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
4405
+ readonly optional: import("@angular/core").InputSignal<boolean>;
4356
4406
  readonly placeholder: import("@angular/core").InputSignal<string | undefined>;
4357
4407
  /** Selectable options, either flat or split into groups. */
4358
4408
  readonly options: import("@angular/core").InputSignal<SelectOptions>;
@@ -4463,6 +4513,11 @@ export declare class DropdownComponent implements ControlValueAccessor {
4463
4513
  "required": false;
4464
4514
  "isSignal": true;
4465
4515
  };
4516
+ "optional": {
4517
+ "alias": "optional";
4518
+ "required": false;
4519
+ "isSignal": true;
4520
+ };
4466
4521
  "placeholder": {
4467
4522
  "alias": "placeholder";
4468
4523
  "required": false;
@@ -4653,11 +4708,15 @@ export declare class FieldLabelComponent {
4653
4708
  readonly help: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
4654
4709
  readonly forId: import("@angular/core").InputSignal<string | undefined>;
4655
4710
  readonly required: import("@angular/core").InputSignal<boolean>;
4711
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
4712
+ readonly optional: import("@angular/core").InputSignal<boolean>;
4656
4713
  readonly labelId: import("@angular/core").InputSignal<string | undefined>;
4657
4714
  protected readonly helpOpen: import("@angular/core").WritableSignal<boolean>;
4658
4715
  protected readonly helpId: string;
4659
4716
  protected readonly helpTemplate: import("@angular/core").Signal<TemplateRef<unknown> | null>;
4660
4717
  protected readonly helpTriggerLabel: import("@angular/core").Signal<string>;
4718
+ protected readonly showOptional: import("@angular/core").Signal<boolean>;
4719
+ protected readonly optionalText: import("@angular/core").Signal<string>;
4661
4720
  private readonly helpEl;
4662
4721
  private readonly helpTrigger;
4663
4722
  private readonly helpBubble;
@@ -4693,6 +4752,11 @@ export declare class FieldLabelComponent {
4693
4752
  "required": false;
4694
4753
  "isSignal": true;
4695
4754
  };
4755
+ "optional": {
4756
+ "alias": "optional";
4757
+ "required": false;
4758
+ "isSignal": true;
4759
+ };
4696
4760
  "labelId": {
4697
4761
  "alias": "labelId";
4698
4762
  "required": false;
@@ -4746,6 +4810,8 @@ export declare class FormFieldComponent {
4746
4810
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
4747
4811
  /** Help revealed by an info button beside the label, as plain text or a template. */
4748
4812
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
4813
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
4814
+ readonly optional: import("@angular/core").InputSignal<boolean>;
4749
4815
  /** Helper text shown below the control; hidden while an error is showing. */
4750
4816
  readonly hint: import("@angular/core").InputSignal<string | undefined>;
4751
4817
  /** Error message shown below the control; replaces the hint and flags the field invalid. */
@@ -4786,6 +4852,11 @@ export declare class FormFieldComponent {
4786
4852
  "required": false;
4787
4853
  "isSignal": true;
4788
4854
  };
4855
+ "optional": {
4856
+ "alias": "optional";
4857
+ "required": false;
4858
+ "isSignal": true;
4859
+ };
4789
4860
  "hint": {
4790
4861
  "alias": "hint";
4791
4862
  "required": false;
@@ -4923,6 +4994,8 @@ export declare class FileUploaderComponent implements ControlValueAccessor {
4923
4994
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
4924
4995
  /** Help revealed by an info button beside the label, as plain text or a template. */
4925
4996
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
4997
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
4998
+ readonly optional: import("@angular/core").InputSignal<boolean>;
4926
4999
  readonly hint: import("@angular/core").InputSignal<string | undefined>;
4927
5000
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
4928
5001
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
@@ -5056,6 +5129,11 @@ export declare class FileUploaderComponent implements ControlValueAccessor {
5056
5129
  "required": false;
5057
5130
  "isSignal": true;
5058
5131
  };
5132
+ "optional": {
5133
+ "alias": "optional";
5134
+ "required": false;
5135
+ "isSignal": true;
5136
+ };
5059
5137
  "hint": {
5060
5138
  "alias": "hint";
5061
5139
  "required": false;
@@ -5158,6 +5236,26 @@ export declare class FileUploaderComponent implements ControlValueAccessor {
5158
5236
  "dragOverChanged": "dragOverChanged";
5159
5237
  }, never, ["[icon]"], true, never>;
5160
5238
  }
5239
+ /** Live state of a field's typewriter placeholder. */
5240
+ interface TypedPlaceholder {
5241
+ /** Whether the typed layer stands in for the native placeholder. */
5242
+ readonly animating: Signal<boolean>;
5243
+ /** The whole hint in play, for the native `placeholder` attribute. */
5244
+ readonly hint: Signal<string>;
5245
+ /** The part of the hint typed so far. */
5246
+ readonly text: Signal<string>;
5247
+ /** Whether characters are still arriving; the cursor blinks only once they stop. */
5248
+ readonly typing: Signal<boolean>;
5249
+ }
5250
+ /**
5251
+ * Types `hints` into a field's placeholder one character at a time, holds each
5252
+ * whole hint, then clears it and types the next, looping. Under
5253
+ * `prefers-reduced-motion: reduce` it swaps whole hints instead and never
5254
+ * animates. It starts in the browser after the first render, restarts when the
5255
+ * hints change, and clears its timer on destroy. The timers run outside the
5256
+ * zone so the endless loop never holds the app unstable.
5257
+ */
5258
+ declare function injectTypedPlaceholder(hints: Signal<readonly string[]>): TypedPlaceholder;
5161
5259
  /** Visual size of the input. */
5162
5260
  export type InputSize = EaSize;
5163
5261
  /** HTML `type` attribute applied to the underlying `<input>`. */
@@ -5178,6 +5276,8 @@ export declare class InputComponent implements ControlValueAccessor {
5178
5276
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
5179
5277
  /** Help revealed by an info button beside the label, as plain text or a template. */
5180
5278
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
5279
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
5280
+ readonly optional: import("@angular/core").InputSignal<boolean>;
5181
5281
  /** Accessible name for the control when no visible `label` is set. */
5182
5282
  readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
5183
5283
  /** ARIA role applied to the native input, e.g. `combobox` for a typeahead host. */
@@ -5194,6 +5294,14 @@ export declare class InputComponent implements ControlValueAccessor {
5194
5294
  readonly type: import("@angular/core").InputSignal<InputType>;
5195
5295
  /** Placeholder shown while the field is empty. */
5196
5296
  readonly placeholder: import("@angular/core").InputSignal<string>;
5297
+ /**
5298
+ * Hints typed into the empty field one character at a time, trailed by a
5299
+ * blinking cursor, each held and then replaced by the next, in a loop. The
5300
+ * native placeholder carries the whole current hint for assistive
5301
+ * technology, and under `prefers-reduced-motion` the hints swap whole without
5302
+ * a cursor. Takes the place of `placeholder` while it holds any hints.
5303
+ */
5304
+ readonly typedPlaceholder: import("@angular/core").InputSignal<readonly string[]>;
5197
5305
  /** Leading icon component rendered before the text, e.g. a search or filter glyph. */
5198
5306
  readonly icon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
5199
5307
  /** Keeps the leading icon while the field has a value; when false it shows only alongside the placeholder. */
@@ -5248,6 +5356,9 @@ export declare class InputComponent implements ControlValueAccessor {
5248
5356
  private onChange;
5249
5357
  private onTouched;
5250
5358
  readonly isDisabled: import("@angular/core").Signal<boolean>;
5359
+ protected readonly typed: TypedPlaceholder;
5360
+ protected readonly typedPlaceholderShown: import("@angular/core").Signal<boolean>;
5361
+ protected readonly nativePlaceholder: import("@angular/core").Signal<string>;
5251
5362
  readonly effectiveType: import("@angular/core").Signal<InputType>;
5252
5363
  private readonly errorState;
5253
5364
  readonly errorText: import("@angular/core").Signal<string | null>;
@@ -5302,6 +5413,11 @@ export declare class InputComponent implements ControlValueAccessor {
5302
5413
  "required": false;
5303
5414
  "isSignal": true;
5304
5415
  };
5416
+ "optional": {
5417
+ "alias": "optional";
5418
+ "required": false;
5419
+ "isSignal": true;
5420
+ };
5305
5421
  "ariaLabel": {
5306
5422
  "alias": "aria-label";
5307
5423
  "required": false;
@@ -5342,6 +5458,11 @@ export declare class InputComponent implements ControlValueAccessor {
5342
5458
  "required": false;
5343
5459
  "isSignal": true;
5344
5460
  };
5461
+ "typedPlaceholder": {
5462
+ "alias": "typedPlaceholder";
5463
+ "required": false;
5464
+ "isSignal": true;
5465
+ };
5345
5466
  "icon": {
5346
5467
  "alias": "icon";
5347
5468
  "required": false;
@@ -5918,6 +6039,8 @@ export declare class MultiSelectComponent implements ControlValueAccessor {
5918
6039
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
5919
6040
  /** Help revealed by an info button beside the label, as plain text or a template. */
5920
6041
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
6042
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
6043
+ readonly optional: import("@angular/core").InputSignal<boolean>;
5921
6044
  /** Accessible name for the combobox when no visible `label` is set. */
5922
6045
  readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
5923
6046
  /** Space-separated ids of the elements whose text names the combobox, such as a label outside the component. */
@@ -6113,6 +6236,11 @@ export declare class MultiSelectComponent implements ControlValueAccessor {
6113
6236
  "required": false;
6114
6237
  "isSignal": true;
6115
6238
  };
6239
+ "optional": {
6240
+ "alias": "optional";
6241
+ "required": false;
6242
+ "isSignal": true;
6243
+ };
6116
6244
  "ariaLabel": {
6117
6245
  "alias": "aria-label";
6118
6246
  "required": false;
@@ -6241,6 +6369,8 @@ export declare class NumberInputComponent implements ControlValueAccessor {
6241
6369
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
6242
6370
  /** Help revealed by an info button beside the label, as plain text or a template. */
6243
6371
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
6372
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
6373
+ readonly optional: import("@angular/core").InputSignal<boolean>;
6244
6374
  /** Placeholder shown while the field is empty. */
6245
6375
  readonly placeholder: import("@angular/core").InputSignal<string>;
6246
6376
  /** Visual size of the field. */
@@ -6334,6 +6464,11 @@ export declare class NumberInputComponent implements ControlValueAccessor {
6334
6464
  "required": false;
6335
6465
  "isSignal": true;
6336
6466
  };
6467
+ "optional": {
6468
+ "alias": "optional";
6469
+ "required": false;
6470
+ "isSignal": true;
6471
+ };
6337
6472
  "placeholder": {
6338
6473
  "alias": "placeholder";
6339
6474
  "required": false;
@@ -6844,6 +6979,8 @@ export declare class RadioGroupComponent implements ControlValueAccessor {
6844
6979
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
6845
6980
  /** Help revealed by an info button beside the label, as plain text or a template. */
6846
6981
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
6982
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
6983
+ readonly optional: import("@angular/core").InputSignal<boolean>;
6847
6984
  readonly hint: import("@angular/core").InputSignal<string | undefined>;
6848
6985
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
6849
6986
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
@@ -6916,6 +7053,11 @@ export declare class RadioGroupComponent implements ControlValueAccessor {
6916
7053
  "required": false;
6917
7054
  "isSignal": true;
6918
7055
  };
7056
+ "optional": {
7057
+ "alias": "optional";
7058
+ "required": false;
7059
+ "isSignal": true;
7060
+ };
6919
7061
  "hint": {
6920
7062
  "alias": "hint";
6921
7063
  "required": false;
@@ -7022,6 +7164,8 @@ export declare class RangeSliderComponent implements ControlValueAccessor {
7022
7164
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
7023
7165
  /** Help revealed by an info button beside the label, as plain text or a template. */
7024
7166
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
7167
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
7168
+ readonly optional: import("@angular/core").InputSignal<boolean>;
7025
7169
  readonly hint: import("@angular/core").InputSignal<string | undefined>;
7026
7170
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
7027
7171
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
@@ -7104,6 +7248,11 @@ export declare class RangeSliderComponent implements ControlValueAccessor {
7104
7248
  "required": false;
7105
7249
  "isSignal": true;
7106
7250
  };
7251
+ "optional": {
7252
+ "alias": "optional";
7253
+ "required": false;
7254
+ "isSignal": true;
7255
+ };
7107
7256
  "hint": {
7108
7257
  "alias": "hint";
7109
7258
  "required": false;
@@ -7229,6 +7378,8 @@ export declare class RatingComponent implements ControlValueAccessor {
7229
7378
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
7230
7379
  /** Help revealed by an info button beside the label, as plain text or a template. */
7231
7380
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
7381
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
7382
+ readonly optional: import("@angular/core").InputSignal<boolean>;
7232
7383
  readonly hint: import("@angular/core").InputSignal<string | undefined>;
7233
7384
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
7234
7385
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
@@ -7319,6 +7470,11 @@ export declare class RatingComponent implements ControlValueAccessor {
7319
7470
  "required": false;
7320
7471
  "isSignal": true;
7321
7472
  };
7473
+ "optional": {
7474
+ "alias": "optional";
7475
+ "required": false;
7476
+ "isSignal": true;
7477
+ };
7322
7478
  "hint": {
7323
7479
  "alias": "hint";
7324
7480
  "required": false;
@@ -7415,6 +7571,8 @@ export declare class SegmentedComponent implements ControlValueAccessor {
7415
7571
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
7416
7572
  /** Help revealed by an info button beside the label, as plain text or a template. */
7417
7573
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
7574
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
7575
+ readonly optional: import("@angular/core").InputSignal<boolean>;
7418
7576
  readonly hint: import("@angular/core").InputSignal<string | undefined>;
7419
7577
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
7420
7578
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
@@ -7479,6 +7637,11 @@ export declare class SegmentedComponent implements ControlValueAccessor {
7479
7637
  "required": false;
7480
7638
  "isSignal": true;
7481
7639
  };
7640
+ "optional": {
7641
+ "alias": "optional";
7642
+ "required": false;
7643
+ "isSignal": true;
7644
+ };
7482
7645
  "hint": {
7483
7646
  "alias": "hint";
7484
7647
  "required": false;
@@ -7590,6 +7753,8 @@ export declare class SliderComponent implements ControlValueAccessor {
7590
7753
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
7591
7754
  /** Help revealed by an info button beside the label, as plain text or a template. */
7592
7755
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
7756
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
7757
+ readonly optional: import("@angular/core").InputSignal<boolean>;
7593
7758
  readonly hint: import("@angular/core").InputSignal<string | undefined>;
7594
7759
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
7595
7760
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
@@ -7674,6 +7839,11 @@ export declare class SliderComponent implements ControlValueAccessor {
7674
7839
  "required": false;
7675
7840
  "isSignal": true;
7676
7841
  };
7842
+ "optional": {
7843
+ "alias": "optional";
7844
+ "required": false;
7845
+ "isSignal": true;
7846
+ };
7677
7847
  "hint": {
7678
7848
  "alias": "hint";
7679
7849
  "required": false;
@@ -8662,9 +8832,19 @@ export declare class TextareaComponent implements ControlValueAccessor {
8662
8832
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
8663
8833
  /** Help revealed by an info button beside the label, as plain text or a template. */
8664
8834
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
8835
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
8836
+ readonly optional: import("@angular/core").InputSignal<boolean>;
8665
8837
  /** Accessible name for the control when no visible `label` is set. */
8666
8838
  readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
8667
8839
  readonly placeholder: import("@angular/core").InputSignal<string>;
8840
+ /**
8841
+ * Hints typed into the empty field one character at a time, trailed by a
8842
+ * blinking cursor, each held and then replaced by the next, in a loop. The
8843
+ * native placeholder carries the whole current hint for assistive
8844
+ * technology, and under `prefers-reduced-motion` the hints swap whole without
8845
+ * a cursor. Takes the place of `placeholder` while it holds any hints.
8846
+ */
8847
+ readonly typedPlaceholder: import("@angular/core").InputSignal<readonly string[]>;
8668
8848
  readonly size: import("@angular/core").InputSignal<EaSize>;
8669
8849
  readonly hint: import("@angular/core").InputSignal<string | undefined>;
8670
8850
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
@@ -8694,6 +8874,9 @@ export declare class TextareaComponent implements ControlValueAccessor {
8694
8874
  private onChange;
8695
8875
  private onTouched;
8696
8876
  readonly isDisabled: import("@angular/core").Signal<boolean>;
8877
+ protected readonly typed: TypedPlaceholder;
8878
+ protected readonly typedPlaceholderShown: import("@angular/core").Signal<boolean>;
8879
+ protected readonly nativePlaceholder: import("@angular/core").Signal<string>;
8697
8880
  private readonly errorState;
8698
8881
  readonly errorText: import("@angular/core").Signal<string | null>;
8699
8882
  readonly hasError: import("@angular/core").Signal<boolean>;
@@ -8748,6 +8931,11 @@ export declare class TextareaComponent implements ControlValueAccessor {
8748
8931
  "required": false;
8749
8932
  "isSignal": true;
8750
8933
  };
8934
+ "optional": {
8935
+ "alias": "optional";
8936
+ "required": false;
8937
+ "isSignal": true;
8938
+ };
8751
8939
  "ariaLabel": {
8752
8940
  "alias": "aria-label";
8753
8941
  "required": false;
@@ -8758,6 +8946,11 @@ export declare class TextareaComponent implements ControlValueAccessor {
8758
8946
  "required": false;
8759
8947
  "isSignal": true;
8760
8948
  };
8949
+ "typedPlaceholder": {
8950
+ "alias": "typedPlaceholder";
8951
+ "required": false;
8952
+ "isSignal": true;
8953
+ };
8761
8954
  "size": {
8762
8955
  "alias": "size";
8763
8956
  "required": false;
@@ -8882,6 +9075,8 @@ export declare class TimePickerComponent implements ControlValueAccessor {
8882
9075
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
8883
9076
  /** Help revealed by an info button beside the label, as plain text or a template. */
8884
9077
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
9078
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
9079
+ readonly optional: import("@angular/core").InputSignal<boolean>;
8885
9080
  readonly placeholder: import("@angular/core").InputSignal<string | undefined>;
8886
9081
  readonly size: import("@angular/core").InputSignal<EaSize>;
8887
9082
  readonly disabled: import("@angular/core").InputSignal<boolean>;
@@ -9057,6 +9252,11 @@ export declare class TimePickerComponent implements ControlValueAccessor {
9057
9252
  "required": false;
9058
9253
  "isSignal": true;
9059
9254
  };
9255
+ "optional": {
9256
+ "alias": "optional";
9257
+ "required": false;
9258
+ "isSignal": true;
9259
+ };
9060
9260
  "placeholder": {
9061
9261
  "alias": "placeholder";
9062
9262
  "required": false;