@tanstack/table-core 9.0.0-beta.5 → 9.0.0-beta.51

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 (602) hide show
  1. package/README.md +2 -0
  2. package/dist/core/cells/constructCell.cjs +1 -4
  3. package/dist/core/cells/constructCell.cjs.map +1 -1
  4. package/dist/core/cells/constructCell.d.cts +4 -4
  5. package/dist/core/cells/constructCell.d.ts +4 -4
  6. package/dist/core/cells/constructCell.js +1 -4
  7. package/dist/core/cells/constructCell.js.map +1 -1
  8. package/dist/core/cells/coreCellsFeature.types.d.cts +7 -7
  9. package/dist/core/cells/coreCellsFeature.types.d.ts +7 -7
  10. package/dist/core/cells/coreCellsFeature.utils.d.cts +4 -4
  11. package/dist/core/cells/coreCellsFeature.utils.d.ts +4 -4
  12. package/dist/core/columns/constructColumn.cjs +4 -5
  13. package/dist/core/columns/constructColumn.cjs.map +1 -1
  14. package/dist/core/columns/constructColumn.d.cts +3 -3
  15. package/dist/core/columns/constructColumn.d.ts +3 -3
  16. package/dist/core/columns/constructColumn.js +4 -5
  17. package/dist/core/columns/constructColumn.js.map +1 -1
  18. package/dist/core/columns/coreColumnsFeature.cjs +12 -18
  19. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  20. package/dist/core/columns/coreColumnsFeature.js +12 -18
  21. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  22. package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -7
  23. package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -7
  24. package/dist/core/columns/coreColumnsFeature.utils.cjs +4 -8
  25. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
  26. package/dist/core/columns/coreColumnsFeature.utils.d.cts +9 -9
  27. package/dist/core/columns/coreColumnsFeature.utils.d.ts +9 -9
  28. package/dist/core/columns/coreColumnsFeature.utils.js +5 -9
  29. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
  30. package/dist/core/coreFeatures.cjs.map +1 -1
  31. package/dist/core/coreFeatures.d.cts +1 -1
  32. package/dist/core/coreFeatures.d.ts +1 -1
  33. package/dist/core/coreFeatures.js.map +1 -1
  34. package/dist/core/headers/buildHeaderGroups.cjs +1 -2
  35. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  36. package/dist/core/headers/buildHeaderGroups.d.cts +2 -2
  37. package/dist/core/headers/buildHeaderGroups.d.ts +2 -2
  38. package/dist/core/headers/buildHeaderGroups.js +1 -2
  39. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  40. package/dist/core/headers/constructHeader.cjs +1 -4
  41. package/dist/core/headers/constructHeader.cjs.map +1 -1
  42. package/dist/core/headers/constructHeader.d.cts +2 -2
  43. package/dist/core/headers/constructHeader.d.ts +2 -2
  44. package/dist/core/headers/constructHeader.js +1 -4
  45. package/dist/core/headers/constructHeader.js.map +1 -1
  46. package/dist/core/headers/coreHeadersFeature.cjs +8 -11
  47. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  48. package/dist/core/headers/coreHeadersFeature.js +8 -11
  49. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  50. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
  51. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
  52. package/dist/core/headers/coreHeadersFeature.utils.cjs +8 -10
  53. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  54. package/dist/core/headers/coreHeadersFeature.utils.d.cts +6 -6
  55. package/dist/core/headers/coreHeadersFeature.utils.d.ts +6 -6
  56. package/dist/core/headers/coreHeadersFeature.utils.js +8 -10
  57. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  58. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +7 -15
  59. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +7 -15
  60. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +8 -26
  61. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  62. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +16 -16
  63. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +16 -16
  64. package/dist/core/row-models/coreRowModelsFeature.utils.js +8 -26
  65. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  66. package/dist/core/row-models/createCoreRowModel.cjs +4 -6
  67. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  68. package/dist/core/row-models/createCoreRowModel.d.cts +2 -2
  69. package/dist/core/row-models/createCoreRowModel.d.ts +2 -2
  70. package/dist/core/row-models/createCoreRowModel.js +5 -7
  71. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  72. package/dist/core/rows/constructRow.cjs +6 -10
  73. package/dist/core/rows/constructRow.cjs.map +1 -1
  74. package/dist/core/rows/constructRow.d.cts +2 -2
  75. package/dist/core/rows/constructRow.d.ts +2 -2
  76. package/dist/core/rows/constructRow.js +7 -10
  77. package/dist/core/rows/constructRow.js.map +1 -1
  78. package/dist/core/rows/coreRowsFeature.cjs +18 -2
  79. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  80. package/dist/core/rows/coreRowsFeature.js +19 -3
  81. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  82. package/dist/core/rows/coreRowsFeature.types.d.cts +41 -7
  83. package/dist/core/rows/coreRowsFeature.types.d.ts +41 -7
  84. package/dist/core/rows/coreRowsFeature.utils.cjs +62 -8
  85. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
  86. package/dist/core/rows/coreRowsFeature.utils.d.cts +24 -5
  87. package/dist/core/rows/coreRowsFeature.utils.d.ts +24 -5
  88. package/dist/core/rows/coreRowsFeature.utils.js +61 -10
  89. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
  90. package/dist/core/table/constructTable.cjs +24 -14
  91. package/dist/core/table/constructTable.cjs.map +1 -1
  92. package/dist/core/table/constructTable.d.cts +1 -1
  93. package/dist/core/table/constructTable.d.ts +1 -1
  94. package/dist/core/table/constructTable.js +24 -14
  95. package/dist/core/table/constructTable.js.map +1 -1
  96. package/dist/core/table/coreTablesFeature.types.d.cts +32 -19
  97. package/dist/core/table/coreTablesFeature.types.d.ts +32 -19
  98. package/dist/core/table/coreTablesFeature.utils.cjs +38 -14
  99. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  100. package/dist/core/table/coreTablesFeature.utils.d.cts +10 -7
  101. package/dist/core/table/coreTablesFeature.utils.d.ts +10 -7
  102. package/dist/core/table/coreTablesFeature.utils.js +38 -14
  103. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  104. package/dist/experimental-worker-plugin.cjs +14 -0
  105. package/dist/experimental-worker-plugin.d.cts +5 -0
  106. package/dist/experimental-worker-plugin.d.ts +5 -0
  107. package/dist/experimental-worker-plugin.js +6 -0
  108. package/dist/features/column-faceting/columnFacetingFeature.cjs +12 -18
  109. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  110. package/dist/features/column-faceting/columnFacetingFeature.js +12 -18
  111. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  112. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +15 -33
  113. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +15 -33
  114. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +23 -12
  115. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  116. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +9 -9
  117. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +9 -9
  118. package/dist/features/column-faceting/columnFacetingFeature.utils.js +24 -12
  119. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  120. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +7 -4
  121. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  122. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  123. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  124. package/dist/features/column-faceting/createFacetedMinMaxValues.js +8 -5
  125. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  126. package/dist/features/column-faceting/createFacetedRowModel.cjs +10 -15
  127. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  128. package/dist/features/column-faceting/createFacetedRowModel.d.cts +2 -2
  129. package/dist/features/column-faceting/createFacetedRowModel.d.ts +2 -2
  130. package/dist/features/column-faceting/createFacetedRowModel.js +10 -15
  131. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  132. package/dist/features/column-faceting/createFacetedUniqueValues.cjs +10 -6
  133. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  134. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  135. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  136. package/dist/features/column-faceting/createFacetedUniqueValues.js +11 -7
  137. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  138. package/dist/features/column-filtering/columnFilteringFeature.cjs +2 -2
  139. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  140. package/dist/features/column-filtering/columnFilteringFeature.js +3 -3
  141. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  142. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +83 -29
  143. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +83 -29
  144. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +23 -17
  145. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  146. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +18 -14
  147. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +18 -14
  148. package/dist/features/column-filtering/columnFilteringFeature.utils.js +23 -17
  149. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  150. package/dist/features/column-filtering/createFilteredRowModel.cjs +29 -25
  151. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  152. package/dist/features/column-filtering/createFilteredRowModel.d.cts +10 -4
  153. package/dist/features/column-filtering/createFilteredRowModel.d.ts +10 -4
  154. package/dist/features/column-filtering/createFilteredRowModel.js +30 -26
  155. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  156. package/dist/features/column-filtering/filterFns.cjs +399 -0
  157. package/dist/features/column-filtering/filterFns.cjs.map +1 -0
  158. package/dist/features/column-filtering/filterFns.d.cts +210 -0
  159. package/dist/features/column-filtering/filterFns.d.ts +210 -0
  160. package/dist/features/column-filtering/filterFns.js +375 -0
  161. package/dist/features/column-filtering/filterFns.js.map +1 -0
  162. package/dist/features/column-filtering/filterRowsUtils.cjs +3 -2
  163. package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -1
  164. package/dist/features/column-filtering/filterRowsUtils.js +3 -2
  165. package/dist/features/column-filtering/filterRowsUtils.js.map +1 -1
  166. package/dist/features/column-grouping/columnGroupingFeature.cjs +4 -16
  167. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  168. package/dist/features/column-grouping/columnGroupingFeature.d.cts +1 -1
  169. package/dist/features/column-grouping/columnGroupingFeature.d.ts +1 -1
  170. package/dist/features/column-grouping/columnGroupingFeature.js +6 -18
  171. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  172. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +14 -50
  173. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +14 -50
  174. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +6 -61
  175. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  176. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +12 -49
  177. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +12 -49
  178. package/dist/features/column-grouping/columnGroupingFeature.utils.js +8 -60
  179. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  180. package/dist/features/column-grouping/createGroupedRowModel.cjs +37 -24
  181. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  182. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -4
  183. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -4
  184. package/dist/features/column-grouping/createGroupedRowModel.js +39 -26
  185. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  186. package/dist/features/column-ordering/columnOrderingFeature.cjs +17 -21
  187. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  188. package/dist/features/column-ordering/columnOrderingFeature.js +18 -22
  189. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  190. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +28 -3
  191. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +28 -3
  192. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +35 -15
  193. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
  194. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +26 -14
  195. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +26 -14
  196. package/dist/features/column-ordering/columnOrderingFeature.utils.js +36 -17
  197. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
  198. package/dist/features/column-pinning/columnPinningFeature.cjs +124 -143
  199. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  200. package/dist/features/column-pinning/columnPinningFeature.d.cts +6 -1
  201. package/dist/features/column-pinning/columnPinningFeature.d.ts +6 -1
  202. package/dist/features/column-pinning/columnPinningFeature.js +125 -144
  203. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  204. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +52 -41
  205. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +52 -41
  206. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +161 -162
  207. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  208. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +101 -92
  209. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +101 -92
  210. package/dist/features/column-pinning/columnPinningFeature.utils.js +148 -149
  211. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  212. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +1 -4
  213. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +1 -4
  214. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +84 -44
  215. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  216. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +6 -6
  217. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +6 -6
  218. package/dist/features/column-resizing/columnResizingFeature.utils.js +85 -45
  219. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  220. package/dist/features/column-sizing/columnSizingFeature.cjs +33 -67
  221. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  222. package/dist/features/column-sizing/columnSizingFeature.js +34 -68
  223. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  224. package/dist/features/column-sizing/columnSizingFeature.types.d.cts +52 -9
  225. package/dist/features/column-sizing/columnSizingFeature.types.d.ts +52 -9
  226. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +88 -45
  227. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  228. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +43 -25
  229. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +43 -25
  230. package/dist/features/column-sizing/columnSizingFeature.utils.js +88 -46
  231. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  232. package/dist/features/column-visibility/columnVisibilityFeature.cjs +25 -36
  233. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  234. package/dist/features/column-visibility/columnVisibilityFeature.js +25 -36
  235. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  236. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +3 -3
  237. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +3 -3
  238. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +30 -29
  239. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  240. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +18 -18
  241. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +18 -18
  242. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +31 -30
  243. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  244. package/dist/features/global-filtering/globalFilteringFeature.cjs +1 -2
  245. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  246. package/dist/features/global-filtering/globalFilteringFeature.js +1 -2
  247. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  248. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +2 -2
  249. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +2 -2
  250. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +6 -6
  251. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  252. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +8 -11
  253. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +8 -11
  254. package/dist/features/global-filtering/globalFilteringFeature.utils.js +6 -6
  255. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  256. package/dist/features/row-aggregation/aggregationFns.cjs +246 -0
  257. package/dist/features/row-aggregation/aggregationFns.cjs.map +1 -0
  258. package/dist/features/row-aggregation/aggregationFns.d.cts +68 -0
  259. package/dist/features/row-aggregation/aggregationFns.d.ts +68 -0
  260. package/dist/features/row-aggregation/aggregationFns.js +235 -0
  261. package/dist/features/row-aggregation/aggregationFns.js.map +1 -0
  262. package/dist/features/row-aggregation/rowAggregationFeature.cjs +39 -0
  263. package/dist/features/row-aggregation/rowAggregationFeature.cjs.map +1 -0
  264. package/dist/features/row-aggregation/rowAggregationFeature.d.cts +10 -0
  265. package/dist/features/row-aggregation/rowAggregationFeature.d.ts +10 -0
  266. package/dist/features/row-aggregation/rowAggregationFeature.js +39 -0
  267. package/dist/features/row-aggregation/rowAggregationFeature.js.map +1 -0
  268. package/dist/features/row-aggregation/rowAggregationFeature.types.cjs +13 -0
  269. package/dist/features/row-aggregation/rowAggregationFeature.types.cjs.map +1 -0
  270. package/dist/features/row-aggregation/rowAggregationFeature.types.d.cts +195 -0
  271. package/dist/features/row-aggregation/rowAggregationFeature.types.d.ts +195 -0
  272. package/dist/features/row-aggregation/rowAggregationFeature.types.js +12 -0
  273. package/dist/features/row-aggregation/rowAggregationFeature.types.js.map +1 -0
  274. package/dist/features/row-aggregation/rowAggregationFeature.utils.cjs +212 -0
  275. package/dist/features/row-aggregation/rowAggregationFeature.utils.cjs.map +1 -0
  276. package/dist/features/row-aggregation/rowAggregationFeature.utils.d.cts +34 -0
  277. package/dist/features/row-aggregation/rowAggregationFeature.utils.d.ts +34 -0
  278. package/dist/features/row-aggregation/rowAggregationFeature.utils.js +206 -0
  279. package/dist/features/row-aggregation/rowAggregationFeature.utils.js.map +1 -0
  280. package/dist/features/row-expanding/createExpandedRowModel.cjs +6 -10
  281. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  282. package/dist/features/row-expanding/createExpandedRowModel.d.cts +2 -2
  283. package/dist/features/row-expanding/createExpandedRowModel.d.ts +2 -2
  284. package/dist/features/row-expanding/createExpandedRowModel.js +6 -10
  285. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  286. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +6 -15
  287. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +6 -15
  288. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +28 -26
  289. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
  290. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +10 -10
  291. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +10 -10
  292. package/dist/features/row-expanding/rowExpandingFeature.utils.js +29 -27
  293. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
  294. package/dist/features/row-pagination/createPaginatedRowModel.cjs +6 -10
  295. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  296. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +2 -2
  297. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +2 -2
  298. package/dist/features/row-pagination/createPaginatedRowModel.js +6 -10
  299. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  300. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +5 -14
  301. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +5 -14
  302. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +9 -15
  303. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
  304. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +17 -17
  305. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +17 -17
  306. package/dist/features/row-pagination/rowPaginationFeature.utils.js +9 -15
  307. package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
  308. package/dist/features/row-pinning/rowPinningFeature.cjs +4 -16
  309. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  310. package/dist/features/row-pinning/rowPinningFeature.js +4 -16
  311. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  312. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
  313. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
  314. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +9 -14
  315. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
  316. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +7 -7
  317. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +7 -7
  318. package/dist/features/row-pinning/rowPinningFeature.utils.js +9 -14
  319. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
  320. package/dist/features/row-selection/rowSelectionFeature.cjs +66 -22
  321. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  322. package/dist/features/row-selection/rowSelectionFeature.js +67 -23
  323. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  324. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +49 -11
  325. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +49 -11
  326. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +128 -72
  327. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  328. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +57 -30
  329. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +57 -30
  330. package/dist/features/row-selection/rowSelectionFeature.utils.js +129 -74
  331. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  332. package/dist/features/row-sorting/createSortedRowModel.cjs +69 -50
  333. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  334. package/dist/features/row-sorting/createSortedRowModel.d.cts +10 -4
  335. package/dist/features/row-sorting/createSortedRowModel.d.ts +10 -4
  336. package/dist/features/row-sorting/createSortedRowModel.js +70 -51
  337. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  338. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +54 -22
  339. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +54 -22
  340. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +31 -17
  341. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  342. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +16 -16
  343. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +16 -16
  344. package/dist/features/row-sorting/rowSortingFeature.utils.js +31 -17
  345. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  346. package/dist/features/row-sorting/sortFns.cjs +226 -0
  347. package/dist/features/row-sorting/sortFns.cjs.map +1 -0
  348. package/dist/features/row-sorting/sortFns.d.cts +98 -0
  349. package/dist/features/row-sorting/sortFns.d.ts +98 -0
  350. package/dist/features/row-sorting/sortFns.js +217 -0
  351. package/dist/features/row-sorting/sortFns.js.map +1 -0
  352. package/dist/features/stockFeatures.cjs +2 -0
  353. package/dist/features/stockFeatures.cjs.map +1 -1
  354. package/dist/features/stockFeatures.d.cts +2 -0
  355. package/dist/features/stockFeatures.d.ts +2 -0
  356. package/dist/features/stockFeatures.js +2 -0
  357. package/dist/features/stockFeatures.js.map +1 -1
  358. package/dist/flex-render.d.cts +1 -1
  359. package/dist/flex-render.d.ts +1 -1
  360. package/dist/helpers/columnHelper.cjs.map +1 -1
  361. package/dist/helpers/columnHelper.d.cts +2 -2
  362. package/dist/helpers/columnHelper.d.ts +2 -2
  363. package/dist/helpers/columnHelper.js.map +1 -1
  364. package/dist/helpers/metaHelper.cjs +30 -0
  365. package/dist/helpers/metaHelper.cjs.map +1 -0
  366. package/dist/helpers/metaHelper.d.cts +26 -0
  367. package/dist/helpers/metaHelper.d.ts +26 -0
  368. package/dist/helpers/metaHelper.js +29 -0
  369. package/dist/helpers/metaHelper.js.map +1 -0
  370. package/dist/helpers/tableFeatures.cjs +32 -3
  371. package/dist/helpers/tableFeatures.cjs.map +1 -1
  372. package/dist/helpers/tableFeatures.d.cts +34 -5
  373. package/dist/helpers/tableFeatures.d.ts +34 -5
  374. package/dist/helpers/tableFeatures.js +32 -3
  375. package/dist/helpers/tableFeatures.js.map +1 -1
  376. package/dist/index.cjs +23 -3
  377. package/dist/index.d.cts +31 -28
  378. package/dist/index.d.ts +31 -28
  379. package/dist/index.js +8 -5
  380. package/dist/static-functions.cjs +30 -19
  381. package/dist/static-functions.d.cts +8 -7
  382. package/dist/static-functions.d.ts +8 -7
  383. package/dist/static-functions.js +8 -7
  384. package/dist/store-reactivity-bindings.cjs +3 -3
  385. package/dist/store-reactivity-bindings.cjs.map +1 -1
  386. package/dist/store-reactivity-bindings.d.cts +1 -1
  387. package/dist/store-reactivity-bindings.d.ts +1 -1
  388. package/dist/store-reactivity-bindings.js +3 -3
  389. package/dist/store-reactivity-bindings.js.map +1 -1
  390. package/dist/types/Cell.d.cts +4 -2
  391. package/dist/types/Cell.d.ts +4 -2
  392. package/dist/types/Column.d.cts +15 -15
  393. package/dist/types/Column.d.ts +15 -15
  394. package/dist/types/ColumnDef.d.cts +30 -14
  395. package/dist/types/ColumnDef.d.ts +30 -14
  396. package/dist/types/Header.d.cts +2 -2
  397. package/dist/types/Header.d.ts +2 -2
  398. package/dist/types/HeaderGroup.d.cts +2 -2
  399. package/dist/types/HeaderGroup.d.ts +2 -2
  400. package/dist/types/Row.d.cts +6 -4
  401. package/dist/types/Row.d.ts +6 -4
  402. package/dist/types/RowModel.d.cts +11 -23
  403. package/dist/types/RowModel.d.ts +11 -23
  404. package/dist/types/RowModelFns.d.cts +4 -4
  405. package/dist/types/RowModelFns.d.ts +4 -4
  406. package/dist/types/Table.d.cts +26 -31
  407. package/dist/types/Table.d.ts +26 -31
  408. package/dist/types/TableFeatures.d.cts +350 -22
  409. package/dist/types/TableFeatures.d.ts +350 -22
  410. package/dist/types/TableOptions.d.cts +22 -14
  411. package/dist/types/TableOptions.d.ts +22 -14
  412. package/dist/types/TableState.d.cts +6 -6
  413. package/dist/types/TableState.d.ts +6 -6
  414. package/dist/types/type-utils.d.cts +8 -1
  415. package/dist/types/type-utils.d.ts +8 -1
  416. package/dist/utils.cjs +51 -29
  417. package/dist/utils.cjs.map +1 -1
  418. package/dist/utils.d.cts +30 -8
  419. package/dist/utils.d.ts +30 -8
  420. package/dist/utils.js +49 -30
  421. package/dist/utils.js.map +1 -1
  422. package/dist/worker/createTableWorker.cjs +189 -0
  423. package/dist/worker/createTableWorker.cjs.map +1 -0
  424. package/dist/worker/createTableWorker.d.cts +102 -0
  425. package/dist/worker/createTableWorker.d.ts +102 -0
  426. package/dist/worker/createTableWorker.js +186 -0
  427. package/dist/worker/createTableWorker.js.map +1 -0
  428. package/dist/worker/createWorkerRowModel.cjs +78 -0
  429. package/dist/worker/createWorkerRowModel.cjs.map +1 -0
  430. package/dist/worker/createWorkerRowModel.d.cts +42 -0
  431. package/dist/worker/createWorkerRowModel.d.ts +42 -0
  432. package/dist/worker/createWorkerRowModel.js +78 -0
  433. package/dist/worker/createWorkerRowModel.js.map +1 -0
  434. package/dist/worker/initTableWorker.cjs +100 -0
  435. package/dist/worker/initTableWorker.cjs.map +1 -0
  436. package/dist/worker/initTableWorker.d.cts +33 -0
  437. package/dist/worker/initTableWorker.d.ts +33 -0
  438. package/dist/worker/initTableWorker.js +100 -0
  439. package/dist/worker/initTableWorker.js.map +1 -0
  440. package/dist/worker/rebuildRowModel.cjs +72 -0
  441. package/dist/worker/rebuildRowModel.cjs.map +1 -0
  442. package/dist/worker/rebuildRowModel.d.cts +9 -0
  443. package/dist/worker/rebuildRowModel.d.ts +9 -0
  444. package/dist/worker/rebuildRowModel.js +72 -0
  445. package/dist/worker/rebuildRowModel.js.map +1 -0
  446. package/dist/worker/serializeRowModel.cjs +53 -0
  447. package/dist/worker/serializeRowModel.cjs.map +1 -0
  448. package/dist/worker/serializeRowModel.js +52 -0
  449. package/dist/worker/serializeRowModel.js.map +1 -0
  450. package/dist/worker/tableWorkerProtocol.cjs +29 -0
  451. package/dist/worker/tableWorkerProtocol.cjs.map +1 -0
  452. package/dist/worker/tableWorkerProtocol.d.cts +88 -0
  453. package/dist/worker/tableWorkerProtocol.d.ts +88 -0
  454. package/dist/worker/tableWorkerProtocol.js +27 -0
  455. package/dist/worker/tableWorkerProtocol.js.map +1 -0
  456. package/package.json +8 -3
  457. package/skills/aggregation/SKILL.md +141 -0
  458. package/skills/api-not-found/SKILL.md +113 -0
  459. package/skills/client-vs-server/SKILL.md +164 -0
  460. package/skills/column-faceting/SKILL.md +97 -0
  461. package/skills/column-filtering/SKILL.md +87 -0
  462. package/skills/column-ordering/SKILL.md +75 -0
  463. package/skills/column-pinning/SKILL.md +89 -0
  464. package/skills/column-resizing/SKILL.md +91 -0
  465. package/skills/column-sizing/SKILL.md +72 -0
  466. package/skills/column-visibility/SKILL.md +75 -0
  467. package/skills/core/SKILL.md +175 -0
  468. package/skills/custom-features/SKILL.md +235 -0
  469. package/skills/expanding/SKILL.md +80 -0
  470. package/skills/global-filtering/SKILL.md +84 -0
  471. package/skills/grouping/SKILL.md +51 -401
  472. package/skills/migrate-v8-to-v9/SKILL.md +274 -416
  473. package/skills/pagination/SKILL.md +37 -344
  474. package/skills/row-pinning/SKILL.md +47 -234
  475. package/skills/row-selection/SKILL.md +75 -302
  476. package/skills/sorting/SKILL.md +45 -303
  477. package/skills/table-features/SKILL.md +159 -0
  478. package/skills/typescript/SKILL.md +126 -0
  479. package/src/core/cells/coreCellsFeature.types.ts +6 -6
  480. package/src/core/columns/constructColumn.ts +6 -0
  481. package/src/core/columns/coreColumnsFeature.types.ts +8 -8
  482. package/src/core/columns/coreColumnsFeature.utils.ts +4 -4
  483. package/src/core/coreFeatures.ts +1 -1
  484. package/src/core/headers/buildHeaderGroups.ts +4 -2
  485. package/src/core/headers/coreHeadersFeature.types.ts +12 -12
  486. package/src/core/headers/coreHeadersFeature.utils.ts +7 -8
  487. package/src/core/row-models/coreRowModelsFeature.types.ts +6 -20
  488. package/src/core/row-models/coreRowModelsFeature.utils.ts +8 -8
  489. package/src/core/row-models/createCoreRowModel.ts +7 -6
  490. package/src/core/rows/constructRow.ts +4 -2
  491. package/src/core/rows/coreRowsFeature.ts +21 -0
  492. package/src/core/rows/coreRowsFeature.types.ts +45 -8
  493. package/src/core/rows/coreRowsFeature.utils.ts +93 -5
  494. package/src/core/table/constructTable.ts +44 -6
  495. package/src/core/table/coreTablesFeature.types.ts +45 -20
  496. package/src/core/table/coreTablesFeature.utils.ts +59 -19
  497. package/src/experimental-worker-plugin.ts +22 -0
  498. package/src/features/column-faceting/columnFacetingFeature.types.ts +17 -48
  499. package/src/features/column-faceting/columnFacetingFeature.utils.ts +53 -18
  500. package/src/features/column-faceting/createFacetedMinMaxValues.ts +33 -7
  501. package/src/features/column-faceting/createFacetedRowModel.ts +8 -1
  502. package/src/features/column-faceting/createFacetedUniqueValues.ts +41 -10
  503. package/src/features/column-filtering/columnFilteringFeature.ts +3 -2
  504. package/src/features/column-filtering/columnFilteringFeature.types.ts +117 -41
  505. package/src/features/column-filtering/columnFilteringFeature.utils.ts +37 -23
  506. package/src/features/column-filtering/createFilteredRowModel.ts +28 -17
  507. package/src/features/column-filtering/filterFns.ts +533 -0
  508. package/src/features/column-filtering/filterRowsUtils.ts +3 -2
  509. package/src/features/column-grouping/columnGroupingFeature.ts +3 -21
  510. package/src/features/column-grouping/columnGroupingFeature.types.ts +21 -95
  511. package/src/features/column-grouping/columnGroupingFeature.utils.ts +4 -87
  512. package/src/features/column-grouping/createGroupedRowModel.ts +46 -45
  513. package/src/features/column-ordering/columnOrderingFeature.ts +12 -7
  514. package/src/features/column-ordering/columnOrderingFeature.types.ts +29 -3
  515. package/src/features/column-ordering/columnOrderingFeature.utils.ts +59 -8
  516. package/src/features/column-pinning/columnPinningFeature.ts +76 -59
  517. package/src/features/column-pinning/columnPinningFeature.types.ts +53 -42
  518. package/src/features/column-pinning/columnPinningFeature.utils.ts +184 -170
  519. package/src/features/column-resizing/columnResizingFeature.types.ts +1 -4
  520. package/src/features/column-resizing/columnResizingFeature.utils.ts +120 -52
  521. package/src/features/column-sizing/columnSizingFeature.ts +24 -24
  522. package/src/features/column-sizing/columnSizingFeature.types.ts +53 -8
  523. package/src/features/column-sizing/columnSizingFeature.utils.ts +143 -62
  524. package/src/features/column-visibility/columnVisibilityFeature.ts +4 -0
  525. package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
  526. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +48 -30
  527. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
  528. package/src/features/global-filtering/globalFilteringFeature.utils.ts +13 -5
  529. package/src/features/row-aggregation/aggregationFns.ts +345 -0
  530. package/src/features/row-aggregation/rowAggregationFeature.ts +60 -0
  531. package/src/features/row-aggregation/rowAggregationFeature.types.ts +339 -0
  532. package/src/features/row-aggregation/rowAggregationFeature.utils.ts +430 -0
  533. package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -23
  534. package/src/features/row-expanding/rowExpandingFeature.utils.ts +38 -13
  535. package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
  536. package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -21
  537. package/src/features/row-pagination/rowPaginationFeature.utils.ts +1 -1
  538. package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
  539. package/src/features/row-selection/rowSelectionFeature.ts +53 -3
  540. package/src/features/row-selection/rowSelectionFeature.types.ts +54 -10
  541. package/src/features/row-selection/rowSelectionFeature.utils.ts +273 -91
  542. package/src/features/row-sorting/createSortedRowModel.ts +107 -75
  543. package/src/features/row-sorting/rowSortingFeature.types.ts +87 -34
  544. package/src/features/row-sorting/rowSortingFeature.utils.ts +49 -23
  545. package/src/features/row-sorting/sortFns.ts +366 -0
  546. package/src/features/stockFeatures.ts +3 -0
  547. package/src/helpers/columnHelper.ts +4 -4
  548. package/src/helpers/metaHelper.ts +24 -0
  549. package/src/helpers/tableFeatures.ts +37 -5
  550. package/src/index.ts +8 -8
  551. package/src/static-functions.ts +1 -0
  552. package/src/store-reactivity-bindings.ts +1 -1
  553. package/src/types/Cell.ts +4 -2
  554. package/src/types/Column.ts +13 -9
  555. package/src/types/ColumnDef.ts +40 -10
  556. package/src/types/Header.ts +2 -2
  557. package/src/types/HeaderGroup.ts +6 -6
  558. package/src/types/Row.ts +6 -4
  559. package/src/types/RowModel.ts +19 -74
  560. package/src/types/RowModelFns.ts +10 -10
  561. package/src/types/Table.ts +52 -27
  562. package/src/types/TableFeatures.ts +392 -14
  563. package/src/types/TableOptions.ts +67 -14
  564. package/src/types/TableState.ts +15 -1
  565. package/src/types/type-utils.ts +8 -0
  566. package/src/utils.ts +60 -8
  567. package/src/worker/createTableWorker.ts +357 -0
  568. package/src/worker/createWorkerRowModel.ts +121 -0
  569. package/src/worker/initTableWorker.ts +164 -0
  570. package/src/worker/rebuildRowModel.ts +120 -0
  571. package/src/worker/serializeRowModel.ts +80 -0
  572. package/src/worker/tableWorkerProtocol.ts +105 -0
  573. package/dist/fns/aggregationFns.cjs +0 -161
  574. package/dist/fns/aggregationFns.cjs.map +0 -1
  575. package/dist/fns/aggregationFns.d.cts +0 -85
  576. package/dist/fns/aggregationFns.d.ts +0 -85
  577. package/dist/fns/aggregationFns.js +0 -151
  578. package/dist/fns/aggregationFns.js.map +0 -1
  579. package/dist/fns/filterFns.cjs +0 -201
  580. package/dist/fns/filterFns.cjs.map +0 -1
  581. package/dist/fns/filterFns.d.cts +0 -167
  582. package/dist/fns/filterFns.d.ts +0 -167
  583. package/dist/fns/filterFns.js +0 -185
  584. package/dist/fns/filterFns.js.map +0 -1
  585. package/dist/fns/sortFns.cjs +0 -118
  586. package/dist/fns/sortFns.cjs.map +0 -1
  587. package/dist/fns/sortFns.d.cts +0 -65
  588. package/dist/fns/sortFns.d.ts +0 -65
  589. package/dist/fns/sortFns.js +0 -110
  590. package/dist/fns/sortFns.js.map +0 -1
  591. package/skills/column-definitions/SKILL.md +0 -333
  592. package/skills/column-layout/SKILL.md +0 -328
  593. package/skills/column-layout/references/subsystems.md +0 -220
  594. package/skills/customizing-feature-behavior/SKILL.md +0 -416
  595. package/skills/filtering/SKILL.md +0 -357
  596. package/skills/filtering/references/faceting-and-fuzzy.md +0 -191
  597. package/skills/row-expanding/SKILL.md +0 -348
  598. package/skills/setup/SKILL.md +0 -400
  599. package/skills/state-management/SKILL.md +0 -388
  600. package/src/fns/aggregationFns.ts +0 -245
  601. package/src/fns/filterFns.ts +0 -382
  602. package/src/fns/sortFns.ts +0 -217
