@ds-mo/ui 15.4.1 → 15.5.1

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 (151) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +53 -6
  4. package/dist/angular/ds-select.d.ts +1 -1
  5. package/dist/angular/ds-select.js +3 -3
  6. package/dist/angular/ds-table.d.ts +7 -1
  7. package/dist/angular/ds-table.js +11 -5
  8. package/dist/components/ds-agent-questionnaire.js +1 -1
  9. package/dist/components/ds-agent-response.js +1 -1
  10. package/dist/components/ds-banner.js +1 -1
  11. package/dist/components/ds-bar-nav.js +1 -1
  12. package/dist/components/ds-bar-page-title.js +1 -1
  13. package/dist/components/ds-bar-title.js +1 -1
  14. package/dist/components/ds-bar-workflow.js +1 -1
  15. package/dist/components/ds-button-filled.js +1 -1
  16. package/dist/components/ds-button-unfilled.js +1 -1
  17. package/dist/components/ds-calendar.js +1 -1
  18. package/dist/components/ds-card-action-center.js +1 -1
  19. package/dist/components/ds-card-chart.js +1 -1
  20. package/dist/components/ds-card-setting.js +1 -1
  21. package/dist/components/ds-code-block.js +1 -1
  22. package/dist/components/ds-data-customize.js +1 -1
  23. package/dist/components/ds-data-filter.js +1 -1
  24. package/dist/components/ds-data-group.js +1 -1
  25. package/dist/components/ds-data-preferences.js +1 -1
  26. package/dist/components/ds-data-saved-views.js +1 -1
  27. package/dist/components/ds-data-search.js +1 -1
  28. package/dist/components/ds-data-sort.js +1 -1
  29. package/dist/components/ds-data-toolbar.js +1 -1
  30. package/dist/components/ds-divider.js +1 -1
  31. package/dist/components/ds-filter-menu.js +1 -1
  32. package/dist/components/ds-input-date.js +1 -1
  33. package/dist/components/ds-input-date.js.map +1 -1
  34. package/dist/components/ds-input-time.js +1 -1
  35. package/dist/components/ds-input-time.js.map +1 -1
  36. package/dist/components/ds-input.js +1 -1
  37. package/dist/components/ds-map-entity-marker.js +1 -1
  38. package/dist/components/ds-map-entity-marker.js.map +1 -1
  39. package/dist/components/ds-markdown.js +1 -1
  40. package/dist/components/ds-message-actions.js +1 -1
  41. package/dist/components/ds-message-bubble.js +1 -1
  42. package/dist/components/ds-message-composer.js +1 -1
  43. package/dist/components/ds-message-scroller.js +1 -1
  44. package/dist/components/ds-mobile-header.js +1 -1
  45. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  46. package/dist/components/ds-modal.js +1 -1
  47. package/dist/components/ds-pagination.js +1 -1
  48. package/dist/components/ds-panel-nav.js +1 -1
  49. package/dist/components/ds-panel-sub-nav.js +1 -1
  50. package/dist/components/ds-panel-tool-header.js +1 -1
  51. package/dist/components/ds-panel-tool-search.js +1 -1
  52. package/dist/components/ds-panel-tools.js +1 -1
  53. package/dist/components/ds-radio-tile.js +1 -1
  54. package/dist/components/ds-radio.js +1 -1
  55. package/dist/components/ds-scroll-overlay.js +1 -1
  56. package/dist/components/ds-scroll-overlay.js.map +1 -1
  57. package/dist/components/ds-select.js +1 -1
  58. package/dist/components/ds-shell-app.js +1 -1
  59. package/dist/components/ds-shell-tools.js +1 -1
  60. package/dist/components/ds-tab-group.js +1 -1
  61. package/dist/components/ds-table.js +1 -1
  62. package/dist/components/ds-table.js.map +1 -1
  63. package/dist/components/ds-textarea.js +1 -1
  64. package/dist/components/ds-textarea.js.map +1 -1
  65. package/dist/components/ds-toast.js +1 -1
  66. package/dist/components/{p-YYiDYQhS.js → p--VQc5GDy.js} +2 -2
  67. package/dist/components/{p-LENgfPDe.js → p-7MwoWtTJ.js} +2 -2
  68. package/dist/components/p-B95UP66y.js +2 -0
  69. package/dist/components/p-B95UP66y.js.map +1 -0
  70. package/dist/components/{p-D-J7GgjY.js → p-BLeHHoVb.js} +2 -2
  71. package/dist/components/{p-D-J7GgjY.js.map → p-BLeHHoVb.js.map} +1 -1
  72. package/dist/components/{p-CXGjCWSh.js → p-BfVMaZZE.js} +2 -2
  73. package/dist/components/{p-wRhYxngW.js → p-BlbfbYg6.js} +2 -2
  74. package/dist/components/{p-PtxCwf5S.js → p-BuDxlhnQ.js} +2 -2
  75. package/dist/components/p-BuGlC5r8.js +2 -0
  76. package/dist/components/p-BuGlC5r8.js.map +1 -0
  77. package/dist/components/{p-BkvAqrXg.js → p-C1ZfBbJ_.js} +2 -2
  78. package/dist/components/{p-BcpIK9S6.js → p-C35Tki38.js} +2 -2
  79. package/dist/components/{p-jwVzQaTZ.js → p-C378wwRj.js} +2 -2
  80. package/dist/components/{p-B6TX55c5.js → p-C9H-3JOA.js} +2 -2
  81. package/dist/components/{p-COD1C3Gj.js → p-CNeDJTGX.js} +2 -2
  82. package/dist/components/p-CXlklL-0.js +2 -0
  83. package/dist/components/{p-dUti7zhW.js.map → p-CXlklL-0.js.map} +1 -1
  84. package/dist/components/{p-D7wLvTHz.js → p-CcwxySms.js} +2 -2
  85. package/dist/components/p-CzdE3M3g.js +2 -0
  86. package/dist/components/p-CzdE3M3g.js.map +1 -0
  87. package/dist/components/{p-DQfKS7dz.js → p-D9_iDlkT.js} +2 -2
  88. package/dist/components/{p-DkxhNqT-.js → p-DPwptvZl.js} +2 -2
  89. package/dist/components/{p-Dg6hnCc2.js → p-DVsGfz7J.js} +2 -2
  90. package/dist/components/{p-Dg6hnCc2.js.map → p-DVsGfz7J.js.map} +1 -1
  91. package/dist/components/{p--STJbKuN.js → p-DYsRXun3.js} +2 -2
  92. package/dist/components/{p-BYeG0b5N.js → p-DZLtFn-r.js} +2 -2
  93. package/dist/components/{p-B0BQCVkq.js → p-D_iZPukF.js} +2 -2
  94. package/dist/components/p-Da3aFRk2.js +2 -0
  95. package/dist/components/p-Da3aFRk2.js.map +1 -0
  96. package/dist/components/{p-BK_4OHJO.js → p-Df9S0aWi.js} +2 -2
  97. package/dist/components/{p-YDMY8T0d.js → p-a-cIN_BX.js} +2 -2
  98. package/dist/components/{p-YDMY8T0d.js.map → p-a-cIN_BX.js.map} +1 -1
  99. package/dist/components/{p-C_9VGgPf.js → p-bQE1NZVe.js} +2 -2
  100. package/dist/components/{p-CcZSzCfs.js → p-sDm8BEMy.js} +2 -2
  101. package/dist/docs/components.json +417 -74
  102. package/dist/lint/index.js +1 -1
  103. package/dist/mcp-data/registry/button-filled.json +1 -1
  104. package/dist/mcp-data/registry/map-entity-marker.json +5 -5
  105. package/dist/mcp-data/registry/registry.json +52 -5
  106. package/dist/mcp-data/registry/select.json +54 -3
  107. package/dist/mcp-data/registry/table.json +138 -12
  108. package/dist/react/ds-table.d.ts +3 -1
  109. package/dist/react/ds-table.js +2 -0
  110. package/dist/styles/table.css +399 -8
  111. package/dist/types/components/MapEntityMarker/MapEntityMarker.d.ts +1 -1
  112. package/dist/types/components/Select/Select.d.ts +6 -0
  113. package/dist/types/components/Table/Table.d.ts +35 -0
  114. package/dist/types/components/Table/index.d.ts +1 -1
  115. package/dist/types/components/Table/table-body-renderer.d.ts +1 -0
  116. package/dist/types/components/Table/table-cell-editor.d.ts +4 -0
  117. package/dist/types/components/Table/table-grid-model.d.ts +23 -0
  118. package/dist/types/components/Table/table-layout-controller.d.ts +1 -0
  119. package/dist/types/components/Table/table-review-fixtures.d.ts +10 -0
  120. package/dist/types/components/Table/table-row-view.d.ts +11 -2
  121. package/dist/types/components/Table/table-skeleton-view.d.ts +3 -1
  122. package/dist/types/components/Table/table-structure.d.ts +38 -0
  123. package/dist/types/components/Table/table-types.d.ts +71 -1
  124. package/dist/types/components/Table/table-virtual-controller.d.ts +1 -0
  125. package/dist/types/components.d.ts +80 -4
  126. package/dist/types/utils/select-controller.d.ts +1 -0
  127. package/dist/vue/ds-select.js +3 -0
  128. package/dist/vue/ds-table.js +8 -0
  129. package/package.json +1 -1
  130. package/dist/components/p-buM-T4vF.js +0 -2
  131. package/dist/components/p-buM-T4vF.js.map +0 -1
  132. package/dist/components/p-dUti7zhW.js +0 -2
  133. /package/dist/components/{p-YYiDYQhS.js.map → p--VQc5GDy.js.map} +0 -0
  134. /package/dist/components/{p-LENgfPDe.js.map → p-7MwoWtTJ.js.map} +0 -0
  135. /package/dist/components/{p-CXGjCWSh.js.map → p-BfVMaZZE.js.map} +0 -0
  136. /package/dist/components/{p-wRhYxngW.js.map → p-BlbfbYg6.js.map} +0 -0
  137. /package/dist/components/{p-PtxCwf5S.js.map → p-BuDxlhnQ.js.map} +0 -0
  138. /package/dist/components/{p-BkvAqrXg.js.map → p-C1ZfBbJ_.js.map} +0 -0
  139. /package/dist/components/{p-BcpIK9S6.js.map → p-C35Tki38.js.map} +0 -0
  140. /package/dist/components/{p-jwVzQaTZ.js.map → p-C378wwRj.js.map} +0 -0
  141. /package/dist/components/{p-B6TX55c5.js.map → p-C9H-3JOA.js.map} +0 -0
  142. /package/dist/components/{p-COD1C3Gj.js.map → p-CNeDJTGX.js.map} +0 -0
  143. /package/dist/components/{p-D7wLvTHz.js.map → p-CcwxySms.js.map} +0 -0
  144. /package/dist/components/{p-DQfKS7dz.js.map → p-D9_iDlkT.js.map} +0 -0
  145. /package/dist/components/{p-DkxhNqT-.js.map → p-DPwptvZl.js.map} +0 -0
  146. /package/dist/components/{p--STJbKuN.js.map → p-DYsRXun3.js.map} +0 -0
  147. /package/dist/components/{p-BYeG0b5N.js.map → p-DZLtFn-r.js.map} +0 -0
  148. /package/dist/components/{p-B0BQCVkq.js.map → p-D_iZPukF.js.map} +0 -0
  149. /package/dist/components/{p-BK_4OHJO.js.map → p-Df9S0aWi.js.map} +0 -0
  150. /package/dist/components/{p-C_9VGgPf.js.map → p-bQE1NZVe.js.map} +0 -0
  151. /package/dist/components/{p-CcZSzCfs.js.map → p-sDm8BEMy.js.map} +0 -0
