@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
@@ -5,12 +5,13 @@ import {
5
5
  sizeRecipeForToken,
6
6
  textFieldInset,
7
7
  useResolvedKnobs,
8
+ sizeTokenStep,
8
9
  } from "@multiplatform.one/theme";
9
10
  import { Pagination, getPaginationItems } from "@multiplatform.one/components";
10
11
  import { useMemo, useState } from "react";
11
12
  import type React from "react";
12
13
  import { Input, Select } from "@multiplatform.one/forms";
13
- import { Text, View, XStack, getTokenValue, useMedia } from "tamagui";
14
+ import { type SizeTokens, Text, View, XStack, getTokenValue, useMedia } from "tamagui";
14
15
  import type { TablePagination, TablePaginationState } from "../../types";
15
16
  import { DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS } from "../../utils/paginationDefaults";
16
17
  import { bidiIsolate } from "../../utils/withInterp";
@@ -28,7 +29,13 @@ export interface DataTablePaginationProps {
28
29
  * it is hidden by default. Eject to keep the pager chrome visible anyway.
29
30
  */
30
31
  showPagerWhenSinglePage?: boolean;
31
- compact?: boolean;
32
+ /**
33
+ * Size token (Tamagui's own `size`). Below `$true` the footer packs: no
34
+ * page jump, no first/last, and inside a table no range readout. The size
35
+ * Select and the jumper keep the ambient token: the pager's page controls
36
+ * hold the 44px press floor, so a smaller field would sit below them.
37
+ */
38
+ size?: SizeTokens;
32
39
  }
33
40
 
