@tanstack/table-core 9.0.0-beta.2 → 9.0.0-beta.21

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 (524) hide show
  1. package/dist/core/cells/constructCell.d.cts +3 -3
  2. package/dist/core/cells/constructCell.d.ts +3 -3
  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 +6 -6
  10. package/dist/core/cells/coreCellsFeature.types.d.ts +6 -6
  11. package/dist/core/cells/coreCellsFeature.utils.d.cts +3 -3
  12. package/dist/core/cells/coreCellsFeature.utils.d.ts +3 -3
  13. package/dist/core/columns/constructColumn.cjs +5 -0
  14. package/dist/core/columns/constructColumn.cjs.map +1 -1
  15. package/dist/core/columns/constructColumn.d.cts +3 -3
  16. package/dist/core/columns/constructColumn.d.ts +3 -3
  17. package/dist/core/columns/constructColumn.js +5 -0
  18. package/dist/core/columns/constructColumn.js.map +1 -1
  19. package/dist/core/columns/coreColumnsFeature.cjs +59 -68
  20. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  21. package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
  22. package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
  23. package/dist/core/columns/coreColumnsFeature.js +60 -68
  24. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  25. package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -7
  26. package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -7
  27. package/dist/core/columns/coreColumnsFeature.utils.cjs +2 -2
  28. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
  29. package/dist/core/columns/coreColumnsFeature.utils.d.cts +9 -9
  30. package/dist/core/columns/coreColumnsFeature.utils.d.ts +9 -9
  31. package/dist/core/columns/coreColumnsFeature.utils.js +3 -3
  32. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
  33. package/dist/core/coreFeatures.cjs.map +1 -1
  34. package/dist/core/coreFeatures.d.cts +1 -1
  35. package/dist/core/coreFeatures.d.ts +1 -1
  36. package/dist/core/coreFeatures.js.map +1 -1
  37. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  38. package/dist/core/headers/buildHeaderGroups.d.cts +2 -2
  39. package/dist/core/headers/buildHeaderGroups.d.ts +2 -2
  40. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  41. package/dist/core/headers/constructHeader.d.cts +2 -2
  42. package/dist/core/headers/constructHeader.d.ts +2 -2
  43. package/dist/core/headers/coreHeadersFeature.cjs +44 -53
  44. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  45. package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
  46. package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
  47. package/dist/core/headers/coreHeadersFeature.js +45 -53
  48. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  49. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
  50. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
  51. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  52. package/dist/core/headers/coreHeadersFeature.utils.d.cts +6 -6
  53. package/dist/core/headers/coreHeadersFeature.utils.d.ts +6 -6
  54. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  55. package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
  56. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  57. package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
  58. package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
  59. package/dist/core/row-models/coreRowModelsFeature.js +18 -26
  60. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  61. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +6 -16
  62. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +6 -16
  63. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +13 -13
  64. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  65. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +14 -14
  66. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +14 -14
  67. package/dist/core/row-models/coreRowModelsFeature.utils.js +13 -13
  68. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  69. package/dist/core/row-models/createCoreRowModel.cjs +2 -3
  70. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  71. package/dist/core/row-models/createCoreRowModel.d.cts +1 -1
  72. package/dist/core/row-models/createCoreRowModel.d.ts +1 -1
  73. package/dist/core/row-models/createCoreRowModel.js +3 -4
  74. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  75. package/dist/core/rows/constructRow.cjs +3 -2
  76. package/dist/core/rows/constructRow.cjs.map +1 -1
  77. package/dist/core/rows/constructRow.d.cts +2 -2
  78. package/dist/core/rows/constructRow.d.ts +2 -2
  79. package/dist/core/rows/constructRow.js +4 -2
  80. package/dist/core/rows/constructRow.js.map +1 -1
  81. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  82. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  83. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  84. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  85. package/dist/core/rows/coreRowsFeature.js +28 -36
  86. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  87. package/dist/core/rows/coreRowsFeature.types.d.cts +6 -6
  88. package/dist/core/rows/coreRowsFeature.types.d.ts +6 -6
  89. package/dist/core/rows/coreRowsFeature.utils.cjs +3 -3
  90. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
  91. package/dist/core/rows/coreRowsFeature.utils.d.cts +3 -3
  92. package/dist/core/rows/coreRowsFeature.utils.d.ts +3 -3
  93. package/dist/core/rows/coreRowsFeature.utils.js +4 -4
  94. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
  95. package/dist/core/table/constructTable.cjs +21 -6
  96. package/dist/core/table/constructTable.cjs.map +1 -1
  97. package/dist/core/table/constructTable.d.cts +1 -1
  98. package/dist/core/table/constructTable.d.ts +1 -1
  99. package/dist/core/table/constructTable.js +21 -6
  100. package/dist/core/table/constructTable.js.map +1 -1
  101. package/dist/core/table/coreTablesFeature.cjs +7 -16
  102. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  103. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  104. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  105. package/dist/core/table/coreTablesFeature.js +8 -16
  106. package/dist/core/table/coreTablesFeature.js.map +1 -1
  107. package/dist/core/table/coreTablesFeature.types.d.cts +28 -16
  108. package/dist/core/table/coreTablesFeature.types.d.ts +28 -16
  109. package/dist/core/table/coreTablesFeature.utils.cjs +33 -12
  110. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  111. package/dist/core/table/coreTablesFeature.utils.d.cts +8 -6
  112. package/dist/core/table/coreTablesFeature.utils.d.ts +8 -6
  113. package/dist/core/table/coreTablesFeature.utils.js +33 -12
  114. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  115. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  116. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  117. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  118. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  119. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  120. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  121. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +8 -29
  122. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +8 -29
  123. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
  124. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  125. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +8 -8
  126. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +8 -8
  127. package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
  128. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  129. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  130. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  131. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  132. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  133. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  134. package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
  135. package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
  136. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  137. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  138. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  139. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  140. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  141. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  142. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  143. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  144. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  145. package/dist/features/column-filtering/columnFilteringFeature.js +42 -54
  146. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  147. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +40 -26
  148. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +40 -26
  149. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
  150. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  151. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +12 -12
  152. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +12 -12
  153. package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
  154. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  155. package/dist/features/column-filtering/createFilteredRowModel.cjs +12 -7
  156. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  157. package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
  158. package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
  159. package/dist/features/column-filtering/createFilteredRowModel.js +13 -8
  160. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  161. package/dist/features/column-filtering/filterRowsUtils.cjs +3 -2
  162. package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -1
  163. package/dist/features/column-filtering/filterRowsUtils.js +3 -2
  164. package/dist/features/column-filtering/filterRowsUtils.js.map +1 -1
  165. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  166. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  167. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  168. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  169. package/dist/features/column-grouping/columnGroupingFeature.js +59 -70
  170. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  171. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +28 -21
  172. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +28 -21
  173. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +4 -4
  174. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  175. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +11 -11
  176. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +11 -11
  177. package/dist/features/column-grouping/columnGroupingFeature.utils.js +5 -5
  178. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  179. package/dist/features/column-grouping/createGroupedRowModel.cjs +9 -7
  180. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  181. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
  182. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
  183. package/dist/features/column-grouping/createGroupedRowModel.js +10 -8
  184. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  185. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  186. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  187. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  188. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  189. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  190. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  191. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +1 -1
  192. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +1 -1
  193. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +9 -9
  194. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +9 -9
  195. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  196. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  197. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  198. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  199. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  200. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  201. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +2 -2
  202. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +2 -2
  203. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  204. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +31 -30
  205. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +31 -30
  206. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  207. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  208. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  209. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  210. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  211. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  212. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  213. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +1 -4
  214. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +1 -4
  215. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +2 -5
  216. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  217. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +6 -6
  218. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +6 -6
  219. package/dist/features/column-resizing/columnResizingFeature.utils.js +3 -6
  220. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  221. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  222. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  223. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  224. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  225. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  226. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  227. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +11 -4
  228. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  229. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +12 -12
  230. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +12 -12
  231. package/dist/features/column-sizing/columnSizingFeature.utils.js +12 -5
  232. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  233. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  234. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  235. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  236. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  237. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  238. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  239. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +2 -2
  240. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +2 -2
  241. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +12 -9
  242. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  243. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +14 -14
  244. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +14 -14
  245. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +13 -10
  246. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  247. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  248. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  249. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  250. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  251. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  252. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  253. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +2 -2
  254. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +2 -2
  255. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  256. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +10 -8
  257. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -8
  258. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  259. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  260. package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
  261. package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
  262. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  263. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  264. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  265. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  266. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  267. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  268. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  269. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +5 -14
  270. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +5 -14
  271. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +21 -12
  272. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
  273. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +10 -10
  274. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +10 -10
  275. package/dist/features/row-expanding/rowExpandingFeature.utils.js +22 -13
  276. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
  277. package/dist/features/row-pagination/createPaginatedRowModel.cjs +1 -1
  278. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  279. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
  280. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
  281. package/dist/features/row-pagination/createPaginatedRowModel.js +1 -1
  282. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  283. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  284. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  285. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  286. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  287. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  288. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  289. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +4 -13
  290. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +4 -13
  291. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +17 -17
  292. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +17 -17
  293. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  294. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  295. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  296. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  297. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  298. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  299. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
  300. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
  301. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +2 -2
  302. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
  303. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +7 -7
  304. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +7 -7
  305. package/dist/features/row-pinning/rowPinningFeature.utils.js +2 -2
  306. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
  307. package/dist/features/row-selection/rowSelectionFeature.cjs +108 -77
  308. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  309. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  310. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  311. package/dist/features/row-selection/rowSelectionFeature.js +110 -78
  312. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  313. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +13 -5
  314. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +13 -5
  315. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +76 -60
  316. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  317. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +48 -23
  318. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +48 -23
  319. package/dist/features/row-selection/rowSelectionFeature.utils.js +77 -62
  320. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  321. package/dist/features/row-sorting/createSortedRowModel.cjs +5 -3
  322. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  323. package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
  324. package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
  325. package/dist/features/row-sorting/createSortedRowModel.js +6 -4
  326. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  327. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  328. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  329. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  330. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  331. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  332. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  333. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +24 -21
  334. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +24 -21
  335. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
  336. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  337. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +16 -16
  338. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +16 -16
  339. package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
  340. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  341. package/dist/fns/aggregationFns.cjs +18 -18
  342. package/dist/fns/aggregationFns.cjs.map +1 -1
  343. package/dist/fns/aggregationFns.d.cts +21 -19
  344. package/dist/fns/aggregationFns.d.ts +21 -19
  345. package/dist/fns/aggregationFns.js +18 -18
  346. package/dist/fns/aggregationFns.js.map +1 -1
  347. package/dist/fns/filterFns.cjs +51 -65
  348. package/dist/fns/filterFns.cjs.map +1 -1
  349. package/dist/fns/filterFns.d.cts +82 -28
  350. package/dist/fns/filterFns.d.ts +82 -28
  351. package/dist/fns/filterFns.js +51 -65
  352. package/dist/fns/filterFns.js.map +1 -1
  353. package/dist/fns/sortFns.cjs +18 -6
  354. package/dist/fns/sortFns.cjs.map +1 -1
  355. package/dist/fns/sortFns.d.cts +15 -13
  356. package/dist/fns/sortFns.d.ts +15 -13
  357. package/dist/fns/sortFns.js +18 -6
  358. package/dist/fns/sortFns.js.map +1 -1
  359. package/dist/helpers/columnHelper.cjs.map +1 -1
  360. package/dist/helpers/columnHelper.d.cts +2 -2
  361. package/dist/helpers/columnHelper.d.ts +2 -2
  362. package/dist/helpers/columnHelper.js.map +1 -1
  363. package/dist/helpers/metaHelper.cjs +30 -0
  364. package/dist/helpers/metaHelper.cjs.map +1 -0
  365. package/dist/helpers/metaHelper.d.cts +26 -0
  366. package/dist/helpers/metaHelper.d.ts +26 -0
  367. package/dist/helpers/metaHelper.js +29 -0
  368. package/dist/helpers/metaHelper.js.map +1 -0
  369. package/dist/helpers/tableFeatures.cjs +31 -3
  370. package/dist/helpers/tableFeatures.cjs.map +1 -1
  371. package/dist/helpers/tableFeatures.d.cts +33 -5
  372. package/dist/helpers/tableFeatures.d.ts +33 -5
  373. package/dist/helpers/tableFeatures.js +31 -3
  374. package/dist/helpers/tableFeatures.js.map +1 -1
  375. package/dist/index.cjs +4 -20
  376. package/dist/index.d.cts +50 -49
  377. package/dist/index.d.ts +50 -49
  378. package/dist/index.js +23 -22
  379. package/dist/static-functions.cjs +1 -0
  380. package/dist/static-functions.d.cts +2 -2
  381. package/dist/static-functions.d.ts +2 -2
  382. package/dist/static-functions.js +2 -2
  383. package/dist/store-reactivity-bindings.cjs +1 -1
  384. package/dist/store-reactivity-bindings.cjs.map +1 -1
  385. package/dist/store-reactivity-bindings.d.cts +1 -1
  386. package/dist/store-reactivity-bindings.d.ts +1 -1
  387. package/dist/store-reactivity-bindings.js +1 -1
  388. package/dist/store-reactivity-bindings.js.map +1 -1
  389. package/dist/types/Cell.d.cts +4 -9
  390. package/dist/types/Cell.d.ts +4 -9
  391. package/dist/types/Column.d.cts +11 -18
  392. package/dist/types/Column.d.ts +11 -18
  393. package/dist/types/ColumnDef.d.cts +23 -14
  394. package/dist/types/ColumnDef.d.ts +23 -14
  395. package/dist/types/Header.d.cts +5 -10
  396. package/dist/types/Header.d.ts +5 -10
  397. package/dist/types/HeaderGroup.d.cts +4 -9
  398. package/dist/types/HeaderGroup.d.ts +4 -9
  399. package/dist/types/Row.d.cts +7 -12
  400. package/dist/types/Row.d.ts +7 -12
  401. package/dist/types/RowModel.d.cts +12 -28
  402. package/dist/types/RowModel.d.ts +12 -28
  403. package/dist/types/RowModelFns.d.cts +6 -11
  404. package/dist/types/RowModelFns.d.ts +6 -11
  405. package/dist/types/Table.d.cts +26 -36
  406. package/dist/types/Table.d.ts +26 -36
  407. package/dist/types/TableFeatures.d.cts +328 -54
  408. package/dist/types/TableFeatures.d.ts +328 -54
  409. package/dist/types/TableOptions.d.cts +22 -17
  410. package/dist/types/TableOptions.d.ts +22 -17
  411. package/dist/types/TableState.d.cts +11 -16
  412. package/dist/types/TableState.d.ts +11 -16
  413. package/dist/utils.cjs +24 -2
  414. package/dist/utils.cjs.map +1 -1
  415. package/dist/utils.d.cts +23 -7
  416. package/dist/utils.d.ts +23 -7
  417. package/dist/utils.js +23 -3
  418. package/dist/utils.js.map +1 -1
  419. package/package.json +2 -2
  420. package/skills/column-definitions/SKILL.md +3 -6
  421. package/skills/column-layout/SKILL.md +0 -2
  422. package/skills/customizing-feature-behavior/SKILL.md +63 -56
  423. package/skills/filtering/SKILL.md +60 -42
  424. package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
  425. package/skills/grouping/SKILL.md +49 -54
  426. package/skills/migrate-v8-to-v9/SKILL.md +30 -33
  427. package/skills/pagination/SKILL.md +22 -20
  428. package/skills/row-expanding/SKILL.md +33 -25
  429. package/skills/row-pinning/SKILL.md +11 -7
  430. package/skills/row-selection/SKILL.md +0 -3
  431. package/skills/setup/SKILL.md +55 -65
  432. package/skills/sorting/SKILL.md +21 -21
  433. package/skills/state-management/SKILL.md +40 -25
  434. package/src/core/cells/coreCellsFeature.ts +17 -39
  435. package/src/core/cells/coreCellsFeature.types.ts +6 -6
  436. package/src/core/columns/constructColumn.ts +6 -0
  437. package/src/core/columns/coreColumnsFeature.ts +56 -83
  438. package/src/core/columns/coreColumnsFeature.types.ts +8 -8
  439. package/src/core/columns/coreColumnsFeature.utils.ts +4 -4
  440. package/src/core/coreFeatures.ts +1 -1
  441. package/src/core/headers/buildHeaderGroups.ts +4 -2
  442. package/src/core/headers/coreHeadersFeature.ts +42 -64
  443. package/src/core/headers/coreHeadersFeature.types.ts +12 -12
  444. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  445. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  446. package/src/core/row-models/coreRowModelsFeature.types.ts +7 -24
  447. package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
  448. package/src/core/row-models/createCoreRowModel.ts +7 -6
  449. package/src/core/rows/constructRow.ts +3 -2
  450. package/src/core/rows/coreRowsFeature.ts +45 -72
  451. package/src/core/rows/coreRowsFeature.types.ts +8 -8
  452. package/src/core/rows/coreRowsFeature.utils.ts +4 -4
  453. package/src/core/table/constructTable.ts +50 -13
  454. package/src/core/table/coreTablesFeature.ts +13 -35
  455. package/src/core/table/coreTablesFeature.types.ts +40 -17
  456. package/src/core/table/coreTablesFeature.utils.ts +52 -18
  457. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  458. package/src/features/column-faceting/columnFacetingFeature.types.ts +11 -44
  459. package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
  460. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  461. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  462. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  463. package/src/features/column-filtering/columnFilteringFeature.ts +61 -103
  464. package/src/features/column-filtering/columnFilteringFeature.types.ts +55 -39
  465. package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
  466. package/src/features/column-filtering/createFilteredRowModel.ts +18 -17
  467. package/src/features/column-filtering/filterRowsUtils.ts +3 -2
  468. package/src/features/column-grouping/columnGroupingFeature.ts +83 -126
  469. package/src/features/column-grouping/columnGroupingFeature.types.ts +42 -34
  470. package/src/features/column-grouping/columnGroupingFeature.utils.ts +4 -2
  471. package/src/features/column-grouping/createGroupedRowModel.ts +17 -16
  472. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  473. package/src/features/column-ordering/columnOrderingFeature.types.ts +2 -2
  474. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  475. package/src/features/column-pinning/columnPinningFeature.types.ts +4 -4
  476. package/src/features/column-pinning/columnPinningFeature.utils.ts +11 -19
  477. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  478. package/src/features/column-resizing/columnResizingFeature.types.ts +1 -4
  479. package/src/features/column-resizing/columnResizingFeature.utils.ts +5 -6
  480. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  481. package/src/features/column-sizing/columnSizingFeature.utils.ts +27 -5
  482. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  483. package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
  484. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +31 -15
  485. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  486. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
  487. package/src/features/global-filtering/globalFilteringFeature.utils.ts +5 -3
  488. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  489. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  490. package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -22
  491. package/src/features/row-expanding/rowExpandingFeature.utils.ts +38 -13
  492. package/src/features/row-pagination/createPaginatedRowModel.ts +2 -2
  493. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  494. package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -20
  495. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  496. package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
  497. package/src/features/row-selection/rowSelectionFeature.ts +125 -135
  498. package/src/features/row-selection/rowSelectionFeature.types.ts +17 -7
  499. package/src/features/row-selection/rowSelectionFeature.utils.ts +144 -66
  500. package/src/features/row-sorting/createSortedRowModel.ts +12 -15
  501. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  502. package/src/features/row-sorting/rowSortingFeature.types.ts +33 -32
  503. package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
  504. package/src/fns/aggregationFns.ts +26 -42
  505. package/src/fns/filterFns.ts +237 -264
  506. package/src/fns/sortFns.ts +51 -29
  507. package/src/helpers/columnHelper.ts +4 -4
  508. package/src/helpers/metaHelper.ts +24 -0
  509. package/src/helpers/tableFeatures.ts +36 -5
  510. package/src/index.ts +1 -0
  511. package/src/store-reactivity-bindings.ts +1 -1
  512. package/src/types/Cell.ts +5 -21
  513. package/src/types/Column.ts +12 -26
  514. package/src/types/ColumnDef.ts +28 -18
  515. package/src/types/Header.ts +4 -20
  516. package/src/types/HeaderGroup.ts +7 -18
  517. package/src/types/Row.ts +6 -21
  518. package/src/types/RowModel.ts +15 -88
  519. package/src/types/RowModelFns.ts +9 -24
  520. package/src/types/Table.ts +54 -44
  521. package/src/types/TableFeatures.ts +402 -123
  522. package/src/types/TableOptions.ts +59 -21
  523. package/src/types/TableState.ts +5 -17
  524. package/src/utils.ts +40 -8
