@ds-mo/ui 15.5.1 → 15.6.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 (250) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +46 -21
  4. package/dist/angular/ds-data-preferences.d.ts +1 -1
  5. package/dist/angular/ds-data-preferences.js +3 -3
  6. package/dist/angular/ds-menu.d.ts +7 -1
  7. package/dist/angular/ds-menu.js +5 -2
  8. package/dist/angular/ds-table.d.ts +1 -1
  9. package/dist/angular/ds-table.js +3 -3
  10. package/dist/components/THIRD-PARTY-NOTICES +1 -1
  11. package/dist/components/bundled-dependencies.json +1 -1
  12. package/dist/components/ds-agent-questionnaire.js +1 -1
  13. package/dist/components/ds-agent-response.js +1 -1
  14. package/dist/components/ds-banner.js +1 -1
  15. package/dist/components/ds-bar-nav.js +1 -1
  16. package/dist/components/ds-bar-page-title.js +1 -1
  17. package/dist/components/ds-bar-title.js +1 -1
  18. package/dist/components/ds-bar-workflow.js +1 -1
  19. package/dist/components/ds-button-unfilled.js +1 -1
  20. package/dist/components/ds-calendar.js +1 -1
  21. package/dist/components/ds-card-chart.js +1 -1
  22. package/dist/components/ds-card-overview.js +1 -1
  23. package/dist/components/ds-card-setting.js +1 -1
  24. package/dist/components/ds-code-block.js +1 -1
  25. package/dist/components/ds-data-customize.js +1 -1
  26. package/dist/components/ds-data-filter.js +1 -1
  27. package/dist/components/ds-data-group.js +1 -1
  28. package/dist/components/ds-data-preferences.js +1 -1
  29. package/dist/components/ds-data-preferences.js.map +1 -1
  30. package/dist/components/ds-data-saved-views.js +1 -1
  31. package/dist/components/ds-data-search.js +1 -1
  32. package/dist/components/ds-data-search.js.map +1 -1
  33. package/dist/components/ds-data-sort.js +1 -1
  34. package/dist/components/ds-filter-menu.js +1 -1
  35. package/dist/components/ds-input-date.js +1 -1
  36. package/dist/components/ds-input-time.js +1 -1
  37. package/dist/components/ds-input.js +1 -1
  38. package/dist/components/ds-markdown.js +1 -1
  39. package/dist/components/ds-menu.js +1 -1
  40. package/dist/components/ds-message-actions.js +1 -1
  41. package/dist/components/ds-message-composer.js +1 -1
  42. package/dist/components/ds-message-scroller.js +1 -1
  43. package/dist/components/ds-mobile-header.js +1 -1
  44. package/dist/components/ds-mobile-section-switcher.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-tool-header.js +1 -1
  50. package/dist/components/ds-panel-tool-search.js +1 -1
  51. package/dist/components/ds-panel-tools.js +1 -1
  52. package/dist/components/ds-select.js +1 -1
  53. package/dist/components/ds-shell-app.js +1 -1
  54. package/dist/components/ds-shell-tools.js +1 -1
  55. package/dist/components/ds-table.js +1 -1
  56. package/dist/components/ds-table.js.map +1 -1
  57. package/dist/components/ds-toast.js +1 -1
  58. package/dist/components/ds-toast.js.map +1 -1
  59. package/dist/components/ds-tooltip.js +1 -1
  60. package/dist/components/{p-sDm8BEMy.js → p-B-pkoIX9.js} +2 -2
  61. package/dist/components/{p-DYsRXun3.js → p-B3o9zn3Y.js} +2 -2
  62. package/dist/components/p-BR9Pjp15.js +2 -0
  63. package/dist/components/{p-CXlklL-0.js.map → p-BR9Pjp15.js.map} +1 -1
  64. package/dist/components/{p-CcwxySms.js → p-BZY40-pE.js} +2 -2
  65. package/dist/components/{p-BLeHHoVb.js → p-BqipGGua.js} +2 -2
  66. package/dist/components/{p-BuDxlhnQ.js → p-C6kUn-vb.js} +2 -2
  67. package/dist/components/p-CElsKlxj.js +2 -0
  68. package/dist/components/{p-CzdE3M3g.js.map → p-CElsKlxj.js.map} +1 -1
  69. package/dist/components/p-CIMyD_6H.js +2 -0
  70. package/dist/components/{p-C5BBIDVm.js.map → p-CIMyD_6H.js.map} +1 -1
  71. package/dist/components/{p-C35Tki38.js → p-CSxwWcwW.js} +2 -2
  72. package/dist/components/p-CUYLGe5d.js +2 -0
  73. package/dist/components/{p-D9_iDlkT.js.map → p-CUYLGe5d.js.map} +1 -1
  74. package/dist/components/{p-BlbfbYg6.js → p-CaFXrn_8.js} +2 -2
  75. package/dist/components/{p-DZLtFn-r.js → p-DObhRLBa.js} +2 -2
  76. package/dist/components/{p-bQE1NZVe.js → p-DP07JCed.js} +2 -2
  77. package/dist/components/p-DYGllrVT.js +2 -0
  78. package/dist/components/{p-CNeDJTGX.js.map → p-DYGllrVT.js.map} +1 -1
  79. package/dist/components/{p-C378wwRj.js → p-DYtVsnDS.js} +2 -2
  80. package/dist/components/p-DbW8S5qe.js +2 -0
  81. package/dist/components/p-DbW8S5qe.js.map +1 -0
  82. package/dist/components/p-DcxY_pdJ.js +2 -0
  83. package/dist/components/{p-Df9S0aWi.js.map → p-DcxY_pdJ.js.map} +1 -1
  84. package/dist/components/{p-C9H-3JOA.js → p-DdFeWC-e.js} +2 -2
  85. package/dist/components/p-DlCLfwP4.js +2 -0
  86. package/dist/components/p-DuCfCvPs.js +2 -0
  87. package/dist/components/p-DuCfCvPs.js.map +1 -0
  88. package/dist/components/{p-BYrBU_U9.js → p-HMDczkQf.js} +2 -2
  89. package/dist/components/p-HfZ1gI2q.js +2 -0
  90. package/dist/components/{p-Da3aFRk2.js.map → p-HfZ1gI2q.js.map} +1 -1
  91. package/dist/components/{p--VQc5GDy.js → p-KA8srEed.js} +2 -2
  92. package/dist/components/{p-BfVMaZZE.js → p-OJ5WeR05.js} +2 -2
  93. package/dist/components/p-Ouk6FCxc.js +2 -0
  94. package/dist/components/{p-a-cIN_BX.js.map → p-Ouk6FCxc.js.map} +1 -1
  95. package/dist/components/p-leZFu-cd.js +2 -0
  96. package/dist/components/{p-BuGlC5r8.js.map → p-leZFu-cd.js.map} +1 -1
  97. package/dist/components/{p-DPwptvZl.js → p-wXKIVUTn.js} +2 -2
  98. package/dist/components/p-xMBaOeKa.js +2 -0
  99. package/dist/components/p-xMBaOeKa.js.map +1 -0
  100. package/dist/docs/components.json +207 -29
  101. package/dist/lint/index.js +1 -1
  102. package/dist/mcp-data/registry/agent-activity.json +1 -1
  103. package/dist/mcp-data/registry/agent-questionnaire.json +1 -1
  104. package/dist/mcp-data/registry/agent-response.json +1 -1
  105. package/dist/mcp-data/registry/agent-source-list.json +1 -1
  106. package/dist/mcp-data/registry/agent-tool-call.json +1 -1
  107. package/dist/mcp-data/registry/attachment-list.json +1 -1
  108. package/dist/mcp-data/registry/avatar.json +1 -1
  109. package/dist/mcp-data/registry/badge.json +1 -1
  110. package/dist/mcp-data/registry/banner.json +1 -1
  111. package/dist/mcp-data/registry/bar-action.json +1 -1
  112. package/dist/mcp-data/registry/bar-nav.json +1 -1
  113. package/dist/mcp-data/registry/bar-page-title.json +1 -1
  114. package/dist/mcp-data/registry/bar-title.json +1 -1
  115. package/dist/mcp-data/registry/bar-workflow.json +1 -1
  116. package/dist/mcp-data/registry/breadcrumb.json +1 -1
  117. package/dist/mcp-data/registry/button-filled.json +1 -1
  118. package/dist/mcp-data/registry/button-inverted.json +1 -1
  119. package/dist/mcp-data/registry/button-unfilled.json +1 -1
  120. package/dist/mcp-data/registry/calendar.json +1 -1
  121. package/dist/mcp-data/registry/card-action-center.json +1 -1
  122. package/dist/mcp-data/registry/card-chart.json +1 -1
  123. package/dist/mcp-data/registry/card-navigation.json +1 -1
  124. package/dist/mcp-data/registry/card-overview.json +1 -1
  125. package/dist/mcp-data/registry/card-setting.json +1 -1
  126. package/dist/mcp-data/registry/card-settings-scope.json +1 -1
  127. package/dist/mcp-data/registry/chart-legend.json +1 -1
  128. package/dist/mcp-data/registry/chart.json +1 -1
  129. package/dist/mcp-data/registry/checkbox-group.json +1 -1
  130. package/dist/mcp-data/registry/checkbox.json +1 -1
  131. package/dist/mcp-data/registry/chip.json +1 -1
  132. package/dist/mcp-data/registry/code-block.json +1 -1
  133. package/dist/mcp-data/registry/conversation-list-item.json +1 -1
  134. package/dist/mcp-data/registry/conversation-list-section.json +1 -1
  135. package/dist/mcp-data/registry/conversation-list.json +1 -1
  136. package/dist/mcp-data/registry/data-customize.json +1 -1
  137. package/dist/mcp-data/registry/data-filter.json +1 -1
  138. package/dist/mcp-data/registry/data-group.json +1 -1
  139. package/dist/mcp-data/registry/data-preferences.json +22 -6
  140. package/dist/mcp-data/registry/data-saved-views.json +1 -1
  141. package/dist/mcp-data/registry/data-search.json +1 -1
  142. package/dist/mcp-data/registry/data-sort.json +1 -1
  143. package/dist/mcp-data/registry/data-toolbar.json +1 -1
  144. package/dist/mcp-data/registry/divider.json +1 -1
  145. package/dist/mcp-data/registry/empty-state.json +1 -1
  146. package/dist/mcp-data/registry/field.json +1 -1
  147. package/dist/mcp-data/registry/filter-menu.json +1 -1
  148. package/dist/mcp-data/registry/icon.json +1 -1
  149. package/dist/mcp-data/registry/inline-banner-settings.json +1 -1
  150. package/dist/mcp-data/registry/input-date.json +1 -1
  151. package/dist/mcp-data/registry/input-time.json +1 -1
  152. package/dist/mcp-data/registry/input.json +1 -1
  153. package/dist/mcp-data/registry/loader.json +1 -1
  154. package/dist/mcp-data/registry/map-cluster-marker.json +1 -1
  155. package/dist/mcp-data/registry/map-entity-marker.json +1 -1
  156. package/dist/mcp-data/registry/markdown.json +1 -1
  157. package/dist/mcp-data/registry/menu.json +31 -12
  158. package/dist/mcp-data/registry/message-actions.json +1 -1
  159. package/dist/mcp-data/registry/message-bubble.json +1 -1
  160. package/dist/mcp-data/registry/message-composer.json +1 -1
  161. package/dist/mcp-data/registry/message-scroller.json +1 -1
  162. package/dist/mcp-data/registry/message.json +1 -1
  163. package/dist/mcp-data/registry/mobile-bar-nav.json +1 -1
  164. package/dist/mcp-data/registry/mobile-header.json +1 -1
  165. package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
  166. package/dist/mcp-data/registry/mobile-sheet-nav.json +1 -1
  167. package/dist/mcp-data/registry/modal.json +1 -1
  168. package/dist/mcp-data/registry/pagination.json +1 -1
  169. package/dist/mcp-data/registry/panel-nav.json +1 -1
  170. package/dist/mcp-data/registry/panel-sub-nav.json +1 -1
  171. package/dist/mcp-data/registry/panel-tool-header.json +1 -1
  172. package/dist/mcp-data/registry/panel-tool-search.json +1 -1
  173. package/dist/mcp-data/registry/panel-tools.json +1 -1
  174. package/dist/mcp-data/registry/paper-texture.json +1 -1
  175. package/dist/mcp-data/registry/radio-tile.json +1 -1
  176. package/dist/mcp-data/registry/radio.json +1 -1
  177. package/dist/mcp-data/registry/registry.json +46 -21
  178. package/dist/mcp-data/registry/score.json +1 -1
  179. package/dist/mcp-data/registry/scroll-overlay.json +1 -1
  180. package/dist/mcp-data/registry/select.json +1 -1
  181. package/dist/mcp-data/registry/setting-row-checkbox.json +1 -1
  182. package/dist/mcp-data/registry/setting-row-radio.json +1 -1
  183. package/dist/mcp-data/registry/setting-row-toggle.json +1 -1
  184. package/dist/mcp-data/registry/shell-app.json +1 -1
  185. package/dist/mcp-data/registry/shell-page.json +1 -1
  186. package/dist/mcp-data/registry/shell-tools.json +1 -1
  187. package/dist/mcp-data/registry/skeleton.json +1 -1
  188. package/dist/mcp-data/registry/slider.json +1 -1
  189. package/dist/mcp-data/registry/swatch-picker.json +1 -1
  190. package/dist/mcp-data/registry/switch.json +1 -1
  191. package/dist/mcp-data/registry/tab-group.json +1 -1
  192. package/dist/mcp-data/registry/table.json +59 -19
  193. package/dist/mcp-data/registry/tag.json +1 -1
  194. package/dist/mcp-data/registry/text.json +1 -1
  195. package/dist/mcp-data/registry/textarea.json +1 -1
  196. package/dist/mcp-data/registry/time-picker.json +1 -1
  197. package/dist/mcp-data/registry/toast.json +1 -1
  198. package/dist/mcp-data/registry/tooltip-chart.json +1 -1
  199. package/dist/mcp-data/registry/tooltip.json +1 -1
  200. package/dist/mcp-data/registry/typing-indicator.json +1 -1
  201. package/dist/react/ds-menu.d.ts +2 -1
  202. package/dist/react/ds-menu.js +1 -0
  203. package/dist/styles/table.css +41 -0
  204. package/dist/types/components/DataPreferences/DataPreferences.d.ts +3 -0
  205. package/dist/types/components/Menu/Menu.d.ts +5 -1
  206. package/dist/types/components/Menu/menu-types.d.ts +36 -0
  207. package/dist/types/components/Table/Table.d.ts +11 -2
  208. package/dist/types/components/Table/index.d.ts +1 -1
  209. package/dist/types/components/Table/table-column-customizer.d.ts +23 -4
  210. package/dist/types/components/Table/table-layout-controller.d.ts +2 -1
  211. package/dist/types/components/Table/table-types.d.ts +3 -1
  212. package/dist/types/components.d.ts +42 -6
  213. package/dist/vue/ds-data-preferences.js +1 -0
  214. package/dist/vue/ds-menu.js +2 -0
  215. package/dist/vue/ds-table.js +2 -0
  216. package/package.json +3 -3
  217. package/dist/components/p-BuGlC5r8.js +0 -2
  218. package/dist/components/p-C5BBIDVm.js +0 -2
  219. package/dist/components/p-CE6MaXBg.js +0 -2
  220. package/dist/components/p-CE6MaXBg.js.map +0 -1
  221. package/dist/components/p-CNeDJTGX.js +0 -2
  222. package/dist/components/p-CXlklL-0.js +0 -2
  223. package/dist/components/p-CzdE3M3g.js +0 -2
  224. package/dist/components/p-D9_iDlkT.js +0 -2
  225. package/dist/components/p-Da3aFRk2.js +0 -2
  226. package/dist/components/p-Df9S0aWi.js +0 -2
  227. package/dist/components/p-DvGrsLgt.js +0 -2
  228. package/dist/components/p-DvGrsLgt.js.map +0 -1
  229. package/dist/components/p-a-cIN_BX.js +0 -2
  230. package/dist/components/p-aD5cw_m2.js +0 -2
  231. package/dist/components/p-aD5cw_m2.js.map +0 -1
  232. package/dist/components/p-kDZ0sEII.js +0 -2
  233. package/dist/components/p-t2Ebn8si.js +0 -2
  234. package/dist/components/p-t2Ebn8si.js.map +0 -1
  235. /package/dist/components/{p-sDm8BEMy.js.map → p-B-pkoIX9.js.map} +0 -0
  236. /package/dist/components/{p-DYsRXun3.js.map → p-B3o9zn3Y.js.map} +0 -0
  237. /package/dist/components/{p-CcwxySms.js.map → p-BZY40-pE.js.map} +0 -0
  238. /package/dist/components/{p-BLeHHoVb.js.map → p-BqipGGua.js.map} +0 -0
  239. /package/dist/components/{p-BuDxlhnQ.js.map → p-C6kUn-vb.js.map} +0 -0
  240. /package/dist/components/{p-C35Tki38.js.map → p-CSxwWcwW.js.map} +0 -0
  241. /package/dist/components/{p-BlbfbYg6.js.map → p-CaFXrn_8.js.map} +0 -0
  242. /package/dist/components/{p-DZLtFn-r.js.map → p-DObhRLBa.js.map} +0 -0
  243. /package/dist/components/{p-bQE1NZVe.js.map → p-DP07JCed.js.map} +0 -0
  244. /package/dist/components/{p-C378wwRj.js.map → p-DYtVsnDS.js.map} +0 -0
  245. /package/dist/components/{p-C9H-3JOA.js.map → p-DdFeWC-e.js.map} +0 -0
  246. /package/dist/components/{p-kDZ0sEII.js.map → p-DlCLfwP4.js.map} +0 -0
  247. /package/dist/components/{p-BYrBU_U9.js.map → p-HMDczkQf.js.map} +0 -0
  248. /package/dist/components/{p--VQc5GDy.js.map → p-KA8srEed.js.map} +0 -0
  249. /package/dist/components/{p-BfVMaZZE.js.map → p-OJ5WeR05.js.map} +0 -0
  250. /package/dist/components/{p-DPwptvZl.js.map → p-wXKIVUTn.js.map} +0 -0
