@tanstack/table-core 9.0.0-beta.9 → 9.0.1

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 (672) hide show
  1. package/README.md +27 -9
  2. package/dist/core/cells/constructCell.d.ts +4 -6
  3. package/dist/core/cells/constructCell.js +4 -6
  4. package/dist/core/cells/coreCellsFeature.d.ts +1 -3
  5. package/dist/core/cells/coreCellsFeature.js +1 -2
  6. package/dist/core/cells/coreCellsFeature.types.d.ts +7 -9
  7. package/dist/core/cells/coreCellsFeature.utils.d.ts +5 -5
  8. package/dist/core/cells/coreCellsFeature.utils.js +1 -2
  9. package/dist/core/columns/constructColumn.d.ts +4 -6
  10. package/dist/core/columns/constructColumn.js +8 -9
  11. package/dist/core/columns/coreColumnsFeature.d.ts +2 -4
  12. package/dist/core/columns/coreColumnsFeature.js +14 -21
  13. package/dist/core/columns/coreColumnsFeature.types.d.ts +13 -15
  14. package/dist/core/columns/coreColumnsFeature.utils.d.ts +10 -12
  15. package/dist/core/columns/coreColumnsFeature.utils.js +19 -20
  16. package/dist/core/coreFeatures.d.ts +2 -2
  17. package/dist/core/coreFeatures.js +1 -2
  18. package/dist/core/headers/buildHeaderGroups.d.ts +3 -5
  19. package/dist/core/headers/buildHeaderGroups.js +99 -85
  20. package/dist/core/headers/constructHeader.d.ts +3 -5
  21. package/dist/core/headers/constructHeader.js +4 -6
  22. package/dist/core/headers/coreHeadersFeature.d.ts +1 -3
  23. package/dist/core/headers/coreHeadersFeature.js +9 -13
  24. package/dist/core/headers/coreHeadersFeature.types.d.ts +22 -12
  25. package/dist/core/headers/coreHeadersFeature.utils.d.ts +8 -8
  26. package/dist/core/headers/coreHeadersFeature.utils.js +14 -17
  27. package/dist/core/reactivity/coreReactivityFeature.types.d.ts +8 -3
  28. package/dist/core/reactivity/coreReactivityFeature.utils.d.ts +1 -3
  29. package/dist/core/reactivity/coreReactivityFeature.utils.js +1 -2
  30. package/dist/core/reactivity/renderPhaseReactivity.d.ts +80 -0
  31. package/dist/core/reactivity/renderPhaseReactivity.js +95 -0
  32. package/dist/core/row-models/coreRowModelsFeature.d.ts +1 -3
  33. package/dist/core/row-models/coreRowModelsFeature.js +1 -2
  34. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +7 -17
  35. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +17 -19
  36. package/dist/core/row-models/coreRowModelsFeature.utils.js +9 -28
  37. package/dist/core/row-models/createCoreRowModel.d.ts +3 -5
  38. package/dist/core/row-models/createCoreRowModel.js +29 -24
  39. package/dist/core/rows/constructRow.d.ts +3 -5
  40. package/dist/core/rows/constructRow.js +9 -13
  41. package/dist/core/rows/coreRowsFeature.d.ts +1 -3
  42. package/dist/core/rows/coreRowsFeature.js +20 -5
  43. package/dist/core/rows/coreRowsFeature.types.d.ts +43 -11
  44. package/dist/core/rows/coreRowsFeature.utils.d.ts +26 -9
  45. package/dist/core/rows/coreRowsFeature.utils.js +65 -14
  46. package/dist/core/table/constructTable.d.ts +2 -4
  47. package/dist/core/table/constructTable.js +54 -22
  48. package/dist/core/table/coreTablesFeature.d.ts +1 -3
  49. package/dist/core/table/coreTablesFeature.js +1 -2
  50. package/dist/core/table/coreTablesFeature.types.d.ts +41 -24
  51. package/dist/core/table/coreTablesFeature.utils.d.ts +34 -12
  52. package/dist/core/table/coreTablesFeature.utils.js +71 -25
  53. package/dist/experimental-worker-plugin.d.ts +5 -0
  54. package/dist/experimental-worker-plugin.js +6 -0
  55. package/dist/features/cell-selection/cellSelectionFeature.d.ts +8 -0
  56. package/dist/features/cell-selection/cellSelectionFeature.js +128 -0
  57. package/dist/features/cell-selection/cellSelectionFeature.types.d.ts +296 -0
  58. package/dist/features/cell-selection/cellSelectionFeature.utils.d.ts +306 -0
  59. package/dist/features/cell-selection/cellSelectionFeature.utils.js +879 -0
  60. package/dist/features/cell-selection/cellSelectionGeometry.js +121 -0
  61. package/dist/features/cell-spanning/cellSpanningFeature.d.ts +13 -0
  62. package/dist/features/cell-spanning/cellSpanningFeature.js +47 -0
  63. package/dist/features/cell-spanning/cellSpanningFeature.types.d.ts +150 -0
  64. package/dist/features/cell-spanning/cellSpanningFeature.utils.d.ts +74 -0
  65. package/dist/features/cell-spanning/cellSpanningFeature.utils.js +262 -0
  66. package/dist/features/column-faceting/columnFacetingFeature.d.ts +7 -3
  67. package/dist/features/column-faceting/columnFacetingFeature.js +14 -43
  68. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +15 -35
  69. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +10 -12
  70. package/dist/features/column-faceting/columnFacetingFeature.utils.js +29 -14
  71. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +2 -4
  72. package/dist/features/column-faceting/createFacetedMinMaxValues.js +9 -7
  73. package/dist/features/column-faceting/createFacetedRowModel.d.ts +3 -5
  74. package/dist/features/column-faceting/createFacetedRowModel.js +12 -17
  75. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +2 -4
  76. package/dist/features/column-faceting/createFacetedUniqueValues.js +12 -9
  77. package/dist/features/column-filtering/columnFilteringFeature.d.ts +1 -3
  78. package/dist/features/column-filtering/columnFilteringFeature.js +4 -5
  79. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +90 -33
  80. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +25 -18
  81. package/dist/features/column-filtering/columnFilteringFeature.utils.js +42 -23
  82. package/dist/features/column-filtering/createFilteredRowModel.d.ts +11 -7
  83. package/dist/features/column-filtering/createFilteredRowModel.js +34 -30
  84. package/dist/features/column-filtering/filterFns.d.ts +210 -0
  85. package/dist/features/column-filtering/filterFns.js +377 -0
  86. package/dist/features/column-filtering/filterRowsUtils.js +12 -4
  87. package/dist/features/column-grouping/columnGroupingFeature.d.ts +2 -4
  88. package/dist/features/column-grouping/columnGroupingFeature.js +7 -20
  89. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +14 -52
  90. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +12 -51
  91. package/dist/features/column-grouping/columnGroupingFeature.utils.js +8 -61
  92. package/dist/features/column-grouping/createGroupedRowModel.d.ts +7 -7
  93. package/dist/features/column-grouping/createGroupedRowModel.js +79 -43
  94. package/dist/features/column-ordering/columnOrderingFeature.d.ts +1 -3
  95. package/dist/features/column-ordering/columnOrderingFeature.js +19 -24
  96. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +28 -5
  97. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +26 -16
  98. package/dist/features/column-ordering/columnOrderingFeature.utils.js +36 -18
  99. package/dist/features/column-pinning/columnPinningFeature.d.ts +7 -4
  100. package/dist/features/column-pinning/columnPinningFeature.js +126 -146
  101. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +53 -44
  102. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +100 -93
  103. package/dist/features/column-pinning/columnPinningFeature.utils.js +148 -150
  104. package/dist/features/column-resizing/columnResizingFeature.d.ts +1 -3
  105. package/dist/features/column-resizing/columnResizingFeature.js +1 -2
  106. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +2 -7
  107. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +7 -9
  108. package/dist/features/column-resizing/columnResizingFeature.utils.js +86 -48
  109. package/dist/features/column-sizing/columnSizingFeature.d.ts +1 -3
  110. package/dist/features/column-sizing/columnSizingFeature.js +35 -70
  111. package/dist/features/column-sizing/columnSizingFeature.types.d.ts +52 -11
  112. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +43 -27
  113. package/dist/features/column-sizing/columnSizingFeature.utils.js +95 -54
  114. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +1 -3
  115. package/dist/features/column-visibility/columnVisibilityFeature.js +26 -38
  116. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +4 -6
  117. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +22 -20
  118. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +39 -32
  119. package/dist/features/global-filtering/globalFilteringFeature.d.ts +1 -3
  120. package/dist/features/global-filtering/globalFilteringFeature.js +3 -4
  121. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +4 -6
  122. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -13
  123. package/dist/features/global-filtering/globalFilteringFeature.utils.js +7 -8
  124. package/dist/features/row-aggregation/aggregationFns.d.ts +67 -0
  125. package/dist/features/row-aggregation/aggregationFns.js +279 -0
  126. package/dist/features/row-aggregation/rowAggregationFeature.d.ts +8 -0
  127. package/dist/features/row-aggregation/rowAggregationFeature.js +35 -0
  128. package/dist/features/row-aggregation/rowAggregationFeature.types.d.ts +193 -0
  129. package/dist/features/row-aggregation/rowAggregationFeature.types.js +11 -0
  130. package/dist/features/row-aggregation/rowAggregationFeature.utils.d.ts +46 -0
  131. package/dist/features/row-aggregation/rowAggregationFeature.utils.js +235 -0
  132. package/dist/features/row-expanding/createExpandedRowModel.d.ts +3 -5
  133. package/dist/features/row-expanding/createExpandedRowModel.js +9 -13
  134. package/dist/features/row-expanding/rowExpandingFeature.d.ts +1 -3
  135. package/dist/features/row-expanding/rowExpandingFeature.js +1 -2
  136. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +7 -18
  137. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +26 -22
  138. package/dist/features/row-expanding/rowExpandingFeature.utils.js +66 -45
  139. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +3 -5
  140. package/dist/features/row-pagination/createPaginatedRowModel.js +10 -12
  141. package/dist/features/row-pagination/rowPaginationFeature.d.ts +1 -3
  142. package/dist/features/row-pagination/rowPaginationFeature.js +1 -2
  143. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +6 -17
  144. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +18 -20
  145. package/dist/features/row-pagination/rowPaginationFeature.utils.js +10 -17
  146. package/dist/features/row-pinning/rowPinningFeature.d.ts +1 -3
  147. package/dist/features/row-pinning/rowPinningFeature.js +5 -18
  148. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +3 -5
  149. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +8 -10
  150. package/dist/features/row-pinning/rowPinningFeature.utils.js +12 -18
  151. package/dist/features/row-selection/rowSelectionFeature.d.ts +1 -3
  152. package/dist/features/row-selection/rowSelectionFeature.js +70 -25
  153. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +69 -16
  154. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +70 -38
  155. package/dist/features/row-selection/rowSelectionFeature.utils.js +229 -108
  156. package/dist/features/row-sorting/createSortedRowModel.d.ts +11 -7
  157. package/dist/features/row-sorting/createSortedRowModel.js +72 -54
  158. package/dist/features/row-sorting/rowSortingFeature.d.ts +1 -3
  159. package/dist/features/row-sorting/rowSortingFeature.js +2 -2
  160. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +74 -31
  161. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +39 -27
  162. package/dist/features/row-sorting/rowSortingFeature.utils.js +66 -33
  163. package/dist/features/row-sorting/sortFns.d.ts +96 -0
  164. package/dist/features/row-sorting/sortFns.js +216 -0
  165. package/dist/features/stockFeatures.d.ts +7 -3
  166. package/dist/features/stockFeatures.js +7 -2
  167. package/dist/flex-render.d.ts +2 -4
  168. package/dist/flex-render.js +10 -3
  169. package/dist/helpers/columnHelper.d.ts +3 -5
  170. package/dist/helpers/columnHelper.js +1 -2
  171. package/dist/helpers/metaHelper.d.ts +1 -2
  172. package/dist/helpers/metaHelper.js +1 -2
  173. package/dist/helpers/tableFeatures.d.ts +30 -13
  174. package/dist/helpers/tableFeatures.js +28 -10
  175. package/dist/helpers/tableOptions.d.ts +1 -3
  176. package/dist/helpers/tableOptions.js +1 -2
  177. package/dist/index.d.ts +32 -26
  178. package/dist/index.js +9 -5
  179. package/dist/reactivity.d.ts +2 -1
  180. package/dist/reactivity.js +2 -1
  181. package/dist/static-functions.d.ts +12 -9
  182. package/dist/static-functions.js +13 -10
  183. package/dist/store-reactivity-bindings.d.ts +1 -3
  184. package/dist/store-reactivity-bindings.js +3 -4
  185. package/dist/types/Cell.d.ts +9 -5
  186. package/dist/types/Column.d.ts +13 -15
  187. package/dist/types/ColumnDef.d.ts +23 -19
  188. package/dist/types/Header.d.ts +3 -5
  189. package/dist/types/HeaderGroup.d.ts +3 -5
  190. package/dist/types/Row.d.ts +7 -7
  191. package/dist/types/RowModel.d.ts +11 -25
  192. package/dist/types/RowModelFns.d.ts +5 -7
  193. package/dist/types/Table.d.ts +29 -32
  194. package/dist/types/TableFeatures.d.ts +372 -30
  195. package/dist/types/TableOptions.d.ts +24 -14
  196. package/dist/types/TableState.d.ts +8 -8
  197. package/dist/types/type-utils.d.ts +10 -4
  198. package/dist/utils.d.ts +42 -27
  199. package/dist/utils.js +71 -33
  200. package/dist/worker/createTableWorker.d.ts +102 -0
  201. package/dist/worker/createTableWorker.js +188 -0
  202. package/dist/worker/createWorkerRowModel.d.ts +40 -0
  203. package/dist/worker/createWorkerRowModel.js +77 -0
  204. package/dist/worker/initTableWorker.d.ts +31 -0
  205. package/dist/worker/initTableWorker.js +99 -0
  206. package/dist/worker/rebuildRowModel.d.ts +11 -0
  207. package/dist/worker/rebuildRowModel.js +71 -0
  208. package/dist/worker/serializeRowModel.js +51 -0
  209. package/dist/worker/tableWorkerProtocol.d.ts +88 -0
  210. package/dist/worker/tableWorkerProtocol.js +26 -0
  211. package/package.json +12 -28
  212. package/skills/aggregation/SKILL.md +137 -0
  213. package/skills/api-not-found/SKILL.md +113 -0
  214. package/skills/cell-selection/SKILL.md +200 -0
  215. package/skills/cell-spanning/SKILL.md +158 -0
  216. package/skills/client-vs-server/SKILL.md +164 -0
  217. package/skills/column-faceting/SKILL.md +93 -0
  218. package/skills/column-filtering/SKILL.md +83 -0
  219. package/skills/column-ordering/SKILL.md +71 -0
  220. package/skills/column-pinning/SKILL.md +85 -0
  221. package/skills/column-resizing/SKILL.md +87 -0
  222. package/skills/column-sizing/SKILL.md +68 -0
  223. package/skills/column-visibility/SKILL.md +71 -0
  224. package/skills/core/SKILL.md +175 -0
  225. package/skills/custom-features/SKILL.md +235 -0
  226. package/skills/expanding/SKILL.md +76 -0
  227. package/skills/global-filtering/SKILL.md +80 -0
  228. package/skills/grouping/SKILL.md +47 -401
  229. package/skills/migrate-v8-to-v9/SKILL.md +275 -416
  230. package/skills/pagination/SKILL.md +33 -344
  231. package/skills/row-pinning/SKILL.md +43 -234
  232. package/skills/row-selection/SKILL.md +79 -296
  233. package/skills/sorting/SKILL.md +41 -303
  234. package/skills/table-features/SKILL.md +159 -0
  235. package/skills/typescript/SKILL.md +126 -0
  236. package/dist/core/cells/constructCell.cjs +0 -34
  237. package/dist/core/cells/constructCell.cjs.map +0 -1
  238. package/dist/core/cells/constructCell.d.cts +0 -17
  239. package/dist/core/cells/constructCell.js.map +0 -1
  240. package/dist/core/cells/coreCellsFeature.cjs +0 -21
  241. package/dist/core/cells/coreCellsFeature.cjs.map +0 -1
  242. package/dist/core/cells/coreCellsFeature.d.cts +0 -10
  243. package/dist/core/cells/coreCellsFeature.js.map +0 -1
  244. package/dist/core/cells/coreCellsFeature.types.d.cts +0 -57
  245. package/dist/core/cells/coreCellsFeature.utils.cjs +0 -57
  246. package/dist/core/cells/coreCellsFeature.utils.cjs.map +0 -1
  247. package/dist/core/cells/coreCellsFeature.utils.d.cts +0 -53
  248. package/dist/core/cells/coreCellsFeature.utils.js.map +0 -1
  249. package/dist/core/columns/constructColumn.cjs +0 -61
  250. package/dist/core/columns/constructColumn.cjs.map +0 -1
  251. package/dist/core/columns/constructColumn.d.cts +0 -16
  252. package/dist/core/columns/constructColumn.js.map +0 -1
  253. package/dist/core/columns/coreColumnsFeature.cjs +0 -70
  254. package/dist/core/columns/coreColumnsFeature.cjs.map +0 -1
  255. package/dist/core/columns/coreColumnsFeature.d.cts +0 -10
  256. package/dist/core/columns/coreColumnsFeature.js.map +0 -1
  257. package/dist/core/columns/coreColumnsFeature.types.d.cts +0 -94
  258. package/dist/core/columns/coreColumnsFeature.utils.cjs +0 -187
  259. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +0 -1
  260. package/dist/core/columns/coreColumnsFeature.utils.d.cts +0 -119
  261. package/dist/core/columns/coreColumnsFeature.utils.js.map +0 -1
  262. package/dist/core/coreFeatures.cjs +0 -25
  263. package/dist/core/coreFeatures.cjs.map +0 -1
  264. package/dist/core/coreFeatures.d.cts +0 -26
  265. package/dist/core/coreFeatures.js.map +0 -1
  266. package/dist/core/headers/buildHeaderGroups.cjs +0 -103
  267. package/dist/core/headers/buildHeaderGroups.cjs.map +0 -1
  268. package/dist/core/headers/buildHeaderGroups.d.cts +0 -16
  269. package/dist/core/headers/buildHeaderGroups.js.map +0 -1
  270. package/dist/core/headers/constructHeader.cjs +0 -41
  271. package/dist/core/headers/constructHeader.cjs.map +0 -1
  272. package/dist/core/headers/constructHeader.d.cts +0 -22
  273. package/dist/core/headers/constructHeader.js.map +0 -1
  274. package/dist/core/headers/coreHeadersFeature.cjs +0 -55
  275. package/dist/core/headers/coreHeadersFeature.cjs.map +0 -1
  276. package/dist/core/headers/coreHeadersFeature.d.cts +0 -10
  277. package/dist/core/headers/coreHeadersFeature.js.map +0 -1
  278. package/dist/core/headers/coreHeadersFeature.types.d.cts +0 -106
  279. package/dist/core/headers/coreHeadersFeature.utils.cjs +0 -142
  280. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +0 -1
  281. package/dist/core/headers/coreHeadersFeature.utils.d.cts +0 -85
  282. package/dist/core/headers/coreHeadersFeature.utils.js.map +0 -1
  283. package/dist/core/reactivity/coreReactivityFeature.types.d.cts +0 -48
  284. package/dist/core/reactivity/coreReactivityFeature.utils.cjs +0 -24
  285. package/dist/core/reactivity/coreReactivityFeature.utils.cjs.map +0 -1
  286. package/dist/core/reactivity/coreReactivityFeature.utils.d.cts +0 -24
  287. package/dist/core/reactivity/coreReactivityFeature.utils.js.map +0 -1
  288. package/dist/core/row-models/coreRowModelsFeature.cjs +0 -27
  289. package/dist/core/row-models/coreRowModelsFeature.cjs.map +0 -1
  290. package/dist/core/row-models/coreRowModelsFeature.d.cts +0 -10
  291. package/dist/core/row-models/coreRowModelsFeature.js.map +0 -1
  292. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +0 -41
  293. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +0 -215
  294. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +0 -1
  295. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +0 -153
  296. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +0 -1
  297. package/dist/core/row-models/createCoreRowModel.cjs +0 -52
  298. package/dist/core/row-models/createCoreRowModel.cjs.map +0 -1
  299. package/dist/core/row-models/createCoreRowModel.d.cts +0 -15
  300. package/dist/core/row-models/createCoreRowModel.js.map +0 -1
  301. package/dist/core/rows/constructRow.cjs +0 -44
  302. package/dist/core/rows/constructRow.cjs.map +0 -1
  303. package/dist/core/rows/constructRow.d.cts +0 -15
  304. package/dist/core/rows/constructRow.js.map +0 -1
  305. package/dist/core/rows/coreRowsFeature.cjs +0 -37
  306. package/dist/core/rows/coreRowsFeature.cjs.map +0 -1
  307. package/dist/core/rows/coreRowsFeature.d.cts +0 -10
  308. package/dist/core/rows/coreRowsFeature.js.map +0 -1
  309. package/dist/core/rows/coreRowsFeature.types.d.cts +0 -99
  310. package/dist/core/rows/coreRowsFeature.utils.cjs +0 -192
  311. package/dist/core/rows/coreRowsFeature.utils.cjs.map +0 -1
  312. package/dist/core/rows/coreRowsFeature.utils.d.cts +0 -127
  313. package/dist/core/rows/coreRowsFeature.utils.js.map +0 -1
  314. package/dist/core/table/constructTable.cjs +0 -119
  315. package/dist/core/table/constructTable.cjs.map +0 -1
  316. package/dist/core/table/constructTable.d.cts +0 -22
  317. package/dist/core/table/constructTable.js.map +0 -1
  318. package/dist/core/table/coreTablesFeature.cjs +0 -17
  319. package/dist/core/table/coreTablesFeature.cjs.map +0 -1
  320. package/dist/core/table/coreTablesFeature.d.cts +0 -10
  321. package/dist/core/table/coreTablesFeature.js.map +0 -1
  322. package/dist/core/table/coreTablesFeature.types.d.cts +0 -200
  323. package/dist/core/table/coreTablesFeature.utils.cjs +0 -96
  324. package/dist/core/table/coreTablesFeature.utils.cjs.map +0 -1
  325. package/dist/core/table/coreTablesFeature.utils.d.cts +0 -57
  326. package/dist/core/table/coreTablesFeature.utils.js.map +0 -1
  327. package/dist/features/column-faceting/columnFacetingFeature.cjs +0 -61
  328. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +0 -1
  329. package/dist/features/column-faceting/columnFacetingFeature.d.cts +0 -10
  330. package/dist/features/column-faceting/columnFacetingFeature.js.map +0 -1
  331. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +0 -85
  332. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +0 -103
  333. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +0 -1
  334. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +0 -84
  335. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +0 -1
  336. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +0 -44
  337. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +0 -1
  338. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +0 -14
  339. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +0 -1
  340. package/dist/features/column-faceting/createFacetedRowModel.cjs +0 -50
  341. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +0 -1
  342. package/dist/features/column-faceting/createFacetedRowModel.d.cts +0 -15
  343. package/dist/features/column-faceting/createFacetedRowModel.js.map +0 -1
  344. package/dist/features/column-faceting/createFacetedUniqueValues.cjs +0 -41
  345. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +0 -1
  346. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +0 -14
  347. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +0 -1
  348. package/dist/features/column-filtering/columnFilteringFeature.cjs +0 -50
  349. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +0 -1
  350. package/dist/features/column-filtering/columnFilteringFeature.d.cts +0 -10
  351. package/dist/features/column-filtering/columnFilteringFeature.js.map +0 -1
  352. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +0 -160
  353. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +0 -212
  354. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +0 -1
  355. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +0 -143
  356. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +0 -1
  357. package/dist/features/column-filtering/createFilteredRowModel.cjs +0 -110
  358. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +0 -1
  359. package/dist/features/column-filtering/createFilteredRowModel.d.cts +0 -16
  360. package/dist/features/column-filtering/createFilteredRowModel.js.map +0 -1
  361. package/dist/features/column-filtering/filterRowsUtils.cjs +0 -81
  362. package/dist/features/column-filtering/filterRowsUtils.cjs.map +0 -1
  363. package/dist/features/column-filtering/filterRowsUtils.js.map +0 -1
  364. package/dist/features/column-grouping/columnGroupingFeature.cjs +0 -67
  365. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +0 -1
  366. package/dist/features/column-grouping/columnGroupingFeature.d.cts +0 -10
  367. package/dist/features/column-grouping/columnGroupingFeature.js.map +0 -1
  368. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +0 -165
  369. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +0 -250
  370. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +0 -1
  371. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +0 -190
  372. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +0 -1
  373. package/dist/features/column-grouping/createGroupedRowModel.cjs +0 -119
  374. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +0 -1
  375. package/dist/features/column-grouping/createGroupedRowModel.d.cts +0 -16
  376. package/dist/features/column-grouping/createGroupedRowModel.js.map +0 -1
  377. package/dist/features/column-ordering/columnOrderingFeature.cjs +0 -58
  378. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +0 -1
  379. package/dist/features/column-ordering/columnOrderingFeature.d.cts +0 -10
  380. package/dist/features/column-ordering/columnOrderingFeature.js.map +0 -1
  381. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +0 -56
  382. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +0 -172
  383. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +0 -1
  384. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +0 -107
  385. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +0 -1
  386. package/dist/features/column-pinning/columnPinningFeature.cjs +0 -221
  387. package/dist/features/column-pinning/columnPinningFeature.cjs.map +0 -1
  388. package/dist/features/column-pinning/columnPinningFeature.d.cts +0 -10
  389. package/dist/features/column-pinning/columnPinningFeature.js.map +0 -1
  390. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +0 -178
  391. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +0 -585
  392. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +0 -1
  393. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +0 -375
  394. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +0 -1
  395. package/dist/features/column-resizing/columnResizingFeature.cjs +0 -41
  396. package/dist/features/column-resizing/columnResizingFeature.cjs.map +0 -1
  397. package/dist/features/column-resizing/columnResizingFeature.d.cts +0 -10
  398. package/dist/features/column-resizing/columnResizingFeature.js.map +0 -1
  399. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +0 -81
  400. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +0 -246
  401. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +0 -1
  402. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +0 -109
  403. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +0 -1
  404. package/dist/features/column-sizing/columnSizingFeature.cjs +0 -124
  405. package/dist/features/column-sizing/columnSizingFeature.cjs.map +0 -1
  406. package/dist/features/column-sizing/columnSizingFeature.d.cts +0 -10
  407. package/dist/features/column-sizing/columnSizingFeature.js.map +0 -1
  408. package/dist/features/column-sizing/columnSizingFeature.types.d.cts +0 -96
  409. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +0 -256
  410. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +0 -1
  411. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +0 -182
  412. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +0 -1
  413. package/dist/features/column-visibility/columnVisibilityFeature.cjs +0 -94
  414. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +0 -1
  415. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +0 -10
  416. package/dist/features/column-visibility/columnVisibilityFeature.js.map +0 -1
  417. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +0 -97
  418. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +0 -283
  419. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +0 -1
  420. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +0 -189
  421. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +0 -1
  422. package/dist/features/global-filtering/globalFilteringFeature.cjs +0 -41
  423. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +0 -1
  424. package/dist/features/global-filtering/globalFilteringFeature.d.cts +0 -10
  425. package/dist/features/global-filtering/globalFilteringFeature.js.map +0 -1
  426. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +0 -71
  427. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +0 -88
  428. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +0 -1
  429. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +0 -74
  430. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +0 -1
  431. package/dist/features/row-expanding/createExpandedRowModel.cjs +0 -59
  432. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +0 -1
  433. package/dist/features/row-expanding/createExpandedRowModel.d.cts +0 -21
  434. package/dist/features/row-expanding/createExpandedRowModel.js.map +0 -1
  435. package/dist/features/row-expanding/rowExpandingFeature.cjs +0 -47
  436. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +0 -1
  437. package/dist/features/row-expanding/rowExpandingFeature.d.cts +0 -10
  438. package/dist/features/row-expanding/rowExpandingFeature.js.map +0 -1
  439. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +0 -127
  440. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +0 -281
  441. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +0 -1
  442. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +0 -191
  443. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +0 -1
  444. package/dist/features/row-pagination/createPaginatedRowModel.cjs +0 -62
  445. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +0 -1
  446. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +0 -15
  447. package/dist/features/row-pagination/createPaginatedRowModel.js.map +0 -1
  448. package/dist/features/row-pagination/rowPaginationFeature.cjs +0 -45
  449. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +0 -1
  450. package/dist/features/row-pagination/rowPaginationFeature.d.cts +0 -10
  451. package/dist/features/row-pagination/rowPaginationFeature.js.map +0 -1
  452. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +0 -135
  453. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +0 -312
  454. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +0 -1
  455. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +0 -218
  456. package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +0 -1
  457. package/dist/features/row-pinning/rowPinningFeature.cjs +0 -67
  458. package/dist/features/row-pinning/rowPinningFeature.cjs.map +0 -1
  459. package/dist/features/row-pinning/rowPinningFeature.d.cts +0 -10
  460. package/dist/features/row-pinning/rowPinningFeature.js.map +0 -1
  461. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +0 -83
  462. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +0 -229
  463. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +0 -1
  464. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +0 -143
  465. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +0 -1
  466. package/dist/features/row-selection/rowSelectionFeature.cjs +0 -75
  467. package/dist/features/row-selection/rowSelectionFeature.cjs.map +0 -1
  468. package/dist/features/row-selection/rowSelectionFeature.d.cts +0 -10
  469. package/dist/features/row-selection/rowSelectionFeature.js.map +0 -1
  470. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +0 -136
  471. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +0 -518
  472. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +0 -1
  473. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +0 -318
  474. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +0 -1
  475. package/dist/features/row-sorting/createSortedRowModel.cjs +0 -95
  476. package/dist/features/row-sorting/createSortedRowModel.cjs.map +0 -1
  477. package/dist/features/row-sorting/createSortedRowModel.d.cts +0 -16
  478. package/dist/features/row-sorting/createSortedRowModel.js.map +0 -1
  479. package/dist/features/row-sorting/rowSortingFeature.cjs +0 -55
  480. package/dist/features/row-sorting/rowSortingFeature.cjs.map +0 -1
  481. package/dist/features/row-sorting/rowSortingFeature.d.cts +0 -10
  482. package/dist/features/row-sorting/rowSortingFeature.js.map +0 -1
  483. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +0 -188
  484. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +0 -305
  485. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +0 -1
  486. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +0 -193
  487. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +0 -1
  488. package/dist/features/stockFeatures.cjs +0 -41
  489. package/dist/features/stockFeatures.cjs.map +0 -1
  490. package/dist/features/stockFeatures.d.cts +0 -41
  491. package/dist/features/stockFeatures.js.map +0 -1
  492. package/dist/flex-render.cjs +0 -29
  493. package/dist/flex-render.cjs.map +0 -1
  494. package/dist/flex-render.d.cts +0 -34
  495. package/dist/flex-render.js.map +0 -1
  496. package/dist/fns/aggregationFns.cjs +0 -161
  497. package/dist/fns/aggregationFns.cjs.map +0 -1
  498. package/dist/fns/aggregationFns.d.cts +0 -85
  499. package/dist/fns/aggregationFns.d.ts +0 -85
  500. package/dist/fns/aggregationFns.js +0 -151
  501. package/dist/fns/aggregationFns.js.map +0 -1
  502. package/dist/fns/filterFns.cjs +0 -201
  503. package/dist/fns/filterFns.cjs.map +0 -1
  504. package/dist/fns/filterFns.d.cts +0 -167
  505. package/dist/fns/filterFns.d.ts +0 -167
  506. package/dist/fns/filterFns.js +0 -185
  507. package/dist/fns/filterFns.js.map +0 -1
  508. package/dist/fns/sortFns.cjs +0 -130
  509. package/dist/fns/sortFns.cjs.map +0 -1
  510. package/dist/fns/sortFns.d.cts +0 -65
  511. package/dist/fns/sortFns.d.ts +0 -65
  512. package/dist/fns/sortFns.js +0 -122
  513. package/dist/fns/sortFns.js.map +0 -1
  514. package/dist/helpers/columnHelper.cjs +0 -41
  515. package/dist/helpers/columnHelper.cjs.map +0 -1
  516. package/dist/helpers/columnHelper.d.cts +0 -71
  517. package/dist/helpers/columnHelper.js.map +0 -1
  518. package/dist/helpers/metaHelper.cjs +0 -30
  519. package/dist/helpers/metaHelper.cjs.map +0 -1
  520. package/dist/helpers/metaHelper.d.cts +0 -26
  521. package/dist/helpers/metaHelper.js.map +0 -1
  522. package/dist/helpers/tableFeatures.cjs +0 -30
  523. package/dist/helpers/tableFeatures.cjs.map +0 -1
  524. package/dist/helpers/tableFeatures.d.cts +0 -28
  525. package/dist/helpers/tableFeatures.js.map +0 -1
  526. package/dist/helpers/tableOptions.cjs +0 -15
  527. package/dist/helpers/tableOptions.cjs.map +0 -1
  528. package/dist/helpers/tableOptions.d.cts +0 -57
  529. package/dist/helpers/tableOptions.js.map +0 -1
  530. package/dist/index.cjs +0 -135
  531. package/dist/index.d.cts +0 -79
  532. package/dist/reactivity.cjs +0 -4
  533. package/dist/reactivity.d.cts +0 -3
  534. package/dist/static-functions.cjs +0 -263
  535. package/dist/static-functions.d.cts +0 -21
  536. package/dist/store-reactivity-bindings.cjs +0 -44
  537. package/dist/store-reactivity-bindings.cjs.map +0 -1
  538. package/dist/store-reactivity-bindings.d.cts +0 -22
  539. package/dist/store-reactivity-bindings.js.map +0 -1
  540. package/dist/types/Cell.d.cts +0 -14
  541. package/dist/types/Column.d.cts +0 -36
  542. package/dist/types/ColumnDef.d.cts +0 -123
  543. package/dist/types/Header.d.cts +0 -16
  544. package/dist/types/HeaderGroup.d.cts +0 -10
  545. package/dist/types/Row.d.cts +0 -26
  546. package/dist/types/RowModel.d.cts +0 -36
  547. package/dist/types/RowModelFns.d.cts +0 -18
  548. package/dist/types/Table.d.cts +0 -70
  549. package/dist/types/TableFeatures.d.cts +0 -75
  550. package/dist/types/TableOptions.d.cts +0 -69
  551. package/dist/types/TableState.d.cts +0 -48
  552. package/dist/types/type-utils.d.cts +0 -23
  553. package/dist/utils.cjs +0 -243
  554. package/dist/utils.cjs.map +0 -1
  555. package/dist/utils.d.cts +0 -114
  556. package/dist/utils.js.map +0 -1
  557. package/skills/column-definitions/SKILL.md +0 -333
  558. package/skills/column-layout/SKILL.md +0 -328
  559. package/skills/column-layout/references/subsystems.md +0 -220
  560. package/skills/customizing-feature-behavior/SKILL.md +0 -416
  561. package/skills/filtering/SKILL.md +0 -357
  562. package/skills/filtering/references/faceting-and-fuzzy.md +0 -191
  563. package/skills/row-expanding/SKILL.md +0 -348
  564. package/skills/setup/SKILL.md +0 -400
  565. package/skills/state-management/SKILL.md +0 -388
  566. package/src/core/cells/constructCell.ts +0 -55
  567. package/src/core/cells/coreCellsFeature.ts +0 -27
  568. package/src/core/cells/coreCellsFeature.types.ts +0 -68
  569. package/src/core/cells/coreCellsFeature.utils.ts +0 -68
  570. package/src/core/columns/constructColumn.ts +0 -119
  571. package/src/core/columns/coreColumnsFeature.ts +0 -73
  572. package/src/core/columns/coreColumnsFeature.types.ts +0 -108
  573. package/src/core/columns/coreColumnsFeature.utils.ts +0 -275
  574. package/src/core/coreFeatures.ts +0 -31
  575. package/src/core/headers/buildHeaderGroups.ts +0 -182
  576. package/src/core/headers/constructHeader.ts +0 -67
  577. package/src/core/headers/coreHeadersFeature.ts +0 -56
  578. package/src/core/headers/coreHeadersFeature.types.ts +0 -125
  579. package/src/core/headers/coreHeadersFeature.utils.ts +0 -200
  580. package/src/core/reactivity/coreReactivityFeature.types.ts +0 -56
  581. package/src/core/reactivity/coreReactivityFeature.utils.ts +0 -44
  582. package/src/core/row-models/coreRowModelsFeature.ts +0 -62
  583. package/src/core/row-models/coreRowModelsFeature.types.ts +0 -64
  584. package/src/core/row-models/coreRowModelsFeature.utils.ts +0 -272
  585. package/src/core/row-models/createCoreRowModel.ts +0 -93
  586. package/src/core/rows/constructRow.ts +0 -66
  587. package/src/core/rows/coreRowsFeature.ts +0 -62
  588. package/src/core/rows/coreRowsFeature.types.ts +0 -117
  589. package/src/core/rows/coreRowsFeature.utils.ts +0 -264
  590. package/src/core/table/constructTable.ts +0 -179
  591. package/src/core/table/coreTablesFeature.ts +0 -19
  592. package/src/core/table/coreTablesFeature.types.ts +0 -237
  593. package/src/core/table/coreTablesFeature.utils.ts +0 -131
  594. package/src/features/column-faceting/columnFacetingFeature.ts +0 -89
  595. package/src/features/column-faceting/columnFacetingFeature.types.ts +0 -109
  596. package/src/features/column-faceting/columnFacetingFeature.utils.ts +0 -145
  597. package/src/features/column-faceting/createFacetedMinMaxValues.ts +0 -66
  598. package/src/features/column-faceting/createFacetedRowModel.ts +0 -85
  599. package/src/features/column-faceting/createFacetedUniqueValues.ts +0 -66
  600. package/src/features/column-filtering/columnFilteringFeature.ts +0 -86
  601. package/src/features/column-filtering/columnFilteringFeature.types.ts +0 -232
  602. package/src/features/column-filtering/columnFilteringFeature.utils.ts +0 -331
  603. package/src/features/column-filtering/createFilteredRowModel.ts +0 -183
  604. package/src/features/column-filtering/filterRowsUtils.ts +0 -157
  605. package/src/features/column-grouping/columnGroupingFeature.ts +0 -115
  606. package/src/features/column-grouping/columnGroupingFeature.types.ts +0 -226
  607. package/src/features/column-grouping/columnGroupingFeature.utils.ts +0 -354
  608. package/src/features/column-grouping/createGroupedRowModel.ts +0 -220
  609. package/src/features/column-ordering/columnOrderingFeature.ts +0 -73
  610. package/src/features/column-ordering/columnOrderingFeature.types.ts +0 -60
  611. package/src/features/column-ordering/columnOrderingFeature.utils.ts +0 -241
  612. package/src/features/column-pinning/columnPinningFeature.ts +0 -316
  613. package/src/features/column-pinning/columnPinningFeature.types.ts +0 -192
  614. package/src/features/column-pinning/columnPinningFeature.utils.ts +0 -908
  615. package/src/features/column-resizing/columnResizingFeature.ts +0 -65
  616. package/src/features/column-resizing/columnResizingFeature.types.ts +0 -89
  617. package/src/features/column-resizing/columnResizingFeature.utils.ts +0 -364
  618. package/src/features/column-sizing/columnSizingFeature.ts +0 -145
  619. package/src/features/column-sizing/columnSizingFeature.types.ts +0 -102
  620. package/src/features/column-sizing/columnSizingFeature.utils.ts +0 -381
  621. package/src/features/column-visibility/columnVisibilityFeature.ts +0 -122
  622. package/src/features/column-visibility/columnVisibilityFeature.types.ts +0 -112
  623. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +0 -384
  624. package/src/features/global-filtering/globalFilteringFeature.ts +0 -65
  625. package/src/features/global-filtering/globalFilteringFeature.types.ts +0 -91
  626. package/src/features/global-filtering/globalFilteringFeature.utils.ts +0 -118
  627. package/src/features/row-expanding/createExpandedRowModel.ts +0 -82
  628. package/src/features/row-expanding/rowExpandingFeature.ts +0 -94
  629. package/src/features/row-expanding/rowExpandingFeature.types.ts +0 -147
  630. package/src/features/row-expanding/rowExpandingFeature.utils.ts +0 -374
  631. package/src/features/row-pagination/createPaginatedRowModel.ts +0 -83
  632. package/src/features/row-pagination/rowPaginationFeature.ts +0 -95
  633. package/src/features/row-pagination/rowPaginationFeature.types.ts +0 -152
  634. package/src/features/row-pagination/rowPaginationFeature.utils.ts +0 -400
  635. package/src/features/row-pinning/rowPinningFeature.ts +0 -97
  636. package/src/features/row-pinning/rowPinningFeature.types.ts +0 -95
  637. package/src/features/row-pinning/rowPinningFeature.utils.ts +0 -323
  638. package/src/features/row-selection/rowSelectionFeature.ts +0 -140
  639. package/src/features/row-selection/rowSelectionFeature.types.ts +0 -151
  640. package/src/features/row-selection/rowSelectionFeature.utils.ts +0 -750
  641. package/src/features/row-sorting/createSortedRowModel.ts +0 -157
  642. package/src/features/row-sorting/rowSortingFeature.ts +0 -103
  643. package/src/features/row-sorting/rowSortingFeature.types.ts +0 -235
  644. package/src/features/row-sorting/rowSortingFeature.utils.ts +0 -489
  645. package/src/features/stockFeatures.ts +0 -53
  646. package/src/flex-render.ts +0 -70
  647. package/src/fns/aggregationFns.ts +0 -245
  648. package/src/fns/filterFns.ts +0 -382
  649. package/src/fns/sortFns.ts +0 -240
  650. package/src/helpers/columnHelper.ts +0 -122
  651. package/src/helpers/metaHelper.ts +0 -24
  652. package/src/helpers/tableFeatures.ts +0 -34
  653. package/src/helpers/tableOptions.ts +0 -117
  654. package/src/index.ts +0 -139
  655. package/src/process-env.d.ts +0 -6
  656. package/src/reactivity.ts +0 -2
  657. package/src/static-functions.ts +0 -31
  658. package/src/store-reactivity-bindings.ts +0 -47
  659. package/src/types/Cell.ts +0 -21
  660. package/src/types/Column.ts +0 -51
  661. package/src/types/ColumnDef.ts +0 -254
  662. package/src/types/Header.ts +0 -23
  663. package/src/types/HeaderGroup.ts +0 -13
  664. package/src/types/Row.ts +0 -34
  665. package/src/types/RowModel.ts +0 -98
  666. package/src/types/RowModelFns.ts +0 -32
  667. package/src/types/Table.ts +0 -91
  668. package/src/types/TableFeatures.ts +0 -123
  669. package/src/types/TableOptions.ts +0 -104
  670. package/src/types/TableState.ts +0 -47
  671. package/src/types/type-utils.ts +0 -84
  672. package/src/utils.ts +0 -441
