@multiplatform.one/table 6.7.0 → 7.1.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 (473) 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 +2 -1
  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 +32 -11
  7. package/dist/cjs/components/ColumnHeaderFilter/index.native.js.map +1 -1
  8. package/dist/cjs/components/DataTable/DataTableDocumentList.cjs +222 -0
  9. package/dist/cjs/components/DataTable/DataTableDocumentList.native.js +237 -0
  10. package/dist/cjs/components/DataTable/DataTableDocumentList.native.js.map +1 -0
  11. package/dist/cjs/components/DataTable/DataTableMobileCards.cjs +5 -2
  12. package/dist/cjs/components/DataTable/DataTableMobileCards.native.js +6 -2
  13. package/dist/cjs/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  14. package/dist/cjs/components/DataTable/DataTableRoot.cjs +92 -41
  15. package/dist/cjs/components/DataTable/DataTableRoot.native.js +97 -43
  16. package/dist/cjs/components/DataTable/DataTableRoot.native.js.map +1 -1
  17. package/dist/cjs/components/DataTable/DataTableVirtualized.cjs +8 -2
  18. package/dist/cjs/components/DataTable/DataTableVirtualized.native.js +9 -3
  19. package/dist/cjs/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  20. package/dist/cjs/components/DataTable/documentListSlots.cjs +59 -0
  21. package/dist/cjs/components/DataTable/documentListSlots.native.js +85 -0
  22. package/dist/cjs/components/DataTable/documentListSlots.native.js.map +1 -0
  23. package/dist/cjs/components/DataTable/index.native.js +74 -59
  24. package/dist/cjs/components/DataTable/index.native.js.map +1 -1
  25. package/dist/cjs/components/DataTable/rowStateChrome.cjs +55 -0
  26. package/dist/cjs/components/DataTable/rowStateChrome.native.js +59 -0
  27. package/dist/cjs/components/DataTable/rowStateChrome.native.js.map +1 -0
  28. package/dist/cjs/components/DataTableCell/CellModalEditor.cjs +24 -3
  29. package/dist/cjs/components/DataTableCell/CellModalEditor.native.js +6 -1
  30. package/dist/cjs/components/DataTableCell/CellModalEditor.native.js.map +1 -1
  31. package/dist/cjs/components/DataTableCell/CellOptionsEditor.cjs +9 -2
  32. package/dist/cjs/components/DataTableCell/CellOptionsEditor.native.js +11 -2
  33. package/dist/cjs/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
  34. package/dist/cjs/components/DataTableCell/index.cjs +74 -63
  35. package/dist/cjs/components/DataTableCell/index.native.js +94 -82
  36. package/dist/cjs/components/DataTableCell/index.native.js.map +1 -1
  37. package/dist/cjs/components/DataTableColumnPinning/index.cjs +54 -37
  38. package/dist/cjs/components/DataTableColumnPinning/index.native.js +59 -38
  39. package/dist/cjs/components/DataTableColumnPinning/index.native.js.map +1 -1
  40. package/dist/cjs/components/DataTableDateFilter/index.cjs +33 -14
  41. package/dist/cjs/components/DataTableDateFilter/index.native.js +33 -12
  42. package/dist/cjs/components/DataTableDateFilter/index.native.js.map +1 -1
  43. package/dist/cjs/components/DataTableExport/index.cjs +35 -7
  44. package/dist/cjs/components/DataTableExport/index.native.js +42 -7
  45. package/dist/cjs/components/DataTableExport/index.native.js.map +1 -1
  46. package/dist/cjs/components/DataTableFacetMenu/index.cjs +140 -0
  47. package/dist/cjs/components/DataTableFacetMenu/index.native.js +156 -0
  48. package/dist/cjs/components/DataTableFacetMenu/index.native.js.map +1 -0
  49. package/dist/cjs/components/DataTableFilterButton/index.cjs +51 -32
  50. package/dist/cjs/components/DataTableFilterButton/index.native.js +63 -40
  51. package/dist/cjs/components/DataTableFilterButton/index.native.js.map +1 -1
  52. package/dist/cjs/components/DataTableFilterChips/FilterChip.cjs +143 -0
  53. package/dist/cjs/components/DataTableFilterChips/FilterChip.native.js +148 -0
  54. package/dist/cjs/components/DataTableFilterChips/FilterChip.native.js.map +1 -0
  55. package/dist/cjs/components/DataTableFilterChips/index.cjs +9 -31
  56. package/dist/cjs/components/DataTableFilterChips/index.native.js +9 -32
  57. package/dist/cjs/components/DataTableFilterChips/index.native.js.map +1 -1
  58. package/dist/cjs/components/DataTableFilters/index.cjs +145 -502
  59. package/dist/cjs/components/DataTableFilters/index.native.js +171 -544
  60. package/dist/cjs/components/DataTableFilters/index.native.js.map +1 -1
  61. package/dist/cjs/components/DataTableGrouping/index.cjs +273 -108
  62. package/dist/cjs/components/DataTableGrouping/index.native.js +310 -157
  63. package/dist/cjs/components/DataTableGrouping/index.native.js.map +1 -1
  64. package/dist/cjs/components/DataTablePagination/index.cjs +147 -95
  65. package/dist/cjs/components/DataTablePagination/index.native.js +159 -106
  66. package/dist/cjs/components/DataTablePagination/index.native.js.map +1 -1
  67. package/dist/cjs/components/DataTableSearch/index.cjs +251 -210
  68. package/dist/cjs/components/DataTableSearch/index.native.js +292 -243
  69. package/dist/cjs/components/DataTableSearch/index.native.js.map +1 -1
  70. package/dist/cjs/components/DataTableToolbar/index.cjs +141 -115
  71. package/dist/cjs/components/DataTableToolbar/index.native.js +163 -148
  72. package/dist/cjs/components/DataTableToolbar/index.native.js.map +1 -1
  73. package/dist/cjs/components/DataTableViewOptions/index.cjs +25 -21
  74. package/dist/cjs/components/DataTableViewOptions/index.native.js +6 -4
  75. package/dist/cjs/components/DataTableViewOptions/index.native.js.map +1 -1
  76. package/dist/cjs/components/SimpleTable/index.cjs +336 -46
  77. package/dist/cjs/components/SimpleTable/index.native.js +356 -48
  78. package/dist/cjs/components/SimpleTable/index.native.js.map +1 -1
  79. package/dist/cjs/components/TableInput/index.cjs +147 -38
  80. package/dist/cjs/components/TableInput/index.native.js +54 -38
  81. package/dist/cjs/components/TableInput/index.native.js.map +1 -1
  82. package/dist/cjs/components/TableInput/shared.cjs +36 -1
  83. package/dist/cjs/components/TableInput/shared.native.js +35 -0
  84. package/dist/cjs/components/TableInput/shared.native.js.map +1 -1
  85. package/dist/cjs/hooks/useDataTable.cjs +33 -2
  86. package/dist/cjs/hooks/useDataTable.native.js +41 -2
  87. package/dist/cjs/hooks/useDataTable.native.js.map +1 -1
  88. package/dist/cjs/hooks/useInfiniteRows.cjs +20 -3
  89. package/dist/cjs/hooks/useInfiniteRows.native.js +20 -3
  90. package/dist/cjs/hooks/useInfiniteRows.native.js.map +1 -1
  91. package/dist/cjs/index.cjs +2 -0
  92. package/dist/cjs/index.native.js +2 -0
  93. package/dist/cjs/index.native.js.map +1 -1
  94. package/dist/cjs/utils/filterUtils.cjs +12 -5
  95. package/dist/cjs/utils/filterUtils.native.js +20 -5
  96. package/dist/cjs/utils/filterUtils.native.js.map +1 -1
  97. package/dist/esm/components/ChildTable/index.mjs +2 -1
  98. package/dist/esm/components/ChildTable/index.mjs.map +1 -1
  99. package/dist/esm/components/ChildTable/index.native.js +2 -1
  100. package/dist/esm/components/ChildTable/index.native.js.map +1 -1
  101. package/dist/esm/components/ColumnHeaderFilter/index.mjs +17 -9
  102. package/dist/esm/components/ColumnHeaderFilter/index.mjs.map +1 -1
  103. package/dist/esm/components/ColumnHeaderFilter/index.native.js +32 -11
  104. package/dist/esm/components/ColumnHeaderFilter/index.native.js.map +1 -1
  105. package/dist/esm/components/DataTable/DataTableDocumentList.mjs +196 -0
  106. package/dist/esm/components/DataTable/DataTableDocumentList.mjs.map +1 -0
  107. package/dist/esm/components/DataTable/DataTableDocumentList.native.js +208 -0
  108. package/dist/esm/components/DataTable/DataTableDocumentList.native.js.map +1 -0
  109. package/dist/esm/components/DataTable/DataTableMobileCards.mjs +5 -2
  110. package/dist/esm/components/DataTable/DataTableMobileCards.mjs.map +1 -1
  111. package/dist/esm/components/DataTable/DataTableMobileCards.native.js +6 -2
  112. package/dist/esm/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  113. package/dist/esm/components/DataTable/DataTableRoot.mjs +93 -42
  114. package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -1
  115. package/dist/esm/components/DataTable/DataTableRoot.native.js +98 -44
  116. package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -1
  117. package/dist/esm/components/DataTable/DataTableVirtualized.mjs +8 -2
  118. package/dist/esm/components/DataTable/DataTableVirtualized.mjs.map +1 -1
  119. package/dist/esm/components/DataTable/DataTableVirtualized.native.js +9 -3
  120. package/dist/esm/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  121. package/dist/esm/components/DataTable/documentListSlots.mjs +33 -0
  122. package/dist/esm/components/DataTable/documentListSlots.mjs.map +1 -0
  123. package/dist/esm/components/DataTable/documentListSlots.native.js +56 -0
  124. package/dist/esm/components/DataTable/documentListSlots.native.js.map +1 -0
  125. package/dist/esm/components/DataTable/index.native.js +52 -37
  126. package/dist/esm/components/DataTable/index.native.js.map +1 -1
  127. package/dist/esm/components/DataTable/rowStateChrome.mjs +28 -0
  128. package/dist/esm/components/DataTable/rowStateChrome.mjs.map +1 -0
  129. package/dist/esm/components/DataTable/rowStateChrome.native.js +29 -0
  130. package/dist/esm/components/DataTable/rowStateChrome.native.js.map +1 -0
  131. package/dist/esm/components/DataTableCell/CellModalEditor.mjs +25 -4
  132. package/dist/esm/components/DataTableCell/CellModalEditor.mjs.map +1 -1
  133. package/dist/esm/components/DataTableCell/CellModalEditor.native.js +6 -1
  134. package/dist/esm/components/DataTableCell/CellModalEditor.native.js.map +1 -1
  135. package/dist/esm/components/DataTableCell/CellOptionsEditor.mjs +9 -2
  136. package/dist/esm/components/DataTableCell/CellOptionsEditor.mjs.map +1 -1
  137. package/dist/esm/components/DataTableCell/CellOptionsEditor.native.js +11 -2
  138. package/dist/esm/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
  139. package/dist/esm/components/DataTableCell/index.mjs +75 -64
  140. package/dist/esm/components/DataTableCell/index.mjs.map +1 -1
  141. package/dist/esm/components/DataTableCell/index.native.js +95 -83
  142. package/dist/esm/components/DataTableCell/index.native.js.map +1 -1
  143. package/dist/esm/components/DataTableColumnPinning/index.mjs +54 -37
  144. package/dist/esm/components/DataTableColumnPinning/index.mjs.map +1 -1
  145. package/dist/esm/components/DataTableColumnPinning/index.native.js +59 -38
  146. package/dist/esm/components/DataTableColumnPinning/index.native.js.map +1 -1
  147. package/dist/esm/components/DataTableDateFilter/index.mjs +34 -15
  148. package/dist/esm/components/DataTableDateFilter/index.mjs.map +1 -1
  149. package/dist/esm/components/DataTableDateFilter/index.native.js +34 -13
  150. package/dist/esm/components/DataTableDateFilter/index.native.js.map +1 -1
  151. package/dist/esm/components/DataTableExport/index.mjs +36 -8
  152. package/dist/esm/components/DataTableExport/index.mjs.map +1 -1
  153. package/dist/esm/components/DataTableExport/index.native.js +43 -8
  154. package/dist/esm/components/DataTableExport/index.native.js.map +1 -1
  155. package/dist/esm/components/DataTableFacetMenu/index.mjs +115 -0
  156. package/dist/esm/components/DataTableFacetMenu/index.mjs.map +1 -0
  157. package/dist/esm/components/DataTableFacetMenu/index.native.js +128 -0
  158. package/dist/esm/components/DataTableFacetMenu/index.native.js.map +1 -0
  159. package/dist/esm/components/DataTableFilterButton/index.mjs +54 -35
  160. package/dist/esm/components/DataTableFilterButton/index.mjs.map +1 -1
  161. package/dist/esm/components/DataTableFilterButton/index.native.js +66 -43
  162. package/dist/esm/components/DataTableFilterButton/index.native.js.map +1 -1
  163. package/dist/esm/components/DataTableFilterChips/FilterChip.mjs +118 -0
  164. package/dist/esm/components/DataTableFilterChips/FilterChip.mjs.map +1 -0
  165. package/dist/esm/components/DataTableFilterChips/FilterChip.native.js +120 -0
  166. package/dist/esm/components/DataTableFilterChips/FilterChip.native.js.map +1 -0
  167. package/dist/esm/components/DataTableFilterChips/index.mjs +9 -32
  168. package/dist/esm/components/DataTableFilterChips/index.mjs.map +1 -1
  169. package/dist/esm/components/DataTableFilterChips/index.native.js +9 -33
  170. package/dist/esm/components/DataTableFilterChips/index.native.js.map +1 -1
  171. package/dist/esm/components/DataTableFilters/index.mjs +149 -506
  172. package/dist/esm/components/DataTableFilters/index.mjs.map +1 -1
  173. package/dist/esm/components/DataTableFilters/index.native.js +175 -548
  174. package/dist/esm/components/DataTableFilters/index.native.js.map +1 -1
  175. package/dist/esm/components/DataTableGrouping/index.mjs +275 -110
  176. package/dist/esm/components/DataTableGrouping/index.mjs.map +1 -1
  177. package/dist/esm/components/DataTableGrouping/index.native.js +287 -134
  178. package/dist/esm/components/DataTableGrouping/index.native.js.map +1 -1
  179. package/dist/esm/components/DataTablePagination/index.mjs +148 -96
  180. package/dist/esm/components/DataTablePagination/index.mjs.map +1 -1
  181. package/dist/esm/components/DataTablePagination/index.native.js +160 -107
  182. package/dist/esm/components/DataTablePagination/index.native.js.map +1 -1
  183. package/dist/esm/components/DataTableSearch/index.mjs +256 -215
  184. package/dist/esm/components/DataTableSearch/index.mjs.map +1 -1
  185. package/dist/esm/components/DataTableSearch/index.native.js +297 -248
  186. package/dist/esm/components/DataTableSearch/index.native.js.map +1 -1
  187. package/dist/esm/components/DataTableToolbar/index.mjs +145 -119
  188. package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -1
  189. package/dist/esm/components/DataTableToolbar/index.native.js +167 -152
  190. package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -1
  191. package/dist/esm/components/DataTableViewOptions/index.mjs +26 -22
  192. package/dist/esm/components/DataTableViewOptions/index.mjs.map +1 -1
  193. package/dist/esm/components/DataTableViewOptions/index.native.js +7 -5
  194. package/dist/esm/components/DataTableViewOptions/index.native.js.map +1 -1
  195. package/dist/esm/components/SimpleTable/index.mjs +338 -48
  196. package/dist/esm/components/SimpleTable/index.mjs.map +1 -1
  197. package/dist/esm/components/SimpleTable/index.native.js +358 -50
  198. package/dist/esm/components/SimpleTable/index.native.js.map +1 -1
  199. package/dist/esm/components/TableInput/index.mjs +150 -41
  200. package/dist/esm/components/TableInput/index.mjs.map +1 -1
  201. package/dist/esm/components/TableInput/index.native.js +55 -39
  202. package/dist/esm/components/TableInput/index.native.js.map +1 -1
  203. package/dist/esm/components/TableInput/shared.mjs +34 -1
  204. package/dist/esm/components/TableInput/shared.mjs.map +1 -1
  205. package/dist/esm/components/TableInput/shared.native.js +34 -1
  206. package/dist/esm/components/TableInput/shared.native.js.map +1 -1
  207. package/dist/esm/hooks/useDataTable.mjs +33 -2
  208. package/dist/esm/hooks/useDataTable.mjs.map +1 -1
  209. package/dist/esm/hooks/useDataTable.native.js +41 -2
  210. package/dist/esm/hooks/useDataTable.native.js.map +1 -1
  211. package/dist/esm/hooks/useInfiniteRows.mjs +20 -3
  212. package/dist/esm/hooks/useInfiniteRows.mjs.map +1 -1
  213. package/dist/esm/hooks/useInfiniteRows.native.js +20 -3
  214. package/dist/esm/hooks/useInfiniteRows.native.js.map +1 -1
  215. package/dist/esm/index.mjs +2 -1
  216. package/dist/esm/index.mjs.map +1 -1
  217. package/dist/esm/index.native.js +2 -1
  218. package/dist/esm/index.native.js.map +1 -1
  219. package/dist/esm/utils/filterUtils.mjs +12 -5
  220. package/dist/esm/utils/filterUtils.mjs.map +1 -1
  221. package/dist/esm/utils/filterUtils.native.js +20 -5
  222. package/dist/esm/utils/filterUtils.native.js.map +1 -1
  223. package/dist/jsx/components/ChildTable/index.mjs +2 -1
  224. package/dist/jsx/components/ChildTable/index.mjs.map +1 -1
  225. package/dist/jsx/components/ChildTable/index.native.js +2 -1
  226. package/dist/jsx/components/ChildTable/index.native.js.map +1 -1
  227. package/dist/jsx/components/ColumnHeaderFilter/index.mjs +17 -9
  228. package/dist/jsx/components/ColumnHeaderFilter/index.mjs.map +1 -1
  229. package/dist/jsx/components/ColumnHeaderFilter/index.native.js +32 -11
  230. package/dist/jsx/components/ColumnHeaderFilter/index.native.js.map +1 -1
  231. package/dist/jsx/components/DataTable/DataTableDocumentList.mjs +196 -0
  232. package/dist/jsx/components/DataTable/DataTableDocumentList.mjs.map +1 -0
  233. package/dist/jsx/components/DataTable/DataTableDocumentList.native.js +237 -0
  234. package/dist/jsx/components/DataTable/DataTableDocumentList.native.js.map +1 -0
  235. package/dist/jsx/components/DataTable/DataTableMobileCards.mjs +5 -2
  236. package/dist/jsx/components/DataTable/DataTableMobileCards.mjs.map +1 -1
  237. package/dist/jsx/components/DataTable/DataTableMobileCards.native.js +6 -2
  238. package/dist/jsx/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  239. package/dist/jsx/components/DataTable/DataTableRoot.mjs +93 -42
  240. package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -1
  241. package/dist/jsx/components/DataTable/DataTableRoot.native.js +97 -43
  242. package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -1
  243. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs +8 -2
  244. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs.map +1 -1
  245. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js +9 -3
  246. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  247. package/dist/jsx/components/DataTable/documentListSlots.mjs +33 -0
  248. package/dist/jsx/components/DataTable/documentListSlots.mjs.map +1 -0
  249. package/dist/jsx/components/DataTable/documentListSlots.native.js +85 -0
  250. package/dist/jsx/components/DataTable/documentListSlots.native.js.map +1 -0
  251. package/dist/jsx/components/DataTable/index.native.js +74 -59
  252. package/dist/jsx/components/DataTable/index.native.js.map +1 -1
  253. package/dist/jsx/components/DataTable/rowStateChrome.mjs +28 -0
  254. package/dist/jsx/components/DataTable/rowStateChrome.mjs.map +1 -0
  255. package/dist/jsx/components/DataTable/rowStateChrome.native.js +59 -0
  256. package/dist/jsx/components/DataTable/rowStateChrome.native.js.map +1 -0
  257. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs +25 -4
  258. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs.map +1 -1
  259. package/dist/jsx/components/DataTableCell/CellModalEditor.native.js +6 -1
  260. package/dist/jsx/components/DataTableCell/CellModalEditor.native.js.map +1 -1
  261. package/dist/jsx/components/DataTableCell/CellOptionsEditor.mjs +9 -2
  262. package/dist/jsx/components/DataTableCell/CellOptionsEditor.mjs.map +1 -1
  263. package/dist/jsx/components/DataTableCell/CellOptionsEditor.native.js +11 -2
  264. package/dist/jsx/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
  265. package/dist/jsx/components/DataTableCell/index.mjs +75 -64
  266. package/dist/jsx/components/DataTableCell/index.mjs.map +1 -1
  267. package/dist/jsx/components/DataTableCell/index.native.js +94 -82
  268. package/dist/jsx/components/DataTableCell/index.native.js.map +1 -1
  269. package/dist/jsx/components/DataTableColumnPinning/index.mjs +54 -37
  270. package/dist/jsx/components/DataTableColumnPinning/index.mjs.map +1 -1
  271. package/dist/jsx/components/DataTableColumnPinning/index.native.js +59 -38
  272. package/dist/jsx/components/DataTableColumnPinning/index.native.js.map +1 -1
  273. package/dist/jsx/components/DataTableDateFilter/index.mjs +34 -15
  274. package/dist/jsx/components/DataTableDateFilter/index.mjs.map +1 -1
  275. package/dist/jsx/components/DataTableDateFilter/index.native.js +33 -12
  276. package/dist/jsx/components/DataTableDateFilter/index.native.js.map +1 -1
  277. package/dist/jsx/components/DataTableExport/index.mjs +36 -8
  278. package/dist/jsx/components/DataTableExport/index.mjs.map +1 -1
  279. package/dist/jsx/components/DataTableExport/index.native.js +42 -7
  280. package/dist/jsx/components/DataTableExport/index.native.js.map +1 -1
  281. package/dist/jsx/components/DataTableFacetMenu/index.mjs +115 -0
  282. package/dist/jsx/components/DataTableFacetMenu/index.mjs.map +1 -0
  283. package/dist/jsx/components/DataTableFacetMenu/index.native.js +156 -0
  284. package/dist/jsx/components/DataTableFacetMenu/index.native.js.map +1 -0
  285. package/dist/jsx/components/DataTableFilterButton/index.mjs +54 -35
  286. package/dist/jsx/components/DataTableFilterButton/index.mjs.map +1 -1
  287. package/dist/jsx/components/DataTableFilterButton/index.native.js +63 -40
  288. package/dist/jsx/components/DataTableFilterButton/index.native.js.map +1 -1
  289. package/dist/jsx/components/DataTableFilterChips/FilterChip.mjs +118 -0
  290. package/dist/jsx/components/DataTableFilterChips/FilterChip.mjs.map +1 -0
  291. package/dist/jsx/components/DataTableFilterChips/FilterChip.native.js +148 -0
  292. package/dist/jsx/components/DataTableFilterChips/FilterChip.native.js.map +1 -0
  293. package/dist/jsx/components/DataTableFilterChips/index.mjs +9 -32
  294. package/dist/jsx/components/DataTableFilterChips/index.mjs.map +1 -1
  295. package/dist/jsx/components/DataTableFilterChips/index.native.js +9 -32
  296. package/dist/jsx/components/DataTableFilterChips/index.native.js.map +1 -1
  297. package/dist/jsx/components/DataTableFilters/index.mjs +149 -506
  298. package/dist/jsx/components/DataTableFilters/index.mjs.map +1 -1
  299. package/dist/jsx/components/DataTableFilters/index.native.js +171 -544
  300. package/dist/jsx/components/DataTableFilters/index.native.js.map +1 -1
  301. package/dist/jsx/components/DataTableGrouping/index.mjs +275 -110
  302. package/dist/jsx/components/DataTableGrouping/index.mjs.map +1 -1
  303. package/dist/jsx/components/DataTableGrouping/index.native.js +310 -157
  304. package/dist/jsx/components/DataTableGrouping/index.native.js.map +1 -1
  305. package/dist/jsx/components/DataTablePagination/index.mjs +148 -96
  306. package/dist/jsx/components/DataTablePagination/index.mjs.map +1 -1
  307. package/dist/jsx/components/DataTablePagination/index.native.js +159 -106
  308. package/dist/jsx/components/DataTablePagination/index.native.js.map +1 -1
  309. package/dist/jsx/components/DataTableSearch/index.mjs +256 -215
  310. package/dist/jsx/components/DataTableSearch/index.mjs.map +1 -1
  311. package/dist/jsx/components/DataTableSearch/index.native.js +292 -243
  312. package/dist/jsx/components/DataTableSearch/index.native.js.map +1 -1
  313. package/dist/jsx/components/DataTableToolbar/index.mjs +145 -119
  314. package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -1
  315. package/dist/jsx/components/DataTableToolbar/index.native.js +163 -148
  316. package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -1
  317. package/dist/jsx/components/DataTableViewOptions/index.mjs +26 -22
  318. package/dist/jsx/components/DataTableViewOptions/index.mjs.map +1 -1
  319. package/dist/jsx/components/DataTableViewOptions/index.native.js +6 -4
  320. package/dist/jsx/components/DataTableViewOptions/index.native.js.map +1 -1
  321. package/dist/jsx/components/SimpleTable/index.mjs +338 -48
  322. package/dist/jsx/components/SimpleTable/index.mjs.map +1 -1
  323. package/dist/jsx/components/SimpleTable/index.native.js +356 -48
  324. package/dist/jsx/components/SimpleTable/index.native.js.map +1 -1
  325. package/dist/jsx/components/TableInput/index.mjs +150 -41
  326. package/dist/jsx/components/TableInput/index.mjs.map +1 -1
  327. package/dist/jsx/components/TableInput/index.native.js +54 -38
  328. package/dist/jsx/components/TableInput/index.native.js.map +1 -1
  329. package/dist/jsx/components/TableInput/shared.mjs +34 -1
  330. package/dist/jsx/components/TableInput/shared.mjs.map +1 -1
  331. package/dist/jsx/components/TableInput/shared.native.js +35 -0
  332. package/dist/jsx/components/TableInput/shared.native.js.map +1 -1
  333. package/dist/jsx/hooks/useDataTable.mjs +33 -2
  334. package/dist/jsx/hooks/useDataTable.mjs.map +1 -1
  335. package/dist/jsx/hooks/useDataTable.native.js +41 -2
  336. package/dist/jsx/hooks/useDataTable.native.js.map +1 -1
  337. package/dist/jsx/hooks/useInfiniteRows.mjs +20 -3
  338. package/dist/jsx/hooks/useInfiniteRows.mjs.map +1 -1
  339. package/dist/jsx/hooks/useInfiniteRows.native.js +20 -3
  340. package/dist/jsx/hooks/useInfiniteRows.native.js.map +1 -1
  341. package/dist/jsx/index.js +2 -1
  342. package/dist/jsx/index.js.map +1 -1
  343. package/dist/jsx/index.mjs +2 -1
  344. package/dist/jsx/index.mjs.map +1 -1
  345. package/dist/jsx/index.native.js +2 -0
  346. package/dist/jsx/index.native.js.map +1 -1
  347. package/dist/jsx/utils/filterUtils.mjs +12 -5
  348. package/dist/jsx/utils/filterUtils.mjs.map +1 -1
  349. package/dist/jsx/utils/filterUtils.native.js +20 -5
  350. package/dist/jsx/utils/filterUtils.native.js.map +1 -1
  351. package/package.json +15 -15
  352. package/src/components/ChildTable/index.tsx +1 -0
  353. package/src/components/ColumnHeaderFilter/ColumnHeaderFilter.spec.tsx +85 -0
  354. package/src/components/ColumnHeaderFilter/index.tsx +28 -10
  355. package/src/components/DataTable/DataTable.stories.tsx +30 -0
  356. package/src/components/DataTable/DataTableDocumentList.tsx +224 -0
  357. package/src/components/DataTable/DataTableMobileCards.tsx +20 -8
  358. package/src/components/DataTable/DataTableRoot.tsx +135 -58
  359. package/src/components/DataTable/DataTableVirtualized.tsx +8 -11
  360. package/src/components/DataTable/cardLayout.spec.tsx +89 -0
  361. package/src/components/DataTable/documentListSlots.ts +57 -0
  362. package/src/components/DataTable/index.native.tsx +76 -50
  363. package/src/components/DataTable/keepPreviousData.spec.tsx +137 -0
  364. package/src/components/DataTable/rowRing.spec.tsx +118 -0
  365. package/src/components/DataTable/rowStateChrome.ts +38 -0
  366. package/src/components/DataTableCell/CellModalEditor.native.tsx +4 -0
  367. package/src/components/DataTableCell/CellModalEditor.tsx +31 -3
  368. package/src/components/DataTableCell/CellOptionsEditor.tsx +29 -12
  369. package/src/components/DataTableCell/DataTableCell.stories.tsx +3 -3
  370. package/src/components/DataTableCell/cellDraftPolicy.spec.tsx +131 -4
  371. package/src/components/DataTableCell/dataTableCell.spec.tsx +36 -1
  372. package/src/components/DataTableCell/index.tsx +121 -86
  373. package/src/components/DataTableColumnPinning/DataTableColumnPinning.spec.tsx +66 -0
  374. package/src/components/DataTableColumnPinning/index.tsx +32 -17
  375. package/src/components/DataTableDateFilter/DataTableDateFilter.spec.tsx +9 -1
  376. package/src/components/DataTableDateFilter/dateFilterZones.spec.ts +316 -0
  377. package/src/components/DataTableDateFilter/index.tsx +42 -22
  378. package/src/components/DataTableExport/exportDateZones.spec.tsx +348 -0
  379. package/src/components/DataTableExport/index.tsx +107 -63
  380. package/src/components/DataTableFacetMenu/DataTableFacetMenu.spec.tsx +264 -0
  381. package/src/components/DataTableFacetMenu/DataTableFacetMenu.stories.tsx +212 -0
  382. package/src/components/DataTableFacetMenu/index.tsx +202 -0
  383. package/src/components/DataTableFilterButton/index.tsx +66 -49
  384. package/src/components/DataTableFilterChips/DataTableFilterChips.spec.tsx +22 -0
  385. package/src/components/DataTableFilterChips/FilterChip.tsx +122 -0
  386. package/src/components/DataTableFilterChips/index.tsx +13 -29
  387. package/src/components/DataTableFilters/DataTableFilters.spec.tsx +56 -0
  388. package/src/components/DataTableFilters/index.tsx +169 -584
  389. package/src/components/DataTableGrouping/DataTableGrouping.spec.tsx +85 -0
  390. package/src/components/DataTableGrouping/index.tsx +270 -130
  391. package/src/components/DataTablePagination/DataTablePagination.spec.tsx +79 -4
  392. package/src/components/DataTablePagination/index.tsx +168 -112
  393. package/src/components/DataTableSearch/DataTableSearch.spec.tsx +40 -0
  394. package/src/components/DataTableSearch/DataTableSearch.stories.tsx +1 -1
  395. package/src/components/DataTableSearch/index.tsx +192 -163
  396. package/src/components/DataTableToolbar/DataTableToolbar.spec.tsx +48 -18
  397. package/src/components/DataTableToolbar/DataTableToolbar.stories.tsx +5 -45
  398. package/src/components/DataTableToolbar/index.tsx +128 -99
  399. package/src/components/DataTableViewOptions/index.tsx +29 -22
  400. package/src/components/SimpleTable/SimpleTable.stories.tsx +29 -5
  401. package/src/components/SimpleTable/index.tsx +442 -61
  402. package/src/components/SimpleTable/simpleTable.spec.tsx +140 -12
  403. package/src/components/TableInput/index.native.tsx +91 -81
  404. package/src/components/TableInput/index.tsx +191 -50
  405. package/src/components/TableInput/shared.ts +57 -0
  406. package/src/components/TableInput/tableInput.spec.tsx +104 -0
  407. package/src/hooks/useDataTable.spec.ts +100 -3
  408. package/src/hooks/useDataTable.ts +44 -1
  409. package/src/hooks/useInfiniteRows.spec.tsx +37 -0
  410. package/src/hooks/useInfiniteRows.ts +34 -4
  411. package/src/index.ts +7 -0
  412. package/src/types.ts +54 -3
  413. package/src/utils/filterUtils.ts +27 -5
  414. package/types/components/ChildTable/index.d.ts.map +1 -1
  415. package/types/components/ColumnHeaderFilter/index.d.ts.map +1 -1
  416. package/types/components/DataTable/DataTableDocumentList.d.ts +32 -0
  417. package/types/components/DataTable/DataTableDocumentList.d.ts.map +1 -0
  418. package/types/components/DataTable/DataTableMobileCards.d.ts +3 -1
  419. package/types/components/DataTable/DataTableMobileCards.d.ts.map +1 -1
  420. package/types/components/DataTable/DataTableRoot.d.ts +1 -1
  421. package/types/components/DataTable/DataTableRoot.d.ts.map +1 -1
  422. package/types/components/DataTable/DataTableVirtualized.d.ts +1 -2
  423. package/types/components/DataTable/DataTableVirtualized.d.ts.map +1 -1
  424. package/types/components/DataTable/documentListSlots.d.ts +26 -0
  425. package/types/components/DataTable/documentListSlots.d.ts.map +1 -0
  426. package/types/components/DataTable/index.native.d.ts +1 -1
  427. package/types/components/DataTable/index.native.d.ts.map +1 -1
  428. package/types/components/DataTable/rowStateChrome.d.ts +18 -0
  429. package/types/components/DataTable/rowStateChrome.d.ts.map +1 -0
  430. package/types/components/DataTableCell/CellModalEditor.d.ts +6 -1
  431. package/types/components/DataTableCell/CellModalEditor.d.ts.map +1 -1
  432. package/types/components/DataTableCell/CellModalEditor.native.d.ts +1 -1
  433. package/types/components/DataTableCell/CellModalEditor.native.d.ts.map +1 -1
  434. package/types/components/DataTableCell/CellOptionsEditor.d.ts +11 -3
  435. package/types/components/DataTableCell/CellOptionsEditor.d.ts.map +1 -1
  436. package/types/components/DataTableCell/index.d.ts +1 -1
  437. package/types/components/DataTableCell/index.d.ts.map +1 -1
  438. package/types/components/DataTableColumnPinning/index.d.ts.map +1 -1
  439. package/types/components/DataTableDateFilter/index.d.ts.map +1 -1
  440. package/types/components/DataTableExport/index.d.ts +17 -6
  441. package/types/components/DataTableExport/index.d.ts.map +1 -1
  442. package/types/components/DataTableFacetMenu/index.d.ts +84 -0
  443. package/types/components/DataTableFacetMenu/index.d.ts.map +1 -0
  444. package/types/components/DataTableFilterButton/index.d.ts.map +1 -1
  445. package/types/components/DataTableFilterChips/FilterChip.d.ts +15 -0
  446. package/types/components/DataTableFilterChips/FilterChip.d.ts.map +1 -0
  447. package/types/components/DataTableFilterChips/index.d.ts +5 -0
  448. package/types/components/DataTableFilterChips/index.d.ts.map +1 -1
  449. package/types/components/DataTableFilters/index.d.ts +11 -0
  450. package/types/components/DataTableFilters/index.d.ts.map +1 -1
  451. package/types/components/DataTableGrouping/index.d.ts.map +1 -1
  452. package/types/components/DataTablePagination/index.d.ts +5 -0
  453. package/types/components/DataTablePagination/index.d.ts.map +1 -1
  454. package/types/components/DataTableSearch/index.d.ts.map +1 -1
  455. package/types/components/DataTableToolbar/index.d.ts +2 -0
  456. package/types/components/DataTableToolbar/index.d.ts.map +1 -1
  457. package/types/components/SimpleTable/index.d.ts +27 -5
  458. package/types/components/SimpleTable/index.d.ts.map +1 -1
  459. package/types/components/TableInput/index.d.ts +6 -1
  460. package/types/components/TableInput/index.d.ts.map +1 -1
  461. package/types/components/TableInput/index.native.d.ts +6 -1
  462. package/types/components/TableInput/index.native.d.ts.map +1 -1
  463. package/types/components/TableInput/shared.d.ts +38 -0
  464. package/types/components/TableInput/shared.d.ts.map +1 -1
  465. package/types/hooks/useDataTable.d.ts +1 -1
  466. package/types/hooks/useDataTable.d.ts.map +1 -1
  467. package/types/hooks/useInfiniteRows.d.ts +8 -1
  468. package/types/hooks/useInfiniteRows.d.ts.map +1 -1
  469. package/types/index.d.ts +1 -0
  470. package/types/index.d.ts.map +1 -1
  471. package/types/types.d.ts +54 -3
  472. package/types/types.d.ts.map +1 -1
  473. package/types/utils/filterUtils.d.ts.map +1 -1