@@ -1,344 +1,86 @@
1
1
  ---
2
2
  name: sorting
3
3
  description: >
4
- Sort rows in TanStack Table v9 with the `sortedRowModel` stage. Covers
5
- `rowSortingFeature` + `createSortedRowModel(sortFns)`, the built-in `sortFns`
6
- registry (renamed from v8 `sortingFns`), `state.sorting` (SortingState =
7
- Array<{ id, desc }>), `onSortingChange`, `columnDef.sortFn`
8
- (string | function | 'auto'), `sortDescFirst`, `sortUndefined`
9
- ('first'|'last'|-1|1|false), `invertSorting`, `enableMultiSort`,
10
- `maxMultiSortColCount`, `isMultiSortEvent`, `table.setSorting` /
11
- `resetSorting`, `column.getToggleSortingHandler` /
12
- `getNextSortingOrder` / `clearSorting` / `getCanSort` / `getCanMultiSort`,
13
- `manualSorting` for server-side, and fuzzy `compareItems` pairing.
14
- type: core
15
- library: tanstack-table
16
- library_version: '9.0.0-alpha.48'
17
- requires:
18
- - state-management
19
- - customizing-feature-behavior
4
+ Sort with rowSortingFeature, sortedRowModel, sortFns, multi-sort and removal options, sortUndefined, and manualSorting. Load for comparator direction, incoming server order, or product-specific sorting cycles.
5
+ metadata:
6
+ {
7
+ type: sub-skill,
8
+ library: '@tanstack/table-core',
9
+ library_version: '9.0.0-beta.51',
10
+ }
11
+ requires: ['core', 'table-features', 'client-vs-server']
20
12
  sources:
