@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
@@ -1,8 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { createElement as _createElement } from "react";
3
- import { ChartBarIcon, CalculatorIcon, CaretDownIcon, CaretLeftIcon, CaretRightIcon, CaretUpIcon, HashIcon, MinusIcon, PlusIcon, GearIcon } from "@phosphor-icons/react";
2
+ import { ArrowDownIcon, ArrowUpIcon, ChartBarIcon, CalculatorIcon, CaretDownIcon, CaretLeftIcon, CaretRightIcon, CaretUpIcon, HashIcon, MinusIcon, PlusIcon, GearIcon } from "@phosphor-icons/react";
4
3
  import { useDirection } from "@multiplatform.one/components";
5
- import { formatNumber, useResolvedKnobs } from "@multiplatform.one/theme";
4
+ import { ensureFocusVisibleRing, formatNumber, getGroupPosition, hairline, sizeRecipeForToken, stackEdgeRadius, stackRadiusProps, useResolvedKnobs } from "@multiplatform.one/theme";
6
5
  import { useCallback, useMemo, useState } from "react";
7
6
  import { Button, Select } from "@multiplatform.one/forms";
8
7
  import { Popover, Separator, Text, View, XStack, YStack, isWeb } from "tamagui";
@@ -19,11 +18,38 @@ var groupItemPaddingMap = {
19
18
  medium: "$2",
20
19
  large: "$3"
21
20
  };
21
+ var groupIndentStepMap = {
22
+ small: 12,
23
+ medium: 16,
24
+ large: 24
25
+ };
22
26
  var groupMetaSizeMap = {
23
27
  $3: "$2",
24
28
  $4: "$3",
25
29
  $5: "$4"
26
30
  };
