@akcelik/strct 5.28.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.
@@ -334,7 +334,19 @@ declare function registerStrctIcon(name: string, content: string, options?: {
334
334
  * **Lifecycle** (vCenter media language — glyphs in a badge disc):
335
335
  * green disc ▶ running · amber disc ⏸ paused · grey disc ■ off.
336
336
  */
337
- type StrctIconBadge = 'none' | 'success' | 'warning' | 'critical' | 'running' | 'paused' | 'off' | 'info' | 'maintenance';
337
+ type StrctIconBadge = 'none' | 'success' | 'warning' | 'critical' | 'running' | 'paused' | 'off' | 'info'
338
+ /**
339
+ * @deprecated Since 5.29.0 — use `mode="maintenance"`. An amber disc was
340
+ * the same silhouette and hue as `paused` at 16px, and it took the one
341
+ * badge slot away from health. It still works: it draws the mode tile.
342
+ */
343
+ | 'maintenance';
344
+ /**
345
+ * A mode the operator put the object in, as opposed to its health: it takes no
346
+ * new work. Drawn in its own corner, so a drained host with an open alarm
347
+ * shows both.
348
+ */
349
+ type StrctIconMode = 'none' | 'maintenance' | 'maintenanceEntering';
338
350
  declare class StrctIcon {
339
351
  private readonly sanitizer;
340
352
  /**
@@ -356,6 +368,14 @@ declare class StrctIcon {
356
368
  readonly strokeWidth: _angular_core.InputSignal<number>;
357
369
  /** Optional status dot overlaid on the glyph (object state). */
358
370
  readonly badge: _angular_core.InputSignal<StrctIconBadge>;
371
+ /**
372
+ * A mode the operator chose, drawn in its own (top-end) corner so it never
373
+ * displaces the health badge. `badge="maintenance"` is still read as
374
+ * `mode="maintenance"`, which is where it belongs; it is deprecated.
375
+ */
376
+ readonly mode: _angular_core.InputSignal<StrctIconMode>;
377
+ /** The mode's words, joined to the icon's name when it has one (i18n). */
378
+ readonly modeLabel: _angular_core.InputSignal<(mode: StrctIconMode) => string>;
359
379
  /** Accessible label for the icon. When empty the icon is hidden from assistive tech. */
360
380
  readonly ariaLabel: _angular_core.InputSignal<string>;
361
381
  /**
@@ -377,7 +397,14 @@ declare class StrctIcon {
377
397
  protected readonly countText: _angular_core.Signal<string | null>;
378
398
  /** 1.2em of the icon size, floored at 14px, as the badge's box. */
379
399
  protected readonly countFontSize: _angular_core.Signal<number>;
380
- /** The label the glyph carries: its own, plus the count when both are set. */
400
+ /**
401
+ * The mode as drawn: its own, or the one `badge="maintenance"` meant before
402
+ * there was a mode (back-compat — the amber disc read as `paused` at 16px).
403
+ */
404
+ readonly shownMode: _angular_core.Signal<StrctIconMode>;
405
+ /** The badge as drawn: `maintenance` has become a mode, so it draws none. */
406
+ readonly shownBadge: _angular_core.Signal<StrctIconBadge>;
407
+ /** The label the glyph carries: its own, plus the count and the mode. */
381
408
  protected readonly accessibleLabel: _angular_core.Signal<string>;
382
409
  /** The effective name: `strictName` wins when set. */
383
410
  protected readonly iconName: _angular_core.Signal<StrctIconName | (string & {})>;
@@ -386,7 +413,7 @@ declare class StrctIcon {
386
413
  protected readonly svg: _angular_core.Signal<SafeHtml>;
387
414
  protected readonly rawSvg: _angular_core.Signal<SafeHtml>;
388
415
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctIcon, never>;
389
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctIcon, "strct-icon", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "strictName": { "alias": "strictName"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "count": { "alias": "count"; "required": false; "isSignal": true; }; "countMax": { "alias": "countMax"; "required": false; "isSignal": true; }; "countStatus": { "alias": "countStatus"; "required": false; "isSignal": true; }; "countLabel": { "alias": "countLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
416
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctIcon, "strct-icon", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "strictName": { "alias": "strictName"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "modeLabel": { "alias": "modeLabel"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "count": { "alias": "count"; "required": false; "isSignal": true; }; "countMax": { "alias": "countMax"; "required": false; "isSignal": true; }; "countStatus": { "alias": "countStatus"; "required": false; "isSignal": true; }; "countLabel": { "alias": "countLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
390
417
  }
391
418
 
392
419
  /** Overlay positioning strategies. */
@@ -1012,7 +1039,7 @@ declare class StrctButton implements OnDestroy {
1012
1039
  protected readonly nativeDisabled: _angular_core.Signal<boolean>;
1013
1040
  /** Disabled with a reason: focusable, and refusing clicks itself. */
1014
1041
  protected readonly softDisabled: _angular_core.Signal<boolean>;
1015
- protected onClick(event: Event): void;
1042
+ constructor();
1016
1043
  protected showReason(): void;
1017
1044
  protected hideReason(): void;
1018
1045
  ngOnDestroy(): void;
@@ -1652,6 +1679,18 @@ interface StrctTreeNodeData {
1652
1679
  icon?: string;
1653
1680
  /** Status dot on the icon (running / maintenance / off …). */
1654
1681
  badge?: StrctIconBadge;
1682
+ /**
1683
+ * A mode the operator put the object in — drained for patching — drawn in
1684
+ * the icon's own top-end corner, so health keeps the bottom one and a host
1685
+ * that is both in maintenance and alarmed shows both.
1686
+ */
1687
+ mode?: StrctIconMode;
1688
+ /**
1689
+ * What a screen reader hears about this node's state, after its label.
1690
+ * Built from the mode and the badge when absent; `''` says nothing, for a
1691
+ * tree that already puts the words in the label.
1692
+ */
1693
+ stateLabel?: string;
1655
1694
  /** Highlight as the selected node. */
1656
1695
  active?: boolean;
1657
1696
  /** Initial expanded state. */
@@ -1702,6 +1741,13 @@ interface StrctTreeMenuEvent {
1702
1741
  node: StrctTreeNodeData;
1703
1742
  item: StrctMenuItem;
1704
1743
  }
1744
+ /**
1745
+ * What a node's state is called, after its label. One object, so a tree is
1746
+ * translated in one place (FR-61-02).
1747
+ */
1748
+ type StrctTreeStateWords = Partial<Record<StrctIconBadge | StrctIconMode, string>>;
1749
+ /** The library's words for the badge and mode states. */
1750
+ declare const defaultStateWords: StrctTreeStateWords;
1705
1751
  /**
1706
1752
  * Tree node. Two modes:
1707
1753
  * - **Content:** nest `<strct-tree-node>` children manually.
@@ -1721,6 +1767,10 @@ declare class StrctTreeNode {
1721
1767
  readonly icon: _angular_core.InputSignal<string | undefined>;
1722
1768
  /** Status dot variant. */
1723
1769
  readonly badge: _angular_core.InputSignal<StrctIconBadge>;
1770
+ /** A mode the operator chose (content mode) — drawn in the icon's own corner. */
1771
+ readonly mode: _angular_core.InputSignal<StrctIconMode>;
1772
+ /** What a reader hears after the label (content mode); '' says nothing. */
1773
+ readonly stateLabel: _angular_core.InputSignal<string | undefined>;
1724
1774
  /** Whether the item is active / selected. */
1725
1775
  readonly active: _angular_core.InputSignalWithTransform<boolean, unknown>;
1726
1776
  /** Whether the panel is open (two-way). */
@@ -1765,6 +1815,13 @@ declare class StrctTreeNode {
1765
1815
  protected readonly displayLabel: _angular_core.Signal<string>;
1766
1816
  protected readonly displayIcon: _angular_core.Signal<string | undefined>;
1767
1817
  protected readonly displayBadge: _angular_core.Signal<StrctIconBadge>;
1818
+ protected readonly displayMode: _angular_core.Signal<StrctIconMode>;
1819
+ /**
1820
+ * FR-61-02: a treeitem's name is its label, so a running VM, an alarmed host
1821
+ * and a drained one all read the same. The state goes in `aria-description`,
1822
+ * which leaves the name — and the tree's type-ahead — untouched.
1823
+ */
1824
+ protected readonly stateDescription: _angular_core.Signal<string>;
1768
1825
  protected readonly displayActive: _angular_core.Signal<boolean>;
1769
1826
  /** Data-mode siblings (null in content mode): the parent's children, else the tree roots. */
1770
1827
  private readonly siblingData;
@@ -1795,7 +1852,7 @@ declare class StrctTreeNode {
1795
1852
  protected onActivate(): void;
1796
1853
  protected onMenuSelect(item: StrctMenuItem): void;
1797
1854
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctTreeNode, never>;
1798
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctTreeNode, "strct-tree-node", never, { "node": { "alias": "node"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "nodeMenu": { "alias": "nodeMenu"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; "activated": "activated"; "nodeActivated": "nodeActivated"; "nodeMenuSelect": "nodeMenuSelect"; }, ["childNodes", "directChildNodes"], ["[strctTreeTrailing]", "*"], true, never>;
1855
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctTreeNode, "strct-tree-node", never, { "node": { "alias": "node"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "stateLabel": { "alias": "stateLabel"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "nodeMenu": { "alias": "nodeMenu"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; "activated": "activated"; "nodeActivated": "nodeActivated"; "nodeMenuSelect": "nodeMenuSelect"; }, ["childNodes", "directChildNodes"], ["[strctTreeTrailing]", "*"], true, never>;
1799
1856
  }
1800
1857
  /**
1801
1858
  * Root container for a tree. Either project `<strct-tree-node>` children, or
@@ -1844,6 +1901,8 @@ declare class StrctTree {
1844
1901
  readonly dropRefused: _angular_core.OutputEmitterRef<StrctTreeDropRefusal>;
1845
1902
  /** Wording of the row shown under a node whose children are being read (`node.loading`). */
1846
1903
  readonly loadingLabel: _angular_core.InputSignal<string>;
1904
+ /** What each state is called after a node's label — translate once per tree. */
1905
+ readonly stateWords: _angular_core.InputSignal<Partial<Record<"success" | "warning" | "critical" | "info" | "running" | "paused" | "maintenance" | "none" | "off" | "maintenanceEntering", string>>>;
1847
1906
  /** Accessible label of each node's chevron toggle; receives the expanded state and the node label. */
1848
1907
  readonly chevronAriaLabel: _angular_core.InputSignal<(expanded: boolean, label: string) => string>;
1849
1908
  /** Emitted when any data-driven node is clicked. */
@@ -1954,7 +2013,7 @@ declare class StrctTree {
1954
2013
  /** Toggle a node's expansion, updating state and emitting outputs. */
1955
2014
  toggleNode(node: StrctTreeNodeData): void;
1956
2015
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctTree, never>;
1957
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctTree, "strct-tree", never, { "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "framed": { "alias": "framed"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "nodeMenu": { "alias": "nodeMenu"; "required": false; "isSignal": true; }; "canDrag": { "alias": "canDrag"; "required": false; "isSignal": true; }; "canDrop": { "alias": "canDrop"; "required": false; "isSignal": true; }; "dragExpandDelay": { "alias": "dragExpandDelay"; "required": false; "isSignal": true; }; "loadingLabel": { "alias": "loadingLabel"; "required": false; "isSignal": true; }; "chevronAriaLabel": { "alias": "chevronAriaLabel"; "required": false; "isSignal": true; }; "expandedIds": { "alias": "expandedIds"; "required": false; "isSignal": true; }; }, { "nodeDrop": "nodeDrop"; "dropRefused": "dropRefused"; "nodeActivated": "nodeActivated"; "nodeMenuSelect": "nodeMenuSelect"; "expandedIds": "expandedIdsChange"; "expandedChange": "expandedChange"; "nodeToggled": "nodeToggled"; }, ["projectedNodes"], ["*"], true, never>;
2016
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctTree, "strct-tree", never, { "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "framed": { "alias": "framed"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "nodeMenu": { "alias": "nodeMenu"; "required": false; "isSignal": true; }; "canDrag": { "alias": "canDrag"; "required": false; "isSignal": true; }; "canDrop": { "alias": "canDrop"; "required": false; "isSignal": true; }; "dragExpandDelay": { "alias": "dragExpandDelay"; "required": false; "isSignal": true; }; "loadingLabel": { "alias": "loadingLabel"; "required": false; "isSignal": true; }; "stateWords": { "alias": "stateWords"; "required": false; "isSignal": true; }; "chevronAriaLabel": { "alias": "chevronAriaLabel"; "required": false; "isSignal": true; }; "expandedIds": { "alias": "expandedIds"; "required": false; "isSignal": true; }; }, { "nodeDrop": "nodeDrop"; "dropRefused": "dropRefused"; "nodeActivated": "nodeActivated"; "nodeMenuSelect": "nodeMenuSelect"; "expandedIds": "expandedIdsChange"; "expandedChange": "expandedChange"; "nodeToggled": "nodeToggled"; }, ["projectedNodes"], ["*"], true, never>;
1958
2017
  }
1959
2018
 
1960
2019
  /** Fixed modal width presets: sm 480 · md 640 · lg 860 · xl 1080 (px). */
@@ -4252,12 +4311,22 @@ declare class StrctDesc {
4252
4311
  readonly href: _angular_core.InputSignal<string>;
4253
4312
  /** The same, routed — takes what `[routerLink]` takes. */
4254
4313
  readonly routerLink: _angular_core.InputSignal<string | unknown[] | null>;
4314
+ /**
4315
+ * Query parameters for the routed destination: `/vms/vm-1?action=updates`
4316
+ * is `routerLink="/vms/vm-1"` with `[queryParams]="{ action: 'updates' }"`.
4317
+ * A `?` inside `routerLink` is part of the path, and encoded as one.
4318
+ */
4319
+ readonly queryParams: _angular_core.InputSignal<Record<string, unknown> | null>;
4320
+ /** What happens to the parameters already on the page. */
4321
+ readonly queryParamsHandling: _angular_core.InputSignal<"" | "merge" | "preserve" | null>;
4322
+ /** The `#fragment` of the routed destination. */
4323
+ readonly fragment: _angular_core.InputSignal<string>;
4255
4324
  /** `target="_blank"` opens a new tab; the safe `rel` comes with it. */
4256
4325
  readonly target: _angular_core.InputSignal<string>;
4257
4326
  /** A new tab never gets a handle on the opener. */
4258
4327
  protected relFor(target: string): string | null;
4259
4328
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctDesc, never>;
4260
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctDesc, "strct-desc, div[strctDesc]", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "mono": { "alias": "mono"; "required": false; "isSignal": true; }; "muted": { "alias": "muted"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "statusLabel": { "alias": "statusLabel"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "note": { "alias": "note"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "routerLink": { "alias": "routerLink"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
4329
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctDesc, "strct-desc, div[strctDesc]", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "mono": { "alias": "mono"; "required": false; "isSignal": true; }; "muted": { "alias": "muted"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "statusLabel": { "alias": "statusLabel"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "note": { "alias": "note"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "routerLink": { "alias": "routerLink"; "required": false; "isSignal": true; }; "queryParams": { "alias": "queryParams"; "required": false; "isSignal": true; }; "queryParamsHandling": { "alias": "queryParamsHandling"; "required": false; "isSignal": true; }; "fragment": { "alias": "fragment"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
4261
4330
  }
4262
4331
 
4263
4332
  /** Column definition for the table. */
@@ -4467,6 +4536,85 @@ interface StrctDatagridColumn {
4467
4536
  /** Per-column filter state: contains-text, or the checked value set. */
4468
4537
  type StrctDatagridFilters = Record<string, string | unknown[]>;
4469
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
+ }
4470
4618
  /** What the grid wants loaded in server-side (`lazy`) mode. */
4471
4619
  interface StrctDatagridLazyState {
4472
4620
  /** 1-based page. */
@@ -4580,25 +4728,25 @@ declare class StrctDatagrid {
4580
4728
  /** Data rows. */
4581
4729
  readonly rows: _angular_core.InputSignal<StrctRow[]>;
4582
4730
  /** Rows per page (0 disables paging). */
4583
- readonly pageSize: _angular_core.InputSignal<number>;
4731
+ readonly pageSizeFlat: _angular_core.InputSignal<number>;
4584
4732
  /** Enable row selection. */
4585
- readonly selectable: _angular_core.InputSignalWithTransform<boolean, unknown>;
4733
+ readonly selectableFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4586
4734
  /** Expand a row in place to reveal its detail template below it. */
4587
4735
  readonly expandable: _angular_core.InputSignalWithTransform<boolean, unknown>;
4588
4736
  /** Collapse the grid to a single column and open a side detail pane for the
4589
4737
  * clicked row (distinct from {@link expandable}). */
4590
- readonly detailPane: _angular_core.InputSignalWithTransform<boolean, unknown>;
4738
+ readonly detailPaneFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4591
4739
  /**
4592
4740
  * How wide the list column is while the pane is open — px or any CSS width.
4593
4741
  * 260px cuts a test name like "Validate Switch Enabled Teaming
4594
4742
  * Configurations" in half and hides its status.
4595
4743
  */
4596
- readonly paneListWidth: _angular_core.InputSignal<string>;
4744
+ readonly paneListWidthFlat: _angular_core.InputSignal<string>;
4597
4745
  /**
4598
4746
  * Below this container width (px) the pane takes the list's place, with a
4599
4747
  * way back in its header, rather than squeezing both into a phone.
4600
4748
  */
4601
- readonly paneTakeoverWidth: _angular_core.InputSignal<number>;
4749
+ readonly paneTakeoverWidthFlat: _angular_core.InputSignal<number>;
4602
4750
  /**
4603
4751
  * The row whose pane is open, two-way: a "what to do next" chip opens the
4604
4752
  * finding it settles, a URL fragment deep-links to a test, `null` closes it.
@@ -4620,7 +4768,7 @@ declare class StrctDatagrid {
4620
4768
  /** Show a column-chooser dropdown in the footer. */
4621
4769
  readonly columnChooser: _angular_core.InputSignalWithTransform<boolean, unknown>;
4622
4770
  /** Show a refresh button in the footer. */
4623
- readonly sync: _angular_core.InputSignalWithTransform<boolean, unknown>;
4771
+ readonly syncFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4624
4772
  /** Disable all footer action buttons (sync, column chooser, etc.). */
4625
4773
  readonly footerActionsDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
4626
4774
  /**
@@ -4635,7 +4783,7 @@ declare class StrctDatagrid {
4635
4783
  * exactly one row is grid behaviour rather than a column of radios the
4636
4784
  * consumer builds and wires by hand.
4637
4785
  */
4638
- readonly selectionMode: _angular_core.InputSignal<"none" | "multiple" | "single">;
4786
+ readonly selectionModeFlat: _angular_core.InputSignal<"none" | "multiple" | "single">;
4639
4787
  /** Two-way single selection: the row id (per `rowId`), or null. */
4640
4788
  readonly selectedId: _angular_core.ModelSignal<unknown>;
4641
4789
  /**
@@ -4643,26 +4791,21 @@ declare class StrctDatagrid {
4643
4791
  * it AND say why — shown as the row's tooltip and given to assistive tech as
4644
4792
  * the control's description, following the `hint` convention.
4645
4793
  */
4646
- readonly rowSelectable: _angular_core.InputSignal<((row: StrctRow) => boolean | string) | null>;
4794
+ readonly rowSelectableFlat: _angular_core.InputSignal<((row: StrctRow) => boolean | string) | null>;
4647
4795
  /** No outer border, radius or shadow — for a grid inside a bordered panel. */
4648
4796
  readonly flush: _angular_core.InputSignalWithTransform<boolean, unknown>;
4649
4797
  /** The grid's title, rendered above the header and used as its accessible name. */
4650
4798
  readonly caption: _angular_core.InputSignal<string>;
4651
- /**
4652
- * `'more'` swaps the pager for a count and a Load more button — the shape a
4653
- * cursor API can answer. The consumer appends rows; the grid does not page.
4654
- */
4655
- readonly paging: _angular_core.InputSignal<"pages" | "more">;
4656
4799
  /** Whether there is another slice to ask for. */
4657
- readonly hasMore: _angular_core.InputSignalWithTransform<boolean, unknown>;
4800
+ readonly hasMoreFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4658
4801
  /** A slice is on its way: the button waits with a spinner. */
4659
- readonly loadingMore: _angular_core.InputSignalWithTransform<boolean, unknown>;
4802
+ readonly loadingMoreFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4660
4803
  /** The grand total, when the API knows it — "Showing the latest 50 of 812". */
4661
- readonly moreTotal: _angular_core.InputSignal<number | null>;
4804
+ readonly moreTotalFlat: _angular_core.InputSignal<number | null>;
4662
4805
  /** The user asked for the next slice. */
4663
4806
  readonly loadMore: _angular_core.OutputEmitterRef<void>;
4664
4807
  /** With `groupBy` and multiple selection: a tri-state checkbox per group. */
4665
- readonly groupSelect: _angular_core.InputSignalWithTransform<boolean, unknown>;
4808
+ readonly groupSelectFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4666
4809
  /**
4667
4810
  * Per-row action menu resolver. When set, each row gets a trailing actions
4668
4811
  * column with a vertical-dots (kebab) button that opens this row's menu.
@@ -4675,7 +4818,7 @@ declare class StrctDatagrid {
4675
4818
  * `selectable`. Assigning a new array (e.g. when opening a dialog) re-seeds the
4676
4819
  * selection; the user's subsequent toggles are preserved until the next change.
4677
4820
  */
4678
- readonly initialSelection: _angular_core.InputSignal<readonly unknown[] | null>;
4821
+ readonly initialSelectionFlat: _angular_core.InputSignal<readonly unknown[] | null>;
4679
4822
  /**
4680
4823
  * The selection itself, two-way, for `selectionMode="multiple"` — what
4681
4824
  * `selectedId` is for single mode. Write it and the grid checks those rows
@@ -4729,43 +4872,36 @@ declare class StrctDatagrid {
4729
4872
  pageOf: (page: number, pages: number) => string;
4730
4873
  rowsMatch: (shown: number, total: number) => string;
4731
4874
  }>;
4732
- /**
4733
- * Virtual scrolling for large data sets: only the rows inside the viewport
4734
- * (plus a small overscan) are in the DOM — 20k+ rows stay smooth. The scroll
4735
- * area gets `viewportHeight` and a sticky header. Assumes uniform
4736
- * `rowHeight`; combine with `expandable` is unsupported.
4737
- */
4738
- readonly virtual: _angular_core.InputSignalWithTransform<boolean, unknown>;
4739
4875
  /** Scroll viewport height in px (virtual mode). */
4740
- readonly viewportHeight: _angular_core.InputSignal<number>;
4876
+ readonly viewportHeightFlat: _angular_core.InputSignal<number>;
4741
4877
  /**
4742
4878
  * Bound the grid's own scroll box (px), with a sticky header — what
4743
4879
  * `viewportHeight` does for `virtual`, for every other grid: a grouped
4744
4880
  * picker inside a dialog scrolls instead of growing the page.
4745
4881
  */
4746
- readonly maxHeight: _angular_core.InputSignal<number | null>;
4882
+ readonly maxHeightFlat: _angular_core.InputSignal<number | null>;
4747
4883
  /**
4748
4884
  * Show a pencil on an editable cell when it is hovered or focused. A mouse
4749
4885
  * user finds an editable cell by double-clicking one; nothing said so.
4750
4886
  */
4751
4887
  readonly editHint: _angular_core.InputSignalWithTransform<boolean, unknown>;
4752
4888
  /** Uniform row height in px (virtual mode; tune when `compact`). */
4753
- readonly rowHeight: _angular_core.InputSignal<number>;
4889
+ readonly rowHeightFlat: _angular_core.InputSignal<number>;
4754
4890
  /**
4755
4891
  * Server-side mode: the grid never sorts or slices `rows` itself — it shows
4756
4892
  * them as given and emits `(lazyLoad)` with `{ page, pageSize, sortKey,
4757
4893
  * sortDir }` whenever the user pages or sorts (and once on init). Provide
4758
4894
  * `total` so the pager and count reflect the full server-side set.
4759
4895
  */
4760
- readonly lazy: _angular_core.InputSignalWithTransform<boolean, unknown>;
4896
+ readonly lazyFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4761
4897
  /** Total row count on the server (lazy mode). */
4762
- readonly total: _angular_core.InputSignal<number | null>;
4898
+ readonly totalFlat: _angular_core.InputSignal<number | null>;
4763
4899
  /**
4764
4900
  * Persist the user's column widths + hidden columns under this key in
4765
4901
  * localStorage (`strct-dg:<key>`), restoring them on init. For full control
4766
4902
  * use the two-way `columnState` instead (both may be combined).
4767
4903
  */
4768
- readonly stateKey: _angular_core.InputSignal<string | null>;
4904
+ readonly stateKeyFlat: _angular_core.InputSignal<string | null>;
4769
4905
  /** User column preferences (two-way): widths from resize, hidden from the chooser. */
4770
4906
  readonly columnState: _angular_core.ModelSignal<StrctDatagridColumnState | null>;
4771
4907
  /** Let the user reorder data columns by dragging their headers. */
@@ -4775,15 +4911,15 @@ declare class StrctDatagrid {
4775
4911
  * per distinct value (with a count), respecting the current sort within
4776
4912
  * groups. Paging is bypassed while grouped; not combinable with `virtual`.
4777
4913
  */
4778
- readonly groupBy: _angular_core.InputSignal<string | null>;
4914
+ readonly groupByFlat: _angular_core.InputSignal<string | null>;
4779
4915
  /**
4780
4916
  * The groups themselves, beside `groupBy`: their order, their labels, a
4781
4917
  * tone, a note, whether they start folded and a count of the consumer's
4782
4918
  * own. Values no group mentions follow, in the order the rows arrived.
4783
4919
  */
4784
- readonly groups: _angular_core.InputSignal<readonly StrctDatagridGroup[] | null>;
4920
+ readonly groupsFlat: _angular_core.InputSignal<readonly StrctDatagridGroup[] | null>;
4785
4921
  /** Keep a declared group that holds no rows, rather than dropping it. */
4786
- readonly showEmptyGroups: _angular_core.InputSignalWithTransform<boolean, unknown>;
4922
+ readonly showEmptyGroupsFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4787
4923
  /**
4788
4924
  * Which groups are folded, two-way — so a summary counter elsewhere on the
4789
4925
  * page can open the group it counts.
@@ -4803,16 +4939,16 @@ declare class StrctDatagrid {
4803
4939
  */
4804
4940
  readonly quickFilter: _angular_core.ModelSignal<string>;
4805
4941
  /** Columns the quick term scans. Defaults to every column's `key`. */
4806
- readonly quickFilterFields: _angular_core.InputSignal<string[] | null>;
4942
+ readonly quickFilterFieldsFlat: _angular_core.InputSignal<string[] | null>;
4807
4943
  /** Render the built-in quick-filter searchbox in the toolbar. */
4808
- readonly quickFilterable: _angular_core.InputSignalWithTransform<boolean, unknown>;
4944
+ readonly quickFilterableFlat: _angular_core.InputSignalWithTransform<boolean, unknown>;
4809
4945
  /**
4810
4946
  * Where the built-in box sits in the toolbar. `'end'` (default) follows the
4811
4947
  * console convention: action verbs lead on the left, view controls sit at
4812
4948
  * the far right — and the box keeps a stable position across grids whose
4813
4949
  * button sets differ.
4814
4950
  */
4815
- readonly quickFilterAlign: _angular_core.InputSignal<"end" | "start">;
4951
+ readonly quickFilterAlignFlat: _angular_core.InputSignal<"end" | "start">;
4816
4952
  /**
4817
4953
  * Tree-grid: the row property holding a row's children array. Rows render
4818
4954
  * hierarchically with indent + carets; sorting applies per sibling level;
@@ -4825,7 +4961,7 @@ declare class StrctDatagrid {
4825
4961
  * ArrowLeft collapses an expanded one. There is no cell-level navigation —
4826
4962
  * Tab walks the interactive elements inside each row as usual.
4827
4963
  */
4828
- readonly childrenKey: _angular_core.InputSignal<string | null>;
4964
+ readonly childrenKeyFlat: _angular_core.InputSignal<string | null>;
4829
4965
  /**
4830
4966
  * `'table'` (the default) is what the grid has always been: a table whose
4831
4967
  * controls each take a tab stop. `'grid'` is the APG grid: the table claims
@@ -4843,7 +4979,7 @@ declare class StrctDatagrid {
4843
4979
  * file list selects by clicking the row, not a control in it. The row is
4844
4980
  * then the control, so pair it with `interactionMode="grid"`.
4845
4981
  */
4846
- readonly selectionColumn: _angular_core.InputSignal<"none" | "auto">;
4982
+ readonly selectionColumnFlat: _angular_core.InputSignal<"none" | "auto">;
4847
4983
  /**
4848
4984
  * The row was opened: a double-click, or Enter on the focused row in grid
4849
4985
  * mode. Selection is "which rows do I mean"; activation is "go".
@@ -4876,6 +5012,93 @@ declare class StrctDatagrid {
4876
5012
  typedValue: unknown;
4877
5013
  previous: unknown;
4878
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">;
4879
5102
  private readonly menu;
4880
5103
  protected readonly detailDef: _angular_core.Signal<StrctRowDetailDef | undefined>;
4881
5104
  /** An `<ng-template strctGroupHeader let-group let-count="count">`. */
@@ -5307,7 +5530,7 @@ declare class StrctDatagrid {
5307
5530
  private compareRows;
5308
5531
  private compare;
5309
5532
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctDatagrid, never>;
5310
- 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>;
5311
5534
  }
5312
5535
 
5313
5536
  /** Timeline node state colors. */
@@ -6618,7 +6841,7 @@ declare class StrctDiff {
6618
6841
  readonly before: _angular_core.InputSignal<string>;
6619
6842
  readonly after: _angular_core.InputSignal<string>;
6620
6843
  /** Unified (default) or side-by-side split view. */
6621
- readonly mode: _angular_core.InputSignal<"unified" | "split">;
6844
+ readonly mode: _angular_core.InputSignal<"split" | "unified">;
6622
6845
  /** Context lines kept around changes before collapsing (0 disables collapsing). */
6623
6846
  readonly context: _angular_core.InputSignal<number>;
6624
6847
  /** Header bits. */
@@ -8876,5 +9099,5 @@ declare class StrctProductSwitcher {
8876
9099
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctProductSwitcher, "strct-product-switcher", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "footerItems": { "alias": "footerItems"; "required": false; "isSignal": true; }; "current": { "alias": "current"; "required": false; "isSignal": true; }; "switchLabel": { "alias": "switchLabel"; "required": false; "isSignal": true; }; "shortLabelWidth": { "alias": "shortLabelWidth"; "required": false; "isSignal": true; }; }, { "current": "currentChange"; "opened": "opened"; "select": "select"; }, never, never, true, never>;
8877
9100
  }
8878
9101
 
8879
- 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, 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 };
8880
- 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, 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, StrctValidationState, StrctValidationStatus, StrctWindowBounds, StrctWindowLabels, StrctWindowOutsidePointer, StrctWizardDefaults };
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 };
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 };