@@ -32,11 +32,10 @@ __export(DataTableGrouping_exports, {
32
32
  });
33
33
  module.exports = __toCommonJS(DataTableGrouping_exports);
34
34
  var import_jsx_runtime = require("react/jsx-runtime");
35
- var import_react = require("react");
36
- var import_react2 = require("@phosphor-icons/react");
35
+ var import_react = require("@phosphor-icons/react");
37
36
  var import_components = require("@multiplatform.one/components");
38
37
  var import_theme = require("@multiplatform.one/theme");
39
- var import_react3 = require("react");
38
+ var import_react2 = require("react");
40
39
  var import_forms = require("@multiplatform.one/forms");
41
40
  var import_tamagui = require("tamagui");
42
41
  var import_viewData = require("../../utils/viewData.native.js");
@@ -52,11 +51,38 @@ var groupItemPaddingMap = {
52
51
  medium: "$2",
53
52
  large: "$3"
54
53
  };
54
+ var groupIndentStepMap = {
55
+ small: 12,
56
+ medium: 16,
57
+ large: 24
58
+ };
55
59
  var groupMetaSizeMap = {
56
60
  $3: "$2",
57
61
  $4: "$3",
58
62
  $5: "$4"
59
63
  };
64
+ var groupIconSize = function groupIconSize2(token) {
65
+ return (0, import_theme.sizeRecipeForToken)(token).iconSize;
66
+ };
67
+ var startRail = import_tamagui.isWeb ? {
68
+ borderInlineStartWidth: 4,
69
+ borderInlineStartStyle: "solid",
70
+ borderInlineStartColor: "$color6"
71
+ } : {
72
+ borderStartWidth: 4,
73
+ borderStartColor: "$color6"
74
+ };
75
+ function groupIndent(space, level) {
76
+ var _groupIndentStepMap_;
77
+ return ((_groupIndentStepMap_ = groupIndentStepMap[space !== null && space !== void 0 ? space : "medium"]) !== null && _groupIndentStepMap_ !== void 0 ? _groupIndentStepMap_ : 16) * Math.max(0, level);
78
+ }
79
+ function formatCellValue(value) {
80
+ if (value == null) return "";
81
+ if (typeof value === "number") {
82
+ return Number.isFinite(value) ? (0, import_theme.formatNumber)(value) : "";
83
+ }
84
+ return String(value);
85
+ }
60
86
  function formatAggregateValue(value, agg) {
61
87
  if (value == null) return (0, import_theme.formatNumber)(0);
62
88
  if (typeof value === "number") {
@@ -93,15 +119,15 @@ function DataTableGrouping(props) {
93
119
  maxDepth = 5
94
120
  } = props;
95
121
  var isExpansionControlled = onExpandedGroupsChange != null;
96
- var [internalExpandedGroups, setInternalExpandedGroups] = (0, import_react3.useState)(function () {
122
+ var [internalExpandedGroups, setInternalExpandedGroups] = (0, import_react2.useState)(function () {
97
123
  return new Set(expandedGroupsProp);
98
124
  });
99
125
  var expandedGroups = isExpansionControlled ? expandedGroupsProp !== null && expandedGroupsProp !== void 0 ? expandedGroupsProp : EMPTY_EXPANDED_GROUPS : internalExpandedGroups;
100
- var groupedData = (0, import_react3.useMemo)(function () {
126
+ var groupedData = (0, import_react2.useMemo)(function () {
101
127
  if (!groupBy.length) return null;
102
128
  return groupData(data, groupBy, aggregations, maxDepth);
103
129
  }, [data, groupBy, aggregations, maxDepth]);
104
- var toggleGroupExpansion = (0, import_react3.useCallback)(function (groupKey) {
130
+ var toggleGroupExpansion = (0, import_react2.useCallback)(function (groupKey) {
105
131
  var newExpanded = new Set(expandedGroups);
106
132
  if (newExpanded.has(groupKey)) {
107
133
  newExpanded.delete(groupKey);
@@ -119,6 +145,8 @@ function DataTableGrouping(props) {
119
145
  groupedData,
120
146
  columns,
121
147
  level: 0,
148
+ stackStart: true,
149
+ stackEnd: true,
122
150
  aggregations,
123
151
  showAggregations,
124
152
  expandedGroups,
@@ -132,6 +160,8 @@ function GroupedDataRenderer(param) {
132
160
  groupedData,
133
161
  columns,
134
162
  level,
163
+ stackStart,
164
+ stackEnd,
135
165
  aggregations,
136
166
  showAggregations,
137
167
  expandedGroups,
@@ -140,15 +170,22 @@ function GroupedDataRenderer(param) {
140
170
  renderGroupFooter
141
171
  } = param;
142
172
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
143
- children: groupedData.map(function (group) {
173
+ children: groupedData.map(function (group, groupIndex) {
144
174
  var _ref;
145
175
  var _group_children;
146
176
  var groupKey = getGroupKey(group);
147
177
  var isExpanded = expandedGroups.has(groupKey);
148
178
  var isExpandable = ((_ref = (_group_children = group.children) === null || _group_children === void 0 ? void 0 : _group_children.length) !== null && _ref !== void 0 ? _ref : 0) > 0 || group.items.length > 0;
179
+ var position = (0, import_theme.getGroupPosition)(groupIndex, groupedData.length);
180
+ var isFirst = position === "first" || position === "only";
181
+ var isLast = position === "last" || position === "only";
182
+ var headerStart = stackStart && isFirst;
183
+ var headerEnd = stackEnd && isLast && !isExpanded;
184
+ var childStackEnd = stackEnd && isLast;
149
185
  return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
150
- children: [/* Group Header */
151
- /* @__PURE__ */(0, import_jsx_runtime.jsx)(GroupHeader, {
186
+ children: [groupIndex > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
187
+ ...import_theme.hairline.line
188
+ }) : null, /* @__PURE__ */(0, import_jsx_runtime.jsx)(GroupHeader, {
152
189
  group,
153
190
  level,
154
191
  isExpanded,
@@ -158,14 +195,19 @@ function GroupedDataRenderer(param) {
158
195
  onToggleExpansion: function onToggleExpansion1() {
159
196
  return onToggleExpansion(groupKey);
160
197
  },
161
- renderCustomHeader: renderGroupHeader
162
- }), /* Group Content */
163
- isExpanded && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
164
- marginInlineStart: level * 20,
165
- children: group.children && group.children.length > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(GroupedDataRenderer, {
198
+ renderCustomHeader: renderGroupHeader,
199
+ position,
200
+ stackStart: headerStart,
201
+ stackEnd: headerEnd
202
+ }), isExpanded && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
203
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
204
+ ...import_theme.hairline.line
205
+ }), group.children && group.children.length > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(GroupedDataRenderer, {
166
206
  groupedData: group.children,
167
207
  columns,
168
208
  level: level + 1,
209
+ stackStart: false,
210
+ stackEnd: childStackEnd,
169
211
  aggregations,
170
212
  showAggregations,
171
213
  expandedGroups,
@@ -174,10 +216,11 @@ function GroupedDataRenderer(param) {
174
216
  renderGroupFooter
175
217
  }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(GroupItems, {
176
218
  items: group.items,
177
- columns
178
- })
179
- }), /* Group Footer */
180
- renderGroupFooter && isExpanded && /* @__PURE__ */(0, import_jsx_runtime.jsx)(GroupFooter, {
219
+ columns,
220
+ level: level + 1,
221
+ stackEnd: childStackEnd
222
+ })]
223
+ }), renderGroupFooter && isExpanded && /* @__PURE__ */(0, import_jsx_runtime.jsx)(GroupFooter, {
181
224
  group,
182
225
  level,
183
226
  renderCustomFooter: renderGroupFooter
@@ -195,48 +238,67 @@ function GroupHeader(param) {
195
238
  aggregations,
196
239
  showAggregations,
197
240
  onToggleExpansion,
198
- renderCustomHeader
241
+ renderCustomHeader,
242
+ position = "only",
243
+ stackStart,
244
+ stackEnd
199
245
  } = param;
200
- var _groupHeaderPaddingMap_knobProps_space, _groupMetaSizeMap_knobProps_sizeToken;
246
+ var _groupMetaSizeMap_knobProps_sizeToken, _groupHeaderPaddingMap_knobProps_space;
201
247
  var {
202
248
  knobProps
203
249
  } = (0, import_theme.useResolvedKnobs)();
204
- var CollapsedCaretIcon = (0, import_components.useDirection)() === "rtl" ? import_react2.CaretLeftIcon : import_react2.CaretRightIcon;
250
+ var CollapsedCaretIcon = (0, import_components.useDirection)() === "rtl" ? import_react.CaretLeftIcon : import_react.CaretRightIcon;
251
+ var corners = (0, import_theme.stackEdgeRadius)(knobProps.borderRadius.borderRadius, {
252
+ start: stackStart,
253
+ end: stackEnd
254
+ });
255
+ var iconSize = groupIconSize(String(knobProps.sizeToken));
256
+ var metaSize = (_groupMetaSizeMap_knobProps_sizeToken = groupMetaSizeMap[knobProps.sizeToken]) !== null && _groupMetaSizeMap_knobProps_sizeToken !== void 0 ? _groupMetaSizeMap_knobProps_sizeToken : "$3";
257
+ var indent = groupIndent(knobProps.space, level);
258
+ var label = group.value == null || group.value === "" ? "No Value" : String(group.value);
259
+ var countLabel = `${(0, import_theme.formatNumber)(group.count, {
260
+ maximumFractionDigits: 0
261
+ })} item${group.count !== 1 ? "s" : ""}`;
205
262
  if (renderCustomHeader) {
206
263
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
207
264
  children: renderCustomHeader(group, level)
208
265
  });
209
266
  }
210
267
  return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
211
- ...knobProps.borderRadius,
268
+ ...corners,
269
+ ...startRail,
212
270
  alignItems: "center",
271
+ gap: "$2",
272
+ minHeight: 44,
213
273
  padding: (_groupHeaderPaddingMap_knobProps_space = groupHeaderPaddingMap[knobProps.space]) !== null && _groupHeaderPaddingMap_knobProps_space !== void 0 ? _groupHeaderPaddingMap_knobProps_space : "$3",
214
- // SF-CONTROL fill tier: filled keeps the previous $color2; outlined
215
- // flips to transparent (InputParts pattern, spec:388-392).
216
274
  backgroundColor: knobProps.inputBackground,
217
- // Logical start accent so the group rail mirrors in RTL; tamagui
218
- // borderStartWidth does not compile to working CSS on web (SB-M-1215).
219
- ...(import_tamagui.isWeb ? {
220
- borderInlineStartWidth: 4,
221
- borderInlineStartStyle: "solid",
222
- borderInlineStartColor: "$color6"
223
- } : {
224
- borderStartWidth: 4,
225
- borderStartColor: "$color6"
226
- }),
275
+ overflow: "hidden",
227
276
  cursor: "pointer",
228
277
  hoverStyle: {
229
- backgroundColor: level === 0 ? "$accentBackground" : {
230
- backgroundColor: "$color2"
231
- }.backgroundColor
278
+ backgroundColor: "$backgroundHover",
279
+ ...corners
280
+ },
281
+ pressStyle: {
282
+ backgroundColor: "$backgroundPress",
283
+ ...corners
232
284
  },
233
285
  onPress: onToggleExpansion,
234
- // Keyboard + AT contract: the header is a toggle button with an
235
- // expanded state; Enter/Space activate it like the pointer does.
236
286
  role: "button",
237
287
  tabIndex: 0,
238
288
  "aria-expanded": isExpanded,
289
+ "aria-label": `${label}, ${countLabel}`,
290
+ outlineWidth: 0,
291
+ focusStyle: {
292
+ outlineWidth: 0
293
+ },
294
+ focusVisibleStyle: (0, import_theme.ensureFocusVisibleRing)({
295
+ outlineOffset: -2
296
+ }),
239
297
  ...{
298
+ "data-testid": "data-table-group-header",
299
+ "data-group-position": position,
300
+ "data-stack-start": stackStart ? "true" : "false",
301
+ "data-stack-end": stackEnd ? "true" : "false",
240
302
  onKeyDown: function onKeyDown(e) {
241
303
  if (e.key === "Enter" || e.key === " ") {
242
304
  e.preventDefault();
@@ -244,50 +306,52 @@ function GroupHeader(param) {
244
306
  }
245
307
  }
246
308
  },
247
- children: [/* Expansion Toggle */
248
- /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
249
- width: 20,
309
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
310
+ width: iconSize + 4,
250
311
  alignItems: "center",
251
- children: hasChildren && (isExpanded ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react2.CaretDownIcon, {
252
- size: 16
312
+ marginInlineStart: indent,
313
+ children: hasChildren && (isExpanded ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CaretDownIcon, {
314
+ size: iconSize
253
315
  }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(CollapsedCaretIcon, {
254
- size: 16
316
+ size: iconSize
255
317
  }))
256
- }), /* Group Info */
257
- /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
318
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
258
319
  flex: 1,
320
+ alignItems: "center",
321
+ justifyContent: "space-between",
322
+ gap: "$3",
323
+ flexWrap: "wrap",
259
324
  children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
260
325
  alignItems: "center",
261
326
  gap: "$2",
327
+ flexShrink: 1,
328
+ minWidth: 0,
262
329
  children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
263
330
  fontSize: knobProps.sizeToken,
264
331
  fontWeight: "600",
265
- children: (
266
- /* Nullish/empty shows the placeholder; falsy-but-real values
267
- like 0 and false render as themselves. */
268
- group.value == null || group.value === "" ? "No Value" : String(group.value))
332
+ numberOfLines: 1,
333
+ children: label
269
334
  }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Text, {
270
- fontSize: (_groupMetaSizeMap_knobProps_sizeToken = groupMetaSizeMap[knobProps.sizeToken]) !== null && _groupMetaSizeMap_knobProps_sizeToken !== void 0 ? _groupMetaSizeMap_knobProps_sizeToken : "$3",
335
+ fontSize: metaSize,
271
336
  color: "$color10",
272
- children: ["(", group.count, " item", group.count !== 1 ? "s" : "", ")"]
337
+ children: ["(", countLabel, ")"]
273
338
  })]
274
- }), /* Aggregations */
275
- showAggregations && aggregations.length > 0 && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
276
- gap: "$4",
277
- marginTop: "$2",
339
+ }), showAggregations && aggregations.length > 0 && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
340
+ gap: "$3",
341
+ flexWrap: "wrap",
342
+ justifyContent: "flex-end",
278
343
  children: aggregations.map(function (agg, index) {
279
- var _groupMetaSizeMap_knobProps_sizeToken2, _groupMetaSizeMap_knobProps_sizeToken1;
280
344
  var _group_aggregations_agg_column;
281
345
  return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
282
- alignItems: "center",
346
+ alignItems: "baseline",
283
347
  gap: "$1",
284
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Text, {
285
- fontSize: (_groupMetaSizeMap_knobProps_sizeToken2 = groupMetaSizeMap[knobProps.sizeToken]) !== null && _groupMetaSizeMap_knobProps_sizeToken2 !== void 0 ? _groupMetaSizeMap_knobProps_sizeToken2 : "$3",
348
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
349
+ fontSize: metaSize,
286
350
  color: "$color10",
287
- children: [agg.label || `${agg.function}(${agg.column})`, ":"]
351
+ children: `${agg.label || `${agg.function}(${agg.column})`}:`
288
352
  }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
289
- fontSize: (_groupMetaSizeMap_knobProps_sizeToken1 = groupMetaSizeMap[knobProps.sizeToken]) !== null && _groupMetaSizeMap_knobProps_sizeToken1 !== void 0 ? _groupMetaSizeMap_knobProps_sizeToken1 : "$3",
290
- fontWeight: "500",
353
+ fontSize: metaSize,
354
+ fontWeight: "600",
291
355
  children: formatAggregateValue((_group_aggregations_agg_column = group.aggregations[agg.column]) === null || _group_aggregations_agg_column === void 0 ? void 0 : _group_aggregations_agg_column[agg.function], agg)
292
356
  })]
293
357
  }, index);
@@ -299,37 +363,61 @@ function GroupHeader(param) {
299
363
  function GroupItems(param) {
300
364
  var {
301
365
  items,
302
- columns = []
366
+ columns = [],
367
+ level,
368
+ stackEnd
303
369
  } = param;
370
+ var _groupMetaSizeMap_knobProps_sizeToken;
304
371
  var {
305
372
  knobProps
306
373
  } = (0, import_theme.useResolvedKnobs)();
374
+ var metaSize = (_groupMetaSizeMap_knobProps_sizeToken = groupMetaSizeMap[knobProps.sizeToken]) !== null && _groupMetaSizeMap_knobProps_sizeToken !== void 0 ? _groupMetaSizeMap_knobProps_sizeToken : "$3";
375
+ var indent = groupIndent(knobProps.space, level);
307
376
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
308
377
  children: items.map(function (item, index) {
309
- var _groupItemPaddingMap_knobProps_space, _groupMetaSizeMap_knobProps_sizeToken;
310
- return /* @__PURE__ */(0, import_react.createElement)(import_tamagui.XStack, {
311
- ...knobProps.borderRadius,
312
- key: index,
313
- padding: (_groupItemPaddingMap_knobProps_space = groupItemPaddingMap[knobProps.space]) !== null && _groupItemPaddingMap_knobProps_space !== void 0 ? _groupItemPaddingMap_knobProps_space : "$2",
314
- paddingInlineStart: "$4",
315
- backgroundColor: index % 2 === 0 ? "$background" : "$color2",
316
- borderBottomWidth: 1,
317
- borderBottomColor: "$borderColor"
318
- }, columns.length > 0 ? columns.map(function (column, colIndex) {
319
- var _groupMetaSizeMap_knobProps_sizeToken2;
320
- var key = column.accessorKey || column.id || `col-${colIndex}`;
321
- var value = item[key];
322
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
323
- flex: 1,
324
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
325
- fontSize: (_groupMetaSizeMap_knobProps_sizeToken2 = groupMetaSizeMap[knobProps.sizeToken]) !== null && _groupMetaSizeMap_knobProps_sizeToken2 !== void 0 ? _groupMetaSizeMap_knobProps_sizeToken2 : "$3",
326
- children: String(value !== null && value !== void 0 ? value : "")
378
+ var _groupItemPaddingMap_knobProps_space;
379
+ var position = (0, import_theme.getGroupPosition)(index, items.length);
380
+ var isLast = position === "last" || position === "only";
381
+ var corners = (0, import_theme.stackEdgeRadius)(knobProps.borderRadius.borderRadius, {
382
+ start: false,
383
+ end: stackEnd && isLast
384
+ });
385
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
386
+ children: [index > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
387
+ ...import_theme.hairline.line
388
+ }) : null, /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
389
+ ...corners,
390
+ padding: (_groupItemPaddingMap_knobProps_space = groupItemPaddingMap[knobProps.space]) !== null && _groupItemPaddingMap_knobProps_space !== void 0 ? _groupItemPaddingMap_knobProps_space : "$2",
391
+ paddingInlineStart: indent + 12,
392
+ overflow: "hidden",
393
+ backgroundColor: index % 2 === 0 ? "$background" : "$color2",
394
+ hoverStyle: {
395
+ backgroundColor: "$backgroundHover",
396
+ ...corners
397
+ },
398
+ ...{
399
+ "data-testid": "data-table-group-item",
400
+ "data-group-position": position,
401
+ "data-stack-end": stackEnd && isLast ? "true" : "false"
402
+ },
403
+ children: columns.length > 0 ? columns.map(function (column, colIndex) {
404
+ var key = column.accessorKey || column.id || `col-${colIndex}`;
405
+ var value = item[key];
406
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
407
+ flex: 1,
408
+ minWidth: 0,
409
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
410
+ fontSize: metaSize,
411
+ numberOfLines: 1,
412
+ children: formatCellValue(value)
413
+ })
414
+ }, key);
415
+ }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
416
+ fontSize: metaSize,
417
+ children: JSON.stringify(item, null, 2)
327
418
  })
328
- }, key);
329
- }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
330
- fontSize: (_groupMetaSizeMap_knobProps_sizeToken = groupMetaSizeMap[knobProps.sizeToken]) !== null && _groupMetaSizeMap_knobProps_sizeToken !== void 0 ? _groupMetaSizeMap_knobProps_sizeToken : "$3",
331
- children: JSON.stringify(item, null, 2)
332
- }));
419
+ })]
420
+ }, index);
333
421
  })
