@akcelik/strct 5.8.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.8.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;
@@ -3919,6 +3933,27 @@ interface StrctDatagridColumn {
3919
3933
  */
3920
3934
  editor?: 'text' | 'number' | 'select';
3921
3935
  /** Options for `editor: 'select'` (the library's own option shape). */
3936
+ /**
3937
+ * What this column sorts by, when the cell does not show it: "1.5 TB" is
3938
+ * sorted by its bytes, a formatted date by its timestamp. `null` and `''`
3939
+ * are "unread" and sort last in both directions.
3940
+ */
3941
+ sortValue?: (row: StrctRow) => unknown;
3942
+ /** Full control of the order, when a key is not enough. Wins over `sortValue`. */
3943
+ comparator?: (a: StrctRow, b: StrctRow) => number;
3944
+ /** What an export writes for this column; defaults to the stored value. */
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;
3952
+ /**
3953
+ * Hidden until the chooser is asked for it — the column exists, it is just
3954
+ * not one of the defaults. A persisted or bound `columnState` wins.
3955
+ */
3956
+ hidden?: boolean;
3922
3957
  /**
3923
3958
  * The choices an `editor: 'select'` offers. A function is asked per row: a
3924
3959
  * rule that holds a value the host no longer reports lists it for that row
@@ -3956,12 +3991,60 @@ interface StrctDatagridLazyState {
3956
3991
  /** The global quick-filter term ('' when none). */
3957
3992
  quickFilter: string;
3958
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
+ }
3959
4039
  /** Persistable user column preferences (widths from resize, hidden from the
3960
4040
  * chooser, order from drag-reorder). */
3961
4041
  interface StrctDatagridColumnState {
3962
4042
  widths?: Record<string, number>;
3963
4043
  hidden?: string[];
3964
4044
  order?: string[];
4045
+ /** The column the operator sorted by, and which way. */
4046
+ sortKey?: string | null;
4047
+ sortDir?: 'asc' | 'desc';
3965
4048
  }
3966
4049
  /** One rendered tbody item: a data row, or a group header. */
3967
4050
  interface DgItem {
@@ -3971,6 +4054,8 @@ interface DgItem {
3971
4054
  label: string;
3972
4055
  count: number;
3973
4056
  collapsed: boolean;
4057
+ status?: StrctStatus;
4058
+ note?: string;
3974
4059
  };
3975
4060
  }
3976
4061
  /**
@@ -4015,6 +4100,22 @@ declare class StrctDatagrid {
4015
4100
  /** Collapse the grid to a single column and open a side detail pane for the
4016
4101
  * clicked row (distinct from {@link expandable}). */
4017
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>;
4018
4119
  /** Compact density mode. */
4019
4120
  readonly compact: _angular_core.InputSignalWithTransform<boolean, unknown>;
4020
4121
  /**
@@ -4109,6 +4210,7 @@ declare class StrctDatagrid {
4109
4210
  openDetail: string;
4110
4211
  toggleDetail: string;
4111
4212
  closeDetail: string;
4213
+ backToList: string;
4112
4214
  rowActions: string;
4113
4215
  chooseColumns: string;
4114
4216
  refresh: string;
@@ -4173,6 +4275,19 @@ declare class StrctDatagrid {
4173
4275
  * groups. Paging is bypassed while grouped; not combinable with `virtual`.
4174
4276
  */
4175
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[]>;
4176
4291
  /**
4177
4292
  * Two-way per-column filter state: `key → contains-text` (text filter) or
4178
4293
  * `key → unknown[]` (checked value set). Applied client-side; in `lazy`
@@ -4239,6 +4354,9 @@ declare class StrctDatagrid {
4239
4354
  }>;
4240
4355
  private readonly menu;
4241
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>;
4242
4360
  protected readonly actionBarDef: _angular_core.Signal<StrctDatagridActionBar | undefined>;
4243
4361
  /** A read-only grid with a note needed an empty action bar to show it. */
4244
4362
  protected readonly actionBarCaptionDef: _angular_core.Signal<StrctDatagridActionBarCaption | undefined>;
