@tanstack/table-core 9.0.0-beta.1 → 9.0.0-beta.11

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 (454) hide show
  1. package/dist/core/cells/constructCell.d.cts +1 -1
  2. package/dist/core/cells/constructCell.d.ts +1 -1
  3. package/dist/core/cells/coreCellsFeature.cjs +11 -20
  4. package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
  5. package/dist/core/cells/coreCellsFeature.d.cts +4 -12
  6. package/dist/core/cells/coreCellsFeature.d.ts +4 -12
  7. package/dist/core/cells/coreCellsFeature.js +12 -20
  8. package/dist/core/cells/coreCellsFeature.js.map +1 -1
  9. package/dist/core/cells/coreCellsFeature.types.d.cts +4 -4
  10. package/dist/core/cells/coreCellsFeature.types.d.ts +4 -4
  11. package/dist/core/cells/coreCellsFeature.utils.d.cts +1 -1
  12. package/dist/core/cells/coreCellsFeature.utils.d.ts +1 -1
  13. package/dist/core/columns/constructColumn.d.cts +1 -1
  14. package/dist/core/columns/constructColumn.d.ts +1 -1
  15. package/dist/core/columns/coreColumnsFeature.cjs +59 -68
  16. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  17. package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
  18. package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
  19. package/dist/core/columns/coreColumnsFeature.js +60 -68
  20. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  21. package/dist/core/columns/coreColumnsFeature.types.d.cts +5 -5
  22. package/dist/core/columns/coreColumnsFeature.types.d.ts +5 -5
  23. package/dist/core/columns/coreColumnsFeature.utils.d.cts +1 -1
  24. package/dist/core/columns/coreColumnsFeature.utils.d.ts +1 -1
  25. package/dist/core/coreFeatures.cjs.map +1 -1
  26. package/dist/core/coreFeatures.d.cts +1 -1
  27. package/dist/core/coreFeatures.d.ts +1 -1
  28. package/dist/core/coreFeatures.js.map +1 -1
  29. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  30. package/dist/core/headers/buildHeaderGroups.d.cts +1 -1
  31. package/dist/core/headers/buildHeaderGroups.d.ts +1 -1
  32. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  33. package/dist/core/headers/constructHeader.d.cts +1 -1
  34. package/dist/core/headers/constructHeader.d.ts +1 -1
  35. package/dist/core/headers/coreHeadersFeature.cjs +44 -53
  36. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  37. package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
  38. package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
  39. package/dist/core/headers/coreHeadersFeature.js +45 -53
  40. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  41. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
  42. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
  43. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  44. package/dist/core/headers/coreHeadersFeature.utils.d.cts +1 -1
  45. package/dist/core/headers/coreHeadersFeature.utils.d.ts +1 -1
  46. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  47. package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
  48. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  49. package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
  50. package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
  51. package/dist/core/row-models/coreRowModelsFeature.js +18 -26
  52. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  53. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +5 -15
  54. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +5 -15
  55. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +13 -13
  56. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  57. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +2 -2
  58. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +2 -2
  59. package/dist/core/row-models/coreRowModelsFeature.utils.js +13 -13
  60. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  61. package/dist/core/row-models/createCoreRowModel.cjs +1 -2
  62. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  63. package/dist/core/row-models/createCoreRowModel.d.cts +2 -2
  64. package/dist/core/row-models/createCoreRowModel.d.ts +2 -2
  65. package/dist/core/row-models/createCoreRowModel.js +1 -2
  66. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  67. package/dist/core/rows/constructRow.d.cts +1 -1
  68. package/dist/core/rows/constructRow.d.ts +1 -1
  69. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  70. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  71. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  72. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  73. package/dist/core/rows/coreRowsFeature.js +28 -36
  74. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  75. package/dist/core/rows/coreRowsFeature.types.d.cts +5 -5
  76. package/dist/core/rows/coreRowsFeature.types.d.ts +5 -5
  77. package/dist/core/rows/coreRowsFeature.utils.d.cts +1 -1
  78. package/dist/core/rows/coreRowsFeature.utils.d.ts +1 -1
  79. package/dist/core/table/constructTable.cjs +21 -6
  80. package/dist/core/table/constructTable.cjs.map +1 -1
  81. package/dist/core/table/constructTable.d.cts +1 -1
  82. package/dist/core/table/constructTable.d.ts +1 -1
  83. package/dist/core/table/constructTable.js +21 -6
  84. package/dist/core/table/constructTable.js.map +1 -1
  85. package/dist/core/table/coreTablesFeature.cjs +7 -16
  86. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  87. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  88. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  89. package/dist/core/table/coreTablesFeature.js +8 -16
  90. package/dist/core/table/coreTablesFeature.js.map +1 -1
  91. package/dist/core/table/coreTablesFeature.types.d.cts +27 -15
  92. package/dist/core/table/coreTablesFeature.types.d.ts +27 -15
  93. package/dist/core/table/coreTablesFeature.utils.cjs +1 -2
  94. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  95. package/dist/core/table/coreTablesFeature.utils.d.cts +1 -1
  96. package/dist/core/table/coreTablesFeature.utils.d.ts +1 -1
  97. package/dist/core/table/coreTablesFeature.utils.js +1 -2
  98. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  99. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  100. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  101. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  102. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  103. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  104. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  105. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +8 -29
  106. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +8 -29
  107. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
  108. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  109. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +1 -1
  110. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +1 -1
  111. package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
  112. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  113. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  114. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  115. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  116. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  117. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  118. package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
  119. package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
  120. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  121. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  122. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  123. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  124. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  125. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  126. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  127. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  128. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  129. package/dist/features/column-filtering/columnFilteringFeature.js +41 -53
  130. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  131. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +40 -26
  132. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +40 -26
  133. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
  134. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  135. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +2 -2
  136. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +2 -2
  137. package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
  138. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  139. package/dist/features/column-filtering/createFilteredRowModel.cjs +4 -2
  140. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  141. package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
  142. package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
  143. package/dist/features/column-filtering/createFilteredRowModel.js +4 -2
  144. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  145. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  146. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  147. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  148. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  149. package/dist/features/column-grouping/columnGroupingFeature.js +58 -69
  150. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  151. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +23 -19
  152. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +23 -19
  153. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +1 -1
  154. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +1 -1
  155. package/dist/features/column-grouping/createGroupedRowModel.cjs +5 -2
  156. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  157. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
  158. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
  159. package/dist/features/column-grouping/createGroupedRowModel.js +5 -2
  160. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  161. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  162. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  163. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  164. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  165. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  166. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  167. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +1 -1
  168. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +1 -1
  169. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +1 -1
  170. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +1 -1
  171. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  172. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  173. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  174. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  175. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  176. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  177. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +2 -2
  178. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +2 -2
  179. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  180. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +13 -13
  181. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +13 -13
  182. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  183. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  184. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  185. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  186. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  187. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  188. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  189. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +1 -1
  190. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +1 -1
  191. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  192. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  193. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  194. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  195. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  196. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  197. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +4 -4
  198. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +4 -4
  199. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  200. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  201. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  202. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  203. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  204. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  205. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +2 -2
  206. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +2 -2
  207. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +1 -1
  208. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +1 -1
  209. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  210. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  211. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  212. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  213. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  214. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  215. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +3 -3
  216. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +3 -3
  217. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  218. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +7 -5
  219. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +7 -5
  220. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  221. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  222. package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
  223. package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
  224. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  225. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  226. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  227. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  228. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  229. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  230. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  231. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +5 -14
  232. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +5 -14
  233. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +1 -1
  234. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +1 -1
  235. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  236. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
  237. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
  238. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  239. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  240. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  241. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  242. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  243. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  244. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  245. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +4 -13
  246. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +4 -13
  247. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +1 -1
  248. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +1 -1
  249. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  250. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  251. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  252. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  253. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  254. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  255. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
  256. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
  257. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +1 -1
  258. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +1 -1
  259. package/dist/features/row-selection/rowSelectionFeature.cjs +65 -77
  260. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  261. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  262. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  263. package/dist/features/row-selection/rowSelectionFeature.js +66 -77
  264. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  265. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +2 -2
  266. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +2 -2
  267. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +10 -6
  268. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  269. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +1 -1
  270. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +1 -1
  271. package/dist/features/row-selection/rowSelectionFeature.utils.js +10 -6
  272. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  273. package/dist/features/row-sorting/createSortedRowModel.cjs +4 -2
  274. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  275. package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
  276. package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
  277. package/dist/features/row-sorting/createSortedRowModel.js +4 -2
  278. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  279. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  280. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  281. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  282. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  283. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  284. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  285. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +23 -20
  286. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +23 -20
  287. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
  288. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  289. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +1 -1
  290. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +1 -1
  291. package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
  292. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  293. package/dist/fns/aggregationFns.cjs +18 -18
  294. package/dist/fns/aggregationFns.cjs.map +1 -1
  295. package/dist/fns/aggregationFns.d.cts +21 -19
  296. package/dist/fns/aggregationFns.d.ts +21 -19
  297. package/dist/fns/aggregationFns.js +18 -18
  298. package/dist/fns/aggregationFns.js.map +1 -1
  299. package/dist/fns/filterFns.cjs +51 -65
  300. package/dist/fns/filterFns.cjs.map +1 -1
  301. package/dist/fns/filterFns.d.cts +82 -28
  302. package/dist/fns/filterFns.d.ts +82 -28
  303. package/dist/fns/filterFns.js +51 -65
  304. package/dist/fns/filterFns.js.map +1 -1
  305. package/dist/fns/sortFns.cjs +18 -6
  306. package/dist/fns/sortFns.cjs.map +1 -1
  307. package/dist/fns/sortFns.d.cts +15 -13
  308. package/dist/fns/sortFns.d.ts +15 -13
  309. package/dist/fns/sortFns.js +18 -6
  310. package/dist/fns/sortFns.js.map +1 -1
  311. package/dist/helpers/metaHelper.cjs +30 -0
  312. package/dist/helpers/metaHelper.cjs.map +1 -0
  313. package/dist/helpers/metaHelper.d.cts +26 -0
  314. package/dist/helpers/metaHelper.d.ts +26 -0
  315. package/dist/helpers/metaHelper.js +29 -0
  316. package/dist/helpers/metaHelper.js.map +1 -0
  317. package/dist/helpers/tableFeatures.cjs +31 -3
  318. package/dist/helpers/tableFeatures.cjs.map +1 -1
  319. package/dist/helpers/tableFeatures.d.cts +33 -5
  320. package/dist/helpers/tableFeatures.d.ts +33 -5
  321. package/dist/helpers/tableFeatures.js +31 -3
  322. package/dist/helpers/tableFeatures.js.map +1 -1
  323. package/dist/index.cjs +2 -20
  324. package/dist/index.d.cts +44 -43
  325. package/dist/index.d.ts +44 -43
  326. package/dist/index.js +22 -21
  327. package/dist/store-reactivity-bindings.cjs +1 -1
  328. package/dist/store-reactivity-bindings.cjs.map +1 -1
  329. package/dist/store-reactivity-bindings.d.cts +1 -1
  330. package/dist/store-reactivity-bindings.d.ts +1 -1
  331. package/dist/store-reactivity-bindings.js +1 -1
  332. package/dist/store-reactivity-bindings.js.map +1 -1
  333. package/dist/types/Cell.d.cts +8 -10
  334. package/dist/types/Cell.d.ts +8 -10
  335. package/dist/types/Column.d.cts +19 -12
  336. package/dist/types/Column.d.ts +19 -12
  337. package/dist/types/ColumnDef.d.cts +30 -11
  338. package/dist/types/ColumnDef.d.ts +30 -11
  339. package/dist/types/Header.d.cts +10 -11
  340. package/dist/types/Header.d.ts +10 -11
  341. package/dist/types/HeaderGroup.d.cts +4 -9
  342. package/dist/types/HeaderGroup.d.ts +4 -9
  343. package/dist/types/Row.d.cts +15 -11
  344. package/dist/types/Row.d.ts +15 -11
  345. package/dist/types/RowModel.d.cts +19 -19
  346. package/dist/types/RowModel.d.ts +19 -19
  347. package/dist/types/RowModelFns.d.cts +9 -9
  348. package/dist/types/RowModelFns.d.ts +9 -9
  349. package/dist/types/Table.d.cts +52 -24
  350. package/dist/types/Table.d.ts +52 -24
  351. package/dist/types/TableFeatures.d.cts +178 -41
  352. package/dist/types/TableFeatures.d.ts +178 -41
  353. package/dist/types/TableOptions.d.cts +31 -10
  354. package/dist/types/TableOptions.d.ts +31 -10
  355. package/dist/types/TableState.d.cts +22 -13
  356. package/dist/types/TableState.d.ts +22 -13
  357. package/dist/utils.cjs.map +1 -1
  358. package/dist/utils.d.cts +8 -3
  359. package/dist/utils.d.ts +8 -3
  360. package/dist/utils.js.map +1 -1
  361. package/package.json +1 -1
  362. package/skills/column-definitions/SKILL.md +3 -6
  363. package/skills/column-layout/SKILL.md +0 -2
  364. package/skills/customizing-feature-behavior/SKILL.md +63 -56
  365. package/skills/filtering/SKILL.md +60 -42
  366. package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
  367. package/skills/grouping/SKILL.md +49 -54
  368. package/skills/migrate-v8-to-v9/SKILL.md +30 -33
  369. package/skills/pagination/SKILL.md +22 -20
  370. package/skills/row-expanding/SKILL.md +33 -25
  371. package/skills/row-pinning/SKILL.md +11 -7
  372. package/skills/row-selection/SKILL.md +0 -3
  373. package/skills/setup/SKILL.md +55 -65
  374. package/skills/sorting/SKILL.md +21 -21
  375. package/skills/state-management/SKILL.md +40 -25
  376. package/src/core/cells/coreCellsFeature.ts +17 -39
  377. package/src/core/cells/coreCellsFeature.types.ts +6 -6
  378. package/src/core/columns/coreColumnsFeature.ts +56 -83
  379. package/src/core/columns/coreColumnsFeature.types.ts +8 -8
  380. package/src/core/coreFeatures.ts +1 -1
  381. package/src/core/headers/buildHeaderGroups.ts +1 -1
  382. package/src/core/headers/coreHeadersFeature.ts +42 -64
  383. package/src/core/headers/coreHeadersFeature.types.ts +10 -10
  384. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  385. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  386. package/src/core/row-models/coreRowModelsFeature.types.ts +7 -24
  387. package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
  388. package/src/core/row-models/createCoreRowModel.ts +5 -4
  389. package/src/core/rows/coreRowsFeature.ts +45 -72
  390. package/src/core/rows/coreRowsFeature.types.ts +8 -8
  391. package/src/core/table/constructTable.ts +50 -13
  392. package/src/core/table/coreTablesFeature.ts +13 -35
  393. package/src/core/table/coreTablesFeature.types.ts +40 -17
  394. package/src/core/table/coreTablesFeature.utils.ts +10 -5
  395. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  396. package/src/features/column-faceting/columnFacetingFeature.types.ts +11 -44
  397. package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
  398. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  399. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  400. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  401. package/src/features/column-filtering/columnFilteringFeature.ts +60 -103
  402. package/src/features/column-filtering/columnFilteringFeature.types.ts +55 -39
  403. package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
  404. package/src/features/column-filtering/createFilteredRowModel.ts +5 -7
  405. package/src/features/column-grouping/columnGroupingFeature.ts +82 -126
  406. package/src/features/column-grouping/columnGroupingFeature.types.ts +32 -31
  407. package/src/features/column-grouping/createGroupedRowModel.ts +7 -11
  408. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  409. package/src/features/column-ordering/columnOrderingFeature.types.ts +2 -2
  410. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  411. package/src/features/column-pinning/columnPinningFeature.types.ts +4 -4
  412. package/src/features/column-pinning/columnPinningFeature.utils.ts +5 -5
  413. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  414. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  415. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  416. package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
  417. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  418. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
  419. package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -2
  420. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  421. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  422. package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -22
  423. package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
  424. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  425. package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -20
  426. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  427. package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
  428. package/src/features/row-selection/rowSelectionFeature.ts +103 -135
  429. package/src/features/row-selection/rowSelectionFeature.types.ts +4 -4
  430. package/src/features/row-selection/rowSelectionFeature.utils.ts +12 -7
  431. package/src/features/row-sorting/createSortedRowModel.ts +6 -6
  432. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  433. package/src/features/row-sorting/rowSortingFeature.types.ts +33 -32
  434. package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
  435. package/src/fns/aggregationFns.ts +26 -42
  436. package/src/fns/filterFns.ts +231 -264
  437. package/src/fns/sortFns.ts +51 -29
  438. package/src/helpers/metaHelper.ts +24 -0
  439. package/src/helpers/tableFeatures.ts +36 -5
  440. package/src/index.ts +1 -0
  441. package/src/store-reactivity-bindings.ts +1 -1
  442. package/src/types/Cell.ts +10 -30
  443. package/src/types/Column.ts +21 -56
  444. package/src/types/ColumnDef.ts +48 -49
  445. package/src/types/Header.ts +10 -32
  446. package/src/types/HeaderGroup.ts +4 -15
  447. package/src/types/Row.ts +18 -39
  448. package/src/types/RowModel.ts +24 -114
  449. package/src/types/RowModelFns.ts +12 -31
  450. package/src/types/Table.ts +85 -80
  451. package/src/types/TableFeatures.ts +253 -108
  452. package/src/types/TableOptions.ts +70 -60
  453. package/src/types/TableState.ts +20 -73
  454. package/src/utils.ts +16 -6
