@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
@@ -162,7 +162,6 @@ function DataTableRoot(param) {
162
162
  renderFilters: _renderFilters,
163
163
  className,
164
164
  size,
165
- compact = false,
166
165
  disabled = false,
167
166
  accent,
168
167
  error,
@@ -198,7 +197,7 @@ function DataTableRoot(param) {
198
197
  } = (0, import_theme.useResolvedKnobs)({
199
198
  intent,
200
199
  component: "DataTable",
201
- compact
200
+ size
202
201
  });
203
202
  var chrome = (0, import_dataTableChrome.dataTableChrome)(String(knobProps.sizeToken));
204
203
  var rowHeightPx = chrome.rowPx;
@@ -271,8 +270,9 @@ function DataTableRoot(param) {
271
270
  table.toggleAllPageRowsSelected();
272
271
  }
273
272
  }, [selectAllScope, table]);
274
- var resolvedSize = size !== null && size !== void 0 ? size : knobProps.sizeToken === "$3" ? "sm" : knobProps.sizeToken === "$5" ? "lg" : "md";
275
- var cellHeight = resolvedSize === "sm" ? "$3" : resolvedSize === "lg" ? "$5" : "$4";
273
+ var resolvedSize = knobProps.sizeToken;
274
+ var cellHeight = resolvedSize;
275
+ var cellSize = (0, import_theme.sizeTokenBelow)(resolvedSize);
276
276
  var headerGroups = table.getHeaderGroups();
277
277
  var rowModelRows = table.getRowModel().rows;
278
278
  var infinite = computed.infinite;
@@ -620,7 +620,6 @@ function DataTableRoot(param) {
620
620
  }));
621
621
  }
622
622
  }, [readOnly, disabled, minRows, data, isFormMode, onDataChange]);
623
- var isCompact = resolvedSize === "sm" || compact;
624
623
  var renderCellContent = (0, import_react3.useCallback)(function (cell, rowIndex, rowData) {
625
624
  var _columnDef_fieldProps;
626
625
  var columnDef = cell.column.columnDef;
@@ -670,12 +669,11 @@ function DataTableRoot(param) {
670
669
  columnLabel: typeof columnDef.header === "string" ? columnDef.header : void 0,
671
670
  rowIndex,
672
671
  rowData,
673
- size: knobProps.sizeToken,
674
- compact: isCompact,
672
+ size: String(cellSize),
675
673
  linkedValue,
676
674
  onLinkedChange
677
675
  });
678
- }, [handleCellChange, readOnly, disabled, knobProps.sizeToken, knobProps.label.fontSize, isCompact]);
676
+ }, [handleCellChange, readOnly, disabled, cellSize, knobProps.label.fontSize]);
679
677
  var extraColumnsBefore = (enableRowSelection ? 1 : 0) + (showRowNumbers ? 1 : 0) + (enableRowExpansion ? 1 : 0);
680
678
  var extraColumnsAfter = showDeleteRow && !readOnly ? 1 : 0;
681
679
  var excelCellNav = enableKeyboardNavigation && !rowPressActive && !disabled;
@@ -774,8 +772,7 @@ function DataTableRoot(param) {
774
772
  // differentiated for screen readers (DG-A11Y-06). The
775
773
  // aria-label rides the role="checkbox" frame itself.
776
774
  "aria-label": deriveSelectRowLabel(row, rowIndex)
777
- },
778
- compact: isCompact
775
+ }
779
776
  })
780
777
  }), showRowNumbers && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
781
778
  ...cellRenderProps,
@@ -919,7 +916,7 @@ function DataTableRoot(param) {
919
916
  })
920
917
  })]
921
918
  });
922
- }, [enableRowSelection, showRowNumbers, enableRowExpansion, showDeleteRow, readOnly, disabled, cellHeight, knobProps.sizeToken, cellFlexProps, getColSizeProps, getStickyStyle, renderCellContent, handleDeleteRow, data.length, minRows, isCompact, t, deriveSelectRowLabel, ExpandCaretIcon, expandedCaretRotation, clipBodyCells, excelCellNav, keyboardNav.isNavigating, keyboardNav.focusedRowIndex, focusedColIndex]);
919
+ }, [enableRowSelection, showRowNumbers, enableRowExpansion, showDeleteRow, readOnly, disabled, cellHeight, knobProps.sizeToken, cellFlexProps, getColSizeProps, getStickyStyle, renderCellContent, handleDeleteRow, data.length, minRows, t, deriveSelectRowLabel, ExpandCaretIcon, expandedCaretRotation, clipBodyCells, excelCellNav, keyboardNav.isNavigating, keyboardNav.focusedRowIndex, focusedColIndex]);
923
920
  var [filterEditTarget, setFilterEditTarget] = (0, import_react3.useState)(null);
924
921
  var filterUi = (0, import_react3.useMemo)(function () {
925
922
  return {
@@ -955,7 +952,6 @@ function DataTableRoot(param) {
955
952
  views: state.views,
956
953
  activeViewId: state.activeViewId,
957
954
  size: knobProps.sizeToken,
958
- compact: isCompact,
959
955
  isFetching: Boolean(state.isFetching)
960
956
  });
961
957
  }
@@ -965,7 +961,6 @@ function DataTableRoot(param) {
965
961
  onClearFilters: actions.clearFilters,
966
962
  customActions: defaultCardToolbar && hasCardSort ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableCardControls.DataTableCardSortControl, {
967
963
  table,
968
- compact: isCompact,
969
964
  disabled,
970
965
  contained: true
971
966
  }) : void 0,
@@ -978,7 +973,6 @@ function DataTableRoot(param) {
978
973
  enableGlobalSearch,
979
974
  enableFiltering,
980
975
  size: knobProps.sizeToken,
981
- compact: isCompact,
982
976
  isFetching: Boolean(state.isFetching)
983
977
  });
984
978
  };
@@ -995,7 +989,7 @@ function DataTableRoot(param) {
995
989
  pagination: state.pagination,
996
990
  onPaginationChange: actions.setPagination,
997
991
  pageSizeOptions: resolvedPageSizeOptions,
998
- compact: true
992
+ size: resolvedSize
999
993
  });
1000
994
  };
1001
995
  var renderInner = function renderInner2(tableData, effectiveHandleAddRow, effectiveHandleDeleteRow, _effectiveHandleCellChange) {
@@ -1036,7 +1030,7 @@ function DataTableRoot(param) {
1036
1030
  onRetry: state.error ? onRetry : infinite === null || infinite === void 0 ? void 0 : infinite.retry,
1037
1031
  layout: "table",
1038
1032
  errorTitle: t("Couldn't load table"),
1039
- compact: true,
1033
+ size: resolvedSize,
1040
1034
  "aria-label": resolvedAriaLabel
1041
1035
  });
1042
1036
  }
@@ -1049,7 +1043,6 @@ function DataTableRoot(param) {
1049
1043
  }
1050
1044
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableContext.DataTableContext.Provider, {
1051
1045
  size: resolvedSize,
1052
- compact: isCompact,
1053
1046
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableStateContext.DataTableStateContext.Provider, {
1054
1047
  value: stateContextValue,
1055
1048
  children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.View, {
@@ -1091,743 +1084,745 @@ function DataTableRoot(param) {
1091
1084
  })
1092
1085
  } : {}),
1093
1086
  ...props,