@@ -4260,8 +4378,13 @@ declare class StrctDatagrid {
4260
4378
  onResizeStart(e: MouseEvent, key: string): void;
4261
4379
  private onResizeMove;
4262
4380
  private onResizeEnd;
4263
- private readonly activeId;
4264
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>;
4265
4388
  protected readonly canExpand: _angular_core.Signal<boolean>;
4266
4389
  protected readonly canDetail: _angular_core.Signal<boolean>;
4267
4390
  protected readonly paneOpen: _angular_core.Signal<boolean>;
@@ -4279,7 +4402,8 @@ declare class StrctDatagrid {
4279
4402
  protected onColDragOver(key: string, event: DragEvent): void;
4280
4403
  protected onColDrop(key: string): void;
4281
4404
  protected onColDragEnd(): void;
4282
- private readonly collapsedGroups;
4405
+ /** The folded groups as a set, from the two-way `collapsedGroups`. */
4406
+ private readonly collapsedSet;
4283
4407
  /** Collapse / expand one group header. */
4284
4408
  toggleGroup(key: unknown): void;
4285
4409
  /** What tbody renders: plain (virtual/paged) rows, or groups + their rows. */
@@ -4320,6 +4444,8 @@ declare class StrctDatagrid {
4320
4444
  * the new tabindex has rendered. */
4321
4445
  private focusTreeRow;
4322
4446
  private readonly hostRef;
4447
+ private readonly zone;
4448
+ private readonly destroyRef;
4323
4449
  protected readonly editing: _angular_core.WritableSignal<{
4324
4450
  rowKey: unknown;
4325
4451
  colKey: string;
@@ -4473,11 +4599,28 @@ declare class StrctDatagrid {
4473
4599
  constructor();
4474
4600
  private readPersistedState;
4475
4601
  private applyColumnState;
4602
+ /** Whether a persisted or bound state has already decided what is hidden. */
4603
+ private hiddenDecidedByState;
4604
+ /** Whether the columns' own `hidden` flags have been read (once). */
4605
+ private declaredHiddenApplied;
4606
+ /**
4607
+ * Columns the consumer declared hidden — the default for a column no state
4608
+ * mentions. A list that shows five of twenty columns says so on the columns,
4609
+ * rather than seeding `columnState` and reaching into the library's storage
4610
+ * key to keep from overriding what the operator chose.
4611
+ */
4612
+ private applyDeclaredHidden;
4476
4613
  /**
4477
4614
  * The grid as CSV: header labels + every non-hidden column, all rows in the
4478
4615
  * current order (client mode: the full sorted set, not just the page).
4479
4616
  */
4480
4617
  toCSV(): string;
4618
+ /**
4619
+ * What an export writes for a cell: what the column says, else the stored
4620
+ * value. A templated cell shows "2 h 15 m" and stored 8100; without this the
4621
+ * export carries the seconds, an enum code or a bare `true`.
4622
+ */
4623
+ private exportValueOf;
4481
4624
  /**
4482
4625
  * The grid as a real .xlsx workbook (dependency-free SpreadsheetML):
4483
4626
  * header labels + every non-hidden column in the current order, all rows in
@@ -4491,6 +4634,14 @@ declare class StrctDatagrid {
4491
4634
  protected colspan(): number;
4492
4635
  /** Toggle the detail pane for a row (triggered by its » button, not the row,
4493
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;
4494
4645
  openDetail(row: StrctRow): void;
4495
4646
  closePane(): void;
4496
4647
  /** Open the row-action menu next to the clicked kebab button. */
@@ -4536,9 +4687,20 @@ declare class StrctDatagrid {
4536
4687
  /** Emit every selected row: fresh objects from the latest data where
4537
4688
  * available, the last known snapshot otherwise (off-page lazy rows). */
4538
4689
  private commitSelection;
4690
+ /**
4691
+ * One row's sort key for a column: what the column says to sort by, else the
4692
+ * stored value. A cell that shows "1.5 TB" sorts as text without this, which
4693
+ * puts it before "900 GB"; a date written by toLocaleString sorts across
4694
+ * days and AM/PM by its characters.
4695
+ */
4696
+ private sortKeyOf;
4697
+ /** The column a key belongs to — the comparator and the sort key need it. */
4698
+ private columnOf;
4699
+ /** Compare two rows by a column, honouring its comparator and nulls-last. */
4700
+ private compareRows;
4539
4701
  private compare;
4540
4702
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctDatagrid, never>;
4541
- 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>;
4542
4704
  }
4543
4705
 
4544
4706
  /** Timeline node state colors. */
@@ -5275,6 +5437,17 @@ declare class StrctMetricTile {
5275
5437
  readonly href: _angular_core.InputSignal<string | null>;
5276
5438
  /** Makes the whole tile a control that emits `activated`. */
5277
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">;
5278
5451
  /**
5279
5452
  * What a plain click on an `href` tile does. `browser` follows the link, as
5280
5453
  * today. `app` belongs to a single-page app: the click is prevented and
@@ -5320,7 +5493,7 @@ declare class StrctMetricTile {
5320
5493
  protected readonly deltaTone: _angular_core.Signal<"flat" | "up" | "down">;
5321
5494
  protected readonly sparkStatus: _angular_core.Signal<StrctChartStatus>;
5322
5495
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctMetricTile, never>;
5323
- 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>;
5324
5497
  }
5325
5498
 
5326
5499
  /**
@@ -6501,9 +6674,16 @@ declare class StrctStatusDot {
6501
6674
  * not jitter. Under `prefers-reduced-motion` the halo is a static ring.
6502
6675
  */
6503
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">;
6504
6684
  protected readonly text: _angular_core.Signal<string>;
6505
6685
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctStatusDot, never>;
6506
- 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>;
6507
6687
  }
6508
6688
 
6509
6689
  /** What a live view is currently doing. */
@@ -7760,5 +7940,5 @@ declare function strctCheckHostInputs(host: HTMLElement, selector: string, owns:
7760
7940
  */
7761
7941
  declare function strctCheckHostDisplay(host: HTMLElement, selector: string, expected: string): void;
7762
7942
 
7763
- 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 };
7764
- 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 };