@forgeroute/ui 0.4.64 → 0.4.66

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.64",
3
+ "version": "0.4.66",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=22.0.0",
6
6
  "@angular/core": ">=22.0.0",
@@ -2682,7 +2682,7 @@ export declare class AudioPlayerComponent {
2682
2682
  /** Accessible name of the player. */
2683
2683
  readonly ariaLabel: import("@angular/core").InputSignal<string>;
2684
2684
  /** How much to load before play: 'metadata' (default), 'auto' or 'none'. */
2685
- readonly preload: import("@angular/core").InputSignal<"metadata" | "none" | "auto">;
2685
+ readonly preload: import("@angular/core").InputSignal<"none" | "auto" | "metadata">;
2686
2686
  /** Fires when the browser can't load or decode the source. */
2687
2687
  readonly playbackError: import("@angular/core").OutputEmitterRef<void>;
2688
2688
  protected readonly failed: import("@angular/core").WritableSignal<boolean>;
@@ -3963,7 +3963,7 @@ export declare class ButtonComponent {
3963
3963
  * `ghost-start`: a ghost button for list / section toggles - a full-width row with its content aligned to the start, transparent
3964
3964
  * background, hover tint and the normal focus ring. Pair it with `ariaExpanded` / `ariaPressed`; the label may contain a heading element.
3965
3965
  */
3966
- readonly variant: import("@angular/core").InputSignal<"link" | "primary" | "secondary" | "danger" | "warning" | "ghost" | "ghost-start" | "tab" | "icon" | "icon-danger">;
3966
+ readonly variant: import("@angular/core").InputSignal<"primary" | "secondary" | "danger" | "warning" | "link" | "ghost" | "ghost-start" | "tab" | "icon" | "icon-danger">;
3967
3967
  /** Renders an anchor to this route instead of a button (use with `variant="link"` for an inline text link). `['/settings']` or `'/settings'`. While `disabled` or `loading` it renders a non-clickable `<span role="link" aria-disabled>` with no href (like `href`). */
3968
3968
  readonly routerLink: import("@angular/core").InputSignal<string | readonly unknown[] | null>;
3969
3969
  /** Query params of the `routerLink` (e.g. `{ section: 'deal-defaults' }`). */
@@ -4009,7 +4009,7 @@ export declare class ButtonComponent {
4009
4009
  readonly color: import("@angular/core").InputSignal<string | undefined>;
4010
4010
  readonly active: import("@angular/core").InputSignal<boolean>;
4011
4011
  readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" | "xs">;
4012
- readonly type: import("@angular/core").InputSignal<"button" | "reset" | "submit">;
4012
+ readonly type: import("@angular/core").InputSignal<"reset" | "submit" | "button">;
4013
4013
  readonly disabled: import("@angular/core").InputSignal<boolean>;
4014
4014
  readonly loading: import("@angular/core").InputSignal<boolean>;
4015
4015
  readonly fullWidth: import("@angular/core").InputSignal<boolean>;
@@ -4957,7 +4957,7 @@ export declare class TextInputComponent implements ControlValueAccessor, Validat
4957
4957
  * `search`, `text`, `none`). Empty (default) = the browser's default for the field, except `type="tel"`, which keeps `tel`.
4958
4958
  * It only picks the keyboard; it does not restrict what can be typed or pasted.
4959
4959
  */
4960
- readonly inputmode: import("@angular/core").InputSignal<"" | "search" | "text" | "numeric" | "none" | "email" | "tel" | "url" | "decimal">;
4960
+ readonly inputmode: import("@angular/core").InputSignal<"" | "none" | "text" | "search" | "email" | "tel" | "url" | "decimal" | "numeric">;
4961
4961
  readonly readonly: import("@angular/core").InputSignal<boolean>;
4962
4962
  readonly hint: import("@angular/core").InputSignal<string>;
4963
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. */
@@ -5214,6 +5214,75 @@ export declare class TextInputComponent implements ControlValueAccessor, Validat
5214
5214
  "invalidChange": "invalidChange";
5215
5215
  }, never, ["[uiLabelEnd]"], true, never>;
5216
5216
  }