334
422
  });
335
423
  }
@@ -339,8 +427,11 @@ function GroupFooter(param) {
339
427
  level,
340
428
  renderCustomFooter
341
429
  } = param;
430
+ var {
431
+ knobProps
432
+ } = (0, import_theme.useResolvedKnobs)();
342
433
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
343
- marginInlineStart: level * 20,
434
+ paddingInlineStart: groupIndent(knobProps.space, level),
344
435
  children: renderCustomFooter(group, level)
345
436
  });
346
437
  }
@@ -365,7 +456,7 @@ function DataTableGroupingConfig(props) {
365
456
  var sz = knobProps.sizeToken;
366
457
  var popoverMinWidth = sz === "$3" ? 320 : sz === "$5" ? 480 : 400;
367
458
  var popoverMaxWidth = sz === "$3" ? 400 : sz === "$5" ? 560 : 500;
368
- var [isOpen, setIsOpen] = (0, import_react3.useState)(false);
459
+ var [isOpen, setIsOpen] = (0, import_react2.useState)(false);
369
460
  var availableColumns = columns.filter(function (col) {
370
461
  var key = col.accessorKey || col.id || "";
371
462
  return key && !currentConfig.columns.includes(key);
@@ -406,6 +497,18 @@ function DataTableGroupingConfig(props) {
406
497
  };
407
498
  onConfigChange(newConfig);
408
499
  };
500
+ var handleMoveGroupBy = function handleMoveGroupBy2(index, direction) {
501
+ var next = [...currentConfig.columns];
502
+ var swap = index + direction;
503
+ if (swap < 0 || swap >= next.length) return;
504
+ [next[index], next[swap]] = [next[swap], next[index]];
505
+ onConfigChange({
506
+ ...currentConfig,
507
+ columns: next
508
+ });
509
+ };
510
+ var iconSize = groupIconSize(String(sz));
511
+ var radius = knobProps.borderRadius.borderRadius;
409
512
  return (
410
513
  // LC-06/LC-10: collision handling — the config list grows with every
411
514
  // group-by/aggregation added and must clamp + scroll inside the viewport
@@ -422,35 +525,31 @@ function DataTableGroupingConfig(props) {
422
525
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
423
526
  size: knobProps.sizeToken,
424
527
  variant: "outlined",
425
- icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react2.GearIcon, {
426
- size: 16
528
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.GearIcon, {
529
+ size: iconSize
427
530
  }),
428
531
  disabled,
429
532
  "aria-label": "Grouping configuration",
430
533
  children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
431
534
  alignItems: "center",
432
535
  gap: "$2",
433
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react2.ChartBarIcon, {
434
- size: 16
536
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.ChartBarIcon, {
537
+ size: iconSize
435
538
  }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
436
539
  children: "Group & Aggregate"
437
540
  }), (currentConfig.columns.length > 0 || currentConfig.aggregations.length > 0) && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
438
541
  backgroundColor: "$color6",
439
- borderRadius: knobProps.borderRadius.borderRadius,
542
+ borderRadius: 1e3,
440
543
  paddingHorizontal: "$1",
441
544
  paddingVertical: 2,
442
545
  minWidth: 20,
443
546
  alignItems: "center",
444
- children: (
445
- /* LC-05/DG-COL-01: theme ink, not a named hue — "white" was
446
- unreadable on the light-scheme $color6 badge fill. */
447
- /* @__PURE__ */
448
- (0, import_jsx_runtime.jsx)(import_tamagui.Text, {
547
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
449
548
  fontSize: "$2",
450
549
  color: "$color12",
451
550
  fontWeight: "600",
452
551
  children: currentConfig.columns.length + currentConfig.aggregations.length
453
- }))
552
+ })
454
553
  })]
