@multiplatform.one/table 7.4.1 → 7.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 (353) hide show
  1. package/dist/cjs/components/ChildTable/index.cjs +12 -3
  2. package/dist/cjs/components/ChildTable/index.native.js +14 -3
  3. package/dist/cjs/components/ChildTable/index.native.js.map +1 -1
  4. package/dist/cjs/components/ColumnHeaderFilter/index.cjs +11 -13
  5. package/dist/cjs/components/ColumnHeaderFilter/index.native.js +11 -16
  6. package/dist/cjs/components/ColumnHeaderFilter/index.native.js.map +1 -1
  7. package/dist/cjs/components/DataTable/DataTableCardControls.cjs +7 -4
  8. package/dist/cjs/components/DataTable/DataTableCardControls.native.js +7 -4
  9. package/dist/cjs/components/DataTable/DataTableCardControls.native.js.map +1 -1
  10. package/dist/cjs/components/DataTable/DataTableDocumentList.cjs +10 -4
  11. package/dist/cjs/components/DataTable/DataTableDocumentList.native.js +10 -4
  12. package/dist/cjs/components/DataTable/DataTableDocumentList.native.js.map +1 -1
  13. package/dist/cjs/components/DataTable/DataTableMobileCards.cjs +6 -1
  14. package/dist/cjs/components/DataTable/DataTableMobileCards.native.js +6 -1
  15. package/dist/cjs/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  16. package/dist/cjs/components/DataTable/DataTableRoot.cjs +55 -42
  17. package/dist/cjs/components/DataTable/DataTableRoot.native.js +55 -42
  18. package/dist/cjs/components/DataTable/DataTableRoot.native.js.map +1 -1
  19. package/dist/cjs/components/DataTable/DataTableVirtualized.cjs +5 -2
  20. package/dist/cjs/components/DataTable/DataTableVirtualized.native.js +5 -2
  21. package/dist/cjs/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  22. package/dist/cjs/components/DataTable/dataTableChrome.cjs +59 -0
  23. package/dist/cjs/components/DataTable/dataTableChrome.native.js +62 -0
  24. package/dist/cjs/components/DataTable/dataTableChrome.native.js.map +1 -0
  25. package/dist/cjs/components/DataTable/index.native.js +34 -20
  26. package/dist/cjs/components/DataTable/index.native.js.map +1 -1
  27. package/dist/cjs/components/DataTableBulkActions/index.cjs +6 -4
  28. package/dist/cjs/components/DataTableBulkActions/index.native.js +6 -4
  29. package/dist/cjs/components/DataTableBulkActions/index.native.js.map +1 -1
  30. package/dist/cjs/components/DataTableCell/CellModalEditor.cjs +9 -31
  31. package/dist/cjs/components/DataTableCell/CellModalEditor.native.js +2 -5
  32. package/dist/cjs/components/DataTableCell/CellModalEditor.native.js.map +1 -1
  33. package/dist/cjs/components/DataTableCell/CellOptionsEditor.cjs +0 -1
  34. package/dist/cjs/components/DataTableCell/CellOptionsEditor.native.js +0 -1
  35. package/dist/cjs/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
  36. package/dist/cjs/components/DataTableColumnPinning/index.cjs +7 -4
  37. package/dist/cjs/components/DataTableColumnPinning/index.native.js +7 -4
  38. package/dist/cjs/components/DataTableColumnPinning/index.native.js.map +1 -1
  39. package/dist/cjs/components/DataTableDateFilter/index.cjs +24 -22
  40. package/dist/cjs/components/DataTableDateFilter/index.native.js +24 -22
  41. package/dist/cjs/components/DataTableDateFilter/index.native.js.map +1 -1
  42. package/dist/cjs/components/DataTableExport/index.cjs +42 -28
  43. package/dist/cjs/components/DataTableExport/index.native.js +42 -28
  44. package/dist/cjs/components/DataTableExport/index.native.js.map +1 -1
  45. package/dist/cjs/components/DataTableFacetMenu/index.cjs +10 -4
  46. package/dist/cjs/components/DataTableFacetMenu/index.native.js +10 -4
  47. package/dist/cjs/components/DataTableFacetMenu/index.native.js.map +1 -1
  48. package/dist/cjs/components/DataTableFilters/index.cjs +3 -3
  49. package/dist/cjs/components/DataTableFilters/index.native.js +3 -3
  50. package/dist/cjs/components/DataTableFilters/index.native.js.map +1 -1
  51. package/dist/cjs/components/DataTableGrouping/index.cjs +46 -41
  52. package/dist/cjs/components/DataTableGrouping/index.native.js +46 -41
  53. package/dist/cjs/components/DataTableGrouping/index.native.js.map +1 -1
  54. package/dist/cjs/components/DataTablePagination/index.cjs +4 -2
  55. package/dist/cjs/components/DataTablePagination/index.native.js +4 -2
  56. package/dist/cjs/components/DataTablePagination/index.native.js.map +1 -1
  57. package/dist/cjs/components/DataTableSearch/index.cjs +3 -3
  58. package/dist/cjs/components/DataTableSearch/index.native.js +3 -3
  59. package/dist/cjs/components/DataTableToolbar/index.cjs +19 -13
  60. package/dist/cjs/components/DataTableToolbar/index.native.js +19 -15
  61. package/dist/cjs/components/DataTableToolbar/index.native.js.map +1 -1
  62. package/dist/cjs/components/DataTableViewOptions/index.cjs +36 -35
  63. package/dist/cjs/components/DataTableViewOptions/index.native.js +36 -35
  64. package/dist/cjs/components/DataTableViewOptions/index.native.js.map +1 -1
  65. package/dist/cjs/components/KnobDialog.cjs +1 -3
  66. package/dist/cjs/components/KnobDialog.native.js +1 -3
  67. package/dist/cjs/components/KnobDialog.native.js.map +1 -1
  68. package/dist/cjs/components/SimpleTable/index.cjs +159 -117
  69. package/dist/cjs/components/SimpleTable/index.native.js +168 -128
  70. package/dist/cjs/components/SimpleTable/index.native.js.map +1 -1
  71. package/dist/cjs/components/TableInput/index.cjs +159 -90
  72. package/dist/cjs/components/TableInput/index.native.js +3 -3
  73. package/dist/cjs/components/TableInput/index.native.js.map +1 -1
  74. package/dist/cjs/utils/chromeIcons.cjs +31 -0
  75. package/dist/cjs/utils/chromeIcons.native.js +34 -0
  76. package/dist/cjs/utils/chromeIcons.native.js.map +1 -0
  77. package/dist/esm/components/ChildTable/index.mjs +12 -3
  78. package/dist/esm/components/ChildTable/index.mjs.map +1 -1
  79. package/dist/esm/components/ChildTable/index.native.js +14 -3
  80. package/dist/esm/components/ChildTable/index.native.js.map +1 -1
  81. package/dist/esm/components/ColumnHeaderFilter/index.mjs +11 -13
  82. package/dist/esm/components/ColumnHeaderFilter/index.mjs.map +1 -1
  83. package/dist/esm/components/ColumnHeaderFilter/index.native.js +11 -16
  84. package/dist/esm/components/ColumnHeaderFilter/index.native.js.map +1 -1
  85. package/dist/esm/components/DataTable/DataTableCardControls.mjs +7 -4
  86. package/dist/esm/components/DataTable/DataTableCardControls.mjs.map +1 -1
  87. package/dist/esm/components/DataTable/DataTableCardControls.native.js +7 -4
  88. package/dist/esm/components/DataTable/DataTableCardControls.native.js.map +1 -1
  89. package/dist/esm/components/DataTable/DataTableDocumentList.mjs +10 -4
  90. package/dist/esm/components/DataTable/DataTableDocumentList.mjs.map +1 -1
  91. package/dist/esm/components/DataTable/DataTableDocumentList.native.js +10 -4
  92. package/dist/esm/components/DataTable/DataTableDocumentList.native.js.map +1 -1
  93. package/dist/esm/components/DataTable/DataTableMobileCards.mjs +6 -1
  94. package/dist/esm/components/DataTable/DataTableMobileCards.mjs.map +1 -1
  95. package/dist/esm/components/DataTable/DataTableMobileCards.native.js +6 -1
  96. package/dist/esm/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  97. package/dist/esm/components/DataTable/DataTableRoot.mjs +55 -42
  98. package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -1
  99. package/dist/esm/components/DataTable/DataTableRoot.native.js +55 -42
  100. package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -1
  101. package/dist/esm/components/DataTable/DataTableVirtualized.mjs +5 -2
  102. package/dist/esm/components/DataTable/DataTableVirtualized.mjs.map +1 -1
  103. package/dist/esm/components/DataTable/DataTableVirtualized.native.js +5 -2
  104. package/dist/esm/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  105. package/dist/esm/components/DataTable/dataTableChrome.mjs +32 -0
  106. package/dist/esm/components/DataTable/dataTableChrome.mjs.map +1 -0
  107. package/dist/esm/components/DataTable/dataTableChrome.native.js +32 -0
  108. package/dist/esm/components/DataTable/dataTableChrome.native.js.map +1 -0
  109. package/dist/esm/components/DataTable/index.native.js +34 -20
  110. package/dist/esm/components/DataTable/index.native.js.map +1 -1
  111. package/dist/esm/components/DataTableBulkActions/index.mjs +6 -4
  112. package/dist/esm/components/DataTableBulkActions/index.mjs.map +1 -1
  113. package/dist/esm/components/DataTableBulkActions/index.native.js +6 -4
  114. package/dist/esm/components/DataTableBulkActions/index.native.js.map +1 -1
  115. package/dist/esm/components/DataTableCell/CellModalEditor.mjs +11 -33
  116. package/dist/esm/components/DataTableCell/CellModalEditor.mjs.map +1 -1
  117. package/dist/esm/components/DataTableCell/CellModalEditor.native.js +2 -5
  118. package/dist/esm/components/DataTableCell/CellModalEditor.native.js.map +1 -1
  119. package/dist/esm/components/DataTableCell/CellOptionsEditor.mjs +0 -1
  120. package/dist/esm/components/DataTableCell/CellOptionsEditor.mjs.map +1 -1
  121. package/dist/esm/components/DataTableCell/CellOptionsEditor.native.js +0 -1
  122. package/dist/esm/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
  123. package/dist/esm/components/DataTableColumnPinning/index.mjs +7 -4
  124. package/dist/esm/components/DataTableColumnPinning/index.mjs.map +1 -1
  125. package/dist/esm/components/DataTableColumnPinning/index.native.js +7 -4
  126. package/dist/esm/components/DataTableColumnPinning/index.native.js.map +1 -1
  127. package/dist/esm/components/DataTableDateFilter/index.mjs +24 -22
  128. package/dist/esm/components/DataTableDateFilter/index.mjs.map +1 -1
  129. package/dist/esm/components/DataTableDateFilter/index.native.js +24 -22
  130. package/dist/esm/components/DataTableDateFilter/index.native.js.map +1 -1
  131. package/dist/esm/components/DataTableExport/index.mjs +43 -29
  132. package/dist/esm/components/DataTableExport/index.mjs.map +1 -1
  133. package/dist/esm/components/DataTableExport/index.native.js +43 -29
  134. package/dist/esm/components/DataTableExport/index.native.js.map +1 -1
  135. package/dist/esm/components/DataTableFacetMenu/index.mjs +10 -4
  136. package/dist/esm/components/DataTableFacetMenu/index.mjs.map +1 -1
  137. package/dist/esm/components/DataTableFacetMenu/index.native.js +10 -4
  138. package/dist/esm/components/DataTableFacetMenu/index.native.js.map +1 -1
  139. package/dist/esm/components/DataTableFilters/index.mjs +3 -3
  140. package/dist/esm/components/DataTableFilters/index.mjs.map +1 -1
  141. package/dist/esm/components/DataTableFilters/index.native.js +3 -3
  142. package/dist/esm/components/DataTableFilters/index.native.js.map +1 -1
  143. package/dist/esm/components/DataTableGrouping/index.mjs +47 -42
  144. package/dist/esm/components/DataTableGrouping/index.mjs.map +1 -1
  145. package/dist/esm/components/DataTableGrouping/index.native.js +47 -42
  146. package/dist/esm/components/DataTableGrouping/index.native.js.map +1 -1
  147. package/dist/esm/components/DataTablePagination/index.mjs +4 -2
  148. package/dist/esm/components/DataTablePagination/index.mjs.map +1 -1
  149. package/dist/esm/components/DataTablePagination/index.native.js +4 -2
  150. package/dist/esm/components/DataTablePagination/index.native.js.map +1 -1
  151. package/dist/esm/components/DataTableSearch/index.mjs +3 -3
  152. package/dist/esm/components/DataTableSearch/index.native.js +3 -3
  153. package/dist/esm/components/DataTableToolbar/index.mjs +19 -13
  154. package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -1
  155. package/dist/esm/components/DataTableToolbar/index.native.js +19 -15
  156. package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -1
  157. package/dist/esm/components/DataTableViewOptions/index.mjs +36 -35
  158. package/dist/esm/components/DataTableViewOptions/index.mjs.map +1 -1
  159. package/dist/esm/components/DataTableViewOptions/index.native.js +36 -35
  160. package/dist/esm/components/DataTableViewOptions/index.native.js.map +1 -1
  161. package/dist/esm/components/KnobDialog.mjs +1 -3
  162. package/dist/esm/components/KnobDialog.mjs.map +1 -1
  163. package/dist/esm/components/KnobDialog.native.js +1 -3
  164. package/dist/esm/components/KnobDialog.native.js.map +1 -1
  165. package/dist/esm/components/SimpleTable/index.mjs +160 -118
  166. package/dist/esm/components/SimpleTable/index.mjs.map +1 -1
  167. package/dist/esm/components/SimpleTable/index.native.js +169 -129
  168. package/dist/esm/components/SimpleTable/index.native.js.map +1 -1
  169. package/dist/esm/components/TableInput/index.mjs +160 -91
  170. package/dist/esm/components/TableInput/index.mjs.map +1 -1
  171. package/dist/esm/components/TableInput/index.native.js +3 -3
  172. package/dist/esm/components/TableInput/index.native.js.map +1 -1
  173. package/dist/esm/utils/chromeIcons.mjs +6 -0
  174. package/dist/esm/utils/chromeIcons.mjs.map +1 -0
  175. package/dist/esm/utils/chromeIcons.native.js +6 -0
  176. package/dist/esm/utils/chromeIcons.native.js.map +1 -0
  177. package/dist/jsx/components/ChildTable/index.mjs +12 -3
  178. package/dist/jsx/components/ChildTable/index.mjs.map +1 -1
  179. package/dist/jsx/components/ChildTable/index.native.js +14 -3
  180. package/dist/jsx/components/ChildTable/index.native.js.map +1 -1
  181. package/dist/jsx/components/ColumnHeaderFilter/index.mjs +11 -13
  182. package/dist/jsx/components/ColumnHeaderFilter/index.mjs.map +1 -1
  183. package/dist/jsx/components/ColumnHeaderFilter/index.native.js +11 -16
  184. package/dist/jsx/components/ColumnHeaderFilter/index.native.js.map +1 -1
  185. package/dist/jsx/components/DataTable/DataTableCardControls.mjs +7 -4
  186. package/dist/jsx/components/DataTable/DataTableCardControls.mjs.map +1 -1
  187. package/dist/jsx/components/DataTable/DataTableCardControls.native.js +7 -4
  188. package/dist/jsx/components/DataTable/DataTableCardControls.native.js.map +1 -1
  189. package/dist/jsx/components/DataTable/DataTableDocumentList.mjs +10 -4
  190. package/dist/jsx/components/DataTable/DataTableDocumentList.mjs.map +1 -1
  191. package/dist/jsx/components/DataTable/DataTableDocumentList.native.js +10 -4
  192. package/dist/jsx/components/DataTable/DataTableDocumentList.native.js.map +1 -1
  193. package/dist/jsx/components/DataTable/DataTableMobileCards.mjs +6 -1
  194. package/dist/jsx/components/DataTable/DataTableMobileCards.mjs.map +1 -1
  195. package/dist/jsx/components/DataTable/DataTableMobileCards.native.js +6 -1
  196. package/dist/jsx/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  197. package/dist/jsx/components/DataTable/DataTableRoot.mjs +55 -42
  198. package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -1
  199. package/dist/jsx/components/DataTable/DataTableRoot.native.js +55 -42
  200. package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -1
  201. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs +5 -2
  202. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs.map +1 -1
  203. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js +5 -2
  204. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  205. package/dist/jsx/components/DataTable/dataTableChrome.mjs +32 -0
  206. package/dist/jsx/components/DataTable/dataTableChrome.mjs.map +1 -0
  207. package/dist/jsx/components/DataTable/dataTableChrome.native.js +62 -0
  208. package/dist/jsx/components/DataTable/dataTableChrome.native.js.map +1 -0
  209. package/dist/jsx/components/DataTable/index.native.js +34 -20
  210. package/dist/jsx/components/DataTable/index.native.js.map +1 -1
  211. package/dist/jsx/components/DataTableBulkActions/index.mjs +6 -4
  212. package/dist/jsx/components/DataTableBulkActions/index.mjs.map +1 -1
  213. package/dist/jsx/components/DataTableBulkActions/index.native.js +6 -4
  214. package/dist/jsx/components/DataTableBulkActions/index.native.js.map +1 -1
  215. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs +11 -33
  216. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs.map +1 -1
  217. package/dist/jsx/components/DataTableCell/CellModalEditor.native.js +2 -5
  218. package/dist/jsx/components/DataTableCell/CellModalEditor.native.js.map +1 -1
  219. package/dist/jsx/components/DataTableCell/CellOptionsEditor.mjs +0 -1
  220. package/dist/jsx/components/DataTableCell/CellOptionsEditor.mjs.map +1 -1
  221. package/dist/jsx/components/DataTableCell/CellOptionsEditor.native.js +0 -1
  222. package/dist/jsx/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
  223. package/dist/jsx/components/DataTableColumnPinning/index.mjs +7 -4
  224. package/dist/jsx/components/DataTableColumnPinning/index.mjs.map +1 -1
  225. package/dist/jsx/components/DataTableColumnPinning/index.native.js +7 -4
  226. package/dist/jsx/components/DataTableColumnPinning/index.native.js.map +1 -1
  227. package/dist/jsx/components/DataTableDateFilter/index.mjs +24 -22
  228. package/dist/jsx/components/DataTableDateFilter/index.mjs.map +1 -1
  229. package/dist/jsx/components/DataTableDateFilter/index.native.js +24 -22
  230. package/dist/jsx/components/DataTableDateFilter/index.native.js.map +1 -1
  231. package/dist/jsx/components/DataTableExport/index.mjs +43 -29
  232. package/dist/jsx/components/DataTableExport/index.mjs.map +1 -1
  233. package/dist/jsx/components/DataTableExport/index.native.js +42 -28
  234. package/dist/jsx/components/DataTableExport/index.native.js.map +1 -1
  235. package/dist/jsx/components/DataTableFacetMenu/index.mjs +10 -4
  236. package/dist/jsx/components/DataTableFacetMenu/index.mjs.map +1 -1
  237. package/dist/jsx/components/DataTableFacetMenu/index.native.js +10 -4
  238. package/dist/jsx/components/DataTableFacetMenu/index.native.js.map +1 -1
  239. package/dist/jsx/components/DataTableFilters/index.mjs +3 -3
  240. package/dist/jsx/components/DataTableFilters/index.mjs.map +1 -1
  241. package/dist/jsx/components/DataTableFilters/index.native.js +3 -3
  242. package/dist/jsx/components/DataTableFilters/index.native.js.map +1 -1
  243. package/dist/jsx/components/DataTableGrouping/index.mjs +47 -42
  244. package/dist/jsx/components/DataTableGrouping/index.mjs.map +1 -1
  245. package/dist/jsx/components/DataTableGrouping/index.native.js +46 -41
  246. package/dist/jsx/components/DataTableGrouping/index.native.js.map +1 -1
  247. package/dist/jsx/components/DataTablePagination/index.mjs +4 -2
  248. package/dist/jsx/components/DataTablePagination/index.mjs.map +1 -1
  249. package/dist/jsx/components/DataTablePagination/index.native.js +4 -2
  250. package/dist/jsx/components/DataTablePagination/index.native.js.map +1 -1
  251. package/dist/jsx/components/DataTableSearch/index.mjs +3 -3
  252. package/dist/jsx/components/DataTableSearch/index.native.js +3 -3
  253. package/dist/jsx/components/DataTableToolbar/index.mjs +19 -13
  254. package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -1
  255. package/dist/jsx/components/DataTableToolbar/index.native.js +19 -15
  256. package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -1
  257. package/dist/jsx/components/DataTableViewOptions/index.mjs +36 -35
  258. package/dist/jsx/components/DataTableViewOptions/index.mjs.map +1 -1
  259. package/dist/jsx/components/DataTableViewOptions/index.native.js +36 -35
  260. package/dist/jsx/components/DataTableViewOptions/index.native.js.map +1 -1
  261. package/dist/jsx/components/KnobDialog.mjs +1 -3
  262. package/dist/jsx/components/KnobDialog.mjs.map +1 -1
  263. package/dist/jsx/components/KnobDialog.native.js +1 -3
  264. package/dist/jsx/components/KnobDialog.native.js.map +1 -1
  265. package/dist/jsx/components/SimpleTable/index.mjs +160 -118
  266. package/dist/jsx/components/SimpleTable/index.mjs.map +1 -1
  267. package/dist/jsx/components/SimpleTable/index.native.js +168 -128
  268. package/dist/jsx/components/SimpleTable/index.native.js.map +1 -1
  269. package/dist/jsx/components/TableInput/index.mjs +160 -91
  270. package/dist/jsx/components/TableInput/index.mjs.map +1 -1
  271. package/dist/jsx/components/TableInput/index.native.js +3 -3
  272. package/dist/jsx/components/TableInput/index.native.js.map +1 -1
  273. package/dist/jsx/utils/chromeIcons.mjs +6 -0
  274. package/dist/jsx/utils/chromeIcons.mjs.map +1 -0
  275. package/dist/jsx/utils/chromeIcons.native.js +34 -0
  276. package/dist/jsx/utils/chromeIcons.native.js.map +1 -0
  277. package/package.json +12 -12
  278. package/src/components/ChildTable/ChildTable.stories.tsx +144 -0
  279. package/src/components/ChildTable/childTable.reorder.spec.tsx +65 -0
  280. package/src/components/ChildTable/childTable.spec.tsx +108 -0
  281. package/src/components/ChildTable/index.tsx +21 -2
  282. package/src/components/ColumnHeaderFilter/index.tsx +9 -14
  283. package/src/components/DataTable/DataTableCardControls.tsx +19 -16
  284. package/src/components/DataTable/DataTableDocumentList.tsx +7 -4
  285. package/src/components/DataTable/DataTableMobileCards.tsx +3 -1
  286. package/src/components/DataTable/DataTableRoot.tsx +52 -41
  287. package/src/components/DataTable/DataTableVirtualized.tsx +6 -2
  288. package/src/components/DataTable/FieldsInCells.stories.tsx +10 -5
  289. package/src/components/DataTable/dataTableChrome.ts +48 -0
  290. package/src/components/DataTable/designLaw.spec.tsx +114 -0
  291. package/src/components/DataTable/index.native.tsx +46 -20
  292. package/src/components/DataTableBulkActions/index.tsx +5 -3
  293. package/src/components/DataTableCell/CellModalEditor.native.tsx +3 -6
  294. package/src/components/DataTableCell/CellModalEditor.tsx +11 -22
  295. package/src/components/DataTableCell/CellOptionsEditor.tsx +0 -1
  296. package/src/components/DataTableCell/cellDraftPolicy.spec.tsx +8 -1
  297. package/src/components/DataTableCell/cellModalEditor.spec.tsx +82 -0
  298. package/src/components/DataTableCell/dataTableCell.spec.tsx +8 -1
  299. package/src/components/DataTableColumnPinning/index.tsx +6 -4
  300. package/src/components/DataTableDateFilter/index.tsx +19 -17
  301. package/src/components/DataTableExport/DataTableExport.spec.tsx +29 -0
  302. package/src/components/DataTableExport/index.tsx +47 -23
  303. package/src/components/DataTableFacetMenu/index.tsx +13 -4
  304. package/src/components/DataTableFilters/index.tsx +3 -3
  305. package/src/components/DataTableGrouping/index.tsx +42 -35
  306. package/src/components/DataTablePagination/index.tsx +2 -2
  307. package/src/components/DataTableSearch/index.tsx +3 -3
  308. package/src/components/DataTableToolbar/DataTableToolbar.spec.tsx +20 -0
  309. package/src/components/DataTableToolbar/DataTableToolbar.stories.tsx +1 -9
  310. package/src/components/DataTableToolbar/index.tsx +19 -14
  311. package/src/components/DataTableViewOptions/index.tsx +30 -30
  312. package/src/components/KnobDialog.tsx +1 -3
  313. package/src/components/SimpleTable/SimpleTable.stories.tsx +13 -0
  314. package/src/components/SimpleTable/index.tsx +171 -149
  315. package/src/components/SimpleTable/simpleTable.spec.tsx +120 -0
  316. package/src/components/TableInput/index.native.tsx +5 -3
  317. package/src/components/TableInput/index.tsx +207 -113
  318. package/src/components/chromeDesignLaw.spec.tsx +97 -0
  319. package/src/utils/chromeIcons.ts +6 -0
  320. package/types/components/ChildTable/index.d.ts +6 -1
  321. package/types/components/ChildTable/index.d.ts.map +1 -1
  322. package/types/components/ColumnHeaderFilter/index.d.ts.map +1 -1
  323. package/types/components/DataTable/DataTableCardControls.d.ts.map +1 -1
  324. package/types/components/DataTable/DataTableDocumentList.d.ts.map +1 -1
  325. package/types/components/DataTable/DataTableMobileCards.d.ts.map +1 -1
  326. package/types/components/DataTable/DataTableRoot.d.ts +6 -1
  327. package/types/components/DataTable/DataTableRoot.d.ts.map +1 -1
  328. package/types/components/DataTable/DataTableVirtualized.d.ts +3 -1
  329. package/types/components/DataTable/DataTableVirtualized.d.ts.map +1 -1
  330. package/types/components/DataTable/dataTableChrome.d.ts +27 -0
  331. package/types/components/DataTable/dataTableChrome.d.ts.map +1 -0
  332. package/types/components/DataTable/index.native.d.ts +1 -1
  333. package/types/components/DataTable/index.native.d.ts.map +1 -1
  334. package/types/components/DataTableBulkActions/index.d.ts.map +1 -1
  335. package/types/components/DataTableCell/CellModalEditor.d.ts.map +1 -1
  336. package/types/components/DataTableCell/CellModalEditor.native.d.ts.map +1 -1
  337. package/types/components/DataTableCell/CellOptionsEditor.d.ts.map +1 -1
  338. package/types/components/DataTableColumnPinning/index.d.ts.map +1 -1
  339. package/types/components/DataTableDateFilter/index.d.ts.map +1 -1
  340. package/types/components/DataTableExport/index.d.ts.map +1 -1
  341. package/types/components/DataTableFacetMenu/index.d.ts.map +1 -1
  342. package/types/components/DataTableGrouping/index.d.ts.map +1 -1
  343. package/types/components/DataTableToolbar/index.d.ts +2 -0
  344. package/types/components/DataTableToolbar/index.d.ts.map +1 -1
  345. package/types/components/DataTableViewOptions/index.d.ts.map +1 -1
  346. package/types/components/KnobDialog.d.ts.map +1 -1
  347. package/types/components/SimpleTable/index.d.ts.map +1 -1
  348. package/types/components/TableInput/index.d.ts +8 -4
  349. package/types/components/TableInput/index.d.ts.map +1 -1
  350. package/types/components/TableInput/index.native.d.ts +2 -0
  351. package/types/components/TableInput/index.native.d.ts.map +1 -1
  352. package/types/utils/chromeIcons.d.ts +3 -0
  353. package/types/utils/chromeIcons.d.ts.map +1 -0