@@ -1,344 +1,82 @@
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
+ { type: sub-skill, library: '@tanstack/table-core', library_version: '9.0.1' }
7
+ requires: ['core', 'table-features', 'client-vs-server']
20
8
  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
9
+ - 'TanStack/table:docs/framework/react/guide/sorting.md'
10
+ - 'TanStack/table:packages/table-core/src/features/row-sorting'
11
+ - 'TanStack/table:examples/react/sorting'
26
12
  ---
27
13
 
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.
14
+ 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
15
 
30
16
  ## Setup
31
17
 
32
18
  ```ts
33
19
  import {
34
- tableFeatures,
35
- rowSortingFeature,
36
20
  createSortedRowModel,
37
- sortFns,
38
- createColumnHelper,
39
- constructTable,
21
+ rowSortingFeature,
22
+ sortFn_alphanumeric,
23
+ sortFn_text,
24
+ tableFeatures,
40
25
  } 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
-
50
- const features = tableFeatures({ rowSortingFeature })
51
- const columnHelper = createColumnHelper<typeof features, Person>()
52
26
 
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 },
27
+ export const features = tableFeatures({
28
+ rowSortingFeature,
29
+ sortedRowModel: createSortedRowModel(),
30
+ sortFns: { alphanumeric: sortFn_alphanumeric, text: sortFn_text },
70
31
  })
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
32
  ```
