@multiplatform.one/table 6.7.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,620 +1,247 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { CalendarBlankIcon, CheckSquareIcon, FunnelIcon, HashIcon, PlusIcon, TextTIcon, XIcon } from "@phosphor-icons/react";
2
+ import { FunnelIcon, PlusIcon } from "@phosphor-icons/react";
3
3
  import { useResolvedKnobs } from "@multiplatform.one/theme";
4
- import { useState, useMemo } from "react";
5
- import { Button, Input, Select } from "@multiplatform.one/forms";
6
- import { Popover, ScrollView, Separator, Text, View, XStack, YStack } from "tamagui";
7
- import { getFilterDescription } from "../../utils/filterUtils.native.js";
4
+ import { useEffect, useState } from "react";
5
+ import { Button, FloatingPanel, Select } from "@multiplatform.one/forms";
6
+ import { Text, View, XStack, YStack } from "tamagui";
7
+ import { defaultOperatorForFilterType, getFilterChipLabel, operatorNeedsNoValue } from "../../utils/filterFields.native.js";
8
8
  import { t } from "../../shared/t.native.js";
9
9
  import { useDataTableState } from "../DataTable/DataTableStateContext.native.js";
10
+ import { FilterChip } from "../DataTableFilterChips/index.native.js";
11
+ import { FilterOperatorValueEditor } from "../FilterOperatorValueEditor/index.native.js";
10
12
  function DataTableFilters(props) {
11
- var _ref, _props_filters, _ref1, _props_onFiltersChange, _ref2, _props_onAddFilter, _ref3, _props_onRemoveFilter, _ref4, _props_onClearFilters, _props_availableColumns;
13
+ var _ref, _props_filters, _ref1, _props_onAddFilter, _ref2, _props_onRemoveFilter, _ref3, _props_onClearFilters, _props_availableColumns, _filters_find;
12
14
  var ctx = useDataTableState();
13
15
  var filters = (_ref = (_props_filters = props.filters) !== null && _props_filters !== void 0 ? _props_filters : ctx === null || ctx === void 0 ? void 0 : ctx.state.filters) !== null && _ref !== void 0 ? _ref : [];
14
- var onFiltersChange = (_ref1 = (_props_onFiltersChange = props.onFiltersChange) !== null && _props_onFiltersChange !== void 0 ? _props_onFiltersChange : ctx === null || ctx === void 0 ? void 0 : ctx.actions.setFilters) !== null && _ref1 !== void 0 ? _ref1 : function () {};
15
- var onAddFilter = (_ref2 = (_props_onAddFilter = props.onAddFilter) !== null && _props_onAddFilter !== void 0 ? _props_onAddFilter : ctx === null || ctx === void 0 ? void 0 : ctx.actions.addFilter) !== null && _ref2 !== void 0 ? _ref2 : function () {};
16
- var onRemoveFilter = (_ref3 = (_props_onRemoveFilter = props.onRemoveFilter) !== null && _props_onRemoveFilter !== void 0 ? _props_onRemoveFilter : ctx === null || ctx === void 0 ? void 0 : ctx.actions.removeFilter) !== null && _ref3 !== void 0 ? _ref3 : function () {};
17
- var onClearFilters = (_ref4 = (_props_onClearFilters = props.onClearFilters) !== null && _props_onClearFilters !== void 0 ? _props_onClearFilters : ctx === null || ctx === void 0 ? void 0 : ctx.actions.clearFilters) !== null && _ref4 !== void 0 ? _ref4 : function () {};
16
+ var onAddFilter = (_ref1 = (_props_onAddFilter = props.onAddFilter) !== null && _props_onAddFilter !== void 0 ? _props_onAddFilter : ctx === null || ctx === void 0 ? void 0 : ctx.actions.addFilter) !== null && _ref1 !== void 0 ? _ref1 : function () {};
17
+ var onRemoveFilter = (_ref2 = (_props_onRemoveFilter = props.onRemoveFilter) !== null && _props_onRemoveFilter !== void 0 ? _props_onRemoveFilter : ctx === null || ctx === void 0 ? void 0 : ctx.actions.removeFilter) !== null && _ref2 !== void 0 ? _ref2 : function () {};
18
+ var onClearFilters = (_ref3 = (_props_onClearFilters = props.onClearFilters) !== null && _props_onClearFilters !== void 0 ? _props_onClearFilters : ctx === null || ctx === void 0 ? void 0 : ctx.actions.clearFilters) !== null && _ref3 !== void 0 ? _ref3 : function () {};
18
19
  var availableColumns = (_props_availableColumns = props.availableColumns) !== null && _props_availableColumns !== void 0 ? _props_availableColumns : [];
19
20
  var {
20
21
  maxFilters = 10,
21
22
  showFilterCount = true,
22
23
  compact = false
23
24
  } = props;
24
- var [showFilterBuilder, setShowFilterBuilder] = useState(false);
25
+ var [builderOpen, setBuilderOpen] = useState(false);
26
+ var [editingId, setEditingId] = useState(null);
25
27
  var {
26
28
  knobProps
27
- } = useResolvedKnobs();
29
+ } = useResolvedKnobs({
30
+ compact
31
+ });
28
32
  var canAddMoreFilters = filters.length < maxFilters;