21
- - TanStack/table:docs/guide/sorting.md
22
- - TanStack/table:packages/table-core/src/fns/sortFns.ts
23
- - TanStack/table:packages/table-core/src/features/row-sorting/createSortedRowModel.ts
24
- - TanStack/table:packages/table-core/src/features/row-sorting/rowSortingFeature.utils.ts
25
- - TanStack/table:examples/react/sorting/src/main.tsx
13
+ - 'TanStack/table:docs/framework/react/guide/sorting.md'
14
+ - 'TanStack/table:packages/table-core/src/features/row-sorting'
15
+ - 'TanStack/table:examples/react/sorting'
26
16
  ---
27
17
 
28
- This skill builds on `tanstack-table/state-management` and `tanstack-table/customizing-feature-behavior`. Read those first for the atom model and `sortFn` overrides.
18
+ This skill builds on `core`, `table-features`, and `client-vs-server`. Sorting state describes order; client processing requires a sorted model and server processing requires sorted input.
29
19
 
30
20
  ## Setup
31
21
 
32
22
  ```ts
33
23
  import {
34
- tableFeatures,
35
- rowSortingFeature,
36
24
  createSortedRowModel,
37
- sortFns,
38
- createColumnHelper,
39
- constructTable,
25
+ rowSortingFeature,
26
+ sortFn_alphanumeric,
27
+ sortFn_text,
28
+ tableFeatures,
40
29
  } from '@tanstack/table-core'
41
- import type { SortingState } from '@tanstack/table-core'
42
-
43
- type Person = {
44
- firstName: string
45
- lastName: string
46
- age: number
47
- status: 'single' | 'complicated' | 'relationship'
48
- }
49
30
 
50
- const features = tableFeatures({ rowSortingFeature })
51
- const columnHelper = createColumnHelper<typeof features, Person>()
52
-
53
- const columns = columnHelper.columns([
54
- columnHelper.accessor('firstName', { sortFn: 'alphanumeric' }),
55
- columnHelper.accessor('lastName', {
56
- sortUndefined: 'last',
57
- sortDescFirst: false,
58
- }),
59
- columnHelper.accessor('age', { sortFn: 'basic' }),
60
- ])
61
-
62
- const table = constructTable({
63
- features,
64
- rowModels: {
65
- sortedRowModel: createSortedRowModel(sortFns),
66
- },
67
- columns,
68
- data,
69
- initialState: { sorting: [] satisfies SortingState },
31
+ export const features = tableFeatures({
32
+ rowSortingFeature,
33
+ sortedRowModel: createSortedRowModel(),
34
+ sortFns: { alphanumeric: sortFn_alphanumeric, text: sortFn_text },
70
35
  })
71
-
72
- table.setSorting([{ id: 'age', desc: true }])
73
- ```
74
-
75
- ## Core Patterns
76
-
77
- ### Clickable header sorting with multi-sort on Shift+click
78
-
79
- ```tsx
80
- // From examples/react/sorting/src/main.tsx
81
- {
82
- headerGroup.headers.map((header) => (
83
- <th
84
- key={header.id}
85
- onClick={header.column.getToggleSortingHandler()}
86
- style={{ cursor: header.column.getCanSort() ? 'pointer' : 'default' }}
87
- >
88
- <table.FlexRender header={header} />
89
- {{ asc: ' 🔼', desc: ' 🔽' }[header.column.getIsSorted() as string] ??
90
- null}
91
- </th>
92
- ))
93
- }
94
36
  ```
