@multiplatform.one/table 6.6.0 → 7.0.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 (506) hide show
  1. package/README.md +4 -3
  2. package/dist/cjs/components/ChildTable/index.cjs +2 -1
  3. package/dist/cjs/components/ChildTable/index.native.js +3 -2
  4. package/dist/cjs/components/ChildTable/index.native.js.map +1 -1
  5. package/dist/cjs/components/ColumnHeaderFilter/index.cjs +17 -9
  6. package/dist/cjs/components/ColumnHeaderFilter/index.native.js +33 -12
  7. package/dist/cjs/components/ColumnHeaderFilter/index.native.js.map +1 -1
  8. package/dist/cjs/components/DataTable/DataTableCardControls.native.js +1 -1
  9. package/dist/cjs/components/DataTable/DataTableCardControls.native.js.map +1 -1
  10. package/dist/cjs/components/DataTable/DataTableContext.native.js.map +1 -1
  11. package/dist/cjs/components/DataTable/DataTableDocumentList.cjs +222 -0
  12. package/dist/cjs/components/DataTable/DataTableDocumentList.native.js +237 -0
  13. package/dist/cjs/components/DataTable/DataTableDocumentList.native.js.map +1 -0
  14. package/dist/cjs/components/DataTable/DataTableMobileCards.cjs +5 -2
  15. package/dist/cjs/components/DataTable/DataTableMobileCards.native.js +6 -2
  16. package/dist/cjs/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  17. package/dist/cjs/components/DataTable/DataTableRoot.cjs +92 -41
  18. package/dist/cjs/components/DataTable/DataTableRoot.native.js +104 -50
  19. package/dist/cjs/components/DataTable/DataTableRoot.native.js.map +1 -1
  20. package/dist/cjs/components/DataTable/DataTableStateContext.native.js.map +1 -1
  21. package/dist/cjs/components/DataTable/DataTableVirtualized.cjs +8 -2
  22. package/dist/cjs/components/DataTable/DataTableVirtualized.native.js +9 -3
  23. package/dist/cjs/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  24. package/dist/cjs/components/DataTable/documentListSlots.cjs +59 -0
  25. package/dist/cjs/components/DataTable/documentListSlots.native.js +85 -0
  26. package/dist/cjs/components/DataTable/documentListSlots.native.js.map +1 -0
  27. package/dist/cjs/components/DataTable/index.native.js +84 -69
  28. package/dist/cjs/components/DataTable/index.native.js.map +1 -1
  29. package/dist/cjs/components/DataTable/rowStateChrome.cjs +55 -0
  30. package/dist/cjs/components/DataTable/rowStateChrome.native.js +59 -0
  31. package/dist/cjs/components/DataTable/rowStateChrome.native.js.map +1 -0
  32. package/dist/cjs/components/DataTableBulkActions/index.native.js.map +1 -1
  33. package/dist/cjs/components/DataTableCell/CellModalEditor.cjs +24 -3
  34. package/dist/cjs/components/DataTableCell/CellModalEditor.native.js +6 -1
  35. package/dist/cjs/components/DataTableCell/CellModalEditor.native.js.map +1 -1
  36. package/dist/cjs/components/DataTableCell/CellOptionsEditor.cjs +9 -2
  37. package/dist/cjs/components/DataTableCell/CellOptionsEditor.native.js +11 -2
  38. package/dist/cjs/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
  39. package/dist/cjs/components/DataTableCell/index.cjs +74 -63
  40. package/dist/cjs/components/DataTableCell/index.native.js +94 -82
  41. package/dist/cjs/components/DataTableCell/index.native.js.map +1 -1
  42. package/dist/cjs/components/DataTableColumnPinning/index.cjs +54 -37
  43. package/dist/cjs/components/DataTableColumnPinning/index.native.js +59 -38
  44. package/dist/cjs/components/DataTableColumnPinning/index.native.js.map +1 -1
  45. package/dist/cjs/components/DataTableDateFilter/index.cjs +33 -14
  46. package/dist/cjs/components/DataTableDateFilter/index.native.js +33 -12
  47. package/dist/cjs/components/DataTableDateFilter/index.native.js.map +1 -1
  48. package/dist/cjs/components/DataTableExport/index.cjs +35 -7
  49. package/dist/cjs/components/DataTableExport/index.native.js +42 -7
  50. package/dist/cjs/components/DataTableExport/index.native.js.map +1 -1
  51. package/dist/cjs/components/DataTableFacetMenu/index.cjs +140 -0
  52. package/dist/cjs/components/DataTableFacetMenu/index.native.js +156 -0
  53. package/dist/cjs/components/DataTableFacetMenu/index.native.js.map +1 -0
  54. package/dist/cjs/components/DataTableFilterButton/index.cjs +51 -32
  55. package/dist/cjs/components/DataTableFilterButton/index.native.js +64 -41
  56. package/dist/cjs/components/DataTableFilterButton/index.native.js.map +1 -1
  57. package/dist/cjs/components/DataTableFilterChips/FilterChip.cjs +143 -0
  58. package/dist/cjs/components/DataTableFilterChips/FilterChip.native.js +148 -0
  59. package/dist/cjs/components/DataTableFilterChips/FilterChip.native.js.map +1 -0
  60. package/dist/cjs/components/DataTableFilterChips/index.cjs +9 -31
  61. package/dist/cjs/components/DataTableFilterChips/index.native.js +9 -32
  62. package/dist/cjs/components/DataTableFilterChips/index.native.js.map +1 -1
  63. package/dist/cjs/components/DataTableFilters/index.cjs +145 -502
  64. package/dist/cjs/components/DataTableFilters/index.native.js +171 -544
  65. package/dist/cjs/components/DataTableFilters/index.native.js.map +1 -1
  66. package/dist/cjs/components/DataTableGrouping/index.cjs +273 -108
  67. package/dist/cjs/components/DataTableGrouping/index.native.js +310 -157
  68. package/dist/cjs/components/DataTableGrouping/index.native.js.map +1 -1
  69. package/dist/cjs/components/DataTablePagination/index.cjs +147 -95
  70. package/dist/cjs/components/DataTablePagination/index.native.js +159 -106
  71. package/dist/cjs/components/DataTablePagination/index.native.js.map +1 -1
  72. package/dist/cjs/components/DataTableSearch/index.cjs +251 -210
  73. package/dist/cjs/components/DataTableSearch/index.native.js +292 -243
  74. package/dist/cjs/components/DataTableSearch/index.native.js.map +1 -1
  75. package/dist/cjs/components/DataTableToolbar/index.cjs +141 -115
  76. package/dist/cjs/components/DataTableToolbar/index.native.js +164 -149
  77. package/dist/cjs/components/DataTableToolbar/index.native.js.map +1 -1
  78. package/dist/cjs/components/DataTableViewOptions/index.cjs +25 -21
  79. package/dist/cjs/components/DataTableViewOptions/index.native.js +6 -4
  80. package/dist/cjs/components/DataTableViewOptions/index.native.js.map +1 -1
  81. package/dist/cjs/components/FilterManager.native.js.map +1 -1
  82. package/dist/cjs/components/FilterOperatorValueEditor/index.native.js.map +1 -1
  83. package/dist/cjs/components/KnobDialog.native.js.map +1 -1
  84. package/dist/cjs/components/SavedFilterDropdown.native.js.map +1 -1
  85. package/dist/cjs/components/SimpleTable/index.cjs +336 -46
  86. package/dist/cjs/components/SimpleTable/index.native.js +356 -48
  87. package/dist/cjs/components/SimpleTable/index.native.js.map +1 -1
  88. package/dist/cjs/components/TableInput/index.cjs +147 -38
  89. package/dist/cjs/components/TableInput/index.native.js +55 -39
  90. package/dist/cjs/components/TableInput/index.native.js.map +1 -1
  91. package/dist/cjs/components/TableInput/shared.cjs +36 -1
  92. package/dist/cjs/components/TableInput/shared.native.js +35 -0
  93. package/dist/cjs/components/TableInput/shared.native.js.map +1 -1
  94. package/dist/cjs/hooks/useDataTable.cjs +33 -2
  95. package/dist/cjs/hooks/useDataTable.native.js +41 -2
  96. package/dist/cjs/hooks/useDataTable.native.js.map +1 -1
  97. package/dist/cjs/hooks/useDataTableKeyboard.native.js.map +1 -1
  98. package/dist/cjs/hooks/useDragScroll.native.js.map +1 -1
  99. package/dist/cjs/hooks/useInfiniteRows.cjs +20 -3
  100. package/dist/cjs/hooks/useInfiniteRows.native.js +20 -3
  101. package/dist/cjs/hooks/useInfiniteRows.native.js.map +1 -1
  102. package/dist/cjs/hooks/useSavedFilters.native.js.map +1 -1
  103. package/dist/cjs/hooks/useTableColumnPinning.native.js.map +1 -1
  104. package/dist/cjs/hooks/useTableFiltering.native.js.map +1 -1
  105. package/dist/cjs/hooks/useTableGrouping.native.js.map +1 -1
  106. package/dist/cjs/hooks/useTableKeyboard.native.js.map +1 -1
  107. package/dist/cjs/hooks/useTablePagination.native.js.map +1 -1
  108. package/dist/cjs/hooks/useTableSearch.native.js.map +1 -1
  109. package/dist/cjs/hooks/useTableSelection.native.js.map +1 -1
  110. package/dist/cjs/hooks/useTableSorting.native.js.map +1 -1
  111. package/dist/cjs/hooks/useTableUrlSync.native.js.map +1 -1
  112. package/dist/cjs/hooks/useTableViews.native.js.map +1 -1
  113. package/dist/cjs/index.cjs +2 -0
  114. package/dist/cjs/index.native.js +2 -0
  115. package/dist/cjs/index.native.js.map +1 -1
  116. package/dist/cjs/shared/t.native.js.map +1 -1
  117. package/dist/cjs/shims/primitives.native.js.map +1 -1
  118. package/dist/cjs/shims/tableCellContext.native.js.map +1 -1
  119. package/dist/cjs/types.native.js.map +1 -1
  120. package/dist/cjs/utils/columnAlign.native.js.map +1 -1
  121. package/dist/cjs/utils/filterFields.native.js.map +1 -1
  122. package/dist/cjs/utils/filterUtils.cjs +12 -5
  123. package/dist/cjs/utils/filterUtils.native.js +20 -5
  124. package/dist/cjs/utils/filterUtils.native.js.map +1 -1
  125. package/dist/cjs/utils/paginationDefaults.native.js.map +1 -1
  126. package/dist/cjs/utils/rowPress.native.js.map +1 -1
  127. package/dist/cjs/utils/urlStateUtils.native.js.map +1 -1
  128. package/dist/cjs/utils/viewData.native.js.map +1 -1
  129. package/dist/cjs/utils/withInterp.native.js.map +1 -1
  130. package/dist/esm/components/ChildTable/index.mjs +2 -1
  131. package/dist/esm/components/ChildTable/index.mjs.map +1 -1
  132. package/dist/esm/components/ChildTable/index.native.js +2 -1
  133. package/dist/esm/components/ChildTable/index.native.js.map +1 -1
  134. package/dist/esm/components/ColumnHeaderFilter/index.mjs +17 -9
  135. package/dist/esm/components/ColumnHeaderFilter/index.mjs.map +1 -1
  136. package/dist/esm/components/ColumnHeaderFilter/index.native.js +32 -11
  137. package/dist/esm/components/ColumnHeaderFilter/index.native.js.map +1 -1
  138. package/dist/esm/components/DataTable/DataTableDocumentList.mjs +196 -0
  139. package/dist/esm/components/DataTable/DataTableDocumentList.mjs.map +1 -0
  140. package/dist/esm/components/DataTable/DataTableDocumentList.native.js +208 -0
  141. package/dist/esm/components/DataTable/DataTableDocumentList.native.js.map +1 -0
  142. package/dist/esm/components/DataTable/DataTableMobileCards.mjs +5 -2
  143. package/dist/esm/components/DataTable/DataTableMobileCards.mjs.map +1 -1
  144. package/dist/esm/components/DataTable/DataTableMobileCards.native.js +6 -2
  145. package/dist/esm/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  146. package/dist/esm/components/DataTable/DataTableRoot.mjs +93 -42
  147. package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -1
  148. package/dist/esm/components/DataTable/DataTableRoot.native.js +98 -44
  149. package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -1
  150. package/dist/esm/components/DataTable/DataTableVirtualized.mjs +8 -2
  151. package/dist/esm/components/DataTable/DataTableVirtualized.mjs.map +1 -1
  152. package/dist/esm/components/DataTable/DataTableVirtualized.native.js +9 -3
  153. package/dist/esm/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  154. package/dist/esm/components/DataTable/documentListSlots.mjs +33 -0
  155. package/dist/esm/components/DataTable/documentListSlots.mjs.map +1 -0
  156. package/dist/esm/components/DataTable/documentListSlots.native.js +56 -0
  157. package/dist/esm/components/DataTable/documentListSlots.native.js.map +1 -0
  158. package/dist/esm/components/DataTable/index.native.js +52 -37
  159. package/dist/esm/components/DataTable/index.native.js.map +1 -1
  160. package/dist/esm/components/DataTable/rowStateChrome.mjs +28 -0
  161. package/dist/esm/components/DataTable/rowStateChrome.mjs.map +1 -0
  162. package/dist/esm/components/DataTable/rowStateChrome.native.js +29 -0
  163. package/dist/esm/components/DataTable/rowStateChrome.native.js.map +1 -0
  164. package/dist/esm/components/DataTableCell/CellModalEditor.mjs +25 -4
  165. package/dist/esm/components/DataTableCell/CellModalEditor.mjs.map +1 -1
  166. package/dist/esm/components/DataTableCell/CellModalEditor.native.js +6 -1
  167. package/dist/esm/components/DataTableCell/CellModalEditor.native.js.map +1 -1
  168. package/dist/esm/components/DataTableCell/CellOptionsEditor.mjs +9 -2
  169. package/dist/esm/components/DataTableCell/CellOptionsEditor.mjs.map +1 -1
  170. package/dist/esm/components/DataTableCell/CellOptionsEditor.native.js +11 -2
  171. package/dist/esm/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
  172. package/dist/esm/components/DataTableCell/index.mjs +75 -64
  173. package/dist/esm/components/DataTableCell/index.mjs.map +1 -1
  174. package/dist/esm/components/DataTableCell/index.native.js +95 -83
  175. package/dist/esm/components/DataTableCell/index.native.js.map +1 -1
  176. package/dist/esm/components/DataTableColumnPinning/index.mjs +54 -37
  177. package/dist/esm/components/DataTableColumnPinning/index.mjs.map +1 -1
  178. package/dist/esm/components/DataTableColumnPinning/index.native.js +59 -38
  179. package/dist/esm/components/DataTableColumnPinning/index.native.js.map +1 -1
  180. package/dist/esm/components/DataTableDateFilter/index.mjs +34 -15
  181. package/dist/esm/components/DataTableDateFilter/index.mjs.map +1 -1
  182. package/dist/esm/components/DataTableDateFilter/index.native.js +34 -13
  183. package/dist/esm/components/DataTableDateFilter/index.native.js.map +1 -1
  184. package/dist/esm/components/DataTableExport/index.mjs +36 -8
  185. package/dist/esm/components/DataTableExport/index.mjs.map +1 -1
  186. package/dist/esm/components/DataTableExport/index.native.js +43 -8
  187. package/dist/esm/components/DataTableExport/index.native.js.map +1 -1
  188. package/dist/esm/components/DataTableFacetMenu/index.mjs +115 -0
  189. package/dist/esm/components/DataTableFacetMenu/index.mjs.map +1 -0
  190. package/dist/esm/components/DataTableFacetMenu/index.native.js +128 -0
  191. package/dist/esm/components/DataTableFacetMenu/index.native.js.map +1 -0
  192. package/dist/esm/components/DataTableFilterButton/index.mjs +54 -35
  193. package/dist/esm/components/DataTableFilterButton/index.mjs.map +1 -1
  194. package/dist/esm/components/DataTableFilterButton/index.native.js +66 -43
  195. package/dist/esm/components/DataTableFilterButton/index.native.js.map +1 -1
  196. package/dist/esm/components/DataTableFilterChips/FilterChip.mjs +118 -0
  197. package/dist/esm/components/DataTableFilterChips/FilterChip.mjs.map +1 -0
  198. package/dist/esm/components/DataTableFilterChips/FilterChip.native.js +120 -0
  199. package/dist/esm/components/DataTableFilterChips/FilterChip.native.js.map +1 -0
  200. package/dist/esm/components/DataTableFilterChips/index.mjs +9 -32
  201. package/dist/esm/components/DataTableFilterChips/index.mjs.map +1 -1
  202. package/dist/esm/components/DataTableFilterChips/index.native.js +9 -33
  203. package/dist/esm/components/DataTableFilterChips/index.native.js.map +1 -1
  204. package/dist/esm/components/DataTableFilters/index.mjs +149 -506
  205. package/dist/esm/components/DataTableFilters/index.mjs.map +1 -1
  206. package/dist/esm/components/DataTableFilters/index.native.js +175 -548
  207. package/dist/esm/components/DataTableFilters/index.native.js.map +1 -1
  208. package/dist/esm/components/DataTableGrouping/index.mjs +275 -110
  209. package/dist/esm/components/DataTableGrouping/index.mjs.map +1 -1
  210. package/dist/esm/components/DataTableGrouping/index.native.js +287 -134
  211. package/dist/esm/components/DataTableGrouping/index.native.js.map +1 -1
  212. package/dist/esm/components/DataTablePagination/index.mjs +148 -96
  213. package/dist/esm/components/DataTablePagination/index.mjs.map +1 -1
  214. package/dist/esm/components/DataTablePagination/index.native.js +160 -107
  215. package/dist/esm/components/DataTablePagination/index.native.js.map +1 -1
  216. package/dist/esm/components/DataTableSearch/index.mjs +256 -215
  217. package/dist/esm/components/DataTableSearch/index.mjs.map +1 -1
  218. package/dist/esm/components/DataTableSearch/index.native.js +297 -248
  219. package/dist/esm/components/DataTableSearch/index.native.js.map +1 -1
  220. package/dist/esm/components/DataTableToolbar/index.mjs +145 -119
  221. package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -1
  222. package/dist/esm/components/DataTableToolbar/index.native.js +167 -152
  223. package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -1
  224. package/dist/esm/components/DataTableViewOptions/index.mjs +26 -22
  225. package/dist/esm/components/DataTableViewOptions/index.mjs.map +1 -1
  226. package/dist/esm/components/DataTableViewOptions/index.native.js +7 -5
  227. package/dist/esm/components/DataTableViewOptions/index.native.js.map +1 -1
  228. package/dist/esm/components/SimpleTable/index.mjs +338 -48
  229. package/dist/esm/components/SimpleTable/index.mjs.map +1 -1
  230. package/dist/esm/components/SimpleTable/index.native.js +358 -50
  231. package/dist/esm/components/SimpleTable/index.native.js.map +1 -1
  232. package/dist/esm/components/TableInput/index.mjs +150 -41
  233. package/dist/esm/components/TableInput/index.mjs.map +1 -1
  234. package/dist/esm/components/TableInput/index.native.js +55 -39
  235. package/dist/esm/components/TableInput/index.native.js.map +1 -1
  236. package/dist/esm/components/TableInput/shared.mjs +34 -1
  237. package/dist/esm/components/TableInput/shared.mjs.map +1 -1
  238. package/dist/esm/components/TableInput/shared.native.js +34 -1
  239. package/dist/esm/components/TableInput/shared.native.js.map +1 -1
  240. package/dist/esm/hooks/useDataTable.mjs +33 -2
  241. package/dist/esm/hooks/useDataTable.mjs.map +1 -1
  242. package/dist/esm/hooks/useDataTable.native.js +41 -2
  243. package/dist/esm/hooks/useDataTable.native.js.map +1 -1
  244. package/dist/esm/hooks/useInfiniteRows.mjs +20 -3
  245. package/dist/esm/hooks/useInfiniteRows.mjs.map +1 -1
  246. package/dist/esm/hooks/useInfiniteRows.native.js +20 -3
  247. package/dist/esm/hooks/useInfiniteRows.native.js.map +1 -1
  248. package/dist/esm/index.mjs +2 -1
  249. package/dist/esm/index.mjs.map +1 -1
  250. package/dist/esm/index.native.js +2 -1
  251. package/dist/esm/index.native.js.map +1 -1
  252. package/dist/esm/utils/filterUtils.mjs +12 -5
  253. package/dist/esm/utils/filterUtils.mjs.map +1 -1
  254. package/dist/esm/utils/filterUtils.native.js +20 -5
  255. package/dist/esm/utils/filterUtils.native.js.map +1 -1
  256. package/dist/jsx/components/ChildTable/index.mjs +2 -1
  257. package/dist/jsx/components/ChildTable/index.mjs.map +1 -1
  258. package/dist/jsx/components/ChildTable/index.native.js +2 -1
  259. package/dist/jsx/components/ChildTable/index.native.js.map +1 -1
  260. package/dist/jsx/components/ColumnHeaderFilter/index.mjs +17 -9
  261. package/dist/jsx/components/ColumnHeaderFilter/index.mjs.map +1 -1
  262. package/dist/jsx/components/ColumnHeaderFilter/index.native.js +32 -11
  263. package/dist/jsx/components/ColumnHeaderFilter/index.native.js.map +1 -1
  264. package/dist/jsx/components/DataTable/DataTableDocumentList.mjs +196 -0
  265. package/dist/jsx/components/DataTable/DataTableDocumentList.mjs.map +1 -0
  266. package/dist/jsx/components/DataTable/DataTableDocumentList.native.js +237 -0
  267. package/dist/jsx/components/DataTable/DataTableDocumentList.native.js.map +1 -0
  268. package/dist/jsx/components/DataTable/DataTableMobileCards.mjs +5 -2
  269. package/dist/jsx/components/DataTable/DataTableMobileCards.mjs.map +1 -1
  270. package/dist/jsx/components/DataTable/DataTableMobileCards.native.js +6 -2
  271. package/dist/jsx/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  272. package/dist/jsx/components/DataTable/DataTableRoot.mjs +93 -42
  273. package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -1
  274. package/dist/jsx/components/DataTable/DataTableRoot.native.js +97 -43
  275. package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -1
  276. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs +8 -2
  277. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs.map +1 -1
  278. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js +9 -3
  279. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  280. package/dist/jsx/components/DataTable/documentListSlots.mjs +33 -0
  281. package/dist/jsx/components/DataTable/documentListSlots.mjs.map +1 -0
  282. package/dist/jsx/components/DataTable/documentListSlots.native.js +85 -0
  283. package/dist/jsx/components/DataTable/documentListSlots.native.js.map +1 -0
  284. package/dist/jsx/components/DataTable/index.native.js +74 -59
  285. package/dist/jsx/components/DataTable/index.native.js.map +1 -1
  286. package/dist/jsx/components/DataTable/rowStateChrome.mjs +28 -0
  287. package/dist/jsx/components/DataTable/rowStateChrome.mjs.map +1 -0
  288. package/dist/jsx/components/DataTable/rowStateChrome.native.js +59 -0
  289. package/dist/jsx/components/DataTable/rowStateChrome.native.js.map +1 -0
  290. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs +25 -4
  291. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs.map +1 -1
  292. package/dist/jsx/components/DataTableCell/CellModalEditor.native.js +6 -1
  293. package/dist/jsx/components/DataTableCell/CellModalEditor.native.js.map +1 -1
  294. package/dist/jsx/components/DataTableCell/CellOptionsEditor.mjs +9 -2
  295. package/dist/jsx/components/DataTableCell/CellOptionsEditor.mjs.map +1 -1
  296. package/dist/jsx/components/DataTableCell/CellOptionsEditor.native.js +11 -2
  297. package/dist/jsx/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
  298. package/dist/jsx/components/DataTableCell/index.mjs +75 -64
  299. package/dist/jsx/components/DataTableCell/index.mjs.map +1 -1
  300. package/dist/jsx/components/DataTableCell/index.native.js +94 -82
  301. package/dist/jsx/components/DataTableCell/index.native.js.map +1 -1
  302. package/dist/jsx/components/DataTableColumnPinning/index.mjs +54 -37
  303. package/dist/jsx/components/DataTableColumnPinning/index.mjs.map +1 -1
  304. package/dist/jsx/components/DataTableColumnPinning/index.native.js +59 -38
  305. package/dist/jsx/components/DataTableColumnPinning/index.native.js.map +1 -1
  306. package/dist/jsx/components/DataTableDateFilter/index.mjs +34 -15
  307. package/dist/jsx/components/DataTableDateFilter/index.mjs.map +1 -1
  308. package/dist/jsx/components/DataTableDateFilter/index.native.js +33 -12
  309. package/dist/jsx/components/DataTableDateFilter/index.native.js.map +1 -1
  310. package/dist/jsx/components/DataTableExport/index.mjs +36 -8
  311. package/dist/jsx/components/DataTableExport/index.mjs.map +1 -1
  312. package/dist/jsx/components/DataTableExport/index.native.js +42 -7
  313. package/dist/jsx/components/DataTableExport/index.native.js.map +1 -1
  314. package/dist/jsx/components/DataTableFacetMenu/index.mjs +115 -0
  315. package/dist/jsx/components/DataTableFacetMenu/index.mjs.map +1 -0
  316. package/dist/jsx/components/DataTableFacetMenu/index.native.js +156 -0
  317. package/dist/jsx/components/DataTableFacetMenu/index.native.js.map +1 -0
  318. package/dist/jsx/components/DataTableFilterButton/index.mjs +54 -35
  319. package/dist/jsx/components/DataTableFilterButton/index.mjs.map +1 -1
  320. package/dist/jsx/components/DataTableFilterButton/index.native.js +63 -40
  321. package/dist/jsx/components/DataTableFilterButton/index.native.js.map +1 -1
  322. package/dist/jsx/components/DataTableFilterChips/FilterChip.mjs +118 -0
  323. package/dist/jsx/components/DataTableFilterChips/FilterChip.mjs.map +1 -0
  324. package/dist/jsx/components/DataTableFilterChips/FilterChip.native.js +148 -0
  325. package/dist/jsx/components/DataTableFilterChips/FilterChip.native.js.map +1 -0
  326. package/dist/jsx/components/DataTableFilterChips/index.mjs +9 -32
  327. package/dist/jsx/components/DataTableFilterChips/index.mjs.map +1 -1
  328. package/dist/jsx/components/DataTableFilterChips/index.native.js +9 -32
  329. package/dist/jsx/components/DataTableFilterChips/index.native.js.map +1 -1
  330. package/dist/jsx/components/DataTableFilters/index.mjs +149 -506
  331. package/dist/jsx/components/DataTableFilters/index.mjs.map +1 -1
  332. package/dist/jsx/components/DataTableFilters/index.native.js +171 -544
  333. package/dist/jsx/components/DataTableFilters/index.native.js.map +1 -1
  334. package/dist/jsx/components/DataTableGrouping/index.mjs +275 -110
  335. package/dist/jsx/components/DataTableGrouping/index.mjs.map +1 -1
  336. package/dist/jsx/components/DataTableGrouping/index.native.js +310 -157
  337. package/dist/jsx/components/DataTableGrouping/index.native.js.map +1 -1
  338. package/dist/jsx/components/DataTablePagination/index.mjs +148 -96
  339. package/dist/jsx/components/DataTablePagination/index.mjs.map +1 -1
  340. package/dist/jsx/components/DataTablePagination/index.native.js +159 -106
  341. package/dist/jsx/components/DataTablePagination/index.native.js.map +1 -1
  342. package/dist/jsx/components/DataTableSearch/index.mjs +256 -215
  343. package/dist/jsx/components/DataTableSearch/index.mjs.map +1 -1
  344. package/dist/jsx/components/DataTableSearch/index.native.js +292 -243
  345. package/dist/jsx/components/DataTableSearch/index.native.js.map +1 -1
  346. package/dist/jsx/components/DataTableToolbar/index.mjs +145 -119
  347. package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -1
  348. package/dist/jsx/components/DataTableToolbar/index.native.js +163 -148
  349. package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -1
  350. package/dist/jsx/components/DataTableViewOptions/index.mjs +26 -22
  351. package/dist/jsx/components/DataTableViewOptions/index.mjs.map +1 -1
  352. package/dist/jsx/components/DataTableViewOptions/index.native.js +6 -4
  353. package/dist/jsx/components/DataTableViewOptions/index.native.js.map +1 -1
  354. package/dist/jsx/components/SimpleTable/index.mjs +338 -48
  355. package/dist/jsx/components/SimpleTable/index.mjs.map +1 -1
  356. package/dist/jsx/components/SimpleTable/index.native.js +356 -48
  357. package/dist/jsx/components/SimpleTable/index.native.js.map +1 -1
  358. package/dist/jsx/components/TableInput/index.mjs +150 -41
  359. package/dist/jsx/components/TableInput/index.mjs.map +1 -1
  360. package/dist/jsx/components/TableInput/index.native.js +54 -38
  361. package/dist/jsx/components/TableInput/index.native.js.map +1 -1
  362. package/dist/jsx/components/TableInput/shared.mjs +34 -1
  363. package/dist/jsx/components/TableInput/shared.mjs.map +1 -1
  364. package/dist/jsx/components/TableInput/shared.native.js +35 -0
  365. package/dist/jsx/components/TableInput/shared.native.js.map +1 -1
  366. package/dist/jsx/hooks/useDataTable.mjs +33 -2
  367. package/dist/jsx/hooks/useDataTable.mjs.map +1 -1
  368. package/dist/jsx/hooks/useDataTable.native.js +41 -2
  369. package/dist/jsx/hooks/useDataTable.native.js.map +1 -1
  370. package/dist/jsx/hooks/useInfiniteRows.mjs +20 -3
  371. package/dist/jsx/hooks/useInfiniteRows.mjs.map +1 -1
  372. package/dist/jsx/hooks/useInfiniteRows.native.js +20 -3
  373. package/dist/jsx/hooks/useInfiniteRows.native.js.map +1 -1
  374. package/dist/jsx/index.js +2 -1
  375. package/dist/jsx/index.js.map +1 -1
  376. package/dist/jsx/index.mjs +2 -1
  377. package/dist/jsx/index.mjs.map +1 -1
  378. package/dist/jsx/index.native.js +2 -0
  379. package/dist/jsx/index.native.js.map +1 -1
  380. package/dist/jsx/utils/filterUtils.mjs +12 -5
  381. package/dist/jsx/utils/filterUtils.mjs.map +1 -1
  382. package/dist/jsx/utils/filterUtils.native.js +20 -5
  383. package/dist/jsx/utils/filterUtils.native.js.map +1 -1
  384. package/package.json +16 -16
  385. package/src/components/ChildTable/index.tsx +1 -0
  386. package/src/components/ColumnHeaderFilter/ColumnHeaderFilter.spec.tsx +85 -0
  387. package/src/components/ColumnHeaderFilter/index.tsx +28 -10
  388. package/src/components/DataTable/DataTable.stories.tsx +30 -0
  389. package/src/components/DataTable/DataTableDocumentList.tsx +224 -0
  390. package/src/components/DataTable/DataTableMobileCards.tsx +20 -8
  391. package/src/components/DataTable/DataTableRoot.tsx +135 -58
  392. package/src/components/DataTable/DataTableVirtualized.tsx +8 -11
  393. package/src/components/DataTable/cardLayout.spec.tsx +89 -0
  394. package/src/components/DataTable/documentListSlots.ts +57 -0
  395. package/src/components/DataTable/index.native.tsx +76 -50
  396. package/src/components/DataTable/keepPreviousData.spec.tsx +137 -0
  397. package/src/components/DataTable/rowRing.spec.tsx +118 -0
  398. package/src/components/DataTable/rowStateChrome.ts +38 -0
  399. package/src/components/DataTableCell/CellModalEditor.native.tsx +4 -0
  400. package/src/components/DataTableCell/CellModalEditor.tsx +31 -3
  401. package/src/components/DataTableCell/CellOptionsEditor.tsx +29 -12
  402. package/src/components/DataTableCell/DataTableCell.stories.tsx +3 -3
  403. package/src/components/DataTableCell/cellDraftPolicy.spec.tsx +131 -4
  404. package/src/components/DataTableCell/dataTableCell.spec.tsx +36 -1
  405. package/src/components/DataTableCell/index.tsx +121 -86
  406. package/src/components/DataTableColumnPinning/DataTableColumnPinning.spec.tsx +66 -0
  407. package/src/components/DataTableColumnPinning/index.tsx +32 -17
  408. package/src/components/DataTableDateFilter/DataTableDateFilter.spec.tsx +9 -1
  409. package/src/components/DataTableDateFilter/dateFilterZones.spec.ts +316 -0
  410. package/src/components/DataTableDateFilter/index.tsx +42 -22
  411. package/src/components/DataTableExport/exportDateZones.spec.tsx +348 -0
  412. package/src/components/DataTableExport/index.tsx +107 -63
  413. package/src/components/DataTableFacetMenu/DataTableFacetMenu.spec.tsx +264 -0
  414. package/src/components/DataTableFacetMenu/DataTableFacetMenu.stories.tsx +212 -0
  415. package/src/components/DataTableFacetMenu/index.tsx +202 -0
  416. package/src/components/DataTableFilterButton/index.tsx +66 -49
  417. package/src/components/DataTableFilterChips/DataTableFilterChips.spec.tsx +22 -0
  418. package/src/components/DataTableFilterChips/FilterChip.tsx +122 -0
  419. package/src/components/DataTableFilterChips/index.tsx +13 -29
  420. package/src/components/DataTableFilters/DataTableFilters.spec.tsx +56 -0
  421. package/src/components/DataTableFilters/index.tsx +169 -584
  422. package/src/components/DataTableGrouping/DataTableGrouping.spec.tsx +85 -0
  423. package/src/components/DataTableGrouping/index.tsx +270 -130
  424. package/src/components/DataTablePagination/DataTablePagination.spec.tsx +79 -4
  425. package/src/components/DataTablePagination/index.tsx +168 -112
  426. package/src/components/DataTableSearch/DataTableSearch.spec.tsx +40 -0
  427. package/src/components/DataTableSearch/DataTableSearch.stories.tsx +1 -1
  428. package/src/components/DataTableSearch/index.tsx +192 -163
  429. package/src/components/DataTableToolbar/DataTableToolbar.spec.tsx +48 -18
  430. package/src/components/DataTableToolbar/DataTableToolbar.stories.tsx +5 -45
  431. package/src/components/DataTableToolbar/index.tsx +128 -99
  432. package/src/components/DataTableViewOptions/index.tsx +29 -22
  433. package/src/components/SimpleTable/SimpleTable.stories.tsx +29 -5
  434. package/src/components/SimpleTable/index.tsx +442 -61
  435. package/src/components/SimpleTable/simpleTable.spec.tsx +140 -12
  436. package/src/components/TableInput/index.native.tsx +91 -81
  437. package/src/components/TableInput/index.tsx +191 -50
  438. package/src/components/TableInput/shared.ts +57 -0
  439. package/src/components/TableInput/tableInput.spec.tsx +104 -0
  440. package/src/hooks/useDataTable.spec.ts +100 -3
  441. package/src/hooks/useDataTable.ts +44 -1
  442. package/src/hooks/useInfiniteRows.spec.tsx +37 -0
  443. package/src/hooks/useInfiniteRows.ts +34 -4
  444. package/src/index.ts +7 -0
  445. package/src/types.ts +54 -3
  446. package/src/utils/filterUtils.ts +27 -5
  447. package/types/components/ChildTable/index.d.ts.map +1 -1
  448. package/types/components/ColumnHeaderFilter/index.d.ts.map +1 -1
  449. package/types/components/DataTable/DataTableDocumentList.d.ts +32 -0
  450. package/types/components/DataTable/DataTableDocumentList.d.ts.map +1 -0
  451. package/types/components/DataTable/DataTableMobileCards.d.ts +3 -1
  452. package/types/components/DataTable/DataTableMobileCards.d.ts.map +1 -1
  453. package/types/components/DataTable/DataTableRoot.d.ts +1 -1
  454. package/types/components/DataTable/DataTableRoot.d.ts.map +1 -1
  455. package/types/components/DataTable/DataTableVirtualized.d.ts +1 -2
  456. package/types/components/DataTable/DataTableVirtualized.d.ts.map +1 -1
  457. package/types/components/DataTable/documentListSlots.d.ts +26 -0
  458. package/types/components/DataTable/documentListSlots.d.ts.map +1 -0
  459. package/types/components/DataTable/index.native.d.ts +1 -1
  460. package/types/components/DataTable/index.native.d.ts.map +1 -1
  461. package/types/components/DataTable/rowStateChrome.d.ts +18 -0
  462. package/types/components/DataTable/rowStateChrome.d.ts.map +1 -0
  463. package/types/components/DataTableCell/CellModalEditor.d.ts +6 -1
  464. package/types/components/DataTableCell/CellModalEditor.d.ts.map +1 -1
  465. package/types/components/DataTableCell/CellModalEditor.native.d.ts +1 -1
  466. package/types/components/DataTableCell/CellModalEditor.native.d.ts.map +1 -1
  467. package/types/components/DataTableCell/CellOptionsEditor.d.ts +11 -3
  468. package/types/components/DataTableCell/CellOptionsEditor.d.ts.map +1 -1
  469. package/types/components/DataTableCell/index.d.ts +1 -1
  470. package/types/components/DataTableCell/index.d.ts.map +1 -1
  471. package/types/components/DataTableColumnPinning/index.d.ts.map +1 -1
  472. package/types/components/DataTableDateFilter/index.d.ts.map +1 -1
  473. package/types/components/DataTableExport/index.d.ts +17 -6
  474. package/types/components/DataTableExport/index.d.ts.map +1 -1
  475. package/types/components/DataTableFacetMenu/index.d.ts +84 -0
  476. package/types/components/DataTableFacetMenu/index.d.ts.map +1 -0
  477. package/types/components/DataTableFilterButton/index.d.ts.map +1 -1
  478. package/types/components/DataTableFilterChips/FilterChip.d.ts +15 -0
  479. package/types/components/DataTableFilterChips/FilterChip.d.ts.map +1 -0
  480. package/types/components/DataTableFilterChips/index.d.ts +5 -0
  481. package/types/components/DataTableFilterChips/index.d.ts.map +1 -1
  482. package/types/components/DataTableFilters/index.d.ts +11 -0
  483. package/types/components/DataTableFilters/index.d.ts.map +1 -1
  484. package/types/components/DataTableGrouping/index.d.ts.map +1 -1
  485. package/types/components/DataTablePagination/index.d.ts +5 -0
  486. package/types/components/DataTablePagination/index.d.ts.map +1 -1
  487. package/types/components/DataTableSearch/index.d.ts.map +1 -1
  488. package/types/components/DataTableToolbar/index.d.ts +2 -0
  489. package/types/components/DataTableToolbar/index.d.ts.map +1 -1
  490. package/types/components/SimpleTable/index.d.ts +27 -5
  491. package/types/components/SimpleTable/index.d.ts.map +1 -1
  492. package/types/components/TableInput/index.d.ts +6 -1
  493. package/types/components/TableInput/index.d.ts.map +1 -1
  494. package/types/components/TableInput/index.native.d.ts +6 -1
  495. package/types/components/TableInput/index.native.d.ts.map +1 -1
  496. package/types/components/TableInput/shared.d.ts +38 -0
  497. package/types/components/TableInput/shared.d.ts.map +1 -1
  498. package/types/hooks/useDataTable.d.ts +1 -1
  499. package/types/hooks/useDataTable.d.ts.map +1 -1
  500. package/types/hooks/useInfiniteRows.d.ts +8 -1
  501. package/types/hooks/useInfiniteRows.d.ts.map +1 -1
  502. package/types/index.d.ts +1 -0
  503. package/types/index.d.ts.map +1 -1
  504. package/types/types.d.ts +54 -3
  505. package/types/types.d.ts.map +1 -1
  506. package/types/utils/filterUtils.d.ts.map +1 -1
