@multiplatform.one/table 7.23.2 → 7.24.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 (302) hide show
  1. package/dist/cjs/components/ChildTable/index.native.js +1 -1
  2. package/dist/cjs/components/ChildTable/index.native.js.map +1 -1
  3. package/dist/cjs/components/ColumnHeaderFilter/index.cjs +4 -1
  4. package/dist/cjs/components/ColumnHeaderFilter/index.native.js +5 -2
  5. package/dist/cjs/components/ColumnHeaderFilter/index.native.js.map +1 -1
  6. package/dist/cjs/components/DataTable/DataTableCardControls.native.js +1 -1
  7. package/dist/cjs/components/DataTable/DataTableCardControls.native.js.map +1 -1
  8. package/dist/cjs/components/DataTable/DataTableContext.native.js.map +1 -1
  9. package/dist/cjs/components/DataTable/DataTableDocumentList.cjs +2 -1
  10. package/dist/cjs/components/DataTable/DataTableDocumentList.native.js +2 -1
  11. package/dist/cjs/components/DataTable/DataTableDocumentList.native.js.map +1 -1
  12. package/dist/cjs/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  13. package/dist/cjs/components/DataTable/DataTableRoot.cjs +17 -11
  14. package/dist/cjs/components/DataTable/DataTableRoot.native.js +29 -22
  15. package/dist/cjs/components/DataTable/DataTableRoot.native.js.map +1 -1
  16. package/dist/cjs/components/DataTable/DataTableStateContext.native.js.map +1 -1
  17. package/dist/cjs/components/DataTable/DataTableVirtualized.cjs +2 -1
  18. package/dist/cjs/components/DataTable/DataTableVirtualized.native.js +2 -1
  19. package/dist/cjs/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  20. package/dist/cjs/components/DataTable/dataTableChrome.native.js.map +1 -1
  21. package/dist/cjs/components/DataTable/documentListSlots.native.js.map +1 -1
  22. package/dist/cjs/components/DataTable/index.native.js +16 -20
  23. package/dist/cjs/components/DataTable/index.native.js.map +1 -1
  24. package/dist/cjs/components/DataTable/rowStateChrome.cjs +10 -3
  25. package/dist/cjs/components/DataTable/rowStateChrome.native.js +10 -3
  26. package/dist/cjs/components/DataTable/rowStateChrome.native.js.map +1 -1
  27. package/dist/cjs/components/DataTableBulkActions/index.native.js.map +1 -1
  28. package/dist/cjs/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
  29. package/dist/cjs/components/DataTableCell/index.native.js.map +1 -1
  30. package/dist/cjs/components/DataTableColumnPinning/index.native.js.map +1 -1
  31. package/dist/cjs/components/DataTableDateFilter/index.native.js.map +1 -1
  32. package/dist/cjs/components/DataTableExport/index.cjs +16 -10
  33. package/dist/cjs/components/DataTableExport/index.native.js +16 -10
  34. package/dist/cjs/components/DataTableExport/index.native.js.map +1 -1
  35. package/dist/cjs/components/DataTableFacetMenu/index.native.js.map +1 -1
  36. package/dist/cjs/components/DataTableFilterButton/index.native.js +1 -1
  37. package/dist/cjs/components/DataTableFilterButton/index.native.js.map +1 -1
  38. package/dist/cjs/components/DataTableFilterChips/FilterChip.native.js.map +1 -1
  39. package/dist/cjs/components/DataTableFilterChips/index.native.js.map +1 -1
  40. package/dist/cjs/components/DataTableFilters/index.native.js +2 -2
  41. package/dist/cjs/components/DataTableFilters/index.native.js.map +1 -1
  42. package/dist/cjs/components/DataTableGrouping/index.cjs +2 -2
  43. package/dist/cjs/components/DataTableGrouping/index.native.js +2 -2
  44. package/dist/cjs/components/DataTableGrouping/index.native.js.map +1 -1
  45. package/dist/cjs/components/DataTablePagination/index.native.js.map +1 -1
  46. package/dist/cjs/components/DataTableSearch/index.native.js.map +1 -1
  47. package/dist/cjs/components/DataTableToolbar/index.cjs +0 -1
  48. package/dist/cjs/components/DataTableToolbar/index.native.js +2 -3
  49. package/dist/cjs/components/DataTableToolbar/index.native.js.map +1 -1
  50. package/dist/cjs/components/DataTableViewOptions/index.native.js.map +1 -1
  51. package/dist/cjs/components/FilterManager.native.js.map +1 -1
  52. package/dist/cjs/components/FilterOperatorValueEditor/index.native.js.map +1 -1
  53. package/dist/cjs/components/KnobDialog.native.js.map +1 -1
  54. package/dist/cjs/components/SavedFilterDropdown.native.js.map +1 -1
  55. package/dist/cjs/components/SimpleTable/index.native.js.map +1 -1
  56. package/dist/cjs/components/TableInput/RowDetailEditor.native.js +1 -1
  57. package/dist/cjs/components/TableInput/index.native.js +1 -1
  58. package/dist/cjs/components/TableInput/shared.native.js.map +1 -1
  59. package/dist/cjs/hooks/useDataTable.native.js.map +1 -1
  60. package/dist/cjs/hooks/useDataTableKeyboard.native.js.map +1 -1
  61. package/dist/cjs/hooks/useDragScroll.native.js.map +1 -1
  62. package/dist/cjs/hooks/useInfiniteRows.native.js.map +1 -1
  63. package/dist/cjs/hooks/useSavedFilters.native.js.map +1 -1
  64. package/dist/cjs/hooks/useTableColumnPinning.native.js.map +1 -1
  65. package/dist/cjs/hooks/useTableFiltering.native.js.map +1 -1
  66. package/dist/cjs/hooks/useTableGrouping.native.js.map +1 -1
  67. package/dist/cjs/hooks/useTableKeyboard.native.js.map +1 -1
  68. package/dist/cjs/hooks/useTablePagination.native.js.map +1 -1
  69. package/dist/cjs/hooks/useTableSearch.native.js.map +1 -1
  70. package/dist/cjs/hooks/useTableSelection.native.js.map +1 -1
  71. package/dist/cjs/hooks/useTableSorting.native.js.map +1 -1
  72. package/dist/cjs/hooks/useTableUrlSync.native.js.map +1 -1
  73. package/dist/cjs/hooks/useTableViews.native.js.map +1 -1
  74. package/dist/cjs/index.native.js +20 -20
  75. package/dist/cjs/index.native.js.map +1 -1
  76. package/dist/cjs/shared/devWarn.native.js.map +1 -1
  77. package/dist/cjs/shared/t.native.js.map +1 -1
  78. package/dist/cjs/shims/primitives.native.js.map +1 -1
  79. package/dist/cjs/shims/tableCellContext.native.js.map +1 -1
  80. package/dist/cjs/types.native.js.map +1 -1
  81. package/dist/cjs/utils/chromeIcons.native.js.map +1 -1
  82. package/dist/cjs/utils/columnAlign.native.js.map +1 -1
  83. package/dist/cjs/utils/filterFields.native.js.map +1 -1
  84. package/dist/cjs/utils/filterUtils.native.js.map +1 -1
  85. package/dist/cjs/utils/money.native.js.map +1 -1
  86. package/dist/cjs/utils/paginationDefaults.native.js.map +1 -1
  87. package/dist/cjs/utils/rowAccumulator.native.js.map +1 -1
  88. package/dist/cjs/utils/rowPress.native.js.map +1 -1
  89. package/dist/cjs/utils/urlStateUtils.native.js.map +1 -1
  90. package/dist/cjs/utils/viewData.native.js.map +1 -1
  91. package/dist/cjs/utils/withInterp.native.js.map +1 -1
  92. package/dist/esm/components/ChildTable/index.native.js.map +1 -1
  93. package/dist/esm/components/ColumnHeaderFilter/index.mjs +5 -2
  94. package/dist/esm/components/ColumnHeaderFilter/index.mjs.map +1 -1
  95. package/dist/esm/components/ColumnHeaderFilter/index.native.js +5 -2
  96. package/dist/esm/components/ColumnHeaderFilter/index.native.js.map +1 -1
  97. package/dist/esm/components/DataTable/DataTableCardControls.native.js.map +1 -1
  98. package/dist/esm/components/DataTable/DataTableContext.native.js.map +1 -1
  99. package/dist/esm/components/DataTable/DataTableDocumentList.mjs +2 -1
  100. package/dist/esm/components/DataTable/DataTableDocumentList.mjs.map +1 -1
  101. package/dist/esm/components/DataTable/DataTableDocumentList.native.js +2 -1
  102. package/dist/esm/components/DataTable/DataTableDocumentList.native.js.map +1 -1
  103. package/dist/esm/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  104. package/dist/esm/components/DataTable/DataTableRoot.mjs +17 -11
  105. package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -1
  106. package/dist/esm/components/DataTable/DataTableRoot.native.js +22 -15
  107. package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -1
  108. package/dist/esm/components/DataTable/DataTableStateContext.native.js.map +1 -1
  109. package/dist/esm/components/DataTable/DataTableVirtualized.mjs +2 -1
  110. package/dist/esm/components/DataTable/DataTableVirtualized.mjs.map +1 -1
  111. package/dist/esm/components/DataTable/DataTableVirtualized.native.js +2 -1
  112. package/dist/esm/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  113. package/dist/esm/components/DataTable/dataTableChrome.native.js.map +1 -1
  114. package/dist/esm/components/DataTable/documentListSlots.native.js.map +1 -1
  115. package/dist/esm/components/DataTable/index.native.js +6 -10
  116. package/dist/esm/components/DataTable/index.native.js.map +1 -1
  117. package/dist/esm/components/DataTable/rowStateChrome.mjs +11 -4
  118. package/dist/esm/components/DataTable/rowStateChrome.mjs.map +1 -1
  119. package/dist/esm/components/DataTable/rowStateChrome.native.js +11 -4
  120. package/dist/esm/components/DataTable/rowStateChrome.native.js.map +1 -1
  121. package/dist/esm/components/DataTableBulkActions/index.native.js.map +1 -1
  122. package/dist/esm/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
  123. package/dist/esm/components/DataTableCell/index.native.js.map +1 -1
  124. package/dist/esm/components/DataTableColumnPinning/index.native.js.map +1 -1
  125. package/dist/esm/components/DataTableDateFilter/index.native.js.map +1 -1
  126. package/dist/esm/components/DataTableExport/index.mjs +16 -10
  127. package/dist/esm/components/DataTableExport/index.mjs.map +1 -1
  128. package/dist/esm/components/DataTableExport/index.native.js +16 -10
  129. package/dist/esm/components/DataTableExport/index.native.js.map +1 -1
  130. package/dist/esm/components/DataTableFacetMenu/index.native.js.map +1 -1
  131. package/dist/esm/components/DataTableFilterButton/index.native.js.map +1 -1
  132. package/dist/esm/components/DataTableFilterChips/FilterChip.native.js.map +1 -1
  133. package/dist/esm/components/DataTableFilterChips/index.native.js.map +1 -1
  134. package/dist/esm/components/DataTableFilters/index.native.js.map +1 -1
  135. package/dist/esm/components/DataTableGrouping/index.mjs +2 -2
  136. package/dist/esm/components/DataTableGrouping/index.mjs.map +1 -1
  137. package/dist/esm/components/DataTableGrouping/index.native.js +2 -2
  138. package/dist/esm/components/DataTableGrouping/index.native.js.map +1 -1
  139. package/dist/esm/components/DataTablePagination/index.native.js.map +1 -1
  140. package/dist/esm/components/DataTableSearch/index.native.js.map +1 -1
  141. package/dist/esm/components/DataTableToolbar/index.mjs +0 -1
  142. package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -1
  143. package/dist/esm/components/DataTableToolbar/index.native.js +0 -1
  144. package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -1
  145. package/dist/esm/components/DataTableViewOptions/index.native.js.map +1 -1
  146. package/dist/esm/components/FilterManager.native.js.map +1 -1
  147. package/dist/esm/components/FilterOperatorValueEditor/index.native.js.map +1 -1
  148. package/dist/esm/components/KnobDialog.native.js.map +1 -1
  149. package/dist/esm/components/SavedFilterDropdown.native.js.map +1 -1
  150. package/dist/esm/components/SimpleTable/index.native.js.map +1 -1
  151. package/dist/esm/components/TableInput/shared.native.js.map +1 -1
  152. package/dist/esm/hooks/useDataTable.native.js.map +1 -1
  153. package/dist/esm/hooks/useDataTableKeyboard.native.js.map +1 -1
  154. package/dist/esm/hooks/useDragScroll.native.js.map +1 -1
  155. package/dist/esm/hooks/useInfiniteRows.native.js.map +1 -1
  156. package/dist/esm/hooks/useSavedFilters.native.js.map +1 -1
  157. package/dist/esm/hooks/useTableColumnPinning.native.js.map +1 -1
  158. package/dist/esm/hooks/useTableFiltering.native.js.map +1 -1
  159. package/dist/esm/hooks/useTableGrouping.native.js.map +1 -1
  160. package/dist/esm/hooks/useTableKeyboard.native.js.map +1 -1
  161. package/dist/esm/hooks/useTablePagination.native.js.map +1 -1
  162. package/dist/esm/hooks/useTableSearch.native.js.map +1 -1
  163. package/dist/esm/hooks/useTableSelection.native.js.map +1 -1
  164. package/dist/esm/hooks/useTableSorting.native.js.map +1 -1
  165. package/dist/esm/hooks/useTableUrlSync.native.js.map +1 -1
  166. package/dist/esm/hooks/useTableViews.native.js.map +1 -1
  167. package/dist/esm/index.native.js.map +1 -1
  168. package/dist/esm/shared/devWarn.native.js.map +1 -1
  169. package/dist/esm/shared/t.native.js.map +1 -1
  170. package/dist/esm/shims/primitives.native.js.map +1 -1
  171. package/dist/esm/shims/tableCellContext.native.js.map +1 -1
  172. package/dist/esm/types.native.js.map +1 -1
  173. package/dist/esm/utils/chromeIcons.native.js.map +1 -1
  174. package/dist/esm/utils/columnAlign.native.js.map +1 -1
  175. package/dist/esm/utils/filterFields.native.js.map +1 -1
  176. package/dist/esm/utils/filterUtils.native.js.map +1 -1
  177. package/dist/esm/utils/money.native.js.map +1 -1
  178. package/dist/esm/utils/paginationDefaults.native.js.map +1 -1
  179. package/dist/esm/utils/rowAccumulator.native.js.map +1 -1
  180. package/dist/esm/utils/rowPress.native.js.map +1 -1
  181. package/dist/esm/utils/urlStateUtils.native.js.map +1 -1
  182. package/dist/esm/utils/viewData.native.js.map +1 -1
  183. package/dist/esm/utils/withInterp.native.js.map +1 -1
  184. package/dist/jsx/components/ChildTable/index.native.js +1 -1
  185. package/dist/jsx/components/ChildTable/index.native.js.map +1 -1
  186. package/dist/jsx/components/ColumnHeaderFilter/index.mjs +5 -2
  187. package/dist/jsx/components/ColumnHeaderFilter/index.mjs.map +1 -1
  188. package/dist/jsx/components/ColumnHeaderFilter/index.native.js +5 -2
  189. package/dist/jsx/components/ColumnHeaderFilter/index.native.js.map +1 -1
  190. package/dist/jsx/components/DataTable/DataTableCardControls.native.js +1 -1
  191. package/dist/jsx/components/DataTable/DataTableCardControls.native.js.map +1 -1
  192. package/dist/jsx/components/DataTable/DataTableContext.native.js.map +1 -1
  193. package/dist/jsx/components/DataTable/DataTableDocumentList.mjs +2 -1
  194. package/dist/jsx/components/DataTable/DataTableDocumentList.mjs.map +1 -1
  195. package/dist/jsx/components/DataTable/DataTableDocumentList.native.js +2 -1
  196. package/dist/jsx/components/DataTable/DataTableDocumentList.native.js.map +1 -1
  197. package/dist/jsx/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  198. package/dist/jsx/components/DataTable/DataTableRoot.mjs +17 -11
  199. package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -1
  200. package/dist/jsx/components/DataTable/DataTableRoot.native.js +29 -22
  201. package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -1
  202. package/dist/jsx/components/DataTable/DataTableStateContext.native.js.map +1 -1
  203. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs +2 -1
  204. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs.map +1 -1
  205. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js +2 -1
  206. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  207. package/dist/jsx/components/DataTable/dataTableChrome.native.js.map +1 -1
  208. package/dist/jsx/components/DataTable/documentListSlots.native.js.map +1 -1
  209. package/dist/jsx/components/DataTable/index.native.js +16 -20
  210. package/dist/jsx/components/DataTable/index.native.js.map +1 -1
  211. package/dist/jsx/components/DataTable/rowStateChrome.mjs +11 -4
  212. package/dist/jsx/components/DataTable/rowStateChrome.mjs.map +1 -1
  213. package/dist/jsx/components/DataTable/rowStateChrome.native.js +10 -3
  214. package/dist/jsx/components/DataTable/rowStateChrome.native.js.map +1 -1
  215. package/dist/jsx/components/DataTableBulkActions/index.native.js.map +1 -1
  216. package/dist/jsx/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
  217. package/dist/jsx/components/DataTableCell/index.native.js.map +1 -1
  218. package/dist/jsx/components/DataTableColumnPinning/index.native.js.map +1 -1
  219. package/dist/jsx/components/DataTableDateFilter/index.native.js.map +1 -1
  220. package/dist/jsx/components/DataTableExport/index.mjs +16 -10
  221. package/dist/jsx/components/DataTableExport/index.mjs.map +1 -1
  222. package/dist/jsx/components/DataTableExport/index.native.js +16 -10
  223. package/dist/jsx/components/DataTableExport/index.native.js.map +1 -1
  224. package/dist/jsx/components/DataTableFacetMenu/index.native.js.map +1 -1
  225. package/dist/jsx/components/DataTableFilterButton/index.native.js +1 -1
  226. package/dist/jsx/components/DataTableFilterButton/index.native.js.map +1 -1
  227. package/dist/jsx/components/DataTableFilterChips/FilterChip.native.js.map +1 -1
  228. package/dist/jsx/components/DataTableFilterChips/index.native.js.map +1 -1
  229. package/dist/jsx/components/DataTableFilters/index.native.js +2 -2
  230. package/dist/jsx/components/DataTableFilters/index.native.js.map +1 -1
  231. package/dist/jsx/components/DataTableGrouping/index.mjs +2 -2
  232. package/dist/jsx/components/DataTableGrouping/index.mjs.map +1 -1
  233. package/dist/jsx/components/DataTableGrouping/index.native.js +2 -2
  234. package/dist/jsx/components/DataTableGrouping/index.native.js.map +1 -1
  235. package/dist/jsx/components/DataTablePagination/index.native.js.map +1 -1
  236. package/dist/jsx/components/DataTableSearch/index.native.js.map +1 -1
  237. package/dist/jsx/components/DataTableToolbar/index.mjs +0 -1
  238. package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -1
  239. package/dist/jsx/components/DataTableToolbar/index.native.js +2 -3
  240. package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -1
  241. package/dist/jsx/components/DataTableViewOptions/index.native.js.map +1 -1
  242. package/dist/jsx/components/FilterManager.native.js.map +1 -1
  243. package/dist/jsx/components/FilterOperatorValueEditor/index.native.js.map +1 -1
  244. package/dist/jsx/components/KnobDialog.native.js.map +1 -1
  245. package/dist/jsx/components/SavedFilterDropdown.native.js.map +1 -1
  246. package/dist/jsx/components/SimpleTable/index.native.js.map +1 -1
  247. package/dist/jsx/components/TableInput/RowDetailEditor.native.js +1 -1
  248. package/dist/jsx/components/TableInput/index.native.js +1 -1
  249. package/dist/jsx/components/TableInput/shared.native.js.map +1 -1
  250. package/dist/jsx/hooks/useDataTable.native.js.map +1 -1
  251. package/dist/jsx/hooks/useDataTableKeyboard.native.js.map +1 -1
  252. package/dist/jsx/hooks/useDragScroll.native.js.map +1 -1
  253. package/dist/jsx/hooks/useInfiniteRows.native.js.map +1 -1
  254. package/dist/jsx/hooks/useSavedFilters.native.js.map +1 -1
  255. package/dist/jsx/hooks/useTableColumnPinning.native.js.map +1 -1
  256. package/dist/jsx/hooks/useTableFiltering.native.js.map +1 -1
  257. package/dist/jsx/hooks/useTableGrouping.native.js.map +1 -1
  258. package/dist/jsx/hooks/useTableKeyboard.native.js.map +1 -1
  259. package/dist/jsx/hooks/useTablePagination.native.js.map +1 -1
  260. package/dist/jsx/hooks/useTableSearch.native.js.map +1 -1
  261. package/dist/jsx/hooks/useTableSelection.native.js.map +1 -1
  262. package/dist/jsx/hooks/useTableSorting.native.js.map +1 -1
  263. package/dist/jsx/hooks/useTableUrlSync.native.js.map +1 -1
  264. package/dist/jsx/hooks/useTableViews.native.js.map +1 -1
  265. package/dist/jsx/index.native.js +20 -20
  266. package/dist/jsx/index.native.js.map +1 -1
  267. package/dist/jsx/shared/devWarn.native.js.map +1 -1
  268. package/dist/jsx/shared/t.native.js.map +1 -1
  269. package/dist/jsx/shims/primitives.native.js.map +1 -1
  270. package/dist/jsx/shims/tableCellContext.native.js.map +1 -1
  271. package/dist/jsx/types.native.js.map +1 -1
  272. package/dist/jsx/utils/chromeIcons.native.js.map +1 -1
  273. package/dist/jsx/utils/columnAlign.native.js.map +1 -1
  274. package/dist/jsx/utils/filterFields.native.js.map +1 -1
  275. package/dist/jsx/utils/filterUtils.native.js.map +1 -1
  276. package/dist/jsx/utils/money.native.js.map +1 -1
  277. package/dist/jsx/utils/paginationDefaults.native.js.map +1 -1
  278. package/dist/jsx/utils/rowAccumulator.native.js.map +1 -1
  279. package/dist/jsx/utils/rowPress.native.js.map +1 -1
  280. package/dist/jsx/utils/urlStateUtils.native.js.map +1 -1
  281. package/dist/jsx/utils/viewData.native.js.map +1 -1
  282. package/dist/jsx/utils/withInterp.native.js.map +1 -1
  283. package/package.json +12 -12
  284. package/src/components/ChildTable/ChildTable.stories.tsx +106 -0
  285. package/src/components/ColumnHeaderFilter/index.tsx +5 -3
  286. package/src/components/DataTable/DataTable.stories.tsx +27 -1
  287. package/src/components/DataTable/DataTableDocumentList.tsx +1 -0
  288. package/src/components/DataTable/DataTableRoot.tsx +22 -14
  289. package/src/components/DataTable/DataTableVirtualized.tsx +1 -0
  290. package/src/components/DataTable/index.native.tsx +4 -4
  291. package/src/components/DataTable/rowStateChrome.ts +8 -4
  292. package/src/components/DataTable/rowStateFill.spec.tsx +220 -0
  293. package/src/components/DataTableExport/index.tsx +10 -6
  294. package/src/components/DataTableGrouping/index.tsx +1 -1
  295. package/src/components/DataTablePagination/DataTablePagination.stories.tsx +10 -7
  296. package/src/components/DataTableToolbar/index.tsx +1 -6
  297. package/types/components/ColumnHeaderFilter/index.d.ts.map +1 -1
  298. package/types/components/DataTable/DataTableDocumentList.d.ts.map +1 -1
  299. package/types/components/DataTable/DataTableRoot.d.ts.map +1 -1
  300. package/types/components/DataTable/DataTableVirtualized.d.ts.map +1 -1
  301. package/types/components/DataTable/rowStateChrome.d.ts +1 -0
  302. package/types/components/DataTable/rowStateChrome.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value"],"sources":["../../../src/utils/viewData.ts"],"sourcesContent":[null],"mappings":"AASO,YAAS;;AACd,IAAAA,SAAI,GAAAC,MAAA,CAAAC,cAAA;AACF,IAAAC,gBAAqB,GAAAF,MAAA,CAAAG,wBAAA;AACrB,IAAAC,iBAAc,GAAAJ,MAAgB,CAAAK,mBAAA;AAC5B,IAAAC,YAAA,GAAWN,MAAO,CAAAO,SAAM,CAAAC,cAAA;AACtB,IAAAC,QAAI,GAAAA,CAAIC,MAAA,EAAAC,GAAA,KAAe;EACrB,SAAAC,IAAK,IAAID,GAAA,EAAaZ,SACxB,CAAAW,MAAO,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AACL;AAA6B,IAAAC,WAC/B,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EAAA,IACFF,IAAA,WAAAA,IAAA,wBAAAA,IAAA;IACF,SAAAG,GAAA,IAAAhB,iBAAA,CAAAa,IAAA,GACA,IAAK,CAAAX,YAAM,CAAAe,IAAA,CAAAL,EAAA,EAAkBI,GAAE,KAAIA,GAAA,KAAAF,MAAA,EACnCnB,SAAO,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EACT;EACE,OAAAE,EAAO;AAAC;AAEZ,IAAAM,YAAA,GAAAC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","viewData_exports","getViewLeafRows","module","exports","table","leaves","walk","walk1","rows","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","row","_row_getIsGrouped","getIsGrouped","_row_subRows","subRows","push","original","err","return","getSortedRowModel","unused"],"sources":["viewData.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar viewData_exports = {};\n__export(viewData_exports, {\n getViewLeafRows: () => getViewLeafRows\n});\nmodule.exports = __toCommonJS(viewData_exports);\nfunction getViewLeafRows(table) {\n try {\n var leaves = [];\n var walk = function walk1(rows) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = rows[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var row = _step.value;\n var _row_getIsGrouped;\n if ((_row_getIsGrouped = row.getIsGrouped) === null || _row_getIsGrouped === void 0 ? void 0 : _row_getIsGrouped.call(row)) {\n var _row_subRows;\n walk((_row_subRows = row.subRows) !== null && _row_subRows !== void 0 ? _row_subRows : []);\n } else {\n leaves.push(row.original);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n walk(table.getSortedRowModel().rows);\n return leaves;\n } catch (unused) {\n return [];\n }\n}\n//# sourceMappingURL=viewData.js.map\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc"],"sources":["../../../src/utils/withInterp.ts"],"sourcesContent":[null],"mappings":"AAMO,YAAS;;AAId,IAAAA,SAAK,GAAAC,MAAW,CAAAC,cAAgB;AAChC,IAAAC,gBAAkB,GAAAF,MAAQ,CAAAG,wBAAsB;AAC9C,IAAAC,iBAAc,GAAAJ,MAAW,CAAAK,mBAAA;AACzB,IAAAC,YAAO,GAAAN,MAAU,CAAAO,SAAa,CAAAC,cAAiB;AAA2B,IAC3EC,QAAA,GAAAA,CAAAC,MAAA,EAAAC,GAAA;EACH,SAAAC,IAAA,IAAAD,GAAA,EAYOZ,SAAS,CAAAW,MAAA,EAAYE,IAAA,EAAsB;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAChD;AACA,IAAAC,WAAO,GAASA,CAAAC,EAAA,EAAIC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EACtB,IAAAF,IAAA,WAAAA,IAAA,wBAAAA,IAAA","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","withInterp_exports","bidiIsolate","withInterp","module","exports","translated","options","includes","replace","_","String","text"],"sources":["withInterp.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar withInterp_exports = {};\n__export(withInterp_exports, {\n bidiIsolate: () => bidiIsolate,\n withInterp: () => withInterp\n});\nmodule.exports = __toCommonJS(withInterp_exports);\nfunction withInterp(translated, options) {\n if (!translated.includes(\"{{\")) return translated;\n return translated.replace(/\\{\\{(\\w+)\\}\\}/g, function(_, key) {\n var value = options[key];\n return value === void 0 || value === null ? `{{${key}}}` : String(value);\n });\n}\nfunction bidiIsolate(text) {\n if (!text) return text;\n return `\\u2068${text}\\u2069`;\n}\n//# sourceMappingURL=withInterp.js.map\n"],"mappings":"AAAA,YAAY;;AACZ,IAAIA,SAAS,GAAGC,MAAM,CAACC,cAAc;AACrC,IAAIC,gBAAgB,GAAGF,MAAM,CAACG,wBAAwB;AACtD,IAAIC,iBAAiB,GAAGJ,MAAM,CAACK,mBAAmB;AAClD,IAAIC,YAAY,GAAGN,MAAM,CAACO,SAAS,CAACC,cAAc;AAClD,IAAIC,QAAQ,GAAGA,CAACC,MAAM,EAAEC,GAAG,KAAK;EAC9B,KAAK,IAAIC,IAAI,IAAID,GAAG,EAClBZ,SAAS,CAACW,MAAM,EAAEE,IAAI,EAAE;IAAEC,GAAG,EAAEF,GAAG,CAACC,IAAI,CAAC;IAAEE,UAAU,EAAE;EAAK,CAAC,CAAC;AACjE,CAAC;AACD,IAAIC,WAAW,GAAGA,CAACC,EAAE,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,KAAK;EAC5C,IAAIF,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;IAClE,KAAK,IAAIG,GAAG,IAAIhB,iBAAiB,CAACa,IAAI,CAAC,EACrC,IAAI,CAACX,YAAY,CAACe,IAAI,CAACL,EAAE,EAAEI,GAAG,CAAC,IAAIA,GAAG,KAAKF,MAAM,EAC/CnB,SAAS,CAACiB,EAAE,EAAEI,GAAG,EAAE;MAAEP,GAAG,EAAEA,CAAA,KAAMI,IAAI,CAACG,GAAG,CAAC;MAAEN,UAAU,EAAE,EAAEK,IAAI,GAAGjB,gBAAgB,CAACe,IAAI,EAAEG,GAAG,CAAC,CAAC,IAAID,IAAI,CAACL;IAAW,CAAC,CAAC;EACxH;EACA,OAAOE,EAAE;AACX,CAAC;AACD,IAAIM,YAAY,GAAIC,GAAG,IAAKR,WAAW,CAAChB,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE;EAAEyB,KAAK,EAAE;AAAK,CAAC,CAAC,EAAED,GAAG,CAAC;AAC1F,IAAIE,kBAAkB,GAAG,CAAC,CAAC;AAC3BhB,QAAQ,CAACgB,kBAAkB,EAAE;EAC3BC,WAAW,EAAEA,CAAA,KAAMA,WAAW;EAC9BC,UAAU,EAAEA,CAAA,KAAMA;AACpB,CAAC,CAAC;AACFC,MAAM,CAACC,OAAO,GAAGP,YAAY,CAACG,kBAAkB,CAAC;AACjD,SAASE,UAAUA,CAACG,UAAU,EAAEC,OAAO,EAAE;EACvC,IAAI,CAACD,UAAU,CAACE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAOF,UAAU;EACjD,OAAOA,UAAU,CAACG,OAAO,CAAC,gBAAgB,EAAE,UAASC,CAAC,EAAEd,GAAG,EAAE;IAC3D,IAAII,KAAK,GAAGO,OAAO,CAACX,GAAG,CAAC;IACxB,OAAOI,KAAK,KAAK,KAAK,CAAC,IAAIA,KAAK,KAAK,IAAI,GAAG,KAAKJ,GAAG,IAAI,GAAGe,MAAM,CAACX,KAAK,CAAC;EAC1E,CAAC,CAAC;AACJ;AACA,SAASE,WAAWA,CAACU,IAAI,EAAE;EACzB,IAAI,CAACA,IAAI,EAAE,OAAOA,IAAI;EACtB,OAAO,SAASA,IAAI,QAAQ;AAC9B","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplatform.one/table",
3
- "version": "7.23.2",
3
+ "version": "7.24.0",
4
4
  "description": "Advanced table components with filtering, pagination, sorting, and URL state management",
5
5
  "keywords": [
6
6
  "cross-platform",
@@ -74,13 +74,13 @@
74
74
  "access": "public"
75
75
  },
76
76
  "dependencies": {
77
- "@multiplatform.one/components": "7.23.2",
78
- "@multiplatform.one/forms": "7.23.2",
79
- "@multiplatform.one/platform": "7.23.2",
80
- "@multiplatform.one/rich-text": "7.23.2",
81
- "@multiplatform.one/router": "7.23.2",
82
- "@multiplatform.one/table-primitives": "7.23.2",
83
- "@multiplatform.one/theme": "7.23.2",
77
+ "@multiplatform.one/components": "7.24.0",
78
+ "@multiplatform.one/forms": "7.24.0",
79
+ "@multiplatform.one/platform": "7.24.0",
80
+ "@multiplatform.one/rich-text": "7.24.0",
81
+ "@multiplatform.one/router": "7.24.0",
82
+ "@multiplatform.one/table-primitives": "7.24.0",
83
+ "@multiplatform.one/theme": "7.24.0",
84
84
  "@phosphor-icons/react": "^2.1.10",
85
85
  "@shopify/flash-list": "^2.3.1",
86
86
  "@tamagui/roving-focus": "2.7.6",
@@ -90,10 +90,10 @@
90
90
  "tamagui": "2.7.6"
91
91
  },
92
92
  "devDependencies": {
93
- "@multiplatform.one/config": "7.23.2",
94
- "@multiplatform.one/router": "7.23.2",
95
- "@multiplatform.one/storybook": "7.23.2",
96
- "@multiplatform.one/test-utils": "7.23.2",
93
+ "@multiplatform.one/config": "7.24.0",
94
+ "@multiplatform.one/router": "7.24.0",
95
+ "@multiplatform.one/storybook": "7.24.0",
96
+ "@multiplatform.one/test-utils": "7.24.0",
97
97
  "@tamagui/build": "2.7.6",
98
98
  "@testing-library/react": "^16.3.2",
99
99
  "@types/react-dom": "^19.2.3",
@@ -145,3 +145,109 @@ const InsideFormStory = () => {
145
145
  export const InsideForm: Story = {
146
146
  render: () => <InsideFormStory />,
147
147
  };
148
+
149
+ interface OrderLine extends DataTableData {
150
+ id: string;
151
+ idx: number;
152
+ item: string;
153
+ qty: number;
154
+ status: string;
155
+ deliverBy: string;
156
+ rate: number;
157
+ urgent: boolean;
158
+ notes: string;
159
+ }
160
+
161
+ const orderLines: OrderLine[] = [
162
+ {
163
+ id: "line-1",
164
+ idx: 1,
165
+ item: "Steel bracket",
166
+ qty: 12,
167
+ status: "ordered",
168
+ deliverBy: "2026-10-20",
169
+ rate: 4.5,
170
+ urgent: false,
171
+ notes: "",
172
+ },
173
+ {
174
+ id: "line-2",
175
+ idx: 2,
176
+ item: "M6 bolts (100pk)",
177
+ qty: 3,
178
+ status: "draft",
179
+ deliverBy: "2026-10-12",
180
+ rate: 11.25,
181
+ urgent: true,
182
+ notes: "Split across two pallets",
183
+ },
184
+ {
185
+ id: "line-3",
186
+ idx: 3,
187
+ item: "Powder coat, black",
188
+ qty: 1,
189
+ status: "received",
190
+ deliverBy: "2026-11-01",
191
+ rate: 89,
192
+ urgent: false,
193
+ notes: "",
194
+ },
195
+ ];
196
+
197
+ const statusOptions = [
198
+ { label: "Draft", value: "draft" },
199
+ { label: "Ordered", value: "ordered" },
200
+ { label: "Received", value: "received" },
201
+ { label: "Cancelled", value: "cancelled" },
202
+ { label: "Shipped", value: "shipped" },
203
+ { label: "Returned", value: "returned" },
204
+ ];
205
+
206
+ const gridColumns: DataTableColumn<OrderLine>[] = [
207
+ { accessorKey: "item", header: "Item", field: "input" },
208
+ { accessorKey: "qty", header: "Qty", field: "stepper", fieldProps: { min: 0 } },
209
+ {
210
+ accessorKey: "status",
211
+ header: "Status",
212
+ field: "select",
213
+ fieldProps: { options: statusOptions },
214
+ },
215
+ { accessorKey: "deliverBy", header: "Deliver by", field: "datepicker" },
216
+ ];
217
+
218
+ const detailColumns: DataTableColumn<OrderLine>[] = [
219
+ ...gridColumns,
220
+ {
221
+ accessorKey: "rate",
222
+ header: "Rate",
223
+ field: "stepper",
224
+ fieldProps: { min: 0, step: 0.25, precision: 2, currency: "USD" },
225
+ },
226
+ { accessorKey: "urgent", header: "Urgent", field: "checkbox" },
227
+ { accessorKey: "notes", header: "Notes", field: "textarea" },
228
+ ];
229
+
230
+ const RowDetailStory = (args: Record<string, unknown>) => {
231
+ const [rows, setRows] = React.useState<OrderLine[]>(orderLines);
232
+ return (
233
+ <YStack gap="$3">
234
+ <ChildTable<OrderLine>
235
+ {...args}
236
+ label="Order lines"
237
+ helperText="The grid shows the list columns; the pencil opens the whole row."
238
+ value={rows}
239
+ columns={gridColumns}
240
+ detailColumns={detailColumns}
241
+ rowDetail
242
+ onChange={setRows}
243
+ />
244
+ <Text testID="childtable-idx" fontSize="$2" color="$color10" fontFamily="$mono">
245
+ idx: {rows.map((row) => `${row.idx}:${row.item}`).join(" | ")}
246
+ </Text>
247
+ </YStack>
248
+ );
249
+ };
250
+
251
+ export const RowDetail: Story = {
252
+ render: (args) => <RowDetailStory {...args} />,
253
+ };
@@ -16,7 +16,7 @@ import {
16
16
  } from "@multiplatform.one/theme";
17
17
  import { useState } from "react";
18
18
  import { Tooltip } from "@multiplatform.one/components";
19
- import { Text, View, XStack, YStack } from "tamagui";
19
+ import { Text, View, XStack, YStack, styled } from "tamagui";
20
20
  import { t } from "../../shared/t";
21
21
  import type { DataTableColumnType, FilterOperator } from "../../types";
22
22
  import { iconSizeForToken } from "../../utils/chromeIcons";
@@ -54,6 +54,8 @@ const FILTER_TRIGGER_OUTSET = Math.max(
54
54
  Math.ceil((MIN_PRESS_TARGET - FILTER_TRIGGER_VISUAL) / 2),
55
55
  );
56
56
 
57
+ const FilterTriggerTarget = styled(View, { name: "FilterTriggerTarget" });
58
+
57
59
  export function ColumnHeaderFilter({
58
60
  columnId: _columnId,
59
61
  columnLabel,
@@ -116,7 +118,7 @@ export function ColumnHeaderFilter({
116
118
  negative outsets. Painted hover and keyboard focus feedback
117
119
  ride the glyph-scale ring inside
118
120
  (Chip dismiss anatomy). */}
119
- <View
121
+ <FilterTriggerTarget
120
122
  cursor="pointer"
121
123
  {...pressTargetStyle()}
122
124
  alignItems="center"
@@ -156,7 +158,7 @@ export function ColumnHeaderFilter({
156
158
  >
157
159
  <FunnelIcon size={iconPx} color={glyphColor} weight={isFiltered ? "fill" : "regular"} />
158
160
  </View>
159
- </View>
161
+ </FilterTriggerTarget>
160
162
  </Tooltip>
161
163
  );
162
164
 
@@ -2979,7 +2979,7 @@ export const CompoundComposition: Story = {
2979
2979
  * selection checkboxes and the per-row Edit button here — stay isolated:
2980
2980
  * pressing them never fires the row press.
2981
2981
  */
2982
- const RowPressStory = () => {
2982
+ const RowPressStory = ({ body }: { body?: "virtual" | "list" }) => {
2983
2983
  const data = useMemo(() => generateUsers(8), []);
2984
2984
  const rowPressColumns = useMemo<DataTableColumn<User>[]>(
2985
2985
  () => [
@@ -3018,6 +3018,8 @@ const RowPressStory = () => {
3018
3018
  onRowPress={fn()}
3019
3019
  rowLabel={(row) => (row as User).firstName}
3020
3020
  aria-label="Row press table"
3021
+ {...(body === "list" ? { layout: "list" as const } : {})}
3022
+ {...(body === "virtual" ? { enableVirtualization: true, virtualizationHeight: 400 } : {})}
3021
3023
  />
3022
3024
  );
3023
3025
  };
@@ -3034,6 +3036,30 @@ export const RowPress: Story = {
3034
3036
  },
3035
3037
  };
3036
3038
 
3039
+ export const RowPressVirtualized: Story = {
3040
+ render: () => <RowPressStory body="virtual" />,
3041
+ parameters: {
3042
+ docs: {
3043
+ description: {
3044
+ story:
3045
+ "The RowPress contract on virtual rows. A selected row hovers and presses off the fill it rests on, as in the grid (MPO-408).",
3046
+ },
3047
+ },
3048
+ },
3049
+ };
3050
+
3051
+ export const RowPressList: Story = {
3052
+ render: () => <RowPressStory body="list" />,
3053
+ parameters: {
3054
+ docs: {
3055
+ description: {
3056
+ story:
3057
+ "The RowPress contract on the document list. A selected row hovers and presses off the fill it rests on, as in the grid (MPO-408).",
3058
+ },
3059
+ },
3060
+ },
3061
+ };
3062
+
3037
3063
  // ============================================================================
3038
3064
  // CUSTOM-CELL ALIGNMENT (DG-TBL-01 for custom renderers)
3039
3065
  // ============================================================================
@@ -87,6 +87,7 @@ export function DataTableDocumentList<TData extends Record<string, any>>({
87
87
  selected,
88
88
  zebraOn: tableZebraOn,
89
89
  index,
90
+ pressable: Boolean(getRowPressProps),
90
91
  });
91
92
 
92
93
  return (
@@ -609,9 +609,7 @@ export function DataTableRoot<TData extends Record<string, any> = Record<string,
609
609
  "aria-label": deriveRowLabel(row, rowIndex),
610
610
  onPress: handlePress,
611
611
  cursor: "pointer" as const,
612
- ...(variant === "card"
613
- ? { role: "button" as const }
614
- : { pressStyle: { backgroundColor: "$color4" } }),
612
+ ...(variant === "card" ? { role: "button" as const } : {}),
615
613
  ...(isWeb && !isSSR
616
614
  ? {
617
615
  tabIndex: rowIndex === effectiveRowPressAnchor ? 0 : -1,
@@ -1964,6 +1962,7 @@ export function DataTableRoot<TData extends Record<string, any> = Record<string,
1964
1962
  keyboardFocused: false,
1965
1963
  zebraOn: tableZebraOn,
1966
1964
  index,
1965
+ pressable: rowPressActive,
1967
1966
  }) as any)}
1968
1967
  {...({ animation: "quick" } as any)}
1969
1968
  flexShrink={0}
@@ -2099,10 +2098,11 @@ export function DataTableRoot<TData extends Record<string, any> = Record<string,
2099
2098
  cut off below the fold, so the frame says so with a
2100
2099
  bottom fade that clears once the last row is reached.
2101
2100
  Sticky inside the scroll container; zero layout cost
2102
- (negative margin overlays the last visible row).
2103
- Rendered as a Table.Row: a <div> is not a valid child
2104
- of the real <tbody> (SSR parsers foster-parent it out
2105
- of the table). Only reachable in the flex displayMode
2101
+ (a zero-height row whose cell paints the fade upward
2102
+ over the last visible row). Rendered as a Table.Row
2103
+ and a <td>: a <div> is not a valid child of the real
2104
+ <tbody> or <tr> (SSR parsers foster-parent it out of
2105
+ the table). Only reachable in the flex displayMode
2106
2106
  (bodyClipped needs a scrollable body), where the row
2107
2107
  renders display:flex like the old View. */}
2108
2108
  {isWeb && bodyClipped && (
@@ -2111,17 +2111,25 @@ export function DataTableRoot<TData extends Record<string, any> = Record<string,
2111
2111
  role="presentation"
2112
2112
  position={"sticky" as any}
2113
2113
  bottom={0}
2114
- height={28}
2115
- marginTop={-28}
2114
+ height={0}
2116
2115
  flexShrink={0}
2117
2116
  zIndex={2}
2118
2117
  pointerEvents="none"
2119
2118
  {...({ "data-table-clip-affordance": "true" } as any)}
2120
- style={{
2121
- background:
2122
- "linear-gradient(to bottom, rgba(0,0,0,0), var(--background))",
2123
- }}
2124
- />
2119
+ >
2120
+ <View
2121
+ {...({ render: "td" } as Record<string, unknown>)}
2122
+ position="absolute"
2123
+ left={0}
2124
+ right={0}
2125
+ bottom={0}
2126
+ height={28}
2127
+ style={{
2128
+ background:
2129
+ "linear-gradient(to bottom, rgba(0,0,0,0), var(--background))",
2130
+ }}
2131
+ />
2132
+ </Table.Row>
2125
2133
  )}
2126
2134
  </Table.Body>
2127
2135
 
@@ -195,6 +195,7 @@ export function DataTableVirtualized({
195
195
  keyboardFocused: false,
196
196
  zebraOn: tableZebraOn,
197
197
  index: virtualRow.index,
198
+ pressable: Boolean(getRowPressProps),
198
199
  }) as any)}
199
200
  {...({
200
201
  "data-table-zebra": tableZebraOn
@@ -561,13 +561,12 @@ function DataTableRoot<TData extends Record<string, any> = Record<string, any>>(
561
561
  const getRowPressProps = useCallback(
562
562
  // The card list asks for the "card" variant. Native carries no DOM row
563
563
  // role for it to override, so both variants land on role="button".
564
- (row: (typeof tableRows)[0], index: number, variant: "row" | "card" = "row") => {
564
+ (row: (typeof tableRows)[0], index: number, _variant: "row" | "card" = "row") => {
565
565
  if (!rowPressActive) return {};
566
566
  return {
567
567
  onPress: () => onRowPress?.(row.original as TData, index),
568
568
  role: "button" as const,
569
569
  "aria-label": deriveRowLabel(row, index),
570
- ...(variant === "row" ? { pressStyle: { backgroundColor: "$color4" } } : {}),
571
570
  };
572
571
  },
573
572
  [rowPressActive, onRowPress, deriveRowLabel],
@@ -580,6 +579,7 @@ function DataTableRoot<TData extends Record<string, any> = Record<string, any>>(
580
579
  selected: Boolean(row.getIsSelected?.()),
581
580
  zebraOn: tableZebraOn,
582
581
  index,
582
+ pressable: rowPressActive,
583
583
  }) as any)}
584
584
  rowLocation="middle"
585
585
  key={`${row.id}-${index}`}
@@ -594,7 +594,7 @@ function DataTableRoot<TData extends Record<string, any> = Record<string, any>>(
594
594
  {renderRowContent(row, index)}
595
595
  </Table.Row>
596
596
  ),
597
- [renderRowContent, tableZebraOn, t, getRowPressProps],
597
+ [renderRowContent, tableZebraOn, t, getRowPressProps, rowPressActive],
598
598
  );
599
599
 
600
600
  const renderToolbarComponent = () => {
@@ -771,6 +771,7 @@ function DataTableRoot<TData extends Record<string, any> = Record<string, any>>(
771
771
  flex={1}
772
772
  flexDirection="column"
773
773
  width="100%"
774
+ paddingBottom={enablePagination ? "$10" : undefined}
774
775
  aria-label={`${ariaLabel || "Data table"} content`}
775
776
  >
776
777
  <Table
@@ -779,7 +780,6 @@ function DataTableRoot<TData extends Record<string, any> = Record<string, any>>(
779
780
  cellHeight={cellHeight}
780
781
  {...knobProps.borderRadiusOuter}
781
782
  width="100%"
782
- marginBottom={enablePagination ? "$10" : undefined}
783
783
  aria-label={ariaLabel || "Data table"}
784
784
  aria-rowcount={computed.totalPages * state.pagination.pageSize}
785
785
  aria-colcount={
@@ -6,7 +6,7 @@
6
6
  * cell when Excel-mode keyboard nav is on the cell).
7
7
  */
8
8
 
9
- import { tableZebraFill } from "@multiplatform.one/table-primitives";
9
+ import { tablePressFill, tableZebraFill } from "@multiplatform.one/table-primitives";
10
10
  import { ensureFocusVisibleRing, keyboardFocusRingProps } from "@multiplatform.one/theme";
11
11
 
12
12
  export const tableRowFocusVisibleStyle = ensureFocusVisibleRing({ outlineOffset: -2 });
@@ -16,14 +16,18 @@ export function tableRowStateProps(opts: {
16
16
  keyboardFocused?: boolean;
17
17
  zebraOn?: boolean;
18
18
  index?: number;
19
+ pressable?: boolean;
19
20
  }): Record<string, unknown> {
20
21
  const selected = Boolean(opts.selected);
21
22
  const keyboardFocused = Boolean(opts.keyboardFocused);
22
23
  const zebra = Boolean(opts.zebraOn) && (opts.index ?? 0) % 2 === 1;
23
- const rest = zebra ? tableZebraFill("$color1") : "$color1";
24
+ const rest = selected ? "$color4" : zebra ? tableZebraFill("$color1") : "$color1";
25
+ const hover = selected ? tablePressFill(rest) : "$color3";
24
26
  return {
25
- backgroundColor: selected ? "$color4" : rest,
26
- hoverStyle: { backgroundColor: selected ? "$color4" : "$color3" },
27
+ backgroundColor: rest,
28
+ hoverStyle: { backgroundColor: hover },
29
+ // A pointer press is hovered too, so the press steps off the hover fill.
30
+ ...(opts.pressable ? { pressStyle: { backgroundColor: tablePressFill(hover) } } : {}),
27
31
  ...(keyboardFocused ? keyboardFocusRingProps : {}),
28
32
  "aria-selected": selected ? true : undefined,
29
33
  "data-row-selected": selected ? "true" : "false",