diff --git a/_artifacts/domain_map.yaml b/_artifacts/domain_map.yaml index df735f8ed9..7b659bae50 100644 --- a/_artifacts/domain_map.yaml +++ b/_artifacts/domain_map.yaml @@ -1,6 +1,6 @@ library: name: '@tanstack/table' - version: '9.0.0-beta.48' + version: '9.0.0-beta.49' repository: 'https://github.com/TanStack/table' homepage: 'https://tanstack.com/table' description: 'Headless, framework-agnostic data-grid state and row-processing primitives with tree-shakeable v9 features and framework adapters.' diff --git a/_artifacts/skill_tree.yaml b/_artifacts/skill_tree.yaml index df30b1345f..a501870a18 100644 --- a/_artifacts/skill_tree.yaml +++ b/_artifacts/skill_tree.yaml @@ -1,6 +1,6 @@ library: name: '@tanstack/table' - version: '9.0.0-beta.48' + version: '9.0.0-beta.49' repository: 'https://github.com/TanStack/table' description: 'Headless data-grid state and row processing with tree-shakeable v9 features and framework adapters.' package_version_overrides: diff --git a/examples/alpine/aggregation/package.json b/examples/alpine/aggregation/package.json index 4bb1fca8e2..4c436e86b6 100644 --- a/examples/alpine/aggregation/package.json +++ b/examples/alpine/aggregation/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/basic-app-table/package.json b/examples/alpine/basic-app-table/package.json index 06411f92c0..e7f3fc1c49 100644 --- a/examples/alpine/basic-app-table/package.json +++ b/examples/alpine/basic-app-table/package.json @@ -11,7 +11,7 @@ "test:e2e": "PLAYWRIGHT_TEST_DIR=$PWD/tests/e2e playwright test --config ../../../playwright.config.ts" }, "dependencies": { - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/basic-create-table/package.json b/examples/alpine/basic-create-table/package.json index c727e5620f..4f5fcd4443 100644 --- a/examples/alpine/basic-create-table/package.json +++ b/examples/alpine/basic-create-table/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/basic-dynamic-columns/package.json b/examples/alpine/basic-dynamic-columns/package.json index e46c5e7539..67c8e08f6b 100644 --- a/examples/alpine/basic-dynamic-columns/package.json +++ b/examples/alpine/basic-dynamic-columns/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/basic-external-atoms/package.json b/examples/alpine/basic-external-atoms/package.json index 46f605d7dc..33716323b4 100644 --- a/examples/alpine/basic-external-atoms/package.json +++ b/examples/alpine/basic-external-atoms/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "@tanstack/store": "^0.11.0", "alpinejs": "^3.15.12" }, diff --git a/examples/alpine/basic-external-state/package.json b/examples/alpine/basic-external-state/package.json index d4c9b8836f..ea69d2c584 100644 --- a/examples/alpine/basic-external-state/package.json +++ b/examples/alpine/basic-external-state/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/column-ordering/package.json b/examples/alpine/column-ordering/package.json index c1a69b5fce..161decdb9c 100644 --- a/examples/alpine/column-ordering/package.json +++ b/examples/alpine/column-ordering/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/column-pinning-split/package.json b/examples/alpine/column-pinning-split/package.json index 76a2a1d242..d04dec6074 100644 --- a/examples/alpine/column-pinning-split/package.json +++ b/examples/alpine/column-pinning-split/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/column-pinning-sticky/package.json b/examples/alpine/column-pinning-sticky/package.json index 11e1c2c85c..7ffe6c4a68 100644 --- a/examples/alpine/column-pinning-sticky/package.json +++ b/examples/alpine/column-pinning-sticky/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/column-pinning/package.json b/examples/alpine/column-pinning/package.json index 964328dff4..e04df1f127 100644 --- a/examples/alpine/column-pinning/package.json +++ b/examples/alpine/column-pinning/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/column-resizing-performant/package.json b/examples/alpine/column-resizing-performant/package.json index f143a9ac90..c818864869 100644 --- a/examples/alpine/column-resizing-performant/package.json +++ b/examples/alpine/column-resizing-performant/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/column-resizing/package.json b/examples/alpine/column-resizing/package.json index 6633585c7f..12ef476a4e 100644 --- a/examples/alpine/column-resizing/package.json +++ b/examples/alpine/column-resizing/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/column-sizing/package.json b/examples/alpine/column-sizing/package.json index d7f9b6de92..75d04953d9 100644 --- a/examples/alpine/column-sizing/package.json +++ b/examples/alpine/column-sizing/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/column-visibility/package.json b/examples/alpine/column-visibility/package.json index 732ca64ea8..faf3612cce 100644 --- a/examples/alpine/column-visibility/package.json +++ b/examples/alpine/column-visibility/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/custom-plugin/package.json b/examples/alpine/custom-plugin/package.json index f60f22bfb6..d8ba0b25ce 100644 --- a/examples/alpine/custom-plugin/package.json +++ b/examples/alpine/custom-plugin/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/expanding/package.json b/examples/alpine/expanding/package.json index d75b4ef855..a339afa9dc 100644 --- a/examples/alpine/expanding/package.json +++ b/examples/alpine/expanding/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/filters-faceted/package.json b/examples/alpine/filters-faceted/package.json index 9d99999d10..f74a573383 100644 --- a/examples/alpine/filters-faceted/package.json +++ b/examples/alpine/filters-faceted/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/filters/package.json b/examples/alpine/filters/package.json index 7414d32768..7ae9f09148 100644 --- a/examples/alpine/filters/package.json +++ b/examples/alpine/filters/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/grouped-aggregation/package.json b/examples/alpine/grouped-aggregation/package.json index 3e6d29fc94..ead3dfe123 100644 --- a/examples/alpine/grouped-aggregation/package.json +++ b/examples/alpine/grouped-aggregation/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/grouping/package.json b/examples/alpine/grouping/package.json index 605e21a983..3153542441 100644 --- a/examples/alpine/grouping/package.json +++ b/examples/alpine/grouping/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/header-groups/package.json b/examples/alpine/header-groups/package.json index ad5a1c54a4..adcd98fa34 100644 --- a/examples/alpine/header-groups/package.json +++ b/examples/alpine/header-groups/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/pagination/package.json b/examples/alpine/pagination/package.json index 4de6f9658b..777547574b 100644 --- a/examples/alpine/pagination/package.json +++ b/examples/alpine/pagination/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/row-pinning/package.json b/examples/alpine/row-pinning/package.json index ccf9345fa4..a777785bff 100644 --- a/examples/alpine/row-pinning/package.json +++ b/examples/alpine/row-pinning/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/row-selection/package.json b/examples/alpine/row-selection/package.json index 22ace391b7..8385eca62a 100644 --- a/examples/alpine/row-selection/package.json +++ b/examples/alpine/row-selection/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/sorting-dynamic-data/package.json b/examples/alpine/sorting-dynamic-data/package.json index 3e07388b67..d2344bebb4 100644 --- a/examples/alpine/sorting-dynamic-data/package.json +++ b/examples/alpine/sorting-dynamic-data/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/sorting/package.json b/examples/alpine/sorting/package.json index f442aa274c..c9ee80d5fa 100644 --- a/examples/alpine/sorting/package.json +++ b/examples/alpine/sorting/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/alpine/sub-components/package.json b/examples/alpine/sub-components/package.json index b44eacf148..69620082e3 100644 --- a/examples/alpine/sub-components/package.json +++ b/examples/alpine/sub-components/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/alpine-table": "^9.0.0-beta.48", + "@tanstack/alpine-table": "^9.0.0-beta.49", "alpinejs": "^3.15.12" }, "devDependencies": { diff --git a/examples/angular/aggregation/package.json b/examples/angular/aggregation/package.json index bf42bcf1c7..d4ed972afe 100644 --- a/examples/angular/aggregation/package.json +++ b/examples/angular/aggregation/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/basic-app-table/package.json b/examples/angular/basic-app-table/package.json index 7e4e653f05..2269ae66d8 100644 --- a/examples/angular/basic-app-table/package.json +++ b/examples/angular/basic-app-table/package.json @@ -20,8 +20,8 @@ "@angular/platform-browser": "^22.0.2", "@faker-js/faker": "^10.5.0", "@tanstack/angular-devtools": "^0.0.7", - "@tanstack/angular-table": "^9.0.0-beta.48", - "@tanstack/angular-table-devtools": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", + "@tanstack/angular-table-devtools": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/basic-dynamic-columns/package.json b/examples/angular/basic-dynamic-columns/package.json index 465d38e499..4a0814b58a 100644 --- a/examples/angular/basic-dynamic-columns/package.json +++ b/examples/angular/basic-dynamic-columns/package.json @@ -21,7 +21,7 @@ "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", "@tanstack/angular-pacer": "^0.23.1", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/basic-external-atoms/package.json b/examples/angular/basic-external-atoms/package.json index 7deea63f0a..29b83b7ff8 100644 --- a/examples/angular/basic-external-atoms/package.json +++ b/examples/angular/basic-external-atoms/package.json @@ -21,8 +21,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/angular-devtools": "^0.0.7", "@tanstack/angular-store": "^0.11.0", - "@tanstack/angular-table": "^9.0.0-beta.48", - "@tanstack/angular-table-devtools": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", + "@tanstack/angular-table-devtools": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/basic-external-state/package.json b/examples/angular/basic-external-state/package.json index 818225099e..487b159b5c 100644 --- a/examples/angular/basic-external-state/package.json +++ b/examples/angular/basic-external-state/package.json @@ -21,8 +21,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/angular-devtools": "^0.0.7", "@tanstack/angular-store": "^0.11.0", - "@tanstack/angular-table": "^9.0.0-beta.48", - "@tanstack/angular-table-devtools": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", + "@tanstack/angular-table-devtools": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/basic-inject-table/package.json b/examples/angular/basic-inject-table/package.json index 7e677bbd23..ee680f0a7d 100644 --- a/examples/angular/basic-inject-table/package.json +++ b/examples/angular/basic-inject-table/package.json @@ -21,8 +21,8 @@ "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", "@tanstack/angular-devtools": "^0.0.7", - "@tanstack/angular-table": "^9.0.0-beta.48", - "@tanstack/angular-table-devtools": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", + "@tanstack/angular-table-devtools": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/column-ordering/package.json b/examples/angular/column-ordering/package.json index ac65b202bc..c1b7694984 100644 --- a/examples/angular/column-ordering/package.json +++ b/examples/angular/column-ordering/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/column-pinning-split/package.json b/examples/angular/column-pinning-split/package.json index 96829cd861..1381a5e607 100644 --- a/examples/angular/column-pinning-split/package.json +++ b/examples/angular/column-pinning-split/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/column-pinning-sticky/package.json b/examples/angular/column-pinning-sticky/package.json index ac03eb506c..726cfa4855 100644 --- a/examples/angular/column-pinning-sticky/package.json +++ b/examples/angular/column-pinning-sticky/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/column-pinning/package.json b/examples/angular/column-pinning/package.json index f409c2a8da..4a0ef0779c 100644 --- a/examples/angular/column-pinning/package.json +++ b/examples/angular/column-pinning/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/column-resizing-performant/package.json b/examples/angular/column-resizing-performant/package.json index cc80fc6b45..fe09fc0f77 100644 --- a/examples/angular/column-resizing-performant/package.json +++ b/examples/angular/column-resizing-performant/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/column-resizing/package.json b/examples/angular/column-resizing/package.json index b2a5379ebd..3dd3c0be9f 100644 --- a/examples/angular/column-resizing/package.json +++ b/examples/angular/column-resizing/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/column-sizing/package.json b/examples/angular/column-sizing/package.json index 49fef3d478..2899cb163b 100644 --- a/examples/angular/column-sizing/package.json +++ b/examples/angular/column-sizing/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/column-visibility/package.json b/examples/angular/column-visibility/package.json index ccfb3d0574..debfda9c52 100644 --- a/examples/angular/column-visibility/package.json +++ b/examples/angular/column-visibility/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/composable-tables/package.json b/examples/angular/composable-tables/package.json index 7c10474cbd..94e6c93296 100644 --- a/examples/angular/composable-tables/package.json +++ b/examples/angular/composable-tables/package.json @@ -21,8 +21,8 @@ "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", "@tanstack/angular-devtools": "^0.0.7", - "@tanstack/angular-table": "^9.0.0-beta.48", - "@tanstack/angular-table-devtools": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", + "@tanstack/angular-table-devtools": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/custom-plugin/package.json b/examples/angular/custom-plugin/package.json index 5185d95041..c37423771e 100644 --- a/examples/angular/custom-plugin/package.json +++ b/examples/angular/custom-plugin/package.json @@ -19,7 +19,7 @@ "@angular/forms": "^22.0.2", "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/editable/package.json b/examples/angular/editable/package.json index 210d4dfb5c..2e9c6a4363 100644 --- a/examples/angular/editable/package.json +++ b/examples/angular/editable/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/expanding/package.json b/examples/angular/expanding/package.json index 223a7493d0..d771645c07 100644 --- a/examples/angular/expanding/package.json +++ b/examples/angular/expanding/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/filters-faceted/package.json b/examples/angular/filters-faceted/package.json index 1c4bc89d10..7391799c20 100644 --- a/examples/angular/filters-faceted/package.json +++ b/examples/angular/filters-faceted/package.json @@ -21,7 +21,7 @@ "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", "@tanstack/angular-pacer": "^0.23.1", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/filters-fuzzy/package.json b/examples/angular/filters-fuzzy/package.json index 651e61d2ea..2544cbaff8 100644 --- a/examples/angular/filters-fuzzy/package.json +++ b/examples/angular/filters-fuzzy/package.json @@ -21,7 +21,7 @@ "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", "@tanstack/angular-pacer": "^0.23.1", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "rxjs": "~7.8.2", "tslib": "^2.8.1" diff --git a/examples/angular/filters/package.json b/examples/angular/filters/package.json index e83720463c..e690e368cb 100644 --- a/examples/angular/filters/package.json +++ b/examples/angular/filters/package.json @@ -21,7 +21,7 @@ "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", "@tanstack/angular-pacer": "^0.23.1", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/grouped-aggregation/package.json b/examples/angular/grouped-aggregation/package.json index e6566b8e82..ff60752a7c 100644 --- a/examples/angular/grouped-aggregation/package.json +++ b/examples/angular/grouped-aggregation/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/grouping/package.json b/examples/angular/grouping/package.json index 06dcb1b0f6..2874a46917 100644 --- a/examples/angular/grouping/package.json +++ b/examples/angular/grouping/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/header-groups/package.json b/examples/angular/header-groups/package.json index 8d3c21ce37..d5d6fffa82 100644 --- a/examples/angular/header-groups/package.json +++ b/examples/angular/header-groups/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/kitchen-sink/package.json b/examples/angular/kitchen-sink/package.json index 8f35b73405..e825727edf 100644 --- a/examples/angular/kitchen-sink/package.json +++ b/examples/angular/kitchen-sink/package.json @@ -21,8 +21,8 @@ "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", "@tanstack/angular-devtools": "^0.0.7", - "@tanstack/angular-table": "^9.0.0-beta.48", - "@tanstack/angular-table-devtools": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", + "@tanstack/angular-table-devtools": "^9.0.0-beta.49", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "rxjs": "~7.8.2", "tslib": "^2.8.1" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 73626c7a54..acada566a9 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/remote-data/package.json b/examples/angular/remote-data/package.json index 0f01e10ce5..b9cb6dfc4b 100644 --- a/examples/angular/remote-data/package.json +++ b/examples/angular/remote-data/package.json @@ -25,7 +25,7 @@ "@angular/platform-server": "^22.0.2", "@angular/router": "^22.0.2", "@angular/ssr": "^22.0.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "express": "^5.2.1", "rxjs": "~7.8.2" }, diff --git a/examples/angular/row-dnd/package.json b/examples/angular/row-dnd/package.json index 2b9bd4148b..06c6230384 100644 --- a/examples/angular/row-dnd/package.json +++ b/examples/angular/row-dnd/package.json @@ -21,7 +21,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/row-pinning/package.json b/examples/angular/row-pinning/package.json index 127fa90334..a506dca737 100644 --- a/examples/angular/row-pinning/package.json +++ b/examples/angular/row-pinning/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/row-selection-signal/package.json b/examples/angular/row-selection-signal/package.json index 8e67031da9..3638b39221 100644 --- a/examples/angular/row-selection-signal/package.json +++ b/examples/angular/row-selection-signal/package.json @@ -23,8 +23,8 @@ "@angular/platform-browser-dynamic": "^22.0.2", "@faker-js/faker": "^10.5.0", "@tanstack/angular-devtools": "^0.0.7", - "@tanstack/angular-table": "^9.0.0-beta.48", - "@tanstack/angular-table-devtools": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", + "@tanstack/angular-table-devtools": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/row-selection/package.json b/examples/angular/row-selection/package.json index 896abf7551..86040abd67 100644 --- a/examples/angular/row-selection/package.json +++ b/examples/angular/row-selection/package.json @@ -22,8 +22,8 @@ "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", "@tanstack/angular-devtools": "^0.0.7", - "@tanstack/angular-table": "^9.0.0-beta.48", - "@tanstack/angular-table-devtools": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", + "@tanstack/angular-table-devtools": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/signal-input/package.json b/examples/angular/signal-input/package.json index 1f119c7dcd..37de2b921b 100644 --- a/examples/angular/signal-input/package.json +++ b/examples/angular/signal-input/package.json @@ -21,7 +21,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/sorting/package.json b/examples/angular/sorting/package.json index 66745455a0..5bcb36e1a6 100644 --- a/examples/angular/sorting/package.json +++ b/examples/angular/sorting/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/sub-components/package.json b/examples/angular/sub-components/package.json index 9dc9976650..95bcbde0c1 100644 --- a/examples/angular/sub-components/package.json +++ b/examples/angular/sub-components/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/angular/virtualized-columns/package.json b/examples/angular/virtualized-columns/package.json index 58dbb0d8ad..bd85dce530 100644 --- a/examples/angular/virtualized-columns/package.json +++ b/examples/angular/virtualized-columns/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "@tanstack/angular-virtual": "^5.0.7", "rxjs": "~7.8.2", "tslib": "^2.8.1" diff --git a/examples/angular/virtualized-infinite-scrolling/package.json b/examples/angular/virtualized-infinite-scrolling/package.json index dc04e1deb5..43d61ec840 100644 --- a/examples/angular/virtualized-infinite-scrolling/package.json +++ b/examples/angular/virtualized-infinite-scrolling/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "@tanstack/angular-virtual": "^5.0.7", "rxjs": "~7.8.2", "tslib": "^2.8.1" diff --git a/examples/angular/virtualized-rows/package.json b/examples/angular/virtualized-rows/package.json index f290fc2efc..a8ada60a29 100644 --- a/examples/angular/virtualized-rows/package.json +++ b/examples/angular/virtualized-rows/package.json @@ -20,7 +20,7 @@ "@angular/platform-browser": "^22.0.2", "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "@tanstack/angular-virtual": "^5.0.7", "rxjs": "~7.8.2", "tslib": "^2.8.1" diff --git a/examples/angular/with-tanstack-form/package.json b/examples/angular/with-tanstack-form/package.json index c9a760d009..f289ad662d 100644 --- a/examples/angular/with-tanstack-form/package.json +++ b/examples/angular/with-tanstack-form/package.json @@ -22,8 +22,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/angular-devtools": "^0.0.7", "@tanstack/angular-form": "^1.33.1", - "@tanstack/angular-table": "^9.0.0-beta.48", - "@tanstack/angular-table-devtools": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", + "@tanstack/angular-table-devtools": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1", "zod": "^4.4.3" diff --git a/examples/angular/with-tanstack-query/package.json b/examples/angular/with-tanstack-query/package.json index ab8ccbee45..f32798f185 100644 --- a/examples/angular/with-tanstack-query/package.json +++ b/examples/angular/with-tanstack-query/package.json @@ -21,7 +21,7 @@ "@angular/router": "^22.0.2", "@faker-js/faker": "^10.5.0", "@tanstack/angular-query-experimental": "^5.101.2", - "@tanstack/angular-table": "^9.0.0-beta.48", + "@tanstack/angular-table": "^9.0.0-beta.49", "rxjs": "~7.8.2", "tslib": "^2.8.1" }, diff --git a/examples/ember/aggregation/package.json b/examples/ember/aggregation/package.json index 37918a625b..0befc0e07e 100644 --- a/examples/ember/aggregation/package.json +++ b/examples/ember/aggregation/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/basic-app-table/package.json b/examples/ember/basic-app-table/package.json index 46ec453ac9..7221bde0ce 100644 --- a/examples/ember/basic-app-table/package.json +++ b/examples/ember/basic-app-table/package.json @@ -43,7 +43,7 @@ "@glint/tsserver-plugin": "2.5.17", "@nullvoxpopuli/ember-vite": "1.0.3", "@rollup/plugin-babel": "7.1.0", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "babel-plugin-ember-template-compilation": "4.0.0", "typescript": "6.0.3", "vite": "^8.1.0" diff --git a/examples/ember/basic-external-atoms/package.json b/examples/ember/basic-external-atoms/package.json index 976d8e4462..00878e2680 100644 --- a/examples/ember/basic-external-atoms/package.json +++ b/examples/ember/basic-external-atoms/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/basic-external-state/package.json b/examples/ember/basic-external-state/package.json index 0057926845..cedb1a3a59 100644 --- a/examples/ember/basic-external-state/package.json +++ b/examples/ember/basic-external-state/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/basic-table/package.json b/examples/ember/basic-table/package.json index 2152d2da5e..2cdc3da901 100644 --- a/examples/ember/basic-table/package.json +++ b/examples/ember/basic-table/package.json @@ -43,7 +43,7 @@ "@glint/tsserver-plugin": "2.5.17", "@nullvoxpopuli/ember-vite": "1.0.3", "@rollup/plugin-babel": "7.1.0", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "babel-plugin-ember-template-compilation": "4.0.0", "typescript": "6.0.3", "vite": "^8.1.0" diff --git a/examples/ember/column-ordering/package.json b/examples/ember/column-ordering/package.json index e2780982b1..160d037929 100644 --- a/examples/ember/column-ordering/package.json +++ b/examples/ember/column-ordering/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/column-pinning-split/package.json b/examples/ember/column-pinning-split/package.json index 1c1651e696..7458d8ec98 100644 --- a/examples/ember/column-pinning-split/package.json +++ b/examples/ember/column-pinning-split/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/column-pinning-sticky/package.json b/examples/ember/column-pinning-sticky/package.json index a3eed8ef3f..a4bbd348c1 100644 --- a/examples/ember/column-pinning-sticky/package.json +++ b/examples/ember/column-pinning-sticky/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/column-pinning/package.json b/examples/ember/column-pinning/package.json index 1bc4f9ad45..f76edfc347 100644 --- a/examples/ember/column-pinning/package.json +++ b/examples/ember/column-pinning/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/column-resizing-performant/package.json b/examples/ember/column-resizing-performant/package.json index 184aed3505..b5e97af10d 100644 --- a/examples/ember/column-resizing-performant/package.json +++ b/examples/ember/column-resizing-performant/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/column-resizing/package.json b/examples/ember/column-resizing/package.json index 560e635f41..951f7f6c05 100644 --- a/examples/ember/column-resizing/package.json +++ b/examples/ember/column-resizing/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/column-sizing/package.json b/examples/ember/column-sizing/package.json index f9e2bda17c..b0be26f4e5 100644 --- a/examples/ember/column-sizing/package.json +++ b/examples/ember/column-sizing/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/column-visibility/package.json b/examples/ember/column-visibility/package.json index b3526e5c0f..9cff65222c 100644 --- a/examples/ember/column-visibility/package.json +++ b/examples/ember/column-visibility/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/custom-plugin/package.json b/examples/ember/custom-plugin/package.json index 3018b70ba0..6a97afe3aa 100644 --- a/examples/ember/custom-plugin/package.json +++ b/examples/ember/custom-plugin/package.json @@ -28,8 +28,8 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", - "@tanstack/table-core": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", + "@tanstack/table-core": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/editable/package.json b/examples/ember/editable/package.json index 505e806dc3..afdf2d7b30 100644 --- a/examples/ember/editable/package.json +++ b/examples/ember/editable/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/expanding/package.json b/examples/ember/expanding/package.json index a255a765cf..f241787bc5 100644 --- a/examples/ember/expanding/package.json +++ b/examples/ember/expanding/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/filters-faceted/package.json b/examples/ember/filters-faceted/package.json index 46356fd0f4..afaef311af 100644 --- a/examples/ember/filters-faceted/package.json +++ b/examples/ember/filters-faceted/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/filters-fuzzy/package.json b/examples/ember/filters-fuzzy/package.json index acbc69af84..7d4a0096e5 100644 --- a/examples/ember/filters-fuzzy/package.json +++ b/examples/ember/filters-fuzzy/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", diff --git a/examples/ember/filters/package.json b/examples/ember/filters/package.json index 2d8e3e841f..ad84cea0a5 100644 --- a/examples/ember/filters/package.json +++ b/examples/ember/filters/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/grouped-aggregation/package.json b/examples/ember/grouped-aggregation/package.json index bdf83371eb..60325e0922 100644 --- a/examples/ember/grouped-aggregation/package.json +++ b/examples/ember/grouped-aggregation/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/grouping/package.json b/examples/ember/grouping/package.json index 7afe0887ba..306b43247a 100644 --- a/examples/ember/grouping/package.json +++ b/examples/ember/grouping/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/header-groups/package.json b/examples/ember/header-groups/package.json index c14531e1ec..f3b66f8342 100644 --- a/examples/ember/header-groups/package.json +++ b/examples/ember/header-groups/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/kitchen-sink/package.json b/examples/ember/kitchen-sink/package.json index fa4195edd5..46936556e1 100644 --- a/examples/ember/kitchen-sink/package.json +++ b/examples/ember/kitchen-sink/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", diff --git a/examples/ember/pagination/package.json b/examples/ember/pagination/package.json index 07282e9927..b54cd39c18 100644 --- a/examples/ember/pagination/package.json +++ b/examples/ember/pagination/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/remote-data/package.json b/examples/ember/remote-data/package.json index 368b580d08..7c83d28bc4 100644 --- a/examples/ember/remote-data/package.json +++ b/examples/ember/remote-data/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/row-dnd/package.json b/examples/ember/row-dnd/package.json index 1626385841..40c320e352 100644 --- a/examples/ember/row-dnd/package.json +++ b/examples/ember/row-dnd/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/row-pinning/package.json b/examples/ember/row-pinning/package.json index cb27b242c8..ac242e3e77 100644 --- a/examples/ember/row-pinning/package.json +++ b/examples/ember/row-pinning/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/row-selection/package.json b/examples/ember/row-selection/package.json index e4d09fd387..b0df01572a 100644 --- a/examples/ember/row-selection/package.json +++ b/examples/ember/row-selection/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/sorting/package.json b/examples/ember/sorting/package.json index 3d9e8b9c3d..c4fe0965d1 100644 --- a/examples/ember/sorting/package.json +++ b/examples/ember/sorting/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/ember/sub-components/package.json b/examples/ember/sub-components/package.json index 1290ea4c02..9b4eb7ba11 100644 --- a/examples/ember/sub-components/package.json +++ b/examples/ember/sub-components/package.json @@ -28,7 +28,7 @@ "@embroider/router": "3.0.6", "@faker-js/faker": "^10.5.0", "@glimmer/component": "2.1.1", - "@tanstack/ember-table": "^9.0.0-beta.48", + "@tanstack/ember-table": "^9.0.0-beta.49", "decorator-transforms": "2.4.0", "ember-source": "7.0.0", "ember-strict-application-resolver": "0.1.1" diff --git a/examples/lit/aggregation/package.json b/examples/lit/aggregation/package.json index deed970d68..2f01ff15d2 100644 --- a/examples/lit/aggregation/package.json +++ b/examples/lit/aggregation/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/basic-app-table/package.json b/examples/lit/basic-app-table/package.json index cc6ae598c4..845123e6c5 100644 --- a/examples/lit/basic-app-table/package.json +++ b/examples/lit/basic-app-table/package.json @@ -13,7 +13,7 @@ "dependencies": { "@faker-js/faker": "^10.5.0", "@lit/context": "^1.1.6", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/basic-dynamic-columns/package.json b/examples/lit/basic-dynamic-columns/package.json index 6551271ba0..44a89830e5 100644 --- a/examples/lit/basic-dynamic-columns/package.json +++ b/examples/lit/basic-dynamic-columns/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/basic-external-atoms/package.json b/examples/lit/basic-external-atoms/package.json index d25e8928e5..b5c7406a6a 100644 --- a/examples/lit/basic-external-atoms/package.json +++ b/examples/lit/basic-external-atoms/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "@tanstack/store": "^0.11.0", "lit": "^3.3.3" }, diff --git a/examples/lit/basic-external-state/package.json b/examples/lit/basic-external-state/package.json index e5ddaca465..041ddd12db 100644 --- a/examples/lit/basic-external-state/package.json +++ b/examples/lit/basic-external-state/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/basic-subscribe/package.json b/examples/lit/basic-subscribe/package.json index 11b5e376ad..09e7c9d40f 100644 --- a/examples/lit/basic-subscribe/package.json +++ b/examples/lit/basic-subscribe/package.json @@ -13,7 +13,7 @@ "dependencies": { "@faker-js/faker": "^10.5.0", "@tanstack/lit-store": "^0.14.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/basic-table-controller/package.json b/examples/lit/basic-table-controller/package.json index 39b1b410be..17bd239976 100644 --- a/examples/lit/basic-table-controller/package.json +++ b/examples/lit/basic-table-controller/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/column-ordering/package.json b/examples/lit/column-ordering/package.json index 374eca90a5..010b4f3a5d 100644 --- a/examples/lit/column-ordering/package.json +++ b/examples/lit/column-ordering/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/column-pinning-split/package.json b/examples/lit/column-pinning-split/package.json index 4cc3b15c0c..73d67d0526 100644 --- a/examples/lit/column-pinning-split/package.json +++ b/examples/lit/column-pinning-split/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/column-pinning-sticky/package.json b/examples/lit/column-pinning-sticky/package.json index 0682158e2e..c89d960bed 100644 --- a/examples/lit/column-pinning-sticky/package.json +++ b/examples/lit/column-pinning-sticky/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/column-pinning/package.json b/examples/lit/column-pinning/package.json index e57739683d..c9ffcbfb4b 100644 --- a/examples/lit/column-pinning/package.json +++ b/examples/lit/column-pinning/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/column-resizing-performant/package.json b/examples/lit/column-resizing-performant/package.json index 10748eef8d..39c2a04097 100644 --- a/examples/lit/column-resizing-performant/package.json +++ b/examples/lit/column-resizing-performant/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/column-resizing/package.json b/examples/lit/column-resizing/package.json index af8b33c9d9..3127f25ee8 100644 --- a/examples/lit/column-resizing/package.json +++ b/examples/lit/column-resizing/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/column-sizing/package.json b/examples/lit/column-sizing/package.json index 6ba1683f0e..9bf0227440 100644 --- a/examples/lit/column-sizing/package.json +++ b/examples/lit/column-sizing/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/column-visibility/package.json b/examples/lit/column-visibility/package.json index 4f0fca9a74..d036f083cf 100644 --- a/examples/lit/column-visibility/package.json +++ b/examples/lit/column-visibility/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/composable-tables/package.json b/examples/lit/composable-tables/package.json index 65367b6cea..403cafb1e6 100644 --- a/examples/lit/composable-tables/package.json +++ b/examples/lit/composable-tables/package.json @@ -13,7 +13,7 @@ "dependencies": { "@faker-js/faker": "^10.5.0", "@lit/context": "^1.1.6", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/expanding/package.json b/examples/lit/expanding/package.json index 98db4ed3cd..8924b3f7f3 100644 --- a/examples/lit/expanding/package.json +++ b/examples/lit/expanding/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/filters-faceted/package.json b/examples/lit/filters-faceted/package.json index 15ee879003..cc4baeb7da 100644 --- a/examples/lit/filters-faceted/package.json +++ b/examples/lit/filters-faceted/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/filters-fuzzy/package.json b/examples/lit/filters-fuzzy/package.json index 374145a714..3dae0f757d 100644 --- a/examples/lit/filters-fuzzy/package.json +++ b/examples/lit/filters-fuzzy/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "lit": "^3.3.3" }, diff --git a/examples/lit/filters/package.json b/examples/lit/filters/package.json index 9369afb402..da60cd818d 100644 --- a/examples/lit/filters/package.json +++ b/examples/lit/filters/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/grouped-aggregation/package.json b/examples/lit/grouped-aggregation/package.json index 66df7d884b..01a9e3a726 100644 --- a/examples/lit/grouped-aggregation/package.json +++ b/examples/lit/grouped-aggregation/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/grouping/package.json b/examples/lit/grouping/package.json index 7a1fa88a95..147d1f467c 100644 --- a/examples/lit/grouping/package.json +++ b/examples/lit/grouping/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/header-groups/package.json b/examples/lit/header-groups/package.json index ae707d147f..3f65a1fd58 100644 --- a/examples/lit/header-groups/package.json +++ b/examples/lit/header-groups/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/kitchen-sink/package.json b/examples/lit/kitchen-sink/package.json index a6dc5032ca..6aeddbbed8 100644 --- a/examples/lit/kitchen-sink/package.json +++ b/examples/lit/kitchen-sink/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "lit": "^3.3.3" }, diff --git a/examples/lit/pagination/package.json b/examples/lit/pagination/package.json index 8fbadddb09..24b4faf40c 100644 --- a/examples/lit/pagination/package.json +++ b/examples/lit/pagination/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/row-pinning/package.json b/examples/lit/row-pinning/package.json index e4887439e5..09a6ae3c90 100644 --- a/examples/lit/row-pinning/package.json +++ b/examples/lit/row-pinning/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/row-selection/package.json b/examples/lit/row-selection/package.json index 4d704d895a..9ff14bf8c8 100644 --- a/examples/lit/row-selection/package.json +++ b/examples/lit/row-selection/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/sorting-dynamic-data/package.json b/examples/lit/sorting-dynamic-data/package.json index 7671389cd8..c7d096ecb4 100644 --- a/examples/lit/sorting-dynamic-data/package.json +++ b/examples/lit/sorting-dynamic-data/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/sorting/package.json b/examples/lit/sorting/package.json index d87787ca0a..9089a96bfe 100644 --- a/examples/lit/sorting/package.json +++ b/examples/lit/sorting/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/sub-components/package.json b/examples/lit/sub-components/package.json index 77d8169c45..8b5dbda5ed 100644 --- a/examples/lit/sub-components/package.json +++ b/examples/lit/sub-components/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "lit": "^3.3.3" }, "devDependencies": { diff --git a/examples/lit/virtualized-columns/package.json b/examples/lit/virtualized-columns/package.json index 7ec4f28acc..a4080202a4 100644 --- a/examples/lit/virtualized-columns/package.json +++ b/examples/lit/virtualized-columns/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "@tanstack/lit-virtual": "^3.13.32", "lit": "^3.3.3" }, diff --git a/examples/lit/virtualized-infinite-scrolling/package.json b/examples/lit/virtualized-infinite-scrolling/package.json index 98d4bf1c6f..b37676564c 100644 --- a/examples/lit/virtualized-infinite-scrolling/package.json +++ b/examples/lit/virtualized-infinite-scrolling/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "@tanstack/lit-virtual": "^3.13.32", "lit": "^3.3.3" }, diff --git a/examples/lit/virtualized-rows/package.json b/examples/lit/virtualized-rows/package.json index 83250899ae..b89b8710ef 100644 --- a/examples/lit/virtualized-rows/package.json +++ b/examples/lit/virtualized-rows/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/lit-table": "^9.0.0-beta.48", + "@tanstack/lit-table": "^9.0.0-beta.49", "@tanstack/lit-virtual": "^3.13.32", "lit": "^3.3.3" }, diff --git a/examples/preact/aggregation/package.json b/examples/preact/aggregation/package.json index a7d2aa74e4..db94523ea4 100644 --- a/examples/preact/aggregation/package.json +++ b/examples/preact/aggregation/package.json @@ -14,7 +14,7 @@ "dependencies": { "@faker-js/faker": "^10.5.0", "@tanstack/preact-store": "^0.13.1", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/basic-dynamic-columns/package.json b/examples/preact/basic-dynamic-columns/package.json index e8c1c1fa2a..c152417d12 100644 --- a/examples/preact/basic-dynamic-columns/package.json +++ b/examples/preact/basic-dynamic-columns/package.json @@ -15,8 +15,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/preact-devtools": "^0.10.8", "@tanstack/preact-pacer": "^0.22.1", - "@tanstack/preact-table": "^9.0.0-beta.48", - "@tanstack/preact-table-devtools": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", + "@tanstack/preact-table-devtools": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/basic-external-atoms/package.json b/examples/preact/basic-external-atoms/package.json index be3e20746f..787bdb8ffd 100644 --- a/examples/preact/basic-external-atoms/package.json +++ b/examples/preact/basic-external-atoms/package.json @@ -15,8 +15,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/preact-devtools": "^0.10.8", "@tanstack/preact-store": "^0.13.1", - "@tanstack/preact-table": "^9.0.0-beta.48", - "@tanstack/preact-table-devtools": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", + "@tanstack/preact-table-devtools": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/basic-external-state/package.json b/examples/preact/basic-external-state/package.json index 94ea625178..656fce4ca5 100644 --- a/examples/preact/basic-external-state/package.json +++ b/examples/preact/basic-external-state/package.json @@ -15,8 +15,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/preact-devtools": "^0.10.8", "@tanstack/preact-store": "^0.13.1", - "@tanstack/preact-table": "^9.0.0-beta.48", - "@tanstack/preact-table-devtools": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", + "@tanstack/preact-table-devtools": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/basic-subscribe/package.json b/examples/preact/basic-subscribe/package.json index ba2005a8e2..7190604863 100644 --- a/examples/preact/basic-subscribe/package.json +++ b/examples/preact/basic-subscribe/package.json @@ -15,8 +15,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/preact-devtools": "^0.10.8", "@tanstack/preact-store": "^0.13.1", - "@tanstack/preact-table": "^9.0.0-beta.48", - "@tanstack/preact-table-devtools": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", + "@tanstack/preact-table-devtools": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/basic-use-app-table/package.json b/examples/preact/basic-use-app-table/package.json index 82b420e4d8..86fc5d60d4 100644 --- a/examples/preact/basic-use-app-table/package.json +++ b/examples/preact/basic-use-app-table/package.json @@ -13,8 +13,8 @@ }, "dependencies": { "@tanstack/preact-devtools": "^0.10.8", - "@tanstack/preact-table": "^9.0.0-beta.48", - "@tanstack/preact-table-devtools": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", + "@tanstack/preact-table-devtools": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/basic-use-table/package.json b/examples/preact/basic-use-table/package.json index 6789a96f8f..d00e7d6be3 100644 --- a/examples/preact/basic-use-table/package.json +++ b/examples/preact/basic-use-table/package.json @@ -13,8 +13,8 @@ }, "dependencies": { "@tanstack/preact-devtools": "^0.10.8", - "@tanstack/preact-table": "^9.0.0-beta.48", - "@tanstack/preact-table-devtools": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", + "@tanstack/preact-table-devtools": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/column-ordering/package.json b/examples/preact/column-ordering/package.json index 94defc2d77..c48869297d 100644 --- a/examples/preact/column-ordering/package.json +++ b/examples/preact/column-ordering/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/column-pinning-split/package.json b/examples/preact/column-pinning-split/package.json index 854bf495b1..79919ac4f7 100644 --- a/examples/preact/column-pinning-split/package.json +++ b/examples/preact/column-pinning-split/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/column-pinning-sticky/package.json b/examples/preact/column-pinning-sticky/package.json index dc26072ecb..c08241f5ef 100644 --- a/examples/preact/column-pinning-sticky/package.json +++ b/examples/preact/column-pinning-sticky/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/column-pinning/package.json b/examples/preact/column-pinning/package.json index 62d04647e8..b083ee6f06 100644 --- a/examples/preact/column-pinning/package.json +++ b/examples/preact/column-pinning/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/column-resizing-performant/package.json b/examples/preact/column-resizing-performant/package.json index 85c0921630..f88d0c65d3 100644 --- a/examples/preact/column-resizing-performant/package.json +++ b/examples/preact/column-resizing-performant/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/column-resizing/package.json b/examples/preact/column-resizing/package.json index 28f6dc3eb1..dbae6dd86f 100644 --- a/examples/preact/column-resizing/package.json +++ b/examples/preact/column-resizing/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/column-sizing/package.json b/examples/preact/column-sizing/package.json index 294063971a..fa29e17086 100644 --- a/examples/preact/column-sizing/package.json +++ b/examples/preact/column-sizing/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/column-visibility/package.json b/examples/preact/column-visibility/package.json index 27cad098ca..91af54603c 100644 --- a/examples/preact/column-visibility/package.json +++ b/examples/preact/column-visibility/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/composable-tables/package.json b/examples/preact/composable-tables/package.json index 18cd86a641..4b16d8060f 100644 --- a/examples/preact/composable-tables/package.json +++ b/examples/preact/composable-tables/package.json @@ -15,8 +15,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/preact-devtools": "^0.10.8", "@tanstack/preact-store": "^0.13.1", - "@tanstack/preact-table": "^9.0.0-beta.48", - "@tanstack/preact-table-devtools": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", + "@tanstack/preact-table-devtools": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/custom-plugin/package.json b/examples/preact/custom-plugin/package.json index 711df10c74..10b985f4bf 100644 --- a/examples/preact/custom-plugin/package.json +++ b/examples/preact/custom-plugin/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/expanding/package.json b/examples/preact/expanding/package.json index 22fac56080..f389e194db 100644 --- a/examples/preact/expanding/package.json +++ b/examples/preact/expanding/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/filters-faceted/package.json b/examples/preact/filters-faceted/package.json index 54ff3cf940..927f3db699 100644 --- a/examples/preact/filters-faceted/package.json +++ b/examples/preact/filters-faceted/package.json @@ -15,7 +15,7 @@ "@faker-js/faker": "^10.5.0", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/preact-pacer": "^0.22.1", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/filters-fuzzy/package.json b/examples/preact/filters-fuzzy/package.json index 9c7e727479..7607188425 100644 --- a/examples/preact/filters-fuzzy/package.json +++ b/examples/preact/filters-fuzzy/package.json @@ -15,7 +15,7 @@ "@faker-js/faker": "^10.5.0", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/preact-pacer": "^0.22.1", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/filters/package.json b/examples/preact/filters/package.json index e635bdab48..72dd94c31b 100644 --- a/examples/preact/filters/package.json +++ b/examples/preact/filters/package.json @@ -15,7 +15,7 @@ "@faker-js/faker": "^10.5.0", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/preact-pacer": "^0.22.1", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/grouped-aggregation/package.json b/examples/preact/grouped-aggregation/package.json index 84df579258..ca4d5a9b41 100644 --- a/examples/preact/grouped-aggregation/package.json +++ b/examples/preact/grouped-aggregation/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/grouping/package.json b/examples/preact/grouping/package.json index fbca93f819..dd3edfc23c 100644 --- a/examples/preact/grouping/package.json +++ b/examples/preact/grouping/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/header-groups/package.json b/examples/preact/header-groups/package.json index 0c20831af0..0a5d06fb2d 100644 --- a/examples/preact/header-groups/package.json +++ b/examples/preact/header-groups/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/kitchen-sink/package.json b/examples/preact/kitchen-sink/package.json index f53aea5f80..cb75a8d61d 100644 --- a/examples/preact/kitchen-sink/package.json +++ b/examples/preact/kitchen-sink/package.json @@ -15,8 +15,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/preact-devtools": "^0.10.8", - "@tanstack/preact-table": "^9.0.0-beta.48", - "@tanstack/preact-table-devtools": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", + "@tanstack/preact-table-devtools": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/pagination/package.json b/examples/preact/pagination/package.json index 38c7d2364e..7935b25cb2 100644 --- a/examples/preact/pagination/package.json +++ b/examples/preact/pagination/package.json @@ -14,7 +14,7 @@ "dependencies": { "@faker-js/faker": "^10.5.0", "@tanstack/preact-store": "^0.13.1", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/row-pinning/package.json b/examples/preact/row-pinning/package.json index b71bc956bb..ea55e6ba93 100644 --- a/examples/preact/row-pinning/package.json +++ b/examples/preact/row-pinning/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/row-selection/package.json b/examples/preact/row-selection/package.json index 65a2ebc27b..441555daa8 100644 --- a/examples/preact/row-selection/package.json +++ b/examples/preact/row-selection/package.json @@ -15,8 +15,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/preact-devtools": "^0.10.8", "@tanstack/preact-store": "^0.13.1", - "@tanstack/preact-table": "^9.0.0-beta.48", - "@tanstack/preact-table-devtools": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", + "@tanstack/preact-table-devtools": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/sorting/package.json b/examples/preact/sorting/package.json index ae66529464..479ae919f5 100644 --- a/examples/preact/sorting/package.json +++ b/examples/preact/sorting/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/sub-components/package.json b/examples/preact/sub-components/package.json index b07e351ae7..ee3e3871f6 100644 --- a/examples/preact/sub-components/package.json +++ b/examples/preact/sub-components/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/preact/with-tanstack-form/package.json b/examples/preact/with-tanstack-form/package.json index 0ceb97b575..a09ec4b176 100644 --- a/examples/preact/with-tanstack-form/package.json +++ b/examples/preact/with-tanstack-form/package.json @@ -16,8 +16,8 @@ "@tanstack/preact-devtools": "^0.10.8", "@tanstack/preact-form": "^1.30.1", "@tanstack/preact-pacer": "^0.22.1", - "@tanstack/preact-table": "^9.0.0-beta.48", - "@tanstack/preact-table-devtools": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", + "@tanstack/preact-table-devtools": "^9.0.0-beta.49", "@tanstack/react-form-devtools": "^0.2.30", "preact": "^10.29.2", "zod": "^4.4.3" diff --git a/examples/preact/with-tanstack-query/package.json b/examples/preact/with-tanstack-query/package.json index 3b9d3ddee5..565a6ccb70 100644 --- a/examples/preact/with-tanstack-query/package.json +++ b/examples/preact/with-tanstack-query/package.json @@ -15,7 +15,7 @@ "@faker-js/faker": "^10.5.0", "@tanstack/preact-query": "^5.101.2", "@tanstack/preact-store": "^0.13.1", - "@tanstack/preact-table": "^9.0.0-beta.48", + "@tanstack/preact-table": "^9.0.0-beta.49", "preact": "^10.29.2" }, "devDependencies": { diff --git a/examples/react/aggregation/package.json b/examples/react/aggregation/package.json index 5c4fb45a0b..46884bf394 100644 --- a/examples/react/aggregation/package.json +++ b/examples/react/aggregation/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/basic-dynamic-columns/package.json b/examples/react/basic-dynamic-columns/package.json index 453a465524..7c2820a697 100644 --- a/examples/react/basic-dynamic-columns/package.json +++ b/examples/react/basic-dynamic-columns/package.json @@ -14,8 +14,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/react-devtools": "^0.10.8", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/basic-external-atoms/package.json b/examples/react/basic-external-atoms/package.json index a6ffe8b884..31907de223 100644 --- a/examples/react/basic-external-atoms/package.json +++ b/examples/react/basic-external-atoms/package.json @@ -14,8 +14,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/react-devtools": "^0.10.8", "@tanstack/react-store": "^0.11.0", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/basic-external-state/package.json b/examples/react/basic-external-state/package.json index 9ccb9b0cf0..fa5d52f661 100644 --- a/examples/react/basic-external-state/package.json +++ b/examples/react/basic-external-state/package.json @@ -14,8 +14,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/react-devtools": "^0.10.8", "@tanstack/react-store": "^0.11.0", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/basic-subscribe/package.json b/examples/react/basic-subscribe/package.json index 1d627b0f04..37775afa14 100644 --- a/examples/react/basic-subscribe/package.json +++ b/examples/react/basic-subscribe/package.json @@ -15,8 +15,8 @@ "@tanstack/react-devtools": "^0.10.8", "@tanstack/react-pacer": "^0.22.1", "@tanstack/react-store": "^0.11.0", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/basic-use-app-table/package.json b/examples/react/basic-use-app-table/package.json index 9fd91a1d87..52bb785c64 100644 --- a/examples/react/basic-use-app-table/package.json +++ b/examples/react/basic-use-app-table/package.json @@ -12,8 +12,8 @@ }, "dependencies": { "@tanstack/react-devtools": "^0.10.8", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/basic-use-legacy-table/package.json b/examples/react/basic-use-legacy-table/package.json index c0e38124c5..c2c2572aef 100644 --- a/examples/react/basic-use-legacy-table/package.json +++ b/examples/react/basic-use-legacy-table/package.json @@ -14,8 +14,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/react-devtools": "^0.10.8", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/basic-use-table/package.json b/examples/react/basic-use-table/package.json index 929ce1af89..21c8ca6c94 100644 --- a/examples/react/basic-use-table/package.json +++ b/examples/react/basic-use-table/package.json @@ -12,8 +12,8 @@ }, "dependencies": { "@tanstack/react-devtools": "^0.10.8", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/column-dnd/package.json b/examples/react/column-dnd/package.json index 84dade9d62..570debf657 100644 --- a/examples/react/column-dnd/package.json +++ b/examples/react/column-dnd/package.json @@ -16,7 +16,7 @@ "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/column-ordering/package.json b/examples/react/column-ordering/package.json index 842dfcb3e3..a4fc9e2003 100644 --- a/examples/react/column-ordering/package.json +++ b/examples/react/column-ordering/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/column-pinning-split/package.json b/examples/react/column-pinning-split/package.json index 50a437da49..460d5ce27c 100644 --- a/examples/react/column-pinning-split/package.json +++ b/examples/react/column-pinning-split/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/column-pinning-sticky/package.json b/examples/react/column-pinning-sticky/package.json index 4e80798082..da64f82bc8 100644 --- a/examples/react/column-pinning-sticky/package.json +++ b/examples/react/column-pinning-sticky/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/column-pinning/package.json b/examples/react/column-pinning/package.json index 69ebbab2b0..98d7101947 100644 --- a/examples/react/column-pinning/package.json +++ b/examples/react/column-pinning/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/column-resizing-performant/package.json b/examples/react/column-resizing-performant/package.json index 44832bf1b7..e47b8db636 100644 --- a/examples/react/column-resizing-performant/package.json +++ b/examples/react/column-resizing-performant/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/column-resizing/package.json b/examples/react/column-resizing/package.json index 6855163f83..106e325928 100644 --- a/examples/react/column-resizing/package.json +++ b/examples/react/column-resizing/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/column-sizing/package.json b/examples/react/column-sizing/package.json index f1e430cc93..913ab8d100 100644 --- a/examples/react/column-sizing/package.json +++ b/examples/react/column-sizing/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/column-visibility/package.json b/examples/react/column-visibility/package.json index d2547d625a..d3311ec9c2 100644 --- a/examples/react/column-visibility/package.json +++ b/examples/react/column-visibility/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/composable-tables/package.json b/examples/react/composable-tables/package.json index ac0680b334..c30b4bb649 100644 --- a/examples/react/composable-tables/package.json +++ b/examples/react/composable-tables/package.json @@ -14,8 +14,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/react-devtools": "^0.10.8", "@tanstack/react-store": "^0.11.0", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/custom-plugin/package.json b/examples/react/custom-plugin/package.json index e627d6b7ad..f33e0abb4a 100644 --- a/examples/react/custom-plugin/package.json +++ b/examples/react/custom-plugin/package.json @@ -13,7 +13,7 @@ "dependencies": { "@faker-js/faker": "^10.5.0", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/expanding/package.json b/examples/react/expanding/package.json index f2c52d7cf8..2a67941006 100644 --- a/examples/react/expanding/package.json +++ b/examples/react/expanding/package.json @@ -13,7 +13,7 @@ "dependencies": { "@faker-js/faker": "^10.5.0", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/filters-faceted/package.json b/examples/react/filters-faceted/package.json index dc04eaa083..c9f2baba6a 100644 --- a/examples/react/filters-faceted/package.json +++ b/examples/react/filters-faceted/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/filters-fuzzy/package.json b/examples/react/filters-fuzzy/package.json index 765493936b..7711463ad7 100644 --- a/examples/react/filters-fuzzy/package.json +++ b/examples/react/filters-fuzzy/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/filters/package.json b/examples/react/filters/package.json index 4bbac36d91..92140c54ba 100644 --- a/examples/react/filters/package.json +++ b/examples/react/filters/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/grouped-aggregation/package.json b/examples/react/grouped-aggregation/package.json index 7ee2851f07..c5b93304e3 100644 --- a/examples/react/grouped-aggregation/package.json +++ b/examples/react/grouped-aggregation/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/grouping/package.json b/examples/react/grouping/package.json index e47bc36f6c..20caae42d7 100644 --- a/examples/react/grouping/package.json +++ b/examples/react/grouping/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/header-groups/package.json b/examples/react/header-groups/package.json index 9843b3446e..1bbc3ed0d2 100644 --- a/examples/react/header-groups/package.json +++ b/examples/react/header-groups/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/kitchen-sink-chakra-ui/package.json b/examples/react/kitchen-sink-chakra-ui/package.json index e81d4b594f..93f115e9d9 100644 --- a/examples/react/kitchen-sink-chakra-ui/package.json +++ b/examples/react/kitchen-sink-chakra-ui/package.json @@ -22,8 +22,8 @@ "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/react-devtools": "^0.10.8", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "date-fns": "^4.4.0", "next-themes": "^0.4.6", "react": "^19.2.7", diff --git a/examples/react/kitchen-sink-hero-ui/package.json b/examples/react/kitchen-sink-hero-ui/package.json index 64fa57fad1..50c5454193 100644 --- a/examples/react/kitchen-sink-hero-ui/package.json +++ b/examples/react/kitchen-sink-hero-ui/package.json @@ -23,8 +23,8 @@ "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/react-devtools": "^0.10.8", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "date-fns": "^4.4.0", "react": "^19.2.7", "react-dom": "^19.2.7", diff --git a/examples/react/kitchen-sink-mantine/package.json b/examples/react/kitchen-sink-mantine/package.json index 91dc5ae28d..90e8558529 100644 --- a/examples/react/kitchen-sink-mantine/package.json +++ b/examples/react/kitchen-sink-mantine/package.json @@ -22,8 +22,8 @@ "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/react-devtools": "^0.10.8", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "date-fns": "^4.4.0", "react": "^19.2.7", "react-dom": "^19.2.7" diff --git a/examples/react/kitchen-sink-material-ui/package.json b/examples/react/kitchen-sink-material-ui/package.json index cde361bf1e..89d0dafe5f 100644 --- a/examples/react/kitchen-sink-material-ui/package.json +++ b/examples/react/kitchen-sink-material-ui/package.json @@ -23,8 +23,8 @@ "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/react-devtools": "^0.10.8", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "date-fns": "^4.4.0", "react": "^19.2.7", "react-dom": "^19.2.7" diff --git a/examples/react/kitchen-sink-react-aria/package.json b/examples/react/kitchen-sink-react-aria/package.json index 0f7eed6816..a0b466204a 100644 --- a/examples/react/kitchen-sink-react-aria/package.json +++ b/examples/react/kitchen-sink-react-aria/package.json @@ -21,8 +21,8 @@ "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/react-devtools": "^0.10.8", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "date-fns": "^4.4.0", "react": "^19.2.7", "react-aria-components": "^1.19.0", diff --git a/examples/react/kitchen-sink-shadcn-base/package.json b/examples/react/kitchen-sink-shadcn-base/package.json index 5572c138da..c6ddf398fc 100644 --- a/examples/react/kitchen-sink-shadcn-base/package.json +++ b/examples/react/kitchen-sink-shadcn-base/package.json @@ -23,8 +23,8 @@ "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/react-devtools": "^0.10.8", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "1.1.1", diff --git a/examples/react/kitchen-sink-shadcn-radix/package.json b/examples/react/kitchen-sink-shadcn-radix/package.json index 0ab8b4192e..1391ba565e 100644 --- a/examples/react/kitchen-sink-shadcn-radix/package.json +++ b/examples/react/kitchen-sink-shadcn-radix/package.json @@ -22,8 +22,8 @@ "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/react-devtools": "^0.10.8", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "1.1.1", diff --git a/examples/react/kitchen-sink/package.json b/examples/react/kitchen-sink/package.json index 863f9e055d..de98f25153 100644 --- a/examples/react/kitchen-sink/package.json +++ b/examples/react/kitchen-sink/package.json @@ -23,8 +23,8 @@ "@tanstack/react-router": "^1.170.17", "@tanstack/react-start": "^1.168.27", "@tanstack/react-store": "^0.11.0", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/lib-chakra-ui/package.json b/examples/react/lib-chakra-ui/package.json index 90e8706391..2b9fd0c9d6 100644 --- a/examples/react/lib-chakra-ui/package.json +++ b/examples/react/lib-chakra-ui/package.json @@ -16,7 +16,7 @@ "@emotion/react": "^11.14.0", "@faker-js/faker": "^10.5.0", "@tabler/icons-react": "^3.44.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/lib-hero-ui/package.json b/examples/react/lib-hero-ui/package.json index c93445ab5d..c1563b83a0 100644 --- a/examples/react/lib-hero-ui/package.json +++ b/examples/react/lib-hero-ui/package.json @@ -16,7 +16,7 @@ "@heroui/react": "^3.2.1", "@heroui/styles": "^3.2.1", "@tailwindcss/vite": "^4.3.1", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7", "tailwindcss": "^4.3.1" diff --git a/examples/react/lib-mantine/package.json b/examples/react/lib-mantine/package.json index bfbbbdb491..a20626522c 100644 --- a/examples/react/lib-mantine/package.json +++ b/examples/react/lib-mantine/package.json @@ -16,7 +16,7 @@ "@mantine/core": "^9.4.0", "@mantine/hooks": "^9.4.0", "@tabler/icons-react": "^3.44.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/lib-material-ui/package.json b/examples/react/lib-material-ui/package.json index 9e15ab0b50..973232bd5c 100644 --- a/examples/react/lib-material-ui/package.json +++ b/examples/react/lib-material-ui/package.json @@ -17,7 +17,7 @@ "@faker-js/faker": "^10.5.0", "@mui/icons-material": "^9.1.1", "@mui/material": "^9.1.2", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/lib-react-aria/package.json b/examples/react/lib-react-aria/package.json index 005ec14bf8..05bdb07697 100644 --- a/examples/react/lib-react-aria/package.json +++ b/examples/react/lib-react-aria/package.json @@ -14,7 +14,7 @@ "dependencies": { "@faker-js/faker": "^10.5.0", "@tailwindcss/vite": "^4.3.1", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-aria-components": "^1.19.0", "react-dom": "^19.2.7", diff --git a/examples/react/lib-shadcn-base/package.json b/examples/react/lib-shadcn-base/package.json index 84b06d7bf1..85aaff9bb3 100644 --- a/examples/react/lib-shadcn-base/package.json +++ b/examples/react/lib-shadcn-base/package.json @@ -16,7 +16,7 @@ "@faker-js/faker": "^10.5.0", "@tailwindcss/vite": "^4.3.1", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "lucide-react": "^1.21.0", diff --git a/examples/react/lib-shadcn-radix/package.json b/examples/react/lib-shadcn-radix/package.json index a4ac3fdaef..93b93e22e4 100644 --- a/examples/react/lib-shadcn-radix/package.json +++ b/examples/react/lib-shadcn-radix/package.json @@ -15,7 +15,7 @@ "@faker-js/faker": "^10.5.0", "@tailwindcss/vite": "^4.3.1", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "lucide-react": "^1.21.0", diff --git a/examples/react/mantine-react-table/package.json b/examples/react/mantine-react-table/package.json index 330660c0ee..cf58117647 100644 --- a/examples/react/mantine-react-table/package.json +++ b/examples/react/mantine-react-table/package.json @@ -18,7 +18,7 @@ "@tabler/icons-react": "^3.44.0", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/react-store": "^0.11.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "@tanstack/react-virtual": "^3.14.5", "clsx": "^2.1.1", "dayjs": "^1.11.21", diff --git a/examples/react/material-react-table/package.json b/examples/react/material-react-table/package.json index 58f93ee235..2d58bdb51a 100644 --- a/examples/react/material-react-table/package.json +++ b/examples/react/material-react-table/package.json @@ -21,7 +21,7 @@ "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/react-pacer": "^0.22.1", "@tanstack/react-store": "^0.11.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "@tanstack/react-virtual": "^3.14.5", "highlight-words": "^2.0.0", "react": "^19.2.7", diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 41430ef6b4..1f4393e953 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -13,7 +13,7 @@ "dependencies": { "@faker-js/faker": "^10.5.0", "@tanstack/react-store": "^0.11.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/row-dnd/package.json b/examples/react/row-dnd/package.json index d219a0a340..619a91b05c 100644 --- a/examples/react/row-dnd/package.json +++ b/examples/react/row-dnd/package.json @@ -16,7 +16,7 @@ "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/row-pinning/package.json b/examples/react/row-pinning/package.json index 9c229641bd..d748bafc41 100644 --- a/examples/react/row-pinning/package.json +++ b/examples/react/row-pinning/package.json @@ -13,7 +13,7 @@ "dependencies": { "@faker-js/faker": "^10.5.0", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/row-selection/package.json b/examples/react/row-selection/package.json index 10b82b4a27..f5fdc39450 100644 --- a/examples/react/row-selection/package.json +++ b/examples/react/row-selection/package.json @@ -15,8 +15,8 @@ "@tanstack/react-devtools": "^0.10.8", "@tanstack/react-pacer": "^0.22.1", "@tanstack/react-store": "^0.11.0", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/sorting/package.json b/examples/react/sorting/package.json index 5d3a33ac59..a2d25e3080 100644 --- a/examples/react/sorting/package.json +++ b/examples/react/sorting/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/sub-components/package.json b/examples/react/sub-components/package.json index 3ef9de06b6..6de1ed2d16 100644 --- a/examples/react/sub-components/package.json +++ b/examples/react/sub-components/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/virtualized-columns-experimental/package.json b/examples/react/virtualized-columns-experimental/package.json index 2cd4d4ca44..579aa3d085 100644 --- a/examples/react/virtualized-columns-experimental/package.json +++ b/examples/react/virtualized-columns-experimental/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "@tanstack/react-virtual": "^3.14.5", "react": "^19.2.7", "react-dom": "^19.2.7" diff --git a/examples/react/virtualized-columns/package.json b/examples/react/virtualized-columns/package.json index b05b432f5e..4a495f5ee4 100644 --- a/examples/react/virtualized-columns/package.json +++ b/examples/react/virtualized-columns/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "@tanstack/react-virtual": "^3.14.5", "react": "^19.2.7", "react-dom": "^19.2.7" diff --git a/examples/react/virtualized-infinite-scrolling/package.json b/examples/react/virtualized-infinite-scrolling/package.json index 42e7727e3a..7d238b3cfe 100644 --- a/examples/react/virtualized-infinite-scrolling/package.json +++ b/examples/react/virtualized-infinite-scrolling/package.json @@ -13,7 +13,7 @@ "dependencies": { "@faker-js/faker": "^10.5.0", "@tanstack/react-query": "^5.101.2", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "@tanstack/react-virtual": "^3.14.5", "react": "^19.2.7", "react-dom": "^19.2.7" diff --git a/examples/react/virtualized-rows-experimental/package.json b/examples/react/virtualized-rows-experimental/package.json index d56983be2b..7b3f78bb45 100644 --- a/examples/react/virtualized-rows-experimental/package.json +++ b/examples/react/virtualized-rows-experimental/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "@tanstack/react-virtual": "^3.14.5", "react": "^19.2.7", "react-dom": "^19.2.7" diff --git a/examples/react/virtualized-rows/package.json b/examples/react/virtualized-rows/package.json index 5b433ceb79..8345ed84c4 100644 --- a/examples/react/virtualized-rows/package.json +++ b/examples/react/virtualized-rows/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "@tanstack/react-virtual": "^3.14.5", "react": "^19.2.7", "react-dom": "^19.2.7" diff --git a/examples/react/web-worker-row-models/package.json b/examples/react/web-worker-row-models/package.json index b1f714ed68..6ce3c4bdb2 100644 --- a/examples/react/web-worker-row-models/package.json +++ b/examples/react/web-worker-row-models/package.json @@ -17,8 +17,8 @@ "@tanstack/react-router": "^1.170.17", "@tanstack/react-start": "^1.168.27", "@tanstack/react-store": "^0.11.0", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/with-tanstack-form/package.json b/examples/react/with-tanstack-form/package.json index ebc4be6c84..291231ca4e 100644 --- a/examples/react/with-tanstack-form/package.json +++ b/examples/react/with-tanstack-form/package.json @@ -16,8 +16,8 @@ "@tanstack/react-form": "^1.33.1", "@tanstack/react-form-devtools": "^0.2.30", "@tanstack/react-pacer": "^0.22.1", - "@tanstack/react-table": "^9.0.0-beta.48", - "@tanstack/react-table-devtools": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", + "@tanstack/react-table-devtools": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7", "zod": "^4.4.3" diff --git a/examples/react/with-tanstack-query/package.json b/examples/react/with-tanstack-query/package.json index c62f1afb8d..e0d47cc172 100644 --- a/examples/react/with-tanstack-query/package.json +++ b/examples/react/with-tanstack-query/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@tanstack/react-query": "^5.101.2", "@tanstack/react-store": "^0.11.0", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/react/with-tanstack-router/package.json b/examples/react/with-tanstack-router/package.json index 6ae7e5577d..8d95c8b7b4 100644 --- a/examples/react/with-tanstack-router/package.json +++ b/examples/react/with-tanstack-router/package.json @@ -14,7 +14,7 @@ "@tanstack/react-pacer": "^0.22.1", "@tanstack/react-query": "^5.101.2", "@tanstack/react-router": "^1.170.17", - "@tanstack/react-table": "^9.0.0-beta.48", + "@tanstack/react-table": "^9.0.0-beta.49", "react": "^19.2.7", "react-dom": "^19.2.7" }, diff --git a/examples/solid/aggregation/package.json b/examples/solid/aggregation/package.json index 4d2b9e8e49..23473a4b00 100644 --- a/examples/solid/aggregation/package.json +++ b/examples/solid/aggregation/package.json @@ -18,7 +18,7 @@ "vite-plugin-solid": "^2.11.12" }, "dependencies": { - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/basic-app-table/package.json b/examples/solid/basic-app-table/package.json index 28fb301ccf..728f421a3f 100644 --- a/examples/solid/basic-app-table/package.json +++ b/examples/solid/basic-app-table/package.json @@ -19,8 +19,8 @@ "dependencies": { "@faker-js/faker": "^10.5.0", "@tanstack/solid-devtools": "^0.8.8", - "@tanstack/solid-table": "^9.0.0-beta.48", - "@tanstack/solid-table-devtools": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", + "@tanstack/solid-table-devtools": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/basic-dynamic-columns/package.json b/examples/solid/basic-dynamic-columns/package.json index 292227a2f1..2a0271f2d3 100644 --- a/examples/solid/basic-dynamic-columns/package.json +++ b/examples/solid/basic-dynamic-columns/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@tanstack/solid-pacer": "^0.21.1", - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/basic-external-atoms/package.json b/examples/solid/basic-external-atoms/package.json index 96717cd1ef..1bc23adb7c 100644 --- a/examples/solid/basic-external-atoms/package.json +++ b/examples/solid/basic-external-atoms/package.json @@ -20,8 +20,8 @@ "dependencies": { "@tanstack/solid-devtools": "^0.8.8", "@tanstack/solid-store": "^0.11.0", - "@tanstack/solid-table": "^9.0.0-beta.48", - "@tanstack/solid-table-devtools": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", + "@tanstack/solid-table-devtools": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/basic-external-state/package.json b/examples/solid/basic-external-state/package.json index 852855c905..67a91b07e1 100644 --- a/examples/solid/basic-external-state/package.json +++ b/examples/solid/basic-external-state/package.json @@ -19,8 +19,8 @@ }, "dependencies": { "@tanstack/solid-devtools": "^0.8.8", - "@tanstack/solid-table": "^9.0.0-beta.48", - "@tanstack/solid-table-devtools": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", + "@tanstack/solid-table-devtools": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/basic-use-table/package.json b/examples/solid/basic-use-table/package.json index dfa4428f5b..ddd2038365 100644 --- a/examples/solid/basic-use-table/package.json +++ b/examples/solid/basic-use-table/package.json @@ -18,8 +18,8 @@ }, "dependencies": { "@tanstack/solid-devtools": "^0.8.8", - "@tanstack/solid-table": "^9.0.0-beta.48", - "@tanstack/solid-table-devtools": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", + "@tanstack/solid-table-devtools": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/column-ordering/package.json b/examples/solid/column-ordering/package.json index c137d46caa..e8daf11e46 100644 --- a/examples/solid/column-ordering/package.json +++ b/examples/solid/column-ordering/package.json @@ -18,7 +18,7 @@ "vite-plugin-solid": "^2.11.12" }, "dependencies": { - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/column-pinning-split/package.json b/examples/solid/column-pinning-split/package.json index accccb7693..a68f29c5e6 100644 --- a/examples/solid/column-pinning-split/package.json +++ b/examples/solid/column-pinning-split/package.json @@ -18,7 +18,7 @@ "vite-plugin-solid": "^2.11.12" }, "dependencies": { - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/column-pinning-sticky/package.json b/examples/solid/column-pinning-sticky/package.json index 839ad94a6d..be6c926ff6 100644 --- a/examples/solid/column-pinning-sticky/package.json +++ b/examples/solid/column-pinning-sticky/package.json @@ -18,7 +18,7 @@ "vite-plugin-solid": "^2.11.12" }, "dependencies": { - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/column-pinning/package.json b/examples/solid/column-pinning/package.json index c42a14f08b..1b7a2ccd5d 100644 --- a/examples/solid/column-pinning/package.json +++ b/examples/solid/column-pinning/package.json @@ -18,7 +18,7 @@ "vite-plugin-solid": "^2.11.12" }, "dependencies": { - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/column-resizing-performant/package.json b/examples/solid/column-resizing-performant/package.json index 84416c32a2..74889aa153 100644 --- a/examples/solid/column-resizing-performant/package.json +++ b/examples/solid/column-resizing-performant/package.json @@ -18,7 +18,7 @@ "vite-plugin-solid": "^2.11.12" }, "dependencies": { - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/column-resizing/package.json b/examples/solid/column-resizing/package.json index 89ff25b3c7..3342198388 100644 --- a/examples/solid/column-resizing/package.json +++ b/examples/solid/column-resizing/package.json @@ -18,7 +18,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/column-sizing/package.json b/examples/solid/column-sizing/package.json index 5657ed5ed6..d2eca17c6b 100644 --- a/examples/solid/column-sizing/package.json +++ b/examples/solid/column-sizing/package.json @@ -18,7 +18,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/column-visibility/package.json b/examples/solid/column-visibility/package.json index 14d8cd6d1a..9d0a141fd4 100644 --- a/examples/solid/column-visibility/package.json +++ b/examples/solid/column-visibility/package.json @@ -18,7 +18,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/composable-tables/package.json b/examples/solid/composable-tables/package.json index 3af4b95e24..80153ad94d 100644 --- a/examples/solid/composable-tables/package.json +++ b/examples/solid/composable-tables/package.json @@ -18,8 +18,8 @@ }, "dependencies": { "@tanstack/solid-devtools": "^0.8.8", - "@tanstack/solid-table": "^9.0.0-beta.48", - "@tanstack/solid-table-devtools": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", + "@tanstack/solid-table-devtools": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/expanding/package.json b/examples/solid/expanding/package.json index be4b19c6d5..d67c60e1f6 100644 --- a/examples/solid/expanding/package.json +++ b/examples/solid/expanding/package.json @@ -18,7 +18,7 @@ "vite-plugin-solid": "^2.11.12" }, "dependencies": { - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/filters-faceted/package.json b/examples/solid/filters-faceted/package.json index 937c4045b1..18615a62fa 100644 --- a/examples/solid/filters-faceted/package.json +++ b/examples/solid/filters-faceted/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@tanstack/solid-pacer": "^0.21.1", - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/filters-fuzzy/package.json b/examples/solid/filters-fuzzy/package.json index 5a9d823a69..72db5c32db 100644 --- a/examples/solid/filters-fuzzy/package.json +++ b/examples/solid/filters-fuzzy/package.json @@ -20,7 +20,7 @@ "dependencies": { "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/solid-pacer": "^0.21.1", - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/filters/package.json b/examples/solid/filters/package.json index 4bea2629e8..1da705cb5f 100644 --- a/examples/solid/filters/package.json +++ b/examples/solid/filters/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@tanstack/solid-pacer": "^0.21.1", - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/grouped-aggregation/package.json b/examples/solid/grouped-aggregation/package.json index 545b0eb19f..7a181c4584 100644 --- a/examples/solid/grouped-aggregation/package.json +++ b/examples/solid/grouped-aggregation/package.json @@ -18,7 +18,7 @@ "vite-plugin-solid": "^2.11.12" }, "dependencies": { - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/grouping/package.json b/examples/solid/grouping/package.json index 0278fcabb1..b0d31d128c 100644 --- a/examples/solid/grouping/package.json +++ b/examples/solid/grouping/package.json @@ -18,7 +18,7 @@ "vite-plugin-solid": "^2.11.12" }, "dependencies": { - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/header-groups/package.json b/examples/solid/header-groups/package.json index 44ba46bca9..9d98d95f1e 100644 --- a/examples/solid/header-groups/package.json +++ b/examples/solid/header-groups/package.json @@ -18,7 +18,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/kitchen-sink/package.json b/examples/solid/kitchen-sink/package.json index 64de74dfed..c4371cda85 100644 --- a/examples/solid/kitchen-sink/package.json +++ b/examples/solid/kitchen-sink/package.json @@ -20,8 +20,8 @@ "dependencies": { "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/solid-devtools": "^0.8.8", - "@tanstack/solid-table": "^9.0.0-beta.48", - "@tanstack/solid-table-devtools": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", + "@tanstack/solid-table-devtools": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/pagination/package.json b/examples/solid/pagination/package.json index 37f4ed1e81..dc08b93fc6 100644 --- a/examples/solid/pagination/package.json +++ b/examples/solid/pagination/package.json @@ -18,7 +18,7 @@ "vite-plugin-solid": "^2.11.12" }, "dependencies": { - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/row-pinning/package.json b/examples/solid/row-pinning/package.json index 7edf8e40b0..7fe5f092c8 100644 --- a/examples/solid/row-pinning/package.json +++ b/examples/solid/row-pinning/package.json @@ -18,7 +18,7 @@ "vite-plugin-solid": "^2.11.12" }, "dependencies": { - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/row-selection/package.json b/examples/solid/row-selection/package.json index 52cacacd51..4c401bc356 100644 --- a/examples/solid/row-selection/package.json +++ b/examples/solid/row-selection/package.json @@ -19,8 +19,8 @@ }, "dependencies": { "@tanstack/solid-devtools": "^0.8.8", - "@tanstack/solid-table": "^9.0.0-beta.48", - "@tanstack/solid-table-devtools": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", + "@tanstack/solid-table-devtools": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/sorting/package.json b/examples/solid/sorting/package.json index 607c487357..fa0522b99f 100644 --- a/examples/solid/sorting/package.json +++ b/examples/solid/sorting/package.json @@ -18,7 +18,7 @@ "vite-plugin-solid": "^2.11.12" }, "dependencies": { - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/sub-components/package.json b/examples/solid/sub-components/package.json index 4292733209..a68f613512 100644 --- a/examples/solid/sub-components/package.json +++ b/examples/solid/sub-components/package.json @@ -18,7 +18,7 @@ "vite-plugin-solid": "^2.11.12" }, "dependencies": { - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/virtualized-columns/package.json b/examples/solid/virtualized-columns/package.json index 95d43e8d6b..0bd36ee788 100644 --- a/examples/solid/virtualized-columns/package.json +++ b/examples/solid/virtualized-columns/package.json @@ -18,7 +18,7 @@ "vite-plugin-solid": "^2.11.12" }, "dependencies": { - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "@tanstack/solid-virtual": "^3.13.32", "solid-js": "^1.9.13" } diff --git a/examples/solid/virtualized-infinite-scrolling/package.json b/examples/solid/virtualized-infinite-scrolling/package.json index 56985c2720..dbe9797727 100644 --- a/examples/solid/virtualized-infinite-scrolling/package.json +++ b/examples/solid/virtualized-infinite-scrolling/package.json @@ -20,7 +20,7 @@ "dependencies": { "@tanstack/solid-query": "^5.101.2", "@tanstack/solid-store": "^0.11.0", - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "@tanstack/solid-virtual": "^3.13.32", "solid-js": "^1.9.13" } diff --git a/examples/solid/virtualized-rows/package.json b/examples/solid/virtualized-rows/package.json index 4d5a1a8672..e5f5d9d8a4 100644 --- a/examples/solid/virtualized-rows/package.json +++ b/examples/solid/virtualized-rows/package.json @@ -18,7 +18,7 @@ "vite-plugin-solid": "^2.11.12" }, "dependencies": { - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "@tanstack/solid-virtual": "^3.13.32", "solid-js": "^1.9.13" } diff --git a/examples/solid/with-tanstack-form/package.json b/examples/solid/with-tanstack-form/package.json index c5460b6cd8..cdae268675 100644 --- a/examples/solid/with-tanstack-form/package.json +++ b/examples/solid/with-tanstack-form/package.json @@ -21,8 +21,8 @@ "@tanstack/solid-devtools": "^0.8.8", "@tanstack/solid-form": "^1.33.1", "@tanstack/solid-form-devtools": "^0.2.30", - "@tanstack/solid-table": "^9.0.0-beta.48", - "@tanstack/solid-table-devtools": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", + "@tanstack/solid-table-devtools": "^9.0.0-beta.49", "solid-js": "^1.9.13", "zod": "^4.4.3" } diff --git a/examples/solid/with-tanstack-query/package.json b/examples/solid/with-tanstack-query/package.json index d6190e92da..8d1e9db452 100644 --- a/examples/solid/with-tanstack-query/package.json +++ b/examples/solid/with-tanstack-query/package.json @@ -20,7 +20,7 @@ "dependencies": { "@tanstack/solid-query": "^5.101.2", "@tanstack/solid-store": "^0.11.0", - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/solid/with-tanstack-router/package.json b/examples/solid/with-tanstack-router/package.json index 31df4217a9..c5516f931e 100644 --- a/examples/solid/with-tanstack-router/package.json +++ b/examples/solid/with-tanstack-router/package.json @@ -22,7 +22,7 @@ "@tanstack/solid-pacer": "^0.21.1", "@tanstack/solid-query": "^5.101.2", "@tanstack/solid-router": "^1.170.17", - "@tanstack/solid-table": "^9.0.0-beta.48", + "@tanstack/solid-table": "^9.0.0-beta.49", "solid-js": "^1.9.13" } } diff --git a/examples/svelte/aggregation/package.json b/examples/svelte/aggregation/package.json index 086ed69220..7fb0ad9887 100644 --- a/examples/svelte/aggregation/package.json +++ b/examples/svelte/aggregation/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/basic-app-table/package.json b/examples/svelte/basic-app-table/package.json index d829b6c3bf..0b8a1fe855 100644 --- a/examples/svelte/basic-app-table/package.json +++ b/examples/svelte/basic-app-table/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/basic-create-table/package.json b/examples/svelte/basic-create-table/package.json index 6b08157ad9..6ee1fe4a39 100644 --- a/examples/svelte/basic-create-table/package.json +++ b/examples/svelte/basic-create-table/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/basic-dynamic-columns/package.json b/examples/svelte/basic-dynamic-columns/package.json index 7378a4af3c..9503a27147 100644 --- a/examples/svelte/basic-dynamic-columns/package.json +++ b/examples/svelte/basic-dynamic-columns/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/basic-external-atoms/package.json b/examples/svelte/basic-external-atoms/package.json index e9e613789a..e8ccf0fe70 100644 --- a/examples/svelte/basic-external-atoms/package.json +++ b/examples/svelte/basic-external-atoms/package.json @@ -17,7 +17,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/basic-external-state/package.json b/examples/svelte/basic-external-state/package.json index 61b29c42f6..f21a99f6b5 100644 --- a/examples/svelte/basic-external-state/package.json +++ b/examples/svelte/basic-external-state/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/basic-snippets/package.json b/examples/svelte/basic-snippets/package.json index d0c916e03b..12ea759deb 100644 --- a/examples/svelte/basic-snippets/package.json +++ b/examples/svelte/basic-snippets/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/column-ordering/package.json b/examples/svelte/column-ordering/package.json index 48cef1cee3..269a470622 100644 --- a/examples/svelte/column-ordering/package.json +++ b/examples/svelte/column-ordering/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/column-pinning-split/package.json b/examples/svelte/column-pinning-split/package.json index b96a8b1095..cf31ca57f9 100644 --- a/examples/svelte/column-pinning-split/package.json +++ b/examples/svelte/column-pinning-split/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/column-pinning-sticky/package.json b/examples/svelte/column-pinning-sticky/package.json index 7012caf05b..8350f2eba3 100644 --- a/examples/svelte/column-pinning-sticky/package.json +++ b/examples/svelte/column-pinning-sticky/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/column-pinning/package.json b/examples/svelte/column-pinning/package.json index 97f1ec5134..1ea17ef1c6 100644 --- a/examples/svelte/column-pinning/package.json +++ b/examples/svelte/column-pinning/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/column-resizing-performant/package.json b/examples/svelte/column-resizing-performant/package.json index eda9ba6ccc..d4b432b373 100644 --- a/examples/svelte/column-resizing-performant/package.json +++ b/examples/svelte/column-resizing-performant/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/column-resizing/package.json b/examples/svelte/column-resizing/package.json index 2f8c75d865..1e223c00fe 100644 --- a/examples/svelte/column-resizing/package.json +++ b/examples/svelte/column-resizing/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/column-sizing/package.json b/examples/svelte/column-sizing/package.json index fa1c2c8e91..ace5ae7b11 100644 --- a/examples/svelte/column-sizing/package.json +++ b/examples/svelte/column-sizing/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/column-visibility/package.json b/examples/svelte/column-visibility/package.json index 2a45afebc8..632ab99eb5 100644 --- a/examples/svelte/column-visibility/package.json +++ b/examples/svelte/column-visibility/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/composable-tables/package.json b/examples/svelte/composable-tables/package.json index ebcd31db57..e8f28793e6 100644 --- a/examples/svelte/composable-tables/package.json +++ b/examples/svelte/composable-tables/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/expanding/package.json b/examples/svelte/expanding/package.json index 8a5ba3d7ba..e231983dda 100644 --- a/examples/svelte/expanding/package.json +++ b/examples/svelte/expanding/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/filtering/package.json b/examples/svelte/filtering/package.json index 330bc1214d..e9caf71ff1 100644 --- a/examples/svelte/filtering/package.json +++ b/examples/svelte/filtering/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/filters-faceted/package.json b/examples/svelte/filters-faceted/package.json index 6bbcfd5019..c189bc82a9 100644 --- a/examples/svelte/filters-faceted/package.json +++ b/examples/svelte/filters-faceted/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/filters-fuzzy/package.json b/examples/svelte/filters-fuzzy/package.json index 1ba4b0434e..2cb42b0bdc 100644 --- a/examples/svelte/filters-fuzzy/package.json +++ b/examples/svelte/filters-fuzzy/package.json @@ -15,7 +15,7 @@ "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/grouped-aggregation/package.json b/examples/svelte/grouped-aggregation/package.json index 495a8e9801..dfb2f53e58 100644 --- a/examples/svelte/grouped-aggregation/package.json +++ b/examples/svelte/grouped-aggregation/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/grouping/package.json b/examples/svelte/grouping/package.json index 7649f59f05..3caba366d8 100644 --- a/examples/svelte/grouping/package.json +++ b/examples/svelte/grouping/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/header-groups/package.json b/examples/svelte/header-groups/package.json index 1a9899a949..73f0015c0e 100644 --- a/examples/svelte/header-groups/package.json +++ b/examples/svelte/header-groups/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/kitchen-sink/package.json b/examples/svelte/kitchen-sink/package.json index 3e7df02efa..ec3e48f31e 100644 --- a/examples/svelte/kitchen-sink/package.json +++ b/examples/svelte/kitchen-sink/package.json @@ -15,7 +15,7 @@ "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/pagination/package.json b/examples/svelte/pagination/package.json index a384c06350..43e215f466 100644 --- a/examples/svelte/pagination/package.json +++ b/examples/svelte/pagination/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/row-pinning/package.json b/examples/svelte/row-pinning/package.json index ee4fe59d69..62d23b9698 100644 --- a/examples/svelte/row-pinning/package.json +++ b/examples/svelte/row-pinning/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/row-selection/package.json b/examples/svelte/row-selection/package.json index cb19b16bc6..231ea12200 100644 --- a/examples/svelte/row-selection/package.json +++ b/examples/svelte/row-selection/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/sorting/package.json b/examples/svelte/sorting/package.json index 062f8a5bd1..84edfe8939 100644 --- a/examples/svelte/sorting/package.json +++ b/examples/svelte/sorting/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/sub-components/package.json b/examples/svelte/sub-components/package.json index d7e459fa07..27fdb3400c 100644 --- a/examples/svelte/sub-components/package.json +++ b/examples/svelte/sub-components/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", "svelte-check": "^4.6.0", diff --git a/examples/svelte/virtualized-columns/package.json b/examples/svelte/virtualized-columns/package.json index c083d6b6ec..71b05b2c59 100644 --- a/examples/svelte/virtualized-columns/package.json +++ b/examples/svelte/virtualized-columns/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tanstack/svelte-virtual": "^3.13.31", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", diff --git a/examples/svelte/virtualized-infinite-scrolling/package.json b/examples/svelte/virtualized-infinite-scrolling/package.json index 70a2b95a34..ca8cf71465 100644 --- a/examples/svelte/virtualized-infinite-scrolling/package.json +++ b/examples/svelte/virtualized-infinite-scrolling/package.json @@ -15,7 +15,7 @@ "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", "@tanstack/svelte-query": "^6.1.36", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tanstack/svelte-virtual": "^3.13.31", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", diff --git a/examples/svelte/virtualized-rows/package.json b/examples/svelte/virtualized-rows/package.json index 189c02cff1..5905854f4b 100644 --- a/examples/svelte/virtualized-rows/package.json +++ b/examples/svelte/virtualized-rows/package.json @@ -14,7 +14,7 @@ "@faker-js/faker": "^10.5.0", "@rollup/plugin-replace": "^6.0.3", "@sveltejs/vite-plugin-svelte": "^7.1.2", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "@tanstack/svelte-virtual": "^3.13.31", "@tsconfig/svelte": "^5.0.8", "svelte": "^5.56.2", diff --git a/examples/svelte/with-tanstack-form/package.json b/examples/svelte/with-tanstack-form/package.json index ef9c2ef47a..f0935969a7 100644 --- a/examples/svelte/with-tanstack-form/package.json +++ b/examples/svelte/with-tanstack-form/package.json @@ -23,7 +23,7 @@ "dependencies": { "@tanstack/form-core": "^1.33.1", "@tanstack/svelte-form": "^1.33.1", - "@tanstack/svelte-table": "^9.0.0-beta.48", + "@tanstack/svelte-table": "^9.0.0-beta.49", "zod": "^4.4.3" } } diff --git a/examples/svelte/with-tanstack-query/package.json b/examples/svelte/with-tanstack-query/package.json index 59122cf340..a4c2e1781c 100644 --- a/examples/svelte/with-tanstack-query/package.json +++ b/examples/svelte/with-tanstack-query/package.json @@ -22,6 +22,6 @@ }, "dependencies": { "@tanstack/svelte-query": "^6.1.36", - "@tanstack/svelte-table": "^9.0.0-beta.48" + "@tanstack/svelte-table": "^9.0.0-beta.49" } } diff --git a/examples/vanilla/aggregation/package.json b/examples/vanilla/aggregation/package.json index eea3de99a5..02d1479d50 100644 --- a/examples/vanilla/aggregation/package.json +++ b/examples/vanilla/aggregation/package.json @@ -17,6 +17,6 @@ "vite": "^8.1.0" }, "dependencies": { - "@tanstack/table-core": "^9.0.0-beta.48" + "@tanstack/table-core": "^9.0.0-beta.49" } } diff --git a/examples/vanilla/basic/package.json b/examples/vanilla/basic/package.json index edd283e7ec..aa87f05e0b 100644 --- a/examples/vanilla/basic/package.json +++ b/examples/vanilla/basic/package.json @@ -17,6 +17,6 @@ "vite": "^8.1.0" }, "dependencies": { - "@tanstack/table-core": "^9.0.0-beta.48" + "@tanstack/table-core": "^9.0.0-beta.49" } } diff --git a/examples/vanilla/pagination/package.json b/examples/vanilla/pagination/package.json index 000f31a263..1e820a1fc5 100644 --- a/examples/vanilla/pagination/package.json +++ b/examples/vanilla/pagination/package.json @@ -17,6 +17,6 @@ "vite": "^8.1.0" }, "dependencies": { - "@tanstack/table-core": "^9.0.0-beta.48" + "@tanstack/table-core": "^9.0.0-beta.49" } } diff --git a/examples/vanilla/sorting/package.json b/examples/vanilla/sorting/package.json index 381efa3f65..4e6acc4aec 100644 --- a/examples/vanilla/sorting/package.json +++ b/examples/vanilla/sorting/package.json @@ -17,6 +17,6 @@ "vite": "^8.1.0" }, "dependencies": { - "@tanstack/table-core": "^9.0.0-beta.48" + "@tanstack/table-core": "^9.0.0-beta.49" } } diff --git a/examples/vue/aggregation/package.json b/examples/vue/aggregation/package.json index ae0b543259..a59d12f79e 100644 --- a/examples/vue/aggregation/package.json +++ b/examples/vue/aggregation/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/basic-dynamic-columns/package.json b/examples/vue/basic-dynamic-columns/package.json index 47bae2d9b6..2fed01450c 100644 --- a/examples/vue/basic-dynamic-columns/package.json +++ b/examples/vue/basic-dynamic-columns/package.json @@ -12,8 +12,8 @@ "dependencies": { "@faker-js/faker": "^10.5.0", "@tanstack/vue-devtools": "^0.2.22", - "@tanstack/vue-table": "^9.0.0-beta.48", - "@tanstack/vue-table-devtools": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", + "@tanstack/vue-table-devtools": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/basic-external-atoms/package.json b/examples/vue/basic-external-atoms/package.json index 2d82f7185b..f777ac4148 100644 --- a/examples/vue/basic-external-atoms/package.json +++ b/examples/vue/basic-external-atoms/package.json @@ -13,8 +13,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/vue-devtools": "^0.2.22", "@tanstack/vue-store": "^0.11.0", - "@tanstack/vue-table": "^9.0.0-beta.48", - "@tanstack/vue-table-devtools": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", + "@tanstack/vue-table-devtools": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/basic-external-state/package.json b/examples/vue/basic-external-state/package.json index c816e17e5c..fb2da1c132 100644 --- a/examples/vue/basic-external-state/package.json +++ b/examples/vue/basic-external-state/package.json @@ -12,8 +12,8 @@ "dependencies": { "@faker-js/faker": "^10.5.0", "@tanstack/vue-devtools": "^0.2.22", - "@tanstack/vue-table": "^9.0.0-beta.48", - "@tanstack/vue-table-devtools": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", + "@tanstack/vue-table-devtools": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/basic-use-app-table/package.json b/examples/vue/basic-use-app-table/package.json index d55d2bc7a1..912ed8d066 100644 --- a/examples/vue/basic-use-app-table/package.json +++ b/examples/vue/basic-use-app-table/package.json @@ -11,8 +11,8 @@ }, "dependencies": { "@tanstack/vue-devtools": "^0.2.22", - "@tanstack/vue-table": "^9.0.0-beta.48", - "@tanstack/vue-table-devtools": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", + "@tanstack/vue-table-devtools": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/basic-use-table/package.json b/examples/vue/basic-use-table/package.json index 54f641470a..d3c8b33149 100644 --- a/examples/vue/basic-use-table/package.json +++ b/examples/vue/basic-use-table/package.json @@ -11,8 +11,8 @@ }, "dependencies": { "@tanstack/vue-devtools": "^0.2.22", - "@tanstack/vue-table": "^9.0.0-beta.48", - "@tanstack/vue-table-devtools": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", + "@tanstack/vue-table-devtools": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/column-ordering/package.json b/examples/vue/column-ordering/package.json index 495296fc74..7dd4b8eba3 100644 --- a/examples/vue/column-ordering/package.json +++ b/examples/vue/column-ordering/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/column-pinning-split/package.json b/examples/vue/column-pinning-split/package.json index f5c481df0f..4a0e99e7b1 100644 --- a/examples/vue/column-pinning-split/package.json +++ b/examples/vue/column-pinning-split/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/column-pinning-sticky/package.json b/examples/vue/column-pinning-sticky/package.json index 40d1c052a1..b362e2e7d8 100644 --- a/examples/vue/column-pinning-sticky/package.json +++ b/examples/vue/column-pinning-sticky/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/column-pinning/package.json b/examples/vue/column-pinning/package.json index d70f46b04c..0b5848b742 100644 --- a/examples/vue/column-pinning/package.json +++ b/examples/vue/column-pinning/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/column-resizing-performant/package.json b/examples/vue/column-resizing-performant/package.json index 19f3f5a72f..e58b754bba 100644 --- a/examples/vue/column-resizing-performant/package.json +++ b/examples/vue/column-resizing-performant/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/column-resizing/package.json b/examples/vue/column-resizing/package.json index d0eb02b6f1..b4ad4332ec 100644 --- a/examples/vue/column-resizing/package.json +++ b/examples/vue/column-resizing/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/column-sizing/package.json b/examples/vue/column-sizing/package.json index aca57415bd..c8432fc8cb 100644 --- a/examples/vue/column-sizing/package.json +++ b/examples/vue/column-sizing/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/column-visibility/package.json b/examples/vue/column-visibility/package.json index 1108332ad2..68bcfb3506 100644 --- a/examples/vue/column-visibility/package.json +++ b/examples/vue/column-visibility/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/composable-tables/package.json b/examples/vue/composable-tables/package.json index 20c8c563ec..ee46b15388 100644 --- a/examples/vue/composable-tables/package.json +++ b/examples/vue/composable-tables/package.json @@ -12,8 +12,8 @@ "dependencies": { "@tanstack/vue-devtools": "^0.2.22", "@tanstack/vue-store": "^0.11.0", - "@tanstack/vue-table": "^9.0.0-beta.48", - "@tanstack/vue-table-devtools": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", + "@tanstack/vue-table-devtools": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/expanding/package.json b/examples/vue/expanding/package.json index 652a3ee193..992d4b9e38 100644 --- a/examples/vue/expanding/package.json +++ b/examples/vue/expanding/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/filters-faceted/package.json b/examples/vue/filters-faceted/package.json index f1a35b7fcd..2ac4c7c19f 100644 --- a/examples/vue/filters-faceted/package.json +++ b/examples/vue/filters-faceted/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/filters-fuzzy/package.json b/examples/vue/filters-fuzzy/package.json index 5dc21da58f..defe52196b 100644 --- a/examples/vue/filters-fuzzy/package.json +++ b/examples/vue/filters-fuzzy/package.json @@ -12,7 +12,7 @@ "dependencies": { "@faker-js/faker": "^10.5.0", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/filters/package.json b/examples/vue/filters/package.json index a7e941000f..865c5b058a 100644 --- a/examples/vue/filters/package.json +++ b/examples/vue/filters/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/grouped-aggregation/package.json b/examples/vue/grouped-aggregation/package.json index 505371bf57..bdd79ba60a 100644 --- a/examples/vue/grouped-aggregation/package.json +++ b/examples/vue/grouped-aggregation/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/grouping/package.json b/examples/vue/grouping/package.json index f3804451df..cb34da141b 100644 --- a/examples/vue/grouping/package.json +++ b/examples/vue/grouping/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/header-groups/package.json b/examples/vue/header-groups/package.json index 42796ccf64..f70fb6a8ec 100644 --- a/examples/vue/header-groups/package.json +++ b/examples/vue/header-groups/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/kitchen-sink/package.json b/examples/vue/kitchen-sink/package.json index 5f9368fc39..a2978c486d 100644 --- a/examples/vue/kitchen-sink/package.json +++ b/examples/vue/kitchen-sink/package.json @@ -13,8 +13,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/vue-devtools": "^0.2.22", - "@tanstack/vue-table": "^9.0.0-beta.48", - "@tanstack/vue-table-devtools": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", + "@tanstack/vue-table-devtools": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/pagination/package.json b/examples/vue/pagination/package.json index a654215307..9aaf0a496a 100644 --- a/examples/vue/pagination/package.json +++ b/examples/vue/pagination/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/row-pinning/package.json b/examples/vue/row-pinning/package.json index b388515fc3..a37de0cfd2 100644 --- a/examples/vue/row-pinning/package.json +++ b/examples/vue/row-pinning/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/row-selection/package.json b/examples/vue/row-selection/package.json index 808f5f7f00..de123180d0 100644 --- a/examples/vue/row-selection/package.json +++ b/examples/vue/row-selection/package.json @@ -12,8 +12,8 @@ "dependencies": { "@faker-js/faker": "^10.5.0", "@tanstack/vue-devtools": "^0.2.22", - "@tanstack/vue-table": "^9.0.0-beta.48", - "@tanstack/vue-table-devtools": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", + "@tanstack/vue-table-devtools": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/sorting/package.json b/examples/vue/sorting/package.json index f73228c75f..b58acae61a 100644 --- a/examples/vue/sorting/package.json +++ b/examples/vue/sorting/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/sub-components/package.json b/examples/vue/sub-components/package.json index b6a238aefa..770f640a3f 100644 --- a/examples/vue/sub-components/package.json +++ b/examples/vue/sub-components/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/examples/vue/virtualized-columns/package.json b/examples/vue/virtualized-columns/package.json index 5112a7db39..e9ef1bdca3 100644 --- a/examples/vue/virtualized-columns/package.json +++ b/examples/vue/virtualized-columns/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "@tanstack/vue-virtual": "^3.13.31", "vue": "^3.5.38" }, diff --git a/examples/vue/virtualized-infinite-scrolling/package.json b/examples/vue/virtualized-infinite-scrolling/package.json index 672702e783..1f98e465ee 100644 --- a/examples/vue/virtualized-infinite-scrolling/package.json +++ b/examples/vue/virtualized-infinite-scrolling/package.json @@ -14,7 +14,7 @@ "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/vue-query": "^5.101.2", "@tanstack/vue-store": "^0.11.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "@tanstack/vue-virtual": "^3.13.31", "vue": "^3.5.38" }, diff --git a/examples/vue/virtualized-rows/package.json b/examples/vue/virtualized-rows/package.json index 3eaf21b6de..58cca0b796 100644 --- a/examples/vue/virtualized-rows/package.json +++ b/examples/vue/virtualized-rows/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.5.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "@tanstack/vue-virtual": "^3.13.31", "vue": "^3.5.38" }, diff --git a/examples/vue/with-tanstack-form/package.json b/examples/vue/with-tanstack-form/package.json index a77fb38471..fad403c72c 100644 --- a/examples/vue/with-tanstack-form/package.json +++ b/examples/vue/with-tanstack-form/package.json @@ -13,8 +13,8 @@ "@faker-js/faker": "^10.5.0", "@tanstack/vue-devtools": "^0.2.22", "@tanstack/vue-form": "^1.33.1", - "@tanstack/vue-table": "^9.0.0-beta.48", - "@tanstack/vue-table-devtools": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", + "@tanstack/vue-table-devtools": "^9.0.0-beta.49", "vue": "^3.5.38", "zod": "^4.4.3" }, diff --git a/examples/vue/with-tanstack-query/package.json b/examples/vue/with-tanstack-query/package.json index a1cab52f60..3011431829 100644 --- a/examples/vue/with-tanstack-query/package.json +++ b/examples/vue/with-tanstack-query/package.json @@ -14,7 +14,7 @@ "@tanstack/match-sorter-utils": "^9.0.0-beta.41", "@tanstack/vue-query": "^5.101.2", "@tanstack/vue-store": "^0.11.0", - "@tanstack/vue-table": "^9.0.0-beta.48", + "@tanstack/vue-table": "^9.0.0-beta.49", "vue": "^3.5.38" }, "devDependencies": { diff --git a/packages/alpine-table/package.json b/packages/alpine-table/package.json index d6b2e6fc20..4f8b337ed9 100644 --- a/packages/alpine-table/package.json +++ b/packages/alpine-table/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/alpine-table", - "version": "9.0.0-beta.48", + "version": "9.0.0-beta.49", "description": "Headless UI for building powerful tables & datagrids for Alpine.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/alpine-table/skills/create-table-hook/SKILL.md b/packages/alpine-table/skills/create-table-hook/SKILL.md index cf571840ac..4f4ea7bcaa 100644 --- a/packages/alpine-table/skills/create-table-hook/SKILL.md +++ b/packages/alpine-table/skills/create-table-hook/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/alpine-table' framework: alpine - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - getting-started diff --git a/packages/alpine-table/skills/getting-started/SKILL.md b/packages/alpine-table/skills/getting-started/SKILL.md index 04c6aaf895..d4b34568f8 100644 --- a/packages/alpine-table/skills/getting-started/SKILL.md +++ b/packages/alpine-table/skills/getting-started/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/alpine-table' framework: alpine - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - '@tanstack/table-core#table-features' diff --git a/packages/alpine-table/skills/table-state/SKILL.md b/packages/alpine-table/skills/table-state/SKILL.md index 72e3a4176c..459c02d4fd 100644 --- a/packages/alpine-table/skills/table-state/SKILL.md +++ b/packages/alpine-table/skills/table-state/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/alpine-table' framework: alpine - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - getting-started diff --git a/packages/angular-table-devtools/package.json b/packages/angular-table-devtools/package.json index e4d89960bb..77d986b78f 100644 --- a/packages/angular-table-devtools/package.json +++ b/packages/angular-table-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-table-devtools", - "version": "9.0.0-beta.48", + "version": "9.0.0-beta.49", "description": "Angular devtools for TanStack Table.", "license": "MIT", "repository": { diff --git a/packages/angular-table-devtools/skills/devtools/SKILL.md b/packages/angular-table-devtools/skills/devtools/SKILL.md index 06331dbb23..bc4ce20d9f 100644 --- a/packages/angular-table-devtools/skills/devtools/SKILL.md +++ b/packages/angular-table-devtools/skills/devtools/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/angular-table-devtools' framework: angular - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - '@tanstack/table-devtools#devtools' diff --git a/packages/angular-table/package.json b/packages/angular-table/package.json index 9c71df70cb..a8c7ee7c83 100644 --- a/packages/angular-table/package.json +++ b/packages/angular-table/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-table", - "version": "9.0.0-beta.48", + "version": "9.0.0-beta.49", "description": "Headless UI for building powerful tables & datagrids for Angular.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/angular-table/skills/create-table-hook/SKILL.md b/packages/angular-table/skills/create-table-hook/SKILL.md index 7c94254419..8945b12f7d 100644 --- a/packages/angular-table/skills/create-table-hook/SKILL.md +++ b/packages/angular-table/skills/create-table-hook/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/angular-table' framework: angular - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - getting-started diff --git a/packages/angular-table/skills/getting-started/SKILL.md b/packages/angular-table/skills/getting-started/SKILL.md index dd9997fd43..323230ba21 100644 --- a/packages/angular-table/skills/getting-started/SKILL.md +++ b/packages/angular-table/skills/getting-started/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/angular-table' framework: angular - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - '@tanstack/table-core#table-features' diff --git a/packages/angular-table/skills/migrate-v8-to-v9/SKILL.md b/packages/angular-table/skills/migrate-v8-to-v9/SKILL.md index 17854aaf33..30bb7224ef 100644 --- a/packages/angular-table/skills/migrate-v8-to-v9/SKILL.md +++ b/packages/angular-table/skills/migrate-v8-to-v9/SKILL.md @@ -6,7 +6,7 @@ metadata: type: lifecycle library: '@tanstack/angular-table' framework: angular - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#migrate-v8-to-v9' - getting-started diff --git a/packages/angular-table/skills/table-state/SKILL.md b/packages/angular-table/skills/table-state/SKILL.md index 95db9b559e..f7f3198c14 100644 --- a/packages/angular-table/skills/table-state/SKILL.md +++ b/packages/angular-table/skills/table-state/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/angular-table' framework: angular - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - getting-started diff --git a/packages/angular-table/skills/with-tanstack-query/SKILL.md b/packages/angular-table/skills/with-tanstack-query/SKILL.md index 85b6224ce2..7c796291d5 100644 --- a/packages/angular-table/skills/with-tanstack-query/SKILL.md +++ b/packages/angular-table/skills/with-tanstack-query/SKILL.md @@ -6,7 +6,7 @@ metadata: type: composition library: '@tanstack/angular-table' framework: angular - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#client-vs-server' - getting-started diff --git a/packages/angular-table/skills/with-tanstack-virtual/SKILL.md b/packages/angular-table/skills/with-tanstack-virtual/SKILL.md index b5ff24eb5b..d9a0f5f3f0 100644 --- a/packages/angular-table/skills/with-tanstack-virtual/SKILL.md +++ b/packages/angular-table/skills/with-tanstack-virtual/SKILL.md @@ -6,7 +6,7 @@ metadata: type: composition library: '@tanstack/angular-table' framework: angular - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - getting-started diff --git a/packages/ember-table/package.json b/packages/ember-table/package.json index ffebc8e478..88563a6688 100644 --- a/packages/ember-table/package.json +++ b/packages/ember-table/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ember-table", - "version": "9.0.0-beta.48", + "version": "9.0.0-beta.49", "description": "Headless UI for building powerful tables & datagrids for Ember.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ember-table/skills/create-table-hook/SKILL.md b/packages/ember-table/skills/create-table-hook/SKILL.md index ded84cf6e0..fd2890ed67 100644 --- a/packages/ember-table/skills/create-table-hook/SKILL.md +++ b/packages/ember-table/skills/create-table-hook/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/ember-table' framework: ember - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - getting-started diff --git a/packages/ember-table/skills/getting-started/SKILL.md b/packages/ember-table/skills/getting-started/SKILL.md index 28eaa821de..ac3a966a2c 100644 --- a/packages/ember-table/skills/getting-started/SKILL.md +++ b/packages/ember-table/skills/getting-started/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/ember-table' framework: ember - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - '@tanstack/table-core#table-features' diff --git a/packages/ember-table/skills/table-state/SKILL.md b/packages/ember-table/skills/table-state/SKILL.md index c9e7d3b719..f36380acd9 100644 --- a/packages/ember-table/skills/table-state/SKILL.md +++ b/packages/ember-table/skills/table-state/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/ember-table' framework: ember - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - getting-started diff --git a/packages/lit-table/package.json b/packages/lit-table/package.json index 44a7e65eee..5c7fbc7965 100644 --- a/packages/lit-table/package.json +++ b/packages/lit-table/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/lit-table", - "version": "9.0.0-beta.48", + "version": "9.0.0-beta.49", "description": "Headless UI for building powerful tables & datagrids for Lit.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/lit-table/skills/create-table-hook/SKILL.md b/packages/lit-table/skills/create-table-hook/SKILL.md index e2f748494a..b7edd0c26f 100644 --- a/packages/lit-table/skills/create-table-hook/SKILL.md +++ b/packages/lit-table/skills/create-table-hook/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/lit-table' framework: lit - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - getting-started diff --git a/packages/lit-table/skills/getting-started/SKILL.md b/packages/lit-table/skills/getting-started/SKILL.md index 3b84326fd5..a8e086a2bd 100644 --- a/packages/lit-table/skills/getting-started/SKILL.md +++ b/packages/lit-table/skills/getting-started/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/lit-table' framework: lit - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - '@tanstack/table-core#table-features' diff --git a/packages/lit-table/skills/migrate-v8-to-v9/SKILL.md b/packages/lit-table/skills/migrate-v8-to-v9/SKILL.md index b4aa40a21b..0eeb20cea0 100644 --- a/packages/lit-table/skills/migrate-v8-to-v9/SKILL.md +++ b/packages/lit-table/skills/migrate-v8-to-v9/SKILL.md @@ -6,7 +6,7 @@ metadata: type: lifecycle library: '@tanstack/lit-table' framework: lit - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#migrate-v8-to-v9' - getting-started diff --git a/packages/lit-table/skills/table-state/SKILL.md b/packages/lit-table/skills/table-state/SKILL.md index d338a40c66..e72f805090 100644 --- a/packages/lit-table/skills/table-state/SKILL.md +++ b/packages/lit-table/skills/table-state/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/lit-table' framework: lit - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - getting-started diff --git a/packages/lit-table/skills/with-tanstack-virtual/SKILL.md b/packages/lit-table/skills/with-tanstack-virtual/SKILL.md index cf14ac1d91..e854c52f42 100644 --- a/packages/lit-table/skills/with-tanstack-virtual/SKILL.md +++ b/packages/lit-table/skills/with-tanstack-virtual/SKILL.md @@ -6,7 +6,7 @@ metadata: type: composition library: '@tanstack/lit-table' framework: lit - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - getting-started diff --git a/packages/preact-table-devtools/package.json b/packages/preact-table-devtools/package.json index 2419c8b90b..9efedf5840 100644 --- a/packages/preact-table-devtools/package.json +++ b/packages/preact-table-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-table-devtools", - "version": "9.0.0-beta.48", + "version": "9.0.0-beta.49", "description": "Preact devtools for TanStack Table.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/preact-table-devtools/skills/devtools/SKILL.md b/packages/preact-table-devtools/skills/devtools/SKILL.md index 128522ec6d..dd3e840cdc 100644 --- a/packages/preact-table-devtools/skills/devtools/SKILL.md +++ b/packages/preact-table-devtools/skills/devtools/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/preact-table-devtools' framework: preact - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - '@tanstack/table-devtools#devtools' diff --git a/packages/preact-table/package.json b/packages/preact-table/package.json index 1c775bb605..915ffb0d37 100644 --- a/packages/preact-table/package.json +++ b/packages/preact-table/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-table", - "version": "9.0.0-beta.48", + "version": "9.0.0-beta.49", "description": "Headless UI for building powerful tables & datagrids for Preact.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/preact-table/skills/create-table-hook/SKILL.md b/packages/preact-table/skills/create-table-hook/SKILL.md index a585cf8e22..88834b7409 100644 --- a/packages/preact-table/skills/create-table-hook/SKILL.md +++ b/packages/preact-table/skills/create-table-hook/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: framework, library: '@tanstack/preact-table', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', framework: preact, } requires: ['@tanstack/table-core#core', getting-started, table-state] diff --git a/packages/preact-table/skills/getting-started/SKILL.md b/packages/preact-table/skills/getting-started/SKILL.md index 630a0b0ecd..83b4e21361 100644 --- a/packages/preact-table/skills/getting-started/SKILL.md +++ b/packages/preact-table/skills/getting-started/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: framework, library: '@tanstack/preact-table', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', framework: preact, } requires: ['@tanstack/table-core#core', '@tanstack/table-core#table-features'] diff --git a/packages/preact-table/skills/migrate-v8-to-v9/SKILL.md b/packages/preact-table/skills/migrate-v8-to-v9/SKILL.md index 202dbc2928..ebd6508a9f 100644 --- a/packages/preact-table/skills/migrate-v8-to-v9/SKILL.md +++ b/packages/preact-table/skills/migrate-v8-to-v9/SKILL.md @@ -5,7 +5,7 @@ description: > metadata: type: lifecycle library: '@tanstack/preact-table' - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' framework: preact requires: - '@tanstack/table-core#migrate-v8-to-v9' diff --git a/packages/preact-table/skills/table-state/SKILL.md b/packages/preact-table/skills/table-state/SKILL.md index 1586223472..2b3c9bc385 100644 --- a/packages/preact-table/skills/table-state/SKILL.md +++ b/packages/preact-table/skills/table-state/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: framework, library: '@tanstack/preact-table', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', framework: preact, } requires: ['@tanstack/table-core#core', getting-started] diff --git a/packages/preact-table/skills/with-tanstack-query/SKILL.md b/packages/preact-table/skills/with-tanstack-query/SKILL.md index 4588b2807a..0813da48b0 100644 --- a/packages/preact-table/skills/with-tanstack-query/SKILL.md +++ b/packages/preact-table/skills/with-tanstack-query/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: composition, library: '@tanstack/preact-table', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', framework: preact, } requires: diff --git a/packages/preact-table/skills/with-tanstack-virtual/SKILL.md b/packages/preact-table/skills/with-tanstack-virtual/SKILL.md index 0dd93ad6d9..cafd14daa9 100644 --- a/packages/preact-table/skills/with-tanstack-virtual/SKILL.md +++ b/packages/preact-table/skills/with-tanstack-virtual/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: composition, library: '@tanstack/preact-table', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', framework: preact, } requires: ['@tanstack/table-core#core', getting-started, table-state] diff --git a/packages/react-table-devtools/package.json b/packages/react-table-devtools/package.json index 049692f025..9a0bc59824 100644 --- a/packages/react-table-devtools/package.json +++ b/packages/react-table-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-table-devtools", - "version": "9.0.0-beta.48", + "version": "9.0.0-beta.49", "description": "React devtools for TanStack Table.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/react-table-devtools/skills/devtools/SKILL.md b/packages/react-table-devtools/skills/devtools/SKILL.md index 7d2ba486c9..52eecc6462 100644 --- a/packages/react-table-devtools/skills/devtools/SKILL.md +++ b/packages/react-table-devtools/skills/devtools/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/react-table-devtools' framework: react - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - '@tanstack/table-devtools#devtools' diff --git a/packages/react-table/package.json b/packages/react-table/package.json index 4853d45f38..299eab22df 100644 --- a/packages/react-table/package.json +++ b/packages/react-table/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-table", - "version": "9.0.0-beta.48", + "version": "9.0.0-beta.49", "description": "Headless UI for building powerful tables & datagrids for React.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/react-table/skills/create-table-hook/SKILL.md b/packages/react-table/skills/create-table-hook/SKILL.md index c8d84d70ce..12e449c890 100644 --- a/packages/react-table/skills/create-table-hook/SKILL.md +++ b/packages/react-table/skills/create-table-hook/SKILL.md @@ -5,7 +5,7 @@ description: > metadata: type: framework library: '@tanstack/react-table' - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' framework: react requires: - '@tanstack/table-core#core' diff --git a/packages/react-table/skills/getting-started/SKILL.md b/packages/react-table/skills/getting-started/SKILL.md index 334eb0a08a..b9113c88d0 100644 --- a/packages/react-table/skills/getting-started/SKILL.md +++ b/packages/react-table/skills/getting-started/SKILL.md @@ -5,7 +5,7 @@ description: > metadata: type: framework library: '@tanstack/react-table' - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' framework: react requires: - '@tanstack/table-core#core' diff --git a/packages/react-table/skills/migrate-v8-to-v9/SKILL.md b/packages/react-table/skills/migrate-v8-to-v9/SKILL.md index 8098177fa0..1d8469bd82 100644 --- a/packages/react-table/skills/migrate-v8-to-v9/SKILL.md +++ b/packages/react-table/skills/migrate-v8-to-v9/SKILL.md @@ -5,7 +5,7 @@ description: > metadata: type: lifecycle library: '@tanstack/react-table' - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' framework: react requires: - '@tanstack/table-core#migrate-v8-to-v9' diff --git a/packages/react-table/skills/table-state/SKILL.md b/packages/react-table/skills/table-state/SKILL.md index 95f7972852..ed25e893d9 100644 --- a/packages/react-table/skills/table-state/SKILL.md +++ b/packages/react-table/skills/table-state/SKILL.md @@ -5,7 +5,7 @@ description: > metadata: type: framework library: '@tanstack/react-table' - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' framework: react requires: - '@tanstack/table-core#core' diff --git a/packages/react-table/skills/with-tanstack-query/SKILL.md b/packages/react-table/skills/with-tanstack-query/SKILL.md index f63cb6a53a..5713d4d7d7 100644 --- a/packages/react-table/skills/with-tanstack-query/SKILL.md +++ b/packages/react-table/skills/with-tanstack-query/SKILL.md @@ -5,7 +5,7 @@ description: > metadata: type: composition library: '@tanstack/react-table' - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' framework: react requires: - '@tanstack/table-core#client-vs-server' diff --git a/packages/react-table/skills/with-tanstack-virtual/SKILL.md b/packages/react-table/skills/with-tanstack-virtual/SKILL.md index 339c3cc98e..326b36ef2f 100644 --- a/packages/react-table/skills/with-tanstack-virtual/SKILL.md +++ b/packages/react-table/skills/with-tanstack-virtual/SKILL.md @@ -5,7 +5,7 @@ description: > metadata: type: composition library: '@tanstack/react-table' - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' framework: react requires: - '@tanstack/table-core#core' diff --git a/packages/solid-table-devtools/package.json b/packages/solid-table-devtools/package.json index 4602a86cb3..2994acacf0 100644 --- a/packages/solid-table-devtools/package.json +++ b/packages/solid-table-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-table-devtools", - "version": "9.0.0-beta.48", + "version": "9.0.0-beta.49", "description": "Solid devtools for TanStack Table.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/solid-table-devtools/skills/devtools/SKILL.md b/packages/solid-table-devtools/skills/devtools/SKILL.md index baf4be9a63..3af0262e2e 100644 --- a/packages/solid-table-devtools/skills/devtools/SKILL.md +++ b/packages/solid-table-devtools/skills/devtools/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/solid-table-devtools' framework: solid - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - '@tanstack/table-devtools#devtools' diff --git a/packages/solid-table/package.json b/packages/solid-table/package.json index b9964bdafe..666589b55c 100644 --- a/packages/solid-table/package.json +++ b/packages/solid-table/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-table", - "version": "9.0.0-beta.48", + "version": "9.0.0-beta.49", "description": "Headless UI for building powerful tables & datagrids for Solid.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/solid-table/skills/create-table-hook/SKILL.md b/packages/solid-table/skills/create-table-hook/SKILL.md index 6999e1a561..52fc18b464 100644 --- a/packages/solid-table/skills/create-table-hook/SKILL.md +++ b/packages/solid-table/skills/create-table-hook/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: framework, library: '@tanstack/solid-table', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', framework: solid, } requires: ['@tanstack/table-core#core', getting-started, table-state] diff --git a/packages/solid-table/skills/getting-started/SKILL.md b/packages/solid-table/skills/getting-started/SKILL.md index d5e9a3c60e..7dde2d177f 100644 --- a/packages/solid-table/skills/getting-started/SKILL.md +++ b/packages/solid-table/skills/getting-started/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: framework, library: '@tanstack/solid-table', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', framework: solid, } requires: ['@tanstack/table-core#core', '@tanstack/table-core#table-features'] diff --git a/packages/solid-table/skills/migrate-v8-to-v9/SKILL.md b/packages/solid-table/skills/migrate-v8-to-v9/SKILL.md index de84627aa2..52ef3948ed 100644 --- a/packages/solid-table/skills/migrate-v8-to-v9/SKILL.md +++ b/packages/solid-table/skills/migrate-v8-to-v9/SKILL.md @@ -5,7 +5,7 @@ description: > metadata: type: lifecycle library: '@tanstack/solid-table' - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' framework: solid requires: - '@tanstack/table-core#migrate-v8-to-v9' diff --git a/packages/solid-table/skills/table-state/SKILL.md b/packages/solid-table/skills/table-state/SKILL.md index f1a601a0ff..7cfbfb2c6f 100644 --- a/packages/solid-table/skills/table-state/SKILL.md +++ b/packages/solid-table/skills/table-state/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: framework, library: '@tanstack/solid-table', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', framework: solid, } requires: ['@tanstack/table-core#core', getting-started] diff --git a/packages/solid-table/skills/with-tanstack-query/SKILL.md b/packages/solid-table/skills/with-tanstack-query/SKILL.md index 3207f4be51..918153674e 100644 --- a/packages/solid-table/skills/with-tanstack-query/SKILL.md +++ b/packages/solid-table/skills/with-tanstack-query/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: composition, library: '@tanstack/solid-table', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', framework: solid, } requires: diff --git a/packages/solid-table/skills/with-tanstack-virtual/SKILL.md b/packages/solid-table/skills/with-tanstack-virtual/SKILL.md index 5323f88d4d..15781182f1 100644 --- a/packages/solid-table/skills/with-tanstack-virtual/SKILL.md +++ b/packages/solid-table/skills/with-tanstack-virtual/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: composition, library: '@tanstack/solid-table', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', framework: solid, } requires: ['@tanstack/table-core#core', getting-started, table-state] diff --git a/packages/svelte-table/package.json b/packages/svelte-table/package.json index 266aece100..c15b96aab8 100644 --- a/packages/svelte-table/package.json +++ b/packages/svelte-table/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-table", - "version": "9.0.0-beta.48", + "version": "9.0.0-beta.49", "description": "Headless UI for building powerful tables & datagrids for Svelte.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/svelte-table/skills/create-table-hook/SKILL.md b/packages/svelte-table/skills/create-table-hook/SKILL.md index 4dd45c5936..f12bc49913 100644 --- a/packages/svelte-table/skills/create-table-hook/SKILL.md +++ b/packages/svelte-table/skills/create-table-hook/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/svelte-table' framework: svelte - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - getting-started diff --git a/packages/svelte-table/skills/getting-started/SKILL.md b/packages/svelte-table/skills/getting-started/SKILL.md index 573693d82c..548e776bd5 100644 --- a/packages/svelte-table/skills/getting-started/SKILL.md +++ b/packages/svelte-table/skills/getting-started/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/svelte-table' framework: svelte - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - '@tanstack/table-core#table-features' diff --git a/packages/svelte-table/skills/migrate-v8-to-v9/SKILL.md b/packages/svelte-table/skills/migrate-v8-to-v9/SKILL.md index 921c03e254..5ec7416d44 100644 --- a/packages/svelte-table/skills/migrate-v8-to-v9/SKILL.md +++ b/packages/svelte-table/skills/migrate-v8-to-v9/SKILL.md @@ -6,7 +6,7 @@ metadata: type: lifecycle library: '@tanstack/svelte-table' framework: svelte - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#migrate-v8-to-v9' - getting-started diff --git a/packages/svelte-table/skills/table-state/SKILL.md b/packages/svelte-table/skills/table-state/SKILL.md index 663fffa923..59e7bc2cac 100644 --- a/packages/svelte-table/skills/table-state/SKILL.md +++ b/packages/svelte-table/skills/table-state/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/svelte-table' framework: svelte - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - getting-started diff --git a/packages/svelte-table/skills/with-tanstack-query/SKILL.md b/packages/svelte-table/skills/with-tanstack-query/SKILL.md index fb273572a7..b41707836f 100644 --- a/packages/svelte-table/skills/with-tanstack-query/SKILL.md +++ b/packages/svelte-table/skills/with-tanstack-query/SKILL.md @@ -6,7 +6,7 @@ metadata: type: composition library: '@tanstack/svelte-table' framework: svelte - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#client-vs-server' - getting-started diff --git a/packages/svelte-table/skills/with-tanstack-virtual/SKILL.md b/packages/svelte-table/skills/with-tanstack-virtual/SKILL.md index c180a27526..58824ef97c 100644 --- a/packages/svelte-table/skills/with-tanstack-virtual/SKILL.md +++ b/packages/svelte-table/skills/with-tanstack-virtual/SKILL.md @@ -6,7 +6,7 @@ metadata: type: composition library: '@tanstack/svelte-table' framework: svelte - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - getting-started diff --git a/packages/table-core/package.json b/packages/table-core/package.json index 8b48210d97..1e9433c047 100644 --- a/packages/table-core/package.json +++ b/packages/table-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/table-core", - "version": "9.0.0-beta.48", + "version": "9.0.0-beta.49", "description": "Headless UI for building powerful tables & datagrids for TS/JS.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/table-core/skills/aggregation/SKILL.md b/packages/table-core/skills/aggregation/SKILL.md index c0e0aa55e2..788491e13b 100644 --- a/packages/table-core/skills/aggregation/SKILL.md +++ b/packages/table-core/skills/aggregation/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: sub-skill, library: '@tanstack/table-core', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', } requires: ['core', 'table-features'] sources: diff --git a/packages/table-core/skills/api-not-found/SKILL.md b/packages/table-core/skills/api-not-found/SKILL.md index 0a028d779b..6d36aeec6c 100644 --- a/packages/table-core/skills/api-not-found/SKILL.md +++ b/packages/table-core/skills/api-not-found/SKILL.md @@ -5,7 +5,7 @@ description: > metadata: type: sub-skill library: '@tanstack/table-core' - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: ['core', 'table-features'] sources: - 'TanStack/table:packages/table-core/src/index.ts' diff --git a/packages/table-core/skills/client-vs-server/SKILL.md b/packages/table-core/skills/client-vs-server/SKILL.md index e407a1cba6..10851a598b 100644 --- a/packages/table-core/skills/client-vs-server/SKILL.md +++ b/packages/table-core/skills/client-vs-server/SKILL.md @@ -5,7 +5,7 @@ description: > metadata: type: sub-skill library: '@tanstack/table-core' - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: ['core', 'table-features'] sources: - 'TanStack/table:docs/guide/row-models.md' diff --git a/packages/table-core/skills/column-faceting/SKILL.md b/packages/table-core/skills/column-faceting/SKILL.md index b1870b8d65..c65a224efb 100644 --- a/packages/table-core/skills/column-faceting/SKILL.md +++ b/packages/table-core/skills/column-faceting/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: sub-skill, library: '@tanstack/table-core', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', } requires: ['core', 'table-features', 'column-filtering'] sources: diff --git a/packages/table-core/skills/column-filtering/SKILL.md b/packages/table-core/skills/column-filtering/SKILL.md index 4663b38bb5..04781064ba 100644 --- a/packages/table-core/skills/column-filtering/SKILL.md +++ b/packages/table-core/skills/column-filtering/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: sub-skill, library: '@tanstack/table-core', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', } requires: ['core', 'table-features', 'client-vs-server'] sources: diff --git a/packages/table-core/skills/column-ordering/SKILL.md b/packages/table-core/skills/column-ordering/SKILL.md index e5f157954c..e15b79626a 100644 --- a/packages/table-core/skills/column-ordering/SKILL.md +++ b/packages/table-core/skills/column-ordering/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: sub-skill, library: '@tanstack/table-core', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', } requires: ['core', 'table-features'] sources: diff --git a/packages/table-core/skills/column-pinning/SKILL.md b/packages/table-core/skills/column-pinning/SKILL.md index 5f69eb170a..9d13ee58dd 100644 --- a/packages/table-core/skills/column-pinning/SKILL.md +++ b/packages/table-core/skills/column-pinning/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: sub-skill, library: '@tanstack/table-core', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', } requires: ['core', 'table-features', 'column-sizing'] sources: diff --git a/packages/table-core/skills/column-resizing/SKILL.md b/packages/table-core/skills/column-resizing/SKILL.md index c71560555f..4e077a4840 100644 --- a/packages/table-core/skills/column-resizing/SKILL.md +++ b/packages/table-core/skills/column-resizing/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: sub-skill, library: '@tanstack/table-core', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', } requires: ['core', 'table-features', 'column-sizing'] sources: diff --git a/packages/table-core/skills/column-sizing/SKILL.md b/packages/table-core/skills/column-sizing/SKILL.md index e495613cf3..49389a17a9 100644 --- a/packages/table-core/skills/column-sizing/SKILL.md +++ b/packages/table-core/skills/column-sizing/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: sub-skill, library: '@tanstack/table-core', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', } requires: ['core', 'table-features'] sources: diff --git a/packages/table-core/skills/column-visibility/SKILL.md b/packages/table-core/skills/column-visibility/SKILL.md index 0b21b24be4..831ba1f832 100644 --- a/packages/table-core/skills/column-visibility/SKILL.md +++ b/packages/table-core/skills/column-visibility/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: sub-skill, library: '@tanstack/table-core', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', } requires: ['core', 'table-features'] sources: diff --git a/packages/table-core/skills/core/SKILL.md b/packages/table-core/skills/core/SKILL.md index 403b7dca21..a2605c8753 100644 --- a/packages/table-core/skills/core/SKILL.md +++ b/packages/table-core/skills/core/SKILL.md @@ -5,7 +5,7 @@ description: > metadata: type: core library: '@tanstack/table-core' - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' sources: - 'TanStack/table:docs/overview.md' - 'TanStack/table:docs/guide/tables.md' diff --git a/packages/table-core/skills/custom-features/SKILL.md b/packages/table-core/skills/custom-features/SKILL.md index 4aa17f0e43..24af5653f6 100644 --- a/packages/table-core/skills/custom-features/SKILL.md +++ b/packages/table-core/skills/custom-features/SKILL.md @@ -5,7 +5,7 @@ description: > metadata: type: sub-skill library: '@tanstack/table-core' - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: ['core', 'table-features', 'typescript'] sources: - 'TanStack/table:docs/framework/react/guide/custom-features.md' diff --git a/packages/table-core/skills/expanding/SKILL.md b/packages/table-core/skills/expanding/SKILL.md index a8292b2de3..100b22bbe5 100644 --- a/packages/table-core/skills/expanding/SKILL.md +++ b/packages/table-core/skills/expanding/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: sub-skill, library: '@tanstack/table-core', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', } requires: ['core', 'table-features', 'client-vs-server'] sources: diff --git a/packages/table-core/skills/global-filtering/SKILL.md b/packages/table-core/skills/global-filtering/SKILL.md index c6e6a485a6..371abafc62 100644 --- a/packages/table-core/skills/global-filtering/SKILL.md +++ b/packages/table-core/skills/global-filtering/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: sub-skill, library: '@tanstack/table-core', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', } requires: ['core', 'table-features', 'client-vs-server', 'column-filtering'] sources: diff --git a/packages/table-core/skills/grouping/SKILL.md b/packages/table-core/skills/grouping/SKILL.md index 6a951a3ade..cff11b65a0 100644 --- a/packages/table-core/skills/grouping/SKILL.md +++ b/packages/table-core/skills/grouping/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: sub-skill, library: '@tanstack/table-core', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', } requires: ['core', 'table-features', 'client-vs-server'] sources: diff --git a/packages/table-core/skills/migrate-v8-to-v9/SKILL.md b/packages/table-core/skills/migrate-v8-to-v9/SKILL.md index 88c6aa4081..1a3ebdd052 100644 --- a/packages/table-core/skills/migrate-v8-to-v9/SKILL.md +++ b/packages/table-core/skills/migrate-v8-to-v9/SKILL.md @@ -5,7 +5,7 @@ description: > metadata: type: lifecycle library: '@tanstack/table-core' - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: ['core', 'table-features', 'typescript'] sources: - 'TanStack/table:docs/framework/react/guide/migrating.md' diff --git a/packages/table-core/skills/pagination/SKILL.md b/packages/table-core/skills/pagination/SKILL.md index c70642eeec..5b2c4adec0 100644 --- a/packages/table-core/skills/pagination/SKILL.md +++ b/packages/table-core/skills/pagination/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: sub-skill, library: '@tanstack/table-core', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', } requires: ['core', 'table-features', 'client-vs-server'] sources: diff --git a/packages/table-core/skills/row-pinning/SKILL.md b/packages/table-core/skills/row-pinning/SKILL.md index ca48cfd45e..d938632d4a 100644 --- a/packages/table-core/skills/row-pinning/SKILL.md +++ b/packages/table-core/skills/row-pinning/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: sub-skill, library: '@tanstack/table-core', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', } requires: ['core', 'table-features'] sources: diff --git a/packages/table-core/skills/row-selection/SKILL.md b/packages/table-core/skills/row-selection/SKILL.md index 16aaa900bd..228c2d9ee0 100644 --- a/packages/table-core/skills/row-selection/SKILL.md +++ b/packages/table-core/skills/row-selection/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: sub-skill, library: '@tanstack/table-core', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', } requires: ['core', 'table-features'] sources: diff --git a/packages/table-core/skills/sorting/SKILL.md b/packages/table-core/skills/sorting/SKILL.md index eaef64db52..115ac453c2 100644 --- a/packages/table-core/skills/sorting/SKILL.md +++ b/packages/table-core/skills/sorting/SKILL.md @@ -6,7 +6,7 @@ metadata: { type: sub-skill, library: '@tanstack/table-core', - library_version: '9.0.0-beta.48', + library_version: '9.0.0-beta.49', } requires: ['core', 'table-features', 'client-vs-server'] sources: diff --git a/packages/table-core/skills/table-features/SKILL.md b/packages/table-core/skills/table-features/SKILL.md index 700ffc8694..d7b666e5be 100644 --- a/packages/table-core/skills/table-features/SKILL.md +++ b/packages/table-core/skills/table-features/SKILL.md @@ -5,7 +5,7 @@ description: > metadata: type: sub-skill library: '@tanstack/table-core' - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: ['core'] sources: - 'TanStack/table:docs/guide/row-models.md' diff --git a/packages/table-core/skills/typescript/SKILL.md b/packages/table-core/skills/typescript/SKILL.md index 73e54bcec6..ba726a66bc 100644 --- a/packages/table-core/skills/typescript/SKILL.md +++ b/packages/table-core/skills/typescript/SKILL.md @@ -5,7 +5,7 @@ description: > metadata: type: sub-skill library: '@tanstack/table-core' - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: ['core', 'table-features'] sources: - 'TanStack/table:docs/guide/helpers.md' diff --git a/packages/table-core/src/features/column-faceting/createFacetedMinMaxValues.ts b/packages/table-core/src/features/column-faceting/createFacetedMinMaxValues.ts index 8db098c064..3582901275 100644 --- a/packages/table-core/src/features/column-faceting/createFacetedMinMaxValues.ts +++ b/packages/table-core/src/features/column-faceting/createFacetedMinMaxValues.ts @@ -1,5 +1,9 @@ import { callMemoOrStaticFn, tableMemo } from '../../utils' -import { column_getFacetedRowModel } from './columnFacetingFeature.utils' +import { column_getCanGlobalFilter } from '../global-filtering/globalFilteringFeature.utils' +import { + column_getFacetedRowModel, + table_getGlobalFacetedRowModel, +} from './columnFacetingFeature.utils' import type { Row } from '../../types/Row' import type { Table, Table_Internal } from '../../types/Table' import type { TableFeatures } from '../../types/TableFeatures' @@ -21,9 +25,18 @@ export function createFacetedMinMaxValues< const table = _table as unknown as Table_Internal return tableMemo({ feature: 'columnFacetingFeature', - fn: (flatRows) => _createFacetedMinMaxValues(columnId, flatRows), + fn: (flatRows) => _createFacetedMinMaxValues(table, columnId, flatRows), fnName: 'table.getFacetedMinMaxValues', memoDeps: () => { + if (columnId === '__global__') { + return [ + callMemoOrStaticFn( + table, + 'getGlobalFacetedRowModel', + table_getGlobalFacetedRowModel, + ).flatRows, + ] + } const column = table.getColumn(columnId) if (!column) return [table.getPreFilteredRowModel().flatRows] return [ @@ -44,21 +57,34 @@ function _createFacetedMinMaxValues< TFeatures extends TableFeatures, TData extends RowData = any, >( + table: Table_Internal, columnId: string, flatRows: Array>, ): undefined | [number, number] { if (!flatRows.length) return undefined + // The global context aggregates values across every column that + // participates in global filtering + const columnIds = + columnId === '__global__' + ? table + .getAllLeafColumns() + .filter((column) => column_getCanGlobalFilter(column)) + .map((column) => column.id) + : [columnId] + let facetedMinValue = Number.POSITIVE_INFINITY let facetedMaxValue = Number.NEGATIVE_INFINITY let foundAny = false for (let i = 0; i < flatRows.length; i++) { - const value = Number(flatRows[i]!.getValue(columnId)) - if (Number.isNaN(value)) continue - foundAny = true - if (value < facetedMinValue) facetedMinValue = value - if (value > facetedMaxValue) facetedMaxValue = value + for (let c = 0; c < columnIds.length; c++) { + const value = Number(flatRows[i]!.getValue(columnIds[c]!)) + if (Number.isNaN(value)) continue + foundAny = true + if (value < facetedMinValue) facetedMinValue = value + if (value > facetedMaxValue) facetedMaxValue = value + } } if (!foundAny) return undefined diff --git a/packages/table-core/src/features/column-faceting/createFacetedRowModel.ts b/packages/table-core/src/features/column-faceting/createFacetedRowModel.ts index f0a3001a91..4ad66d25be 100644 --- a/packages/table-core/src/features/column-faceting/createFacetedRowModel.ts +++ b/packages/table-core/src/features/column-faceting/createFacetedRowModel.ts @@ -67,7 +67,10 @@ function _createFacetedRowModel< if (id !== columnId) filterableIds.push(id) } } - if (globalFilter) filterableIds.push('__global__') + // The global context excludes the global filter itself, mirroring how a + // column's faceted model excludes that column's own filter + if (globalFilter && columnId !== '__global__') + filterableIds.push('__global__') if (!filterableIds.length) { return preRowModel diff --git a/packages/table-core/src/features/column-faceting/createFacetedUniqueValues.ts b/packages/table-core/src/features/column-faceting/createFacetedUniqueValues.ts index 2afcf7de7b..df8cdcd1c3 100644 --- a/packages/table-core/src/features/column-faceting/createFacetedUniqueValues.ts +++ b/packages/table-core/src/features/column-faceting/createFacetedUniqueValues.ts @@ -1,5 +1,9 @@ import { callMemoOrStaticFn, tableMemo } from '../../utils' -import { column_getFacetedRowModel } from './columnFacetingFeature.utils' +import { column_getCanGlobalFilter } from '../global-filtering/globalFilteringFeature.utils' +import { + column_getFacetedRowModel, + table_getGlobalFacetedRowModel, +} from './columnFacetingFeature.utils' import type { Row } from '../../types/Row' import type { Table, Table_Internal } from '../../types/Table' import type { TableFeatures } from '../../types/TableFeatures' @@ -24,6 +28,15 @@ export function createFacetedUniqueValues< table, fnName: 'table.getFacetedUniqueValues', memoDeps: () => { + if (columnId === '__global__') { + return [ + callMemoOrStaticFn( + table, + 'getGlobalFacetedRowModel', + table_getGlobalFacetedRowModel, + ).flatRows, + ] + } const column = table.getColumn(columnId) if (!column) return [table.getPreFilteredRowModel().flatRows] return [ @@ -35,7 +48,7 @@ export function createFacetedUniqueValues< ).flatRows, ] }, - fn: (flatRows) => _createFacetedUniqueValues(columnId, flatRows), + fn: (flatRows) => _createFacetedUniqueValues(table, columnId, flatRows), }) } } @@ -43,19 +56,40 @@ export function createFacetedUniqueValues< function _createFacetedUniqueValues< TFeatures extends TableFeatures, TData extends RowData = any, ->(columnId: string, flatRows: Array>): Map { +>( + table: Table_Internal, + columnId: string, + flatRows: Array>, +): Map { + // The global context aggregates unique values across every column that + // participates in global filtering + const columnIds = + columnId === '__global__' + ? table + .getAllLeafColumns() + .filter((column) => column_getCanGlobalFilter(column)) + .map((column) => column.id) + : [columnId] + const facetedUniqueValues = new Map() for (let i = 0; i < flatRows.length; i++) { - const values = flatRows[i]!.getUniqueValues(columnId) + for (let c = 0; c < columnIds.length; c++) { + // the declared return type is Array, but rows return undefined for + // columns without an accessor (e.g. display columns) + const values = flatRows[i]!.getUniqueValues(columnIds[c]!) as + | Array + | undefined + if (!values) continue - for (let j = 0; j < values.length; j++) { - const value = values[j] - const previousValue = facetedUniqueValues.get(value) - facetedUniqueValues.set( - value, - previousValue === undefined ? 1 : previousValue + 1, - ) + for (let j = 0; j < values.length; j++) { + const value = values[j] + const previousValue = facetedUniqueValues.get(value) + facetedUniqueValues.set( + value, + previousValue === undefined ? 1 : previousValue + 1, + ) + } } } diff --git a/packages/table-core/tests/implementation/core/autoReset.test.ts b/packages/table-core/tests/implementation/core/autoReset.test.ts new file mode 100644 index 0000000000..4bd28fe8c4 --- /dev/null +++ b/packages/table-core/tests/implementation/core/autoReset.test.ts @@ -0,0 +1,359 @@ +import { describe, expect, it } from 'vitest' +import { + columnFilteringFeature, + columnGroupingFeature, + constructTable, + createExpandedRowModel, + createFilteredRowModel, + createGroupedRowModel, + createPaginatedRowModel, + createSortedRowModel, + filterFns, + rowExpandingFeature, + rowPaginationFeature, + rowSelectionFeature, + rowSortingFeature, + sortFns, +} from '../../../src' +import { testFeatures } from '../../fixtures/features' +import type { ColumnDef, ExpandedState, TableOptions } from '../../../src' + +/** + * End-to-end tests for the autoReset wiring. + * + * autoReset callbacks are `onAfterUpdate` hooks on the row model stage memos. + * They are dispatched via `table._reactivity.schedule(() => untrack(...))`, + * i.e. deferred to a microtask/timeout AFTER a stage memo recomputes. Memo + * recomputation is pull-based: it only happens when someone reads the row + * model getter. These tests exercise the whole chain rather than calling the + * `table_autoReset*` statics directly. + */ + +interface Person { + name: string + age: number + group: string + subRows?: Array +} + +const features = testFeatures({ + columnFilteringFeature, + columnGroupingFeature, + rowExpandingFeature, + rowPaginationFeature, + rowSelectionFeature, + rowSortingFeature, + filteredRowModel: createFilteredRowModel(), + groupedRowModel: createGroupedRowModel(), + sortedRowModel: createSortedRowModel(), + expandedRowModel: createExpandedRowModel(), + paginatedRowModel: createPaginatedRowModel(), + filterFns, + sortFns, +}) + +const columns: Array> = [ + { accessorKey: 'name', id: 'name' }, + { accessorKey: 'age', id: 'age' }, + { accessorKey: 'group', id: 'group' }, +] + +function makeData(): Array { + return Array.from({ length: 6 }, (_, i) => ({ + name: `person-${i}`, + age: 20 + i, + group: i % 2 === 0 ? 'even' : 'odd', + subRows: [{ name: `child-${i}`, age: 1, group: 'child' }], + })) +} + +const flushMicrotasks = () => new Promise((resolve) => setTimeout(resolve, 0)) + +function makeTable( + options?: Partial> & { + initialExpanded?: ExpandedState + initialPageIndex?: number + }, +) { + const { initialExpanded, initialPageIndex, ...rest } = options ?? {} + return constructTable({ + features, + columns, + data: makeData(), + getSubRows: (row) => row.subRows, + initialState: { + pagination: { pageIndex: initialPageIndex ?? 0, pageSize: 2 }, + ...(initialExpanded ? { expanded: initialExpanded } : {}), + }, + ...rest, + }) +} + +// Pull the row model once and flush so the initial memo runs (which itself +// schedules autoReset callbacks) do not interfere with the test assertions. +async function primeTable(table: ReturnType) { + table.getRowModel() + await flushMicrotasks() + await flushMicrotasks() +} + +describe('autoResetPageIndex end-to-end wiring', () => { + it('should reset pageIndex when data changes via setOptions', async () => { + const table = makeTable() + await primeTable(table) + + table.setPageIndex(2) + expect(table.atoms.pagination.get().pageIndex).toBe(2) + + table.setOptions((old) => ({ ...old, data: makeData() })) + table.getRowModel() + await flushMicrotasks() + + expect(table.atoms.pagination.get().pageIndex).toBe(0) + }) + + it('should reset pageIndex when column filters change', async () => { + const table = makeTable() + await primeTable(table) + + table.setPageIndex(2) + table.setColumnFilters([{ id: 'group', value: 'even' }]) + table.getRowModel() + await flushMicrotasks() + + expect(table.atoms.pagination.get().pageIndex).toBe(0) + }) + + it('should reset pageIndex when sorting changes', async () => { + const table = makeTable() + await primeTable(table) + + table.setPageIndex(2) + table.setSorting([{ id: 'age', desc: true }]) + table.getRowModel() + await flushMicrotasks() + + expect(table.atoms.pagination.get().pageIndex).toBe(0) + }) + + it('should reset pageIndex when grouping changes', async () => { + const table = makeTable() + await primeTable(table) + + table.setPageIndex(2) + table.setGrouping(['group']) + table.getRowModel() + await flushMicrotasks() + + expect(table.atoms.pagination.get().pageIndex).toBe(0) + }) + + it('should reset pageIndex to 0, not to initialState.pageIndex', async () => { + const table = makeTable({ initialPageIndex: 1 }) + await primeTable(table) + + table.setPageIndex(2) + table.setColumnFilters([{ id: 'group', value: 'even' }]) + table.getRowModel() + await flushMicrotasks() + + // table_autoResetPageIndex calls table_resetPageIndex(table, true), which + // resets to the feature default page 0, not the seeded initial page 1. + expect(table.atoms.pagination.get().pageIndex).toBe(0) + }) + + it('should not reset pageIndex until a row model is actually pulled', async () => { + const table = makeTable() + await primeTable(table) + + table.setPageIndex(2) + table.setColumnFilters([{ id: 'group', value: 'even' }]) + + // No row model read: the stage memos are lazy (pull-based), so nothing + // has recomputed and no autoReset callback has been scheduled. This is + // by design of lazy memos; pinned here on purpose. + await flushMicrotasks() + expect(table.atoms.pagination.get().pageIndex).toBe(2) + + // Pulling the row model recomputes the filtered stage, which schedules + // the reset for the next microtask flush. + table.getRowModel() + await flushMicrotasks() + expect(table.atoms.pagination.get().pageIndex).toBe(0) + }) + + it('should not reset pageIndex for state changes that do not recompute row model stages', async () => { + const table = makeTable() + await primeTable(table) + + table.setPageIndex(2) + table.setRowSelection({ '0': true }) + table.getRowModel() + await flushMicrotasks() + + // Row selection is not a dependency of the core, filtered, sorted, or + // grouped stage memos, so no onAfterUpdate hook fires. + expect(table.atoms.pagination.get().pageIndex).toBe(2) + }) + + describe('option precedence', () => { + async function triggerReset(table: ReturnType) { + await primeTable(table) + table.setPageIndex(2) + table.setColumnFilters([{ id: 'group', value: 'even' }]) + table.getRowModel() + await flushMicrotasks() + } + + it('should skip the reset when autoResetAll is false', async () => { + const table = makeTable({ autoResetAll: false }) + await triggerReset(table) + expect(table.atoms.pagination.get().pageIndex).toBe(2) + }) + + it('should force the reset when autoResetAll is true even with manualPagination', async () => { + const table = makeTable({ autoResetAll: true, manualPagination: true }) + await triggerReset(table) + expect(table.atoms.pagination.get().pageIndex).toBe(0) + }) + + it('should skip the reset when autoResetPageIndex is false', async () => { + const table = makeTable({ autoResetPageIndex: false }) + await triggerReset(table) + expect(table.atoms.pagination.get().pageIndex).toBe(2) + }) + + it('should opt back in with autoResetPageIndex true despite manualPagination', async () => { + const table = makeTable({ + autoResetPageIndex: true, + manualPagination: true, + }) + await triggerReset(table) + expect(table.atoms.pagination.get().pageIndex).toBe(0) + }) + + it('should skip the reset by default when manualPagination is true', async () => { + const table = makeTable({ manualPagination: true }) + await triggerReset(table) + expect(table.atoms.pagination.get().pageIndex).toBe(2) + }) + }) +}) + +describe('autoResetExpanded end-to-end wiring', () => { + it('should reset expanded to an empty map when grouping changes', async () => { + const table = makeTable() + await primeTable(table) + + table.getRow('1').toggleExpanded(true) + expect(table.atoms.expanded.get()).toEqual({ '1': true }) + + table.setGrouping(['group']) + table.getRowModel() + // table_autoResetExpanded itself schedules another callback, so the reset + // is double-deferred: flush twice to be safe. + await flushMicrotasks() + await flushMicrotasks() + + expect(table.atoms.expanded.get()).toEqual({}) + }) + + it('should reset expanded to a seeded initialState.expanded when grouping changes', async () => { + const table = makeTable({ initialExpanded: { '0': true } }) + await primeTable(table) + + table.getRow('1').toggleExpanded(true) + expect(table.atoms.expanded.get()).toEqual({ + '0': true, + '1': true, + }) + + table.setGrouping(['group']) + table.getRowModel() + await flushMicrotasks() + await flushMicrotasks() + + // Unlike pageIndex (which resets to the feature default 0), expanded + // resets back to initialState.expanded. + expect(table.atoms.expanded.get()).toEqual({ '0': true }) + }) + + it('should not reset expanded when only sorting changes', async () => { + const table = makeTable() + await primeTable(table) + + table.getRow('1').toggleExpanded(true) + table.setSorting([{ id: 'age', desc: true }]) + table.getRowModel() + await flushMicrotasks() + await flushMicrotasks() + + // Only createGroupedRowModel wires table_autoResetExpanded, and the + // pipeline order is core -> filtered -> grouped -> sorted -> expanded -> + // paginated. Sorting is downstream of grouping, so a sorting change never + // recomputes the grouped memo and expanded state is preserved. + expect(table.atoms.expanded.get()).toEqual({ '1': true }) + }) + + it('should reset expanded when column filters change (grouped stage is downstream of filtering)', async () => { + const table = makeTable() + await primeTable(table) + + table.getRow('1').toggleExpanded(true) + table.setColumnFilters([{ id: 'group', value: 'even' }]) + table.getRowModel() + await flushMicrotasks() + await flushMicrotasks() + + // Pinned CURRENT behavior: even though table_autoResetExpanded is wired + // only from createGroupedRowModel, the grouped memo depends on + // getPreGroupedRowModel() (the filtered model). Any upstream change + // (data or filters) recomputes the grouped memo even when no grouping is + // active, so filter changes also reset expanded state. + expect(table.atoms.expanded.get()).toEqual({}) + }) + + describe('option precedence', () => { + async function triggerReset(table: ReturnType) { + await primeTable(table) + table.getRow('1').toggleExpanded(true) + table.setGrouping(['group']) + table.getRowModel() + await flushMicrotasks() + await flushMicrotasks() + } + + it('should skip the reset when autoResetAll is false', async () => { + const table = makeTable({ autoResetAll: false }) + await triggerReset(table) + expect(table.atoms.expanded.get()).toEqual({ '1': true }) + }) + + it('should force the reset when autoResetAll is true even with manualExpanding', async () => { + const table = makeTable({ autoResetAll: true, manualExpanding: true }) + await triggerReset(table) + expect(table.atoms.expanded.get()).toEqual({}) + }) + + it('should skip the reset when autoResetExpanded is false', async () => { + const table = makeTable({ autoResetExpanded: false }) + await triggerReset(table) + expect(table.atoms.expanded.get()).toEqual({ '1': true }) + }) + + it('should opt back in with autoResetExpanded true despite manualExpanding', async () => { + const table = makeTable({ + autoResetExpanded: true, + manualExpanding: true, + }) + await triggerReset(table) + expect(table.atoms.expanded.get()).toEqual({}) + }) + + it('should skip the reset by default when manualExpanding is true', async () => { + const table = makeTable({ manualExpanding: true }) + await triggerReset(table) + expect(table.atoms.expanded.get()).toEqual({ '1': true }) + }) + }) +}) diff --git a/packages/table-core/tests/implementation/core/row-models/createCoreRowModel.test.ts b/packages/table-core/tests/implementation/core/row-models/createCoreRowModel.test.ts new file mode 100644 index 0000000000..c2cce5255a --- /dev/null +++ b/packages/table-core/tests/implementation/core/row-models/createCoreRowModel.test.ts @@ -0,0 +1,265 @@ +import { describe, expect, it, vi } from 'vitest' +import { constructTable } from '../../../../src' +import { testFeatures } from '../../../fixtures/features' +import { generateTestColumnDefs } from '../../../fixtures/data/generateTestColumnDefs' +import { generateTestData } from '../../../fixtures/data/generateTestData' +import type { Table, TableOptions } from '../../../../src' +import type { Person } from '../../../fixtures/data/types' + +const features = testFeatures({}) + +function makeTable( + data: Array, + options?: Partial< + Omit, 'data' | 'columns' | 'features'> + >, +): Table { + return constructTable({ + features, + data, + columns: generateTestColumnDefs(data), + ...options, + }) +} + +function makeNestedTable( + lengths: Array, + options?: Partial< + Omit, 'data' | 'columns' | 'features'> + >, +): Table { + return makeTable(generateTestData(...lengths), { + getSubRows: (row) => row.subRows, + ...options, + }) +} + +describe('flatRows ordering', () => { + it('should list rows depth-first with each parent before its children', () => { + const table = makeNestedTable([2, 2, 2]) + + expect(table.getCoreRowModel().flatRows.map((row) => row.id)).toEqual([ + '0', + '0.0', + '0.0.0', + '0.0.1', + '0.1', + '0.1.0', + '0.1.1', + '1', + '1.0', + '1.0.0', + '1.0.1', + '1.1', + '1.1.0', + '1.1.1', + ]) + }) + + it('should have flatRows.length equal to the total node count', () => { + const table = makeNestedTable([3, 2, 2]) + + // 3 roots + 3*2 children + 3*2*2 grandchildren = 21 + expect(table.getCoreRowModel().flatRows.length).toBe(21) + expect(table.getCoreRowModel().rows.length).toBe(3) + }) +}) + +describe('rowsById', () => { + it('should contain every dotted default id for nested rows', () => { + const table = makeNestedTable([2, 2]) + const { rowsById } = table.getCoreRowModel() + + expect(Object.keys(rowsById).sort()).toEqual( + ['0', '0.0', '0.1', '1', '1.0', '1.1'].sort(), + ) + }) + + it('should reference the same row objects as flatRows', () => { + const table = makeNestedTable([2, 2]) + const { rowsById, flatRows } = table.getCoreRowModel() + + for (const row of flatRows) { + expect(rowsById[row.id]).toBe(row) + } + }) +}) + +describe('default row id scheme', () => { + it('should use the row index for root rows and parentId.index for children', () => { + const table = makeNestedTable([2, 3]) + const { rows } = table.getCoreRowModel() + + expect(rows.map((row) => row.id)).toEqual(['0', '1']) + expect(rows[1]!.subRows.map((row) => row.id)).toEqual(['1.0', '1.1', '1.2']) + }) +}) + +describe('custom getRowId', () => { + it('should receive (originalRow, index, parentRow) including the parent for nested rows', () => { + const data = generateTestData(2, 2) + const getRowId = vi.fn( + (originalRow: Person, _index: number, parentRow?: any) => + parentRow ? `${parentRow.id}>${originalRow.id}` : originalRow.id, + ) + const table = makeTable(data, { + getSubRows: (row) => row.subRows, + getRowId, + }) + + const model = table.getCoreRowModel() + + // Root call for first row: no parent + expect(getRowId).toHaveBeenCalledWith(data[0], 0, undefined) + // Nested call: parentRow is the constructed parent row object + const parentRow = model.rows[0]! + expect(getRowId).toHaveBeenCalledWith(data[0]!.subRows![1], 1, parentRow) + expect(getRowId).toHaveBeenCalledTimes(6) + }) + + it('should key rowsById with the custom ids for nested rows', () => { + const data = generateTestData(2, 2) + const table = makeTable(data, { + getSubRows: (row) => row.subRows, + getRowId: (originalRow) => originalRow.id, + }) + + const { rowsById } = table.getCoreRowModel() + + for (const person of data) { + expect(rowsById[person.id]?.original).toBe(person) + for (const child of person.subRows!) { + expect(rowsById[child.id]?.original).toBe(child) + } + } + }) + + it('should keep both rows in flatRows but last-write-wins in rowsById for duplicate ids', () => { + // Documents existing behavior: duplicate ids silently overwrite each + // other in rowsById while flatRows keeps every row. + const data = generateTestData(3) + const table = makeTable(data, { + getRowId: (_originalRow, index) => (index < 2 ? 'dupe' : String(index)), + }) + + const { flatRows, rowsById } = table.getCoreRowModel() + + expect(flatRows.length).toBe(3) + expect(Object.keys(rowsById).sort()).toEqual(['2', 'dupe']) + expect(rowsById['dupe']).toBe(flatRows[1]) + expect(rowsById['dupe']).not.toBe(flatRows[0]) + }) +}) + +describe('getSubRows edge cases', () => { + it('should yield empty subRows when getSubRows returns undefined', () => { + const data = generateTestData(2) + const table = makeTable(data, { getSubRows: () => undefined }) + + for (const row of table.getCoreRowModel().rows) { + expect(row.subRows).toEqual([]) + } + }) + + it('should yield empty subRows when getSubRows returns an empty array', () => { + const data = generateTestData(2) + const table = makeTable(data, { getSubRows: () => [] }) + + for (const row of table.getCoreRowModel().rows) { + expect(row.subRows).toEqual([]) + } + }) + + it('should call getSubRows with (originalRow, index)', () => { + const data = generateTestData(3) + const getSubRows = vi.fn((row: Person) => row.subRows) + const table = makeTable(data, { getSubRows }) + + table.getCoreRowModel() + + expect(getSubRows).toHaveBeenCalledTimes(3) + expect(getSubRows).toHaveBeenNthCalledWith(1, data[0], 0) + expect(getSubRows).toHaveBeenNthCalledWith(3, data[2], 2) + }) + + it('should stay flat when nested raw data is used without getSubRows', () => { + const table = makeTable(generateTestData(2, 2)) + const model = table.getCoreRowModel() + + expect(model.flatRows.length).toBe(2) + for (const row of model.rows) { + expect(row.subRows).toEqual([]) + expect(row.originalSubRows).toBeUndefined() + } + }) +}) + +describe('row depth and parentId', () => { + it('should assign depth 0, 1, 2 and the correct parentId for nested rows', () => { + const table = makeNestedTable([1, 1, 1]) + const { rowsById } = table.getCoreRowModel() + + expect(rowsById['0']!.depth).toBe(0) + expect(rowsById['0']!.parentId).toBeUndefined() + expect(rowsById['0.0']!.depth).toBe(1) + expect(rowsById['0.0']!.parentId).toBe('0') + expect(rowsById['0.0.0']!.depth).toBe(2) + expect(rowsById['0.0.0']!.parentId).toBe('0.0') + }) +}) + +describe('originalSubRows', () => { + it('should equal the raw subRows array by reference', () => { + const data = generateTestData(2, 2) + const table = makeTable(data, { getSubRows: (row) => row.subRows }) + + const { rows } = table.getCoreRowModel() + + expect(rows[0]!.originalSubRows).toBe(data[0]!.subRows) + expect(rows[1]!.originalSubRows).toBe(data[1]!.subRows) + }) +}) + +describe('empty data', () => { + it('should return empty rows, flatRows, and rowsById', () => { + const table = makeTable([]) + const model = table.getCoreRowModel() + + expect(model.rows).toEqual([]) + expect(model.flatRows).toEqual([]) + expect(model.rowsById).toEqual({}) + }) +}) + +describe('memoization', () => { + it('should return the same model object across repeated calls', () => { + const table = makeTable(generateTestData(3)) + + const first = table.getCoreRowModel() + + expect(table.getCoreRowModel()).toBe(first) + expect(table.getCoreRowModel().rows[0]).toBe(first.rows[0]) + }) + + it('should build a new model when the data array identity changes', () => { + const data = generateTestData(3) + const table = makeTable(data) + const first = table.getCoreRowModel() + + table.setOptions((old) => ({ ...old, data: [...data] })) + const second = table.getCoreRowModel() + + expect(second).not.toBe(first) + expect(second.rows[0]).not.toBe(first.rows[0]) + expect(second.rows.length).toBe(first.rows.length) + }) + + it('should preserve the cached model when setOptions keeps the same data reference', () => { + const table = makeTable(generateTestData(3)) + const first = table.getCoreRowModel() + + table.setOptions((old) => ({ ...old, renderFallbackValue: 'N/A' })) + + expect(table.getCoreRowModel()).toBe(first) + }) +}) diff --git a/packages/table-core/tests/implementation/features/column-faceting/createFacetedRowModels.test.ts b/packages/table-core/tests/implementation/features/column-faceting/createFacetedRowModels.test.ts new file mode 100644 index 0000000000..0667bc5bc2 --- /dev/null +++ b/packages/table-core/tests/implementation/features/column-faceting/createFacetedRowModels.test.ts @@ -0,0 +1,307 @@ +import { describe, expect, it } from 'vitest' +import { + columnFacetingFeature, + columnFilteringFeature, + constructTable, + createFacetedMinMaxValues, + createFacetedRowModel, + createFacetedUniqueValues, + createFilteredRowModel, + filterFns, + globalFilteringFeature, +} from '../../../../src' +import { testFeatures } from '../../../fixtures/features' +import type { ColumnDef } from '../../../../src' + +interface Person { + name: string + age: number | string | null + team: string + tags: Array +} + +const features = testFeatures({ + columnFacetingFeature, + columnFilteringFeature, + globalFilteringFeature, + facetedMinMaxValues: createFacetedMinMaxValues(), + facetedRowModel: createFacetedRowModel(), + facetedUniqueValues: createFacetedUniqueValues(), + filteredRowModel: createFilteredRowModel(), + filterFns, +}) + +const columns: Array> = [ + { accessorKey: 'name', id: 'name', filterFn: 'includesString' }, + { accessorKey: 'age', id: 'age' }, + { accessorKey: 'team', id: 'team', filterFn: 'equalsString' }, + { + id: 'tags', + accessorFn: (row) => row.tags, + filterFn: 'arrIncludes', + // without this, row.getUniqueValues wraps the whole array as one value + getUniqueValues: (row) => row.tags, + }, +] + +const data: Array = [ + { name: 'Alice', age: 30, team: 'red', tags: ['a', 'b'] }, + { name: 'Bob', age: 25, team: 'blue', tags: ['b'] }, + { name: 'Carol', age: '40', team: 'red', tags: ['a', 'c'] }, + { name: 'Dave', age: null, team: 'blue', tags: [] }, +] + +function makeTable( + overrides: Partial<{ + data: Array + columnFilters: Array<{ id: string; value: unknown }> + globalFilter: string + }> = {}, +) { + return constructTable({ + data: overrides.data ?? data, + columns, + features, + initialState: { + columnFilters: overrides.columnFilters ?? [], + globalFilter: overrides.globalFilter, + }, + }) +} + +describe('getFacetedMinMaxValues (real implementation)', () => { + it('should return min and max for a numeric column', () => { + const table = makeTable() + // '40' coerces via Number(); null coerces to 0 + expect(table.getColumn('age')!.getFacetedMinMaxValues()).toEqual([0, 40]) + }) + + it('should coerce numeric strings with Number()', () => { + const table = makeTable({ + data: [ + { name: 'A', age: '5', team: 'red', tags: [] }, + { name: 'B', age: '15', team: 'red', tags: [] }, + ], + }) + expect(table.getColumn('age')!.getFacetedMinMaxValues()).toEqual([5, 15]) + }) + + it('should skip NaN values from non-numeric cells', () => { + const table = makeTable({ + data: [ + { name: 'A', age: 'not-a-number', team: 'red', tags: [] }, + { name: 'B', age: 7, team: 'red', tags: [] }, + { name: 'C', age: 3, team: 'red', tags: [] }, + ], + }) + expect(table.getColumn('age')!.getFacetedMinMaxValues()).toEqual([3, 7]) + }) + + it('should return undefined when no cell is numeric', () => { + const table = makeTable() + // every name coerces to NaN + expect(table.getColumn('name')!.getFacetedMinMaxValues()).toBeUndefined() + }) + + it('should return undefined for empty data', () => { + const table = makeTable({ data: [] }) + expect(table.getColumn('age')!.getFacetedMinMaxValues()).toBeUndefined() + }) + + it('should return [x, x] for a single row', () => { + const table = makeTable({ + data: [{ name: 'A', age: 42, team: 'red', tags: [] }], + }) + expect(table.getColumn('age')!.getFacetedMinMaxValues()).toEqual([42, 42]) + }) +}) + +describe('faceted row model semantics under active filters', () => { + it('should exclude its own filter but apply other column filters', () => { + const table = makeTable({ + columnFilters: [ + { id: 'team', value: 'red' }, + { id: 'name', value: 'Bob' }, + ], + }) + // faceting the name column: name filter ignored, team filter applied + const rows = table + .getColumn('name')! + .getFacetedRowModel() + .rows.map((row) => row.original.name) + expect(rows).toEqual(['Alice', 'Carol']) + }) + + it('should apply the global filter to a column faceted row model', () => { + const table = makeTable({ globalFilter: 'Bo' }) + const rows = table + .getColumn('team')! + .getFacetedRowModel() + .rows.map((row) => row.original.name) + expect(rows).toEqual(['Bob']) + }) + + it('should be identical to the pre-filtered model when only the faceted column is filtered', () => { + const table = makeTable({ columnFilters: [{ id: 'team', value: 'red' }] }) + expect(table.getColumn('team')!.getFacetedRowModel()).toBe( + table.getPreFilteredRowModel(), + ) + }) + + it('should return the pre-filtered model for empty data', () => { + const table = makeTable({ + data: [], + columnFilters: [{ id: 'team', value: 'red' }], + globalFilter: 'x', + }) + expect(table.getColumn('name')!.getFacetedRowModel()).toBe( + table.getPreFilteredRowModel(), + ) + }) +}) + +describe('getFacetedUniqueValues (real implementation)', () => { + it('should count unique values from the other-filtered faceted rows', () => { + const table = makeTable({ columnFilters: [{ id: 'team', value: 'red' }] }) + // name facet reflects only Alice and Carol (red team) + expect(table.getColumn('name')!.getFacetedUniqueValues()).toEqual( + new Map([ + ['Alice', 1], + ['Carol', 1], + ]), + ) + }) + + it('should count duplicate values correctly', () => { + const table = makeTable() + expect(table.getColumn('team')!.getFacetedUniqueValues()).toEqual( + new Map([ + ['red', 2], + ['blue', 2], + ]), + ) + }) + + it('should yield one entry per array element for array-valued cells', () => { + const table = makeTable() + expect(table.getColumn('tags')!.getFacetedUniqueValues()).toEqual( + new Map([ + ['a', 2], + ['b', 2], + ['c', 1], + ]), + ) + }) +}) + +describe('global faceted models (real factories)', () => { + it('should apply column filters but not the global filter in the global faceted row model', () => { + const table = makeTable({ + columnFilters: [{ id: 'team', value: 'blue' }], + globalFilter: 'Bob', + }) + // the global faceted model excludes the global filter itself (mirroring + // how a column's faceted model excludes that column's own filter) while + // still applying column filters, so both blue-team rows survive + const rows = table + .getGlobalFacetedRowModel() + .rows.map((row) => row.original.name) + expect(rows).toEqual(['Bob', 'Dave']) + }) + + it('should aggregate unique values across globally filterable columns', () => { + const table = makeTable({ columnFilters: [{ id: 'team', value: 'red' }] }) + // faceted rows are the red-team rows (Alice, Carol); the tags column is + // not globally filterable (array values), so name, age, and team + // contribute values. Raw cell values are not coerced, so '40' stays a + // string + expect(table.getGlobalFacetedUniqueValues()).toEqual( + new Map([ + ['Alice', 1], + ['Carol', 1], + [30, 1], + ['40', 1], + ['red', 2], + ]), + ) + }) + + it('should return an empty Map for global faceted unique values with empty data', () => { + const table = makeTable({ data: [] }) + expect(table.getGlobalFacetedUniqueValues()).toEqual(new Map()) + }) + + it('should aggregate min max values across globally filterable columns', () => { + const table = makeTable() + // name and team coerce to NaN and are skipped; the age column yields + // 30, 25, 40 ('40' coerced) and 0 (Number(null) is 0, existing behavior) + expect(table.getGlobalFacetedMinMaxValues()).toEqual([0, 40]) + }) +}) + +describe('recompute and reference stability', () => { + it('should return the same references on repeated calls when nothing changed', () => { + const table = makeTable({ columnFilters: [{ id: 'team', value: 'red' }] }) + const nameColumn = table.getColumn('name')! + + expect(nameColumn.getFacetedRowModel()).toBe( + nameColumn.getFacetedRowModel(), + ) + expect(nameColumn.getFacetedUniqueValues()).toBe( + nameColumn.getFacetedUniqueValues(), + ) + expect(table.getColumn('age')!.getFacetedMinMaxValues()).toBe( + table.getColumn('age')!.getFacetedMinMaxValues(), + ) + }) + + it('should recompute after a runtime filter change on another column', () => { + const table = makeTable() + const nameColumn = table.getColumn('name')! + const ageColumn = table.getColumn('age')! + + expect(nameColumn.getFacetedUniqueValues().size).toBe(4) + expect(ageColumn.getFacetedMinMaxValues()).toEqual([0, 40]) + + table.setColumnFilters([{ id: 'team', value: 'red' }]) + + expect(nameColumn.getFacetedUniqueValues()).toEqual( + new Map([ + ['Alice', 1], + ['Carol', 1], + ]), + ) + expect(ageColumn.getFacetedMinMaxValues()).toEqual([30, 40]) + }) +}) + +describe('no-factory fallbacks', () => { + const fallbackFeatures = testFeatures({ + columnFacetingFeature, + columnFilteringFeature, + filteredRowModel: createFilteredRowModel(), + filterFns, + }) + + const fallbackColumns: Array< + ColumnDef + > = [ + { accessorKey: 'name', id: 'name' }, + { accessorKey: 'age', id: 'age' }, + ] + + it('should fall back to the pre-filtered model, empty Map, and undefined', () => { + const table = constructTable({ + data, + columns: fallbackColumns, + features: fallbackFeatures, + initialState: { columnFilters: [{ id: 'name', value: 'Alice' }] }, + }) + const ageColumn = table.getColumn('age')! + + expect(ageColumn.getFacetedRowModel()).toBe(table.getPreFilteredRowModel()) + expect(ageColumn.getFacetedUniqueValues()).toEqual(new Map()) + expect(ageColumn.getFacetedUniqueValues().size).toBe(0) + expect(ageColumn.getFacetedMinMaxValues()).toBeUndefined() + }) +}) diff --git a/packages/table-core/tests/implementation/features/column-filtering/createFilteredRowModel.test.ts b/packages/table-core/tests/implementation/features/column-filtering/createFilteredRowModel.test.ts index b7150ea3a4..1722c7934c 100644 --- a/packages/table-core/tests/implementation/features/column-filtering/createFilteredRowModel.test.ts +++ b/packages/table-core/tests/implementation/features/column-filtering/createFilteredRowModel.test.ts @@ -1,19 +1,31 @@ -import { describe, expect, it } from 'vitest' +import { afterEach, describe, expect, it, vi } from 'vitest' import { columnFilteringFeature, constructTable, createFilteredRowModel, filterFns, + globalFilteringFeature, } from '../../../../src' import { testFeatures } from '../../../fixtures/features' -import type { ColumnDef } from '../../../../src' +import type { ColumnDef, FilterFn } from '../../../../src' interface TestRow { name: string } +interface TaggedRow { + name: string + tag: string +} + +interface NestedRow { + name: string + subRows?: Array +} + const features = testFeatures({ columnFilteringFeature, + globalFilteringFeature, filteredRowModel: createFilteredRowModel(), filterFns, }) @@ -22,8 +34,53 @@ const columns: Array> = [ { accessorKey: 'name', id: 'name' }, ] +const taggedColumns: Array> = [ + { accessorKey: 'name', id: 'name' }, + { accessorKey: 'tag', id: 'tag' }, +] + +const nestedColumns: Array> = [ + { accessorKey: 'name', id: 'name' }, +] + +// 3-level nested dataset shared by the hierarchical filtering tests. +// 'keep' names match the { id: 'name', value: 'keep' } filter, 'drop' names do not. +const nestedData: Array = [ + { + name: 'keep-a', + subRows: [ + { name: 'keep-a1', subRows: [{ name: 'drop-a1a' }] }, + { name: 'drop-a2' }, + ], + }, + { name: 'drop-b', subRows: [{ name: 'keep-b1' }] }, + { name: 'keep-c' }, + { name: 'keep-d', subRows: [{ name: 'drop-d1' }] }, +] + +function makeNestedTable(options?: { + filterFromLeafRows?: boolean + maxLeafRowFilterDepth?: number + data?: Array +}) { + return constructTable({ + features, + columns: nestedColumns, + data: options?.data ?? nestedData, + getSubRows: (row) => row.subRows, + filterFromLeafRows: options?.filterFromLeafRows, + maxLeafRowFilterDepth: options?.maxLeafRowFilterDepth, + initialState: { + columnFilters: [{ id: 'name', value: 'keep' }], + }, + }) +} + +const rowNames = (rows: Array<{ original: { name: string } }>) => + rows.map((row) => row.original.name) + describe('createFilteredRowModel', () => { - it('assigns display indexes in filtered row order', () => { + it('should assign display indexes in filtered row order', () => { const table = constructTable({ features, columns, @@ -47,4 +104,452 @@ describe('createFilteredRowModel', () => { ).toEqual([0, 1, 2]) expect(filteredOutRow.getDisplayIndex()).toBe(1) }) + + describe('hierarchical filtering from root (default)', () => { + it('should keep a matching parent with recursively filtered subRows', () => { + const table = makeNestedTable() + const { rows } = table.getFilteredRowModel() + + expect(rowNames(rows)).toEqual(['keep-a', 'keep-c', 'keep-d']) + + const keepA = rows[0]! + expect(rowNames(keepA.subRows)).toEqual(['keep-a1']) + // keep-a1's own non-matching child is filtered out too + expect(keepA.subRows[0]!.subRows).toEqual([]) + // keep-d matches but has no matching children + expect(rows[2]!.subRows).toEqual([]) + }) + + it('should clone matching parents that have subRows', () => { + const table = makeNestedTable() + const preRow = table.getPreFilteredRowModel().rows[0]! + const filteredRow = table.getFilteredRowModel().rows[0]! + + expect(filteredRow).not.toBe(preRow) + expect(filteredRow.id).toBe(preRow.id) + expect(filteredRow.original).toBe(preRow.original) + }) + + it('should drop the entire subtree of a non-matching parent even if children match', () => { + const table = makeNestedTable() + const model = table.getFilteredRowModel() + + expect(rowNames(model.rows)).not.toContain('drop-b') + // keep-b1 matches, but its parent drop-b was pruned first + expect(rowNames(model.flatRows)).not.toContain('keep-b1') + }) + + it('should include cloned rows and exclude dropped rows in flatRows and rowsById', () => { + const table = makeNestedTable() + const model = table.getFilteredRowModel() + + expect(rowNames(model.flatRows).sort()).toEqual([ + 'keep-a', + 'keep-a1', + 'keep-c', + 'keep-d', + ]) + + const byIdNames = Object.values(model.rowsById) + .map((row) => row.original.name) + .sort() + expect(byIdNames).toEqual(['keep-a', 'keep-a1', 'keep-c', 'keep-d']) + + // rowsById points at the cloned rows present in the filtered tree + const keepA = model.rows[0]! + expect(model.rowsById[keepA.id]).toBe(keepA) + expect(model.rowsById[keepA.subRows[0]!.id]).toBe(keepA.subRows[0]) + }) + }) + + describe('filterFromLeafRows', () => { + it('should retain a non-matching parent when any descendant matches', () => { + const table = makeNestedTable({ filterFromLeafRows: true }) + const { rows } = table.getFilteredRowModel() + + expect(rowNames(rows)).toEqual(['keep-a', 'drop-b', 'keep-c', 'keep-d']) + + const dropB = rows[1]! + expect(rowNames(dropB.subRows)).toEqual(['keep-b1']) + }) + + it('should keep a matching parent that has no matching children', () => { + const table = makeNestedTable({ filterFromLeafRows: true }) + const { rows } = table.getFilteredRowModel() + + const keepD = rows.find((row) => row.original.name === 'keep-d')! + expect(keepD.subRows).toEqual([]) + }) + + it('should drop a non-matching parent whose descendants all fail', () => { + const table = makeNestedTable({ + filterFromLeafRows: true, + data: [{ name: 'drop-z', subRows: [{ name: 'drop-z1' }] }], + }) + + expect(table.getFilteredRowModel().rows).toEqual([]) + }) + + it('should retain a 3-level chain of non-matching ancestors above a matching leaf', () => { + const table = makeNestedTable({ + filterFromLeafRows: true, + data: [ + { + name: 'drop-x', + subRows: [{ name: 'drop-x1', subRows: [{ name: 'keep-x1a' }] }], + }, + ], + }) + const { rows, flatRows } = table.getFilteredRowModel() + + expect(rowNames(rows)).toEqual(['drop-x']) + expect(rowNames(rows[0]!.subRows)).toEqual(['drop-x1']) + expect(rowNames(rows[0]!.subRows[0]!.subRows)).toEqual(['keep-x1a']) + expect(rowNames(flatRows).sort()).toEqual([ + 'drop-x', + 'drop-x1', + 'keep-x1a', + ]) + }) + + it('should prune matching subRows from a matching parent while filtering', () => { + // Covers the branch pair in filterRowsUtils where a parent both passes + // and has surviving children. + const table = makeNestedTable({ filterFromLeafRows: true }) + const keepA = table.getFilteredRowModel().rows[0]! + + expect(rowNames(keepA.subRows)).toEqual(['keep-a1']) + expect(keepA.subRows[0]!.subRows).toEqual([]) + }) + }) + + describe('maxLeafRowFilterDepth', () => { + it('should keep subRows unfiltered when maxLeafRowFilterDepth is 0 (from root)', () => { + const table = makeNestedTable({ maxLeafRowFilterDepth: 0 }) + const { rows } = table.getFilteredRowModel() + + expect(rowNames(rows)).toEqual(['keep-a', 'keep-c', 'keep-d']) + + // Non-matching children survive because sub-row filtering stopped at depth 0 + const keepA = rows[0]! + expect(rowNames(keepA.subRows)).toEqual(['keep-a1', 'drop-a2']) + expect(rowNames(keepA.subRows[0]!.subRows)).toEqual(['drop-a1a']) + expect(rowNames(rows[2]!.subRows)).toEqual(['drop-d1']) + }) + + it('should treat rows as leaves when maxLeafRowFilterDepth is 0 (from leaf)', () => { + const table = makeNestedTable({ + filterFromLeafRows: true, + maxLeafRowFilterDepth: 0, + }) + const { rows } = table.getFilteredRowModel() + + // drop-b is dropped even though keep-b1 matches, because descendants + // are never consulted at depth 0 + expect(rowNames(rows)).toEqual(['keep-a', 'keep-c', 'keep-d']) + }) + + it('should stop filtering below depth 1 when maxLeafRowFilterDepth is 1 (from root)', () => { + const table = makeNestedTable({ maxLeafRowFilterDepth: 1 }) + const keepA = table.getFilteredRowModel().rows[0]! + + // Depth 1 children are filtered, depth 2 grandchildren are kept as-is + expect(rowNames(keepA.subRows)).toEqual(['keep-a1']) + expect(rowNames(keepA.subRows[0]!.subRows)).toEqual(['drop-a1a']) + }) + + it('should stop consulting descendants below depth 1 when maxLeafRowFilterDepth is 1 (from leaf)', () => { + const table = makeNestedTable({ + filterFromLeafRows: true, + maxLeafRowFilterDepth: 1, + data: [ + { + name: 'drop-x', + subRows: [{ name: 'drop-x1', subRows: [{ name: 'keep-x1a' }] }], + }, + { name: 'drop-b', subRows: [{ name: 'keep-b1' }] }, + ], + }) + const { rows } = table.getFilteredRowModel() + + // drop-b survives via its depth-1 matching child, but drop-x does not: + // its only match lives at depth 2, past the max filter depth + expect(rowNames(rows)).toEqual(['drop-b']) + }) + + it('should filter deep trees fully with the default depth of 100', () => { + const fromRoot = makeNestedTable() + const fromLeaf = makeNestedTable({ filterFromLeafRows: true }) + + // Depth 2 rows are still filtered in both modes + expect( + fromRoot.getFilteredRowModel().rows[0]!.subRows[0]!.subRows, + ).toEqual([]) + expect( + fromLeaf.getFilteredRowModel().rows[0]!.subRows[0]!.subRows, + ).toEqual([]) + }) + }) + + describe('column filter and global filter together', () => { + it('should require rows to pass both filters (AND semantics) in one pass', () => { + const table = constructTable({ + features, + columns: taggedColumns, + data: [ + { name: 'keep', tag: 'x1' }, + { name: 'keep', tag: 'y' }, + { name: 'drop', tag: 'x2' }, + { name: 'drop', tag: 'y' }, + ], + initialState: { + columnFilters: [{ id: 'name', value: 'keep' }], + globalFilter: 'x', + }, + }) + + const { rows, flatRows } = table.getFilteredRowModel() + expect(rows.map((row) => row.original.tag)).toEqual(['x1']) + expect(flatRows).toHaveLength(1) + + // Per-row survival flags on the pre-filtered flat rows + const preRows = table.getPreFilteredRowModel().flatRows + expect(preRows.map((row) => row.columnFilters.name)).toEqual([ + true, + true, + false, + false, + ]) + expect(preRows.map((row) => row.columnFilters.__global__)).toEqual([ + true, + false, + true, + false, + ]) + }) + }) + + describe('columnFilters state edge cases', () => { + it('should skip an unknown column id in columnFilters state', () => { + const table = constructTable({ + features, + columns, + data: [{ name: 'keep' }, { name: 'drop' }], + initialState: { + columnFilters: [{ id: 'doesNotExist', value: 'z' }], + }, + }) + + expect(rowNames(table.getFilteredRowModel().rows)).toEqual([ + 'keep', + 'drop', + ]) + }) + + it('should still filter a column with enableColumnFilter false when state contains an entry', () => { + // Documents existing behavior: the filtered row model does not consult + // column.getCanFilter(), so a state entry for a non-filterable column + // is applied anyway. + const table = constructTable({ + features, + columns: [ + { accessorKey: 'name', id: 'name', enableColumnFilter: false }, + ], + data: [{ name: 'keep' }, { name: 'drop' }], + initialState: { + columnFilters: [{ id: 'name', value: 'keep' }], + }, + }) + + expect(table.getColumn('name')!.getCanFilter()).toBe(false) + expect(rowNames(table.getFilteredRowModel().rows)).toEqual(['keep']) + }) + }) + + describe('columnFiltersMeta', () => { + it('should populate row.columnFiltersMeta via the addMeta callback of a column filterFn', () => { + const metaFilterFn: FilterFn = ( + row, + columnId, + filterValue, + addMeta, + ) => { + const value = row.getValue(columnId) + addMeta?.({ inspected: value }) + return value.includes(filterValue as string) + } + + const table = constructTable({ + features, + columns: [{ accessorKey: 'name', id: 'name', filterFn: metaFilterFn }], + data: [{ name: 'keep' }, { name: 'drop' }], + initialState: { + columnFilters: [{ id: 'name', value: 'keep' }], + }, + }) + + table.getFilteredRowModel() + const preRows = table.getPreFilteredRowModel().flatRows + + // Meta is recorded on every tested row, surviving or not + expect(preRows[0]!.columnFiltersMeta.name).toEqual({ inspected: 'keep' }) + expect(preRows[1]!.columnFiltersMeta.name).toEqual({ inspected: 'drop' }) + }) + + it('should populate row.columnFiltersMeta via the addMeta callback of a custom global filter', () => { + const globalMetaFn: FilterFn = ( + row, + columnId, + filterValue, + addMeta, + ) => { + const value = row.getValue(columnId) + addMeta?.({ globalHit: value }) + return value.includes(filterValue as string) + } + + const table = constructTable({ + features, + columns, + data: [{ name: 'keep' }, { name: 'drop' }], + globalFilterFn: globalMetaFn, + initialState: { + globalFilter: 'keep', + }, + }) + + table.getFilteredRowModel() + const preRows = table.getPreFilteredRowModel().flatRows + + // Global filter meta is keyed by the column id it evaluated + expect(preRows[0]!.columnFiltersMeta.name).toEqual({ globalHit: 'keep' }) + expect(preRows[1]!.columnFiltersMeta.name).toEqual({ globalHit: 'drop' }) + }) + }) + + describe('row.columnFilters flags', () => { + it('should tag flat rows with per-column pass/fail and the __global__ flag', () => { + const table = constructTable({ + features, + columns, + data: [{ name: 'keep' }, { name: 'drop' }], + initialState: { + columnFilters: [{ id: 'name', value: 'keep' }], + globalFilter: 'drop', + }, + }) + + table.getFilteredRowModel() + const preRows = table.getPreFilteredRowModel().flatRows + + expect(preRows[0]!.columnFilters).toEqual({ + name: true, + __global__: false, + }) + expect(preRows[1]!.columnFilters).toEqual({ + name: false, + __global__: true, + }) + }) + + it('should reset columnFilters and columnFiltersMeta on rows after all filters are removed', () => { + const table = constructTable({ + features, + columns, + data: [{ name: 'keep' }, { name: 'drop' }], + initialState: { + columnFilters: [{ id: 'name', value: 'keep' }], + globalFilter: 'keep', + }, + }) + + table.getFilteredRowModel() + const preRows = table.getPreFilteredRowModel().flatRows + expect(preRows[0]!.columnFilters).not.toEqual({}) + + table.setColumnFilters([]) + table.setGlobalFilter(undefined) + table.getFilteredRowModel() + + expect(preRows[0]!.columnFilters).toEqual({}) + expect(preRows[0]!.columnFiltersMeta).toEqual({}) + expect(preRows[1]!.columnFilters).toEqual({}) + expect(preRows[1]!.columnFiltersMeta).toEqual({}) + }) + }) + + describe('global filtering edge cases', () => { + it('should pass rows through when no columns are globally filterable', () => { + const table = constructTable({ + features, + columns: [ + { accessorKey: 'name', id: 'name', enableGlobalFilter: false }, + ], + data: [{ name: 'keep' }, { name: 'drop' }], + initialState: { + globalFilter: 'keep', + }, + }) + + const { rows, flatRows } = table.getFilteredRowModel() + expect(rowNames(rows)).toEqual(['keep', 'drop']) + // No __global__ tagging happened either + expect(flatRows[0]!.columnFilters).toEqual({}) + }) + + it('should match mixed-case global filter values via includesString value resolution', () => { + const table = constructTable({ + features, + columns, + data: [{ name: 'Keep Me' }, { name: 'drop' }], + initialState: { + globalFilter: 'kEeP', + }, + }) + + expect(rowNames(table.getFilteredRowModel().rows)).toEqual(['Keep Me']) + }) + }) + + describe('unresolvable global filter fn', () => { + afterEach(() => { + vi.unstubAllEnvs() + vi.restoreAllMocks() + }) + + it('should apply no global filtering and warn in dev when the globalFilterFn name is not registered', () => { + vi.stubEnv('NODE_ENV', 'development') + const warn = vi.spyOn(console, 'warn').mockImplementation(() => {}) + + const table = constructTable({ + features, + columns, + data: [{ name: 'keep' }, { name: 'drop' }], + globalFilterFn: 'doesNotExist' as any, + initialState: { + globalFilter: 'keep', + }, + }) + + expect(rowNames(table.getFilteredRowModel().rows)).toEqual([ + 'keep', + 'drop', + ]) + expect(warn).toHaveBeenCalledWith( + expect.stringContaining(`'doesNotExist'`), + ) + }) + }) + + describe('no active filters', () => { + it('should return the pre-filtered row model identity when no filters are active', () => { + const table = constructTable({ + features, + columns, + data: [{ name: 'keep' }, { name: 'drop' }], + }) + + expect(table.getFilteredRowModel()).toBe(table.getPreFilteredRowModel()) + }) + }) }) diff --git a/packages/table-core/tests/implementation/features/column-grouping/createGroupedRowModel.test.ts b/packages/table-core/tests/implementation/features/column-grouping/createGroupedRowModel.test.ts index d759efdf15..4815a72ea9 100644 --- a/packages/table-core/tests/implementation/features/column-grouping/createGroupedRowModel.test.ts +++ b/packages/table-core/tests/implementation/features/column-grouping/createGroupedRowModel.test.ts @@ -1,7 +1,7 @@ -import { describe, expect, it } from 'vitest' +import { describe, expect, it, vi } from 'vitest' import { - aggregationFns, aggregationFeature, + aggregationFns, columnGroupingFeature, constructTable, createGroupedRowModel, @@ -155,3 +155,353 @@ describe('createGroupedRowModel flatRows contain every row exactly once', () => expectUniqueFlatRowIds(rowModel) }) }) + +interface AbcRow { + a: string + b: string + c: string +} + +describe('createGroupedRowModel multi-level structure', () => { + it('should build the full 3-level group structure with composite ids, depths, subRows, and leafRows', () => { + const data: Array = [ + { a: 'a1', b: 'b1', c: 'c1' }, + { a: 'a1', b: 'b1', c: 'c2' }, + { a: 'a1', b: 'b2', c: 'c1' }, + { a: 'a2', b: 'b1', c: 'c1' }, + ] + const table = constructTable({ + features, + renderFallbackValue: '', + data, + columns: [ + { accessorKey: 'a', id: 'a' }, + { accessorKey: 'b', id: 'b' }, + { accessorKey: 'c', id: 'c' }, + ] as Array>, + initialState: { grouping: ['a', 'b', 'c'] }, + }) + const rowModel = table.getGroupedRowModel() + + // depth 0: 2 groups (a1, a2) + expect(rowModel.rows.map((row) => row.id)).toEqual(['a:a1', 'a:a2']) + expect(rowModel.rows.map((row) => row.depth)).toEqual([0, 0]) + + const a1 = rowModel.rows[0]! as any + const a2 = rowModel.rows[1]! as any + + // depth 1: composite ids chain through the parent id + expect(a1.subRows.map((row: any) => row.id)).toEqual([ + 'a:a1>b:b1', + 'a:a1>b:b2', + ]) + expect(a2.subRows.map((row: any) => row.id)).toEqual(['a:a2>b:b1']) + expect(a1.subRows.map((row: any) => row.depth)).toEqual([1, 1]) + + // depth 2: c-level groups + const a1b1 = a1.subRows[0] + expect(a1b1.subRows.map((row: any) => row.id)).toEqual([ + 'a:a1>b:b1>c:c1', + 'a:a1>b:b1>c:c2', + ]) + expect(a1b1.subRows.map((row: any) => row.depth)).toEqual([2, 2]) + + // depth 3: leaf data rows under the deepest groups + const a1b1c1 = a1b1.subRows[0] + expect(a1b1c1.subRows.length).toBe(1) + expect(a1b1c1.subRows[0].depth).toBe(3) + expect(a1b1c1.subRows[0].parentId).toBe('a:a1>b:b1>c:c1') + + // leafRows at each level are the original data rows in that bucket + expect(a1.leafRows.length).toBe(3) + expect(a1b1.leafRows.length).toBe(2) + expect(a1b1c1.leafRows.length).toBe(1) + expect(a2.leafRows.length).toBe(1) + + // 2 + 3 + 4 group rows + 4 leaves, each exactly once + expect(rowModel.flatRows.length).toBe(13) + expectUniqueFlatRowIds(rowModel) + expect(Object.keys(rowModel.rowsById).length).toBe(13) + }) +}) + +describe('createGroupedRowModel custom getGroupingValue', () => { + it('should merge rows into shared buckets and call getGroupingValue once per row via the grouping values cache', () => { + const data: Array = [ + { status: 'apple', firstName: 'one' }, + { status: 'avocado', firstName: 'two' }, + { status: 'banana', firstName: 'three' }, + { status: 'apricot', firstName: 'four' }, + ] + const getGroupingValue = vi.fn( + (originalRow: TestRow) => originalRow.status![0], + ) + const table = constructTable({ + features, + renderFallbackValue: '', + data, + columns: [ + { accessorKey: 'status', id: 'status', getGroupingValue }, + { accessorKey: 'firstName', id: 'firstName' }, + ] as Array>, + initialState: { grouping: ['status'] }, + }) + const rowModel = table.getGroupedRowModel() + + // Rows sharing a first letter merge into the same bucket + expect(rowModel.rows.map((row) => row.id)).toEqual(['status:a', 'status:b']) + const aGroup = rowModel.rows[0]! as any + expect(aGroup.leafRows.map((row: any) => row.original.status)).toEqual([ + 'apple', + 'avocado', + 'apricot', + ]) + expect((rowModel.rows[1]! as any).leafRows.length).toBe(1) + + // groupBy read each of the 4 rows exactly once + expect(getGroupingValue).toHaveBeenCalledTimes(4) + + // Repeated reads hit _groupingValuesCache instead of re-invoking the fn + aGroup.leafRows.forEach((row: any) => row.getGroupingValue('status')) + expect(getGroupingValue).toHaveBeenCalledTimes(4) + }) +}) + +interface TreeRow { + status: string + firstName: string + subRows?: Array +} + +function makeTreeTable(data: Array, grouping: Array) { + return constructTable({ + features, + renderFallbackValue: '', + data, + columns: [ + { accessorKey: 'status', id: 'status' }, + { accessorKey: 'firstName', id: 'firstName' }, + ] as Array>, + getSubRows: (originalRow) => originalRow.subRows, + initialState: { grouping }, + }) +} + +describe('createGroupedRowModel leafRows vs subRows over tree data', () => { + it('should flatten terminal descendants into leafRows while subRows keep direct children', () => { + const data: Array = [ + { + status: 'x', + firstName: 'parent1', + subRows: [ + { status: 'x', firstName: 'child1' }, + { status: 'x', firstName: 'child2' }, + ], + }, + { + status: 'x', + firstName: 'parent2', + subRows: [{ status: 'x', firstName: 'child3' }], + }, + ] + const table = makeTreeTable(data, ['status']) + const rowModel = table.getGroupedRowModel() + + expect(rowModel.rows.length).toBe(1) + const group = rowModel.rows[0]! as any + + // subRows are the direct children of the group: the two parents + expect(group.subRows.map((row: any) => row.original.firstName)).toEqual([ + 'parent1', + 'parent2', + ]) + + // leafRows are the flattened terminal descendants: the three children only + expect(group.leafRows.map((row: any) => row.original.firstName)).toEqual([ + 'child1', + 'child2', + 'child3', + ]) + }) +}) + +describe('createGroupedRowModel grouping key coercion', () => { + interface MixedRow { + value: number | string | null + firstName: string + } + + function makeMixedTable(data: Array) { + return constructTable({ + features, + renderFallbackValue: '', + data, + columns: [ + { accessorKey: 'value', id: 'value' }, + { accessorKey: 'firstName', id: 'firstName' }, + ] as Array>, + initialState: { grouping: ['value'] }, + }) + } + + it('should collide numeric 1 and string "1" into the same group (keys are string-coerced)', () => { + // Current behavior: groupBy coerces every grouping value with template + // string interpolation, so 1 and '1' share the 'value:1' bucket. + const table = makeMixedTable([ + { value: 1, firstName: 'numeric' }, + { value: '1', firstName: 'string' }, + { value: 2, firstName: 'other' }, + ]) + const rowModel = table.getGroupedRowModel() + + expect(rowModel.rows.map((row) => row.id)).toEqual(['value:1', 'value:2']) + expect((rowModel.rows[0]! as any).leafRows.length).toBe(2) + }) + + it('should group null values under the "null" key', () => { + const table = makeMixedTable([ + { value: null, firstName: 'one' }, + { value: null, firstName: 'two' }, + { value: 'x', firstName: 'three' }, + ]) + const rowModel = table.getGroupedRowModel() + + expect(rowModel.rowsById).toHaveProperty('value:null') + expect((rowModel.rowsById['value:null'] as any).leafRows.length).toBe(2) + }) +}) + +describe('createGroupedRowModel ancestor grouping-value inheritance', () => { + interface RegionRow { + region: string + level: string + firstName: string + } + + it('should expose the parent region value on depth-1 group rows via getValue', () => { + const data: Array = [ + { region: 'east', level: 'high', firstName: 'one' }, + { region: 'east', level: 'low', firstName: 'two' }, + { region: 'west', level: 'high', firstName: 'three' }, + ] + const table = constructTable({ + features, + renderFallbackValue: '', + data, + columns: [ + { accessorKey: 'region', id: 'region' }, + { accessorKey: 'level', id: 'level' }, + { accessorKey: 'firstName', id: 'firstName' }, + ] as Array>, + initialState: { grouping: ['region', 'level'] }, + }) + const rowModel = table.getGroupedRowModel() + + const eastGroup = rowModel.rows[0]! + expect(eastGroup.getValue('region')).toBe('east') + + const eastHigh = eastGroup.subRows[0]! + expect(eastHigh.id).toBe('region:east>level:high') + // Ancestor grouping column value is inherited on the deeper group row + expect(eastHigh.getValue('level')).toBe('high') + expect(eastHigh.getValue('region')).toBe('east') + // Second read hits _valuesCache and stays consistent + expect(eastHigh.getValue('region')).toBe('east') + + const westHigh = rowModel.rows[1]!.subRows[0]! + expect(westHigh.getValue('region')).toBe('west') + }) +}) + +describe('createGroupedRowModel ungrouping reset', () => { + it('should reset depth and parentId on flat rows after setGrouping([])', () => { + const data: Array = [ + { status: 'a', firstName: 'one' }, + { status: 'a', firstName: 'two' }, + { status: 'b', firstName: 'three' }, + ] + const table = makeTable(data, ['status']) + + const grouped = table.getGroupedRowModel() + expect(grouped.rowsById['0']!.depth).toBe(1) + expect(grouped.rowsById['0']!.parentId).toBe('status:a') + + table.setGrouping([]) + const ungrouped = table.getGroupedRowModel() + + expect(ungrouped.rows.length).toBe(3) + ungrouped.rows.forEach((row) => { + expect(row.depth).toBe(0) + expect(row.parentId).toBeUndefined() + }) + }) + + it('should reset depth and parentId on top-level tree rows after setGrouping([])', () => { + const data: Array = [ + { + status: 'x', + firstName: 'parent1', + subRows: [{ status: 'x', firstName: 'child1' }], + }, + { status: 'y', firstName: 'parent2' }, + ] + const table = makeTreeTable(data, ['status']) + + const grouped = table.getGroupedRowModel() + expect(grouped.rowsById['0']!.depth).toBe(1) + expect(grouped.rowsById['0']!.parentId).toBe('status:x') + expect(grouped.rowsById['0.0']!.depth).toBe(2) + + table.setGrouping([]) + const ungrouped = table.getGroupedRowModel() + + ungrouped.rows.forEach((row) => { + expect(row.depth).toBe(0) + expect(row.parentId).toBeUndefined() + }) + // Pinning current behavior (possible bug): the ungrouping reset branch + // only rewrites top-level rows, so nested tree descendants keep the + // shifted depth (2) from the previous grouped pass instead of returning + // to their natural tree depth (1). + expect(ungrouped.rowsById['0.0']!.depth).toBe(2) + expect(ungrouped.rowsById['0.0']!.parentId).toBe('0') + }) +}) + +describe('createGroupedRowModel manualGrouping', () => { + it('should bypass a registered grouped row model when manualGrouping is true', () => { + const data: Array = [ + { status: 'a', firstName: 'one' }, + { status: 'b', firstName: 'two' }, + ] + const table = constructTable({ + features, + renderFallbackValue: '', + data, + columns, + manualGrouping: true, + initialState: { grouping: ['status'] }, + }) + + expect(table.getGroupedRowModel()).toBe(table.getPreGroupedRowModel()) + expect(table.getGroupedRowModel().rows).toHaveLength(2) + }) +}) + +describe('createGroupedRowModel rowsById', () => { + it('should contain group row ids and leaf ids exactly once', () => { + const data: Array = [ + { status: 'a', firstName: 'one' }, + { status: 'a', firstName: 'two' }, + { status: 'b', firstName: 'three' }, + ] + const table = makeTable(data, ['status']) + const rowModel = table.getGroupedRowModel() + + const ids = Object.keys(rowModel.rowsById).sort() + expect(ids).toEqual(['0', '1', '2', 'status:a', 'status:b']) + // rowsById mirrors flatRows one-to-one + expect(ids.length).toBe(rowModel.flatRows.length) + expectUniqueFlatRowIds(rowModel) + }) +}) diff --git a/packages/table-core/tests/implementation/features/row-expanding/createExpandedRowModel.test.ts b/packages/table-core/tests/implementation/features/row-expanding/createExpandedRowModel.test.ts new file mode 100644 index 0000000000..13c4d62a93 --- /dev/null +++ b/packages/table-core/tests/implementation/features/row-expanding/createExpandedRowModel.test.ts @@ -0,0 +1,264 @@ +import { describe, expect, it } from 'vitest' +import { + constructTable, + createColumnHelper, + createExpandedRowModel, + rowExpandingFeature, +} from '../../../../src' +import { testFeatures } from '../../../fixtures/features' +import type { ColumnDef, Row } from '../../../../src' + +type Person = { + firstName: string + subRows?: Array +} + +const features = testFeatures({ + rowExpandingFeature, + expandedRowModel: createExpandedRowModel(), +}) + +// 3-level deterministic data: 2 roots x 2 children x 2 grandchildren +function makeNestedData(): Array { + return [0, 1].map((i) => ({ + firstName: `parent-${i}`, + subRows: [0, 1].map((j) => ({ + firstName: `child-${i}.${j}`, + subRows: [0, 1].map((k) => ({ + firstName: `grandchild-${i}.${j}.${k}`, + })), + })), + })) +} + +function createTable(options?: { + data?: Array + paginateExpandedRows?: boolean + manualExpanding?: boolean + getIsRowExpanded?: (row: Row) => boolean +}) { + const columnHelper = createColumnHelper() + const columns: Array> = [ + columnHelper.accessor('firstName', { id: 'firstName' }), + ] + + return constructTable({ + features, + data: options?.data ?? makeNestedData(), + columns, + getSubRows: (row) => row.subRows, + // Only pass options when defined so an explicit `undefined` does not + // override the paginateExpandedRows: true default injected by + // rowExpandingFeature's getDefaultTableOptions + ...(options?.paginateExpandedRows !== undefined + ? { paginateExpandedRows: options.paginateExpandedRows } + : {}), + ...(options?.manualExpanding !== undefined + ? { manualExpanding: options.manualExpanding } + : {}), + ...(options?.getIsRowExpanded + ? { getIsRowExpanded: options.getIsRowExpanded } + : {}), + }) +} + +describe('createExpandedRowModel', () => { + describe('expand all', () => { + it('should include every subRow in depth-first display order when all rows are expanded', () => { + const table = createTable() + + table.toggleAllRowsExpanded(true) + + expect(table.getExpandedRowModel().rows.map((row) => row.id)).toEqual([ + '0', + '0.0', + '0.0.0', + '0.0.1', + '0.1', + '0.1.0', + '0.1.1', + '1', + '1.0', + '1.0.0', + '1.0.1', + '1.1', + '1.1.0', + '1.1.1', + ]) + }) + }) + + describe('per-id expansion', () => { + it('should surface only direct children when a single root is expanded', () => { + const table = createTable() + + table.getRow('0').toggleExpanded() + + expect(table.getExpandedRowModel().rows.map((row) => row.id)).toEqual([ + '0', + '0.0', + '0.1', + '1', + ]) + }) + + it('should surface grandchildren when both the root and its child are expanded', () => { + const table = createTable() + + table.getRow('0').toggleExpanded() + table.getRow('0.0').toggleExpanded() + + expect(table.getExpandedRowModel().rows.map((row) => row.id)).toEqual([ + '0', + '0.0', + '0.0.0', + '0.0.1', + '0.1', + '1', + ]) + }) + + it('should not surface an expanded child while its parent is collapsed', () => { + const table = createTable() + + // Expand '0.0' only; parent '0' stays collapsed + table.getRow('0.0').toggleExpanded() + + expect(table.getExpandedRowModel().rows.map((row) => row.id)).toEqual([ + '0', + '1', + ]) + }) + }) + + describe('options.getIsRowExpanded', () => { + it('should drive the model output via the getIsRowExpanded option override', () => { + // Expanded state marks '1' expanded, but the option override says only + // '0' is expanded. The model must follow the override, not the state. + const table = createTable({ + getIsRowExpanded: (row) => row.id === '0', + }) + + table.getRow('1').toggleExpanded() + + expect(table.getExpandedRowModel().rows.map((row) => row.id)).toEqual([ + '0', + '0.0', + '0.1', + '1', + ]) + }) + }) + + describe('flatRows and rowsById passthrough', () => { + it('should pass through the pre-expansion flatRows and rowsById unchanged', () => { + const table = createTable() + + table.getRow('0').toggleExpanded() + + const preModel = table.getPreExpandedRowModel() + const expandedModel = table.getExpandedRowModel() + + // Pinned current behavior: expandRows only rebuilds `rows`; `flatRows` + // and `rowsById` are the pre-expansion full lists passed through by + // reference (createExpandedRowModel.ts lines ~79-80). + expect(expandedModel.flatRows).toBe(preModel.flatRows) + expect(expandedModel.rowsById).toBe(preModel.rowsById) + expect(expandedModel.flatRows.length).toBe(14) // all 14 rows, not just visible ones + }) + }) + + describe('empty state early returns', () => { + it('should return the pre-model identity when nothing is expanded', () => { + const table = createTable() + + expect(table.getExpandedRowModel()).toBe(table.getPreExpandedRowModel()) + }) + + it('should return the pre-model identity when there is no data', () => { + const table = createTable({ data: [] }) + + table.setExpanded(true) + + expect(table.getExpandedRowModel()).toBe(table.getPreExpandedRowModel()) + expect(table.getExpandedRowModel().rows).toEqual([]) + }) + }) + + describe('paginateExpandedRows: false', () => { + it('should return the pre-model identity even with rows expanded', () => { + // Documented contract: when paginateExpandedRows is false, expansion is + // deferred to the paginated row model so expanded children do not + // consume page slots. The expanded model is a passthrough. + const table = createTable({ paginateExpandedRows: false }) + + table.getRow('0').toggleExpanded() + + expect(table.getExpandedRowModel()).toBe(table.getPreExpandedRowModel()) + expect(table.getExpandedRowModel().rows.map((row) => row.id)).toEqual([ + '0', + '1', + ]) + }) + }) + + describe('manualExpanding', () => { + it('should return the pre-model identity when manualExpanding is true', () => { + const table = createTable({ manualExpanding: true }) + + table.getRow('0').toggleExpanded() + + expect(table.getExpandedRowModel()).toBe(table.getPreExpandedRowModel()) + expect(table.getExpandedRowModel().rows.map((row) => row.id)).toEqual([ + '0', + '1', + ]) + }) + }) + + describe('memoization', () => { + it('should return the same reference on repeated calls', () => { + const table = createTable() + + table.getRow('0').toggleExpanded() + + const first = table.getExpandedRowModel() + expect(table.getExpandedRowModel()).toBe(first) + expect(table.getExpandedRowModel()).toBe(first) + }) + + it('should produce a new model when expanded state changes', () => { + const table = createTable() + + table.getRow('0').toggleExpanded() + const first = table.getExpandedRowModel() + + table.setExpanded({ '0': true, '0.0': true }) + const second = table.getExpandedRowModel() + + expect(second).not.toBe(first) + expect(second.rows.map((row) => row.id)).toEqual([ + '0', + '0.0', + '0.0.0', + '0.0.1', + '0.1', + '1', + ]) + }) + + it('should not recompute when unrelated getters are called in between', () => { + const table = createTable() + + table.getRow('0').toggleExpanded() + const first = table.getExpandedRowModel() + + // Unrelated calls should not invalidate the memo + table.getPreExpandedRowModel() + table.getRowModel() + table.getRow('1').getIsExpanded() + + expect(table.getExpandedRowModel()).toBe(first) + }) + }) +}) diff --git a/packages/table-core/tests/implementation/features/row-pagination/createPaginatedRowModel.test.ts b/packages/table-core/tests/implementation/features/row-pagination/createPaginatedRowModel.test.ts new file mode 100644 index 0000000000..45c9132f23 --- /dev/null +++ b/packages/table-core/tests/implementation/features/row-pagination/createPaginatedRowModel.test.ts @@ -0,0 +1,236 @@ +import { describe, expect, it } from 'vitest' +import { + constructTable, + createColumnHelper, + createExpandedRowModel, + createPaginatedRowModel, + rowExpandingFeature, + rowPaginationFeature, +} from '../../../../src' +import { testFeatures } from '../../../fixtures/features' +import type { ColumnDef } from '../../../../src' + +type Person = { + firstName: string + subRows?: Array +} + +// rowExpandingFeature is registered so that its getDefaultTableOptions +// injects the paginateExpandedRows: true default used by the paginated model. +const features = testFeatures({ + rowExpandingFeature, + rowPaginationFeature, + expandedRowModel: createExpandedRowModel(), + paginatedRowModel: createPaginatedRowModel(), +}) + +function makeFlatData(count: number): Array { + return Array.from({ length: count }, (_, i) => ({ + firstName: `person-${i}`, + })) +} + +// 3 parents, each with 2 children +function makeNestedData(): Array { + return [0, 1, 2].map((i) => ({ + firstName: `parent-${i}`, + subRows: [0, 1].map((j) => ({ firstName: `child-${i}.${j}` })), + })) +} + +function createTable(options?: { + data?: Array + pageIndex?: number + pageSize?: number + paginateExpandedRows?: boolean + manualPagination?: boolean +}) { + const columnHelper = createColumnHelper() + const columns: Array> = [ + columnHelper.accessor('firstName', { id: 'firstName' }), + ] + + return constructTable({ + features, + data: options?.data ?? makeFlatData(5), + columns, + getSubRows: (row) => row.subRows, + // Only pass options when defined so an explicit `undefined` does not + // override the paginateExpandedRows: true default injected by + // rowExpandingFeature's getDefaultTableOptions + ...(options?.paginateExpandedRows !== undefined + ? { paginateExpandedRows: options.paginateExpandedRows } + : {}), + ...(options?.manualPagination !== undefined + ? { manualPagination: options.manualPagination } + : {}), + initialState: { + pagination: { + pageIndex: options?.pageIndex ?? 0, + pageSize: options?.pageSize ?? 2, + }, + }, + }) +} + +describe('createPaginatedRowModel', () => { + describe('slice math', () => { + it('should return the first page for pageIndex 0', () => { + const table = createTable({ pageSize: 2, pageIndex: 0 }) + + expect(table.getPaginatedRowModel().rows.map((row) => row.id)).toEqual([ + '0', + '1', + ]) + }) + + it('should return a last partial page', () => { + const table = createTable({ pageSize: 2, pageIndex: 2 }) + + expect(table.getPaginatedRowModel().rows.map((row) => row.id)).toEqual([ + '4', + ]) + }) + + it('should return full pages at an exact page boundary (rows % pageSize === 0)', () => { + const table = createTable({ + data: makeFlatData(4), + pageSize: 2, + pageIndex: 1, + }) + + expect(table.getPaginatedRowModel().rows.map((row) => row.id)).toEqual([ + '2', + '3', + ]) + }) + + it('should return no rows for an out-of-range pageIndex', () => { + const table = createTable({ pageSize: 2, pageIndex: 5 }) + + expect(table.getPaginatedRowModel().rows).toEqual([]) + }) + + it('should return all rows when pageSize is larger than the dataset', () => { + const table = createTable({ pageSize: 10, pageIndex: 0 }) + + expect(table.getPaginatedRowModel().rows.map((row) => row.id)).toEqual([ + '0', + '1', + '2', + '3', + '4', + ]) + }) + }) + + describe('empty pre-paginated model', () => { + it('should return the pre-model identity when there is no data', () => { + const table = createTable({ data: [] }) + + expect(table.getPaginatedRowModel()).toBe(table.getPrePaginatedRowModel()) + expect(table.getPaginatedRowModel().rows).toEqual([]) + }) + }) + + describe('paginateExpandedRows: true (default)', () => { + it('should let expanded children consume page slots and spill across page boundaries', () => { + const table = createTable({ data: makeNestedData(), pageSize: 3 }) + + table.getRow('0').toggleExpanded() + + // Pre-paginated expanded order: 0, 0.0, 0.1, 1, 2 + expect(table.getPaginatedRowModel().rows.map((row) => row.id)).toEqual([ + '0', + '0.0', + '0.1', + ]) + + table.setPageIndex(1) + + expect(table.getPaginatedRowModel().rows.map((row) => row.id)).toEqual([ + '1', + '2', + ]) + }) + }) + + describe('paginateExpandedRows: false', () => { + it('should slice unexpanded rows then append expanded children without consuming page slots', () => { + const table = createTable({ + data: makeNestedData(), + pageSize: 2, + paginateExpandedRows: false, + }) + + table.getRow('0').toggleExpanded() + table.getRow('1').toggleExpanded() + + // Page 0 slice from the unexpanded rows is ['0', '1']; both parents are + // expanded, so their children are inserted inline without shrinking the + // number of parents on the page. + expect(table.getPaginatedRowModel().rows.map((row) => row.id)).toEqual([ + '0', + '0.0', + '0.1', + '1', + '1.0', + '1.1', + ]) + + table.setPageIndex(1) + + // Page 1 slice from unexpanded rows is ['2'], which is collapsed + expect(table.getPaginatedRowModel().rows.map((row) => row.id)).toEqual([ + '2', + ]) + }) + }) + + describe('flatRows rebuild', () => { + it('should rebuild flatRows from the page rows including all subRows regardless of expanded state', () => { + const table = createTable({ data: makeNestedData(), pageSize: 2 }) + + // Nothing is expanded, yet flatRows includes the subRows of every row + // on the page. Pinned current behavior: _createPaginatedRowModel + // discards the pre-model flatRows and rebuilds them by walking every + // subRow of the page rows (createPaginatedRowModel.ts lines ~71-80). + expect( + table.getPaginatedRowModel().flatRows.map((row) => row.id), + ).toEqual(['0', '0.0', '0.1', '1', '1.0', '1.1']) + }) + }) + + describe('rowsById passthrough', () => { + it('should pass through the whole pre-model rowsById map, not just the page', () => { + const table = createTable({ data: makeNestedData(), pageSize: 2 }) + + const preModel = table.getPrePaginatedRowModel() + const paginatedModel = table.getPaginatedRowModel() + + // Pinned current behavior: rowsById is the pre-pagination map passed + // through by reference, so it contains rows that are not on the page. + expect(paginatedModel.rowsById).toBe(preModel.rowsById) + expect(paginatedModel.rowsById['2']).toBeDefined() + }) + }) + + describe('manualPagination', () => { + it('should return the pre-model identity when manualPagination is true', () => { + const table = createTable({ + pageSize: 2, + pageIndex: 1, + manualPagination: true, + }) + + expect(table.getPaginatedRowModel()).toBe(table.getPrePaginatedRowModel()) + expect(table.getPaginatedRowModel().rows.map((row) => row.id)).toEqual([ + '0', + '1', + '2', + '3', + '4', + ]) + }) + }) +}) diff --git a/packages/table-core/tests/implementation/features/row-sorting/createSortedRowModel.test.ts b/packages/table-core/tests/implementation/features/row-sorting/createSortedRowModel.test.ts new file mode 100644 index 0000000000..fb1e6a2d0e --- /dev/null +++ b/packages/table-core/tests/implementation/features/row-sorting/createSortedRowModel.test.ts @@ -0,0 +1,495 @@ +import { describe, expect, it } from 'vitest' +import { + constructTable, + createSortedRowModel, + rowSortingFeature, +} from '../../../../src' +import { testFeatures } from '../../../fixtures/features' +import type { ColumnDef } from '../../../../src' + +type Person = { + firstName: string + age: number + subRows?: Array +} + +const features = testFeatures({ + rowSortingFeature, + sortedRowModel: createSortedRowModel(), +}) + +const columns: Array> = [ + { accessorKey: 'firstName', id: 'firstName' }, + { accessorKey: 'age', id: 'age' }, +] + +const data: Array = [ + { firstName: 'amy', age: 20 }, + { firstName: 'bob', age: 40 }, + { firstName: 'alice', age: 30 }, +] + +function makeTable( + sorting: Array<{ id: string; desc: boolean }>, + tableData: Array = data, +) { + return constructTable({ + data: tableData, + columns, + features, + initialState: { sorting }, + getSubRows: (row) => row.subRows, + }) +} + +describe('createSortedRowModel', () => { + it('does not crash when the sorting state references a column that no longer exists', () => { + const table = makeTable([{ id: 'thisColumnDoesNotExist', desc: false }]) + + expect(() => table.getSortedRowModel()).not.toThrow() + }) + + it('falls back to the pre-sorted row order when only unknown columns are sorted', () => { + const table = makeTable([{ id: 'thisColumnDoesNotExist', desc: false }]) + + expect( + table.getSortedRowModel().rows.map((row) => row.original.firstName), + ).toEqual(['amy', 'bob', 'alice']) + }) + + it('returns the pre-sorted row model when only unknown columns are sorted', () => { + const table = makeTable([{ id: 'thisColumnDoesNotExist', desc: false }]) + + expect(table.getSortedRowModel()).toBe(table.getPreSortedRowModel()) + }) + + it('still sorts by the remaining known columns when one sort entry is unknown', () => { + const table = makeTable([ + { id: 'thisColumnDoesNotExist', desc: false }, + { id: 'age', desc: false }, + ]) + + expect( + table.getSortedRowModel().rows.map((row) => row.original.firstName), + ).toEqual(['amy', 'alice', 'bob']) + }) + + it('assigns display indexes in the final sorted order', () => { + const table = makeTable([{ id: 'age', desc: false }]) + + let rows = table.getRowModel().rows + + expect(rows.map((row) => row.original.firstName)).toEqual([ + 'amy', + 'alice', + 'bob', + ]) + expect(rows.map((row) => row.getDisplayIndex())).toEqual([0, 1, 2]) + + table.setSorting([{ id: 'age', desc: true }]) + rows = table.getRowModel().rows + + expect(rows.map((row) => row.original.firstName)).toEqual([ + 'bob', + 'alice', + 'amy', + ]) + expect(rows.map((row) => row.getDisplayIndex())).toEqual([0, 1, 2]) + + table.setSorting([]) + rows = table.getRowModel().rows + + expect(rows.map((row) => row.original.firstName)).toEqual([ + 'amy', + 'bob', + 'alice', + ]) + expect(rows.map((row) => row.getDisplayIndex())).toEqual([0, 1, 2]) + }) + + it('keeps branch row identity when sorted subRows are unchanged', () => { + const table = makeTable( + [{ id: 'age', desc: false }], + [ + { + firstName: 'parent', + age: 20, + subRows: [ + { firstName: 'child-a', age: 10 }, + { firstName: 'child-b', age: 15 }, + ], + }, + ], + ) + + const preSortedRow = table.getPreSortedRowModel().rows[0]! + const sortedRow = table.getSortedRowModel().rows[0]! + + expect(sortedRow).toBe(preSortedRow) + expect(sortedRow.subRows[0]).toBe(preSortedRow.subRows[0]) + expect(sortedRow.subRows[1]).toBe(preSortedRow.subRows[1]) + }) + + it('clones branch rows when sorted subRows change', () => { + const table = makeTable( + [{ id: 'age', desc: false }], + [ + { + firstName: 'parent', + age: 20, + subRows: [ + { firstName: 'child-b', age: 15 }, + { firstName: 'child-a', age: 10 }, + ], + }, + ], + ) + + const preSortedRow = table.getPreSortedRowModel().rows[0]! + const sortedRow = table.getSortedRowModel().rows[0]! + + expect(sortedRow).not.toBe(preSortedRow) + expect(sortedRow.subRows.map((row) => row.original.firstName)).toEqual([ + 'child-a', + 'child-b', + ]) + }) + + it('does not copy memoized row APIs from the original row to sorted branch clones', () => { + const table = makeTable( + [{ id: 'age', desc: false }], + [ + { + firstName: 'parent', + age: 20, + subRows: [ + { firstName: 'child-b', age: 15 }, + { firstName: 'child-a', age: 10 }, + ], + }, + ], + ) + const preSortedRow = table.getPreSortedRowModel().rows[0]! + + // Warm a per-row memo on the original. The sorted clone must build its own + // memo so returned cells point back to the clone, not the source row. + preSortedRow.getAllCells() + + const sortedRow = table.getSortedRowModel().rows[0]! + + expect(sortedRow).not.toBe(preSortedRow) + expect(sortedRow.getAllCells()[0]!.row).toBe(sortedRow) + }) + + it('builds leaf-row memos for sorted branch clones from the clone subRows', () => { + const table = makeTable( + [{ id: 'age', desc: false }], + [ + { + firstName: 'parent', + age: 20, + subRows: [ + { firstName: 'child-b', age: 15 }, + { firstName: 'child-a', age: 10 }, + ], + }, + ], + ) + const preSortedRow = table.getPreSortedRowModel().rows[0]! + + expect( + preSortedRow.getLeafRows().map((row) => row.original.firstName), + ).toEqual(['child-b', 'child-a']) + + const sortedRow = table.getSortedRowModel().rows[0]! + + expect(sortedRow).not.toBe(preSortedRow) + expect(sortedRow.getLeafRows()).toBe(sortedRow.getLeafRows()) + expect( + sortedRow.getLeafRows().map((row) => row.original.firstName), + ).toEqual(['child-a', 'child-b']) + }) + + describe('sortUndefined', () => { + type MaybePerson = { + firstName: string + age?: number + } + + // amy and carl have undefined ages; dan (1) and bob (2) are defined + const undefinedData: Array = [ + { firstName: 'amy' }, + { firstName: 'bob', age: 2 }, + { firstName: 'carl' }, + { firstName: 'dan', age: 1 }, + ] + + // Treats undefined as -Infinity so undefined values participate in the + // sortFn deterministically for the sortUndefined: false case. + const undefinedAwareSortFn = (rowA: any, rowB: any, columnId: string) => { + const a = rowA.getValue(columnId) ?? -Infinity + const b = rowB.getValue(columnId) ?? -Infinity + return a === b ? 0 : a > b ? 1 : -1 + } + + function makeUndefinedTable( + sortUndefined: false | -1 | 1 | 'first' | 'last', + desc: boolean, + ) { + const localColumns: Array> = + [ + { accessorKey: 'firstName', id: 'firstName' }, + { + accessorKey: 'age', + id: 'age', + sortUndefined, + sortFn: undefinedAwareSortFn, + }, + ] + + return constructTable({ + data: undefinedData, + columns: localColumns, + features, + initialState: { sorting: [{ id: 'age', desc }] }, + }) + } + + function sortedNames( + sortUndefined: false | -1 | 1 | 'first' | 'last', + desc: boolean, + ) { + return makeUndefinedTable(sortUndefined, desc) + .getSortedRowModel() + .rows.map((row) => row.original.firstName) + } + + it('should sort undefined values last for sortUndefined: 1 ascending, first descending', () => { + // sortInt = aUndefined ? 1 : -1, then desc inverts it; so 1 does NOT + // mean "undefined always last": direction flips the placement. + expect(sortedNames(1, false)).toEqual(['dan', 'bob', 'amy', 'carl']) + expect(sortedNames(1, true)).toEqual(['amy', 'carl', 'bob', 'dan']) + }) + + it('should sort undefined values first for sortUndefined: -1 ascending, last descending', () => { + expect(sortedNames(-1, false)).toEqual(['amy', 'carl', 'dan', 'bob']) + expect(sortedNames(-1, true)).toEqual(['bob', 'dan', 'amy', 'carl']) + }) + + it('should sort undefined values first for sortUndefined: "first" regardless of direction', () => { + expect(sortedNames('first', false)).toEqual(['amy', 'carl', 'dan', 'bob']) + expect(sortedNames('first', true)).toEqual(['amy', 'carl', 'bob', 'dan']) + }) + + it('should sort undefined values last for sortUndefined: "last" regardless of direction', () => { + expect(sortedNames('last', false)).toEqual(['dan', 'bob', 'amy', 'carl']) + expect(sortedNames('last', true)).toEqual(['bob', 'dan', 'amy', 'carl']) + }) + + it('should let undefined values participate via the sortFn for sortUndefined: false', () => { + // The sortFn maps undefined to -Infinity, so undefined sorts as the + // smallest value in both directions. + expect(sortedNames(false, false)).toEqual(['amy', 'carl', 'dan', 'bob']) + expect(sortedNames(false, true)).toEqual(['bob', 'dan', 'amy', 'carl']) + }) + + it('should keep the relative order of rows that are both undefined', () => { + // Both-undefined comparisons hit the continue branch and fall through + // to the rowA.index - rowB.index tiebreak: amy stays before carl. + expect(sortedNames(1, false)).toEqual(['dan', 'bob', 'amy', 'carl']) + expect(sortedNames(1, true)).toEqual(['amy', 'carl', 'bob', 'dan']) + }) + }) + + describe('invertSorting', () => { + function makeInvertedTable(desc: boolean) { + const localColumns: Array> = [ + { accessorKey: 'firstName', id: 'firstName' }, + { accessorKey: 'age', id: 'age', invertSorting: true }, + ] + + return constructTable({ + data, + columns: localColumns, + features, + initialState: { sorting: [{ id: 'age', desc }] }, + }) + } + + it('should invert an ascending sort when invertSorting is true', () => { + const table = makeInvertedTable(false) + + expect( + table.getSortedRowModel().rows.map((row) => row.original.firstName), + ).toEqual(['bob', 'alice', 'amy']) + }) + + it('should double-negate back to ascending when invertSorting is combined with desc', () => { + const table = makeInvertedTable(true) + + expect( + table.getSortedRowModel().rows.map((row) => row.original.firstName), + ).toEqual(['amy', 'alice', 'bob']) + }) + }) + + describe('stable sort', () => { + const tiedData: Array = [ + { firstName: 'amy', age: 30 }, + { firstName: 'bob', age: 30 }, + { firstName: 'carl', age: 10 }, + { firstName: 'dan', age: 30 }, + ] + + it('should preserve original index order for equal sort keys ascending', () => { + const table = makeTable([{ id: 'age', desc: false }], tiedData) + + expect( + table.getSortedRowModel().rows.map((row) => row.original.firstName), + ).toEqual(['carl', 'amy', 'bob', 'dan']) + }) + + it('should preserve original index order for equal sort keys descending', () => { + const table = makeTable([{ id: 'age', desc: true }], tiedData) + + // The index tiebreak is always ascending, even for a descending sort. + expect( + table.getSortedRowModel().rows.map((row) => row.original.firstName), + ).toEqual(['amy', 'bob', 'dan', 'carl']) + }) + }) + + describe('maxMultiSortColCount', () => { + type Triple = { a: number; b: number; c: number; name: string } + + it('should not trim the sorting state applied by the model', () => { + // maxMultiSortColCount only limits how many sort entries user toggle + // interactions can add (column_toggleSorting); the sorted row model + // applies every entry already present in the sorting state. Pinning + // that all 3 entries affect row order despite maxMultiSortColCount: 2. + const localColumns: Array> = [ + { accessorKey: 'a', id: 'a' }, + { accessorKey: 'b', id: 'b' }, + { accessorKey: 'c', id: 'c' }, + ] + + // a and b are constant, so only the 3rd sort entry (c) can change order + const localData: Array = [ + { name: 'x', a: 1, b: 1, c: 1 }, + { name: 'y', a: 1, b: 1, c: 3 }, + { name: 'z', a: 1, b: 1, c: 2 }, + ] + + const table = constructTable({ + data: localData, + columns: localColumns, + features, + maxMultiSortColCount: 2, + initialState: { + sorting: [ + { id: 'a', desc: false }, + { id: 'b', desc: false }, + { id: 'c', desc: true }, + ], + }, + }) + + expect( + table.getSortedRowModel().rows.map((row) => row.original.name), + ).toEqual(['y', 'z', 'x']) + }) + }) + + describe('enableSorting: false columns', () => { + it('should skip disabled columns in the sorting state while other sorted columns still apply', () => { + const localColumns: Array> = [ + { accessorKey: 'firstName', id: 'firstName', enableSorting: false }, + { accessorKey: 'age', id: 'age' }, + ] + + const table = constructTable({ + data, + columns: localColumns, + features, + initialState: { + sorting: [ + // firstName desc would put bob first if it were applied + { id: 'firstName', desc: true }, + { id: 'age', desc: false }, + ], + }, + }) + + expect( + table.getSortedRowModel().rows.map((row) => row.original.firstName), + ).toEqual(['amy', 'alice', 'bob']) + }) + }) + + describe('multi-sort', () => { + it('should sort by 3 columns with mixed asc/desc directions', () => { + type Triple = { a: number; b: number; c: number; name: string } + + const localColumns: Array> = [ + { accessorKey: 'a', id: 'a' }, + { accessorKey: 'b', id: 'b' }, + { accessorKey: 'c', id: 'c' }, + ] + + const localData: Array = [ + { name: 'p', a: 2, b: 1, c: 1 }, + { name: 'q', a: 1, b: 2, c: 1 }, + { name: 'r', a: 1, b: 2, c: 2 }, + { name: 's', a: 1, b: 1, c: 5 }, + { name: 't', a: 2, b: 3, c: 9 }, + ] + + const table = constructTable({ + data: localData, + columns: localColumns, + features, + initialState: { + sorting: [ + { id: 'a', desc: false }, + { id: 'b', desc: true }, + { id: 'c', desc: false }, + ], + }, + }) + + // a asc: [q, r, s] then [p, t] + // within a=1, b desc: q/r (b=2) before s (b=1) + // within a=1, b=2, c asc: q (c=1) before r (c=2) + // within a=2, b desc: t (b=3) before p (b=1) + expect( + table.getSortedRowModel().rows.map((row) => row.original.name), + ).toEqual(['q', 'r', 's', 't', 'p']) + }) + }) + + describe('manualSorting', () => { + it('should toggle between identity and sorted output when manualSorting changes at runtime', () => { + const table = constructTable({ + data, + columns, + features, + manualSorting: true, + initialState: { sorting: [{ id: 'age', desc: false }] }, + }) + + // Manual sorting: the sorted row model is the pre-sorted row model + expect(table.getSortedRowModel()).toBe(table.getPreSortedRowModel()) + + table.setOptions((prev) => ({ ...prev, manualSorting: false })) + + expect(table.getSortedRowModel()).not.toBe(table.getPreSortedRowModel()) + expect( + table.getSortedRowModel().rows.map((row) => row.original.firstName), + ).toEqual(['amy', 'alice', 'bob']) + + table.setOptions((prev) => ({ ...prev, manualSorting: true })) + + expect(table.getSortedRowModel()).toBe(table.getPreSortedRowModel()) + }) + }) +}) diff --git a/packages/table-core/tests/unit/core/row-models/coreRowModelsFeature.utils.test.ts b/packages/table-core/tests/unit/core/row-models/coreRowModelsFeature.utils.test.ts index d0fb0334bc..436f2d627f 100644 --- a/packages/table-core/tests/unit/core/row-models/coreRowModelsFeature.utils.test.ts +++ b/packages/table-core/tests/unit/core/row-models/coreRowModelsFeature.utils.test.ts @@ -1,16 +1,25 @@ import { describe, expect, it, vi } from 'vitest' import { + aggregationFeature, + aggregationFns, columnFilteringFeature, + columnGroupingFeature, constructTable, + createExpandedRowModel, createFilteredRowModel, + createGroupedRowModel, + createPaginatedRowModel, createSortedRowModel, filterFns, + rowExpandingFeature, + rowPaginationFeature, rowSortingFeature, sortFns, } from '../../../../src' import { testFeatures } from '../../../fixtures/features' import { generateTestColumnDefs } from '../../../fixtures/data/generateTestColumnDefs' import { generateTestData } from '../../../fixtures/data/generateTestData' +import type { ColumnDef } from '../../../../src' const coreOnlyFeatures = testFeatures({}) @@ -121,3 +130,309 @@ describe('manual processing options', () => { expect(table.getFilteredRowModel()).not.toBe(table.getPreFilteredRowModel()) }) }) + +describe('manual option matrix (all six pipeline stages)', () => { + type Item = { + name: string + status: string + subRows?: Array + } + + const matrixFeatures = testFeatures({ + aggregationFeature, + columnFilteringFeature, + columnGroupingFeature, + rowExpandingFeature, + rowPaginationFeature, + rowSortingFeature, + filteredRowModel: createFilteredRowModel(), + groupedRowModel: createGroupedRowModel(), + sortedRowModel: createSortedRowModel(), + expandedRowModel: createExpandedRowModel(), + paginatedRowModel: createPaginatedRowModel(), + aggregationFns, + filterFns, + sortFns, + }) + + const matrixColumns: Array> = [ + { accessorKey: 'name', id: 'name' }, + { accessorKey: 'status', id: 'status' }, + ] + + // 5 root rows, one with a nested child. Row '4' is removed by the filter. + function makeMatrixData(): Array { + return [ + { name: 'echo', status: 'group-a' }, + { name: 'alpha', status: 'group-b' }, + { name: 'delta', status: 'group-a' }, + { + name: 'bravo', + status: 'group-b', + subRows: [{ name: 'bravo-child', status: 'group-b' }], + }, + { name: 'charlie', status: 'excluded' }, + ] + } + + type ManualOptions = { + manualFiltering?: boolean + manualGrouping?: boolean + manualSorting?: boolean + manualExpanding?: boolean + manualPagination?: boolean + } + + // Every stage has active state so each stage would transform the rows + // whenever it is not bypassed + function makeMatrixTable(options?: ManualOptions) { + return constructTable({ + features: matrixFeatures, + data: makeMatrixData(), + columns: matrixColumns, + getSubRows: (row) => row.subRows, + initialState: { + columnFilters: [{ id: 'status', value: 'group' }], + grouping: ['status'], + sorting: [{ id: 'name', desc: false }], + expanded: true, + pagination: { pageIndex: 0, pageSize: 2 }, + }, + ...options, + }) + } + + describe('one manual option at a time', () => { + it('manualFiltering should bypass filtering while grouping still groups the unfiltered rows', () => { + const table = makeMatrixTable({ manualFiltering: true }) + + expect(table.getFilteredRowModel()).toBe(table.getPreFilteredRowModel()) + expect(table.getFilteredRowModel().rows).toHaveLength(5) + + // Downstream grouping runs on the bypassed (unfiltered) model, so the + // 'excluded' status still forms a group + const groupedIds = table.getGroupedRowModel().rows.map((row) => row.id) + expect(groupedIds).toEqual([ + 'status:group-a', + 'status:group-b', + 'status:excluded', + ]) + }) + + it('manualGrouping should bypass grouping while sorting still sorts the filtered leaf rows', () => { + const table = makeMatrixTable({ manualGrouping: true }) + + expect(table.getGroupedRowModel()).toBe(table.getPreGroupedRowModel()) + expect(table.getGroupedRowModel()).toBe(table.getFilteredRowModel()) + + // Downstream sorting runs directly on the filtered flat rows + expect( + table.getSortedRowModel().rows.map((row) => row.original.name), + ).toEqual(['alpha', 'bravo', 'delta', 'echo']) + }) + + it('manualSorting should bypass sorting while expanding still flattens the grouped rows', () => { + const table = makeMatrixTable({ manualSorting: true }) + + expect(table.getSortedRowModel()).toBe(table.getPreSortedRowModel()) + expect(table.getSortedRowModel()).toBe(table.getGroupedRowModel()) + + // Downstream expanding runs on the unsorted grouped model: groups stay + // in insertion order and leaves stay in original data order + expect(table.getExpandedRowModel().rows.map((row) => row.id)).toEqual([ + 'status:group-a', + '0', + '2', + 'status:group-b', + '1', + '3', + '3.0', + ]) + }) + + it('manualExpanding should bypass expanding while pagination still slices the unexpanded rows', () => { + const table = makeMatrixTable({ manualExpanding: true }) + + expect(table.getExpandedRowModel()).toBe(table.getPreExpandedRowModel()) + expect(table.getExpandedRowModel()).toBe(table.getSortedRowModel()) + + // Downstream pagination sees only the 2 unexpanded group rows, no leaves + const pageRows = table.getPaginatedRowModel().rows + expect(pageRows).toHaveLength(2) + expect(pageRows.every((row) => row.id.startsWith('status:'))).toBe(true) + }) + + it('manualPagination should bypass pagination so the final row model keeps every expanded row', () => { + const table = makeMatrixTable({ manualPagination: true }) + + expect(table.getPaginatedRowModel()).toBe(table.getPrePaginatedRowModel()) + expect(table.getRowModel()).toBe(table.getExpandedRowModel()) + + // pageSize is 2 but all 7 expanded rows (2 groups + 4 leaves + 1 child) + // survive because pagination is bypassed + expect(table.getRowModel().rows).toHaveLength(7) + }) + }) + + describe('all manual options at once', () => { + it('should make the final row model identity-equal to the core row model', () => { + const table = makeMatrixTable({ + manualFiltering: true, + manualGrouping: true, + manualSorting: true, + manualExpanding: true, + manualPagination: true, + }) + + expect(table.getRowModel()).toBe(table.getCoreRowModel()) + expect(table.getFilteredRowModel()).toBe(table.getCoreRowModel()) + expect(table.getGroupedRowModel()).toBe(table.getCoreRowModel()) + expect(table.getSortedRowModel()).toBe(table.getCoreRowModel()) + expect(table.getExpandedRowModel()).toBe(table.getCoreRowModel()) + expect(table.getPaginatedRowModel()).toBe(table.getCoreRowModel()) + expect(table.getRowModel().rows).toHaveLength(5) + }) + }) + + describe('instantiate-then-bypass ordering', () => { + it('should instantiate a registered factory even when its manual option bypasses the result', () => { + const stubModel = { rows: [], flatRows: [], rowsById: {} } + const rowModelFn = vi.fn(() => stubModel) + const filteredRowModelFactory = vi.fn((_table: any) => rowModelFn) + const features = testFeatures({ + columnFilteringFeature, + filteredRowModel: filteredRowModelFactory, + filterFns, + }) + const data = generateTestData(3) + const table = constructTable({ + features, + data, + columns: generateTestColumnDefs(data), + manualFiltering: true, + initialState: { + columnFilters: [{ id: 'firstName', value: 'zzz-no-match' }], + }, + }) + + // The getter instantiates and caches the factory BEFORE checking the + // manual option, so the factory runs even though its output is unused + expect(table.getFilteredRowModel()).toBe(table.getPreFilteredRowModel()) + table.getFilteredRowModel() + + expect(filteredRowModelFactory).toHaveBeenCalledTimes(1) + // ...but the returned row-model fn itself is never invoked while manual + expect(rowModelFn).not.toHaveBeenCalled() + + // Because the factory was already instantiated, toggling manual off at + // runtime immediately applies the registered stage + table.setOptions((prev) => ({ ...prev, manualFiltering: false })) + + expect(table.getFilteredRowModel()).toBe(stubModel) + expect(rowModelFn).toHaveBeenCalledTimes(1) + expect(filteredRowModelFactory).toHaveBeenCalledTimes(1) + }) + }) + + describe('runtime toggling via setOptions', () => { + it('manualFiltering toggle should switch between identity and applied filtering', () => { + const table = makeMatrixTable({ manualFiltering: true }) + + expect(table.getFilteredRowModel()).toBe(table.getPreFilteredRowModel()) + expect(table.getFilteredRowModel().rows).toHaveLength(5) + + table.setOptions((prev) => ({ ...prev, manualFiltering: false })) + + expect(table.getFilteredRowModel()).not.toBe( + table.getPreFilteredRowModel(), + ) + expect(table.getFilteredRowModel().rows.map((row) => row.id)).toEqual([ + '0', + '1', + '2', + '3', + ]) + + table.setOptions((prev) => ({ ...prev, manualFiltering: true })) + + expect(table.getFilteredRowModel()).toBe(table.getPreFilteredRowModel()) + }) + + it('manualGrouping toggle should switch between identity and applied grouping', () => { + const table = makeMatrixTable({ manualGrouping: true }) + + expect(table.getGroupedRowModel()).toBe(table.getPreGroupedRowModel()) + + table.setOptions((prev) => ({ ...prev, manualGrouping: false })) + + expect(table.getGroupedRowModel()).not.toBe(table.getPreGroupedRowModel()) + expect(table.getGroupedRowModel().rows.map((row) => row.id)).toEqual([ + 'status:group-a', + 'status:group-b', + ]) + + table.setOptions((prev) => ({ ...prev, manualGrouping: true })) + + expect(table.getGroupedRowModel()).toBe(table.getPreGroupedRowModel()) + }) + + it('manualSorting toggle should switch between identity and applied sorting', () => { + // Deeper sorting toggle behavior is covered in the row-sorting + // implementation tests; this is just the matrix identity check + const table = makeMatrixTable({ + manualGrouping: true, + manualSorting: true, + }) + + expect(table.getSortedRowModel()).toBe(table.getPreSortedRowModel()) + + table.setOptions((prev) => ({ ...prev, manualSorting: false })) + + expect(table.getSortedRowModel()).not.toBe(table.getPreSortedRowModel()) + expect( + table.getSortedRowModel().rows.map((row) => row.original.name), + ).toEqual(['alpha', 'bravo', 'delta', 'echo']) + + table.setOptions((prev) => ({ ...prev, manualSorting: true })) + + expect(table.getSortedRowModel()).toBe(table.getPreSortedRowModel()) + }) + + it('manualExpanding toggle should switch between identity and applied expanding', () => { + const table = makeMatrixTable({ manualExpanding: true }) + + expect(table.getExpandedRowModel()).toBe(table.getPreExpandedRowModel()) + expect(table.getExpandedRowModel().rows).toHaveLength(2) + + table.setOptions((prev) => ({ ...prev, manualExpanding: false })) + + expect(table.getExpandedRowModel()).not.toBe( + table.getPreExpandedRowModel(), + ) + // 2 group rows + 4 leaves + 1 nested child + expect(table.getExpandedRowModel().rows).toHaveLength(7) + + table.setOptions((prev) => ({ ...prev, manualExpanding: true })) + + expect(table.getExpandedRowModel()).toBe(table.getPreExpandedRowModel()) + }) + + it('manualPagination toggle should switch between identity and applied pagination', () => { + const table = makeMatrixTable({ manualPagination: true }) + + expect(table.getPaginatedRowModel()).toBe(table.getPrePaginatedRowModel()) + expect(table.getPaginatedRowModel().rows).toHaveLength(7) + + table.setOptions((prev) => ({ ...prev, manualPagination: false })) + + expect(table.getPaginatedRowModel()).not.toBe( + table.getPrePaginatedRowModel(), + ) + expect(table.getPaginatedRowModel().rows).toHaveLength(2) + + table.setOptions((prev) => ({ ...prev, manualPagination: true })) + + expect(table.getPaginatedRowModel()).toBe(table.getPrePaginatedRowModel()) + }) + }) +}) diff --git a/packages/table-core/tests/unit/features/row-sorting/createSortedRowModel.test.ts b/packages/table-core/tests/unit/features/row-sorting/createSortedRowModel.test.ts deleted file mode 100644 index 13f01c736a..0000000000 --- a/packages/table-core/tests/unit/features/row-sorting/createSortedRowModel.test.ts +++ /dev/null @@ -1,212 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { - constructTable, - createSortedRowModel, - rowSortingFeature, -} from '../../../../src' -import { testFeatures } from '../../../fixtures/features' -import type { ColumnDef } from '../../../../src' - -type Person = { - firstName: string - age: number - subRows?: Array -} - -const features = testFeatures({ - rowSortingFeature, - sortedRowModel: createSortedRowModel(), -}) - -const columns: Array> = [ - { accessorKey: 'firstName', id: 'firstName' }, - { accessorKey: 'age', id: 'age' }, -] - -const data: Array = [ - { firstName: 'amy', age: 20 }, - { firstName: 'bob', age: 40 }, - { firstName: 'alice', age: 30 }, -] - -function makeTable( - sorting: Array<{ id: string; desc: boolean }>, - tableData: Array = data, -) { - return constructTable({ - data: tableData, - columns, - features, - initialState: { sorting }, - getSubRows: (row) => row.subRows, - }) -} - -describe('createSortedRowModel', () => { - it('does not crash when the sorting state references a column that no longer exists', () => { - const table = makeTable([{ id: 'thisColumnDoesNotExist', desc: false }]) - - expect(() => table.getSortedRowModel()).not.toThrow() - }) - - it('falls back to the pre-sorted row order when only unknown columns are sorted', () => { - const table = makeTable([{ id: 'thisColumnDoesNotExist', desc: false }]) - - expect( - table.getSortedRowModel().rows.map((row) => row.original.firstName), - ).toEqual(['amy', 'bob', 'alice']) - }) - - it('returns the pre-sorted row model when only unknown columns are sorted', () => { - const table = makeTable([{ id: 'thisColumnDoesNotExist', desc: false }]) - - expect(table.getSortedRowModel()).toBe(table.getPreSortedRowModel()) - }) - - it('still sorts by the remaining known columns when one sort entry is unknown', () => { - const table = makeTable([ - { id: 'thisColumnDoesNotExist', desc: false }, - { id: 'age', desc: false }, - ]) - - expect( - table.getSortedRowModel().rows.map((row) => row.original.firstName), - ).toEqual(['amy', 'alice', 'bob']) - }) - - it('assigns display indexes in the final sorted order', () => { - const table = makeTable([{ id: 'age', desc: false }]) - - let rows = table.getRowModel().rows - - expect(rows.map((row) => row.original.firstName)).toEqual([ - 'amy', - 'alice', - 'bob', - ]) - expect(rows.map((row) => row.getDisplayIndex())).toEqual([0, 1, 2]) - - table.setSorting([{ id: 'age', desc: true }]) - rows = table.getRowModel().rows - - expect(rows.map((row) => row.original.firstName)).toEqual([ - 'bob', - 'alice', - 'amy', - ]) - expect(rows.map((row) => row.getDisplayIndex())).toEqual([0, 1, 2]) - - table.setSorting([]) - rows = table.getRowModel().rows - - expect(rows.map((row) => row.original.firstName)).toEqual([ - 'amy', - 'bob', - 'alice', - ]) - expect(rows.map((row) => row.getDisplayIndex())).toEqual([0, 1, 2]) - }) - - it('keeps branch row identity when sorted subRows are unchanged', () => { - const table = makeTable( - [{ id: 'age', desc: false }], - [ - { - firstName: 'parent', - age: 20, - subRows: [ - { firstName: 'child-a', age: 10 }, - { firstName: 'child-b', age: 15 }, - ], - }, - ], - ) - - const preSortedRow = table.getPreSortedRowModel().rows[0]! - const sortedRow = table.getSortedRowModel().rows[0]! - - expect(sortedRow).toBe(preSortedRow) - expect(sortedRow.subRows[0]).toBe(preSortedRow.subRows[0]) - expect(sortedRow.subRows[1]).toBe(preSortedRow.subRows[1]) - }) - - it('clones branch rows when sorted subRows change', () => { - const table = makeTable( - [{ id: 'age', desc: false }], - [ - { - firstName: 'parent', - age: 20, - subRows: [ - { firstName: 'child-b', age: 15 }, - { firstName: 'child-a', age: 10 }, - ], - }, - ], - ) - - const preSortedRow = table.getPreSortedRowModel().rows[0]! - const sortedRow = table.getSortedRowModel().rows[0]! - - expect(sortedRow).not.toBe(preSortedRow) - expect(sortedRow.subRows.map((row) => row.original.firstName)).toEqual([ - 'child-a', - 'child-b', - ]) - }) - - it('does not copy memoized row APIs from the original row to sorted branch clones', () => { - const table = makeTable( - [{ id: 'age', desc: false }], - [ - { - firstName: 'parent', - age: 20, - subRows: [ - { firstName: 'child-b', age: 15 }, - { firstName: 'child-a', age: 10 }, - ], - }, - ], - ) - const preSortedRow = table.getPreSortedRowModel().rows[0]! - - // Warm a per-row memo on the original. The sorted clone must build its own - // memo so returned cells point back to the clone, not the source row. - preSortedRow.getAllCells() - - const sortedRow = table.getSortedRowModel().rows[0]! - - expect(sortedRow).not.toBe(preSortedRow) - expect(sortedRow.getAllCells()[0]!.row).toBe(sortedRow) - }) - - it('builds leaf-row memos for sorted branch clones from the clone subRows', () => { - const table = makeTable( - [{ id: 'age', desc: false }], - [ - { - firstName: 'parent', - age: 20, - subRows: [ - { firstName: 'child-b', age: 15 }, - { firstName: 'child-a', age: 10 }, - ], - }, - ], - ) - const preSortedRow = table.getPreSortedRowModel().rows[0]! - - expect( - preSortedRow.getLeafRows().map((row) => row.original.firstName), - ).toEqual(['child-b', 'child-a']) - - const sortedRow = table.getSortedRowModel().rows[0]! - - expect(sortedRow).not.toBe(preSortedRow) - expect(sortedRow.getLeafRows()).toBe(sortedRow.getLeafRows()) - expect( - sortedRow.getLeafRows().map((row) => row.original.firstName), - ).toEqual(['child-a', 'child-b']) - }) -}) diff --git a/packages/table-devtools/package.json b/packages/table-devtools/package.json index d4bb6a8248..1cd81b02d5 100644 --- a/packages/table-devtools/package.json +++ b/packages/table-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/table-devtools", - "version": "9.0.0-beta.48", + "version": "9.0.0-beta.49", "description": "Devtools for TanStack Table.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/table-devtools/skills/devtools/SKILL.md b/packages/table-devtools/skills/devtools/SKILL.md index 3527690323..2d63d88c30 100644 --- a/packages/table-devtools/skills/devtools/SKILL.md +++ b/packages/table-devtools/skills/devtools/SKILL.md @@ -5,7 +5,7 @@ description: > metadata: type: core library: '@tanstack/table-devtools' - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' sources: diff --git a/packages/vue-table-devtools/package.json b/packages/vue-table-devtools/package.json index 47222cda9d..2ae1770c43 100644 --- a/packages/vue-table-devtools/package.json +++ b/packages/vue-table-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-table-devtools", - "version": "9.0.0-beta.48", + "version": "9.0.0-beta.49", "description": "Vue devtools for TanStack Table.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/vue-table-devtools/skills/devtools/SKILL.md b/packages/vue-table-devtools/skills/devtools/SKILL.md index 4ae5ddc2b9..4f782f1c71 100644 --- a/packages/vue-table-devtools/skills/devtools/SKILL.md +++ b/packages/vue-table-devtools/skills/devtools/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/vue-table-devtools' framework: vue - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - '@tanstack/table-devtools#devtools' diff --git a/packages/vue-table/package.json b/packages/vue-table/package.json index a5d0bdcef2..b7276401ef 100644 --- a/packages/vue-table/package.json +++ b/packages/vue-table/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-table", - "version": "9.0.0-beta.48", + "version": "9.0.0-beta.49", "description": "Headless UI for building powerful tables & datagrids for Vue.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/vue-table/skills/create-table-hook/SKILL.md b/packages/vue-table/skills/create-table-hook/SKILL.md index 2e001cc972..6d1d42d1cc 100644 --- a/packages/vue-table/skills/create-table-hook/SKILL.md +++ b/packages/vue-table/skills/create-table-hook/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/vue-table' framework: vue - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - getting-started diff --git a/packages/vue-table/skills/getting-started/SKILL.md b/packages/vue-table/skills/getting-started/SKILL.md index e8d87113f1..2ce18deca3 100644 --- a/packages/vue-table/skills/getting-started/SKILL.md +++ b/packages/vue-table/skills/getting-started/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/vue-table' framework: vue - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - '@tanstack/table-core#table-features' diff --git a/packages/vue-table/skills/migrate-v8-to-v9/SKILL.md b/packages/vue-table/skills/migrate-v8-to-v9/SKILL.md index 54742d03b4..033c3c82af 100644 --- a/packages/vue-table/skills/migrate-v8-to-v9/SKILL.md +++ b/packages/vue-table/skills/migrate-v8-to-v9/SKILL.md @@ -6,7 +6,7 @@ metadata: type: lifecycle library: '@tanstack/vue-table' framework: vue - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#migrate-v8-to-v9' - getting-started diff --git a/packages/vue-table/skills/table-state/SKILL.md b/packages/vue-table/skills/table-state/SKILL.md index d17c6acb83..5680f5767f 100644 --- a/packages/vue-table/skills/table-state/SKILL.md +++ b/packages/vue-table/skills/table-state/SKILL.md @@ -6,7 +6,7 @@ metadata: type: framework library: '@tanstack/vue-table' framework: vue - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - getting-started diff --git a/packages/vue-table/skills/with-tanstack-query/SKILL.md b/packages/vue-table/skills/with-tanstack-query/SKILL.md index ea51d926e2..2839a378b6 100644 --- a/packages/vue-table/skills/with-tanstack-query/SKILL.md +++ b/packages/vue-table/skills/with-tanstack-query/SKILL.md @@ -6,7 +6,7 @@ metadata: type: composition library: '@tanstack/vue-table' framework: vue - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#client-vs-server' - getting-started diff --git a/packages/vue-table/skills/with-tanstack-virtual/SKILL.md b/packages/vue-table/skills/with-tanstack-virtual/SKILL.md index 345e192c6e..972c29bcd7 100644 --- a/packages/vue-table/skills/with-tanstack-virtual/SKILL.md +++ b/packages/vue-table/skills/with-tanstack-virtual/SKILL.md @@ -6,7 +6,7 @@ metadata: type: composition library: '@tanstack/vue-table' framework: vue - library_version: '9.0.0-beta.48' + library_version: '9.0.0-beta.49' requires: - '@tanstack/table-core#core' - getting-started