@ds-mo/ui 13.11.0 → 13.12.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.
Files changed (120) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +6 -3
  3. package/dist/agent.json +306 -16
  4. package/dist/angular/ds-mobile-header.d.ts +1 -1
  5. package/dist/angular/ds-mobile-header.js +3 -3
  6. package/dist/angular/ds-shell-page.d.ts +1 -1
  7. package/dist/angular/ds-shell-page.js +3 -3
  8. package/dist/angular/ds-tab-group.d.ts +1 -1
  9. package/dist/angular/ds-tab-group.js +3 -3
  10. package/dist/angular/ds-table.d.ts +28 -0
  11. package/dist/angular/ds-table.js +54 -0
  12. package/dist/angular/ds-tag.d.ts +1 -1
  13. package/dist/angular/ds-tag.js +3 -3
  14. package/dist/angular/index.d.ts +1 -1
  15. package/dist/angular/index.js +1 -0
  16. package/dist/angular/proxies.d.ts +1 -0
  17. package/dist/angular/proxies.js +1 -0
  18. package/dist/components/ds-bar-nav.js +1 -1
  19. package/dist/components/ds-bar-title.js +1 -1
  20. package/dist/components/ds-bar-workflow.js +1 -1
  21. package/dist/components/ds-bar-workflow.js.map +1 -1
  22. package/dist/components/ds-card-overview.js +1 -1
  23. package/dist/components/ds-menu.js +1 -1
  24. package/dist/components/ds-mobile-header.js +1 -1
  25. package/dist/components/ds-mobile-section-switcher.js +1 -1
  26. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  27. package/dist/components/ds-modal.js +1 -1
  28. package/dist/components/ds-panel-sub-nav.js +1 -1
  29. package/dist/components/ds-radio.js +1 -1
  30. package/dist/components/ds-scroll-overlay.js +1 -1
  31. package/dist/components/ds-scroll-overlay.js.map +1 -1
  32. package/dist/components/ds-select.js +1 -1
  33. package/dist/components/ds-shell-app.js +1 -1
  34. package/dist/components/ds-shell-app.js.map +1 -1
  35. package/dist/components/ds-shell-page.js +1 -1
  36. package/dist/components/ds-shell-tools.js +1 -1
  37. package/dist/components/ds-skeleton.js +1 -1
  38. package/dist/components/ds-slider.js +1 -1
  39. package/dist/components/ds-switch.js +1 -1
  40. package/dist/components/ds-tab-group.js +1 -1
  41. package/dist/components/ds-table.d.ts +11 -0
  42. package/dist/components/ds-table.js +2 -0
  43. package/dist/components/ds-table.js.map +1 -0
  44. package/dist/components/ds-tag.js +1 -1
  45. package/dist/components/ds-tag.js.map +1 -1
  46. package/dist/components/ds-toast.js +1 -1
  47. package/dist/components/ds-typing-indicator.js +1 -1
  48. package/dist/components/index.d.ts +30 -0
  49. package/dist/components/p-BFXN4ioL.js +2 -0
  50. package/dist/components/p-BFXN4ioL.js.map +1 -0
  51. package/dist/components/{p-DgglLVCj.js → p-BYre-ZDg.js} +2 -2
  52. package/dist/components/p-B_eqa09C.js +2 -0
  53. package/dist/components/p-B_eqa09C.js.map +1 -0
  54. package/dist/components/{p-BnGJrBPG.js → p-Bj7KrXzw.js} +2 -2
  55. package/dist/components/p-BxJurXEn.js +2 -0
  56. package/dist/components/p-BxJurXEn.js.map +1 -0
  57. package/dist/components/{p-Dg9qiMDa.js → p-C9StMCWg.js} +2 -2
  58. package/dist/components/p-CE82aQZr.js +2 -0
  59. package/dist/components/p-CE82aQZr.js.map +1 -0
  60. package/dist/components/p-CFNG0K3m.js +2 -0
  61. package/dist/components/p-CFNG0K3m.js.map +1 -0
  62. package/dist/components/{p-BQ7Nzx9A.js → p-Ch5yT3UA.js} +2 -2
  63. package/dist/components/{p-DJGdoPMG.js → p-DKftz0O8.js} +2 -2
  64. package/dist/components/p-DxygUurH.js +2 -0
  65. package/dist/components/p-DxygUurH.js.map +1 -0
  66. package/dist/components/{p-DCN04sgt.js → p-x9jO4lZ7.js} +2 -2
  67. package/dist/components/{p-DCN04sgt.js.map → p-x9jO4lZ7.js.map} +1 -1
  68. package/dist/docs/components.json +1567 -74
  69. package/dist/lib/components/MobileHeader/mobile-header-types.d.ts +3 -2
  70. package/dist/lib/components/ShellApp/shell-app-types.d.ts +4 -1
  71. package/dist/lib/components/ShellPage/shell-page-types.d.ts +5 -0
  72. package/dist/lib/shell/index.d.ts +1 -0
  73. package/dist/mcp-data/registry/bar-title.json +2 -1
  74. package/dist/mcp-data/registry/card-overview.json +1 -1
  75. package/dist/mcp-data/registry/mobile-header.json +48 -10
  76. package/dist/mcp-data/registry/mobile-sheet-nav.json +2 -2
  77. package/dist/mcp-data/registry/registry.json +308 -15
  78. package/dist/mcp-data/registry/shell-app.json +6 -3
  79. package/dist/mcp-data/registry/shell-page.json +32 -8
  80. package/dist/mcp-data/registry/shell-tools.json +4 -4
  81. package/dist/mcp-data/registry/tab-group.json +22 -2
  82. package/dist/mcp-data/registry/table.json +758 -0
  83. package/dist/mcp-data/registry/tag.json +22 -3
  84. package/dist/react/components.d.ts +1 -0
  85. package/dist/react/components.js +1 -0
  86. package/dist/react/ds-table.d.ts +16 -0
  87. package/dist/react/ds-table.js +18 -0
  88. package/dist/styles/table.css +677 -0
  89. package/dist/types/components/MobileHeader/MobileHeader.d.ts +8 -3
  90. package/dist/types/components/MobileHeader/index.d.ts +1 -1
  91. package/dist/types/components/MobileHeader/mobile-header-types.d.ts +3 -2
  92. package/dist/types/components/ShellApp/ShellApp.d.ts +8 -0
  93. package/dist/types/components/ShellApp/shell-app-types.d.ts +4 -1
  94. package/dist/types/components/ShellPage/ShellPage.d.ts +3 -1
  95. package/dist/types/components/ShellPage/index.d.ts +1 -1
  96. package/dist/types/components/ShellPage/shell-page-types.d.ts +1 -0
  97. package/dist/types/components/TabGroup/TabGroup.d.ts +3 -0
  98. package/dist/types/components/Table/Table.d.ts +115 -0
  99. package/dist/types/components/Table/index.d.ts +2 -0
  100. package/dist/types/components/Table/table-model.d.ts +29 -0
  101. package/dist/types/components/Table/table-types.d.ts +178 -0
  102. package/dist/types/components/Tag/Tag.d.ts +2 -0
  103. package/dist/types/components.d.ts +406 -8
  104. package/dist/types/shell/index.d.ts +1 -0
  105. package/package.json +3 -2
  106. package/dist/components/p-B_nHX-BW.js +0 -2
  107. package/dist/components/p-B_nHX-BW.js.map +0 -1
  108. package/dist/components/p-CVmtbj-6.js +0 -2
  109. package/dist/components/p-CVmtbj-6.js.map +0 -1
  110. package/dist/components/p-DW9p068S.js +0 -2
  111. package/dist/components/p-DW9p068S.js.map +0 -1
  112. package/dist/components/p-Xftomzsv.js +0 -2
  113. package/dist/components/p-Xftomzsv.js.map +0 -1
  114. package/dist/components/p-iyiOFsws.js +0 -2
  115. package/dist/components/p-iyiOFsws.js.map +0 -1
  116. /package/dist/components/{p-DgglLVCj.js.map → p-BYre-ZDg.js.map} +0 -0
  117. /package/dist/components/{p-BnGJrBPG.js.map → p-Bj7KrXzw.js.map} +0 -0
  118. /package/dist/components/{p-Dg9qiMDa.js.map → p-C9StMCWg.js.map} +0 -0
  119. /package/dist/components/{p-BQ7Nzx9A.js.map → p-Ch5yT3UA.js.map} +0 -0
  120. /package/dist/components/{p-DJGdoPMG.js.map → p-DKftz0O8.js.map} +0 -0