1094
- children: [
1095
- /* Toolbar. The width-100% wrapper is the LC-40 carrier for
1096
- chrome that has no `disabled` API of its own: under keepLabel
1097
- the chrome fragment dims the region (interaction is already
1098
- blocked by the root inert). */
1099
- hasToolbar && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1100
- width: "100%",
1101
- ...(disabled ? disabledState.chromeKnobProps : {}),
1102
- children: renderToolbarComponent()
1103
- }),
1104
- /* Active filter chips — visibility surface for ALL filters,
1105
- including hidden-column filters (Axiom 6 HONEST STATE) */
1106
- enableFiltering && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1107
- width: "100%",
1108
- ...(disabled ? disabledState.chromeKnobProps : {}),
1109
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableFilterChips.DataTableFilterChips, {})
1110
- }), /* Auto selection toolbar (DG-TBL-02) — placement from house bulkBarPlacement */
1111
- enableRowSelection && bulkBarPlacement === "top" ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1112
- width: "100%",
1113
- ...(disabled ? disabledState.chromeKnobProps : {}),
1114
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableBulkActions.DataTableBulkActions, {
1115
- actions: resolvedBulkActions,
1116
- maxVisibleActions: 5,
1117
- showSelectionCount: true,
1118
- placement: "top"
1119
- })
1120
- }) : null, /* Compound sub-components (children) */
1121
- children, /* Card List View (layout="cards" or auto below $sm) */
1122
- showList ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableDocumentList.DataTableDocumentList, {
1123
- tableRows: displayRows,
1124
- enableRowSelection,
1125
- disabled,
1126
- hasActiveFilters: computed.hasActiveFilters,
1127
- renderCellContent,
1128
- compact: isCompact,
1129
- selectRowLabel: deriveSelectRowLabel,
1130
- queryInFlight,
1131
- ...(rowPressActive ? {
1132
- getRowPressProps
1133
- } : {})
1134
- }) : showCards ? /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
1087
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_theme.Surface, {
1088
+ size: resolvedSize,
1135
1089
  children: [
1136
- /* Header affordances (sort / per-column filter) live in the
1137
- grid headers; the card list restores them here. */
1138
- !defaultCardToolbar && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableCardControls.DataTableCardControls, {
1139
- table,
1140
- enableSorting,
1141
- enableFiltering,
1142
- availableColumns: cardFilterColumns,
1143
- compact: isCompact,
1144
- disabled
1145
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableMobileCards.DataTableMobileCards, {
1090
+ /* Toolbar. The width-100% wrapper is the LC-40 carrier for
1091
+ chrome that has no `disabled` API of its own: under keepLabel
1092
+ the chrome fragment dims the region (interaction is already
1093
+ blocked by the root inert). */
1094
+ hasToolbar && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1095
+ width: "100%",
1096
+ ...(disabled ? disabledState.chromeKnobProps : {}),
1097
+ children: renderToolbarComponent()
1098
+ }),
1099
+ /* Active filter chips — visibility surface for ALL filters,
1100
+ including hidden-column filters (Axiom 6 HONEST STATE) */
1101
+ enableFiltering && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1102
+ width: "100%",
1103
+ ...(disabled ? disabledState.chromeKnobProps : {}),
1104
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableFilterChips.DataTableFilterChips, {})
1105
+ }), /* Auto selection toolbar (DG-TBL-02) — placement from house bulkBarPlacement */
1106
+ enableRowSelection && bulkBarPlacement === "top" ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1107
+ width: "100%",
1108
+ ...(disabled ? disabledState.chromeKnobProps : {}),
1109
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableBulkActions.DataTableBulkActions, {
1110
+ actions: resolvedBulkActions,
1111
+ maxVisibleActions: 5,
1112
+ showSelectionCount: true,
1113
+ placement: "top"
1114
+ })
1115
+ }) : null, /* Compound sub-components (children) */
1116
+ children, /* Card List View (layout="cards" or auto below $sm) */
1117
+ showList ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableDocumentList.DataTableDocumentList, {
1146
1118
  tableRows: displayRows,
1147
1119
  enableRowSelection,
1148
- showRowNumbers,
1149
- showDeleteRow,
1150
- readOnly,
1151
1120
  disabled,
1152
- dataLength: tableData.length,
1153
- minRows,
1154
1121
  hasActiveFilters: computed.hasActiveFilters,
1155
1122
  renderCellContent,
1156
- onDeleteRow: effectiveHandleDeleteRow,
1157
- selectAllChecked,
1158
- selectAllIndeterminate,
1159
- onToggleSelectAll: toggleSelectAll,
1160
- compact: isCompact,
1161
1123
  selectRowLabel: deriveSelectRowLabel,
1162
1124
  queryInFlight,
1163
1125
  ...(rowPressActive ? {
1164
1126
  getRowPressProps
1165
1127
  } : {})
1166
- })]
1167
- }) : (/* Table View */
1168
- /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1169
- ref: function ref(node) {
1170
- if (enableKeyboardNavigation && !isSSR && keyboardNav.containerRef) {
1171
- keyboardNav.containerRef.current = node;
1172
- }
1173
- if (scrollContainerRef) {
1174
- scrollContainerRef.current = node;
1175
- }
1176
- },
1177
- flexDirection: "column",
1178
- width: "100%",
1179
- // Grow 0 / shrink 1 / basis auto: the grid frame hugs its
1180
- // rows and only compresses (into internal scroll) when the
1181
- // parent is shorter. flexGrow 1 stretched the frame to fill
1182
- // tall parents, painting a dead zone between the last row
1183
- // and the frame's bottom border on short pages (the frame
1184
- // claimed data area that held no data — Axiom 6/LC-37).
1185
- flexGrow: 0,
1186
- flexShrink: 1,
1187
- flexBasis: "auto",
1188
- minHeight: 0,
1189
- // This View (the drag-scroll ref) is the horizontal scroll
1190
- // container; the table inside floors at max-content so it
1191
- // overflows here instead of panning the whole page. With
1192
- // pinning it is the ONE scrollport sticky cells track.
1193
- ...(hScroll ? {
1194
- overflowX: "auto"
1195
- } : {}),
1196
- "aria-label": (0, import_withInterp.withInterp)(t("{{label}} content", {
1197
- label: resolvedAriaLabel
1198
- }), {
1199
- label: resolvedAriaLabel
1200
- }),
1201
- tabIndex: enableKeyboardNavigation && !isSSR ? 0 : void 0,
1202
- ...{
1203
- "data-table-grid": "true"
1204
- },
1205
- onKeyDown: enableKeyboardNavigation && !isSSR ? handleGridKeyDown : void 0,
1206
- onPress: enableKeyboardNavigation && !isSSR ? keyboardNav.handleContainerClick : void 0,
1207
- onBlur: enableKeyboardNavigation && !isSSR ? keyboardNav.handleContainerBlur : void 0,
1208
- children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_table_primitives.Table, {
1209
- displayMode,
1210
- alignCells: {
1211
- x: "start",
1212
- y: "center"
1213
- },
1214
- alignHeaderCells: {
1215
- x: "start",
1216
- y: "center"
1128
+ }) : showCards ? /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
1129
+ children: [
1130
+ /* Header affordances (sort / per-column filter) live in the
1131
+ grid headers; the card list restores them here. */
1132
+ !defaultCardToolbar && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableCardControls.DataTableCardControls, {
1133
+ table,
1134
+ enableSorting,
1135
+ enableFiltering,
1136
+ availableColumns: cardFilterColumns,
1137
+ disabled
1138
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableMobileCards.DataTableMobileCards, {
1139
+ tableRows: displayRows,
1140
+ enableRowSelection,
1141
+ showRowNumbers,
1142
+ showDeleteRow,
1143
+ readOnly,
1144
+ disabled,
1145
+ dataLength: tableData.length,
1146
+ minRows,
1147
+ hasActiveFilters: computed.hasActiveFilters,
1148
+ renderCellContent,
1149
+ onDeleteRow: effectiveHandleDeleteRow,
1150
+ selectAllChecked,
1151
+ selectAllIndeterminate,
1152
+ onToggleSelectAll: toggleSelectAll,
1153
+ selectRowLabel: deriveSelectRowLabel,
1154
+ queryInFlight,
1155
+ ...(rowPressActive ? {
1156
+ getRowPressProps
1157
+ } : {})
1158
+ })]
1159
+ }) : (/* Table View */
1160
+ /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1161
+ ref: function ref(node) {
1162
+ if (enableKeyboardNavigation && !isSSR && keyboardNav.containerRef) {
1163
+ keyboardNav.containerRef.current = node;
1164
+ }
1165
+ if (scrollContainerRef) {
1166
+ scrollContainerRef.current = node;
1167
+ }
1217
1168
  },
1218
- cellHeight,
1219
- borderTopLeftRadius: hasToolbar ? 0 : knobProps.borderRadiusOuter.borderRadius,
1220
- borderTopRightRadius: hasToolbar ? 0 : knobProps.borderRadiusOuter.borderRadius,
1221
- borderBottomLeftRadius: knobProps.borderRadiusOuter.borderRadius,
1222
- borderBottomRightRadius: knobProps.borderRadiusOuter.borderRadius,
1223
- marginBottom: 0,
1224
- "aria-label": resolvedAriaLabel,
1225
- "aria-rowcount": computed.totalPages * state.pagination.pageSize,
1226
- "aria-colcount": table.getVisibleLeafColumns().length + extraColumnsBefore + extraColumnsAfter,
1169
+ flexDirection: "column",
1227
1170
  width: "100%",
1171
+ // Grow 0 / shrink 1 / basis auto: the grid frame hugs its
1172
+ // rows and only compresses (into internal scroll) when the
1173
+ // parent is shorter. flexGrow 1 stretched the frame to fill
1174
+ // tall parents, painting a dead zone between the last row
1175
+ // and the frame's bottom border on short pages (the frame
1176
+ // claimed data area that held no data — Axiom 6/LC-37).
1177
+ flexGrow: 0,
1178
+ flexShrink: 1,
1179
+ flexBasis: "auto",
1180
+ minHeight: 0,
1181
+ // This View (the drag-scroll ref) is the horizontal scroll
1182
+ // container; the table inside floors at max-content so it
1183
+ // overflows here instead of panning the whole page. With
1184
+ // pinning it is the ONE scrollport sticky cells track.
1228
1185
  ...(hScroll ? {
1229
- style: {
1230
- minWidth: "max-content"
1231
- }
1232
- } : {}),
1233
- // Pinning: the Table must NOT be a scroll container (its
1234
- // overflow:hidden base makes it one) or sticky cells stick
1235
- // to it instead of the scrolling content View. Content
1236
- // fits the max-content box, so nothing needs the clip.
1237
- ...(hScroll && enableColumnPinning ? {
1238
- overflow: "visible"
1239
- } : {}),
1240
- // Roving-focus DOM scope for onRowPress arrow keys (LC-49).
1241
- ...(rowPressActive ? {
1242
- "data-row-press-scope": "true"
1186
+ overflowX: "auto"
1243
1187
  } : {}),
1244
- children: [/* Table Header */
1245
- /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Head, {
1246
- zIndex: "$1",
1247
- "aria-label": t("Table headers"),
1248
- children: headerGroups.map(function (headerGroup) {
1249
- rowCounter.current++;
1250
- return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_table_primitives.Table.Row, {
1251
- ...{
1252
- background: true,
1253
- backgroundColor: "$color2",
1254
- rowLocation: rowCounter.current === 0 ? "first" : rowCounter.current === allRowsLength - 1 ? "last" : "middle",
1255
- borderTopRightRadius: hasToolbar ? "$0" : knobProps.borderRadiusOuter.borderRadius,
1256
- borderTopLeftRadius: hasToolbar ? "$0" : knobProps.borderRadiusOuter.borderRadius,
1257
- borderBottomLeftRadius: "$0",
1258
- borderBottomRightRadius: "$0",
1259
- "aria-rowindex": rowCounter.current
1260
- },
1261
- children: [enableRowSelection && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.HeaderCell, {
1262
- cellWidth: selectionColWidth,
1263
- cellHeight,
1264
- cellLocation: "first",
1265
- justifyContent: "center",
1266
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Checkbox, {
1267
- checked: selectAllIndeterminate ? "indeterminate" : selectAllChecked,
1268
- disabled,
1269
- onChange: function onChange(checked) {
1270
- if (disabled || checked === "indeterminate") return;
1271
- var shouldSelect = checked === true;
1272
- var isAll = selectAllScope === "filtered" ? table.getIsAllRowsSelected() : table.getIsAllPageRowsSelected();
1273
- if (shouldSelect !== isAll) toggleSelectAll();
1274
- },
1275
- checkboxProps: {
1276
- "aria-label": selectAllScope === "filtered" ? t("Select all matching rows") : t("Select all rows on page")
1277
- },
1278
- compact: isCompact
1279
- })
1280
- }), showRowNumbers && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.HeaderCell, {
1281
- cellWidth: chrome.rowNumberCol,
1282
- cellHeight,
1283
- cellLocation: enableRowSelection ? "middle" : "first",
1284
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
1285
- fontSize: knobProps.sizeToken,
1286
- fontWeight: "600",
1287
- children: "#"
1288
- })
1289
- }), enableRowExpansion && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.HeaderCell, {
1290
- cellWidth: chrome.expandCol,
1291
- cellHeight,
1292
- cellLocation: enableRowSelection || showRowNumbers ? "middle" : "first",
1293
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1294
- width: 14
1295
- })
1296
- }), headerGroup.headers.map(function (header, headerIndex) {
1297
- var _header_column_columnDef_minSize, _header_column_columnDef_maxSize;
1298
- var _header_column_columnDef_fieldProps;
1299
- var isSortableHeader = header.column.getCanSort();
1300
- var sortDirection = header.column.getIsSorted();
1301
- var canResize = enableColumnResizing && header.column.getCanResize();
1302
- var resizeHandler = canResize ? header.getResizeHandler() : void 0;
1303
- var colSize = header.getSize();
1304
- var colMinSize = (_header_column_columnDef_minSize = header.column.columnDef.minSize) !== null && _header_column_columnDef_minSize !== void 0 ? _header_column_columnDef_minSize : 0;
1305
- var colMaxSize = (_header_column_columnDef_maxSize = header.column.columnDef.maxSize) !== null && _header_column_columnDef_maxSize !== void 0 ? _header_column_columnDef_maxSize : Number.MAX_SAFE_INTEGER;
1306
- var stickyStyle = getStickyStyle(header.column.id);
1307
- var columnDef = header.column.columnDef;
1308
- var columnAlign = resolveColumnAlign({
1309
- ...columnDef,
1310
- id: header.column.id
1311
- });
1312
- var headerJustify = (0, import_columnAlign.alignToFlex)(columnAlign);
1313
- var isRightAligned = columnAlign === "right";
1314
- var isFirstHeaderCell = headerIndex === 0 && !enableRowSelection && !showRowNumbers && !enableRowExpansion;
1315
- var isLastHeaderCell = headerIndex === headerGroup.headers.length - 1 && !(showDeleteRow && !readOnly);
1316
- var headerCellLocation = isFirstHeaderCell ? "first" : isLastHeaderCell ? "last" : "middle";
1317
- return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_table_primitives.Table.HeaderCell, {
1318
- id: `${header.column.id}-header`,
1319
- onPress: isSortableHeader && !disabled ? header.column.getToggleSortingHandler() : void 0,
1320
- // Keyboard operability (WCAG 2.1.1): the sort
1321
- // control must not be mouse-only — Tab reaches
1322
- // sortable headers, Enter/Space toggles (Shift
1323
- // held = multi-sort, same as shift+click).
1324
- // Disabled tables drop the handlers (the root
1325
- // inert already blocks focus on web).
1326
- ...(isSortableHeader && !disabled && import_tamagui.isWeb ? {
1327
- tabIndex: 0,
1328
- onKeyDown: function onKeyDown(e) {
1329
- if (e.key === "Enter" || e.key === " " || e.key === "Spacebar") {
1330
- var _header_column_getToggleSortingHandler;
1331
- e.preventDefault();
1332
- (_header_column_getToggleSortingHandler = header.column.getToggleSortingHandler()) === null || _header_column_getToggleSortingHandler === void 0 ? void 0 : _header_column_getToggleSortingHandler(e);
1333
- }
1334
- },
1335
- focusVisibleStyle: (0, import_theme.ensureFocusVisibleRing)({
1336
- outlineOffset: -2
1337
- })
1338
- } : {}),
1339
- cursor: disabled ? "not-allowed" : isSortableHeader ? "pointer" : "default",
1340
- position: "relative",
1341
- cellLocation: headerCellLocation,
1342
- justifyContent: headerJustify,
1343
- "data-align": columnAlign,
1344
- "aria-sort": isSortableHeader ? sortDirection === "asc" ? "ascending" : sortDirection === "desc" ? "descending" : "none" : void 0,
1345
- ...(dnd && !disabled ? {
1346
- draggable: true,
1347
- onDragStart: function onDragStart(e) {
1348
- return dnd.onDragStart(e, header.column.id);
1188
+ "aria-label": (0, import_withInterp.withInterp)(t("{{label}} content", {
1189
+ label: resolvedAriaLabel
1190
+ }), {
1191
+ label: resolvedAriaLabel
1192
+ }),
1193
+ tabIndex: enableKeyboardNavigation && !isSSR ? 0 : void 0,
1194
+ ...{
1195
+ "data-table-grid": "true"
1196
+ },
1197
+ onKeyDown: enableKeyboardNavigation && !isSSR ? handleGridKeyDown : void 0,
1198
+ onPress: enableKeyboardNavigation && !isSSR ? keyboardNav.handleContainerClick : void 0,
1199
+ onBlur: enableKeyboardNavigation && !isSSR ? keyboardNav.handleContainerBlur : void 0,
1200
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_table_primitives.Table, {
1201
+ size: resolvedSize,
1202
+ cellSize,
1203
+ displayMode,
1204
+ alignCells: {
1205
+ x: "start",
1206
+ y: "center"
1207
+ },
1208
+ alignHeaderCells: {
1209
+ x: "start",
1210
+ y: "center"
1211
+ },
1212
+ cellHeight,
1213
+ borderTopLeftRadius: hasToolbar ? 0 : knobProps.borderRadiusOuter.borderRadius,
1214
+ borderTopRightRadius: hasToolbar ? 0 : knobProps.borderRadiusOuter.borderRadius,
1215
+ borderBottomLeftRadius: knobProps.borderRadiusOuter.borderRadius,
1216
+ borderBottomRightRadius: knobProps.borderRadiusOuter.borderRadius,
1217
+ marginBottom: 0,
1218
+ "aria-label": resolvedAriaLabel,
1219
+ "aria-rowcount": computed.totalPages * state.pagination.pageSize,
1220
+ "aria-colcount": table.getVisibleLeafColumns().length + extraColumnsBefore + extraColumnsAfter,
1221
+ width: "100%",
1222
+ ...(hScroll ? {
1223
+ style: {
1224
+ minWidth: "max-content"
1225
+ }
1226
+ } : {}),
1227
+ // Pinning: the Table must NOT be a scroll container (its
1228
+ // overflow:hidden base makes it one) or sticky cells stick
1229
+ // to it instead of the scrolling content View. Content
1230
+ // fits the max-content box, so nothing needs the clip.
1231
+ ...(hScroll && enableColumnPinning ? {
1232
+ overflow: "visible"
1233
+ } : {}),
1234
+ // Roving-focus DOM scope for onRowPress arrow keys (LC-49).
1235
+ ...(rowPressActive ? {
1236
+ "data-row-press-scope": "true"
1237
+ } : {}),
1238
+ children: [/* Table Header */
1239
+ /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Head, {
1240
+ zIndex: "$1",
1241
+ "aria-label": t("Table headers"),
1242
+ children: headerGroups.map(function (headerGroup) {
1243
+ rowCounter.current++;
1244
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_table_primitives.Table.Row, {
1245
+ ...{
1246
+ background: true,
1247
+ backgroundColor: "$color2",
1248
+ rowLocation: rowCounter.current === 0 ? "first" : rowCounter.current === allRowsLength - 1 ? "last" : "middle",
1249
+ borderTopRightRadius: hasToolbar ? "$0" : knobProps.borderRadiusOuter.borderRadius,
1250
+ borderTopLeftRadius: hasToolbar ? "$0" : knobProps.borderRadiusOuter.borderRadius,
1251
+ borderBottomLeftRadius: "$0",
1252
+ borderBottomRightRadius: "$0",
1253
+ "aria-rowindex": rowCounter.current
1254
+ },
1255
+ children: [enableRowSelection && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.HeaderCell, {
1256
+ cellWidth: selectionColWidth,
1257
+ cellHeight,
1258
+ cellLocation: "first",
1259
+ justifyContent: "center",
1260
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Checkbox, {
1261
+ checked: selectAllIndeterminate ? "indeterminate" : selectAllChecked,
1262
+ disabled,
1263
+ onChange: function onChange(checked) {
1264
+ if (disabled || checked === "indeterminate") return;
1265
+ var shouldSelect = checked === true;
1266
+ var isAll = selectAllScope === "filtered" ? table.getIsAllRowsSelected() : table.getIsAllPageRowsSelected();
1267
+ if (shouldSelect !== isAll) toggleSelectAll();
1349
1268
  },
1350
- onDragOver: dnd.onDragOver,
1351
- onDrop: function onDrop(e) {
1352
- return dnd.onDrop(e, header.column.id);
1269
+ checkboxProps: {
1270
+ "aria-label": selectAllScope === "filtered" ? t("Select all matching rows") : t("Select all rows on page")
1353
1271
  }
1354
- } : {}),
1355
- ...cellFlexProps,
1356
- ...getColSizeProps(header.column),
1357
- ...(import_tamagui.isWeb && stickyStyle ? {
1358
- style: {
1359
- position: "sticky",
1360
- ...("insetInlineStart" in stickyStyle && {
1361
- insetInlineStart: stickyStyle.insetInlineStart
1362
- }),
1363
- ...("insetInlineEnd" in stickyStyle && {
1364
- insetInlineEnd: stickyStyle.insetInlineEnd
1365
- }),
1366
- zIndex: 2,
1367
- backgroundColor: "var(--color2)"
1368
- }
1369
- } : {}),
1370
- children: [
1371
- /* LC-10 (MPO-336): only the label yields
1372
- to a narrow column; the glyphs keep their
1373
- size or they paint into the next one. The
1374
- filter cluster wraps under the label first,
1375
- so the label keeps the column's width. */
1376
- /* @__PURE__ */
1377
- (0, import_jsx_runtime.jsxs)(import_tamagui.View, {
1378
- flexDirection: "row",
1379
- flexWrap: "wrap",
1380
- gap: "$2",
1381
- alignItems: "center",
1382
- justifyContent: isRightAligned ? "flex-end" : "space-between",
1383
- flex: 1,
1384
- minWidth: 0,
1385
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.View, {
1272
+ })
1273
+ }), showRowNumbers && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.HeaderCell, {
1274
+ cellWidth: chrome.rowNumberCol,
1275
+ cellHeight,
1276
+ cellLocation: enableRowSelection ? "middle" : "first",
1277
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
1278
+ fontSize: knobProps.sizeToken,
1279
+ fontWeight: "600",
1280
+ children: "#"
1281
+ })
1282
+ }), enableRowExpansion && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.HeaderCell, {
1283
+ cellWidth: chrome.expandCol,
1284
+ cellHeight,
1285
+ cellLocation: enableRowSelection || showRowNumbers ? "middle" : "first",
1286
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1287
+ width: 14
1288
+ })
1289
+ }), headerGroup.headers.map(function (header, headerIndex) {
1290
+ var _header_column_columnDef_minSize, _header_column_columnDef_maxSize;
1291
+ var _header_column_columnDef_fieldProps;
1292
+ var isSortableHeader = header.column.getCanSort();
1293
+ var sortDirection = header.column.getIsSorted();
1294
+ var canResize = enableColumnResizing && header.column.getCanResize();
1295
+ var resizeHandler = canResize ? header.getResizeHandler() : void 0;
1296
+ var colSize = header.getSize();
1297
+ var colMinSize = (_header_column_columnDef_minSize = header.column.columnDef.minSize) !== null && _header_column_columnDef_minSize !== void 0 ? _header_column_columnDef_minSize : 0;
1298
+ var colMaxSize = (_header_column_columnDef_maxSize = header.column.columnDef.maxSize) !== null && _header_column_columnDef_maxSize !== void 0 ? _header_column_columnDef_maxSize : Number.MAX_SAFE_INTEGER;
1299
+ var stickyStyle = getStickyStyle(header.column.id);
1300
+ var columnDef = header.column.columnDef;
1301
+ var columnAlign = resolveColumnAlign({
1302
+ ...columnDef,
1303
+ id: header.column.id
1304
+ });
1305
+ var headerJustify = (0, import_columnAlign.alignToFlex)(columnAlign);
1306
+ var isRightAligned = columnAlign === "right";
1307
+ var isFirstHeaderCell = headerIndex === 0 && !enableRowSelection && !showRowNumbers && !enableRowExpansion;
1308
+ var isLastHeaderCell = headerIndex === headerGroup.headers.length - 1 && !(showDeleteRow && !readOnly);
1309
+ var headerCellLocation = isFirstHeaderCell ? "first" : isLastHeaderCell ? "last" : "middle";
1310
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_table_primitives.Table.HeaderCell, {
1311
+ id: `${header.column.id}-header`,
1312
+ onPress: isSortableHeader && !disabled ? header.column.getToggleSortingHandler() : void 0,
1313
+ // Keyboard operability (WCAG 2.1.1): the sort
1314
+ // control must not be mouse-only — Tab reaches
1315
+ // sortable headers, Enter/Space toggles (Shift
1316
+ // held = multi-sort, same as shift+click).
1317
+ // Disabled tables drop the handlers (the root
1318
+ // inert already blocks focus on web).
1319
+ ...(isSortableHeader && !disabled && import_tamagui.isWeb ? {
1320
+ tabIndex: 0,
1321
+ onKeyDown: function onKeyDown(e) {
1322
+ if (e.key === "Enter" || e.key === " " || e.key === "Spacebar") {
1323
+ var _header_column_getToggleSortingHandler;
1324
+ e.preventDefault();
1325
+ (_header_column_getToggleSortingHandler = header.column.getToggleSortingHandler()) === null || _header_column_getToggleSortingHandler === void 0 ? void 0 : _header_column_getToggleSortingHandler(e);
1326
+ }
1327
+ },
1328
+ focusVisibleStyle: (0, import_theme.ensureFocusVisibleRing)({
1329
+ outlineOffset: -2
1330
+ })
1331
+ } : {}),
1332
+ cursor: disabled ? "not-allowed" : isSortableHeader ? "pointer" : "default",
1333
+ position: "relative",
1334
+ cellLocation: headerCellLocation,
1335
+ justifyContent: headerJustify,
1336
+ "data-align": columnAlign,
1337
+ "aria-sort": isSortableHeader ? sortDirection === "asc" ? "ascending" : sortDirection === "desc" ? "descending" : "none" : void 0,
1338
+ ...(dnd && !disabled ? {
1339
+ draggable: true,
1340
+ onDragStart: function onDragStart(e) {
1341
+ return dnd.onDragStart(e, header.column.id);
1342
+ },
1343
+ onDragOver: dnd.onDragOver,
1344
+ onDrop: function onDrop(e) {
1345
+ return dnd.onDrop(e, header.column.id);
1346
+ }
1347
+ } : {}),
1348
+ ...cellFlexProps,
1349
+ ...getColSizeProps(header.column),
1350
+ ...(import_tamagui.isWeb && stickyStyle ? {
1351
+ style: {
1352
+ position: "sticky",
1353
+ ...("insetInlineStart" in stickyStyle && {
1354
+ insetInlineStart: stickyStyle.insetInlineStart
1355
+ }),
1356
+ ...("insetInlineEnd" in stickyStyle && {
1357
+ insetInlineEnd: stickyStyle.insetInlineEnd
1358
+ }),
1359
+ zIndex: 2,
1360
+ backgroundColor: "var(--color2)"
1361
+ }
1362
+ } : {}),
1363
+ children: [
1364
+ /* LC-10 (MPO-336): only the label yields
1365
+ to a narrow column; the glyphs keep their
1366
+ size or they paint into the next one. The
1367
+ filter cluster wraps under the label first,
1368
+ so the label keeps the column's width. */
1369
+ /* @__PURE__ */
1370
+ (0, import_jsx_runtime.jsxs)(import_tamagui.View, {
1386
1371
  flexDirection: "row",
1372
+ flexWrap: "wrap",
1387
1373
  gap: "$2",
1388
1374
  alignItems: "center",
1389
- flexGrow: isRightAligned ? 0 : 1,
1390
- flexShrink: 1,
1391
- flexBasis: "auto",
1375
+ justifyContent: isRightAligned ? "flex-end" : "space-between",
1376
+ flex: 1,
1392
1377
  minWidth: 0,
1393
- justifyContent: isRightAligned ? "flex-end" : void 0,
1394
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
1395
- fontSize: knobProps.sizeToken,
1396
- userSelect: "none",
1378
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.View, {
1379
+ flexDirection: "row",
1380
+ gap: "$2",
1381
+ alignItems: "center",
1382
+ flexGrow: isRightAligned ? 0 : 1,
1397
1383
  flexShrink: 1,
1384
+ flexBasis: "auto",
1398
1385
  minWidth: 0,
1399
- textAlign: isRightAligned ? "right" : void 0,
1400
- "data-header-label": "",
1401
- ...(import_tamagui.isWeb ? {
1402
- style: {
1403
- overflowWrap: "anywhere"
1404
- }
1405
- } : {}),
1406
- children: header.isPlaceholder ? null : (0, import_react_table.flexRender)(header.column.columnDef.header, header.getContext())
1407
- }), isSortableHeader && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Tooltip, {
1408
- content: sortDirection === "asc" ? t("Sorted ascending (click to sort descending)") : sortDirection === "desc" ? t("Sorted descending (click to clear)") : t("Click to sort (Shift+click for multi-sort)"),
1409
- children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.View, {
1410
- "aria-hidden": true,
1411
- role: "presentation",
1412
- flexShrink: 0,
1413
- children: [sortDirection === "asc" && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react2.CaretDownIcon, {
1414
- size: chrome.iconPx,
1415
- color: "var(--color11)"
1416
- }), sortDirection === "desc" && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react2.CaretDownIcon, {
1417
- size: chrome.iconPx,
1418
- color: "var(--color11)",
1386
+ justifyContent: isRightAligned ? "flex-end" : void 0,
1387
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
1388
+ fontSize: knobProps.sizeToken,
1389
+ userSelect: "none",
1390
+ flexShrink: 1,
1391
+ minWidth: 0,
1392
+ textAlign: isRightAligned ? "right" : void 0,
1393
+ "data-header-label": "",
1394
+ ...(import_tamagui.isWeb ? {
1419
1395
  style: {
1420
- transform: "rotate(180deg)"
1396
+ overflowWrap: "anywhere"
1421
1397
  }
1422
- }), sortDirection === false && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react2.CaretUpDownIcon, {
1423
- size: chrome.iconPx,
1424
- color: "var(--color11)"
1425
- })]
1426
- })
1427
- })]
1428
- }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.View, {
1429
- flexDirection: "row",
1430
- gap: "$1",
1431
- alignItems: "center",
1432
- flexShrink: 0,
1433
- children: [enableFiltering && header.column.getCanFilter() && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ColumnHeaderFilter.ColumnHeaderFilter, {
1434
- columnId: header.column.id,
1435
- columnLabel: typeof header.column.columnDef.header === "string" ? header.column.columnDef.header : header.column.id,
1436
- columnType: (0, import_filterFields.mapFieldToFilterType)(getColumnField(header.column.columnDef)),
1437
- filterValue: header.column.getFilterValue(),
1438
- onFilterChange: function onFilterChange(value) {
1439
- return header.column.setFilterValue(value);
1440
- },
1441
- isFiltered: header.column.getIsFiltered(),
1442
- options: (_header_column_columnDef_fieldProps = header.column.columnDef.fieldProps) === null || _header_column_columnDef_fieldProps === void 0 ? void 0 : _header_column_columnDef_fieldProps.options
1443
- }), pinning && enableColumnPinning &&
1444
- /* One compact cycle control per header
1445
- (left → right → unpin) — two full
1446
- buttons crowded the header (owner). */
1447
- /* @__PURE__ */
1448
- (0, import_jsx_runtime.jsx)(pinning.PinButton, {
1449
- columnId: header.column.id
1398
+ } : {}),
1399
+ children: header.isPlaceholder ? null : (0, import_react_table.flexRender)(header.column.columnDef.header, header.getContext())
1400
+ }), isSortableHeader && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Tooltip, {
1401
+ content: sortDirection === "asc" ? t("Sorted ascending (click to sort descending)") : sortDirection === "desc" ? t("Sorted descending (click to clear)") : t("Click to sort (Shift+click for multi-sort)"),
1402
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.View, {
1403
+ "aria-hidden": true,
1404
+ role: "presentation",
1405
+ flexShrink: 0,
1406
+ children: [sortDirection === "asc" && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react2.CaretDownIcon, {
1407
+ size: chrome.iconPx,
1408
+ color: "var(--color11)"
1409
+ }), sortDirection === "desc" && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react2.CaretDownIcon, {
1410
+ size: chrome.iconPx,
1411
+ color: "var(--color11)",
1412
+ style: {
1413
+ transform: "rotate(180deg)"
1414
+ }
1415
+ }), sortDirection === false && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react2.CaretUpDownIcon, {
1416
+ size: chrome.iconPx,
1417
+ color: "var(--color11)"
1418
+ })]
1419
+ })
1420
+ })]
1421
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.View, {
1422
+ flexDirection: "row",
1423
+ gap: "$1",
1424
+ alignItems: "center",
1425
+ flexShrink: 0,
1426
+ children: [enableFiltering && header.column.getCanFilter() && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ColumnHeaderFilter.ColumnHeaderFilter, {
1427
+ columnId: header.column.id,
1428
+ columnLabel: typeof header.column.columnDef.header === "string" ? header.column.columnDef.header : header.column.id,
1429
+ columnType: (0, import_filterFields.mapFieldToFilterType)(getColumnField(header.column.columnDef)),
1430
+ filterValue: header.column.getFilterValue(),
1431
+ onFilterChange: function onFilterChange(value) {
1432
+ return header.column.setFilterValue(value);
1433
+ },
1434
+ isFiltered: header.column.getIsFiltered(),
1435
+ options: (_header_column_columnDef_fieldProps = header.column.columnDef.fieldProps) === null || _header_column_columnDef_fieldProps === void 0 ? void 0 : _header_column_columnDef_fieldProps.options
1436
+ }), pinning && enableColumnPinning &&
1437
+ /* One compact cycle control per header
1438
+ (left → right → unpin) — two full
1439
+ buttons crowded the header (owner). */
1440
+ /* @__PURE__ */
1441
+ (0, import_jsx_runtime.jsx)(pinning.PinButton, {
1442
+ columnId: header.column.id
1443
+ })]
1450
1444
  })]
