@akcelik/strct 5.29.0 → 5.30.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.29.0",
3
+ "version": "5.30.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",
@@ -4536,6 +4536,85 @@ interface StrctDatagridColumn {
4536
4536
  /** Per-column filter state: contains-text, or the checked value set. */
4537
4537
  type StrctDatagridFilters = Record<string, string | unknown[]>;
4538
4538
  type SortDir = 'asc' | 'desc';
4539
+ /** How rows are picked. Replaces `selectable`, `selectionMode`, `selectionColumn`, `rowSelectable`, `groupSelect`, `initialSelection`. */
4540
+ interface StrctDatagridSelection {
4541
+ /** Rows can be picked at all. */
4542
+ enabled?: boolean;
4543
+ /** `multiple` (tick column) or `single` (a native radio group). */
4544
+ mode?: 'none' | 'multiple' | 'single';
4545
+ /** `none` drops the tick / radio column: the row itself is the control. */
4546
+ column?: 'auto' | 'none';
4547
+ /** Which rows may be picked — a string is the reason the row cannot. */
4548
+ rowSelectable?: (row: StrctRow) => boolean | string;
4549
+ /** A group header's tick picks the group's rows. */
4550
+ groupSelect?: boolean;
4551
+ /** Ids ticked on first render. */
4552
+ initial?: readonly unknown[] | null;
4553
+ }
4554
+ /** How the rows are paged. Replaces `pageSize`, `hasMore`, `loadingMore`, `moreTotal`, `lazy`, `total`. */
4555
+ interface StrctDatagridPaging {
4556
+ /** Numbered pages, or a "load more" footer. */
4557
+ mode?: 'pages' | 'more';
4558
+ /** Rows per page; 0 shows every row. */
4559
+ pageSize?: number;
4560
+ /** `more` mode: there is another page to ask for. */
4561
+ hasMore?: boolean;
4562
+ /** `more` mode: the next page is on its way. */
4563
+ loadingMore?: boolean;
4564
+ /** `more` mode: how many rows there are in all. */
4565
+ moreTotal?: number | null;
4566
+ /** The server sorts, filters and pages; the grid asks with `(lazyLoad)`. */
4567
+ lazy?: boolean;
4568
+ /** `lazy` mode: the row count the server reports. */
4569
+ total?: number | null;
4570
+ }
4571
+ /** The detail pane beside the rows. Replaces `detailPane`, `paneListWidth`, `paneTakeoverWidth`. */
4572
+ interface StrctDatagridPane {
4573
+ /** Draw the pane. */
4574
+ enabled?: boolean;
4575
+ /** The list's width beside it — a length or a percentage. */
4576
+ listWidth?: string;
4577
+ /** Under this width the pane takes the whole grid over. */
4578
+ takeoverWidth?: number;
4579
+ }
4580
+ /** Virtual scrolling. Replaces `viewportHeight`, `rowHeight`, `maxHeight`. */
4581
+ interface StrctDatagridVirtual {
4582
+ /** Render only the rows in view. */
4583
+ enabled?: boolean;
4584
+ /** The scrolling viewport's height in px. */
4585
+ viewportHeight?: number;
4586
+ /** One row's height in px — the measure the window is computed from. */
4587
+ rowHeight?: number;
4588
+ /** A cap on the grid's height outside virtual mode. */
4589
+ maxHeight?: number | null;
4590
+ }
4591
+ /** How rows are grouped. Replaces `groupBy`, `groups`, `showEmptyGroups`, `childrenKey`. */
4592
+ interface StrctDatagridGrouping {
4593
+ /** The column whose value groups the rows. */
4594
+ by?: string | null;
4595
+ /** The groups the consumer defines, in their own order. */
4596
+ groups?: readonly StrctDatagridGroup[] | null;
4597
+ /** Draw a declared group that no row landed in. */
4598
+ showEmpty?: boolean;
4599
+ /** The row property that holds child rows (a tree grid). */
4600
+ childrenKey?: string | null;
4601
+ }
4602
+ /** The quick filter. Replaces `quickFilterable`, `quickFilterFields`, `quickFilterAlign`. */
4603
+ interface StrctDatagridFiltering {
4604
+ /** Draw the quick-filter field in the toolbar. */
4605
+ quick?: boolean;
4606
+ /** The columns it searches; every column when absent. */
4607
+ fields?: string[] | null;
4608
+ /** Which end of the toolbar it sits at. */
4609
+ align?: 'start' | 'end';
4610
+ }
4611
+ /** Remembered state. Replaces `stateKey`, `sync`. */
4612
+ interface StrctDatagridState {
4613
+ /** Storage key: the grid restores and persists its columns under it. */
4614
+ key?: string | null;
4615
+ /** Draw the footer's sync button. */
4616
+ sync?: boolean;
4617
+ }
4539
4618
  /** What the grid wants loaded in server-side (`lazy`) mode. */
4540
4619
  interface StrctDatagridLazyState {
4541
4620
  /** 1-based page. */
@@ -4649,25 +4728,25 @@ declare class StrctDatagrid {
4649
4728
  /** Data rows. */
4650
4729
  readonly rows: _angular_core.InputSignal<StrctRow[]>;
4651
4730
  /** Rows per page (0 disables paging). */
4652
- readonly pageSize: _angular_core.InputSignal<number>;
4731
+ readonly pageSizeFlat: _angular_core.InputSignal<number>;
4653
4732
  /** Enable row selection. */
4654
- readonly selectable: _angular_core.InputSignalWithTransform<boolean, unknown>;
4733
+ readonly selectableFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4655
4734
  /** Expand a row in place to reveal its detail template below it. */
4656
4735
  readonly expandable: _angular_core.InputSignalWithTransform<boolean, unknown>;
4657
4736
  /** Collapse the grid to a single column and open a side detail pane for the
4658
4737
  * clicked row (distinct from {@link expandable}). */
4659
- readonly detailPane: _angular_core.InputSignalWithTransform<boolean, unknown>;
4738
+ readonly detailPaneFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4660
4739
  /**
4661
4740
  * How wide the list column is while the pane is open — px or any CSS width.
4662
4741
  * 260px cuts a test name like "Validate Switch Enabled Teaming
4663
4742
  * Configurations" in half and hides its status.
4664
4743
  */
4665
- readonly paneListWidth: _angular_core.InputSignal<string>;
4744
+ readonly paneListWidthFlat: _angular_core.InputSignal<string>;
4666
4745
  /**
4667
4746
  * Below this container width (px) the pane takes the list's place, with a
4668
4747
  * way back in its header, rather than squeezing both into a phone.
4669
4748
  */
4670
- readonly paneTakeoverWidth: _angular_core.InputSignal<number>;
4749
+ readonly paneTakeoverWidthFlat: _angular_core.InputSignal<number>;
4671
4750
  /**
4672
4751
  * The row whose pane is open, two-way: a "what to do next" chip opens the
4673
4752
  * finding it settles, a URL fragment deep-links to a test, `null` closes it.
@@ -4689,7 +4768,7 @@ declare class StrctDatagrid {
4689
4768
  /** Show a column-chooser dropdown in the footer. */
4690
4769
  readonly columnChooser: _angular_core.InputSignalWithTransform<boolean, unknown>;
4691
4770
  /** Show a refresh button in the footer. */
4692
- readonly sync: _angular_core.InputSignalWithTransform<boolean, unknown>;
4771
+ readonly syncFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4693
4772
  /** Disable all footer action buttons (sync, column chooser, etc.). */
4694
4773
  readonly footerActionsDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
4695
4774
  /**
@@ -4704,7 +4783,7 @@ declare class StrctDatagrid {
4704
4783
  * exactly one row is grid behaviour rather than a column of radios the
4705
4784
  * consumer builds and wires by hand.
4706
4785
  */
4707
- readonly selectionMode: _angular_core.InputSignal<"none" | "multiple" | "single">;
4786
+ readonly selectionModeFlat: _angular_core.InputSignal<"none" | "multiple" | "single">;
4708
4787
  /** Two-way single selection: the row id (per `rowId`), or null. */
4709
4788
  readonly selectedId: _angular_core.ModelSignal<unknown>;
4710
4789
  /**
@@ -4712,26 +4791,21 @@ declare class StrctDatagrid {
4712
4791
  * it AND say why — shown as the row's tooltip and given to assistive tech as
4713
4792
  * the control's description, following the `hint` convention.
4714
4793
  */
4715
- readonly rowSelectable: _angular_core.InputSignal<((row: StrctRow) => boolean | string) | null>;
4794
+ readonly rowSelectableFlat: _angular_core.InputSignal<((row: StrctRow) => boolean | string) | null>;
4716
4795
  /** No outer border, radius or shadow — for a grid inside a bordered panel. */
4717
4796
  readonly flush: _angular_core.InputSignalWithTransform<boolean, unknown>;
4718
4797
  /** The grid's title, rendered above the header and used as its accessible name. */
4719
4798
  readonly caption: _angular_core.InputSignal<string>;
4720
- /**
4721
- * `'more'` swaps the pager for a count and a Load more button — the shape a
4722
- * cursor API can answer. The consumer appends rows; the grid does not page.
4723
- */
4724
- readonly paging: _angular_core.InputSignal<"pages" | "more">;
4725
4799
  /** Whether there is another slice to ask for. */
4726
- readonly hasMore: _angular_core.InputSignalWithTransform<boolean, unknown>;
4800
+ readonly hasMoreFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4727
4801
  /** A slice is on its way: the button waits with a spinner. */
4728
- readonly loadingMore: _angular_core.InputSignalWithTransform<boolean, unknown>;
4802
+ readonly loadingMoreFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4729
4803
  /** The grand total, when the API knows it — "Showing the latest 50 of 812". */
4730
- readonly moreTotal: _angular_core.InputSignal<number | null>;
4804
+ readonly moreTotalFlat: _angular_core.InputSignal<number | null>;
4731
4805
  /** The user asked for the next slice. */
4732
4806
  readonly loadMore: _angular_core.OutputEmitterRef<void>;
4733
4807
  /** With `groupBy` and multiple selection: a tri-state checkbox per group. */
4734
- readonly groupSelect: _angular_core.InputSignalWithTransform<boolean, unknown>;
4808
+ readonly groupSelectFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4735
4809
  /**
4736
4810
  * Per-row action menu resolver. When set, each row gets a trailing actions
4737
4811
  * column with a vertical-dots (kebab) button that opens this row's menu.
@@ -4744,7 +4818,7 @@ declare class StrctDatagrid {
4744
4818
  * `selectable`. Assigning a new array (e.g. when opening a dialog) re-seeds the
4745
4819
  * selection; the user's subsequent toggles are preserved until the next change.
4746
4820
  */
4747
- readonly initialSelection: _angular_core.InputSignal<readonly unknown[] | null>;
4821
+ readonly initialSelectionFlat: _angular_core.InputSignal<readonly unknown[] | null>;
4748
4822
  /**
4749
4823
  * The selection itself, two-way, for `selectionMode="multiple"` — what
4750
4824
  * `selectedId` is for single mode. Write it and the grid checks those rows
@@ -4798,43 +4872,36 @@ declare class StrctDatagrid {
4798
4872
  pageOf: (page: number, pages: number) => string;
4799
4873
  rowsMatch: (shown: number, total: number) => string;
4800
4874
  }>;
4801
- /**
4802
- * Virtual scrolling for large data sets: only the rows inside the viewport
4803
- * (plus a small overscan) are in the DOM — 20k+ rows stay smooth. The scroll
4804
- * area gets `viewportHeight` and a sticky header. Assumes uniform
4805
- * `rowHeight`; combine with `expandable` is unsupported.
4806
- */
4807
- readonly virtual: _angular_core.InputSignalWithTransform<boolean, unknown>;
4808
4875
  /** Scroll viewport height in px (virtual mode). */
4809
- readonly viewportHeight: _angular_core.InputSignal<number>;
4876
+ readonly viewportHeightFlat: _angular_core.InputSignal<number>;
4810
4877
  /**
4811
4878
  * Bound the grid's own scroll box (px), with a sticky header — what
4812
4879
  * `viewportHeight` does for `virtual`, for every other grid: a grouped
4813
4880
  * picker inside a dialog scrolls instead of growing the page.
4814
4881
  */
4815
- readonly maxHeight: _angular_core.InputSignal<number | null>;
4882
+ readonly maxHeightFlat: _angular_core.InputSignal<number | null>;
4816
4883
  /**
4817
4884
  * Show a pencil on an editable cell when it is hovered or focused. A mouse
4818
4885
  * user finds an editable cell by double-clicking one; nothing said so.
4819
4886
  */
4820
4887
  readonly editHint: _angular_core.InputSignalWithTransform<boolean, unknown>;
4821
4888
  /** Uniform row height in px (virtual mode; tune when `compact`). */
4822
- readonly rowHeight: _angular_core.InputSignal<number>;
4889
+ readonly rowHeightFlat: _angular_core.InputSignal<number>;
4823
4890
  /**
4824
4891
  * Server-side mode: the grid never sorts or slices `rows` itself — it shows
4825
4892
  * them as given and emits `(lazyLoad)` with `{ page, pageSize, sortKey,
4826
4893
  * sortDir }` whenever the user pages or sorts (and once on init). Provide
4827
4894
  * `total` so the pager and count reflect the full server-side set.
4828
4895
  */
4829
- readonly lazy: _angular_core.InputSignalWithTransform<boolean, unknown>;
4896
+ readonly lazyFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4830
4897
  /** Total row count on the server (lazy mode). */
4831
- readonly total: _angular_core.InputSignal<number | null>;
4898
+ readonly totalFlat: _angular_core.InputSignal<number | null>;
4832
4899
  /**
4833
4900
  * Persist the user's column widths + hidden columns under this key in
4834
4901
  * localStorage (`strct-dg:<key>`), restoring them on init. For full control
4835
4902
  * use the two-way `columnState` instead (both may be combined).
4836
4903
  */
4837
- readonly stateKey: _angular_core.InputSignal<string | null>;
4904
+ readonly stateKeyFlat: _angular_core.InputSignal<string | null>;
4838
4905
  /** User column preferences (two-way): widths from resize, hidden from the chooser. */
4839
4906
  readonly columnState: _angular_core.ModelSignal<StrctDatagridColumnState | null>;
4840
4907
  /** Let the user reorder data columns by dragging their headers. */
@@ -4844,15 +4911,15 @@ declare class StrctDatagrid {
4844
4911
  * per distinct value (with a count), respecting the current sort within
4845
4912
  * groups. Paging is bypassed while grouped; not combinable with `virtual`.
4846
4913
  */
4847
- readonly groupBy: _angular_core.InputSignal<string | null>;
4914
+ readonly groupByFlat: _angular_core.InputSignal<string | null>;
4848
4915
  /**
4849
4916
  * The groups themselves, beside `groupBy`: their order, their labels, a
4850
4917
  * tone, a note, whether they start folded and a count of the consumer's
4851
4918
  * own. Values no group mentions follow, in the order the rows arrived.
4852
4919
  */
4853
- readonly groups: _angular_core.InputSignal<readonly StrctDatagridGroup[] | null>;
4920
+ readonly groupsFlat: _angular_core.InputSignal<readonly StrctDatagridGroup[] | null>;
4854
4921
  /** Keep a declared group that holds no rows, rather than dropping it. */
4855
- readonly showEmptyGroups: _angular_core.InputSignalWithTransform<boolean, unknown>;
4922
+ readonly showEmptyGroupsFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4856
4923
  /**
4857
4924
  * Which groups are folded, two-way — so a summary counter elsewhere on the
4858
4925
  * page can open the group it counts.
@@ -4872,16 +4939,16 @@ declare class StrctDatagrid {
4872
4939
  */
4873
4940
  readonly quickFilter: _angular_core.ModelSignal<string>;
4874
4941
  /** Columns the quick term scans. Defaults to every column's `key`. */
4875
- readonly quickFilterFields: _angular_core.InputSignal<string[] | null>;
4942
+ readonly quickFilterFieldsFlat: _angular_core.InputSignal<string[] | null>;
4876
4943
  /** Render the built-in quick-filter searchbox in the toolbar. */
4877
- readonly quickFilterable: _angular_core.InputSignalWithTransform<boolean, unknown>;
4944
+ readonly quickFilterableFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4878
4945
  /**
4879
4946
  * Where the built-in box sits in the toolbar. `'end'` (default) follows the
4880
4947
  * console convention: action verbs lead on the left, view controls sit at
4881
4948
  * the far right — and the box keeps a stable position across grids whose
4882
4949
  * button sets differ.
4883
4950
  */
4884
- readonly quickFilterAlign: _angular_core.InputSignal<"end" | "start">;
4951
+ readonly quickFilterAlignFlat: _angular_core.InputSignal<"end" | "start">;
4885
4952
  /**
4886
4953
  * Tree-grid: the row property holding a row's children array. Rows render
4887
4954
  * hierarchically with indent + carets; sorting applies per sibling level;
@@ -4894,7 +4961,7 @@ declare class StrctDatagrid {
4894
4961
  * ArrowLeft collapses an expanded one. There is no cell-level navigation —
4895
4962
  * Tab walks the interactive elements inside each row as usual.
4896
4963
  */
4897
- readonly childrenKey: _angular_core.InputSignal<string | null>;
4964
+ readonly childrenKeyFlat: _angular_core.InputSignal<string | null>;
4898
4965
  /**
4899
4966
  * `'table'` (the default) is what the grid has always been: a table whose
4900
4967
  * controls each take a tab stop. `'grid'` is the APG grid: the table claims
@@ -4912,7 +4979,7 @@ declare class StrctDatagrid {
4912
4979
  * file list selects by clicking the row, not a control in it. The row is
4913
4980
  * then the control, so pair it with `interactionMode="grid"`.
4914
4981
  */
4915
- readonly selectionColumn: _angular_core.InputSignal<"none" | "auto">;
4982
+ readonly selectionColumnFlat: _angular_core.InputSignal<"none" | "auto">;
4916
4983
  /**
4917
4984
  * The row was opened: a double-click, or Enter on the focused row in grid
4918
4985
  * mode. Selection is "which rows do I mean"; activation is "go".
@@ -4945,6 +5012,93 @@ declare class StrctDatagrid {
4945
5012
  typedValue: unknown;
4946
5013
  previous: unknown;
4947
5014
  }>;
5015
+ /** How rows are picked — replaces six flat inputs. */
5016
+ readonly selectionCfg: _angular_core.InputSignal<StrctDatagridSelection>;
5017
+ /** The detail pane — replaces three. `[pane]` on its own turns it on. */
5018
+ readonly paneFlat: _angular_core.InputSignalWithTransform<boolean | StrctDatagridPane, boolean | "" | StrctDatagridPane>;
5019
+ protected readonly paneCfg: _angular_core.Signal<StrctDatagridPane>;
5020
+ /** How rows are paged. Takes the mode on its own, as before, or the object. */
5021
+ readonly pagingFlat: _angular_core.InputSignal<StrctDatagridPaging | "pages" | "more">;
5022
+ protected readonly pagingCfg: _angular_core.Signal<StrctDatagridPaging>;
5023
+ /** Numbered pages or a "load more" footer. */
5024
+ readonly paging: _angular_core.Signal<"pages" | "more">;
5025
+ /** Virtual scrolling. Takes the flag on its own, as before, or the object. */
5026
+ readonly virtualFlat: _angular_core.InputSignalWithTransform<boolean | StrctDatagridVirtual, boolean | "" | StrctDatagridVirtual>;
5027
+ protected readonly virtualCfg: _angular_core.Signal<StrctDatagridVirtual>;
5028
+ /** Whether the grid renders only the rows in view. */
5029
+ readonly virtual: _angular_core.Signal<boolean>;
5030
+ /** How rows are grouped — replaces four flat inputs. */
5031
+ readonly groupingCfg: _angular_core.InputSignal<StrctDatagridGrouping>;
5032
+ /** The quick filter — replaces three flat inputs. */
5033
+ readonly filteringCfg: _angular_core.InputSignal<StrctDatagridFiltering>;
5034
+ /** Remembered state — replaces `stateKey` and `sync`. */
5035
+ readonly stateCfg: _angular_core.InputSignal<StrctDatagridState>;
5036
+ /**
5037
+ * The flat inputs this grid is actually given, with the object each has
5038
+ * moved into. "Given" is read as "not its default", which is what a
5039
+ * template can be checked against from inside the component.
5040
+ */
5041
+ private readonly flatInputsInUse;
5042
+ /**
5043
+ * Dev mode says, once per app run, which flat inputs have moved — a
5044
+ * console line per name would be a wall in a screen with four grids, so
5045
+ * the names are collected and reported together.
5046
+ */
5047
+ private reportFlatInputs;
5048
+ /** `[paging].pageSize` when it is set, else the flat `pageSize` (deprecated). */
5049
+ readonly pageSize: _angular_core.Signal<number>;
5050
+ /** `[selection].enabled` when it is set, else the flat `selectable` (deprecated). */
5051
+ readonly selectable: _angular_core.Signal<boolean>;
5052
+ /** `[pane].enabled` when it is set, else the flat `detailPane` (deprecated). */
5053
+ readonly detailPane: _angular_core.Signal<boolean>;
5054
+ /** `[pane].listWidth` when it is set, else the flat `paneListWidth` (deprecated). */
5055
+ readonly paneListWidth: _angular_core.Signal<string>;
5056
+ /** `[pane].takeoverWidth` when it is set, else the flat `paneTakeoverWidth` (deprecated). */
5057
+ readonly paneTakeoverWidth: _angular_core.Signal<number>;
5058
+ /** `[state].sync` when it is set, else the flat `sync` (deprecated). */
5059
+ readonly sync: _angular_core.Signal<boolean>;
5060
+ /** `[selection].mode` when it is set, else the flat `selectionMode` (deprecated). */
5061
+ readonly selectionMode: _angular_core.Signal<"none" | "multiple" | "single">;
5062
+ /** `[selection].rowSelectable` when it is set, else the flat `rowSelectable` (deprecated). */
5063
+ readonly rowSelectable: _angular_core.Signal<((row: StrctRow) => boolean | string) | null>;
5064
+ /** `[paging].hasMore` when it is set, else the flat `hasMore` (deprecated). */
5065
+ readonly hasMore: _angular_core.Signal<boolean>;
5066
+ /** `[paging].loadingMore` when it is set, else the flat `loadingMore` (deprecated). */
5067
+ readonly loadingMore: _angular_core.Signal<boolean>;
5068
+ /** `[paging].moreTotal` when it is set, else the flat `moreTotal` (deprecated). */
5069
+ readonly moreTotal: _angular_core.Signal<number | null>;
5070
+ /** `[selection].groupSelect` when it is set, else the flat `groupSelect` (deprecated). */
5071
+ readonly groupSelect: _angular_core.Signal<boolean>;
5072
+ /** `[selection].initial` when it is set, else the flat `initialSelection` (deprecated). */
5073
+ readonly initialSelection: _angular_core.Signal<readonly unknown[] | null>;
5074
+ /** `[virtual].viewportHeight` when it is set, else the flat `viewportHeight` (deprecated). */
5075
+ readonly viewportHeight: _angular_core.Signal<number>;
5076
+ /** `[virtual].maxHeight` when it is set, else the flat `maxHeight` (deprecated). */
5077
+ readonly maxHeight: _angular_core.Signal<number | null>;
5078
+ /** `[virtual].rowHeight` when it is set, else the flat `rowHeight` (deprecated). */
5079
+ readonly rowHeight: _angular_core.Signal<number>;
5080
+ /** `[paging].lazy` when it is set, else the flat `lazy` (deprecated). */
5081
+ readonly lazy: _angular_core.Signal<boolean>;
5082
+ /** `[paging].total` when it is set, else the flat `total` (deprecated). */
5083
+ readonly total: _angular_core.Signal<number | null>;
5084
+ /** `[state].key` when it is set, else the flat `stateKey` (deprecated). */
5085
+ readonly stateKey: _angular_core.Signal<string | null>;
5086
+ /** `[grouping].by` when it is set, else the flat `groupBy` (deprecated). */
5087
+ readonly groupBy: _angular_core.Signal<string | null>;
5088
+ /** `[grouping].groups` when it is set, else the flat `groups` (deprecated). */
5089
+ readonly groups: _angular_core.Signal<readonly StrctDatagridGroup[] | null>;
5090
+ /** `[grouping].showEmpty` when it is set, else the flat `showEmptyGroups` (deprecated). */
5091
+ readonly showEmptyGroups: _angular_core.Signal<boolean>;
5092
+ /** `[filtering].fields` when it is set, else the flat `quickFilterFields` (deprecated). */
5093
+ readonly quickFilterFields: _angular_core.Signal<string[] | null>;
5094
+ /** `[filtering].quick` when it is set, else the flat `quickFilterable` (deprecated). */
5095
+ readonly quickFilterable: _angular_core.Signal<boolean>;
5096
+ /** `[filtering].align` when it is set, else the flat `quickFilterAlign` (deprecated). */
5097
+ readonly quickFilterAlign: _angular_core.Signal<"end" | "start">;
5098
+ /** `[grouping].childrenKey` when it is set, else the flat `childrenKey` (deprecated). */
5099
+ readonly childrenKey: _angular_core.Signal<string | null>;
5100
+ /** `[selection].column` when it is set, else the flat `selectionColumn` (deprecated). */
5101
+ readonly selectionColumn: _angular_core.Signal<"none" | "auto">;
4948
5102
  private readonly menu;
4949
5103
  protected readonly detailDef: _angular_core.Signal<StrctRowDetailDef | undefined>;
4950
5104
  /** An `<ng-template strctGroupHeader let-group let-count="count">`. */
@@ -5376,7 +5530,7 @@ declare class StrctDatagrid {
5376
5530
  private compareRows;
5377
5531
  private compare;
5378
5532
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctDatagrid, never>;
5379
- 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; }; "interactionMode": { "alias": "interactionMode"; "required": false; "isSignal": true; }; "selectionColumn": { "alias": "selectionColumn"; "required": false; "isSignal": true; }; }, { "activeRowId": "activeRowIdChange"; "selectedId": "selectedIdChange"; "loadMore": "loadMore"; "selectedIds": "selectedIdsChange"; "columnState": "columnStateChange"; "collapsedGroups": "collapsedGroupsChange"; "filters": "filtersChange"; "quickFilter": "quickFilterChange"; "rowActivate": "rowActivate"; "selectionChange": "selectionChange"; "syncChange": "syncChange"; "rowAction": "rowAction"; "lazyLoad": "lazyLoad"; "cellEdit": "cellEdit"; }, ["detailDef", "groupHeaderDef", "paneTitleDef", "actionBarDef", "actionBarCaptionDef", "cellDefs"], ["[strctDatagridActionBarCaption]", "[strctDatagridActionBar]", "[strctDetailPaneTitle]", "[strctDetailPaneMeta]", "[strctDetailPaneActions]"], true, never>;
5533
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctDatagrid, "strct-datagrid", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rows": { "alias": "rows"; "required": true; "isSignal": true; }; "pageSizeFlat": { "alias": "pageSize"; "required": false; "isSignal": true; }; "selectableFlat": { "alias": "selectable"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "detailPaneFlat": { "alias": "detailPane"; "required": false; "isSignal": true; }; "paneListWidthFlat": { "alias": "paneListWidth"; "required": false; "isSignal": true; }; "paneTakeoverWidthFlat": { "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; }; "syncFlat": { "alias": "sync"; "required": false; "isSignal": true; }; "footerActionsDisabled": { "alias": "footerActionsDisabled"; "required": false; "isSignal": true; }; "rowId": { "alias": "rowId"; "required": false; "isSignal": true; }; "selectionModeFlat": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "selectedId": { "alias": "selectedId"; "required": false; "isSignal": true; }; "rowSelectableFlat": { "alias": "rowSelectable"; "required": false; "isSignal": true; }; "flush": { "alias": "flush"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "hasMoreFlat": { "alias": "hasMore"; "required": false; "isSignal": true; }; "loadingMoreFlat": { "alias": "loadingMore"; "required": false; "isSignal": true; }; "moreTotalFlat": { "alias": "moreTotal"; "required": false; "isSignal": true; }; "groupSelectFlat": { "alias": "groupSelect"; "required": false; "isSignal": true; }; "rowActions": { "alias": "rowActions"; "required": false; "isSignal": true; }; "initialSelectionFlat": { "alias": "initialSelection"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "viewportHeightFlat": { "alias": "viewportHeight"; "required": false; "isSignal": true; }; "maxHeightFlat": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "editHint": { "alias": "editHint"; "required": false; "isSignal": true; }; "rowHeightFlat": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "lazyFlat": { "alias": "lazy"; "required": false; "isSignal": true; }; "totalFlat": { "alias": "total"; "required": false; "isSignal": true; }; "stateKeyFlat": { "alias": "stateKey"; "required": false; "isSignal": true; }; "columnState": { "alias": "columnState"; "required": false; "isSignal": true; }; "reorderable": { "alias": "reorderable"; "required": false; "isSignal": true; }; "groupByFlat": { "alias": "groupBy"; "required": false; "isSignal": true; }; "groupsFlat": { "alias": "groups"; "required": false; "isSignal": true; }; "showEmptyGroupsFlat": { "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; }; "quickFilterFieldsFlat": { "alias": "quickFilterFields"; "required": false; "isSignal": true; }; "quickFilterableFlat": { "alias": "quickFilterable"; "required": false; "isSignal": true; }; "quickFilterAlignFlat": { "alias": "quickFilterAlign"; "required": false; "isSignal": true; }; "childrenKeyFlat": { "alias": "childrenKey"; "required": false; "isSignal": true; }; "interactionMode": { "alias": "interactionMode"; "required": false; "isSignal": true; }; "selectionColumnFlat": { "alias": "selectionColumn"; "required": false; "isSignal": true; }; "selectionCfg": { "alias": "selection"; "required": false; "isSignal": true; }; "paneFlat": { "alias": "pane"; "required": false; "isSignal": true; }; "pagingFlat": { "alias": "paging"; "required": false; "isSignal": true; }; "virtualFlat": { "alias": "virtual"; "required": false; "isSignal": true; }; "groupingCfg": { "alias": "grouping"; "required": false; "isSignal": true; }; "filteringCfg": { "alias": "filtering"; "required": false; "isSignal": true; }; "stateCfg": { "alias": "state"; "required": false; "isSignal": true; }; }, { "activeRowId": "activeRowIdChange"; "selectedId": "selectedIdChange"; "loadMore": "loadMore"; "selectedIds": "selectedIdsChange"; "columnState": "columnStateChange"; "collapsedGroups": "collapsedGroupsChange"; "filters": "filtersChange"; "quickFilter": "quickFilterChange"; "rowActivate": "rowActivate"; "selectionChange": "selectionChange"; "syncChange": "syncChange"; "rowAction": "rowAction"; "lazyLoad": "lazyLoad"; "cellEdit": "cellEdit"; }, ["detailDef", "groupHeaderDef", "paneTitleDef", "actionBarDef", "actionBarCaptionDef", "cellDefs"], ["[strctDatagridActionBarCaption]", "[strctDatagridActionBar]", "[strctDetailPaneTitle]", "[strctDetailPaneMeta]", "[strctDetailPaneActions]"], true, never>;
5380
5534
  }
5381
5535
 
5382
5536
  /** Timeline node state colors. */
@@ -6687,7 +6841,7 @@ declare class StrctDiff {
6687
6841
  readonly before: _angular_core.InputSignal<string>;
6688
6842
  readonly after: _angular_core.InputSignal<string>;
6689
6843
  /** Unified (default) or side-by-side split view. */
6690
- readonly mode: _angular_core.InputSignal<"unified" | "split">;
6844
+ readonly mode: _angular_core.InputSignal<"split" | "unified">;
6691
6845
  /** Context lines kept around changes before collapsing (0 disables collapsing). */
6692
6846
  readonly context: _angular_core.InputSignal<number>;
6693
6847
  /** Header bits. */
@@ -8946,4 +9100,4 @@ declare class StrctProductSwitcher {
8946
9100
  }
8947
9101
 
8948
9102
  export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_MD_LIMITS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAccordionPanelMeta, 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, StrctChatMessageActions, 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, StrctDropdownGroup, StrctDropdownItem, StrctDropdownItemAction, StrctDropdownItemDescription, StrctDropdownItemIcon, StrctDropdownItemLabel, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFieldGroup, StrctFieldHint, StrctFieldPrefix, StrctFieldSuffix, StrctFieldValue, StrctFile, StrctFilterBar, StrctFlow, StrctFlowNodeTemplate, StrctFooter, StrctGauge, StrctGroupHeaderDef, StrctHeader, StrctHeaderAction, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLegend, StrctList, StrctListItem, StrctListItemDescription, StrctListItemLeading, StrctListItemMeta, StrctListItemTrailing, StrctLiveIndicator, StrctLogViewer, StrctLogin, StrctMarkdown, StrctMarkdownToken, StrctMediaFrame, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctModalContent, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPageHeaderTitleMeta, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProductSwitcher, 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, defaultStateWords, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, parseInlines, placeTooltip, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctCheckHostDisplay, strctCheckHostInputs, strctClassifyHref, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctParseMarkdown, strctQrMatrix, strctShowTooltip, strctValidationIcon, strctValidationTone, unlockBodyScroll };
8949
- 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, StrctHeaderActionConfig, StrctHeatmapCell, StrctHeatmapSummaryInfo, StrctHotkey, StrctIconBadge, StrctIconMode, StrctIconName, StrctKnobStatus, StrctLegendItem, StrctLiveLabels, StrctLiveState, StrctLogLine, StrctMdAlign, StrctMdBlock, StrctMdInline, StrctMdToken, StrctMdTokenizer, StrctMediaState, StrctMenuItem, StrctMenuLink, StrctMenuOpenOptions, StrctMenuPlacement, StrctMenuSection, StrctMenubarItem, StrctMetricStatus, StrctModalSize, StrctMode, StrctNotification, StrctOption, StrctOverlayPlacement, StrctPalette, StrctPaletteInfo, StrctProductItem, 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, StrctTreeDropRefusal, StrctTreeMenuEvent, StrctTreeNodeData, StrctTreeNodeMenuFn, StrctTreeStateWords, StrctValidationState, StrctValidationStatus, StrctWindowBounds, StrctWindowLabels, StrctWindowOutsidePointer, StrctWizardDefaults };
9103
+ 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, StrctDatagridFiltering, StrctDatagridFilters, StrctDatagridGroup, StrctDatagridGrouping, StrctDatagridLabels, StrctDatagridLazyState, StrctDatagridPaging, StrctDatagridPane, StrctDatagridSelection, StrctDatagridState, StrctDatagridVirtual, StrctDescAlign, StrctDescItem, StrctDiffRow, StrctDonutSegment, StrctDrawerSide, StrctDrawerSize, StrctEmptyVariant, StrctFilterChip, StrctFlowColumn, StrctFlowDirection, StrctFlowEdge, StrctFlowNode, StrctFlowOrientation, StrctHeaderActionConfig, StrctHeatmapCell, StrctHeatmapSummaryInfo, StrctHotkey, StrctIconBadge, StrctIconMode, StrctIconName, StrctKnobStatus, StrctLegendItem, StrctLiveLabels, StrctLiveState, StrctLogLine, StrctMdAlign, StrctMdBlock, StrctMdInline, StrctMdToken, StrctMdTokenizer, StrctMediaState, StrctMenuItem, StrctMenuLink, StrctMenuOpenOptions, StrctMenuPlacement, StrctMenuSection, StrctMenubarItem, StrctMetricStatus, StrctModalSize, StrctMode, StrctNotification, StrctOption, StrctOverlayPlacement, StrctPalette, StrctPaletteInfo, StrctProductItem, 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, StrctTreeDropRefusal, StrctTreeMenuEvent, StrctTreeNodeData, StrctTreeNodeMenuFn, StrctTreeStateWords, StrctValidationState, StrctValidationStatus, StrctWindowBounds, StrctWindowLabels, StrctWindowOutsidePointer, StrctWizardDefaults };