@multiplatform.one/table 7.34.4 → 7.35.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 (396) hide show
  1. package/dist/cjs/components/ChildTable/index.cjs +26 -23
  2. package/dist/cjs/components/ChildTable/index.native.js +26 -23
  3. package/dist/cjs/components/ChildTable/index.native.js.map +1 -1
  4. package/dist/cjs/components/DataTable/DataTableCardControls.cjs +3 -8
  5. package/dist/cjs/components/DataTable/DataTableCardControls.native.js +3 -8
  6. package/dist/cjs/components/DataTable/DataTableCardControls.native.js.map +1 -1
  7. package/dist/cjs/components/DataTable/DataTableContext.cjs +1 -2
  8. package/dist/cjs/components/DataTable/DataTableContext.native.js +1 -2
  9. package/dist/cjs/components/DataTable/DataTableContext.native.js.map +1 -1
  10. package/dist/cjs/components/DataTable/DataTableDocumentList.cjs +50 -20
  11. package/dist/cjs/components/DataTable/DataTableDocumentList.native.js +59 -27
  12. package/dist/cjs/components/DataTable/DataTableDocumentList.native.js.map +1 -1
  13. package/dist/cjs/components/DataTable/DataTableInfiniteTail.cjs +1 -1
  14. package/dist/cjs/components/DataTable/DataTableInfiniteTail.native.js +1 -1
  15. package/dist/cjs/components/DataTable/DataTableInfiniteTail.native.js.map +1 -1
  16. package/dist/cjs/components/DataTable/DataTableMobileCards.cjs +5 -11
  17. package/dist/cjs/components/DataTable/DataTableMobileCards.native.js +5 -11
  18. package/dist/cjs/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  19. package/dist/cjs/components/DataTable/DataTableRoot.cjs +601 -606
  20. package/dist/cjs/components/DataTable/DataTableRoot.native.js +705 -710
  21. package/dist/cjs/components/DataTable/DataTableRoot.native.js.map +1 -1
  22. package/dist/cjs/components/DataTable/DataTableVirtualized.cjs +3 -2
  23. package/dist/cjs/components/DataTable/DataTableVirtualized.native.js +3 -2
  24. package/dist/cjs/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  25. package/dist/cjs/components/DataTable/documentListSlots.cjs +8 -1
  26. package/dist/cjs/components/DataTable/documentListSlots.native.js +8 -1
  27. package/dist/cjs/components/DataTable/documentListSlots.native.js.map +1 -1
  28. package/dist/cjs/components/DataTable/index.native.js +264 -252
  29. package/dist/cjs/components/DataTable/index.native.js.map +1 -1
  30. package/dist/cjs/components/DataTableCell/index.cjs +2 -5
  31. package/dist/cjs/components/DataTableCell/index.native.js +2 -5
  32. package/dist/cjs/components/DataTableCell/index.native.js.map +1 -1
  33. package/dist/cjs/components/DataTableColumnPinning/index.cjs +2 -1
  34. package/dist/cjs/components/DataTableColumnPinning/index.native.js +2 -1
  35. package/dist/cjs/components/DataTableColumnPinning/index.native.js.map +1 -1
  36. package/dist/cjs/components/DataTableFilterButton/index.cjs +3 -5
  37. package/dist/cjs/components/DataTableFilterButton/index.native.js +3 -5
  38. package/dist/cjs/components/DataTableFilterButton/index.native.js.map +1 -1
  39. package/dist/cjs/components/DataTableFilterChips/index.cjs +0 -1
  40. package/dist/cjs/components/DataTableFilterChips/index.native.js +0 -1
  41. package/dist/cjs/components/DataTableFilters/index.cjs +11 -19
  42. package/dist/cjs/components/DataTableFilters/index.native.js +11 -19
  43. package/dist/cjs/components/DataTableFilters/index.native.js.map +1 -1
  44. package/dist/cjs/components/DataTableGrouping/index.cjs +5 -5
  45. package/dist/cjs/components/DataTableGrouping/index.native.js +7 -7
  46. package/dist/cjs/components/DataTableGrouping/index.native.js.map +1 -1
  47. package/dist/cjs/components/DataTablePagination/index.cjs +14 -18
  48. package/dist/cjs/components/DataTablePagination/index.native.js +14 -18
  49. package/dist/cjs/components/DataTablePagination/index.native.js.map +1 -1
  50. package/dist/cjs/components/DataTableSearch/index.cjs +5 -7
  51. package/dist/cjs/components/DataTableSearch/index.native.js +5 -7
  52. package/dist/cjs/components/DataTableSearch/index.native.js.map +1 -1
  53. package/dist/cjs/components/DataTableToolbar/index.cjs +2 -10
  54. package/dist/cjs/components/DataTableToolbar/index.native.js +2 -10
  55. package/dist/cjs/components/DataTableToolbar/index.native.js.map +1 -1
  56. package/dist/cjs/components/DataTableViewOptions/index.cjs +5 -3
  57. package/dist/cjs/components/DataTableViewOptions/index.native.js +6 -4
  58. package/dist/cjs/components/DataTableViewOptions/index.native.js.map +1 -1
  59. package/dist/cjs/components/KnobDialog.cjs +4 -34
  60. package/dist/cjs/components/KnobDialog.native.js +3 -34
  61. package/dist/cjs/components/KnobDialog.native.js.map +1 -1
  62. package/dist/cjs/components/SavedFilterDropdown.cjs +0 -1
  63. package/dist/cjs/components/SavedFilterDropdown.native.js +0 -1
  64. package/dist/cjs/components/SavedFilterDropdown.native.js.map +1 -1
  65. package/dist/cjs/components/SimpleTable/ScrollFrame.cjs +51 -0
  66. package/dist/cjs/components/SimpleTable/ScrollFrame.native.js +84 -0
  67. package/dist/cjs/components/SimpleTable/ScrollFrame.native.js.map +1 -0
  68. package/dist/cjs/components/SimpleTable/columnSizing.cjs +50 -0
  69. package/dist/cjs/components/SimpleTable/columnSizing.native.js +71 -0
  70. package/dist/cjs/components/SimpleTable/columnSizing.native.js.map +1 -0
  71. package/dist/cjs/components/SimpleTable/index.cjs +149 -96
  72. package/dist/cjs/components/SimpleTable/index.native.js +163 -109
  73. package/dist/cjs/components/SimpleTable/index.native.js.map +1 -1
  74. package/dist/cjs/components/TableInput/RowDetailEditor.cjs +1 -6
  75. package/dist/cjs/components/TableInput/RowDetailEditor.native.js +1 -5
  76. package/dist/cjs/components/TableInput/RowDetailEditor.native.js.map +1 -1
  77. package/dist/cjs/components/TableInput/index.cjs +4 -19
  78. package/dist/cjs/components/TableInput/index.native.js +2 -11
  79. package/dist/cjs/components/TableInput/index.native.js.map +1 -1
  80. package/dist/esm/components/ChildTable/index.mjs +26 -23
  81. package/dist/esm/components/ChildTable/index.mjs.map +1 -1
  82. package/dist/esm/components/ChildTable/index.native.js +26 -23
  83. package/dist/esm/components/ChildTable/index.native.js.map +1 -1
  84. package/dist/esm/components/DataTable/DataTableCardControls.mjs +3 -8
  85. package/dist/esm/components/DataTable/DataTableCardControls.mjs.map +1 -1
  86. package/dist/esm/components/DataTable/DataTableCardControls.native.js +3 -8
  87. package/dist/esm/components/DataTable/DataTableCardControls.native.js.map +1 -1
  88. package/dist/esm/components/DataTable/DataTableContext.mjs +1 -2
  89. package/dist/esm/components/DataTable/DataTableContext.mjs.map +1 -1
  90. package/dist/esm/components/DataTable/DataTableContext.native.js +1 -2
  91. package/dist/esm/components/DataTable/DataTableContext.native.js.map +1 -1
  92. package/dist/esm/components/DataTable/DataTableDocumentList.mjs +52 -22
  93. package/dist/esm/components/DataTable/DataTableDocumentList.mjs.map +1 -1
  94. package/dist/esm/components/DataTable/DataTableDocumentList.native.js +61 -29
  95. package/dist/esm/components/DataTable/DataTableDocumentList.native.js.map +1 -1
  96. package/dist/esm/components/DataTable/DataTableInfiniteTail.mjs +1 -1
  97. package/dist/esm/components/DataTable/DataTableInfiniteTail.mjs.map +1 -1
  98. package/dist/esm/components/DataTable/DataTableInfiniteTail.native.js +1 -1
  99. package/dist/esm/components/DataTable/DataTableInfiniteTail.native.js.map +1 -1
  100. package/dist/esm/components/DataTable/DataTableMobileCards.mjs +5 -11
  101. package/dist/esm/components/DataTable/DataTableMobileCards.mjs.map +1 -1
  102. package/dist/esm/components/DataTable/DataTableMobileCards.native.js +5 -11
  103. package/dist/esm/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  104. package/dist/esm/components/DataTable/DataTableRoot.mjs +603 -608
  105. package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -1
  106. package/dist/esm/components/DataTable/DataTableRoot.native.js +707 -712
  107. package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -1
  108. package/dist/esm/components/DataTable/DataTableVirtualized.mjs +4 -3
  109. package/dist/esm/components/DataTable/DataTableVirtualized.mjs.map +1 -1
  110. package/dist/esm/components/DataTable/DataTableVirtualized.native.js +4 -3
  111. package/dist/esm/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  112. package/dist/esm/components/DataTable/documentListSlots.mjs +8 -1
  113. package/dist/esm/components/DataTable/documentListSlots.mjs.map +1 -1
  114. package/dist/esm/components/DataTable/documentListSlots.native.js +8 -1
  115. package/dist/esm/components/DataTable/documentListSlots.native.js.map +1 -1
  116. package/dist/esm/components/DataTable/index.native.js +265 -253
  117. package/dist/esm/components/DataTable/index.native.js.map +1 -1
  118. package/dist/esm/components/DataTableCell/index.mjs +2 -5
  119. package/dist/esm/components/DataTableCell/index.mjs.map +1 -1
  120. package/dist/esm/components/DataTableCell/index.native.js +2 -5
  121. package/dist/esm/components/DataTableCell/index.native.js.map +1 -1
  122. package/dist/esm/components/DataTableColumnPinning/index.mjs +2 -1
  123. package/dist/esm/components/DataTableColumnPinning/index.mjs.map +1 -1
  124. package/dist/esm/components/DataTableColumnPinning/index.native.js +2 -1
  125. package/dist/esm/components/DataTableColumnPinning/index.native.js.map +1 -1
  126. package/dist/esm/components/DataTableFilterButton/index.mjs +4 -6
  127. package/dist/esm/components/DataTableFilterButton/index.mjs.map +1 -1
  128. package/dist/esm/components/DataTableFilterButton/index.native.js +4 -6
  129. package/dist/esm/components/DataTableFilterButton/index.native.js.map +1 -1
  130. package/dist/esm/components/DataTableFilterChips/index.mjs +0 -1
  131. package/dist/esm/components/DataTableFilterChips/index.mjs.map +1 -1
  132. package/dist/esm/components/DataTableFilterChips/index.native.js +0 -1
  133. package/dist/esm/components/DataTableFilters/index.mjs +12 -20
  134. package/dist/esm/components/DataTableFilters/index.mjs.map +1 -1
  135. package/dist/esm/components/DataTableFilters/index.native.js +12 -20
  136. package/dist/esm/components/DataTableFilters/index.native.js.map +1 -1
  137. package/dist/esm/components/DataTableGrouping/index.mjs +6 -6
  138. package/dist/esm/components/DataTableGrouping/index.mjs.map +1 -1
  139. package/dist/esm/components/DataTableGrouping/index.native.js +8 -8
  140. package/dist/esm/components/DataTableGrouping/index.native.js.map +1 -1
  141. package/dist/esm/components/DataTablePagination/index.mjs +15 -19
  142. package/dist/esm/components/DataTablePagination/index.mjs.map +1 -1
  143. package/dist/esm/components/DataTablePagination/index.native.js +15 -19
  144. package/dist/esm/components/DataTablePagination/index.native.js.map +1 -1
  145. package/dist/esm/components/DataTableSearch/index.mjs +5 -7
  146. package/dist/esm/components/DataTableSearch/index.mjs.map +1 -1
  147. package/dist/esm/components/DataTableSearch/index.native.js +5 -7
  148. package/dist/esm/components/DataTableSearch/index.native.js.map +1 -1
  149. package/dist/esm/components/DataTableToolbar/index.mjs +2 -10
  150. package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -1
  151. package/dist/esm/components/DataTableToolbar/index.native.js +2 -10
  152. package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -1
  153. package/dist/esm/components/DataTableViewOptions/index.mjs +6 -4
  154. package/dist/esm/components/DataTableViewOptions/index.mjs.map +1 -1
  155. package/dist/esm/components/DataTableViewOptions/index.native.js +7 -5
  156. package/dist/esm/components/DataTableViewOptions/index.native.js.map +1 -1
  157. package/dist/esm/components/KnobDialog.mjs +6 -36
  158. package/dist/esm/components/KnobDialog.mjs.map +1 -1
  159. package/dist/esm/components/KnobDialog.native.js +5 -36
  160. package/dist/esm/components/KnobDialog.native.js.map +1 -1
  161. package/dist/esm/components/SavedFilterDropdown.mjs +0 -1
  162. package/dist/esm/components/SavedFilterDropdown.mjs.map +1 -1
  163. package/dist/esm/components/SavedFilterDropdown.native.js +0 -1
  164. package/dist/esm/components/SavedFilterDropdown.native.js.map +1 -1
  165. package/dist/esm/components/SimpleTable/ScrollFrame.mjs +25 -0
  166. package/dist/esm/components/SimpleTable/ScrollFrame.mjs.map +1 -0
  167. package/dist/esm/components/SimpleTable/ScrollFrame.native.js +55 -0
  168. package/dist/esm/components/SimpleTable/ScrollFrame.native.js.map +1 -0
  169. package/dist/esm/components/SimpleTable/columnSizing.mjs +25 -0
  170. package/dist/esm/components/SimpleTable/columnSizing.mjs.map +1 -0
  171. package/dist/esm/components/SimpleTable/columnSizing.native.js +43 -0
  172. package/dist/esm/components/SimpleTable/columnSizing.native.js.map +1 -0
  173. package/dist/esm/components/SimpleTable/index.mjs +150 -97
  174. package/dist/esm/components/SimpleTable/index.mjs.map +1 -1
  175. package/dist/esm/components/SimpleTable/index.native.js +164 -110
  176. package/dist/esm/components/SimpleTable/index.native.js.map +1 -1
  177. package/dist/esm/components/TableInput/RowDetailEditor.mjs +1 -6
  178. package/dist/esm/components/TableInput/RowDetailEditor.mjs.map +1 -1
  179. package/dist/esm/components/TableInput/RowDetailEditor.native.js +1 -5
  180. package/dist/esm/components/TableInput/RowDetailEditor.native.js.map +1 -1
  181. package/dist/esm/components/TableInput/index.mjs +5 -20
  182. package/dist/esm/components/TableInput/index.mjs.map +1 -1
  183. package/dist/esm/components/TableInput/index.native.js +3 -12
  184. package/dist/esm/components/TableInput/index.native.js.map +1 -1
  185. package/dist/jsx/components/ChildTable/index.mjs +26 -23
  186. package/dist/jsx/components/ChildTable/index.mjs.map +1 -1
  187. package/dist/jsx/components/ChildTable/index.native.js +26 -23
  188. package/dist/jsx/components/ChildTable/index.native.js.map +1 -1
  189. package/dist/jsx/components/DataTable/DataTableCardControls.mjs +3 -8
  190. package/dist/jsx/components/DataTable/DataTableCardControls.mjs.map +1 -1
  191. package/dist/jsx/components/DataTable/DataTableCardControls.native.js +3 -8
  192. package/dist/jsx/components/DataTable/DataTableCardControls.native.js.map +1 -1
  193. package/dist/jsx/components/DataTable/DataTableContext.mjs +1 -2
  194. package/dist/jsx/components/DataTable/DataTableContext.mjs.map +1 -1
  195. package/dist/jsx/components/DataTable/DataTableContext.native.js +1 -2
  196. package/dist/jsx/components/DataTable/DataTableContext.native.js.map +1 -1
  197. package/dist/jsx/components/DataTable/DataTableDocumentList.mjs +52 -22
  198. package/dist/jsx/components/DataTable/DataTableDocumentList.mjs.map +1 -1
  199. package/dist/jsx/components/DataTable/DataTableDocumentList.native.js +59 -27
  200. package/dist/jsx/components/DataTable/DataTableDocumentList.native.js.map +1 -1
  201. package/dist/jsx/components/DataTable/DataTableInfiniteTail.mjs +1 -1
  202. package/dist/jsx/components/DataTable/DataTableInfiniteTail.mjs.map +1 -1
  203. package/dist/jsx/components/DataTable/DataTableInfiniteTail.native.js +1 -1
  204. package/dist/jsx/components/DataTable/DataTableInfiniteTail.native.js.map +1 -1
  205. package/dist/jsx/components/DataTable/DataTableMobileCards.mjs +5 -11
  206. package/dist/jsx/components/DataTable/DataTableMobileCards.mjs.map +1 -1
  207. package/dist/jsx/components/DataTable/DataTableMobileCards.native.js +5 -11
  208. package/dist/jsx/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  209. package/dist/jsx/components/DataTable/DataTableRoot.mjs +603 -608
  210. package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -1
  211. package/dist/jsx/components/DataTable/DataTableRoot.native.js +705 -710
  212. package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -1
  213. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs +4 -3
  214. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs.map +1 -1
  215. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js +3 -2
  216. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  217. package/dist/jsx/components/DataTable/documentListSlots.mjs +8 -1
  218. package/dist/jsx/components/DataTable/documentListSlots.mjs.map +1 -1
  219. package/dist/jsx/components/DataTable/documentListSlots.native.js +8 -1
  220. package/dist/jsx/components/DataTable/documentListSlots.native.js.map +1 -1
  221. package/dist/jsx/components/DataTable/index.native.js +264 -252
  222. package/dist/jsx/components/DataTable/index.native.js.map +1 -1
  223. package/dist/jsx/components/DataTableCell/index.mjs +2 -5
  224. package/dist/jsx/components/DataTableCell/index.mjs.map +1 -1
  225. package/dist/jsx/components/DataTableCell/index.native.js +2 -5
  226. package/dist/jsx/components/DataTableCell/index.native.js.map +1 -1
  227. package/dist/jsx/components/DataTableColumnPinning/index.mjs +2 -1
  228. package/dist/jsx/components/DataTableColumnPinning/index.mjs.map +1 -1
  229. package/dist/jsx/components/DataTableColumnPinning/index.native.js +2 -1
  230. package/dist/jsx/components/DataTableColumnPinning/index.native.js.map +1 -1
  231. package/dist/jsx/components/DataTableFilterButton/index.mjs +4 -6
  232. package/dist/jsx/components/DataTableFilterButton/index.mjs.map +1 -1
  233. package/dist/jsx/components/DataTableFilterButton/index.native.js +3 -5
  234. package/dist/jsx/components/DataTableFilterButton/index.native.js.map +1 -1
  235. package/dist/jsx/components/DataTableFilterChips/index.mjs +0 -1
  236. package/dist/jsx/components/DataTableFilterChips/index.mjs.map +1 -1
  237. package/dist/jsx/components/DataTableFilterChips/index.native.js +0 -1
  238. package/dist/jsx/components/DataTableFilters/index.mjs +12 -20
  239. package/dist/jsx/components/DataTableFilters/index.mjs.map +1 -1
  240. package/dist/jsx/components/DataTableFilters/index.native.js +11 -19
  241. package/dist/jsx/components/DataTableFilters/index.native.js.map +1 -1
  242. package/dist/jsx/components/DataTableGrouping/index.mjs +6 -6
  243. package/dist/jsx/components/DataTableGrouping/index.mjs.map +1 -1
  244. package/dist/jsx/components/DataTableGrouping/index.native.js +7 -7
  245. package/dist/jsx/components/DataTableGrouping/index.native.js.map +1 -1
  246. package/dist/jsx/components/DataTablePagination/index.mjs +15 -19
  247. package/dist/jsx/components/DataTablePagination/index.mjs.map +1 -1
  248. package/dist/jsx/components/DataTablePagination/index.native.js +14 -18
  249. package/dist/jsx/components/DataTablePagination/index.native.js.map +1 -1
  250. package/dist/jsx/components/DataTableSearch/index.mjs +5 -7
  251. package/dist/jsx/components/DataTableSearch/index.mjs.map +1 -1
  252. package/dist/jsx/components/DataTableSearch/index.native.js +5 -7
  253. package/dist/jsx/components/DataTableSearch/index.native.js.map +1 -1
  254. package/dist/jsx/components/DataTableToolbar/index.mjs +2 -10
  255. package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -1
  256. package/dist/jsx/components/DataTableToolbar/index.native.js +2 -10
  257. package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -1
  258. package/dist/jsx/components/DataTableViewOptions/index.mjs +6 -4
  259. package/dist/jsx/components/DataTableViewOptions/index.mjs.map +1 -1
  260. package/dist/jsx/components/DataTableViewOptions/index.native.js +6 -4
  261. package/dist/jsx/components/DataTableViewOptions/index.native.js.map +1 -1
  262. package/dist/jsx/components/KnobDialog.mjs +6 -36
  263. package/dist/jsx/components/KnobDialog.mjs.map +1 -1
  264. package/dist/jsx/components/KnobDialog.native.js +3 -34
  265. package/dist/jsx/components/KnobDialog.native.js.map +1 -1
  266. package/dist/jsx/components/SavedFilterDropdown.mjs +0 -1
  267. package/dist/jsx/components/SavedFilterDropdown.mjs.map +1 -1
  268. package/dist/jsx/components/SavedFilterDropdown.native.js +0 -1
  269. package/dist/jsx/components/SavedFilterDropdown.native.js.map +1 -1
  270. package/dist/jsx/components/SimpleTable/ScrollFrame.mjs +25 -0
  271. package/dist/jsx/components/SimpleTable/ScrollFrame.mjs.map +1 -0
  272. package/dist/jsx/components/SimpleTable/ScrollFrame.native.js +84 -0
  273. package/dist/jsx/components/SimpleTable/ScrollFrame.native.js.map +1 -0
  274. package/dist/jsx/components/SimpleTable/columnSizing.mjs +25 -0
  275. package/dist/jsx/components/SimpleTable/columnSizing.mjs.map +1 -0
  276. package/dist/jsx/components/SimpleTable/columnSizing.native.js +71 -0
  277. package/dist/jsx/components/SimpleTable/columnSizing.native.js.map +1 -0
  278. package/dist/jsx/components/SimpleTable/index.mjs +150 -97
  279. package/dist/jsx/components/SimpleTable/index.mjs.map +1 -1
  280. package/dist/jsx/components/SimpleTable/index.native.js +163 -109
  281. package/dist/jsx/components/SimpleTable/index.native.js.map +1 -1
  282. package/dist/jsx/components/TableInput/RowDetailEditor.mjs +1 -6
  283. package/dist/jsx/components/TableInput/RowDetailEditor.mjs.map +1 -1
  284. package/dist/jsx/components/TableInput/RowDetailEditor.native.js +1 -5
  285. package/dist/jsx/components/TableInput/RowDetailEditor.native.js.map +1 -1
  286. package/dist/jsx/components/TableInput/index.mjs +5 -20
  287. package/dist/jsx/components/TableInput/index.mjs.map +1 -1
  288. package/dist/jsx/components/TableInput/index.native.js +2 -11
  289. package/dist/jsx/components/TableInput/index.native.js.map +1 -1
  290. package/package.json +12 -12
  291. package/src/components/ChildTable/ChildTable.stories.tsx +1 -2
  292. package/src/components/ChildTable/childTable.spec.tsx +2 -2
  293. package/src/components/ChildTable/childTable.zebra.spec.tsx +3 -3
  294. package/src/components/ChildTable/index.tsx +29 -26
  295. package/src/components/DataTable/DataTable.spec.tsx +49 -2
  296. package/src/components/DataTable/DataTable.stories.tsx +5 -5
  297. package/src/components/DataTable/DataTableCardControls.tsx +5 -10
  298. package/src/components/DataTable/DataTableContext.ts +5 -7
  299. package/src/components/DataTable/DataTableDocumentList.tsx +59 -21
  300. package/src/components/DataTable/DataTableInfiniteTail.tsx +1 -1
  301. package/src/components/DataTable/DataTableMobileCards.tsx +4 -9
  302. package/src/components/DataTable/DataTableRoot.tsx +900 -898
  303. package/src/components/DataTable/DataTableVirtualized.tsx +4 -2
  304. package/src/components/DataTable/FieldsInCells.stories.tsx +0 -1
  305. package/src/components/DataTable/compoundComponent.spec.tsx +7 -21
  306. package/src/components/DataTable/dataTableDocumentList.spec.tsx +78 -20
  307. package/src/components/DataTable/dataTableMobileCards.spec.tsx +19 -22
  308. package/src/components/DataTable/documentListSlots.ts +25 -6
  309. package/src/components/DataTable/footerLayout.spec.tsx +7 -7
  310. package/src/components/DataTable/index.native.tsx +329 -322
  311. package/src/components/DataTable/smallTableFooter.spec.tsx +61 -0
  312. package/src/components/DataTableCell/DataTableCell.stories.tsx +0 -2
  313. package/src/components/DataTableCell/index.tsx +3 -7
  314. package/src/components/DataTableColumnPinning/index.tsx +2 -1
  315. package/src/components/DataTableDateFilter/index.tsx +1 -1
  316. package/src/components/DataTableFilterButton/index.tsx +8 -5
  317. package/src/components/DataTableFilterChips/index.tsx +1 -1
  318. package/src/components/DataTableFilters/DataTableFilters.spec.tsx +3 -14
  319. package/src/components/DataTableFilters/DataTableFilters.stories.tsx +1 -6
  320. package/src/components/DataTableFilters/index.tsx +19 -17
  321. package/src/components/DataTableGrouping/index.tsx +9 -8
  322. package/src/components/DataTablePagination/DataTablePagination.spec.tsx +21 -11
  323. package/src/components/DataTablePagination/DataTablePagination.stories.tsx +2 -19
  324. package/src/components/DataTablePagination/DataTablePagination.width.spec.tsx +13 -13
  325. package/src/components/DataTablePagination/index.tsx +19 -15
  326. package/src/components/DataTableSearch/DataTableSearch.stories.tsx +1 -1
  327. package/src/components/DataTableSearch/index.tsx +7 -7
  328. package/src/components/DataTableToolbar/index.tsx +1 -7
  329. package/src/components/DataTableViewOptions/DataTableViewOptions.spec.tsx +5 -5
  330. package/src/components/DataTableViewOptions/DataTableViewOptions.stories.tsx +1 -1
  331. package/src/components/DataTableViewOptions/index.tsx +15 -6
  332. package/src/components/FilterOperatorValueEditor/FilterOperatorValueEditor.spec.tsx +17 -37
  333. package/src/components/KnobDialog.tsx +5 -37
  334. package/src/components/SavedFilterDropdown.tsx +0 -1
  335. package/src/components/SimpleTable/ScrollFrame.native.tsx +49 -0
  336. package/src/components/SimpleTable/ScrollFrame.tsx +18 -0
  337. package/src/components/SimpleTable/SimpleTable.stories.tsx +47 -0
  338. package/src/components/SimpleTable/columnSizing.spec.ts +73 -0
  339. package/src/components/SimpleTable/columnSizing.ts +39 -0
  340. package/src/components/SimpleTable/index.tsx +184 -112
  341. package/src/components/SimpleTable/simpleTable.spec.tsx +47 -19
  342. package/src/components/TableInput/RowDetailEditor.native.tsx +1 -3
  343. package/src/components/TableInput/RowDetailEditor.tsx +2 -10
  344. package/src/components/TableInput/index.native.tsx +3 -16
  345. package/src/components/TableInput/index.tsx +13 -24
  346. package/src/types.ts +7 -2
  347. package/types/components/ChildTable/index.d.ts +3 -1
  348. package/types/components/ChildTable/index.d.ts.map +1 -1
  349. package/types/components/DataTable/DataTableCardControls.d.ts +2 -3
  350. package/types/components/DataTable/DataTableCardControls.d.ts.map +1 -1
  351. package/types/components/DataTable/DataTableContext.d.ts +4 -4
  352. package/types/components/DataTable/DataTableContext.d.ts.map +1 -1
  353. package/types/components/DataTable/DataTableDocumentList.d.ts +7 -4
  354. package/types/components/DataTable/DataTableDocumentList.d.ts.map +1 -1
  355. package/types/components/DataTable/DataTableMobileCards.d.ts +1 -2
  356. package/types/components/DataTable/DataTableMobileCards.d.ts.map +1 -1
  357. package/types/components/DataTable/DataTableRoot.d.ts +1 -3
  358. package/types/components/DataTable/DataTableRoot.d.ts.map +1 -1
  359. package/types/components/DataTable/DataTableVirtualized.d.ts.map +1 -1
  360. package/types/components/DataTable/documentListSlots.d.ts +7 -4
  361. package/types/components/DataTable/documentListSlots.d.ts.map +1 -1
  362. package/types/components/DataTable/index.native.d.ts +1 -1
  363. package/types/components/DataTable/index.native.d.ts.map +1 -1
  364. package/types/components/DataTableCell/index.d.ts +1 -3
  365. package/types/components/DataTableCell/index.d.ts.map +1 -1
  366. package/types/components/DataTableColumnPinning/index.d.ts.map +1 -1
  367. package/types/components/DataTableFilters/index.d.ts +6 -1
  368. package/types/components/DataTableFilters/index.d.ts.map +1 -1
  369. package/types/components/DataTableGrouping/index.d.ts.map +1 -1
  370. package/types/components/DataTablePagination/index.d.ts +8 -1
  371. package/types/components/DataTablePagination/index.d.ts.map +1 -1
  372. package/types/components/DataTableToolbar/index.d.ts +0 -1
  373. package/types/components/DataTableToolbar/index.d.ts.map +1 -1
  374. package/types/components/DataTableViewOptions/index.d.ts +6 -1
  375. package/types/components/DataTableViewOptions/index.d.ts.map +1 -1
  376. package/types/components/KnobDialog.d.ts +0 -7
  377. package/types/components/KnobDialog.d.ts.map +1 -1
  378. package/types/components/SavedFilterDropdown.d.ts.map +1 -1
  379. package/types/components/SimpleTable/ScrollFrame.d.ts +10 -0
  380. package/types/components/SimpleTable/ScrollFrame.d.ts.map +1 -0
  381. package/types/components/SimpleTable/ScrollFrame.native.d.ts +10 -0
  382. package/types/components/SimpleTable/ScrollFrame.native.d.ts.map +1 -0
  383. package/types/components/SimpleTable/columnSizing.d.ts +24 -0
  384. package/types/components/SimpleTable/columnSizing.d.ts.map +1 -0
  385. package/types/components/SimpleTable/index.d.ts +6 -12
  386. package/types/components/SimpleTable/index.d.ts.map +1 -1
  387. package/types/components/TableInput/RowDetailEditor.d.ts +1 -2
  388. package/types/components/TableInput/RowDetailEditor.d.ts.map +1 -1
  389. package/types/components/TableInput/RowDetailEditor.native.d.ts +1 -1
  390. package/types/components/TableInput/RowDetailEditor.native.d.ts.map +1 -1
  391. package/types/components/TableInput/index.d.ts +1 -6
  392. package/types/components/TableInput/index.d.ts.map +1 -1
  393. package/types/components/TableInput/index.native.d.ts +1 -6
  394. package/types/components/TableInput/index.native.d.ts.map +1 -1
  395. package/types/types.d.ts +7 -2
  396. package/types/types.d.ts.map +1 -1