@@ -6,145 +6,290 @@ import type { Table_Internal } from './Table'
6
6
  import type { TableOptions_All } from './TableOptions'
7
7
  import type { TableState_All } from './TableState'
8
8
  import type { StockFeatures } from '../features/stockFeatures'
9
+ import type { RowModel } from '../core/row-models/coreRowModelsFeature.types'
10
+ import type { FilterFn } from '../features/column-filtering/columnFilteringFeature.types'
11
+ import type { SortFn } from '../features/row-sorting/rowSortingFeature.types'
12
+ import type { AggregationFn } from '../features/column-grouping/columnGroupingFeature.types'
9
13
 
10
- export type ExtractFeatureTypes<
11
- TKey extends keyof FeatureConstructors,
12
- TFeatures extends TableFeatures,
13
- > = UnionToIntersection<
14
- {
15
- [K in keyof TFeatures]: K extends 'coreReativityFeature'
16
- ? never
17
- : TFeatures[K] extends TableFeature<infer FeatureConstructorOptions>
18
- ? TKey extends keyof FeatureConstructorOptions
19
- ? FeatureConstructorOptions[TKey]
20
- : never
21
- : any
22
- }[keyof TFeatures]
23
- >
24
-
25
- export interface FeatureConstructors {
26
- CachedRowModel?: any
27
- Cell?: any
28
- Column?: any
29
- ColumnDef?: any
30
- CreateRowModels?: any
31
- Header?: any
32
- HeaderGroup?: any
33
- Row?: any
34
- RowModelFns?: any
35
- Table?: any
36
- TableOptions?: any
37
- TableState?: any
38
- }
39
-
40
- export interface Plugins {}
41
-
42
- export interface TableFeatures
43
- extends Partial<CoreFeatures>, Partial<StockFeatures>, Partial<Plugins> {}
44
-
45
- export type ConstructTableAPIs<TConstructors extends FeatureConstructors> = <
46
- TFeatures extends TableFeatures,
47
- TData extends RowData,
48
- >(
49
- table: Table_Internal<TFeatures, TData> &
50
- Partial<TConstructors['Table']> & {
51
- options: Partial<TConstructors['TableOptions']>
52
- },
53
- ) => void
14
+ export type IsAny<T> = 0 extends 1 & T ? true : false
15
+ type UnionToIntersectionOrEmpty<T> = [T] extends [never]
16
+ ? {}
17
+ : UnionToIntersection<T> & {}
54
18
 
