@multiplatform.one/table 7.34.4 → 7.36.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 (412) 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 +152 -97
  72. package/dist/cjs/components/SimpleTable/index.native.js +166 -110
  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/cjs/index.cjs +1 -0
  81. package/dist/cjs/index.native.js +1 -0
  82. package/dist/cjs/index.native.js.map +1 -1
  83. package/dist/esm/components/ChildTable/index.mjs +26 -23
  84. package/dist/esm/components/ChildTable/index.mjs.map +1 -1
  85. package/dist/esm/components/ChildTable/index.native.js +26 -23
  86. package/dist/esm/components/ChildTable/index.native.js.map +1 -1
  87. package/dist/esm/components/DataTable/DataTableCardControls.mjs +3 -8
  88. package/dist/esm/components/DataTable/DataTableCardControls.mjs.map +1 -1
  89. package/dist/esm/components/DataTable/DataTableCardControls.native.js +3 -8
  90. package/dist/esm/components/DataTable/DataTableCardControls.native.js.map +1 -1
  91. package/dist/esm/components/DataTable/DataTableContext.mjs +1 -2
  92. package/dist/esm/components/DataTable/DataTableContext.mjs.map +1 -1
  93. package/dist/esm/components/DataTable/DataTableContext.native.js +1 -2
  94. package/dist/esm/components/DataTable/DataTableContext.native.js.map +1 -1
  95. package/dist/esm/components/DataTable/DataTableDocumentList.mjs +52 -22
  96. package/dist/esm/components/DataTable/DataTableDocumentList.mjs.map +1 -1
  97. package/dist/esm/components/DataTable/DataTableDocumentList.native.js +61 -29
  98. package/dist/esm/components/DataTable/DataTableDocumentList.native.js.map +1 -1
  99. package/dist/esm/components/DataTable/DataTableInfiniteTail.mjs +1 -1
  100. package/dist/esm/components/DataTable/DataTableInfiniteTail.mjs.map +1 -1
  101. package/dist/esm/components/DataTable/DataTableInfiniteTail.native.js +1 -1
  102. package/dist/esm/components/DataTable/DataTableInfiniteTail.native.js.map +1 -1
  103. package/dist/esm/components/DataTable/DataTableMobileCards.mjs +5 -11
  104. package/dist/esm/components/DataTable/DataTableMobileCards.mjs.map +1 -1
  105. package/dist/esm/components/DataTable/DataTableMobileCards.native.js +5 -11
  106. package/dist/esm/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  107. package/dist/esm/components/DataTable/DataTableRoot.mjs +603 -608
  108. package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -1
  109. package/dist/esm/components/DataTable/DataTableRoot.native.js +707 -712
  110. package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -1
  111. package/dist/esm/components/DataTable/DataTableVirtualized.mjs +4 -3
  112. package/dist/esm/components/DataTable/DataTableVirtualized.mjs.map +1 -1
  113. package/dist/esm/components/DataTable/DataTableVirtualized.native.js +4 -3
  114. package/dist/esm/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  115. package/dist/esm/components/DataTable/documentListSlots.mjs +8 -1
  116. package/dist/esm/components/DataTable/documentListSlots.mjs.map +1 -1
  117. package/dist/esm/components/DataTable/documentListSlots.native.js +8 -1
  118. package/dist/esm/components/DataTable/documentListSlots.native.js.map +1 -1
  119. package/dist/esm/components/DataTable/index.native.js +265 -253
  120. package/dist/esm/components/DataTable/index.native.js.map +1 -1
  121. package/dist/esm/components/DataTableCell/index.mjs +2 -5
  122. package/dist/esm/components/DataTableCell/index.mjs.map +1 -1
  123. package/dist/esm/components/DataTableCell/index.native.js +2 -5
  124. package/dist/esm/components/DataTableCell/index.native.js.map +1 -1
  125. package/dist/esm/components/DataTableColumnPinning/index.mjs +2 -1
  126. package/dist/esm/components/DataTableColumnPinning/index.mjs.map +1 -1
  127. package/dist/esm/components/DataTableColumnPinning/index.native.js +2 -1
  128. package/dist/esm/components/DataTableColumnPinning/index.native.js.map +1 -1
  129. package/dist/esm/components/DataTableFilterButton/index.mjs +4 -6
  130. package/dist/esm/components/DataTableFilterButton/index.mjs.map +1 -1
  131. package/dist/esm/components/DataTableFilterButton/index.native.js +4 -6
  132. package/dist/esm/components/DataTableFilterButton/index.native.js.map +1 -1
  133. package/dist/esm/components/DataTableFilterChips/index.mjs +0 -1
  134. package/dist/esm/components/DataTableFilterChips/index.mjs.map +1 -1
  135. package/dist/esm/components/DataTableFilterChips/index.native.js +0 -1
  136. package/dist/esm/components/DataTableFilters/index.mjs +12 -20
  137. package/dist/esm/components/DataTableFilters/index.mjs.map +1 -1
  138. package/dist/esm/components/DataTableFilters/index.native.js +12 -20
  139. package/dist/esm/components/DataTableFilters/index.native.js.map +1 -1
  140. package/dist/esm/components/DataTableGrouping/index.mjs +6 -6
  141. package/dist/esm/components/DataTableGrouping/index.mjs.map +1 -1
  142. package/dist/esm/components/DataTableGrouping/index.native.js +8 -8
  143. package/dist/esm/components/DataTableGrouping/index.native.js.map +1 -1
  144. package/dist/esm/components/DataTablePagination/index.mjs +15 -19
  145. package/dist/esm/components/DataTablePagination/index.mjs.map +1 -1
  146. package/dist/esm/components/DataTablePagination/index.native.js +15 -19
  147. package/dist/esm/components/DataTablePagination/index.native.js.map +1 -1
  148. package/dist/esm/components/DataTableSearch/index.mjs +5 -7
  149. package/dist/esm/components/DataTableSearch/index.mjs.map +1 -1
  150. package/dist/esm/components/DataTableSearch/index.native.js +5 -7
  151. package/dist/esm/components/DataTableSearch/index.native.js.map +1 -1
  152. package/dist/esm/components/DataTableToolbar/index.mjs +2 -10
  153. package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -1
  154. package/dist/esm/components/DataTableToolbar/index.native.js +2 -10
  155. package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -1
  156. package/dist/esm/components/DataTableViewOptions/index.mjs +6 -4
  157. package/dist/esm/components/DataTableViewOptions/index.mjs.map +1 -1
  158. package/dist/esm/components/DataTableViewOptions/index.native.js +7 -5
  159. package/dist/esm/components/DataTableViewOptions/index.native.js.map +1 -1
  160. package/dist/esm/components/KnobDialog.mjs +6 -36
  161. package/dist/esm/components/KnobDialog.mjs.map +1 -1
  162. package/dist/esm/components/KnobDialog.native.js +5 -36
  163. package/dist/esm/components/KnobDialog.native.js.map +1 -1
  164. package/dist/esm/components/SavedFilterDropdown.mjs +0 -1
  165. package/dist/esm/components/SavedFilterDropdown.mjs.map +1 -1
  166. package/dist/esm/components/SavedFilterDropdown.native.js +0 -1
  167. package/dist/esm/components/SavedFilterDropdown.native.js.map +1 -1
  168. package/dist/esm/components/SimpleTable/ScrollFrame.mjs +25 -0
  169. package/dist/esm/components/SimpleTable/ScrollFrame.mjs.map +1 -0
  170. package/dist/esm/components/SimpleTable/ScrollFrame.native.js +55 -0
  171. package/dist/esm/components/SimpleTable/ScrollFrame.native.js.map +1 -0
  172. package/dist/esm/components/SimpleTable/columnSizing.mjs +25 -0
  173. package/dist/esm/components/SimpleTable/columnSizing.mjs.map +1 -0
  174. package/dist/esm/components/SimpleTable/columnSizing.native.js +43 -0
  175. package/dist/esm/components/SimpleTable/columnSizing.native.js.map +1 -0
  176. package/dist/esm/components/SimpleTable/index.mjs +152 -98
  177. package/dist/esm/components/SimpleTable/index.mjs.map +1 -1
  178. package/dist/esm/components/SimpleTable/index.native.js +166 -111
  179. package/dist/esm/components/SimpleTable/index.native.js.map +1 -1
  180. package/dist/esm/components/TableInput/RowDetailEditor.mjs +1 -6
  181. package/dist/esm/components/TableInput/RowDetailEditor.mjs.map +1 -1
  182. package/dist/esm/components/TableInput/RowDetailEditor.native.js +1 -5
  183. package/dist/esm/components/TableInput/RowDetailEditor.native.js.map +1 -1
  184. package/dist/esm/components/TableInput/index.mjs +5 -20
  185. package/dist/esm/components/TableInput/index.mjs.map +1 -1
  186. package/dist/esm/components/TableInput/index.native.js +3 -12
  187. package/dist/esm/components/TableInput/index.native.js.map +1 -1
  188. package/dist/esm/index.mjs +2 -2
  189. package/dist/esm/index.mjs.map +1 -1
  190. package/dist/esm/index.native.js +2 -2
  191. package/dist/esm/index.native.js.map +1 -1
  192. package/dist/jsx/components/ChildTable/index.mjs +26 -23
  193. package/dist/jsx/components/ChildTable/index.mjs.map +1 -1
  194. package/dist/jsx/components/ChildTable/index.native.js +26 -23
  195. package/dist/jsx/components/ChildTable/index.native.js.map +1 -1
  196. package/dist/jsx/components/DataTable/DataTableCardControls.mjs +3 -8
  197. package/dist/jsx/components/DataTable/DataTableCardControls.mjs.map +1 -1
  198. package/dist/jsx/components/DataTable/DataTableCardControls.native.js +3 -8
  199. package/dist/jsx/components/DataTable/DataTableCardControls.native.js.map +1 -1
  200. package/dist/jsx/components/DataTable/DataTableContext.mjs +1 -2
  201. package/dist/jsx/components/DataTable/DataTableContext.mjs.map +1 -1
  202. package/dist/jsx/components/DataTable/DataTableContext.native.js +1 -2
  203. package/dist/jsx/components/DataTable/DataTableContext.native.js.map +1 -1
  204. package/dist/jsx/components/DataTable/DataTableDocumentList.mjs +52 -22
  205. package/dist/jsx/components/DataTable/DataTableDocumentList.mjs.map +1 -1
  206. package/dist/jsx/components/DataTable/DataTableDocumentList.native.js +59 -27
  207. package/dist/jsx/components/DataTable/DataTableDocumentList.native.js.map +1 -1
  208. package/dist/jsx/components/DataTable/DataTableInfiniteTail.mjs +1 -1
  209. package/dist/jsx/components/DataTable/DataTableInfiniteTail.mjs.map +1 -1
  210. package/dist/jsx/components/DataTable/DataTableInfiniteTail.native.js +1 -1
  211. package/dist/jsx/components/DataTable/DataTableInfiniteTail.native.js.map +1 -1
  212. package/dist/jsx/components/DataTable/DataTableMobileCards.mjs +5 -11
  213. package/dist/jsx/components/DataTable/DataTableMobileCards.mjs.map +1 -1
  214. package/dist/jsx/components/DataTable/DataTableMobileCards.native.js +5 -11
  215. package/dist/jsx/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  216. package/dist/jsx/components/DataTable/DataTableRoot.mjs +603 -608
  217. package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -1
  218. package/dist/jsx/components/DataTable/DataTableRoot.native.js +705 -710
  219. package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -1
  220. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs +4 -3
  221. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs.map +1 -1
  222. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js +3 -2
  223. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  224. package/dist/jsx/components/DataTable/documentListSlots.mjs +8 -1
  225. package/dist/jsx/components/DataTable/documentListSlots.mjs.map +1 -1
  226. package/dist/jsx/components/DataTable/documentListSlots.native.js +8 -1
  227. package/dist/jsx/components/DataTable/documentListSlots.native.js.map +1 -1
  228. package/dist/jsx/components/DataTable/index.native.js +264 -252
  229. package/dist/jsx/components/DataTable/index.native.js.map +1 -1
  230. package/dist/jsx/components/DataTableCell/index.mjs +2 -5
  231. package/dist/jsx/components/DataTableCell/index.mjs.map +1 -1
  232. package/dist/jsx/components/DataTableCell/index.native.js +2 -5
  233. package/dist/jsx/components/DataTableCell/index.native.js.map +1 -1
  234. package/dist/jsx/components/DataTableColumnPinning/index.mjs +2 -1
  235. package/dist/jsx/components/DataTableColumnPinning/index.mjs.map +1 -1
  236. package/dist/jsx/components/DataTableColumnPinning/index.native.js +2 -1
  237. package/dist/jsx/components/DataTableColumnPinning/index.native.js.map +1 -1
  238. package/dist/jsx/components/DataTableFilterButton/index.mjs +4 -6
  239. package/dist/jsx/components/DataTableFilterButton/index.mjs.map +1 -1
  240. package/dist/jsx/components/DataTableFilterButton/index.native.js +3 -5
  241. package/dist/jsx/components/DataTableFilterButton/index.native.js.map +1 -1
  242. package/dist/jsx/components/DataTableFilterChips/index.mjs +0 -1
  243. package/dist/jsx/components/DataTableFilterChips/index.mjs.map +1 -1
  244. package/dist/jsx/components/DataTableFilterChips/index.native.js +0 -1
  245. package/dist/jsx/components/DataTableFilters/index.mjs +12 -20
  246. package/dist/jsx/components/DataTableFilters/index.mjs.map +1 -1
  247. package/dist/jsx/components/DataTableFilters/index.native.js +11 -19
  248. package/dist/jsx/components/DataTableFilters/index.native.js.map +1 -1
  249. package/dist/jsx/components/DataTableGrouping/index.mjs +6 -6
  250. package/dist/jsx/components/DataTableGrouping/index.mjs.map +1 -1
  251. package/dist/jsx/components/DataTableGrouping/index.native.js +7 -7
  252. package/dist/jsx/components/DataTableGrouping/index.native.js.map +1 -1
  253. package/dist/jsx/components/DataTablePagination/index.mjs +15 -19
  254. package/dist/jsx/components/DataTablePagination/index.mjs.map +1 -1
  255. package/dist/jsx/components/DataTablePagination/index.native.js +14 -18
  256. package/dist/jsx/components/DataTablePagination/index.native.js.map +1 -1
  257. package/dist/jsx/components/DataTableSearch/index.mjs +5 -7
  258. package/dist/jsx/components/DataTableSearch/index.mjs.map +1 -1
  259. package/dist/jsx/components/DataTableSearch/index.native.js +5 -7
  260. package/dist/jsx/components/DataTableSearch/index.native.js.map +1 -1
  261. package/dist/jsx/components/DataTableToolbar/index.mjs +2 -10
  262. package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -1
  263. package/dist/jsx/components/DataTableToolbar/index.native.js +2 -10
  264. package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -1
  265. package/dist/jsx/components/DataTableViewOptions/index.mjs +6 -4
  266. package/dist/jsx/components/DataTableViewOptions/index.mjs.map +1 -1
  267. package/dist/jsx/components/DataTableViewOptions/index.native.js +6 -4
  268. package/dist/jsx/components/DataTableViewOptions/index.native.js.map +1 -1
  269. package/dist/jsx/components/KnobDialog.mjs +6 -36
  270. package/dist/jsx/components/KnobDialog.mjs.map +1 -1
  271. package/dist/jsx/components/KnobDialog.native.js +3 -34
  272. package/dist/jsx/components/KnobDialog.native.js.map +1 -1
  273. package/dist/jsx/components/SavedFilterDropdown.mjs +0 -1
  274. package/dist/jsx/components/SavedFilterDropdown.mjs.map +1 -1
  275. package/dist/jsx/components/SavedFilterDropdown.native.js +0 -1
  276. package/dist/jsx/components/SavedFilterDropdown.native.js.map +1 -1
  277. package/dist/jsx/components/SimpleTable/ScrollFrame.mjs +25 -0
  278. package/dist/jsx/components/SimpleTable/ScrollFrame.mjs.map +1 -0
  279. package/dist/jsx/components/SimpleTable/ScrollFrame.native.js +84 -0
  280. package/dist/jsx/components/SimpleTable/ScrollFrame.native.js.map +1 -0
  281. package/dist/jsx/components/SimpleTable/columnSizing.mjs +25 -0
  282. package/dist/jsx/components/SimpleTable/columnSizing.mjs.map +1 -0
  283. package/dist/jsx/components/SimpleTable/columnSizing.native.js +71 -0
  284. package/dist/jsx/components/SimpleTable/columnSizing.native.js.map +1 -0
  285. package/dist/jsx/components/SimpleTable/index.mjs +152 -98
  286. package/dist/jsx/components/SimpleTable/index.mjs.map +1 -1
  287. package/dist/jsx/components/SimpleTable/index.native.js +166 -110
  288. package/dist/jsx/components/SimpleTable/index.native.js.map +1 -1
  289. package/dist/jsx/components/TableInput/RowDetailEditor.mjs +1 -6
  290. package/dist/jsx/components/TableInput/RowDetailEditor.mjs.map +1 -1
  291. package/dist/jsx/components/TableInput/RowDetailEditor.native.js +1 -5
  292. package/dist/jsx/components/TableInput/RowDetailEditor.native.js.map +1 -1
  293. package/dist/jsx/components/TableInput/index.mjs +5 -20
  294. package/dist/jsx/components/TableInput/index.mjs.map +1 -1
  295. package/dist/jsx/components/TableInput/index.native.js +2 -11
  296. package/dist/jsx/components/TableInput/index.native.js.map +1 -1
  297. package/dist/jsx/index.js +2 -2
  298. package/dist/jsx/index.js.map +1 -1
  299. package/dist/jsx/index.mjs +2 -2
  300. package/dist/jsx/index.mjs.map +1 -1
  301. package/dist/jsx/index.native.js +1 -0
  302. package/dist/jsx/index.native.js.map +1 -1
  303. package/package.json +12 -12
  304. package/src/components/ChildTable/ChildTable.stories.tsx +1 -2
  305. package/src/components/ChildTable/childTable.spec.tsx +2 -2
  306. package/src/components/ChildTable/childTable.zebra.spec.tsx +3 -3
  307. package/src/components/ChildTable/index.tsx +29 -26
  308. package/src/components/DataTable/DataTable.spec.tsx +49 -2
  309. package/src/components/DataTable/DataTable.stories.tsx +5 -5
  310. package/src/components/DataTable/DataTableCardControls.tsx +5 -10
  311. package/src/components/DataTable/DataTableContext.ts +5 -7
  312. package/src/components/DataTable/DataTableDocumentList.tsx +59 -21
  313. package/src/components/DataTable/DataTableInfiniteTail.tsx +1 -1
  314. package/src/components/DataTable/DataTableMobileCards.tsx +4 -9
  315. package/src/components/DataTable/DataTableRoot.tsx +900 -898
  316. package/src/components/DataTable/DataTableVirtualized.tsx +4 -2
  317. package/src/components/DataTable/FieldsInCells.stories.tsx +0 -1
  318. package/src/components/DataTable/compoundComponent.spec.tsx +7 -21
  319. package/src/components/DataTable/dataTableDocumentList.spec.tsx +78 -20
  320. package/src/components/DataTable/dataTableMobileCards.spec.tsx +19 -22
  321. package/src/components/DataTable/documentListSlots.ts +25 -6
  322. package/src/components/DataTable/footerLayout.spec.tsx +7 -7
  323. package/src/components/DataTable/index.native.tsx +329 -322
  324. package/src/components/DataTable/smallTableFooter.spec.tsx +61 -0
  325. package/src/components/DataTableCell/DataTableCell.stories.tsx +0 -2
  326. package/src/components/DataTableCell/index.tsx +3 -7
  327. package/src/components/DataTableColumnPinning/index.tsx +2 -1
  328. package/src/components/DataTableDateFilter/index.tsx +1 -1
  329. package/src/components/DataTableFilterButton/index.tsx +8 -5
  330. package/src/components/DataTableFilterChips/index.tsx +1 -1
  331. package/src/components/DataTableFilters/DataTableFilters.spec.tsx +3 -14
  332. package/src/components/DataTableFilters/DataTableFilters.stories.tsx +1 -6
  333. package/src/components/DataTableFilters/index.tsx +19 -17
  334. package/src/components/DataTableGrouping/index.tsx +9 -8
  335. package/src/components/DataTablePagination/DataTablePagination.spec.tsx +21 -11
  336. package/src/components/DataTablePagination/DataTablePagination.stories.tsx +2 -19
  337. package/src/components/DataTablePagination/DataTablePagination.width.spec.tsx +13 -13
  338. package/src/components/DataTablePagination/index.tsx +19 -15
  339. package/src/components/DataTableSearch/DataTableSearch.stories.tsx +1 -1
  340. package/src/components/DataTableSearch/index.tsx +7 -7
  341. package/src/components/DataTableToolbar/index.tsx +1 -7
  342. package/src/components/DataTableViewOptions/DataTableViewOptions.spec.tsx +5 -5
  343. package/src/components/DataTableViewOptions/DataTableViewOptions.stories.tsx +1 -1
  344. package/src/components/DataTableViewOptions/index.tsx +15 -6
  345. package/src/components/FilterOperatorValueEditor/FilterOperatorValueEditor.spec.tsx +17 -37
  346. package/src/components/KnobDialog.tsx +5 -37
  347. package/src/components/SavedFilterDropdown.tsx +0 -1
  348. package/src/components/SimpleTable/ScrollFrame.native.tsx +49 -0
  349. package/src/components/SimpleTable/ScrollFrame.tsx +18 -0
  350. package/src/components/SimpleTable/SimpleTable.stories.tsx +47 -0
  351. package/src/components/SimpleTable/columnSizing.spec.ts +88 -0
  352. package/src/components/SimpleTable/columnSizing.ts +46 -0
  353. package/src/components/SimpleTable/index.tsx +185 -112
  354. package/src/components/SimpleTable/simpleTable.spec.tsx +47 -19
  355. package/src/components/TableInput/RowDetailEditor.native.tsx +1 -3
  356. package/src/components/TableInput/RowDetailEditor.tsx +2 -10
  357. package/src/components/TableInput/index.native.tsx +3 -16
  358. package/src/components/TableInput/index.tsx +13 -24
  359. package/src/index.ts +1 -1
  360. package/src/types.ts +7 -2
  361. package/types/components/ChildTable/index.d.ts +3 -1
  362. package/types/components/ChildTable/index.d.ts.map +1 -1
  363. package/types/components/DataTable/DataTableCardControls.d.ts +2 -3
  364. package/types/components/DataTable/DataTableCardControls.d.ts.map +1 -1
  365. package/types/components/DataTable/DataTableContext.d.ts +4 -4
  366. package/types/components/DataTable/DataTableContext.d.ts.map +1 -1
  367. package/types/components/DataTable/DataTableDocumentList.d.ts +7 -4
  368. package/types/components/DataTable/DataTableDocumentList.d.ts.map +1 -1
  369. package/types/components/DataTable/DataTableMobileCards.d.ts +1 -2
  370. package/types/components/DataTable/DataTableMobileCards.d.ts.map +1 -1
  371. package/types/components/DataTable/DataTableRoot.d.ts +1 -3
  372. package/types/components/DataTable/DataTableRoot.d.ts.map +1 -1
  373. package/types/components/DataTable/DataTableVirtualized.d.ts.map +1 -1
  374. package/types/components/DataTable/documentListSlots.d.ts +7 -4
  375. package/types/components/DataTable/documentListSlots.d.ts.map +1 -1
  376. package/types/components/DataTable/index.native.d.ts +1 -1
  377. package/types/components/DataTable/index.native.d.ts.map +1 -1
  378. package/types/components/DataTableCell/index.d.ts +1 -3
  379. package/types/components/DataTableCell/index.d.ts.map +1 -1
  380. package/types/components/DataTableColumnPinning/index.d.ts.map +1 -1
  381. package/types/components/DataTableFilters/index.d.ts +6 -1
  382. package/types/components/DataTableFilters/index.d.ts.map +1 -1
  383. package/types/components/DataTableGrouping/index.d.ts.map +1 -1
  384. package/types/components/DataTablePagination/index.d.ts +8 -1
  385. package/types/components/DataTablePagination/index.d.ts.map +1 -1
  386. package/types/components/DataTableToolbar/index.d.ts +0 -1
  387. package/types/components/DataTableToolbar/index.d.ts.map +1 -1
  388. package/types/components/DataTableViewOptions/index.d.ts +6 -1
  389. package/types/components/DataTableViewOptions/index.d.ts.map +1 -1
  390. package/types/components/KnobDialog.d.ts +0 -7
  391. package/types/components/KnobDialog.d.ts.map +1 -1
  392. package/types/components/SavedFilterDropdown.d.ts.map +1 -1
  393. package/types/components/SimpleTable/ScrollFrame.d.ts +10 -0
  394. package/types/components/SimpleTable/ScrollFrame.d.ts.map +1 -0
  395. package/types/components/SimpleTable/ScrollFrame.native.d.ts +10 -0
  396. package/types/components/SimpleTable/ScrollFrame.native.d.ts.map +1 -0
  397. package/types/components/SimpleTable/columnSizing.d.ts +30 -0
  398. package/types/components/SimpleTable/columnSizing.d.ts.map +1 -0
  399. package/types/components/SimpleTable/index.d.ts +7 -12
  400. package/types/components/SimpleTable/index.d.ts.map +1 -1
  401. package/types/components/TableInput/RowDetailEditor.d.ts +1 -2
  402. package/types/components/TableInput/RowDetailEditor.d.ts.map +1 -1
  403. package/types/components/TableInput/RowDetailEditor.native.d.ts +1 -1
  404. package/types/components/TableInput/RowDetailEditor.native.d.ts.map +1 -1
  405. package/types/components/TableInput/index.d.ts +1 -6
  406. package/types/components/TableInput/index.d.ts.map +1 -1
  407. package/types/components/TableInput/index.native.d.ts +1 -6
  408. package/types/components/TableInput/index.native.d.ts.map +1 -1
  409. package/types/index.d.ts +1 -1
  410. package/types/index.d.ts.map +1 -1
  411. package/types/types.d.ts +7 -2
  412. package/types/types.d.ts.map +1 -1
