@akcelik/strct 5.9.0 → 5.10.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": "@akcelik/strct",
3
- "version": "5.9.0",
3
+ "version": "5.10.0",
4
4
  "description": "UIStruct — a standalone Angular component library with a tokenised, multi-palette theme system, built for datacenter / infrastructure management UIs.",
5
5
  "author": "Serkan Akcelik <serkan.akcelik@gmail.com>",
6
6
  "license": "MIT",
@@ -2915,6 +2915,18 @@ interface StrctSegmentedOption {
2915
2915
  icon?: string;
2916
2916
  /** Disable just this segment. */
2917
2917
  disabled?: boolean;
2918
+ /**
2919
+ * How much is behind this view — "History 14". Drawn after the label as a
2920
+ * muted tabular number; the selected option keeps it muted.
2921
+ */
2922
+ count?: number;
2923
+ /** A count that is itself the news: "Failed 3" in critical. */
2924
+ countStatus?: StrctStatus;
2925
+ /**
2926
+ * What the count is called, for the option's accessible name: given
2927
+ * `(n) => n + ' runs'`, the option reads "History, 14 runs".
2928
+ */
2929
+ countLabel?: (count: number) => string;
2918
2930
  }
2919
2931
  /** Segment size. */
2920
2932
  type StrctSegmentedSize = 'sm' | 'md';