5217
+ /**
5218
+ * Number pad for short numeric codes such as a PIN. Shows one dot per allowed digit (filled as digits are entered) above a 3x4 grid of
5219
+ * 44px+ touch targets. The value is the digit string (`''` = nothing entered); it works with `[(value)]` and with `ngModel` / `FormControl`.
5220
+ * Physical digit keys and Backspace work while the pad has focus. The dots are decorative: the live count is exposed as an accessible
5221
+ * label ("PIN: 3 of 6 digits entered") and the digits themselves are never put in the DOM.
5222
+ */
5223
+ export declare class KeypadComponent implements ControlValueAccessor {
5224
+ private static _next;
5225
+ /** The digits entered so far. */
5226
+ readonly value: import("@angular/core").ModelSignal<string>;
5227
+ /** Most digits allowed (also the number of dots). */
5228
+ readonly maxLength: import("@angular/core").InputSignal<number>;
5229
+ readonly label: import("@angular/core").InputSignal<string>;
5230
+ readonly required: import("@angular/core").InputSignal<boolean>;
5231
+ /** Host error message, shown under the dots. */
5232
+ readonly error: import("@angular/core").InputSignal<string>;
5233
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
5234
+ /** Enter was pressed while the pad had focus: nothing is appended (Enter on a focused key would otherwise press it); the host submits its form. */
5235
+ readonly submitted: import("@angular/core").OutputEmitterRef<void>;
5236
+ protected readonly _labelId: string;
5237
+ protected readonly _keys: readonly ["1", "2", "3", "4", "5", "6", "7", "8", "9", "", "0", "del"];
5238
+ protected readonly _dots: import("@angular/core").Signal<unknown[]>;
5239
+ private readonly _formDisabled;
5240
+ protected readonly _isDisabled: import("@angular/core").Signal<boolean>;
5241
+ private _onChange;
5242
+ private _onTouched;
5243
+ press(key: string): void;
5244
+ protected onKeydown(e: KeyboardEvent): void;
5245
+ writeValue(v: string | null): void;
5246
+ registerOnChange(fn: (v: string) => void): void;
5247
+ registerOnTouched(fn: () => void): void;
5248
+ setDisabledState(d: boolean): void;
5249
+ static ɵfac: i0.ɵɵFactoryDeclaration<KeypadComponent, never>;
5250
+ static ɵcmp: i0.ɵɵComponentDeclaration<KeypadComponent, "ui-keypad", never, {
5251
+ "value": {
5252
+ "alias": "value";
5253
+ "required": false;
5254
+ "isSignal": true;
5255
+ };
5256
+ "maxLength": {
5257
+ "alias": "maxLength";
5258
+ "required": false;
5259
+ "isSignal": true;
5260
+ };
5261
+ "label": {
5262
+ "alias": "label";
5263
+ "required": false;
5264
+ "isSignal": true;
5265
+ };
5266
+ "required": {
5267
+ "alias": "required";
5268
+ "required": false;
5269
+ "isSignal": true;
5270
+ };
5271
+ "error": {
5272
+ "alias": "error";
5273
+ "required": false;
5274
+ "isSignal": true;
5275
+ };
5276
+ "disabled": {
5277
+ "alias": "disabled";
5278
+ "required": false;
5279
+ "isSignal": true;
5280
+ };
5281
+ }, {
5282
+ "value": "valueChange";
5283
+ "submitted": "submitted";
5284
+ }, never, never, true, never>;
5285
+ }
5217
5286
  export declare class TextareaInputComponent implements ControlValueAccessor, Validator, UiFieldValidity {
5218
5287
  readonly label: import("@angular/core").InputSignal<string>;
5219
5288
  /** Accessible name for a field with no visible label. */
@@ -6424,7 +6493,9 @@ export declare class DropdownComponent {
6424
6493
  readonly loader: import("@angular/core").InputSignal<(() => Promise<DropdownItem[]>) | null>;
6425
6494
  readonly active: import("@angular/core").InputSignal<boolean>;
6426
6495
  readonly activeValue: import("@angular/core").InputSignal<string>;
6427
- readonly variant: import("@angular/core").InputSignal<"button" | "badge">;
6496
+ readonly variant: import("@angular/core").InputSignal<"badge" | "button">;
6497
+ /** Trigger size for `variant="button"`: `sm` (default, the compact toolbar look) or `md` (same padding and type as a medium `ui-button`). */
6498
+ readonly size: import("@angular/core").InputSignal<"sm" | "md">;
6428
6499
  readonly menuWidth: import("@angular/core").InputSignal<string>;
6429
6500
  /**
6430
6501
  * Fixed width of the trigger as a CSS length (e.g. `'280px'`). Empty (default) = the trigger is as wide as its label. When set, the trigger keeps that
@@ -6524,6 +6595,11 @@ export declare class DropdownComponent {
6524
6595
  "required": false;
6525
6596
  "isSignal": true;
6526
6597
  };
6598
+ "size": {
6599
+ "alias": "size";
6600
+ "required": false;
6601
+ "isSignal": true;
6602
+ };
6527
6603
  "menuWidth": {
6528
6604
  "alias": "menuWidth";
6529
6605
  "required": false;
@@ -6745,7 +6821,7 @@ export declare class FormRowComponent {
6745
6821
  * child simply takes the full width. Keep a numeric span within the row's `cols` (use `all` for the whole row).
6746
6822
  */
6747
6823
  export declare class FormColSpanDirective {
6748
- readonly uiColSpan: import("@angular/core").InputSignal<"" | 2 | 3 | "2" | "3" | "all">;
6824
+ readonly uiColSpan: import("@angular/core").InputSignal<"" | "2" | "3" | 2 | 3 | "all">;
6749
6825
  protected readonly _class: import("@angular/core").Signal<string>;
6750
6826
  static ɵfac: i0.ɵɵFactoryDeclaration<FormColSpanDirective, never>;
6751
6827
  static ɵdir: i0.ɵɵDirectiveDeclaration<FormColSpanDirective, "[uiColSpan]", never, {
@@ -13221,7 +13297,7 @@ export interface ConversationMessage {
13221
13297
  /** Outbound only: `sent` (✓), `delivered` (✓✓), `failed`, `scheduled`. Other values show nothing. */
13222
13298
  status?: string | null;
13223
13299
  media?: ConversationMedia | null;
13224
- /** Outbound only: who wrote it (e.g. the agent's name), shown before the time. Omit when the sender is always "You". */
13300
+ /** Who wrote it (e.g. the agent's name on a reply the customer reads, or on a message the office sent), shown before the time. Omit when the sender is not worth naming (always "You", or one known person). */
13225
13301
  sender?: string | null;
13226
13302
  /** A link-style button under the text, e.g. "View transaction"; clicking it emits `(messageAction)` with this message. */
13227
13303
  action?: ConversationMessageAction | null;