55
- export type GetDefaultColumnDef<TConstructors extends FeatureConstructors> = <
19
+ export type ExtractFeatureMapTypes<
56
20
  TFeatures extends TableFeatures,
57
- TData extends RowData,
58
- TValue extends CellData = CellData,
59
- >() => ColumnDefBase_All<TFeatures, TData, TValue> &
60
- Partial<TConstructors['ColumnDef']>
61
-
62
- export type GetDefaultTableOptions<TConstructors extends FeatureConstructors> =
63
- <TFeatures extends TableFeatures, TData extends RowData>(
64
- table: Table_Internal<TFeatures, TData> & Partial<TConstructors['Table']>,
65
- ) => Partial<TableOptions_All<TFeatures, TData>> &
66
- Partial<TConstructors['TableOptions']>
21
+ TFeatureMap extends object,
22
+ > =
23
+ IsAny<TFeatures> extends true
24
+ ? UnionToIntersection<TFeatureMap[keyof TFeatureMap]>
25
+ : UnionToIntersectionOrEmpty<
26
+ TFeatureMap[Extract<keyof TFeatures, keyof TFeatureMap>]
27
+ >
67
28
 
68
- export type GetInitialState<TConstructors extends FeatureConstructors> = (
69
- initialState: Partial<TableState_All> & Partial<TConstructors['TableState']>,
70
- ) => TableState_All & Partial<TConstructors['TableState']>
71
-
72
- export type GetDefaultStateSelector<TConstructors extends FeatureConstructors> =
73
- (
74
- state: TableState_All,
75
- ) => Partial<TableState_All> & Partial<TConstructors['TableState']>
76
-
77
- export type AssignCellPrototype<TConstructors extends FeatureConstructors> = <
78
- TFeatures extends TableFeatures,
79
- TData extends RowData,
80
- >(
81
- prototype: Record<string, any>,
82
- table: Table_Internal<TFeatures, TData>,
83
- ) => void
29
+ /**
30
+ * This is an interface that you can delcaration-merge into to allow for custom plugins to be added to the table.
31
+ */
32
+ export interface Plugins {}
84
33
 
