@tanstack/table-core 9.0.0-beta.1 → 9.0.0-beta.11

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 (454) hide show
  1. package/dist/core/cells/constructCell.d.cts +1 -1
  2. package/dist/core/cells/constructCell.d.ts +1 -1
  3. package/dist/core/cells/coreCellsFeature.cjs +11 -20
  4. package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
  5. package/dist/core/cells/coreCellsFeature.d.cts +4 -12
  6. package/dist/core/cells/coreCellsFeature.d.ts +4 -12
  7. package/dist/core/cells/coreCellsFeature.js +12 -20
  8. package/dist/core/cells/coreCellsFeature.js.map +1 -1
  9. package/dist/core/cells/coreCellsFeature.types.d.cts +4 -4
  10. package/dist/core/cells/coreCellsFeature.types.d.ts +4 -4
  11. package/dist/core/cells/coreCellsFeature.utils.d.cts +1 -1
  12. package/dist/core/cells/coreCellsFeature.utils.d.ts +1 -1
  13. package/dist/core/columns/constructColumn.d.cts +1 -1
  14. package/dist/core/columns/constructColumn.d.ts +1 -1
  15. package/dist/core/columns/coreColumnsFeature.cjs +59 -68
  16. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  17. package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
  18. package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
  19. package/dist/core/columns/coreColumnsFeature.js +60 -68
  20. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  21. package/dist/core/columns/coreColumnsFeature.types.d.cts +5 -5
  22. package/dist/core/columns/coreColumnsFeature.types.d.ts +5 -5
  23. package/dist/core/columns/coreColumnsFeature.utils.d.cts +1 -1
  24. package/dist/core/columns/coreColumnsFeature.utils.d.ts +1 -1
  25. package/dist/core/coreFeatures.cjs.map +1 -1
  26. package/dist/core/coreFeatures.d.cts +1 -1
  27. package/dist/core/coreFeatures.d.ts +1 -1
  28. package/dist/core/coreFeatures.js.map +1 -1
  29. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  30. package/dist/core/headers/buildHeaderGroups.d.cts +1 -1
  31. package/dist/core/headers/buildHeaderGroups.d.ts +1 -1
  32. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  33. package/dist/core/headers/constructHeader.d.cts +1 -1
  34. package/dist/core/headers/constructHeader.d.ts +1 -1
  35. package/dist/core/headers/coreHeadersFeature.cjs +44 -53
  36. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  37. package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
  38. package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
  39. package/dist/core/headers/coreHeadersFeature.js +45 -53
  40. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  41. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
  42. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
  43. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  44. package/dist/core/headers/coreHeadersFeature.utils.d.cts +1 -1
  45. package/dist/core/headers/coreHeadersFeature.utils.d.ts +1 -1
  46. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  47. package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
  48. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  49. package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
  50. package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
  51. package/dist/core/row-models/coreRowModelsFeature.js +18 -26
  52. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  53. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +5 -15
  54. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +5 -15
  55. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +13 -13
  56. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  57. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +2 -2
  58. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +2 -2
  59. package/dist/core/row-models/coreRowModelsFeature.utils.js +13 -13
  60. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  61. package/dist/core/row-models/createCoreRowModel.cjs +1 -2
  62. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  63. package/dist/core/row-models/createCoreRowModel.d.cts +2 -2
  64. package/dist/core/row-models/createCoreRowModel.d.ts +2 -2
  65. package/dist/core/row-models/createCoreRowModel.js +1 -2
  66. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  67. package/dist/core/rows/constructRow.d.cts +1 -1
  68. package/dist/core/rows/constructRow.d.ts +1 -1
  69. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  70. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  71. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  72. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  73. package/dist/core/rows/coreRowsFeature.js +28 -36
  74. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  75. package/dist/core/rows/coreRowsFeature.types.d.cts +5 -5
  76. package/dist/core/rows/coreRowsFeature.types.d.ts +5 -5
  77. package/dist/core/rows/coreRowsFeature.utils.d.cts +1 -1
  78. package/dist/core/rows/coreRowsFeature.utils.d.ts +1 -1
  79. package/dist/core/table/constructTable.cjs +21 -6
  80. package/dist/core/table/constructTable.cjs.map +1 -1
  81. package/dist/core/table/constructTable.d.cts +1 -1
  82. package/dist/core/table/constructTable.d.ts +1 -1
  83. package/dist/core/table/constructTable.js +21 -6
  84. package/dist/core/table/constructTable.js.map +1 -1
  85. package/dist/core/table/coreTablesFeature.cjs +7 -16
  86. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  87. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  88. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  89. package/dist/core/table/coreTablesFeature.js +8 -16
  90. package/dist/core/table/coreTablesFeature.js.map +1 -1
  91. package/dist/core/table/coreTablesFeature.types.d.cts +27 -15
  92. package/dist/core/table/coreTablesFeature.types.d.ts +27 -15
  93. package/dist/core/table/coreTablesFeature.utils.cjs +1 -2
  94. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  95. package/dist/core/table/coreTablesFeature.utils.d.cts +1 -1
  96. package/dist/core/table/coreTablesFeature.utils.d.ts +1 -1
  97. package/dist/core/table/coreTablesFeature.utils.js +1 -2
  98. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  99. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  100. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  101. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  102. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  103. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  104. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  105. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +8 -29
  106. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +8 -29
  107. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
  108. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  109. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +1 -1
  110. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +1 -1
  111. package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
  112. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  113. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  114. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  115. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  116. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  117. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  118. package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
  119. package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
  120. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  121. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  122. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  123. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  124. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  125. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  126. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  127. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  128. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  129. package/dist/features/column-filtering/columnFilteringFeature.js +41 -53
  130. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  131. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +40 -26
  132. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +40 -26
  133. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
  134. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  135. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +2 -2
  136. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +2 -2
  137. package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
  138. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  139. package/dist/features/column-filtering/createFilteredRowModel.cjs +4 -2
  140. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  141. package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
  142. package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
  143. package/dist/features/column-filtering/createFilteredRowModel.js +4 -2
  144. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  145. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  146. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  147. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  148. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  149. package/dist/features/column-grouping/columnGroupingFeature.js +58 -69
  150. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  151. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +23 -19
  152. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +23 -19
  153. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +1 -1
  154. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +1 -1
  155. package/dist/features/column-grouping/createGroupedRowModel.cjs +5 -2
  156. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  157. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
  158. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
  159. package/dist/features/column-grouping/createGroupedRowModel.js +5 -2
  160. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  161. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  162. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  163. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  164. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  165. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  166. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  167. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +1 -1
  168. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +1 -1
  169. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +1 -1
  170. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +1 -1
  171. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  172. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  173. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  174. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  175. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  176. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  177. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +2 -2
  178. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +2 -2
  179. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  180. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +13 -13
  181. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +13 -13
  182. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  183. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  184. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  185. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  186. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  187. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  188. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  189. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +1 -1
  190. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +1 -1
  191. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  192. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  193. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  194. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  195. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  196. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  197. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +4 -4
  198. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +4 -4
  199. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  200. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  201. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  202. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  203. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  204. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  205. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +2 -2
  206. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +2 -2
  207. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +1 -1
  208. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +1 -1
  209. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  210. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  211. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  212. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  213. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  214. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  215. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +3 -3
  216. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +3 -3
  217. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  218. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +7 -5
  219. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +7 -5
  220. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  221. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  222. package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
  223. package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
  224. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  225. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  226. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  227. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  228. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  229. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  230. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  231. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +5 -14
  232. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +5 -14
  233. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +1 -1
  234. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +1 -1
  235. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  236. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
  237. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
  238. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  239. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  240. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  241. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  242. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  243. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  244. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  245. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +4 -13
  246. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +4 -13
  247. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +1 -1
  248. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +1 -1
  249. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  250. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  251. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  252. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  253. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  254. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  255. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
  256. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
  257. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +1 -1
  258. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +1 -1
  259. package/dist/features/row-selection/rowSelectionFeature.cjs +65 -77
  260. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  261. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  262. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  263. package/dist/features/row-selection/rowSelectionFeature.js +66 -77
  264. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  265. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +2 -2
  266. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +2 -2
  267. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +10 -6
  268. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  269. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +1 -1
  270. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +1 -1
  271. package/dist/features/row-selection/rowSelectionFeature.utils.js +10 -6
  272. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  273. package/dist/features/row-sorting/createSortedRowModel.cjs +4 -2
  274. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  275. package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
  276. package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
  277. package/dist/features/row-sorting/createSortedRowModel.js +4 -2
  278. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  279. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  280. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  281. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  282. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  283. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  284. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  285. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +23 -20
  286. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +23 -20
  287. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
  288. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  289. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +1 -1
  290. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +1 -1
  291. package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
  292. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  293. package/dist/fns/aggregationFns.cjs +18 -18
  294. package/dist/fns/aggregationFns.cjs.map +1 -1
  295. package/dist/fns/aggregationFns.d.cts +21 -19
  296. package/dist/fns/aggregationFns.d.ts +21 -19
  297. package/dist/fns/aggregationFns.js +18 -18
  298. package/dist/fns/aggregationFns.js.map +1 -1
  299. package/dist/fns/filterFns.cjs +51 -65
  300. package/dist/fns/filterFns.cjs.map +1 -1
  301. package/dist/fns/filterFns.d.cts +82 -28
  302. package/dist/fns/filterFns.d.ts +82 -28
  303. package/dist/fns/filterFns.js +51 -65
  304. package/dist/fns/filterFns.js.map +1 -1
  305. package/dist/fns/sortFns.cjs +18 -6
  306. package/dist/fns/sortFns.cjs.map +1 -1
  307. package/dist/fns/sortFns.d.cts +15 -13
  308. package/dist/fns/sortFns.d.ts +15 -13
  309. package/dist/fns/sortFns.js +18 -6
  310. package/dist/fns/sortFns.js.map +1 -1
  311. package/dist/helpers/metaHelper.cjs +30 -0
  312. package/dist/helpers/metaHelper.cjs.map +1 -0
  313. package/dist/helpers/metaHelper.d.cts +26 -0
  314. package/dist/helpers/metaHelper.d.ts +26 -0
  315. package/dist/helpers/metaHelper.js +29 -0
  316. package/dist/helpers/metaHelper.js.map +1 -0
  317. package/dist/helpers/tableFeatures.cjs +31 -3
  318. package/dist/helpers/tableFeatures.cjs.map +1 -1
  319. package/dist/helpers/tableFeatures.d.cts +33 -5
  320. package/dist/helpers/tableFeatures.d.ts +33 -5
  321. package/dist/helpers/tableFeatures.js +31 -3
  322. package/dist/helpers/tableFeatures.js.map +1 -1
  323. package/dist/index.cjs +2 -20
  324. package/dist/index.d.cts +44 -43
  325. package/dist/index.d.ts +44 -43
  326. package/dist/index.js +22 -21
  327. package/dist/store-reactivity-bindings.cjs +1 -1
  328. package/dist/store-reactivity-bindings.cjs.map +1 -1
  329. package/dist/store-reactivity-bindings.d.cts +1 -1
  330. package/dist/store-reactivity-bindings.d.ts +1 -1
  331. package/dist/store-reactivity-bindings.js +1 -1
  332. package/dist/store-reactivity-bindings.js.map +1 -1
  333. package/dist/types/Cell.d.cts +8 -10
  334. package/dist/types/Cell.d.ts +8 -10
  335. package/dist/types/Column.d.cts +19 -12
  336. package/dist/types/Column.d.ts +19 -12
  337. package/dist/types/ColumnDef.d.cts +30 -11
  338. package/dist/types/ColumnDef.d.ts +30 -11
  339. package/dist/types/Header.d.cts +10 -11
  340. package/dist/types/Header.d.ts +10 -11
  341. package/dist/types/HeaderGroup.d.cts +4 -9
  342. package/dist/types/HeaderGroup.d.ts +4 -9
  343. package/dist/types/Row.d.cts +15 -11
  344. package/dist/types/Row.d.ts +15 -11
  345. package/dist/types/RowModel.d.cts +19 -19
  346. package/dist/types/RowModel.d.ts +19 -19
  347. package/dist/types/RowModelFns.d.cts +9 -9
  348. package/dist/types/RowModelFns.d.ts +9 -9
  349. package/dist/types/Table.d.cts +52 -24
  350. package/dist/types/Table.d.ts +52 -24
  351. package/dist/types/TableFeatures.d.cts +178 -41
  352. package/dist/types/TableFeatures.d.ts +178 -41
  353. package/dist/types/TableOptions.d.cts +31 -10
  354. package/dist/types/TableOptions.d.ts +31 -10
  355. package/dist/types/TableState.d.cts +22 -13
  356. package/dist/types/TableState.d.ts +22 -13
  357. package/dist/utils.cjs.map +1 -1
  358. package/dist/utils.d.cts +8 -3
  359. package/dist/utils.d.ts +8 -3
  360. package/dist/utils.js.map +1 -1
  361. package/package.json +1 -1
  362. package/skills/column-definitions/SKILL.md +3 -6
  363. package/skills/column-layout/SKILL.md +0 -2
  364. package/skills/customizing-feature-behavior/SKILL.md +63 -56
  365. package/skills/filtering/SKILL.md +60 -42
  366. package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
  367. package/skills/grouping/SKILL.md +49 -54
  368. package/skills/migrate-v8-to-v9/SKILL.md +30 -33
  369. package/skills/pagination/SKILL.md +22 -20
  370. package/skills/row-expanding/SKILL.md +33 -25
  371. package/skills/row-pinning/SKILL.md +11 -7
  372. package/skills/row-selection/SKILL.md +0 -3
  373. package/skills/setup/SKILL.md +55 -65
  374. package/skills/sorting/SKILL.md +21 -21
  375. package/skills/state-management/SKILL.md +40 -25
  376. package/src/core/cells/coreCellsFeature.ts +17 -39
  377. package/src/core/cells/coreCellsFeature.types.ts +6 -6
  378. package/src/core/columns/coreColumnsFeature.ts +56 -83
  379. package/src/core/columns/coreColumnsFeature.types.ts +8 -8
  380. package/src/core/coreFeatures.ts +1 -1
  381. package/src/core/headers/buildHeaderGroups.ts +1 -1
  382. package/src/core/headers/coreHeadersFeature.ts +42 -64
  383. package/src/core/headers/coreHeadersFeature.types.ts +10 -10
  384. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  385. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  386. package/src/core/row-models/coreRowModelsFeature.types.ts +7 -24
  387. package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
  388. package/src/core/row-models/createCoreRowModel.ts +5 -4
  389. package/src/core/rows/coreRowsFeature.ts +45 -72
  390. package/src/core/rows/coreRowsFeature.types.ts +8 -8
  391. package/src/core/table/constructTable.ts +50 -13
  392. package/src/core/table/coreTablesFeature.ts +13 -35
  393. package/src/core/table/coreTablesFeature.types.ts +40 -17
  394. package/src/core/table/coreTablesFeature.utils.ts +10 -5
  395. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  396. package/src/features/column-faceting/columnFacetingFeature.types.ts +11 -44
  397. package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
  398. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  399. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  400. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  401. package/src/features/column-filtering/columnFilteringFeature.ts +60 -103
  402. package/src/features/column-filtering/columnFilteringFeature.types.ts +55 -39
  403. package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
  404. package/src/features/column-filtering/createFilteredRowModel.ts +5 -7
  405. package/src/features/column-grouping/columnGroupingFeature.ts +82 -126
  406. package/src/features/column-grouping/columnGroupingFeature.types.ts +32 -31
  407. package/src/features/column-grouping/createGroupedRowModel.ts +7 -11
  408. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  409. package/src/features/column-ordering/columnOrderingFeature.types.ts +2 -2
  410. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  411. package/src/features/column-pinning/columnPinningFeature.types.ts +4 -4
  412. package/src/features/column-pinning/columnPinningFeature.utils.ts +5 -5
  413. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  414. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  415. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  416. package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
  417. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  418. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
  419. package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -2
  420. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  421. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  422. package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -22
  423. package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
  424. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  425. package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -20
  426. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  427. package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
  428. package/src/features/row-selection/rowSelectionFeature.ts +103 -135
  429. package/src/features/row-selection/rowSelectionFeature.types.ts +4 -4
  430. package/src/features/row-selection/rowSelectionFeature.utils.ts +12 -7
  431. package/src/features/row-sorting/createSortedRowModel.ts +6 -6
  432. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  433. package/src/features/row-sorting/rowSortingFeature.types.ts +33 -32
  434. package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
  435. package/src/fns/aggregationFns.ts +26 -42
  436. package/src/fns/filterFns.ts +231 -264
  437. package/src/fns/sortFns.ts +51 -29
  438. package/src/helpers/metaHelper.ts +24 -0
  439. package/src/helpers/tableFeatures.ts +36 -5
  440. package/src/index.ts +1 -0
  441. package/src/store-reactivity-bindings.ts +1 -1
  442. package/src/types/Cell.ts +10 -30
  443. package/src/types/Column.ts +21 -56
  444. package/src/types/ColumnDef.ts +48 -49
  445. package/src/types/Header.ts +10 -32
  446. package/src/types/HeaderGroup.ts +4 -15
  447. package/src/types/Row.ts +18 -39
  448. package/src/types/RowModel.ts +24 -114
  449. package/src/types/RowModelFns.ts +12 -31
  450. package/src/types/Table.ts +85 -80
  451. package/src/types/TableFeatures.ts +253 -108
  452. package/src/types/TableOptions.ts +70 -60
  453. package/src/types/TableState.ts +20 -73
  454. package/src/utils.ts +16 -6
