@akcelik/strct 4.0.0 → 4.2.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": "4.0.0",
3
+ "version": "4.2.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",
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnDestroy, ElementRef, InjectionToken, Provider, TemplateRef, PipeTransform } from '@angular/core';
2
+ import { OnDestroy, TemplateRef, ElementRef, InjectionToken, Provider, PipeTransform } from '@angular/core';
3
3
  import { SafeHtml, SafeStyle } from '@angular/platform-browser';
4
4
  import { ControlValueAccessor } from '@angular/forms';
5
5
  import * as _akcelik_strct from '@akcelik/strct';
@@ -878,7 +878,16 @@ interface StrctMenuItem {
878
878
  icon?: string;
879
879
  /** Destructive styling. */
880
880
  critical?: boolean;
881
+ /** Unavailable: shown dimmed and cannot be activated. Pair with `hint` to say why. */
881
882
  disabled?: boolean;
883
+ /**
884
+ * A short explanation — typically why a disabled entry is unavailable
885
+ * ("VM must be powered off to clone."). Shown as the entry's tooltip and
886
+ * given to assistive technology as its description; never rendered inline,
887
+ * so it never widens the menu. A disabled entry WITH a hint stays reachable
888
+ * by keyboard so its reason can be read; without one it is skipped, as before.
889
+ */
890
+ hint?: string;
882
891
  /** Render a separator instead of an entry (label is ignored). */
883
892
  divider?: boolean;
884
893
  /** Nested submenu. */
@@ -919,7 +928,13 @@ declare class StrctMenuPanel {
919
928
  protected readonly flipLeft: _angular_core.WritableSignal<boolean>;
920
929
  protected readonly activeIndex: _angular_core.WritableSignal<number>;
921
930
  protected readonly openSubIndex: _angular_core.WritableSignal<number | null>;
931
+ /** Entries the keyboard visits: not dividers, and not a disabled entry that
932
+ * has nothing to say — a disabled entry WITH a hint is reachable so its
933
+ * reason can be read. (Before, disabled entries were "visited" but a
934
+ * natively disabled button refused focus, stranding the keyboard.) */
922
935
  private readonly navIndices;
936
+ private readonly uid;
937
+ protected hintId(i: number): string;
923
938
  constructor();
924
939
  private clampToViewport;
925
940
  protected focusItem(i: number): void;
@@ -1179,6 +1194,23 @@ declare class StrctTree {
1179
1194
 
1180
1195
  /** Fixed modal width presets: sm 480 · md 640 · lg 860 · xl 1080 (px). */
1181
1196
  type StrctModalSize = 'sm' | 'md' | 'lg' | 'xl';
1197
+ /**
1198
+ * Lazily rendered modal body. Plain projected content is created by the PARENT
1199
+ * with the parent's own view, so it is instantiated — and costs — even while
1200
+ * the modal is closed. Content inside this template is created only while the
1201
+ * modal is open, and destroyed when it closes (state does not survive a close):
1202
+ *
1203
+ * <strct-modal [(open)]="show" title="Import hosts">
1204
+ * <ng-template strctModalContent>
1205
+ * <strct-datagrid [rows]="hosts" … />
1206
+ * </ng-template>
1207
+ * </strct-modal>
1208
+ */
1209
+ declare class StrctModalContent {
1210
+ readonly template: TemplateRef<void>;
1211
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctModalContent, never>;
1212
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<StrctModalContent, "[strctModalContent]", never, {}, {}, never, never, true, never>;
1213
+ }
1182
1214
  /**
1183
1215
  * Overlay dialog with two-way `open`:
1184
1216
  * <strct-modal [(open)]="show" title="Confirm">
@@ -1195,7 +1227,8 @@ declare class StrctModal {
1195
1227
  readonly open: _angular_core.ModelSignal<boolean>;
1196
1228
  /** Dialog title. */
1197
1229
  readonly title: _angular_core.InputSignal<string>;
1198
- /** Size variant (fixed scale; defaults to `sm` = 480px). */
1230
+ /** Size variant (fixed scale; defaults to `sm` = 480px). Ignored by
1231
+ * `chromeless`, which sizes from the wizard it hosts. */
1199
1232
  readonly size: _angular_core.InputSignal<StrctModalSize>;
1200
1233
  /** Hide the footer slot. */
1201
1234
  readonly hideFooter: _angular_core.InputSignalWithTransform<boolean, unknown>;
@@ -1204,6 +1237,11 @@ declare class StrctModal {
1204
1237
  * content (a `flush` vertical wizard) is the dialog surface. `title` still
1205
1238
  * names the dialog for assistive tech; backdrop/Escape dismissal follow
1206
1239
  * `dismissible` as usual.
1240
+ *
1241
+ * The dialog's width comes from the wizard's geometry, not from `size`:
1242
+ * rail + `--strct-wiz-content-min` (default 864px) [+ aside]. To change it,
1243
+ * set that variable on this `strct-modal` or an ancestor — the dialog reads
1244
+ * it on itself, so setting it on the `strct-wizard` inside does not reach it.
1207
1245
  */
1208
1246
  readonly chromeless: _angular_core.InputSignalWithTransform<boolean, unknown>;
1209
1247
  /** Accessible label of the X close button (localizable). */
@@ -1225,6 +1263,9 @@ declare class StrctModal {
1225
1263
  readonly variant: _angular_core.InputSignal<"solid" | "glass">;
1226
1264
  /** Emitted when the alert is dismissed. */
1227
1265
  readonly closed: _angular_core.OutputEmitterRef<void>;
1266
+ /** Lazily rendered body, if one is provided (see {@link StrctModalContent}). */
1267
+ protected readonly lazyContent: _angular_core.Signal<StrctModalContent | undefined>;
1268
+ private readonly sizeDiagnostic;
1228
1269
  protected readonly titleId: string;
1229
1270
  /** Element that had focus before the dialog opened, restored on close. */
1230
1271
  private previousActive;
@@ -1248,7 +1289,7 @@ declare class StrctModal {
1248
1289
  private focusable;
1249
1290
  private focusInitial;
1250
1291
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctModal, never>;
1251
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctModal, "strct-modal", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hideFooter": { "alias": "hideFooter"; "required": false; "isSignal": true; }; "chromeless": { "alias": "chromeless"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "backdropClass": { "alias": "backdropClass"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "closed": "closed"; }, never, ["*", "[strctModalFooter]"], true, never>;
1292
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctModal, "strct-modal", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hideFooter": { "alias": "hideFooter"; "required": false; "isSignal": true; }; "chromeless": { "alias": "chromeless"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "backdropClass": { "alias": "backdropClass"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "closed": "closed"; }, ["lazyContent"], ["*", "[strctModalFooter]"], true, never>;
1252
1293
  }
1253
1294
 
1254
1295
  /** Marks the drawer's footer action area: `<ng-container strctDrawerFooter>…`. */
@@ -1353,6 +1394,9 @@ declare class StrctDropdown {
1353
1394
  /** APG menu keyboarding: arrows rove, Home/End jump, Enter/Space activate. */
1354
1395
  protected onMenuKeydown(event: KeyboardEvent): void;
1355
1396
  private enabledItems;
1397
+ /** What the arrow keys visit: enabled items, plus disabled ones that carry a
1398
+ * hint (so the reason can be read). The menu still opens on an enabled one. */
1399
+ private navItems;
1356
1400
  /** Focus the selected item if there is one, else the first — after render. */
1357
1401
  private focusInitialItem;
1358
1402
  protected onDocClick(event: MouseEvent): void;
@@ -1384,8 +1428,17 @@ declare class StrctDropdownItem {
1384
1428
  readonly critical: _angular_core.InputSignalWithTransform<boolean, unknown>;
1385
1429
  /** Static disable flag. */
1386
1430
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
1431
+ /**
1432
+ * A short explanation — typically why a disabled item is unavailable. Shown
1433
+ * as the tooltip and given to assistive technology as the description; never
1434
+ * rendered inline. A disabled item with a hint stays keyboard-reachable so
1435
+ * its reason can be read; activation stays blocked.
1436
+ */
1437
+ readonly hint: _angular_core.InputSignal<string | null | undefined>;
1438
+ protected readonly hintId: string;
1439
+ constructor();
1387
1440
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctDropdownItem, never>;
1388
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctDropdownItem, "strct-dropdown-item", never, { "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "critical": { "alias": "critical"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1441
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctDropdownItem, "strct-dropdown-item", never, { "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "critical": { "alias": "critical"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1389
1442
  }
1390
1443
  /** Thin separator between groups of menu items. */
1391
1444
  declare class StrctDropdownDivider {
@@ -1423,7 +1476,8 @@ declare class StrctContextMenu {
1423
1476
  private restoreTo;
1424
1477
  onContextMenu(event: MouseEvent): void;
1425
1478
  close(): void;
1426
- /** Enabled `strct-dropdown-item` elements in DOM order. */
1479
+ /** Keyboard-reachable `strct-dropdown-item` elements in DOM order: enabled
1480
+ * ones, plus disabled ones that carry a hint (so the reason can be read). */
1427
1481
  private navItems;
1428
1482
  /**
1429
1483
  * Focus-based roving: items keep the `tabindex="-1"` their host binding
@@ -1482,7 +1536,8 @@ declare class StrctSubmenu {
1482
1536
  * the panel so a host menu's own roving/Escape does not also run.
1483
1537
  */
1484
1538
  protected onPanelKeydown(event: KeyboardEvent): void;
1485
- /** Rovable rows of the open fly-out (dropdown items, skipping disabled). */
1539
+ /** Rovable rows of the open fly-out: enabled dropdown items, plus disabled
1540
+ * ones that carry a hint (so the reason can be read). */
1486
1541
  private panelItems;
1487
1542
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctSubmenu, never>;
1488
1543
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctSubmenu, "strct-submenu", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, ["[strctSubmenuLabel]", "*"], true, never>;
@@ -1556,7 +1611,10 @@ declare class StrctWizard {
1556
1611
  * ~720px of component width — it never flips horizontal.
1557
1612
  *
1558
1613
  * The default can be flipped app-wide via `provideStrctWizardDefaults`;
1559
- * this input always wins when bound.
1614
+ * this input always wins when bound. **Tests:** a spec that renders a
1615
+ * component using `strct-wizard` must provide the same defaults the app
1616
+ * does, or it renders the horizontal layout — a different DOM, no rail,
1617
+ * no title.
1560
1618
  */
1561
1619
  readonly vertical: _angular_core.InputSignalWithTransform<boolean, unknown>;
1562
1620
  /**
@@ -1566,7 +1624,8 @@ declare class StrctWizard {
1566
1624
  * Size the host with width/height only; do not override its `display`.
1567
1625
  */
1568
1626
  readonly flush: _angular_core.InputSignalWithTransform<boolean, unknown>;
1569
- /** Rail heading shown above the progress bar (vertical mode). */
1627
+ /** Rail heading shown above the progress bar. Vertical mode only — the
1628
+ * horizontal layout has no title band (a dev-mode warning says so). */
1570
1629
  readonly title: _angular_core.InputSignal<string>;
1571
1630
  /**
1572
1631
  * Name the content pane after the active step (vertical mode): the step's
@@ -1605,6 +1664,8 @@ declare class StrctWizard {
1605
1664
  /** Whether the current step permits advancing (its `canAdvance`). */
1606
1665
  protected readonly canAdvance: _angular_core.Signal<boolean>;
1607
1666
  constructor();
1667
+ /** Dev-mode warnings for inputs the current layout silently ignores. */
1668
+ private diagnose;
1608
1669
  next(): void;
1609
1670
  back(): void;
1610
1671
  /** Jump to a visited step (rail click). Forward moves still go through Next. */
@@ -3004,8 +3065,12 @@ interface StrctColumn {
3004
3065
  type StrctRow = Record<string, unknown>;
3005
3066
  /** Context passed to a per-column cell template. */
3006
3067
  interface StrctCellContext {
3007
- /** The row object. */
3068
+ /** The row object — `let-row`. */
3008
3069
  $implicit: StrctRow;
3070
+ /** The row object again, by name — so `let-row="row"` works too. Without it
3071
+ * that spelling bound `undefined` silently, because `value` and `column`
3072
+ * ARE named properties and `row` looked like one of them. */
3073
+ row: StrctRow;
3009
3074
  /** The raw value for this column (`row[column.key]`). */
3010
3075
  value: unknown;
3011
3076
  /** The column definition. */
@@ -3015,7 +3080,7 @@ interface StrctCellContext {
3015
3080
  * Per-column cell template for `strct-table` / `strct-datagrid`. The column key
3016
3081
  * is the directive value; the row, value and column are the template context:
3017
3082
  *
3018
- * <ng-template strctCell="status" let-row let-value="value">
3083
+ * <ng-template strctCell="status" let-row let-value="value"> (let-row="row" also works)
3019
3084
  * <strct-badge [status]="row['success'] ? 'success' : 'critical'">{{ value }}</strct-badge>
3020
3085
  * </ng-template>
3021
3086
  */
@@ -3142,7 +3207,7 @@ interface DgItem {
3142
3207
  }
3143
3208
  /**
3144
3209
  * Marks the expandable-row detail template. The row is the template's implicit
3145
- * context: `<ng-template strctRowDetail let-row> … {{ row['name'] }} … </ng-template>`.
3210
+ * context (`let-row`, or `let-row="row"`): `<ng-template strctRowDetail let-row> … {{ row['name'] }} … </ng-template>`.
3146
3211
  */
3147
3212
  declare class StrctRowDetailDef {
3148
3213
  readonly template: TemplateRef<any>;
@@ -3470,6 +3535,8 @@ declare class StrctDatagrid {
3470
3535
  private readonly selectionRows;
3471
3536
  protected readonly allPageSelected: _angular_core.Signal<boolean>;
3472
3537
  protected readonly somePageSelected: _angular_core.Signal<boolean>;
3538
+ /** Dev-mode check that row identities can do their job (see util/dev-warn). */
3539
+ private diagnoseIdentity;
3473
3540
  /** Resolve a row's stable identity: its `rowId` value, or the row object
3474
3541
  * itself when there is no `rowId` or it resolves to null/undefined. */
3475
3542
  private idOf;
@@ -4823,7 +4890,7 @@ declare class StrctTransfer {
4823
4890
  declare class StrctSplitButton {
4824
4891
  /** Main action label. */
4825
4892
  readonly label: _angular_core.InputSignal<string>;
4826
- /** Menu entries (StrctMenuItem: id, label, icon?, critical?, disabled?). */
4893
+ /** Menu entries (StrctMenuItem: id, label, icon?, critical?, disabled?, hint?). */
4827
4894
  readonly items: _angular_core.InputSignal<StrctMenuItem[]>;
4828
4895
  /** Optional leading icon of the main segment. */
4829
4896
  readonly icon: _angular_core.InputSignal<string>;
@@ -4985,8 +5052,12 @@ declare class StrctMenubar {
4985
5052
  /** Switch the open menu to the next/previous top-level entry; focus follows. */
4986
5053
  private switchTop;
4987
5054
  private closeMenu;
5055
+ private readonly uid;
5056
+ protected hintId(menuId: string, i: number, j?: number): string;
4988
5057
  private topButtons;
4989
- /** Enabled item buttons of the open menu — either its items or the open submenu's. */
5058
+ /** Keyboard-reachable item buttons of the open menu — either its items or the
5059
+ * open submenu's: enabled ones, plus disabled ones that carry a hint (so the
5060
+ * reason can be read). A disabled entry with nothing to say is skipped. */
4990
5061
  private navButtons;
4991
5062
  protected onDocClick(event: MouseEvent): void;
4992
5063
  protected onEscape(event: Event): void;
@@ -5786,5 +5857,5 @@ declare class StrctHeatmap {
5786
5857
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctHeatmap, "strct-heatmap", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "cols": { "alias": "cols"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "summaryFormat": { "alias": "summaryFormat"; "required": false; "isSignal": true; }; "cellHeight": { "alias": "cellHeight"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "rowLabelWidth": { "alias": "rowLabelWidth"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5787
5858
  }
5788
5859
 
5789
- export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChart, StrctCheckbox, StrctChips, StrctCode, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFile, StrctFilterBar, StrctFlow, StrctFooter, StrctGauge, StrctHeader, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLogViewer, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderItem, StrctRowDetailDef, StrctSearchbox, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctToolbar, StrctToolbarSpacer, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctTreeSelect, StrctVerticalNav, StrctWatermark, StrctWizard, StrctWizardAside, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctValidationIcon, strctValidationTone, unlockBodyScroll };
5860
+ export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChart, StrctCheckbox, StrctChips, StrctCode, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFile, StrctFilterBar, StrctFlow, StrctFooter, StrctGauge, StrctHeader, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLogViewer, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctModalContent, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderItem, StrctRowDetailDef, StrctSearchbox, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctToolbar, StrctToolbarSpacer, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctTreeSelect, StrctVerticalNav, StrctWatermark, StrctWizard, StrctWizardAside, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctValidationIcon, strctValidationTone, unlockBodyScroll };
5790
5861
  export type { StrctAlertType, StrctAvatarSize, StrctAvatarStatus, StrctBadgeStatus, StrctButtonSize, StrctButtonVariant, StrctCascadeOption, StrctCellContext, StrctChartAnnotation, StrctChartColor, StrctChartCurve, StrctChartSeries, StrctChartSlot, StrctChartStatus, StrctChartSummaryInfo, StrctChartThreshold, StrctChartType, StrctColumn, StrctCommandItem, StrctConfirmOptions, StrctConfirmTone, StrctDatagridColumn, StrctDatagridColumnState, StrctDatagridFilters, StrctDatagridLabels, StrctDatagridLazyState, StrctDescAlign, StrctDescItem, StrctDiffRow, StrctDonutSegment, StrctDrawerSide, StrctDrawerSize, StrctEmptyVariant, StrctFilterChip, StrctFlowDirection, StrctFlowNode, StrctFlowOrientation, StrctHeatmapCell, StrctHeatmapSummaryInfo, StrctHotkey, StrctIconBadge, StrctIconName, StrctKnobStatus, StrctLogLine, StrctMenuItem, StrctMenuLink, StrctMenuOpenOptions, StrctMenuSection, StrctMenubarItem, StrctMetricStatus, StrctModalSize, StrctMode, StrctNotification, StrctOption, StrctOverlayPlacement, StrctPalette, StrctPaletteInfo, StrctProgressStatus, StrctRailItem, StrctRailStatus, StrctReorderEvent, StrctRow, StrctRowId, StrctSegmentedOption, StrctSegmentedSize, StrctSignpostPosition, StrctSpeedDialDirection, StrctSpinnerSize, StrctStatus, StrctStatusDotSize, StrctTagStatus, StrctThresholds, StrctTimeRange, StrctTimeRangePreset, StrctTimelineState, StrctToast, StrctToastOptions, StrctToastType, StrctTooltipPosition, StrctTourStep, StrctTransferItem, StrctTreeMenuEvent, StrctTreeNodeData, StrctTreeNodeMenuFn, StrctValidationState, StrctValidationStatus, StrctWizardDefaults };