@multiplatform.one/table 6.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 (1015) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +1105 -0
  3. package/dist/cjs/components/ChildTable/index.cjs +85 -0
  4. package/dist/cjs/components/ChildTable/index.native.js +88 -0
  5. package/dist/cjs/components/ChildTable/index.native.js.map +1 -0
  6. package/dist/cjs/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.cjs +50 -0
  7. package/dist/cjs/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js +55 -0
  8. package/dist/cjs/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js.map +1 -0
  9. package/dist/cjs/components/ColumnHeaderFilter/index.cjs +245 -0
  10. package/dist/cjs/components/ColumnHeaderFilter/index.native.js +260 -0
  11. package/dist/cjs/components/ColumnHeaderFilter/index.native.js.map +1 -0
  12. package/dist/cjs/components/DataTable/DataTable.spec.cjs +516 -0
  13. package/dist/cjs/components/DataTable/DataTable.spec.native.js +539 -0
  14. package/dist/cjs/components/DataTable/DataTable.spec.native.js.map +1 -0
  15. package/dist/cjs/components/DataTable/DataTable.stories.cjs +2779 -0
  16. package/dist/cjs/components/DataTable/DataTable.stories.native.js +2912 -0
  17. package/dist/cjs/components/DataTable/DataTable.stories.native.js.map +1 -0
  18. package/dist/cjs/components/DataTable/DataTableContext.cjs +32 -0
  19. package/dist/cjs/components/DataTable/DataTableContext.native.js +35 -0
  20. package/dist/cjs/components/DataTable/DataTableContext.native.js.map +1 -0
  21. package/dist/cjs/components/DataTable/DataTableMobileCards.cjs +134 -0
  22. package/dist/cjs/components/DataTable/DataTableMobileCards.native.js +147 -0
  23. package/dist/cjs/components/DataTable/DataTableMobileCards.native.js.map +1 -0
  24. package/dist/cjs/components/DataTable/DataTableRoot.cjs +1046 -0
  25. package/dist/cjs/components/DataTable/DataTableRoot.native.js +1116 -0
  26. package/dist/cjs/components/DataTable/DataTableRoot.native.js.map +1 -0
  27. package/dist/cjs/components/DataTable/DataTableStateContext.cjs +33 -0
  28. package/dist/cjs/components/DataTable/DataTableStateContext.native.js +36 -0
  29. package/dist/cjs/components/DataTable/DataTableStateContext.native.js.map +1 -0
  30. package/dist/cjs/components/DataTable/DataTableVirtualized.cjs +92 -0
  31. package/dist/cjs/components/DataTable/DataTableVirtualized.native.js +97 -0
  32. package/dist/cjs/components/DataTable/DataTableVirtualized.native.js.map +1 -0
  33. package/dist/cjs/components/DataTable/FieldsInCells.stories.cjs +244 -0
  34. package/dist/cjs/components/DataTable/FieldsInCells.stories.native.js +265 -0
  35. package/dist/cjs/components/DataTable/FieldsInCells.stories.native.js.map +1 -0
  36. package/dist/cjs/components/DataTable/compoundComponent.spec.cjs +334 -0
  37. package/dist/cjs/components/DataTable/compoundComponent.spec.native.js +348 -0
  38. package/dist/cjs/components/DataTable/compoundComponent.spec.native.js.map +1 -0
  39. package/dist/cjs/components/DataTable/index.cjs +52 -0
  40. package/dist/cjs/components/DataTable/index.native.js +774 -0
  41. package/dist/cjs/components/DataTable/index.native.js.map +1 -0
  42. package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.spec.cjs +305 -0
  43. package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.spec.native.js +340 -0
  44. package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.spec.native.js.map +1 -0
  45. package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.stories.cjs +347 -0
  46. package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.stories.native.js +372 -0
  47. package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.stories.native.js.map +1 -0
  48. package/dist/cjs/components/DataTableBulkActions/index.cjs +319 -0
  49. package/dist/cjs/components/DataTableBulkActions/index.native.js +345 -0
  50. package/dist/cjs/components/DataTableBulkActions/index.native.js.map +1 -0
  51. package/dist/cjs/components/DataTableCell/CellModalEditor.cjs +125 -0
  52. package/dist/cjs/components/DataTableCell/CellModalEditor.native.js +129 -0
  53. package/dist/cjs/components/DataTableCell/CellModalEditor.native.js.map +1 -0
  54. package/dist/cjs/components/DataTableCell/DataTableCell.stories.cjs +50 -0
  55. package/dist/cjs/components/DataTableCell/DataTableCell.stories.native.js +55 -0
  56. package/dist/cjs/components/DataTableCell/DataTableCell.stories.native.js.map +1 -0
  57. package/dist/cjs/components/DataTableCell/dataTableCell.spec.cjs +203 -0
  58. package/dist/cjs/components/DataTableCell/dataTableCell.spec.native.js +220 -0
  59. package/dist/cjs/components/DataTableCell/dataTableCell.spec.native.js.map +1 -0
  60. package/dist/cjs/components/DataTableCell/index.cjs +557 -0
  61. package/dist/cjs/components/DataTableCell/index.native.js +584 -0
  62. package/dist/cjs/components/DataTableCell/index.native.js.map +1 -0
  63. package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.spec.cjs +287 -0
  64. package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js +315 -0
  65. package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js.map +1 -0
  66. package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.stories.cjs +486 -0
  67. package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js +541 -0
  68. package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js.map +1 -0
  69. package/dist/cjs/components/DataTableColumnPinning/index.cjs +229 -0
  70. package/dist/cjs/components/DataTableColumnPinning/index.native.js +257 -0
  71. package/dist/cjs/components/DataTableColumnPinning/index.native.js.map +1 -0
  72. package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.spec.cjs +409 -0
  73. package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.spec.native.js +459 -0
  74. package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.spec.native.js.map +1 -0
  75. package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.stories.cjs +368 -0
  76. package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.stories.native.js +375 -0
  77. package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.stories.native.js.map +1 -0
  78. package/dist/cjs/components/DataTableDateFilter/index.cjs +499 -0
  79. package/dist/cjs/components/DataTableDateFilter/index.native.js +523 -0
  80. package/dist/cjs/components/DataTableDateFilter/index.native.js.map +1 -0
  81. package/dist/cjs/components/DataTableExport/DataTableExport.spec.cjs +334 -0
  82. package/dist/cjs/components/DataTableExport/DataTableExport.spec.native.js +349 -0
  83. package/dist/cjs/components/DataTableExport/DataTableExport.spec.native.js.map +1 -0
  84. package/dist/cjs/components/DataTableExport/DataTableExport.stories.cjs +452 -0
  85. package/dist/cjs/components/DataTableExport/DataTableExport.stories.native.js +479 -0
  86. package/dist/cjs/components/DataTableExport/DataTableExport.stories.native.js.map +1 -0
  87. package/dist/cjs/components/DataTableExport/index.cjs +461 -0
  88. package/dist/cjs/components/DataTableExport/index.native.js +510 -0
  89. package/dist/cjs/components/DataTableExport/index.native.js.map +1 -0
  90. package/dist/cjs/components/DataTableFilters/DataTableFilters.spec.cjs +687 -0
  91. package/dist/cjs/components/DataTableFilters/DataTableFilters.spec.native.js +698 -0
  92. package/dist/cjs/components/DataTableFilters/DataTableFilters.spec.native.js.map +1 -0
  93. package/dist/cjs/components/DataTableFilters/DataTableFilters.stories.cjs +551 -0
  94. package/dist/cjs/components/DataTableFilters/DataTableFilters.stories.native.js +564 -0
  95. package/dist/cjs/components/DataTableFilters/DataTableFilters.stories.native.js.map +1 -0
  96. package/dist/cjs/components/DataTableFilters/index.cjs +600 -0
  97. package/dist/cjs/components/DataTableFilters/index.native.js +643 -0
  98. package/dist/cjs/components/DataTableFilters/index.native.js.map +1 -0
  99. package/dist/cjs/components/DataTableGrouping/DataTableGrouping.spec.cjs +249 -0
  100. package/dist/cjs/components/DataTableGrouping/DataTableGrouping.spec.native.js +284 -0
  101. package/dist/cjs/components/DataTableGrouping/DataTableGrouping.spec.native.js.map +1 -0
  102. package/dist/cjs/components/DataTableGrouping/DataTableGrouping.stories.cjs +523 -0
  103. package/dist/cjs/components/DataTableGrouping/DataTableGrouping.stories.native.js +545 -0
  104. package/dist/cjs/components/DataTableGrouping/DataTableGrouping.stories.native.js.map +1 -0
  105. package/dist/cjs/components/DataTableGrouping/index.cjs +725 -0
  106. package/dist/cjs/components/DataTableGrouping/index.native.js +790 -0
  107. package/dist/cjs/components/DataTableGrouping/index.native.js.map +1 -0
  108. package/dist/cjs/components/DataTablePagination/DataTablePagination.spec.cjs +386 -0
  109. package/dist/cjs/components/DataTablePagination/DataTablePagination.spec.native.js +389 -0
  110. package/dist/cjs/components/DataTablePagination/DataTablePagination.spec.native.js.map +1 -0
  111. package/dist/cjs/components/DataTablePagination/DataTablePagination.stories.cjs +604 -0
  112. package/dist/cjs/components/DataTablePagination/DataTablePagination.stories.native.js +627 -0
  113. package/dist/cjs/components/DataTablePagination/DataTablePagination.stories.native.js.map +1 -0
  114. package/dist/cjs/components/DataTablePagination/index.cjs +434 -0
  115. package/dist/cjs/components/DataTablePagination/index.native.js +488 -0
  116. package/dist/cjs/components/DataTablePagination/index.native.js.map +1 -0
  117. package/dist/cjs/components/DataTableSearch/DataTableSearch.spec.cjs +469 -0
  118. package/dist/cjs/components/DataTableSearch/DataTableSearch.spec.native.js +472 -0
  119. package/dist/cjs/components/DataTableSearch/DataTableSearch.spec.native.js.map +1 -0
  120. package/dist/cjs/components/DataTableSearch/DataTableSearch.stories.cjs +82 -0
  121. package/dist/cjs/components/DataTableSearch/DataTableSearch.stories.native.js +89 -0
  122. package/dist/cjs/components/DataTableSearch/DataTableSearch.stories.native.js.map +1 -0
  123. package/dist/cjs/components/DataTableSearch/index.cjs +452 -0
  124. package/dist/cjs/components/DataTableSearch/index.native.js +494 -0
  125. package/dist/cjs/components/DataTableSearch/index.native.js.map +1 -0
  126. package/dist/cjs/components/DataTableToolbar/DataTableToolbar.spec.cjs +572 -0
  127. package/dist/cjs/components/DataTableToolbar/DataTableToolbar.spec.native.js +575 -0
  128. package/dist/cjs/components/DataTableToolbar/DataTableToolbar.spec.native.js.map +1 -0
  129. package/dist/cjs/components/DataTableToolbar/DataTableToolbar.stories.cjs +51 -0
  130. package/dist/cjs/components/DataTableToolbar/DataTableToolbar.stories.native.js +56 -0
  131. package/dist/cjs/components/DataTableToolbar/DataTableToolbar.stories.native.js.map +1 -0
  132. package/dist/cjs/components/DataTableToolbar/index.cjs +249 -0
  133. package/dist/cjs/components/DataTableToolbar/index.native.js +265 -0
  134. package/dist/cjs/components/DataTableToolbar/index.native.js.map +1 -0
  135. package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.spec.cjs +126 -0
  136. package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.spec.native.js +129 -0
  137. package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.spec.native.js.map +1 -0
  138. package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.stories.cjs +436 -0
  139. package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.stories.native.js +458 -0
  140. package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.stories.native.js.map +1 -0
  141. package/dist/cjs/components/DataTableViewOptions/index.cjs +521 -0
  142. package/dist/cjs/components/DataTableViewOptions/index.native.js +589 -0
  143. package/dist/cjs/components/DataTableViewOptions/index.native.js.map +1 -0
  144. package/dist/cjs/components/FilterManager.cjs +144 -0
  145. package/dist/cjs/components/FilterManager.native.js +159 -0
  146. package/dist/cjs/components/FilterManager.native.js.map +1 -0
  147. package/dist/cjs/components/FilterManager.spec.cjs +52 -0
  148. package/dist/cjs/components/FilterManager.spec.native.js +55 -0
  149. package/dist/cjs/components/FilterManager.spec.native.js.map +1 -0
  150. package/dist/cjs/components/KnobDialog.cjs +101 -0
  151. package/dist/cjs/components/KnobDialog.native.js +106 -0
  152. package/dist/cjs/components/KnobDialog.native.js.map +1 -0
  153. package/dist/cjs/components/SavedFilterDropdown.cjs +65 -0
  154. package/dist/cjs/components/SavedFilterDropdown.native.js +75 -0
  155. package/dist/cjs/components/SavedFilterDropdown.native.js.map +1 -0
  156. package/dist/cjs/components/SavedFilterDropdown.spec.cjs +83 -0
  157. package/dist/cjs/components/SavedFilterDropdown.spec.native.js +86 -0
  158. package/dist/cjs/components/SavedFilterDropdown.spec.native.js.map +1 -0
  159. package/dist/cjs/components/SimpleTable/index.cjs +193 -0
  160. package/dist/cjs/components/SimpleTable/index.native.js +208 -0
  161. package/dist/cjs/components/SimpleTable/index.native.js.map +1 -0
  162. package/dist/cjs/components/SimpleTable/simpleTable.spec.cjs +162 -0
  163. package/dist/cjs/components/SimpleTable/simpleTable.spec.native.js +165 -0
  164. package/dist/cjs/components/SimpleTable/simpleTable.spec.native.js.map +1 -0
  165. package/dist/cjs/components/Table/Table.stories.cjs +196 -0
  166. package/dist/cjs/components/Table/Table.stories.native.js +207 -0
  167. package/dist/cjs/components/Table/Table.stories.native.js.map +1 -0
  168. package/dist/cjs/components/Table/accessibility.spec.cjs +186 -0
  169. package/dist/cjs/components/Table/accessibility.spec.native.js +216 -0
  170. package/dist/cjs/components/Table/accessibility.spec.native.js.map +1 -0
  171. package/dist/cjs/components/TableInput/TableInput.stories.cjs +50 -0
  172. package/dist/cjs/components/TableInput/TableInput.stories.native.js +55 -0
  173. package/dist/cjs/components/TableInput/TableInput.stories.native.js.map +1 -0
  174. package/dist/cjs/components/TableInput/index.cjs +203 -0
  175. package/dist/cjs/components/TableInput/index.native.js +237 -0
  176. package/dist/cjs/components/TableInput/index.native.js.map +1 -0
  177. package/dist/cjs/components/componentConsistency.spec.cjs +37 -0
  178. package/dist/cjs/components/componentConsistency.spec.native.js +48 -0
  179. package/dist/cjs/components/componentConsistency.spec.native.js.map +1 -0
  180. package/dist/cjs/hooks/hookDecomposition.spec.cjs +326 -0
  181. package/dist/cjs/hooks/hookDecomposition.spec.native.js +351 -0
  182. package/dist/cjs/hooks/hookDecomposition.spec.native.js.map +1 -0
  183. package/dist/cjs/hooks/useDataTable.cjs +421 -0
  184. package/dist/cjs/hooks/useDataTable.native.js +456 -0
  185. package/dist/cjs/hooks/useDataTable.native.js.map +1 -0
  186. package/dist/cjs/hooks/useDataTable.spec.cjs +10 -0
  187. package/dist/cjs/hooks/useDataTable.spec.native.js +13 -0
  188. package/dist/cjs/hooks/useDataTable.spec.native.js.map +1 -0
  189. package/dist/cjs/hooks/useDataTableKeyboard.cjs +125 -0
  190. package/dist/cjs/hooks/useDataTableKeyboard.native.js +133 -0
  191. package/dist/cjs/hooks/useDataTableKeyboard.native.js.map +1 -0
  192. package/dist/cjs/hooks/useDragScroll.cjs +87 -0
  193. package/dist/cjs/hooks/useDragScroll.native.js +91 -0
  194. package/dist/cjs/hooks/useDragScroll.native.js.map +1 -0
  195. package/dist/cjs/hooks/useSavedFilters.cjs +114 -0
  196. package/dist/cjs/hooks/useSavedFilters.native.js +129 -0
  197. package/dist/cjs/hooks/useSavedFilters.native.js.map +1 -0
  198. package/dist/cjs/hooks/useSavedFilters.spec.cjs +212 -0
  199. package/dist/cjs/hooks/useSavedFilters.spec.native.js +240 -0
  200. package/dist/cjs/hooks/useSavedFilters.spec.native.js.map +1 -0
  201. package/dist/cjs/hooks/useTableColumnPinning.cjs +63 -0
  202. package/dist/cjs/hooks/useTableColumnPinning.native.js +77 -0
  203. package/dist/cjs/hooks/useTableColumnPinning.native.js.map +1 -0
  204. package/dist/cjs/hooks/useTableFiltering.cjs +81 -0
  205. package/dist/cjs/hooks/useTableFiltering.native.js +97 -0
  206. package/dist/cjs/hooks/useTableFiltering.native.js.map +1 -0
  207. package/dist/cjs/hooks/useTableGrouping.cjs +128 -0
  208. package/dist/cjs/hooks/useTableGrouping.native.js +144 -0
  209. package/dist/cjs/hooks/useTableGrouping.native.js.map +1 -0
  210. package/dist/cjs/hooks/useTableKeyboard.cjs +117 -0
  211. package/dist/cjs/hooks/useTableKeyboard.native.js +125 -0
  212. package/dist/cjs/hooks/useTableKeyboard.native.js.map +1 -0
  213. package/dist/cjs/hooks/useTablePagination.cjs +50 -0
  214. package/dist/cjs/hooks/useTablePagination.native.js +54 -0
  215. package/dist/cjs/hooks/useTablePagination.native.js.map +1 -0
  216. package/dist/cjs/hooks/useTableSearch.cjs +48 -0
  217. package/dist/cjs/hooks/useTableSearch.native.js +54 -0
  218. package/dist/cjs/hooks/useTableSearch.native.js.map +1 -0
  219. package/dist/cjs/hooks/useTableSelection.cjs +61 -0
  220. package/dist/cjs/hooks/useTableSelection.native.js +90 -0
  221. package/dist/cjs/hooks/useTableSelection.native.js.map +1 -0
  222. package/dist/cjs/hooks/useTableSorting.cjs +37 -0
  223. package/dist/cjs/hooks/useTableSorting.native.js +41 -0
  224. package/dist/cjs/hooks/useTableSorting.native.js.map +1 -0
  225. package/dist/cjs/hooks/useTableUrlSync.cjs +52 -0
  226. package/dist/cjs/hooks/useTableUrlSync.native.js +58 -0
  227. package/dist/cjs/hooks/useTableUrlSync.native.js.map +1 -0
  228. package/dist/cjs/hooks/useTableViews.cjs +82 -0
  229. package/dist/cjs/hooks/useTableViews.native.js +96 -0
  230. package/dist/cjs/hooks/useTableViews.native.js.map +1 -0
  231. package/dist/cjs/index.cjs +110 -0
  232. package/dist/cjs/index.native.js +113 -0
  233. package/dist/cjs/index.native.js.map +1 -0
  234. package/dist/cjs/shims/primitives.cjs +31 -0
  235. package/dist/cjs/shims/primitives.native.js +34 -0
  236. package/dist/cjs/shims/primitives.native.js.map +1 -0
  237. package/dist/cjs/shims/tableCellContext.cjs +30 -0
  238. package/dist/cjs/shims/tableCellContext.native.js +33 -0
  239. package/dist/cjs/shims/tableCellContext.native.js.map +1 -0
  240. package/dist/cjs/types.cjs +18 -0
  241. package/dist/cjs/types.native.js +21 -0
  242. package/dist/cjs/types.native.js.map +1 -0
  243. package/dist/cjs/utils/filterUtils.cjs +285 -0
  244. package/dist/cjs/utils/filterUtils.native.js +308 -0
  245. package/dist/cjs/utils/filterUtils.native.js.map +1 -0
  246. package/dist/cjs/utils/filterUtils.spec.cjs +350 -0
  247. package/dist/cjs/utils/filterUtils.spec.native.js +353 -0
  248. package/dist/cjs/utils/filterUtils.spec.native.js.map +1 -0
  249. package/dist/cjs/utils/urlStateUtils.cjs +142 -0
  250. package/dist/cjs/utils/urlStateUtils.native.js +168 -0
  251. package/dist/cjs/utils/urlStateUtils.native.js.map +1 -0
  252. package/dist/cjs/utils/urlStateUtils.spec.cjs +234 -0
  253. package/dist/cjs/utils/urlStateUtils.spec.native.js +239 -0
  254. package/dist/cjs/utils/urlStateUtils.spec.native.js.map +1 -0
  255. package/dist/esm/components/ChildTable/index.mjs +60 -0
  256. package/dist/esm/components/ChildTable/index.mjs.map +1 -0
  257. package/dist/esm/components/ChildTable/index.native.js +60 -0
  258. package/dist/esm/components/ChildTable/index.native.js.map +1 -0
  259. package/dist/esm/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.mjs +24 -0
  260. package/dist/esm/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.mjs.map +1 -0
  261. package/dist/esm/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js +26 -0
  262. package/dist/esm/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js.map +1 -0
  263. package/dist/esm/components/ColumnHeaderFilter/index.mjs +219 -0
  264. package/dist/esm/components/ColumnHeaderFilter/index.mjs.map +1 -0
  265. package/dist/esm/components/ColumnHeaderFilter/index.native.js +231 -0
  266. package/dist/esm/components/ColumnHeaderFilter/index.native.js.map +1 -0
  267. package/dist/esm/components/DataTable/DataTable.spec.mjs +517 -0
  268. package/dist/esm/components/DataTable/DataTable.spec.mjs.map +1 -0
  269. package/dist/esm/components/DataTable/DataTable.spec.native.js +537 -0
  270. package/dist/esm/components/DataTable/DataTable.spec.native.js.map +1 -0
  271. package/dist/esm/components/DataTable/DataTable.stories.mjs +2672 -0
  272. package/dist/esm/components/DataTable/DataTable.stories.mjs.map +1 -0
  273. package/dist/esm/components/DataTable/DataTable.stories.native.js +2802 -0
  274. package/dist/esm/components/DataTable/DataTable.stories.native.js.map +1 -0
  275. package/dist/esm/components/DataTable/DataTableContext.mjs +7 -0
  276. package/dist/esm/components/DataTable/DataTableContext.mjs.map +1 -0
  277. package/dist/esm/components/DataTable/DataTableContext.native.js +7 -0
  278. package/dist/esm/components/DataTable/DataTableContext.native.js.map +1 -0
  279. package/dist/esm/components/DataTable/DataTableMobileCards.mjs +109 -0
  280. package/dist/esm/components/DataTable/DataTableMobileCards.mjs.map +1 -0
  281. package/dist/esm/components/DataTable/DataTableMobileCards.native.js +119 -0
  282. package/dist/esm/components/DataTable/DataTableMobileCards.native.js.map +1 -0
  283. package/dist/esm/components/DataTable/DataTableRoot.mjs +1010 -0
  284. package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -0
  285. package/dist/esm/components/DataTable/DataTableRoot.native.js +1077 -0
  286. package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -0
  287. package/dist/esm/components/DataTable/DataTableStateContext.mjs +7 -0
  288. package/dist/esm/components/DataTable/DataTableStateContext.mjs.map +1 -0
  289. package/dist/esm/components/DataTable/DataTableStateContext.native.js +7 -0
  290. package/dist/esm/components/DataTable/DataTableStateContext.native.js.map +1 -0
  291. package/dist/esm/components/DataTable/DataTableVirtualized.mjs +67 -0
  292. package/dist/esm/components/DataTable/DataTableVirtualized.mjs.map +1 -0
  293. package/dist/esm/components/DataTable/DataTableVirtualized.native.js +69 -0
  294. package/dist/esm/components/DataTable/DataTableVirtualized.native.js.map +1 -0
  295. package/dist/esm/components/DataTable/FieldsInCells.stories.mjs +217 -0
  296. package/dist/esm/components/DataTable/FieldsInCells.stories.mjs.map +1 -0
  297. package/dist/esm/components/DataTable/FieldsInCells.stories.native.js +224 -0
  298. package/dist/esm/components/DataTable/FieldsInCells.stories.native.js.map +1 -0
  299. package/dist/esm/components/DataTable/compoundComponent.spec.mjs +335 -0
  300. package/dist/esm/components/DataTable/compoundComponent.spec.mjs.map +1 -0
  301. package/dist/esm/components/DataTable/compoundComponent.spec.native.js +346 -0
  302. package/dist/esm/components/DataTable/compoundComponent.spec.native.js.map +1 -0
  303. package/dist/esm/components/DataTable/index.mjs +24 -0
  304. package/dist/esm/components/DataTable/index.mjs.map +1 -0
  305. package/dist/esm/components/DataTable/index.native.js +732 -0
  306. package/dist/esm/components/DataTable/index.native.js.map +1 -0
  307. package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.spec.mjs +306 -0
  308. package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.spec.mjs.map +1 -0
  309. package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.spec.native.js +338 -0
  310. package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.spec.native.js.map +1 -0
  311. package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.stories.mjs +304 -0
  312. package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.stories.mjs.map +1 -0
  313. package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.stories.native.js +326 -0
  314. package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.stories.native.js.map +1 -0
  315. package/dist/esm/components/DataTableBulkActions/index.mjs +291 -0
  316. package/dist/esm/components/DataTableBulkActions/index.mjs.map +1 -0
  317. package/dist/esm/components/DataTableBulkActions/index.native.js +314 -0
  318. package/dist/esm/components/DataTableBulkActions/index.native.js.map +1 -0
  319. package/dist/esm/components/DataTableCell/CellModalEditor.mjs +100 -0
  320. package/dist/esm/components/DataTableCell/CellModalEditor.mjs.map +1 -0
  321. package/dist/esm/components/DataTableCell/CellModalEditor.native.js +101 -0
  322. package/dist/esm/components/DataTableCell/CellModalEditor.native.js.map +1 -0
  323. package/dist/esm/components/DataTableCell/DataTableCell.stories.mjs +24 -0
  324. package/dist/esm/components/DataTableCell/DataTableCell.stories.mjs.map +1 -0
  325. package/dist/esm/components/DataTableCell/DataTableCell.stories.native.js +26 -0
  326. package/dist/esm/components/DataTableCell/DataTableCell.stories.native.js.map +1 -0
  327. package/dist/esm/components/DataTableCell/dataTableCell.spec.mjs +180 -0
  328. package/dist/esm/components/DataTableCell/dataTableCell.spec.mjs.map +1 -0
  329. package/dist/esm/components/DataTableCell/dataTableCell.spec.native.js +194 -0
  330. package/dist/esm/components/DataTableCell/dataTableCell.spec.native.js.map +1 -0
  331. package/dist/esm/components/DataTableCell/index.mjs +531 -0
  332. package/dist/esm/components/DataTableCell/index.mjs.map +1 -0
  333. package/dist/esm/components/DataTableCell/index.native.js +544 -0
  334. package/dist/esm/components/DataTableCell/index.native.js.map +1 -0
  335. package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.spec.mjs +264 -0
  336. package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.spec.mjs.map +1 -0
  337. package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js +289 -0
  338. package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js.map +1 -0
  339. package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.stories.mjs +457 -0
  340. package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.stories.mjs.map +1 -0
  341. package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js +509 -0
  342. package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js.map +1 -0
  343. package/dist/esm/components/DataTableColumnPinning/index.mjs +203 -0
  344. package/dist/esm/components/DataTableColumnPinning/index.mjs.map +1 -0
  345. package/dist/esm/components/DataTableColumnPinning/index.native.js +228 -0
  346. package/dist/esm/components/DataTableColumnPinning/index.native.js.map +1 -0
  347. package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.spec.mjs +386 -0
  348. package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.spec.mjs.map +1 -0
  349. package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.spec.native.js +433 -0
  350. package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.spec.native.js.map +1 -0
  351. package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.stories.mjs +325 -0
  352. package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.stories.mjs.map +1 -0
  353. package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.stories.native.js +329 -0
  354. package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.stories.native.js.map +1 -0
  355. package/dist/esm/components/DataTableDateFilter/index.mjs +461 -0
  356. package/dist/esm/components/DataTableDateFilter/index.mjs.map +1 -0
  357. package/dist/esm/components/DataTableDateFilter/index.native.js +482 -0
  358. package/dist/esm/components/DataTableDateFilter/index.native.js.map +1 -0
  359. package/dist/esm/components/DataTableExport/DataTableExport.spec.mjs +335 -0
  360. package/dist/esm/components/DataTableExport/DataTableExport.spec.mjs.map +1 -0
  361. package/dist/esm/components/DataTableExport/DataTableExport.spec.native.js +347 -0
  362. package/dist/esm/components/DataTableExport/DataTableExport.spec.native.js.map +1 -0
  363. package/dist/esm/components/DataTableExport/DataTableExport.stories.mjs +419 -0
  364. package/dist/esm/components/DataTableExport/DataTableExport.stories.mjs.map +1 -0
  365. package/dist/esm/components/DataTableExport/DataTableExport.stories.native.js +443 -0
  366. package/dist/esm/components/DataTableExport/DataTableExport.stories.native.js.map +1 -0
  367. package/dist/esm/components/DataTableExport/index.mjs +436 -0
  368. package/dist/esm/components/DataTableExport/index.mjs.map +1 -0
  369. package/dist/esm/components/DataTableExport/index.native.js +482 -0
  370. package/dist/esm/components/DataTableExport/index.native.js.map +1 -0
  371. package/dist/esm/components/DataTableFilters/DataTableFilters.spec.mjs +688 -0
  372. package/dist/esm/components/DataTableFilters/DataTableFilters.spec.mjs.map +1 -0
  373. package/dist/esm/components/DataTableFilters/DataTableFilters.spec.native.js +696 -0
  374. package/dist/esm/components/DataTableFilters/DataTableFilters.spec.native.js.map +1 -0
  375. package/dist/esm/components/DataTableFilters/DataTableFilters.stories.mjs +499 -0
  376. package/dist/esm/components/DataTableFilters/DataTableFilters.stories.mjs.map +1 -0
  377. package/dist/esm/components/DataTableFilters/DataTableFilters.stories.native.js +509 -0
  378. package/dist/esm/components/DataTableFilters/DataTableFilters.stories.native.js.map +1 -0
  379. package/dist/esm/components/DataTableFilters/index.mjs +575 -0
  380. package/dist/esm/components/DataTableFilters/index.mjs.map +1 -0
  381. package/dist/esm/components/DataTableFilters/index.native.js +615 -0
  382. package/dist/esm/components/DataTableFilters/index.native.js.map +1 -0
  383. package/dist/esm/components/DataTableGrouping/DataTableGrouping.spec.mjs +249 -0
  384. package/dist/esm/components/DataTableGrouping/DataTableGrouping.spec.mjs.map +1 -0
  385. package/dist/esm/components/DataTableGrouping/DataTableGrouping.spec.native.js +281 -0
  386. package/dist/esm/components/DataTableGrouping/DataTableGrouping.spec.native.js.map +1 -0
  387. package/dist/esm/components/DataTableGrouping/DataTableGrouping.stories.mjs +479 -0
  388. package/dist/esm/components/DataTableGrouping/DataTableGrouping.stories.mjs.map +1 -0
  389. package/dist/esm/components/DataTableGrouping/DataTableGrouping.stories.native.js +498 -0
  390. package/dist/esm/components/DataTableGrouping/DataTableGrouping.stories.native.js.map +1 -0
  391. package/dist/esm/components/DataTableGrouping/index.mjs +697 -0
  392. package/dist/esm/components/DataTableGrouping/index.mjs.map +1 -0
  393. package/dist/esm/components/DataTableGrouping/index.native.js +759 -0
  394. package/dist/esm/components/DataTableGrouping/index.native.js.map +1 -0
  395. package/dist/esm/components/DataTablePagination/DataTablePagination.spec.mjs +387 -0
  396. package/dist/esm/components/DataTablePagination/DataTablePagination.spec.mjs.map +1 -0
  397. package/dist/esm/components/DataTablePagination/DataTablePagination.spec.native.js +387 -0
  398. package/dist/esm/components/DataTablePagination/DataTablePagination.spec.native.js.map +1 -0
  399. package/dist/esm/components/DataTablePagination/DataTablePagination.stories.mjs +546 -0
  400. package/dist/esm/components/DataTablePagination/DataTablePagination.stories.mjs.map +1 -0
  401. package/dist/esm/components/DataTablePagination/DataTablePagination.stories.native.js +566 -0
  402. package/dist/esm/components/DataTablePagination/DataTablePagination.stories.native.js.map +1 -0
  403. package/dist/esm/components/DataTablePagination/index.mjs +407 -0
  404. package/dist/esm/components/DataTablePagination/index.mjs.map +1 -0
  405. package/dist/esm/components/DataTablePagination/index.native.js +447 -0
  406. package/dist/esm/components/DataTablePagination/index.native.js.map +1 -0
  407. package/dist/esm/components/DataTableSearch/DataTableSearch.spec.mjs +470 -0
  408. package/dist/esm/components/DataTableSearch/DataTableSearch.spec.mjs.map +1 -0
  409. package/dist/esm/components/DataTableSearch/DataTableSearch.spec.native.js +470 -0
  410. package/dist/esm/components/DataTableSearch/DataTableSearch.spec.native.js.map +1 -0
  411. package/dist/esm/components/DataTableSearch/DataTableSearch.stories.mjs +56 -0
  412. package/dist/esm/components/DataTableSearch/DataTableSearch.stories.mjs.map +1 -0
  413. package/dist/esm/components/DataTableSearch/DataTableSearch.stories.native.js +60 -0
  414. package/dist/esm/components/DataTableSearch/DataTableSearch.stories.native.js.map +1 -0
  415. package/dist/esm/components/DataTableSearch/index.mjs +424 -0
  416. package/dist/esm/components/DataTableSearch/index.mjs.map +1 -0
  417. package/dist/esm/components/DataTableSearch/index.native.js +463 -0
  418. package/dist/esm/components/DataTableSearch/index.native.js.map +1 -0
  419. package/dist/esm/components/DataTableToolbar/DataTableToolbar.spec.mjs +573 -0
  420. package/dist/esm/components/DataTableToolbar/DataTableToolbar.spec.mjs.map +1 -0
  421. package/dist/esm/components/DataTableToolbar/DataTableToolbar.spec.native.js +573 -0
  422. package/dist/esm/components/DataTableToolbar/DataTableToolbar.spec.native.js.map +1 -0
  423. package/dist/esm/components/DataTableToolbar/DataTableToolbar.stories.mjs +25 -0
  424. package/dist/esm/components/DataTableToolbar/DataTableToolbar.stories.mjs.map +1 -0
  425. package/dist/esm/components/DataTableToolbar/DataTableToolbar.stories.native.js +27 -0
  426. package/dist/esm/components/DataTableToolbar/DataTableToolbar.stories.native.js.map +1 -0
  427. package/dist/esm/components/DataTableToolbar/index.mjs +222 -0
  428. package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -0
  429. package/dist/esm/components/DataTableToolbar/index.native.js +235 -0
  430. package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -0
  431. package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.spec.mjs +126 -0
  432. package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.spec.mjs.map +1 -0
  433. package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.spec.native.js +126 -0
  434. package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.spec.native.js.map +1 -0
  435. package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.stories.mjs +393 -0
  436. package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.stories.mjs.map +1 -0
  437. package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.stories.native.js +412 -0
  438. package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.stories.native.js.map +1 -0
  439. package/dist/esm/components/DataTableViewOptions/index.mjs +496 -0
  440. package/dist/esm/components/DataTableViewOptions/index.mjs.map +1 -0
  441. package/dist/esm/components/DataTableViewOptions/index.native.js +550 -0
  442. package/dist/esm/components/DataTableViewOptions/index.native.js.map +1 -0
  443. package/dist/esm/components/FilterManager.mjs +119 -0
  444. package/dist/esm/components/FilterManager.mjs.map +1 -0
  445. package/dist/esm/components/FilterManager.native.js +131 -0
  446. package/dist/esm/components/FilterManager.native.js.map +1 -0
  447. package/dist/esm/components/FilterManager.spec.mjs +53 -0
  448. package/dist/esm/components/FilterManager.spec.mjs.map +1 -0
  449. package/dist/esm/components/FilterManager.spec.native.js +53 -0
  450. package/dist/esm/components/FilterManager.spec.native.js.map +1 -0
  451. package/dist/esm/components/KnobDialog.mjs +71 -0
  452. package/dist/esm/components/KnobDialog.mjs.map +1 -0
  453. package/dist/esm/components/KnobDialog.native.js +73 -0
  454. package/dist/esm/components/KnobDialog.native.js.map +1 -0
  455. package/dist/esm/components/SavedFilterDropdown.mjs +40 -0
  456. package/dist/esm/components/SavedFilterDropdown.mjs.map +1 -0
  457. package/dist/esm/components/SavedFilterDropdown.native.js +47 -0
  458. package/dist/esm/components/SavedFilterDropdown.native.js.map +1 -0
  459. package/dist/esm/components/SavedFilterDropdown.spec.mjs +84 -0
  460. package/dist/esm/components/SavedFilterDropdown.spec.mjs.map +1 -0
  461. package/dist/esm/components/SavedFilterDropdown.spec.native.js +84 -0
  462. package/dist/esm/components/SavedFilterDropdown.spec.native.js.map +1 -0
  463. package/dist/esm/components/SimpleTable/index.mjs +167 -0
  464. package/dist/esm/components/SimpleTable/index.mjs.map +1 -0
  465. package/dist/esm/components/SimpleTable/index.native.js +179 -0
  466. package/dist/esm/components/SimpleTable/index.native.js.map +1 -0
  467. package/dist/esm/components/SimpleTable/simpleTable.spec.mjs +163 -0
  468. package/dist/esm/components/SimpleTable/simpleTable.spec.mjs.map +1 -0
  469. package/dist/esm/components/SimpleTable/simpleTable.spec.native.js +163 -0
  470. package/dist/esm/components/SimpleTable/simpleTable.spec.native.js.map +1 -0
  471. package/dist/esm/components/Table/Table.stories.mjs +167 -0
  472. package/dist/esm/components/Table/Table.stories.mjs.map +1 -0
  473. package/dist/esm/components/Table/Table.stories.native.js +175 -0
  474. package/dist/esm/components/Table/Table.stories.native.js.map +1 -0
  475. package/dist/esm/components/Table/accessibility.spec.mjs +187 -0
  476. package/dist/esm/components/Table/accessibility.spec.mjs.map +1 -0
  477. package/dist/esm/components/Table/accessibility.spec.native.js +214 -0
  478. package/dist/esm/components/Table/accessibility.spec.native.js.map +1 -0
  479. package/dist/esm/components/TableInput/TableInput.stories.mjs +24 -0
  480. package/dist/esm/components/TableInput/TableInput.stories.mjs.map +1 -0
  481. package/dist/esm/components/TableInput/TableInput.stories.native.js +26 -0
  482. package/dist/esm/components/TableInput/TableInput.stories.native.js.map +1 -0
  483. package/dist/esm/components/TableInput/index.mjs +178 -0
  484. package/dist/esm/components/TableInput/index.mjs.map +1 -0
  485. package/dist/esm/components/TableInput/index.native.js +209 -0
  486. package/dist/esm/components/TableInput/index.native.js.map +1 -0
  487. package/dist/esm/components/componentConsistency.spec.mjs +38 -0
  488. package/dist/esm/components/componentConsistency.spec.mjs.map +1 -0
  489. package/dist/esm/components/componentConsistency.spec.native.js +46 -0
  490. package/dist/esm/components/componentConsistency.spec.native.js.map +1 -0
  491. package/dist/esm/hooks/hookDecomposition.spec.mjs +327 -0
  492. package/dist/esm/hooks/hookDecomposition.spec.mjs.map +1 -0
  493. package/dist/esm/hooks/hookDecomposition.spec.native.js +349 -0
  494. package/dist/esm/hooks/hookDecomposition.spec.native.js.map +1 -0
  495. package/dist/esm/hooks/useDataTable.mjs +384 -0
  496. package/dist/esm/hooks/useDataTable.mjs.map +1 -0
  497. package/dist/esm/hooks/useDataTable.native.js +416 -0
  498. package/dist/esm/hooks/useDataTable.native.js.map +1 -0
  499. package/dist/esm/hooks/useDataTable.spec.mjs +11 -0
  500. package/dist/esm/hooks/useDataTable.spec.mjs.map +1 -0
  501. package/dist/esm/hooks/useDataTable.spec.native.js +11 -0
  502. package/dist/esm/hooks/useDataTable.spec.native.js.map +1 -0
  503. package/dist/esm/hooks/useDataTableKeyboard.mjs +100 -0
  504. package/dist/esm/hooks/useDataTableKeyboard.mjs.map +1 -0
  505. package/dist/esm/hooks/useDataTableKeyboard.native.js +105 -0
  506. package/dist/esm/hooks/useDataTableKeyboard.native.js.map +1 -0
  507. package/dist/esm/hooks/useDragScroll.mjs +62 -0
  508. package/dist/esm/hooks/useDragScroll.mjs.map +1 -0
  509. package/dist/esm/hooks/useDragScroll.native.js +63 -0
  510. package/dist/esm/hooks/useDragScroll.native.js.map +1 -0
  511. package/dist/esm/hooks/useSavedFilters.mjs +89 -0
  512. package/dist/esm/hooks/useSavedFilters.mjs.map +1 -0
  513. package/dist/esm/hooks/useSavedFilters.native.js +101 -0
  514. package/dist/esm/hooks/useSavedFilters.native.js.map +1 -0
  515. package/dist/esm/hooks/useSavedFilters.spec.mjs +213 -0
  516. package/dist/esm/hooks/useSavedFilters.spec.mjs.map +1 -0
  517. package/dist/esm/hooks/useSavedFilters.spec.native.js +238 -0
  518. package/dist/esm/hooks/useSavedFilters.spec.native.js.map +1 -0
  519. package/dist/esm/hooks/useTableColumnPinning.mjs +38 -0
  520. package/dist/esm/hooks/useTableColumnPinning.mjs.map +1 -0
  521. package/dist/esm/hooks/useTableColumnPinning.native.js +49 -0
  522. package/dist/esm/hooks/useTableColumnPinning.native.js.map +1 -0
  523. package/dist/esm/hooks/useTableFiltering.mjs +56 -0
  524. package/dist/esm/hooks/useTableFiltering.mjs.map +1 -0
  525. package/dist/esm/hooks/useTableFiltering.native.js +69 -0
  526. package/dist/esm/hooks/useTableFiltering.native.js.map +1 -0
  527. package/dist/esm/hooks/useTableGrouping.mjs +103 -0
  528. package/dist/esm/hooks/useTableGrouping.mjs.map +1 -0
  529. package/dist/esm/hooks/useTableGrouping.native.js +116 -0
  530. package/dist/esm/hooks/useTableGrouping.native.js.map +1 -0
  531. package/dist/esm/hooks/useTableKeyboard.mjs +92 -0
  532. package/dist/esm/hooks/useTableKeyboard.mjs.map +1 -0
  533. package/dist/esm/hooks/useTableKeyboard.native.js +97 -0
  534. package/dist/esm/hooks/useTableKeyboard.native.js.map +1 -0
  535. package/dist/esm/hooks/useTablePagination.mjs +25 -0
  536. package/dist/esm/hooks/useTablePagination.mjs.map +1 -0
  537. package/dist/esm/hooks/useTablePagination.native.js +26 -0
  538. package/dist/esm/hooks/useTablePagination.native.js.map +1 -0
  539. package/dist/esm/hooks/useTableSearch.mjs +23 -0
  540. package/dist/esm/hooks/useTableSearch.mjs.map +1 -0
  541. package/dist/esm/hooks/useTableSearch.native.js +26 -0
  542. package/dist/esm/hooks/useTableSearch.native.js.map +1 -0
  543. package/dist/esm/hooks/useTableSelection.mjs +36 -0
  544. package/dist/esm/hooks/useTableSelection.mjs.map +1 -0
  545. package/dist/esm/hooks/useTableSelection.native.js +62 -0
  546. package/dist/esm/hooks/useTableSelection.native.js.map +1 -0
  547. package/dist/esm/hooks/useTableSorting.mjs +12 -0
  548. package/dist/esm/hooks/useTableSorting.mjs.map +1 -0
  549. package/dist/esm/hooks/useTableSorting.native.js +13 -0
  550. package/dist/esm/hooks/useTableSorting.native.js.map +1 -0
  551. package/dist/esm/hooks/useTableUrlSync.mjs +27 -0
  552. package/dist/esm/hooks/useTableUrlSync.mjs.map +1 -0
  553. package/dist/esm/hooks/useTableUrlSync.native.js +30 -0
  554. package/dist/esm/hooks/useTableUrlSync.native.js.map +1 -0
  555. package/dist/esm/hooks/useTableViews.mjs +57 -0
  556. package/dist/esm/hooks/useTableViews.mjs.map +1 -0
  557. package/dist/esm/hooks/useTableViews.native.js +68 -0
  558. package/dist/esm/hooks/useTableViews.native.js.map +1 -0
  559. package/dist/esm/index.mjs +39 -0
  560. package/dist/esm/index.mjs.map +1 -0
  561. package/dist/esm/index.native.js +39 -0
  562. package/dist/esm/index.native.js.map +1 -0
  563. package/dist/esm/shims/primitives.mjs +3 -0
  564. package/dist/esm/shims/primitives.mjs.map +1 -0
  565. package/dist/esm/shims/primitives.native.js +3 -0
  566. package/dist/esm/shims/primitives.native.js.map +1 -0
  567. package/dist/esm/shims/tableCellContext.mjs +3 -0
  568. package/dist/esm/shims/tableCellContext.mjs.map +1 -0
  569. package/dist/esm/shims/tableCellContext.native.js +3 -0
  570. package/dist/esm/shims/tableCellContext.native.js.map +1 -0
  571. package/dist/esm/types.mjs +2 -0
  572. package/dist/esm/types.mjs.map +1 -0
  573. package/dist/esm/types.native.js +2 -0
  574. package/dist/esm/types.native.js.map +1 -0
  575. package/dist/esm/utils/filterUtils.mjs +250 -0
  576. package/dist/esm/utils/filterUtils.mjs.map +1 -0
  577. package/dist/esm/utils/filterUtils.native.js +270 -0
  578. package/dist/esm/utils/filterUtils.native.js.map +1 -0
  579. package/dist/esm/utils/filterUtils.spec.mjs +351 -0
  580. package/dist/esm/utils/filterUtils.spec.mjs.map +1 -0
  581. package/dist/esm/utils/filterUtils.spec.native.js +351 -0
  582. package/dist/esm/utils/filterUtils.spec.native.js.map +1 -0
  583. package/dist/esm/utils/urlStateUtils.mjs +115 -0
  584. package/dist/esm/utils/urlStateUtils.mjs.map +1 -0
  585. package/dist/esm/utils/urlStateUtils.native.js +138 -0
  586. package/dist/esm/utils/urlStateUtils.native.js.map +1 -0
  587. package/dist/esm/utils/urlStateUtils.spec.mjs +235 -0
  588. package/dist/esm/utils/urlStateUtils.spec.mjs.map +1 -0
  589. package/dist/esm/utils/urlStateUtils.spec.native.js +237 -0
  590. package/dist/esm/utils/urlStateUtils.spec.native.js.map +1 -0
  591. package/dist/jsx/components/ChildTable/index.mjs +60 -0
  592. package/dist/jsx/components/ChildTable/index.mjs.map +1 -0
  593. package/dist/jsx/components/ChildTable/index.native.js +88 -0
  594. package/dist/jsx/components/ChildTable/index.native.js.map +1 -0
  595. package/dist/jsx/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.mjs +24 -0
  596. package/dist/jsx/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.mjs.map +1 -0
  597. package/dist/jsx/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js +55 -0
  598. package/dist/jsx/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js.map +1 -0
  599. package/dist/jsx/components/ColumnHeaderFilter/index.mjs +219 -0
  600. package/dist/jsx/components/ColumnHeaderFilter/index.mjs.map +1 -0
  601. package/dist/jsx/components/ColumnHeaderFilter/index.native.js +260 -0
  602. package/dist/jsx/components/ColumnHeaderFilter/index.native.js.map +1 -0
  603. package/dist/jsx/components/DataTable/DataTable.spec.mjs +517 -0
  604. package/dist/jsx/components/DataTable/DataTable.spec.mjs.map +1 -0
  605. package/dist/jsx/components/DataTable/DataTable.spec.native.js +539 -0
  606. package/dist/jsx/components/DataTable/DataTable.spec.native.js.map +1 -0
  607. package/dist/jsx/components/DataTable/DataTable.stories.mjs +2672 -0
  608. package/dist/jsx/components/DataTable/DataTable.stories.mjs.map +1 -0
  609. package/dist/jsx/components/DataTable/DataTable.stories.native.js +2912 -0
  610. package/dist/jsx/components/DataTable/DataTable.stories.native.js.map +1 -0
  611. package/dist/jsx/components/DataTable/DataTableContext.mjs +7 -0
  612. package/dist/jsx/components/DataTable/DataTableContext.mjs.map +1 -0
  613. package/dist/jsx/components/DataTable/DataTableContext.native.js +35 -0
  614. package/dist/jsx/components/DataTable/DataTableContext.native.js.map +1 -0
  615. package/dist/jsx/components/DataTable/DataTableMobileCards.mjs +109 -0
  616. package/dist/jsx/components/DataTable/DataTableMobileCards.mjs.map +1 -0
  617. package/dist/jsx/components/DataTable/DataTableMobileCards.native.js +147 -0
  618. package/dist/jsx/components/DataTable/DataTableMobileCards.native.js.map +1 -0
  619. package/dist/jsx/components/DataTable/DataTableRoot.mjs +1010 -0
  620. package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -0
  621. package/dist/jsx/components/DataTable/DataTableRoot.native.js +1116 -0
  622. package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -0
  623. package/dist/jsx/components/DataTable/DataTableStateContext.mjs +7 -0
  624. package/dist/jsx/components/DataTable/DataTableStateContext.mjs.map +1 -0
  625. package/dist/jsx/components/DataTable/DataTableStateContext.native.js +36 -0
  626. package/dist/jsx/components/DataTable/DataTableStateContext.native.js.map +1 -0
  627. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs +67 -0
  628. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs.map +1 -0
  629. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js +97 -0
  630. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js.map +1 -0
  631. package/dist/jsx/components/DataTable/FieldsInCells.stories.mjs +217 -0
  632. package/dist/jsx/components/DataTable/FieldsInCells.stories.mjs.map +1 -0
  633. package/dist/jsx/components/DataTable/FieldsInCells.stories.native.js +265 -0
  634. package/dist/jsx/components/DataTable/FieldsInCells.stories.native.js.map +1 -0
  635. package/dist/jsx/components/DataTable/compoundComponent.spec.mjs +335 -0
  636. package/dist/jsx/components/DataTable/compoundComponent.spec.mjs.map +1 -0
  637. package/dist/jsx/components/DataTable/compoundComponent.spec.native.js +348 -0
  638. package/dist/jsx/components/DataTable/compoundComponent.spec.native.js.map +1 -0
  639. package/dist/jsx/components/DataTable/index.mjs +24 -0
  640. package/dist/jsx/components/DataTable/index.mjs.map +1 -0
  641. package/dist/jsx/components/DataTable/index.native.js +774 -0
  642. package/dist/jsx/components/DataTable/index.native.js.map +1 -0
  643. package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.spec.mjs +306 -0
  644. package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.spec.mjs.map +1 -0
  645. package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.spec.native.js +340 -0
  646. package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.spec.native.js.map +1 -0
  647. package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.stories.mjs +304 -0
  648. package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.stories.mjs.map +1 -0
  649. package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.stories.native.js +372 -0
  650. package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.stories.native.js.map +1 -0
  651. package/dist/jsx/components/DataTableBulkActions/index.mjs +291 -0
  652. package/dist/jsx/components/DataTableBulkActions/index.mjs.map +1 -0
  653. package/dist/jsx/components/DataTableBulkActions/index.native.js +345 -0
  654. package/dist/jsx/components/DataTableBulkActions/index.native.js.map +1 -0
  655. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs +100 -0
  656. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs.map +1 -0
  657. package/dist/jsx/components/DataTableCell/CellModalEditor.native.js +129 -0
  658. package/dist/jsx/components/DataTableCell/CellModalEditor.native.js.map +1 -0
  659. package/dist/jsx/components/DataTableCell/DataTableCell.stories.mjs +24 -0
  660. package/dist/jsx/components/DataTableCell/DataTableCell.stories.mjs.map +1 -0
  661. package/dist/jsx/components/DataTableCell/DataTableCell.stories.native.js +55 -0
  662. package/dist/jsx/components/DataTableCell/DataTableCell.stories.native.js.map +1 -0
  663. package/dist/jsx/components/DataTableCell/dataTableCell.spec.mjs +180 -0
  664. package/dist/jsx/components/DataTableCell/dataTableCell.spec.mjs.map +1 -0
  665. package/dist/jsx/components/DataTableCell/dataTableCell.spec.native.js +220 -0
  666. package/dist/jsx/components/DataTableCell/dataTableCell.spec.native.js.map +1 -0
  667. package/dist/jsx/components/DataTableCell/index.mjs +531 -0
  668. package/dist/jsx/components/DataTableCell/index.mjs.map +1 -0
  669. package/dist/jsx/components/DataTableCell/index.native.js +584 -0
  670. package/dist/jsx/components/DataTableCell/index.native.js.map +1 -0
  671. package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.spec.mjs +264 -0
  672. package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.spec.mjs.map +1 -0
  673. package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js +315 -0
  674. package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js.map +1 -0
  675. package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.stories.mjs +457 -0
  676. package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.stories.mjs.map +1 -0
  677. package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js +541 -0
  678. package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js.map +1 -0
  679. package/dist/jsx/components/DataTableColumnPinning/index.mjs +203 -0
  680. package/dist/jsx/components/DataTableColumnPinning/index.mjs.map +1 -0
  681. package/dist/jsx/components/DataTableColumnPinning/index.native.js +257 -0
  682. package/dist/jsx/components/DataTableColumnPinning/index.native.js.map +1 -0
  683. package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.spec.mjs +386 -0
  684. package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.spec.mjs.map +1 -0
  685. package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.spec.native.js +459 -0
  686. package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.spec.native.js.map +1 -0
  687. package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.stories.mjs +325 -0
  688. package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.stories.mjs.map +1 -0
  689. package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.stories.native.js +375 -0
  690. package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.stories.native.js.map +1 -0
  691. package/dist/jsx/components/DataTableDateFilter/index.mjs +461 -0
  692. package/dist/jsx/components/DataTableDateFilter/index.mjs.map +1 -0
  693. package/dist/jsx/components/DataTableDateFilter/index.native.js +523 -0
  694. package/dist/jsx/components/DataTableDateFilter/index.native.js.map +1 -0
  695. package/dist/jsx/components/DataTableExport/DataTableExport.spec.mjs +335 -0
  696. package/dist/jsx/components/DataTableExport/DataTableExport.spec.mjs.map +1 -0
  697. package/dist/jsx/components/DataTableExport/DataTableExport.spec.native.js +349 -0
  698. package/dist/jsx/components/DataTableExport/DataTableExport.spec.native.js.map +1 -0
  699. package/dist/jsx/components/DataTableExport/DataTableExport.stories.mjs +419 -0
  700. package/dist/jsx/components/DataTableExport/DataTableExport.stories.mjs.map +1 -0
  701. package/dist/jsx/components/DataTableExport/DataTableExport.stories.native.js +479 -0
  702. package/dist/jsx/components/DataTableExport/DataTableExport.stories.native.js.map +1 -0
  703. package/dist/jsx/components/DataTableExport/index.mjs +436 -0
  704. package/dist/jsx/components/DataTableExport/index.mjs.map +1 -0
  705. package/dist/jsx/components/DataTableExport/index.native.js +510 -0
  706. package/dist/jsx/components/DataTableExport/index.native.js.map +1 -0
  707. package/dist/jsx/components/DataTableFilters/DataTableFilters.spec.mjs +688 -0
  708. package/dist/jsx/components/DataTableFilters/DataTableFilters.spec.mjs.map +1 -0
  709. package/dist/jsx/components/DataTableFilters/DataTableFilters.spec.native.js +698 -0
  710. package/dist/jsx/components/DataTableFilters/DataTableFilters.spec.native.js.map +1 -0
  711. package/dist/jsx/components/DataTableFilters/DataTableFilters.stories.mjs +499 -0
  712. package/dist/jsx/components/DataTableFilters/DataTableFilters.stories.mjs.map +1 -0
  713. package/dist/jsx/components/DataTableFilters/DataTableFilters.stories.native.js +564 -0
  714. package/dist/jsx/components/DataTableFilters/DataTableFilters.stories.native.js.map +1 -0
  715. package/dist/jsx/components/DataTableFilters/index.mjs +575 -0
  716. package/dist/jsx/components/DataTableFilters/index.mjs.map +1 -0
  717. package/dist/jsx/components/DataTableFilters/index.native.js +643 -0
  718. package/dist/jsx/components/DataTableFilters/index.native.js.map +1 -0
  719. package/dist/jsx/components/DataTableGrouping/DataTableGrouping.spec.mjs +249 -0
  720. package/dist/jsx/components/DataTableGrouping/DataTableGrouping.spec.mjs.map +1 -0
  721. package/dist/jsx/components/DataTableGrouping/DataTableGrouping.spec.native.js +284 -0
  722. package/dist/jsx/components/DataTableGrouping/DataTableGrouping.spec.native.js.map +1 -0
  723. package/dist/jsx/components/DataTableGrouping/DataTableGrouping.stories.mjs +479 -0
  724. package/dist/jsx/components/DataTableGrouping/DataTableGrouping.stories.mjs.map +1 -0
  725. package/dist/jsx/components/DataTableGrouping/DataTableGrouping.stories.native.js +545 -0
  726. package/dist/jsx/components/DataTableGrouping/DataTableGrouping.stories.native.js.map +1 -0
  727. package/dist/jsx/components/DataTableGrouping/index.mjs +697 -0
  728. package/dist/jsx/components/DataTableGrouping/index.mjs.map +1 -0
  729. package/dist/jsx/components/DataTableGrouping/index.native.js +790 -0
  730. package/dist/jsx/components/DataTableGrouping/index.native.js.map +1 -0
  731. package/dist/jsx/components/DataTablePagination/DataTablePagination.spec.mjs +387 -0
  732. package/dist/jsx/components/DataTablePagination/DataTablePagination.spec.mjs.map +1 -0
  733. package/dist/jsx/components/DataTablePagination/DataTablePagination.spec.native.js +389 -0
  734. package/dist/jsx/components/DataTablePagination/DataTablePagination.spec.native.js.map +1 -0
  735. package/dist/jsx/components/DataTablePagination/DataTablePagination.stories.mjs +546 -0
  736. package/dist/jsx/components/DataTablePagination/DataTablePagination.stories.mjs.map +1 -0
  737. package/dist/jsx/components/DataTablePagination/DataTablePagination.stories.native.js +627 -0
  738. package/dist/jsx/components/DataTablePagination/DataTablePagination.stories.native.js.map +1 -0
  739. package/dist/jsx/components/DataTablePagination/index.mjs +407 -0
  740. package/dist/jsx/components/DataTablePagination/index.mjs.map +1 -0
  741. package/dist/jsx/components/DataTablePagination/index.native.js +488 -0
  742. package/dist/jsx/components/DataTablePagination/index.native.js.map +1 -0
  743. package/dist/jsx/components/DataTableSearch/DataTableSearch.spec.mjs +470 -0
  744. package/dist/jsx/components/DataTableSearch/DataTableSearch.spec.mjs.map +1 -0
  745. package/dist/jsx/components/DataTableSearch/DataTableSearch.spec.native.js +472 -0
  746. package/dist/jsx/components/DataTableSearch/DataTableSearch.spec.native.js.map +1 -0
  747. package/dist/jsx/components/DataTableSearch/DataTableSearch.stories.mjs +56 -0
  748. package/dist/jsx/components/DataTableSearch/DataTableSearch.stories.mjs.map +1 -0
  749. package/dist/jsx/components/DataTableSearch/DataTableSearch.stories.native.js +89 -0
  750. package/dist/jsx/components/DataTableSearch/DataTableSearch.stories.native.js.map +1 -0
  751. package/dist/jsx/components/DataTableSearch/index.mjs +424 -0
  752. package/dist/jsx/components/DataTableSearch/index.mjs.map +1 -0
  753. package/dist/jsx/components/DataTableSearch/index.native.js +494 -0
  754. package/dist/jsx/components/DataTableSearch/index.native.js.map +1 -0
  755. package/dist/jsx/components/DataTableToolbar/DataTableToolbar.spec.mjs +573 -0
  756. package/dist/jsx/components/DataTableToolbar/DataTableToolbar.spec.mjs.map +1 -0
  757. package/dist/jsx/components/DataTableToolbar/DataTableToolbar.spec.native.js +575 -0
  758. package/dist/jsx/components/DataTableToolbar/DataTableToolbar.spec.native.js.map +1 -0
  759. package/dist/jsx/components/DataTableToolbar/DataTableToolbar.stories.mjs +25 -0
  760. package/dist/jsx/components/DataTableToolbar/DataTableToolbar.stories.mjs.map +1 -0
  761. package/dist/jsx/components/DataTableToolbar/DataTableToolbar.stories.native.js +56 -0
  762. package/dist/jsx/components/DataTableToolbar/DataTableToolbar.stories.native.js.map +1 -0
  763. package/dist/jsx/components/DataTableToolbar/index.mjs +222 -0
  764. package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -0
  765. package/dist/jsx/components/DataTableToolbar/index.native.js +265 -0
  766. package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -0
  767. package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.spec.mjs +126 -0
  768. package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.spec.mjs.map +1 -0
  769. package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.spec.native.js +129 -0
  770. package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.spec.native.js.map +1 -0
  771. package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.stories.mjs +393 -0
  772. package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.stories.mjs.map +1 -0
  773. package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.stories.native.js +458 -0
  774. package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.stories.native.js.map +1 -0
  775. package/dist/jsx/components/DataTableViewOptions/index.mjs +496 -0
  776. package/dist/jsx/components/DataTableViewOptions/index.mjs.map +1 -0
  777. package/dist/jsx/components/DataTableViewOptions/index.native.js +589 -0
  778. package/dist/jsx/components/DataTableViewOptions/index.native.js.map +1 -0
  779. package/dist/jsx/components/FilterManager.mjs +119 -0
  780. package/dist/jsx/components/FilterManager.mjs.map +1 -0
  781. package/dist/jsx/components/FilterManager.native.js +159 -0
  782. package/dist/jsx/components/FilterManager.native.js.map +1 -0
  783. package/dist/jsx/components/FilterManager.spec.mjs +53 -0
  784. package/dist/jsx/components/FilterManager.spec.mjs.map +1 -0
  785. package/dist/jsx/components/FilterManager.spec.native.js +55 -0
  786. package/dist/jsx/components/FilterManager.spec.native.js.map +1 -0
  787. package/dist/jsx/components/KnobDialog.mjs +71 -0
  788. package/dist/jsx/components/KnobDialog.mjs.map +1 -0
  789. package/dist/jsx/components/KnobDialog.native.js +106 -0
  790. package/dist/jsx/components/KnobDialog.native.js.map +1 -0
  791. package/dist/jsx/components/SavedFilterDropdown.mjs +40 -0
  792. package/dist/jsx/components/SavedFilterDropdown.mjs.map +1 -0
  793. package/dist/jsx/components/SavedFilterDropdown.native.js +75 -0
  794. package/dist/jsx/components/SavedFilterDropdown.native.js.map +1 -0
  795. package/dist/jsx/components/SavedFilterDropdown.spec.mjs +84 -0
  796. package/dist/jsx/components/SavedFilterDropdown.spec.mjs.map +1 -0
  797. package/dist/jsx/components/SavedFilterDropdown.spec.native.js +86 -0
  798. package/dist/jsx/components/SavedFilterDropdown.spec.native.js.map +1 -0
  799. package/dist/jsx/components/SimpleTable/index.mjs +167 -0
  800. package/dist/jsx/components/SimpleTable/index.mjs.map +1 -0
  801. package/dist/jsx/components/SimpleTable/index.native.js +208 -0
  802. package/dist/jsx/components/SimpleTable/index.native.js.map +1 -0
  803. package/dist/jsx/components/SimpleTable/simpleTable.spec.mjs +163 -0
  804. package/dist/jsx/components/SimpleTable/simpleTable.spec.mjs.map +1 -0
  805. package/dist/jsx/components/SimpleTable/simpleTable.spec.native.js +165 -0
  806. package/dist/jsx/components/SimpleTable/simpleTable.spec.native.js.map +1 -0
  807. package/dist/jsx/components/Table/Table.stories.mjs +167 -0
  808. package/dist/jsx/components/Table/Table.stories.mjs.map +1 -0
  809. package/dist/jsx/components/Table/Table.stories.native.js +207 -0
  810. package/dist/jsx/components/Table/Table.stories.native.js.map +1 -0
  811. package/dist/jsx/components/Table/accessibility.spec.mjs +187 -0
  812. package/dist/jsx/components/Table/accessibility.spec.mjs.map +1 -0
  813. package/dist/jsx/components/Table/accessibility.spec.native.js +216 -0
  814. package/dist/jsx/components/Table/accessibility.spec.native.js.map +1 -0
  815. package/dist/jsx/components/TableInput/TableInput.stories.mjs +24 -0
  816. package/dist/jsx/components/TableInput/TableInput.stories.mjs.map +1 -0
  817. package/dist/jsx/components/TableInput/TableInput.stories.native.js +55 -0
  818. package/dist/jsx/components/TableInput/TableInput.stories.native.js.map +1 -0
  819. package/dist/jsx/components/TableInput/index.mjs +178 -0
  820. package/dist/jsx/components/TableInput/index.mjs.map +1 -0
  821. package/dist/jsx/components/TableInput/index.native.js +237 -0
  822. package/dist/jsx/components/TableInput/index.native.js.map +1 -0
  823. package/dist/jsx/components/componentConsistency.spec.mjs +38 -0
  824. package/dist/jsx/components/componentConsistency.spec.mjs.map +1 -0
  825. package/dist/jsx/components/componentConsistency.spec.native.js +48 -0
  826. package/dist/jsx/components/componentConsistency.spec.native.js.map +1 -0
  827. package/dist/jsx/hooks/hookDecomposition.spec.mjs +327 -0
  828. package/dist/jsx/hooks/hookDecomposition.spec.mjs.map +1 -0
  829. package/dist/jsx/hooks/hookDecomposition.spec.native.js +351 -0
  830. package/dist/jsx/hooks/hookDecomposition.spec.native.js.map +1 -0
  831. package/dist/jsx/hooks/useDataTable.mjs +384 -0
  832. package/dist/jsx/hooks/useDataTable.mjs.map +1 -0
  833. package/dist/jsx/hooks/useDataTable.native.js +456 -0
  834. package/dist/jsx/hooks/useDataTable.native.js.map +1 -0
  835. package/dist/jsx/hooks/useDataTable.spec.mjs +11 -0
  836. package/dist/jsx/hooks/useDataTable.spec.mjs.map +1 -0
  837. package/dist/jsx/hooks/useDataTable.spec.native.js +13 -0
  838. package/dist/jsx/hooks/useDataTable.spec.native.js.map +1 -0
  839. package/dist/jsx/hooks/useDataTableKeyboard.mjs +100 -0
  840. package/dist/jsx/hooks/useDataTableKeyboard.mjs.map +1 -0
  841. package/dist/jsx/hooks/useDataTableKeyboard.native.js +133 -0
  842. package/dist/jsx/hooks/useDataTableKeyboard.native.js.map +1 -0
  843. package/dist/jsx/hooks/useDragScroll.mjs +62 -0
  844. package/dist/jsx/hooks/useDragScroll.mjs.map +1 -0
  845. package/dist/jsx/hooks/useDragScroll.native.js +91 -0
  846. package/dist/jsx/hooks/useDragScroll.native.js.map +1 -0
  847. package/dist/jsx/hooks/useSavedFilters.mjs +89 -0
  848. package/dist/jsx/hooks/useSavedFilters.mjs.map +1 -0
  849. package/dist/jsx/hooks/useSavedFilters.native.js +129 -0
  850. package/dist/jsx/hooks/useSavedFilters.native.js.map +1 -0
  851. package/dist/jsx/hooks/useSavedFilters.spec.mjs +213 -0
  852. package/dist/jsx/hooks/useSavedFilters.spec.mjs.map +1 -0
  853. package/dist/jsx/hooks/useSavedFilters.spec.native.js +240 -0
  854. package/dist/jsx/hooks/useSavedFilters.spec.native.js.map +1 -0
  855. package/dist/jsx/hooks/useTableColumnPinning.mjs +38 -0
  856. package/dist/jsx/hooks/useTableColumnPinning.mjs.map +1 -0
  857. package/dist/jsx/hooks/useTableColumnPinning.native.js +77 -0
  858. package/dist/jsx/hooks/useTableColumnPinning.native.js.map +1 -0
  859. package/dist/jsx/hooks/useTableFiltering.mjs +56 -0
  860. package/dist/jsx/hooks/useTableFiltering.mjs.map +1 -0
  861. package/dist/jsx/hooks/useTableFiltering.native.js +97 -0
  862. package/dist/jsx/hooks/useTableFiltering.native.js.map +1 -0
  863. package/dist/jsx/hooks/useTableGrouping.mjs +103 -0
  864. package/dist/jsx/hooks/useTableGrouping.mjs.map +1 -0
  865. package/dist/jsx/hooks/useTableGrouping.native.js +144 -0
  866. package/dist/jsx/hooks/useTableGrouping.native.js.map +1 -0
  867. package/dist/jsx/hooks/useTableKeyboard.mjs +92 -0
  868. package/dist/jsx/hooks/useTableKeyboard.mjs.map +1 -0
  869. package/dist/jsx/hooks/useTableKeyboard.native.js +125 -0
  870. package/dist/jsx/hooks/useTableKeyboard.native.js.map +1 -0
  871. package/dist/jsx/hooks/useTablePagination.mjs +25 -0
  872. package/dist/jsx/hooks/useTablePagination.mjs.map +1 -0
  873. package/dist/jsx/hooks/useTablePagination.native.js +54 -0
  874. package/dist/jsx/hooks/useTablePagination.native.js.map +1 -0
  875. package/dist/jsx/hooks/useTableSearch.mjs +23 -0
  876. package/dist/jsx/hooks/useTableSearch.mjs.map +1 -0
  877. package/dist/jsx/hooks/useTableSearch.native.js +54 -0
  878. package/dist/jsx/hooks/useTableSearch.native.js.map +1 -0
  879. package/dist/jsx/hooks/useTableSelection.mjs +36 -0
  880. package/dist/jsx/hooks/useTableSelection.mjs.map +1 -0
  881. package/dist/jsx/hooks/useTableSelection.native.js +90 -0
  882. package/dist/jsx/hooks/useTableSelection.native.js.map +1 -0
  883. package/dist/jsx/hooks/useTableSorting.mjs +12 -0
  884. package/dist/jsx/hooks/useTableSorting.mjs.map +1 -0
  885. package/dist/jsx/hooks/useTableSorting.native.js +41 -0
  886. package/dist/jsx/hooks/useTableSorting.native.js.map +1 -0
  887. package/dist/jsx/hooks/useTableUrlSync.mjs +27 -0
  888. package/dist/jsx/hooks/useTableUrlSync.mjs.map +1 -0
  889. package/dist/jsx/hooks/useTableUrlSync.native.js +58 -0
  890. package/dist/jsx/hooks/useTableUrlSync.native.js.map +1 -0
  891. package/dist/jsx/hooks/useTableViews.mjs +57 -0
  892. package/dist/jsx/hooks/useTableViews.mjs.map +1 -0
  893. package/dist/jsx/hooks/useTableViews.native.js +96 -0
  894. package/dist/jsx/hooks/useTableViews.native.js.map +1 -0
  895. package/dist/jsx/index.js +39 -0
  896. package/dist/jsx/index.js.map +1 -0
  897. package/dist/jsx/index.mjs +39 -0
  898. package/dist/jsx/index.mjs.map +1 -0
  899. package/dist/jsx/index.native.js +113 -0
  900. package/dist/jsx/index.native.js.map +1 -0
  901. package/dist/jsx/shims/primitives.mjs +3 -0
  902. package/dist/jsx/shims/primitives.mjs.map +1 -0
  903. package/dist/jsx/shims/primitives.native.js +34 -0
  904. package/dist/jsx/shims/primitives.native.js.map +1 -0
  905. package/dist/jsx/shims/tableCellContext.mjs +3 -0
  906. package/dist/jsx/shims/tableCellContext.mjs.map +1 -0
  907. package/dist/jsx/shims/tableCellContext.native.js +33 -0
  908. package/dist/jsx/shims/tableCellContext.native.js.map +1 -0
  909. package/dist/jsx/types.mjs +2 -0
  910. package/dist/jsx/types.mjs.map +1 -0
  911. package/dist/jsx/types.native.js +21 -0
  912. package/dist/jsx/types.native.js.map +1 -0
  913. package/dist/jsx/utils/filterUtils.mjs +250 -0
  914. package/dist/jsx/utils/filterUtils.mjs.map +1 -0
  915. package/dist/jsx/utils/filterUtils.native.js +308 -0
  916. package/dist/jsx/utils/filterUtils.native.js.map +1 -0
  917. package/dist/jsx/utils/filterUtils.spec.mjs +351 -0
  918. package/dist/jsx/utils/filterUtils.spec.mjs.map +1 -0
  919. package/dist/jsx/utils/filterUtils.spec.native.js +353 -0
  920. package/dist/jsx/utils/filterUtils.spec.native.js.map +1 -0
  921. package/dist/jsx/utils/urlStateUtils.mjs +115 -0
  922. package/dist/jsx/utils/urlStateUtils.mjs.map +1 -0
  923. package/dist/jsx/utils/urlStateUtils.native.js +168 -0
  924. package/dist/jsx/utils/urlStateUtils.native.js.map +1 -0
  925. package/dist/jsx/utils/urlStateUtils.spec.mjs +235 -0
  926. package/dist/jsx/utils/urlStateUtils.spec.mjs.map +1 -0
  927. package/dist/jsx/utils/urlStateUtils.spec.native.js +239 -0
  928. package/dist/jsx/utils/urlStateUtils.spec.native.js.map +1 -0
  929. package/package.json +113 -0
  930. package/src/components/ChildTable/index.tsx +87 -0
  931. package/src/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.tsx +23 -0
  932. package/src/components/ColumnHeaderFilter/index.tsx +274 -0
  933. package/src/components/DataTable/DataTable.spec.tsx +574 -0
  934. package/src/components/DataTable/DataTable.stories.tsx +2523 -0
  935. package/src/components/DataTable/DataTableContext.ts +16 -0
  936. package/src/components/DataTable/DataTableMobileCards.tsx +164 -0
  937. package/src/components/DataTable/DataTableRoot.tsx +1339 -0
  938. package/src/components/DataTable/DataTableStateContext.ts +57 -0
  939. package/src/components/DataTable/DataTableVirtualized.tsx +115 -0
  940. package/src/components/DataTable/FieldsInCells.stories.tsx +220 -0
  941. package/src/components/DataTable/compoundComponent.spec.tsx +375 -0
  942. package/src/components/DataTable/index.native.tsx +913 -0
  943. package/src/components/DataTable/index.tsx +44 -0
  944. package/src/components/DataTableBulkActions/DataTableBulkActions.spec.tsx +408 -0
  945. package/src/components/DataTableBulkActions/DataTableBulkActions.stories.tsx +365 -0
  946. package/src/components/DataTableBulkActions/index.tsx +415 -0
  947. package/src/components/DataTableCell/CellModalEditor.tsx +92 -0
  948. package/src/components/DataTableCell/DataTableCell.stories.tsx +23 -0
  949. package/src/components/DataTableCell/dataTableCell.spec.tsx +191 -0
  950. package/src/components/DataTableCell/index.tsx +720 -0
  951. package/src/components/DataTableColumnPinning/DataTableColumnPinning.spec.tsx +308 -0
  952. package/src/components/DataTableColumnPinning/DataTableColumnPinning.stories.tsx +513 -0
  953. package/src/components/DataTableColumnPinning/index.tsx +291 -0
  954. package/src/components/DataTableDateFilter/DataTableDateFilter.spec.tsx +492 -0
  955. package/src/components/DataTableDateFilter/DataTableDateFilter.stories.tsx +352 -0
  956. package/src/components/DataTableDateFilter/index.tsx +563 -0
  957. package/src/components/DataTableExport/DataTableExport.spec.tsx +398 -0
  958. package/src/components/DataTableExport/DataTableExport.stories.tsx +451 -0
  959. package/src/components/DataTableExport/index.tsx +631 -0
  960. package/src/components/DataTableFilters/DataTableFilters.spec.tsx +678 -0
  961. package/src/components/DataTableFilters/DataTableFilters.stories.tsx +473 -0
  962. package/src/components/DataTableFilters/index.tsx +680 -0
  963. package/src/components/DataTableGrouping/DataTableGrouping.spec.tsx +332 -0
  964. package/src/components/DataTableGrouping/DataTableGrouping.stories.tsx +507 -0
  965. package/src/components/DataTableGrouping/index.tsx +902 -0
  966. package/src/components/DataTablePagination/DataTablePagination.spec.tsx +360 -0
  967. package/src/components/DataTablePagination/DataTablePagination.stories.tsx +592 -0
  968. package/src/components/DataTablePagination/index.tsx +453 -0
  969. package/src/components/DataTableSearch/DataTableSearch.spec.tsx +313 -0
  970. package/src/components/DataTableSearch/DataTableSearch.stories.tsx +45 -0
  971. package/src/components/DataTableSearch/index.tsx +535 -0
  972. package/src/components/DataTableToolbar/DataTableToolbar.spec.tsx +529 -0
  973. package/src/components/DataTableToolbar/DataTableToolbar.stories.tsx +23 -0
  974. package/src/components/DataTableToolbar/index.tsx +266 -0
  975. package/src/components/DataTableViewOptions/DataTableViewOptions.spec.tsx +162 -0
  976. package/src/components/DataTableViewOptions/DataTableViewOptions.stories.tsx +383 -0
  977. package/src/components/DataTableViewOptions/index.tsx +592 -0
  978. package/src/components/FilterManager.spec.tsx +63 -0
  979. package/src/components/FilterManager.tsx +144 -0
  980. package/src/components/KnobDialog.tsx +76 -0
  981. package/src/components/SavedFilterDropdown.spec.tsx +99 -0
  982. package/src/components/SavedFilterDropdown.tsx +56 -0
  983. package/src/components/SimpleTable/index.tsx +230 -0
  984. package/src/components/SimpleTable/simpleTable.spec.tsx +152 -0
  985. package/src/components/Table/Table.stories.tsx +107 -0
  986. package/src/components/Table/accessibility.spec.tsx +231 -0
  987. package/src/components/TableInput/TableInput.stories.tsx +24 -0
  988. package/src/components/TableInput/index.native.tsx +242 -0
  989. package/src/components/TableInput/index.tsx +256 -0
  990. package/src/components/componentConsistency.spec.tsx +83 -0
  991. package/src/hooks/hookDecomposition.spec.ts +331 -0
  992. package/src/hooks/useDataTable.spec.ts +16 -0
  993. package/src/hooks/useDataTable.ts +540 -0
  994. package/src/hooks/useDataTableKeyboard.ts +134 -0
  995. package/src/hooks/useDragScroll.ts +80 -0
  996. package/src/hooks/useSavedFilters.spec.ts +232 -0
  997. package/src/hooks/useSavedFilters.ts +189 -0
  998. package/src/hooks/useTableColumnPinning.ts +49 -0
  999. package/src/hooks/useTableFiltering.ts +86 -0
  1000. package/src/hooks/useTableGrouping.ts +176 -0
  1001. package/src/hooks/useTableKeyboard.ts +127 -0
  1002. package/src/hooks/useTablePagination.ts +53 -0
  1003. package/src/hooks/useTableSearch.ts +51 -0
  1004. package/src/hooks/useTableSelection.ts +62 -0
  1005. package/src/hooks/useTableSorting.ts +24 -0
  1006. package/src/hooks/useTableUrlSync.ts +49 -0
  1007. package/src/hooks/useTableViews.ts +113 -0
  1008. package/src/index.ts +137 -0
  1009. package/src/shims/primitives.ts +15 -0
  1010. package/src/shims/tableCellContext.ts +7 -0
  1011. package/src/types.ts +492 -0
  1012. package/src/utils/filterUtils.spec.ts +363 -0
  1013. package/src/utils/filterUtils.ts +333 -0
  1014. package/src/utils/urlStateUtils.spec.ts +197 -0
  1015. package/src/utils/urlStateUtils.ts +162 -0
