@tanstack/table-core 9.0.0-beta.7 → 9.0.0-beta.70

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 (667) hide show
  1. package/README.md +5 -1
  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 +1 -3
  12. package/dist/core/columns/coreColumnsFeature.js +13 -20
  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 +3 -3
  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 +21 -11
  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 +25 -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 +42 -10
  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 +52 -23
  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 +56 -25
  51. package/dist/core/table/coreTablesFeature.utils.d.ts +34 -12
  52. package/dist/core/table/coreTablesFeature.utils.js +69 -24
  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 +873 -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 +1 -3
  67. package/dist/features/column-faceting/columnFacetingFeature.js +13 -20
  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 +25 -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 +85 -33
  80. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +19 -17
  81. package/dist/features/column-filtering/columnFilteringFeature.utils.js +33 -21
  82. package/dist/features/column-filtering/createFilteredRowModel.d.ts +11 -7
  83. package/dist/features/column-filtering/createFilteredRowModel.js +33 -29
  84. package/dist/features/column-filtering/filterFns.d.ts +208 -0
  85. package/dist/features/column-filtering/filterFns.js +374 -0
  86. package/dist/features/column-filtering/filterRowsUtils.js +4 -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 +69 -38
  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 +20 -20
  118. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +32 -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 +66 -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 +6 -17
  137. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +11 -16
  138. package/dist/features/row-expanding/rowExpandingFeature.utils.js +30 -33
  139. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +3 -5
  140. package/dist/features/row-pagination/createPaginatedRowModel.js +7 -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 +5 -16
  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 +10 -16
  151. package/dist/features/row-selection/rowSelectionFeature.d.ts +1 -3
  152. package/dist/features/row-selection/rowSelectionFeature.js +68 -25
  153. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +51 -15
  154. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +60 -35
  155. package/dist/features/row-selection/rowSelectionFeature.utils.js +142 -89
  156. package/dist/features/row-sorting/createSortedRowModel.d.ts +11 -7
  157. package/dist/features/row-sorting/createSortedRowModel.js +71 -53
  158. package/dist/features/row-sorting/rowSortingFeature.d.ts +1 -3
  159. package/dist/features/row-sorting/rowSortingFeature.js +1 -2
  160. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +54 -24
  161. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +19 -22
  162. package/dist/features/row-sorting/rowSortingFeature.utils.js +36 -25
  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 +25 -0
  172. package/dist/helpers/metaHelper.js +28 -0
  173. package/dist/helpers/tableFeatures.d.ts +35 -8
  174. package/dist/helpers/tableFeatures.js +33 -5
  175. package/dist/helpers/tableOptions.d.ts +1 -3
  176. package/dist/helpers/tableOptions.js +1 -2
  177. package/dist/index.d.ts +34 -27
  178. package/dist/index.js +10 -5
  179. package/dist/reactivity.d.ts +2 -1
  180. package/dist/reactivity.js +2 -1
  181. package/dist/static-functions.d.ts +11 -8
  182. package/dist/static-functions.js +11 -8
  183. package/dist/store-reactivity-bindings.d.ts +2 -4
  184. package/dist/store-reactivity-bindings.js +4 -5
  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 +39 -21
  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 +388 -24
  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 +32 -26
  199. package/dist/utils.js +52 -32
  200. package/dist/worker/createTableWorker.d.ts +100 -0
  201. package/dist/worker/createTableWorker.js +185 -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 +141 -0
  213. package/skills/api-not-found/SKILL.md +113 -0
  214. package/skills/cell-selection/SKILL.md +204 -0
  215. package/skills/cell-spanning/SKILL.md +162 -0
  216. package/skills/client-vs-server/SKILL.md +164 -0
  217. package/skills/column-faceting/SKILL.md +97 -0
  218. package/skills/column-filtering/SKILL.md +87 -0
  219. package/skills/column-ordering/SKILL.md +75 -0
  220. package/skills/column-pinning/SKILL.md +89 -0
  221. package/skills/column-resizing/SKILL.md +91 -0
  222. package/skills/column-sizing/SKILL.md +72 -0
  223. package/skills/column-visibility/SKILL.md +75 -0
  224. package/skills/core/SKILL.md +175 -0
  225. package/skills/custom-features/SKILL.md +235 -0
  226. package/skills/expanding/SKILL.md +80 -0
  227. package/skills/global-filtering/SKILL.md +84 -0
  228. package/skills/grouping/SKILL.md +51 -401
  229. package/skills/migrate-v8-to-v9/SKILL.md +275 -416
  230. package/skills/pagination/SKILL.md +37 -344
  231. package/skills/row-pinning/SKILL.md +47 -234
  232. package/skills/row-selection/SKILL.md +75 -302
  233. package/skills/sorting/SKILL.md +45 -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 -118
  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 -186
  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 -514
  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/tableFeatures.cjs +0 -20
  519. package/dist/helpers/tableFeatures.cjs.map +0 -1
  520. package/dist/helpers/tableFeatures.d.cts +0 -18
  521. package/dist/helpers/tableFeatures.js.map +0 -1
  522. package/dist/helpers/tableOptions.cjs +0 -15
  523. package/dist/helpers/tableOptions.cjs.map +0 -1
  524. package/dist/helpers/tableOptions.d.cts +0 -57
  525. package/dist/helpers/tableOptions.js.map +0 -1
  526. package/dist/index.cjs +0 -133
  527. package/dist/index.d.cts +0 -78
  528. package/dist/reactivity.cjs +0 -4
  529. package/dist/reactivity.d.cts +0 -3
  530. package/dist/static-functions.cjs +0 -263
  531. package/dist/static-functions.d.cts +0 -21
  532. package/dist/store-reactivity-bindings.cjs +0 -44
  533. package/dist/store-reactivity-bindings.cjs.map +0 -1
  534. package/dist/store-reactivity-bindings.d.cts +0 -22
  535. package/dist/store-reactivity-bindings.js.map +0 -1
  536. package/dist/types/Cell.d.cts +0 -14
  537. package/dist/types/Column.d.cts +0 -36
  538. package/dist/types/ColumnDef.d.cts +0 -109
  539. package/dist/types/Header.d.cts +0 -16
  540. package/dist/types/HeaderGroup.d.cts +0 -10
  541. package/dist/types/Row.d.cts +0 -26
  542. package/dist/types/RowModel.d.cts +0 -36
  543. package/dist/types/RowModelFns.d.cts +0 -18
  544. package/dist/types/Table.d.cts +0 -70
  545. package/dist/types/TableFeatures.d.cts +0 -53
  546. package/dist/types/TableOptions.d.cts +0 -69
  547. package/dist/types/TableState.d.cts +0 -48
  548. package/dist/types/type-utils.d.cts +0 -23
  549. package/dist/utils.cjs +0 -243
  550. package/dist/utils.cjs.map +0 -1
  551. package/dist/utils.d.cts +0 -114
  552. package/dist/utils.js.map +0 -1
  553. package/skills/column-definitions/SKILL.md +0 -333
  554. package/skills/column-layout/SKILL.md +0 -328
  555. package/skills/column-layout/references/subsystems.md +0 -220
  556. package/skills/customizing-feature-behavior/SKILL.md +0 -416
  557. package/skills/filtering/SKILL.md +0 -357
  558. package/skills/filtering/references/faceting-and-fuzzy.md +0 -191
  559. package/skills/row-expanding/SKILL.md +0 -348
  560. package/skills/setup/SKILL.md +0 -400
  561. package/skills/state-management/SKILL.md +0 -388
  562. package/src/core/cells/constructCell.ts +0 -55
  563. package/src/core/cells/coreCellsFeature.ts +0 -27
  564. package/src/core/cells/coreCellsFeature.types.ts +0 -68
  565. package/src/core/cells/coreCellsFeature.utils.ts +0 -68
  566. package/src/core/columns/constructColumn.ts +0 -119
  567. package/src/core/columns/coreColumnsFeature.ts +0 -73
  568. package/src/core/columns/coreColumnsFeature.types.ts +0 -108
  569. package/src/core/columns/coreColumnsFeature.utils.ts +0 -275
  570. package/src/core/coreFeatures.ts +0 -31
  571. package/src/core/headers/buildHeaderGroups.ts +0 -182
  572. package/src/core/headers/constructHeader.ts +0 -67
  573. package/src/core/headers/coreHeadersFeature.ts +0 -56
  574. package/src/core/headers/coreHeadersFeature.types.ts +0 -125
  575. package/src/core/headers/coreHeadersFeature.utils.ts +0 -200
  576. package/src/core/reactivity/coreReactivityFeature.types.ts +0 -56
  577. package/src/core/reactivity/coreReactivityFeature.utils.ts +0 -44
  578. package/src/core/row-models/coreRowModelsFeature.ts +0 -62
  579. package/src/core/row-models/coreRowModelsFeature.types.ts +0 -64
  580. package/src/core/row-models/coreRowModelsFeature.utils.ts +0 -272
  581. package/src/core/row-models/createCoreRowModel.ts +0 -93
  582. package/src/core/rows/constructRow.ts +0 -66
  583. package/src/core/rows/coreRowsFeature.ts +0 -62
  584. package/src/core/rows/coreRowsFeature.types.ts +0 -117
  585. package/src/core/rows/coreRowsFeature.utils.ts +0 -264
  586. package/src/core/table/constructTable.ts +0 -172
  587. package/src/core/table/coreTablesFeature.ts +0 -19
  588. package/src/core/table/coreTablesFeature.types.ts +0 -216
  589. package/src/core/table/coreTablesFeature.utils.ts +0 -131
  590. package/src/features/column-faceting/columnFacetingFeature.ts +0 -89
  591. package/src/features/column-faceting/columnFacetingFeature.types.ts +0 -109
  592. package/src/features/column-faceting/columnFacetingFeature.utils.ts +0 -145
  593. package/src/features/column-faceting/createFacetedMinMaxValues.ts +0 -66
  594. package/src/features/column-faceting/createFacetedRowModel.ts +0 -85
  595. package/src/features/column-faceting/createFacetedUniqueValues.ts +0 -66
  596. package/src/features/column-filtering/columnFilteringFeature.ts +0 -86
  597. package/src/features/column-filtering/columnFilteringFeature.types.ts +0 -232
  598. package/src/features/column-filtering/columnFilteringFeature.utils.ts +0 -331
  599. package/src/features/column-filtering/createFilteredRowModel.ts +0 -183
  600. package/src/features/column-filtering/filterRowsUtils.ts +0 -157
  601. package/src/features/column-grouping/columnGroupingFeature.ts +0 -115
  602. package/src/features/column-grouping/columnGroupingFeature.types.ts +0 -226
  603. package/src/features/column-grouping/columnGroupingFeature.utils.ts +0 -354
  604. package/src/features/column-grouping/createGroupedRowModel.ts +0 -220
  605. package/src/features/column-ordering/columnOrderingFeature.ts +0 -73
  606. package/src/features/column-ordering/columnOrderingFeature.types.ts +0 -60
  607. package/src/features/column-ordering/columnOrderingFeature.utils.ts +0 -241
  608. package/src/features/column-pinning/columnPinningFeature.ts +0 -316
  609. package/src/features/column-pinning/columnPinningFeature.types.ts +0 -192
  610. package/src/features/column-pinning/columnPinningFeature.utils.ts +0 -908
  611. package/src/features/column-resizing/columnResizingFeature.ts +0 -65
  612. package/src/features/column-resizing/columnResizingFeature.types.ts +0 -89
  613. package/src/features/column-resizing/columnResizingFeature.utils.ts +0 -364
  614. package/src/features/column-sizing/columnSizingFeature.ts +0 -145
  615. package/src/features/column-sizing/columnSizingFeature.types.ts +0 -102
  616. package/src/features/column-sizing/columnSizingFeature.utils.ts +0 -381
  617. package/src/features/column-visibility/columnVisibilityFeature.ts +0 -122
  618. package/src/features/column-visibility/columnVisibilityFeature.types.ts +0 -112
  619. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +0 -384
  620. package/src/features/global-filtering/globalFilteringFeature.ts +0 -65
  621. package/src/features/global-filtering/globalFilteringFeature.types.ts +0 -91
  622. package/src/features/global-filtering/globalFilteringFeature.utils.ts +0 -118
  623. package/src/features/row-expanding/createExpandedRowModel.ts +0 -82
  624. package/src/features/row-expanding/rowExpandingFeature.ts +0 -94
  625. package/src/features/row-expanding/rowExpandingFeature.types.ts +0 -147
  626. package/src/features/row-expanding/rowExpandingFeature.utils.ts +0 -374
  627. package/src/features/row-pagination/createPaginatedRowModel.ts +0 -83
  628. package/src/features/row-pagination/rowPaginationFeature.ts +0 -95
  629. package/src/features/row-pagination/rowPaginationFeature.types.ts +0 -152
  630. package/src/features/row-pagination/rowPaginationFeature.utils.ts +0 -400
  631. package/src/features/row-pinning/rowPinningFeature.ts +0 -97
  632. package/src/features/row-pinning/rowPinningFeature.types.ts +0 -95
  633. package/src/features/row-pinning/rowPinningFeature.utils.ts +0 -323
  634. package/src/features/row-selection/rowSelectionFeature.ts +0 -140
  635. package/src/features/row-selection/rowSelectionFeature.types.ts +0 -151
  636. package/src/features/row-selection/rowSelectionFeature.utils.ts +0 -745
  637. package/src/features/row-sorting/createSortedRowModel.ts +0 -157
  638. package/src/features/row-sorting/rowSortingFeature.ts +0 -103
  639. package/src/features/row-sorting/rowSortingFeature.types.ts +0 -235
  640. package/src/features/row-sorting/rowSortingFeature.utils.ts +0 -489
  641. package/src/features/stockFeatures.ts +0 -53
  642. package/src/flex-render.ts +0 -70
  643. package/src/fns/aggregationFns.ts +0 -245
  644. package/src/fns/filterFns.ts +0 -382
  645. package/src/fns/sortFns.ts +0 -240
  646. package/src/helpers/columnHelper.ts +0 -122
  647. package/src/helpers/tableFeatures.ts +0 -24
  648. package/src/helpers/tableOptions.ts +0 -117
  649. package/src/index.ts +0 -138
  650. package/src/process-env.d.ts +0 -6
  651. package/src/reactivity.ts +0 -2
  652. package/src/static-functions.ts +0 -31
  653. package/src/store-reactivity-bindings.ts +0 -47
  654. package/src/types/Cell.ts +0 -21
  655. package/src/types/Column.ts +0 -51
  656. package/src/types/ColumnDef.ts +0 -228
  657. package/src/types/Header.ts +0 -23
  658. package/src/types/HeaderGroup.ts +0 -13
  659. package/src/types/Row.ts +0 -34
  660. package/src/types/RowModel.ts +0 -98
  661. package/src/types/RowModelFns.ts +0 -32
  662. package/src/types/Table.ts +0 -91
  663. package/src/types/TableFeatures.ts +0 -101
  664. package/src/types/TableOptions.ts +0 -101
  665. package/src/types/TableState.ts +0 -47
  666. package/src/types/type-utils.ts +0 -84
  667. package/src/utils.ts +0 -441
