@forgeroute/ui 0.4.56 → 0.4.57

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": "@forgeroute/ui",
3
- "version": "0.4.56",
3
+ "version": "0.4.57",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=22.0.0",
6
6
  "@angular/core": ">=22.0.0",
@@ -1049,6 +1049,11 @@ export declare function isoKey(p: {
1049
1049
  export declare function parseTime(value: string | null | undefined): number | null;
1050
1050
  /** "9:00 AM" / "12:30 PM" from an `HH:mm` value (returned unchanged when it cannot be parsed; '' for null/undefined/non-strings). */
1051
1051
  export declare function formatTime(value: string | null | undefined): string;
1052
+ /**
1053
+ * Joins a control's own `aria-describedby` ids with the ids a host passes through `[ariaDescribedBy]` (space separated, own ids first,
1054
+ * duplicates dropped). Returns null when there is nothing to point at, so the attribute is absent.
1055
+ */
1056
+ export declare function mergeDescribedBy(own: string | null | undefined, external: string | null | undefined): string | null;
1052
1057
  /**
1053
1058
  * One choice. `V` defaults to `string`, so existing `SelectOption[]` code is unchanged; `ui-select` itself accepts
1054
1059
  * `SelectOption<string | number>[]` (numeric values for `valueType="number"`).
@@ -1085,6 +1090,8 @@ export declare class SelectComponent implements ControlValueAccessor, Validator,
1085
1090
  readonly valueType: import("@angular/core").InputSignal<"string" | "number">;
1086
1091
  readonly required: import("@angular/core").InputSignal<boolean>;
1087
1092
  readonly hint: import("@angular/core").InputSignal<string>;
1093
+ /** Id(s) of an external element that also describes this control (e.g. one shared error text for a group of fields). Space separated; MERGED after the control's own hint / error id in `aria-describedby`, never replacing it. Empty = unchanged. */
1094
+ readonly ariaDescribedBy: import("@angular/core").InputSignal<string>;
1088
1095
  readonly error: import("@angular/core").InputSignal<string>;
1089
1096
  /** Reveal the built-in error messages now (e.g. after a failed Save click), without waiting for blur. */
1090
1097
  readonly showErrors: import("@angular/core").InputSignal<boolean>;
@@ -1098,7 +1105,7 @@ export declare class SelectComponent implements ControlValueAccessor, Validator,
1098
1105
  /** The selected option's `description` ('' when none is selected or it has none); hidden while an error shows. */
1099
1106
  protected readonly _selectedDescription: import("@angular/core").Signal<string>;
1100
1107
  /** ids of the texts that describe the select: the error / hint, then the selected option's description. */
1101
- protected readonly _describedBy: import("@angular/core").Signal<string>;
1108
+ protected readonly _describedBy: import("@angular/core").Signal<string | null>;
1102
1109
  private readonly _reveal;
1103
1110
  private readonly _issue;
1104
1111
  /** True while the value breaks a built-in rule or the host passed an `[error]`. */
@@ -1170,6 +1177,11 @@ export declare class SelectComponent implements ControlValueAccessor, Validator,
1170
1177
  "required": false;
1171
1178
  "isSignal": true;
1172
1179
  };
1180
+ "ariaDescribedBy": {
1181
+ "alias": "ariaDescribedBy";
1182
+ "required": false;
1183
+ "isSignal": true;
1184
+ };
1173
1185
  "error": {
1174
1186
  "alias": "error";
1175
1187
  "required": false;
@@ -2258,12 +2270,28 @@ export declare class ModalComponent implements OnInit, OnDestroy {
2258
2270
  * (e.g. while a save is running; the host closes it itself). Default `true` = today's behaviour.
2259
2271
  */
2260
2272
  readonly closable: import("@angular/core").InputSignal<boolean>;
2273
+ /**
2274
+ * Look of the dialog. `'default'` (today's dialog; a bottom sheet on a phone) or `'kiosk'`: a darker backdrop and a centred card on every screen
2275
+ * size that never grows past the visible viewport (header and footer stay, the body scrolls, 100dvh with a 100vh fallback). Meant for full-attention
2276
+ * dialogs such as a payment or bank-account entry; combine with `[closeOnBackdrop]="false"` and `[busy]`. See docs/modal-kiosk-and-bank-account-form.md.
2277
+ */
2278
+ readonly layout: import("@angular/core").InputSignal<"default" | "kiosk">;
2279
+ /** `false` = a click on the backdrop does not close (a mis-click must not lose a half-filled payment form). Default `true`. */
2280
+ readonly closeOnBackdrop: import("@angular/core").InputSignal<boolean>;
2281
+ /** `false` = Escape does not close. Default `true`. */
2282
+ readonly closeOnEscape: import("@angular/core").InputSignal<boolean>;
2283
+ /**
2284
+ * `true` while a request is running (e.g. a payment is processing): sets `aria-busy` on the dialog, disables the X button and blocks Escape and
2285
+ * backdrop dismissal, whatever `closable` / `closeOnEscape` / `closeOnBackdrop` say. Default `false`.
2286
+ */
2287
+ readonly busy: import("@angular/core").InputSignal<boolean>;
2261
2288
  readonly close: import("@angular/core").OutputEmitterRef<void>;
2262
2289
  /**
2263
2290
  * Element that gets focus back when the dialog closes. Takes precedence over the element that was focused (or last
2264
2291
  * clicked / activated) when it opened; used only if it is still in the page and visible. Default null = the opener.
2265
2292
  */
2266
2293
  readonly returnFocusTo: import("@angular/core").InputSignal<HTMLElement | null>;
2294
+ protected readonly kiosk: import("@angular/core").Signal<boolean>;
2267
2295
  protected readonly titleId: string;
2268
2296
  private readonly el;
2269
2297
  private readonly ren;
@@ -2276,6 +2304,8 @@ export declare class ModalComponent implements OnInit, OnDestroy {
2276
2304
  private readonly _interaction;
2277
2305
  constructor();
2278
2306
  onKeydown(event: KeyboardEvent): void;
2307
+ /** Emits `close` when the dialog may be dismissed this way (not closable / busy / backdrop or Escape switched off = nothing). */
2308
+ protected dismiss(via: 'backdrop' | 'escape' | 'close'): void;
2279
2309
  /** A focus-guard sentinel received focus (Tab left the dialog's tab order, e.g. out of an iframe): send it back inside. */
2280
2310
  protected onGuardFocus(which: 'start' | 'end', event?: FocusEvent): void;
2281
2311
  /** Initial focus — see `focusInitial` (autofocus target → first usable field → dialog container). */
@@ -2325,6 +2355,26 @@ export declare class ModalComponent implements OnInit, OnDestroy {
2325
2355
  "required": false;
2326
2356
  "isSignal": true;
2327
2357
  };
2358
+ "layout": {
2359
+ "alias": "layout";
2360
+ "required": false;
2361
+ "isSignal": true;
2362
+ };
2363
+ "closeOnBackdrop": {
2364
+ "alias": "closeOnBackdrop";
2365
+ "required": false;
2366
+ "isSignal": true;
2367
+ };
2368
+ "closeOnEscape": {
2369
+ "alias": "closeOnEscape";
2370
+ "required": false;
2371
+ "isSignal": true;
2372
+ };
2373
+ "busy": {
2374
+ "alias": "busy";
2375
+ "required": false;
2376
+ "isSignal": true;
2377
+ };
2328
2378
  "returnFocusTo": {
2329
2379
  "alias": "returnFocusTo";
2330
2380
  "required": false;
@@ -2332,7 +2382,7 @@ export declare class ModalComponent implements OnInit, OnDestroy {
2332
2382
  };
2333
2383
  }, {
2334
2384
  "close": "close";
2335
- }, never, ["*", "[modal-footer-left]", "[modal-footer-center]", "[modal-footer-right]"], true, never>;
2385
+ }, never, ["[modal-header-end]", "*", "[modal-footer-left]", "[modal-footer-center]", "[modal-footer-right]"], true, never>;
2336
2386
  }
2337
2387
  export type ToastType = 'success' | 'error' | 'info';
2338
2388
  export declare class ToastService implements OnDestroy {
@@ -4598,6 +4648,130 @@ export declare class OptionCardComponent {
4598
4648
  "action": "action";
4599
4649
  }, never, ["*"], true, never>;
4600
4650
  }
4651
+ /** Default ACH debit authorization text (same wording the contractor bank-account kiosk used). */
4652
+ export declare const DEFAULT_BANK_MANDATE_TEXT: string;
4653
+ export type BankAccountType = 'checking' | 'savings';
4654
+ export type BankHolderType = 'individual' | 'company';
4655
+ /** What `(submitted)` emits: every text value trimmed, `mandateAccepted` always `true`. */
4656
+ export interface BankAccountFormValue {
4657
+ routingNumber: string;
4658
+ accountNumber: string;
4659
+ accountType: BankAccountType;
4660
+ accountHolderName: string;
4661
+ holderType: BankHolderType;
4662
+ mandateAccepted: true;
4663
+ }
4664
+ export declare const DEFAULT_BANK_ACCOUNT_TYPE_OPTIONS: SelectOption[];
4665
+ export declare const DEFAULT_BANK_HOLDER_TYPE_OPTIONS: SelectOption[];
4666
+ /**
4667
+ * `ui-bank-account-form` - the US bank-account entry form (routing number, account number + confirmation, account type, holder name + type,
4668
+ * ACH debit authorization). Built only from library inputs; it holds NO HTTP and no provider logic: the host listens to `(submitted)` and talks to
4669
+ * its payment provider (Stripe `confirmUsBankAccountSetup`, Square, ...). See docs/modal-kiosk-and-bank-account-form.md.
4670
+ *
4671
+ * - Validation is inline through the inputs' own `[error]` / built-in rules. The routing number is only checked for 9 digits (no ABA checksum: the
4672
+ * provider validates the real number, and a client checksum would reject test numbers). Account numbers are 4-17 digits.
4673
+ * - Messages show after blur, while a field holds something invalid, or while `[showErrors]` is true; a failed `submit()` reveals them all.
4674
+ * - The form provides `UiFieldValidity` (`invalid` = not submittable), so a host can gate its own button with `viewChildren(UiFieldValidity)`,
4675
+ * or use `(validChange)`.
4676
+ * - The host's footer button calls `form.submit()` (via `viewChild`); Enter in a text field submits too.
4677
+ */
4678
+ export declare class BankAccountFormComponent implements UiFieldValidity {
4679
+ /** Reveal every built-in error now (e.g. bind to a panel's `touched()`); `submit()` on an invalid form also reveals them. */
4680
+ readonly showErrors: import("@angular/core").InputSignal<boolean>;
4681
+ /** Disables every field and blocks `submit()`. */
4682
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
4683
+ /** Like `disabled`, plus `aria-busy` on the host: a provider call is running. */
4684
+ readonly busy: import("@angular/core").InputSignal<boolean>;
4685
+ /** The authorization text next to the checkbox (it is the checkbox label). The unticked default is never changed by the form. */
4686
+ readonly mandateText: import("@angular/core").InputSignal<string>;
4687
+ /** Account type choices; values must stay `checking` / `savings`. */
4688
+ readonly accountTypeOptions: import("@angular/core").InputSignal<SelectOption<string>[]>;
4689
+ /** Holder type choices; values must stay `individual` / `company`. */
4690
+ readonly holderTypeOptions: import("@angular/core").InputSignal<SelectOption<string>[]>;
4691
+ /** Pre-fills the account holder name (e.g. the customer's name) whenever it changes; the user can edit it. */
4692
+ readonly accountHolderNameDefault: import("@angular/core").InputSignal<string>;
4693
+ /** Prefix of the inner test ids: `<prefix>-routing`, `-account`, `-confirm`, `-holder-name`, `-account-type`, `-holder-type`, `-mandate`. */
4694
+ readonly testIdPrefix: import("@angular/core").InputSignal<string>;
4695
+ /** Emits the typed payload when `submit()` runs on a valid form. */
4696
+ readonly submitted: import("@angular/core").OutputEmitterRef<BankAccountFormValue>;
4697
+ /** Emits `true` / `false` whenever the form becomes submittable / not (also once on init). */
4698
+ readonly validChange: import("@angular/core").OutputEmitterRef<boolean>;
4699
+ protected readonly routingNumber: import("@angular/core").WritableSignal<string>;
4700
+ protected readonly accountNumber: import("@angular/core").WritableSignal<string>;
4701
+ protected readonly confirmAccount: import("@angular/core").WritableSignal<string>;
4702
+ protected readonly accountHolderName: import("@angular/core").WritableSignal<string>;
4703
+ protected readonly accountType: import("@angular/core").WritableSignal<string>;
4704
+ protected readonly holderType: import("@angular/core").WritableSignal<string>;
4705
+ protected readonly mandateAccepted: import("@angular/core").WritableSignal<boolean>;
4706
+ private readonly _touched;
4707
+ protected readonly routingFormatter: (raw: string) => string;
4708
+ protected readonly accountFormatter: (raw: string) => string;
4709
+ protected readonly locked: import("@angular/core").Signal<boolean>;
4710
+ protected readonly reveal: import("@angular/core").Signal<boolean>;
4711
+ protected readonly routingError: import("@angular/core").Signal<"" | "Routing number must be 9 digits.">;
4712
+ protected readonly accountError: import("@angular/core").Signal<"" | "Account number must be at least 4 digits.">;
4713
+ protected readonly confirmError: import("@angular/core").Signal<"" | "Account numbers do not match.">;
4714
+ /** First reason the form cannot be submitted ('' when it can). */
4715
+ readonly errorMessage: import("@angular/core").Signal<"" | "Account holder name is required." | "Routing number is required." | "Routing number must be 9 digits." | "Account number is required." | "Account number must be at least 4 digits." | "Confirm account number is required." | "Account numbers do not match." | "Select a valid account type." | "Select a valid holder type." | "You must authorize ACH debits to continue.">;
4716
+ /** True while the form cannot be submitted (`UiFieldValidity`). */
4717
+ readonly invalid: import("@angular/core").Signal<boolean>;
4718
+ /** True when the form can be submitted (ignores `disabled` / `busy`). */
4719
+ readonly valid: import("@angular/core").Signal<boolean>;
4720
+ private readonly _fields;
4721
+ constructor();
4722
+ protected id(name: string): string;
4723
+ protected onEnter(event: Event): void;
4724
+ /** Validates and, when valid, emits `submitted`. An invalid form reveals all messages and emits nothing. Ignored while `disabled` / `busy`. */
4725
+ submit(): void;
4726
+ /** Clears every field back to the defaults (checking, individual, authorization unticked, holder name = `accountHolderNameDefault`). */
4727
+ reset(): void;
4728
+ static ɵfac: i0.ɵɵFactoryDeclaration<BankAccountFormComponent, never>;
4729
+ static ɵcmp: i0.ɵɵComponentDeclaration<BankAccountFormComponent, "ui-bank-account-form", never, {
4730
+ "showErrors": {
4731
+ "alias": "showErrors";
4732
+ "required": false;
4733
+ "isSignal": true;
4734
+ };
4735
+ "disabled": {
4736
+ "alias": "disabled";
4737
+ "required": false;
4738
+ "isSignal": true;
4739
+ };
4740
+ "busy": {
4741
+ "alias": "busy";
4742
+ "required": false;
4743
+ "isSignal": true;
4744
+ };
4745
+ "mandateText": {
4746
+ "alias": "mandateText";
4747
+ "required": false;
4748
+ "isSignal": true;
4749
+ };
4750
+ "accountTypeOptions": {
4751
+ "alias": "accountTypeOptions";
4752
+ "required": false;
4753
+ "isSignal": true;
4754
+ };
4755
+ "holderTypeOptions": {
4756
+ "alias": "holderTypeOptions";
4757
+ "required": false;
4758
+ "isSignal": true;
4759
+ };
4760
+ "accountHolderNameDefault": {
4761
+ "alias": "accountHolderNameDefault";
4762
+ "required": false;
4763
+ "isSignal": true;
4764
+ };
4765
+ "testIdPrefix": {
4766
+ "alias": "testIdPrefix";
4767
+ "required": false;
4768
+ "isSignal": true;
4769
+ };
4770
+ }, {
4771
+ "submitted": "submitted";
4772
+ "validChange": "validChange";
4773
+ }, never, never, true, never>;
4774
+ }
4601
4775
  export interface ActiveConfirm {
4602
4776
  title: string;
4603
4777
  message: string;
@@ -4786,6 +4960,8 @@ export declare class TextInputComponent implements ControlValueAccessor, Validat
4786
4960
  readonly inputmode: import("@angular/core").InputSignal<"" | "none" | "text" | "search" | "email" | "tel" | "url" | "decimal" | "numeric">;
4787
4961
  readonly readonly: import("@angular/core").InputSignal<boolean>;
4788
4962
  readonly hint: import("@angular/core").InputSignal<string>;
4963
+ /** Id(s) of an external element that also describes this control (e.g. one shared error text for a group of fields). Space separated; MERGED after the control's own hint / error id in `aria-describedby`, never replacing it. Empty = unchanged. */
4964
+ readonly ariaDescribedBy: import("@angular/core").InputSignal<string>;
4789
4965
  readonly error: import("@angular/core").InputSignal<string>;
4790
4966
  /** When true, automatically formats the value as a US phone number as the user types. */
4791
4967
  readonly phoneFormat: import("@angular/core").InputSignal<boolean>;
@@ -4971,6 +5147,11 @@ export declare class TextInputComponent implements ControlValueAccessor, Validat
4971
5147
  "required": false;
4972
5148
  "isSignal": true;
4973
5149
  };
5150
+ "ariaDescribedBy": {
5151
+ "alias": "ariaDescribedBy";
5152
+ "required": false;
5153
+ "isSignal": true;
5154
+ };
4974
5155
  "error": {
4975
5156
  "alias": "error";
4976
5157
  "required": false;
@@ -5043,6 +5224,8 @@ export declare class TextareaInputComponent implements ControlValueAccessor, Val
5043
5224
  readonly required: import("@angular/core").InputSignal<boolean>;
5044
5225
  readonly readonly: import("@angular/core").InputSignal<boolean>;
5045
5226
  readonly hint: import("@angular/core").InputSignal<string>;
5227
+ /** Id(s) of an external element that also describes this control (e.g. one shared error text for a group of fields). Space separated; MERGED after the control's own hint / error id in `aria-describedby`, never replacing it. Empty = unchanged. */
5228
+ readonly ariaDescribedBy: import("@angular/core").InputSignal<string>;
5046
5229
  /**
5047
5230
  * Opt-in. `false` (default) = unchanged: a labelled field's hint renders INSIDE the `<label>` ("Label (hint)" is the accessible name,
5048
5231
  * no aria-describedby for it). `true` = the hint is a sibling of the label (`.ta-head` row, id `<textarea id>-hint`), the accessible
@@ -5065,6 +5248,7 @@ export declare class TextareaInputComponent implements ControlValueAccessor, Val
5065
5248
  * hint is replaced by the error) followed by the error. The label is the accessible NAME; the hint is the DESCRIPTION.
5066
5249
  */
5067
5250
  protected readonly _describedBy: import("@angular/core").Signal<string | null>;
5251
+ private readonly _ownDescribedBy;
5068
5252
  private readonly _reveal;
5069
5253
  private readonly _issue;
5070
5254
  /** True while the value breaks a built-in rule or the host passed an `[error]`. */
@@ -5132,6 +5316,11 @@ export declare class TextareaInputComponent implements ControlValueAccessor, Val
5132
5316
  "required": false;
5133
5317
  "isSignal": true;
5134
5318
  };
5319
+ "ariaDescribedBy": {
5320
+ "alias": "ariaDescribedBy";
5321
+ "required": false;
5322
+ "isSignal": true;
5323
+ };
5135
5324
  "hintAsDescription": {
5136
5325
  "alias": "hintAsDescription";
5137
5326
  "required": false;
@@ -5535,6 +5724,8 @@ export declare class DateInputComponent implements ControlValueAccessor, Validat
5535
5724
  readonly min: import("@angular/core").InputSignal<string>;
5536
5725
  readonly max: import("@angular/core").InputSignal<string>;
5537
5726
  readonly hint: import("@angular/core").InputSignal<string>;
5727
+ /** Id(s) of an external element that also describes this control (e.g. one shared error text for a group of fields). Space separated; MERGED after the control's own hint / error id in `aria-describedby`, never replacing it. Empty = unchanged. */
5728
+ readonly ariaDescribedBy: import("@angular/core").InputSignal<string>;
5538
5729
  readonly error: import("@angular/core").InputSignal<string>;
5539
5730
  /** Reveal the built-in error messages now (e.g. after a failed Save click), without waiting for blur. */
5540
5731
  readonly showErrors: import("@angular/core").InputSignal<boolean>;
@@ -5543,6 +5734,8 @@ export declare class DateInputComponent implements ControlValueAccessor, Validat
5543
5734
  private readonly _cvaDisabled;
5544
5735
  protected readonly disabled: import("@angular/core").Signal<boolean>;
5545
5736
  protected readonly _value: import("@angular/core").WritableSignal<string>;
5737
+ /** `aria-describedby`: the error / hint text, then the host's `ariaDescribedBy` id(s). */
5738
+ protected readonly _describedBy: import("@angular/core").Signal<string | null>;
5546
5739
  private readonly _reveal;
5547
5740
  private readonly _issue;
5548
5741
  /** True while the value breaks a built-in rule or the host passed an `[error]`. */
@@ -5597,6 +5790,11 @@ export declare class DateInputComponent implements ControlValueAccessor, Validat
5597
5790
  "required": false;
5598
5791
  "isSignal": true;
5599
5792
  };
5793
+ "ariaDescribedBy": {
5794
+ "alias": "ariaDescribedBy";
5795
+ "required": false;
5796
+ "isSignal": true;
5797
+ };
5600
5798
  "error": {
5601
5799
  "alias": "error";
5602
5800
  "required": false;
@@ -5623,6 +5821,8 @@ export declare class DatetimeInputComponent implements ControlValueAccessor, Val
5623
5821
  readonly min: import("@angular/core").InputSignal<string>;
5624
5822
  readonly max: import("@angular/core").InputSignal<string>;
5625
5823
  readonly hint: import("@angular/core").InputSignal<string>;
5824
+ /** Id(s) of an external element that also describes this control (e.g. one shared error text for a group of fields). Space separated; MERGED after the control's own hint / error id in `aria-describedby`, never replacing it. Empty = unchanged. */
5825
+ readonly ariaDescribedBy: import("@angular/core").InputSignal<string>;
5626
5826
  readonly error: import("@angular/core").InputSignal<string>;
5627
5827
  /** Reveal the built-in error messages now (e.g. after a failed Save click), without waiting for blur. */
5628
5828
  readonly showErrors: import("@angular/core").InputSignal<boolean>;
@@ -5630,6 +5830,8 @@ export declare class DatetimeInputComponent implements ControlValueAccessor, Val
5630
5830
  private readonly _cvaDisabled;
5631
5831
  protected readonly disabled: import("@angular/core").Signal<boolean>;
5632
5832
  protected readonly _value: import("@angular/core").WritableSignal<string>;
5833
+ /** `aria-describedby`: the error / hint text, then the host's `ariaDescribedBy` id(s). */
5834
+ protected readonly _describedBy: import("@angular/core").Signal<string | null>;
5633
5835
  private readonly _reveal;
5634
5836
  private readonly _issue;
5635
5837
  /** True while the value breaks a built-in rule or the host passed an `[error]`. */
@@ -5682,6 +5884,11 @@ export declare class DatetimeInputComponent implements ControlValueAccessor, Val
5682
5884
  "required": false;
5683
5885
  "isSignal": true;
5684
5886
  };
5887
+ "ariaDescribedBy": {
5888
+ "alias": "ariaDescribedBy";
5889
+ "required": false;
5890
+ "isSignal": true;
5891
+ };
5685
5892
  "error": {
5686
5893
  "alias": "error";
5687
5894
  "required": false;
@@ -5709,6 +5916,8 @@ export declare class TimeInputComponent implements ControlValueAccessor, Validat
5709
5916
  readonly min: import("@angular/core").InputSignal<string>;
5710
5917
  readonly max: import("@angular/core").InputSignal<string>;
5711
5918
  readonly hint: import("@angular/core").InputSignal<string>;
5919
+ /** Id(s) of an external element that also describes this control (e.g. one shared error text for a group of fields). Space separated; MERGED after the control's own hint / error id in `aria-describedby`, never replacing it. Empty = unchanged. */
5920
+ readonly ariaDescribedBy: import("@angular/core").InputSignal<string>;
5712
5921
  readonly error: import("@angular/core").InputSignal<string>;
5713
5922
  /** Reveal the built-in error messages now (e.g. after a failed Save click), without waiting for blur. */
5714
5923
  readonly showErrors: import("@angular/core").InputSignal<boolean>;
@@ -5718,6 +5927,8 @@ export declare class TimeInputComponent implements ControlValueAccessor, Validat
5718
5927
  protected readonly disabled: import("@angular/core").Signal<boolean>;
5719
5928
  protected readonly _value: import("@angular/core").WritableSignal<string>;
5720
5929
  protected readonly _inputId: string;
5930
+ /** `aria-describedby`: the error / hint text, then the host's `ariaDescribedBy` id(s). */
5931
+ protected readonly _describedBy: import("@angular/core").Signal<string | null>;
5721
5932
  private readonly _reveal;
5722
5933
  private readonly _issue;
5723
5934
  /** True while the value breaks a built-in rule or the host passed an `[error]`. */
@@ -5774,6 +5985,11 @@ export declare class TimeInputComponent implements ControlValueAccessor, Validat
5774
5985
  "required": false;
5775
5986
  "isSignal": true;
5776
5987
  };
5988
+ "ariaDescribedBy": {
5989
+ "alias": "ariaDescribedBy";
5990
+ "required": false;
5991
+ "isSignal": true;
5992
+ };
5777
5993
  "error": {
5778
5994
  "alias": "error";
5779
5995
  "required": false;
@@ -6779,6 +6995,8 @@ export declare class CardListItemComponent {
6779
6995
  readonly actionLabel: import("@angular/core").InputSignal<string>;
6780
6996
  readonly actionTestId: import("@angular/core").InputSignal<string>;
6781
6997
  readonly actionAriaLabel: import("@angular/core").InputSignal<string>;
6998
+ /** A built-in Edit / View / action / delete button shows (the row then keeps a minimum height so a badge and a chip never overlap). */
6999
+ protected readonly hasBuiltInChip: import("@angular/core").Signal<boolean>;
6782
7000
  readonly editClick: import("@angular/core").OutputEmitterRef<void>;
6783
7001
  readonly viewClick: import("@angular/core").OutputEmitterRef<void>;
6784
7002
  readonly delete: import("@angular/core").OutputEmitterRef<void>;