455
554
  })
456
555
  })
@@ -458,6 +557,7 @@ function DataTableGroupingConfig(props) {
458
557
  ...knobProps.borderRadius,
459
558
  borderWidth: 1,
460
559
  borderColor: "$borderColor",
560
+ // LC-24: enter/exit styles are dead code without a resolved token
461
561
  transition: knobProps.transition,
462
562
  enterStyle: {
463
563
  x: 0,
@@ -499,31 +599,69 @@ function DataTableGroupingConfig(props) {
499
599
  })]
500
600
  }), /* Current Group By Columns */
501
601
  /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
502
- gap: "$1",
503
602
  children: currentConfig.columns.map(function (columnKey, index) {
504
603
  var column = columns.find(function (col) {
505
604
  return (col.accessorKey || col.id) === columnKey;
506
605
  });
507
- return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
508
- alignItems: "center",
509
- gap: "$2",
510
- padding: "$2",
511
- backgroundColor: "$color2",
512
- borderRadius: knobProps.borderRadius.borderRadius,
513
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Text, {
514
- fontSize: "$3",
515
- flex: 1,
516
- children: [(column === null || column === void 0 ? void 0 : column.header) || columnKey, " (", index + 1, ")"]
517
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
518
- size: knobProps.sizeToken,
519
- variant: "outlined",
520
- icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react2.MinusIcon, {
521
- size: 16
522
- }),
523
- onPress: function onPress() {
524
- return handleRemoveGroupBy(columnKey);
606
+ var position = (0, import_theme.getGroupPosition)(index, currentConfig.columns.length);
607
+ var corners = (0, import_theme.stackRadiusProps)(position, radius);
608
+ var label = String((column === null || column === void 0 ? void 0 : column.header) || columnKey);
609
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
610
+ children: [index > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
611
+ ...import_theme.hairline.line
612
+ }) : null, /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
613
+ alignItems: "center",
614
+ gap: "$2",
615
+ padding: "$2",
616
+ overflow: "hidden",
617
+ backgroundColor: "$color2",
618
+ ...corners,
619
+ hoverStyle: {
620
+ backgroundColor: "$backgroundHover",
621
+ ...corners
525
622
  },
526
- "aria-label": `Remove grouping by ${(column === null || column === void 0 ? void 0 : column.header) || columnKey}`
623
+ ...{
624
+ "data-group-position": position
625
+ },
626
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
627
+ fontSize: "$3",
628
+ flex: 1,
629
+ numberOfLines: 1,
630
+ children: `${label} \xB7 ${index + 1}`
631
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
632
+ size: "$2",
633
+ variant: "outlined",
634
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.ArrowUpIcon, {
635
+ size: iconSize
636
+ }),
637
+ disabled: disabled || index === 0,
638
+ onPress: function onPress() {
639
+ return handleMoveGroupBy(index, -1);
640
+ },
641
+ "aria-label": `Move ${label} up`
642
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
643
+ size: "$2",
644
+ variant: "outlined",
645
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.ArrowDownIcon, {
646
+ size: iconSize
647
+ }),
648
+ disabled: disabled || index === currentConfig.columns.length - 1,
649
+ onPress: function onPress() {
650
+ return handleMoveGroupBy(index, 1);
651
+ },
652
+ "aria-label": `Move ${label} down`
653
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
654
+ size: "$2",
655
+ variant: "outlined",
656
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.MinusIcon, {
657
+ size: iconSize
658
+ }),
659
+ disabled,
660
+ onPress: function onPress() {
661
+ return handleRemoveGroupBy(columnKey);
662
+ },
663
+ "aria-label": `Remove grouping by ${label}`
664
+ })]
527
665
  })]