95
37
 
96
- `getToggleSortingHandler` already handles multi-sort when the user holds Shift (configurable via `isMultiSortEvent`).
97
-
98
- ### Custom `sortFn` for an enum
38
+ Import individual `sortFn_*` built-ins and register only those your columns
39
+ reference by string name or that `sortFn: 'auto'` should resolve for your data
40
+ types. The full `sortFns` registry object still works but bundles every
41
+ built-in; numeric columns fall back to a basic comparator without registration.
99
42
 
100
- ```ts
101
- // From examples/react/sorting/src/main.tsx
102
- const sortStatusFn: SortFn<typeof features, Person> = (
103
- rowA,
104
- rowB,
105
- _columnId,
106
- ) => {
107
- const statusOrder = ['single', 'complicated', 'relationship']
108
- return (
109
- statusOrder.indexOf(rowA.original.status) -
110
- statusOrder.indexOf(rowB.original.status)
111
- )
112
- }
113
-
114
- columnHelper.accessor('status', { sortFn: sortStatusFn })
115
- ```
116
-
117
- Always return an ascending-order comparison. The row model multiplies by `-1` for descending and again for `invertSorting`.
118
-
119
- ### Direction control with `sortUndefined` and `invertSorting`
43
+ ## Core Patterns
120
44
 