@@ -3862,6 +3874,8 @@ interface StrctDatagridLabels {
3862
3874
  openDetail: string;
3863
3875
  toggleDetail: string;
3864
3876
  closeDetail: string;
3877
+ /** The pane's way back to the list, when it has taken the list's place. */
3878
+ backToList: string;
3865
3879
  rowActions: string;
3866
3880
  chooseColumns: string;
3867
3881
  refresh: string;
@@ -3929,6 +3943,12 @@ interface StrctDatagridColumn {
3929
3943
  comparator?: (a: StrctRow, b: StrctRow) => number;
3930
3944
  /** What an export writes for this column; defaults to the stored value. */
3931
3945
  exportValue?: (row: StrctRow) => unknown;
3946
+ /**
3947
+ * Keep this column visible while a `detailPane` is open. Without any, the
3948
+ * list collapses to its first column — which cuts a long name in half and
3949
+ * hides the status the operator is triaging by.
3950
+ */
3951
+ keepInPane?: boolean;
3932
3952
  /**
3933
3953
  * Hidden until the chooser is asked for it — the column exists, it is just
3934
3954
  * not one of the defaults. A persisted or bound `columnState` wins.
@@ -3971,6 +3991,51 @@ interface StrctDatagridLazyState {
3971
3991
  /** The global quick-filter term ('' when none). */
3972
3992
  quickFilter: string;
3973
3993
  }
3994
+ /**
3995
+ * A group the consumer defines, beside `groupBy`. A triage page orders its
3996
+ * groups by urgency, not alphabetically, and "Passed (59)" starts folded.
3997
+ */
3998
+ interface StrctDatagridGroup {
3999
+ /** The `groupBy` column's value this group holds. */
4000
+ value: unknown;
4001
+ /** Shown instead of the raw value. */
4002
+ label?: string;
4003
+ /** Tints the label and the count chip. */
4004
+ status?: StrctStatus;
4005
+ /** One muted line after the count — "Blocks the join until …". */
4006
+ note?: string;
4007
+ /** Initial state; groups are expanded by default. */
4008
+ collapsed?: boolean;
4009
+ /** Shown instead of the row count — a server's total. */
4010
+ count?: number;
4011
+ }
4012
+ /**
4013
+ * A fully custom group header row:
4014
+ *
4015
+ * <ng-template strctGroupHeader let-group let-count="count">
4016
+ * <strct-badge [status]="group.status">{{ group.label }}</strct-badge> {{ count }}
4017
+ * </ng-template>
4018
+ */
4019
+ /** The pane header's own title, instead of the first column's value. */
4020
+ declare class StrctDetailPaneTitle {
4021
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctDetailPaneTitle, never>;
4022
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<StrctDetailPaneTitle, "[strctDetailPaneTitle]", never, {}, {}, never, never, true, never>;
4023
+ }
4024
+ /** Status, category, nodes — what the row is, beside its title. */
4025
+ declare class StrctDetailPaneMeta {
4026
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctDetailPaneMeta, never>;
4027
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<StrctDetailPaneMeta, "[strctDetailPaneMeta]", never, {}, {}, never, never, true, never>;
4028
+ }
4029
+ /** Controls at the pane header's end; the close button stays the library's. */
4030
+ declare class StrctDetailPaneActions {
4031
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctDetailPaneActions, never>;
4032
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<StrctDetailPaneActions, "[strctDetailPaneActions]", never, {}, {}, never, never, true, never>;
4033
+ }
4034
+ declare class StrctGroupHeaderDef {
4035
+ readonly template: TemplateRef<any>;
4036
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctGroupHeaderDef, never>;
4037
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<StrctGroupHeaderDef, "ng-template[strctGroupHeader]", never, {}, {}, never, never, true, never>;
4038
+ }
3974
4039
  /** Persistable user column preferences (widths from resize, hidden from the
3975
4040
  * chooser, order from drag-reorder). */
3976
4041
  interface StrctDatagridColumnState {
@@ -3989,6 +4054,8 @@ interface DgItem {
3989
4054
  label: string;
3990
4055
  count: number;
3991
4056
  collapsed: boolean;
4057
+ status?: StrctStatus;
4058
+ note?: string;
3992
4059
  };
3993
4060
  }
3994
4061
  /**
@@ -4033,6 +4100,22 @@ declare class StrctDatagrid {
4033
4100
  /** Collapse the grid to a single column and open a side detail pane for the
4034
4101
  * clicked row (distinct from {@link expandable}). */
4035
4102
  readonly detailPane: _angular_core.InputSignalWithTransform<boolean, unknown>;
4103
+ /**
4104
+ * How wide the list column is while the pane is open — px or any CSS width.
4105
+ * 260px cuts a test name like "Validate Switch Enabled Teaming
4106
+ * Configurations" in half and hides its status.
4107
+ */
4108
+ readonly paneListWidth: _angular_core.InputSignal<string>;
4109
+ /**
4110
+ * Below this container width (px) the pane takes the list's place, with a
4111
+ * way back in its header, rather than squeezing both into a phone.
4112
+ */
4113
+ readonly paneTakeoverWidth: _angular_core.InputSignal<number>;
4114
+ /**
4115
+ * The row whose pane is open, two-way: a "what to do next" chip opens the
4116
+ * finding it settles, a URL fragment deep-links to a test, `null` closes it.
4117
+ */
4118
+ readonly activeRowId: _angular_core.ModelSignal<unknown>;
4036
4119
  /** Compact density mode. */
4037
4120
  readonly compact: _angular_core.InputSignalWithTransform<boolean, unknown>;
4038
4121
  /**
@@ -4127,6 +4210,7 @@ declare class StrctDatagrid {
4127
4210
  openDetail: string;
4128
4211
  toggleDetail: string;
4129
4212
  closeDetail: string;
4213
+ backToList: string;
4130
4214
  rowActions: string;
4131
4215
  chooseColumns: string;
4132
4216
  refresh: string;
@@ -4191,6 +4275,19 @@ declare class StrctDatagrid {
4191
4275
  * groups. Paging is bypassed while grouped; not combinable with `virtual`.
4192
4276
  */
4193
4277
  readonly groupBy: _angular_core.InputSignal<string | null>;
4278
+ /**
4279
+ * The groups themselves, beside `groupBy`: their order, their labels, a
4280
+ * tone, a note, whether they start folded and a count of the consumer's
4281
+ * own. Values no group mentions follow, in the order the rows arrived.
4282
+ */
4283
+ readonly groups: _angular_core.InputSignal<readonly StrctDatagridGroup[] | null>;
4284
+ /** Keep a declared group that holds no rows, rather than dropping it. */
4285
+ readonly showEmptyGroups: _angular_core.InputSignalWithTransform<boolean, unknown>;
4286
+ /**
4287
+ * Which groups are folded, two-way — so a summary counter elsewhere on the
4288
+ * page can open the group it counts.
4289
+ */
4290
+ readonly collapsedGroups: _angular_core.ModelSignal<readonly unknown[]>;
4194
4291
  /**
4195
4292
  * Two-way per-column filter state: `key → contains-text` (text filter) or
4196
4293
  * `key → unknown[]` (checked value set). Applied client-side; in `lazy`
@@ -4257,6 +4354,9 @@ declare class StrctDatagrid {
4257
4354
  }>;
4258
4355
  private readonly menu;
4259
4356
  protected readonly detailDef: _angular_core.Signal<StrctRowDetailDef | undefined>;
4357
+ /** An `<ng-template strctGroupHeader let-group let-count="count">`. */
4358
+ protected readonly groupHeaderDef: _angular_core.Signal<StrctGroupHeaderDef | undefined>;
4359
+ protected readonly paneTitleDef: _angular_core.Signal<StrctDetailPaneTitle | undefined>;
4260
4360
  protected readonly actionBarDef: _angular_core.Signal<StrctDatagridActionBar | undefined>;
4261
4361
  /** A read-only grid with a note needed an empty action bar to show it. */
4262
4362
  protected readonly actionBarCaptionDef: _angular_core.Signal<StrctDatagridActionBarCaption | undefined>;
@@ -4278,8 +4378,13 @@ declare class StrctDatagrid {
4278
4378
  onResizeStart(e: MouseEvent, key: string): void;
4279
4379
  private onResizeMove;
4280
4380
  private onResizeEnd;
4281
- private readonly activeId;
4282
4381
  protected readonly activeRow: _angular_core.Signal<StrctRow | null>;
4382
+ /**
4383
+ * Whether the container is too narrow to show the list and the pane at once.
4384
+ * It is the grid's own width that decides, not the viewport: the same grid
4385
+ * is wide in a page and narrow in a drawer.
4386
+ */
4387
+ protected readonly narrowPane: _angular_core.WritableSignal<boolean>;
4283
4388
  protected readonly canExpand: _angular_core.Signal<boolean>;
4284
4389
  protected readonly canDetail: _angular_core.Signal<boolean>;
4285
4390
  protected readonly paneOpen: _angular_core.Signal<boolean>;
@@ -4297,7 +4402,8 @@ declare class StrctDatagrid {
4297
4402
  protected onColDragOver(key: string, event: DragEvent): void;
4298
4403
  protected onColDrop(key: string): void;
4299
4404
  protected onColDragEnd(): void;
4300
- private readonly collapsedGroups;
4405
+ /** The folded groups as a set, from the two-way `collapsedGroups`. */
4406
+ private readonly collapsedSet;
4301
4407
  /** Collapse / expand one group header. */
4302
4408
  toggleGroup(key: unknown): void;
4303
4409
  /** What tbody renders: plain (virtual/paged) rows, or groups + their rows. */
@@ -4338,6 +4444,8 @@ declare class StrctDatagrid {
4338
4444
  * the new tabindex has rendered. */
4339
4445
  private focusTreeRow;
4340
4446
  private readonly hostRef;
4447
+ private readonly zone;
4448
+ private readonly destroyRef;
4341
4449
  protected readonly editing: _angular_core.WritableSignal<{
4342
4450
  rowKey: unknown;
4343
4451
  colKey: string;
@@ -4526,6 +4634,14 @@ declare class StrctDatagrid {
4526
4634
  protected colspan(): number;
4527
4635
  /** Toggle the detail pane for a row (triggered by its » button, not the row,
4528
4636
  * so row cells remain selectable for copy). */
4637
+ /** One tab stop for the list while a pane can be opened from it. */
4638
+ protected paneRowTabindex(row: StrctRow): number;
4639
+ /**
4640
+ * The mail-client contract a triage list is read with: Enter or Space opens
4641
+ * the row's pane, the arrows move the active row while it is open, and
4642
+ * Escape closes the pane and leaves focus on the row it came from.
4643
+ */
4644
+ protected onPaneRowKeydown(row: StrctRow, event: KeyboardEvent): void;
4529
4645
  openDetail(row: StrctRow): void;
4530
4646
  closePane(): void;
4531
4647
  /** Open the row-action menu next to the clicked kebab button. */
@@ -4584,7 +4700,7 @@ declare class StrctDatagrid {
4584
4700
  private compareRows;
4585
4701
  private compare;
4586
4702
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctDatagrid, never>;
4587
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctDatagrid, "strct-datagrid", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rows": { "alias": "rows"; "required": true; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "detailPane": { "alias": "detailPane"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "singleLine": { "alias": "singleLine"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "columnChooser": { "alias": "columnChooser"; "required": false; "isSignal": true; }; "sync": { "alias": "sync"; "required": false; "isSignal": true; }; "footerActionsDisabled": { "alias": "footerActionsDisabled"; "required": false; "isSignal": true; }; "rowId": { "alias": "rowId"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "selectedId": { "alias": "selectedId"; "required": false; "isSignal": true; }; "rowSelectable": { "alias": "rowSelectable"; "required": false; "isSignal": true; }; "flush": { "alias": "flush"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "paging": { "alias": "paging"; "required": false; "isSignal": true; }; "hasMore": { "alias": "hasMore"; "required": false; "isSignal": true; }; "loadingMore": { "alias": "loadingMore"; "required": false; "isSignal": true; }; "moreTotal": { "alias": "moreTotal"; "required": false; "isSignal": true; }; "groupSelect": { "alias": "groupSelect"; "required": false; "isSignal": true; }; "rowActions": { "alias": "rowActions"; "required": false; "isSignal": true; }; "initialSelection": { "alias": "initialSelection"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "virtual": { "alias": "virtual"; "required": false; "isSignal": true; }; "viewportHeight": { "alias": "viewportHeight"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "editHint": { "alias": "editHint"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "lazy": { "alias": "lazy"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": false; "isSignal": true; }; "stateKey": { "alias": "stateKey"; "required": false; "isSignal": true; }; "columnState": { "alias": "columnState"; "required": false; "isSignal": true; }; "reorderable": { "alias": "reorderable"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "quickFilter": { "alias": "quickFilter"; "required": false; "isSignal": true; }; "quickFilterFields": { "alias": "quickFilterFields"; "required": false; "isSignal": true; }; "quickFilterable": { "alias": "quickFilterable"; "required": false; "isSignal": true; }; "quickFilterAlign": { "alias": "quickFilterAlign"; "required": false; "isSignal": true; }; "childrenKey": { "alias": "childrenKey"; "required": false; "isSignal": true; }; }, { "selectedId": "selectedIdChange"; "loadMore": "loadMore"; "selectedIds": "selectedIdsChange"; "columnState": "columnStateChange"; "filters": "filtersChange"; "quickFilter": "quickFilterChange"; "selectionChange": "selectionChange"; "syncChange": "syncChange"; "rowAction": "rowAction"; "lazyLoad": "lazyLoad"; "cellEdit": "cellEdit"; }, ["detailDef", "actionBarDef", "actionBarCaptionDef", "cellDefs"], ["[strctDatagridActionBarCaption]", "[strctDatagridActionBar]"], true, never>;
4703
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctDatagrid, "strct-datagrid", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rows": { "alias": "rows"; "required": true; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "detailPane": { "alias": "detailPane"; "required": false; "isSignal": true; }; "paneListWidth": { "alias": "paneListWidth"; "required": false; "isSignal": true; }; "paneTakeoverWidth": { "alias": "paneTakeoverWidth"; "required": false; "isSignal": true; }; "activeRowId": { "alias": "activeRowId"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "singleLine": { "alias": "singleLine"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "columnChooser": { "alias": "columnChooser"; "required": false; "isSignal": true; }; "sync": { "alias": "sync"; "required": false; "isSignal": true; }; "footerActionsDisabled": { "alias": "footerActionsDisabled"; "required": false; "isSignal": true; }; "rowId": { "alias": "rowId"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "selectedId": { "alias": "selectedId"; "required": false; "isSignal": true; }; "rowSelectable": { "alias": "rowSelectable"; "required": false; "isSignal": true; }; "flush": { "alias": "flush"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "paging": { "alias": "paging"; "required": false; "isSignal": true; }; "hasMore": { "alias": "hasMore"; "required": false; "isSignal": true; }; "loadingMore": { "alias": "loadingMore"; "required": false; "isSignal": true; }; "moreTotal": { "alias": "moreTotal"; "required": false; "isSignal": true; }; "groupSelect": { "alias": "groupSelect"; "required": false; "isSignal": true; }; "rowActions": { "alias": "rowActions"; "required": false; "isSignal": true; }; "initialSelection": { "alias": "initialSelection"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "virtual": { "alias": "virtual"; "required": false; "isSignal": true; }; "viewportHeight": { "alias": "viewportHeight"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "editHint": { "alias": "editHint"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "lazy": { "alias": "lazy"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": false; "isSignal": true; }; "stateKey": { "alias": "stateKey"; "required": false; "isSignal": true; }; "columnState": { "alias": "columnState"; "required": false; "isSignal": true; }; "reorderable": { "alias": "reorderable"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "groups": { "alias": "groups"; "required": false; "isSignal": true; }; "showEmptyGroups": { "alias": "showEmptyGroups"; "required": false; "isSignal": true; }; "collapsedGroups": { "alias": "collapsedGroups"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "quickFilter": { "alias": "quickFilter"; "required": false; "isSignal": true; }; "quickFilterFields": { "alias": "quickFilterFields"; "required": false; "isSignal": true; }; "quickFilterable": { "alias": "quickFilterable"; "required": false; "isSignal": true; }; "quickFilterAlign": { "alias": "quickFilterAlign"; "required": false; "isSignal": true; }; "childrenKey": { "alias": "childrenKey"; "required": false; "isSignal": true; }; }, { "activeRowId": "activeRowIdChange"; "selectedId": "selectedIdChange"; "loadMore": "loadMore"; "selectedIds": "selectedIdsChange"; "columnState": "columnStateChange"; "collapsedGroups": "collapsedGroupsChange"; "filters": "filtersChange"; "quickFilter": "quickFilterChange"; "selectionChange": "selectionChange"; "syncChange": "syncChange"; "rowAction": "rowAction"; "lazyLoad": "lazyLoad"; "cellEdit": "cellEdit"; }, ["detailDef", "groupHeaderDef", "paneTitleDef", "actionBarDef", "actionBarCaptionDef", "cellDefs"], ["[strctDatagridActionBarCaption]", "[strctDatagridActionBar]", "[strctDetailPaneTitle]", "[strctDetailPaneMeta]", "[strctDetailPaneActions]"], true, never>;
4588
4704
  }
4589
4705
 
4590
4706
  /** Timeline node state colors. */
@@ -5321,6 +5437,17 @@ declare class StrctMetricTile {
5321
5437
  readonly href: _angular_core.InputSignal<string | null>;
5322
5438
  /** Makes the whole tile a control that emits `activated`. */
5323
5439
  readonly interactive: _angular_core.InputSignalWithTransform<boolean, unknown>;
5440
+ /**
5441
+ * The tile is a filter: `true` draws it on and says `aria-pressed`, `false`
5442
+ * draws it off and still says so. `null` (the default) is a tile that is
5443
+ * not a toggle at all, which must not claim a pressed state.
5444
+ */
5445
+ readonly pressed: _angular_core.InputSignalWithTransform<boolean | null, string | boolean | null | undefined>;
5446
+ /**
5447
+ * `sm` is the verdict-band size: six counters beside a one-line verdict at
5448
+ * 1440px, where the dashboard size fits three.
5449
+ */
5450
+ readonly size: _angular_core.InputSignal<"md" | "sm">;
5324
5451
  /**
5325
5452
  * What a plain click on an `href` tile does. `browser` follows the link, as
5326
5453
  * today. `app` belongs to a single-page app: the click is prevented and
@@ -5366,7 +5493,7 @@ declare class StrctMetricTile {
5366
5493
  protected readonly deltaTone: _angular_core.Signal<"flat" | "up" | "down">;
5367
5494
  protected readonly sparkStatus: _angular_core.Signal<StrctChartStatus>;
5368
5495
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctMetricTile, never>;
5369
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctMetricTile, "strct-metric-tile", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "captionStatus": { "alias": "captionStatus"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "navigate": { "alias": "navigate"; "required": false; "isSignal": true; }; "delta": { "alias": "delta"; "required": false; "isSignal": true; }; "deltaSuffix": { "alias": "deltaSuffix"; "required": false; "isSignal": true; }; "deltaAriaLabel": { "alias": "deltaAriaLabel"; "required": false; "isSignal": true; }; "invertDelta": { "alias": "invertDelta"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; }, { "activated": "activated"; }, never, ["[strctMetricMeter]"], true, never>;
5496
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctMetricTile, "strct-metric-tile", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "captionStatus": { "alias": "captionStatus"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "pressed": { "alias": "pressed"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "navigate": { "alias": "navigate"; "required": false; "isSignal": true; }; "delta": { "alias": "delta"; "required": false; "isSignal": true; }; "deltaSuffix": { "alias": "deltaSuffix"; "required": false; "isSignal": true; }; "deltaAriaLabel": { "alias": "deltaAriaLabel"; "required": false; "isSignal": true; }; "invertDelta": { "alias": "invertDelta"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; }, { "activated": "activated"; }, never, ["[strctMetricMeter]"], true, never>;
5370
5497
  }
5371
5498
 
5372
5499
  /**
@@ -6547,9 +6674,16 @@ declare class StrctStatusDot {
6547
6674
  * not jitter. Under `prefers-reduced-motion` the halo is a static ring.
6548
6675
  */
6549
6676
  readonly pulse: _angular_core.InputSignalWithTransform<boolean, unknown>;
6677
+ /**
6678
+ * `solid` is an outcome. `ring` — a 2px outline with a transparent centre —
6679
+ * is a state that is **not** one: "Inconclusive", "Not applicable",
6680
+ * "Unknown". They must not read as Warning or Passed with only the colour
6681
+ * to tell them apart, so the shape carries the difference (WCAG 1.4.1).
6682
+ */
6683
+ readonly variant: _angular_core.InputSignal<"solid" | "ring">;
6550
6684
  protected readonly text: _angular_core.Signal<string>;
6551
6685
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctStatusDot, never>;
6552
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctStatusDot, "strct-status-dot", never, { "status": { "alias": "status"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "pulse": { "alias": "pulse"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
6686
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctStatusDot, "strct-status-dot", never, { "status": { "alias": "status"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "pulse": { "alias": "pulse"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
6553
6687
  }
6554
6688
 
6555
6689
  /** What a live view is currently doing. */
@@ -7806,5 +7940,5 @@ declare function strctCheckHostInputs(host: HTMLElement, selector: string, owns:
7806
7940
  */
7807
7941
  declare function strctCheckHostDisplay(host: HTMLElement, selector: string, expected: string): void;
7808
7942
 
7809
- export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAlertActions, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCardHeaderActions, StrctCardHeaderLeading, StrctCardHeaderMeta, StrctCardHeaderNote, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChange, StrctChart, StrctChatAttachment, StrctChatComposer, StrctChatMessage, StrctChatThread, StrctCheckbox, StrctChips, StrctCode, StrctCodeInline, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctControlDescription, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatagridActionBarCaption, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownItemAction, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFieldGroup, StrctFieldHint, StrctFieldPrefix, StrctFieldSuffix, StrctFieldValue, StrctFile, StrctFilterBar, StrctFlow, StrctFlowNodeTemplate, StrctFooter, StrctGauge, StrctHeader, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLegend, StrctList, StrctListItem, StrctListItemDescription, StrctListItemLeading, StrctListItemMeta, StrctListItemTrailing, StrctLiveIndicator, StrctLogViewer, StrctLogin, StrctMediaFrame, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctModalContent, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPageHeaderTitleMeta, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProgress, StrctQr, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderGroup, StrctReorderHandle, StrctReorderItem, StrctResizeHandle, StrctRowDetailDef, StrctSearchbox, StrctSectionHeader, StrctSectionHeaderActions, StrctSectionHeaderMeta, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctStepAction, StrctSteps, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctTagLeading, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctToolbar, StrctToolbarCaption, StrctToolbarSpacer, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctTreeSelect, StrctVerticalNav, StrctWatermark, StrctWindow, StrctWindowDock, StrctWindowDockItem, StrctWindowService, StrctWizard, StrctWizardAside, __qrInternals, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctCheckHostDisplay, strctCheckHostInputs, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctQrMatrix, strctValidationIcon, strctValidationTone, unlockBodyScroll };
7810
- export type { StrctAlertType, StrctAvatarSize, StrctAvatarStatus, StrctBadgeStatus, StrctButtonSize, StrctButtonVariant, StrctCascadeOption, StrctCellContext, StrctChartAnnotation, StrctChartColor, StrctChartCurve, StrctChartSeries, StrctChartSlot, StrctChartStatus, StrctChartSummaryInfo, StrctChartThreshold, StrctChartType, StrctChatAuthor, StrctColumn, StrctCommandItem, StrctConfirmOptions, StrctConfirmTone, StrctDatagridColumn, StrctDatagridColumnState, StrctDatagridFilters, StrctDatagridLabels, StrctDatagridLazyState, StrctDescAlign, StrctDescItem, StrctDiffRow, StrctDonutSegment, StrctDrawerSide, StrctDrawerSize, StrctEmptyVariant, StrctFilterChip, StrctFlowColumn, StrctFlowDirection, StrctFlowEdge, StrctFlowNode, StrctFlowOrientation, StrctHeatmapCell, StrctHeatmapSummaryInfo, StrctHotkey, StrctIconBadge, StrctIconName, StrctKnobStatus, StrctLegendItem, StrctLiveLabels, StrctLiveState, StrctLogLine, StrctMediaState, StrctMenuItem, StrctMenuLink, StrctMenuOpenOptions, StrctMenuPlacement, StrctMenuSection, StrctMenubarItem, StrctMetricStatus, StrctModalSize, StrctMode, StrctNotification, StrctOption, StrctOverlayPlacement, StrctPalette, StrctPaletteInfo, StrctProgressSegment, StrctProgressStatus, StrctQrEcc, StrctRailItem, StrctRailStatus, StrctReorderEvent, StrctReorderMoveEvent, StrctRow, StrctRowId, StrctSegmentedOption, StrctSegmentedSize, StrctSignpostPosition, StrctSpeedDialDirection, StrctSpinnerSize, StrctStatus, StrctStatusDotSize, StrctStepPhase, StrctStepState, StrctStepsLabels, StrctTagStatus, StrctThresholds, StrctTimeRange, StrctTimeRangePreset, StrctTimelineState, StrctToast, StrctToastOptions, StrctToastType, StrctTooltipPosition, StrctTourStep, StrctTransferItem, StrctTreeDropEvent, StrctTreeMenuEvent, StrctTreeNodeData, StrctTreeNodeMenuFn, StrctValidationState, StrctValidationStatus, StrctWindowBounds, StrctWindowLabels, StrctWindowOutsidePointer, StrctWizardDefaults };
7943
+ export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAlertActions, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCardHeaderActions, StrctCardHeaderLeading, StrctCardHeaderMeta, StrctCardHeaderNote, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChange, StrctChart, StrctChatAttachment, StrctChatComposer, StrctChatMessage, StrctChatThread, StrctCheckbox, StrctChips, StrctCode, StrctCodeInline, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctControlDescription, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatagridActionBarCaption, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDetailPaneActions, StrctDetailPaneMeta, StrctDetailPaneTitle, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownItemAction, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFieldGroup, StrctFieldHint, StrctFieldPrefix, StrctFieldSuffix, StrctFieldValue, StrctFile, StrctFilterBar, StrctFlow, StrctFlowNodeTemplate, StrctFooter, StrctGauge, StrctGroupHeaderDef, StrctHeader, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLegend, StrctList, StrctListItem, StrctListItemDescription, StrctListItemLeading, StrctListItemMeta, StrctListItemTrailing, StrctLiveIndicator, StrctLogViewer, StrctLogin, StrctMediaFrame, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctModalContent, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPageHeaderTitleMeta, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProgress, StrctQr, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderGroup, StrctReorderHandle, StrctReorderItem, StrctResizeHandle, StrctRowDetailDef, StrctSearchbox, StrctSectionHeader, StrctSectionHeaderActions, StrctSectionHeaderMeta, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctStepAction, StrctSteps, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctTagLeading, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctToolbar, StrctToolbarCaption, StrctToolbarSpacer, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctTreeSelect, StrctVerticalNav, StrctWatermark, StrctWindow, StrctWindowDock, StrctWindowDockItem, StrctWindowService, StrctWizard, StrctWizardAside, __qrInternals, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctCheckHostDisplay, strctCheckHostInputs, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctQrMatrix, strctValidationIcon, strctValidationTone, unlockBodyScroll };
7944
+ export type { StrctAlertType, StrctAvatarSize, StrctAvatarStatus, StrctBadgeStatus, StrctButtonSize, StrctButtonVariant, StrctCascadeOption, StrctCellContext, StrctChartAnnotation, StrctChartColor, StrctChartCurve, StrctChartSeries, StrctChartSlot, StrctChartStatus, StrctChartSummaryInfo, StrctChartThreshold, StrctChartType, StrctChatAuthor, StrctColumn, StrctCommandItem, StrctConfirmOptions, StrctConfirmTone, StrctDatagridColumn, StrctDatagridColumnState, StrctDatagridFilters, StrctDatagridGroup, StrctDatagridLabels, StrctDatagridLazyState, StrctDescAlign, StrctDescItem, StrctDiffRow, StrctDonutSegment, StrctDrawerSide, StrctDrawerSize, StrctEmptyVariant, StrctFilterChip, StrctFlowColumn, StrctFlowDirection, StrctFlowEdge, StrctFlowNode, StrctFlowOrientation, StrctHeatmapCell, StrctHeatmapSummaryInfo, StrctHotkey, StrctIconBadge, StrctIconName, StrctKnobStatus, StrctLegendItem, StrctLiveLabels, StrctLiveState, StrctLogLine, StrctMediaState, StrctMenuItem, StrctMenuLink, StrctMenuOpenOptions, StrctMenuPlacement, StrctMenuSection, StrctMenubarItem, StrctMetricStatus, StrctModalSize, StrctMode, StrctNotification, StrctOption, StrctOverlayPlacement, StrctPalette, StrctPaletteInfo, StrctProgressSegment, StrctProgressStatus, StrctQrEcc, StrctRailItem, StrctRailStatus, StrctReorderEvent, StrctReorderMoveEvent, StrctRow, StrctRowId, StrctSegmentedOption, StrctSegmentedSize, StrctSignpostPosition, StrctSpeedDialDirection, StrctSpinnerSize, StrctStatus, StrctStatusDotSize, StrctStepPhase, StrctStepState, StrctStepsLabels, StrctTagStatus, StrctThresholds, StrctTimeRange, StrctTimeRangePreset, StrctTimelineState, StrctToast, StrctToastOptions, StrctToastType, StrctTooltipPosition, StrctTourStep, StrctTransferItem, StrctTreeDropEvent, StrctTreeMenuEvent, StrctTreeNodeData, StrctTreeNodeMenuFn, StrctValidationState, StrctValidationStatus, StrctWindowBounds, StrctWindowLabels, StrctWindowOutsidePointer, StrctWizardDefaults };