@@ -38,7 +38,6 @@ var import_tamagui = require("tamagui");
38
38
  var import_viewData = require("../../utils/viewData.cjs");
39
39
  var import_DataTableStateContext = require("../DataTable/DataTableStateContext.cjs");
40
40
  var import_jsx_runtime = require("react/jsx-runtime");
41
- var import_react3 = require("react");
42
41
  const EMPTY_EXPANDED_GROUPS = /* @__PURE__ */new Set();
43
42
  const groupHeaderPaddingMap = {
44
43
  small: "$2",
@@ -50,11 +49,35 @@ const groupItemPaddingMap = {
50
49
  medium: "$2",
51
50
  large: "$3"
52
51
  };
52
+ const groupIndentStepMap = {
53
+ small: 12,
54
+ medium: 16,
55
+ large: 24
56
+ };
53
57
  const groupMetaSizeMap = {
54
58
  $3: "$2",
55
59
  $4: "$3",
56
60
  $5: "$4"
57
61
  };
62
+ const groupIconSize = token => (0, import_theme.sizeRecipeForToken)(token).iconSize;
63
+ const startRail = import_tamagui.isWeb ? {
64
+ borderInlineStartWidth: 4,
65
+ borderInlineStartStyle: "solid",
66
+ borderInlineStartColor: "$color6"
67
+ } : {
68
+ borderStartWidth: 4,
69
+ borderStartColor: "$color6"
70
+ };
71
+ function groupIndent(space, level) {
72
+ return (groupIndentStepMap[space ?? "medium"] ?? 16) * Math.max(0, level);
73
+ }
74
+ function formatCellValue(value) {
75
+ if (value == null) return "";
76
+ if (typeof value === "number") {
77
+ return Number.isFinite(value) ? (0, import_theme.formatNumber)(value) : "";
78
+ }
79
+ return String(value);
80
+ }
58
81
  function formatAggregateValue(value, agg) {
59
82
  if (value == null) return (0, import_theme.formatNumber)(0);
60
83
  if (typeof value === "number") {
@@ -112,6 +135,8 @@ function DataTableGrouping(props) {
112
135
  groupedData,
113
136
  columns,
114
137
  level: 0,
138
+ stackStart: true,
139
+ stackEnd: true,
115
140
  aggregations,
116
141
  showAggregations,
117
142
  expandedGroups,
@@ -124,6 +149,8 @@ function GroupedDataRenderer({
124
149
  groupedData,
125
150
  columns,
126
151
  level,
152
+ stackStart,
153
+ stackEnd,
127
154
  aggregations,
128
155
  showAggregations,
129
156
  expandedGroups,
@@ -132,12 +159,20 @@ function GroupedDataRenderer({
132
159
  renderGroupFooter
133
160
  }) {
134
161
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
135
- children: groupedData.map(group => {
162
+ children: groupedData.map((group, groupIndex) => {
136
163
  const groupKey = getGroupKey(group);
137
164
  const isExpanded = expandedGroups.has(groupKey);
138
165
  const isExpandable = (group.children?.length ?? 0) > 0 || group.items.length > 0;
166
+ const position = (0, import_theme.getGroupPosition)(groupIndex, groupedData.length);
167
+ const isFirst = position === "first" || position === "only";
168
+ const isLast = position === "last" || position === "only";
169
+ const headerStart = stackStart && isFirst;
170
+ const headerEnd = stackEnd && isLast && !isExpanded;
171
+ const childStackEnd = stackEnd && isLast;
139
172
  return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
140
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(GroupHeader, {
173
+ children: [groupIndex > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
174
+ ...import_theme.hairline.line
175
+ }) : null, /* @__PURE__ */(0, import_jsx_runtime.jsx)(GroupHeader, {
141
176
  group,
142
177
  level,
143
178
  isExpanded,
@@ -145,13 +180,19 @@ function GroupedDataRenderer({
145
180
  aggregations,
146
181
  showAggregations: showAggregations ?? true,
147
182
  onToggleExpansion: () => onToggleExpansion(groupKey),
148
- renderCustomHeader: renderGroupHeader
149
- }), isExpanded && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
150
- marginInlineStart: level * 20,
151
- children: group.children && group.children.length > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(GroupedDataRenderer, {
183
+ renderCustomHeader: renderGroupHeader,
184
+ position,
185
+ stackStart: headerStart,
186
+ stackEnd: headerEnd
187
+ }), isExpanded && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
188
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
189
+ ...import_theme.hairline.line
190
+ }), group.children && group.children.length > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(GroupedDataRenderer, {
152
191
  groupedData: group.children,
153
192
  columns,
154
193
  level: level + 1,
194
+ stackStart: false,
195
+ stackEnd: childStackEnd,
155
196
  aggregations,
156
197
  showAggregations,
157
198
  expandedGroups,
@@ -160,8 +201,10 @@ function GroupedDataRenderer({
160
201
  renderGroupFooter
161
202
  }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(GroupItems, {
162
203
  items: group.items,
163
- columns
164
- })
204
+ columns,
205
+ level: level + 1,
206
+ stackEnd: childStackEnd
207
+ })]
165
208
  }), renderGroupFooter && isExpanded && /* @__PURE__ */(0, import_jsx_runtime.jsx)(GroupFooter, {
166
209
  group,
167
210
  level,
@@ -179,41 +222,66 @@ function GroupHeader({
179
222
  aggregations,
180
223
  showAggregations,
181
224
  onToggleExpansion,
182
- renderCustomHeader
225
+ renderCustomHeader,
226
+ position = "only",
227
+ stackStart,
228
+ stackEnd
183
229
  }) {
184
230
  const {
185
231
  knobProps
186
232
  } = (0, import_theme.useResolvedKnobs)();
187
233
  const CollapsedCaretIcon = (0, import_components.useDirection)() === "rtl" ? import_react.CaretLeftIcon : import_react.CaretRightIcon;
234
+ const corners = (0, import_theme.stackEdgeRadius)(knobProps.borderRadius.borderRadius, {
235
+ start: stackStart,
236
+ end: stackEnd
237
+ });
238
+ const iconSize = groupIconSize(String(knobProps.sizeToken));
239
+ const metaSize = groupMetaSizeMap[knobProps.sizeToken] ?? "$3";
240
+ const indent = groupIndent(knobProps.space, level);
241
+ const label = group.value == null || group.value === "" ? "No Value" : String(group.value);
242
+ const countLabel = `${(0, import_theme.formatNumber)(group.count, {
243
+ maximumFractionDigits: 0
244
+ })} item${group.count !== 1 ? "s" : ""}`;
188
245
  if (renderCustomHeader) {
189
246
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
190
247
  children: renderCustomHeader(group, level)
191
248
  });
192
249
  }
193
250
  return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
194
- ...knobProps.borderRadius,
251
+ ...corners,
252
+ ...startRail,
195
253
  alignItems: "center",
254
+ gap: "$2",
255
+ minHeight: 44,
196
256
  padding: groupHeaderPaddingMap[knobProps.space] ?? "$3",
197
257
  backgroundColor: knobProps.inputBackground,
198
- ...(import_tamagui.isWeb ? {
199
- borderInlineStartWidth: 4,
200
- borderInlineStartStyle: "solid",
201
- borderInlineStartColor: "$color6"
202
- } : {
203
- borderStartWidth: 4,
204
- borderStartColor: "$color6"
205
- }),
258
+ overflow: "hidden",
206
259
  cursor: "pointer",
207
260
  hoverStyle: {
208
- backgroundColor: level === 0 ? "$accentBackground" : {
209
- backgroundColor: "$color2"
210
- }.backgroundColor
261
+ backgroundColor: "$backgroundHover",
262
+ ...corners
263
+ },
264
+ pressStyle: {
265
+ backgroundColor: "$backgroundPress",
266
+ ...corners
211
267
  },
212
268
  onPress: onToggleExpansion,
213
269
  role: "button",
214
270
  tabIndex: 0,
215
271
  "aria-expanded": isExpanded,
272
+ "aria-label": `${label}, ${countLabel}`,
273
+ outlineWidth: 0,
274
+ focusStyle: {
275
+ outlineWidth: 0
276
+ },
277
+ focusVisibleStyle: (0, import_theme.ensureFocusVisibleRing)({
278
+ outlineOffset: -2
279
+ }),
216
280
  ...{
281
+ "data-testid": "data-table-group-header",
282
+ "data-group-position": position,
283
+ "data-stack-start": stackStart ? "true" : "false",
284
+ "data-stack-end": stackEnd ? "true" : "false",
217
285
  onKeyDown: e => {
218
286
  if (e.key === "Enter" || e.key === " ") {
219
287
  e.preventDefault();
@@ -222,40 +290,49 @@ function GroupHeader({
222
290
  }
223
291
  },
224
292
  children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
225
- width: 20,
293
+ width: iconSize + 4,
226
294
  alignItems: "center",
295
+ marginInlineStart: indent,
227
296
  children: hasChildren && (isExpanded ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CaretDownIcon, {
228
- size: 16
297
+ size: iconSize
229
298
  }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(CollapsedCaretIcon, {
230
- size: 16
299
+ size: iconSize
231
300
  }))
232
- }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
301
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
233
302
  flex: 1,
303
+ alignItems: "center",
304
+ justifyContent: "space-between",
305
+ gap: "$3",
306
+ flexWrap: "wrap",
234
307
  children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
235
308
  alignItems: "center",
236
309
  gap: "$2",
310
+ flexShrink: 1,
311
+ minWidth: 0,
237
312
  children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
238
313
  fontSize: knobProps.sizeToken,
239
314
  fontWeight: "600",
240
- children: group.value == null || group.value === "" ? "No Value" : String(group.value)
315
+ numberOfLines: 1,
316
+ children: label
241
317
  }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Text, {
242
- fontSize: groupMetaSizeMap[knobProps.sizeToken] ?? "$3",
318
+ fontSize: metaSize,
243
319
  color: "$color10",
244
- children: ["(", group.count, " item", group.count !== 1 ? "s" : "", ")"]
320
+ children: ["(", countLabel, ")"]
245
321
  })]
246
322
  }), showAggregations && aggregations.length > 0 && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
247
- gap: "$4",
248
- marginTop: "$2",
323
+ gap: "$3",
324
+ flexWrap: "wrap",
325
+ justifyContent: "flex-end",
249
326
  children: aggregations.map((agg, index) => /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
250
- alignItems: "center",
327
+ alignItems: "baseline",
251
328
  gap: "$1",
252
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Text, {
253
- fontSize: groupMetaSizeMap[knobProps.sizeToken] ?? "$3",
329
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
330
+ fontSize: metaSize,
254
331
  color: "$color10",
255
- children: [agg.label || `${agg.function}(${agg.column})`, ":"]
332
+ children: `${agg.label || `${agg.function}(${agg.column})`}:`
256
333
  }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
257
- fontSize: groupMetaSizeMap[knobProps.sizeToken] ?? "$3",
258
- fontWeight: "500",
334
+ fontSize: metaSize,
335
+ fontWeight: "600",
259
336
  children: formatAggregateValue(group.aggregations[agg.column]?.[agg.function], agg)
260
337
  })]
261
338
  }, index))
@@ -265,34 +342,60 @@ function GroupHeader({
265
342
  }
266
343
  function GroupItems({
267
344
  items,
268
- columns = []
345
+ columns = [],
346
+ level,
347
+ stackEnd
269
348
  }) {
270
349
  const {
271
350
  knobProps
272
351
  } = (0, import_theme.useResolvedKnobs)();
352
+ const metaSize = groupMetaSizeMap[knobProps.sizeToken] ?? "$3";
353
+ const indent = groupIndent(knobProps.space, level);
273
354
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
274
- children: items.map((item, index) => /* @__PURE__ */(0, import_react3.createElement)(import_tamagui.XStack, {
275
- ...knobProps.borderRadius,
276
- key: index,
277
- padding: groupItemPaddingMap[knobProps.space] ?? "$2",
278
- paddingInlineStart: "$4",
279
- backgroundColor: index % 2 === 0 ? "$background" : "$color2",
280
- borderBottomWidth: 1,
281
- borderBottomColor: "$borderColor"
282
- }, columns.length > 0 ? columns.map((column, colIndex) => {
283
- const key = column.accessorKey || column.id || `col-${colIndex}`;
284
- const value = item[key];
285
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
286
- flex: 1,
287
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
288
- fontSize: groupMetaSizeMap[knobProps.sizeToken] ?? "$3",
289
- children: String(value ?? "")
290
- })
291
- }, key);
292
- }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
293
- fontSize: groupMetaSizeMap[knobProps.sizeToken] ?? "$3",
294
- children: JSON.stringify(item, null, 2)
295
- })))
355
+ children: items.map((item, index) => {
356
+ const position = (0, import_theme.getGroupPosition)(index, items.length);
357
+ const isLast = position === "last" || position === "only";
358
+ const corners = (0, import_theme.stackEdgeRadius)(knobProps.borderRadius.borderRadius, {
359
+ start: false,
360
+ end: stackEnd && isLast
361
+ });
362
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
363
+ children: [index > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
364
+ ...import_theme.hairline.line
365
+ }) : null, /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
366
+ ...corners,
367
+ padding: groupItemPaddingMap[knobProps.space] ?? "$2",
368
+ paddingInlineStart: indent + 12,
369
+ overflow: "hidden",
370
+ backgroundColor: index % 2 === 0 ? "$background" : "$color2",
371
+ hoverStyle: {
372
+ backgroundColor: "$backgroundHover",
373
+ ...corners
374
+ },
375
+ ...{
376
+ "data-testid": "data-table-group-item",
377
+ "data-group-position": position,
378
+ "data-stack-end": stackEnd && isLast ? "true" : "false"
379
+ },
380
+ children: columns.length > 0 ? columns.map((column, colIndex) => {
381
+ const key = column.accessorKey || column.id || `col-${colIndex}`;
382
+ const value = item[key];
383
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
384
+ flex: 1,
385
+ minWidth: 0,
386
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
387
+ fontSize: metaSize,
388
+ numberOfLines: 1,
389
+ children: formatCellValue(value)
390
+ })
391
+ }, key);
392
+ }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
393
+ fontSize: metaSize,
394
+ children: JSON.stringify(item, null, 2)
395
+ })
396
+ })]
397
+ }, index);
398
+ })
296
399
  });