85
- export type AssignColumnPrototype<TConstructors extends FeatureConstructors> = <
86
- TFeatures extends TableFeatures,
87
- TData extends RowData,
88
- >(
89
- prototype: Record<string, any>,
90
- table: Table_Internal<TFeatures, TData>,
91
- ) => void
34
+ /**
35
+ * Keys of the `features` option that are not table features themselves.
36
+ *
37
+ * These slots carry per-table types (`tableMeta`, `columnMeta`), row model
38
+ * factories, and row model function registries. They are stripped from the
39
+ * table's registered `_features` at runtime and excluded from feature-derived
40
+ * options such as the generated `debug*` keys.
41
+ */
42
+ export type NonFeatureKeys =
43
+ | 'aggregationFns'
44
+ | 'columnMeta'
45
+ | 'coreRowModel'
46
+ | 'expandedRowModel'
47
+ | 'facetedMinMaxValues'
48
+ | 'facetedRowModel'
49
+ | 'facetedUniqueValues'
50
+ | 'filterFns'
51
+ | 'filterMeta'
52
+ | 'filteredRowModel'
53
+ | 'groupedRowModel'
54
+ | 'paginatedRowModel'
55
+ | 'sortFns'
56
+ | 'sortedRowModel'
57
+ | 'tableMeta'
92
58
 
93
- export type AssignHeaderPrototype<TConstructors extends FeatureConstructors> = <
94
- TFeatures extends TableFeatures,
95
- TData extends RowData,
96
- >(
97
- prototype: Record<string, any>,
98
- table: Table_Internal<TFeatures, TData>,
99
- ) => void
59
+ /**
60
+ * Maps each row model and fn registry slot to the feature(s) that must be
61
+ * registered alongside it in the same features object.
62
+ *
63
+ * Custom features can declaration-merge their own slot prerequisites into this
64
+ * interface to get the same validation from `tableFeatures()`.
65
+ */
66
+ export interface FeatureSlotPrereqs {
67
+ aggregationFns: 'columnGroupingFeature'
68
+ columnResizingFeature: 'columnSizingFeature' // columnSizingFeature is required for columnResizingFeature
69
+ expandedRowModel: 'rowExpandingFeature'
70
+ facetedMinMaxValues: 'columnFacetingFeature'
71
+ facetedRowModel: 'columnFacetingFeature'
72
+ facetedUniqueValues: 'columnFacetingFeature'
73
+ filteredRowModel: 'columnFilteringFeature'
74
+ filterFns: 'columnFilteringFeature'
75
+ filterMeta: 'columnFilteringFeature'
76
+ globalFilteringFeature: 'columnFilteringFeature' // columnFilteringFeature is required for globalFilteringFeature
77
+ groupedRowModel: 'columnGroupingFeature'
78
+ paginatedRowModel: 'rowPaginationFeature'
79
+ sortedRowModel: 'rowSortingFeature'
80
+ sortFns: 'rowSortingFeature'
81
+ }
100
82
 
