@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,13 +1,16 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { CaretDownIcon, GearIcon } from "@phosphor-icons/react";
3
- import { useResolvedKnobs } from "@multiplatform.one/theme";
4
- import { useCallback, useEffect, useMemo, useState } from "react";
2
+ import { SlidersHorizontalIcon } from "@phosphor-icons/react";
3
+ import { sizeRecipeForToken, useResolvedKnobs } from "@multiplatform.one/theme";
4
+ import { useCallback, useEffect, useId, useMemo, useRef, useState } from "react";
5
5
  import { PopoverContent } from "@multiplatform.one/components";
6
- import { Button, Checkbox, SearchInput } from "@multiplatform.one/forms";
7
- import { Popover, ScrollView, Separator, Text, View, XStack, YStack } from "tamagui";
6
+ import { Button, Checkbox, SearchInput, formCommonColors } from "@multiplatform.one/forms";
7
+ import { Popover, ScrollView, Separator, Text, View, XStack, YStack, isWeb } from "tamagui";
8
8
  import { useDataTableState } from "../DataTable/DataTableStateContext.native.js";
9
9
  import { t } from "../../shared/t.native.js";
10
10
  import { bidiIsolate } from "../../utils/withInterp.native.js";
11
+ var iconSizeForToken = function iconSizeForToken2(token) {
12
+ return sizeRecipeForToken(token).iconSize;
13
+ };
11
14
  function DataTableSearch(props) {
12
15
  var _ref, _props_data, _props_columns;
13
16
  var ctx = useDataTableState();
@@ -15,6 +18,7 @@ function DataTableSearch(props) {
15
18
  var columns = (_props_columns = props.columns) !== null && _props_columns !== void 0 ? _props_columns : [];
16
19
  var {
17
20
  onSearchResults,
21
+ onHighlightText,
18
22
  placeholder = t("Search across all columns..."),
19
23
  debounceMs = 300,
20
24
  showAdvancedOptions = true,
@@ -26,6 +30,9 @@ function DataTableSearch(props) {
26
30
  } = useResolvedKnobs();
27
31
  var sz = knobProps.sizeToken;
28
32
  var searchMaxWidth = sz === "$3" ? 320 : sz === "$5" ? 480 : 400;
33
+ var iconPx = iconSizeForToken(String(sz));
34
+ var resultsId = useId();
35
+ var rootRef = useRef(null);
29
36
  var [searchTerm, setSearchTerm] = useState("");
30
37
  var [debouncedSearchTerm, setDebouncedSearchTerm] = useState("");
31
38
  var [searchOptions, setSearchOptions] = useState({
@@ -38,23 +45,47 @@ function DataTableSearch(props) {
38
45
  regex: false,
39
46
  highlightResults: true
40
47
  });
48
+ var compiled = useMemo(function () {
49
+ return compileSearchPattern({
50
+ ...searchOptions,
51
+ searchTerm: debouncedSearchTerm
52
+ });
53
+ }, [searchOptions, debouncedSearchTerm]);
54
+ var results = useMemo(function () {
55
+ if (!debouncedSearchTerm.trim()) return data;
56
+ if (compiled.invalid || !compiled.regex) return [];
57
+ return matchRows(data, searchOptions.columns, compiled.regex);
58
+ }, [data, debouncedSearchTerm, compiled, searchOptions.columns]);
59
+ useEffect(function () {
60
+ onSearchResults === null || onSearchResults === void 0 ? void 0 : onSearchResults(results, {
61
+ ...searchOptions,
62
+ searchTerm: debouncedSearchTerm
63
+ });
64
+ }, [results, data, searchOptions, debouncedSearchTerm, onSearchResults]);
41
65
  useEffect(function () {
42
- if (debouncedSearchTerm.trim()) {
43
- var results = performSearch(data, {
44
- ...searchOptions,
45
- searchTerm: debouncedSearchTerm
46
- });
47
- onSearchResults === null || onSearchResults === void 0 ? void 0 : onSearchResults(results, {
48
- ...searchOptions,
49
- searchTerm: debouncedSearchTerm
50
- });
66
+ if (!onHighlightText) return;
67
+ if (searchOptions.highlightResults && debouncedSearchTerm.trim() && !compiled.invalid) {
68
+ onHighlightText(debouncedSearchTerm);
51
69
  } else {
52
- onSearchResults === null || onSearchResults === void 0 ? void 0 : onSearchResults(data, {
53
- ...searchOptions,
54
- searchTerm: ""
55
- });
70
+ onHighlightText("");
56
71
  }
57
- }, [debouncedSearchTerm, data, searchOptions, onSearchResults]);
72
+ }, [debouncedSearchTerm, searchOptions.highlightResults, compiled.invalid, onHighlightText]);
73
+ useEffect(function () {
74
+ if (!isWeb || disabled) return;
75
+ var onKey = function onKey2(e) {
76
+ var _rootRef_current_querySelector, _rootRef_current;
77
+ if (e.key !== "/" || e.metaKey || e.ctrlKey || e.altKey || e.isComposing) return;
78
+ var target = e.target;
79
+ if (target === null || target === void 0 ? void 0 : target.closest("input, textarea, select, [contenteditable=true]")) return;
80
+ e.preventDefault();
81
+ var field = (_rootRef_current = rootRef.current) === null || _rootRef_current === void 0 ? void 0 : (_rootRef_current_querySelector = _rootRef_current.querySelector) === null || _rootRef_current_querySelector === void 0 ? void 0 : _rootRef_current_querySelector.call(_rootRef_current, "[role='searchbox']");
82
+ field === null || field === void 0 ? void 0 : field.focus();
83
+ };
84
+ window.addEventListener("keydown", onKey);
85
+ return function () {
86
+ return window.removeEventListener("keydown", onKey);
87
+ };
88
+ }, [disabled]);
58
89
  var handleOptionsChange = function handleOptionsChange2(newOptions) {
59
90
  setSearchOptions(function (prev) {
60
91
  return {
@@ -68,44 +99,66 @@ function DataTableSearch(props) {
68
99
  });
69
100
  var selectedColumnCount = searchOptions.columns.length;
70
101
  var totalColumnCount = searchableColumns.length;
102
+ var optionsActive = searchOptions.caseSensitive || searchOptions.wholeWord || searchOptions.regex || !searchOptions.highlightResults || selectedColumnCount !== totalColumnCount;
103
+ var isSearching = searchTerm !== debouncedSearchTerm;
104
+ var showStatus = Boolean(debouncedSearchTerm.trim());
71
105
  return /* @__PURE__ */_jsxs(XStack, {
72
- gap: "$2",
106
+ ref: rootRef,
107
+ // role="search" is a valid ARIA landmark role but outside RN's `Role`
108
+ // union; this web-only bag forwards it to the DOM node (house Record
109
+ // cast).
110
+ ...{
111
+ role: "search"
112
+ },
113
+ "aria-busy": isSearching || void 0,
114
+ ...knobProps.gap,
73
115
  alignItems: "center",
74
116
  flex: 1,
75
117
  maxWidth: searchMaxWidth,
76
- children: [/* @__PURE__ */_jsx(View, {
118
+ children: [
119
+ /* LC-71: SearchInput is the whole search box — ring lives on its
120
+ Input.Box (magnifier + field + clear). Do not fork or wrap the
121
+ field in extra chrome that would split that boundary. */
122
+ /* @__PURE__ */
123
+ _jsx(View, {
77
124
  flex: 1,
78
- children: (
79
- /* Catalog SearchInput (census item 6): owns the debounce and the
80
- icon + field + clear anatomy this file used to re-compose. */
81
- /* @__PURE__ */
82
- _jsx(SearchInput, {
125
+ minWidth: 0,
126
+ children: /* @__PURE__ */_jsx(SearchInput, {
83
127
  value: searchTerm,
84
128
  onChange: setSearchTerm,
85
129
  onSearch: setDebouncedSearchTerm,
86
130
  debounceMs,
87
131
  placeholder,
88
- disabled
89
- }))
132
+ disabled,
133
+ size: sz,
134
+ "aria-label": t("Search table"),
135
+ inputProps: {
136
+ "aria-describedby": showStatus ? resultsId : void 0,
137
+ "aria-keyshortcuts": "/",
138
+ "aria-invalid": compiled.invalid || void 0
139
+ }
140
+ })
90
141
  }), showAdvancedOptions && /* @__PURE__ */_jsx(SearchOptionsPopover, {
91
142
  searchOptions,
92
143
  onOptionsChange: handleOptionsChange,
93
144
  columns: searchableColumns,
94
145
  selectedColumnCount,
95
146
  totalColumnCount,
96
- disabled
97
- }), debouncedSearchTerm ? /* @__PURE__ */_jsx(View, {
98
- paddingHorizontal: "$2",
99
- children: /* @__PURE__ */_jsx(Text, {
100
- fontSize: "$2",
101
- color: "$color10",
102
- children: t("{{count}} results", {
103
- count: performSearch(data, {
104
- ...searchOptions,
105
- searchTerm: debouncedSearchTerm
106
- }).length
107
- })
108
- })
147
+ disabled,
148
+ iconPx,
149
+ optionsActive
150
+ }), showStatus ? /* @__PURE__ */_jsx(Text, {
151
+ id: resultsId,
152
+ role: "status",
153
+ "aria-live": "polite",
154
+ "aria-atomic": "true",
155
+ ...knobProps.label,
156
+ color: compiled.invalid ? formCommonColors.error : formCommonColors.muted,
157
+ flexShrink: 0,
158
+ children: compiled.invalid ? t("Invalid regex") : bidiIsolate(t("{{shown}} of {{total}}", {
159
+ shown: results.length,
160
+ total: data.length
161
+ }))
109
162
  }) : null]
110
163
  });
111
164
  }
@@ -116,231 +169,217 @@ function SearchOptionsPopover(param) {
116
169
  columns,
117
170
  selectedColumnCount,
118
171
  totalColumnCount,
119
- disabled
172
+ disabled,
173
+ iconPx,
174
+ optionsActive
120
175
  } = param;
121
176
  var {
122
177
  knobProps
123
178
  } = useResolvedKnobs();
124
- var [columnVisibility, setColumnVisibility] = useState(function () {
125
- var visibility = {};
126
- columns.forEach(function (col) {
127
- var key = col.accessorKey || col.id || "";
128
- visibility[key] = searchOptions.columns.includes(key);
129
- });
130
- return visibility;
131
- });
179
+ var [open, setOpen] = useState(false);
132
180
  var handleColumnToggle = function handleColumnToggle2(columnKey, checked) {
133
- var newVisibility = {
134
- ...columnVisibility,
135
- [columnKey]: checked
136
- };
137
- setColumnVisibility(newVisibility);
138
- var selectedColumns = Object.entries(newVisibility).filter(function (param2) {
139
- var [_, isVisible] = param2;
140
- return isVisible;
141
- }).map(function (param2) {
142
- var [key] = param2;
143
- return key;
181
+ var next = checked ? Array.from(/* @__PURE__ */new Set([...searchOptions.columns, columnKey])) : searchOptions.columns.filter(function (key) {
182
+ return key !== columnKey;
144
183
  });
145
184
  onOptionsChange({
146
- columns: selectedColumns
185
+ columns: next
147
186
  });
148
187
  };
149
188
  var handleSelectAllColumns = function handleSelectAllColumns2() {
150
- var allColumns = columns.map(function (col) {
151
- return col.accessorKey || col.id || "";
152
- });
153
- setColumnVisibility(Object.fromEntries(allColumns.map(function (key) {
154
- return [key, true];
155
- })));
156
189
  onOptionsChange({
157
- columns: allColumns
190
+ columns: columns.map(function (col) {
191
+ return col.accessorKey || col.id || "";
192
+ })
158
193
  });
159
194
  };
160
195
  var handleSelectNoColumns = function handleSelectNoColumns2() {
161
- setColumnVisibility(Object.fromEntries(columns.map(function (col) {
162
- return [col.accessorKey || col.id || "", false];
163
- })));
164
196
  onOptionsChange({
165
197
  columns: []
166
198
  });
167
199
  };
168
200
  var sz = knobProps.sizeToken;
169
201
  var panelMaxHeight = sz === "$3" ? 320 : sz === "$5" ? 480 : 400;
170
- return (
171
- // LC-06: anchored popover with collision handling — flip, shift, and
172
- // clamp inside the viewport (`resize` is a no-op on native).
173
- /* @__PURE__ */
174
- _jsxs(Popover, {
175
- stayInFrame: true,
176
- allowFlip: true,
177
- resize: true,
178
- children: [/* @__PURE__ */_jsx(Popover.Trigger, {
179
- asChild: true,
180
- children: /* @__PURE__ */_jsx(Button, {
181
- size: knobProps.sizeToken,
182
- variant: "outlined",
183
- icon: /* @__PURE__ */_jsx(GearIcon, {
184
- size: 16
185
- }),
186
- disabled,
187
- "aria-label": t("Search options"),
188
- children: /* @__PURE__ */_jsx(CaretDownIcon, {
189
- size: 16
190
- })
191
- })
192
- }),
193
- /* SF-OVERLAY/E-OVERLAY: canonical elevated overlay (complete
194
- elevatedSurface knob fragment + transition). The frame owns only
195
- its border (inset lives on the panel YStack below); overflow
196
- hidden clips the scroll region to the radius knob. */
197
- /* @__PURE__ */
198
- _jsx(PopoverContent, {
199
- padding: 0,
200
- overflow: "hidden",
201
- alignItems: "stretch",
202
- minWidth: 280,
203
- children: (
204
- /* LC-10: when clamped below content height the body scrolls
205
- internally — rows are never sliced at the frame edge. */
206
- /* @__PURE__ */
207
- _jsx(ScrollView, {
208
- flexShrink: 1,
209
- maxHeight: panelMaxHeight,
210
- children: /* @__PURE__ */_jsxs(YStack, {
211
- ...knobProps.panelPadding,
212
- ...knobProps.gapLg,
202
+ return /* @__PURE__ */_jsxs(Popover, {
203
+ open,
204
+ onOpenChange: setOpen,
205
+ stayInFrame: true,
206
+ allowFlip: true,
207
+ resize: true,
208
+ children: [/* @__PURE__ */_jsx(Popover.Trigger, {
209
+ asChild: true,
210
+ children: /* @__PURE__ */_jsx(Button, {
211
+ size: knobProps.sizeToken,
212
+ variant: "outlined",
213
+ accent: optionsActive,
214
+ icon: /* @__PURE__ */_jsx(SlidersHorizontalIcon, {
215
+ size: iconPx,
216
+ weight: optionsActive ? "fill" : "regular"
217
+ }),
218
+ disabled,
219
+ "aria-label": t("Search options"),
220
+ "aria-expanded": open,
221
+ "aria-haspopup": "dialog"
222
+ })
223
+ }), /* @__PURE__ */_jsx(PopoverContent, {
224
+ padding: 0,
225
+ overflow: "hidden",
226
+ alignItems: "stretch",
227
+ minWidth: 280,
228
+ children: /* @__PURE__ */_jsx(ScrollView, {
229
+ flexShrink: 1,
230
+ maxHeight: panelMaxHeight,
231
+ children: /* @__PURE__ */_jsxs(YStack, {
232
+ ...knobProps.panelPadding,
233
+ ...knobProps.gapLg,
234
+ children: [/* @__PURE__ */_jsx(Text, {
235
+ ...knobProps.heading,
236
+ ...knobProps.label,
237
+ fontWeight: "600",
238
+ children: t("Search Options")
239
+ }), /* @__PURE__ */_jsxs(YStack, {
240
+ ...knobProps.gap,
213
241
  children: [/* @__PURE__ */_jsx(Text, {
214
- fontSize: "$5",
215
- fontWeight: "600",
216
- children: t("Search Options")
217
- }), /* Search Settings */
218
- /* @__PURE__ */_jsxs(YStack, {
219
- ...knobProps.gap,
242
+ ...knobProps.label,
243
+ fontWeight: "500",
244
+ children: t("Search Settings")
245
+ }), /* @__PURE__ */_jsx(Checkbox, {
246
+ compact: true,
247
+ label: t("Case sensitive"),
248
+ checked: searchOptions.caseSensitive,
249
+ onCheckedChange: function onCheckedChange(checked) {
250
+ return onOptionsChange({
251
+ caseSensitive: checked
252
+ });
253
+ }
254
+ }), /* @__PURE__ */_jsx(Checkbox, {
255
+ compact: true,
256
+ label: t("Whole word only"),
257
+ checked: searchOptions.wholeWord,
258
+ onCheckedChange: function onCheckedChange(checked) {
259
+ return onOptionsChange({
260
+ wholeWord: checked
261
+ });
262
+ }
263
+ }), /* @__PURE__ */_jsx(Checkbox, {
264
+ compact: true,
265
+ label: t("Use regex"),
266
+ checked: searchOptions.regex,
267
+ onCheckedChange: function onCheckedChange(checked) {
268
+ return onOptionsChange({
269
+ regex: checked
270
+ });
271
+ }
272
+ }), /* @__PURE__ */_jsx(Checkbox, {
273
+ compact: true,
274
+ label: t("Highlight results"),
275
+ checked: searchOptions.highlightResults,
276
+ onCheckedChange: function onCheckedChange(checked) {
277
+ return onOptionsChange({
278
+ highlightResults: checked
279
+ });
280
+ }
281
+ })]
282
+ }), /* @__PURE__ */_jsx(Separator, {}), /* @__PURE__ */_jsxs(YStack, {
283
+ ...knobProps.gap,
284
+ children: [/* @__PURE__ */_jsxs(XStack, {
285
+ justifyContent: "space-between",
286
+ alignItems: "center",
220
287
  children: [/* @__PURE__ */_jsx(Text, {
221
- fontSize: "$4",
288
+ ...knobProps.label,
222
289
  fontWeight: "500",
223
- children: t("Search Settings")
224
- }), /* @__PURE__ */_jsx(Checkbox, {
225
- label: t("Case sensitive"),
226
- checked: searchOptions.caseSensitive,
227
- onCheckedChange: function onCheckedChange(checked) {
228
- return onOptionsChange({
229
- caseSensitive: checked
230
- });
231
- }
232
- }), /* @__PURE__ */_jsx(Checkbox, {
233
- label: t("Whole word only"),
234
- checked: searchOptions.wholeWord,
235
- onCheckedChange: function onCheckedChange(checked) {
236
- return onOptionsChange({
237
- wholeWord: checked
238
- });
239
- }
240
- }), /* @__PURE__ */_jsx(Checkbox, {
241
- label: t("Use regex"),
242
- checked: searchOptions.regex,
243
- onCheckedChange: function onCheckedChange(checked) {
244
- return onOptionsChange({
245
- regex: checked
246
- });
247
- }
248
- }), /* @__PURE__ */_jsx(Checkbox, {
249
- label: t("Highlight results"),
250
- checked: searchOptions.highlightResults,
251
- onCheckedChange: function onCheckedChange(checked) {
252
- return onOptionsChange({
253
- highlightResults: checked
254
- });
255
- }
290
+ children: t("Search Columns")
291
+ }), /* @__PURE__ */_jsx(Text, {
292
+ ...knobProps.label,
293
+ color: formCommonColors.muted,
294
+ children: bidiIsolate(t("{{selected}} of {{total}}", {
295
+ selected: selectedColumnCount,
296
+ total: totalColumnCount
297
+ }))
256
298
  })]
257
- }), /* @__PURE__ */_jsx(Separator, {}), /* Column Selection */
258
- /* @__PURE__ */_jsxs(YStack, {
299
+ }), /* @__PURE__ */_jsxs(XStack, {
259
300
  ...knobProps.gap,
260
- children: [/* @__PURE__ */_jsxs(XStack, {
261
- justifyContent: "space-between",
262
- alignItems: "center",
263
- children: [/* @__PURE__ */_jsx(Text, {
264
- fontSize: "$4",
265
- fontWeight: "500",
266
- children: t("Search Columns")
267
- }), /* @__PURE__ */_jsx(Text, {
268
- fontSize: "$2",
269
- color: "$color10",
270
- children: (/* Bidi-isolated so RTL contexts can't reorder the count run */
271
- bidiIsolate(t("{{selected}} of {{total}}", {
272
- selected: selectedColumnCount,
273
- total: totalColumnCount
274
- })))
275
- })]
276
- }), /* @__PURE__ */_jsxs(XStack, {
277
- gap: "$2",
278
- children: [/* @__PURE__ */_jsx(Button, {
279
- size: "$2",
280
- variant: "outlined",
281
- onPress: handleSelectAllColumns,
282
- children: t("All")
283
- }), /* @__PURE__ */_jsx(Button, {
284
- size: "$2",
285
- variant: "outlined",
286
- onPress: handleSelectNoColumns,
287
- children: t("None")
288
- })]
289
- }),
290
- /* One scroll region for the whole panel body (above); a nested
291
- column scroller would trap wheel/drag inside 200px. */
292
- /* @__PURE__ */
293
- _jsx(YStack, {
294
- gap: "$1",
295
- children: columns.map(function (col) {
296
- var key = col.accessorKey || col.id || "";
297
- return /* @__PURE__ */_jsx(Checkbox, {
298
- label: col.header || key,
299
- checked: columnVisibility[key] || false,
300
- onCheckedChange: function onCheckedChange(checked) {
301
- return handleColumnToggle(key, checked);
302
- }
303
- }, key);
304
- })
301
+ children: [/* @__PURE__ */_jsx(Button, {
302
+ size: "$2",
303
+ compact: true,
304
+ variant: "outlined",
305
+ onPress: handleSelectAllColumns,
306
+ children: t("All")
307
+ }), /* @__PURE__ */_jsx(Button, {
308
+ size: "$2",
309
+ compact: true,
310
+ variant: "outlined",
311
+ onPress: handleSelectNoColumns,
312
+ children: t("None")
305
313
  })]
314
+ }), /* @__PURE__ */_jsx(YStack, {
315
+ gap: "$1",
316
+ children: columns.map(function (col) {
317
+ var key = col.accessorKey || col.id || "";
318
+ return /* @__PURE__ */_jsx(Checkbox, {
319
+ compact: true,
320
+ label: col.header || key,
321
+ checked: searchOptions.columns.includes(key),
322
+ onCheckedChange: function onCheckedChange(checked) {
323
+ return handleColumnToggle(key, checked);
324
+ }
325
+ }, key);
326
+ })
306
327
  })]
307
- })
308
- }))
309
- })]
310
- })
311
- );
328
+ })]
329
+ })
330
+ })
331
+ })]
332
+ });
312
333
  }
313
- function performSearch(data, options) {
334
+ function compileSearchPattern(options) {
314
335
  var {
315
336
  searchTerm,
316
- columns,
317
337
  caseSensitive,
318
338
  wholeWord,
319
339
  regex
320
340
  } = options;
321
341
  if (!searchTerm.trim()) {
322
- return data;
342
+ return {
343
+ regex: null,
344
+ invalid: false
345
+ };
323
346
  }
324
- var searchPattern;
347
+ var flags = caseSensitive ? "" : "i";
325
348
  try {
326
349
  if (regex) {
327
- searchPattern = new RegExp(searchTerm, caseSensitive ? "g" : "gi");
328
- } else {
329
- var pattern = wholeWord ? `\\b${escapeRegex(searchTerm)}\\b` : escapeRegex(searchTerm);
330
- searchPattern = new RegExp(pattern, caseSensitive ? "g" : "gi");
350
+ return {
351
+ regex: new RegExp(searchTerm, flags),
352
+ invalid: false
353
+ };
331
354
  }
355
+ var pattern = wholeWord ? `\\b${escapeRegex(searchTerm)}\\b` : escapeRegex(searchTerm);
356
+ return {
357
+ regex: new RegExp(pattern, flags),
358
+ invalid: false
359
+ };
332
360
  } catch (unused) {
333
- return [];
361
+ return {
362
+ regex: null,
363
+ invalid: true
364
+ };
334
365
  }
366
+ }
367
+ function matchRows(data, columns, searchPattern) {
335
368
  return data.filter(function (item) {
336
369
  return columns.some(function (columnKey) {
337
370
  var value = item[columnKey];
338
371
  if (value == null) return false;
339
- var stringValue = String(value);
340
- return searchPattern.test(stringValue);
372
+ searchPattern.lastIndex = 0;
373
+ return searchPattern.test(String(value));
341
374
  });
342
375
  });
343
376
  }
377
+ function performSearch(data, options) {
378
+ var compiled = compileSearchPattern(options);
379
+ if (!options.searchTerm.trim()) return data;
380
+ if (compiled.invalid || !compiled.regex) return [];
381
+ return matchRows(data, options.columns, compiled.regex);
382
+ }
344
383
  function escapeRegex(string) {
345
384
  return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
346
385
  }
@@ -350,48 +389,58 @@ function highlightText(text, options) {
350
389
  caseSensitive = false,
351
390
  wholeWord = false,
352
391
  regex = false,
353
- highlightClassName = "search-highlight",
354
- highlightStyle: _highlightStyle = {
355
- backgroundColor: "var(--color-yellow3)",
356
- padding: "2px 4px",
357
- borderRadius: "3px",
358
- fontWeight: "bold"
359
- }
392
+ highlightClassName = "search-highlight"
360
393
  } = options;
361
394
  if (!searchTerm.trim() || !text) {
362
395
  return text;
363
396
  }
364
- var searchPattern;
397
+ var compiled = compileSearchPattern({
398
+ searchTerm,
399
+ caseSensitive,
400
+ wholeWord,
401
+ regex
402
+ });
403
+ if (!compiled.regex) return text;
404
+ var global = new RegExp(compiled.regex.source, compiled.regex.flags.includes("i") ? "gi" : "g");
405
+ var parts = [];
406
+ var last = 0;
407
+ var index = 0;
408
+ var _iteratorNormalCompletion = true,
409
+ _didIteratorError = false,
410
+ _iteratorError = void 0;
365
411
  try {
366
- if (regex) {
367
- searchPattern = new RegExp(searchTerm, caseSensitive ? "g" : "gi");
368
- } else {
369
- var pattern = wholeWord ? `\\b${escapeRegex(searchTerm)}\\b` : escapeRegex(searchTerm);
370
- searchPattern = new RegExp(pattern, caseSensitive ? "g" : "gi");
371
- }
372
- } catch (unused) {
373
- return text;
374
- }
375
- var parts = text.split(searchPattern);
376
- if (parts.length === 1) {
377
- return text;
378
- }
379
- var matches = text.match(searchPattern) || [];
380
- var result = [];
381
- parts.forEach(function (part, index) {
382
- result.push(part);
383
- if (index < parts.length - 1 && matches[index]) {
384
- result.push(/* @__PURE__ */_jsx(Text, {
412
+ for (var _iterator = text.matchAll(global)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
413
+ var match = _step.value;
414
+ var _match_index;
415
+ var start = (_match_index = match.index) !== null && _match_index !== void 0 ? _match_index : 0;
416
+ if (start > last) parts.push(text.slice(last, start));
417
+ parts.push(/* @__PURE__ */_jsx(Text, {
385
418
  className: highlightClassName,
386
419
  backgroundColor: "$yellow3",
387
420
  paddingHorizontal: "$1",
388
421
  borderRadius: "$1",
389
422
  fontWeight: "bold",
390
- children: matches[index]
423
+ children: match[0]
391
424
  }, `highlight-${index}`));
425
+ last = start + match[0].length;
426
+ index += 1;
392
427
  }
393
- });
394
- return result;
428
+ } catch (err) {
429
+ _didIteratorError = true;
430
+ _iteratorError = err;
431
+ } finally {
432
+ try {
433
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
434
+ _iterator.return();
435
+ }
436
+ } finally {
437
+ if (_didIteratorError) {
438
+ throw _iteratorError;
439
+ }
440
+ }
441
+ }
442
+ if (last < text.length) parts.push(text.slice(last));
443
+ return parts.length ? parts : text;
395
444
  }
396
445
  function useFullTextSearch(param) {
397
446
  var {