29
- var handleAddFilter = function handleAddFilter2(filter) {
33
+ var editingFilter = editingId ? (_filters_find = filters.find(function (f) {
34
+ return f.id === editingId;
35
+ })) !== null && _filters_find !== void 0 ? _filters_find : null : null;
36
+ var triggerName = compact ? t("Add Filter") : t("Filter");
37
+ var triggerLabel = showFilterCount && filters.length > 0 ? `${triggerName} (${filters.length})` : triggerName;
38
+ var handleCommit = function handleCommit2(filter) {
39
+ if (editingId) {
40
+ var _ref4, _props_onFiltersChange;
41
+ var updated = filters.map(function (row) {
42
+ return row.id === editingId ? {
43
+ ...row,
44
+ ...filter
45
+ } : row;
46
+ });
47
+ ((_ref4 = (_props_onFiltersChange = props.onFiltersChange) !== null && _props_onFiltersChange !== void 0 ? _props_onFiltersChange : ctx === null || ctx === void 0 ? void 0 : ctx.actions.setFilters) !== null && _ref4 !== void 0 ? _ref4 : function () {})(updated);
48
+ setEditingId(null);
49
+ return;
50
+ }
30
51
  onAddFilter(filter);
31
52
  };
32
- var handleUpdateFilter = function handleUpdateFilter2(filterId, updates) {
33
- var updatedFilters = filters.map(function (filter) {
34
- return filter.id === filterId ? {
35
- ...filter,
36
- ...updates
37
- } : filter;
38
- });
39
- onFiltersChange(updatedFilters);
53
+ var openBuilder = function openBuilder2(filterId) {
54
+ setEditingId(filterId !== null && filterId !== void 0 ? filterId : null);
55
+ setBuilderOpen(true);
56
+ };
57
+ var handleOpenChange = function handleOpenChange2(next) {
58
+ setBuilderOpen(next);
59
+ if (!next) setEditingId(null);
40
60
  };
41
- if (compact) {
42
- return /* @__PURE__ */_jsxs(XStack, {
61
+ var trigger = /* @__PURE__ */_jsx(Button, {
62
+ size: "$3",
63
+ compact: true,
64
+ ...(filters.length > 0 ? {
65
+ accent: true
66
+ } : {
67
+ variant: "outlined"
68
+ }),
69
+ icon: compact ? /* @__PURE__ */_jsx(PlusIcon, {
70
+ size: 14
71
+ }) : /* @__PURE__ */_jsx(FunnelIcon, {
72
+ size: 14,
73
+ weight: filters.length > 0 ? "fill" : "regular"
74
+ }),
75
+ "aria-label": triggerName,
76
+ "aria-expanded": builderOpen,
77
+ "aria-haspopup": "dialog",
78
+ children: triggerLabel
79
+ });
80
+ return /* @__PURE__ */_jsx(YStack, {
81
+ "data-testid": "data-table-filters",
82
+ "aria-label": t("Table filters"),
83
+ "aria-live": "polite",
84
+ children: /* @__PURE__ */_jsxs(XStack, {
85
+ flexWrap: "wrap",
43
86
  alignItems: "center",
44
- gap: "$2",
45
- children: [filters.length > 0 && showFilterCount && /* @__PURE__ */_jsx(View, {
46
- backgroundColor: "$accentBackground",
47
- paddingHorizontal: "$2",
48
- paddingVertical: "$1",
49
- borderRadius: knobProps.borderRadius.borderRadius,
50
- children: /* @__PURE__ */_jsx(Text, {
51
- color: "$accentColor",
52
- fontSize: "$2",
53
- children: filters.length
54
- })
55
- }), /* @__PURE__ */_jsxs(Popover, {
56
- open: showFilterBuilder,
57
- onOpenChange: setShowFilterBuilder,
58
- children: [/* @__PURE__ */_jsx(Popover.Trigger, {
59
- asChild: true,
60
- children: /* @__PURE__ */_jsx(Button, {
61
- size: knobProps.sizeToken,
62
- variant: "outlined",
63
- icon: /* @__PURE__ */_jsx(PlusIcon, {
64
- size: 16
65
- }),
66
- disabled: !canAddMoreFilters,
67
- children: t("Add Filter")
68
- })
69
- }), /* @__PURE__ */_jsx(Popover.Content, {
70
- ...knobProps.borderRadius,
71
- borderWidth: 1,
72
- borderColor: "$color6",
73
- backgroundColor: "$background",
74
- enterStyle: {
75
- x: 0,
76
- y: -10,
77
- opacity: 0
78
- },
79
- exitStyle: {
80
- x: 0,
81
- y: -10,
82
- opacity: 0
83
- },
84
- transition: ["quick", {
85
- opacity: {
86
- overshootClamping: true
87
- }
88
- }],
87
+ ...knobProps.gap,
88
+ children: [/* @__PURE__ */_jsx(View, {
89
+ alignSelf: "flex-start",
90
+ flexShrink: 0,
91
+ children: /* @__PURE__ */_jsx(FloatingPanel, {
92
+ open: builderOpen,
93
+ onOpenChange: handleOpenChange,
94
+ trigger,
95
+ fitContent: true,
96
+ scrollable: false,
89
97
  children: /* @__PURE__ */_jsx(FilterBuilder, {
90
98
  availableColumns,
91
- onAddFilter: handleAddFilter,
99
+ editingFilter,
100
+ onCommit: handleCommit,
92
101
  onCancel: function onCancel() {
93
- return setShowFilterBuilder(false);
94
- }
102
+ return handleOpenChange(false);
103
+ },
104
+ canAdd: canAddMoreFilters || !!editingFilter
95
105
  })
96
- })]
97
- }), filters.length > 0 && /* @__PURE__ */_jsx(Button, {
98
- size: knobProps.sizeToken,
99
- variant: "outlined",
106
+ })
107
+ }), !compact && filters.map(function (filter) {
108
+ var _ref4, _ref12;
109
+ var column = availableColumns.find(function (col) {
110
+ return col.id === filter.columnId;
111
+ });
112
+ var label = getFilterChipLabel((_ref4 = (_ref12 = column === null || column === void 0 ? void 0 : column.label) !== null && _ref12 !== void 0 ? _ref12 : filter.label) !== null && _ref4 !== void 0 ? _ref4 : filter.columnId, filter.value, column === null || column === void 0 ? void 0 : column.options);
113
+ return /* @__PURE__ */_jsx(FilterChip, {
114
+ label,
115
+ onRemove: function onRemove() {
116
+ return onRemoveFilter(filter.id);
117
+ },
118
+ onPress: function onPress() {
119
+ return openBuilder(filter.id);
120
+ }
121
+ }, filter.id);
122
+ }), compact && filters.length > 0 && /* @__PURE__ */_jsx(Button, {
123
+ size: "$2",
124
+ chromeless: true,
125
+ compact: true,
100
126
  onPress: onClearFilters,
101
- icon: /* @__PURE__ */_jsx(XIcon, {
102
- size: 16
103
- }),
127
+ "aria-label": t("Clear"),
104
128
  children: t("Clear")
129
+ }), !compact && filters.length >= 2 && /* @__PURE__ */_jsx(Button, {
130
+ size: "$2",
131
+ chromeless: true,
132
+ compact: true,
133
+ onPress: onClearFilters,
134
+ "aria-label": t("Clear all"),
135
+ children: t("Clear all")
105
136
  })]
106
- });
107
- }
108
- return /* @__PURE__ */_jsxs(YStack, {
109
- ...knobProps.borderRadius,
110
- gap: "$4",
111
- padding: "$4",
112
- backgroundColor: "$background",
113
- borderWidth: 1,
114
- borderColor: "$color6",
115
- "aria-label": "Table filters",
116
- "aria-live": "polite",
117
- children: [/* Header */
118
- /* @__PURE__ */_jsxs(XStack, {
119
- alignItems: "center",
120
- justifyContent: "space-between",
121
- children: [/* @__PURE__ */_jsxs(XStack, {
122
- alignItems: "center",
123
- gap: "$2",
124
- children: [/* @__PURE__ */_jsx(FunnelIcon, {
125
- size: 16,
126
- "aria-hidden": true
127
- }), /* @__PURE__ */_jsx(Text, {
128
- fontSize: "$4",
129
- fontWeight: "600",
130
- id: "filters-heading",
131
- children: t("Filters")
132
- }), showFilterCount && filters.length > 0 && /* @__PURE__ */_jsx(View, {
133
- backgroundColor: "$accentBackground",
134
- paddingHorizontal: "$2",
135
- paddingVertical: "$1",
136
- borderRadius: knobProps.borderRadius.borderRadius,
137
- "aria-label": `${filters.length} active filters`,
138
- children: /* @__PURE__ */_jsx(Text, {
139
- color: "$accentColor",
140
- fontSize: "$2",
141
- children: filters.length
142
- })
143
- })]
144
- }), /* @__PURE__ */_jsxs(XStack, {
145
- ...{
146
- render: "fieldset"
147
- },
148
- borderWidth: 0,
149
- margin: 0,
150
- padding: 0,
151
- minWidth: 0,
152
- alignItems: "center",
153
- gap: "$2",
154
- "aria-label": "Filter management actions",
155
- children: [/* @__PURE__ */_jsxs(Popover, {
156
- open: showFilterBuilder,
157
- onOpenChange: setShowFilterBuilder,
158
- children: [/* @__PURE__ */_jsx(Popover.Trigger, {
159
- asChild: true,
160
- children: /* @__PURE__ */_jsx(Button, {
161
- size: knobProps.sizeToken,
162
- variant: "outlined",
163
- icon: /* @__PURE__ */_jsx(PlusIcon, {
164
- size: 16
165
- }),
166
- disabled: !canAddMoreFilters,
167
- "aria-label": "Add new filter",
168
- "aria-expanded": showFilterBuilder,
169
- "aria-haspopup": "dialog",
170
- children: t("Add Filter")
171
- })
172
- }), /* @__PURE__ */_jsx(Popover.Content, {
173
- ...knobProps.borderRadius,
174
- borderWidth: 1,
175
- borderColor: "$color6",
176
- backgroundColor: "$background",
177
- enterStyle: {
178
- x: 0,
179
- y: -10,
180
- opacity: 0
181
- },
182
- exitStyle: {
183
- x: 0,
184
- y: -10,
185
- opacity: 0
186
- },
187
- transition: ["quick", {
188
- opacity: {
189
- opacity: {
190
- overshootClamping: true
191
- }
192
- }
193
- }],
194
- maxWidth: 400,
195
- children: /* @__PURE__ */_jsx(FilterBuilder, {
196
- availableColumns,
197
- onAddFilter: handleAddFilter,
198
- onCancel: function onCancel() {
199
- return setShowFilterBuilder(false);
200
- }
201
- })
202
- })]
203
- }), filters.length > 0 && /* @__PURE__ */_jsx(Button, {
204
- size: knobProps.sizeToken,
205
- variant: "outlined",
206
- onPress: onClearFilters,
207
- icon: /* @__PURE__ */_jsx(XIcon, {
208
- size: 16
209
- }),
210
- "aria-label": "Clear all filters",
211
- children: t("Clear All")
212
- })]
213
- })]
214
- }), /* @__PURE__ */_jsx(Separator, {}), /* Active Filters */
215
- filters.length > 0 ? /* @__PURE__ */_jsx(ScrollView, {
216
- maxHeight: 200,
217
- children: /* @__PURE__ */_jsx(YStack, {
218
- ...{
219
- render: "ul"
220
- },
221
- gap: "$2",
222
- padding: 0,
223
- margin: 0,
224
- "aria-label": "Active filters",
225
- "aria-describedby": "filters-heading",
226
- children: filters.map(function (filter, index) {
227
- return /* @__PURE__ */_jsx(ActiveFilter, {
228
- filter,
229
- availableColumns,
230
- onUpdate: function onUpdate(updates) {
231
- return handleUpdateFilter(filter.id, updates);
232
- },
233
- onRemove: function onRemove() {
234
- return onRemoveFilter(filter.id);
235
- },
236
- index
237
- }, filter.id);
238
- })
239
- })
240
- }) : /* @__PURE__ */_jsx(View, {
241
- ...{
242
- render: "output"
243
- },
244
- padding: "$4",
245
- alignItems: "center",
246
- "aria-live": "polite",
247
- children: /* @__PURE__ */_jsx(Text, {
248
- fontSize: "$3",
249
- color: "$color10",
250
- children: t("No filters applied")
251
- })
252
- })]
137
+ })
253
138
  });
254
139
  }
255
140
  function FilterBuilder(param) {
256
141
  var {
257
142
  availableColumns,
258
- onAddFilter,
259
- onCancel
143
+ editingFilter,
144
+ onCommit,
145
+ onCancel,
146
+ canAdd
260
147
  } = param;
261
148
  var {
262
149
  knobProps
263
- } = useResolvedKnobs();
264
- var sz = knobProps.sizeToken;
265
- var builderMinWidth = sz === "$3" ? 240 : sz === "$5" ? 360 : 300;
150
+ } = useResolvedKnobs({
151
+ compact: true
152
+ });
266
153
  var [selectedColumnId, setSelectedColumnId] = useState("");
267
- var [selectedOperator, setSelectedOperator] = useState("is");
154
+ var [selectedOperator, setSelectedOperator] = useState("contains");
268
155
  var [filterValue, setFilterValue] = useState("");
269
- var [filterValues, setFilterValues] = useState([]);
270
156
  var selectedColumn = availableColumns.find(function (col) {
271
157
  return col.id === selectedColumnId;
272
158
  });
273
- var availableOperators = useMemo(function () {
274
- if (!selectedColumn) return [];
275
- var baseOperators = ["is", "isNot"];
276
- switch (selectedColumn.type) {
277
- case "text":
278
- return [...baseOperators, "contains", "doesNotContain", "startsWith", "endsWith", "isEmpty", "isNotEmpty"];
279
- case "number":
280
- return [...baseOperators, "isLessThan", "isGreaterThan", "isLessThanOrEqual", "isGreaterThanOrEqual", "isBetween", "isNotBetween"];
281
- case "date":
282
- return [...baseOperators, "isBefore", "isAfter", "isOnOrBefore", "isOnOrAfter", "isBetween", "isNotBetween"];
283
- case "boolean":
284
- return baseOperators;
285
- default:
286
- return baseOperators;
159
+ useEffect(function () {
160
+ if (editingFilter) {
161
+ var _editingFilter_value_value;
162
+ setSelectedColumnId(editingFilter.columnId);
163
+ setSelectedOperator(editingFilter.value.operator);
164
+ setFilterValue(String((_editingFilter_value_value = editingFilter.value.value) !== null && _editingFilter_value_value !== void 0 ? _editingFilter_value_value : ""));
165
+ return;
287
166
  }
288
- }, [selectedColumn]);
289
- var columnOptions = useMemo(function () {
290
- return availableColumns.map(function (col) {
291
- return {
292
- value: col.id,
293
- label: col.label
294
- };
295
- });
296
- }, [availableColumns]);
297
- var operatorOptions = useMemo(function () {
298
- return availableOperators.map(function (op) {
299
- return {
300
- value: op,
301
- label: getOperatorLabel(op)
302
- };
303
- });
304
- }, [availableOperators]);
305
- var handleAddFilter = function handleAddFilter2() {
167
+ setSelectedColumnId("");
168
+ setSelectedOperator("contains");
169
+ setFilterValue("");
170
+ }, [editingFilter]);
171
+ var columnOptions = availableColumns.map(function (col) {
172
+ return {
173
+ value: col.id,
174
+ label: col.label
175
+ };
176
+ });
177
+ var handleCommit = function handleCommit2() {
306
178
  if (!selectedColumnId || !selectedOperator) return;
307
- var filterValueObj = {
179
+ var value = {
308
180
  operator: selectedOperator,
309
- value: null
181
+ value: operatorNeedsNoValue(selectedOperator) ? null : filterValue
310
182
  };
311
- if (["isBetween", "isNotBetween"].includes(selectedOperator)) {
312
- filterValueObj.values = filterValues;
313
- } else if (["isAnyOf", "isNoneOf"].includes(selectedOperator)) {
314
- filterValueObj.values = filterValues;
315
- } else if (!["isEmpty", "isNotEmpty"].includes(selectedOperator)) {
316
- filterValueObj.value = filterValue;
317
- }
318
- onAddFilter({
183
+ onCommit({
319
184
  columnId: selectedColumnId,
320
- value: filterValueObj,
185
+ value,
321
186
  label: selectedColumn === null || selectedColumn === void 0 ? void 0 : selectedColumn.label
322
187
  });
323
188
  setSelectedColumnId("");
324
- setSelectedOperator("is");
189
+ setSelectedOperator("contains");
325
190
  setFilterValue("");
326
- setFilterValues([]);
327
- };
328
- var renderValueInput = function renderValueInput2() {
329
- if (!selectedColumn || ["isEmpty", "isNotEmpty"].includes(selectedOperator)) {
330
- return null;
331
- }
332
- if (["isBetween", "isNotBetween"].includes(selectedOperator)) {
333
- return /* @__PURE__ */_jsxs(XStack, {
334
- gap: "$2",
335
- children: [/* @__PURE__ */_jsx(Input, {
336
- placeholder: t("Min value"),
337
- value: filterValues[0] || "",
338
- onChangeText: function onChangeText(text) {
339
- var newValues = [...filterValues];
340
- newValues[0] = text;
341
- setFilterValues(newValues);
342
- }
343
- }), /* @__PURE__ */_jsx(Input, {
344
- placeholder: t("Max value"),
345
- value: filterValues[1] || "",
346
- onChangeText: function onChangeText(text) {
347
- var newValues = [...filterValues];
348
- newValues[1] = text;
349
- setFilterValues(newValues);
350
- }
351
- })]
352
- });
353
- }
354
- if (["isAnyOf", "isNoneOf"].includes(selectedOperator)) {
355
- if (selectedColumn.options) {
356
- return /* @__PURE__ */_jsx(ScrollView, {
357
- maxHeight: 120,
358
- children: /* @__PURE__ */_jsx(YStack, {
359
- gap: "$1",
360
- children: selectedColumn.options.map(function (option) {
361
- return /* @__PURE__ */_jsxs(XStack, {
362
- alignItems: "center",
363
- gap: "$2",
364
- children: [/* @__PURE__ */_jsx("input", {
365
- type: "checkbox",
366
- checked: filterValues.includes(option.value),
367
- onChange: function onChange(e) {
368
- if (e.target.checked) {
369
- setFilterValues([...filterValues, option.value]);
370
- } else {
371
- setFilterValues(filterValues.filter(function (v) {
372
- return v !== option.value;
373
- }));
374
- }
375
- }
376
- }), /* @__PURE__ */_jsx(Text, {
377
- fontSize: "$3",
378
- children: option.label
379
- }), /* @__PURE__ */_jsx(View, {
380
- backgroundColor: "$color5",
381
- paddingHorizontal: "$1",
382
- paddingVertical: "$0.5",
383
- borderRadius: "$1",
384
- children: /* @__PURE__ */_jsx(Text, {
385
- color: "$color10",
386
- fontSize: "$1",
387
- children: option.count
388
- })
389
- })]
390
- }, String(option.value));
391
- })
392
- })
393
- });
394
- }
395
- return /* @__PURE__ */_jsx(Input, {
396
- placeholder: t("Enter values separated by commas"),
397
- value: filterValues.join(", "),
398
- onChangeText: function onChangeText(text) {
399
- setFilterValues(text.split(",").map(function (v) {
400
- return v.trim();
401
- }));
402
- }
403
- });
404
- }
405
- if (selectedColumn.type === "date") {
406
- return /* @__PURE__ */_jsx(Input, {
407
- label: t("Value"),
408
- placeholder: t("YYYY-MM-DD"),
409
- value: filterValue,
410
- onChangeText: setFilterValue
411
- });
412
- }
413
- if (selectedColumn.type === "boolean") {
414
- return /* @__PURE__ */_jsx(Select, {
415
- label: t("Value"),
416
- value: filterValue,
417
- onValueChange: function onValueChange(v) {
418
- if (typeof v === "string") {
419
- setFilterValue(v);
420
- }
421
- },
422
- options: [{
423
- value: "true",
424
- label: t("True")
425
- }, {
426
- value: "false",
427
- label: t("False")
428
- }],
429
- placeholder: t("Select value")
430
- });
431
- }
432
- if (selectedColumn.options) {
433
- return /* @__PURE__ */_jsx(Select, {
434
- label: t("Value"),
435
- value: filterValue,
436
- onValueChange: function onValueChange(v) {
437
- if (typeof v === "string") {
438
- setFilterValue(v);
439
- }
440
- },
441
- options: selectedColumn.options.map(function (option) {
442
- return {
443
- value: option.value.toString(),
444
- label: option.label
445
- };
446
- }),
447
- placeholder: t("Select value")
448
- });
449
- }
450
- return /* @__PURE__ */_jsx(Input, {
451
- label: t("Value"),
452
- placeholder: t("Enter value"),
453
- value: filterValue,
454
- onChangeText: setFilterValue,
455
- ...(selectedColumn.type === "number" && {
456
- keyboardType: "numeric"
457
- })
458
- });
459
191
  };
460
192
  return /* @__PURE__ */_jsxs(YStack, {
461
193
  ...knobProps.panelPadding,
462
- gap: "$4",
463
- minWidth: builderMinWidth,
194
+ gap: "$3",
195
+ minWidth: 280,
196
+ maxWidth: 360,
464
197
  children: [/* @__PURE__ */_jsx(Text, {
465
- fontSize: "$4",
198
+ fontSize: "$3",
466
199
  fontWeight: "600",
467
- children: t("Add Filter")
468
- }), /* Column Selection */
469
- /* @__PURE__ */_jsx(Select, {
200
+ color: "$color12",
201
+ children: editingFilter ? t("Edit filter") : t("Add filter")
202
+ }), /* @__PURE__ */_jsx(Select, {
470
203
  label: t("Column"),
471
204
  value: selectedColumnId,
472
205
  onValueChange: function onValueChange(v) {
473
- if (typeof v === "string") {
474
- setSelectedColumnId(v);
475
- }
206
+ var _ref;
207
+ if (typeof v !== "string") return;
208
+ setSelectedColumnId(v);
209
+ var col = availableColumns.find(function (c) {
210
+ return c.id === v;
211
+ });
212
+ setSelectedOperator(defaultOperatorForFilterType((_ref = col === null || col === void 0 ? void 0 : col.type) !== null && _ref !== void 0 ? _ref : "text"));
213
+ setFilterValue("");
476
214
  },
477
215
  options: columnOptions,
478
- placeholder: t("Select column")
479
- }), /* Operator Selection */
480
- selectedColumnId && /* @__PURE__ */_jsx(Select, {
481
- label: t("Condition"),
482
- value: selectedOperator,
483
- onValueChange: function onValueChange(v) {
484
- if (typeof v === "string") {
485
- setSelectedOperator(v);
486
- }
487
- },
488
- options: operatorOptions
489
- }), /* Value Input */
490
- selectedColumnId && renderValueInput(), /* Actions */
491
- /* @__PURE__ */_jsxs(XStack, {
216
+ placeholder: t("Select column"),
217
+ size: "$3",
218
+ compact: true
219
+ }), selectedColumn ? /* @__PURE__ */_jsx(FilterOperatorValueEditor, {
220
+ fieldType: selectedColumn.type,
221
+ operator: selectedOperator,
222
+ value: filterValue,
223
+ onOperatorChange: setSelectedOperator,
224
+ onValueChange: setFilterValue,
225
+ options: selectedColumn.options
226
+ }) : null, /* @__PURE__ */_jsxs(XStack, {
492
227
  gap: "$2",
493
228
  justifyContent: "flex-end",
494
229
  children: [/* @__PURE__ */_jsx(Button, {
495
- size: knobProps.sizeToken,
230
+ size: "$3",
231
+ compact: true,
496
232
  variant: "outlined",
497
233
  onPress: onCancel,
498
234
  children: t("Cancel")
499
235
  }), /* @__PURE__ */_jsx(Button, {
500
- size: knobProps.sizeToken,
501
- onPress: handleAddFilter,
502
- disabled: !selectedColumnId || !selectedOperator,
503
- children: t("Add Filter")
236
+ size: "$3",
237
+ compact: true,
238
+ accent: true,
239
+ onPress: handleCommit,
240
+ disabled: !selectedColumnId || !selectedOperator || !canAdd,
241
+ children: editingFilter ? t("Update") : t("Add filter")
504
242
  })]
505
243
  })]
506
244
  });
507
245
  }
508
- function ActiveFilter(param) {
509
- var {
510
- filter,
511
- availableColumns,
512
- onUpdate: _onUpdate,
513
- onRemove,
514
- index
515
- } = param;
516
- var {
517
- knobProps
518
- } = useResolvedKnobs();
519
- var column = availableColumns.find(function (col) {
520
- return col.id === filter.columnId;
521
- });
522
- return /* @__PURE__ */_jsxs(XStack, {
523
- ...{
524
- render: "li"
525
- },
526
- alignItems: "center",
527
- justifyContent: "space-between",
528
- padding: "$3",
529
- backgroundColor: "$color2",
530
- ...knobProps.borderRadius,
531
- borderColor: "$color6",
532
- "aria-label": `Filter ${index + 1}: ${getFilterDescription(filter)}`,
533
- children: [/* @__PURE__ */_jsxs(XStack, {
534
- alignItems: "center",
535
- gap: "$2",
536
- flex: 1,
537
- children: [/* @__PURE__ */_jsx(ColumnTypeIcon, {
538
- type: (column === null || column === void 0 ? void 0 : column.type) || "text",
539
- size: 14
540
- }), /* @__PURE__ */_jsx(Text, {
541
- fontSize: "$3",
542
- color: "$color10",
543
- children: getFilterDescription(filter)
544
- })]
545
- }), /* @__PURE__ */_jsx(Button, {
546
- size: "$2",
547
- variant: "outlined",
548
- onPress: onRemove,
549
- icon: /* @__PURE__ */_jsx(XIcon, {
550
- size: 16
551
- }),
552
- "aria-label": `Remove filter: ${getFilterDescription(filter)}`
553
- })]
554
- });
555
- }
556
- function ColumnTypeIcon(param) {
557
- var {
558
- type,
559
- size
560
- } = param;
561
- switch (type) {
562
- case "text":
563
- return /* @__PURE__ */_jsx(TextTIcon, {
564
- size,
565
- color: "$color10"
566
- });
567
- case "number":
568
- return /* @__PURE__ */_jsx(HashIcon, {
569
- size,
570
- color: "$color10"
571
- });
572
- case "date":
573
- return /* @__PURE__ */_jsx(CalendarBlankIcon, {
574
- size,
575
- color: "$color10"
576
- });
577
- case "boolean":
578
- return /* @__PURE__ */_jsx(CheckSquareIcon, {
579
- size,
580
- color: "$color10"
581
- });
582
- default:
583
- return /* @__PURE__ */_jsx(TextTIcon, {
584
- size,
585
- color: "$color10"
586
- });
587
- }
588
- }
589
- function getOperatorLabel(operator) {
590
- var labels = {
591
- // Text
592
- contains: "Contains",
593
- doesNotContain: "Does not contain",
594
- is: "Is",
595
- isNot: "Is not",
596
- startsWith: "Starts with",
597
- endsWith: "Ends with",
598
- isEmpty: "Is empty",
599
- isNotEmpty: "Is not empty",
600
- // Number
601
- isLessThan: "Is less than",
602
- isGreaterThan: "Is greater than",
603
- isLessThanOrEqual: "Is less than or equal to",
604
- isGreaterThanOrEqual: "Is greater than or equal to",
605
- isBetween: "Is between",
606
- isNotBetween: "Is not between",
607
- // Date
608
- isBefore: "Is before",
609
- isAfter: "Is after",
610
- isOnOrBefore: "Is on or before",
611
- isOnOrAfter: "Is on or after",
612
- // Option
613
- isAnyOf: "Is any of",
614
- isNoneOf: "Is none of"
615
- };
616
- var label = labels[operator];
617
- return label ? t(label) : operator;
618
- }
619
246
  export { DataTableFilters };
620
247
  //# sourceMappingURL=index.native.js.map