528
666
  }, columnKey);
529
667
  })
@@ -563,30 +701,45 @@ function DataTableGroupingConfig(props) {
563
701
  })]
564
702
  }), /* Current Aggregations */
565
703
  /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
566
- gap: "$1",
567
704
  children: currentConfig.aggregations.map(function (agg, index) {
568
- return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
569
- alignItems: "center",
570
- gap: "$2",
571
- padding: "$2",
572
- backgroundColor: "$color2",
573
- borderRadius: knobProps.borderRadius.borderRadius,
574
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Text, {
575
- fontSize: "$3",
576
- flex: 1,
577
- children: [agg.function, "(", agg.column, ")", agg.label && ` as "${agg.label}"`]
578
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
579
- size: knobProps.sizeToken,
580
- variant: "outlined",
581
- icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react2.MinusIcon, {
582
- size: 16
583
- }),
584
- onPress: function onPress() {
585
- return handleRemoveAggregation(index);
705
+ var position = (0, import_theme.getGroupPosition)(index, currentConfig.aggregations.length);
706
+ var corners = (0, import_theme.stackRadiusProps)(position, radius);
707
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
708
+ children: [index > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
709
+ ...import_theme.hairline.line
710
+ }) : null, /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
711
+ alignItems: "center",
712
+ gap: "$2",
713
+ padding: "$2",
714
+ overflow: "hidden",
715
+ backgroundColor: "$color2",
716
+ ...corners,
717
+ hoverStyle: {
718
+ backgroundColor: "$backgroundHover",
719
+ ...corners
720
+ },
721
+ ...{
722
+ "data-group-position": position
586
723
  },
587
- "aria-label": `Remove ${agg.function} aggregation on ${agg.column}`
724
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Text, {
725
+ fontSize: "$3",
726
+ flex: 1,
727
+ numberOfLines: 1,
728
+ children: [agg.function, "(", agg.column, ")", agg.label && ` as "${agg.label}"`]
729
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
730
+ size: "$2",
731
+ variant: "outlined",
732
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.MinusIcon, {
733
+ size: iconSize
734
+ }),
735
+ disabled,
736
+ onPress: function onPress() {
737
+ return handleRemoveAggregation(index);
738
+ },
739
+ "aria-label": `Remove ${agg.function} aggregation on ${agg.column}`
740
+ })]
588
741
  })]