121
45
  ```ts
122
- columnHelper.accessor('rank', {
123
- invertSorting: true, // rank 1 above rank 2 even when "descending"
124
- })
125
-
126
- columnHelper.accessor('lastName', {
127
- sortUndefined: 'last', // ABSOLUTE: end regardless of asc/desc
128
- sortDescFirst: false,
129
- })
46
+ const options = { enableSortingRemoval: false, enableMultiSort: true }
47
+ const numericColumn = { sortUndefined: 'last' as const }
130
48
  ```
131
49
 
132
- `sortUndefined` literals (`'first'`, `'last'`) are absolute. Numeric (`-1`, `1`) flips with `desc`.
133
-
134
- ### Server-side sorting
135
-
136
- ```tsx
137
- const [sorting, setSorting] = useState<SortingState>([])
138
- const { data } = useQuery({
139
- queryKey: ['rows', sorting],
140
- queryFn: () =>
141
- fetch('/api/rows?sort=' + serialize(sorting)).then((r) => r.json()),
142
- })
143
-
144
- const table = useTable({
145
- features: tableFeatures({ rowSortingFeature }),
146
- rowModels: {}, // omit sortedRowModel — server sorts
147
- columns,
148
- data,
149
- manualSorting: true,
150
- state: { sorting },
151
- onSortingChange: setSorting,
152
- })
153
- ```
50
+ Configure sort cycles and undefined placement to match the product rather than relying on implicit defaults.
154
51
 