@@ -2,7 +2,7 @@
2
2
  name: grouping
3
3
  description: >
4
4
  Group rows by column values in TanStack Table v9 with the `groupedRowModel`
5
- stage. Covers `columnGroupingFeature` + `createGroupedRowModel(aggregationFns)`,
5
+ stage. Covers `columnGroupingFeature` + `createGroupedRowModel()` (registered on `features` with `aggregationFns` slot),
6
6
  `state.grouping` (GroupingState = Array<string>), `onGroupingChange`,
7
7
  `columnDef.aggregationFn` ('auto'|name|fn) — distinct signature
8
8
  `(columnId, leafRows, childRows)` — `columnDef.aggregatedCell`,
@@ -49,6 +49,10 @@ const features = tableFeatures({
49
49
  columnGroupingFeature,
50
50
  rowExpandingFeature,
51
51
  rowPaginationFeature,
52
+ groupedRowModel: createGroupedRowModel(),
53
+ expandedRowModel: createExpandedRowModel(),
54
+ paginatedRowModel: createPaginatedRowModel(),
55
+ aggregationFns,
52
56
  })
53
57
 
54
58
  const columnHelper = createColumnHelper<typeof features, Person>()
@@ -66,11 +70,6 @@ const columns = columnHelper.columns([
66
70
 
67
71
  const table = constructTable({
68
72
  features,
69
- rowModels: {
70
- groupedRowModel: createGroupedRowModel(aggregationFns),
71
- expandedRowModel: createExpandedRowModel(),
72
- paginatedRowModel: createPaginatedRowModel(),
73
- },
74
73
  columns,
75
74
  data,
76
75
  initialState: { grouping: [] satisfies GroupingState },
@@ -144,15 +143,16 @@ const weightedAverage: AggregationFn<typeof features, Person> = (
144
143
  return totalWeight === 0 ? 0 : weightedSum / totalWeight
145
144
  }
146
145
 
146
+ const customFeatures = tableFeatures({
147
+ columnGroupingFeature,
148
+ rowExpandingFeature,
149
+ groupedRowModel: createGroupedRowModel(),
150
+ expandedRowModel: createExpandedRowModel(),
151
+ aggregationFns: { ...aggregationFns, weightedAverage },
152
+ })
153
+
147
154
  const table = constructTable({
148
- features,
149
- rowModels: {
150
- groupedRowModel: createGroupedRowModel({
151
- ...aggregationFns,
152
- weightedAverage,
153
- }),
154
- expandedRowModel: createExpandedRowModel(),
155
- },
155
+ features: customFeatures,
156
156
  columns: columnHelper.columns([
157
157
  columnHelper.accessor('progress', {
158
158
  aggregationFn: 'weightedAverage',
@@ -177,10 +177,6 @@ columnHelper.accessor('firstName', {
177
177
  ```ts
178
178
  const table = constructTable({
179
179
  features,
180
- rowModels: {
181
- groupedRowModel: createGroupedRowModel(aggregationFns),
182
- expandedRowModel: createExpandedRowModel(),
183
- },
184
180
  columns,
185
181
  data,
186
182
  groupedColumnMode: 'reorder', // default — grouped columns lead
@@ -197,13 +193,12 @@ Wrong:
197
193
 
198
194
  ```ts
199
195
  // grouped rows show aggregates but can't be expanded
200
- const features = tableFeatures({ columnGroupingFeature })
201
- const table = useTable({
202
- features,
203
- rowModels: { groupedRowModel: createGroupedRowModel(aggregationFns) },
204
- columns,
205
- data,
196
+ const features = tableFeatures({
197
+ columnGroupingFeature,
198
+ groupedRowModel: createGroupedRowModel(),
199
+ aggregationFns,
206
200
  })
201
+ const table = useTable({ features, columns, data })
207
202
  // row.getToggleExpandedHandler() → TS error or undefined
208
203
  ```
209
204
 
@@ -221,16 +216,12 @@ import {
221
216
  const features = tableFeatures({
222
217
  columnGroupingFeature,
223
218
  rowExpandingFeature,
219
+ groupedRowModel: createGroupedRowModel(),
220
+ expandedRowModel: createExpandedRowModel(),
221
+ aggregationFns,
224
222
  })
225
223
 
226
- const table = useTable({
227
- features,
228
- rowModels: {
229
- groupedRowModel: createGroupedRowModel(aggregationFns),
230
- expandedRowModel: createExpandedRowModel(),
231
- },
232
- columns, data,
233
- })
224
+ const table = useTable({ features, columns, data })
234
225
 
235
226
  // In cell renderer:
236
227
  {cell.getIsGrouped() && (
@@ -250,8 +241,11 @@ Wrong:
250
241
 
251
242
  ```ts
252
243
  const table = useTable({
253
- features: tableFeatures({ columnGroupingFeature }),
254
- rowModels: { groupedRowModel: createGroupedRowModel(aggregationFns) },
244
+ features: tableFeatures({
245
+ columnGroupingFeature,
246
+ groupedRowModel: createGroupedRowModel(),
247
+ aggregationFns,
248
+ }),
255
249
  columns, data,
256
250
  // @ts-ignore - this property doesn't exist on v9 TableOptions
257
251
  aggregationFns: {
@@ -265,26 +259,26 @@ Correct:
265
259
  ```ts
266
260
  import { aggregationFns, createGroupedRowModel } from '@tanstack/react-table'
267
261
 
268
- const table = useTable({
269
- features: tableFeatures({ columnGroupingFeature, rowExpandingFeature }),
270
- rowModels: {
271
- groupedRowModel: createGroupedRowModel({
272
- ...aggregationFns,
273
- myCustomAggregation: (columnId, leafRows, childRows) => {
274
- return /* aggregated value */
275
- },
276
- }),
277
- expandedRowModel: createExpandedRowModel(),
262
+ const features = tableFeatures({
263
+ columnGroupingFeature,
264
+ rowExpandingFeature,
265
+ groupedRowModel: createGroupedRowModel(),
266
+ expandedRowModel: createExpandedRowModel(),
267
+ aggregationFns: {
268
+ ...aggregationFns,
269
+ myCustomAggregation: (columnId, leafRows, childRows) => {
270
+ return /* aggregated value */
271
+ },
278
272
  },
279
- columns,
280
- data,
281
273
  })
282
274
 
275
+ const table = useTable({ features, columns, data })
276
+
283
277
  // Then on a column:
284
278
  columnHelper.accessor('sales', { aggregationFn: 'myCustomAggregation' })
285
279
  ```
286
280
 
287
- In v9, the aggregation registry is the FIRST argument to `createGroupedRowModel`. There is no top-level `tableOptions.aggregationFns`.
281
+ In v9, the aggregation registry is the `aggregationFns` slot on `features`. There is no top-level `tableOptions.aggregationFns`.
288
282
 
289
283
  Source: packages/table-core/src/features/column-grouping/createGroupedRowModel.ts
290
284
 
@@ -345,7 +339,6 @@ Wrong:
345
339
  ```ts
346
340
  const table = useTable({
347
341
  features,
348
- rowModels: { groupedRowModel: createGroupedRowModel(aggregationFns) },
349
342
  columns,
350
343
  data,
351
344
  initialState: {
@@ -361,7 +354,6 @@ Correct:
361
354
  ```ts
362
355
  const table = useTable({
363
356
  features,
364
- rowModels: { groupedRowModel: createGroupedRowModel(aggregationFns) },
365
357
  columns,
366
358
  data,
367
359
  initialState: {
@@ -424,12 +416,15 @@ const grouped = useMemo(() => {
424
416
  Correct:
425
417
 
426
418
  ```ts
419
+ const features = tableFeatures({
420
+ columnGroupingFeature,
421
+ rowExpandingFeature,
422
+ groupedRowModel: createGroupedRowModel(),
423
+ expandedRowModel: createExpandedRowModel(),
424
+ aggregationFns,
425
+ })
427
426
  const table = useTable({
428
- features: tableFeatures({ columnGroupingFeature, rowExpandingFeature }),
429
- rowModels: {
430
- groupedRowModel: createGroupedRowModel(aggregationFns),
431
- expandedRowModel: createExpandedRowModel(),
432
- },
427
+ features,
433
428
  columns: columnHelper.columns([
434
429
  columnHelper.accessor('status', { enableGrouping: true }),
435
430
  columnHelper.accessor('age', { aggregationFn: 'mean' }),
@@ -4,11 +4,12 @@ description: >
4
4
  Mechanical breaking-change migration from TanStack Table v8 to v9 at the
5
5
  `@tanstack/table-core` level. Covers hook/entry rename
6
6
  (`useReactTable`/`createSolidTable`/… → `useTable`/`injectTable`/`createTable`/
7
- `constructTable`), the new required `features` + `rowModels` options,
7
+ `constructTable`), the new required `features` option (which now carries row
8
+ model factories and fn registries — `rowModels` option is removed),
8
9
  `createColumnHelper<TData>()` → `createColumnHelper<typeof features, TData>()`,
9
10
  row-model factory rename (`getCoreRowModel()` → automatic; `getSortedRowModel()`
10
- → `createSortedRowModel(sortFns)`; same for filtered/paginated/grouped/expanded/
11
- faceted), `table.getState()` → `table.store.state` / `table.atoms.<slice>.get()`,
11
+ → `createSortedRowModel()` as a slot on `tableFeatures({...})` with `sortFns` also
12
+ a slot; same for filtered/paginated/grouped/expanded/faceted), `table.getState()` → `table.store.state` / `table.atoms.<slice>.get()`,
12
13
  sorting renames (`sortingFn` → `sortFn`, etc.), `enablePinning` split, column
13
14
  sizing/resizing split, underscore-prefixed APIs becoming public, `RowData`
14
15
  type tightening, TFeatures-first generics, the `useLegacyTable` React escape
@@ -32,9 +33,9 @@ sources:
32
33
  v9 is a substantial reshape, not a tweak. The breaking changes group into:
33
34
 
34
35
  1. **Hook/entry rename** per adapter.
35
- 2. **`features` + `rowModels` are required** — features are tree-shaken.
36
+ 2. **`features` is required** — features are tree-shaken. Row model factories and fn registries (`sortFns`, `filterFns`, `aggregationFns`) now live as slots on the `features` object; the `rowModels` option is gone.
36
37
  3. **Column helper generic order** — `<TFeatures, TData>` not `<TData>`.
37
- 4. **Row-model factories** moved out of root options, into `rowModels`, and now take their `*Fns` argument.
38
+ 4. **Row-model factories** moved out of root options and into `tableFeatures({...})` as named slots; factory args for `*Fns` are replaced by dedicated fn-registry slots on `features`.
38
39
  5. **State surface renamed** — `table.getState()` → `table.store.state` / `table.atoms.<slice>.get()` / `table.state` (selector).
39
40
  6. **Sorting names**: `sortingFn` → `sortFn`, `sortingFns` → `sortFns`, `getSortingFn()` → `getSortFn()`, type `SortingFn` → `SortFn`.
40
41
  7. **`enablePinning` split** into `enableColumnPinning` + `enableRowPinning` (table-level); per-column `enablePinning` stays.
@@ -75,6 +76,12 @@ const features = tableFeatures({
75
76
  columnFilteringFeature,
76
77
  columnSizingFeature,
77
78
  columnResizingFeature, // explicit — formerly part of ColumnSizing
79
+ // Row model factories and fn registries are slots on features, not rowModels.
80
+ sortedRowModel: createSortedRowModel(),
81
+ filteredRowModel: createFilteredRowModel(),
82
+ paginatedRowModel: createPaginatedRowModel(),
83
+ sortFns,
84
+ filterFns,
78
85
  })
79
86
 
80
87
  const columnHelper = createColumnHelper<typeof features, Person>()
@@ -88,11 +95,6 @@ const columns: ColumnDef<typeof features, Person>[] = columnHelper.columns([
88
95
 
89
96
  const table = useTable({
90
97
  features,
91
- rowModels: {
92
- sortedRowModel: createSortedRowModel(sortFns),
93
- filteredRowModel: createFilteredRowModel(filterFns),
94
- paginatedRowModel: createPaginatedRowModel(),
95
- },
96
98
  columns,
97
99
  data,
98
100
  enableColumnPinning: true, // split from enablePinning
@@ -200,13 +202,12 @@ import {
200
202
  sortFns,
201
203
  } from '@tanstack/react-table'
202
204
 
203
- const features = tableFeatures({ rowSortingFeature })
204
- const table = useTable({
205
- features,
206
- rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
207
- columns,
208
- data,
205
+ const features = tableFeatures({
206
+ rowSortingFeature,
207
+ sortedRowModel: createSortedRowModel(),
208
+ sortFns,
209
209
  })
210
+ const table = useTable({ features, columns, data })
210
211
  ```
211
212
 
212
213
  Every major release of TanStack Table has been a substantial upgrade. Agents trained on v7 or v8 will confidently emit shapes that no longer exist. This is the #2 AI failure (after reimplementing built-ins).
@@ -239,18 +240,15 @@ import {
239
240
  sortFns,
240
241
  } from '@tanstack/react-table'
241
242
 
242
- const features = tableFeatures({ rowSortingFeature })
243
- const table = useTable({
244
- features,
245
- rowModels: {
246
- sortedRowModel: createSortedRowModel(sortFns), // factory takes sortFns argument
247
- },
248
- columns,
249
- data,
243
+ const features = tableFeatures({
244
+ rowSortingFeature,
245
+ sortedRowModel: createSortedRowModel(),
246
+ sortFns,
250
247
  })
248
+ const table = useTable({ features, columns, data })
251
249
  ```
252
250
 
253
- In v9, row models live under `rowModels` and the factories REQUIRE their \*Fns argument for tree-shaking: `createFilteredRowModel(filterFns)`, `createSortedRowModel(sortFns)`, `createGroupedRowModel(aggregationFns)`. Core is automatic.
251
+ In v9, row model factories are slots on `features`: `filteredRowModel: createFilteredRowModel()`, `sortedRowModel: createSortedRowModel()`, `groupedRowModel: createGroupedRowModel()`. The fn registries move too: `filterFns`, `sortFns`, `aggregationFns` are named slots on `features`. Core is automatic.
254
252
 
255
253
  Source: PR #6234 (atoms refactor); packages/table-core/src/index.ts
256
254
 
@@ -307,11 +305,11 @@ Correct:
307
305
 
308
306
  ```ts
309
307
  columnHelper.accessor('age', { sortFn: 'alphanumeric' })
310
- createSortedRowModel(sortFns) // pass registry to the factory
308
+ // sortFns is a slot on features: tableFeatures({ rowSortingFeature, sortedRowModel: createSortedRowModel(), sortFns })
311
309
  column.getSortFn()
312
310
  ```
313
311
 
314
- v9 renamed every sorting API: `sortingFn` → `sortFn`, `sortingFns` → `sortFns`, type `SortingFn` → `SortFn`, `getSortingFn()` → `getSortFn()`. TypeScript surfaces these but agents try v8 names first.
312
+ v9 renamed every sorting API: `sortingFn` → `sortFn`, `sortingFns` → `sortFns` (now a features slot, not a factory arg), type `SortingFn` → `SortFn`, `getSortingFn()` → `getSortFn()`. TypeScript surfaces these but agents try v8 names first.
315
313
 
316
314
  Source: packages/table-core/src/features/row-sorting/rowSortingFeature.types.ts
317
315
 
@@ -475,13 +473,12 @@ import {
475
473
  createSortedRowModel,
476
474
  sortFns,
477
475
  } from '@tanstack/react-table'
478
- const features = tableFeatures({ rowSortingFeature })
479
- const table = useTable({
480
- features,
481
- rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
482
- columns,
483
- data,
476
+ const features = tableFeatures({
477
+ rowSortingFeature,
478
+ sortedRowModel: createSortedRowModel(),
479
+ sortFns,
484
480
  })
481
+ const table = useTable({ features, columns, data })
485
482
  ```
486
483
 
487
484
  `useLegacyTable` is React-only, deprecated, bundles every feature, doesn't support `table.Subscribe`, and is removed in v10. It exists to unblock incremental migration — not as a long-term API.
@@ -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,