@@ -17,9 +17,9 @@ import { FlashList, type FlashListRef } from "@shopify/flash-list";
17
17
  import { AsyncBoundary, EmptyState, useDirection, ScrollView } from "@multiplatform.one/components";
18
18
  import { Button, Field, useFormField } from "@multiplatform.one/forms";
19
19
  import { flexRender } from "@tanstack/react-table";
20
- import { useResolvedKnobs } from "@multiplatform.one/theme";
20
+ import { sizeTokenStep, useResolvedKnobs, Surface } from "@multiplatform.one/theme";
21
21
  import React, { useRef, useMemo, useCallback } from "react";
22
- import type { FontSizeTokens } from "tamagui";
22
+ import type { FontSizeTokens, SizeTokens } from "tamagui";
23
23
  import { Text, View, useMedia, withStaticProperties } from "tamagui";
24
24
  import { useTranslation } from "react-i18next";
25
25
  import { useDataTable } from "../../hooks/useDataTable";
@@ -173,7 +173,6 @@ function DataTableRoot<TData extends Record<string, any> = Record<string, any>>(
173
173
  renderFilters,
174
174
  className: _className,
175
175
  size,
176
- compact = false,
177
176
  disabled = false,
178
177
  accent,
179
178
  error,
@@ -194,7 +193,7 @@ function DataTableRoot<TData extends Record<string, any> = Record<string, any>>(
194
193
  const { knobProps, disabledState } = useResolvedKnobs({
195
194
  intent,
196
195
  component: "DataTable",
197
- compact,
196
+ size,
198
197
  });
199
198
  const chrome = dataTableChrome(String(knobProps.sizeToken));
200
199
  const bulkBarPlacement = knobProps.bulkBarPlacement === "bottom" ? "bottom" : "top";
@@ -275,10 +274,10 @@ function DataTableRoot<TData extends Record<string, any> = Record<string, any>>(
275
274
  }
276
275
  }, [selectAllScope, table]);