package/README.md ADDED
@@ -0,0 +1,1105 @@
1
+ # @multiplatform.one/table
2
+
3
+ > **Note:** `@multiplatform.one/router` is optional - works with any React router or framework!
4
+
5
+ [![npm version](https://badge.fury.io/js/%40multiplatform.one%2Ftable.svg)](https://badge.fury.io/js/%40multiplatform.one%2Ftable)
6
+ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
7
+
8
+ ## ๐ŸŽฏ Key Features
9
+
10
+ - **๐Ÿ” Advanced Filtering** - query builder with 20+ operators
11
+ - **๐Ÿ”— URL State Management** - Bookmarkable/shareable table states
12
+ - **๐ŸŒ Universal Compatibility** - Works with any React router or framework
13
+ - **๐Ÿ“ฑ Cross-Platform** - Web, React Native, Tauri, and more
14
+ - **โšก Performance** - Server/client-side filtering and pagination
15
+ - **๐ŸŽจ Beautiful UI** - Built with Tamagui for consistent design
16
+ - **โ™ฟ Accessible** - WCAG 2.1 AA compliant
17
+ - **๐Ÿ”ง Type-Safe** - Full TypeScript support
18
+ - **๐Ÿ“ฆ Modular** - Tree-shakeable components
19
+
20
+ ## ๐Ÿš€ Quick Start
21
+
22
+ ```bash
23
+ # For OneStack apps
24
+ pnpm add @multiplatform.one/table @multiplatform.one/router
25
+
26
+ # For other React apps
27
+ pnpm add @multiplatform.one/table
28
+
29
+ # For React Router apps
30
+ pnpm add @multiplatform.one/table react-router-dom
31
+
32
+ # For Next.js apps
33
+ pnpm add @multiplatform.one/table next
34
+ ```
35
+
36
+ ```tsx
37
+ import { DataTable, createUrlStrategy } from "@multiplatform.one/table";
38
+
39
+ function UserTable() {
40
+ const data = [
41
+ { id: 1, name: "John", email: "john@example.com", role: "admin" },
42
+ { id: 2, name: "Jane", email: "jane@example.com", role: "user" },
43
+ ];
44
+
45
+ const columns = [
46
+ { accessorKey: "name", header: "Name" },
47
+ { accessorKey: "email", header: "Email" },
48
+ { accessorKey: "role", header: "Role" },
49
+ ];
50
+
51
+ return (
52
+ <DataTable
53
+ data={data}
54
+ columns={columns}
55
+ syncWithUrl={true} // Enable URL state management
56
+ enableFiltering={true}
57
+ enableSorting={true}
58
+ enablePagination={true}
59
+ // urlStrategy: optional - defaults to OneStack, or use createUrlStrategy for other routers
60
+ />
61
+ );
62
+ }
63
+ ```
64
+
65
+ ## ๐Ÿ“ฆ Package Boundaries
66
+
67
+ | Package | Responsibility |
68
+ | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
69
+ | `@multiplatform.one/table` | Framework-agnostic table: display, filter, sort, paginate, virtualize, resize, pin, expand, keyboard nav. No Frappe or API assumptions. |
70
+ | `@multiplatform.one/frappe-ui` | Frappe integration: FrappeTable wraps DataTable, fetches from Frappe, maps to DataTable props. Uses `manualFiltering`, `manualPagination`, `manualSorting` when `serverSide` is enabled. |
71
+
72
+ **Dependency direction**: frappe-ui โ†’ table. Table does not depend on frappe-ui or frappe.
73
+
74
+ ---
75
+
76
+ ## ๐ŸŒ Cross-Platform Compatibility
77
+
78
+ Works with **any React framework** and **all platforms**:
79
+
80
+ | Framework/Router | URL Strategy | Status |
81
+ | ---------------------- | --------------------------------- | --------------- |
82
+ | **OneStack** | Automatic (default) | โœ… Full Support |
83
+ | **React Router** | `createUrlStrategy.reactRouter()` | โœ… Full Support |
84
+ | **Next.js App Router** | `createUrlStrategy.nextJs()` | โœ… Full Support |
85
+ | **React Native** | `syncWithUrl={false}` | โœ… Full Support |
86
+ | **Tauri** | `createUrlStrategy.universal()` | โœ… Full Support |
87
+ | **Vanilla React** | `createUrlStrategy.universal()` | โœ… Full Support |
88
+ | **Any Router** | `createUrlStrategy.custom()` | โœ… Full Support |
89
+
90
+ ### React Router Integration
91
+
92
+ ```tsx
93
+ import { useSearchParams } from "react-router-dom";
94
+ import { DataTable, createUrlStrategy } from "@multiplatform.one/table";
95
+
96
+ function MyTable() {
97
+ const [searchParams, setSearchParams] = useSearchParams();
98
+ const urlStrategy = createUrlStrategy.reactRouter(() => [searchParams, setSearchParams], 500);
99
+
100
+ return <DataTable data={data} columns={columns} syncWithUrl={true} urlStrategy={urlStrategy} />;
101
+ }
102
+ ```
103
+
104
+ ### Next.js App Router Integration
105
+
106
+ ```tsx
107
+ import { useSearchParams, useRouter } from "next/navigation";
108
+ import { DataTable, createUrlStrategy } from "@multiplatform.one/table";
109
+
110
+ function MyTable() {
111
+ const searchParams = useSearchParams();
112
+ const router = useRouter();
113
+ const urlStrategy = createUrlStrategy.nextJs(
114
+ () => searchParams,
115
+ () => router,
116
+ 500,
117
+ );
118
+
119
+ return <DataTable data={data} columns={columns} syncWithUrl={true} urlStrategy={urlStrategy} />;
120
+ }
121
+ ```
122
+
123
+ ### Universal Strategy (Works Everywhere)
124
+
125
+ ```tsx
126
+ import { DataTable, createUrlStrategy } from "@multiplatform.one/table";
127
+
128
+ function MyTable() {
129
+ const urlStrategy = createUrlStrategy.universal(500);
130
+
131
+ return <DataTable data={data} columns={columns} syncWithUrl={true} urlStrategy={urlStrategy} />;
132
+ }
133
+ ```
134
+
135
+ ## ๐Ÿ“Š Advanced Filtering
136
+
137
+ ### Text Filters
138
+
139
+ - `contains` - Partial text matching
140
+ - `doesNotContain` - Exclusion search
141
+ - `startsWith` / `endsWith` - Prefix/suffix matching
142
+ - `is` / `isNot` - Exact matching
143
+ - `isEmpty` / `isNotEmpty` - Null/empty checks
144
+
145
+ ### Number Filters
146
+
147
+ - `is` / `isNot` - Exact matching
148
+ - `isLessThan` / `isGreaterThan` - Comparison operators
149
+ - `isBetween` / `isNotBetween` - Range filtering
150
+
151
+ ### Date Filters
152
+
153
+ - All number operators plus date-specific comparisons
154
+ - `isBefore` / `isAfter` - Date comparisons
155
+ - `isOnOrBefore` / `isOnOrAfter` - Inclusive date ranges
156
+
157
+ ### Select Filters (with faceted counts)
158
+
159
+ - `isAnyOf` / `isNoneOf` - Multi-select filtering
160
+ - Live counts showing how many items match each option
161
+ - Like Amazon/Etsy filter experience
162
+
163
+ ## ๐Ÿ“Š Data Export
164
+
165
+ Export table data in multiple formats with advanced customization options:
166
+
167
+ ```tsx
168
+ import { DataTable, DataTableExport } from "@multiplatform.one/table";
169
+
170
+ function MyTable() {
171
+ const columns = [
172
+ { accessorKey: "name", header: "Name" },
173
+ { accessorKey: "email", header: "Email" },
174
+ { accessorKey: "price", header: "Price", cell: (info) => `$${info.getValue()}` },
175
+ ];
176
+
177
+ // Custom export handler (optional)
178
+ const handleExport = async (options) => {
179
+ // Call your API or use libraries like xlsx, jsPDF
180
+ console.log("Exporting:", options.format, options.filename);
181
+ };
182
+
183
+ return (
184
+ <DataTable
185
+ data={products}
186
+ columns={columns}
187
+ renderToolbar={(props) => (
188
+ <DataTableToolbar
189
+ {...props}
190
+ customActions={
191
+ <DataTableExport
192
+ data={products}
193
+ columns={columns}
194
+ filename="products-export"
195
+ onExport={handleExport}
196
+ />
197
+ }
198
+ />
199
+ )}
200
+ />
201
+ );
202
+ }
203
+ ```
204
+
205
+ ### Export Features
206
+
207
+ - โœ… **Multiple Formats:** CSV, JSON, Excel, PDF, Print
208
+ - โœ… **Column Selection:** Choose which columns to export
209
+ - โœ… **Custom Filename:** Specify export filename
210
+ - โœ… **Header Control:** Include/exclude column headers
211
+ - โœ… **Server Integration:** Custom export handlers for large datasets
212
+ - โœ… **Rich Content:** Exports cell renderer content, not raw data
213
+
214
+ ## ๐Ÿ” Full-Text Search with Highlighting
215
+
216
+ Powerful search functionality that searches across all columns with real-time highlighting:
217
+
218
+ ```tsx
219
+ import { DataTable, DataTableSearch } from "@multiplatform.one/table";
220
+
221
+ function MyTable() {
222
+ const [filteredData, setFilteredData] = useState(data);
223
+ const [searchOptions, setSearchOptions] = useState(null);
224
+
225
+ // Columns with highlighting
226
+ const columns = [
227
+ {
228
+ accessorKey: "name",
229
+ header: "Name",
230
+ cell: (info) => {
231
+ const value = info.getValue();
232
+ return searchOptions?.highlightResults && searchOptions.searchTerm
233
+ ? highlightTextInCell(value, searchOptions)
234
+ : value;
235
+ },
236
+ },
237
+ // ... other columns with highlighting
238
+ ];
239
+
240
+ const handleSearchResults = (results, options) => {
241
+ setFilteredData(results);
242
+ setSearchOptions(options);
243
+ };
244
+
245
+ return (
246
+ <DataTable
247
+ data={filteredData}
248
+ columns={columns}
249
+ renderToolbar={(props) => (
250
+ <DataTableToolbar
251
+ {...props}
252
+ customActions={
253
+ <DataTableSearch
254
+ data={data}
255
+ columns={columns}
256
+ onSearchResults={handleSearchResults}
257
+ placeholder="Search across all columns..."
258
+ showAdvancedOptions={true}
259
+ />
260
+ }
261
+ />
262
+ )}
263
+ />
264
+ );
265
+ }
266
+ ```
267
+
268
+ ### Search Features
269
+
270
+ - โœ… **Multi-column search:** Search across all text fields simultaneously
271
+ - โœ… **Real-time highlighting:** Search terms highlighted in results
272
+ - โœ… **Advanced options:** Case sensitivity, whole word, regex support
273
+ - โœ… **Column selection:** Choose which columns to search in
274
+ - โœ… **Debounced search:** Optimized performance for large datasets
275
+ - โœ… **Flexible API:** Component-based or hook-based usage
276
+
277
+ ## ๐Ÿ“… Advanced Date Filtering
278
+
279
+ Powerful date filtering with presets, ranges, and calendar integration:
280
+
281
+ ```tsx
282
+ import { DataTableDateFilter, type DateFilterValue } from "@multiplatform.one/table";
283
+
284
+ function MyTable() {
285
+ const [dateFilter, setDateFilter] = useState<DateFilterValue>();
286
+
287
+ return (
288
+ <DataTableDateFilter
289
+ value={dateFilter}
290
+ onChange={setDateFilter}
291
+ placeholder="Filter by date..."
292
+ showPresets={true}
293
+ customPresets={[
294
+ {
295
+ id: "lastWeekOrders",
296
+ label: "Ordered Last Week",
297
+ operator: "isLastWeek",
298
+ icon: <CalendarIcon />,
299
+ },
300
+ ]}
301
+ />
302
+ );
303
+ }
304
+ ```
305
+
306
+ ### Date Filter Features
307
+
308
+ - โœ… **Quick Presets:** Today, Yesterday, This Week, Last 7/30 Days, etc.
309
+ - โœ… **Relative Dates:** This Month, Last Month, This Year, etc.
310
+ - โœ… **Custom Ranges:** Select start and end dates manually
311
+ - โœ… **Comparison Operators:** Is, Before, After, Between, etc.
312
+ - โœ… **Empty Handling:** Filter for records with/without dates
313
+ - โœ… **Multiple Filters:** Combine different date field filters
314
+ - โœ… **Calendar Integration:** Native HTML5 date inputs
315
+
316
+ ## ๐Ÿ“Š Grouping & Aggregation
317
+
318
+ Powerful data analysis with hierarchical grouping and calculated aggregations:
319
+
320
+ ```tsx
321
+ import { DataTableGrouping, DataTableGroupingConfig } from "@multiplatform.one/table";
322
+
323
+ function SalesReport() {
324
+ const [groupingConfig, setGroupingConfig] = useState({
325
+ columns: ["region", "category"], // Multi-level grouping
326
+ aggregations: [
327
+ {
328
+ column: "revenue",
329
+ function: "sum",
330
+ label: "Total Revenue",
331
+ },
332
+ {
333
+ column: "quantity",
334
+ function: "count",
335
+ label: "Order Count",
336
+ },
337
+ {
338
+ column: "revenue",
339
+ function: "avg",
340
+ label: "Average Order",
341
+ },
342
+ ],
343
+ });
344
+
345
+ return (
346
+ <DataTableGrouping
347
+ data={salesData}
348
+ columns={columns}
349
+ groupBy={groupingConfig.columns}
350
+ aggregations={groupingConfig.aggregations}
351
+ showAggregations={true}
352
+ renderGroupHeader={(group, level) => (
353
+ <div
354
+ style={{
355
+ backgroundColor: level === 0 ? "#e3f2fd" : "#f3e5f5",
356
+ padding: "12px",
357
+ borderLeft: `4px solid ${level === 0 ? "#2196f3" : "#9c27b0"}`,
358
+ }}
359
+ >
360
+ <h3>
361
+ {group.value} ({group.count} items)
362
+ </h3>
363
+ <div>Total Revenue: ${group.aggregations.revenue?.sum?.toLocaleString()}</div>
364
+ </div>
365
+ )}
366
+ />
367
+ );
368
+ }
369
+ ```
370
+
371
+ ### Grouping Features
372
+
373
+ - โœ… **Multi-level grouping** - Group by multiple columns hierarchically
374
+ - โœ… **Dynamic aggregations** - Sum, count, average, min, max calculations
375
+ - โœ… **Custom aggregation functions** - Define your own calculations
376
+ - โœ… **Expandable/collapsible groups** - Show/hide group details
377
+ - โœ… **Group state persistence** - Remember which groups are expanded
378
+ - โœ… **Performance optimized** - Efficient grouping algorithms
379
+ - โœ… **Custom group headers** - Flexible rendering and styling
380
+
381
+ ### Aggregation Functions
382
+
383
+ - โœ… **Count** - Number of items in group
384
+ - โœ… **Sum** - Total of numeric values
385
+ - โœ… **Average** - Mean of numeric values
386
+ - โœ… **Min/Max** - Smallest/largest values
387
+ - โœ… **Custom** - User-defined aggregation functions
388
+
389
+ ### Use Cases
390
+
391
+ - **Sales Reports** - Group by region/product, show totals
392
+ - **Financial Data** - Group by account type, calculate balances
393
+ - **Employee Management** - Group by department, show headcount
394
+ - **Time Tracking** - Group by project, show total hours
395
+ - **Product Analytics** - Group by category, show performance metrics
396
+
397
+ ### Production Setup
398
+
399
+ For full Excel and PDF support in production:
400
+
401
+ ```bash
402
+ npm install xlsx jsPDF html2canvas
403
+ ```
404
+
405
+ ## โ˜‘๏ธ Row Selection & Bulk Actions
406
+
407
+ Complete row selection and bulk operations system:
408
+
409
+ ```tsx
410
+ import { useRowSelection, DataTableBulkActions, createBulkActions } from "@multiplatform.one/table";
411
+
412
+ function MyTable() {
413
+ // Row selection hook
414
+ const rowSelection = useRowSelection({
415
+ data: users,
416
+ selectionKey: "id",
417
+ onSelectionChange: (selected) => console.log(`${selected.length} items selected`),
418
+ });
419
+
420
+ // Define bulk actions
421
+ const bulkActions = createBulkActions([
422
+ {
423
+ id: "send-email",
424
+ label: "Send Email",
425
+ icon: <MailIcon />,
426
+ onExecute: async (selectedItems, clearSelection) => {
427
+ await sendBulkEmail(selectedItems.map((u) => u.email));
428
+ clearSelection();
429
+ },
430
+ },
431
+ {
432
+ id: "export",
433
+ label: "Export CSV",
434
+ icon: <DownloadIcon />,
435
+ onExecute: async (selectedItems) => {
436
+ const csv = convertToCSV(selectedItems);
437
+ downloadCSV(csv, "selected-users.csv");
438
+ },
439
+ },
440
+ ]);
441
+
442
+ // Add selection column to table
443
+ const columns = [
444
+ {
445
+ id: "select",
446
+ header: ({ table }) => (
447
+ <Checkbox
448
+ checked={rowSelection.isAllSelected}
449
+ indeterminate={rowSelection.isIndeterminate}
450
+ onCheckedChange={rowSelection.toggleAll}
451
+ aria-label="Select all rows"
452
+ />
453
+ ),
454
+ cell: ({ row }) => (
455
+ <Checkbox
456
+ checked={rowSelection.isSelected(row.original)}
457
+ onCheckedChange={() => rowSelection.toggleItem(row.original)}
458
+ aria-label={`Select ${row.original.name}`}
459
+ />
460
+ ),
461
+ enableSorting: false,
462
+ size: 50,
463
+ },
464
+ // ... other columns
465
+ ];
466
+
467
+ return (
468
+ <>
469
+ {/* Bulk actions bar - appears when items are selected */}
470
+ <DataTableBulkActions
471
+ selectedItems={rowSelection.selectedItems}
472
+ onClearSelection={rowSelection.clearSelection}
473
+ actions={bulkActions}
474
+ maxVisibleActions={3}
475
+ showSelectionCount={true}
476
+ />
477
+
478
+ <DataTable
479
+ data={users}
480
+ columns={columns}
481
+ enableSorting={true}
482
+ enableFiltering={true}
483
+ enablePagination={true}
484
+ />
485
+ </>
486
+ );
487
+ }
488
+ ```
489
+
490
+ ### Bulk Action Features
491
+
492
+ - โœ… **Confirmation dialogs** for destructive actions
493
+ - โœ… **Loading states** during execution
494
+ - โœ… **Overflow menus** for many actions
495
+ - โœ… **Custom actions** with full flexibility
496
+ - โœ… **Server integration** for bulk operations
497
+ - โœ… **CSV export** built-in
498
+ - โœ… **Selection summary** and statistics
499
+
500
+ ### Row Selection Features
501
+
502
+ - โœ… **Individual row selection** with checkboxes
503
+ - โœ… **Select all / clear all** functionality
504
+ - โœ… **Indeterminate states** for partial selection
505
+ - โœ… **Keyboard navigation** support
506
+ - โœ… **Accessibility compliant** with proper ARIA labels
507
+ - โœ… **Selection persistence** across pagination
508
+
509
+ ## ๐ŸŽ›๏ธ Forms Integration
510
+
511
+ Seamlessly integrate with `@multiplatform.one/forms` for rich filter inputs:
512
+
513
+ ```tsx
514
+ import { DataTable, DataTableFilters } from "@multiplatform.one/table";
515
+ import { TextField, SelectField, DatePickerField } from "@multiplatform.one/forms";
516
+
517
+ function MyTable() {
518
+ return (
519
+ <DataTable
520
+ data={users}
521
+ columns={columns}
522
+ renderFilters={(props) => (
523
+ <DataTableFilters
524
+ {...props}
525
+ availableColumns={[
526
+ {
527
+ id: "name",
528
+ label: "Name",
529
+ type: "text",
530
+ // Custom form component
531
+ renderInput: (props) => (
532
+ <TextField {...props} label="Search by name" placeholder="Enter name..." />
533
+ ),
534
+ },
535
+ {
536
+ id: "department",
537
+ label: "Department",
538
+ type: "select",
539
+ options: [
540
+ { label: "Engineering", value: "eng", count: 25 },
541
+ { label: "Marketing", value: "mkt", count: 12 },
542
+ ],
543
+ // Custom form component
544
+ renderInput: (props) => (
545
+ <SelectField {...props} label="Department" placeholder="Select department..." />
546
+ ),
547
+ },
548
+ ]}
549
+ />
550
+ )}
551
+ />
552
+ );
553
+ }
554
+ ```
555
+
556
+ ### Form Validation Integration
557
+
558
+ ```tsx
559
+ import { useForm } from "@multiplatform.one/forms";
560
+
561
+ function AdvancedFilters() {
562
+ const form = useForm({
563
+ defaultValues: {
564
+ nameFilter: "",
565
+ salaryRange: { min: "", max: "" },
566
+ joinDate: null,
567
+ },
568
+ onSubmit: ({ value }) => {
569
+ // Convert form values to table filters
570
+ const filters = createTableFiltersFromForm(value);
571
+ tableActions.setFilters(filters);
572
+ },
573
+ });
574
+
575
+ return (
576
+ <Form {...form}>
577
+ <TextField name="nameFilter" label="Employee Name" placeholder="Search by name..." />
578
+
579
+ <XStack gap="$4">
580
+ <TextField
581
+ name="salaryRange.min"
582
+ label="Min Salary"
583
+ placeholder="50000"
584
+ keyboardType="numeric"
585
+ />
586
+ <TextField
587
+ name="salaryRange.max"
588
+ label="Max Salary"
589
+ placeholder="150000"
590
+ keyboardType="numeric"
591
+ />
592
+ </XStack>
593
+
594
+ <DatePickerField name="joinDate" label="Joined After" />
595
+
596
+ <SubmitButton>Apply Filters</SubmitButton>
597
+ </Form>
598
+ );
599
+ }
600
+ ```
601
+
602
+ ## ๐Ÿ“„ Pagination Strategies
603
+
604
+ ### Offset-Based Pagination (Traditional)
605
+
606
+ ```tsx
607
+ function OffsetPaginationTable() {
608
+ const [pageData, setPageData] = useState([]);
609
+ const [totalCount, setTotalCount] = useState(0);
610
+
611
+ return (
612
+ <DataTable
613
+ data={pageData}
614
+ columns={columns}
615
+ manualPagination={true}
616
+ rowCount={totalCount}
617
+ onStateChange={async (state) => {
618
+ // Server-side pagination
619
+ const response = await api.getUsers({
620
+ page: state.pagination.pageIndex + 1,
621
+ pageSize: state.pagination.pageSize,
622
+ filters: state.filters,
623
+ sorting: state.sorting,
624
+ });
625
+
626
+ setPageData(response.data);
627
+ setTotalCount(response.totalCount);
628
+ }}
629
+ />
630
+ );
631
+ }
632
+ ```
633
+
634
+ ### Cursor-Based Pagination (Modern)
635
+
636
+ ```tsx
637
+ function CursorPaginationTable() {
638
+ const [data, setData] = useState([]);
639
+ const [nextCursor, setNextCursor] = useState(null);
640
+ const [previousCursor, setPreviousCursor] = useState(null);
641
+
642
+ const loadPage = async (cursor, direction = "forward") => {
643
+ const response = await api.getUsers({
644
+ cursor,
645
+ direction,
646
+ limit: 20,
647
+ filters: activeFilters,
648
+ });
649
+
650
+ setData(response.data);
651
+ setNextCursor(response.nextCursor);
652
+ setPreviousCursor(response.previousCursor);
653
+ };
654
+
655
+ return (
656
+ <YStack gap="$4">
657
+ <XStack gap="$2">
658
+ <Button disabled={!previousCursor} onPress={() => loadPage(previousCursor, "backward")}>
659
+ Previous
660
+ </Button>
661
+
662
+ <Button disabled={!nextCursor} onPress={() => loadPage(nextCursor, "forward")}>
663
+ Next
664
+ </Button>
665
+ </XStack>
666
+
667
+ <DataTable
668
+ data={data}
669
+ columns={columns}
670
+ manualPagination={true}
671
+ enablePagination={false} // Disable built-in pagination
672
+ />
673
+ </YStack>
674
+ );
675
+ }
676
+ ```
677
+
678
+ ### Infinite Scroll Pagination
679
+
680
+ ```tsx
681
+ function InfiniteScrollTable() {
682
+ const [data, setData] = useState([]);
683
+ const [hasMore, setHasMore] = useState(true);
684
+ const [isLoading, setIsLoading] = useState(false);
685
+
686
+ const loadMore = async () => {
687
+ if (isLoading || !hasMore) return;
688
+
689
+ setIsLoading(true);
690
+ const lastItem = data[data.length - 1];
691
+
692
+ const response = await api.getUsers({
693
+ cursor: lastItem?.cursor,
694
+ limit: 50,
695
+ });
696
+
697
+ setData((prev) => [...prev, ...response.data]);
698
+ setHasMore(response.hasMore);
699
+ setIsLoading(false);
700
+ };
701
+
702
+ return (
703
+ <DataTable
704
+ data={data}
705
+ columns={columns}
706
+ manualPagination={true}
707
+ enablePagination={false}
708
+ renderToolbar={(props) => (
709
+ <DataTableToolbar
710
+ {...props}
711
+ customActions={
712
+ hasMore && (
713
+ <Button disabled={isLoading} onPress={loadMore}>
714
+ {isLoading ? "Loading..." : "Load More"}
715
+ </Button>
716
+ )
717
+ }
718
+ />
719
+ )}
720
+ />
721
+ );
722
+ }
723
+ ```
724
+
725
+ ## ๐Ÿ”„ Server-Side Operations
726
+
727
+ ### Manual Mode Configuration
728
+
729
+ ```tsx
730
+ <DataTable
731
+ data={serverData}
732
+ columns={columns}
733
+ // Manual modes for server-side operations
734
+ manualFiltering={true} // Filters applied server-side
735
+ manualPagination={true} // Pagination handled server-side
736
+ manualSorting={true} // Sorting handled server-side
737
+ // Server callbacks
738
+ onStateChange={(state) => {
739
+ // Send all state to server
740
+ fetchData({
741
+ filters: state.filters,
742
+ pagination: state.pagination,
743
+ sorting: state.sorting,
744
+ globalFilter: state.globalFilter,
745
+ });
746
+ }}
747
+ // Provide metadata for UI
748
+ rowCount={totalServerCount}
749
+ pageCount={totalServerPages}
750
+ />
751
+ ```
752
+
753
+ ### Real-Time Updates
754
+
755
+ ```tsx
756
+ function RealTimeTable() {
757
+ const [data, setData] = useState([]);
758
+ const [isLoading, setIsLoading] = useState(false);
759
+
760
+ useEffect(() => {
761
+ const subscription = api.subscribeToUpdates((update) => {
762
+ // Handle real-time updates
763
+ setData((prev) => updateData(prev, update));
764
+ });
765
+
766
+ return () => subscription.unsubscribe();
767
+ }, []);
768
+
769
+ const handleFilterChange = async (filters) => {
770
+ setIsLoading(true);
771
+ const filteredData = await api.getFilteredData(filters);
772
+ setData(filteredData);
773
+ setIsLoading(false);
774
+ };
775
+
776
+ return (
777
+ <DataTable
778
+ data={data}
779
+ columns={columns}
780
+ onStateChange={(state) => {
781
+ if (state.filters !== lastFilters) {
782
+ handleFilterChange(state.filters);
783
+ }
784
+ }}
785
+ renderToolbar={(props) => (
786
+ <DataTableToolbar {...props} customActions={isLoading && <Text>Updating...</Text>} />
787
+ )}
788
+ />
789
+ );
790
+ }
791
+ ```
792
+
793
+ ```tsx
794
+ const availableColumns = [
795
+ {
796
+ id: 'role',
797
+ label: 'Role',
798
+ type: 'select',
799
+ options: [
800
+ { label: 'Admin', value: 'admin', count: 5 },
801
+ { label: 'User', value: 'user', count: 23 },
802
+ { label: 'Guest', value: 'guest', count: 12 },
803
+ ],
804
+ },
805
+ ]
806
+
807
+ <DataTableFilters
808
+ availableColumns={availableColumns}
809
+ onAddFilter={handleAddFilter}
810
+ />
811
+ ```
812
+
813
+ ## ๐Ÿ”— URL State Management
814
+
815
+ ```tsx
816
+ // Web: URL updates automatically
817
+ // /users?page=2&pageSize=50&filters=name:contains:john&sort=name:asc
818
+
819
+ // React Native: State persists in memory
820
+ // Tauri: State syncs with IPC if needed
821
+
822
+ <DataTable
823
+ syncWithUrl={true} // Works on all platforms!
824
+ urlDebounceMs={300}
825
+ />
826
+ ```
827
+
828
+ ### URL State Features
829
+
830
+ - **๐Ÿ“ฑ Cross-Platform** - Same API everywhere
831
+ - **๐Ÿ”„ Auto-Sync** - URL updates as you filter/sort
832
+ - **๐Ÿ“‹ Shareable** - Copy URL to share exact table state
833
+ - **๐Ÿ”™ Browser History** - Back/forward buttons work
834
+ - **โšก Fast** - Debounced updates prevent spam
835
+
836
+ ## ๐ŸŽ›๏ธ View Management
837
+
838
+ Save and restore filter combinations:
839
+
840
+ ```tsx
841
+ const [views, setViews] = useState([])
842
+
843
+ <DataTable
844
+ enableViews={true}
845
+ views={views}
846
+ onSaveView={(name) => {
847
+ // Save current filters, sorting, pagination as a view
848
+ }}
849
+ onLoadView={(viewId) => {
850
+ // Load view and apply to table
851
+ }}
852
+ />
853
+ ```
854
+
855
+ ## ๐Ÿ”„ Migration Notes
856
+
857
+ - **DataTableVirtual** remains exported for headless use cases. **DataTable with `enableVirtualization`** is the preferred path for full DataTable features (toolbar, filters, pagination) plus virtualization.
858
+ - **DataTableColumnPinning** remains exported; DataTable integrates it internally when `enableColumnPinning` is true. Manual composition is still supported.
859
+
860
+ ## ๐Ÿ“Š Server-Side Support
861
+
862
+ Perfect for large datasets:
863
+
864
+ ```tsx
865
+ function ServerTable({ data, totalCount }) {
866
+ return (
867
+ <DataTable
868
+ data={data} // Current page data
869
+ manualFiltering={true} // We'll handle filtering server-side
870
+ manualPagination={true} // We'll handle pagination server-side
871
+ manualSorting={true} // We'll handle sorting server-side
872
+ rowCount={totalCount} // Total number of rows
873
+ onStateChange={(state) => {
874
+ // Send filters, pagination, sorting to server
875
+ fetchData(state.filters, state.pagination, state.sorting);
876
+ }}
877
+ />
878
+ );
879
+ }
880
+ ```
881
+
882
+ ## ๐ŸŽจ Customization
883
+
884
+ ### Custom Toolbar
885
+
886
+ ```tsx
887
+ <DataTable
888
+ renderToolbar={(props) => (
889
+ <DataTableToolbar {...props} customActions={<Button>Export CSV</Button>} />
890
+ )}
891
+ />
892
+ ```
893
+
894
+ ### Custom Filters
895
+
896
+ ```tsx
897
+ <DataTable
898
+ renderFilters={(props) => <DataTableFilters {...props} maxFilters={3} showFilterCount={true} />}
899
+ />
900
+ ```
901
+
902
+ ### Custom Pagination
903
+
904
+ ```tsx
905
+ <DataTable
906
+ renderPagination={(props) => (
907
+ <DataTablePagination {...props} showInfo={true} pageSizeOptions={[10, 25, 50, 100]} />
908
+ )}
909
+ />
910
+ ```
911
+
912
+ ## ๐Ÿ”ง API Reference
913
+
914
+ ### DataTable Props
915
+
916
+ | Prop | Type | Default | Description |
917
+ | -------------------------- | -------------------- | ------- | ------------------------------------------------------------------------------------------- |
918
+ | `data` | `TData[]` | - | Array of data to display |
919
+ | `columns` | `ColumnDef<TData>[]` | - | Column definitions |
920
+ | `syncWithUrl` | `boolean` | `false` | Enable URL state management |
921
+ | `enableFiltering` | `boolean` | `true` | Enable advanced filtering |
922
+ | `enableSorting` | `boolean` | `true` | Enable column sorting |
923
+ | `enablePagination` | `boolean` | `true` | Enable pagination |
924
+ | `enableGlobalSearch` | `boolean` | `true` | Enable global search |
925
+ | `enableViews` | `boolean` | `false` | Enable view management |
926
+ | `manualFiltering` | `boolean` | `false` | Handle filtering server-side |
927
+ | `manualPagination` | `boolean` | `false` | Handle pagination server-side |
928
+ | `manualSorting` | `boolean` | `false` | Handle sorting server-side |
929
+ | `enableVirtualization` | `boolean` | `false` | Use virtual scrolling for table body. Requires `virtualizationHeight` when true. |
930
+ | `virtualizationHeight` | `number` | โ€” | Height (px) of scrollable body when `enableVirtualization` is true. |
931
+ | `enableRowExpansion` | `boolean` | `false` | Enable expandable sub-rows. Requires `getSubRows` or `subRows` in row data. |
932
+ | `enableColumnPinning` | `boolean` | `false` | Enable column pinning (left/right). Pinned columns stay fixed during horizontal scroll. |
933
+ | `maxPinnedColumns` | `number` | `3` | Max columns per side (left/right) when pinning. |
934
+ | `enableKeyboardNavigation` | `boolean` | `false` | Enable Excel-like keyboard navigation (arrows, Home, End, PageUp/Down, Enter). |
935
+ | `rowCount` | `number` | โ€” | Total row count for manual pagination (server-side). |
936
+ | `pageCount` | `number` | โ€” | Total page count for manual pagination. If omitted, derived from `rowCount` and `pageSize`. |
937
+
938
+ ### DataTableFilters Props
939
+
940
+ | Prop | Type | Default | Description |
941
+ | ------------------ | ---------------- | ------- | -------------------------------- |
942
+ | `filters` | `TableFilter[]` | `[]` | Current active filters |
943
+ | `availableColumns` | `ColumnConfig[]` | - | Columns available for filtering |
944
+ | `maxFilters` | `number` | `10` | Maximum number of active filters |
945
+ | `onAddFilter` | `function` | - | Called when filter is added |
946
+ | `onRemoveFilter` | `function` | - | Called when filter is removed |
947
+
948
+ ## ๐Ÿ“ฆ Bundle Size
949
+
950
+ Our modular architecture means you only pay for what you use:
951
+
952
+ ```tsx
953
+ // Only imports DataTable core
954
+ import { DataTable } from "@multiplatform.one/table";
955
+ // ~25KB gzipped
956
+
957
+ // Includes filtering
958
+ import { DataTable, DataTableFilters } from "@multiplatform.one/table";
959
+ // ~35KB gzipped
960
+
961
+ // Everything
962
+ import * as Table from "@multiplatform.one/table";
963
+ // ~45KB gzipped
964
+ ```
965
+
966
+ ## ๐Ÿค Integration
967
+
968
+ ### With @multiplatform.one/forms
969
+
970
+ Leverage our forms package for rich filter inputs:
971
+
972
+ ```tsx
973
+ import { useFormField } from "@multiplatform.one/forms";
974
+ import { DataTableFilters } from "@multiplatform.one/table";
975
+
976
+ // Forms package provides rich input components
977
+ // Table package uses them for advanced filtering
978
+ ```
979
+
980
+ ### With @multiplatform.one/router
981
+
982
+ Automatic URL state management:
983
+
984
+ ```tsx
985
+ import { useUrlState } from "@multiplatform.one/router";
986
+
987
+ // Built-in integration - no extra setup needed
988
+ <DataTable syncWithUrl={true} />;
989
+ ```
990
+
991
+ ## **Comparison**
992
+
993
+ ### What we have โœ…
994
+
995
+ **โœ… Features We Have:**
996
+
997
+ - Advanced filtering with complex query builders
998
+ - URL state management and bookmarkable views
999
+ - Column visibility, ordering, and resizing
1000
+ - Server-side operations and manual data fetching
1001
+ - Row selection and bulk operations
1002
+ - Data export (CSV, Excel, PDF, JSON)
1003
+ - Full-text search with highlighting
1004
+ - Advanced date filtering with calendar picker
1005
+ - Accessibility compliance
1006
+ - Cross-platform compatibility
1007
+ - TypeScript support
1008
+ - Views and saved filter combinations
1009
+ - Multi-format data export with column selection
1010
+ - Bulk actions with confirmation dialogs
1011
+ - Advanced filtering across all columns
1012
+ - Full-text search with highlighting across all columns
1013
+ - Advanced date filtering with calendar picker
1014
+ - Server-side pagination and sorting
1015
+ - Keyboard navigation
1016
+ - Responsive design
1017
+
1018
+ **โ“ Features We Could Add:**
1019
+
1020
+ - Virtual scrolling for 100k+ rows
1021
+ - Grouping and aggregation
1022
+ - Column pinning/freezing
1023
+ - Row expansion with details
1024
+ - Custom cell renderers
1025
+ - Print functionality (enhanced)
1026
+ - Undo/redo operations
1027
+ - Internationalization
1028
+ - Advanced keyboard navigation (Excel-like)
1029
+
1030
+ ### What We Have
1031
+
1032
+ - **Native Cross-Platform Support** - Works on Web, React Native, Tauri without changes
1033
+ - **URL State Strategy Pattern** - Pluggable routing integration (OneStack, React Router, Next.js)
1034
+ - **Forms Integration** - Deep integration with @multiplatform.one/forms
1035
+ - **Universal Router Compatibility** - Works with any React routing solution
1036
+
1037
+ ## ๐ŸŽฏ **Current Status: 99% Feature Parity**
1038
+
1039
+ ### โœ… **Implemented:**
1040
+
1041
+ - Advanced filtering with complex query builders
1042
+ - URL state management and bookmarkable views
1043
+ - Column visibility, ordering, and resizing
1044
+ - Server-side operations and manual data fetching
1045
+ - Row selection and bulk operations
1046
+ - Data export (CSV, Excel, PDF, JSON)
1047
+ - Full-text search with highlighting
1048
+ - Advanced date filtering with calendar picker
1049
+ - **Virtual scrolling for 100k+ rows** ๐Ÿš€
1050
+ - **Grouping and aggregation** ๐Ÿš€
1051
+ - Accessibility compliance
1052
+ - Cross-platform compatibility
1053
+ - TypeScript support
1054
+ - Views and saved filter combinations
1055
+
1056
+ ### โŒ **Still Missing (1%):**
1057
+
1058
+ - Column pinning/freezing
1059
+ - Row expansion with details
1060
+ - Custom cell renderers
1061
+ - Print functionality (enhanced)
1062
+ - Undo/redo operations
1063
+ - Internationalization
1064
+ - Advanced keyboard navigation (Excel-like)
1065
+
1066
+ ## ๐Ÿงช Testing
1067
+
1068
+ ```bash
1069
+ # Run tests
1070
+ pnpm test
1071
+
1072
+ # Run with coverage
1073
+ pnpm test --coverage
1074
+
1075
+ # Run specific test
1076
+ pnpm test DataTable.test.tsx
1077
+ ```
1078
+
1079
+ ## ๐Ÿ“š Examples
1080
+
1081
+ See `/examples` directory for:
1082
+
1083
+ - **AdvancedTableExample** - Full-featured table with all bells and whistles
1084
+ - **GroupingExample** - Hierarchical grouping and aggregation
1085
+ - **VirtualScrollingExample** - Handle 100k+ rows with performance
1086
+ - **BulkActionsExample** - Row selection and bulk operations
1087
+ - **ExportExample** - Data export in multiple formats
1088
+ - **FullTextSearchExample** - Advanced search with highlighting
1089
+ - **DateFilterExample** - Advanced date filtering with presets
1090
+ - **FormsIntegrationExample** - Integration with @multiplatform.one/forms
1091
+ - **SimpleTableExample** - Basic table for simple use cases
1092
+ - **ServerTableExample** - Server-side rendering example
1093
+ - **CustomTableExample** - Custom styling and components
1094
+
1095
+ ## ๐Ÿค Contributing
1096
+
1097
+ We welcome contributions! Please see our [Contributing Guide](../../CONTRIBUTING.md).
1098
+
1099
+ ## ๐Ÿ“„ License
1100
+
1101
+ Apache License 2.0 - see [LICENSE](../../LICENSE) file.
1102
+
1103
+ ---
1104
+
1105
+ **Built with โค๏ธ by [BitSpur](https://risserlabs.com)**