34
41
  function controlWidth(chars: number, fontSize: number, inset: number, trailingChrome = 0) {
@@ -87,19 +94,18 @@ export function DataTablePagination(props: DataTablePaginationProps) {
87
94
  showPageSizeSelector = true,
88
95
  showPageJump = true,
89
96
  showPagerWhenSinglePage = false,
90
- compact,
91
97
  } = props;
92
98
 
93
99
  const { sm } = useMedia();
94
- const { knobProps } = useResolvedKnobs(compact === undefined ? undefined : { compact });
95
- // The fields are always compact, independently of the footer's layout.
96
- const { knobProps: fieldKnobs } = useResolvedKnobs({ compact: true });
100
+ const { knobProps } = useResolvedKnobs();
101
+ const { knobProps: footerKnobs } = useResolvedKnobs({ size: props.size });
102
+ const small = sizeTokenStep(footerKnobs.sizeToken) < 0;
97
103
  const fieldRecipe = sizeRecipeForToken(knobProps.sizeToken, { touch: isTouchSurface() });
98
104
  const selectInset = Number(
99
- getTokenValue(fieldKnobs.panelPadding.padding as Parameters<typeof getTokenValue>[0], "space"),
105
+ getTokenValue(knobProps.panelPadding.padding as Parameters<typeof getTokenValue>[0], "space"),
100
106
  );
101
107
  const isMobile = !sm;
102
- const packed = compact && insideTable;
108
+ const packed = small && insideTable;
103
109
  const [availableWidth, setAvailableWidth] = useState<number | undefined>();
104
110
  const measureWidth = (event: import("react-native").LayoutChangeEvent) => {
105
111
  const width = event.nativeEvent.layout.width;
@@ -136,7 +142,7 @@ export function DataTablePagination(props: DataTablePaginationProps) {
136
142
  // Budget the numbered window from the active theme's control geometry.
137
143
  // An unmeasured host uses the safe simple presentation, including SSR.
138
144
  const pageControls =
139
- getPaginationItems(totalPages, currentPage).length + 2 + (!compact && !isMobile ? 2 : 0);
145
+ getPaginationItems(totalPages, currentPage).length + 2 + (!small && !isMobile ? 2 : 0);
140
146
  const controlBudget = Math.max(
141
147
  MIN_PRESS_TARGET,
142
148
  knobProps.control.height + knobProps.control.paddingHorizontal * 2,
@@ -165,8 +171,8 @@ export function DataTablePagination(props: DataTablePaginationProps) {
165
171
 
166
172
  const showSize = showPageSizeSelector;
167
173
  // Compact-inside-DataTable: the table footer already paints the range.
168
- const showRange = showInfo && !(compact && insideTable);
169
- const showJump = showPageJump && showPager && !compact && !isMobile && !simplePager;
174
+ const showRange = showInfo && !(small && insideTable);
175
+ const showJump = showPageJump && showPager && !small && !isMobile && !simplePager;
170
176
 
171
177
  const [jumpNonce, setJumpNonce] = useState(0);
172
178
 
@@ -202,7 +208,7 @@ export function DataTablePagination(props: DataTablePaginationProps) {
202
208
  80,
203
209
  controlWidth(
204
210
  Math.max(2, ...sizeOptions.map((n) => String(n).length)),
205
- fieldKnobs.controlType.fontSize,
211
+ knobProps.controlType.fontSize,
206
212
  selectInset,
207
213
  fieldRecipe.gap + 16, // Select's fixed 16px caret.
208
214
  ),
@@ -224,7 +230,6 @@ export function DataTablePagination(props: DataTablePaginationProps) {
224
230
  }))}
225
231
  aria-label="Select rows per page"
226
232
  size={knobProps.sizeToken}
227
- compact
228
233
  />
229
234
  </View>
230
235
  </XStack>
@@ -236,7 +241,7 @@ export function DataTablePagination(props: DataTablePaginationProps) {
236
241
  total={totalPages}
237
242
  page={currentPage}
238
243
  onPageChange={(page) => handlePageChange(page - 1)}
239
- showFirstLast={!simplePager && !compact && !isMobile}
244
+ showFirstLast={!simplePager && !small && !isMobile}
240
245
  aria-label="Page"
241
246
  padding={0}
242
247
  />
@@ -274,7 +279,6 @@ export function DataTablePagination(props: DataTablePaginationProps) {
274
279
  placeholder={`1-${totalPages}`}
275
280
  aria-label="Page number"
276
281
  size={knobProps.sizeToken}
277
- compact
278
282
  />
279
283
  </View>
280
284
  <Text {...helperText} aria-hidden>
@@ -33,7 +33,7 @@ export default meta;
33
33
  export const Default = {
34
34
  name: "Main",
35
35
  render: () => (
36
- <YStack width={480} padding="$4">
36
+ <YStack width={480} maxWidth="100%" padding="$4">
37
37
  <DataTableSearch
38
38
  data={data}
39
39
  columns={columns}
@@ -283,28 +283,28 @@ function SearchOptionsPanel({
283
283
  </Text>
284
284
 
285
285
  <Checkbox
286
- compact
286
+ size="$3"
287
287
  label={t("Case sensitive")}
288
288
  checked={searchOptions.caseSensitive}
289
289
  onCheckedChange={(checked) => onOptionsChange({ caseSensitive: checked as boolean })}
290
290
  />
291
291
 
292
292
  <Checkbox
293
- compact
293
+ size="$3"
294
294
  label={t("Whole word only")}
295
295
  checked={searchOptions.wholeWord}
296
296
  onCheckedChange={(checked) => onOptionsChange({ wholeWord: checked as boolean })}
297
297
  />
298
298
 
299
299
  <Checkbox
300
- compact
300
+ size="$3"
301
301
  label={t("Use regex")}
302
302
  checked={searchOptions.regex}
303
303
  onCheckedChange={(checked) => onOptionsChange({ regex: checked as boolean })}
304
304
  />
305
305
 
306
306
  <Checkbox
307
- compact
307
+ size="$3"
308
308
  label={t("Highlight results")}
309
309
  checked={searchOptions.highlightResults}
310
310
  onCheckedChange={(checked) => onOptionsChange({ highlightResults: checked as boolean })}
@@ -329,10 +329,10 @@ function SearchOptionsPanel({
329
329
  </XStack>
330
330
 
331
331
  <XStack {...knobProps.gap}>
332
- <Button size="$2" compact onPress={handleSelectAllColumns}>
332
+ <Button size="$2" onPress={handleSelectAllColumns}>
333
333
  {t("All")}
334
334
  </Button>
335
- <Button size="$2" compact onPress={handleSelectNoColumns}>
335
+ <Button size="$2" onPress={handleSelectNoColumns}>
336
336
  {t("None")}
337
337
  </Button>
338
338
  </XStack>
@@ -343,7 +343,7 @@ function SearchOptionsPanel({
343
343
  return (
344
344
  <Checkbox
345
345
  key={key}
346
- compact
346
+ size="$3"
347
347
  label={col.header || key}
348
348
  checked={searchOptions.columns.includes(key)}
349
349
  onCheckedChange={(checked) => handleColumnToggle(key, checked as boolean)}
@@ -45,7 +45,6 @@ export interface DataTableToolbarProps {
45
45
 
46
46
  // Sizing
47
47
  size?: string;
48
- compact?: boolean;
49
48
  }
50
49
 
51
50
  export function DataTableToolbar(props: DataTableToolbarProps) {
@@ -80,7 +79,6 @@ function ToolbarLayout({
80
79
  showViewSelector = true,
81
80
  customActions,
82
81
  size,
83
- compact,
84
82
  isFetching: isFetchingProp,
85
83
  } = props;
86
84
  const isFetching = isFetchingProp ?? ctx?.state.isFetching ?? false;
@@ -103,9 +101,7 @@ function ToolbarLayout({
103
101
  }
104
102
  };
105
103
 
106
- const { knobProps } = useResolvedKnobs(
107
- size === undefined && compact === undefined ? undefined : { size, compact },
108
- );
104
+ const { knobProps } = useResolvedKnobs(size === undefined ? undefined : { size });
109
105
  const sz = knobProps.sizeToken;
110
106
  const iconPx = iconSizeForToken(String(sz));
111
107
  const searchMaxWidth = sz === "$3" ? 280 : sz === "$5" ? 400 : 320;
@@ -180,7 +176,6 @@ function ToolbarLayout({
180
176
  value={newViewName}
181
177
  onChangeText={setNewViewName}
182
178
  size={searchSize}
183
- {...(compact === undefined ? {} : { compact })}
184
179
  inputProps={{
185
180
  "aria-label": t("View name"),
186
181
  onKeyDown: (e: React.KeyboardEvent) => {
@@ -243,7 +238,6 @@ function ToolbarLayout({
243
238
  onClear={enableFiltering ? onClearFilters : undefined}
244
239
  placeholder={t("Search")}
245
240
  aria-label={t("Search table data")}
246
- {...(compact === undefined ? {} : { compact })}
247
241
  size={searchSize}
248
242
  />
249
243
  </XStack>
@@ -59,7 +59,7 @@ describe("DataTableViewOptions", () => {
59
59
  onSaveView={vi.fn()}
60
60
  onLoadView={vi.fn()}
61
61
  onResetToDefault={vi.fn()}
62
- compact={true}
62
+ size="$3"
63
63
  />,
64
64
  );
65
65
 
@@ -76,7 +76,7 @@ describe("DataTableViewOptions", () => {
76
76
  onSaveView={vi.fn()}
77
77
  onLoadView={vi.fn()}
78
78
  onResetToDefault={vi.fn()}
79
- compact={true}
79
+ size="$3"
80
80
  />,
81
81
  );
82
82
 
@@ -98,7 +98,7 @@ describe("DataTableViewOptions", () => {
98
98
  onSaveView={vi.fn()}
99
99
  onLoadView={vi.fn()}
100
100
  onResetToDefault={vi.fn()}
101
- compact={true}
101
+ size="$3"
102
102
  />,
103
103
  );
104
104
 
@@ -123,7 +123,7 @@ describe("DataTableViewOptions", () => {
123
123
  onSaveView={vi.fn()}
124
124
  onLoadView={vi.fn()}
125
125
  onResetToDefault={vi.fn()}
126
- compact={true}
126
+ size="$3"
127
127
  />,
128
128
  );
129
129
 
@@ -153,7 +153,7 @@ describe("DataTableViewOptions", () => {
153
153
  onSaveView={vi.fn()}
154
154
  onLoadView={vi.fn()}
155
155
  onResetToDefault={vi.fn()}
156
- compact={true}
156
+ size="$3"
157
157
  />,
158
158
  );
159
159
 
@@ -133,7 +133,7 @@ export const Compact = () => {
133
133
  </Text>
134
134
 
135
135
  <DataTableViewOptions
136
- compact
136
+ size="$3"
137
137
  columns={columns}
138
138
  onColumnVisibilityChange={(columnId, visible) => {
139
139
  setColumns((prev) =>
@@ -5,11 +5,16 @@ import {
5
5
  FloppyDiskIcon,
6
6
  GearIcon,
7
7
  } from "@phosphor-icons/react";
8
- import { getGroupPosition, stackRadiusProps, useResolvedKnobs } from "@multiplatform.one/theme";
8
+ import {
9
+ getGroupPosition,
10
+ stackRadiusProps,
11
+ useResolvedKnobs,
12
+ sizeTokenStep,
13
+ } from "@multiplatform.one/theme";
9
14
  import React, { useState } from "react";
10
15
  import { Button, FloatingPanel, Input, Slider, Switch } from "@multiplatform.one/forms";
11
16
  import { DropdownMenu, ScrollView } from "@multiplatform.one/components";
12
- import { Separator, Text, View, XStack, YStack, useTheme } from "tamagui";
17
+ import { Separator, Text, View, XStack, YStack, useTheme, type SizeTokens } from "tamagui";
13
18
  import type { TableView } from "../../types";
14
19
  import { t } from "../../shared/t";
15
20
  import { iconSizeForToken } from "../../utils/chromeIcons";
@@ -43,7 +48,11 @@ export interface DataTableViewOptionsProps {
43
48
  showColumnOrdering?: boolean;
44
49
  showColumnResizing?: boolean;
45
50
  showViewManagement?: boolean;
46
- compact?: boolean;
51
+ /**
52
+ * Size token (Tamagui's own `size`). Below `$true` the options collapse to
53
+ * a column-visibility action menu.
54
+ */
55
+ size?: SizeTokens;
47
56
  }
48
57
 
49
58
  export function DataTableViewOptions(props: DataTableViewOptionsProps) {
@@ -89,10 +98,10 @@ export function DataTableViewOptions(props: DataTableViewOptionsProps) {
89
98
  showColumnOrdering = false,
90
99
  showColumnResizing = false,
91
100
  showViewManagement = false,
92
- compact: menuLayout,
93
101
  } = props;
94
102
 
95
- const { knobProps } = useResolvedKnobs();
103
+ const { knobProps } = useResolvedKnobs({ size: props.size });
104
+ const menuLayout = sizeTokenStep(knobProps.sizeToken) < 0;
96
105
  const iconPx = iconSizeForToken(String(knobProps.sizeToken));
97
106
  const sz = knobProps.sizeToken;
98
107
  const popoverMaxWidth = sz === "$3" ? 240 : sz === "$5" ? 360 : 300;
@@ -186,7 +195,7 @@ export function DataTableViewOptions(props: DataTableViewOptionsProps) {
186
195
 
187
196
  <ScrollView maxHeight={scrollMaxHeight}>
188
197
  {/* gapLg: section gaps exceed field gaps (DG-LAY-03) and follow the
189
- space knob (LC-18). paddingRight keeps row controls clear of the
198
+ spacing roles (LC-18). paddingRight keeps row controls clear of the
190
199
  overlay scrollbar so toggles are never painted over. */}
191
200
  <YStack {...knobProps.gapLg} paddingRight="$3">
192
201
  {/* Column Visibility */}
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { fireEvent, screen, waitFor } from "@testing-library/react";
9
9
  import { renderWithProviders } from "@multiplatform.one/test-utils";
10
- import { type Knobs, Preset } from "@multiplatform.one/theme";
10
+ import { Surface } from "@multiplatform.one/theme";
11
11
  import React, { useState } from "react";
12
12
  import { describe, expect, it, vi } from "vitest";
13
13
  import type { DataTableColumnType, FilterOperator } from "../../types";
@@ -265,15 +265,9 @@ describe("FilterOperatorValueEditor", () => {
265
265
  const valueBox = (container: HTMLElement) =>
266
266
  container.querySelector("[data-mp-input-field='true']") as HTMLElement;
267
267
 
268
- const padX = (el: Element) =>
269
- String((el as HTMLElement).className || "")
270
- .split(" ")
271
- .filter((c) => c.startsWith("_px-") || c.startsWith("_pl-") || c.startsWith("_pr-"))
272
- .sort();
273
-
274
- function renderAtKnobs(overrides: Partial<Knobs>) {
268
+ function renderAtSize(size: "$3" | "$5") {
275
269
  return renderWithProviders(
276
- <Preset overrides={overrides}>
270
+ <Surface size={size}>
277
271
  <FilterOperatorValueEditor
278
272
  fieldType="text"
279
273
  operator="contains"
@@ -281,43 +275,29 @@ describe("FilterOperatorValueEditor", () => {
281
275
  onOperatorChange={vi.fn()}
282
276
  onValueChange={vi.fn()}
283
277
  />
284
- </Preset>,
278
+ </Surface>,
285
279
  );
286
280
  }
287
281
 
288
- it("size small: Condition and Value both paint the small recipe", () => {
289
- const { container } = renderAtKnobs({ size: "small" });
282
+ it("Surface $3: Condition and Value both paint the $3 recipe", () => {
283
+ const { container } = renderAtSize("$3");
290
284
  const box = valueBox(container);
291
- expect(box.getAttribute("data-size")).toBe("$3");
292
- expect(box.getAttribute("data-visual-height")).toBe("36");
293
- expect(selectTriggers(container)[0].getAttribute("data-visual-height")).toBe("36");
285
+ expect(box.getAttribute("data-size-token")).toBe("$3");
286
+ expect(box.getAttribute("data-visual-height")).toBe("32");
287
+ expect(selectTriggers(container)[0].getAttribute("data-visual-height")).toBe("32");
294
288
  });
295
289
 
296
- it("size large: the Value input follows the knob instead of a pinned $3", () => {
297
- const { container } = renderAtKnobs({ size: "large" });
290
+ it("Surface $5: the Value input follows the token instead of a pinned $3", () => {
291
+ const { container } = renderAtSize("$5");
298
292
  const box = valueBox(container);
299
- expect(box.getAttribute("data-size")).toBe("$5");
300
- expect(box.getAttribute("data-visual-height")).toBe("52");
301
- expect(selectTriggers(container)[0].getAttribute("data-visual-height")).toBe("52");
302
- });
303
-
304
- it("density comfortable: compact is not forced on the inner fields", () => {
305
- const { container } = renderAtKnobs({ density: "comfortable" });
306
- expect(valueBox(container).getAttribute("data-density")).toBe("comfortable");
293
+ expect(box.getAttribute("data-size-token")).toBe("$5");
294
+ expect(box.getAttribute("data-visual-height")).toBe("48");
295
+ expect(selectTriggers(container)[0].getAttribute("data-visual-height")).toBe("48");
307
296
  });
308
297
 
309
- it("density compact: the inner fields step with the density knob and keep their height", () => {
310
- const comfortable = renderAtKnobs({ density: "comfortable", size: "medium" });
311
- const comfortablePad = padX(selectTriggers(comfortable.container)[0]);
312
- const comfortableHeight = valueBox(comfortable.container).getAttribute("data-visual-height");
313
- comfortable.unmount();
314
-
315
- const { container } = renderAtKnobs({ density: "compact", size: "medium" });
316
- const box = valueBox(container);
317
- expect(box.getAttribute("data-density")).toBe("compact");
318
- expect(box.getAttribute("data-visual-height")).toBe(comfortableHeight);
319
- expect(comfortablePad.length).toBeGreaterThan(0);
320
- expect(padX(selectTriggers(container)[0])).not.toEqual(comfortablePad);
298
+ it("publishes no density attribute on the inner fields", () => {
299
+ const { container } = renderAtSize("$3");
300
+ expect(valueBox(container).hasAttribute("data-density")).toBe(false);
321
301
  });
322
302
  });
323
303
  });
@@ -1,13 +1,5 @@
1
- /**
2
- * KnobDialog - Tamagui Dialog wrapped with knob-wired styling.
3
- *
4
- * Since no shared Dialog component exists in the codebase, this internal
5
- * wrapper applies useResolvedKnobs to Tamagui's Dialog for consistent
6
- * borderRadius, elevation, and sizing across the table package.
7
- */
8
-
9
- import { Dialog, DialogShowFocus } from "@multiplatform.one/components";
10
- import { useResolvedKnobs } from "@multiplatform.one/theme";
1
+ import { Dialog } from "@multiplatform.one/components";
2
+ import { DialogContent, DialogOverlay, useResolvedKnobs } from "@multiplatform.one/theme";
11
3
  import type React from "react";
12
4
 
13
5
  export interface KnobDialogProps {
@@ -35,35 +27,11 @@ export function KnobDialogContent({ children, minWidth }: KnobDialogContentProps
35
27
 
36
28
  return (
37
29
  <Dialog.Portal>
38
- <Dialog.Overlay
39
- key="overlay"
40
- transition="quick"
41
- opacity={0.5}
42
- enterStyle={{ opacity: 0 }}
43
- exitStyle={{ opacity: 0 }}
44
- />
30
+ <DialogOverlay key="overlay" />
45
31
 
46
- <Dialog.Content
47
- {...knobProps.elevatedSurface}
48
- key="content"
49
- animateOnly={["transform", "opacity"]}
50
- transition={[
51
- "quick",
52
- {
53
- opacity: {
54
- overshootClamping: true,
55
- },
56
- },
57
- ]}
58
- enterStyle={{ x: 0, y: -20, opacity: 0, scale: 0.9 }}
59
- exitStyle={{ x: 0, y: 10, opacity: 0, scale: 0.95 }}
60
- {...knobProps.gapLg}
61
- elevation={knobProps.elevation}
62
- {...(minWidth ? { minWidth } : {})}
63
- >
32
+ <DialogContent key="content" {...knobProps.gapLg} {...(minWidth ? { minWidth } : {})}>
64
33
  {children}
65
- <DialogShowFocus />
66
- </Dialog.Content>
34
+ </DialogContent>
67
35
  </Dialog.Portal>
68
36
  );
69
37
  }
@@ -51,7 +51,6 @@ export function SavedFilterDropdown({
51
51
  placeholder={placeholder}
52
52
  disabled={disabled}
53
53
  size={knobProps.sizeToken}
54
- compact
55
54
  aria-label="Saved filters"
56
55
  />
57
56
  );
@@ -0,0 +1,49 @@
1
+ import {
2
+ cloneElement,
3
+ createContext,
4
+ useContext,
5
+ useRef,
6
+ type ReactElement,
7
+ type ReactNode,
8
+ } from "react";
9
+ import { Animated } from "react-native";
10
+ import type { ViewProps } from "tamagui";
11
+
12
+ const ScrollOffset = createContext<Animated.Value | null>(null);
13
+
14
+ export function ScrollFrame({ children }: { children: ReactNode }) {
15
+ const offset = useRef(new Animated.Value(0)).current;
16
+ return (
17
+ <ScrollOffset.Provider value={offset}>
18
+ <Animated.ScrollView
19
+ horizontal
20
+ testID="simple-table-scroll"
21
+ bounces={false}
22
+ scrollEventThrottle={16}
23
+ onScroll={Animated.event([{ nativeEvent: { contentOffset: { x: offset } } }], {
24
+ useNativeDriver: true,
25
+ })}
26
+ style={{ flexGrow: 0, flexShrink: 1 }}
27
+ >
28
+ {children}
29
+ </Animated.ScrollView>
30
+ </ScrollOffset.Provider>
31
+ );
32
+ }
33
+
34
+ export function PinnedCell({
35
+ children,
36
+ width,
37
+ }: {
38
+ children: ReactElement<ViewProps>;
39
+ width: number;
40
+ }) {
41
+ const offset = useContext(ScrollOffset);
42
+ return (
43
+ <Animated.View
44
+ style={{ width, flexShrink: 0, zIndex: 1, transform: [{ translateX: offset ?? 0 }] }}
45
+ >
46
+ {cloneElement(children, { flexGrow: 1 })}
47
+ </Animated.View>
48
+ );
49
+ }
@@ -0,0 +1,18 @@
1
+ import { cloneElement, type ReactElement, type ReactNode } from "react";
2
+ import { View, type ViewProps } from "tamagui";
3
+
4
+ export function ScrollFrame({ children }: { children: ReactNode }) {
5
+ return (
6
+ <View testID="simple-table-scroll" minWidth={0} maxWidth="100%" overflowX="auto">
7
+ {children}
8
+ </View>
9
+ );
10
+ }
11
+
12
+ export function PinnedCell({ children }: { children: ReactElement<ViewProps>; width: number }) {
13
+ return cloneElement(children, {
14
+ position: "sticky" as ViewProps["position"],
15
+ left: 0,
16
+ zIndex: 1,
17
+ });
18
+ }
@@ -19,6 +19,53 @@ const peopleData = [
19
19
  { name: "Sam Lee", age: 41, city: "Chicago" },
20
20
  ];
21
21
 
22
+ const pokemonData = [
23
+ { name: "Pikachu", id: 25, weight: 60, height: 4, species: "Mouse Pokemon" },
24
+ { name: "Raticate", id: 20, weight: 185, height: 7, species: "Mouse Pokemon" },
25
+ { name: "Pidgeot", id: 18, weight: 395, height: 15, species: "Bird Pokemon" },
26
+ ];
27
+
28
+ export const phoneReport = () => (
29
+ <SimpleTable
30
+ layout="table"
31
+ aria-label="Pokemon report"
32
+ columns={[
33
+ { accessorKey: "name", header: "Pokemon Name" },
34
+ { accessorKey: "id", header: "Poke ID" },
35
+ { accessorKey: "weight", header: "Weight" },
36
+ ]}
37
+ data={pokemonData}
38
+ />
39
+ );
40
+
41
+ export const pinnedOverflow = () => (
42
+ <SimpleTable
43
+ layout="table"
44
+ aria-label="Pokemon overflow report"
45
+ columns={[
46
+ { accessorKey: "name", header: "Pokemon Name", width: "$14" },
47
+ { accessorKey: "id", header: "Poke ID", type: "number" },
48
+ { accessorKey: "weight", header: "Weight", type: "number" },
49
+ { accessorKey: "height", header: "Height", type: "number" },
50
+ { accessorKey: "species", header: "Species", width: { flex: 2 } },
51
+ ]}
52
+ data={pokemonData}
53
+ />
54
+ );
55
+
56
+ export const widthHints = () => (
57
+ <SimpleTable
58
+ layout="table"
59
+ aria-label="Weighted columns"
60
+ columns={[
61
+ { accessorKey: "name", header: "Name", width: { flex: 2 } },
62
+ { accessorKey: "age", header: "Age", width: "$9" },
63
+ { accessorKey: "city", header: "City", width: { flex: 1 } },
64
+ ]}
65
+ data={peopleData}
66
+ />
67
+ );
68
+
22
69
  export const main = {
23
70
  name: "Main",
24
71
  args: {