@forgeroute/ui 0.4.47 → 0.4.48
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
package/types/forgeroute-ui.d.ts
CHANGED
|
@@ -1268,6 +1268,8 @@ export declare class ImportExportComponent {
|
|
|
1268
1268
|
/** Unique prefix for the ids this window links with aria-describedby / aria-labelledby. */
|
|
1269
1269
|
readonly uid: string;
|
|
1270
1270
|
private readonly resultBox;
|
|
1271
|
+
/** The container of the step on screen (Source / Upload / Map Columns / Preview): focused when the step changes, because the control the user pressed is gone. */
|
|
1272
|
+
private readonly stepBox;
|
|
1271
1273
|
private readonly http;
|
|
1272
1274
|
/** API root from FORGEROUTE_CONFIG (e.g. a cross-origin prod API); falls back to same-origin `/api`. */
|
|
1273
1275
|
private readonly apiBase;
|
|
@@ -1326,6 +1328,8 @@ export declare class ImportExportComponent {
|
|
|
1326
1328
|
goToPreview(): void;
|
|
1327
1329
|
get mappedFields(): ImportFieldDef[];
|
|
1328
1330
|
get previewRows(): Record<string, string>[];
|
|
1331
|
+
/** Shows another step and moves focus to its container (the pressed button / focused file input was removed from the page). */
|
|
1332
|
+
goTo(step: ImportStep): void;
|
|
1329
1333
|
/** Moves focus to the result summary (the button that had it is gone), so keyboard and screen reader users land on the outcome. */
|
|
1330
1334
|
private focusResult;
|
|
1331
1335
|
private stopImportTimer;
|
|
@@ -2222,7 +2226,7 @@ export declare class ModalComponent implements OnInit, OnDestroy {
|
|
|
2222
2226
|
readonly title: import("@angular/core").InputSignal<string>;
|
|
2223
2227
|
readonly description: import("@angular/core").InputSignal<string>;
|
|
2224
2228
|
readonly maxWidth: import("@angular/core").InputSignal<string>;
|
|
2225
|
-
readonly bodyOverflow: import("@angular/core").InputSignal<"
|
|
2229
|
+
readonly bodyOverflow: import("@angular/core").InputSignal<"hidden" | "visible" | "auto">;
|
|
2226
2230
|
/** `data-testid` of the dialog element itself (the host `<ui-modal>` is always in the page, the dialog only while open). None when empty. */
|
|
2227
2231
|
readonly dialogTestId: import("@angular/core").InputSignal<string>;
|
|
2228
2232
|
/** Hides the header X button (e.g. while a request is running). Escape and a backdrop click still close unless `closable` is false. */
|
|
@@ -2606,7 +2610,7 @@ export declare class AudioPlayerComponent {
|
|
|
2606
2610
|
/** Accessible name of the player. */
|
|
2607
2611
|
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
2608
2612
|
/** How much to load before play: 'metadata' (default), 'auto' or 'none'. */
|
|
2609
|
-
readonly preload: import("@angular/core").InputSignal<"
|
|
2613
|
+
readonly preload: import("@angular/core").InputSignal<"none" | "metadata" | "auto">;
|
|
2610
2614
|
/** Fires when the browser can't load or decode the source. */
|
|
2611
2615
|
readonly playbackError: import("@angular/core").OutputEmitterRef<void>;
|
|
2612
2616
|
protected readonly failed: import("@angular/core").WritableSignal<boolean>;
|
|
@@ -2860,7 +2864,7 @@ export declare class CheckboxComponent implements ControlValueAccessor, Validato
|
|
|
2860
2864
|
* clicking it still toggles the box - e.g. a product name that is both the heading of its card and the label of its checkbox.
|
|
2861
2865
|
* Default null: plain label text, exactly as before. Single mode only.
|
|
2862
2866
|
*/
|
|
2863
|
-
readonly headingLevel: import("@angular/core").InputSignal<1 |
|
|
2867
|
+
readonly headingLevel: import("@angular/core").InputSignal<1 | 2 | 3 | 5 | 6 | 4 | null>;
|
|
2864
2868
|
readonly indeterminate: import("@angular/core").InputSignal<boolean>;
|
|
2865
2869
|
readonly checked: import("@angular/core").ModelSignal<boolean>;
|
|
2866
2870
|
/**
|
|
@@ -3930,8 +3934,8 @@ export declare class ButtonComponent {
|
|
|
3930
3934
|
private readonly _narrow;
|
|
3931
3935
|
readonly color: import("@angular/core").InputSignal<string | undefined>;
|
|
3932
3936
|
readonly active: import("@angular/core").InputSignal<boolean>;
|
|
3933
|
-
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "
|
|
3934
|
-
readonly type: import("@angular/core").InputSignal<"
|
|
3937
|
+
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "xs" | "lg">;
|
|
3938
|
+
readonly type: import("@angular/core").InputSignal<"reset" | "submit" | "button">;
|
|
3935
3939
|
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
3936
3940
|
readonly loading: import("@angular/core").InputSignal<boolean>;
|
|
3937
3941
|
readonly fullWidth: import("@angular/core").InputSignal<boolean>;
|
|
@@ -4076,6 +4080,10 @@ export interface ToggleBadgeAction {
|
|
|
4076
4080
|
* Pill that toggles on / off. Optional `actions` put small icon buttons INSIDE the pill, after the label and a divider, each with its own
|
|
4077
4081
|
* tooltip; the label button and the icon buttons are separate buttons (never nested). Clicking an icon button emits `(action)` with its id and
|
|
4078
4082
|
* never `(toggle)`. Content projected into the component (an icon) goes before the label, as before.
|
|
4083
|
+
*
|
|
4084
|
+
* Accessibility: the label button is a toggle button, so it carries `aria-pressed` (true while `active`); on touch devices
|
|
4085
|
+
* (`pointer: coarse`) its hit area, and each icon button's, is 44px (an invisible overlay; it can reach into a neighbouring badge when the
|
|
4086
|
+
* host's gap between badges is smaller than the overlay, see docs/ui-timeline-and-small-additions.md).
|
|
4079
4087
|
*/
|
|
4080
4088
|
export declare class ToggleBadgeComponent {
|
|
4081
4089
|
readonly label: import("@angular/core").InputSignal<string>;
|
|
@@ -4141,6 +4149,8 @@ export declare class PillTabsComponent {
|
|
|
4141
4149
|
/** Accessible name for the tab list (e.g. 'Reporting period'). Omit to leave it unnamed. */
|
|
4142
4150
|
readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
|
|
4143
4151
|
readonly name: import("@angular/core").InputSignal<string>;
|
|
4152
|
+
/** Keep every pill at its own width on one line (default false: pills may shrink and wrap their text). On a phone the row scrolls sideways, as it always does. */
|
|
4153
|
+
readonly noWrap: import("@angular/core").InputSignal<boolean>;
|
|
4144
4154
|
readonly tabChange: import("@angular/core").OutputEmitterRef<string>;
|
|
4145
4155
|
/** True while pills are hidden past the start / end edge of the scroll area (drives the fade hints). */
|
|
4146
4156
|
protected readonly canScrollStart: import("@angular/core").WritableSignal<boolean>;
|
|
@@ -4173,6 +4183,11 @@ export declare class PillTabsComponent {
|
|
|
4173
4183
|
"required": false;
|
|
4174
4184
|
"isSignal": true;
|
|
4175
4185
|
};
|
|
4186
|
+
"noWrap": {
|
|
4187
|
+
"alias": "noWrap";
|
|
4188
|
+
"required": false;
|
|
4189
|
+
"isSignal": true;
|
|
4190
|
+
};
|
|
4176
4191
|
}, {
|
|
4177
4192
|
"tabChange": "tabChange";
|
|
4178
4193
|
}, never, never, true, never>;
|
|
@@ -4363,7 +4378,7 @@ export declare class BulkMessagePanelComponent {
|
|
|
4363
4378
|
readonly sending: import("@angular/core").InputSignal<boolean>;
|
|
4364
4379
|
readonly closed: import("@angular/core").OutputEmitterRef<void>;
|
|
4365
4380
|
readonly send: import("@angular/core").OutputEmitterRef<BulkMessageSendEvent>;
|
|
4366
|
-
readonly channel: import("@angular/core").WritableSignal<"
|
|
4381
|
+
readonly channel: import("@angular/core").WritableSignal<"text" | "email">;
|
|
4367
4382
|
private readonly _subject;
|
|
4368
4383
|
private readonly _body;
|
|
4369
4384
|
get subject(): string;
|
|
@@ -4418,7 +4433,7 @@ export declare class ImportSourceGridComponent {
|
|
|
4418
4433
|
/** The `value` of the picked source (highlighted). `tile` only: the `card` appearance does not keep a selection. */
|
|
4419
4434
|
readonly selected: import("@angular/core").InputSignal<string>;
|
|
4420
4435
|
/** `tile`: the compact buttons of the import window. `card`: one `ui-detail-card` per source with its own select button (used on a page). */
|
|
4421
|
-
readonly appearance: import("@angular/core").InputSignal<"
|
|
4436
|
+
readonly appearance: import("@angular/core").InputSignal<"card" | "tile">;
|
|
4422
4437
|
/** `card`: disables every card's button (for example while the page is saving). */
|
|
4423
4438
|
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
4424
4439
|
/** `card`: the text of each card's button. */
|
|
@@ -4727,7 +4742,7 @@ export declare class TextInputComponent implements ControlValueAccessor, Validat
|
|
|
4727
4742
|
readonly passwordRequirements: import("@angular/core").InputSignal<boolean>;
|
|
4728
4743
|
/** Rules for `passwordRequirements`; default = the library's five rules (8+ characters, upper, lower, digit, special). */
|
|
4729
4744
|
readonly passwordRules: import("@angular/core").InputSignal<readonly PasswordRule[] | undefined>;
|
|
4730
|
-
readonly type: import("@angular/core").InputSignal<"number" | "
|
|
4745
|
+
readonly type: import("@angular/core").InputSignal<"number" | "text" | "email" | "tel" | "password" | "url">;
|
|
4731
4746
|
readonly maxlength: import("@angular/core").InputSignal<number | undefined>;
|
|
4732
4747
|
readonly required: import("@angular/core").InputSignal<boolean>;
|
|
4733
4748
|
readonly autocomplete: import("@angular/core").InputSignal<string>;
|
|
@@ -4736,7 +4751,7 @@ export declare class TextInputComponent implements ControlValueAccessor, Validat
|
|
|
4736
4751
|
* `search`, `text`, `none`). Empty (default) = the browser's default for the field, except `type="tel"`, which keeps `tel`.
|
|
4737
4752
|
* It only picks the keyboard; it does not restrict what can be typed or pasted.
|
|
4738
4753
|
*/
|
|
4739
|
-
readonly inputmode: import("@angular/core").InputSignal<"" | "
|
|
4754
|
+
readonly inputmode: import("@angular/core").InputSignal<"" | "text" | "search" | "none" | "email" | "numeric" | "tel" | "url" | "decimal">;
|
|
4740
4755
|
readonly readonly: import("@angular/core").InputSignal<boolean>;
|
|
4741
4756
|
readonly hint: import("@angular/core").InputSignal<string>;
|
|
4742
4757
|
readonly error: import("@angular/core").InputSignal<string>;
|
|
@@ -4800,7 +4815,7 @@ export declare class TextInputComponent implements ControlValueAccessor, Validat
|
|
|
4800
4815
|
protected readonly _stepAttr: import("@angular/core").Signal<string | null>;
|
|
4801
4816
|
protected readonly _revealable: import("@angular/core").Signal<boolean>;
|
|
4802
4817
|
protected readonly _shown: import("@angular/core").WritableSignal<boolean>;
|
|
4803
|
-
protected readonly _inputType: import("@angular/core").Signal<"number" | "
|
|
4818
|
+
protected readonly _inputType: import("@angular/core").Signal<"number" | "text" | "email" | "tel" | "password" | "url">;
|
|
4804
4819
|
protected readonly _eyePath: string;
|
|
4805
4820
|
protected readonly _eyeOffPath: string;
|
|
4806
4821
|
protected readonly _showRequirements: import("@angular/core").Signal<boolean>;
|
|
@@ -6158,8 +6173,13 @@ export declare class DropdownComponent {
|
|
|
6158
6173
|
readonly loader: import("@angular/core").InputSignal<(() => Promise<DropdownItem[]>) | null>;
|
|
6159
6174
|
readonly active: import("@angular/core").InputSignal<boolean>;
|
|
6160
6175
|
readonly activeValue: import("@angular/core").InputSignal<string>;
|
|
6161
|
-
readonly variant: import("@angular/core").InputSignal<"
|
|
6176
|
+
readonly variant: import("@angular/core").InputSignal<"badge" | "button">;
|
|
6162
6177
|
readonly menuWidth: import("@angular/core").InputSignal<string>;
|
|
6178
|
+
/**
|
|
6179
|
+
* 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
|
|
6180
|
+
* width whatever label is selected (never wider than its container) and its label and chevron sit at the two ends.
|
|
6181
|
+
*/
|
|
6182
|
+
readonly width: import("@angular/core").InputSignal<string>;
|
|
6163
6183
|
/**
|
|
6164
6184
|
* Accessible name. Set it when the trigger has no meaningful visible text. Applied as `aria-label` on the
|
|
6165
6185
|
* trigger and on the menu; when empty (default) no `aria-label` is rendered, the trigger is named by its
|
|
@@ -6258,6 +6278,11 @@ export declare class DropdownComponent {
|
|
|
6258
6278
|
"required": false;
|
|
6259
6279
|
"isSignal": true;
|
|
6260
6280
|
};
|
|
6281
|
+
"width": {
|
|
6282
|
+
"alias": "width";
|
|
6283
|
+
"required": false;
|
|
6284
|
+
"isSignal": true;
|
|
6285
|
+
};
|
|
6261
6286
|
"ariaLabel": {
|
|
6262
6287
|
"alias": "ariaLabel";
|
|
6263
6288
|
"required": false;
|
|
@@ -6357,7 +6382,7 @@ export declare class FormSectionComponent {
|
|
|
6357
6382
|
}, {}, never, ["*"], true, never>;
|
|
6358
6383
|
}
|
|
6359
6384
|
export declare class FormRowComponent {
|
|
6360
|
-
readonly cols: import("@angular/core").InputSignal<1 |
|
|
6385
|
+
readonly cols: import("@angular/core").InputSignal<1 | 2 | 3 | 4>;
|
|
6361
6386
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormRowComponent, never>;
|
|
6362
6387
|
static ɵcmp: i0.ɵɵComponentDeclaration<FormRowComponent, "ui-form-row", never, {
|
|
6363
6388
|
"cols": {
|
|
@@ -9315,7 +9340,7 @@ export declare class DetailCardComponent {
|
|
|
9315
9340
|
/** true (default) = the title is displayed in capitals (CSS only); false = shown as written. The text, aria-label and heading name are never changed. */
|
|
9316
9341
|
readonly uppercaseTitle: import("@angular/core").InputSignal<boolean>;
|
|
9317
9342
|
/** 1-6 makes the title a real heading for screen readers (role=heading, aria-level); null keeps it plain text. */
|
|
9318
|
-
readonly headingLevel: import("@angular/core").InputSignal<1 |
|
|
9343
|
+
readonly headingLevel: import("@angular/core").InputSignal<1 | 2 | 3 | 5 | 6 | 4 | null>;
|
|
9319
9344
|
/** Optional id for the title text; the card is then labelled by it. Without it the title is the card's aria-label. */
|
|
9320
9345
|
readonly titleId: import("@angular/core").InputSignal<string>;
|
|
9321
9346
|
/** Accessible name of the card when the header gives none (no header, or no title). A visible title wins; blank = no name. */
|
|
@@ -10232,6 +10257,12 @@ export type ColumnsAlign = 'start' | 'center' | 'stretch';
|
|
|
10232
10257
|
* - `collapseAt`: sm (480px) | md (768px) | lg (1024px) | never. Below that viewport width the columns become one.
|
|
10233
10258
|
* Plain media queries are used (not container queries) because they behave the same in every supported browser.
|
|
10234
10259
|
* - `align`: start | center | stretch (default start) - how cells of different heights line up.
|
|
10260
|
+
* - `spanLastOdd` (default false): in a 2-column grid, a last cell that would sit alone in its row spans the whole row instead of
|
|
10261
|
+
* leaving an empty half (3 cells -> 2 + 1 full-width; 1 cell -> full width). Only for a grid that has 1 or 2 columns at EVERY width:
|
|
10262
|
+
* `count` 2 and every `countBelow*` tier (after its fallback to the next wider tier) 1 or 2, collapsing included. With a 3 or 4 column tier
|
|
10263
|
+
* at any width, or in `countFrom*` mode, the span is not applied at all (an inline span would break that width's grid). It is applied to the
|
|
10264
|
+
* last VISIBLE element child (a `hidden` / `display: none` cell is skipped), and a last cell that already has its own inline `grid-column`
|
|
10265
|
+
* is left alone. It is re-applied when cells come and go and when a direct child's `hidden`, `style` or `class` attribute changes.
|
|
10235
10266
|
* - Responsive tiers (optional): `countBelowLg` (viewport <= 1024px), `countBelowMd` (<= 768px) and `countBelowSm` (<= 480px)
|
|
10236
10267
|
* give a different column count (1-4) at narrower widths. Each tier falls back to the next wider one, then to `count`, so
|
|
10237
10268
|
* a grid that sets none of them is unchanged. `collapseAt` is applied last: a width at or below it is one column.
|
|
@@ -10250,6 +10281,8 @@ export declare class ColumnsComponent {
|
|
|
10250
10281
|
readonly gap: import("@angular/core").InputSignal<string>;
|
|
10251
10282
|
readonly collapseAt: import("@angular/core").InputSignal<ColumnsCollapse>;
|
|
10252
10283
|
readonly align: import("@angular/core").InputSignal<ColumnsAlign>;
|
|
10284
|
+
/** 2-column grids: an odd last cell spans the full row instead of leaving an empty half. Default false. */
|
|
10285
|
+
readonly spanLastOdd: import("@angular/core").InputSignal<boolean>;
|
|
10253
10286
|
/** Column count at viewport widths <= 1024px (falls back to `count`). */
|
|
10254
10287
|
readonly countBelowLg: import("@angular/core").InputSignal<ColumnsCount | null>;
|
|
10255
10288
|
/** Column count at <= 768px (falls back to `countBelowLg`, then `count`). */
|
|
@@ -10276,8 +10309,21 @@ export declare class ColumnsComponent {
|
|
|
10276
10309
|
protected readonly fromSm: import("@angular/core").Signal<ColumnsCount | null>;
|
|
10277
10310
|
protected readonly fromMd: import("@angular/core").Signal<ColumnsCount | null>;
|
|
10278
10311
|
protected readonly fromLg: import("@angular/core").Signal<ColumnsCount | null>;
|
|
10312
|
+
/** The column count at each width after the tier fallbacks: base (> 1024px), <= 1024, <= 768, <= 480. */
|
|
10313
|
+
private readonly effectiveCols;
|
|
10314
|
+
/** spanLastOdd only when the grid has 2 columns on wide screens and never more than 2 at any width (and is not in countFrom* mode). */
|
|
10315
|
+
protected readonly spanFits: import("@angular/core").Signal<boolean>;
|
|
10279
10316
|
protected readonly gapCss: import("@angular/core").Signal<string>;
|
|
10280
10317
|
protected readonly collapseClass: import("@angular/core").Signal<string>;
|
|
10318
|
+
private readonly grid;
|
|
10319
|
+
private readonly destroyRef;
|
|
10320
|
+
private static readonly SPAN_MARK;
|
|
10321
|
+
constructor();
|
|
10322
|
+
/**
|
|
10323
|
+
* Marks the last VISIBLE element child (when it would be alone in its row) with `grid-column: 1 / -1`, and clears a mark left on any other child.
|
|
10324
|
+
* A cell the consumer gave its own inline `grid-column` is never marked or cleared.
|
|
10325
|
+
*/
|
|
10326
|
+
private applySpan;
|
|
10281
10327
|
static ɵfac: i0.ɵɵFactoryDeclaration<ColumnsComponent, never>;
|
|
10282
10328
|
static ɵcmp: i0.ɵɵComponentDeclaration<ColumnsComponent, "ui-columns", never, {
|
|
10283
10329
|
"count": {
|
|
@@ -10300,6 +10346,11 @@ export declare class ColumnsComponent {
|
|
|
10300
10346
|
"required": false;
|
|
10301
10347
|
"isSignal": true;
|
|
10302
10348
|
};
|
|
10349
|
+
"spanLastOdd": {
|
|
10350
|
+
"alias": "spanLastOdd";
|
|
10351
|
+
"required": false;
|
|
10352
|
+
"isSignal": true;
|
|
10353
|
+
};
|
|
10303
10354
|
"countBelowLg": {
|
|
10304
10355
|
"alias": "countBelowLg";
|
|
10305
10356
|
"required": false;
|