@@ -435,7 +435,7 @@
435
435
  },
436
436
  "peerDependencies": {
437
437
  "required": [
438
- "@ds-mo/tokens ^6.6.1",
438
+ "@ds-mo/tokens ^6.7.0",
439
439
  "@ds-mo/icons ^8.1.1"
440
440
  ],
441
441
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
@@ -360,7 +360,7 @@
360
360
  },
361
361
  "peerDependencies": {
362
362
  "required": [
363
- "@ds-mo/tokens ^6.6.1",
363
+ "@ds-mo/tokens ^6.7.0",
364
364
  "@ds-mo/icons ^8.1.1"
365
365
  ],
366
366
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
@@ -675,7 +675,7 @@
675
675
  },
676
676
  "peerDependencies": {
677
677
  "required": [
678
- "@ds-mo/tokens ^6.6.1",
678
+ "@ds-mo/tokens ^6.7.0",
679
679
  "@ds-mo/icons ^8.1.1"
680
680
  ],
681
681
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
@@ -262,7 +262,7 @@
262
262
  },
263
263
  "peerDependencies": {
264
264
  "required": [
265
- "@ds-mo/tokens ^6.6.1",
265
+ "@ds-mo/tokens ^6.7.0",
266
266
  "@ds-mo/icons ^8.1.1"
267
267
  ],
268
268
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
@@ -335,7 +335,7 @@
335
335
  "complexPropertyNote": "Assign these non-primitive values as JavaScript properties: manager, swipeDirections.",
336
336
  "peerDependencies": {
337
337
  "required": [
338
- "@ds-mo/tokens ^6.6.1",
338
+ "@ds-mo/tokens ^6.7.0",
339
339
  "@ds-mo/icons ^8.1.1"
340
340
  ],
341
341
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
@@ -254,7 +254,7 @@
254
254
  "complexPropertyNote": "Assign these non-primitive values as JavaScript properties: items.",
255
255
  "peerDependencies": {
256
256
  "required": [
257
- "@ds-mo/tokens ^6.6.1",
257
+ "@ds-mo/tokens ^6.7.0",
258
258
  "@ds-mo/icons ^8.1.1"
259
259
  ],
260
260
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
@@ -386,7 +386,7 @@
386
386
  },
387
387
  "peerDependencies": {
388
388
  "required": [
389
- "@ds-mo/tokens ^6.6.1",
389
+ "@ds-mo/tokens ^6.7.0",
390
390
  "@ds-mo/icons ^8.1.1"
391
391
  ],
392
392
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
@@ -108,7 +108,7 @@
108
108
  },
109
109
  "peerDependencies": {
110
110
  "required": [
111
- "@ds-mo/tokens ^6.6.1",
111
+ "@ds-mo/tokens ^6.7.0",
112
112
  "@ds-mo/icons ^8.1.1"
113
113
  ],
114
114
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
@@ -3,13 +3,14 @@
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 DsMenuCustomEvent, type MenuItemData, type MenuReorderDetail } from "@ds-mo/ui";
6
+ import { type DsMenuCustomEvent, type MenuItemData, type MenuItemToggleDetail, type MenuReorderDetail } from "@ds-mo/ui";
7
7
  import type { Components } from "@ds-mo/ui/dist/components";
8
8
  import { DsMenu as DsMenuElement } from "@ds-mo/ui/dist/components/ds-menu.js";
9
9
  export type DsMenuEvents = {
10
10
  onDsClose: EventName<DsMenuCustomEvent<void>>;
11
11
  onDsAfterClose: EventName<DsMenuCustomEvent<void>>;
12
12
  onDsSelect: EventName<DsMenuCustomEvent<MenuItemData>>;
13
+ onDsItemToggle: EventName<DsMenuCustomEvent<MenuItemToggleDetail>>;
13
14
  onDsSwatchSelect: EventName<DsMenuCustomEvent<string>>;
14
15
  onDsReorder: EventName<DsMenuCustomEvent<MenuReorderDetail>>;
15
16
  };
@@ -11,6 +11,7 @@ export const DsMenu = /*@__PURE__*/ createComponent({
11
11
  onDsClose: 'dsClose',
12
12
  onDsAfterClose: 'dsAfterClose',
13
13
  onDsSelect: 'dsSelect',
14
+ onDsItemToggle: 'dsItemToggle',
14
15
  onDsSwatchSelect: 'dsSwatchSelect',
15
16
  onDsReorder: 'dsReorder'
16
17
  },
@@ -44,6 +44,7 @@
44
44
  --_table-sticky-border: var(--ds-table-sticky-border, var(--color-border-tertiary));
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
+ --_table-frame-inset: var(--ds-table-frame-inset, var(--dimension-space-200));
47
48
  --_table-header-min-block-size: var(--ds-table-header-min-block-size, var(--dimension-size-400));
48
49
  --_table-head-block-size: var(--_table-header-min-block-size);
49
50
  --_table-row-min-block-size: var(--ds-table-row-min-block-size, var(--dimension-size-500));
@@ -421,6 +422,42 @@
421
422
  border-end-end-radius: 0;
422
423
  }
423
424
 
425
+ :where(.ds-table--chrome-edge-to-edge > .ds-table__caption-bar),
426
+ :where(.ds-table--chrome-edge-to-edge > .ds-table__footer) {
427
+ border-radius: 0;
428
+ }
429
+
430
+ :where(.ds-table--chrome-edge-to-edge .ds-table__frame),
431
+ :where(.ds-table--chrome-edge-to-edge .ds-table__viewport) {
432
+ border-radius: var(--_table-radius);
433
+ }
434
+
435
+ :where(.ds-table--chrome-edge-to-edge .ds-table__frame) {
436
+ max-inline-size: none;
437
+ margin: var(--_table-frame-inset);
438
+ outline: var(--dimension-stroke-width-012) solid var(--_table-column-border);
439
+ outline-offset: 0;
440
+ }
441
+
442
+ :where(.ds-table--bounded.ds-table--chrome-edge-to-edge .ds-table__frame) {
443
+ block-size: auto;
444
+ }
445
+
446
+ :where(.ds-table--chrome-edge-to-edge > .ds-table__footer) {
447
+ position: relative;
448
+ border-block-start: 0;
449
+ }
450
+
451
+ :where(.ds-table--chrome-edge-to-edge > .ds-table__footer)::before {
452
+ content: '';
453
+ position: absolute;
454
+ inset-block-start: calc(-1 * var(--dimension-stroke-width-012));
455
+ inset-inline: 0;
456
+ block-size: var(--dimension-stroke-width-012);
457
+ background: var(--_table-column-border);
458
+ pointer-events: none;
459
+ }
460
+
424
461
  :where(.ds-table__selection-column) {
425
462
  inline-size: var(--_table-selection-column-inline-size);
426
463
  width: var(--_table-selection-column-inline-size);
@@ -1976,6 +2013,10 @@
1976
2013
  :where(.ds-table--cards-active .ds-table__viewport) {
1977
2014
  border-radius: 0;
1978
2015
  }
2016
+ :where(.ds-table--chrome-edge-to-edge.ds-table--cards-active .ds-table__frame) {
2017
+ margin: 0;
2018
+ outline: 0;
2019
+ }
1979
2020
  :where(.ds-table--responsive-cards .ds-table__frame[data-narrow='true'] .ds-table__table) {
1980
2021
  display: block;
1981
2022
  box-sizing: border-box;
@@ -38,6 +38,8 @@ export declare class DataPreferences {
38
38
  grouping: DataGroupingState | null;
39
39
  hiddenFieldIds: string[];
40
40
  fieldOrder: string[];
41
+ /** Controlled user-pinned table-column identities. Ignored for toggle-only catalogs. */
42
+ pinnedFieldIds: string[];
41
43
  /** Render shared content without its popup or trigger. */
42
44
  embedded: boolean;
43
45
  activeTab: PreferencesTab;
@@ -53,6 +55,7 @@ export declare class DataPreferences {
53
55
  dsFieldsConfigChange: EventEmitter<DataFieldsConfigChangeDetail>;
54
56
  /** Catalog rows as domain-neutral items, so a non-table catalog needs no column shape. */
55
57
  private catalogItems;
58
+ private customizeMenuSections;
56
59
  private open;
57
60
  private tab;
58
61
  private pos;
@@ -1,7 +1,7 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
2
  import { type ChoicePopupAnchorAlignment, type ControlSize } from '../../utils';
3
3
  import type { MenuAlign, MenuSide } from './menu-position';
4
- import { type MenuItemData, type MenuReorderDetail, type MenuSection } from './menu-types';
4
+ import { type MenuItemData, type MenuItemToggleDetail, type MenuReorderDetail, type MenuSection } from './menu-types';
5
5
  export type MenuSelectionMode = 'none' | 'single';
6
6
  export type MenuSize = ControlSize;
7
7
  export declare class Menu {
@@ -52,6 +52,8 @@ export declare class Menu {
52
52
  /** Emitted after the popup's exit motion is complete and its rendered content is removed. */
53
53
  dsAfterClose: EventEmitter<void>;
54
54
  dsSelect: EventEmitter<MenuItemData>;
55
+ /** Emitted when a row's separate trailing toggle requests a controlled state change. */
56
+ dsItemToggle: EventEmitter<MenuItemToggleDetail>;
55
57
  /** Emitted when a generic `swatch-picker` section option is chosen. */
56
58
  dsSwatchSelect: EventEmitter<string>;
57
59
  /** Emitted after a pointer drop or keyboard move; Menu never mutates item order. */
@@ -94,6 +96,8 @@ export declare class Menu {
94
96
  private get flatItems();
95
97
  /** Rich preference content is a non-modal dialog, not an ARIA action menu. */
96
98
  private get hasCompositeSections();
99
+ private sectionsHaveCompositeControls;
100
+ private sectionUsesInsetDivider;
97
101
  private cancelPositionRetry;
98
102
  private cancelLivePositionUpdate;
99
103
  /** Reposition after the current scroll/layout frame without hiding the open popup. */
@@ -8,6 +8,26 @@ export interface MenuItemTagData {
8
8
  contrast?: TagContrast;
9
9
  rounded?: boolean;
10
10
  }
11
+ export interface MenuItemTrailingToggleData {
12
+ /** Icon-only toggle glyph. */
13
+ icon: string;
14
+ /** Accessible name describing the requested state change. */
15
+ label: string;
16
+ /** Controlled toggle state. */
17
+ pressed: boolean;
18
+ /** Keep the toggle visible but unavailable. */
19
+ isInactive?: boolean;
20
+ }
21
+ export interface MenuItemActionData {
22
+ /** Stable action identity for consumer event handling. */
23
+ id: string;
24
+ /** Icon-only action glyph. */
25
+ icon: string;
26
+ /** Accessible name describing the action. */
27
+ label: string;
28
+ /** Keep the action visible but unavailable. */
29
+ isInactive?: boolean;
30
+ }
11
31
  export interface MenuItemData {
12
32
  label: string;
13
33
  value?: string;
@@ -26,6 +46,18 @@ export interface MenuItemData {
26
46
  switchValue?: boolean;
27
47
  /** Prefix a drag handle and allow pointer and keyboard reorder within the contiguous reorderable run. */
28
48
  reorderable?: boolean;
49
+ /** Keep the drag handle visible as an inactive alignment affordance when reordering is unavailable. */
50
+ reorderHandleInactive?: boolean;
51
+ /** Append a separate unfilled icon toggle after a decorative divider. */
52
+ trailingToggle?: MenuItemTrailingToggleData;
53
+ /** Append independent unfilled icon actions while the row owns the shared hover surface. */
54
+ trailingActions?: MenuItemActionData[];
55
+ }
56
+ export interface MenuItemToggleDetail {
57
+ item: MenuItemData;
58
+ pressed: boolean;
59
+ /** Identifies an independent trailing action; omitted for the legacy toggle control. */
60
+ action?: MenuItemActionData;
29
61
  }
30
62
  /** Next section item order after a pointer or keyboard reorder. */
31
63
  export interface MenuReorderDetail {
@@ -37,6 +69,10 @@ export interface MenuReorderDetail {
37
69
  }
38
70
  export interface MenuItemsSection {
39
71
  header?: string;
72
+ /** Secondary heading beneath a shared parent section heading. */
73
+ subheader?: string;
74
+ /** Separate this subsection from the previous one with an inset divider. */
75
+ insetDividerBefore?: boolean;
40
76
  items: MenuItemData[];
41
77
  }
42
78
  export interface MenuSwatchPickerSection {
@@ -2,13 +2,15 @@ import { EventEmitter } from '../../stencil-public-runtime';
2
2
  import type { TableCellSpan, TableCellRange, TableCellsChangeDetail } from './table-types';
3
3
  import type { PaginationChangeDetail } from '../Pagination/pagination-types';
4
4
  import type { MenuItemData } from '../Menu/menu-types';
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';
5
+ import type { TableCaptionVisibility, TableChromeLayout, TableCellActionDetail, TableColumn, DataFieldsConfigChangeDetail, TableDataMode, TableDataModeChangeDetail, DataGroup, TableGroupCollapseChangeDetail, TableGroupLoadMoreDetail, DataGroupingState, TableLoadMoreDetail, TableLoadMoreMode, TablePaginationState, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode, DataSortChangeDetail, DataSortState } from './table-types';
6
6
  export declare class Table {
7
7
  el: HTMLElement;
8
8
  /** Stable column definitions. Assign through JavaScript. */
9
9
  columns: TableColumn[];
10
- /** Opt-in native card presentation below the 768px table container breakpoint. */
10
+ /** Opt-in native card presentation below the 768px browser viewport breakpoint. */
11
11
  responsiveLayout: 'scroll' | 'cards';
12
+ /** Keep all table chrome contained, or let the caption and footer span edge to edge around an inset data frame. */
13
+ chromeLayout: TableChromeLayout;
12
14
  /** Explicit report merges; invalid combinations leave the original cells visible. */
13
15
  cellSpans: TableCellSpan[];
14
16
  /** Table is read-only; edit uses per-cell pencil buttons; grid adds cell selection and keyboard navigation. Grouped tables remain read-only. */
@@ -52,6 +54,8 @@ export declare class Table {
52
54
  hiddenFieldIds: string[];
53
55
  /** Controlled data-column identities in display order. Omitted ids append in catalog order. */
54
56
  fieldOrder: string[];
57
+ /** Controlled user-pinned data-column identities. Hidden columns retain their pin state. */
58
+ pinnedFieldIds: string[];
55
59
  /**
56
60
  * Optional result summary footer. When both `displayedCount` and `totalCount`
57
61
  * are finite numbers, infinite mode shows “Displaying {displayed} of {total}”.
@@ -226,6 +230,7 @@ export declare class Table {
226
230
  private fitObservedViewport;
227
231
  private fitObservedTable;
228
232
  private fitMeasurementPending;
233
+ private cardViewportQuery;
229
234
  private readonly bodyRenderer;
230
235
  private readonly layoutController;
231
236
  private readonly loadController;
@@ -244,6 +249,9 @@ export declare class Table {
244
249
  scrollRowIntoView(rowId: string): Promise<boolean>;
245
250
  connectedCallback(): void;
246
251
  disconnectedCallback(): void;
252
+ private readonly handleCardViewportChange;
253
+ private connectCardViewportQuery;
254
+ private disconnectCardViewportQuery;
247
255
  private syncHeaderSlotPresence;
248
256
  private connectHeaderSlotObserver;
249
257
  private syncFooterSlotPresence;
@@ -367,6 +375,7 @@ export declare class Table {
367
375
  private closeColumnCustomizer;
368
376
  private emitColumnsConfigChange;
369
377
  private handleColumnCustomizerReorder;
378
+ private handleColumnCustomizerAction;
370
379
  private handleColumnCustomizerSelect;
371
380
  render(): any;
372
381
  }
@@ -1,2 +1,2 @@
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';
1
+ export type { TableCellEditor, TableCellDecoration, TableCellSpan, TableCellAddress, TableCellRange, TableCellsChangeDetail, TableCaptionVisibility, TableChromeLayout, 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
@@ -1,9 +1,13 @@
1
- import type { MenuItemData } from '../Menu/menu-types';
1
+ import type { MenuItemData, MenuItemsSection } from '../Menu/menu-types';
2
2
  import type { TableColumn } from './table-types';
3
3
  export declare function nextTableColumnCustomizerElementId(): string;
4
4
  export declare function isTableActionColumn(column: TableColumn): boolean;
5
5
  export declare function tableColumnCustomizerLabel(column: TableColumn): string;
6
6
  export declare function tableDataColumns(columns: TableColumn[]): TableColumn[];
7
+ /** User-managed pinned ids. Fixed start/end columns remain column-owned. */
8
+ export declare function resolveTablePinnedFieldIds(columns: TableColumn[], pinnedFieldIds: string[] | undefined, fieldOrder?: string[]): string[];
9
+ /** Fixed-start, user-pinned, unpinned, then fixed-end data columns. */
10
+ export declare function resolveTableConfiguredColumnOrder(columns: TableColumn[], fieldOrder: string[] | undefined, pinnedFieldIds: string[] | undefined): string[];
7
11
  /** Data-column ids in display order. Unknown, duplicate, and action ids are ignored. */
8
12
  export declare function resolveTableColumnOrder(columns: TableColumn[], fieldOrder: string[] | undefined): string[];
9
13
  /**
@@ -15,6 +19,7 @@ export declare function resolveTableVisibleColumns(columns: TableColumn[], optio
15
19
  columnCustomizer?: boolean;
16
20
  hiddenFieldIds?: string[];
17
21
  fieldOrder?: string[];
22
+ pinnedFieldIds?: string[];
18
23
  }): TableColumn[];
19
24
  export declare function canToggleTableColumnHidden(columns: TableColumn[], hiddenFieldIds: string[] | undefined, fieldId: string): boolean;
20
25
  export declare function toggleTableColumnHidden(columns: TableColumn[], hiddenFieldIds: string[] | undefined, fieldId: string): string[];
@@ -26,8 +31,22 @@ export interface TableColumnCustomizerItem {
26
31
  visible: boolean;
27
32
  hideable: boolean;
28
33
  reorderable: boolean;
34
+ pinned: boolean;
35
+ pinnable: boolean;
29
36
  }
30
- export declare function tableColumnCustomizerItems(columns: TableColumn[], hiddenFieldIds: string[] | undefined, fieldOrder: string[] | undefined): TableColumnCustomizerItem[];
31
- /** Menu switch rows for the table-owned column customizer. */
32
- export declare function tableColumnCustomizerMenuItems(columns: TableColumn[], hiddenFieldIds: string[] | undefined, fieldOrder: string[] | undefined): MenuItemData[];
37
+ export declare function tableColumnCustomizerItems(columns: TableColumn[], hiddenFieldIds: string[] | undefined, fieldOrder: string[] | undefined, pinnedFieldIds?: string[] | undefined): TableColumnCustomizerItem[];
38
+ /** Menu action rows for the table-owned column customizer. */
39
+ export declare function tableColumnCustomizerMenuItems(columns: TableColumn[], hiddenFieldIds: string[] | undefined, fieldOrder: string[] | undefined, pinnedFieldIds?: string[] | undefined): MenuItemData[];
40
+ /** Column subgroups retain one parent heading while enforcing drag boundaries. */
41
+ export declare function tableColumnCustomizerSections(columns: TableColumn[], hiddenFieldIds: string[] | undefined, fieldOrder: string[] | undefined, pinnedFieldIds?: string[] | undefined): MenuItemsSection[];
42
+ export interface TableFieldsConfiguration {
43
+ hiddenFieldIds: string[];
44
+ fieldOrder: string[];
45
+ pinnedFieldIds: string[];
46
+ }
47
+ export declare function resolveTableFieldsConfiguration(columns: TableColumn[], hiddenFieldIds: string[] | undefined, fieldOrder: string[] | undefined, pinnedFieldIds: string[] | undefined): TableFieldsConfiguration;
48
+ /** Pin appends to the pinned block; unpinning inserts at the start of unpinned columns. */
49
+ export declare function toggleTableColumnPinned(columns: TableColumn[], hiddenFieldIds: string[] | undefined, fieldOrder: string[] | undefined, pinnedFieldIds: string[] | undefined, fieldId: string): TableFieldsConfiguration;
50
+ /** Apply a drag result to only its pinned or unpinned partition. */
51
+ export declare function reorderTableColumnPartition(columns: TableColumn[], hiddenFieldIds: string[] | undefined, fieldOrder: string[] | undefined, pinnedFieldIds: string[] | undefined, reorderedIds: string[]): TableFieldsConfiguration;
33
52
  //# sourceMappingURL=table-column-customizer.d.ts.map
@@ -20,9 +20,10 @@ export interface TableLayoutControllerOptions {
20
20
  elements: () => TableLayoutElements;
21
21
  mode: () => TableLayoutMode;
22
22
  overflowChanged: (state: TableOverflowState) => void;
23
- narrowChanged?: (narrow: boolean) => void;
24
23
  verticalEdgeWheel?: (deltaY: number) => boolean;
25
24
  }
25
+ export declare const TABLE_CARD_VIEWPORT_BREAKPOINT = 768;
26
+ export declare function isTableCardViewport(inlineSize: number): boolean;
26
27
  export interface TableLayoutMetricInput {
27
28
  viewportInlineSize: number;
28
29
  viewportBlockSize: number;
@@ -11,6 +11,7 @@ export type TableCellAlign = 'start' | 'center' | 'end';
11
11
  export type TableCellLinkTarget = '_self' | '_blank';
12
12
  export type TableColumnSticky = 'start' | 'end';
13
13
  export type TableCaptionVisibility = 'visible' | 'hidden';
14
+ export type TableChromeLayout = 'contained' | 'edge-to-edge';
14
15
  export type TableLoadMoreMode = 'auto' | 'manual';
15
16
  export type TableDataMode = 'infinite' | 'pagination' | 'virtual';
16
17
  export interface TableDataModeChangeDetail {
@@ -489,10 +490,11 @@ export interface TableGroupCollapseChangeDetail {
489
490
  export interface TableRowActivateDetail {
490
491
  rowId: string;
491
492
  }
492
- /** Controlled show/hide and data-column order for the table-owned customizer. */
493
+ /** Controlled visibility, display order, and user pinning for the table-owned customizer. */
493
494
  export interface DataFieldsConfigChangeDetail {
494
495
  hiddenFieldIds: string[];
495
496
  fieldOrder: string[];
497
+ pinnedFieldIds: string[];
496
498
  }
497
499
  /** Controlled top-level pagination state. Rows or groups contain only the active page. */
498
500
  export interface TablePaginationState extends PaginationState {
@@ -36,11 +36,11 @@ import { CheckboxGroupSize } from "./components/CheckboxGroup/CheckboxGroup";
36
36
  import { ChipSize, ChipState } from "./components/Chip/Chip";
37
37
  import { ChoicePopupAnchorAlignment, ControlInsetDepth as ControlInsetDepth1 } from "./utils";
38
38
  import { DataField } from "./utils/data-field";
39
- import { MenuItemData, MenuReorderDetail, MenuSection } from "./components/Menu/menu-types";
39
+ import { MenuItemData, MenuItemToggleDetail, MenuReorderDetail, MenuSection } from "./components/Menu/menu-types";
40
40
  import { DataCustomizeChangeDetail } from "./components/DataCustomize/DataCustomize";
41
41
  import { FilterMenuChangeDetail, FilterMenuFilter, FilterMenuMatchModeChangeDetail, FilterMenuMatchModes, FilterMenuValues } from "./components/FilterMenu/FilterMenu";
42
42
  import { DataGroupOption } from "./components/DataGroup/DataGroup";
43
- import { DataFieldsConfigChangeDetail, DataGroup, DataGroupingState, DataSortChangeDetail, DataSortState, TableCaptionVisibility, TableCellActionDetail, TableCellRange, TableCellsChangeDetail, TableCellSpan, TableColumn, TableDataMode, TableDataModeChangeDetail, TableGroupCollapseChangeDetail, TableGroupLoadMoreDetail, TableLoadMoreDetail, TableLoadMoreMode, TablePaginationState, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode } from "./components/Table/table-types";
43
+ import { DataFieldsConfigChangeDetail, DataGroup, DataGroupingState, DataSortChangeDetail, DataSortState, TableCaptionVisibility, TableCellActionDetail, TableCellRange, TableCellsChangeDetail, TableCellSpan, TableChromeLayout, TableColumn, TableDataMode, TableDataModeChangeDetail, TableGroupCollapseChangeDetail, TableGroupLoadMoreDetail, TableLoadMoreDetail, TableLoadMoreMode, TablePaginationState, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode } from "./components/Table/table-types";
44
44
  import { DataGroupOption as DataGroupOption1 } from "./components/DataGroup/DataGroup";
45
45
  import { PreferencesTab } from "./components/DataPreferences/DataPreferences";
46
46
  import { DataSavedView, DataSavedViewChangeDetail, DataSavedViewCreateDetail, DataSavedViewDiscardDetail, DataSavedViewRemoveDetail, DataSavedViewRenameDetail, DataSavedViewSaveDetail } from "./components/DataSavedViews/data-saved-views-types";
@@ -124,11 +124,11 @@ export { CheckboxGroupSize } from "./components/CheckboxGroup/CheckboxGroup";
124
124
  export { ChipSize, ChipState } from "./components/Chip/Chip";
125
125
  export { ChoicePopupAnchorAlignment, ControlInsetDepth as ControlInsetDepth1 } from "./utils";
126
126
  export { DataField } from "./utils/data-field";
127
- export { MenuItemData, MenuReorderDetail, MenuSection } from "./components/Menu/menu-types";
127
+ export { MenuItemData, MenuItemToggleDetail, MenuReorderDetail, MenuSection } from "./components/Menu/menu-types";
128
128
  export { DataCustomizeChangeDetail } from "./components/DataCustomize/DataCustomize";
129
129
  export { FilterMenuChangeDetail, FilterMenuFilter, FilterMenuMatchModeChangeDetail, FilterMenuMatchModes, FilterMenuValues } from "./components/FilterMenu/FilterMenu";
130
130
  export { DataGroupOption } from "./components/DataGroup/DataGroup";
131
- export { DataFieldsConfigChangeDetail, DataGroup, DataGroupingState, DataSortChangeDetail, DataSortState, TableCaptionVisibility, TableCellActionDetail, TableCellRange, TableCellsChangeDetail, TableCellSpan, TableColumn, TableDataMode, TableDataModeChangeDetail, TableGroupCollapseChangeDetail, TableGroupLoadMoreDetail, TableLoadMoreDetail, TableLoadMoreMode, TablePaginationState, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode } from "./components/Table/table-types";
131
+ export { DataFieldsConfigChangeDetail, DataGroup, DataGroupingState, DataSortChangeDetail, DataSortState, TableCaptionVisibility, TableCellActionDetail, TableCellRange, TableCellsChangeDetail, TableCellSpan, TableChromeLayout, TableColumn, TableDataMode, TableDataModeChangeDetail, TableGroupCollapseChangeDetail, TableGroupLoadMoreDetail, TableLoadMoreDetail, TableLoadMoreMode, TablePaginationState, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode } from "./components/Table/table-types";
132
132
  export { DataGroupOption as DataGroupOption1 } from "./components/DataGroup/DataGroup";
133
133
  export { PreferencesTab } from "./components/DataPreferences/DataPreferences";
134
134
  export { DataSavedView, DataSavedViewChangeDetail, DataSavedViewCreateDetail, DataSavedViewDiscardDetail, DataSavedViewRemoveDetail, DataSavedViewRenameDetail, DataSavedViewSaveDetail } from "./components/DataSavedViews/data-saved-views-types";
@@ -1774,6 +1774,11 @@ export namespace Components {
1774
1774
  * @default {}
1775
1775
  */
1776
1776
  "matchModes": FilterMenuMatchModes;
1777
+ /**
1778
+ * Controlled user-pinned table-column identities. Ignored for toggle-only catalogs.
1779
+ * @default []
1780
+ */
1781
+ "pinnedFieldIds": string[];
1777
1782
  /**
1778
1783
  * @default null
1779
1784
  */
@@ -4366,6 +4371,11 @@ export namespace Components {
4366
4371
  * @default []
4367
4372
  */
4368
4373
  "cellSpans": TableCellSpan[];
4374
+ /**
4375
+ * Keep all table chrome contained, or let the caption and footer span edge to edge around an inset data frame.
4376
+ * @default 'contained'
4377
+ */
4378
+ "chromeLayout": TableChromeLayout;
4369
4379
  /**
4370
4380
  * Replace opted-in table-owned caption controls with same-size visual skeletons.
4371
4381
  * @default false
@@ -4573,7 +4583,12 @@ export namespace Components {
4573
4583
  */
4574
4584
  "paginationModeLabel": string;
4575
4585
  /**
4576
- * Opt-in native card presentation below the 768px table container breakpoint.
4586
+ * Controlled user-pinned data-column identities. Hidden columns retain their pin state.
4587
+ * @default []
4588
+ */
4589
+ "pinnedFieldIds": string[];
4590
+ /**
4591
+ * Opt-in native card presentation below the 768px browser viewport breakpoint.
4577
4592
  * @default 'scroll'
4578
4593
  */
4579
4594
  "responsiveLayout": 'scroll' | 'cards';
@@ -6164,6 +6179,7 @@ declare global {
6164
6179
  "dsClose": void;
6165
6180
  "dsAfterClose": void;
6166
6181
  "dsSelect": MenuItemData;
6182
+ "dsItemToggle": MenuItemToggleDetail;
6167
6183
  "dsSwatchSelect": string;
6168
6184
  "dsReorder": MenuReorderDetail;
6169
6185
  }
@@ -8732,6 +8748,11 @@ declare namespace LocalJSX {
8732
8748
  "onDsGroupClear"?: (event: DsDataPreferencesCustomEvent<void>) => void;
8733
8749
  "onDsPreferencesTabChange"?: (event: DsDataPreferencesCustomEvent<PreferencesTab>) => void;
8734
8750
  "onDsSortChange"?: (event: DsDataPreferencesCustomEvent<DataSortChangeDetail>) => void;
8751
+ /**
8752
+ * Controlled user-pinned table-column identities. Ignored for toggle-only catalogs.
8753
+ * @default []
8754
+ */
8755
+ "pinnedFieldIds"?: string[];
8735
8756
  /**
8736
8757
  * @default null
8737
8758
  */
@@ -9658,6 +9679,10 @@ declare namespace LocalJSX {
9658
9679
  */
9659
9680
  "onDsAfterClose"?: (event: DsMenuCustomEvent<void>) => void;
9660
9681
  "onDsClose"?: (event: DsMenuCustomEvent<void>) => void;
9682
+ /**
9683
+ * Emitted when a row's separate trailing toggle requests a controlled state change.
9684
+ */
9685
+ "onDsItemToggle"?: (event: DsMenuCustomEvent<MenuItemToggleDetail>) => void;
9661
9686
  /**
9662
9687
  * Emitted after a pointer drop or keyboard move; Menu never mutates item order.
9663
9688
  */
@@ -11558,6 +11583,11 @@ declare namespace LocalJSX {
11558
11583
  * @default []
11559
11584
  */
11560
11585
  "cellSpans"?: TableCellSpan[];
11586
+ /**
11587
+ * Keep all table chrome contained, or let the caption and footer span edge to edge around an inset data frame.
11588
+ * @default 'contained'
11589
+ */
11590
+ "chromeLayout"?: TableChromeLayout;
11561
11591
  /**
11562
11592
  * Replace opted-in table-owned caption controls with same-size visual skeletons.
11563
11593
  * @default false
@@ -11778,7 +11808,12 @@ declare namespace LocalJSX {
11778
11808
  */
11779
11809
  "paginationModeLabel"?: string;
11780
11810
  /**
11781
- * Opt-in native card presentation below the 768px table container breakpoint.
11811
+ * Controlled user-pinned data-column identities. Hidden columns retain their pin state.
11812
+ * @default []
11813
+ */
11814
+ "pinnedFieldIds"?: string[];
11815
+ /**
11816
+ * Opt-in native card presentation below the 768px browser viewport breakpoint.
11782
11817
  * @default 'scroll'
11783
11818
  */
11784
11819
  "responsiveLayout"?: 'scroll' | 'cards';
@@ -13231,6 +13266,7 @@ declare namespace LocalJSX {
13231
13266
  }
13232
13267
  interface DsTableAttributes {
13233
13268
  "responsiveLayout": 'scroll' | 'cards';
13269
+ "chromeLayout": TableChromeLayout;
13234
13270
  "interactionMode": 'table' | 'edit' | 'grid';
13235
13271
  "caption": string;
13236
13272
  "captionVisibility": TableCaptionVisibility;
@@ -21,6 +21,7 @@ export const DsDataPreferences = /*@__PURE__*/ defineContainer('ds-data-preferen
21
21
  'grouping',
22
22
  'hiddenFieldIds',
23
23
  'fieldOrder',
24
+ 'pinnedFieldIds',
24
25
  'embedded',
25
26
  'activeTab',
26
27
  'label',
@@ -26,12 +26,14 @@ export const DsMenu = /*@__PURE__*/ defineContainer('ds-menu', defineDsMenu, [
26
26
  'dsClose',
27
27
  'dsAfterClose',
28
28
  'dsSelect',
29
+ 'dsItemToggle',
29
30
  'dsSwatchSelect',
30
31
  'dsReorder'
31
32
  ], [
32
33
  'dsClose',
33
34
  'dsAfterClose',
34
35
  'dsSelect',
36
+ 'dsItemToggle',
35
37
  'dsSwatchSelect',
36
38
  'dsReorder'
37
39
  ]);
@@ -6,6 +6,7 @@ import { defineCustomElement as defineDsTable } from '@ds-mo/ui/components/ds-ta
6
6
  export const DsTable = /*@__PURE__*/ defineContainer('ds-table', defineDsTable, [
7
7
  'columns',
8
8
  'responsiveLayout',
9
+ 'chromeLayout',
9
10
  'cellSpans',
10
11
  'interactionMode',
11
12
  'cellRange',
@@ -24,6 +25,7 @@ export const DsTable = /*@__PURE__*/ defineContainer('ds-table', defineDsTable,
24
25
  'hideColumnCustomizerTrigger',
25
26
  'hiddenFieldIds',
26
27
  'fieldOrder',
28
+ 'pinnedFieldIds',
27
29
  'displayedCount',
28
30
  'totalCount',
29
31
  'resultSummaryLabel',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ds-mo/ui",
3
- "version": "15.5.1",
3
+ "version": "15.6.0",
4
4
  "description": "CompoMo — composable web components styled with TokoMo design tokens",
5
5
  "keywords": [
6
6
  "web-components",
@@ -133,7 +133,7 @@
133
133
  "@angular/core": ">=19 <23",
134
134
  "@angular/forms": ">=19 <23",
135
135
  "@ds-mo/icons": "^8.1.1",
136
- "@ds-mo/tokens": "^6.6.1",
136
+ "@ds-mo/tokens": "^6.7.0",
137
137
  "@eslint/css": "^2.0.0",
138
138
  "eslint": "^10.7.0",
139
139
  "react": "^18 || ^19",
@@ -179,7 +179,7 @@
179
179
  "@csstools/css-tokenizer": "^4.0.0",
180
180
  "@csstools/media-query-list-parser": "^5.0.0",
181
181
  "@ds-mo/icons": "^8.1.1",
182
- "@ds-mo/tokens": "^6.6.1",
182
+ "@ds-mo/tokens": "^6.7.0",
183
183
  "@eslint/css": "^2.0.0",
184
184
  "@eslint/js": "^10.0.1",
185
185
  "@fontsource-variable/inter": "^5.3.0",