@@ -7,6 +7,7 @@ import { type MobileDestination, type ShellResponsiveMode } from '../../shell/sh
7
7
  import type { PanelNavUserActionDetail } from '../PanelNav/panel-nav-types';
8
8
  import type { ShellAppComposition, ShellNavigationConfig, ShellPageChromeConfig, ShellToolsConfig } from './shell-app-types';
9
9
  export declare class ShellApp {
10
+ private static readonly FOREGROUND_REFRESH_MS;
10
11
  /** Managed renders the complete responsive chrome; slotted exposes the advanced composition. */
11
12
  composition: ShellAppComposition;
12
13
  /** Router-owned navigation data used by managed composition. */
@@ -80,6 +81,7 @@ export declare class ShellApp {
80
81
  private managedBrowseContext;
81
82
  private resizeObserver;
82
83
  private hasLoaded;
84
+ private foregroundRefreshTimer;
83
85
  private readonly panelNavTransition;
84
86
  private readonly chromeSyncCoalescer;
85
87
  private panelWidthTokens;
@@ -113,6 +115,12 @@ export declare class ShellApp {
113
115
  private connectMetricsObserver;
114
116
  private connectViewportListeners;
115
117
  private disconnectViewportListeners;
118
+ private connectPageLifecycleListeners;
119
+ private disconnectPageLifecycleListeners;
120
+ private onDocumentVisibilityChange;
121
+ private onPageShow;
122
+ private cancelForegroundRefresh;
123
+ private refreshAfterForegroundRestore;
116
124
  private cachePanelWidthTokens;
117
125
  private applyGradientVars;
118
126
  private clearGradientPaintVars;
@@ -5,6 +5,7 @@ import type { MobileHeaderTone } from '../MobileHeader/mobile-header-types';
5
5
  import type { PanelNavGroup, PanelNavItem, PanelNavRouterMode } from '../PanelNav/panel-nav-types';
6
6
  import type { PanelToolsHeaders, PanelToolsHeaderAction, PanelToolsItem } from '../PanelTools/panel-tools-types';
7
7
  import type { NavChromeStyle } from '../../shell/nav-chrome';
8
+ import type { ShellPageContentInset, ShellPageContentSurface } from '../ShellPage/shell-page-types';
8
9
  export type ShellAppComposition = 'managed' | 'slotted';
9
10
  /**
10
11
  * Router-owned application navigation supplied to managed ShellApp.
@@ -67,7 +68,9 @@ export interface ShellPageChromeConfig {
67
68
  mobileActions?: PanelToolsHeaderAction[];
68
69
  actionsAriaLabel?: string;
69
70
  tone?: MobileHeaderTone;
70
- contentInset?: 'default' | 'none';
71
+ contentInset?: ShellPageContentInset;
72
+ /** Canvas surface painted by ShellPage around and beneath routed content. */
73
+ contentSurface?: ShellPageContentSurface;
71
74
  }
72
75
  /**
73
76
  * Product-owned global tools supplied to managed ShellApp. Tool view content
@@ -1,5 +1,5 @@
1
1
  import type { ShellResponsiveMode } from '../../shell/shell-responsive';
2
- import type { ShellPageCapacity, ShellPageContentInset, ShellPageHeaderPresentation } from './shell-page-types';
2
+ import type { ShellPageCapacity, ShellPageContentInset, ShellPageContentSurface, ShellPageHeaderPresentation } from './shell-page-types';
3
3
  export declare class ShellPage {
4
4
  private static readonly MAX_HEADER_REVEAL_FRAMES;
5
5
  private static readonly MAX_HEADER_GEOMETRY_FRAMES;
@@ -10,6 +10,8 @@ export declare class ShellPage {
10
10
  headerCapacity?: ShellPageCapacity;
11
11
  /** Standard page gutters, or no inset for full-bleed page content. */
12
12
  contentInset: ShellPageContentInset;
13
+ /** Canvas surface painted around and beneath routed page content. */
14
+ contentSurface: ShellPageContentSurface;
13
15
  /** Explicit shell breakpoint presentation. Mobile uses the dedicated mobile-header slot. */
14
16
  responsiveMode: ShellResponsiveMode;
15
17
  private pageTopVisible;
@@ -1,3 +1,3 @@
1
1
  export { ShellPage } from './ShellPage';
2
- export type { ShellPageCapacity, ShellPageContentInset, ShellPageHeaderPresentation, } from './shell-page-types';
2
+ export type { ShellPageCapacity, ShellPageContentInset, ShellPageContentSurface, ShellPageHeaderPresentation, } from './shell-page-types';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import type { BarTitleVariant } from '../BarTitle/bar-title-types';
2
2
  export type ShellPageHeaderPresentation = 'auto' | BarTitleVariant;
3
3
  export type ShellPageContentInset = 'default' | 'none';
4
+ export type ShellPageContentSurface = 'primary' | 'secondary';
4
5
  export type ShellPageCapacity = 'roomy' | 'compact' | 'constrained';
5
6
  //# sourceMappingURL=shell-page-types.d.ts.map
@@ -1,10 +1,13 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
2
  import { type TabGroupItem } from './tab-item-utils';
3
3
  export type TabBackground = 'faint' | 'medium' | 'bold' | 'strong' | 'translucent' | 'inverted' | 'media' | 'always-dark';
4
+ export type TabGroupSize = 'sm' | 'md' | 'lg';
4
5
  export declare class TabGroup {
5
6
  el: HTMLElement;
6
7
  value: string;
7
8
  tabs: TabGroupItem[];
9
+ /** Control density: 24px small, 32px medium, or 40px large track. */
10
+ size: TabGroupSize;
8
11
  background: TabBackground | undefined;
9
12
  ariaLabel: string | null;
10
13
  ariaLabelledby: string | undefined;
@@ -0,0 +1,115 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ import type { TableCaptionVisibility, TableCellActionDetail, TableColumn, TableGroup, TableGroupingChangeDetail, TableGroupingState, TableLoadMoreDetail, TableLoadMoreMode, TableRow, TableSelectionChangeDetail, TableSelectionMode, TableSortChangeDetail, TableSortState } from './table-types';
3
+ export declare class Table {
4
+ /** Stable column definitions. Assign through JavaScript. */
5
+ columns: TableColumn[];
6
+ /** Ungrouped row data. Ignored while grouping is active. Assign through JavaScript. */
7
+ rows: TableRow[];
8
+ /** One level of application-owned grouped data. Assign through JavaScript. */
9
+ groups: TableGroup[];
10
+ /** Controlled grouping column and group-order direction. */
11
+ grouping: TableGroupingState | null;
12
+ /** Controlled member-row sort state. */
13
+ sort: TableSortState | null;
14
+ /** Required accessible table name, rendered as a native caption. */
15
+ caption: string;
16
+ captionVisibility: TableCaptionVisibility;
17
+ stickyHeader: boolean;
18
+ /** Maximum scroll-region height. Numbers resolve to CSS pixels. */
19
+ maxHeight: string | number | undefined;
20
+ /** Optional explicit label for the horizontal/vertical scroll region. */
21
+ scrollLabel: string | undefined;
22
+ selectionMode: TableSelectionMode;
23
+ /** Controlled selected row identities. IDs outside the loaded rows are preserved. */
24
+ selectedRowIds: string[];
25
+ /** Initial loading state. Existing rows stay visible; incremental loading uses loadingMore. */
26
+ loading: boolean;
27
+ skeletonRows: number;
28
+ emptyHeading: string;
29
+ emptyBody: string;
30
+ /** Initial error state. Existing rows stay visible; incremental failures use loadMoreError. */
31
+ error: boolean;
32
+ errorHeading: string;
33
+ errorBody: string;
34
+ emptyCellLabel: string;
35
+ /** Enable application-owned incremental loading without pagination. */
36
+ lazyLoading: boolean;
37
+ loadMoreMode: TableLoadMoreMode;
38
+ hasMore: boolean;
39
+ loadingMore: boolean;
40
+ loadMoreError: string | undefined;
41
+ /** Reset key for a new query/group/sort dataset. */
42
+ loadIdentity: string | number;
43
+ /** IntersectionObserver root margin in CSS pixels. */
44
+ loadMoreThreshold: number;
45
+ loadMoreLabel: string;
46
+ retryLabel: string;
47
+ loadingMoreLabel: string;
48
+ endOfResultsLabel: string;
49
+ /** Supports {count} and {total} placeholders. */
50
+ rowsLoadedLabel: string;
51
+ dsSortChange: EventEmitter<TableSortChangeDetail>;
52
+ dsGroupingChange: EventEmitter<TableGroupingChangeDetail>;
53
+ dsSelectionChange: EventEmitter<TableSelectionChangeDetail>;
54
+ dsLoadMore: EventEmitter<TableLoadMoreDetail>;
55
+ dsCellAction: EventEmitter<TableCellActionDetail>;
56
+ private overflowStart;
57
+ private overflowEnd;
58
+ private scrollable;
59
+ private intersectionSupported;
60
+ private announcement;
61
+ private viewportEl;
62
+ private tableEl;
63
+ private sentinelEl;
64
+ private resizeObserver;
65
+ private intersectionObserver;
66
+ private observedSentinel;
67
+ private requestPending;
68
+ private requestedRowCount;
69
+ private previousLoadedRowCount;
70
+ private previousModelWarning;
71
+ private hasLoaded;
72
+ private reconnectFrame;
73
+ componentWillLoad(): void;
74
+ componentDidLoad(): void;
75
+ componentDidRender(): void;
76
+ connectedCallback(): void;
77
+ disconnectedCallback(): void;
78
+ handleStructureChange(): void;
79
+ handleDataChange(): void;
80
+ handleLoadIdentityChange(): void;
81
+ handleLazyConfigurationChange(): void;
82
+ handleLoadingMoreChange(loading: boolean): void;
83
+ handleLoadMoreErrorChange(error: string | undefined): void;
84
+ handleHasMoreChange(hasMore: boolean, hadMore: boolean): void;
85
+ private get grouped();
86
+ private get selectable();
87
+ private get loadedRows();
88
+ private get hasData();
89
+ private get totalColumns();
90
+ private get selectedSet();
91
+ private get selectionState();
92
+ private get resolvedMaxHeight();
93
+ private get tableStyle();
94
+ private warnModelIssues;
95
+ private connectViewportObserver;
96
+ private syncOverflow;
97
+ private resetLoadRequest;
98
+ private disconnectIntersectionObserver;
99
+ private connectIntersectionObserver;
100
+ private requestLoadMore;
101
+ private emitSort;
102
+ private sortButtonLabel;
103
+ private emitRowSelection;
104
+ private emitAllSelection;
105
+ private renderSelectionControl;
106
+ private renderColumnHeader;
107
+ private renderCellValue;
108
+ private renderRow;
109
+ private renderDataBodies;
110
+ private renderSkeletonBody;
111
+ private renderStateBody;
112
+ private renderLazyBody;
113
+ render(): any;
114
+ }
115
+ //# sourceMappingURL=Table.d.ts.map
@@ -0,0 +1,2 @@
1
+ export type { TableCaptionVisibility, TableCellAlign, TableCellAction, TableCellActionDetail, TableCellBlank, TableCellEmpty, TableCellIcon, TableCellImage, TableCellPrimaryText, TableCellText, TableCellTag, TableCellTagVariant, TableCellValue, TableColumn, TableColumnWidth, TableGroup, TableHeaderSegment, TableGroupingChangeDetail, TableGroupingState, TableLoadMoreDetail, TableLoadMoreMode, TableLoadMoreReason, TableRow, TableSelectionChangeDetail, TableSelectionMode, TableSortChangeDetail, TableSortDirection, TableSortState, } from './table-types';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,29 @@
1
+ import type { TableCellBlank, TableCellAction, TableCellEmpty, TableCellIcon, TableCellImage, TableCellPrimaryText, TableCellText, TableCellTag, TableCellValue, TableColumn, TableGroup, TableGroupingState, TableRow, TableSortState } from './table-types';
2
+ export interface TableSelectionState {
3
+ selectableRowIds: string[];
4
+ selectedLoadedCount: number;
5
+ allSelected: boolean;
6
+ indeterminate: boolean;
7
+ }
8
+ export declare function isTableCellText(value: TableCellValue): value is TableCellText;
9
+ export declare function isTableCellPrimaryText(value: TableCellValue): value is TableCellPrimaryText;
10
+ export declare function isTableCellTag(value: TableCellValue): value is TableCellTag;
11
+ export declare function isTableCellIcon(value: TableCellValue): value is TableCellIcon;
12
+ export declare function isTableCellImage(value: TableCellValue): value is TableCellImage;
13
+ export declare function isTableCellAction(value: TableCellValue): value is TableCellAction;
14
+ export declare function isTableCellEmpty(value: TableCellValue): value is TableCellEmpty;
15
+ export declare function isTableCellBlank(value: TableCellValue): value is TableCellBlank;
16
+ export declare function tableCellPrimary(value: TableCellValue): string | number | null;
17
+ export declare function tableRowSelectionLabel(row: TableRow, columns: TableColumn[]): string;
18
+ export declare function nextTableSortState(current: TableSortState | null | undefined, columnId: string): TableSortState;
19
+ export declare function nextTableGroupOrder(grouping: TableGroupingState): TableGroupingState;
20
+ export declare function clampTableColumnSize(column: TableColumn): number | undefined;
21
+ export declare function tableColumnSize(column: TableColumn): string | undefined;
22
+ export declare function tableExplicitMinWidth(columns: TableColumn[]): string | undefined;
23
+ export declare function tableRows(rows: TableRow[], groups: TableGroup[], grouped: boolean): TableRow[];
24
+ export declare function deriveTableSelectionState(rows: TableRow[], selectedRowIds: readonly string[]): TableSelectionState;
25
+ export declare function toggleTableRowSelection(selectedRowIds: readonly string[], row: TableRow): string[];
26
+ export declare function toggleAllLoadedTableRows(selectedRowIds: readonly string[], loadedRows: TableRow[]): string[];
27
+ export declare function resolvedTableGroupCount(group: TableGroup): number;
28
+ export declare function tableModelIssues(columns: TableColumn[], rows: TableRow[], groups: TableGroup[], grouped: boolean): string[];
29
+ //# sourceMappingURL=table-model.d.ts.map
@@ -0,0 +1,178 @@
1
+ import type { TagContrast, TagIntent } from '../Tag/Tag';
2
+ import type { IconColor } from '../Icon/Icon';
3
+ export type TableSortDirection = 'asc' | 'desc';
4
+ export type TableSelectionMode = 'none' | 'multiple';
5
+ export type TableCellAlign = 'start' | 'center' | 'end';
6
+ export type TableCaptionVisibility = 'visible' | 'hidden';
7
+ export type TableLoadMoreMode = 'auto' | 'manual';
8
+ export type TableLoadMoreReason = 'auto' | 'manual' | 'retry';
9
+ export type TableColumnWidth = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
10
+ /** Independently sortable label within a compound column header. */
11
+ export interface TableHeaderSegment {
12
+ label: string;
13
+ /** Stable key emitted through TableSortState.columnId. */
14
+ sortKey: string;
15
+ /** Visible separator rendered after this label when another segment follows. */
16
+ separator?: string;
17
+ }
18
+ /** Controlled member-row sort state. Group order is controlled separately. */
19
+ export interface TableSortState {
20
+ columnId: string;
21
+ direction: TableSortDirection;
22
+ }
23
+ /** One controlled grouping level plus the supplied group-order direction. */
24
+ export interface TableGroupingState {
25
+ columnId: string;
26
+ direction: TableSortDirection;
27
+ }
28
+ /** Standard two-line cell content owned by the table renderer. */
29
+ export interface TableCellText {
30
+ primary: string | number;
31
+ secondary?: string;
32
+ /** Allow this cell to wrap even when its column truncates by default. */
33
+ wrap?: boolean;
34
+ fontFeature?: 'normal' | 'tabular-nums';
35
+ }
36
+ /** Two-line text content where both tracks use primary body text. */
37
+ export interface TableCellPrimaryText {
38
+ kind: 'primary-text';
39
+ primary: string | number;
40
+ secondary: string | number;
41
+ /** Allow this cell to wrap even when its column truncates by default. */
42
+ wrap?: boolean;
43
+ fontFeature?: 'normal' | 'tabular-nums';
44
+ }
45
+ /** Applicable data point whose value is currently unavailable. */
46
+ export interface TableCellEmpty {
47
+ kind: 'empty';
48
+ }
49
+ /** Data point that is intentionally not applicable to this row. */
50
+ export interface TableCellBlank {
51
+ kind: 'blank';
52
+ }
53
+ /** Declarative icon-only content rendered by the table's standard cell primitive. */
54
+ export interface TableCellIcon {
55
+ kind: 'icon';
56
+ /** Exact canonical IcoMo export name. */
57
+ icon: string;
58
+ color?: IconColor;
59
+ /** Accessible label for informative icons. Omit only when the icon is decorative. */
60
+ label?: string;
61
+ /** Application-owned value used when this icon column participates in sorting. */
62
+ sortValue?: string | number | boolean;
63
+ }
64
+ /** Declarative 16:9 image preview rendered by the table's standard cell primitive. */
65
+ export interface TableCellImage {
66
+ kind: 'image';
67
+ /** Optional image source. Omit it to render the standard bordered placeholder. */
68
+ src?: string;
69
+ /** Accessible description for either the image or its placeholder. */
70
+ alt: string;
71
+ }
72
+ interface TableCellActionBase {
73
+ kind: 'action';
74
+ /** Stable application-owned action identity emitted with dsCellAction. */
75
+ actionId: string;
76
+ /** Add the ButtonUnfilled resting border. Action cells are unbordered by default. */
77
+ hasBorder?: boolean;
78
+ isInactive?: boolean;
79
+ isLoading?: boolean;
80
+ }
81
+ /** Declarative ButtonUnfilled content rendered by the table's standard action cell. */
82
+ export type TableCellAction = TableCellActionBase & ({
83
+ variant?: 'label';
84
+ label: string;
85
+ icon?: never;
86
+ ariaLabel?: string;
87
+ } | {
88
+ variant: 'icon-label';
89
+ label: string;
90
+ icon: string;
91
+ ariaLabel?: string;
92
+ } | {
93
+ variant: 'icon';
94
+ label?: never;
95
+ icon: string;
96
+ ariaLabel: string;
97
+ });
98
+ /** Declarative Tag content rendered by the table's standard cell primitive. */
99
+ export type TableCellTagVariant = 'tag-only' | 'tag-with-text' | 'text-with-tag';
100
+ interface TableCellTagBase {
101
+ kind: 'tag';
102
+ label: string;
103
+ intent?: TagIntent;
104
+ contrast?: TagContrast;
105
+ icon?: string;
106
+ rounded?: boolean;
107
+ }
108
+ export type TableCellTag = TableCellTagBase & ({
109
+ variant?: 'tag-only';
110
+ text?: never;
111
+ } | {
112
+ variant: Exclude<TableCellTagVariant, 'tag-only'>;
113
+ text: string;
114
+ });
115
+ export type TableCellValue = string | number | null | undefined | TableCellText | TableCellPrimaryText | TableCellTag | TableCellIcon | TableCellImage | TableCellAction | TableCellEmpty | TableCellBlank;
116
+ export interface TableColumn {
117
+ /** Stable column identity. */
118
+ id: string;
119
+ header: string;
120
+ /** Optional labels for columns that present and sort multiple related data points. */
121
+ headerSegments?: TableHeaderSegment[];
122
+ align?: TableCellAlign;
123
+ sortable?: boolean;
124
+ /** Preferred TokoMo table-column width. Numbers remain available for exceptional custom pixel widths. */
125
+ size?: TableColumnWidth | number;
126
+ /** Minimum accepted preferred width in CSS pixels. */
127
+ minSize?: number;
128
+ /** Maximum accepted preferred width in CSS pixels. */
129
+ maxSize?: number;
130
+ /** Wrap cell text instead of truncating it to one line. */
131
+ wrap?: boolean;
132
+ }
133
+ export interface TableRow {
134
+ /** Stable identity, unique across all groups. */
135
+ id: string;
136
+ cells: Record<string, TableCellValue>;
137
+ /** Accessible row name used by its selection control. Falls back to the first cell. */
138
+ selectionLabel?: string;
139
+ /** Exclude this row from selection without muting its content. */
140
+ selectable?: boolean;
141
+ /** Keep the row visible while disabling its selection control and styling it as inactive. */
142
+ disabled?: boolean;
143
+ }
144
+ export interface TableGroup {
145
+ /** Stable group identity. */
146
+ id: string;
147
+ label: string;
148
+ value?: string | number;
149
+ /** Total server-side member count; may exceed the currently loaded row count. */
150
+ totalCount?: number;
151
+ /** Optional localized, display-ready count such as “18 vehicles”. */
152
+ countLabel?: string;
153
+ rows: TableRow[];
154
+ }
155
+ export interface TableSortChangeDetail {
156
+ sort: TableSortState | null;
157
+ }
158
+ export interface TableGroupingChangeDetail {
159
+ grouping: TableGroupingState;
160
+ }
161
+ export interface TableSelectionChangeDetail {
162
+ selectedRowIds: string[];
163
+ scope: 'row' | 'all-loaded';
164
+ changedRowId?: string;
165
+ selected?: boolean;
166
+ }
167
+ export interface TableLoadMoreDetail {
168
+ reason: TableLoadMoreReason;
169
+ loadIdentity: string | number;
170
+ loadedRowCount: number;
171
+ }
172
+ export interface TableCellActionDetail {
173
+ actionId: string;
174
+ rowId: string;
175
+ columnId: string;
176
+ }
177
+ export {};
178
+ //# sourceMappingURL=table-types.d.ts.map
@@ -9,6 +9,8 @@ export declare class Tag {
9
9
  intent: TagIntent;
10
10
  contrast: TagContrast;
11
11
  size: TagSize;
12
+ /** Use the reduced outer geometry when nested inside a control of the same size. */
13
+ isInset: boolean;
12
14
  rounded: boolean;
13
15
  maxWidth: string | number | undefined;
14
16
  /** Render a menu-trigger button with a fixed ChevronUpDown suffix. */