95
33
 
96
- `getToggleSortingHandler` already handles multi-sort when the user holds Shift (configurable via `isMultiSortEvent`).
34
+ Import individual `sortFn_*` built-ins and register only those your columns
35
+ reference by string name or that `sortFn: 'auto'` should resolve for your data
36
+ types. The full `sortFns` registry object still works but bundles every
37
+ built-in; numeric columns fall back to a basic comparator without registration.
97
38
 
98
- ### Custom `sortFn` for an enum
39
+ ## Core Patterns
99
40
 
100
41
  ```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 })
42
+ const options = { enableSortingRemoval: false, enableMultiSort: true }
43
+ const numericColumn = { sortUndefined: 'last' as const }
115
44
  ```
116
45
 
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`
120
-
121
- ```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
- })
130
- ```
131
-
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
- ```
46
+ Configure sort cycles and undefined placement to match the product rather than relying on implicit defaults.
154
47
 
155
48
  ## Common Mistakes
156
49
 
157
- ### [HIGH] Using v8 `sortingFn` / `sortingFns` names
50
+ ### [CRITICAL] Expecting manual mode to reorder
158
51
 
159
- Wrong:
52
+ Wrong: `const options = { data: unsortedRows, manualSorting: true }`
160
53
 
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
+ Correct: `const options = { data: serverSortedRows, manualSorting: true }`
168
55
 