1445
+ }), canResize && resizeHandler && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1446
+ position: "absolute",
1447
+ right: -4,
1448
+ top: 0,
1449
+ height: 2e3,
1450
+ width: 8,
1451
+ cursor: "col-resize",
1452
+ onMouseDown: resizeHandler,
1453
+ onTouchStart: resizeHandler,
1454
+ role: "separator",
1455
+ "aria-valuenow": colSize,
1456
+ "aria-valuemin": colMinSize,
1457
+ "aria-valuemax": colMaxSize,
1458
+ "aria-label": (0, import_withInterp.withInterp)(t("Resize {{column}} column", {
1459
+ column: header.column.columnDef.header || header.column.id
1460
+ }), {
1461
+ column: header.column.columnDef.header || header.column.id
1462
+ }),
1463
+ style: {
1464
+ touchAction: "none"
1465
+ },
1466
+ zIndex: 10
1451
1467
  })]
1452
- }), canResize && resizeHandler && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1453
- position: "absolute",
1454
- right: -4,
1455
- top: 0,
1456
- height: 2e3,
1457
- width: 8,
1458
- cursor: "col-resize",
1459
- onMouseDown: resizeHandler,
1460
- onTouchStart: resizeHandler,
1461
- role: "separator",
1462
- "aria-valuenow": colSize,
1463
- "aria-valuemin": colMinSize,
1464
- "aria-valuemax": colMaxSize,
1465
- "aria-label": (0, import_withInterp.withInterp)(t("Resize {{column}} column", {
1466
- column: header.column.columnDef.header || header.column.id
1467
- }), {
1468
- column: header.column.columnDef.header || header.column.id
1469
- }),
1470
- style: {
1471
- touchAction: "none"
1472
- },
1473
- zIndex: 10
1474
- })]
1475
- }, header.id);
1476
- }), showDeleteRow && !readOnly && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.HeaderCell, {
1477
- cellWidth: chrome.deleteCol,
1478
- cellHeight,
1479
- cellLocation: "last"
1480
- })]
1481
- }, headerGroup.id);
1482
- })
1483
- }), /* Table Body */
1484
- /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_table_primitives.Table.Body, {
1485
- // Virtualized mode hosts a div rowgroup (DataTableVirtualized)
1486
- // inside a tbody>tr>td bridge; presentation-ing the bridge
1487
- // keeps the AT grid tree clean: table > rowgroup(thead) +
1488
- // rowgroup(virtual rows) with no cell-wrapping-rowgroup
1489
- // noise. aria-label is prohibited on presentation roles.
1490
- role: isVirtualized ? "presentation" : "rowgroup",
1491
- "aria-label": isVirtualized ? void 0 : t("Table data"),
1492
- // Pinning: the flex-variant overflowY:auto computes
1493
- // overflow-x:auto, making the body its own horizontal
1494
- // scroller — headers (outside it) then never move with
1495
- // the columns. Visible keeps the sticky chain clean so
1496
- // the content View is the one scrollport.
1497
- ...(hScroll && enableColumnPinning ? {
1498
- overflowY: "visible",
1499
- overflowX: "visible"
1500
- } : {}),
1501
- ref: function ref(node) {
1502
- tableBodyRef.current = node !== null && node !== void 0 ? node : null;
1503
- },
1504
- children: [displayRows.length === 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Row, {
1505
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1506
- children: isRefetching ? null : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.EmptyState, {
1507
- compact: true,
1508
- "aria-live": "polite",
1509
- title: computed.hasActiveFilters ? t("No results found") : t("No data available")
1510
- })
1468
+ }, header.id);
1469
+ }), showDeleteRow && !readOnly && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.HeaderCell, {
1470
+ cellWidth: chrome.deleteCol,
1471
+ cellHeight,
1472
+ cellLocation: "last"
1473
+ })]
1474
+ }, headerGroup.id);
1511
1475
  })