@@ -34,13 +34,13 @@ import {
34
34
  } from '@tanstack/table-core'
35
35
  import type { PaginationState } from '@tanstack/table-core'
36
36
 
37
- const features = tableFeatures({ rowPaginationFeature })
37
+ const features = tableFeatures({
38
+ rowPaginationFeature,
39
+ paginatedRowModel: createPaginatedRowModel(),
40
+ })
38
41
 
39
42
  const table = constructTable({
40
43
  features,
41
- rowModels: {
42
- paginatedRowModel: createPaginatedRowModel(),
43
- },
44
44
  columns,
45
45
  data,
46
46
  initialState: {
@@ -126,7 +126,7 @@ const { data: dataQuery } = useQuery({
126
126
 
127
127
  const table = useTable({
128
128
  features: tableFeatures({ rowPaginationFeature }),
129
- rowModels: {}, // no paginatedRowModel — server paginates
129
+ // no paginatedRowModel registered — server paginates
130
130
  data: dataQuery?.rows ?? EMPTY,
131
131
  columns,
132
132
  manualPagination: true,
@@ -141,12 +141,15 @@ const table = useTable({
141
141
  ### Disable auto page reset when filters change
142
142
 
143
143
  ```ts
144
+ const features = tableFeatures({
145
+ rowPaginationFeature,
146
+ columnFilteringFeature,
147
+ paginatedRowModel: createPaginatedRowModel(),
148
+ filteredRowModel: createFilteredRowModel(),
149
+ filterFns,
150
+ })
144
151
  const table = constructTable({
145
- features: tableFeatures({ rowPaginationFeature, columnFilteringFeature }),
146
- rowModels: {
147
- paginatedRowModel: createPaginatedRowModel(),
148
- filteredRowModel: createFilteredRowModel(filterFns),
149
- },
152
+ features,
150
153
  columns,
151
154
  data,
152
155
  autoResetPageIndex: false, // keep current page while user types in a filter
@@ -174,7 +177,6 @@ Wrong:
174
177
  // getPageCount() returns 1, next/prev buttons are disabled
175
178
  const table = useTable({
176
179
  features: tableFeatures({ rowPaginationFeature }),
177
- rowModels: {},
178
180
  data, // only 10 rows for the current page
179
181
  columns,
180
182
  manualPagination: true,
@@ -189,7 +191,6 @@ Correct:
189
191
  ```tsx
190
192
  const table = useTable({
191
193
  features: tableFeatures({ rowPaginationFeature }),
192
- rowModels: {},
193
194
  data: dataQuery.rows,
194
195
  columns,
195
196
  manualPagination: true,
@@ -223,8 +224,10 @@ Correct:
223
224
  ```tsx
224
225
  const [pagination, setPagination] = useState({ pageIndex: 0, pageSize: 25 })
225
226
  const table = useTable({
226
- features: tableFeatures({ rowPaginationFeature }),
227
- rowModels: { paginatedRowModel: createPaginatedRowModel() },
227
+ features: tableFeatures({
228
+ rowPaginationFeature,
229
+ paginatedRowModel: createPaginatedRowModel(),
230
+ }),
228
231
  columns,
229
232
  data,
230
233
  state: { pagination },
@@ -241,12 +244,9 @@ Source: docs/guide/pagination.md
241
244
  Wrong:
242
245
 
243
246
  ```ts
247
+ // features already has paginatedRowModel + filteredRowModel registered
244
248
  const table = useTable({
245
249
  features,
246
- rowModels: {
247
- paginatedRowModel: createPaginatedRowModel(),
248
- filteredRowModel: createFilteredRowModel(filterFns),
249
- },
250
250
  columns,
251
251
  data,
252
252
  autoResetPageIndex: false, // user on page 5, then filters down to 2 pages
@@ -366,8 +366,10 @@ Correct:
366
366
 
367
367
  ```ts
368
368
  const table = useTable({
369
- features: tableFeatures({ rowPaginationFeature }),
370
- rowModels: { paginatedRowModel: createPaginatedRowModel() },
369
+ features: tableFeatures({
370
+ rowPaginationFeature,
371
+ paginatedRowModel: createPaginatedRowModel(),
372
+ }),
371
373
  columns,
372
374
  data,
373
375
  })
@@ -35,12 +35,14 @@ import {
35
35
  } from '@tanstack/table-core'
36
36
  import type { ExpandedState } from '@tanstack/table-core'
37
37
 
38
- const features = tableFeatures({ rowExpandingFeature })
38
+ const features = tableFeatures({
39
+ rowExpandingFeature,
40
+ expandedRowModel: createExpandedRowModel(),
41
+ })
39
42
 
40
43
  // Tree mode — data has nested subRows
41
44
  const table = constructTable({
42
45
  features,
43
- rowModels: { expandedRowModel: createExpandedRowModel() },
44
46
  columns,
45
47
  data,
46
48
  getSubRows: (row) => row.subRows,
@@ -50,7 +52,6 @@ const table = constructTable({
50
52
  // Or detail-panel mode — every row can expand to a sub-component
51
53
  const detailTable = constructTable({
52
54
  features,
53
- rowModels: { expandedRowModel: createExpandedRowModel() },
54
55
  columns,
55
56
  data,
56
57
  getRowCanExpand: () => true,
@@ -120,11 +121,12 @@ const detailTable = constructTable({
120
121
 
121
122
  ```ts
122
123
  const table = constructTable({
123
- features: tableFeatures({ rowExpandingFeature, rowPaginationFeature }),
124
- rowModels: {
124
+ features: tableFeatures({
125
+ rowExpandingFeature,
126
+ rowPaginationFeature,
125
127
  expandedRowModel: createExpandedRowModel(),
126
128
  paginatedRowModel: createPaginatedRowModel(),
127
- },
129
+ }),
128
130
  columns,
129
131
  data,
130
132
  getSubRows: (r) => r.subRows,
@@ -138,11 +140,13 @@ const table = constructTable({
138
140
 
139
141
  ```ts
140
142
  const table = constructTable({
141
- features: tableFeatures({ rowExpandingFeature, columnFilteringFeature }),
142
- rowModels: {
143
+ features: tableFeatures({
144
+ rowExpandingFeature,
145
+ columnFilteringFeature,
143
146
  expandedRowModel: createExpandedRowModel(),
144
- filteredRowModel: createFilteredRowModel(filterFns),
145
- },
147
+ filteredRowModel: createFilteredRowModel(),
148
+ filterFns,
149
+ }),
146
150
  columns,
147
151
  data,
148
152
  getSubRows: (r) => r.subRows,
@@ -171,7 +175,6 @@ Correct:
171
175
  // For pure tree data, omit getRowCanExpand and let it auto-detect:
172
176
  const table = useTable({
173
177
  features,
174
- rowModels: { expandedRowModel: createExpandedRowModel() },
175
178
  columns,
176
179
  data,
177
180
  getSubRows: (row) => row.subRows,
@@ -180,8 +183,10 @@ const table = useTable({
180
183
 
181
184
  // For pure detail panels, override and skip getSubRows:
182
185
  const table = useTable({
183
- features: tableFeatures({ rowExpandingFeature }),
184
- rowModels: { expandedRowModel: createExpandedRowModel() },
186
+ features: tableFeatures({
187
+ rowExpandingFeature,
188
+ expandedRowModel: createExpandedRowModel(),
189
+ }),
185
190
  columns,
186
191
  data,
187
192
  getRowCanExpand: () => true,
@@ -210,10 +215,6 @@ Correct:
210
215
  // Default behavior — children flow through pagination, pageSize is enforced:
211
216
  const table = useTable({
212
217
  features,
213
- rowModels: {
214
- expandedRowModel: createExpandedRowModel(),
215
- paginatedRowModel: createPaginatedRowModel(),
216
- },
217
218
  columns,
218
219
  data,
219
220
  getSubRows: (r) => r.subRows,
@@ -268,8 +269,10 @@ Wrong:
268
269
  ```ts
269
270
  // manualExpanding bypasses the expanded row model; sub-rows are never flattened
270
271
  const table = useTable({
271
- features: tableFeatures({ rowExpandingFeature }),
272
- rowModels: { expandedRowModel: createExpandedRowModel() }, // ignored
272
+ features: tableFeatures({
273
+ rowExpandingFeature,
274
+ expandedRowModel: createExpandedRowModel(), // ignored when manualExpanding: true
275
+ }),
273
276
  columns,
274
277
  data,
275
278
  getSubRows: (r) => r.subRows,
@@ -284,7 +287,7 @@ Correct:
284
287
  // a pre-flattened view based on which rows are expanded.
285
288
  const table = useTable({
286
289
  features: tableFeatures({ rowExpandingFeature }),
287
- rowModels: {}, // no expandedRowModel for manual mode
290
+ // no expandedRowModel registered for manual mode
288
291
  columns,
289
292
  data: dataQuery.data, // server returns flattened rows when expanded
290
293
  manualExpanding: true,
@@ -294,8 +297,10 @@ const table = useTable({
294
297
 
295
298
  // For client-side tree, omit manualExpanding:
296
299
  const clientTable = useTable({
297
- features: tableFeatures({ rowExpandingFeature }),
298
- rowModels: { expandedRowModel: createExpandedRowModel() },
300
+ features: tableFeatures({
301
+ rowExpandingFeature,
302
+ expandedRowModel: createExpandedRowModel(),
303
+ }),
299
304
  columns,
300
305
  data,
301
306
  getSubRows: (r) => r.subRows,
@@ -329,9 +334,12 @@ Correct:
329
334
 
330
335
  ```ts
331
336
  const table = useTable({
332
- features: tableFeatures({ rowExpandingFeature }),
333
- rowModels: { expandedRowModel: createExpandedRowModel() },
334
- columns, data,
337
+ features: tableFeatures({
338
+ rowExpandingFeature,
339
+ expandedRowModel: createExpandedRowModel(),
340
+ }),
341
+ columns,
342
+ data,
335
343
  getSubRows: (r) => r.subRows,
336
344
  })
337
345
 
@@ -35,13 +35,14 @@ import {
35
35
  } from '@tanstack/table-core'
36
36
  import type { RowPinningState } from '@tanstack/table-core'
37
37
 
38
- const features = tableFeatures({ rowPinningFeature, rowPaginationFeature })
38
+ const features = tableFeatures({
39
+ rowPinningFeature,
40
+ rowPaginationFeature,
41
+ paginatedRowModel: createPaginatedRowModel(),
42
+ })
39
43
 
40
44
  const table = constructTable({
41
45
  features,
42
- rowModels: {
43
- paginatedRowModel: createPaginatedRowModel(),
44
- },
45
46
  columns,
46
47
  data,
47
48
  getRowId: (row) => row.userId, // ← essentially mandatory
@@ -97,8 +98,12 @@ row.pin('top', /* includeLeafRows */ true, /* includeParentRows */ false)
97
98
 
98
99
  ```ts
99
100
  const table = constructTable({
100
- features: tableFeatures({ rowPinningFeature, columnFilteringFeature }),
101
- rowModels: { filteredRowModel: createFilteredRowModel(filterFns) },
101
+ features: tableFeatures({
102
+ rowPinningFeature,
103
+ columnFilteringFeature,
104
+ filteredRowModel: createFilteredRowModel(),
105
+ filterFns,
106
+ }),
102
107
  columns,
103
108
  data,
104
109
  getRowId: (row) => row.id,
@@ -247,7 +252,6 @@ Correct:
247
252
  ```ts
248
253
  const table = useTable({
249
254
  features: tableFeatures({ rowPinningFeature }),
250
- rowModels: {},
251
255
  columns,
252
256
  data,
253
257
  getRowId: (row) => row.id,
@@ -40,7 +40,6 @@ const features = tableFeatures({ rowSelectionFeature })
40
40
 
41
41
  const table = constructTable({
42
42
  features,
43
- rowModels: {},
44
43
  columns,
45
44
  data,
46
45
  getRowId: (row) => row.id, // ← essentially mandatory
@@ -80,7 +79,6 @@ columnHelper.display({
80
79
  ```tsx
81
80
  const table = useTable({
82
81
  features: tableFeatures({ rowSelectionFeature }),
83
- rowModels: {},
84
82
  columns,
85
83
  data,
86
84
  getRowId: (row) => row.id,
@@ -370,7 +368,6 @@ Correct:
370
368
  ```ts
371
369
  const table = useTable({
372
370
  features: tableFeatures({ rowSelectionFeature }),
373
- rowModels: {},
374
371
  columns,
375
372
  data,
376
373
  getRowId: (row) => row.id,
@@ -2,12 +2,14 @@
2
2
  name: setup
3
3
  description: >
4
4
  Install a TanStack Table v9 framework adapter and wire up a first table with
5
- `tableFeatures({...})` declaring `features`, an `rowModels` map of factory
6
- results (`createSortedRowModel(sortFns)`, `createFilteredRowModel(filterFns)`,
7
- `createPaginatedRowModel()`, …), a `createColumnHelper<typeof features, TData>()`
8
- column set, and the framework `useTable` / `injectTable` / `createTable` /
9
- `constructTable` entry point. Covers the registry model, why `features` must
10
- be module-scoped, when to reach for `stockFeatures`, and `coreFeatures`.
5
+ `tableFeatures({...})` declaring `features` (which now also carries row model
6
+ factories like `sortedRowModel: createSortedRowModel()`, `filteredRowModel:
7
+ createFilteredRowModel()`, `paginatedRowModel: createPaginatedRowModel()`, and
8
+ fn registries like `sortFns`/`filterFns`), a
9
+ `createColumnHelper<typeof features, TData>()` column set, and the framework
10
+ `useTable` / `injectTable` / `createTable` / `constructTable` entry point.
11
+ Covers the registry model, why `features` must be module-scoped, when to reach
12
+ for `stockFeatures`, and `coreFeatures`.
11
13
  type: core
12
14
  library: tanstack-table
13
15
  library_version: '9.0.0-alpha.48'
@@ -27,7 +29,7 @@ This skill builds on `tanstack-table/state-management` and `tanstack-table/colum
27
29
 
28
30
  ## Setup
29
31
 
30
- TanStack Table v9 separates a framework-agnostic core (`@tanstack/table-core`) from per-framework adapters. Every table — vanilla or framework — must declare two new v9-required options at construction time: `features` (the registry of feature plugins) and `rowModels` (the map of pipeline factories).
32
+ TanStack Table v9 separates a framework-agnostic core (`@tanstack/table-core`) from per-framework adapters. Every table — vanilla or framework — must declare the `features` option at construction time: the registry of feature plugins, row model factories, and fn registries.
31
33
 
32
34
  ```ts
33
35
  // Framework-agnostic, using @tanstack/table-core directly.
@@ -44,7 +46,12 @@ type Person = { firstName: string; lastName: string; age: number }
44
46
 
45
47
  // 1. Declare features at MODULE scope (stable reference). This is required —
46
48
  // a fresh `features` object on every call destroys feature registration.
47
- const features = tableFeatures({ rowSortingFeature })
49
+ const features = tableFeatures({
50
+ rowSortingFeature,
51
+ // Row model factories and fn registries live on the features object.
52
+ sortedRowModel: createSortedRowModel(),
53
+ sortFns,
54
+ })
48
55
 
49
56
  // 2. Build a column helper bound to BOTH TFeatures and TData.
50
57
  const columnHelper = createColumnHelper<typeof features, Person>()
@@ -62,10 +69,6 @@ const data: Person[] = [
62
69
 
63
70
  const table = constructTable({
64
71
  features,
65
- rowModels: {
66
- // Pair every feature with its matching row-model factory.
67
- sortedRowModel: createSortedRowModel(sortFns),
68
- },
69
72
  columns,
70
73
  data,
71
74
  })
@@ -92,7 +95,6 @@ Framework adapters wrap this with reactivity:
92
95
  const features = tableFeatures({}) // core features only
93
96
  const table = constructTable({
94
97
  features,
95
- rowModels: {}, // core row model auto-included
96
98
  columns,
97
99
  data,
98
100
  })
@@ -118,15 +120,15 @@ const features = tableFeatures({
118
120
  rowSortingFeature,
119
121
  rowPaginationFeature,
120
122
  columnFilteringFeature,
123
+ sortedRowModel: createSortedRowModel(),
124
+ filteredRowModel: createFilteredRowModel(),
125
+ paginatedRowModel: createPaginatedRowModel(),
126
+ sortFns,
127
+ filterFns,
121
128
  })
122
129
 
123
130
  const table = constructTable({
124
131
  features,
125
- rowModels: {
126
- sortedRowModel: createSortedRowModel(sortFns),
127
- filteredRowModel: createFilteredRowModel(filterFns),
128
- paginatedRowModel: createPaginatedRowModel(),
129
- },
130
132
  columns,
131
133
  data,
132
134
  })
@@ -144,10 +146,8 @@ const features = tableFeatures({})
144
146
 
145
147
  const table = constructTable({
146
148
  features,
147
- rowModels: {},
148
149
  columns,
149
150
  data,
150
- _rowModelFns: {},
151
151
  // Use the vanilla binding when no framework adapter exists
152
152
  _processingMode: 'core',
153
153
  })
@@ -178,24 +178,22 @@ Wrong:
178
178
  ```ts
179
179
  // rowSortingFeature missing — table.setSorting / state.sorting unavailable
180
180
  const features = tableFeatures({}) // empty
181
- const table = useTable({ features, rowModels: {}, columns, data })
181
+ const table = useTable({ features, columns, data })
182
182
  table.setSorting([{ id: 'age', desc: true }]) // ❌ does not exist on this table type
183
183
  ```
184
184
 
185
185
  Correct:
186
186
 
187
187
  ```ts
188
- // Register every feature you intend to use; pair with its row model when applicable
189
- const features = tableFeatures({ rowSortingFeature, rowPaginationFeature })
190
- const table = useTable({
191
- features,
192
- rowModels: {
193
- sortedRowModel: createSortedRowModel(sortFns),
194
- paginatedRowModel: createPaginatedRowModel(),
195
- },
196
- columns,
197
- data,
188
+ // Register every feature you intend to use; include its row model factory and fns
189
+ const features = tableFeatures({
190
+ rowSortingFeature,
191
+ rowPaginationFeature,
192
+ sortedRowModel: createSortedRowModel(),
193
+ paginatedRowModel: createPaginatedRowModel(),
194
+ sortFns,
198
195
  })
196
+ const table = useTable({ features, columns, data })
199
197
  ```
200
198
 
201
199
  In v9, `features` is a tree-shakeable registry — TypeScript hides APIs for unregistered features and the runtime atom is never created. Agents who see `table.setColumnFilters` "missing" often incorrectly conclude the API was removed.
@@ -231,16 +229,15 @@ import {
231
229
  sortFns,
232
230
  } from '@tanstack/react-table'
233
231
 
234
- const features = tableFeatures({ rowSortingFeature })
235
- const table = useTable({
236
- features,
237
- rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
238
- columns,
239
- data,
232
+ const features = tableFeatures({
233
+ rowSortingFeature,
234
+ sortedRowModel: createSortedRowModel(),
235
+ sortFns,
240
236
  })
237
+ const table = useTable({ features, columns, data })
241
238
  ```
242
239
 
243
- v7→v8 and v8→v9 both reshaped the API substantially. Agents trained on older data confidently emit v7/v8 shapes; v9 enforces `features` + `rowModels`.
240
+ v7→v8 and v8→v9 both reshaped the API substantially. Agents trained on older data confidently emit v7/v8 shapes; v9 requires `features` with row model factories registered on it.
244
241
 
245
242
  Source: maintainer interview (Phase 4, 2026-05-17)
246
243
 
@@ -252,7 +249,7 @@ Wrong:
252
249
  function MyTable() {
253
250
  // ❌ new object every render — destroys stable feature registration
254
251
  const features = tableFeatures({ rowSortingFeature })
255
- const table = useTable({ features, rowModels: {}, columns, data })
252
+ const table = useTable({ features, columns, data })
256
253
  }
257
254
  ```
258
255
 
@@ -263,7 +260,7 @@ Correct:
263
260
  const features = tableFeatures({ rowSortingFeature })
264
261
 
265
262
  function MyTable() {
266
- const table = useTable({ features, rowModels: {}, columns, data })
263
+ const table = useTable({ features, columns, data })
267
264
  }
268
265
  ```
269
266
 
@@ -277,31 +274,26 @@ Wrong:
277
274
 
278
275
  ```ts
279
276
  // rowSortingFeature missing — sortedRowModel is orphaned and never runs
280
- const features = tableFeatures({ rowPaginationFeature })
281
- const table = useTable({
282
- features,
283
- rowModels: {
284
- sortedRowModel: createSortedRowModel(sortFns), // no-op
285
- paginatedRowModel: createPaginatedRowModel(),
286
- },
287
- columns,
288
- data,
277
+ const features = tableFeatures({
278
+ rowPaginationFeature,
279
+ sortedRowModel: createSortedRowModel(), // no-op without rowSortingFeature
280
+ paginatedRowModel: createPaginatedRowModel(),
281
+ sortFns,
289
282
  })
283
+ const table = useTable({ features, columns, data })
290
284
  ```
291
285
 
292
286
  Correct:
293
287
 
294
288
  ```ts
295
- const features = tableFeatures({ rowSortingFeature, rowPaginationFeature })
296
- const table = useTable({
297
- features,
298
- rowModels: {
299
- sortedRowModel: createSortedRowModel(sortFns),
300
- paginatedRowModel: createPaginatedRowModel(),
301
- },
302
- columns,
303
- data,
289
+ const features = tableFeatures({
290
+ rowSortingFeature,
291
+ rowPaginationFeature,
292
+ sortedRowModel: createSortedRowModel(),
293
+ paginatedRowModel: createPaginatedRowModel(),
294
+ sortFns,
304
295
  })
296
+ const table = useTable({ features, columns, data })
305
297
  ```
306
298
 
307
299
  Row-model factories only run if their matching feature is in `features`. Runtime silently degrades.
@@ -322,12 +314,12 @@ const sortedData = useMemo(() => [...data].sort((a, b) => /* …custom… */), [
322
314
  Correct:
323
315
 
324
316
  ```ts
325
- const table = useTable({
326
- features: tableFeatures({ rowSortingFeature }),
327
- rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
328
- columns,
329
- data,
317
+ const features = tableFeatures({
318
+ rowSortingFeature,
319
+ sortedRowModel: createSortedRowModel(),
320
+ sortFns,
330
321
  })
322
+ const table = useTable({ features, columns, data })
331
323
  // then: table.setSorting(...), column.toggleSorting(), header.getToggleSortingHandler()
332
324
  ```
333
325
 
@@ -368,7 +360,6 @@ Wrong:
368
360
  // ❌ Fresh [] each render — infinite loop when items is undefined
369
361
  const table = useTable({
370
362
  features,
371
- rowModels: {},
372
363
  columns,
373
364
  data: items ?? [],
374
365
  })
@@ -382,7 +373,6 @@ const EMPTY: Person[] = []
382
373
 
383
374
  const table = useTable({
384
375
  features,
385
- rowModels: {},
386
376
  columns,
387
377
  data: items ?? EMPTY,
388
378
  })
@@ -2,7 +2,7 @@
2
2
  name: sorting
3
3
  description: >
4
4
  Sort rows in TanStack Table v9 with the `sortedRowModel` stage. Covers
5
- `rowSortingFeature` + `createSortedRowModel(sortFns)`, the built-in `sortFns`
5
+ `rowSortingFeature` + `createSortedRowModel()` (registered on `features`), the built-in `sortFns`
6
6
  registry (renamed from v8 `sortingFns`), `state.sorting` (SortingState =
7
7
  Array<{ id, desc }>), `onSortingChange`, `columnDef.sortFn`
8
8
  (string | function | 'auto'), `sortDescFirst`, `sortUndefined`
@@ -47,7 +47,11 @@ type Person = {
47
47
  status: 'single' | 'complicated' | 'relationship'
48
48
  }
49
49
 
50
- const features = tableFeatures({ rowSortingFeature })
50
+ const features = tableFeatures({
51
+ rowSortingFeature,
52
+ sortedRowModel: createSortedRowModel(),
53
+ sortFns,
54
+ })
51
55
  const columnHelper = createColumnHelper<typeof features, Person>()
52
56
 
53
57
  const columns = columnHelper.columns([
@@ -61,9 +65,6 @@ const columns = columnHelper.columns([
61
65
 
62
66
  const table = constructTable({
63
67
  features,
64
- rowModels: {
65
- sortedRowModel: createSortedRowModel(sortFns),
66
- },
67
68
  columns,
68
69
  data,
69
70
  initialState: { sorting: [] satisfies SortingState },
@@ -143,7 +144,7 @@ const { data } = useQuery({
143
144
 
144
145
  const table = useTable({
145
146
  features: tableFeatures({ rowSortingFeature }),
146
- rowModels: {}, // omit sortedRowModel — server sorts
147
+ // omit sortedRowModel from features — server sorts
147
148
  columns,
148
149
  data,
149
150
  manualSorting: true,
@@ -175,20 +176,19 @@ columnHelper.accessor('firstName', {
175
176
  sortFn: 'alphanumeric',
176
177
  })
177
178
 
178
- const table = useTable({
179
- features: tableFeatures({ rowSortingFeature }),
180
- rowModels: {
181
- sortedRowModel: createSortedRowModel({
182
- ...sortFns,
183
- myCustom: (a, b, id) => a.original[id] - b.original[id],
184
- }),
179
+ const features = tableFeatures({
180
+ rowSortingFeature,
181
+ sortedRowModel: createSortedRowModel(),
182
+ sortFns: {
183
+ ...sortFns,
184
+ myCustom: (a, b, id) => a.original[id] - b.original[id],
185
185
  },
186
- columns,
187
- data,
188
186
  })
187
+
188
+ const table = useTable({ features, columns, data })
189
189
  ```
190
190
 
191
- v9 renamed `columnDef.sortingFn → sortFn`, `tableOptions.sortingFns → sortFns`, exported registry `sortingFns → sortFns`. The new column option defaults to `'auto'` and falls back to `sortFn_basic` when lookup misses — wrong names sort wrong, silently.
191
+ v9 renamed `columnDef.sortingFn → sortFn`, the fn registry slot `sortingFns → sortFns` (now registered on `features`), exported registry `sortingFns → sortFns`. The new column option defaults to `'auto'` and falls back to `sortFn_basic` when lookup misses — wrong names sort wrong, silently.
192
192
 
193
193
  Source: packages/table-core/src/features/row-sorting/rowSortingFeature.utils.ts
194
194
 
@@ -326,12 +326,12 @@ const sortedData = useMemo(
326
326
  Correct:
327
327
 
328
328
  ```ts
329
- const table = useTable({
330
- features: tableFeatures({ rowSortingFeature }),
331
- rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
332
- columns,
333
- data,
329
+ const features = tableFeatures({
330
+ rowSortingFeature,
331
+ sortedRowModel: createSortedRowModel(),
332
+ sortFns,
334
333
  })
334
+ const table = useTable({ features, columns, data })
335
335
  // table.setSorting(...), column.toggleSorting(), header.getToggleSortingHandler()
336
336
  ```
337
337