@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,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
 
@@ -36,14 +36,16 @@ import {
36
36
  sortFns,
37
37
  } from '@tanstack/table-core'
38
38
 
39
- const features = tableFeatures({ rowSortingFeature, rowPaginationFeature })
39
+ const features = tableFeatures({
40
+ rowSortingFeature,
41
+ rowPaginationFeature,
42
+ sortedRowModel: createSortedRowModel(),
43
+ paginatedRowModel: createPaginatedRowModel(),
44
+ sortFns,
45
+ })
40
46
 
41
47
  const table = constructTable({
42
48
  features,
43
- rowModels: {
44
- sortedRowModel: createSortedRowModel(sortFns),
45
- paginatedRowModel: createPaginatedRowModel(),
46
- },
47
49
  columns,
48
50
  data,
49
51
  // 1. initialState — set starting values; read once at construction
@@ -79,7 +81,6 @@ The four ownership patterns per slice:
79
81
  ```ts
80
82
  const table = constructTable({
81
83
  features,
82
- rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
83
84
  columns,
84
85
  data,
85
86
  initialState: { sorting: [{ id: 'age', desc: false }] },
@@ -95,7 +96,6 @@ const [sorting, setSorting] = React.useState<SortingState>([])
95
96
 
96
97
  const table = useTable({
97
98
  features,
98
- rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
99
99
  columns,
100
100
  data,
101
101
  state: { sorting },
@@ -119,7 +119,6 @@ function MyTable() {
119
119
 
120
120
  const table = useTable({
121
121
  features,
122
- rowModels: { paginatedRowModel: createPaginatedRowModel() },
123
122
  columns,
124
123
  data,
125
124
  atoms: { pagination: paginationAtom },
@@ -146,7 +145,7 @@ const dataQuery = useQuery({
146
145
 
147
146
  const table = useTable({
148
147
  features: tableFeatures({ rowPaginationFeature }),
149
- rowModels: {}, // can drop paginatedRowModel — server paginates
148
+ // no paginatedRowModel registered — server paginates
150
149
  columns,
151
150
  data: dataQuery.data?.rows ?? EMPTY,
152
151
  rowCount: dataQuery.data?.rowCount, // server tells the table the total
@@ -170,7 +169,9 @@ const paginationAtom = useCreateAtom<PaginationState>({ pageIndex: 0, pageSize:
170
169
  const [pagination, setPagination] = React.useState(...)
171
170
 
172
171
  const table = useTable({
173
- features, rowModels: {...}, columns, data,
172
+ features,
173
+ columns,
174
+ data,
174
175
  state: { pagination }, // ignored
175
176
  onPaginationChange: setPagination,
176
177
  atoms: { pagination: paginationAtom }, // wins
@@ -181,10 +182,15 @@ Correct:
181
182
 
182
183
  ```tsx
183
184
  // pick one ownership path per slice — here, external atoms
184
- const paginationAtom = useCreateAtom<PaginationState>({ pageIndex: 0, pageSize: 10 })
185
+ const paginationAtom = useCreateAtom<PaginationState>({
186
+ pageIndex: 0,
187
+ pageSize: 10,
188
+ })
185
189
 
186
190
  const table = useTable({
187
- features, rowModels: {...}, columns, data,
191
+ features,
192
+ columns,
193
+ data,
188
194
  atoms: { pagination: paginationAtom },
189
195
  })
190
196
  ```
@@ -201,7 +207,6 @@ Wrong:
201
207
  const [sorting, setSorting] = React.useState<SortingState>([])
202
208
  const table = useTable({
203
209
  features,
204
- rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
205
210
  columns,
206
211
  data,
207
212
  state: { sorting }, // no onSortingChange
@@ -214,7 +219,6 @@ Correct:
214
219
  const [sorting, setSorting] = React.useState<SortingState>([])
215
220
  const table = useTable({
216
221
  features,
217
- rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
218
222
  columns,
219
223
  data,
220
224
  state: { sorting },
@@ -235,7 +239,6 @@ Wrong:
235
239
  function MyTable({ defaultSort }: { defaultSort: SortingState }) {
236
240
  const table = useTable({
237
241
  features,
238
- rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
239
242
  columns,
240
243
  data,
241
244
  initialState: { sorting: defaultSort }, // later changes never sync
@@ -250,7 +253,6 @@ function MyTable({ defaultSort }: { defaultSort: SortingState }) {
250
253
  const [sorting, setSorting] = React.useState(defaultSort)
251
254
  const table = useTable({
252
255
  features,
253
- rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
254
256
  columns,
255
257
  data,
256
258
  state: { sorting },
@@ -268,8 +270,16 @@ Source: docs/framework/vanilla/guide/table-state.md; docs/framework/react/guide/
268
270
  Wrong:
269
271
 
270
272
  ```ts
271
- const paginationAtom = useCreateAtom<PaginationState>({ pageIndex: 0, pageSize: 10 })
272
- const table = useTable({ features, rowModels: {...}, columns, data, atoms: { pagination: paginationAtom } })
273
+ const paginationAtom = useCreateAtom<PaginationState>({
274
+ pageIndex: 0,
275
+ pageSize: 10,
276
+ })
277
+ const table = useTable({
278
+ features,
279
+ columns,
280
+ data,
281
+ atoms: { pagination: paginationAtom },
282
+ })
273
283
 
274
284
  table.baseAtoms.pagination.set((old) => ({ ...old, pageIndex: 0 }))
275
285
  // baseAtom updated, but table.atoms.pagination still reads from paginationAtom
@@ -298,9 +308,9 @@ const dataQuery = useQuery({
298
308
  queryKey: ['data', pagination],
299
309
  queryFn: fetchPage,
300
310
  })
311
+ // features has paginatedRowModel registered
301
312
  const table = useTable({
302
313
  features,
303
- rowModels: { paginatedRowModel: createPaginatedRowModel() },
304
314
  columns,
305
315
  data: dataQuery.data?.rows ?? [],
306
316
  rowCount: dataQuery.data?.rowCount,
@@ -312,9 +322,9 @@ const table = useTable({
312
322
  Correct:
313
323
 
314
324
  ```tsx
325
+ // Use features WITHOUT paginatedRowModel for fully server-side pagination
315
326
  const table = useTable({
316
- features,
317
- rowModels: {}, // drop paginatedRowModel if fully server-side
327
+ features: tableFeatures({ rowPaginationFeature }),
318
328
  columns,
319
329
  data: dataQuery.data?.rows ?? [],
320
330
  rowCount: dataQuery.data?.rowCount,
@@ -335,7 +345,9 @@ Wrong:
335
345
  // external atom keeps its current value; only baseAtoms reset
336
346
  const sortingAtom = useCreateAtom<SortingState>([])
337
347
  const table = useTable({
338
- features, rowModels: {...}, columns, data,
348
+ features,
349
+ columns,
350
+ data,
339
351
  atoms: { sorting: sortingAtom },
340
352
  })
341
353
  table.reset() // sortingAtom is NOT cleared
@@ -369,8 +381,11 @@ Correct:
369
381
 
370
382
  ```ts
371
383
  const table = useTable({
372
- features: tableFeatures({ rowSortingFeature }),
373
- rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
384
+ features: tableFeatures({
385
+ rowSortingFeature,
386
+ sortedRowModel: createSortedRowModel(),
387
+ sortFns,
388
+ }),
374
389
  columns,
375
390
  data,
376
391
  })
@@ -383,6 +398,6 @@ Source: maintainer interview (Phase 4, 2026-05-17)
383
398
 
384
399
  ## See also
385
400
 
386
- - `tanstack-table/setup` — how `features` and `rowModels` are wired
401
+ - `tanstack-table/setup` — how `features` (with row model factory and fn slots) is wired
387
402
  - `tanstack-table/pagination`, `tanstack-table/sorting`, `tanstack-table/filtering` — feature-specific `manual*` and reset semantics
388
403
  - `tanstack-table/migrate-v8-to-v9` — `table.getState()` → `table.store.state` / `table.atoms.<slice>.get()`
@@ -4,46 +4,24 @@ import {
4
4
  cell_getValue,
5
5
  cell_renderValue,
6
6
  } from './coreCellsFeature.utils'
7
- import type { RowData } from '../../types/type-utils'
8
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
9
- // import type { Cell_Cell, TableOptions_Cell } from './coreCellsFeature.types'
10
-
11
- export interface CoreCellsFeatureConstructors<
12
- TFeatures extends TableFeatures,
13
- TData extends RowData,
14
- > {
15
- // Cell: Cell_Cell<TableFeatures, RowData>
16
- // TableOptions: TableOptions_Cell
17
- }
7
+ import type { TableFeature } from '../../types/TableFeatures'
18
8
 
19
9
  /**
20
- * Creates the stock core cells feature.
21
- *
22
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
10
+ * Core feature that adds cell value, render, and context APIs.
23
11
  */
24
- export function constructCoreCellsFeature<
25
- TFeatures extends TableFeatures,
26
- TData extends RowData,
27
- >(): TableFeature<CoreCellsFeatureConstructors<TFeatures, TData>> {
28
- return {
29
- assignCellPrototype: (prototype, table) => {
30
- assignPrototypeAPIs('coreCellsFeature', prototype, table, {
31
- cell_getValue: {
32
- fn: (cell) => cell_getValue(cell),
33
- },
34
- cell_renderValue: {
35
- fn: (cell) => cell_renderValue(cell),
36
- },
37
- cell_getContext: {
38
- fn: (cell) => cell_getContext(cell),
39
- memoDeps: (cell) => [cell],
40
- },
41
- })
42
- },
43
- }
12
+ export const coreCellsFeature: TableFeature = {
13
+ assignCellPrototype: (prototype, table) => {
14
+ assignPrototypeAPIs('coreCellsFeature', prototype, table, {
15
+ cell_getValue: {
16
+ fn: (cell) => cell_getValue(cell),
17
+ },
18
+ cell_renderValue: {
19
+ fn: (cell) => cell_renderValue(cell),
20
+ },
21
+ cell_getContext: {
22
+ fn: (cell) => cell_getContext(cell),
23
+ memoDeps: (cell) => [cell],
24
+ },
25
+ })
26
+ },
44
27
  }
45
-
46
- /**
47
- * The Core Cells feature provides the core cell functionality.
48
- */
49
- export const coreCellsFeature = constructCoreCellsFeature()
@@ -6,8 +6,8 @@ import type { Cell } from '../../types/Cell'
6
6
  import type { Column } from '../../types/Column'
7
7
 
8
8
  export interface CellContext<
9
- TFeatures extends TableFeatures,
10
- TData extends RowData,
9
+ in out TFeatures extends TableFeatures,
10
+ in out TData extends RowData,
11
11
  TValue extends CellData = CellData,
12
12
  > {
13
13
  cell: Cell<TFeatures, TData, TValue>
@@ -19,8 +19,8 @@ export interface CellContext<
19
19
  }
20
20
 
21
21
  export interface Cell_CoreProperties<
22
- TFeatures extends TableFeatures,
23
- TData extends RowData,
22
+ in out TFeatures extends TableFeatures,
23
+ in out TData extends RowData,
24
24
  TValue extends CellData = CellData,
25
25
  > {
26
26
  /**
@@ -42,8 +42,8 @@ export interface Cell_CoreProperties<
42
42
  }
43
43
 
44
44
  export interface Cell_Cell<
45
- TFeatures extends TableFeatures,
46
- TData extends RowData,
45
+ in out TFeatures extends TableFeatures,
46
+ in out TData extends RowData,
47
47
  TValue extends CellData = CellData,
48
48
  > extends Cell_CoreProperties<TFeatures, TData, TValue> {
49
49
  /**
@@ -115,5 +115,11 @@ export function constructColumn<
115
115
  column.id = `${String(id)}`
116
116
  column.parent = parent
117
117
 
118
+ // Initialize instance-specific data for features that need it
119
+ const features = Object.values(table._features)
120
+ for (let i = 0; i < features.length; i++) {
121
+ features[i]!.initColumnInstanceData?.(column)
122
+ }
123
+
118
124
  return column as Column<TFeatures, TData, TValue>
119
125
  }