31
+ var groupIconSize = function groupIconSize2(token) {
32
+ return sizeRecipeForToken(token).iconSize;
33
+ };
34
+ var startRail = isWeb ? {
35
+ borderInlineStartWidth: 4,
36
+ borderInlineStartStyle: "solid",
37
+ borderInlineStartColor: "$color6"
38
+ } : {
39
+ borderStartWidth: 4,
40
+ borderStartColor: "$color6"
41
+ };
42
+ function groupIndent(space, level) {
43
+ var _groupIndentStepMap_;
44
+ return ((_groupIndentStepMap_ = groupIndentStepMap[space !== null && space !== void 0 ? space : "medium"]) !== null && _groupIndentStepMap_ !== void 0 ? _groupIndentStepMap_ : 16) * Math.max(0, level);
45
+ }
46
+ function formatCellValue(value) {
47
+ if (value == null) return "";
48
+ if (typeof value === "number") {
49
+ return Number.isFinite(value) ? formatNumber(value) : "";
50
+ }
51
+ return String(value);
52
+ }
27
53
  function formatAggregateValue(value, agg) {
28
54
  if (value == null) return formatNumber(0);
29
55
  if (typeof value === "number") {
@@ -86,6 +112,8 @@ function DataTableGrouping(props) {
86
112
  groupedData,
87
113
  columns,
88
114
  level: 0,
115
+ stackStart: true,
116
+ stackEnd: true,
89
117
  aggregations,
90
118
  showAggregations,
91
119
  expandedGroups,
@@ -99,6 +127,8 @@ function GroupedDataRenderer(param) {
99
127
  groupedData,
100
128
  columns,
101
129
  level,
130
+ stackStart,
131
+ stackEnd,
102
132
  aggregations,
103
133
  showAggregations,
104
134
  expandedGroups,
@@ -107,15 +137,22 @@ function GroupedDataRenderer(param) {
107
137
  renderGroupFooter
108
138
  } = param;
109
139
  return /* @__PURE__ */_jsx(YStack, {
110
- children: groupedData.map(function (group) {
140
+ children: groupedData.map(function (group, groupIndex) {
111
141
  var _ref;
112
142
  var _group_children;
113
143
  var groupKey = getGroupKey(group);
114
144
  var isExpanded = expandedGroups.has(groupKey);
115
145
  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;
146
+ var position = getGroupPosition(groupIndex, groupedData.length);
147
+ var isFirst = position === "first" || position === "only";
148
+ var isLast = position === "last" || position === "only";
149
+ var headerStart = stackStart && isFirst;
150
+ var headerEnd = stackEnd && isLast && !isExpanded;
151
+ var childStackEnd = stackEnd && isLast;
116
152
  return /* @__PURE__ */_jsxs(YStack, {
117
- children: [/* Group Header */
118
- /* @__PURE__ */_jsx(GroupHeader, {
153
+ children: [groupIndex > 0 ? /* @__PURE__ */_jsx(View, {
154
+ ...hairline.line
155
+ }) : null, /* @__PURE__ */_jsx(GroupHeader, {
119
156
  group,
120
157
  level,
121
158
  isExpanded,
@@ -125,14 +162,19 @@ function GroupedDataRenderer(param) {
125
162
  onToggleExpansion: function onToggleExpansion1() {
126
163
  return onToggleExpansion(groupKey);
127
164
  },
128
- renderCustomHeader: renderGroupHeader
129
- }), /* Group Content */
130
- isExpanded && /* @__PURE__ */_jsx(YStack, {
131
- marginInlineStart: level * 20,
132
- children: group.children && group.children.length > 0 ? /* @__PURE__ */_jsx(GroupedDataRenderer, {
165
+ renderCustomHeader: renderGroupHeader,
166
+ position,
167
+ stackStart: headerStart,
168
+ stackEnd: headerEnd
169
+ }), isExpanded && /* @__PURE__ */_jsxs(_Fragment, {
170
+ children: [/* @__PURE__ */_jsx(View, {
171
+ ...hairline.line
172
+ }), group.children && group.children.length > 0 ? /* @__PURE__ */_jsx(GroupedDataRenderer, {
133
173
  groupedData: group.children,
134
174
  columns,
135
175
  level: level + 1,
176
+ stackStart: false,
177
+ stackEnd: childStackEnd,
136
178
  aggregations,
137
179
  showAggregations,
138
180
  expandedGroups,
@@ -141,10 +183,11 @@ function GroupedDataRenderer(param) {
141
183
  renderGroupFooter
142
184
  }) : /* @__PURE__ */_jsx(GroupItems, {
143
185
  items: group.items,
144
- columns
145
- })
146
- }), /* Group Footer */
147
- renderGroupFooter && isExpanded && /* @__PURE__ */_jsx(GroupFooter, {
186
+ columns,
187
+ level: level + 1,
188
+ stackEnd: childStackEnd
189
+ })]
190
+ }), renderGroupFooter && isExpanded && /* @__PURE__ */_jsx(GroupFooter, {
148
191
  group,
149
192
  level,
150
193
  renderCustomFooter: renderGroupFooter
@@ -162,48 +205,67 @@ function GroupHeader(param) {
162
205
  aggregations,
163
206
  showAggregations,
164
207
  onToggleExpansion,
165
- renderCustomHeader
208
+ renderCustomHeader,
209
+ position = "only",
210
+ stackStart,
211
+ stackEnd
166
212
  } = param;
167
- var _groupHeaderPaddingMap_knobProps_space, _groupMetaSizeMap_knobProps_sizeToken;
213
+ var _groupMetaSizeMap_knobProps_sizeToken, _groupHeaderPaddingMap_knobProps_space;
168
214
  var {
169
215
  knobProps
170
216
  } = useResolvedKnobs();
171
217
  var CollapsedCaretIcon = useDirection() === "rtl" ? CaretLeftIcon : CaretRightIcon;
218
+ var corners = stackEdgeRadius(knobProps.borderRadius.borderRadius, {
219
+ start: stackStart,
220
+ end: stackEnd
221
+ });
222
+ var iconSize = groupIconSize(String(knobProps.sizeToken));
223
+ var metaSize = (_groupMetaSizeMap_knobProps_sizeToken = groupMetaSizeMap[knobProps.sizeToken]) !== null && _groupMetaSizeMap_knobProps_sizeToken !== void 0 ? _groupMetaSizeMap_knobProps_sizeToken : "$3";
224
+ var indent = groupIndent(knobProps.space, level);
225
+ var label = group.value == null || group.value === "" ? "No Value" : String(group.value);
226
+ var countLabel = `${formatNumber(group.count, {
227
+ maximumFractionDigits: 0
228
+ })} item${group.count !== 1 ? "s" : ""}`;
172
229
  if (renderCustomHeader) {
173
230
  return /* @__PURE__ */_jsx(View, {
174
231
  children: renderCustomHeader(group, level)
175
232
  });
176
233
  }
177
234
  return /* @__PURE__ */_jsxs(XStack, {
178
- ...knobProps.borderRadius,
235
+ ...corners,
236
+ ...startRail,
179
237
  alignItems: "center",
238
+ gap: "$2",
239
+ minHeight: 44,
180
240
  padding: (_groupHeaderPaddingMap_knobProps_space = groupHeaderPaddingMap[knobProps.space]) !== null && _groupHeaderPaddingMap_knobProps_space !== void 0 ? _groupHeaderPaddingMap_knobProps_space : "$3",
181
- // SF-CONTROL fill tier: filled keeps the previous $color2; outlined
182
- // flips to transparent (InputParts pattern, spec:388-392).
183
241
  backgroundColor: knobProps.inputBackground,
184
- // Logical start accent so the group rail mirrors in RTL; tamagui
185
- // borderStartWidth does not compile to working CSS on web (SB-M-1215).
186
- ...(isWeb ? {
187
- borderInlineStartWidth: 4,
188
- borderInlineStartStyle: "solid",
189
- borderInlineStartColor: "$color6"
190
- } : {
191
- borderStartWidth: 4,
192
- borderStartColor: "$color6"
193
- }),
242
+ overflow: "hidden",
194
243
  cursor: "pointer",
195
244
  hoverStyle: {
196
- backgroundColor: level === 0 ? "$accentBackground" : {
197
- backgroundColor: "$color2"
198
- }.backgroundColor
245
+ backgroundColor: "$backgroundHover",
246
+ ...corners
247
+ },
248
+ pressStyle: {
249
+ backgroundColor: "$backgroundPress",
250
+ ...corners
199
251
  },
200
252
  onPress: onToggleExpansion,
201
- // Keyboard + AT contract: the header is a toggle button with an
202
- // expanded state; Enter/Space activate it like the pointer does.
203
253
  role: "button",
204
254
  tabIndex: 0,
205
255
  "aria-expanded": isExpanded,
256
+ "aria-label": `${label}, ${countLabel}`,
257
+ outlineWidth: 0,
258
+ focusStyle: {
259
+ outlineWidth: 0
260
+ },
261
+ focusVisibleStyle: ensureFocusVisibleRing({
262
+ outlineOffset: -2
263
+ }),
206
264
  ...{
265
+ "data-testid": "data-table-group-header",
266
+ "data-group-position": position,
267
+ "data-stack-start": stackStart ? "true" : "false",
268
+ "data-stack-end": stackEnd ? "true" : "false",
207
269
  onKeyDown: function onKeyDown(e) {
208
270
  if (e.key === "Enter" || e.key === " ") {
209
271
  e.preventDefault();
@@ -211,50 +273,52 @@ function GroupHeader(param) {
211
273
  }
212
274
  }
213
275
  },
214
- children: [/* Expansion Toggle */
215
- /* @__PURE__ */_jsx(View, {
216
- width: 20,
276
+ children: [/* @__PURE__ */_jsx(View, {
277
+ width: iconSize + 4,
217
278
  alignItems: "center",
279
+ marginInlineStart: indent,
218
280
  children: hasChildren && (isExpanded ? /* @__PURE__ */_jsx(CaretDownIcon, {
219
- size: 16
281
+ size: iconSize
220
282
  }) : /* @__PURE__ */_jsx(CollapsedCaretIcon, {
221
- size: 16
283
+ size: iconSize
222
284
  }))
223
- }), /* Group Info */
224
- /* @__PURE__ */_jsxs(YStack, {
285
+ }), /* @__PURE__ */_jsxs(XStack, {
225
286
  flex: 1,
287
+ alignItems: "center",
288
+ justifyContent: "space-between",
289
+ gap: "$3",
290
+ flexWrap: "wrap",
226
291
  children: [/* @__PURE__ */_jsxs(XStack, {
227
292
  alignItems: "center",
228
293
  gap: "$2",
294
+ flexShrink: 1,
295
+ minWidth: 0,
229
296
  children: [/* @__PURE__ */_jsx(Text, {
230
297
  fontSize: knobProps.sizeToken,
231
298
  fontWeight: "600",
232
- children: (
233
- /* Nullish/empty shows the placeholder; falsy-but-real values
234
- like 0 and false render as themselves. */
235
- group.value == null || group.value === "" ? "No Value" : String(group.value))
299
+ numberOfLines: 1,
300
+ children: label
236
301
  }), /* @__PURE__ */_jsxs(Text, {
237
- fontSize: (_groupMetaSizeMap_knobProps_sizeToken = groupMetaSizeMap[knobProps.sizeToken]) !== null && _groupMetaSizeMap_knobProps_sizeToken !== void 0 ? _groupMetaSizeMap_knobProps_sizeToken : "$3",
302
+ fontSize: metaSize,
238
303
  color: "$color10",
239
- children: ["(", group.count, " item", group.count !== 1 ? "s" : "", ")"]
304
+ children: ["(", countLabel, ")"]
240
305
  })]
241
- }), /* Aggregations */
242
- showAggregations && aggregations.length > 0 && /* @__PURE__ */_jsx(XStack, {
243
- gap: "$4",
244
- marginTop: "$2",
306
+ }), showAggregations && aggregations.length > 0 && /* @__PURE__ */_jsx(XStack, {
307
+ gap: "$3",
308
+ flexWrap: "wrap",
309
+ justifyContent: "flex-end",
245
310
  children: aggregations.map(function (agg, index) {
246
- var _groupMetaSizeMap_knobProps_sizeToken2, _groupMetaSizeMap_knobProps_sizeToken1;
247
311
  var _group_aggregations_agg_column;
248
312
  return /* @__PURE__ */_jsxs(XStack, {
249
- alignItems: "center",
313
+ alignItems: "baseline",
250
314
  gap: "$1",
251
- children: [/* @__PURE__ */_jsxs(Text, {
252
- fontSize: (_groupMetaSizeMap_knobProps_sizeToken2 = groupMetaSizeMap[knobProps.sizeToken]) !== null && _groupMetaSizeMap_knobProps_sizeToken2 !== void 0 ? _groupMetaSizeMap_knobProps_sizeToken2 : "$3",
315
+ children: [/* @__PURE__ */_jsx(Text, {
316
+ fontSize: metaSize,
253
317
  color: "$color10",
254
- children: [agg.label || `${agg.function}(${agg.column})`, ":"]
318
+ children: `${agg.label || `${agg.function}(${agg.column})`}:`
255
319
  }), /* @__PURE__ */_jsx(Text, {
256
- fontSize: (_groupMetaSizeMap_knobProps_sizeToken1 = groupMetaSizeMap[knobProps.sizeToken]) !== null && _groupMetaSizeMap_knobProps_sizeToken1 !== void 0 ? _groupMetaSizeMap_knobProps_sizeToken1 : "$3",
257
- fontWeight: "500",
320
+ fontSize: metaSize,
321
+ fontWeight: "600",
258
322
  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)
259
323
  })]
260
324
  }, index);
@@ -266,37 +330,61 @@ function GroupHeader(param) {
266
330
  function GroupItems(param) {
267
331
  var {
268
332
  items,
269
- columns = []
333
+ columns = [],
334
+ level,
335
+ stackEnd
270
336
  } = param;
337
+ var _groupMetaSizeMap_knobProps_sizeToken;
271
338
  var {
272
339
  knobProps
273
340
  } = useResolvedKnobs();
341
+ var metaSize = (_groupMetaSizeMap_knobProps_sizeToken = groupMetaSizeMap[knobProps.sizeToken]) !== null && _groupMetaSizeMap_knobProps_sizeToken !== void 0 ? _groupMetaSizeMap_knobProps_sizeToken : "$3";
342
+ var indent = groupIndent(knobProps.space, level);
274
343
  return /* @__PURE__ */_jsx(YStack, {
275
344
  children: items.map(function (item, index) {
276
- var _groupItemPaddingMap_knobProps_space, _groupMetaSizeMap_knobProps_sizeToken;
277
- return /* @__PURE__ */_createElement(XStack, {
278
- ...knobProps.borderRadius,
279
- key: index,
280
- padding: (_groupItemPaddingMap_knobProps_space = groupItemPaddingMap[knobProps.space]) !== null && _groupItemPaddingMap_knobProps_space !== void 0 ? _groupItemPaddingMap_knobProps_space : "$2",
281
- paddingInlineStart: "$4",
282
- backgroundColor: index % 2 === 0 ? "$background" : "$color2",
283
- borderBottomWidth: 1,
284
- borderBottomColor: "$borderColor"
285
- }, columns.length > 0 ? columns.map(function (column, colIndex) {
286
- var _groupMetaSizeMap_knobProps_sizeToken2;
287
- var key = column.accessorKey || column.id || `col-${colIndex}`;
288
- var value = item[key];
289
- return /* @__PURE__ */_jsx(View, {
290
- flex: 1,
291
- children: /* @__PURE__ */_jsx(Text, {
292
- fontSize: (_groupMetaSizeMap_knobProps_sizeToken2 = groupMetaSizeMap[knobProps.sizeToken]) !== null && _groupMetaSizeMap_knobProps_sizeToken2 !== void 0 ? _groupMetaSizeMap_knobProps_sizeToken2 : "$3",
293
- children: String(value !== null && value !== void 0 ? value : "")
345
+ var _groupItemPaddingMap_knobProps_space;
346
+ var position = getGroupPosition(index, items.length);
347
+ var isLast = position === "last" || position === "only";
348
+ var corners = stackEdgeRadius(knobProps.borderRadius.borderRadius, {
349
+ start: false,
350
+ end: stackEnd && isLast
351
+ });
352
+ return /* @__PURE__ */_jsxs(YStack, {
353
+ children: [index > 0 ? /* @__PURE__ */_jsx(View, {
354
+ ...hairline.line
355
+ }) : null, /* @__PURE__ */_jsx(XStack, {
356
+ ...corners,
357
+ padding: (_groupItemPaddingMap_knobProps_space = groupItemPaddingMap[knobProps.space]) !== null && _groupItemPaddingMap_knobProps_space !== void 0 ? _groupItemPaddingMap_knobProps_space : "$2",
358
+ paddingInlineStart: indent + 12,
359
+ overflow: "hidden",
360
+ backgroundColor: index % 2 === 0 ? "$background" : "$color2",
361
+ hoverStyle: {
362
+ backgroundColor: "$backgroundHover",
363
+ ...corners
364
+ },
365
+ ...{
366
+ "data-testid": "data-table-group-item",
367
+ "data-group-position": position,
368
+ "data-stack-end": stackEnd && isLast ? "true" : "false"
369
+ },
370
+ children: columns.length > 0 ? columns.map(function (column, colIndex) {
371
+ var key = column.accessorKey || column.id || `col-${colIndex}`;
372
+ var value = item[key];
373
+ return /* @__PURE__ */_jsx(View, {
374
+ flex: 1,
375
+ minWidth: 0,
376
+ children: /* @__PURE__ */_jsx(Text, {
377
+ fontSize: metaSize,
378
+ numberOfLines: 1,
379
+ children: formatCellValue(value)
380
+ })
381
+ }, key);
382
+ }) : /* @__PURE__ */_jsx(Text, {
383
+ fontSize: metaSize,
384
+ children: JSON.stringify(item, null, 2)
294
385
  })
295
- }, key);
296
- }) : /* @__PURE__ */_jsx(Text, {
297
- fontSize: (_groupMetaSizeMap_knobProps_sizeToken = groupMetaSizeMap[knobProps.sizeToken]) !== null && _groupMetaSizeMap_knobProps_sizeToken !== void 0 ? _groupMetaSizeMap_knobProps_sizeToken : "$3",
298
- children: JSON.stringify(item, null, 2)
299
- }));
386
+ })]
387
+ }, index);
300
388
  })
301
389
  });
302
390
  }
@@ -306,8 +394,11 @@ function GroupFooter(param) {
306
394
  level,
307
395
  renderCustomFooter
308
396
  } = param;
397
+ var {
398
+ knobProps
399
+ } = useResolvedKnobs();
309
400
  return /* @__PURE__ */_jsx(View, {
310
- marginInlineStart: level * 20,
401
+ paddingInlineStart: groupIndent(knobProps.space, level),
311
402
  children: renderCustomFooter(group, level)
312
403
  });
313
404
  }
@@ -373,6 +464,18 @@ function DataTableGroupingConfig(props) {
373
464
  };
374
465
  onConfigChange(newConfig);
375
466
  };
467
+ var handleMoveGroupBy = function handleMoveGroupBy2(index, direction) {
468
+ var next = [...currentConfig.columns];
469
+ var swap = index + direction;
470
+ if (swap < 0 || swap >= next.length) return;
471
+ [next[index], next[swap]] = [next[swap], next[index]];
472
+ onConfigChange({
473
+ ...currentConfig,
474
+ columns: next
475
+ });
476
+ };
477
+ var iconSize = groupIconSize(String(sz));
478
+ var radius = knobProps.borderRadius.borderRadius;
376
479
  return (
377
480
  // LC-06/LC-10: collision handling — the config list grows with every
378
481
  // group-by/aggregation added and must clamp + scroll inside the viewport
@@ -390,7 +493,7 @@ function DataTableGroupingConfig(props) {
390
493
  size: knobProps.sizeToken,
391
494
  variant: "outlined",
392
495
  icon: /* @__PURE__ */_jsx(GearIcon, {
393
- size: 16
496
+ size: iconSize
394
497
  }),
395
498
  disabled,
396
499
  "aria-label": "Grouping configuration",
@@ -398,26 +501,22 @@ function DataTableGroupingConfig(props) {
398
501
  alignItems: "center",
399
502
  gap: "$2",
400
503
  children: [/* @__PURE__ */_jsx(ChartBarIcon, {
401
- size: 16
504
+ size: iconSize
402
505
  }), /* @__PURE__ */_jsx(Text, {
403
506
  children: "Group & Aggregate"
404
507
  }), (currentConfig.columns.length > 0 || currentConfig.aggregations.length > 0) && /* @__PURE__ */_jsx(View, {
405
508
  backgroundColor: "$color6",
406
- borderRadius: knobProps.borderRadius.borderRadius,
509
+ borderRadius: 1e3,
407
510
  paddingHorizontal: "$1",
408
511
  paddingVertical: 2,
409
512
  minWidth: 20,
410
513
  alignItems: "center",
411
- children: (
412
- /* LC-05/DG-COL-01: theme ink, not a named hue — "white" was
413
- unreadable on the light-scheme $color6 badge fill. */
414
- /* @__PURE__ */
415
- _jsx(Text, {
514
+ children: /* @__PURE__ */_jsx(Text, {
416
515
  fontSize: "$2",
417
516
  color: "$color12",
418
517
  fontWeight: "600",
419
518
  children: currentConfig.columns.length + currentConfig.aggregations.length
420
- }))
519
+ })
421
520
  })]
422
521
  })
423
522
  })
@@ -425,6 +524,7 @@ function DataTableGroupingConfig(props) {
425
524
  ...knobProps.borderRadius,
426
525
  borderWidth: 1,
427
526
  borderColor: "$borderColor",
527
+ // LC-24: enter/exit styles are dead code without a resolved token
428
528
  transition: knobProps.transition,
429
529
  enterStyle: {
430
530
  x: 0,
@@ -466,31 +566,69 @@ function DataTableGroupingConfig(props) {
466
566
  })]
467
567
  }), /* Current Group By Columns */
468
568
  /* @__PURE__ */_jsx(YStack, {
469
- gap: "$1",
470
569
  children: currentConfig.columns.map(function (columnKey, index) {
471
570
  var column = columns.find(function (col) {
472
571
  return (col.accessorKey || col.id) === columnKey;
473
572
  });
474
- return /* @__PURE__ */_jsxs(XStack, {
475
- alignItems: "center",
476
- gap: "$2",
477
- padding: "$2",
478
- backgroundColor: "$color2",
479
- borderRadius: knobProps.borderRadius.borderRadius,
480
- children: [/* @__PURE__ */_jsxs(Text, {
481
- fontSize: "$3",
482
- flex: 1,
483
- children: [(column === null || column === void 0 ? void 0 : column.header) || columnKey, " (", index + 1, ")"]
484
- }), /* @__PURE__ */_jsx(Button, {
485
- size: knobProps.sizeToken,
486
- variant: "outlined",
487
- icon: /* @__PURE__ */_jsx(MinusIcon, {
488
- size: 16
489
- }),
490
- onPress: function onPress() {
491
- return handleRemoveGroupBy(columnKey);
573
+ var position = getGroupPosition(index, currentConfig.columns.length);
574
+ var corners = stackRadiusProps(position, radius);
575
+ var label = String((column === null || column === void 0 ? void 0 : column.header) || columnKey);
576
+ return /* @__PURE__ */_jsxs(YStack, {
577
+ children: [index > 0 ? /* @__PURE__ */_jsx(View, {
578
+ ...hairline.line
579
+ }) : null, /* @__PURE__ */_jsxs(XStack, {
580
+ alignItems: "center",
581
+ gap: "$2",
582
+ padding: "$2",
583
+ overflow: "hidden",
584
+ backgroundColor: "$color2",
585
+ ...corners,
586
+ hoverStyle: {
587
+ backgroundColor: "$backgroundHover",
588
+ ...corners
492
589
  },
493
- "aria-label": `Remove grouping by ${(column === null || column === void 0 ? void 0 : column.header) || columnKey}`
590
+ ...{
591
+ "data-group-position": position
592
+ },
593
+ children: [/* @__PURE__ */_jsx(Text, {
594
+ fontSize: "$3",
595
+ flex: 1,
596
+ numberOfLines: 1,
597
+ children: `${label} \xB7 ${index + 1}`
598
+ }), /* @__PURE__ */_jsx(Button, {
599
+ size: "$2",
600
+ variant: "outlined",
601
+ icon: /* @__PURE__ */_jsx(ArrowUpIcon, {
602
+ size: iconSize
603
+ }),
604
+ disabled: disabled || index === 0,
605
+ onPress: function onPress() {
606
+ return handleMoveGroupBy(index, -1);
607
+ },
608
+ "aria-label": `Move ${label} up`
609
+ }), /* @__PURE__ */_jsx(Button, {
610
+ size: "$2",
611
+ variant: "outlined",
612
+ icon: /* @__PURE__ */_jsx(ArrowDownIcon, {
613
+ size: iconSize
614
+ }),
615
+ disabled: disabled || index === currentConfig.columns.length - 1,
616
+ onPress: function onPress() {
617
+ return handleMoveGroupBy(index, 1);
618
+ },
619
+ "aria-label": `Move ${label} down`
620
+ }), /* @__PURE__ */_jsx(Button, {
621
+ size: "$2",
622
+ variant: "outlined",
623
+ icon: /* @__PURE__ */_jsx(MinusIcon, {
624
+ size: iconSize
625
+ }),
626
+ disabled,
627
+ onPress: function onPress() {
628
+ return handleRemoveGroupBy(columnKey);
629
+ },
630
+ "aria-label": `Remove grouping by ${label}`
631
+ })]
494
632
  })]
495
633
  }, columnKey);
496
634
  })
@@ -530,30 +668,45 @@ function DataTableGroupingConfig(props) {
530
668
  })]
531
669
  }), /* Current Aggregations */
532
670
  /* @__PURE__ */_jsx(YStack, {
533
- gap: "$1",
534
671
  children: currentConfig.aggregations.map(function (agg, index) {
535
- return /* @__PURE__ */_jsxs(XStack, {
536
- alignItems: "center",
537
- gap: "$2",
538
- padding: "$2",
539
- backgroundColor: "$color2",
540
- borderRadius: knobProps.borderRadius.borderRadius,
541
- children: [/* @__PURE__ */_jsxs(Text, {
542
- fontSize: "$3",
543
- flex: 1,
544
- children: [agg.function, "(", agg.column, ")", agg.label && ` as "${agg.label}"`]
545
- }), /* @__PURE__ */_jsx(Button, {
546
- size: knobProps.sizeToken,
547
- variant: "outlined",
548
- icon: /* @__PURE__ */_jsx(MinusIcon, {
549
- size: 16
550
- }),
551
- onPress: function onPress() {
552
- return handleRemoveAggregation(index);
672
+ var position = getGroupPosition(index, currentConfig.aggregations.length);
673
+ var corners = stackRadiusProps(position, radius);
674
+ return /* @__PURE__ */_jsxs(YStack, {
675
+ children: [index > 0 ? /* @__PURE__ */_jsx(View, {
676
+ ...hairline.line
677
+ }) : null, /* @__PURE__ */_jsxs(XStack, {
678
+ alignItems: "center",
679
+ gap: "$2",
680
+ padding: "$2",
681
+ overflow: "hidden",
682
+ backgroundColor: "$color2",
683
+ ...corners,
684
+ hoverStyle: {
685
+ backgroundColor: "$backgroundHover",
686
+ ...corners
687
+ },
688
+ ...{
689
+ "data-group-position": position
553
690
  },
554
- "aria-label": `Remove ${agg.function} aggregation on ${agg.column}`
691
+ children: [/* @__PURE__ */_jsxs(Text, {
692
+ fontSize: "$3",
693
+ flex: 1,
694
+ numberOfLines: 1,
695
+ children: [agg.function, "(", agg.column, ")", agg.label && ` as "${agg.label}"`]
696
+ }), /* @__PURE__ */_jsx(Button, {
697
+ size: "$2",
698
+ variant: "outlined",
699
+ icon: /* @__PURE__ */_jsx(MinusIcon, {
700
+ size: iconSize
701
+ }),
702
+ disabled,
703
+ onPress: function onPress() {
704
+ return handleRemoveAggregation(index);
705
+ },
706
+ "aria-label": `Remove ${agg.function} aggregation on ${agg.column}`
707
+ })]
555
708
  })]
556
- }, index);
709
+ }, `${agg.function}-${agg.column}-${index}`);
557
710
  })
558
711
  }), /* Add Aggregation */
559
712
  /* @__PURE__ */_jsx(AggregationSelector, {