297
400
  }
298
401
  function GroupFooter({
@@ -300,8 +403,11 @@ function GroupFooter({
300
403
  level,
301
404
  renderCustomFooter
302
405
  }) {
406
+ const {
407
+ knobProps
408
+ } = (0, import_theme.useResolvedKnobs)();
303
409
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
304
- marginInlineStart: level * 20,
410
+ paddingInlineStart: groupIndent(knobProps.space, level),
305
411
  children: renderCustomFooter(group, level)
306
412
  });
307
413
  }
@@ -360,6 +466,18 @@ function DataTableGroupingConfig(props) {
360
466
  };
361
467
  onConfigChange(newConfig);
362
468
  };
469
+ const handleMoveGroupBy = (index, direction) => {
470
+ const next = [...currentConfig.columns];
471
+ const swap = index + direction;
472
+ if (swap < 0 || swap >= next.length) return;
473
+ [next[index], next[swap]] = [next[swap], next[index]];
474
+ onConfigChange({
475
+ ...currentConfig,
476
+ columns: next
477
+ });
478
+ };
479
+ const iconSize = groupIconSize(String(sz));
480
+ const radius = knobProps.borderRadius.borderRadius;
363
481
  return (
364
482
  // LC-06/LC-10: collision handling — the config list grows with every
365
483
  // group-by/aggregation added and must clamp + scroll inside the viewport
@@ -377,7 +495,7 @@ function DataTableGroupingConfig(props) {
377
495
  size: knobProps.sizeToken,
378
496
  variant: "outlined",
379
497
  icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.GearIcon, {
380
- size: 16
498
+ size: iconSize
381
499
  }),
382
500
  disabled,
383
501
  "aria-label": "Grouping configuration",
@@ -385,12 +503,12 @@ function DataTableGroupingConfig(props) {
385
503
  alignItems: "center",
386
504
  gap: "$2",
387
505
  children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.ChartBarIcon, {
388
- size: 16
506
+ size: iconSize
389
507
  }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
390
508
  children: "Group & Aggregate"
391
509
  }), (currentConfig.columns.length > 0 || currentConfig.aggregations.length > 0) && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