101
- export type AssignRowPrototype<TConstructors extends FeatureConstructors> = <
102
- TFeatures extends TableFeatures,
103
- TData extends RowData,
104
- >(
105
- prototype: Record<string, any>,
106
- table: Table_Internal<TFeatures, TData>,
107
- ) => void
83
+ /**
84
+ * Validates that every row model and fn registry slot in a features object is
85
+ * accompanied by its prerequisite feature.
86
+ *
87
+ * Slots whose prerequisite is missing have their type replaced with a literal
88
+ * error message, so the offending property fails to type-check with a message
89
+ * naming the feature that needs to be added.
90
+ */
91
+ export type ValidateFeatureSlots<TFeatures extends TableFeatures> =
92
+ IsAny<TFeatures> extends true
93
+ ? {}
94
+ : {
95
+ [K in keyof TFeatures as K extends keyof FeatureSlotPrereqs
96
+ ? K
97
+ : never]: K extends keyof FeatureSlotPrereqs
98
+ ? [Extract<FeatureSlotPrereqs[K], keyof TFeatures>] extends [never]
99
+ ? `Error: '${K & string}' requires '${FeatureSlotPrereqs[K] &
100
+ string}' to be included in this table's features.`
101
+ : TFeatures[K]
102
+ : never
103
+ }
108
104
 
109
- export type InitRowInstanceData<TConstructors extends FeatureConstructors> = <
110
- TFeatures extends TableFeatures,
111
- TData extends RowData,
112
- >(
113
- row: Row<TFeatures, TData> & Partial<TConstructors['Row']>,
114
- ) => void
105
+ export interface TableFeatures
106
+ extends Partial<CoreFeatures>, Partial<StockFeatures>, Partial<Plugins> {
107
+ /**
108
+ * Registry of aggregation functions available to this table by name.
109
+ *
110
+ * Keys registered here become the valid string values for `aggregationFn` on
111
+ * column definitions, with full inference. Spread the exported
112
+ * `aggregationFns` to register the built-in aggregation functions:
113
+ * `aggregationFns: { ...aggregationFns, myCustomAggregationFn }`.
114
+ */
115
+ aggregationFns?: Record<string, AggregationFn<any, any>>
116
+ /**
117
+ * Type-only slot for declaring the type of `columnDef.meta` for all columns
118
+ * of this table.
119
+ *
120
+ * Pass a phantom value: `columnMeta: {} as MyColumnMeta`. The value itself is
121
+ * ignored and stripped from the table's registered features at runtime — only
122
+ * its type is used, inferred wherever `TFeatures` flows.
123
+ *
124
+ * When omitted, the global declaration-merged `ColumnMeta` interface applies.
125
+ */
126
+ columnMeta?: object
127
+ /**
128
+ * Factory for the table's core (unmodified) row model. Defaults to the
129
+ * built-in `createCoreRowModel()` when omitted.
130
+ */
131
+ coreRowModel?: (table: any) => () => RowModel<any, any>
132
+ /**
133
+ * Factory for the client-side expanded row model. Pass the exported
134
+ * `createExpandedRowModel()` or implement your own. Not needed for
135
+ * server-side expansion.
136
+ */
137
+ expandedRowModel?: (table: any) => () => RowModel<any, any>
138
+ /**
139
+ * Factory for per-column faceted min/max values. Pass the exported
140
+ * `createFacetedMinMaxValues()` or implement your own. Not needed for
141
+ * server-side faceting.
142
+ */
143
+ facetedMinMaxValues?: (
144
+ table: any,
145
+ columnId: string,
146
+ ) => () => [number, number] | undefined
147
+ /**
148
+ * Factory for the per-column faceted row model. Pass the exported
149
+ * `createFacetedRowModel()` or implement your own. Not needed for
150
+ * server-side faceting.
151
+ */
152
+ facetedRowModel?: (table: any, columnId: string) => () => RowModel<any, any>
153
+ /**
154
+ * Factory for per-column faceted unique values. Pass the exported
155
+ * `createFacetedUniqueValues()` or implement your own. Not needed for
156
+ * server-side faceting.
157
+ */
158
+ facetedUniqueValues?: (table: any, columnId: string) => () => Map<any, number>
159
+ /**
160
+ * Factory for the client-side filtered row model. Pass the exported
161
+ * `createFilteredRowModel()` or implement your own. Not needed for
162
+ * server-side filtering.
163
+ */
164
+ filteredRowModel?: (table: any) => () => RowModel<any, any>
165
+ /**
166
+ * Registry of filter functions available to this table by name.
167
+ *
168
+ * Keys registered here become the valid string values for `filterFn` on
169
+ * column definitions and the `globalFilterFn` option, with full inference.
170
+ * Spread the exported `filterFns` to register the built-in filter functions:
171
+ * `filterFns: { ...filterFns, myCustomFilterFn }`.
172
+ */
173
+ filterFns?: Record<string, FilterFn<any, any>>
174
+ /**
175
+ * Type-only slot for declaring the type of the filter meta that filter
176
+ * functions attach to rows via `addMeta` and that is read back from
177
+ * `row.columnFiltersMeta`.
178
+ *
179
+ * Pass a phantom value: `filterMeta: {} as MyFilterMeta` (or
180
+ * `metaHelper<MyFilterMeta>()`). The value itself is ignored and stripped
181
+ * from the table's registered features at runtime; only its type is used.
182
+ *
183
+ * When omitted, the global declaration-merged `FilterMeta` interface applies.
184
+ */
185
+ filterMeta?: object
186
+ /**
187
+ * Factory for the client-side grouped row model. Pass the exported
188
+ * `createGroupedRowModel()` or implement your own. Not needed for
189
+ * server-side grouping.
190
+ */
191
+ groupedRowModel?: (table: any) => () => RowModel<any, any>
192
+ /**
193
+ * Factory for the client-side paginated row model. Pass the exported
194
+ * `createPaginatedRowModel()` or implement your own. Not needed for
195
+ * server-side pagination.
196
+ */
197
+ paginatedRowModel?: (table: any) => () => RowModel<any, any>
198
+ /**
199
+ * Factory for the client-side sorted row model. Pass the exported
200
+ * `createSortedRowModel()` or implement your own. Not needed for
201
+ * server-side sorting.
202
+ */
203
+ sortedRowModel?: (table: any) => () => RowModel<any, any>
204
+ /**
205
+ * Registry of sorting functions available to this table by name.
206
+ *
207
+ * Keys registered here become the valid string values for `sortFn` on column
208
+ * definitions, with full inference. Spread the exported `sortFns` to register
209
+ * the built-in sorting functions: `sortFns: { ...sortFns, myCustomSortFn }`.
210
+ */
211
+ sortFns?: Record<string, SortFn<any, any>>
212
+ /**
213
+ * Type-only slot for declaring the type of this table's `options.meta`.
214
+ *
215
+ * Pass a phantom value: `tableMeta: {} as MyTableMeta`. The value itself is
216
+ * ignored and stripped from the table's registered features at runtime — only
217
+ * its type is used, inferred wherever `TFeatures` flows.
218
+ *
219
+ * When omitted, the global declaration-merged `TableMeta` interface applies.
220
+ */
221
+ tableMeta?: object
222
+ }
115
223
 