155
52
  ## Common Mistakes
156
53
 
157
- ### [HIGH] Using v8 `sortingFn` / `sortingFns` names
158
-
159
- Wrong:
160
-
161
- ```tsx
162
- {
163
- accessorKey: 'fullName',
164
- sortingFn: 'alphanumeric', // v8 name — falls through to sortFn_basic
165
- }
166
- // useTable({ sortingFns: { ...sortingFns, myFn } }) // v8 option name
167
- ```
54
+ ### [CRITICAL] Expecting manual mode to reorder
168
55
 
169
- Correct:
56
+ Wrong: `const options = { data: unsortedRows, manualSorting: true }`
170
57
 
171
- ```tsx
172
- import { sortFns, createSortedRowModel } from '@tanstack/react-table'
58
+ Correct: `const options = { data: serverSortedRows, manualSorting: true }`
173
59
 
174
- columnHelper.accessor('firstName', {
175
- sortFn: 'alphanumeric',
176
- })
60
+ Manual sorting bypasses `sortedRowModel` and trusts incoming order.
177
61
 
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
- }),
185
- },
186
- columns,
187
- data,
188
- })
189
- ```
62
+ Source: `packages/table-core/src/features/row-sorting/rowSortingFeature.types.ts`
190
63
 
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.
64
+ ### [HIGH] Reversing inside the comparator
192
65
 
193
- Source: packages/table-core/src/features/row-sorting/rowSortingFeature.utils.ts
66
+ Wrong: `const newest: SortFn<any, any> = (a, b, id) => b.getValue<number>(id) - a.getValue<number>(id)`
194
67
 
195
- ### [MEDIUM] Expecting `sortUndefined: 'first' | 'last'` to work in v8
68
+ Correct: `const numeric: SortFn<any, any> = (a, b, id) => a.getValue<number>(id) - b.getValue<number>(id)`
196
69
 
197
- Wrong:
70
+ Return ascending comparison only; Table reverses it when sorting is descending.
198
71
 
199
- ```tsx
200
- // agent assumes numeric and literal forms are interchangeable
201
- { accessorKey: 'lastName', sortUndefined: -1 } // ascending-first, descending-LAST
202
- ```
72
+ Source: `docs/framework/react/guide/sorting.md#custom-sorting-functions`
203
73
 
204
- Correct:
74
+ ### [MEDIUM] Leaving ambiguous sort policy
205
75
 
206
- ```tsx
207
- // From examples/react/sorting/src/main.tsx
208
- columnHelper.accessor((row) => row.lastName, {
209
- id: 'lastName',
210
- sortUndefined: 'last', // ABSOLUTE: always at end regardless of asc/desc
211
- sortDescFirst: false,
212
- })
213
- ```
214
-
215
- v8 only had `false | -1 | 1`. v9 added `'first'` / `'last'`. Numeric flips with `desc`; literals are absolute.
216
-
217
- Source: packages/table-core/src/features/row-sorting/createSortedRowModel.ts
76
+ Wrong: `const options = { enableSortingRemoval: true }`
218
77
 
219
- ### [MEDIUM] Custom `sortFn` factors `desc` in itself
78
+ Correct: `const options = { enableSortingRemoval: false }; const rankColumn = { sortUndefined: 'last' as const }`
220
79
 