1512
- }) : isVirtualized ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Row, {
1513
- role: "presentation",
1514
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1476
+ }), /* Table Body */
1477
+ /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_table_primitives.Table.Body, {
1478
+ // Virtualized mode hosts a div rowgroup (DataTableVirtualized)
1479
+ // inside a tbody>tr>td bridge; presentation-ing the bridge
1480
+ // keeps the AT grid tree clean: table > rowgroup(thead) +
1481
+ // rowgroup(virtual rows) with no cell-wrapping-rowgroup
1482
+ // noise. aria-label is prohibited on presentation roles.
1483
+ role: isVirtualized ? "presentation" : "rowgroup",
1484
+ "aria-label": isVirtualized ? void 0 : t("Table data"),
1485
+ // Pinning: the flex-variant overflowY:auto computes
1486
+ // overflow-x:auto, making the body its own horizontal
1487
+ // scroller — headers (outside it) then never move with
1488
+ // the columns. Visible keeps the sticky chain clean so
1489
+ // the content View is the one scrollport.
1490
+ ...(hScroll && enableColumnPinning ? {
1491
+ overflowY: "visible",
1492
+ overflowX: "visible"
1493
+ } : {}),
1494
+ ref: function ref(node) {
1495
+ tableBodyRef.current = node !== null && node !== void 0 ? node : null;
1496
+ },
1497
+ children: [displayRows.length === 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Row, {
1498
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1499
+ children: isRefetching ? null : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.EmptyState, {
1500
+ size: resolvedSize,
1501
+ "aria-live": "polite",
1502
+ title: computed.hasActiveFilters ? t("No results found") : t("No data available")
1503
+ })
1504
+ })
1505
+ }) : isVirtualized ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Row, {
1515
1506
  role: "presentation",
1516
- padding: 0,
1517
- // In the default flex displayMode colSpan is inert
1518
- // and the context default gives cells a fixed token
1519
- // width — the virtualized body must fill the row
1520
- // explicitly or it collapses to that token. (In the
1521
- // real-<table> displayMode the colSpan attribute
1522
- // now genuinely spans.)
1523
- cellWidth: "auto",
1524
- style: {
1525
- display: "block",
1526
- overflow: "hidden",
1527
- width: "100%",
1528
- minWidth: 0
1529
- },
1530
- ...{
1531
- colSpan: table.getVisibleLeafColumns().length + extraColumnsBefore + extraColumnsAfter
1532
- },
1533
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableVirtualized.DataTableVirtualized, {
1534
- virtualItems,
1535
- totalSize,
1536
- bodyScrollRef,
1537
- virtualizationHeight,
1538
- tableRows: displayRows,
1539
- headerGroups,
1540
- showRowNumbers,
1541
- enableRowExpansion,
1542
- showDeleteRow,
1543
- readOnly,
1544
- enableKeyboardNavigation,
1545
- keyboardNav,
1546
- getColSizeProps,
1547
- renderRowContent,
1548
- extraColumnsBefore,
1549
- extraColumnsAfter,
1550
- table,
1551
- hasInfiniteTail,
1552
- rowHeightPx,
1553
- tableZebraOn,
1554
- ...(rowPressActive ? {
1555
- getRowPressProps
1556
- } : {})
1507
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1508
+ role: "presentation",
1509
+ padding: 0,
1510
+ // In the default flex displayMode colSpan is inert
1511
+ // and the context default gives cells a fixed token
1512
+ // width — the virtualized body must fill the row
1513
+ // explicitly or it collapses to that token. (In the
1514
+ // real-<table> displayMode the colSpan attribute
1515
+ // now genuinely spans.)
1516
+ cellWidth: "auto",
1517
+ style: {
1518
+ display: "block",
1519
+ overflow: "hidden",
1520
+ width: "100%",
1521
+ minWidth: 0
1522
+ },
1523
+ ...{
1524
+ colSpan: table.getVisibleLeafColumns().length + extraColumnsBefore + extraColumnsAfter
1525
+ },
1526
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableVirtualized.DataTableVirtualized, {
1527
+ virtualItems,
1528
+ totalSize,
1529
+ bodyScrollRef,
1530
+ virtualizationHeight,
1531
+ tableRows: displayRows,
1532
+ headerGroups,
1533
+ showRowNumbers,
1534
+ enableRowExpansion,
1535
+ showDeleteRow,
1536
+ readOnly,
1537
+ enableKeyboardNavigation,
1538
+ keyboardNav,
1539
+ getColSizeProps,
1540
+ renderRowContent,
1541
+ extraColumnsBefore,
1542
+ extraColumnsAfter,
1543
+ table,
1544
+ hasInfiniteTail,
1545
+ rowHeightPx,
1546
+ tableZebraOn,
1547
+ ...(rowPressActive ? {
1548
+ getRowPressProps
1549
+ } : {})
1550
+ })
1557
1551
  })