116
- export interface TableFeature<TConstructors extends FeatureConstructors> {
224
+ export interface TableFeature {
117
225
  /**
118
226
  * Assigns Cell APIs to the cell prototype for memory-efficient method sharing.
119
227
  * This is called once per table to build a shared prototype for all cells.
120
228
  */
121
- assignCellPrototype?: AssignCellPrototype<TConstructors>
229
+ assignCellPrototype?: <
230
+ TFeatures extends TableFeatures,
231
+ TData extends RowData,
232
+ >(
233
+ prototype: Record<string, any>,
234
+ table: Table_Internal<TFeatures, TData>,
235
+ ) => void
122
236
  /**
123
237
  * Assigns Column APIs to the column prototype for memory-efficient method sharing.
124
238
  * This is called once per table to build a shared prototype for all columns.
125
239
  */
126
- assignColumnPrototype?: AssignColumnPrototype<TConstructors>
240
+ assignColumnPrototype?: <
241
+ TFeatures extends TableFeatures,
242
+ TData extends RowData,
243
+ >(
244
+ prototype: Record<string, any>,
245
+ table: Table_Internal<TFeatures, TData>,
246
+ ) => void
127
247
  /**
128
248
  * Assigns Header APIs to the header prototype for memory-efficient method sharing.
129
249
  * This is called once per table to build a shared prototype for all headers.
130
250
  */
131
- assignHeaderPrototype?: AssignHeaderPrototype<TConstructors>
251
+ assignHeaderPrototype?: <
252
+ TFeatures extends TableFeatures,
253
+ TData extends RowData,
254
+ >(
255
+ prototype: Record<string, any>,
256
+ table: Table_Internal<TFeatures, TData>,
257
+ ) => void
132
258
  /**
133
259
  * Assigns Row APIs to the row prototype for memory-efficient method sharing.
134
260
  * This is called once per table to build a shared prototype for all rows.
135
261
  */
136
- assignRowPrototype?: AssignRowPrototype<TConstructors>
262
+ assignRowPrototype?: <TFeatures extends TableFeatures, TData extends RowData>(
263
+ prototype: Record<string, any>,
264
+ table: Table_Internal<TFeatures, TData>,
265
+ ) => void
137
266
  /**
138
267
  * Assigns Table APIs to the table instance.
139
268
  * Unlike row/cell/column/header, the table is a singleton so methods are assigned directly.
140
269
  */
141
- constructTableAPIs?: ConstructTableAPIs<TConstructors>
142
- getDefaultColumnDef?: GetDefaultColumnDef<TConstructors>
143
- getDefaultTableOptions?: GetDefaultTableOptions<TConstructors>
144
- getInitialState?: GetInitialState<TConstructors>
270
+ constructTableAPIs?: <TFeatures extends TableFeatures, TData extends RowData>(
271
+ table: Table_Internal<TFeatures, TData>,
272
+ ) => void
273
+ getDefaultColumnDef?: <
274
+ TFeatures extends TableFeatures,
275
+ TData extends RowData,
276
+ TValue extends CellData = CellData,
277
+ >() => ColumnDefBase_All<TFeatures, TData, TValue>
278
+ getDefaultTableOptions?: <
279
+ TFeatures extends TableFeatures,
280
+ TData extends RowData,
281
+ >(
282
+ table: Table_Internal<TFeatures, TData>,
283
+ ) => Partial<TableOptions_All<TFeatures, TData>>
284
+ getInitialState?: (initialState: Partial<TableState_All>) => TableState_All
145
285
  /**
146
286
  * Initializes instance-specific data on each row (e.g., caches).
147
287
  * Methods should be assigned via assignRowPrototype instead.
148
288
  */
149
- initRowInstanceData?: InitRowInstanceData<TConstructors>
289
+ initRowInstanceData?: <
290
+ TFeatures extends TableFeatures,
291
+ TData extends RowData,
292
+ >(
293
+ row: Row<TFeatures, TData>,
294
+ ) => void
150
295
  }
@@ -17,20 +17,19 @@ import type { TableOptions_RowPinning } from '../features/row-pinning/rowPinning
17
17
  import type { TableOptions_RowSelection } from '../features/row-selection/rowSelectionFeature.types'
18
18
  import type { TableOptions_RowSorting } from '../features/row-sorting/rowSortingFeature.types'
19
19
  import type { RowData, UnionToIntersection } from './type-utils'
20
- import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
21
-
22
- export interface TableOptions_Plugins<
23
- TFeatures extends TableFeatures,
24
- TData extends RowData,
25
- > {}
20
+ import type {
21
+ ExtractFeatureMapTypes,
22
+ NonFeatureKeys,
23
+ TableFeatures,
24
+ } from './TableFeatures'
26
25
 
27
26
  /**
28
27
  * Core options that are always available on a table, before optional feature
29
28
  * options are mixed in.
30
29
  */
31
30
  export interface TableOptions_Core<
32
- TFeatures extends TableFeatures,
33
- TData extends RowData,
31
+ in out TFeatures extends TableFeatures,
32
+ in out TData extends RowData,
34
33
  >
35
34
  extends
36
35
  TableOptions_Table<TFeatures, TData>,
@@ -39,7 +38,10 @@ export interface TableOptions_Core<
39
38
  TableOptions_Rows<TFeatures, TData> {}
40
39
 
41
40
  type DebugKeysFor<TFeatures extends TableFeatures> = {
42
- [K in keyof TFeatures & string as `debug${Capitalize<K>}`]?: boolean
41
+ [K in Exclude<
42
+ keyof TFeatures & string,
43
+ NonFeatureKeys // meta, row model, and fn registry slots, not real features
44
+ > as `debug${Capitalize<K>}`]?: boolean
43
45
  }
44
46
 
45
47
  export type DebugOptions<TFeatures extends TableFeatures> = {
@@ -52,6 +54,62 @@ export type DebugOptions<TFeatures extends TableFeatures> = {
52
54
  debugTable?: boolean
53
55
  } & DebugKeysFor<CoreFeatures & TFeatures>
54
56
 
57
+ export interface TableOptions_FeatureMap<
58
+ in out TFeatures extends TableFeatures,
59
+ in out TData extends RowData,
60
+ > {
61
+ columnFilteringFeature: TableOptions_ColumnFiltering<TFeatures, TData>
62
+ columnGroupingFeature: TableOptions_ColumnGrouping
63
+ columnOrderingFeature: TableOptions_ColumnOrdering
64
+ columnPinningFeature: TableOptions_ColumnPinning
65
+ columnResizingFeature: TableOptions_ColumnResizing
66
+ columnSizingFeature: TableOptions_ColumnSizing
67
+ columnVisibilityFeature: TableOptions_ColumnVisibility
68
+ globalFilteringFeature: TableOptions_GlobalFiltering<TFeatures, TData>
69
+ rowExpandingFeature: TableOptions_RowExpanding<TFeatures, TData>
70
+ rowPaginationFeature: TableOptions_RowPagination
71
+ rowPinningFeature: TableOptions_RowPinning<TFeatures, TData>
72
+ rowSelectionFeature: TableOptions_RowSelection<TFeatures, TData>
73
+ rowSortingFeature: TableOptions_RowSorting
74
+ }
75
+
76
+ type TableOptions_StockFeatureKeys =
77
+ | 'columnFilteringFeature'
78
+ | 'columnGroupingFeature'
79
+ | 'columnOrderingFeature'
80
+ | 'columnPinningFeature'
81
+ | 'columnResizingFeature'
82
+ | 'columnSizingFeature'
83
+ | 'columnVisibilityFeature'
84
+ | 'globalFilteringFeature'
85
+ | 'rowExpandingFeature'
86
+ | 'rowPaginationFeature'
87
+ | 'rowPinningFeature'
88
+ | 'rowSelectionFeature'
89
+ | 'rowSortingFeature'
90
+
91
+ /**
92
+ * Plugin entries declaration-merged into `TableOptions_FeatureMap`, i.e. keys
93
+ * beyond the stock set. Resolves to `unknown` (an intersection no-op) when no
94
+ * plugins are merged so the common case skips the union-to-intersection work.
95
+ */
96
+ type TableOptions_PluginFeatureMapTypes<
97
+ TFeatures extends TableFeatures,
98
+ TData extends RowData,
99
+ > = [
100
+ Exclude<
101
+ keyof TableOptions_FeatureMap<TFeatures, TData>,
102
+ TableOptions_StockFeatureKeys
103
+ >,
104
+ ] extends [never]
105
+ ? unknown
106
+ : UnionToIntersection<
107
+ TableOptions_FeatureMap<TFeatures, TData>[Exclude<
108
+ keyof TableOptions_FeatureMap<TFeatures, TData>,
109
+ TableOptions_StockFeatureKeys
110
+ >]
111
+ >
112
+
55
113
  /**
56
114
  * Complete table options for a specific feature set.
57
115
  *
@@ -63,58 +121,9 @@ export type TableOptions<
63
121
  TFeatures extends TableFeatures,
64
122
  TData extends RowData,
65
123
  > = TableOptions_Core<TFeatures, TData> &
66
- UnionToIntersection<
67
- | ('columnFilteringFeature' extends keyof TFeatures
68
- ? TableOptions_ColumnFiltering<TFeatures, TData>
69
- : never)
70
- | ('columnGroupingFeature' extends keyof TFeatures
71
- ? TableOptions_ColumnGrouping
72
- : never)
73
- | ('columnOrderingFeature' extends keyof TFeatures
74
- ? TableOptions_ColumnOrdering
75
- : never)
76
- | ('columnPinningFeature' extends keyof TFeatures
77
- ? TableOptions_ColumnPinning
78
- : never)
79
- | ('columnResizingFeature' extends keyof TFeatures
80
- ? TableOptions_ColumnResizing
81
- : never)
82
- | ('columnSizingFeature' extends keyof TFeatures
83
- ? TableOptions_ColumnSizing
84
- : never)
85
- | ('columnVisibilityFeature' extends keyof TFeatures
86
- ? TableOptions_ColumnVisibility
87
- : never)
88
- | ('globalFilteringFeature' extends keyof TFeatures
89
- ? TableOptions_GlobalFiltering<TFeatures, TData>
90
- : never)
91
- | ('rowExpandingFeature' extends keyof TFeatures
92
- ? TableOptions_RowExpanding<TFeatures, TData>
93
- : never)
94
- | ('rowPaginationFeature' extends keyof TFeatures
95
- ? TableOptions_RowPagination
96
- : never)
97
- | ('rowPinningFeature' extends keyof TFeatures
98
- ? TableOptions_RowPinning<TFeatures, TData>
99
- : never)
100
- | ('rowSelectionFeature' extends keyof TFeatures
101
- ? TableOptions_RowSelection<TFeatures, TData>
102
- : never)
103
- | ('rowSortingFeature' extends keyof TFeatures
104
- ? TableOptions_RowSorting
105
- : never)
106
- > &
107
- ExtractFeatureTypes<'TableOptions', TFeatures> &
108
- TableOptions_Plugins<TFeatures, TData> &
124
+ ExtractFeatureMapTypes<TFeatures, TableOptions_FeatureMap<TFeatures, TData>> &
109
125
  DebugOptions<TFeatures>
110
126
 
111
- // export type TableOptions<
112
- // TFeatures extends TableFeatures,
113
- // TData extends RowData,
114
- // > = TableOptions_Core<TFeatures, TData> &
115
- // ExtractFeatureTypes<'TableOptions', TFeatures> &
116
- // TableOptions_Plugins<TFeatures, TData>
117
-
118
127
  /**
119
128
  * Internal broad option shape used where feature code may need to read options
120
129
  * from features that are not present in the current generic feature set.
@@ -136,5 +145,6 @@ export type TableOptions_All<
136
145
  TableOptions_RowPagination &
137
146
  TableOptions_RowPinning<TFeatures, TData> &
138
147
  TableOptions_RowSelection<TFeatures, TData> &
139
- TableOptions_RowSorting
148
+ TableOptions_RowSorting &
149
+ TableOptions_PluginFeatureMapTypes<TFeatures, TData>
140
150
  >
@@ -1,4 +1,3 @@
1
- import type { UnionToIntersection } from './type-utils'
2
1
  import type { TableState_ColumnFiltering } from '../features/column-filtering/columnFilteringFeature.types'
3
2
  import type { TableState_ColumnGrouping } from '../features/column-grouping/columnGroupingFeature.types'
4
3
  import type { TableState_ColumnOrdering } from '../features/column-ordering/columnOrderingFeature.types'
@@ -12,13 +11,23 @@ import type { TableState_RowPagination } from '../features/row-pagination/rowPag
12
11
  import type { TableState_RowPinning } from '../features/row-pinning/rowPinningFeature.types'
13
12
  import type { TableState_RowSelection } from '../features/row-selection/rowSelectionFeature.types'
14
13
  import type { TableState_RowSorting } from '../features/row-sorting/rowSortingFeature.types'
15
- import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
14
+ import type { ExtractFeatureMapTypes, TableFeatures } from './TableFeatures'
16
15
 
17
- /**
18
- * Use this interface as a target for declaration merging to add your own state properties.
19
- * Note: This will affect the types of all tables in your project.
20
- */
21
- export interface TableState_Plugins<TFeatures extends TableFeatures> {}
16
+ export interface TableState_FeatureMap {
17
+ columnFilteringFeature: TableState_ColumnFiltering
18
+ columnGroupingFeature: TableState_ColumnGrouping
19
+ columnOrderingFeature: TableState_ColumnOrdering
20
+ columnPinningFeature: TableState_ColumnPinning
21
+ columnResizingFeature: TableState_ColumnResizing
22
+ columnSizingFeature: TableState_ColumnSizing
23
+ columnVisibilityFeature: TableState_ColumnVisibility
24
+ globalFilteringFeature: TableState_GlobalFiltering
25
+ rowExpandingFeature: TableState_RowExpanding
26
+ rowPaginationFeature: TableState_RowPagination
27
+ rowPinningFeature: TableState_RowPinning
28
+ rowSelectionFeature: TableState_RowSelection
29
+ rowSortingFeature: TableState_RowSorting
30
+ }
22
31
 
23
32
  /**
24
33
  * Complete table state for a specific feature set.
@@ -26,75 +35,13 @@ export interface TableState_Plugins<TFeatures extends TableFeatures> {}
26
35
  * State slices are included only when their feature is present in `TFeatures`,
27
36
  * then custom feature/plugin state is mixed in.
28
37
  */
29
- export type TableState<TFeatures extends TableFeatures> = UnionToIntersection<
30
- | ('columnFilteringFeature' extends keyof TFeatures
31
- ? TableState_ColumnFiltering
32
- : never)
33
- | ('columnGroupingFeature' extends keyof TFeatures
34
- ? TableState_ColumnGrouping
35
- : never)
36
- | ('columnOrderingFeature' extends keyof TFeatures
37
- ? TableState_ColumnOrdering
38
- : never)
39
- | ('columnPinningFeature' extends keyof TFeatures
40
- ? TableState_ColumnPinning
41
- : never)
42
- | ('columnResizingFeature' extends keyof TFeatures
43
- ? TableState_ColumnResizing
44
- : never)
45
- | ('columnSizingFeature' extends keyof TFeatures
46
- ? TableState_ColumnSizing
47
- : never)
48
- | ('columnVisibilityFeature' extends keyof TFeatures
49
- ? TableState_ColumnVisibility
50
- : never)
51
- | ('globalFilteringFeature' extends keyof TFeatures
52
- ? TableState_GlobalFiltering
53
- : never)
54
- | ('rowExpandingFeature' extends keyof TFeatures
55
- ? TableState_RowExpanding
56
- : never)
57
- | ('rowPaginationFeature' extends keyof TFeatures
58
- ? TableState_RowPagination
59
- : never)
60
- | ('rowPinningFeature' extends keyof TFeatures
61
- ? TableState_RowPinning
62
- : never)
63
- | ('rowSelectionFeature' extends keyof TFeatures
64
- ? TableState_RowSelection
65
- : never)
66
- | ('rowSortingFeature' extends keyof TFeatures
67
- ? TableState_RowSorting
68
- : never)
69
- > &
70
- ExtractFeatureTypes<'TableState', TFeatures> &
71
- TableState_Plugins<TFeatures>
72
-
73
- // export type TableState<TFeatures extends TableFeatures> = ExtractFeatureTypes<
74
- // export type TableState<TFeatures extends TableFeatures> = ExtractFeatureTypes<
75
- // 'TableState',
76
- // TFeatures
77
- // > &
78
- // TableState_Plugins<TFeatures>
38
+ export type TableState<TFeatures extends TableFeatures> =
39
+ ExtractFeatureMapTypes<TFeatures, TableState_FeatureMap>
79
40
 
80
41
  /**
81
- * Internal broad state shape containing every stock feature state slice.
42
+ * Internal broad state shape containing every registered feature state slice.
82
43
  *
83
44
  * Feature internals use this when they may need to inspect optional slices owned
84
45
  * by other features.
85
46
  */
86
- export type TableState_All = Partial<
87
- TableState_ColumnFiltering &
88
- TableState_ColumnGrouping &
89
- TableState_ColumnOrdering &
90
- TableState_ColumnPinning &
91
- TableState_ColumnResizing &
92
- TableState_ColumnSizing &
93
- TableState_ColumnVisibility &
94
- TableState_GlobalFiltering &
95
- TableState_RowExpanding &
96
- TableState_RowPagination &
97
- TableState_RowPinning &
98
- TableState_RowSelection &
99
- TableState_RowSorting
100
- >
47
+ export type TableState_All = Partial<TableState<TableFeatures>>