@@ -0,0 +1,61 @@
1
+ /**
2
+ * A small table (`size="$3"`) forwards `$3` to its toolbar, rows and cells,
3
+ * but its pagination footer stays at the ambient token: the pager's page
4
+ * controls hold the 44px press floor, so a `$3` rows-per-page Select would
5
+ * sit 8px short of them in one row (LC-100, LC-78).
6
+ */
7
+
8
+ import { renderWithProviders } from "@multiplatform.one/test-utils";
9
+ import { defaultScaleInputs, generateScale } from "@multiplatform.one/theme";
10
+ import { screen } from "@testing-library/react";
11
+ import { describe, expect, it, vi } from "vitest";
12
+ import type { DataTableColumn } from "../../types";
13
+ import { DataTable } from "./index";
14
+ import { DataTable as NativeDataTable } from "./index.native";
15
+
16
+ vi.mock("@shopify/flash-list", () => ({ FlashList: () => null }));
17
+
18
+ type Row = { id: number; name: string };
19
+
20
+ const rows: Row[] = Array.from({ length: 30 }, (_, i) => ({ id: i + 1, name: `Row ${i + 1}` }));
21
+ const columns: DataTableColumn<Row>[] = [
22
+ { accessorKey: "name", header: "Name", meta: { role: "title" } },
23
+ { accessorKey: "id", header: "ID" },
24
+ ];
25
+ const size = generateScale(defaultScaleInputs).tokens.size;
26
+
27
+ describe.each([
28
+ { root: "web", Table: DataTable },
29
+ { root: "native", Table: NativeDataTable },
30
+ ])("a small $root DataTable", ({ Table }) => {
31
+ it("keeps its rows-per-page Select at the ambient token while the toolbar takes $3", () => {
32
+ renderWithProviders(
33
+ <Table
34
+ data={rows}
35
+ columns={columns}
36
+ layout="table"
37
+ size="$3"
38
+ enablePagination
39
+ enableGlobalSearch
40
+ />,
41
+ );
42
+
43
+ expect(
44
+ screen
45
+ .getByLabelText("Search table data")
46
+ .closest("[data-visual-height]")
47
+ ?.getAttribute("data-visual-height"),
48
+ ).toBe(String(size.$3));
49
+ expect(screen.getByLabelText("Select rows per page").getAttribute("data-visual-height")).toBe(
50
+ String(size.$true),
51
+ );
52
+ });
53
+
54
+ it("paints the Select at $true in a default-size table too", () => {
55
+ renderWithProviders(<Table data={rows} columns={columns} layout="table" enablePagination />);
56
+
57
+ expect(screen.getByLabelText("Select rows per page").getAttribute("data-visual-height")).toBe(
58
+ String(size.$true),
59
+ );
60
+ });
61
+ });
@@ -82,7 +82,6 @@ const meta: Meta<typeof DataTableCell> = {
82
82
  field: { control: "select", options: FIELD_TYPES },
83
83
  readOnly: { control: "boolean" },
84
84
  disabled: { control: "boolean" },
85
- compact: { control: "boolean" },
86
85
  size: { control: "text" },
87
86
  },
