@multiplatform.one/table 6.6.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 (506) 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 +3 -2
  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 +33 -12
  7. package/dist/cjs/components/ColumnHeaderFilter/index.native.js.map +1 -1
  8. package/dist/cjs/components/DataTable/DataTableCardControls.native.js +1 -1
  9. package/dist/cjs/components/DataTable/DataTableCardControls.native.js.map +1 -1
  10. package/dist/cjs/components/DataTable/DataTableContext.native.js.map +1 -1
  11. package/dist/cjs/components/DataTable/DataTableDocumentList.cjs +222 -0
  12. package/dist/cjs/components/DataTable/DataTableDocumentList.native.js +237 -0
  13. package/dist/cjs/components/DataTable/DataTableDocumentList.native.js.map +1 -0
  14. package/dist/cjs/components/DataTable/DataTableMobileCards.cjs +5 -2
  15. package/dist/cjs/components/DataTable/DataTableMobileCards.native.js +6 -2
  16. package/dist/cjs/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  17. package/dist/cjs/components/DataTable/DataTableRoot.cjs +92 -41
  18. package/dist/cjs/components/DataTable/DataTableRoot.native.js +104 -50
  19. package/dist/cjs/components/DataTable/DataTableRoot.native.js.map +1 -1
  20. package/dist/cjs/components/DataTable/DataTableStateContext.native.js.map +1 -1
  21. package/dist/cjs/components/DataTable/DataTableVirtualized.cjs +8 -2
  22. package/dist/cjs/components/DataTable/DataTableVirtualized.native.js +9 -3
  23. package/dist/cjs/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  24. package/dist/cjs/components/DataTable/documentListSlots.cjs +59 -0
  25. package/dist/cjs/components/DataTable/documentListSlots.native.js +85 -0
  26. package/dist/cjs/components/DataTable/documentListSlots.native.js.map +1 -0
  27. package/dist/cjs/components/DataTable/index.native.js +84 -69
  28. package/dist/cjs/components/DataTable/index.native.js.map +1 -1
  29. package/dist/cjs/components/DataTable/rowStateChrome.cjs +55 -0
  30. package/dist/cjs/components/DataTable/rowStateChrome.native.js +59 -0
  31. package/dist/cjs/components/DataTable/rowStateChrome.native.js.map +1 -0
  32. package/dist/cjs/components/DataTableBulkActions/index.native.js.map +1 -1
  33. package/dist/cjs/components/DataTableCell/CellModalEditor.cjs +24 -3
  34. package/dist/cjs/components/DataTableCell/CellModalEditor.native.js +6 -1
  35. package/dist/cjs/components/DataTableCell/CellModalEditor.native.js.map +1 -1
  36. package/dist/cjs/components/DataTableCell/CellOptionsEditor.cjs +9 -2
  37. package/dist/cjs/components/DataTableCell/CellOptionsEditor.native.js +11 -2
  38. package/dist/cjs/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
  39. package/dist/cjs/components/DataTableCell/index.cjs +74 -63
  40. package/dist/cjs/components/DataTableCell/index.native.js +94 -82
  41. package/dist/cjs/components/DataTableCell/index.native.js.map +1 -1
  42. package/dist/cjs/components/DataTableColumnPinning/index.cjs +54 -37
  43. package/dist/cjs/components/DataTableColumnPinning/index.native.js +59 -38
  44. package/dist/cjs/components/DataTableColumnPinning/index.native.js.map +1 -1
  45. package/dist/cjs/components/DataTableDateFilter/index.cjs +33 -14
  46. package/dist/cjs/components/DataTableDateFilter/index.native.js +33 -12
  47. package/dist/cjs/components/DataTableDateFilter/index.native.js.map +1 -1
  48. package/dist/cjs/components/DataTableExport/index.cjs +35 -7
  49. package/dist/cjs/components/DataTableExport/index.native.js +42 -7
  50. package/dist/cjs/components/DataTableExport/index.native.js.map +1 -1
  51. package/dist/cjs/components/DataTableFacetMenu/index.cjs +140 -0
  52. package/dist/cjs/components/DataTableFacetMenu/index.native.js +156 -0
  53. package/dist/cjs/components/DataTableFacetMenu/index.native.js.map +1 -0
  54. package/dist/cjs/components/DataTableFilterButton/index.cjs +51 -32
  55. package/dist/cjs/components/DataTableFilterButton/index.native.js +64 -41
  56. package/dist/cjs/components/DataTableFilterButton/index.native.js.map +1 -1
  57. package/dist/cjs/components/DataTableFilterChips/FilterChip.cjs +143 -0
  58. package/dist/cjs/components/DataTableFilterChips/FilterChip.native.js +148 -0
  59. package/dist/cjs/components/DataTableFilterChips/FilterChip.native.js.map +1 -0
  60. package/dist/cjs/components/DataTableFilterChips/index.cjs +9 -31
  61. package/dist/cjs/components/DataTableFilterChips/index.native.js +9 -32
  62. package/dist/cjs/components/DataTableFilterChips/index.native.js.map +1 -1
  63. package/dist/cjs/components/DataTableFilters/index.cjs +145 -502
  64. package/dist/cjs/components/DataTableFilters/index.native.js +171 -544
  65. package/dist/cjs/components/DataTableFilters/index.native.js.map +1 -1
  66. package/dist/cjs/components/DataTableGrouping/index.cjs +273 -108
  67. package/dist/cjs/components/DataTableGrouping/index.native.js +310 -157
  68. package/dist/cjs/components/DataTableGrouping/index.native.js.map +1 -1
  69. package/dist/cjs/components/DataTablePagination/index.cjs +147 -95
  70. package/dist/cjs/components/DataTablePagination/index.native.js +159 -106
  71. package/dist/cjs/components/DataTablePagination/index.native.js.map +1 -1
  72. package/dist/cjs/components/DataTableSearch/index.cjs +251 -210
  73. package/dist/cjs/components/DataTableSearch/index.native.js +292 -243
  74. package/dist/cjs/components/DataTableSearch/index.native.js.map +1 -1
  75. package/dist/cjs/components/DataTableToolbar/index.cjs +141 -115
  76. package/dist/cjs/components/DataTableToolbar/index.native.js +164 -149
  77. package/dist/cjs/components/DataTableToolbar/index.native.js.map +1 -1
  78. package/dist/cjs/components/DataTableViewOptions/index.cjs +25 -21
  79. package/dist/cjs/components/DataTableViewOptions/index.native.js +6 -4
  80. package/dist/cjs/components/DataTableViewOptions/index.native.js.map +1 -1
  81. package/dist/cjs/components/FilterManager.native.js.map +1 -1
  82. package/dist/cjs/components/FilterOperatorValueEditor/index.native.js.map +1 -1
  83. package/dist/cjs/components/KnobDialog.native.js.map +1 -1
  84. package/dist/cjs/components/SavedFilterDropdown.native.js.map +1 -1
  85. package/dist/cjs/components/SimpleTable/index.cjs +336 -46
  86. package/dist/cjs/components/SimpleTable/index.native.js +356 -48
  87. package/dist/cjs/components/SimpleTable/index.native.js.map +1 -1
  88. package/dist/cjs/components/TableInput/index.cjs +147 -38
  89. package/dist/cjs/components/TableInput/index.native.js +55 -39
  90. package/dist/cjs/components/TableInput/index.native.js.map +1 -1
  91. package/dist/cjs/components/TableInput/shared.cjs +36 -1
  92. package/dist/cjs/components/TableInput/shared.native.js +35 -0
  93. package/dist/cjs/components/TableInput/shared.native.js.map +1 -1
  94. package/dist/cjs/hooks/useDataTable.cjs +33 -2
  95. package/dist/cjs/hooks/useDataTable.native.js +41 -2
  96. package/dist/cjs/hooks/useDataTable.native.js.map +1 -1
  97. package/dist/cjs/hooks/useDataTableKeyboard.native.js.map +1 -1
  98. package/dist/cjs/hooks/useDragScroll.native.js.map +1 -1
  99. package/dist/cjs/hooks/useInfiniteRows.cjs +20 -3
  100. package/dist/cjs/hooks/useInfiniteRows.native.js +20 -3
  101. package/dist/cjs/hooks/useInfiniteRows.native.js.map +1 -1
  102. package/dist/cjs/hooks/useSavedFilters.native.js.map +1 -1
  103. package/dist/cjs/hooks/useTableColumnPinning.native.js.map +1 -1
  104. package/dist/cjs/hooks/useTableFiltering.native.js.map +1 -1
  105. package/dist/cjs/hooks/useTableGrouping.native.js.map +1 -1
  106. package/dist/cjs/hooks/useTableKeyboard.native.js.map +1 -1
  107. package/dist/cjs/hooks/useTablePagination.native.js.map +1 -1
  108. package/dist/cjs/hooks/useTableSearch.native.js.map +1 -1
  109. package/dist/cjs/hooks/useTableSelection.native.js.map +1 -1
  110. package/dist/cjs/hooks/useTableSorting.native.js.map +1 -1
  111. package/dist/cjs/hooks/useTableUrlSync.native.js.map +1 -1
  112. package/dist/cjs/hooks/useTableViews.native.js.map +1 -1
  113. package/dist/cjs/index.cjs +2 -0
  114. package/dist/cjs/index.native.js +2 -0
  115. package/dist/cjs/index.native.js.map +1 -1
  116. package/dist/cjs/shared/t.native.js.map +1 -1
  117. package/dist/cjs/shims/primitives.native.js.map +1 -1
  118. package/dist/cjs/shims/tableCellContext.native.js.map +1 -1
  119. package/dist/cjs/types.native.js.map +1 -1
  120. package/dist/cjs/utils/columnAlign.native.js.map +1 -1
  121. package/dist/cjs/utils/filterFields.native.js.map +1 -1
  122. package/dist/cjs/utils/filterUtils.cjs +12 -5
  123. package/dist/cjs/utils/filterUtils.native.js +20 -5
  124. package/dist/cjs/utils/filterUtils.native.js.map +1 -1
  125. package/dist/cjs/utils/paginationDefaults.native.js.map +1 -1
  126. package/dist/cjs/utils/rowPress.native.js.map +1 -1
  127. package/dist/cjs/utils/urlStateUtils.native.js.map +1 -1
  128. package/dist/cjs/utils/viewData.native.js.map +1 -1
  129. package/dist/cjs/utils/withInterp.native.js.map +1 -1
  130. package/dist/esm/components/ChildTable/index.mjs +2 -1
  131. package/dist/esm/components/ChildTable/index.mjs.map +1 -1
  132. package/dist/esm/components/ChildTable/index.native.js +2 -1
  133. package/dist/esm/components/ChildTable/index.native.js.map +1 -1
  134. package/dist/esm/components/ColumnHeaderFilter/index.mjs +17 -9
  135. package/dist/esm/components/ColumnHeaderFilter/index.mjs.map +1 -1
  136. package/dist/esm/components/ColumnHeaderFilter/index.native.js +32 -11
  137. package/dist/esm/components/ColumnHeaderFilter/index.native.js.map +1 -1
  138. package/dist/esm/components/DataTable/DataTableDocumentList.mjs +196 -0
  139. package/dist/esm/components/DataTable/DataTableDocumentList.mjs.map +1 -0
  140. package/dist/esm/components/DataTable/DataTableDocumentList.native.js +208 -0
  141. package/dist/esm/components/DataTable/DataTableDocumentList.native.js.map +1 -0
  142. package/dist/esm/components/DataTable/DataTableMobileCards.mjs +5 -2
  143. package/dist/esm/components/DataTable/DataTableMobileCards.mjs.map +1 -1
  144. package/dist/esm/components/DataTable/DataTableMobileCards.native.js +6 -2
  145. package/dist/esm/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  146. package/dist/esm/components/DataTable/DataTableRoot.mjs +93 -42
  147. package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -1
  148. package/dist/esm/components/DataTable/DataTableRoot.native.js +98 -44
  149. package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -1
  150. package/dist/esm/components/DataTable/DataTableVirtualized.mjs +8 -2
  151. package/dist/esm/components/DataTable/DataTableVirtualized.mjs.map +1 -1
  152. package/dist/esm/components/DataTable/DataTableVirtualized.native.js +9 -3
  153. package/dist/esm/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  154. package/dist/esm/components/DataTable/documentListSlots.mjs +33 -0
  155. package/dist/esm/components/DataTable/documentListSlots.mjs.map +1 -0
  156. package/dist/esm/components/DataTable/documentListSlots.native.js +56 -0
  157. package/dist/esm/components/DataTable/documentListSlots.native.js.map +1 -0
  158. package/dist/esm/components/DataTable/index.native.js +52 -37
  159. package/dist/esm/components/DataTable/index.native.js.map +1 -1
  160. package/dist/esm/components/DataTable/rowStateChrome.mjs +28 -0
  161. package/dist/esm/components/DataTable/rowStateChrome.mjs.map +1 -0
  162. package/dist/esm/components/DataTable/rowStateChrome.native.js +29 -0
  163. package/dist/esm/components/DataTable/rowStateChrome.native.js.map +1 -0
  164. package/dist/esm/components/DataTableCell/CellModalEditor.mjs +25 -4
  165. package/dist/esm/components/DataTableCell/CellModalEditor.mjs.map +1 -1
  166. package/dist/esm/components/DataTableCell/CellModalEditor.native.js +6 -1
  167. package/dist/esm/components/DataTableCell/CellModalEditor.native.js.map +1 -1
  168. package/dist/esm/components/DataTableCell/CellOptionsEditor.mjs +9 -2
  169. package/dist/esm/components/DataTableCell/CellOptionsEditor.mjs.map +1 -1
  170. package/dist/esm/components/DataTableCell/CellOptionsEditor.native.js +11 -2
  171. package/dist/esm/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
  172. package/dist/esm/components/DataTableCell/index.mjs +75 -64
  173. package/dist/esm/components/DataTableCell/index.mjs.map +1 -1
  174. package/dist/esm/components/DataTableCell/index.native.js +95 -83
  175. package/dist/esm/components/DataTableCell/index.native.js.map +1 -1
  176. package/dist/esm/components/DataTableColumnPinning/index.mjs +54 -37
  177. package/dist/esm/components/DataTableColumnPinning/index.mjs.map +1 -1
  178. package/dist/esm/components/DataTableColumnPinning/index.native.js +59 -38
  179. package/dist/esm/components/DataTableColumnPinning/index.native.js.map +1 -1
  180. package/dist/esm/components/DataTableDateFilter/index.mjs +34 -15
  181. package/dist/esm/components/DataTableDateFilter/index.mjs.map +1 -1
  182. package/dist/esm/components/DataTableDateFilter/index.native.js +34 -13
  183. package/dist/esm/components/DataTableDateFilter/index.native.js.map +1 -1
  184. package/dist/esm/components/DataTableExport/index.mjs +36 -8
  185. package/dist/esm/components/DataTableExport/index.mjs.map +1 -1
  186. package/dist/esm/components/DataTableExport/index.native.js +43 -8
  187. package/dist/esm/components/DataTableExport/index.native.js.map +1 -1
  188. package/dist/esm/components/DataTableFacetMenu/index.mjs +115 -0
  189. package/dist/esm/components/DataTableFacetMenu/index.mjs.map +1 -0
  190. package/dist/esm/components/DataTableFacetMenu/index.native.js +128 -0
  191. package/dist/esm/components/DataTableFacetMenu/index.native.js.map +1 -0
  192. package/dist/esm/components/DataTableFilterButton/index.mjs +54 -35
  193. package/dist/esm/components/DataTableFilterButton/index.mjs.map +1 -1
  194. package/dist/esm/components/DataTableFilterButton/index.native.js +66 -43
  195. package/dist/esm/components/DataTableFilterButton/index.native.js.map +1 -1
  196. package/dist/esm/components/DataTableFilterChips/FilterChip.mjs +118 -0
  197. package/dist/esm/components/DataTableFilterChips/FilterChip.mjs.map +1 -0
  198. package/dist/esm/components/DataTableFilterChips/FilterChip.native.js +120 -0
  199. package/dist/esm/components/DataTableFilterChips/FilterChip.native.js.map +1 -0
  200. package/dist/esm/components/DataTableFilterChips/index.mjs +9 -32
  201. package/dist/esm/components/DataTableFilterChips/index.mjs.map +1 -1
  202. package/dist/esm/components/DataTableFilterChips/index.native.js +9 -33
  203. package/dist/esm/components/DataTableFilterChips/index.native.js.map +1 -1
  204. package/dist/esm/components/DataTableFilters/index.mjs +149 -506
  205. package/dist/esm/components/DataTableFilters/index.mjs.map +1 -1
  206. package/dist/esm/components/DataTableFilters/index.native.js +175 -548
  207. package/dist/esm/components/DataTableFilters/index.native.js.map +1 -1
  208. package/dist/esm/components/DataTableGrouping/index.mjs +275 -110
  209. package/dist/esm/components/DataTableGrouping/index.mjs.map +1 -1
  210. package/dist/esm/components/DataTableGrouping/index.native.js +287 -134
  211. package/dist/esm/components/DataTableGrouping/index.native.js.map +1 -1
  212. package/dist/esm/components/DataTablePagination/index.mjs +148 -96
  213. package/dist/esm/components/DataTablePagination/index.mjs.map +1 -1
  214. package/dist/esm/components/DataTablePagination/index.native.js +160 -107
  215. package/dist/esm/components/DataTablePagination/index.native.js.map +1 -1
  216. package/dist/esm/components/DataTableSearch/index.mjs +256 -215
  217. package/dist/esm/components/DataTableSearch/index.mjs.map +1 -1
  218. package/dist/esm/components/DataTableSearch/index.native.js +297 -248
  219. package/dist/esm/components/DataTableSearch/index.native.js.map +1 -1
  220. package/dist/esm/components/DataTableToolbar/index.mjs +145 -119
  221. package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -1
  222. package/dist/esm/components/DataTableToolbar/index.native.js +167 -152
  223. package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -1
  224. package/dist/esm/components/DataTableViewOptions/index.mjs +26 -22
  225. package/dist/esm/components/DataTableViewOptions/index.mjs.map +1 -1
  226. package/dist/esm/components/DataTableViewOptions/index.native.js +7 -5
  227. package/dist/esm/components/DataTableViewOptions/index.native.js.map +1 -1
  228. package/dist/esm/components/SimpleTable/index.mjs +338 -48
  229. package/dist/esm/components/SimpleTable/index.mjs.map +1 -1
  230. package/dist/esm/components/SimpleTable/index.native.js +358 -50
  231. package/dist/esm/components/SimpleTable/index.native.js.map +1 -1
  232. package/dist/esm/components/TableInput/index.mjs +150 -41
  233. package/dist/esm/components/TableInput/index.mjs.map +1 -1
  234. package/dist/esm/components/TableInput/index.native.js +55 -39
  235. package/dist/esm/components/TableInput/index.native.js.map +1 -1
  236. package/dist/esm/components/TableInput/shared.mjs +34 -1
  237. package/dist/esm/components/TableInput/shared.mjs.map +1 -1
  238. package/dist/esm/components/TableInput/shared.native.js +34 -1
  239. package/dist/esm/components/TableInput/shared.native.js.map +1 -1
  240. package/dist/esm/hooks/useDataTable.mjs +33 -2
  241. package/dist/esm/hooks/useDataTable.mjs.map +1 -1
  242. package/dist/esm/hooks/useDataTable.native.js +41 -2
  243. package/dist/esm/hooks/useDataTable.native.js.map +1 -1
  244. package/dist/esm/hooks/useInfiniteRows.mjs +20 -3
  245. package/dist/esm/hooks/useInfiniteRows.mjs.map +1 -1
  246. package/dist/esm/hooks/useInfiniteRows.native.js +20 -3
  247. package/dist/esm/hooks/useInfiniteRows.native.js.map +1 -1
  248. package/dist/esm/index.mjs +2 -1
  249. package/dist/esm/index.mjs.map +1 -1
  250. package/dist/esm/index.native.js +2 -1
  251. package/dist/esm/index.native.js.map +1 -1
  252. package/dist/esm/utils/filterUtils.mjs +12 -5
  253. package/dist/esm/utils/filterUtils.mjs.map +1 -1
  254. package/dist/esm/utils/filterUtils.native.js +20 -5
  255. package/dist/esm/utils/filterUtils.native.js.map +1 -1
  256. package/dist/jsx/components/ChildTable/index.mjs +2 -1
  257. package/dist/jsx/components/ChildTable/index.mjs.map +1 -1
  258. package/dist/jsx/components/ChildTable/index.native.js +2 -1
  259. package/dist/jsx/components/ChildTable/index.native.js.map +1 -1
  260. package/dist/jsx/components/ColumnHeaderFilter/index.mjs +17 -9
  261. package/dist/jsx/components/ColumnHeaderFilter/index.mjs.map +1 -1
  262. package/dist/jsx/components/ColumnHeaderFilter/index.native.js +32 -11
  263. package/dist/jsx/components/ColumnHeaderFilter/index.native.js.map +1 -1
  264. package/dist/jsx/components/DataTable/DataTableDocumentList.mjs +196 -0
  265. package/dist/jsx/components/DataTable/DataTableDocumentList.mjs.map +1 -0
  266. package/dist/jsx/components/DataTable/DataTableDocumentList.native.js +237 -0
  267. package/dist/jsx/components/DataTable/DataTableDocumentList.native.js.map +1 -0
  268. package/dist/jsx/components/DataTable/DataTableMobileCards.mjs +5 -2
  269. package/dist/jsx/components/DataTable/DataTableMobileCards.mjs.map +1 -1
  270. package/dist/jsx/components/DataTable/DataTableMobileCards.native.js +6 -2
  271. package/dist/jsx/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  272. package/dist/jsx/components/DataTable/DataTableRoot.mjs +93 -42
  273. package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -1
  274. package/dist/jsx/components/DataTable/DataTableRoot.native.js +97 -43
  275. package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -1
  276. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs +8 -2
  277. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs.map +1 -1
  278. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js +9 -3
  279. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  280. package/dist/jsx/components/DataTable/documentListSlots.mjs +33 -0
  281. package/dist/jsx/components/DataTable/documentListSlots.mjs.map +1 -0
  282. package/dist/jsx/components/DataTable/documentListSlots.native.js +85 -0
  283. package/dist/jsx/components/DataTable/documentListSlots.native.js.map +1 -0
  284. package/dist/jsx/components/DataTable/index.native.js +74 -59
  285. package/dist/jsx/components/DataTable/index.native.js.map +1 -1
  286. package/dist/jsx/components/DataTable/rowStateChrome.mjs +28 -0
  287. package/dist/jsx/components/DataTable/rowStateChrome.mjs.map +1 -0
  288. package/dist/jsx/components/DataTable/rowStateChrome.native.js +59 -0
  289. package/dist/jsx/components/DataTable/rowStateChrome.native.js.map +1 -0
  290. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs +25 -4
  291. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs.map +1 -1
  292. package/dist/jsx/components/DataTableCell/CellModalEditor.native.js +6 -1
  293. package/dist/jsx/components/DataTableCell/CellModalEditor.native.js.map +1 -1
  294. package/dist/jsx/components/DataTableCell/CellOptionsEditor.mjs +9 -2
  295. package/dist/jsx/components/DataTableCell/CellOptionsEditor.mjs.map +1 -1
  296. package/dist/jsx/components/DataTableCell/CellOptionsEditor.native.js +11 -2
  297. package/dist/jsx/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
  298. package/dist/jsx/components/DataTableCell/index.mjs +75 -64
  299. package/dist/jsx/components/DataTableCell/index.mjs.map +1 -1
  300. package/dist/jsx/components/DataTableCell/index.native.js +94 -82
  301. package/dist/jsx/components/DataTableCell/index.native.js.map +1 -1
  302. package/dist/jsx/components/DataTableColumnPinning/index.mjs +54 -37
  303. package/dist/jsx/components/DataTableColumnPinning/index.mjs.map +1 -1
  304. package/dist/jsx/components/DataTableColumnPinning/index.native.js +59 -38
  305. package/dist/jsx/components/DataTableColumnPinning/index.native.js.map +1 -1
  306. package/dist/jsx/components/DataTableDateFilter/index.mjs +34 -15
  307. package/dist/jsx/components/DataTableDateFilter/index.mjs.map +1 -1
  308. package/dist/jsx/components/DataTableDateFilter/index.native.js +33 -12
  309. package/dist/jsx/components/DataTableDateFilter/index.native.js.map +1 -1
  310. package/dist/jsx/components/DataTableExport/index.mjs +36 -8
  311. package/dist/jsx/components/DataTableExport/index.mjs.map +1 -1
  312. package/dist/jsx/components/DataTableExport/index.native.js +42 -7
  313. package/dist/jsx/components/DataTableExport/index.native.js.map +1 -1
  314. package/dist/jsx/components/DataTableFacetMenu/index.mjs +115 -0
  315. package/dist/jsx/components/DataTableFacetMenu/index.mjs.map +1 -0
  316. package/dist/jsx/components/DataTableFacetMenu/index.native.js +156 -0
  317. package/dist/jsx/components/DataTableFacetMenu/index.native.js.map +1 -0
  318. package/dist/jsx/components/DataTableFilterButton/index.mjs +54 -35
  319. package/dist/jsx/components/DataTableFilterButton/index.mjs.map +1 -1
  320. package/dist/jsx/components/DataTableFilterButton/index.native.js +63 -40
  321. package/dist/jsx/components/DataTableFilterButton/index.native.js.map +1 -1
  322. package/dist/jsx/components/DataTableFilterChips/FilterChip.mjs +118 -0
  323. package/dist/jsx/components/DataTableFilterChips/FilterChip.mjs.map +1 -0
  324. package/dist/jsx/components/DataTableFilterChips/FilterChip.native.js +148 -0
  325. package/dist/jsx/components/DataTableFilterChips/FilterChip.native.js.map +1 -0
  326. package/dist/jsx/components/DataTableFilterChips/index.mjs +9 -32
  327. package/dist/jsx/components/DataTableFilterChips/index.mjs.map +1 -1
  328. package/dist/jsx/components/DataTableFilterChips/index.native.js +9 -32
  329. package/dist/jsx/components/DataTableFilterChips/index.native.js.map +1 -1
  330. package/dist/jsx/components/DataTableFilters/index.mjs +149 -506
  331. package/dist/jsx/components/DataTableFilters/index.mjs.map +1 -1
  332. package/dist/jsx/components/DataTableFilters/index.native.js +171 -544
  333. package/dist/jsx/components/DataTableFilters/index.native.js.map +1 -1
  334. package/dist/jsx/components/DataTableGrouping/index.mjs +275 -110
  335. package/dist/jsx/components/DataTableGrouping/index.mjs.map +1 -1
  336. package/dist/jsx/components/DataTableGrouping/index.native.js +310 -157
  337. package/dist/jsx/components/DataTableGrouping/index.native.js.map +1 -1
  338. package/dist/jsx/components/DataTablePagination/index.mjs +148 -96
  339. package/dist/jsx/components/DataTablePagination/index.mjs.map +1 -1
  340. package/dist/jsx/components/DataTablePagination/index.native.js +159 -106
  341. package/dist/jsx/components/DataTablePagination/index.native.js.map +1 -1
  342. package/dist/jsx/components/DataTableSearch/index.mjs +256 -215
  343. package/dist/jsx/components/DataTableSearch/index.mjs.map +1 -1
  344. package/dist/jsx/components/DataTableSearch/index.native.js +292 -243
  345. package/dist/jsx/components/DataTableSearch/index.native.js.map +1 -1
  346. package/dist/jsx/components/DataTableToolbar/index.mjs +145 -119
  347. package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -1
  348. package/dist/jsx/components/DataTableToolbar/index.native.js +163 -148
  349. package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -1
  350. package/dist/jsx/components/DataTableViewOptions/index.mjs +26 -22
  351. package/dist/jsx/components/DataTableViewOptions/index.mjs.map +1 -1
  352. package/dist/jsx/components/DataTableViewOptions/index.native.js +6 -4
  353. package/dist/jsx/components/DataTableViewOptions/index.native.js.map +1 -1
  354. package/dist/jsx/components/SimpleTable/index.mjs +338 -48
  355. package/dist/jsx/components/SimpleTable/index.mjs.map +1 -1
  356. package/dist/jsx/components/SimpleTable/index.native.js +356 -48
  357. package/dist/jsx/components/SimpleTable/index.native.js.map +1 -1
  358. package/dist/jsx/components/TableInput/index.mjs +150 -41
  359. package/dist/jsx/components/TableInput/index.mjs.map +1 -1
  360. package/dist/jsx/components/TableInput/index.native.js +54 -38
  361. package/dist/jsx/components/TableInput/index.native.js.map +1 -1
  362. package/dist/jsx/components/TableInput/shared.mjs +34 -1
  363. package/dist/jsx/components/TableInput/shared.mjs.map +1 -1
  364. package/dist/jsx/components/TableInput/shared.native.js +35 -0
  365. package/dist/jsx/components/TableInput/shared.native.js.map +1 -1
  366. package/dist/jsx/hooks/useDataTable.mjs +33 -2
  367. package/dist/jsx/hooks/useDataTable.mjs.map +1 -1
  368. package/dist/jsx/hooks/useDataTable.native.js +41 -2
  369. package/dist/jsx/hooks/useDataTable.native.js.map +1 -1
  370. package/dist/jsx/hooks/useInfiniteRows.mjs +20 -3
  371. package/dist/jsx/hooks/useInfiniteRows.mjs.map +1 -1
  372. package/dist/jsx/hooks/useInfiniteRows.native.js +20 -3
  373. package/dist/jsx/hooks/useInfiniteRows.native.js.map +1 -1
  374. package/dist/jsx/index.js +2 -1
  375. package/dist/jsx/index.js.map +1 -1
  376. package/dist/jsx/index.mjs +2 -1
  377. package/dist/jsx/index.mjs.map +1 -1
  378. package/dist/jsx/index.native.js +2 -0
  379. package/dist/jsx/index.native.js.map +1 -1
  380. package/dist/jsx/utils/filterUtils.mjs +12 -5
  381. package/dist/jsx/utils/filterUtils.mjs.map +1 -1
  382. package/dist/jsx/utils/filterUtils.native.js +20 -5
  383. package/dist/jsx/utils/filterUtils.native.js.map +1 -1
  384. package/package.json +16 -16
  385. package/src/components/ChildTable/index.tsx +1 -0
  386. package/src/components/ColumnHeaderFilter/ColumnHeaderFilter.spec.tsx +85 -0
  387. package/src/components/ColumnHeaderFilter/index.tsx +28 -10
  388. package/src/components/DataTable/DataTable.stories.tsx +30 -0
  389. package/src/components/DataTable/DataTableDocumentList.tsx +224 -0
  390. package/src/components/DataTable/DataTableMobileCards.tsx +20 -8
  391. package/src/components/DataTable/DataTableRoot.tsx +135 -58
  392. package/src/components/DataTable/DataTableVirtualized.tsx +8 -11
  393. package/src/components/DataTable/cardLayout.spec.tsx +89 -0
  394. package/src/components/DataTable/documentListSlots.ts +57 -0
  395. package/src/components/DataTable/index.native.tsx +76 -50
  396. package/src/components/DataTable/keepPreviousData.spec.tsx +137 -0
  397. package/src/components/DataTable/rowRing.spec.tsx +118 -0
  398. package/src/components/DataTable/rowStateChrome.ts +38 -0
  399. package/src/components/DataTableCell/CellModalEditor.native.tsx +4 -0
  400. package/src/components/DataTableCell/CellModalEditor.tsx +31 -3
  401. package/src/components/DataTableCell/CellOptionsEditor.tsx +29 -12
  402. package/src/components/DataTableCell/DataTableCell.stories.tsx +3 -3
  403. package/src/components/DataTableCell/cellDraftPolicy.spec.tsx +131 -4
  404. package/src/components/DataTableCell/dataTableCell.spec.tsx +36 -1
  405. package/src/components/DataTableCell/index.tsx +121 -86
  406. package/src/components/DataTableColumnPinning/DataTableColumnPinning.spec.tsx +66 -0
  407. package/src/components/DataTableColumnPinning/index.tsx +32 -17
  408. package/src/components/DataTableDateFilter/DataTableDateFilter.spec.tsx +9 -1
  409. package/src/components/DataTableDateFilter/dateFilterZones.spec.ts +316 -0
  410. package/src/components/DataTableDateFilter/index.tsx +42 -22
  411. package/src/components/DataTableExport/exportDateZones.spec.tsx +348 -0
  412. package/src/components/DataTableExport/index.tsx +107 -63
  413. package/src/components/DataTableFacetMenu/DataTableFacetMenu.spec.tsx +264 -0
  414. package/src/components/DataTableFacetMenu/DataTableFacetMenu.stories.tsx +212 -0
  415. package/src/components/DataTableFacetMenu/index.tsx +202 -0
  416. package/src/components/DataTableFilterButton/index.tsx +66 -49
  417. package/src/components/DataTableFilterChips/DataTableFilterChips.spec.tsx +22 -0
  418. package/src/components/DataTableFilterChips/FilterChip.tsx +122 -0
  419. package/src/components/DataTableFilterChips/index.tsx +13 -29
  420. package/src/components/DataTableFilters/DataTableFilters.spec.tsx +56 -0
  421. package/src/components/DataTableFilters/index.tsx +169 -584
  422. package/src/components/DataTableGrouping/DataTableGrouping.spec.tsx +85 -0
  423. package/src/components/DataTableGrouping/index.tsx +270 -130
  424. package/src/components/DataTablePagination/DataTablePagination.spec.tsx +79 -4
  425. package/src/components/DataTablePagination/index.tsx +168 -112
  426. package/src/components/DataTableSearch/DataTableSearch.spec.tsx +40 -0
  427. package/src/components/DataTableSearch/DataTableSearch.stories.tsx +1 -1
  428. package/src/components/DataTableSearch/index.tsx +192 -163
  429. package/src/components/DataTableToolbar/DataTableToolbar.spec.tsx +48 -18
  430. package/src/components/DataTableToolbar/DataTableToolbar.stories.tsx +5 -45
  431. package/src/components/DataTableToolbar/index.tsx +128 -99
  432. package/src/components/DataTableViewOptions/index.tsx +29 -22
  433. package/src/components/SimpleTable/SimpleTable.stories.tsx +29 -5
  434. package/src/components/SimpleTable/index.tsx +442 -61
  435. package/src/components/SimpleTable/simpleTable.spec.tsx +140 -12
  436. package/src/components/TableInput/index.native.tsx +91 -81
  437. package/src/components/TableInput/index.tsx +191 -50
  438. package/src/components/TableInput/shared.ts +57 -0
  439. package/src/components/TableInput/tableInput.spec.tsx +104 -0
  440. package/src/hooks/useDataTable.spec.ts +100 -3
  441. package/src/hooks/useDataTable.ts +44 -1
  442. package/src/hooks/useInfiniteRows.spec.tsx +37 -0
  443. package/src/hooks/useInfiniteRows.ts +34 -4
  444. package/src/index.ts +7 -0
  445. package/src/types.ts +54 -3
  446. package/src/utils/filterUtils.ts +27 -5
  447. package/types/components/ChildTable/index.d.ts.map +1 -1
  448. package/types/components/ColumnHeaderFilter/index.d.ts.map +1 -1
  449. package/types/components/DataTable/DataTableDocumentList.d.ts +32 -0
  450. package/types/components/DataTable/DataTableDocumentList.d.ts.map +1 -0
  451. package/types/components/DataTable/DataTableMobileCards.d.ts +3 -1
  452. package/types/components/DataTable/DataTableMobileCards.d.ts.map +1 -1
  453. package/types/components/DataTable/DataTableRoot.d.ts +1 -1
  454. package/types/components/DataTable/DataTableRoot.d.ts.map +1 -1
  455. package/types/components/DataTable/DataTableVirtualized.d.ts +1 -2
  456. package/types/components/DataTable/DataTableVirtualized.d.ts.map +1 -1
  457. package/types/components/DataTable/documentListSlots.d.ts +26 -0
  458. package/types/components/DataTable/documentListSlots.d.ts.map +1 -0
  459. package/types/components/DataTable/index.native.d.ts +1 -1
  460. package/types/components/DataTable/index.native.d.ts.map +1 -1
  461. package/types/components/DataTable/rowStateChrome.d.ts +18 -0
  462. package/types/components/DataTable/rowStateChrome.d.ts.map +1 -0
  463. package/types/components/DataTableCell/CellModalEditor.d.ts +6 -1
  464. package/types/components/DataTableCell/CellModalEditor.d.ts.map +1 -1
  465. package/types/components/DataTableCell/CellModalEditor.native.d.ts +1 -1
  466. package/types/components/DataTableCell/CellModalEditor.native.d.ts.map +1 -1
  467. package/types/components/DataTableCell/CellOptionsEditor.d.ts +11 -3
  468. package/types/components/DataTableCell/CellOptionsEditor.d.ts.map +1 -1
  469. package/types/components/DataTableCell/index.d.ts +1 -1
  470. package/types/components/DataTableCell/index.d.ts.map +1 -1
  471. package/types/components/DataTableColumnPinning/index.d.ts.map +1 -1
  472. package/types/components/DataTableDateFilter/index.d.ts.map +1 -1
  473. package/types/components/DataTableExport/index.d.ts +17 -6
  474. package/types/components/DataTableExport/index.d.ts.map +1 -1
  475. package/types/components/DataTableFacetMenu/index.d.ts +84 -0
  476. package/types/components/DataTableFacetMenu/index.d.ts.map +1 -0
  477. package/types/components/DataTableFilterButton/index.d.ts.map +1 -1
  478. package/types/components/DataTableFilterChips/FilterChip.d.ts +15 -0
  479. package/types/components/DataTableFilterChips/FilterChip.d.ts.map +1 -0
  480. package/types/components/DataTableFilterChips/index.d.ts +5 -0
  481. package/types/components/DataTableFilterChips/index.d.ts.map +1 -1
  482. package/types/components/DataTableFilters/index.d.ts +11 -0
  483. package/types/components/DataTableFilters/index.d.ts.map +1 -1
  484. package/types/components/DataTableGrouping/index.d.ts.map +1 -1
  485. package/types/components/DataTablePagination/index.d.ts +5 -0
  486. package/types/components/DataTablePagination/index.d.ts.map +1 -1
  487. package/types/components/DataTableSearch/index.d.ts.map +1 -1
  488. package/types/components/DataTableToolbar/index.d.ts +2 -0
  489. package/types/components/DataTableToolbar/index.d.ts.map +1 -1
  490. package/types/components/SimpleTable/index.d.ts +27 -5
  491. package/types/components/SimpleTable/index.d.ts.map +1 -1
  492. package/types/components/TableInput/index.d.ts +6 -1
  493. package/types/components/TableInput/index.d.ts.map +1 -1
  494. package/types/components/TableInput/index.native.d.ts +6 -1
  495. package/types/components/TableInput/index.native.d.ts.map +1 -1
  496. package/types/components/TableInput/shared.d.ts +38 -0
  497. package/types/components/TableInput/shared.d.ts.map +1 -1
  498. package/types/hooks/useDataTable.d.ts +1 -1
  499. package/types/hooks/useDataTable.d.ts.map +1 -1
  500. package/types/hooks/useInfiniteRows.d.ts +8 -1
  501. package/types/hooks/useInfiniteRows.d.ts.map +1 -1
  502. package/types/index.d.ts +1 -0
  503. package/types/index.d.ts.map +1 -1
  504. package/types/types.d.ts +54 -3
  505. package/types/types.d.ts.map +1 -1
  506. 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 {