221
- Wrong:
222
-
223
- ```tsx
224
- // takes sort direction into account, breaks the toggle
225
- const customSort: SortFn<any, any> = (a, b, id, desc) => {
226
- // desc isn't even a parameter — agents try to detect via state
227
- const cmp = a.original[id] - b.original[id]
228
- return desc ? -cmp : cmp
229
- }
230
- ```
231
-
232
- Correct:
233
-
234
- ```tsx
235
- // From examples/react/sorting/src/main.tsx
236
- // Always return ascending; the row model handles desc & invertSorting.
237
- const sortStatusFn: SortFn<any, any> = (rowA, rowB, _columnId) => {
238
- const statusOrder = ['single', 'complicated', 'relationship']
239
- return (
240
- statusOrder.indexOf(rowA.original.status) -
241
- statusOrder.indexOf(rowB.original.status)
242
- )
243
- }
244
- ```
245
-
246
- From the docs guide: "The comparison function does not need to take whether or not the column is in descending or ascending order into account. The row models will take care of that logic." Doubly-flipping yields broken toggles.
247
-
248
- Source: packages/table-core/src/features/row-sorting/createSortedRowModel.ts
249
-
250
- ### [MEDIUM] Fuzzy filter without a fuzzy-aware `sortFn`
251
-
252
- Wrong:
253
-
254
- ```ts
255
- columnHelper.accessor('fullName', {
256
- filterFn: 'fuzzy',
257
- // BUG: rows sort alphabetically, not by match rank
258
- })
259
- ```
260
-
261
- Correct:
262
-
263
- ```ts
264
- import { compareItems } from '@tanstack/match-sorter-utils'
265
-
266
- const fuzzySort: SortFn<typeof features, Person> = (rowA, rowB, columnId) => {
267
- let dir = 0
268
- if (rowA.columnFiltersMeta[columnId]) {
269
- dir = compareItems(
270
- rowA.columnFiltersMeta[columnId].itemRank!,
271
- rowB.columnFiltersMeta[columnId].itemRank!,
272
- )
273
- }
274
- return dir === 0 ? sortFns.alphanumeric(rowA, rowB, columnId) : dir
275
- }
276
-
277
- columnHelper.accessor('fullName', { filterFn: 'fuzzy', sortFn: fuzzySort })
278
- ```
279
-
280
- The fuzzy filter writes `{ itemRank }` into `row.columnFiltersMeta[columnId]` via `addMeta`. Without a sortFn that reads it, results sort alphabetically and defeat the fuzzy ranking.
281
-
282
- Source: examples/react/filters-fuzzy/src/main.tsx
283
-
284
- ### [MEDIUM] `getCanSort` returns false for display columns under `manualSorting`
285
-
286
- Wrong:
287
-
288
- ```ts
289
- // getCanSort() returns false even though manualSorting is true
290
- const table = useTable({
291
- manualSorting: true,
292
- columns: [
293
- { id: 'computed', header: 'Computed', cell: (info) => row.x + row.y },
294
- ],
295
- })
296
- ```
297
-
298
- Correct:
299
-
300
- ```ts
301
- columnHelper.display({
302
- id: 'computed',
303
- header: 'Computed',
304
- enableSorting: true, // force-enable for manualSorting
305
- cell: (info) => info.row.original.x + info.row.original.y,
306
- })
307
- ```
308
-
309
- `getCanSort` checks for `accessorKey`/`accessorFn` even under `manualSorting`. Force it on display columns via `enableSorting: true` (and let the server sort).
310
-
311
- Source: https://github.com/TanStack/table/issues/4136
312
-
313
- ### [CRITICAL] Reimplementing what built-in APIs provide
314
-
315
- Wrong:
316
-
317
- ```ts
318
- const [sorting, setSorting] = useState([])
319
- const sortedData = useMemo(
320
- () => [...data].sort(/* …custom… */),
321
- [data, sorting],
322
- )
323
- // then uses sortedData directly, bypassing the table
324
- ```
325
-
326
- Correct:
327
-
328
- ```ts
329
- const table = useTable({
330
- features: tableFeatures({ rowSortingFeature }),
331
- rowModels: { sortedRowModel: createSortedRowModel(sortFns) },
332
- columns,
333
- data,
334
- })
335
- // table.setSorting(...), column.toggleSorting(), header.getToggleSortingHandler()
336
- ```
80
+ Undefined placement and removal cycles can differ from expected product behavior unless configured.
337
81
 
338
- Source: maintainer interview (Phase 4, 2026-05-17)
82
+ Source: `packages/table-core/src/features/row-sorting/rowSortingFeature.types.ts`
339
83
 
340
- ## See also
84
+ ## API Discovery
341
85
 
