@forgeroute/ui 0.4.15 → 0.4.16
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/fesm2022/forgeroute-ui-messaging.mjs +12 -0
- package/fesm2022/forgeroute-ui-messaging.mjs.map +1 -1
- package/fesm2022/forgeroute-ui-stripe.mjs +3 -0
- package/fesm2022/forgeroute-ui-stripe.mjs.map +1 -1
- package/fesm2022/forgeroute-ui.mjs +22906 -22391
- package/fesm2022/forgeroute-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/forgeroute-ui.d.ts +152 -11
package/package.json
CHANGED
package/types/forgeroute-ui.d.ts
CHANGED
|
@@ -398,6 +398,18 @@ export interface BulkActionEvent {
|
|
|
398
398
|
value?: string;
|
|
399
399
|
skippedCount: number;
|
|
400
400
|
}
|
|
401
|
+
/** Emitted by (rowReorder) after the user moves a row (`reorderable`). */
|
|
402
|
+
export interface TableRowReorderEvent<T = any> {
|
|
403
|
+
/** The row that was moved. */
|
|
404
|
+
item: T;
|
|
405
|
+
/** Its index on the page before and after the move (0-based). */
|
|
406
|
+
from: number;
|
|
407
|
+
to: number;
|
|
408
|
+
/** The rows on the page in their new order. */
|
|
409
|
+
items: T[];
|
|
410
|
+
/** How many rows come before this page (0 on the first page), so `offset + to` is the row's position in the whole list. */
|
|
411
|
+
offset: number;
|
|
412
|
+
}
|
|
401
413
|
export interface PageResponse<T> {
|
|
402
414
|
content: T[];
|
|
403
415
|
totalElements: number;
|
|
@@ -961,7 +973,7 @@ export declare class SelectComponent implements ControlValueAccessor, Validator,
|
|
|
961
973
|
readonly error: import("@angular/core").InputSignal<string>;
|
|
962
974
|
/** Reveal the built-in error messages now (e.g. after a failed Save click), without waiting for blur. */
|
|
963
975
|
readonly showErrors: import("@angular/core").InputSignal<boolean>;
|
|
964
|
-
readonly size: import("@angular/core").InputSignal<"
|
|
976
|
+
readonly size: import("@angular/core").InputSignal<"default" | "sm">;
|
|
965
977
|
readonly _disabledInput: import("@angular/core").InputSignal<boolean>;
|
|
966
978
|
private readonly _cvaDisabled;
|
|
967
979
|
protected readonly disabled: import("@angular/core").Signal<boolean>;
|
|
@@ -1307,6 +1319,16 @@ export declare class DataTableComponent<T extends Record<string, any>> implement
|
|
|
1307
1319
|
readonly bulkAction: import("@angular/core").OutputEmitterRef<BulkActionEvent>;
|
|
1308
1320
|
/** Emitted after a built-in single-row delete completes successfully. */
|
|
1309
1321
|
readonly rowDeleted: import("@angular/core").OutputEmitterRef<T>;
|
|
1322
|
+
/**
|
|
1323
|
+
* Optional drag-and-drop ordering of the rows. Off by default; when `true` (and the user has full access) every row gets a grip
|
|
1324
|
+
* (drag it, or focus it and use the arrow keys / Home / End; phone cards get Move up / Move down buttons). Reordering is only
|
|
1325
|
+
* offered while the list is in its stored order: with a sort, search, quick tab or column filter active the grips are disabled
|
|
1326
|
+
* (their tooltip says why), because the visible order is then not the stored one. The move is applied to the page on screen at
|
|
1327
|
+
* once and announced as `(rowReorder)`; the host saves it (a failed save should call `refresh()` to bring back the stored order).
|
|
1328
|
+
*/
|
|
1329
|
+
readonly reorderable: import("@angular/core").InputSignal<boolean>;
|
|
1330
|
+
/** Emitted after the user moves a row: `items` is the page in its new order, `from` / `to` are page indexes, `offset` is the number of rows on earlier pages. */
|
|
1331
|
+
readonly rowReorder: import("@angular/core").OutputEmitterRef<TableRowReorderEvent<T>>;
|
|
1310
1332
|
private readonly config;
|
|
1311
1333
|
private readonly http;
|
|
1312
1334
|
private readonly destroyRef;
|
|
@@ -1400,6 +1422,33 @@ export declare class DataTableComponent<T extends Record<string, any>> implement
|
|
|
1400
1422
|
protected readonly _toolbarButtons: Signal<ToolbarAction[]>;
|
|
1401
1423
|
/** True while the table is empty and unfiltered but the host kept a More Actions item (`keepWhenEmpty`) — the menu stays. */
|
|
1402
1424
|
protected readonly _keepMoreActions: Signal<boolean>;
|
|
1425
|
+
/** The reorder column is part of the table (the grips may still be disabled, see `_reorderActive`). */
|
|
1426
|
+
protected readonly _reorderOn: Signal<boolean>;
|
|
1427
|
+
/** Moves are allowed: the list is in its stored order (no sort / search / tab / filter), loaded, and has more than one row. */
|
|
1428
|
+
protected readonly _reorderActive: Signal<boolean>;
|
|
1429
|
+
protected readonly _reorderHint: Signal<"There is nothing to reorder" | "Clear the sort, search and filters to change the order">;
|
|
1430
|
+
/** One id per table, so each grip can point to the instructions (aria-describedby) even with several tables on a page. */
|
|
1431
|
+
protected readonly _reorderHelpId: string;
|
|
1432
|
+
protected readonly _dragFrom: import("@angular/core").WritableSignal<number | null>;
|
|
1433
|
+
/** Key of the row being dragged: the index can go stale if the page reloads mid-drag, the key cannot. */
|
|
1434
|
+
private _dragKey;
|
|
1435
|
+
protected readonly _dragOver: import("@angular/core").WritableSignal<number | null>;
|
|
1436
|
+
/** Polite screen-reader message after a move. */
|
|
1437
|
+
protected readonly _reorderAnnouncement: import("@angular/core").WritableSignal<string>;
|
|
1438
|
+
private readonly _host;
|
|
1439
|
+
protected reorderLabel(item: T): string;
|
|
1440
|
+
protected onGripDragStart(e: DragEvent, index: number): void;
|
|
1441
|
+
protected onGripDragEnd(): void;
|
|
1442
|
+
protected onRowDragOver(e: DragEvent, index: number): void;
|
|
1443
|
+
protected onRowDrop(e: DragEvent, index: number): void;
|
|
1444
|
+
protected onGripKeydown(e: KeyboardEvent, index: number): void;
|
|
1445
|
+
/**
|
|
1446
|
+
* A Move up / Move down button (touch screens and phone cards). The pressed button can end up disabled (the row reached an end), and a
|
|
1447
|
+
* focused control that gets disabled drops focus to the page, so focus goes to the row's other Move button then.
|
|
1448
|
+
*/
|
|
1449
|
+
protected moveByButton(index: number, direction: -1 | 1): void;
|
|
1450
|
+
/** Moves the row at `from` to `to` (both page indexes) in the table and tells the host. false = nothing changed. */
|
|
1451
|
+
protected moveRow(from: number, to: number): boolean;
|
|
1403
1452
|
protected readonly _hasActiveFilters: Signal<boolean>;
|
|
1404
1453
|
/** Host `params` with empty values dropped; equal by content so a new object with the same values doesn't reload. */
|
|
1405
1454
|
protected readonly _extraParams: Signal<Record<string, string>>;
|
|
@@ -1455,7 +1504,7 @@ export declare class DataTableComponent<T extends Record<string, any>> implement
|
|
|
1455
1504
|
*/
|
|
1456
1505
|
private readonly _rowNameSuffix;
|
|
1457
1506
|
/** A row's accessible name: its name, plus the position among rows of the same name when that name repeats on the page. */
|
|
1458
|
-
|
|
1507
|
+
protected rowAccessibleName(item: T): string;
|
|
1459
1508
|
/** "Select Acme Electric" — a row's selection checkbox name ("Select Acme Electric (2 of 3)" when the name repeats on the page). */
|
|
1460
1509
|
protected selectRowLabel(item: T): string;
|
|
1461
1510
|
/**
|
|
@@ -1769,6 +1818,11 @@ export declare class DataTableComponent<T extends Record<string, any>> implement
|
|
|
1769
1818
|
"required": false;
|
|
1770
1819
|
"isSignal": true;
|
|
1771
1820
|
};
|
|
1821
|
+
"reorderable": {
|
|
1822
|
+
"alias": "reorderable";
|
|
1823
|
+
"required": false;
|
|
1824
|
+
"isSignal": true;
|
|
1825
|
+
};
|
|
1772
1826
|
}, {
|
|
1773
1827
|
"rowClick": "rowClick";
|
|
1774
1828
|
"linkClick": "linkClick";
|
|
@@ -1782,6 +1836,7 @@ export declare class DataTableComponent<T extends Record<string, any>> implement
|
|
|
1782
1836
|
"tabChange": "tabChange";
|
|
1783
1837
|
"bulkAction": "bulkAction";
|
|
1784
1838
|
"rowDeleted": "rowDeleted";
|
|
1839
|
+
"rowReorder": "rowReorder";
|
|
1785
1840
|
}, never, never, true, never>;
|
|
1786
1841
|
}
|
|
1787
1842
|
/**
|
|
@@ -2279,7 +2334,7 @@ export declare class AudioPlayerComponent {
|
|
|
2279
2334
|
/** Accessible name of the player. */
|
|
2280
2335
|
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
2281
2336
|
/** How much to load before play: 'metadata' (default), 'auto' or 'none'. */
|
|
2282
|
-
readonly preload: import("@angular/core").InputSignal<"none" | "
|
|
2337
|
+
readonly preload: import("@angular/core").InputSignal<"none" | "auto" | "metadata">;
|
|
2283
2338
|
/** Fires when the browser can't load or decode the source. */
|
|
2284
2339
|
readonly playbackError: import("@angular/core").OutputEmitterRef<void>;
|
|
2285
2340
|
protected readonly failed: import("@angular/core").WritableSignal<boolean>;
|
|
@@ -2529,7 +2584,7 @@ export declare class CheckboxComponent implements ControlValueAccessor, Validato
|
|
|
2529
2584
|
* 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.
|
|
2530
2585
|
* Default null: plain label text, exactly as before. Single mode only.
|
|
2531
2586
|
*/
|
|
2532
|
-
readonly headingLevel: import("@angular/core").InputSignal<
|
|
2587
|
+
readonly headingLevel: import("@angular/core").InputSignal<1 | 2 | 3 | 4 | 5 | 6 | null>;
|
|
2533
2588
|
readonly indeterminate: import("@angular/core").InputSignal<boolean>;
|
|
2534
2589
|
readonly checked: import("@angular/core").ModelSignal<boolean>;
|
|
2535
2590
|
/**
|
|
@@ -3410,7 +3465,7 @@ export declare class PhoneNumberPickerComponent {
|
|
|
3410
3465
|
protected readonly modeCtl: FormControl<string>;
|
|
3411
3466
|
protected readonly zipCtl: FormControl<string>;
|
|
3412
3467
|
protected readonly areaCtl: FormControl<string>;
|
|
3413
|
-
protected readonly step: import("@angular/core").WritableSignal<
|
|
3468
|
+
protected readonly step: import("@angular/core").WritableSignal<1 | 2 | 3>;
|
|
3414
3469
|
protected readonly mode: import("@angular/core").WritableSignal<PhoneNumberSearchMode>;
|
|
3415
3470
|
private readonly _zip;
|
|
3416
3471
|
private readonly _area;
|
|
@@ -3524,7 +3579,7 @@ export declare class ButtonComponent {
|
|
|
3524
3579
|
* `ghost-start`: a ghost button for list / section toggles - a full-width row with its content aligned to the start, transparent
|
|
3525
3580
|
* background, hover tint and the normal focus ring. Pair it with `ariaExpanded` / `ariaPressed`; the label may contain a heading element.
|
|
3526
3581
|
*/
|
|
3527
|
-
readonly variant: import("@angular/core").InputSignal<"
|
|
3582
|
+
readonly variant: import("@angular/core").InputSignal<"primary" | "secondary" | "danger" | "warning" | "link" | "ghost" | "ghost-start" | "tab" | "icon" | "icon-danger">;
|
|
3528
3583
|
/** 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`). */
|
|
3529
3584
|
readonly routerLink: import("@angular/core").InputSignal<string | readonly unknown[] | null>;
|
|
3530
3585
|
/** Query params of the `routerLink` (e.g. `{ section: 'deal-defaults' }`). */
|
|
@@ -3570,7 +3625,7 @@ export declare class ButtonComponent {
|
|
|
3570
3625
|
readonly color: import("@angular/core").InputSignal<string | undefined>;
|
|
3571
3626
|
readonly active: import("@angular/core").InputSignal<boolean>;
|
|
3572
3627
|
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" | "xs">;
|
|
3573
|
-
readonly type: import("@angular/core").InputSignal<"
|
|
3628
|
+
readonly type: import("@angular/core").InputSignal<"reset" | "submit" | "button">;
|
|
3574
3629
|
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
3575
3630
|
readonly loading: import("@angular/core").InputSignal<boolean>;
|
|
3576
3631
|
readonly fullWidth: import("@angular/core").InputSignal<boolean>;
|
|
@@ -4103,6 +4158,54 @@ export declare class ErrorStateComponent {
|
|
|
4103
4158
|
"retry": "retry";
|
|
4104
4159
|
}, never, never, true, never>;
|
|
4105
4160
|
}
|
|
4161
|
+
/** One password rule: `test` decides whether the typed password satisfies it. */
|
|
4162
|
+
export interface PasswordRule {
|
|
4163
|
+
id: string;
|
|
4164
|
+
label: string;
|
|
4165
|
+
test: (password: string) => boolean;
|
|
4166
|
+
}
|
|
4167
|
+
/** The default rules (same as the backends): 8+ characters, an uppercase letter, a lowercase letter, a digit and a special character. */
|
|
4168
|
+
export declare const DEFAULT_PASSWORD_RULES: readonly PasswordRule[];
|
|
4169
|
+
/** True when the password satisfies every rule (default: {@link DEFAULT_PASSWORD_RULES}). Use it to gate Save. */
|
|
4170
|
+
export declare function passwordMeetsRules(password: string, rules?: readonly PasswordRule[]): boolean;
|
|
4171
|
+
/**
|
|
4172
|
+
* The password requirements checklist. Pass the typed password; each rule shows as a row that turns green with a check mark once it is
|
|
4173
|
+
* satisfied, and stays grey with an empty circle until then. There is no "(met)" text: the state is also in `data-met` and in
|
|
4174
|
+
* visually hidden text for screen readers, so it is not colour alone.
|
|
4175
|
+
*
|
|
4176
|
+
* Also available as `<ui-text-input type="password" [passwordRequirements]="true">`, which shows this list under the field.
|
|
4177
|
+
*/
|
|
4178
|
+
export declare class PasswordRequirementsComponent {
|
|
4179
|
+
/** The password to check. */
|
|
4180
|
+
readonly value: import("@angular/core").InputSignal<string>;
|
|
4181
|
+
/** Rules to show; default {@link DEFAULT_PASSWORD_RULES}. */
|
|
4182
|
+
readonly rules: import("@angular/core").InputSignal<readonly PasswordRule[]>;
|
|
4183
|
+
readonly title: import("@angular/core").InputSignal<string>;
|
|
4184
|
+
protected readonly _check: string;
|
|
4185
|
+
protected readonly _results: import("@angular/core").Signal<{
|
|
4186
|
+
id: string;
|
|
4187
|
+
label: string;
|
|
4188
|
+
met: boolean;
|
|
4189
|
+
}[]>;
|
|
4190
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PasswordRequirementsComponent, never>;
|
|
4191
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PasswordRequirementsComponent, "ui-password-requirements", never, {
|
|
4192
|
+
"value": {
|
|
4193
|
+
"alias": "value";
|
|
4194
|
+
"required": false;
|
|
4195
|
+
"isSignal": true;
|
|
4196
|
+
};
|
|
4197
|
+
"rules": {
|
|
4198
|
+
"alias": "rules";
|
|
4199
|
+
"required": false;
|
|
4200
|
+
"isSignal": true;
|
|
4201
|
+
};
|
|
4202
|
+
"title": {
|
|
4203
|
+
"alias": "title";
|
|
4204
|
+
"required": false;
|
|
4205
|
+
"isSignal": true;
|
|
4206
|
+
};
|
|
4207
|
+
}, {}, never, never, true, never>;
|
|
4208
|
+
}
|
|
4106
4209
|
export declare class TextInputComponent implements ControlValueAccessor, Validator, UiFieldValidity {
|
|
4107
4210
|
readonly label: import("@angular/core").InputSignal<string>;
|
|
4108
4211
|
/** Accessible name for a field with no visible label (e.g. an inline cell or title input). */
|
|
@@ -4114,6 +4217,18 @@ export declare class TextInputComponent implements ControlValueAccessor, Validat
|
|
|
4114
4217
|
* Meant for a short mark of 1-3 characters.
|
|
4115
4218
|
*/
|
|
4116
4219
|
readonly prefix: import("@angular/core").InputSignal<string>;
|
|
4220
|
+
/**
|
|
4221
|
+
* `type="password"` only: puts an eye button inside the field, at its right end, that shows / hides the typed text (the eye with a slash
|
|
4222
|
+
* means "hidden again"). Per field, starts hidden; the button is a toggle (`aria-pressed`) named "Show password". Ignored for other types.
|
|
4223
|
+
*/
|
|
4224
|
+
readonly revealable: import("@angular/core").InputSignal<boolean>;
|
|
4225
|
+
/**
|
|
4226
|
+
* `type="password"` only: shows the password requirements checklist under the field (`ui-password-requirements`) once the user has typed
|
|
4227
|
+
* (it hides again when the host clears the field, e.g. after a successful change). Each rule turns green with a check when satisfied. Off by default; ignored for other types.
|
|
4228
|
+
*/
|
|
4229
|
+
readonly passwordRequirements: import("@angular/core").InputSignal<boolean>;
|
|
4230
|
+
/** Rules for `passwordRequirements`; default = the library's five rules (8+ characters, upper, lower, digit, special). */
|
|
4231
|
+
readonly passwordRules: import("@angular/core").InputSignal<readonly PasswordRule[] | undefined>;
|
|
4117
4232
|
readonly type: import("@angular/core").InputSignal<"number" | "text" | "email" | "tel" | "password" | "url">;
|
|
4118
4233
|
readonly maxlength: import("@angular/core").InputSignal<number | undefined>;
|
|
4119
4234
|
readonly required: import("@angular/core").InputSignal<boolean>;
|
|
@@ -4185,6 +4300,17 @@ export declare class TextInputComponent implements ControlValueAccessor, Validat
|
|
|
4185
4300
|
private readonly _numeric;
|
|
4186
4301
|
/** The native `step` attribute: only for `type="number"` and only for a finite number above 0; otherwise none (the browser's step of 1). */
|
|
4187
4302
|
protected readonly _stepAttr: import("@angular/core").Signal<string | null>;
|
|
4303
|
+
protected readonly _revealable: import("@angular/core").Signal<boolean>;
|
|
4304
|
+
protected readonly _shown: import("@angular/core").WritableSignal<boolean>;
|
|
4305
|
+
protected readonly _inputType: import("@angular/core").Signal<"number" | "text" | "email" | "tel" | "password" | "url">;
|
|
4306
|
+
protected readonly _eyePath: string;
|
|
4307
|
+
protected readonly _eyeOffPath: string;
|
|
4308
|
+
protected readonly _showRequirements: import("@angular/core").Signal<boolean>;
|
|
4309
|
+
/** `aria-describedby`: the error / hint text and, while the requirements checklist is shown, the checklist (so a screen reader reads the rules with the field). */
|
|
4310
|
+
protected readonly _describedBy: import("@angular/core").Signal<string | null>;
|
|
4311
|
+
/** True once the user typed in the field; a host-written empty value (a form reset) puts it back to false. */
|
|
4312
|
+
private readonly _typed;
|
|
4313
|
+
protected readonly _defaultRules: readonly PasswordRule[];
|
|
4188
4314
|
private _warned;
|
|
4189
4315
|
private readonly _formatting;
|
|
4190
4316
|
private readonly _issue;
|
|
@@ -4239,6 +4365,21 @@ export declare class TextInputComponent implements ControlValueAccessor, Validat
|
|
|
4239
4365
|
"required": false;
|
|
4240
4366
|
"isSignal": true;
|
|
4241
4367
|
};
|
|
4368
|
+
"revealable": {
|
|
4369
|
+
"alias": "revealable";
|
|
4370
|
+
"required": false;
|
|
4371
|
+
"isSignal": true;
|
|
4372
|
+
};
|
|
4373
|
+
"passwordRequirements": {
|
|
4374
|
+
"alias": "passwordRequirements";
|
|
4375
|
+
"required": false;
|
|
4376
|
+
"isSignal": true;
|
|
4377
|
+
};
|
|
4378
|
+
"passwordRules": {
|
|
4379
|
+
"alias": "passwordRules";
|
|
4380
|
+
"required": false;
|
|
4381
|
+
"isSignal": true;
|
|
4382
|
+
};
|
|
4242
4383
|
"type": {
|
|
4243
4384
|
"alias": "type";
|
|
4244
4385
|
"required": false;
|
|
@@ -5685,7 +5826,7 @@ export declare class FormSectionComponent {
|
|
|
5685
5826
|
}, {}, never, ["*"], true, never>;
|
|
5686
5827
|
}
|
|
5687
5828
|
export declare class FormRowComponent {
|
|
5688
|
-
readonly cols: import("@angular/core").InputSignal<
|
|
5829
|
+
readonly cols: import("@angular/core").InputSignal<1 | 2 | 3 | 4>;
|
|
5689
5830
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormRowComponent, never>;
|
|
5690
5831
|
static ɵcmp: i0.ɵɵComponentDeclaration<FormRowComponent, "ui-form-row", never, {
|
|
5691
5832
|
"cols": {
|
|
@@ -5702,7 +5843,7 @@ export declare class FormRowComponent {
|
|
|
5702
5843
|
* child simply takes the full width. Keep a numeric span within the row's `cols` (use `all` for the whole row).
|
|
5703
5844
|
*/
|
|
5704
5845
|
export declare class FormColSpanDirective {
|
|
5705
|
-
readonly uiColSpan: import("@angular/core").InputSignal<"" |
|
|
5846
|
+
readonly uiColSpan: import("@angular/core").InputSignal<"" | "2" | "3" | 2 | 3 | "all">;
|
|
5706
5847
|
protected readonly _class: import("@angular/core").Signal<string>;
|
|
5707
5848
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormColSpanDirective, never>;
|
|
5708
5849
|
static ɵdir: i0.ɵɵDirectiveDeclaration<FormColSpanDirective, "[uiColSpan]", never, {
|
|
@@ -6734,7 +6875,7 @@ export declare class AlertComponent {
|
|
|
6734
6875
|
/** The SVG path (24×24 stroke icon) for an icon key, or undefined when the key is unknown. */
|
|
6735
6876
|
export declare function iconPath(name: string): string | undefined;
|
|
6736
6877
|
/** Keys with an icon of their own (the data-table action keys are accepted too — see `builtInActionIcon`). */
|
|
6737
|
-
export type IconName = 'add' | 'close' | 'check' | 'upload' | 'image' | 'chevron-up' | 'chevron-down' | 'arrow-left' | 'bell' | 'print' | 'lock' | 'shield' | 'arrow-up' | 'arrow-down' | 'arrow-right' | 'document' | 'grip' | 'card' | 'bank' | 'view' | 'edit' | 'delete' | 'download' | 'duplicate' | 'archive' | 'restore' | 'share' | 'email' | 'message' | 'call';
|
|
6878
|
+
export type IconName = 'add' | 'close' | 'check' | 'upload' | 'image' | 'chevron-up' | 'chevron-down' | 'arrow-left' | 'bell' | 'print' | 'lock' | 'shield' | 'arrow-up' | 'arrow-down' | 'arrow-right' | 'document' | 'grip' | 'card' | 'bank' | 'view' | 'view-off' | 'edit' | 'delete' | 'download' | 'duplicate' | 'archive' | 'restore' | 'share' | 'email' | 'message' | 'call';
|
|
6738
6879
|
/**
|
|
6739
6880
|
* A clickable icon. The host passes a key (`name="delete"`) and the library draws that icon; clicking it emits
|
|
6740
6881
|
* `iconClick`, and the host does the actual work (delete the row, open a panel, …).
|
|
@@ -8281,7 +8422,7 @@ export declare class DetailCardComponent {
|
|
|
8281
8422
|
/** true (default) = the title is displayed in capitals (CSS only); false = shown as written. The text, aria-label and heading name are never changed. */
|
|
8282
8423
|
readonly uppercaseTitle: import("@angular/core").InputSignal<boolean>;
|
|
8283
8424
|
/** 1-6 makes the title a real heading for screen readers (role=heading, aria-level); null keeps it plain text. */
|
|
8284
|
-
readonly headingLevel: import("@angular/core").InputSignal<
|
|
8425
|
+
readonly headingLevel: import("@angular/core").InputSignal<1 | 2 | 3 | 4 | 5 | 6 | null>;
|
|
8285
8426
|
/** Optional id for the title text; the card is then labelled by it. Without it the title is the card's aria-label. */
|
|
8286
8427
|
readonly titleId: import("@angular/core").InputSignal<string>;
|
|
8287
8428
|
/** Accessible name of the card when the header gives none (no header, or no title). A visible title wins; blank = no name. */
|