88
87
  };
@@ -345,7 +344,6 @@ export const Playground: Story = {
345
344
  value: "hello",
346
345
  readOnly: false,
347
346
  disabled: false,
348
- compact: true,
349
347
  columnId: "playground",
350
348
  rowIndex: 0,
351
349
  fieldProps: { options: statusOptions, placeholder: "Type here" },
@@ -88,8 +88,6 @@ export interface DataTableCellProps {
88
88
  rowData?: any;
89
89
  /** Size token for field sizing */
90
90
  size?: string;
91
- /** Use compact density (tighter layout gaps; control size unchanged) */
92
- compact?: boolean;
93
91
  /**
94
92
  * For linked daterange columns: the value of the linked (end date) column.
95
93
  * When set, renders a DateRangePicker with this cell as "from" and linkedValue as "to".
@@ -113,13 +111,12 @@ export function DataTableCell({
113
111
  rowIndex: _rowIndex,
114
112
  rowData,
115
113
  size,
116
- compact,
117
114
  linkedValue: _linkedValue,
118
115
  onLinkedChange: _onLinkedChange,
119
116
  }: DataTableCellProps) {
120
- // Cells are always compact unless caller explicitly opts out — table rows
121
- // are 40-44px tall, so default-sized fields overflow the row.
122
- const { knobProps } = useResolvedKnobs({ size, compact: compact ?? true });
117
+ // A table cell sits under the row's <Surface size="$3">, so its fields
118
+ // clamp to the row's control token.
119
+ const { knobProps } = useResolvedKnobs({ size });
123
120
  const cellName = (fieldProps as any)["aria-label"] ?? columnLabel ?? columnId;
124
121
  const {
125
122
  options,
@@ -453,7 +450,6 @@ export function DataTableCell({
453
450
  maxStars={stars}
454
451
  starIcon={restProps.starIcon ?? CellStar}
455
452
  size={knobProps.sizeToken}
456
- compact
457
453
  />
458
454
  </CellWrapper>
459
455
  );
@@ -1,3 +1,4 @@
1
+ import { componentColors } from "@multiplatform.one/components";
1
2
  import { PushPinIcon } from "@phosphor-icons/react";
2
3
  import {
3
4
  MIN_PRESS_TARGET,
@@ -54,7 +55,7 @@ const PinnedIndicator = styled(View, {
54
55
  top: 0,
55
56
  bottom: 0,
56
57
  width: 3,
57
- backgroundColor: "$accentBackground",
58
+ backgroundColor: componentColors.selection.ring,
58
59
  variants: {
59
60
  position: {
60
61
  left: {
@@ -87,7 +87,7 @@ export function DataTableDateFilter({
87
87
  const triggerMinWidth = sz === "$3" ? 160 : sz === "$5" ? 240 : 200;
88
88
  const popoverMinWidth = sz === "$3" ? 280 : sz === "$5" ? 360 : 320;
89
89
  // Row height derives from the same size token the preset Buttons render
90
- // at, so the whole-row window stays exact under every size knob.
90
+ // at, so the whole-row window stays exact under every size token.
91
91
  const tokens = getTokens({ prefixed: true });
92
92
  const sizeTokens = tokens.size as Record<string, unknown>;
93
93
  const presetRowHeight = Math.round(
@@ -22,7 +22,7 @@ import {
22
22
  wasKeyboardFocus,
23
23
  } from "@multiplatform.one/theme";
24
24
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
25
- import { Text, View, XStack, YStack } from "tamagui";
25
+ import { SizableText, Text, View, XStack, YStack } from "tamagui";
26
26
  import { t } from "../../shared/t";
27
27
  import type { FilterOperator, FilterValue, ResolvedFilterField } from "../../types";
28
28
  import {
@@ -309,7 +309,6 @@ function FilterButton({ contentTrigger = false }: { contentTrigger?: boolean })
309
309
  const trigger = (
310
310
  <Button
311
311
  size="$3"
312
- compact
313
312
  {...(activeChipCount > 0 ? { accent: true } : { variant: "outlined" as const })}
314
313
  aria-label={t("Filter")}
315
314
  icon={<FunnelIcon size={14} weight={activeChipCount > 0 ? "fill" : "regular"} />}
@@ -341,9 +340,14 @@ function FilterButton({ contentTrigger = false }: { contentTrigger?: boolean })
341
340
  }}
342
341
  icon={<BackCaretIcon size={14} />}
343
342
  />
344
- <Text fontSize="$3" fontWeight="600" color="$color11" flex={1}>
343
+ <SizableText
344
+ fontFamily={knobProps.heading.fontFamily}
345
+ size="$3"
346
+ color="$color11"
347
+ flex={1}
348
+ >
345
349
  {t("Filter: {{column}}", { column: activeField.label })}
346
- </Text>
350
+ </SizableText>
347
351
  </XStack>
348
352
 
349
353
  <FilterOperatorValueEditor
@@ -375,7 +379,6 @@ function FilterButton({ contentTrigger = false }: { contentTrigger?: boolean })
375
379
  debounceMs={0}
376
380
  placeholder={t("Search fields...")}
377
381
  size="$3"
378
- compact
379
382
  aria-label={t("Search fields")}
380
383
  />
381
384
  <YStack
@@ -102,7 +102,7 @@ export function DataTableFilterChips() {
102
102
  />
103
103
  ))}
104
104
  {chips.length >= 2 && (
105
- <Button size="$2" chromeless compact onPress={handleClearAll}>
105
+ <Button size="$2" chromeless onPress={handleClearAll}>
106
106
  {t("Clear all")}
107
107
  </Button>
108
108
  )}
@@ -61,7 +61,6 @@ describe("DataTableFilters", () => {
61
61
  availableColumns: sampleColumns,
62
62
  maxFilters: 10,
63
63
  showFilterCount: true,
64
- compact: false,
65
64
  };
66
65
 
67
66
  describe("chip bar", () => {
@@ -376,19 +375,9 @@ describe("DataTableFilters", () => {
376
375
  });
377
376
  });
378
377
 
379
- describe("compact mode", () => {
380
- it("should render in compact mode when compact is true", () => {
381
- const { container } = renderWithProviders(
382
- <DataTableFilters {...defaultProps} compact={true} />,
383
- );
384
-
385
- expect(container).toBeDefined();
386
- });
387
-
388
- it("should render in normal mode when compact is false", () => {
389
- const { container } = renderWithProviders(
390
- <DataTableFilters {...defaultProps} compact={false} />,
391
- );
378
+ describe("size token", () => {
379
+ it("renders at a smaller size token", () => {
380
+ const { container } = renderWithProviders(<DataTableFilters {...defaultProps} size="$3" />);
392
381
 
393
382
  expect(container).toBeDefined();
394
383
  });
@@ -25,10 +25,6 @@ const meta: Meta<typeof DataTableFilters> = {
25
25
  control: "boolean",
26
26
  description: "Whether to show the active filter count",
27
27
  },
28
- compact: {
29
- control: "boolean",
30
- description: "Whether to use compact layout",
31
- },
32
28
  },
33
29
  };
34
30
 
@@ -102,7 +98,6 @@ export const Basic: Story = {
102
98
  availableColumns: sampleColumns,
103
99
  maxFilters: 10,
104
100
  showFilterCount: true,
105
- compact: false,
106
101
  },
107
102
  };
108
103
 
@@ -115,9 +110,9 @@ export const WithFilters: Story = {
115
110
 
116
111
  export const Compact: Story = {
117
112
  args: {
113
+ size: "$3",
118
114
  ...Basic.args,
119
115
  filters: sampleFilters,
120
- compact: true,
121
116
  },
122
117
  };
123
118
 
@@ -11,10 +11,10 @@
11
11
  */
12
12
 
13
13
  import { FunnelIcon, PlusIcon } from "@phosphor-icons/react";
14
- import { useResolvedKnobs } from "@multiplatform.one/theme";
14
+ import { useResolvedKnobs, sizeTokenStep } from "@multiplatform.one/theme";
15
15
  import { useEffect, useState } from "react";
16
16
  import { Button, FloatingPanel, Select } from "@multiplatform.one/forms";
17
- import { Text, View, XStack, YStack } from "tamagui";
17
+ import { Text, View, XStack, YStack, type SizeTokens } from "tamagui";
18
18
  import type {
19
19
  DataTableColumnType,
20
20
  FacetedFilterOption,
@@ -46,7 +46,11 @@ export interface DataTableFiltersProps {
46
46
  }>;
47
47
  maxFilters?: number;
48
48
  showFilterCount?: boolean;
49
- compact?: boolean;
49
+ /**
50
+ * Size token (Tamagui's own `size`). Below `$true` the bar draws its small
51
+ * layout: an "Add Filter" trigger and the active filters as chips.
52
+ */
53
+ size?: SizeTokens;
50
54
  }
51
55
 
52
56
  type ColumnOption = NonNullable<DataTableFiltersProps["availableColumns"]>[number];
@@ -60,15 +64,16 @@ export function DataTableFilters(props: DataTableFiltersProps) {
60
64
  const onClearFilters = props.onClearFilters ?? ctx?.actions.clearFilters ?? (() => {});
61
65
  const availableColumns = props.availableColumns ?? [];
62
66
 
63
- const { maxFilters = 10, showFilterCount = true, compact } = props;
67
+ const { maxFilters = 10, showFilterCount = true } = props;
64
68
 
65
69
  const [builderOpen, setBuilderOpen] = useState(false);
66
70
  const [editingId, setEditingId] = useState<string | null>(null);
67
- const { knobProps } = useResolvedKnobs(compact === undefined ? undefined : { compact });
71
+ const { knobProps } = useResolvedKnobs({ size: props.size });
72
+ const small = sizeTokenStep(knobProps.sizeToken) < 0;
68
73
 
69
74
  const canAddMoreFilters = filters.length < maxFilters;
70
75
  const editingFilter = editingId ? (filters.find((f) => f.id === editingId) ?? null) : null;
71
- const triggerName = compact ? t("Add Filter") : t("Filter");
76
+ const triggerName = small ? t("Add Filter") : t("Filter");
72
77
  const triggerLabel =
73
78
  showFilterCount && filters.length > 0 ? `${triggerName} (${filters.length})` : triggerName;
74
79
 
@@ -95,10 +100,9 @@ export function DataTableFilters(props: DataTableFiltersProps) {
95
100
  const trigger = (
96
101
  <Button
97
102
  size="$3"
98
- compact
99
103
  {...(filters.length > 0 ? { accent: true } : { variant: "outlined" as const })}
100
104
  icon={
101
- compact ? (
105
+ small ? (
102
106
  <PlusIcon size={14} />
103
107
  ) : (
104
108
  <FunnelIcon size={14} weight={filters.length > 0 ? "fill" : "regular"} />
@@ -133,7 +137,7 @@ export function DataTableFilters(props: DataTableFiltersProps) {
133
137
  </FloatingPanel>
134
138
  </View>
135
139
 
136
- {!compact &&
140
+ {!small &&
137
141
  filters.map((filter) => {
138
142
  const column = availableColumns.find((col) => col.id === filter.columnId);
139
143
  const label = getFilterChipLabel(
@@ -151,13 +155,13 @@ export function DataTableFilters(props: DataTableFiltersProps) {
151
155
  );
152
156
  })}
153
157
 
154
- {compact && filters.length > 0 && (
155
- <Button size="$2" chromeless compact onPress={onClearFilters} aria-label={t("Clear")}>
158
+ {small && filters.length > 0 && (
159
+ <Button size="$2" chromeless onPress={onClearFilters} aria-label={t("Clear")}>
156
160
  {t("Clear")}
157
161
  </Button>
158
162
  )}
159
- {!compact && filters.length >= 2 && (
160
- <Button size="$2" chromeless compact onPress={onClearFilters} aria-label={t("Clear all")}>
163
+ {!small && filters.length >= 2 && (
164
+ <Button size="$2" chromeless onPress={onClearFilters} aria-label={t("Clear all")}>
161
165
  {t("Clear all")}
162
166
  </Button>
163
167
  )}
@@ -181,7 +185,7 @@ function FilterBuilder({
181
185
  onCancel,
182
186
  canAdd,
183
187
  }: FilterBuilderProps) {
184
- const { knobProps } = useResolvedKnobs({ compact: true });
188
+ const { knobProps } = useResolvedKnobs();
185
189
  const [selectedColumnId, setSelectedColumnId] = useState("");
186
190
  const [selectedOperator, setSelectedOperator] = useState<FilterOperator>("contains");
187
191
  const [filterValue, setFilterValue] = useState("");
@@ -240,7 +244,6 @@ function FilterBuilder({
240
244
  options={columnOptions}
241
245
  placeholder={t("Select column")}
242
246
  size="$3"
243
- compact
244
247
  />
245
248
 
246
249
  {selectedColumn ? (
@@ -255,12 +258,11 @@ function FilterBuilder({
255
258
  ) : null}
256
259
 
257
260
  <XStack gap="$2" justifyContent="flex-end">
258
- <Button size="$3" compact onPress={onCancel}>
261
+ <Button size="$3" onPress={onCancel}>
259
262
  {t("Cancel")}
260
263
  </Button>
261
264
  <Button
262
265
  size="$3"
263
- compact
264
266
  accent
265
267
  onPress={handleCommit}
266
268
  disabled={!selectedColumnId || !selectedOperator || !canAdd}
@@ -22,6 +22,7 @@ import {
22
22
  stackRadiusProps,
23
23
  useResolvedKnobs,
24
24
  type GroupPosition,
25
+ sizeTokenStop,
25
26
  } from "@multiplatform.one/theme";
26
27
  import { useCallback, useMemo, useState } from "react";
27
28
  import { Button, FloatingPanel, Select } from "@multiplatform.one/forms";
@@ -79,8 +80,8 @@ export interface DataTableGroupingProps<T = any> {
79
80
 
80
81
  const EMPTY_EXPANDED_GROUPS: Set<string> = new Set();
81
82
 
82
- // SP-EDGE row density (getTableCellPadding precedent): the space knob moves
83
- // row padding; medium keeps the previous hardcoded $3/$2 defaults.
83
+ // SP-EDGE row padding (getTableCellPadding precedent): the size token's stop
84
+ // picks the row; medium keeps the previous hardcoded $3/$2 defaults.
84
85
  const groupHeaderPaddingMap: Record<string, string> = {
85
86
  small: "$2",
86
87
  medium: "$3",
@@ -92,7 +93,7 @@ const groupItemPaddingMap: Record<string, string> = {
92
93
  large: "$3",
93
94
  };
94
95
 
95
- // Tree indent rides the space knob so nested groups stay flush full-bleed
96
+ // Tree indent rides the size token's stop so nested groups stay flush full-bleed
96
97
  // rows (padding, never margin) — AG Grid / Excel / Airtable grouping: the
97
98
  // chevron and label step in, the painted row still spans the stack.
98
99
  const groupIndentStepMap: Record<string, number> = {
@@ -380,7 +381,7 @@ function GroupHeader<T = any>({
380
381
  });
381
382
  const iconSize = groupIconSize(String(knobProps.sizeToken));
382
383
  const metaSize = groupMetaSizeMap[knobProps.sizeToken] ?? "$3";
383
- const indent = groupIndent(knobProps.space, level);
384
+ const indent = groupIndent(sizeTokenStop(knobProps.sizeToken), level);
384
385
  const label = group.value == null || group.value === "" ? "No Value" : String(group.value);
385
386
  const countLabel = `${formatNumber(group.count, { maximumFractionDigits: 0 })} item${
386
387
  group.count !== 1 ? "s" : ""
@@ -397,7 +398,7 @@ function GroupHeader<T = any>({
397
398
  alignItems="center"
398
399
  gap="$2"
399
400
  minHeight={44}
400
- padding={groupHeaderPaddingMap[knobProps.space] ?? "$3"}
401
+ padding={groupHeaderPaddingMap[sizeTokenStop(knobProps.sizeToken)] ?? "$3"}
401
402
  backgroundColor={knobProps.inputBackground}
402
403
  overflow="hidden"
403
404
  cursor="pointer"
@@ -472,7 +473,7 @@ interface GroupItemsProps<T = any> {
472
473
  function GroupItems<T = any>({ items, columns = [], level, stackEnd }: GroupItemsProps<T>) {
473
474
  const { knobProps } = useResolvedKnobs();
474
475
  const metaSize = groupMetaSizeMap[knobProps.sizeToken] ?? "$3";
475
- const indent = groupIndent(knobProps.space, level);
476
+ const indent = groupIndent(sizeTokenStop(knobProps.sizeToken), level);
476
477
  const iconSize = groupIconSize(String(knobProps.sizeToken));
477
478
  return (
478
479
  <YStack>
@@ -488,7 +489,7 @@ function GroupItems<T = any>({ items, columns = [], level, stackEnd }: GroupItem
488
489
  {index > 0 ? <View {...hairline.line} /> : null}
489
490
  <XStack
490
491
  {...corners}
491
- padding={groupItemPaddingMap[knobProps.space] ?? "$2"}
492
+ padding={groupItemPaddingMap[sizeTokenStop(knobProps.sizeToken)] ?? "$2"}
492
493
  paddingInlineStart={indent + iconSize}
493
494
  overflow="hidden"
494
495
  backgroundColor={index % 2 === 0 ? "$background" : "$color2"}
@@ -531,7 +532,7 @@ interface GroupFooterProps<T = any> {
531
532
  function GroupFooter<T = any>({ group, level, renderCustomFooter }: GroupFooterProps<T>) {
532
533
  const { knobProps } = useResolvedKnobs();
533
534
  return (
534
- <View paddingInlineStart={groupIndent(knobProps.space, level)}>
535
+ <View paddingInlineStart={groupIndent(sizeTokenStop(knobProps.sizeToken), level)}>
535
536
  {renderCustomFooter(group, level)}
536
537
  </View>
537
538
  );
@@ -1,5 +1,6 @@
1
1
  import { createElement, forwardRef, useEffect, useState } from "react";
2
2
  import { renderWithProviders } from "@multiplatform.one/test-utils";
3
+ import { defaultScaleInputs, generateScale } from "@multiplatform.one/theme";
3
4
  import { fireEvent, screen } from "@testing-library/react";
4
5
  import { describe, expect, it, vi } from "vitest";
5
6
 
@@ -261,38 +262,47 @@ describe("DataTablePagination", () => {
261
262
  });
262
263
  });
263
264
 
264
- describe("compact mode", () => {
265
- it("should render in compact mode when compact is true", () => {
265
+ describe("small size token", () => {
266
+ it("renders at $3", () => {
266
267
  const { container } = renderWithProviders(
267
- <DataTablePagination {...defaultProps} compact={true} />,
268
+ <DataTablePagination {...defaultProps} size="$3" />,
268
269
  );
269
270
 
270
271
  expect(container).toBeDefined();
271
272
  });
272
273
 
273
- it("should render in normal mode when compact is false", () => {
274
- const { container } = renderWithProviders(
275
- <DataTablePagination {...defaultProps} compact={false} />,
276
- );
274
+ it("renders at the default size token", () => {
275
+ const { container } = renderWithProviders(<DataTablePagination {...defaultProps} />);
277
276
 
278
277
  expect(container).toBeDefined();
279
278
  });
280
279
 
281
- it("keeps the page-size selector in compact (DG-TBL-04)", () => {
280
+ it("keeps the page-size selector at $3 (DG-TBL-04)", () => {
282
281
  const { getByLabelText } = renderWithProviders(
283
- <DataTablePagination {...defaultProps} compact />,
282
+ <DataTablePagination {...defaultProps} size="$3" />,
284
283
  );
285
284
 
286
285
  expect(getByLabelText("Select rows per page")).toBeDefined();
287
286
  });
288
287
 
289
- it("hides the jumper in compact — the numbered window already jumps", () => {
288
+ it("hides the jumper below $true, where the numbered window already jumps", () => {
290
289
  const { queryByLabelText } = renderWithProviders(
291
- <DataTablePagination {...defaultProps} compact />,
290
+ <DataTablePagination {...defaultProps} size="$3" />,
292
291
  );
293
292
 
294
293
  expect(queryByLabelText("Page number")).toBeNull();
295
294
  });
295
+
296
+ it("keeps its size Select level with the pager at the ambient token", () => {
297
+ const { getByLabelText } = renderWithProviders(
298
+ <DataTablePagination {...defaultProps} size="$3" />,
299
+ );
300
+
301
+ expect(getByLabelText("Page 1").getAttribute("data-size-token")).toBe("$true");
302
+ expect(getByLabelText("Select rows per page").getAttribute("data-visual-height")).toBe(
303
+ String(generateScale(defaultScaleInputs).tokens.size.$true),
304
+ );
305
+ });
296
306
  });
297
307
 
298
308
  describe("responsive behavior", () => {
@@ -1,7 +1,6 @@
1
1
  import { Card } from "@multiplatform.one/components";
2
2
  import { action } from "@multiplatform.one/storybook";
3
3
  import type { GuardrailSpecimenParameter } from "@multiplatform.one/theme";
4
- import { Preset } from "@multiplatform.one/theme";
5
4
  import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
6
5
  import React from "react";
7
6
  import { within } from "storybook/test";
@@ -45,10 +44,6 @@ const meta: Meta<typeof DataTablePagination> = {
45
44
  control: "boolean",
46
45
  description: "Whether to show page jump input",
47
46
  },
48
- compact: {
49
- control: "boolean",
50
- description: "Whether to use compact layout",
51
- },
52
47
  },
53
48
  };
54
49
 
@@ -74,14 +69,13 @@ export const Basic: Story = {
74
69
  showInfo: true,
75
70
  showPageSizeSelector: true,
76
71
  showPageJump: true,
77
- compact: false,
78
72
  },
79
73
  };
80
74
 
81
75
  export const Compact: Story = {
82
76
  args: {
77
+ size: "$3",
83
78
  ...Basic.args,
84
- compact: true,
85
79
  },
86
80
  };
87
81
 
@@ -789,7 +783,7 @@ export const NarrowPanel: Story = {
789
783
  return (
790
784
  <YStack width={249}>
791
785
  <DataTablePagination
792
- compact
786
+ size="$3"
793
787
  pagination={{
794
788
  ...pagination,
795
789
  totalCount: 1000,
@@ -802,14 +796,3 @@ export const NarrowPanel: Story = {
802
796
  );
803
797
  },
804
798
  };
805
-
806
- export const LargeSpaceNarrow: Story = {
807
- ...NarrowPanel,
808
- decorators: [
809
- (Story) => (
810
- <Preset overrides={{ space: "large" }}>
811
- <Story />
812
- </Preset>
813
- ),
814
- ],
815
- };
@@ -47,29 +47,29 @@ beforeEach(() => {
47
47
  observed.onLayout = undefined;
48
48
  });
49
49
 
50
- describe("bounded compact table pagination", () => {
50
+ describe("bounded small table pagination", () => {
51
51
  it("preserves the default footprint and grows for wide numeric options", () => {
52
- const { rerender } = renderWithProviders(<DataTablePagination compact />);
53
- expect(observed.sizeWidth).toBe(80);
54
- rerender(<DataTablePagination compact pageSizeOptions={[10, 25, 1000000]} />);
55
- expect(observed.sizeWidth).toBeGreaterThan(80);
52
+ const { rerender } = renderWithProviders(<DataTablePagination size="$3" />);
53
+ expect(observed.sizeWidth).toBe(92);
54
+ rerender(<DataTablePagination size="$3" pageSizeOptions={[10, 25, 1000000]} />);
55
+ expect(observed.sizeWidth).toBeGreaterThan(92);
56
56
  });
57
57
 
58
- it("budgets the always-compact Select independently from footer spacing", () => {
59
- const renderPager = (compact: boolean) => (
60
- <Preset overrides={{ space: "large" }}>
61
- <DataTablePagination compact={compact} />
58
+ it("budgets the page-size Select at the ambient token, whatever the footer size", () => {
59
+ const renderPager = (small: boolean) => (
60
+ <Preset>
61
+ <DataTablePagination size={small ? "$3" : undefined} />
62
62
  </Preset>
63
63
  );
64
64
  const { rerender } = renderWithProviders(renderPager(false));
65
65
  const width = observed.sizeWidth;
66
- expect(width).toBeGreaterThan(80);
66
+ expect(width).toBe(92);
67
67
  rerender(renderPager(true));
68
68
  expect(observed.sizeWidth).toBe(width);
69
69
  });
70
70
 
71
71
  it("starts safely and responds to container width even on a desktop viewport", () => {
72
- renderWithProviders(<DataTablePagination compact />);
72
+ renderWithProviders(<DataTablePagination size="$3" />);
73
73
  const pager = () => within(screen.getByRole("navigation", { name: "Page" }));
74
74
  expect(pager().getAllByRole("button")).toHaveLength(2);
75
75
  measure(1000);
@@ -83,7 +83,7 @@ describe("bounded compact table pagination", () => {
83
83
  });
84
84
 
85
85
  it("preserves the presentation when a container reports its width again", () => {
86
- renderWithProviders(<DataTablePagination compact />);
86
+ renderWithProviders(<DataTablePagination size="$3" />);
87
87
  measure(249);
88
88
  const pager = screen.getByRole("navigation", { name: "Page" });
89
89
  const buttons = within(pager).getAllByRole("button");
@@ -95,7 +95,7 @@ describe("bounded compact table pagination", () => {
95
95
  it("resets to the first page when rows per page changes in a narrow table", async () => {
96
96
  renderWithProviders(
97
97
  <DataTablePagination
98
- compact
98
+ size="$3"
99
99
  pagination={{ pageIndex: 5, pageSize: 25, totalPages: 40, totalCount: 1000 }}
100
100
  />,
101
101
  );