342
- - `tanstack-table/customizing-feature-behavior` `sortFn` authoring + `addMeta` chain
343
- - `tanstack-table/filtering` — fuzzy filter pattern that pairs with `fuzzySort`
344
- - `tanstack-table/state-management` — `manualSorting` + server-side state ownership
86
+ Inspect `node_modules/@tanstack/table-core/src/features/row-sorting/` and `src/fns/sortFns.ts` for current names and comparator contracts.
@@ -0,0 +1,159 @@
1
+ ---
2
+ name: table-features
3
+ description: >
4
+ Register TanStack Table v9 tableFeatures, feature plugins, create*RowModel factories, and function registries in prerequisite order. Load when an option, state slice, or instance API is missing, or when choosing explicit features versus stockFeatures.
5
+ metadata:
6
+ type: sub-skill
7
+ library: '@tanstack/table-core'
8
+ library_version: '9.0.0-beta.51'
9
+ requires: ['core']
10
+ sources:
11
+ - 'TanStack/table:docs/guide/row-models.md'
12
+ - 'TanStack/table:packages/table-core/src/types/TableFeatures.ts'
13
+ - 'TanStack/table:packages/table-core/src/features/stockFeatures.ts'
14
+ - 'TanStack/table:packages/table-core/src/core/table/constructTable.ts'
15
+ ---
16
+
17
+ This skill builds on `core`. Read it first for the headless model and stable inputs.
18
+
19
+ ## Setup
20
+
21
+ <!-- skill-snippet:check -->
22
+
23
+ ```ts
24
+ import {
25
+ rowAggregationFeature,
26
+ aggregationFn_sum,
27
+ columnGroupingFeature,
28
+ createFilteredRowModel,
29
+ createSortedRowModel,
30
+ columnFilteringFeature,
31
+ filterFn_includesString,
32
+ rowSortingFeature,
33
+ sortFn_alphanumeric,
34
+ tableFeatures,
35
+ } from '@tanstack/table-core'
36
+
37
+ export const features = tableFeatures({
38
+ columnFilteringFeature,
39
+ filteredRowModel: createFilteredRowModel(),
40
+ filterFns: { includesString: filterFn_includesString },
41
+ rowAggregationFeature,
42
+ columnGroupingFeature,
43
+ aggregationFns: { sum: aggregationFn_sum },
44
+ rowSortingFeature,
45
+ sortedRowModel: createSortedRowModel(),
46
+ sortFns: { alphanumeric: sortFn_alphanumeric },
47
+ })
48
+ ```
49
+
50
+ ## Core Patterns
51
+
52
+ ### Register feature before its dependent slot
53
+
54
+ ```ts
55
+ const features = tableFeatures({
56
+ rowSortingFeature,
57
+ sortedRowModel: createSortedRowModel(),
58
+ })
59
+ ```
60
+
61
+ `tableFeatures` checks slot prerequisites and its inferred type gates APIs throughout the table.
62
+
63
+ ### Register named function slots with their features
64
+
65
+ ```ts
66
+ const features = tableFeatures({
67
+ columnFilteringFeature,
68
+ filterFns: { includesString: filterFn_includesString },
69
+ rowSortingFeature,
70
+ sortFns: { alphanumeric: sortFn_alphanumeric },
71
+ rowAggregationFeature,
72
+ columnGroupingFeature,
73
+ aggregationFns: { sum: aggregationFn_sum },
74
+ })
75
+ ```
76
+
77
+ `filterFns`, `sortFns`, and `aggregationFns` are feature slots, not table
78
+ options. They respectively require `columnFilteringFeature`,
79
+ `rowSortingFeature`, and `rowAggregationFeature`. Import individual built-ins
80
+ (`filterFn_*`, `sortFn_*`, `aggregationFn_*`) and register them under their
81
+ conventional keys; the full registry objects (`filterFns`, `sortFns`,
82
+ `aggregationFns` exports) still work but bundle every built-in. A registered
83
+ key can be used as a typed string name, and `'auto'` resolves only registered
84
+ functions; pass a function directly when no registry name is needed.
85
+
86
+ ### Prefer explicit features
87
+
88
+ ```ts
89
+ const features = tableFeatures({ columnFilteringFeature })
90
+ ```
91
+
92
+ Use `stockFeatures` only for deliberate kitchen-sink or temporary migration behavior.
93
+
94
+ ## Common Mistakes
95
+
96
+ ### [CRITICAL] Calling an unregistered feature API
97
+
98
+ Wrong:
99
+
100
+ ```ts
101
+ const features = tableFeatures({})
102
+ table.setSorting([{ id: 'name', desc: false }])
103
+ ```
104
+
105
+ Correct:
106
+
107
+ ```ts
108
+ const features = tableFeatures({ rowSortingFeature })
109
+ ```
110
+
111
+ Optional feature state and APIs are installed only when their feature is registered.
112
+
113
+ Source: `packages/table-core/src/core/table/constructTable.ts`
114
+
115
+ ### [HIGH] Omitting a slot prerequisite
116
+
117
+ Wrong:
118
+
119
+ ```ts
120
+ const features = tableFeatures({ sortedRowModel: createSortedRowModel() })
121
+ ```
122
+
123
+ Correct:
124
+
125
+ ```ts
126
+ const features = tableFeatures({
127
+ rowSortingFeature,
128
+ sortedRowModel: createSortedRowModel(),
129
+ })
130
+ ```
131
+
132
+ The sorted model slot requires `rowSortingFeature`; the same rule applies to every mapped slot.
133
+
134
+ Source: `packages/table-core/src/types/TableFeatures.ts#FeatureSlotPrereqs`
135
+
136
+ ### [MEDIUM] Shipping all features by default
137
+
138
+ Wrong:
139
+
140
+ ```ts
141
+ const features = stockFeatures
142
+ ```
143
+
144
+ Correct:
145
+
146
+ ```ts
147
+ const features = tableFeatures({
148
+ rowSortingFeature,
149
+ sortedRowModel: createSortedRowModel(),
150
+ })
151
+ ```
152
+
153
+ `stockFeatures` registers every stock plugin and processing slot, defeating v9's normal tree-shaking strategy.
154
+
155
+ Source: `packages/table-core/src/features/stockFeatures.ts`
156
+
157
+ ## API Discovery
158
+
159
+ Inspect `node_modules/@tanstack/table-core/src/types/TableFeatures.ts` for current slots and `FeatureSlotPrereqs`, and `src/features/stockFeatures.ts` for the stock inventory.
@@ -0,0 +1,126 @@
1
+ ---
2
+ name: typescript
3
+ description: >
4
+ Preserve TanStack Table v9 inference with createColumnHelper, columns(), tableOptions, tableFeatures, and metaHelper. Load for ColumnDef errors, reusable tables, typed meta, named registries, or unnecessary manual feature generics.
5
+ metadata:
6
+ type: sub-skill
7
+ library: '@tanstack/table-core'
8
+ library_version: '9.0.0-beta.51'
9
+ requires: ['core', 'table-features']
10
+ sources:
11
+ - 'TanStack/table:docs/guide/helpers.md'
12
+ - 'TanStack/table:docs/guide/column-defs.md'
13
+ - 'TanStack/table:docs/guide/table-and-column-meta.md'
14
+ - 'TanStack/table:packages/table-core/src/helpers'
15
+ ---
16
+
17
+ This skill builds on `core` and `table-features`. Let the feature object and helpers carry types through userland.
18
+
19
+ ## Setup
20
+
21
+ ```ts
22
+ import {
23
+ createColumnHelper,
24
+ metaHelper,
25
+ tableFeatures,
26
+ } from '@tanstack/table-core'
27
+
28
+ type Person = { id: string; age: number }
29
+ type ColumnMeta = { align?: 'start' | 'end' }
30
+ const features = tableFeatures({ columnMeta: metaHelper<ColumnMeta>() })
31
+ const helper = createColumnHelper<typeof features, Person>()
32
+ export const columns = helper.columns([
33
+ helper.accessor('age', { meta: { align: 'end' } }),
34
+ ])
35
+ ```
36
+
37
+ ## Core Patterns
38
+
39
+ ### Preserve heterogeneous accessor values
40
+
41
+ ```ts
42
+ const columns = helper.columns([
43
+ helper.accessor('id', { header: 'ID' }),
44
+ helper.accessor('age', { header: 'Age' }),
45
+ ])
46
+ ```
47
+
48
+ `columns()` preserves each accessor's `TValue` instead of widening the array.
49
+
50
+ ### Compose options through the helper
51
+
52
+ ```ts
53
+ const defaults = tableOptions<typeof features, Person>({
54
+ defaultColumn: { meta: { align: 'start' } },
55
+ })
56
+ ```
57
+
58
+ Use `tableOptions` for reusable fragments; direct adapter options are enough for one-offs.
59
+
60
+ ## Common Mistakes
61
+
62
+ ### [HIGH] Erasing accessor value inference
63
+
64
+ Wrong:
65
+
66
+ ```ts
67
+ const columns: ColumnDef<typeof features, Person, unknown>[] = [
68
+ helper.accessor('age', {}),
69
+ ]
70
+ ```
71
+
72
+ Correct:
73
+
74
+ ```ts
75
+ const columns = helper.columns([helper.accessor('age', {})])
76
+ ```
77
+
78
+ The broad annotation discards the accessor-specific `number` value type.
79
+
80
+ Source: `docs/guide/helpers.md#createcolumnhelper`
81
+
82
+ ### [MEDIUM] Threading internal feature generics manually
83
+
84
+ Wrong:
85
+
86
+ ```ts
87
+ type Features = TableFeatures
88
+ ```
89
+
90
+ Correct:
91
+
92
+ ```ts
93
+ type Features = typeof features
94
+ ```
95
+
96
+ The concrete registry is the source of feature-gated APIs and registry keys.
97
+
98
+ Source: `packages/table-core/src/types/TableFeatures.ts`
99
+
100
+ ### [MEDIUM] Globally merging per-table meta
101
+
102
+ Wrong:
103
+
104
+ ```ts
105
+ declare module '@tanstack/table-core' {
106
+ interface ColumnMeta<TData, TValue> {
107
+ align?: string
108
+ }
109
+ }
110
+ ```
111
+
112
+ Correct:
113
+
114
+ ```ts
115
+ const features = tableFeatures({
116
+ columnMeta: metaHelper<{ align?: 'start' | 'end' }>(),
117
+ })
118
+ ```
119
+
120
+ V9 type-only feature slots keep meta types scoped to the table factory.
121
+
122
+ Source: `docs/guide/table-and-column-meta.md`
123
+
124
+ ## API Discovery
125
+
126
+ Inspect `node_modules/@tanstack/table-core/src/helpers/` and the signatures re-exported by `src/index.ts`; avoid copying deep internal generic signatures into application code.