1558
- })
1559
- }) : /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
1560
- children: [displayRows.map(function (row, index) {
1561
- var _row_getIsGrouped, _row_getIsSelected, _row_subRows;
1562
- rowCounter.current++;
1563
- var isLastRow = index === displayRows.length - 1;
1564
- if (enableGrouping && ((_row_getIsGrouped = row.getIsGrouped) === null || _row_getIsGrouped === void 0 ? void 0 : _row_getIsGrouped.call(row))) {
1565
- var _row_depth, _row_groupingValue, _ref;
1566
- var _row_subRows1;
1567
- var colSpan = table.getVisibleLeafColumns().length + extraColumnsBefore + extraColumnsAfter;
1568
- var indent = ((_row_depth = row.depth) !== null && _row_depth !== void 0 ? _row_depth : 0) * chrome.indent;
1569
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Row, {
1570
- backgroundColor: "$color3",
1552
+ }) : /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
1553
+ children: [displayRows.map(function (row, index) {
1554
+ var _row_getIsGrouped, _row_getIsSelected, _row_subRows;
1555
+ rowCounter.current++;
1556
+ var isLastRow = index === displayRows.length - 1;
1557
+ if (enableGrouping && ((_row_getIsGrouped = row.getIsGrouped) === null || _row_getIsGrouped === void 0 ? void 0 : _row_getIsGrouped.call(row))) {
1558
+ var _row_depth, _row_groupingValue, _ref;
1559
+ var _row_subRows1;
1560
+ var colSpan = table.getVisibleLeafColumns().length + extraColumnsBefore + extraColumnsAfter;
1561
+ var indent = ((_row_depth = row.depth) !== null && _row_depth !== void 0 ? _row_depth : 0) * chrome.indent;
1562
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Row, {
1563
+ backgroundColor: "$color3",
1564
+ flexShrink: 0,
1565
+ "aria-rowindex": rowCounter.current,
1566
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1567
+ ...{
1568
+ colSpan
1569
+ },
1570
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.View, {
1571
+ flexDirection: "row",
1572
+ alignItems: "center",
1573
+ gap: "$2",
1574
+ paddingInlineStart: indent,
1575
+ cursor: "pointer",
1576
+ onPress: function onPress() {
1577
+ return row.toggleExpanded();
1578
+ },
1579
+ // Keyboard/AT contract: expandable group
1580
+ // header is a toggle button (Enter/Space).
1581
+ role: "button",
1582
+ tabIndex: 0,
1583
+ "aria-expanded": row.getIsExpanded(),
1584
+ ...{
1585
+ onKeyDown: function onKeyDown(e) {
1586
+ if (e.key === "Enter" || e.key === " ") {
1587
+ e.preventDefault();
1588
+ row.toggleExpanded();
1589
+ }
1590
+ }
1591
+ },
1592
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
1593
+ fontFamily: "$mono",
1594
+ fontSize: "$3",
1595
+ children: row.getIsExpanded() ? "\u25BC" : "\u25B6"
1596
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
1597
+ fontFamily: knobProps.heading.fontFamily,
1598
+ size: "$4",
1599
+ children: String((_row_groupingValue = row.groupingValue) !== null && _row_groupingValue !== void 0 ? _row_groupingValue : "\u2014")
1600
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Text, {
1601
+ color: "$placeholderColor",
1602
+ fontSize: "$2",
1603
+ children: ["(", (_ref = (_row_subRows1 = row.subRows) === null || _row_subRows1 === void 0 ? void 0 : _row_subRows1.length) !== null && _ref !== void 0 ? _ref : 0, ")"]
1604
+ })]
1605
+ })
1606
+ })
1607
+ }, row.id);
1608
+ }
1609
+ var mainRow = /* @__PURE__ */(0, import_react.createElement)(import_table_primitives.Table.Row, {
1610
+ ...(0, import_rowStateChrome.tableRowStateProps)({
1611
+ selected: Boolean(enableRowSelection && ((_row_getIsSelected = row.getIsSelected) === null || _row_getIsSelected === void 0 ? void 0 : _row_getIsSelected.call(row))),
1612
+ keyboardFocused: false,
1613
+ zebraOn: tableZebraOn,
1614
+ index,
1615
+ pressable: rowPressActive
1616
+ }),
1617
+ ...{
1618
+ animation: "quick"
1619
+ },
1571
1620
  flexShrink: 0,
1621
+ rowLocation: rowCounter.current === 0 ? "first" : rowCounter.current === allRowsLength - 1 ? "last" : "middle",
1622
+ key: `${row.id}-${index}`,
1572
1623
  "aria-rowindex": rowCounter.current,
1624
+ "aria-label": (0, import_withInterp.withInterp)(t("Row {{row}}", {
1625
+ row: index + 1
1626
+ }), {
1627
+ row: index + 1
1628
+ }),
1629
+ tabIndex: -1,
1630
+ ...{
1631
+ "data-table-zebra": tableZebraOn ? index % 2 === 0 ? "even" : "odd" : "off"
1632
+ },
1633
+ ...getRowPressProps(row, index),
1634
+ ...(0, import_dataTableChrome.rowIntentProps)(row.original)
1635
+ }, renderRowContent(row, index, isLastRow));
1636
+ var subRow = enableRowExpansion && renderSubComponent && row.getIsExpanded() && !((_row_subRows = row.subRows) === null || _row_subRows === void 0 ? void 0 : _row_subRows.length) ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Row, {
1637
+ backgroundColor: "$color2",
1573
1638
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1574
1639
  ...{
1575
- colSpan
1640
+ colSpan: table.getVisibleLeafColumns().length + extraColumnsBefore + extraColumnsAfter
1576
1641
  },
1577
- children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.View, {
1578
- flexDirection: "row",
1579
- alignItems: "center",
1580
- gap: "$2",
1581
- paddingInlineStart: indent,
1582
- cursor: "pointer",
1583
- onPress: function onPress() {
1584
- return row.toggleExpanded();
1585
- },
1586
- // Keyboard/AT contract: expandable group
1587
- // header is a toggle button (Enter/Space).
1588
- role: "button",
1589
- tabIndex: 0,
1590
- "aria-expanded": row.getIsExpanded(),
1591
- ...{
1592
- onKeyDown: function onKeyDown(e) {
1593
- if (e.key === "Enter" || e.key === " ") {
1594
- e.preventDefault();
1595
- row.toggleExpanded();
1596
- }
1597
- }
1598
- },
1599
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
1600
- fontFamily: "$mono",
1601
- fontSize: "$3",
1602
- children: row.getIsExpanded() ? "\u25BC" : "\u25B6"
1603
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
1604
- fontWeight: "600",
1605
- children: String((_row_groupingValue = row.groupingValue) !== null && _row_groupingValue !== void 0 ? _row_groupingValue : "\u2014")
1606
- }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Text, {
1607
- color: "$placeholderColor",
1608
- fontSize: "$2",
1609
- children: ["(", (_ref = (_row_subRows1 = row.subRows) === null || _row_subRows1 === void 0 ? void 0 : _row_subRows1.length) !== null && _ref !== void 0 ? _ref : 0, ")"]
1610
- })]
1611
- })
1642
+ children: renderSubComponent(row)
1612
1643
  })