589
- }, index);
742
+ }, `${agg.function}-${agg.column}-${index}`);
590
743
  })
591
744
  }), /* Add Aggregation */
592
745
  /* @__PURE__ */(0, import_jsx_runtime.jsx)(AggregationSelector, {
@@ -620,40 +773,40 @@ function AggregationSelector(param) {
620
773
  columns,
621
774
  onAddAggregation
622
775
  } = param;
623
- var [selectedColumn, setSelectedColumn] = (0, import_react3.useState)("");
624
- var [selectedFunction, setSelectedFunction] = (0, import_react3.useState)("count");
776
+ var [selectedColumn, setSelectedColumn] = (0, import_react2.useState)("");
777
+ var [selectedFunction, setSelectedFunction] = (0, import_react2.useState)("count");
625
778
  var aggregationFunctions = [{
626
779
  value: "count",
627
780
  label: "Count",
628
- icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react2.HashIcon, {
781
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.HashIcon, {
629
782
  size: 16
630
783
  })
631
784
  }, {
632
785
  value: "sum",
633
786
  label: "Sum",
634
- icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react2.PlusIcon, {
787
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.PlusIcon, {
635
788
  size: 16
636
789
  })
637
790
  }, {
638
791
  value: "avg",
639
792
  label: "Average",
640
- icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react2.CalculatorIcon, {
793
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CalculatorIcon, {
641
794
  size: 16
642
795
  })
643
796
  }, {
644
797
  value: "min",
645
798
  label: "Minimum",
646
- icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react2.MinusIcon, {
799
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.MinusIcon, {
647
800
  size: 16
648
801
  })
649
802
  }, {
650
803
  value: "max",
651
804
  label: "Maximum",
652
- icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react2.CaretUpIcon, {
805
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CaretUpIcon, {
653
806
  size: 16
654
807
  })
655
808
  }];
656
- var columnOptions = (0, import_react3.useMemo)(function () {
809
+ var columnOptions = (0, import_react2.useMemo)(function () {
657
810
  return columns.map(function (column) {
658
811
  var key = column.accessorKey || column.id || "";
659
812
  return {
@@ -662,7 +815,7 @@ function AggregationSelector(param) {
662
815
  };
663
816
  });
664
817
  }, [columns]);
665
- var functionOptions = (0, import_react3.useMemo)(function () {
818
+ var functionOptions = (0, import_react2.useMemo)(function () {
666
819
  return aggregationFunctions.map(function (func) {
667
820
  return {
668
821
  value: func.value,
@@ -830,7 +983,7 @@ function useGrouping(param) {
830
983
  data,
831
984
  initialConfig = {}
832
985
  } = param;
833
- var [config, setConfig] = (0, import_react3.useState)({
986
+ var [config, setConfig] = (0, import_react2.useState)({
834
987
  columns: [],
835
988
  aggregations: [],
836
989
  showEmptyGroups: false,
@@ -838,12 +991,12 @@ function useGrouping(param) {
838
991
  maxDepth: 5,
839
992
  ...initialConfig
840
993
  });
841
- var [expandedGroups, setExpandedGroups] = (0, import_react3.useState)(/* @__PURE__ */new Set());
842
- var groupedData = (0, import_react3.useMemo)(function () {
994
+ var [expandedGroups, setExpandedGroups] = (0, import_react2.useState)(/* @__PURE__ */new Set());
995
+ var groupedData = (0, import_react2.useMemo)(function () {
843
996
  if (!config.columns.length) return null;
844
997
  return groupData(data, config.columns, config.aggregations, config.maxDepth);
845
998
  }, [data, config]);
846
- var toggleGroupExpansion = (0, import_react3.useCallback)(function (groupKey) {
999
+ var toggleGroupExpansion = (0, import_react2.useCallback)(function (groupKey) {
847
1000
  setExpandedGroups(function (prev) {
848
1001
  var newSet = new Set(prev);
849
1002
  if (newSet.has(groupKey)) {
@@ -854,7 +1007,7 @@ function useGrouping(param) {
854
1007
  return newSet;
855
1008
  });
856
1009
  }, []);
857
- var expandAll = (0, import_react3.useCallback)(function () {
1010
+ var expandAll = (0, import_react2.useCallback)(function () {
858
1011
  if (!groupedData) return;
859
1012
  var allKeys = /* @__PURE__ */new Set();
860
1013
  var collectKeys = function collectKeys1(groups) {
@@ -868,7 +1021,7 @@ function useGrouping(param) {
868
1021
  collectKeys(groupedData);
869
1022
  setExpandedGroups(allKeys);
870
1023
  }, [groupedData]);
871
- var collapseAll = (0, import_react3.useCallback)(function () {
1024
+ var collapseAll = (0, import_react2.useCallback)(function () {
872
1025
  setExpandedGroups(/* @__PURE__ */new Set());
873
1026
  }, []);
874
1027
  return {