392
510
  backgroundColor: "$color6",
393
- borderRadius: knobProps.borderRadius.borderRadius,
511
+ borderRadius: 1e3,
394
512
  paddingHorizontal: "$1",
395
513
  paddingVertical: 2,
396
514
  minWidth: 20,
@@ -447,29 +565,61 @@ function DataTableGroupingConfig(props) {
447
565
  children: [currentConfig.columns.length, " selected"]
448
566
  })]
449
567
  }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
450
- gap: "$1",
451
568
  children: currentConfig.columns.map((columnKey, index) => {
452
569
  const column = columns.find(col => (col.accessorKey || col.id) === columnKey);
453
- return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
454
- alignItems: "center",
455
- gap: "$2",
456
- padding: "$2",
457
- ...{
458
- backgroundColor: "$color2"
459
- },
460
- borderRadius: knobProps.borderRadius.borderRadius,
461
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Text, {
462
- fontSize: "$3",
463
- flex: 1,
464
- children: [column?.header || columnKey, " (", index + 1, ")"]
465
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
466
- size: knobProps.sizeToken,
467
- variant: "outlined",
468
- icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.MinusIcon, {
469
- size: 16
470
- }),
471
- onPress: () => handleRemoveGroupBy(columnKey),
472
- "aria-label": `Remove grouping by ${column?.header || columnKey}`
570
+ const position = (0, import_theme.getGroupPosition)(index, currentConfig.columns.length);
571
+ const corners = (0, import_theme.stackRadiusProps)(position, radius);
572
+ const label = String(column?.header || columnKey);
573
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
574
+ children: [index > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
575
+ ...import_theme.hairline.line
576
+ }) : null, /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
577
+ alignItems: "center",
578
+ gap: "$2",
579
+ padding: "$2",
580
+ overflow: "hidden",
581
+ backgroundColor: "$color2",
582
+ ...corners,
583
+ hoverStyle: {
584
+ backgroundColor: "$backgroundHover",
585
+ ...corners
586
+ },
587
+ ...{
588
+ "data-group-position": position
589
+ },
590
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
591
+ fontSize: "$3",
592
+ flex: 1,
593
+ numberOfLines: 1,
594
+ children: `${label} \xB7 ${index + 1}`
595
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
596
+ size: "$2",
597
+ variant: "outlined",
598
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.ArrowUpIcon, {
599
+ size: iconSize
600
+ }),
601
+ disabled: disabled || index === 0,
602
+ onPress: () => handleMoveGroupBy(index, -1),
603
+ "aria-label": `Move ${label} up`
604
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
605
+ size: "$2",
606
+ variant: "outlined",
607
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.ArrowDownIcon, {
608
+ size: iconSize
609
+ }),
610
+ disabled: disabled || index === currentConfig.columns.length - 1,
611
+ onPress: () => handleMoveGroupBy(index, 1),
612
+ "aria-label": `Move ${label} down`
613
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
614
+ size: "$2",
615
+ variant: "outlined",
616
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.MinusIcon, {
617
+ size: iconSize
618
+ }),
619
+ disabled,
620
+ onPress: () => handleRemoveGroupBy(columnKey),
621
+ "aria-label": `Remove grouping by ${label}`
622
+ })]
473
623
  })]