@@ -3,10 +3,12 @@
3
3
  * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
4
4
  */
5
5
  import type { EventName, StencilReactComponent } from './react-runtime.js';
6
- import { type DataFieldsConfigChangeDetail, type DataSortChangeDetail, type DsTableCustomEvent, type PaginationChangeDetail, type TableCellActionDetail, type TableDataModeChangeDetail, type TableGroupCollapseChangeDetail, type TableGroupLoadMoreDetail, type TableLoadMoreDetail, type TableRowActivateDetail, type TableSelectionChangeDetail } from "@ds-mo/ui";
6
+ import { type DataFieldsConfigChangeDetail, type DataSortChangeDetail, type DsTableCustomEvent, type PaginationChangeDetail, type TableCellActionDetail, type TableCellRange, type TableCellsChangeDetail, type TableDataModeChangeDetail, type TableGroupCollapseChangeDetail, type TableGroupLoadMoreDetail, type TableLoadMoreDetail, type TableRowActivateDetail, type TableSelectionChangeDetail } from "@ds-mo/ui";
7
7
  import type { Components } from "@ds-mo/ui/dist/components";
8
8
  import { DsTable as DsTableElement } from "@ds-mo/ui/dist/components/ds-table.js";
9
9
  export type DsTableEvents = {
10
+ onDsCellRangeChange: EventName<DsTableCustomEvent<TableCellRange>>;
11
+ onDsCellsChange: EventName<DsTableCustomEvent<TableCellsChangeDetail>>;
10
12
  onDsCustomizeOptionChange: EventName<DsTableCustomEvent<string>>;
11
13
  onDsSortChange: EventName<DsTableCustomEvent<DataSortChangeDetail>>;
12
14
  onDsGroupCollapseChange: EventName<DsTableCustomEvent<TableGroupCollapseChangeDetail>>;
@@ -8,6 +8,8 @@ export const DsTable = /*@__PURE__*/ createComponent({
8
8
  // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
9
9
  react: React,
10
10
  events: {
11
+ onDsCellRangeChange: 'dsCellRangeChange',
12
+ onDsCellsChange: 'dsCellsChange',
11
13
  onDsCustomizeOptionChange: 'dsCustomizeOptionChange',
12
14
  onDsSortChange: 'dsSortChange',
13
15
  onDsGroupCollapseChange: 'dsGroupCollapseChange',
@@ -45,6 +45,7 @@
45
45
  --_table-border-strong: var(--ds-table-border-strong, var(--color-border-secondary));
46
46
  --_table-radius: var(--ds-table-radius, var(--ds-radius-table, var(--dimension-radius-050)));
47
47
  --_table-header-min-block-size: var(--ds-table-header-min-block-size, var(--dimension-size-400));
48
+ --_table-head-block-size: var(--_table-header-min-block-size);
48
49
  --_table-row-min-block-size: var(--ds-table-row-min-block-size, var(--dimension-size-500));
49
50
  --_table-cell-padding-block: var(--ds-table-cell-padding-block, var(--dimension-space-100));
50
51
  --_table-cell-padding-inline: var(--ds-table-cell-padding-inline, var(--dimension-space-100));
@@ -459,8 +460,8 @@
459
460
  position: sticky;
460
461
  inset-block-start: var(--ds-table-sticky-header-offset, 0);
461
462
  z-index: 6;
462
- block-size: var(--_table-header-min-block-size);
463
- margin-block-end: calc(-1 * var(--_table-header-min-block-size));
463
+ block-size: var(--_table-head-block-size);
464
+ margin-block-end: calc(-1 * var(--_table-head-block-size));
464
465
  max-inline-size: 100%;
465
466
  overflow: hidden;
466
467
  border-radius: var(--_table-radius) var(--_table-radius) 0 0;
@@ -497,7 +498,7 @@
497
498
  }
498
499
 
499
500
  :where(.ds-table--contained-sticky-header .ds-table__sticky-group) {
500
- inset-block-start: var(--_table-header-min-block-size);
501
+ inset-block-start: var(--_table-head-block-size);
501
502
  transform: translateY(var(--_table-sticky-group-push, 0));
502
503
  will-change: transform;
503
504
  }
@@ -511,7 +512,7 @@
511
512
  }
512
513
 
513
514
  :where(.ds-table__sticky-header-table) {
514
- block-size: var(--_table-header-min-block-size);
515
+ block-size: var(--_table-head-block-size);
515
516
  transform: translate3d(calc(-1 * var(--ds-table-inline-scroll-offset, 0px)), 0, 0);
516
517
  will-change: transform;
517
518
  }
@@ -661,7 +662,9 @@
661
662
  border-inline-start: 0;
662
663
  }
663
664
 
664
- :where(.ds-table__header-cell + .ds-table__header-cell)::before {
665
+ /* Row-spanned lanes break DOM adjacency; pinned edges below still own their divider. */
666
+ :where(.ds-table__header-cell + .ds-table__header-cell)::before,
667
+ :where(.ds-table__header-cell--after-rowspan)::before {
665
668
  content: '';
666
669
  position: absolute;
667
670
  inset: 0;
@@ -1244,6 +1247,10 @@
1244
1247
 
1245
1248
  :where(.ds-table__row--disabled) {
1246
1249
  color: var(--color-foreground-tertiary);
1250
+ }
1251
+
1252
+ :where(.ds-table__row--disabled .ds-table__cell-content),
1253
+ :where(.ds-table__cell[data-cell-editable='false'] .ds-table__cell-content) {
1247
1254
  opacity: var(--effect-opacity-medium);
1248
1255
  }
1249
1256
 
@@ -1266,11 +1273,11 @@
1266
1273
  }
1267
1274
 
1268
1275
  :where(.ds-table__cell--sticky-start) {
1269
- inset-inline-start: 0;
1276
+ inset-inline-start: var(--_table-pin-offset, 0);
1270
1277
  }
1271
1278
 
1272
1279
  :where(.ds-table__cell--sticky-end) {
1273
- inset-inline-end: 0;
1280
+ inset-inline-end: var(--_table-pin-offset, 0);
1274
1281
  }
1275
1282
 
1276
1283
  :where(.ds-table__header-cell.ds-table__cell--sticky-start),
@@ -1391,7 +1398,7 @@
1391
1398
  /* Each real section owns one sticky row and its own push-off boundary. */
1392
1399
  :where(.ds-table--contained-sticky-header .ds-table__group-row--native-sticky) {
1393
1400
  position: sticky;
1394
- inset-block-start: var(--_table-header-min-block-size);
1401
+ inset-block-start: var(--_table-head-block-size);
1395
1402
  z-index: 5;
1396
1403
  }
1397
1404
 
@@ -1837,3 +1844,387 @@
1837
1844
  :where(.ds-table__cell-tag-separator) {
1838
1845
  flex: none;
1839
1846
  }
1847
+
1848
+ :where(.ds-table--super-headers) {
1849
+ --_table-head-block-size: calc(2 * var(--_table-header-min-block-size));
1850
+ }
1851
+
1852
+ :where(.ds-table__super-header-cell)::after {
1853
+ background: var(--_table-column-border);
1854
+ }
1855
+
1856
+ :where(.ds-table__header-cell--rowspan) {
1857
+ vertical-align: bottom;
1858
+ }
1859
+
1860
+ /* Share the body tracks across both header rows, including real row spans. */
1861
+ :where(.ds-table__table--native-group-sticky > .ds-table__head--multirow) {
1862
+ display: grid;
1863
+ grid-template-columns: var(--_table-grid-template-columns);
1864
+ grid-template-rows: repeat(2, var(--_table-header-min-block-size));
1865
+ }
1866
+ :where(.ds-table__table--native-group-sticky .ds-table__head--multirow > .ds-table__header-row) {
1867
+ display: contents;
1868
+ }
1869
+ :where(.ds-table__table--native-group-sticky .ds-table__header-cell--rowspan) {
1870
+ display: flex;
1871
+ flex-direction: column;
1872
+ justify-content: flex-end;
1873
+ }
1874
+
1875
+ :where(.ds-table__sticky-edge--internal)::after {
1876
+ display: none;
1877
+ }
1878
+
1879
+ /* A covered body lane breaks DOM adjacency with the preceding pinned checkbox. */
1880
+ :where(.ds-table__cell--after-covered) {
1881
+ --ds-interaction-group-divider-inline-start-width: var(--dimension-stroke-width-012);
1882
+ --ds-interaction-group-divider-inline-start-color: var(--_table-column-border);
1883
+ }
1884
+
1885
+ /* Move the complete content stack, never individual text, icon, tag or action tracks. */
1886
+ :where(.ds-table__cell[data-vertical-align='middle']) {
1887
+ vertical-align: middle;
1888
+ }
1889
+ :where(.ds-table__cell[data-vertical-align='bottom']) {
1890
+ vertical-align: bottom;
1891
+ }
1892
+ :where(.ds-table__table--native-group-sticky .ds-table__cell[data-vertical-align]) {
1893
+ display: flex;
1894
+ flex-direction: column;
1895
+ justify-content: flex-start;
1896
+ }
1897
+ :where(.ds-table__table--native-group-sticky .ds-table__cell[data-vertical-align='middle']) {
1898
+ justify-content: center;
1899
+ }
1900
+ :where(.ds-table__table--native-group-sticky .ds-table__cell[data-vertical-align='bottom']) {
1901
+ justify-content: flex-end;
1902
+ }
1903
+ :where(.ds-table__cell-highlight) {
1904
+ position: absolute;
1905
+ inset: 0;
1906
+ z-index: 3;
1907
+ pointer-events: none;
1908
+ outline: var(--dimension-stroke-width-050) solid
1909
+ var(--_table-cell-intent, var(--color-border-secondary));
1910
+ outline-offset: calc(-1 * var(--dimension-stroke-width-050));
1911
+ /* Clip only this decorative layer: a left-only outline without affecting
1912
+ * the cell's content, layout, keyboard focus ring, or pinned borders. */
1913
+ clip-path: inset(0 calc(100% - var(--dimension-stroke-width-050)) 0 0);
1914
+ }
1915
+ :where(.ds-table__cell[data-cell-highlight='brand']) {
1916
+ --_table-cell-intent: var(--color-border-bold-brand);
1917
+ }
1918
+ :where(.ds-table__cell[data-cell-highlight='negative']) {
1919
+ --_table-cell-intent: var(--color-border-bold-negative);
1920
+ }
1921
+ :where(.ds-table__cell[data-cell-highlight='positive']) {
1922
+ --_table-cell-intent: var(--color-border-bold-positive);
1923
+ }
1924
+ :where(.ds-table__cell[data-cell-highlight='warning']) {
1925
+ --_table-cell-intent: var(--color-border-bold-warning);
1926
+ }
1927
+ :where(.ds-table__cell[data-cell-highlight='caution']) {
1928
+ --_table-cell-intent: var(--color-border-bold-caution);
1929
+ }
1930
+ :where(.ds-table__cell[data-cell-borders~='start']) {
1931
+ border-inline-start: var(--dimension-stroke-width-012) solid var(--_table-border-strong);
1932
+ }
1933
+ :where(.ds-table__cell[data-cell-borders~='end']) {
1934
+ border-inline-end: var(--dimension-stroke-width-012) solid var(--_table-border-strong);
1935
+ }
1936
+ :where(.ds-table__cell[data-cell-borders~='top']) {
1937
+ border-block-start: var(--dimension-stroke-width-012) solid var(--_table-border-strong);
1938
+ }
1939
+ :where(.ds-table__cell[data-cell-borders~='bottom']) {
1940
+ border-block-end: var(--dimension-stroke-width-012) solid var(--_table-border-strong);
1941
+ }
1942
+ :where(.ds-table__cell-flag) {
1943
+ display: flex;
1944
+ align-items: center;
1945
+ justify-content: center;
1946
+ flex: none;
1947
+ min-block-size: var(--_table-cell-track-min-block-size);
1948
+ inline-size: var(--_table-cell-track-min-block-size);
1949
+ margin-inline-start: var(--dimension-space-050);
1950
+ }
1951
+ :where(.ds-table__card-label) {
1952
+ display: none;
1953
+ }
1954
+ :where(.ds-table__card-field-divider),
1955
+ :where(.ds-table__card-action-divider) {
1956
+ display: none;
1957
+ }
1958
+
1959
+ /* Keep every field reachable when pinned lanes consume the complete viewport. */
1960
+ :where(.ds-table__frame[data-pins-crowded='true'] .ds-table__cell--sticky-start),
1961
+ :where(.ds-table__frame[data-pins-crowded='true'] .ds-table__cell--sticky-end) {
1962
+ --ds-interaction-position: relative;
1963
+ position: relative;
1964
+ inset-inline: auto;
1965
+ transform: none;
1966
+ animation: none;
1967
+ }
1968
+ :where(.ds-table__frame[data-pins-crowded='true'] .ds-table__sticky-edge)::after {
1969
+ display: none;
1970
+ }
1971
+
1972
+ /* A single semantic table and the same controls survive the layout switch. */
1973
+ :where(.ds-table--cards-active > .ds-table__caption-bar),
1974
+ :where(.ds-table--cards-active > .ds-table__footer),
1975
+ :where(.ds-table--cards-active .ds-table__frame),
1976
+ :where(.ds-table--cards-active .ds-table__viewport) {
1977
+ border-radius: 0;
1978
+ }
1979
+ :where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__table) {
1980
+ display: block;
1981
+ box-sizing: border-box;
1982
+ min-inline-size: 0;
1983
+ padding: var(--dimension-space-200) var(--dimension-space-200) 0;
1984
+ }
1985
+ :where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__head),
1986
+ :where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__body) {
1987
+ display: block;
1988
+ }
1989
+ :where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__head) {
1990
+ /* Keep static semantic column labels, but no visible or focusable header UI. */
1991
+ position: absolute;
1992
+ inline-size: var(--dimension-stroke-width-012);
1993
+ block-size: var(--dimension-stroke-width-012);
1994
+ overflow: hidden;
1995
+ clip-path: inset(50%);
1996
+ pointer-events: none;
1997
+ }
1998
+ :where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__row) {
1999
+ display: grid;
2000
+ position: relative;
2001
+ /* WebKit can retain the table-row intrinsic size after changing to a card,
2002
+ * clipping visible fields and skipping the absolutely positioned checkbox.
2003
+ * Bounded datasets still use the existing recycled row window. */
2004
+ content-visibility: visible;
2005
+ contain-intrinsic-block-size: none;
2006
+ box-sizing: border-box;
2007
+ grid-template-columns: minmax(0, 1fr);
2008
+ margin-block-end: var(--dimension-space-200);
2009
+ padding: var(--dimension-space-100) var(--dimension-space-050);
2010
+ border: var(--dimension-stroke-width-012) solid var(--_table-column-border);
2011
+ border-radius: var(--ds-radius-card);
2012
+ isolation: isolate;
2013
+ }
2014
+ :where(.ds-table--cards-active .ds-table__row)::before,
2015
+ :where(.ds-table--cards-active .ds-table__row)::after {
2016
+ content: '';
2017
+ position: absolute;
2018
+ inset: 0;
2019
+ border-radius: inherit;
2020
+ pointer-events: none;
2021
+ }
2022
+ :where(.ds-table--cards-active .ds-table__row)::before {
2023
+ z-index: 0;
2024
+ }
2025
+ :where(.ds-table--cards-active .ds-table__row)::after {
2026
+ z-index: 3;
2027
+ }
2028
+ :where(.ds-table--cards-active .ds-table__row--selected)::before {
2029
+ background: var(--_table-row-selected);
2030
+ }
2031
+ :where(.ds-table--cards-active .ds-table__row[data-surface-open='true'])::before {
2032
+ background: var(--_table-row-pressed);
2033
+ }
2034
+
2035
+ @media (hover: hover) and (pointer: fine) {
2036
+ :where(.ds-table--cards-active .ds-table__row--interactive:hover)::after {
2037
+ background: var(--_table-row-hover);
2038
+ }
2039
+ }
2040
+ :where(.ds-table--cards-active .ds-table__row--interactive:active)::after {
2041
+ background: var(--_table-row-pressed);
2042
+ }
2043
+ :where(.ds-table--cards-active .ds-table__cell)::before,
2044
+ :where(.ds-table--cards-active .ds-table__cell)::after {
2045
+ display: none;
2046
+ }
2047
+ :where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__cell),
2048
+ :where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__header-cell) {
2049
+ --ds-interaction-position: relative;
2050
+ display: block;
2051
+ position: relative;
2052
+ inset-inline: auto;
2053
+ inline-size: auto;
2054
+ max-inline-size: none;
2055
+ width: auto;
2056
+ max-width: none;
2057
+ block-size: auto;
2058
+ }
2059
+ :where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__card-label) {
2060
+ display: block;
2061
+ padding-inline: var(--_table-cell-track-padding-inline);
2062
+ margin-block-end: var(--dimension-space-100);
2063
+ }
2064
+ :where(.ds-table--cards-active .ds-table__selection-cell),
2065
+ :where(.ds-table--cards-active .ds-table__cell--card-action) {
2066
+ --ds-interaction-position: absolute;
2067
+ --ds-interaction-z-index: 3;
2068
+ --ds-interaction-group-divider-width: 0;
2069
+ position: absolute;
2070
+ z-index: 3;
2071
+ inset-block-start: var(--dimension-space-100);
2072
+ inline-size: var(--_table-selection-column-inline-size);
2073
+ border: 0;
2074
+ background: transparent;
2075
+ }
2076
+ :where(.ds-table--cards-active .ds-table__selection-cell) {
2077
+ inset-inline-end: calc(
2078
+ var(--dimension-space-100) + var(--_table-card-action-count, 0) *
2079
+ var(--_table-selection-column-inline-size)
2080
+ );
2081
+ }
2082
+ :where(.ds-table--cards-active .ds-table__cell--card-action) {
2083
+ inset-inline-end: calc(
2084
+ var(--dimension-space-100) +
2085
+ (var(--_table-card-action-count, 1) - var(--_table-card-action-index, 0) - 1) *
2086
+ var(--_table-selection-column-inline-size)
2087
+ );
2088
+ }
2089
+ :where(.ds-table--cards-active .ds-table__cell--card-first) {
2090
+ padding-inline-end: calc(
2091
+ var(--dimension-space-100) + var(--_table-card-control-count, 0) *
2092
+ var(--_table-selection-column-inline-size)
2093
+ );
2094
+ }
2095
+ :where(.ds-table--cards-active .ds-table__card-field-divider) {
2096
+ display: block;
2097
+ position: absolute;
2098
+ inset-block-start: 0;
2099
+ inset-inline: calc(var(--_table-cell-padding-inline) + var(--_table-cell-track-padding-inline));
2100
+ block-size: var(--dimension-stroke-width-012);
2101
+ background: var(--_table-column-border);
2102
+ pointer-events: none;
2103
+ }
2104
+ :where(.ds-table--cards-active .ds-table__card-action-divider) {
2105
+ display: block;
2106
+ position: absolute;
2107
+ inset-inline-start: 0;
2108
+ inset-block-start: calc(var(--dimension-space-100) + var(--dimension-space-025));
2109
+ block-size: var(--dimension-size-250);
2110
+ inline-size: var(--dimension-stroke-width-012);
2111
+ background: var(--_table-column-border);
2112
+ pointer-events: none;
2113
+ }
2114
+ :where(.ds-table--cards-active .ds-table__cell--tag > .ds-table__cell-content),
2115
+ :where(.ds-table--cards-active .ds-table__cell--tags > .ds-table__cell-content),
2116
+ :where(.ds-table--cards-active .ds-table__cell--icon > .ds-table__cell-content),
2117
+ :where(.ds-table--cards-active .ds-table__cell--image > .ds-table__cell-content) {
2118
+ padding-inline: var(--_table-cell-track-padding-inline);
2119
+ }
2120
+ :where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__cell) {
2121
+ --ds-interaction-group-divider-inline-start-width: 0;
2122
+ --ds-interaction-group-divider-width: 0;
2123
+ border: 0;
2124
+ background: transparent;
2125
+ }
2126
+ :where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] colgroup),
2127
+ :where(
2128
+ .ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__elastic-spacer-cell
2129
+ ),
2130
+ :where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__sticky-edge) {
2131
+ display: none;
2132
+ }
2133
+ :where(.ds-table__cell[role='gridcell']:not([aria-selected='true']):focus) {
2134
+ outline: var(--dimension-stroke-width-025) solid var(--color-interaction-focus);
2135
+ outline-offset: calc(-1 * var(--dimension-stroke-width-025));
2136
+ }
2137
+
2138
+ @media (hover: hover) and (pointer: fine) {
2139
+ :where(
2140
+ .ds-table__cell[role='gridcell'][data-cell-editable='true']:not([aria-selected='true']):not(
2141
+ [data-cell-editing='true']
2142
+ ):hover
2143
+ ) {
2144
+ --ds-interaction-group-fill: var(--_table-row-hover);
2145
+ }
2146
+ }
2147
+ :where(
2148
+ .ds-table__cell[role='gridcell'][data-cell-editable='true']:not([aria-selected='true']):not(
2149
+ [data-cell-editing='true']
2150
+ ):active
2151
+ ) {
2152
+ --ds-interaction-group-fill: var(--_table-row-pressed);
2153
+ }
2154
+ :where(.ds-table__cell[data-cell-editable='false']) {
2155
+ --ds-interaction-group-fill: transparent;
2156
+ }
2157
+ :where(.ds-table__edit-trigger) {
2158
+ position: absolute;
2159
+ inset-block-start: var(--dimension-space-100);
2160
+ inset-inline-end: var(--dimension-space-100);
2161
+ z-index: 4;
2162
+ background: var(--_table-surface);
2163
+ border-radius: var(--ds-radius-control);
2164
+ opacity: 0;
2165
+ pointer-events: none;
2166
+ }
2167
+ :where(.ds-table__cell:focus-within .ds-table__edit-trigger) {
2168
+ opacity: 1;
2169
+ pointer-events: auto;
2170
+ }
2171
+
2172
+ @media (hover: hover) and (pointer: fine) {
2173
+ :where(.ds-table__cell:hover .ds-table__edit-trigger) {
2174
+ opacity: 1;
2175
+ pointer-events: auto;
2176
+ }
2177
+ }
2178
+
2179
+ @media (hover: none) {
2180
+ :where(.ds-table__edit-trigger) {
2181
+ opacity: 1;
2182
+ pointer-events: auto;
2183
+ }
2184
+ }
2185
+ :where(.ds-table__cell-editor) {
2186
+ box-sizing: border-box;
2187
+ flex: 1 0 auto;
2188
+ inline-size: calc(100% + var(--dimension-space-100));
2189
+ min-inline-size: 0;
2190
+ /* md control text starts 8px in; cancel 4px to preserve the table's 4px track inset.
2191
+ Its 32px frame similarly occupies the existing 24px track without growing the row. */
2192
+ margin: calc(-1 * var(--dimension-space-050));
2193
+ }
2194
+ :where(.ds-table__select-indicator) {
2195
+ flex: 0 0 auto;
2196
+ align-self: center;
2197
+ margin-inline-start: var(--dimension-space-050);
2198
+ margin-inline-end: var(--dimension-space-025);
2199
+ }
2200
+ /* Paint above the cell's interaction layers so the outline cannot be covered by dividers. */
2201
+ :where(.ds-table__cell[aria-selected='true'])::after,
2202
+ :where(.ds-table__cell[data-cell-editing='true'])::after {
2203
+ outline: var(--dimension-stroke-width-018) solid var(--color-border-bold-brand);
2204
+ outline-offset: calc(-1 * var(--dimension-stroke-width-018));
2205
+ }
2206
+
2207
+ @media (forced-colors: active) {
2208
+ :where(.ds-table__row--disabled .ds-table__cell-content),
2209
+ :where(.ds-table__cell[data-cell-editable='false'] .ds-table__cell-content) {
2210
+ opacity: 1;
2211
+ color: var(--ds-forced-color-disabled);
2212
+ }
2213
+ :where(.ds-table__card-field-divider) {
2214
+ border-block-start: var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);
2215
+ }
2216
+ :where(.ds-table__card-action-divider) {
2217
+ border-inline-start: var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);
2218
+ }
2219
+ :where(.ds-table__cell-highlight) {
2220
+ outline-color: var(--ds-forced-color-content);
2221
+ }
2222
+ :where(.ds-table__cell[role='gridcell']:focus) {
2223
+ outline-color: var(--ds-forced-color-selected);
2224
+ }
2225
+ :where(.ds-table__cell[aria-selected='true'])::after,
2226
+ :where(.ds-table__cell[data-cell-editing='true'])::after {
2227
+ outline: var(--dimension-stroke-width-018) solid var(--ds-forced-color-selected);
2228
+ outline-offset: calc(-1 * var(--dimension-stroke-width-018));
2229
+ }
2230
+ }
@@ -5,7 +5,7 @@ export declare class MapEntityMarker {
5
5
  label: string;
6
6
  /** Short visible identifier revealed on hover or keyboard focus. */
7
7
  caption: string;
8
- /** Canonical IcoMo icon name for the represented map entity. Immobilized state uses MapKey. */
8
+ /** Canonical IcoMo icon name for the represented map entity. Immobilized vehicles use MapKey. */
9
9
  icon: string;
10
10
  /** Semantic operating state that selects the marker background. */
11
11
  state: MapEntityMarkerState;
@@ -62,6 +62,8 @@ export declare class Select {
62
62
  popupAlign: SelectPopupAlign;
63
63
  /** Explicit collision owner; otherwise the nearest data-ds-overlay-boundary ancestor is used. */
64
64
  boundary: HTMLElement | undefined;
65
+ /** Optional popup positioning anchor; the trigger still owns focus and accessibility. */
66
+ anchor: HTMLElement | undefined;
65
67
  /** Shared inactive treatment; removes interaction and form submission. */
66
68
  isInactive: boolean;
67
69
  /** Replace the prefix with a loader and disable option interaction. */
@@ -79,6 +81,10 @@ export declare class Select {
79
81
  iconOnly: boolean;
80
82
  /** Show the surface-aware inset border, including focused and invalid strokes. */
81
83
  hasBorder: boolean;
84
+ /** Disable only when a containing surface owns hover and press feedback. */
85
+ hasInteractionFill: boolean;
86
+ /** Disable only when a containing surface supplies a visible focus indicator. */
87
+ hasFocusRing: boolean;
82
88
  /** Use a pill radius on the trigger. Popup chrome stays on the menu radius. */
83
89
  rounded: boolean;
84
90
  /** Optional trigger prefix icon name. */
@@ -1,4 +1,5 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
+ import type { TableCellSpan, TableCellRange, TableCellsChangeDetail } from './table-types';
2
3
  import type { PaginationChangeDetail } from '../Pagination/pagination-types';
3
4
  import type { MenuItemData } from '../Menu/menu-types';
4
5
  import type { TableCaptionVisibility, TableCellActionDetail, TableColumn, DataFieldsConfigChangeDetail, TableDataMode, TableDataModeChangeDetail, DataGroup, TableGroupCollapseChangeDetail, TableGroupLoadMoreDetail, DataGroupingState, TableLoadMoreDetail, TableLoadMoreMode, TablePaginationState, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode, DataSortChangeDetail, DataSortState } from './table-types';
@@ -6,6 +7,16 @@ export declare class Table {
6
7
  el: HTMLElement;
7
8
  /** Stable column definitions. Assign through JavaScript. */
8
9
  columns: TableColumn[];
10
+ /** Opt-in native card presentation below the 768px table container breakpoint. */
11
+ responsiveLayout: 'scroll' | 'cards';
12
+ /** Explicit report merges; invalid combinations leave the original cells visible. */
13
+ cellSpans: TableCellSpan[];
14
+ /** Table is read-only; edit uses per-cell pencil buttons; grid adds cell selection and keyboard navigation. Grouped tables remain read-only. */
15
+ interactionMode: 'table' | 'edit' | 'grid';
16
+ /** Controlled rectangular cell selection, independent of row checkbox selection. */
17
+ cellRange: TableCellRange | null;
18
+ dsCellRangeChange: EventEmitter<TableCellRange>;
19
+ dsCellsChange: EventEmitter<TableCellsChangeDetail>;
9
20
  /** Additional toggle options in the column customizer. */
10
21
  customizeOptions: MenuItemData[];
11
22
  dsCustomizeOptionChange: EventEmitter<string>;
@@ -150,6 +161,7 @@ export declare class Table {
150
161
  private actionMenuSurface;
151
162
  private truncateTooltipLabel;
152
163
  private captionCompact;
164
+ private narrowViewport;
153
165
  private columnCustomizerOpen;
154
166
  private columnCustomizerSurfaceOpen;
155
167
  private columnCustomizerInitialFocusVisible;
@@ -157,13 +169,35 @@ export declare class Table {
157
169
  private dataModeSwitcherSurfaceOpen;
158
170
  private dataModeSwitcherInitialFocusVisible;
159
171
  private virtualWindow;
172
+ private activeCell;
173
+ private editingCell;
174
+ private editDraft;
175
+ private gridModelCache?;
176
+ private get gridEnabled();
177
+ private get editingEnabled();
178
+ private get gridModel();
179
+ private gridAddress;
180
+ private selectCell;
181
+ private focusCell;
182
+ private isEditableAddress;
183
+ private beginCellEdit;
184
+ private handleGridKeyDown;
185
+ private handleGridClipboard;
186
+ private renderCellEditor;
187
+ private renderCellEditTrigger;
188
+ private gridCellAttributes;
160
189
  private readonly actionMenuElementId;
190
+ private structureCache?;
191
+ private get structure();
192
+ private headerId;
193
+ private columnBandId;
161
194
  private readonly columnCustomizerElementId;
162
195
  private readonly dataModeSwitcherElementId;
163
196
  private truncateTooltipEl?;
164
197
  private truncateAnchor;
165
198
  private truncateTooltipBound;
166
199
  private focusedRowId;
200
+ private virtualRenderFocus;
167
201
  private virtualItems;
168
202
  private visibleColumnsCache;
169
203
  private renderModelCache;
@@ -200,6 +234,7 @@ export declare class Table {
200
234
  private readonly viewportFitController;
201
235
  componentWillLoad(): void;
202
236
  componentDidLoad(): void;
237
+ componentWillRender(): void;
203
238
  componentDidRender(): void;
204
239
  /**
205
240
  * Scroll the nearest vertical owner only enough to reveal a supplied row.
@@ -1,2 +1,2 @@
1
- export type { TableCaptionVisibility, TableCellAlign, TableCellAction, TableCellActionDetail, TableCellActionDivider, TableCellActionMenuEntry, TableCellActionMenuItem, TableCellBlank, TableCellEmpty, TableCellLinkTarget, TableCellIcon, TableCellIconText, TableCellScoreText, TableCellImage, TableCellImageTracks, TableCellPrimaryText, TableCellSkeleton, TableCellText, TableCellTextRun, TableCellTextTrack, TableCellTag, TableCellTagItem, TableCellTags, TableCellTagVariant, TableCellValue, TableSkeletonWidth, TableColumn, DataFieldsConfigChangeDetail, TableColumnSticky, TableColumnWidth, TableDataMode, TableDataModeChangeDetail, DataGroup, TableGroupAccessory, TableGroupHero, TableGroupCollapseChangeDetail, TableGroupLoadMoreDetail, TableGroupIntent, TableHeaderSegment, DataGroupingState, TableLoadMoreDetail, TableLoadMoreMode, TableLoadMoreReason, TablePaginationState, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode, DataSortChangeDetail, DataSortDirection, DataSortState, } from './table-types';
1
+ export type { TableCellEditor, TableCellDecoration, TableCellSpan, TableCellAddress, TableCellRange, TableCellsChangeDetail, TableCaptionVisibility, TableCellAlign, TableCellAction, TableCellActionDetail, TableCellActionDivider, TableCellActionMenuEntry, TableCellActionMenuItem, TableCellBlank, TableCellEmpty, TableCellLinkTarget, TableCellIcon, TableCellIconText, TableCellScoreText, TableCellImage, TableCellImageTracks, TableCellPrimaryText, TableCellSkeleton, TableCellText, TableCellTextRun, TableCellTextTrack, TableCellTag, TableCellTagItem, TableCellTags, TableCellTagVariant, TableCellValue, TableSkeletonWidth, TableColumn, DataFieldsConfigChangeDetail, TableColumnSticky, TableColumnWidth, TableDataMode, TableDataModeChangeDetail, DataGroup, TableGroupAccessory, TableGroupHero, TableGroupCollapseChangeDetail, TableGroupLoadMoreDetail, TableGroupIntent, TableHeaderSegment, DataGroupingState, TableLoadMoreDetail, TableLoadMoreMode, TableLoadMoreReason, TablePaginationState, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode, DataSortChangeDetail, DataSortDirection, DataSortState, } from './table-types';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -6,6 +6,7 @@ export interface TableVirtualRowPoolState {
6
6
  nextSlot: number;
7
7
  }
8
8
  export interface TableBodyRenderOptions {
9
+ headerRowCount?: number;
9
10
  model: TableRenderModel;
10
11
  plan: TableVirtualPlan | null;
11
12
  rows: TableRow[];
@@ -0,0 +1,4 @@
1
+ import type { TableCellEditor } from './table-types';
2
+ /** Shared controls own field behavior; Table owns the draft, cell chrome and commit boundary. */
3
+ export declare function renderTableCellEditor(editor: TableCellEditor, value: string, ariaLabel: string, anchor: HTMLElement | undefined, change: (value: string) => void): any;
4
+ //# sourceMappingURL=table-cell-editor.d.ts.map
@@ -0,0 +1,23 @@
1
+ import type { TableCellAddress, TableCellRange, TableCellsChangeDetail, TableColumn, TableRow } from './table-types';
2
+ /** Snapshot-local index; arrow navigation and visible-cell range checks are constant time. */
3
+ export declare function tableGridModel(rows: TableRow[], columns: TableColumn[]): {
4
+ firstEditable: TableCellAddress | null;
5
+ rows: TableRow[];
6
+ columns: TableColumn[];
7
+ rowIndices: Map<string, number>;
8
+ columnIndices: Map<string, number>;
9
+ };
10
+ export type TableGridModel = ReturnType<typeof tableGridModel>;
11
+ /** Scan only on navigation, not render/scroll; read-only cells are never focus stops. */
12
+ export declare function tableNextEditable(model: TableGridModel, address: TableCellAddress, key: string, backwards?: boolean): TableCellAddress | null;
13
+ export declare function tableRangeBounds(model: TableGridModel, range: TableCellRange | null): {
14
+ firstRow: number;
15
+ lastRow: number;
16
+ firstColumn: number;
17
+ lastColumn: number;
18
+ } | null;
19
+ export declare function tableEditable(row: TableRow, column: TableColumn): boolean;
20
+ export declare function tableEditValue(text: string, column: TableColumn): string | number | null | undefined;
21
+ /** Plain TSV only, bounded and atomic: never partially apply invalid or read-only rectangles. */
22
+ export declare function tablePasteChanges(model: TableGridModel, address: TableCellAddress, text: string): TableCellsChangeDetail['changes'] | null;
23
+ //# sourceMappingURL=table-grid-model.d.ts.map
@@ -20,6 +20,7 @@ export interface TableLayoutControllerOptions {
20
20
  elements: () => TableLayoutElements;
21
21
  mode: () => TableLayoutMode;
22
22
  overflowChanged: (state: TableOverflowState) => void;
23
+ narrowChanged?: (narrow: boolean) => void;
23
24
  verticalEdgeWheel?: (deltaY: number) => boolean;
24
25
  }
25
26
  export interface TableLayoutMetricInput {
@@ -0,0 +1,10 @@
1
+ import type { TableColumn, TableRow } from './table-types';
2
+ export declare const REVIEW_COLUMNS: TableColumn[];
3
+ export declare function tableReviewRows(count?: number): TableRow[];
4
+ export declare const EDIT_COLUMNS: TableColumn[];
5
+ export declare const EDIT_ROWS: TableRow[];
6
+ export declare const FIELD_COLUMNS: TableColumn[];
7
+ export declare const FIELD_ROWS: TableRow[];
8
+ export declare const MERGE_COLUMNS: TableColumn[];
9
+ export declare const MERGE_ROWS: TableRow[];
10
+ //# sourceMappingURL=table-review-fixtures.d.ts.map