277
276
 
278
- const resolvedSize: "sm" | "md" | "lg" =
279
- size ?? (knobProps.sizeToken === "$3" ? "sm" : knobProps.sizeToken === "$5" ? "lg" : "md");
277
+ const resolvedSize = knobProps.sizeToken as SizeTokens;
278
+ const sizeStep = sizeTokenStep(resolvedSize);
280
279
 
281
- const cellHeight = resolvedSize === "sm" ? "$6" : resolvedSize === "lg" ? "$10" : "$8";
280
+ const cellHeight = sizeStep < 0 ? "$6" : sizeStep > 0 ? "$10" : "$8";
282
281
 
283
282
  const headerGroups = table.getHeaderGroups();
284
283
  const rowModelRows = table.getRowModel().rows;
@@ -397,7 +396,7 @@ function DataTableRoot<TData extends Record<string, any> = Record<string, any>>(
397
396
  [readOnly, disabled, minRows, data, isFormMode, onDataChange],
398
397
  );
399
398
 
400
- const isCompact = resolvedSize === "sm" || compact;
399
+ const tableSize = resolvedSize;
401
400
  const renderCellContent = useCallback(
402
401
  (cell: any, rowIndex: number, rowData: TData) => {
403
402
  const columnDef = cell.column.columnDef as DataTableColumn;
@@ -703,7 +702,7 @@ function DataTableRoot<TData extends Record<string, any> = Record<string, any>>(
703
702
  onRetry={state.error ? onRetry : infinite?.retry}
704
703
  layout="table"
705
704
  errorTitle={t("Couldn't load table")}
706
- compact
705
+ size="$3"
707
706
  aria-label={ariaLabel || "Data table"}
708
707
  />
709
708
  );
@@ -718,7 +717,7 @@ function DataTableRoot<TData extends Record<string, any> = Record<string, any>>(
718
717
  }
719
718
 
720
719
  return (
721
- <DataTableContext.Provider size={resolvedSize} compact={isCompact}>
720
+ <DataTableContext.Provider size={resolvedSize}>
722
721
  <DataTableStateContext.Provider value={stateContextValue}>
723
722
  <View
724
723
  flexDirection="column"
@@ -743,69 +742,73 @@ function DataTableRoot<TData extends Record<string, any> = Record<string, any>>(
743
742
  : {})}
744
743
  {...props}
745
744
  >
746
- {(enableGlobalSearch || enableFiltering || enableViews) && (
747
- <View width="100%" {...(disabled ? disabledState.chromeKnobProps : {})}>
748
- {renderToolbarComponent()}
749
- </View>
750
- )}
751
- {enableRowSelection && bulkBarPlacement === "top" ? (
752
- <View width="100%" {...(disabled ? disabledState.chromeKnobProps : {})}>
753
- <DataTableBulkActions
754
- actions={resolvedBulkActions}
755
- maxVisibleActions={5}
756
- showSelectionCount
757
- placement="top"
758
- />
759
- </View>
760
- ) : null}
761
- {children}
762
- {renderFilters?.({
763
- filters: state.filters || [],
764
- onFiltersChange: actions.setFilters,
765
- onAddFilter: actions.addFilter,
766
- onRemoveFilter: actions.removeFilter,
767
- onClearFilters: actions.clearFilters,
768
- availableColumns: columns.map((col) => ({
769
- id: col.id || "",
770
- label: typeof col.header === "string" ? col.header : col.id || "",
771
- type: mapFieldToFilterType(col.field),
772
- })),
773
- })}
745
+ <Surface size={tableSize}>
746
+ {(enableGlobalSearch || enableFiltering || enableViews) && (
747
+ <View width="100%" {...(disabled ? disabledState.chromeKnobProps : {})}>
748
+ {renderToolbarComponent()}
749
+ </View>
750
+ )}
751
+ {enableRowSelection && bulkBarPlacement === "top" ? (
752
+ <View width="100%" {...(disabled ? disabledState.chromeKnobProps : {})}>
753
+ <DataTableBulkActions
754
+ actions={resolvedBulkActions}
755
+ maxVisibleActions={5}
756
+ showSelectionCount
757
+ placement="top"
758
+ />
759
+ </View>
760
+ ) : null}
761
+ {children}
762
+ {renderFilters?.({
763
+ filters: state.filters || [],
764
+ onFiltersChange: actions.setFilters,
765
+ onAddFilter: actions.addFilter,
766
+ onRemoveFilter: actions.removeFilter,
767
+ onClearFilters: actions.clearFilters,
768
+ availableColumns: columns.map((col) => ({
769
+ id: col.id || "",
770
+ label: typeof col.header === "string" ? col.header : col.id || "",
771
+ type: mapFieldToFilterType(col.field),
772
+ })),
773
+ })}
774
+ </Surface>
774
775
 
775
776
  {showList ? (
776
- <DataTableDocumentList
777
- tableRows={displayRows}
778
- enableRowSelection={enableRowSelection}
779
- disabled={disabled}
780
- hasActiveFilters={computed.hasActiveFilters}
781
- renderCellContent={renderCellContent}
782
- compact={isCompact}
783
- selectRowLabel={deriveSelectRowLabel}
784
- queryInFlight={queryInFlight}
785
- {...(rowPressActive ? { getRowPressProps } : {})}
786
- />
787
- ) : showCards ? (
788
- <View flexDirection="column" gap="$2">
789
- <DataTableMobileCards
777
+ <Surface size={tableSize}>
778
+ <DataTableDocumentList
790
779
  tableRows={displayRows}
791
780
  enableRowSelection={enableRowSelection}
792
- showRowNumbers={showRowNumbers}
793
- showDeleteRow={showDeleteRow}
794
- readOnly={readOnly}
795
781
  disabled={disabled}
796
- dataLength={tableData.length}
797
- minRows={minRows}
798
782
  hasActiveFilters={computed.hasActiveFilters}
799
783
  renderCellContent={renderCellContent}
800
- onDeleteRow={isFormMode ? effectiveHandleDeleteRow : handleDeleteRow}
801
- selectAllChecked={selectAllChecked}
802
- selectAllIndeterminate={selectAllIndeterminate}
803
- onToggleSelectAll={toggleSelectAll}
804
- compact={isCompact}
805
784
  selectRowLabel={deriveSelectRowLabel}
806
785
  queryInFlight={queryInFlight}
807
786
  {...(rowPressActive ? { getRowPressProps } : {})}
808
787
  />
788
+ </Surface>
789
+ ) : showCards ? (
790
+ <View flexDirection="column" gap="$2">
791
+ <Surface size={tableSize}>
792
+ <DataTableMobileCards
793
+ tableRows={displayRows}
794
+ enableRowSelection={enableRowSelection}
795
+ showRowNumbers={showRowNumbers}
796
+ showDeleteRow={showDeleteRow}
797
+ readOnly={readOnly}
798
+ disabled={disabled}
799
+ dataLength={tableData.length}
800
+ minRows={minRows}
801
+ hasActiveFilters={computed.hasActiveFilters}
802
+ renderCellContent={renderCellContent}
803
+ onDeleteRow={isFormMode ? effectiveHandleDeleteRow : handleDeleteRow}
804
+ selectAllChecked={selectAllChecked}
805
+ selectAllIndeterminate={selectAllIndeterminate}
806
+ onToggleSelectAll={toggleSelectAll}
807
+ selectRowLabel={deriveSelectRowLabel}
808
+ queryInFlight={queryInFlight}
809
+ {...(rowPressActive ? { getRowPressProps } : {})}
810
+ />
811
+ </Surface>
809
812
  {enablePagination && !infinite && (
810
813
  <View width="100%" {...(disabled ? disabledState.chromeKnobProps : {})}>
811
814
  {renderPaginationComponent()}
@@ -813,283 +816,288 @@ function DataTableRoot<TData extends Record<string, any> = Record<string, any>>(
813
816
  )}
814
817
  </View>
815
818
  ) : (
816
- <ScrollView horizontal maxWidth="100%">
817
- <View
818
- flex={1}
819
- flexDirection="column"
820
- width="100%"
821
- paddingBottom={enablePagination ? "$10" : undefined}
822
- aria-label={`${ariaLabel || "Data table"} content`}
823
- >
824
- <Table
825
- alignCells={{ x: "start", y: "center" }}
826
- alignHeaderCells={{ x: "start", y: "center" }}
827
- cellHeight={cellHeight}
828
- {...knobProps.borderRadiusOuter}
819
+ <Surface size={tableSize}>
820
+ <ScrollView horizontal maxWidth="100%">
821
+ <View
822
+ flex={1}
823
+ flexDirection="column"
829
824
  width="100%"
830
- aria-label={ariaLabel || "Data table"}
831
- aria-rowcount={computed.totalPages * state.pagination.pageSize}
832
- aria-colcount={
833
- table.getVisibleLeafColumns().length +
834
- extraColumnsBefore +
835
- extraColumnsAfter
836
- }
825
+ paddingBottom={enablePagination ? "$10" : undefined}
826
+ aria-label={`${ariaLabel || "Data table"} content`}
837
827
  >
838
- <Table.Head zIndex="$1" aria-label="Table headers">
839
- {headerGroups.map((headerGroup, groupIndex) => (
840
- <Table.Row
841
- key={headerGroup.id}
842
- backgroundColor="$color2"
843
- rowLocation={groupIndex === 0 ? "first" : "middle"}
844
- borderTopRightRadius={knobProps.borderRadiusOuter.borderRadius}
845
- borderTopLeftRadius={knobProps.borderRadiusOuter.borderRadius}
846
- borderBottomLeftRadius="$0"
847
- borderBottomRightRadius="$0"
848
- aria-rowindex={groupIndex}
849
- >
850
- {showRowNumbers && (
851
- <Table.HeaderCell
852
- cellWidth={chrome.rowNumberCol}
853
- cellHeight={cellHeight as any}
854
- >
855
- <Text fontSize={knobProps.sizeToken} fontWeight="600">
856
- #
857
- </Text>
858
- </Table.HeaderCell>
859
- )}
860
- {enableRowExpansion && (
861
- <Table.HeaderCell
862
- cellWidth={chrome.expandCol}
863
- cellHeight={cellHeight as any}
864
- >
865
- <View width={chrome.iconPx} />
866
- </Table.HeaderCell>
867
- )}
868
- {headerGroup.headers.map((header, headerIndex) => {
869
- const isSortableHeader = header.column.getCanSort();
870
- const sortDirection = header.column.getIsSorted();
871
- const isLastHeader =
872
- headerIndex === headerGroup.headers.length - 1 && !showDeleteRow;
873
- return (
828
+ <Table
829
+ alignCells={{ x: "start", y: "center" }}
830
+ alignHeaderCells={{ x: "start", y: "center" }}
831
+ cellHeight={cellHeight}
832
+ {...knobProps.borderRadiusOuter}
833
+ width="100%"
834
+ aria-label={ariaLabel || "Data table"}
835
+ aria-rowcount={computed.totalPages * state.pagination.pageSize}
836
+ aria-colcount={
837
+ table.getVisibleLeafColumns().length +
838
+ extraColumnsBefore +
839
+ extraColumnsAfter
840
+ }
841
+ >
842
+ <Table.Head zIndex="$1" aria-label="Table headers">
843
+ {headerGroups.map((headerGroup, groupIndex) => (
844
+ <Table.Row
845
+ key={headerGroup.id}
846
+ backgroundColor="$color2"
847
+ rowLocation={groupIndex === 0 ? "first" : "middle"}
848
+ borderTopRightRadius={knobProps.borderRadiusOuter.borderRadius}
849
+ borderTopLeftRadius={knobProps.borderRadiusOuter.borderRadius}
850
+ borderBottomLeftRadius="$0"
851
+ borderBottomRightRadius="$0"
852
+ aria-rowindex={groupIndex}
853
+ >
854
+ {showRowNumbers && (
874
855
  <Table.HeaderCell
875
- key={header.id}
876
- id={`${header.column.id}-header`}
877
- onPress={
878
- isSortableHeader && !disabled
879
- ? header.column.getToggleSortingHandler()
880
- : undefined
881
- }
882
- cursor={
883
- disabled
884
- ? "not-allowed"
885
- : isSortableHeader
886
- ? "pointer"
887
- : "default"
888
- }
889
- position="relative"
890
- aria-sort={
891
- isSortableHeader
892
- ? sortDirection === "asc"
893
- ? "ascending"
894
- : sortDirection === "desc"
895
- ? "descending"
896
- : "none"
897
- : undefined
898
- }
899
- {...getColSizeProps(header.column, isLastHeader)}
856
+ cellWidth={chrome.rowNumberCol}
857
+ cellHeight={cellHeight as any}
900
858
  >
901
- <View
902
- flexDirection="row"
903
- gap="$2"
904
- alignItems="center"
905
- justifyContent="flex-start"
906
- flex={1}
859
+ <Text fontSize={knobProps.sizeToken} fontWeight="600">
860
+ #
861
+ </Text>
862
+ </Table.HeaderCell>
863
+ )}
864
+ {enableRowExpansion && (
865
+ <Table.HeaderCell
866
+ cellWidth={chrome.expandCol}
867
+ cellHeight={cellHeight as any}
868
+ >
869
+ <View width={chrome.iconPx} />
870
+ </Table.HeaderCell>
871
+ )}
872
+ {headerGroup.headers.map((header, headerIndex) => {
873
+ const isSortableHeader = header.column.getCanSort();
874
+ const sortDirection = header.column.getIsSorted();
875
+ const isLastHeader =
876
+ headerIndex === headerGroup.headers.length - 1 && !showDeleteRow;
877
+ return (
878
+ <Table.HeaderCell
879
+ key={header.id}
880
+ id={`${header.column.id}-header`}
881
+ onPress={
882
+ isSortableHeader && !disabled
883
+ ? header.column.getToggleSortingHandler()
884
+ : undefined
885
+ }
886
+ cursor={
887
+ disabled
888
+ ? "not-allowed"
889
+ : isSortableHeader
890
+ ? "pointer"
891
+ : "default"
892
+ }
893
+ position="relative"
894
+ aria-sort={
895
+ isSortableHeader
896
+ ? sortDirection === "asc"
897
+ ? "ascending"
898
+ : sortDirection === "desc"
899
+ ? "descending"
900
+ : "none"
901
+ : undefined
902
+ }
903
+ {...getColSizeProps(header.column, isLastHeader)}
907
904
  >
908
- <Text
909
- fontSize={knobProps.sizeToken}
910
- selectable={false}
911
- userSelect="none"
905
+ <View
906
+ flexDirection="row"
907
+ gap="$2"
908
+ alignItems="center"
909
+ justifyContent="flex-start"
910
+ flex={1}
912
911
  >
913
- {header.isPlaceholder
914
- ? null
915
- : flexRender(
916
- header.column.columnDef.header,
917
- header.getContext(),
918
- )}
919
- </Text>
920
- {isSortableHeader && (
921
912
  <Text
922
- aria-hidden={true}
923
- role="presentation"
924
- color={sortDirection ? "$color10" : "$color8"}
913
+ fontSize={knobProps.sizeToken}
914
+ selectable={false}
915
+ userSelect="none"
925
916
  >
926
- {sortDirection === "asc" && (
927
- <CaretDownIcon size={chrome.iconPx} />
928
- )}
929
- {sortDirection === "desc" && (
930
- <CaretDownIcon
931
- size={chrome.iconPx}
932
- style={{ transform: "rotate(180deg)" }}
933
- />
934
- )}
935
- {sortDirection === false && (
936
- <CaretUpDownIcon size={chrome.iconPx} />
937
- )}
917
+ {header.isPlaceholder
918
+ ? null
919
+ : flexRender(
920
+ header.column.columnDef.header,
921
+ header.getContext(),
922
+ )}
938
923
  </Text>
939
- )}
940
- {pinning && (
941
- <View flexDirection="row" gap="$1">
942
- {/* One compact cycle control (left →
924
+ {isSortableHeader && (
925
+ <Text
926
+ aria-hidden={true}
927
+ role="presentation"
928
+ color={sortDirection ? "$color10" : "$color8"}
929
+ >
930
+ {sortDirection === "asc" && (
931
+ <CaretDownIcon size={chrome.iconPx} />
932
+ )}
933
+ {sortDirection === "desc" && (
934
+ <CaretDownIcon
935
+ size={chrome.iconPx}
936
+ style={{ transform: "rotate(180deg)" }}
937
+ />
938
+ )}
939
+ {sortDirection === false && (
940
+ <CaretUpDownIcon size={chrome.iconPx} />
941
+ )}
942
+ </Text>
943
+ )}
944
+ {pinning && (
945
+ <View flexDirection="row" gap="$1">
946
+ {/* One compact cycle control (left →
943
947
  right → unpin) mirrors web. */}
944
- <pinning.PinButton columnId={header.column.id} />
945
- </View>
946
- )}
947
- </View>
948
- </Table.HeaderCell>
949
- );
950
- })}
951
- {showDeleteRow && !readOnly && (
952
- <Table.HeaderCell
953
- cellWidth={chrome.deleteCol}
954
- cellHeight={cellHeight as any}
955
- cellLocation="last"
956
- />
957
- )}
958
- </Table.Row>
959
- ))}
960
- </Table.Head>
961
-
962
- <Table.Body aria-label="Table data">
963
- {displayRows.length === 0 ? (
964
- <Table.Row>
965
- <Table.Cell>
966
- {queryInFlight ? null : (
967
- <EmptyState
968
- compact
969
- aria-live="polite"
970
- title={
971
- computed.hasActiveFilters
972
- ? t("No results found")
973
- : t("No data available")
974
- }
948
+ <pinning.PinButton columnId={header.column.id} />
949
+ </View>
950
+ )}
951
+ </View>
952
+ </Table.HeaderCell>
953
+ );
954
+ })}
955
+ {showDeleteRow && !readOnly && (
956
+ <Table.HeaderCell
957
+ cellWidth={chrome.deleteCol}
958
+ cellHeight={cellHeight as any}
959
+ cellLocation="last"
975
960
  />
976
961
  )}
977
- </Table.Cell>
978
- </Table.Row>
979
- ) : isVirtualized ? (
980
- <View style={{ height: virtualizationHeight }}>
981
- <FlashList
982
- keyboardShouldPersistTaps="handled"
983
- ref={flashListRef}
984
- data={displayRows}
985
- drawDistance={rowHeightPx * virtualizationOverscan}
986
- keyExtractor={(row) => row.id}
987
- renderItem={({ item, index }) => renderRow(item, index)}
988
- {...(infinite && !infinite.exhausted
989
- ? {
990
- onEndReached: infinite.loadMore,
991
- onEndReachedThreshold:
992
- (INFINITE_TRIGGER_ROWS * rowHeightPx) / virtualizationHeight!,
993
- }
994
- : {})}
995
- />
996
- </View>
997
- ) : (
998
- displayRows.map((row, index) => {
999
- const mainRow = renderRow(row, index);
1000
- const subRow =
1001
- enableRowExpansion &&
1002
- renderSubComponent &&
1003
- row.getIsExpanded() &&
1004
- !row.subRows?.length ? (
1005
- <Table.Row key={`${row.id}-sub`} backgroundColor="$color2">
1006
- <Table.Cell
1007
- {...({
1008
- colSpan:
1009
- table.getVisibleLeafColumns().length +
1010
- extraColumnsBefore +
1011
- extraColumnsAfter,
1012
- } as any)}
1013
- >
1014
- {renderSubComponent(row)}
1015
- </Table.Cell>
1016
- </Table.Row>
1017
- ) : null;
1018
- return (
1019
- <React.Fragment key={row.id}>
1020
- {mainRow}
1021
- {subRow}
1022
- </React.Fragment>
1023
- );
1024
- })
1025
- )}
1026
- </Table.Body>
1027
-
1028
- {footerGroups.length > 0 && (
1029
- <Table.Foot>
1030
- {footerGroups.map((footerGroup) => (
1031
- <Table.Row key={footerGroup.id}>
1032
- {footerGroup.headers.map((header) => (
1033
- <Table.Cell key={header.id}>
1034
- {header.isPlaceholder ? null : (
1035
- <NativeCellContent
1036
- cellDef={header.column.columnDef.footer}
1037
- ctx={header.getContext()}
1038
- />
1039
- )}
1040
- </Table.Cell>
1041
- ))}
1042
962
  </Table.Row>
1043
963
  ))}
1044
- </Table.Foot>
1045
- )}
1046
- </Table>
1047
- </View>
1048
- </ScrollView>
1049
- )}
964
+ </Table.Head>
1050
965
 
1051
- {infinite ? (
1052
- <DataTableInfiniteTail
1053
- infinite={infinite}
1054
- visibleCount={tableRows.length}
1055
- showAppendSkeleton={!isVirtualGrid}
1056
- rowHeightPx={rowHeightPx}
1057
- fontSize={knobProps.sizeToken}
1058
- gapProps={knobProps.gap}
1059
- sentinel={
1060
- !isVirtualGrid && !infinite.exhausted && !infinite.appendError ? (
1061
- <NativeInfiniteSentinel
1062
- onVisible={infinite.loadMore}
1063
- leadPx={INFINITE_TRIGGER_ROWS * rowHeightPx}
1064
- />
1065
- ) : null
1066
- }
1067
- />
1068
- ) : null}
966
+ <Table.Body aria-label="Table data">
967
+ {displayRows.length === 0 ? (
968
+ <Table.Row>
969
+ <Table.Cell>
970
+ {queryInFlight ? null : (
971
+ <EmptyState
972
+ size="$3"
973
+ aria-live="polite"
974
+ title={
975
+ computed.hasActiveFilters
976
+ ? t("No results found")
977
+ : t("No data available")
978
+ }
979
+ />
980
+ )}
981
+ </Table.Cell>
982
+ </Table.Row>
983
+ ) : isVirtualized ? (
984
+ <View style={{ height: virtualizationHeight }}>
985
+ <FlashList
986
+ keyboardShouldPersistTaps="handled"
987
+ ref={flashListRef}
988
+ data={displayRows}
989
+ drawDistance={rowHeightPx * virtualizationOverscan}
990
+ keyExtractor={(row) => row.id}
991
+ renderItem={({ item, index }) => renderRow(item, index)}
992
+ {...(infinite && !infinite.exhausted
993
+ ? {
994
+ onEndReached: infinite.loadMore,
995
+ onEndReachedThreshold:
996
+ (INFINITE_TRIGGER_ROWS * rowHeightPx) /
997
+ virtualizationHeight!,
998
+ }
999
+ : {})}
1000
+ />
1001
+ </View>
1002
+ ) : (
1003
+ displayRows.map((row, index) => {
1004
+ const mainRow = renderRow(row, index);
1005
+ const subRow =
1006
+ enableRowExpansion &&
1007
+ renderSubComponent &&
1008
+ row.getIsExpanded() &&
1009
+ !row.subRows?.length ? (
1010
+ <Table.Row key={`${row.id}-sub`} backgroundColor="$color2">
1011
+ <Table.Cell
1012
+ {...({
1013
+ colSpan:
1014
+ table.getVisibleLeafColumns().length +
1015
+ extraColumnsBefore +
1016
+ extraColumnsAfter,
1017
+ } as any)}
1018
+ >
1019
+ {renderSubComponent(row)}
1020
+ </Table.Cell>
1021
+ </Table.Row>
1022
+ ) : null;
1023
+ return (
1024
+ <React.Fragment key={row.id}>
1025
+ {mainRow}
1026
+ {subRow}
1027
+ </React.Fragment>
1028
+ );
1029
+ })
1030
+ )}
1031
+ </Table.Body>
1069
1032
 
1070
- {enableRowSelection && bulkBarPlacement === "bottom" ? (
1071
- <View width="100%" {...(disabled ? disabledState.chromeKnobProps : {})}>
1072
- <DataTableBulkActions
1073
- actions={resolvedBulkActions}
1074
- maxVisibleActions={5}
1075
- showSelectionCount
1076
- placement="bottom"
1033
+ {footerGroups.length > 0 && (
1034
+ <Table.Foot>
1035
+ {footerGroups.map((footerGroup) => (
1036
+ <Table.Row key={footerGroup.id}>
1037
+ {footerGroup.headers.map((header) => (
1038
+ <Table.Cell key={header.id}>
1039
+ {header.isPlaceholder ? null : (
1040
+ <NativeCellContent
1041
+ cellDef={header.column.columnDef.footer}
1042
+ ctx={header.getContext()}
1043
+ />
1044
+ )}
1045
+ </Table.Cell>
1046
+ ))}
1047
+ </Table.Row>
1048
+ ))}
1049
+ </Table.Foot>
1050
+ )}
1051
+ </Table>
1052
+ </View>
1053
+ </ScrollView>
1054
+ </Surface>
1055
+ )}
1056
+
1057
+ <Surface size={tableSize}>
1058
+ {infinite ? (
1059
+ <DataTableInfiniteTail
1060
+ infinite={infinite}
1061
+ visibleCount={tableRows.length}
1062
+ showAppendSkeleton={!isVirtualGrid}
1063
+ rowHeightPx={rowHeightPx}
1064
+ fontSize={knobProps.sizeToken}
1065
+ gapProps={knobProps.gap}
1066
+ sentinel={
1067
+ !isVirtualGrid && !infinite.exhausted && !infinite.appendError ? (
1068
+ <NativeInfiniteSentinel
1069
+ onVisible={infinite.loadMore}
1070
+ leadPx={INFINITE_TRIGGER_ROWS * rowHeightPx}
1071
+ />
1072
+ ) : null
1073
+ }
1077
1074
  />
1078
- </View>
1079
- ) : null}
1075
+ ) : null}
1080
1076
 
1081
- {showAddRow && !readOnly && (
1082
- <View>
1083
- <Button
1084
- icon={PlusIcon}
1085
- disabled={disabled || (maxRows !== undefined && tableData.length >= maxRows)}
1086
- onPress={isFormMode ? effectiveHandleAddRow : handleAddRow}
1087
- aria-label={t("Add Row")}
1088
- >
1089
- {t("Add Row")}
1090
- </Button>
1091
- </View>
1092
- )}
1077
+ {enableRowSelection && bulkBarPlacement === "bottom" ? (
1078
+ <View width="100%" {...(disabled ? disabledState.chromeKnobProps : {})}>
1079
+ <DataTableBulkActions
1080
+ actions={resolvedBulkActions}
1081
+ maxVisibleActions={5}
1082
+ showSelectionCount
1083
+ placement="bottom"
1084
+ />
1085
+ </View>
1086
+ ) : null}
1087
+
1088
+ {showAddRow && !readOnly && (
1089
+ <View>
1090
+ <Button
1091
+ icon={PlusIcon}
1092
+ disabled={disabled || (maxRows !== undefined && tableData.length >= maxRows)}
1093
+ onPress={isFormMode ? effectiveHandleAddRow : handleAddRow}
1094
+ aria-label={t("Add Row")}
1095
+ >
1096
+ {t("Add Row")}
1097
+ </Button>
1098
+ </View>
1099
+ )}
1100
+ </Surface>
1093
1101
 
1094
1102
  {!showCards && enablePagination && !infinite && (
1095
1103
  <View width="100%" {...(disabled ? disabledState.chromeKnobProps : {})}>
@@ -1103,7 +1111,6 @@ function DataTableRoot<TData extends Record<string, any> = Record<string, any>>(
1103
1111
  },
1104
1112
  [
1105
1113
  resolvedSize,
1106
- isCompact,
1107
1114
  stateContextValue,
1108
1115
  ariaLabel,
1109
1116
  ariaDescribedBy,