474
624
  }, columnKey);
475
625
  })
@@ -504,29 +654,44 @@ function DataTableGroupingConfig(props) {
504
654
  children: [currentConfig.aggregations.length, " configured"]
505
655
  })]
506
656
  }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
507
- gap: "$1",
508
- children: currentConfig.aggregations.map((agg, index) => /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
509
- alignItems: "center",
510
- gap: "$2",
511
- padding: "$2",
512
- ...{
513
- backgroundColor: "$color2"
514
- },
515
- borderRadius: knobProps.borderRadius.borderRadius,
516
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Text, {
517
- fontSize: "$3",
518
- flex: 1,
519
- children: [agg.function, "(", agg.column, ")", agg.label && ` as "${agg.label}"`]
520
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
521
- size: knobProps.sizeToken,
522
- variant: "outlined",
523
- icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.MinusIcon, {
524
- size: 16
525
- }),
526
- onPress: () => handleRemoveAggregation(index),
527
- "aria-label": `Remove ${agg.function} aggregation on ${agg.column}`
528
- })]
529
- }, index))
657
+ children: currentConfig.aggregations.map((agg, index) => {
658
+ const position = (0, import_theme.getGroupPosition)(index, currentConfig.aggregations.length);
659
+ const corners = (0, import_theme.stackRadiusProps)(position, radius);
660
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
661
+ children: [index > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
662
+ ...import_theme.hairline.line
663
+ }) : null, /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
664
+ alignItems: "center",
665
+ gap: "$2",
666
+ padding: "$2",
667
+ overflow: "hidden",
668
+ backgroundColor: "$color2",
669
+ ...corners,
670
+ hoverStyle: {
671
+ backgroundColor: "$backgroundHover",
672
+ ...corners
673
+ },
674
+ ...{
675
+ "data-group-position": position
676
+ },
677
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Text, {
678
+ fontSize: "$3",
679
+ flex: 1,
680
+ numberOfLines: 1,
681
+ children: [agg.function, "(", agg.column, ")", agg.label && ` as "${agg.label}"`]
682
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
683
+ size: "$2",
684
+ variant: "outlined",
685
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.MinusIcon, {
686
+ size: iconSize
687
+ }),
688
+ disabled,
689
+ onPress: () => handleRemoveAggregation(index),
690
+ "aria-label": `Remove ${agg.function} aggregation on ${agg.column}`
691
+ })]
692
+ })]
693
+ }, `${agg.function}-${agg.column}-${index}`);
694
+ })
530
695
  }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(AggregationSelector, {
531
696
  columns: aggregatableColumns,
532
697
  onAddAggregation: handleAddAggregation