169
- Correct:
56
+ Manual sorting bypasses `sortedRowModel` and trusts incoming order.
170
57
 
171
- ```tsx
172
- import { sortFns, createSortedRowModel } from '@tanstack/react-table'
58
+ Source: `packages/table-core/src/features/row-sorting/rowSortingFeature.types.ts`
173
59
 
174
- columnHelper.accessor('firstName', {
175
- sortFn: 'alphanumeric',
176
- })
60
+ ### [HIGH] Reversing inside the comparator
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
- ```
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.
192
-
193
- Source: packages/table-core/src/features/row-sorting/rowSortingFeature.utils.ts
194
-
195
- ### [MEDIUM] Expecting `sortUndefined: 'first' | 'last'` to work in v8
196
-
197
- Wrong:
62
+ Wrong: `const newest: SortFn<any, any> = (a, b, id) => b.getValue<number>(id) - a.getValue<number>(id)`
198
63
 
199
- ```tsx
200
- // agent assumes numeric and literal forms are interchangeable
201
- { accessorKey: 'lastName', sortUndefined: -1 } // ascending-first, descending-LAST
202
- ```
64
+ Correct: `const numeric: SortFn<any, any> = (a, b, id) => a.getValue<number>(id) - b.getValue<number>(id)`
203
65
 