@@ -1,333 +0,0 @@
1
- ---
2
- name: column-definitions
3
- description: >
4
- Define TanStack Table v9 columns with `createColumnHelper<typeof features, TData>()`.
5
- Covers `columnHelper.accessor` (key + function forms), `columnHelper.display`,
6
- `columnHelper.group`, `columnHelper.columns`, the `ColumnDef`/`AccessorKeyColumnDef`/
7
- `AccessorFnColumnDef`/`DisplayColumnDef`/`GroupColumnDef` types, `accessorKey` with
8
- `DeepKeys`, `accessorFn`, the `header`/`cell`/`footer`/`aggregatedCell` renderers,
9
- required `id` rules, and `getRowId` for stable row identity.
10
- type: core
11
- library: tanstack-table
12
- library_version: '9.0.0-alpha.48'
13
- sources:
14
- - TanStack/table:docs/guide/column-defs.md
15
- - TanStack/table:docs/guide/columns.md
16
- - TanStack/table:packages/table-core/src/helpers/columnHelper.ts
17
- - TanStack/table:packages/table-core/src/core/columns/constructColumn.ts
18
- - TanStack/table:examples/react/basic-use-table/src/main.tsx
19
- ---
20
-
21
- ## Setup
22
-
23
- `createColumnHelper` takes TWO generics in v9: the features type (so accessor keys, sort/filter strings, etc. are typed against your registered features) and the row data type.
24
-
25
- ```ts
26
- import {
27
- createColumnHelper,
28
- tableFeatures,
29
- rowSortingFeature,
30
- } from '@tanstack/table-core'
31
-
32
- type Person = {
33
- id: string
34
- firstName: string
35
- lastName: string
36
- age: number
37
- visits: number
38
- }
39
-
40
- const features = tableFeatures({ rowSortingFeature })
41
-
42
- // TFeatures FIRST, TData SECOND
43
- const columnHelper = createColumnHelper<typeof features, Person>()
44
-
45
- const columns = columnHelper.columns([
46
- // accessorKey — deep keys via DeepKeys (dot paths) are supported
47
- columnHelper.accessor('firstName', { header: 'First Name' }),
48
- columnHelper.accessor('lastName', { header: 'Last Name' }),
49
- columnHelper.accessor('age', { header: 'Age' }),
50
-
51
- // accessorFn — needs an explicit `id`
52
- columnHelper.accessor((row) => `${row.firstName} ${row.lastName}`, {
53
- id: 'fullName',
54
- header: 'Full Name',
55
- cell: (info) => info.getValue(),
56
- }),
57
-
58
- // display column — no value extraction, just rendering
59
- columnHelper.display({
60
- id: 'actions',
61
- header: 'Actions',
62
- cell: ({ row }) => `Edit ${row.original.id}`,
63
- }),
64
-
65
- // group column — wraps child columns under a shared header
66
- columnHelper.group({
67
- id: 'stats',
68
- header: 'Stats',
69
- columns: [columnHelper.accessor('visits', { header: 'Visits' })],
70
- }),
71
- ])
72
- ```
73
-
74
- ## Core Patterns
75
-
76
- ### Stable row identity with `getRowId`
77
-
78
- ```ts
79
- const table = useTable({
80
- features,
81
- rowModels: {},
82
- columns,
83
- data,
84
- getRowId: (row) => row.id, // ← stable from row's own data
85
- })
86
- ```
87
-
88
- Without `getRowId`, `row.id` defaults to the row's array index. Row-keyed state (selection, expansion, pinning) then attaches to whatever happens to be at that index after a sort/filter/refetch.
89
-
90
- ### Accessor key with deep path
91
-
92
- ```ts
93
- type User = { name: { first: string; last: string } }
94
-
95
- const columnHelper = createColumnHelper<typeof features, User>()
96
-
97
- columnHelper.accessor('name.first', { header: 'First' })
98
- columnHelper.accessor('name.last', { header: 'Last' })
99
- ```
100
-
101
- For nested objects with non-optional intermediate keys, the dotted `accessorKey` form works and infers the right value type. Switch to `accessorFn` when intermediates are optional (see Common Mistakes below).
102
-
103
- ### Header / cell / footer renderers
104
-
105
- ```ts
106
- columnHelper.accessor('age', {
107
- header: () => 'Age',
108
- cell: (info) => info.getValue(),
109
- footer: (info) => `${info.table.getRowModel().rows.length} rows`,
110
- })
111
- ```
112
-
113
- Renderers accept string, JSX (in framework adapters), or function forms. Render via `flexRender(def, ctx)` or `<table.FlexRender header={header} />` so all three forms work uniformly.
114
-
115
- ### `columnHelper.columns([...])` for module-scope stability
116
-
117
- ```ts
118
- // Outside any component / hook — stable reference forever
119
- const columns = columnHelper.columns([
120
- columnHelper.accessor('firstName', { header: 'First' }),
121
- columnHelper.accessor('lastName', { header: 'Last' }),
122
- ])
123
- ```
124
-
125
- `columnHelper.columns` returns the array as-is but preserves the precise tuple types. Hoist to module scope or wrap in `useMemo` — the table compares `columns` by reference.
126
-
127
- ## Common Mistakes
128
-
129
- ### [CRITICAL] Passing only `TData` to `createColumnHelper`
130
-
131
- Wrong:
132
-
133
- ```ts
134
- // v8 signature — TData ends up in the TFeatures slot
135
- const columnHelper = createColumnHelper<Person>()
136
- ```
137
-
138
- Correct:
139
-
140
- ```ts
141
- const features = tableFeatures({ rowSortingFeature })
142
- const columnHelper = createColumnHelper<typeof features, Person>()
143
- ```
144
-
145
- v9 changed the generic order: `<TFeatures, TData>`. The compiler error is noisy because `Person` lands in the `TFeatures` slot and breaks every column type that follows.
146
-
147
- Source: packages/table-core/src/helpers/columnHelper.ts; docs/framework/react/guide/migrating.md
148
-
149
- ### [HIGH] Accessor function returns an object or array
150
-
151
- Wrong:
152
-
153
- ```ts
154
- // returns an object — built-in alphanumeric sort and includesString filter break
155
- columnHelper.accessor((row) => row.name, {
156
- id: 'name',
157
- cell: (info) => `${info.getValue().first} ${info.getValue().last}`,
158
- })
159
- ```
160
-
161
- Correct:
162
-
163
- ```ts
164
- // accessor returns a primitive; cell can still format it
165
- columnHelper.accessor((row) => `${row.name.first} ${row.name.last}`, {
166
- id: 'fullName',
167
- cell: (info) => info.getValue(),
168
- })
169
- ```
170
-
171
- The accessed value drives sorting, filtering, faceting, and grouping. Built-in `sortFn`/`filterFn`/`aggregationFn` expect a primitive `string` / `number` / `Date`. Return a primitive — or supply a matching custom function.
172
-
173
- Source: docs/guide/column-defs.md
174
-
175
- ### [CRITICAL] Omitting `id` on an `accessorFn` column
176
-
177
- Wrong:
178
-
179
- ```tsx
180
- // accessorFn + JSX header => no id can be derived
181
- columnHelper.accessor((row) => row.lastName, {
182
- header: () => <span>Last Name</span>,
183
- cell: (info) => info.getValue(),
184
- })
185
- ```
186
-
187
- Correct:
188
-
189
- ```tsx
190
- columnHelper.accessor((row) => row.lastName, {
191
- id: 'lastName', // required when there's no string accessorKey or string header
192
- header: () => <span>Last Name</span>,
193
- cell: (info) => info.getValue(),
194
- })
195
- ```
196
-
197
- The constructor throws "coreColumnsFeature require an id when using an accessorFn" in development. The same applies to non-string `header` values without a fallback `id`.
198
-
199
- Source: packages/table-core/src/core/columns/constructColumn.ts
200
-
201
- ### [CRITICAL] Defining `columns` inside the component without `useMemo`
202
-
203
- Wrong:
204
-
205
- ```tsx
206
- function MyTable() {
207
- // new array reference every render → infinite render loop
208
- const columns = [
209
- columnHelper.accessor('firstName', { header: 'First' }),
210
- columnHelper.accessor('lastName', { header: 'Last' }),
211
- ]
212
- const table = useTable({ features, rowModels: {}, columns, data })
213
- }
214
- ```
215
-
216
- Correct:
217
-
218
- ```tsx
219
- function MyTable() {
220
- const columns = React.useMemo(
221
- () =>
222
- columnHelper.columns([
223
- columnHelper.accessor('firstName', { header: 'First' }),
224
- columnHelper.accessor('lastName', { header: 'Last' }),
225
- ]),
226
- [],
227
- )
228
- const table = useTable({ features, rowModels: {}, columns, data })
229
- }
230
- ```
231
-
232
- TanStack Table compares `columns` and `data` by reference. The #1 FAQ entry across versions.
233
-
234
- Source: docs/faq.md; examples/react/basic-subscribe/src/main.tsx
235
-
236
- ### [HIGH] Using array-index row IDs with mutating data
237
-
238
- Wrong:
239
-
240
- ```ts
241
- // no getRowId — rowSelection survives data updates but maps to wrong rows
242
- const table = useTable({
243
- features,
244
- rowModels: {},
245
- columns,
246
- data,
247
- enableRowSelection: true,
248
- })
249
- ```
250
-
251
- Correct:
252
-
253
- ```ts
254
- const table = useTable({
255
- features,
256
- rowModels: {},
257
- columns,
258
- data,
259
- getRowId: (row) => row.id,
260
- enableRowSelection: true,
261
- })
262
- ```
263
-
264
- When `data` reorders, filters, or items are removed/refetched, row-keyed state (selection, expansion, pinning) attaches to the wrong row.
265
-
266
- Source: docs/guide/rows.md; packages/table-core/src/core/rows/coreRowsFeature.utils.ts
267
-
268
- ### [MEDIUM] `accessorKey` with optional path strips `undefined` from `getValue` type
269
-
270
- Wrong:
271
-
272
- ```ts
273
- // amount inferred as `number` even though salary is optional
274
- columnHelper.accessor('user.salary.amount', {
275
- cell: (info) => {
276
- const amount = info.getValue() // type: number (WRONG)
277
- return amount.toFixed(2) // crashes when salary is undefined
278
- },
279
- })
280
- ```
281
-
282
- Correct:
283
-
284
- ```ts
285
- columnHelper.accessor((row) => row.user.salary?.amount, {
286
- id: 'salary',
287
- cell: (info) => {
288
- const amount = info.getValue() // type: number | undefined
289
- return amount?.toFixed(2) ?? '-'
290
- },
291
- })
292
- ```
293
-
294
- The `DeepValue` type doesn't propagate `undefined` through optional intermediates. Use `accessorFn` when any segment is optional — the type follows the expression.
295
-
296
- Source: https://github.com/TanStack/table/issues/6238
297
-
298
- ### [MEDIUM] `columnHelper.accessor` nested inside `columnHelper.group` loses `getValue` inference
299
-
300
- Wrong:
301
-
302
- ```ts
303
- // info.getValue() inferred as unknown
304
- columnHelper.group({
305
- id: 'name',
306
- columns: [
307
- columnHelper.accessor('firstName', {
308
- cell: (info) => info.getValue(), // unknown
309
- }),
310
- ],
311
- })
312
- ```
313
-
314
- Correct:
315
-
316
- ```ts
317
- // Hoist accessor definitions out of the group
318
- const firstNameCol = columnHelper.accessor('firstName', {
319
- cell: (info) => info.getValue(), // string
320
- })
321
-
322
- columnHelper.group({ id: 'name', columns: [firstNameCol] })
323
- ```
324
-
325
- The group helper's overloads don't thread `TData` through correctly when accessors are defined inline.
326
-
327
- Source: https://github.com/TanStack/table/issues/5860
328
-
329
- ## See also
330
-
331
- - `tanstack-table/setup` — how `features` and `rowModels` thread through `useTable`
332
- - `tanstack-table/customizing-feature-behavior` — per-column `sortFn`/`filterFn`/`aggregationFn`
333
- - `tanstack-table/row-selection` — why `getRowId` is essentially mandatory
@@ -1,328 +0,0 @@
1
- ---
2
- name: column-layout
3
- description: >
4
- The five UI-state-only column features in TanStack Table v9 that shape how
5
- columns render — visibility, ordering, pinning, sizing, resizing. None
6
- require a row model. Covers `columnVisibilityFeature` (getVisibleLeafColumns,
7
- row.getVisibleCells), `columnOrderingFeature` (columnOrder string[], column.getIndex),
8
- `columnPinningFeature` (left/right ColumnPinningState, column.pin, column.getStart /
9
- getAfter, split-table getLeft*/getCenter*/getRight* APIs, sticky-CSS pattern;
10
- `enableColumnPinning` table-level option distinct from per-column `enablePinning`),
11
- `columnSizingFeature` (defaultColumnSizing, column.getSize, table.getTotalSize),
12
- `columnResizingFeature` (columnResizeMode 'onEnd'/'onChange', columnResizeDirection
13
- 'ltr'/'rtl', header.getResizeHandler for mouse + touch, CSS-variable
14
- performant resize pattern). Pipeline: Column Pinning → columnOrder → Grouping.
15
- type: core
16
- library: tanstack-table
17
- library_version: '9.0.0-alpha.48'
18
- requires:
19
- - state-management
20
- sources:
21
- - TanStack/table:docs/guide/column-visibility.md
22
- - TanStack/table:docs/guide/column-ordering.md
23
- - TanStack/table:docs/guide/column-pinning.md
24
- - TanStack/table:docs/guide/column-sizing.md
25
- - TanStack/table:docs/guide/column-resizing.md
26
- - TanStack/table:examples/react/column-visibility/src/main.tsx
27
- - TanStack/table:examples/react/column-resizing/src/main.tsx
28
- - TanStack/table:examples/react/column-resizing-performant/src/main.tsx
29
- - TanStack/table:examples/react/column-pinning-split/src/main.tsx
30
- - TanStack/table:examples/react/column-pinning-sticky/src/main.tsx
31
- - TanStack/table:examples/react/column-dnd/src/main.tsx
32
- ---
33
-
34
- This skill builds on `tanstack-table/state-management`. Read it first for the atom model — these are UI-state-only features (no row model).
35
-
36
- ## Setup
37
-
38
- All five features are opt-in via `tableFeatures({...})`. The reorder pipeline is fixed: **(1) Column Pinning splits into left/center/right → (2) `columnOrder` reorders the center → (3) Grouping (`groupedColumnMode: 'reorder' | 'remove'`) may move grouped columns to the front.**
39
-
40
- ```ts
41
- import {
42
- tableFeatures,
43
- columnVisibilityFeature,
44
- columnOrderingFeature,
45
- columnPinningFeature,
46
- columnSizingFeature,
47
- columnResizingFeature,
48
- constructTable,
49
- } from '@tanstack/table-core'
50
-
51
- const features = tableFeatures({
52
- columnVisibilityFeature,
53
- columnOrderingFeature,
54
- columnPinningFeature,
55
- columnSizingFeature,
56
- columnResizingFeature, // explicit — formerly part of v8 ColumnSizing
57
- })
58
-
59
- const table = constructTable({
60
- features,
61
- rowModels: {}, // no row model needed for these features
62
- columns,
63
- data,
64
- initialState: {
65
- columnVisibility: {},
66
- columnOrder: [],
67
- columnPinning: { left: [], right: [] },
68
- columnSizing: {},
69
- },
70
- })
71
- ```
72
-
73
- ## Subsystems
74
-
75
- | Feature | State slice | Key APIs |
76
- | ------------------------- | ---------------------- | ---------------------------------------------------- |
77
- | `columnVisibilityFeature` | `columnVisibility` | `column.toggleVisibility()`, `row.getVisibleCells()` |
78
- | `columnOrderingFeature` | `columnOrder` | `table.setColumnOrder()`, `column.getIndex()` |
79
- | `columnPinningFeature` | `columnPinning` (l/r) | `column.pin()`, `column.getStart()`, `getAfter()` |
80
- | `columnSizingFeature` | `columnSizing` | `column.getSize()`, `table.getTotalSize()` |
81
- | `columnResizingFeature` | (transient drag state) | `header.getResizeHandler()`, `columnResizeMode` |
82
-
83
- Full API surface, render strategies, and additional MEDIUM-priority failure modes (reorder-pinned-via-columnOrder, react-dnd/react-beautiful-dnd avoidance, touch-resize handler) in [subsystems.md](references/subsystems.md).
84
-
85
- ## Core Patterns
86
-
87
- ### Performant `'onChange'` resize (React)
88
-
89
- ```tsx
90
- // From examples/react/column-resizing-performant/src/main.tsx
91
- const columnSizeVars = React.useMemo(() => {
92
- const headers = table.getFlatHeaders()
93
- const colSizes: { [key: string]: number } = {}
94
- for (const header of headers) {
95
- colSizes[`--header-${header.id}-size`] = header.getSize()
96
- colSizes[`--col-${header.column.id}-size`] = header.column.getSize()
97
- }
98
- return colSizes
99
- }, [table.state.columnResizing, table.state.columnSizing])
100
-
101
- <div className="divTable" style={{ ...columnSizeVars, width: table.getTotalSize() }}>
102
- {table.store.state.columnResizing.isResizingColumn
103
- ? <MemoizedTableBody table={table} />
104
- : <TableBody table={table} />}
105
- </div>
106
-
107
- // Body cells use the CSS variable (no per-cell getSize() call)
108
- <div className="td" style={{ width: `calc(var(--col-${cell.column.id}-size) * 1px)` }}>
109
- {cell.renderValue()}
110
- </div>
111
-
112
- export const MemoizedTableBody = React.memo(
113
- TableBody,
114
- (prev, next) => prev.table.options.data === next.table.options.data,
115
- )
116
- ```
117
-
118
- ## Common Mistakes
119
-
120
- ### [HIGH] Rendering body cells with `row.getAllCells()` while visibility is registered
121
-
122
- Wrong:
123
-
124
- ```tsx
125
- // Toggling visibility has no effect on rendered cells
126
- {
127
- table.getAllLeafColumns().map((column) => <th key={column.id}>...</th>)
128
- }
129
- {
130
- row.getAllCells().map((cell) => (
131
- <td key={cell.id}>
132
- <table.FlexRender cell={cell} />
133
- </td>
134
- ))
135
- }
136
- ```
137
-
138
- Correct:
139
-
140
- ```tsx
141
- // Header groups already respect visibility; use them for headers.
142
- // For body cells, swap getAllCells → getVisibleCells.
143
- <thead>
144
- {table.getHeaderGroups().map((headerGroup) => (
145
- <tr key={headerGroup.id}>
146
- {headerGroup.headers.map((header) => (
147
- <th key={header.id} colSpan={header.colSpan}>
148
- {header.isPlaceholder ? null : <table.FlexRender header={header} />}
149
- </th>
150
- ))}
151
- </tr>
152
- ))}
153
- </thead>
154
- <tbody>
155
- {table.getRowModel().rows.map((row) => (
156
- <tr key={row.id}>
157
- {row.getVisibleCells().map((cell) => (
158
- <td key={cell.id}><table.FlexRender cell={cell} /></td>
159
- ))}
160
- </tr>
161
- ))}
162
- </tbody>
163
- ```
164
-
165
- The `getAll*` accessors do NOT consult `columnVisibility` state. Only `Visible` variants and header-group APIs filter by visibility.
166
-
167
- Source: docs/guide/column-visibility.md; examples/react/column-visibility/src/main.tsx
168
-
169
- ### [HIGH] `columnResizeMode: 'onChange'` + `column.getSize()` per cell + un-memoized body
170
-
171
- Wrong:
172
-
173
- ```tsx
174
- const table = useTable({
175
- features: tableFeatures({ columnSizingFeature, columnResizingFeature }),
176
- columnResizeMode: 'onChange',
177
- })
178
- <td style={{ width: cell.column.getSize() }}>{cell.renderValue()}</td>
179
- ```
180
-
181
- Correct:
182
-
183
- ```tsx
184
- // See "Performant 'onChange' resize" above — CSS variables + memoized body
185
- const columnSizeVars = React.useMemo(() => {
186
- /* … */
187
- }, [table.state.columnResizing, table.state.columnSizing])
188
-
189
- {
190
- table.store.state.columnResizing.isResizingColumn ? (
191
- <MemoizedTableBody table={table} />
192
- ) : (
193
- <TableBody table={table} />
194
- )
195
- }
196
-
197
- ;<div
198
- className="td"
199
- style={{ width: `calc(var(--col-${cell.column.id}-size) * 1px)` }}
200
- />
201
- ```
202
-
203
- `'onChange'` commits a new `columnSizing` map on every pointer move. Per-cell `getSize()` blows the 16ms frame budget. The CSS-variable pattern caches widths once per resize batch.
204
-
205
- Source: docs/guide/column-resizing.md; examples/react/column-resizing-performant/src/main.tsx
206
-
207
- ### [HIGH] Using v8 `enablePinning` at the table level
208
-
209
- Wrong:
210
-
211
- ```ts
212
- // v8 syntax — no longer disables pinning at table level in v9
213
- const table = useTable({
214
- features: tableFeatures({ columnPinningFeature }),
215
- enablePinning: false, // ignored
216
- })
217
- ```
218
-
219
- Correct:
220
-
221
- ```ts
222
- // v9 split: two distinct table-level options
223
- const table = useTable({
224
- features: tableFeatures({ columnPinningFeature, rowPinningFeature }),
225
- enableColumnPinning: false,
226
- enableRowPinning: false,
227
- })
228
-
229
- // Per-column opt-out is still spelled `enablePinning`:
230
- columnHelper.accessor('id', {
231
- enablePinning: false, // this column can't be pinned
232
- })
233
- ```
234
-
235
- v9 split `enablePinning` into `enableColumnPinning` and `enableRowPinning`. The bare name now refers ONLY to per-column opt-out.
236
-
237
- Source: packages/table-core/src/features/column-pinning/columnPinningFeature.types.ts
238
-
239
- ### [HIGH] Defining `columns` inline (infinite loop once a layout feature commits state)
240
-
241
- Wrong:
242
-
243
- ```tsx
244
- function App() {
245
- const columns = [
246
- columnHelper.accessor('firstName', {
247
- /* … */
248
- }),
249
- columnHelper.accessor('lastName', {
250
- /* … */
251
- }),
252
- ]
253
- const table = useTable({
254
- features: tableFeatures({ columnPinningFeature, columnResizingFeature }),
255
- columns,
256
- data,
257
- })
258
- }
259
- ```
260
-
261
- Correct:
262
-
263
- ```tsx
264
- const defaultColumns = columnHelper.columns([
265
- columnHelper.accessor('firstName', {
266
- /* … */
267
- }),
268
- columnHelper.accessor('lastName', {
269
- /* … */
270
- }),
271
- ])
272
- function App() {
273
- const [columns] = React.useState(() => [...defaultColumns])
274
- const table = useTable({ features, columns, data })
275
- }
276
-
277
- // or: useMemo
278
- const columns = React.useMemo(
279
- () =>
280
- columnHelper.columns([
281
- /* … */
282
- ]),
283
- [],
284
- )
285
- ```
286
-
287
- Layout features commit state on every interaction. An inline `columns` array gets a new identity each render → table rebuild → another render. FAQ Pitfall 1.
288
-
289
- Source: docs/faq.md; examples/react/column-pinning-split/src/main.tsx; examples/react/column-dnd/src/main.tsx
290
-
291
- ### [CRITICAL] Reimplementing visibility / pinning / resize logic manually
292
-
293
- Wrong:
294
-
295
- ```ts
296
- // Hand-rolled hide/show with a separate set
297
- const [hidden, setHidden] = useState(new Set<string>())
298
- const visibleColumns = useMemo(
299
- () => columns.filter((c) => !hidden.has(c.id)),
300
- [columns, hidden],
301
- )
302
- ```
303
-
304
- Correct:
305
-
306
- ```ts
307
- const table = useTable({
308
- features: tableFeatures({ columnVisibilityFeature }),
309
- rowModels: {},
310
- columns,
311
- data,
312
- })
313
- column.toggleVisibility()
314
- column.getIsVisible()
315
- table.getVisibleLeafColumns()
316
- ```
317
-
318
- Source: maintainer interview (Phase 4, 2026-05-17)
319
-
320
- ## See also
321
-
322
- - `tanstack-table/state-management` — `state.columnVisibility` / `columnOrder` / `columnPinning` / `columnSizing` slices
323
- - `tanstack-table/row-pinning` — analogous pinning for rows (different render pipeline)
324
- - `tanstack-table/grouping` — `groupedColumnMode` interacts with `columnOrder`
325
-
326
- ## References
327
-
328
- - [subsystems.md](references/subsystems.md) — full API surface per UI-state subsystem (visibility, ordering, pinning, sizing, resizing) plus MEDIUM-priority failure modes: reorder-pinned-via-`columnOrder`, react-dnd / react-beautiful-dnd avoidance, touch-resize handler