@@ -15,12 +15,16 @@
15
15
  * without `onChange` (see the UncontrolledStatic story).
16
16
  *
17
17
  * Row identity: added rows get a collision-free generated `id`. TableInput
18
- * does not maintain Frappe-style `idx` bookkeeping — order is the array
19
- * order; consumers that need `idx` seed it via `defaultRow` or renumber in
20
- * their own layer (frappe-ui).
18
+ * reorders through the shared kanbanDnd machine (`enableReorder`); Frappe
19
+ * `idx` renumbering is the ChildTable layer (MPO-22), not this field.
21
20
  */
22
21
 
23
22
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
23
+ import {
24
+ SortableHandle,
25
+ SortableSessionProvider,
26
+ useSortableRows,
27
+ } from "@multiplatform.one/components";
24
28
  import {
25
29
  Button,
26
30
  Field,
@@ -34,7 +38,7 @@ import { TrashIcon, PlusIcon } from "@phosphor-icons/react";
34
38
  import { useTranslation } from "react-i18next";
35
39
  import { Table, getTableCellPadding } from "@multiplatform.one/table-primitives";
36
40
  import { hairline, useResolvedKnobs } from "@multiplatform.one/theme";
37
- import { Text, XStack, YStack, isWeb } from "tamagui";
41
+ import { Text, View, XStack, YStack, isWeb } from "tamagui";
38
42
  import type {
39
43
  DataTableColumn,
40
44
  DataTableData,
@@ -95,6 +99,11 @@ export interface TableInputProps<TData extends DataTableData = DataTableData> {
95
99
  * is the default — Frappe's grid is a dense in-list editor, not a page table.
96
100
  */
97
101
  compact?: boolean;
102
+ /**
103
+ * Leading grab handle + keyboard reorder via kanbanDnd. ChildTable turns
104
+ * this on and writes `idx` on the change payload (MPO-22).
105
+ */
106
+ enableReorder?: boolean;
98
107
  }
99
108
 
100
109
  export function TableInput<TData extends DataTableData = DataTableData>({
@@ -118,6 +127,7 @@ export function TableInput<TData extends DataTableData = DataTableData>({
118
127
  emptyMessage,
119
128
  "aria-label": ariaLabel,
120
129
  compact = true,
130
+ enableReorder = false,
121
131
  }: TableInputProps<TData>) {
122
132
  const { t } = useTranslation();
123
133
  const { resolvedForm } = useFormField({ form: formProp });
@@ -153,6 +163,7 @@ export function TableInput<TData extends DataTableData = DataTableData>({
153
163
  emptyMessage: emptyMessage ?? t("No rows"),
154
164
  ariaLabel: resolvedAriaLabel,
155
165
  compact,
166
+ enableReorder,
156
167
  t,
157
168
  };
158
169
 
@@ -206,6 +217,7 @@ interface TableInputInnerProps<TData extends DataTableData> {
206
217
  emptyMessage: string;
207
218
  ariaLabel: string;
208
219
  compact: boolean;
220
+ enableReorder: boolean;
209
221
  t: (key: string, options?: Record<string, unknown>) => string;
210
222
  }
211
223
 
@@ -225,6 +237,7 @@ function TableInputInner<TData extends DataTableData>({
225
237
  emptyMessage,
226
238
  ariaLabel,
227
239
  compact,
240
+ enableReorder,
228
241
  t,
229
242
  }: TableInputInnerProps<TData>) {
230
243
  const { knobProps } = useResolvedKnobs({ compact });
@@ -233,6 +246,47 @@ function TableInputInner<TData extends DataTableData>({
233
246
  const [activeRowId, setActiveRowId] = useState<string | null>(null);
234
247
  const pendingFocusRef = useRef<string | null>(null);
235
248
  const gridRef = useRef<HTMLElement | null>(null);
249
+ const reorderEnabled = enableReorder && !readOnly && !skeleton;
250
+
251
+ const firstDataKey = useMemo(() => {
252
+ const first = columns[0];
253
+ if (!first) return null;
254
+ return typeof first.accessorKey === "string"
255
+ ? first.accessorKey
256
+ : first.id || String(first.accessorKey);
257
+ }, [columns]);
258
+
259
+ const getSortableId = useCallback(
260
+ (row: TData, index: number) => String((row as DataTableData).id ?? index),
261
+ [],
262
+ );
263
+ const getSortableLabel = useCallback(
264
+ (row: TData, index: number) => {
265
+ if (firstDataKey) {
266
+ const value = row[firstDataKey as keyof TData];
267
+ if (value != null && String(value).trim() !== "") return String(value);
268
+ }
269
+ return withInterp(t("Row {{row}}", { row: index + 1 }), { row: index + 1 });
270
+ },
271
+ [firstDataKey, t],
272
+ );
273
+
274
+ const sortable = useSortableRows<TData>({
275
+ items: rows,
276
+ getId: getSortableId,
277
+ getLabel: getSortableLabel,
278
+ onChange: commit,
279
+ enabled: reorderEnabled,
280
+ containerRef: gridRef,
281
+ rowSelector: `[${childRowAttrs.row}]`,
282
+ });
283
+
284
+ const handlePointerRef = useRef(sortable.onHandlePointerDown);
285
+ handlePointerRef.current = sortable.onHandlePointerDown;
286
+ const handleKeyRef = useRef(sortable.onHandleKeyDown);
287
+ handleKeyRef.current = sortable.onHandleKeyDown;
288
+ const labelsRef = useRef(sortable.labels);
289
+ labelsRef.current = sortable.labels;
236
290
 
237
291
  const lastDataColumnId = useMemo(() => {
238
292
  const last = columns[columns.length - 1];
@@ -339,6 +393,23 @@ function TableInputInner<TData extends DataTableData>({
339
393
  const tableColumns = useMemo(() => {
340
394
  const cols: ColumnDef<TData, unknown>[] = [];
341
395
 
396
+ if (reorderEnabled) {
397
+ cols.push({
398
+ id: "_reorder",
399
+ header: "",
400
+ size: chromePx + 16,
401
+ cell: ({ row }) => (
402
+ <SortableHandle
403
+ label={labelsRef.current[row.index] ?? t("Row {{row}}", { row: row.index + 1 })}
404
+ itemId={String((row.original as DataTableData).id ?? row.id)}
405
+ compact={compact}
406
+ onPointerDown={(e) => handlePointerRef.current(row.index, e)}
407
+ onKeyDown={(e) => handleKeyRef.current(row.index, e)}
408
+ />
409
+ ),
410
+ });
411
+ }
412
+
342
413
  if (showRowNumbers) {
343
414
  cols.push({
344
415
  id: "_rowNumber",
@@ -422,6 +493,7 @@ function TableInputInner<TData extends DataTableData>({
422
493
  chromePx,
423
494
  knobProps.label.fontSize,
424
495
  knobProps.nestedControl.hitSlop,
496
+ reorderEnabled,
425
497
  ]);
426
498
 
427
499
  const table = useReactTable({
@@ -458,119 +530,141 @@ function TableInputInner<TData extends DataTableData>({
458
530
  ) : null;
459
531
 
460
532
  return (
461
- <YStack
462
- ref={gridRef as never}
463
- {...knobProps.surface}
464
- {...knobProps.borderRadiusOuter}
465
- elevation={knobProps.elevation}
466
- overflow="hidden"
467
- {...(isWeb ? { onKeyDown: handleGridKeyDown as never } : null)}
468
- >
469
- <Table
470
- aria-label={ariaLabel}
471
- aria-busy={skeleton || undefined}
472
- borderWidth={0}
473
- borderRadius={0}
474
- elevation={undefined}
475
- {...(isEmpty ? { displayMode: "flex" as const } : null)}
533
+ <SortableSessionProvider sourceId={sortable.session?.id ?? null}>
534
+ <YStack
535
+ ref={gridRef as never}
536
+ {...knobProps.surface}
537
+ {...knobProps.borderRadiusOuter}
538
+ elevation={knobProps.elevation}
539
+ overflow="hidden"
540
+ {...(isWeb ? { onKeyDown: handleGridKeyDown as never } : null)}
476
541
  >
477
- <Table.Head>
478
- {table.getHeaderGroups().map((headerGroup) => (
479
- <Table.Row key={headerGroup.id}>
480
- {headerGroup.headers.map((header) => (
481
- <Table.HeaderCell
482
- key={header.id}
483
- style={{
484
- width: header.getSize(),
485
- ...(isEmpty &&
486
- header.column.id !== "_rowNumber" &&
487
- header.column.id !== "_actions"
488
- ? { flexGrow: 1 }
489
- : null),
490
- }}
491
- >
492
- {header.isPlaceholder
493
- ? null
494
- : flexRender(header.column.columnDef.header, header.getContext())}
495
- </Table.HeaderCell>
496
- ))}
497
- </Table.Row>
498
- ))}
499
- </Table.Head>
500
- <Table.Body>
501
- {skeleton ? (
502
- Array.from({ length: SKELETON_ROW_COUNT }, (_, rowIndex) => (
503
- <Table.Row key={`skeleton-${rowIndex}`}>
504
- {table.getAllLeafColumns().map((column) => (
505
- <Table.Cell key={column.id}>
506
- {column.id === "_actions" ? null : (
507
- <Skeleton
508
- variant="rounded"
509
- width={column.id === "_rowNumber" ? 16 : "70%"}
510
- height={16}
511
- />
512
- )}
513
- </Table.Cell>
542
+ <Table
543
+ aria-label={ariaLabel}
544
+ aria-busy={skeleton || undefined}
545
+ borderWidth={0}
546
+ borderRadius={0}
547
+ elevation={undefined}
548
+ {...(isEmpty ? { displayMode: "flex" as const } : null)}
549
+ >
550
+ <Table.Head>
551
+ {table.getHeaderGroups().map((headerGroup) => (
552
+ <Table.Row key={headerGroup.id}>
553
+ {headerGroup.headers.map((header) => (
554
+ <Table.HeaderCell
555
+ key={header.id}
556
+ style={{
557
+ width: header.getSize(),
558
+ ...(isEmpty &&
559
+ header.column.id !== "_rowNumber" &&
560
+ header.column.id !== "_actions" &&
561
+ header.column.id !== "_reorder"
562
+ ? { flexGrow: 1 }
563
+ : null),
564
+ }}
565
+ >
566
+ {header.isPlaceholder
567
+ ? null
568
+ : flexRender(header.column.columnDef.header, header.getContext())}
569
+ </Table.HeaderCell>
514
570
  ))}
515
571
  </Table.Row>
516
- ))
517
- ) : isEmpty ? (
518
- <Table.Row>
519
- <Table.Cell cellWidth="auto" justifyContent="center">
520
- <Text color="$color10">{emptyMessage}</Text>
521
- </Table.Cell>
522
- </Table.Row>
523
- ) : (
524
- table.getRowModel().rows.map((row) => {
525
- const isActive = activeRowId === row.id;
526
- return (
527
- <Table.Row
528
- key={row.id}
529
- {...{ [childRowAttrs.row]: "true" }}
530
- {...{ [childRowAttrs.rowId]: row.id }}
531
- {...{ [childRowAttrs.rowIndex]: String(row.index) }}
532
- {...{ [childRowAttrs.active]: isActive ? "true" : undefined }}
533
- backgroundColor={isActive ? "$color3" : undefined}
534
- hoverStyle={{ backgroundColor: "$backgroundHover" }}
535
- transition={knobProps.transition}
536
- // onFocusCapture is a web-only capture-phase handler outside
537
- // ThemedRowProps; the bag forwards it to the DOM <tr> (house
538
- // Record cast). Tracks the active row as focus enters it.
539
- {...({ onFocusCapture: () => setActiveRowId(row.id) } as Record<string, unknown>)}
540
- >
541
- {row.getVisibleCells().map((cell) => {
542
- const isData = cell.column.id !== "_rowNumber" && cell.column.id !== "_actions";
543
- const field = columns.find((col) => {
544
- const id =
545
- typeof col.accessorKey === "string"
546
- ? col.accessorKey
547
- : col.id || String(col.accessorKey);
548
- return id === cell.column.id;
549
- })?.field;
550
- return (
551
- <Table.Cell
552
- key={cell.id}
553
- {...(isData
554
- ? {
555
- [childRowAttrs.columnId]: cell.column.id,
556
- [childRowAttrs.field]: (field as string) || "input",
557
- [childRowAttrs.lastInput]:
558
- cell.column.id === lastDataColumnId ? "true" : undefined,
559
- }
560
- : null)}
561
- >
562
- {flexRender(cell.column.columnDef.cell, cell.getContext())}
563
- </Table.Cell>
564
- );
565
- })}
572
+ ))}
573
+ </Table.Head>
574
+ <Table.Body>
575
+ {skeleton ? (
576
+ Array.from({ length: SKELETON_ROW_COUNT }, (_, rowIndex) => (
577
+ <Table.Row key={`skeleton-${rowIndex}`}>
578
+ {table.getAllLeafColumns().map((column) => (
579
+ <Table.Cell key={column.id}>
580
+ {column.id === "_actions" || column.id === "_reorder" ? null : (
581
+ <Skeleton
582
+ variant="rounded"
583
+ width={column.id === "_rowNumber" ? 16 : "70%"}
584
+ height={16}
585
+ />
586
+ )}
587
+ </Table.Cell>
588
+ ))}
566
589
  </Table.Row>
567
- );
568
- })
569
- )}
570
- </Table.Body>
571
- </Table>
572
- {addRowControl}
573
- </YStack>
590
+ ))
591
+ ) : isEmpty ? (
592
+ <Table.Row>
593
+ <Table.Cell cellWidth="auto" justifyContent="center">
594
+ <Text color="$color10">{emptyMessage}</Text>
595
+ </Table.Cell>
596
+ </Table.Row>
597
+ ) : (
598
+ table.getRowModel().rows.map((row) => {
599
+ const isActive = activeRowId === row.id;
600
+ return (
601
+ <Table.Row
602
+ key={row.id}
603
+ {...{ [childRowAttrs.row]: "true" }}
604
+ {...{ [childRowAttrs.rowId]: row.id }}
605
+ {...{ [childRowAttrs.rowIndex]: String(row.index) }}
606
+ {...{ [childRowAttrs.active]: isActive ? "true" : undefined }}
607
+ backgroundColor={isActive ? "$color3" : undefined}
608
+ hoverStyle={{ backgroundColor: "$backgroundHover" }}
609
+ transition={knobProps.transition}
610
+ // onFocusCapture is a web-only capture-phase handler outside
611
+ // ThemedRowProps; the bag forwards it to the DOM <tr> (house
612
+ // Record cast). Tracks the active row as focus enters it.
613
+ {...({ onFocusCapture: () => setActiveRowId(row.id) } as Record<
614
+ string,
615
+ unknown
616
+ >)}
617
+ >
618
+ {row.getVisibleCells().map((cell) => {
619
+ const isData =
620
+ cell.column.id !== "_rowNumber" &&
621
+ cell.column.id !== "_actions" &&
622
+ cell.column.id !== "_reorder";
623
+ const field = columns.find((col) => {
624
+ const id =
625
+ typeof col.accessorKey === "string"
626
+ ? col.accessorKey
627
+ : col.id || String(col.accessorKey);
628
+ return id === cell.column.id;
629
+ })?.field;
630
+ return (
631
+ <Table.Cell
632
+ key={cell.id}
633
+ {...(isData
634
+ ? {
635
+ [childRowAttrs.columnId]: cell.column.id,
636
+ [childRowAttrs.field]: (field as string) || "input",
637
+ [childRowAttrs.lastInput]:
638
+ cell.column.id === lastDataColumnId ? "true" : undefined,
639
+ }
640
+ : null)}
641
+ >
642
+ {flexRender(cell.column.columnDef.cell, cell.getContext())}
643
+ </Table.Cell>
644
+ );
645
+ })}
646
+ </Table.Row>
647
+ );
648
+ })
649
+ )}
650
+ </Table.Body>
651
+ </Table>
652
+ {addRowControl}
653
+ {reorderEnabled ? (
654
+ <View
655
+ position="absolute"
656
+ width={1}
657
+ height={1}
658
+ overflow="hidden"
659
+ opacity={0}
660
+ pointerEvents="none"
661
+ {...sortable.liveProps}
662
+ >
663
+ <Text>{sortable.announcement}</Text>
664
+ </View>
665
+ ) : null}
666
+ </YStack>
667
+ </SortableSessionProvider>
574
668
  );
575
669
  }
576
670
 
@@ -0,0 +1,97 @@
1
+ /**
2
+ * MPO-60 / living rulebook: remaining DataTable chrome design-law 100%.
3
+ *
4
+ * R7 pins overlay/action labels at 400. compact is not defaulted into
5
+ * useResolvedKnobs. Glyphs use the LC-65 icon recipe. Overlays spread
6
+ * elevatedSurface (borderWidth=none is zero). Named exports only.
7
+ *
8
+ * Rulings: /tmp/cursor-mpo-lanes/RULINGS-2026-08-28.md (R7, R6, LC-18).
9
+ */
10
+
11
+ import { renderWithProviders } from "@multiplatform.one/test-utils";
12
+ import { sizeRecipeForToken } from "@multiplatform.one/theme";
13
+ import { readFileSync } from "node:fs";
14
+ import { dirname, join } from "node:path";
15
+ import { fileURLToPath } from "node:url";
16
+ import { describe, expect, it } from "vitest";
17
+ import { ColumnHeaderFilter } from "./ColumnHeaderFilter";
18
+ import { DataTableFacetMenu } from "./DataTableFacetMenu";
19
+ import { iconSizeForToken } from "../utils/chromeIcons";
20
+
21
+ const here = dirname(fileURLToPath(import.meta.url));
22
+
23
+ const CHROME_INDEX = [
24
+ "ColumnHeaderFilter/index.tsx",
25
+ "DataTableBulkActions/index.tsx",
26
+ "DataTableColumnPinning/index.tsx",
27
+ "DataTableDateFilter/index.tsx",
28
+ "DataTableExport/index.tsx",
29
+ "DataTableFacetMenu/index.tsx",
30
+ "DataTableGrouping/index.tsx",
31
+ "DataTableToolbar/index.tsx",
32
+ "DataTableViewOptions/index.tsx",
33
+ ];
34
+
35
+ function source(relative: string): string {
36
+ return readFileSync(join(here, relative), "utf8");
37
+ }
38
+
39
+ describe("table chrome design-law (R7 + compact + recipes)", () => {
40
+ it("does not ship illegal 500/600 label weights in chrome sources", () => {
41
+ for (const file of CHROME_INDEX) {
42
+ const src = source(file);
43
+ expect(src, file).not.toMatch(/fontWeight=["'](?:500|600)["']/);
44
+ }
45
+ });
46
+
47
+ it("does not hardcode Phosphor 14/16 or 1px overlay borders", () => {
48
+ for (const file of CHROME_INDEX) {
49
+ const src = source(file);
50
+ expect(src, file).not.toMatch(/size=\{1[46]\}/);
51
+ expect(src, file).not.toMatch(/borderWidth=\{1\}/);
52
+ }
53
+ });
54
+
55
+ it("does not pin density compact=false into useResolvedKnobs", () => {
56
+ for (const file of CHROME_INDEX) {
57
+ const src = source(file);
58
+ expect(src, file).not.toMatch(/useResolvedKnobs\(\{\s*compact:\s*true/);
59
+ expect(src, file).not.toMatch(/compact\s*=\s*false/);
60
+ }
61
+ });
62
+
63
+ it("Fields in Cells stories do not pin compact={false}", () => {
64
+ const src = source("DataTable/FieldsInCells.stories.tsx");
65
+ expect(src).not.toMatch(/compact=\{false\}/);
66
+ expect(src).toMatch(/fontWeight="400"/);
67
+ });
68
+
69
+ it("iconSizeForToken follows the size recipe, not a handwritten 14", () => {
70
+ const expected = sizeRecipeForToken("$4").iconSize;
71
+ expect(iconSizeForToken("$4")).toBe(expected);
72
+ expect(iconSizeForToken("$4")).not.toBe(14);
73
+ });
74
+
75
+ it("ColumnHeaderFilter title is the Filter: column label (R7)", () => {
76
+ const { getByLabelText } = renderWithProviders(
77
+ <ColumnHeaderFilter
78
+ columnId="status"
79
+ columnLabel="Status"
80
+ columnType="text"
81
+ onFilterChange={() => {}}
82
+ />,
83
+ );
84
+ expect(getByLabelText("Filter column Status")).not.toBeNull();
85
+ });
86
+
87
+ it("DataTableFacetMenu trigger is a named export with recipe-sized caret", () => {
88
+ const { getByRole } = renderWithProviders(
89
+ <DataTableFacetMenu label="Assigned To" options={[{ value: "a", label: "A", count: 1 }]} />,
90
+ );
91
+ const trigger = getByRole("button", { name: "Assigned To" });
92
+ expect(trigger).toBeDefined();
93
+ const svg = trigger.querySelector("svg");
94
+ expect(svg).not.toBeNull();
95
+ expect(Number(svg?.getAttribute("width"))).toBe(sizeRecipeForToken("$4").iconSize);
96
+ });
97
+ });
@@ -0,0 +1,6 @@
1
+ import { sizeRecipeForToken } from "@multiplatform.one/theme";
2
+
3
+ /** Control-internal glyphs (LC-75/LC-79): recipe icon channel, no handwritten px. */
4
+ export function iconSizeForToken(token: string): number {
5
+ return sizeRecipeForToken(token).iconSize;
6
+ }
@@ -1,4 +1,4 @@
1
- import type { ReactNode } from "react";
1
+ import { type ReactNode } from "react";
2
2
  import { type AnyFormApi } from "@multiplatform.one/forms";
3
3
  import type { DataTableColumn, DataTableData } from "../../types";
4
4
  export type ChildTableProps<TRow extends DataTableData = DataTableData> = {
@@ -23,6 +23,11 @@ export type ChildTableProps<TRow extends DataTableData = DataTableData> = {
23
23
  helperText?: string;
24
24
  required?: boolean;
25
25
  id?: string;
26
+ /**
27
+ * Leading grab handle + keyboard reorder. Default on unless the field is
28
+ * read-only or disabled. A committed drop rewrites `idx` 1..n (MPO-22).
29
+ */
30
+ enableReorder?: boolean;
26
31
  };
27
32
  export declare function ChildTable<TRow extends DataTableData = DataTableData>(props: ChildTableProps<TRow>): import("react/jsx-runtime").JSX.Element;
28
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ChildTable/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtF,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAElE,MAAM,MAAM,eAAe,CAAC,IAAI,SAAS,aAAa,GAAG,aAAa,IAAI;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AA0BF,wBAAgB,UAAU,CAAC,IAAI,SAAS,aAAa,GAAG,aAAa,EACnE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,2CA6F7B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ChildTable/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtF,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAElE,MAAM,MAAM,eAAe,CAAC,IAAI,SAAS,aAAa,GAAG,aAAa,IAAI;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AA0BF,wBAAgB,UAAU,CAAC,IAAI,SAAS,aAAa,GAAG,aAAa,EACnE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,2CA0G7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ColumnHeaderFilter/index.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,2CAA2C;IAC3C,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,mCAAmC;IACnC,cAAc,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC,sCAAsC;IACtC,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;IAC/C,+CAA+C;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAWD,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EAAE,SAAS,EACnB,WAAW,EACX,UAAU,EACV,WAAW,EAAE,YAAY,EACzB,cAAc,EACd,OAAO,EACP,UAAU,GACX,EAAE,uBAAuB,2CAwHzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ColumnHeaderFilter/index.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,2CAA2C;IAC3C,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,mCAAmC;IACnC,cAAc,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC,sCAAsC;IACtC,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;IAC/C,+CAA+C;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAWD,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EAAE,SAAS,EACnB,WAAW,EACX,UAAU,EACV,WAAW,EAAE,YAAY,EACzB,cAAc,EACd,OAAO,EACP,UAAU,GACX,EAAE,uBAAuB,2CAkHzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableCardControls.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/DataTableCardControls.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAI5E,MAAM,WAAW,0BAA0B;IACzC,mDAAmD;IACnD,KAAK,EAAE,GAAG,CAAC;IACX,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,KAAK,CAAC;QACvB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,mBAAmB,CAAC;QAC1B,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;KACjC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAOD,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,aAAqB,EACrB,eAAuB,EACvB,gBAAqB,EACrB,OAAe,EACf,QAAgB,GACjB,EAAE,0BAA0B,kDA+F5B"}
1
+ {"version":3,"file":"DataTableCardControls.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/DataTableCardControls.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAK5E,MAAM,WAAW,0BAA0B;IACzC,mDAAmD;IACnD,KAAK,EAAE,GAAG,CAAC;IACX,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,KAAK,CAAC;QACvB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,mBAAmB,CAAC;QAC1B,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;KACjC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAOD,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,aAAqB,EACrB,eAAuB,EACvB,gBAAqB,EACrB,OAAe,EACf,QAAgB,GACjB,EAAE,0BAA0B,kDAiG5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableDocumentList.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/DataTableDocumentList.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,iFAAiF;AACjF,wBAAgB,yBAAyB,CACvC,KAAK,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,EACxE,YAAY,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,SAAS,CAY1C;AAED,MAAM,WAAW,0BAA0B,CAAC,KAAK;IAC/C,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC;IACpF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACxD,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjG,qEAAqE;IACrE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EACvE,SAAS,EACT,kBAA0B,EAC1B,QAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,OAAe,EACf,cAAc,EACd,gBAAgB,EAChB,aAAqB,GACtB,EAAE,0BAA0B,CAAC,KAAK,CAAC,2CA2JnC"}
1
+ {"version":3,"file":"DataTableDocumentList.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/DataTableDocumentList.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,iFAAiF;AACjF,wBAAgB,yBAAyB,CACvC,KAAK,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,EACxE,YAAY,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,SAAS,CAY1C;AAED,MAAM,WAAW,0BAA0B,CAAC,KAAK;IAC/C,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC;IACpF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACxD,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjG,qEAAqE;IACrE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EACvE,SAAS,EACT,kBAA0B,EAC1B,QAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,OAAe,EACf,cAAc,EACd,gBAAgB,EAChB,aAAqB,GACtB,EAAE,0BAA0B,CAAC,KAAK,CAAC,2CA6JnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableMobileCards.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/DataTableMobileCards.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAqB/B,MAAM,WAAW,yBAAyB,CAAC,KAAK;IAC9C,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC;IACpF,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACxD;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjG,qEAAqE;IACrE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EACtE,SAAS,EACT,kBAA0B,EAC1B,cAAc,EACd,aAAa,EACb,QAAQ,EACR,QAAgB,EAChB,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,gBAAwB,EACxB,sBAA8B,EAC9B,iBAAiB,EACjB,OAAe,EACf,cAAc,EACd,gBAAgB,EAChB,aAAqB,GACtB,EAAE,yBAAyB,CAAC,KAAK,CAAC,2CAoLlC"}
1
+ {"version":3,"file":"DataTableMobileCards.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/DataTableMobileCards.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAsB/B,MAAM,WAAW,yBAAyB,CAAC,KAAK;IAC9C,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC;IACpF,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACxD;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjG,qEAAqE;IACrE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EACtE,SAAS,EACT,kBAA0B,EAC1B,cAAc,EACd,aAAa,EACb,QAAQ,EACR,QAAgB,EAChB,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,gBAAwB,EACxB,sBAA8B,EAC9B,iBAAiB,EACjB,OAAe,EACf,cAAc,EACd,gBAAgB,EAChB,aAAqB,GACtB,EAAE,yBAAyB,CAAC,KAAK,CAAC,2CAqLlC"}
@@ -17,6 +17,11 @@ export interface DataTableRootProps<TData extends Record<string, any> = Record<s
17
17
  compact?: boolean;
18
18
  /** Structural modifier: disabled state */
19
19
  disabled?: boolean;
20
+ /** Structural intent — joins the resolver path (audit 16). */
21
+ accent?: boolean;
22
+ error?: boolean;
23
+ warning?: boolean;
24
+ success?: boolean;
20
25
  }
21
- export declare function DataTableRoot<TData extends Record<string, any> = Record<string, any>>({ data, columns, initialState, controlledState, onStateChange, onRetry, isLoading: isLoadingProp, isFetching: isFetchingProp, syncWithUrl, urlDebounceMs, urlStrategy, manualFiltering, manualPagination, manualSorting, enableFiltering, filterableFields, enableSorting, enablePagination, pageSizeOptions, paginationMode, loadPage, enableColumnVisibility, enableColumnOrdering, enableColumnResizing, enableGlobalSearch, enableViews, columnLayout, layout, enableVirtualization, virtualizationHeight, virtualizationOverscan, enableRowExpansion, renderSubComponent, getSubRows, enableColumnPinning, maxPinnedColumns, enableGrouping, enableKeyboardNavigation, onRowPress, rowLabel, enableRowSelection, selectAllScope: selectAllScopeProp, bulkActions, readOnly, onCellChange, name, form: formProp, showRowNumbers, showAddRow, showDeleteRow, minRows, maxRows, defaultRow, onDataChange, rowCount, pageCount, renderToolbar, renderPagination, renderFilters: _renderFilters, className, size, compact, disabled, children, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, ...props }: DataTableRootProps<TData>): import("react/jsx-runtime").JSX.Element;
26
+ export declare function DataTableRoot<TData extends Record<string, any> = Record<string, any>>({ data, columns, initialState, controlledState, onStateChange, onRetry, isLoading: isLoadingProp, isFetching: isFetchingProp, syncWithUrl, urlDebounceMs, urlStrategy, manualFiltering, manualPagination, manualSorting, enableFiltering, filterableFields, enableSorting, enablePagination, pageSizeOptions, paginationMode, loadPage, enableColumnVisibility, enableColumnOrdering, enableColumnResizing, enableGlobalSearch, enableViews, columnLayout, layout, enableVirtualization, virtualizationHeight, virtualizationOverscan, enableRowExpansion, renderSubComponent, getSubRows, enableColumnPinning, maxPinnedColumns, enableGrouping, enableKeyboardNavigation, onRowPress, rowLabel, enableRowSelection, selectAllScope: selectAllScopeProp, bulkActions, readOnly, onCellChange, name, form: formProp, showRowNumbers, showAddRow, showDeleteRow, minRows, maxRows, defaultRow, onDataChange, rowCount, pageCount, renderToolbar, renderPagination, renderFilters: _renderFilters, className, size, compact, disabled, accent, error, warning, success, children, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, ...props }: DataTableRootProps<TData>): import("react/jsx-runtime").JSX.Element;
22
27
  //# sourceMappingURL=DataTableRoot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableRoot.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/DataTableRoot.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAcH,OAAO,KAA4D,MAAM,OAAO,CAAC;AAajF,OAAO,KAAK,EAIV,cAAc,EAEf,MAAM,aAAa,CAAC;AAkDrB,MAAM,WAAW,kBAAkB,CACjC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACvD,SAAQ,cAAc,CAAC,KAAK,CAAC;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EACrF,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,eAAe,EACf,aAAa,EACb,OAAO,EACP,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,cAAc,EAC1B,WAAmB,EACnB,aAAmB,EACnB,WAAW,EACX,eAAuB,EACvB,gBAAwB,EACxB,aAAqB,EACrB,eAAsB,EACtB,gBAAgB,EAChB,aAAoB,EACpB,gBAAuB,EACvB,eAAe,EACf,cAAwB,EACxB,QAAQ,EACR,sBAA6B,EAC7B,oBAA4B,EAC5B,oBAA4B,EAC5B,kBAAyB,EACzB,WAAmB,EACnB,YAAsB,EACtB,MAAe,EACf,oBAA4B,EAC5B,oBAAoB,EACpB,sBAA0B,EAC1B,kBAA0B,EAC1B,kBAAkB,EAClB,UAAU,EACV,mBAA2B,EAC3B,gBAAoB,EACpB,cAAsB,EACtB,wBAAgC,EAChC,UAAU,EACV,QAAQ,EACR,kBAA0B,EAC1B,cAAc,EAAE,kBAAkB,EAClC,WAAW,EACX,QAAgB,EAChB,YAAY,EACZ,IAAI,EACJ,IAAI,EAAE,QAAQ,EACd,cAAsB,EACtB,UAAkB,EAClB,aAAqB,EACrB,OAAW,EACX,OAAO,EACP,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,aAAa,EAAE,cAAc,EAC7B,SAAS,EACT,IAAI,EACJ,OAAe,EACf,QAAgB,EAChB,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,kBAAkB,EAAE,eAAe,EACnC,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,KAAK,CAAC,2CAijE3B"}
1
+ {"version":3,"file":"DataTableRoot.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/DataTableRoot.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAcH,OAAO,KAA4D,MAAM,OAAO,CAAC;AAajF,OAAO,KAAK,EAIV,cAAc,EAEf,MAAM,aAAa,CAAC;AA+CrB,MAAM,WAAW,kBAAkB,CACjC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACvD,SAAQ,cAAc,CAAC,KAAK,CAAC;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EACrF,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,eAAe,EACf,aAAa,EACb,OAAO,EACP,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,cAAc,EAC1B,WAAmB,EACnB,aAAmB,EACnB,WAAW,EACX,eAAuB,EACvB,gBAAwB,EACxB,aAAqB,EACrB,eAAsB,EACtB,gBAAgB,EAChB,aAAoB,EACpB,gBAAuB,EACvB,eAAe,EACf,cAAwB,EACxB,QAAQ,EACR,sBAA6B,EAC7B,oBAA4B,EAC5B,oBAA4B,EAC5B,kBAAyB,EACzB,WAAmB,EACnB,YAAsB,EACtB,MAAe,EACf,oBAA4B,EAC5B,oBAAoB,EACpB,sBAA0B,EAC1B,kBAA0B,EAC1B,kBAAkB,EAClB,UAAU,EACV,mBAA2B,EAC3B,gBAAoB,EACpB,cAAsB,EACtB,wBAAgC,EAChC,UAAU,EACV,QAAQ,EACR,kBAA0B,EAC1B,cAAc,EAAE,kBAAkB,EAClC,WAAW,EACX,QAAgB,EAChB,YAAY,EACZ,IAAI,EACJ,IAAI,EAAE,QAAQ,EACd,cAAsB,EACtB,UAAkB,EAClB,aAAqB,EACrB,OAAW,EACX,OAAO,EACP,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,aAAa,EAAE,cAAc,EAC7B,SAAS,EACT,IAAI,EACJ,OAAe,EACf,QAAgB,EAChB,MAAM,EACN,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,kBAAkB,EAAE,eAAe,EACnC,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,KAAK,CAAC,2CAsjE3B"}
@@ -36,6 +36,8 @@ export interface DataTableVirtualizedProps {
36
36
  * the same activation + roving-focus contract as grid rows).
37
37
  */
38
38
  getRowPressProps?: (row: any, rowIndex: number, variant?: "row" | "card") => Record<string, any>;
39
+ /** LC-65 row estimate — caller passes size-recipe height. */
40
+ rowHeightPx?: number;
39
41
  }
40
- export declare function DataTableVirtualized({ virtualItems, totalSize, bodyScrollRef, virtualizationHeight, tableRows, headerGroups, showRowNumbers, enableRowExpansion, showDeleteRow, readOnly, enableKeyboardNavigation: _enableKeyboardNavigation, keyboardNav, getColSizeProps, renderRowContent, hasInfiniteTail, getRowPressProps, }: DataTableVirtualizedProps): import("react/jsx-runtime").JSX.Element;
42
+ export declare function DataTableVirtualized({ virtualItems, totalSize, bodyScrollRef, virtualizationHeight, tableRows, headerGroups, showRowNumbers, enableRowExpansion, showDeleteRow, readOnly, enableKeyboardNavigation: _enableKeyboardNavigation, keyboardNav, getColSizeProps, renderRowContent, hasInfiniteTail, getRowPressProps, rowHeightPx: rowHeightPxProp, }: DataTableVirtualizedProps): import("react/jsx-runtime").JSX.Element;
41
43
  //# sourceMappingURL=DataTableVirtualized.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableVirtualized.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/DataTableVirtualized.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,GAAG,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACtD,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,YAAY,EAAE,GAAG,EAAE,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB,EAAE,OAAO,CAAC;IAClC,WAAW,EAAE,GAAG,CAAC;IACjB,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;IACnC,gBAAgB,EAAE,CAChB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,WAAW,CAAC,EAAE,KAAK,KAChB,KAAK,CAAC,SAAS,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,GAAG,CAAC;IACX;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClG;AAED,wBAAgB,oBAAoB,CAAC,EACnC,YAAY,EACZ,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,wBAAwB,EAAE,yBAAyB,EACnD,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,eAAuB,EACvB,gBAAgB,GACjB,EAAE,yBAAyB,2CAgJ3B"}
1
+ {"version":3,"file":"DataTableVirtualized.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/DataTableVirtualized.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,GAAG,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACtD,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,YAAY,EAAE,GAAG,EAAE,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB,EAAE,OAAO,CAAC;IAClC,WAAW,EAAE,GAAG,CAAC;IACjB,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;IACnC,gBAAgB,EAAE,CAChB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,WAAW,CAAC,EAAE,KAAK,KAChB,KAAK,CAAC,SAAS,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,GAAG,CAAC;IACX;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjG,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,YAAY,EACZ,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,wBAAwB,EAAE,yBAAyB,EACnD,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,eAAuB,EACvB,gBAAgB,EAChB,WAAW,EAAE,eAAe,GAC7B,EAAE,yBAAyB,2CAkJ3B"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * DataTable chrome geometry and intent helpers.
3
+ *
4
+ * Size numbers come from LC-65 `sizeRecipeForToken` (no handwritten 14/40).
5
+ * Row `_intent` rides Tamagui boolean theme props on the real row host —
6
+ * never a Theme wrapper inside <table> (invalid HTML).
7
+ */
8
+ export type DataTableIntentName = "accent" | "error" | "warning" | "success";
9
+ export declare function resolveDataTableIntent(flags: {
10
+ accent?: boolean;
11
+ error?: boolean;
12
+ warning?: boolean;
13
+ success?: boolean;
14
+ }): DataTableIntentName | undefined;
15
+ export declare function rowIntentProps(rowData: Record<string, unknown> | undefined): Record<string, true>;
16
+ export declare function dataTableChrome(sizeToken: string): {
17
+ recipe: import("@multiplatform.one/theme").SizeRecipe;
18
+ iconPx: number;
19
+ rowPx: number;
20
+ selectionCol: number;
21
+ expandCol: number;
22
+ rowNumberCol: number;
23
+ deleteCol: number;
24
+ indent: number;
25
+ };
26
+ export type DataTableChrome = ReturnType<typeof dataTableChrome>;
27
+ //# sourceMappingURL=dataTableChrome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataTableChrome.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/dataTableChrome.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,mBAAmB,GAAG,SAAS,CAMlC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAMjG;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM;;;;;;;;;EAYhD;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC"}