1644
+ }, `${row.id}-sub`) : null;
1645
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_react3.default.Fragment, {
1646
+ children: [mainRow, subRow]
1613
1647
  }, row.id);
1614
- }
1615
- var mainRow = /* @__PURE__ */(0, import_react.createElement)(import_table_primitives.Table.Row, {
1616
- ...(0, import_rowStateChrome.tableRowStateProps)({
1617
- selected: Boolean(enableRowSelection && ((_row_getIsSelected = row.getIsSelected) === null || _row_getIsSelected === void 0 ? void 0 : _row_getIsSelected.call(row))),
1618
- keyboardFocused: false,
1619
- zebraOn: tableZebraOn,
1620
- index,
1621
- pressable: rowPressActive
1622
- }),
1623
- ...{
1624
- animation: "quick"
1625
- },
1626
- flexShrink: 0,
1627
- rowLocation: rowCounter.current === 0 ? "first" : rowCounter.current === allRowsLength - 1 ? "last" : "middle",
1628
- key: `${row.id}-${index}`,
1629
- "aria-rowindex": rowCounter.current,
1630
- "aria-label": (0, import_withInterp.withInterp)(t("Row {{row}}", {
1631
- row: index + 1
1632
- }), {
1633
- row: index + 1
1634
- }),
1635
- tabIndex: -1,
1636
- ...{
1637
- "data-table-zebra": tableZebraOn ? index % 2 === 0 ? "even" : "odd" : "off"
1638
- },
1639
- ...getRowPressProps(row, index),
1640
- ...(0, import_dataTableChrome.rowIntentProps)(row.original)
1641
- }, renderRowContent(row, index, isLastRow));
1642
- var subRow = enableRowExpansion && renderSubComponent && row.getIsExpanded() && !((_row_subRows = row.subRows) === null || _row_subRows === void 0 ? void 0 : _row_subRows.length) ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Row, {
1643
- backgroundColor: "$color2",
1644
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1645
- ...{
1646
- colSpan: table.getVisibleLeafColumns().length + extraColumnsBefore + extraColumnsAfter
1647
- },
1648
- children: renderSubComponent(row)
1649
- })
1650
- }, `${row.id}-sub`) : null;
1651
- return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_react3.default.Fragment, {
1652
- children: [mainRow, subRow]
1653
- }, row.id);
1654
- }), /* Filler row — fills remaining space with background */
1655
- isFlexLayout && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_table_primitives.Table.Row, {
1656
- "aria-hidden": true,
1657
- backgroundColor: "$color1",
1658
- flex: 1,
1659
- flexShrink: 1,
1660
- flexGrow: 1,
1661
- flexBasis: 0,
1662
- minHeight: 0,
1663
- children: [enableRowSelection && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1664
- cellWidth: selectionColWidth,
1665
- cellLocation: "first",
1666
- padding: 0,
1667
- minHeight: 0
1668
- }), showRowNumbers && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1669
- cellWidth: chrome.rowNumberCol,
1670
- cellLocation: enableRowSelection ? "middle" : "first",
1671
- padding: 0,
1672
- minHeight: 0
1673
- }), enableRowExpansion && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1674
- cellWidth: chrome.expandCol,
1675
- cellLocation: enableRowSelection || showRowNumbers ? "middle" : "first",
1676
- padding: 0,
1677
- minHeight: 0
1678
- }), (_headerGroups_ = headerGroups[0]) === null || _headerGroups_ === void 0 ? void 0 : _headerGroups_.headers.map(function (header, headerIndex) {
1679
- var isFirstDataCell = headerIndex === 0 && !enableRowSelection && !showRowNumbers && !enableRowExpansion;
1680
- var isLastDataCell = headerIndex === headerGroups[0].headers.length - 1 && !(showDeleteRow && !readOnly);
1681
- var cellLoc = isFirstDataCell ? "first" : isLastDataCell ? "last" : "middle";
1682
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1683
- ...cellFlexProps,
1684
- ...getColSizeProps(header.column),
1685
- cellLocation: cellLoc,
1648
+ }), /* Filler row — fills remaining space with background */
1649
+ isFlexLayout && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_table_primitives.Table.Row, {
1650
+ "aria-hidden": true,
1651
+ backgroundColor: "$color1",
1652
+ flex: 1,
1653
+ flexShrink: 1,
1654
+ flexGrow: 1,
1655
+ flexBasis: 0,
1656
+ minHeight: 0,
1657
+ children: [enableRowSelection && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1658
+ cellWidth: selectionColWidth,
1659
+ cellLocation: "first",
1686
1660
  padding: 0,
1687
1661
  minHeight: 0
1688
- }, header.id);
1689
- }), showDeleteRow && !readOnly && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1690
- cellWidth: chrome.deleteCol,
1691
- cellLocation: "last",
1692
- padding: 0,
1693
- minHeight: 0
1694
- })]
1695
- }, "filler-row")]
1696
- }),
1697
- /* DF-12 / Axiom 6: clipped-viewport affordance — rows are
1698
- cut off below the fold, so the frame says so with a
1699
- bottom fade that clears once the last row is reached.
1700
- Sticky inside the scroll container; zero layout cost
1701
- (a zero-height row whose cell paints the fade upward
1702
- over the last visible row). Rendered as a Table.Row
1703
- and a <td>: a <div> is not a valid child of the real
1704
- <tbody> or <tr> (SSR parsers foster-parent it out of
1705
- the table). Only reachable in the flex displayMode
1706
- (bodyClipped needs a scrollable body), where the row
1707
- renders display:flex like the old View. */
1708
- import_tamagui.isWeb && bodyClipped && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Row, {
1709
- "aria-hidden": true,
1710
- role: "presentation",
1711
- position: "sticky",
1712
- bottom: 0,
1713
- height: 0,
1714
- flexShrink: 0,
1715
- zIndex: 2,
1716
- pointerEvents: "none",
1717
- ...{
1718
- "data-table-clip-affordance": "true"
1719
- },
1720
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1662
+ }), showRowNumbers && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1663
+ cellWidth: chrome.rowNumberCol,
1664
+ cellLocation: enableRowSelection ? "middle" : "first",
1665
+ padding: 0,
1666
+ minHeight: 0
1667
+ }), enableRowExpansion && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1668
+ cellWidth: chrome.expandCol,
1669
+ cellLocation: enableRowSelection || showRowNumbers ? "middle" : "first",
1670
+ padding: 0,
1671
+ minHeight: 0
1672
+ }), (_headerGroups_ = headerGroups[0]) === null || _headerGroups_ === void 0 ? void 0 : _headerGroups_.headers.map(function (header, headerIndex) {
1673
+ var isFirstDataCell = headerIndex === 0 && !enableRowSelection && !showRowNumbers && !enableRowExpansion;
1674
+ var isLastDataCell = headerIndex === headerGroups[0].headers.length - 1 && !(showDeleteRow && !readOnly);
1675
+ var cellLoc = isFirstDataCell ? "first" : isLastDataCell ? "last" : "middle";
1676
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1677
+ ...cellFlexProps,
1678
+ ...getColSizeProps(header.column),
1679
+ cellLocation: cellLoc,
1680
+ padding: 0,
1681
+ minHeight: 0
1682
+ }, header.id);
1683
+ }), showDeleteRow && !readOnly && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1684
+ cellWidth: chrome.deleteCol,
1685
+ cellLocation: "last",
1686
+ padding: 0,
1687
+ minHeight: 0
1688
+ })]
1689
+ }, "filler-row")]
1690
+ }),
1691
+ /* DF-12 / Axiom 6: clipped-viewport affordance — rows are
1692
+ cut off below the fold, so the frame says so with a
1693
+ bottom fade that clears once the last row is reached.
1694
+ Sticky inside the scroll container; zero layout cost
1695
+ (a zero-height row whose cell paints the fade upward
1696
+ over the last visible row). Rendered as a Table.Row
1697
+ and a <td>: a <div> is not a valid child of the real
1698
+ <tbody> or <tr> (SSR parsers foster-parent it out of
1699
+ the table). Only reachable in the flex displayMode
1700
+ (bodyClipped needs a scrollable body), where the row
1701
+ renders display:flex like the old View. */
1702
+ import_tamagui.isWeb && bodyClipped && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Row, {
1703
+ "aria-hidden": true,
1704
+ role: "presentation",
1705
+ position: "sticky",
1706
+ bottom: 0,
1707
+ height: 0,
1708
+ flexShrink: 0,
1709
+ zIndex: 2,
1710
+ pointerEvents: "none",
1721
1711
  ...{
1722
- render: "td"
1712
+ "data-table-clip-affordance": "true"
1723
1713
  },
1724
- position: "absolute",
1725
- left: 0,
1726
- right: 0,
1727
- bottom: 0,
1728
- height: 28,
1729
- style: {
1730
- background: "linear-gradient(to bottom, rgba(0,0,0,0), var(--background))"
1731
- }
1714
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1715
+ ...{
1716
+ render: "td"
1717
+ },
1718
+ position: "absolute",
1719
+ left: 0,
1720
+ right: 0,
1721
+ bottom: 0,
1722
+ height: 28,
1723
+ style: {
1724
+ background: "linear-gradient(to bottom, rgba(0,0,0,0), var(--background))"
1725
+ }
1726
+ })
1727
+ })]
1728
+ }), /* Table Footer */
1729
+ hasFooter && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Foot, {
1730
+ children: footerGroups.map(function (footerGroup) {
1731
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_table_primitives.Table.Row, {
1732
+ children: [enableRowSelection && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1733
+ cellWidth: selectionColWidth,
1734
+ cellHeight,
1735
+ cellLocation: "first"
1736
+ }), showRowNumbers && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1737
+ cellWidth: chrome.rowNumberCol,
1738
+ cellHeight,
1739
+ cellLocation: enableRowSelection ? "middle" : "first"
1740
+ }), enableRowExpansion && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1741
+ cellWidth: chrome.expandCol,
1742
+ cellHeight,
1743
+ cellLocation: enableRowSelection || showRowNumbers ? "middle" : "first"
1744
+ }), footerGroup.headers.map(function (header) {
1745
+ var stickyStyle = getStickyStyle(header.column.id);
1746
+ var columnAlign = resolveColumnAlign({
1747
+ ...header.column.columnDef,
1748
+ id: header.column.id
1749
+ });
1750
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1751
+ ...cellFlexProps,
1752
+ ...getColSizeProps(header.column),
1753
+ ...(import_tamagui.isWeb && stickyStyle ? {
1754
+ style: {
1755
+ position: "sticky",
1756
+ ...("insetInlineStart" in stickyStyle && {
1757
+ insetInlineStart: stickyStyle.insetInlineStart
1758
+ }),
1759
+ ...("insetInlineEnd" in stickyStyle && {
1760
+ insetInlineEnd: stickyStyle.insetInlineEnd
1761
+ }),
1762
+ zIndex: 2,
1763
+ backgroundColor: "var(--color2)"
1764
+ }
1765
+ } : {}),
1766
+ justifyContent: (0, import_columnAlign.alignToFlex)(columnAlign),
1767
+ "data-align": columnAlign,
1768
+ children: header.isPlaceholder ? null : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1769
+ width: "100%",
1770
+ minWidth: 0,
1771
+ flexDirection: "row",
1772
+ alignItems: "center",
1773
+ justifyContent: (0, import_columnAlign.alignToFlex)(columnAlign),
1774
+ "data-cell-align": columnAlign,
1775
+ style: import_tamagui.isWeb ? {
1776
+ textAlign: columnAlign
1777
+ } : void 0,
1778
+ children: (0, import_react_table.flexRender)(header.column.columnDef.footer, header.getContext())
1779
+ })
1780
+ }, header.id);
1781
+ }), showDeleteRow && !readOnly && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1782
+ cellWidth: chrome.deleteCol,
1783
+ cellHeight,
1784
+ cellLocation: "last"
1785
+ })]
1786
+ }, footerGroup.id);
1732
1787
  })
