@multiplatform.one/table 6.7.0 → 7.1.0

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