204
- Correct:
66
+ Return ascending comparison only; Table reverses it when sorting is descending.
205
67
 
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
- ```
68
+ Source: `docs/framework/react/guide/sorting.md#custom-sorting-functions`
214
69
 
215
- v8 only had `false | -1 | 1`. v9 added `'first'` / `'last'`. Numeric flips with `desc`; literals are absolute.
70
+ ### [MEDIUM] Leaving ambiguous sort policy
216
71
 
217
- Source: packages/table-core/src/features/row-sorting/createSortedRowModel.ts
72
+ Wrong: `const options = { enableSortingRemoval: true }`
218
73
 
219
- ### [MEDIUM] Custom `sortFn` factors `desc` in itself
74
+ Correct: `const options = { enableSortingRemoval: false }; const rankColumn = { sortUndefined: 'last' as const }`
220
75
 
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
- ```
76
+ Undefined placement and removal cycles can differ from expected product behavior unless configured.
337
77
 
338
- Source: maintainer interview (Phase 4, 2026-05-17)
78
+ Source: `packages/table-core/src/features/row-sorting/rowSortingFeature.types.ts`
339
79
 
340
- ## See also
80
+ ## API Discovery
341
81
 
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
82
+ Inspect `node_modules/@tanstack/table-core/dist/features/row-sorting/` and `dist/features/row-sorting/sortFns.d.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.1'
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/dist/types/TableFeatures.d.ts` for current slots and `FeatureSlotPrereqs`, and `dist/features/stockFeatures.d.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.1'
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/dist/helpers/` and the signatures re-exported by `dist/index.d.ts`; avoid copying deep internal generic signatures into application code.