1733
1788
  })]
1734
- }), /* Table Footer */
1735
- hasFooter && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Foot, {
1736
- children: footerGroups.map(function (footerGroup) {
1737
- return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_table_primitives.Table.Row, {
1738
- children: [enableRowSelection && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1739
- cellWidth: selectionColWidth,
1740
- cellHeight,
1741
- cellLocation: "first"
1742
- }), showRowNumbers && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1743
- cellWidth: chrome.rowNumberCol,
1744
- cellHeight,
1745
- cellLocation: enableRowSelection ? "middle" : "first"
1746
- }), enableRowExpansion && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1747
- cellWidth: chrome.expandCol,
1748
- cellHeight,
1749
- cellLocation: enableRowSelection || showRowNumbers ? "middle" : "first"
1750
- }), footerGroup.headers.map(function (header) {
1751
- var stickyStyle = getStickyStyle(header.column.id);
1752
- var columnAlign = resolveColumnAlign({
1753
- ...header.column.columnDef,
1754
- id: header.column.id
1755
- });
1756
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1757
- ...cellFlexProps,
1758
- ...getColSizeProps(header.column),
1759
- ...(import_tamagui.isWeb && stickyStyle ? {
1760
- style: {
1761
- position: "sticky",
1762
- ...("insetInlineStart" in stickyStyle && {
1763
- insetInlineStart: stickyStyle.insetInlineStart
1764
- }),
1765
- ...("insetInlineEnd" in stickyStyle && {
1766
- insetInlineEnd: stickyStyle.insetInlineEnd
1767
- }),
1768
- zIndex: 2,
1769
- backgroundColor: "var(--color2)"
1770
- }
1771
- } : {}),
1772
- justifyContent: (0, import_columnAlign.alignToFlex)(columnAlign),
1773
- "data-align": columnAlign,
1774
- children: header.isPlaceholder ? null : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1775
- width: "100%",
1776
- minWidth: 0,
1777
- flexDirection: "row",
1778
- alignItems: "center",
1779
- justifyContent: (0, import_columnAlign.alignToFlex)(columnAlign),
1780
- "data-cell-align": columnAlign,
1781
- style: import_tamagui.isWeb ? {
1782
- textAlign: columnAlign
1783
- } : void 0,
1784
- children: (0, import_react_table.flexRender)(header.column.columnDef.footer, header.getContext())
1785
- })
1786
- }, header.id);
1787
- }), showDeleteRow && !readOnly && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table_primitives.Table.Cell, {
1788
- cellWidth: chrome.deleteCol,
1789
- cellHeight,
1790
- cellLocation: "last"
1791
- })]
1792
- }, footerGroup.id);
1793
- })
1794
- })]
1795
- })
1796
- })), infinite ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableInfiniteTail.DataTableInfiniteTail, {
1797
- infinite,
1798
- visibleCount: tableRows.length,
1799
- showAppendSkeleton: !isVirtualized,
1800
- rowHeightPx,
1801
- fontSize: knobProps.sizeToken,
1802
- gapProps: knobProps.gap,
1803
- sentinel: !isVirtualized && !infinite.exhausted && !infinite.appendError && import_tamagui.isWeb ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1804
- // @ts-ignore web ref for IntersectionObserver
1805
- ref: sentinelRef,
1806
- height: 1,
1789
+ })
1790
+ })), infinite ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableInfiniteTail.DataTableInfiniteTail, {
1791
+ infinite,
1792
+ visibleCount: tableRows.length,
1793
+ showAppendSkeleton: !isVirtualized,
1794
+ rowHeightPx,
1795
+ fontSize: knobProps.sizeToken,
1796
+ gapProps: knobProps.gap,
1797
+ sentinel: !isVirtualized && !infinite.exhausted && !infinite.appendError && import_tamagui.isWeb ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1798
+ // @ts-ignore web ref for IntersectionObserver
1799
+ ref: sentinelRef,
1800
+ height: 1,
1801
+ width: "100%",
1802
+ "aria-hidden": true,
1803
+ ...{
1804
+ "data-testid": "infinite-sentinel"
1805
+ }
1806
+ }) : null
1807
+ }) : null, enableRowSelection && bulkBarPlacement === "bottom" ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1807
1808
  width: "100%",
1808
- "aria-hidden": true,
1809
- ...{
1810
- "data-testid": "infinite-sentinel"
1811
- }
1812
- }) : null
1813
- }) : null, enableRowSelection && bulkBarPlacement === "bottom" ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1814
- width: "100%",
1815
- ...(disabled ? disabledState.chromeKnobProps : {}),
1816
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableBulkActions.DataTableBulkActions, {
1817
- actions: resolvedBulkActions,
1818
- maxVisibleActions: 5,
1819
- showSelectionCount: true,
1820
- placement: "bottom"
1821
- })
1822
- }) : null, /* Add Row Button */
1823
- showAddRow && !readOnly && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1824
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
1825
- icon: import_react2.PlusIcon,
1826
- disabled: disabled || maxRows !== void 0 && tableData.length >= maxRows,
1827
- onPress: effectiveHandleAddRow,
1828
- "aria-label": t("Add Row"),
1829
- children: t("Add Row")
1830
- })
1809
+ ...(disabled ? disabledState.chromeKnobProps : {}),
1810
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableBulkActions.DataTableBulkActions, {
1811
+ actions: resolvedBulkActions,
1812
+ maxVisibleActions: 5,
1813
+ showSelectionCount: true,
1814
+ placement: "bottom"
1815
+ })
1816
+ }) : null, /* Add Row Button */
1817
+ showAddRow && !readOnly && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
1818
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
1819
+ icon: import_react2.PlusIcon,
1820
+ disabled: disabled || maxRows !== void 0 && tableData.length >= maxRows,
1821
+ onPress: effectiveHandleAddRow,
1822
+ "aria-label": t("Add Row"),
1823
+ children: t("Add Row")
1824
+ })
1825
+ })]
1831
1826
  }), /* Pagination footer (pages mode only; infinite replaces it with the tail status) */
1832
1827
  enablePagination && !infinite && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.View, {
1833
1828
  paddingTop: "$3",