Skip to content

Commit 1b9f7e8

Browse files
Merge branch 'beta' into mh/grouping_fix
2 parents 15007b0 + 7ec51ef commit 1b9f7e8

1,777 files changed

Lines changed: 66230 additions & 10868 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/pr.yml‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,20 @@ jobs:
4040
- name: Stop Nx Agents
4141
if: ${{ always() }}
4242
run: npx nx-cloud stop-all-agents
43+
coverage:
44+
name: Coverage Report
45+
runs-on: ubuntu-latest
46+
steps:
47+
- name: Checkout
48+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
49+
with:
50+
persist-credentials: false
51+
- name: Setup Tools
52+
uses: tanstack/config/.github/setup@e4b48f16568324f76f467aa4c2aac2f05db632c3 # main
53+
- name: Collect Coverage
54+
run: pnpm --filter "@tanstack/table-core" test:coverage
55+
- name: Write Coverage Summary
56+
run: node scripts/coverage-summary.mjs packages/table-core/coverage/coverage-summary.json "table-core Coverage" >> "$GITHUB_STEP_SUMMARY"
4357
preview:
4458
name: Preview
4559
runs-on: ubuntu-latest

‎.github/workflows/release.yml‎

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ on:
88
required: false
99
push:
1010
branches: [main, alpha, beta, rc]
11+
paths:
12+
- 'packages/**'
13+
- 'pnpm-lock.yaml'
1114

1215
concurrency:
1316
group: ${{ github.workflow }}-${{ github.event.number || github.ref }}
@@ -18,15 +21,17 @@ env:
1821
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
1922

2023
permissions:
21-
contents: write
22-
id-token: write
23-
pull-requests: write
24+
contents: read
2425

2526
jobs:
2627
release:
2728
name: Release
2829
if: github.repository_owner == 'TanStack'
2930
runs-on: ubuntu-latest
31+
permissions:
32+
contents: write
33+
id-token: write
34+
pull-requests: write
3035
steps:
3136
- name: Checkout
3237
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
@@ -72,3 +77,24 @@ jobs:
7277
--body "Automated version bump created after publishing packages."
7378
env:
7479
RELEASE_BRANCH: ${{ steps.release-branch.outputs.branch }}
80+
81+
audit:
82+
name: Audit
83+
needs: release
84+
if: github.repository_owner == 'TanStack' && contains(fromJSON('["main","alpha","beta"]'), github.ref_name)
85+
runs-on: ubuntu-latest
86+
timeout-minutes: 120
87+
steps:
88+
- name: Checkout
89+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
90+
with:
91+
fetch-depth: 0
92+
persist-credentials: false
93+
- name: Setup Tools
94+
uses: tanstack/config/.github/setup@e4b48f16568324f76f467aa4c2aac2f05db632c3 # main
95+
- name: Build Packages
96+
run: pnpm run build:all
97+
- name: Install Playwright Browsers
98+
run: pnpm run test:e2e:install
99+
- name: Run E2E Tests
100+
run: pnpm run test:e2e

‎.prettierignore‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44
**/build
55
**/coverage
66
**/dist
7-
**/docs
7+
**/reference
88
**/old-examples
99
**/examples/**/*.svelte
1010
pnpm-lock.yaml
11+
docs/config.json
1112

1213
.angular

‎docs/config.json‎

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
{
7575
"label": "vanilla",
7676
"children": [
77-
{ "label": "Vanilla JS (No Framework)", "to": "vanilla" }
77+
{ "label": "Quick Start", "to": "framework/vanilla/quick-start" }
7878
]
7979
}
8080
]
@@ -86,6 +86,7 @@
8686
{ "label": "Column Definitions", "to": "guide/column-defs" },
8787
{ "label": "Table Instance", "to": "guide/tables" },
8888
{ "label": "Row Models", "to": "guide/row-models" },
89+
{ "label": "Worker Row Models (Experimental)", "to": "guide/worker-row-models" },
8990
{ "label": "Rows", "to": "guide/rows" },
9091
{ "label": "Cells", "to": "guide/cells" },
9192
{ "label": "Header Groups", "to": "guide/header-groups" },
@@ -859,6 +860,7 @@
859860
{ "to": "framework/alpine/examples/basic-app-table", "label": "Basic (createAppTable)" },
860861
{ "to": "framework/alpine/examples/basic-external-state", "label": "Basic (External State)" },
861862
{ "to": "framework/alpine/examples/basic-external-atoms", "label": "Basic (External Atoms)" },
863+
{ "to": "framework/alpine/examples/basic-dynamic-columns", "label": "Basic (Dynamic Columns)" },
862864
{ "to": "framework/alpine/examples/column-groups", "label": "Header Groups" }
863865
]
864866
},
@@ -869,6 +871,7 @@
869871
{ "label": "Basic (createAppTable)", "to": "framework/angular/examples/basic-app-table" },
870872
{ "label": "Basic (External State)", "to": "framework/angular/examples/basic-external-state" },
871873
{ "label": "Basic (External Atoms)", "to": "framework/angular/examples/basic-external-atoms" },
874+
{ "label": "Basic (Dynamic Columns)", "to": "framework/angular/examples/basic-dynamic-columns" },
872875
{ "label": "Header Groups", "to": "framework/angular/examples/column-groups" }
873876
]
874877
},
@@ -880,6 +883,7 @@
880883
{ "label": "Basic (External State)", "to": "framework/lit/examples/basic-external-state" },
881884
{ "label": "Basic (External Atoms)", "to": "framework/lit/examples/basic-external-atoms" },
882885
{ "label": "Basic (Subscribe)", "to": "framework/lit/examples/basic-subscribe" },
886+
{ "label": "Basic (Dynamic Columns)", "to": "framework/lit/examples/basic-dynamic-columns" },
883887
{ "label": "Header Groups", "to": "framework/lit/examples/column-groups" }
884888
]
885889
},
@@ -892,6 +896,7 @@
892896
{ "label": "Basic (External State)", "to": "framework/react/examples/basic-external-state" },
893897
{ "label": "Basic (External Atoms)", "to": "framework/react/examples/basic-external-atoms" },
894898
{ "label": "Basic (Subscribe)", "to": "framework/react/examples/basic-subscribe" },
899+
{ "label": "Basic (Dynamic Columns)", "to": "framework/react/examples/basic-dynamic-columns" },
895900
{ "label": "Header Groups", "to": "framework/react/examples/column-groups" }
896901
]
897902
},
@@ -902,6 +907,7 @@
902907
{ "label": "Basic (createAppTable)", "to": "framework/solid/examples/basic-app-table" },
903908
{ "label": "Basic (External State)", "to": "framework/solid/examples/basic-external-state" },
904909
{ "label": "Basic (External Atoms)", "to": "framework/solid/examples/basic-external-atoms" },
910+
{ "label": "Basic (Dynamic Columns)", "to": "framework/solid/examples/basic-dynamic-columns" },
905911
{ "label": "Header Groups", "to": "framework/solid/examples/column-groups" }
906912
]
907913
},
@@ -913,6 +919,7 @@
913919
{ "label": "Basic (Snippets)", "to": "framework/svelte/examples/basic-snippets" },
914920
{ "label": "Basic (External State)", "to": "framework/svelte/examples/basic-external-state" },
915921
{ "label": "Basic (External Atoms)", "to": "framework/svelte/examples/basic-external-atoms" },
922+
{ "label": "Basic (Dynamic Columns)", "to": "framework/svelte/examples/basic-dynamic-columns" },
916923
{ "label": "Header Groups", "to": "framework/svelte/examples/column-groups" }
917924
]
918925
},
@@ -923,6 +930,7 @@
923930
{ "label": "Basic (useAppTable)", "to": "framework/vue/examples/basic-use-app-table" },
924931
{ "label": "Basic (External State)", "to": "framework/vue/examples/basic-external-state" },
925932
{ "label": "Basic (External Atoms)", "to": "framework/vue/examples/basic-external-atoms" },
933+
{ "label": "Basic (Dynamic Columns)", "to": "framework/vue/examples/basic-dynamic-columns" },
926934
{ "label": "Header Groups", "to": "framework/vue/examples/column-groups" }
927935
]
928936
},
@@ -934,6 +942,7 @@
934942
{ "label": "Basic (External State)", "to": "framework/preact/examples/basic-external-state" },
935943
{ "label": "Basic (External Atoms)", "to": "framework/preact/examples/basic-external-atoms" },
936944
{ "label": "Basic (Subscribe)", "to": "framework/preact/examples/basic-subscribe" },
945+
{ "label": "Basic (Dynamic Columns)", "to": "framework/preact/examples/basic-dynamic-columns" },
937946
{ "label": "Header Groups", "to": "framework/preact/examples/column-groups" }
938947
]
939948
},
@@ -1193,6 +1202,7 @@
11931202
"children": [
11941203
{ "label": "Composable Tables (createTableHook)", "to": "framework/react/examples/composable-tables" },
11951204
{ "label": "Custom Plugin", "to": "framework/react/examples/custom-plugin" },
1205+
{ "label": "Experimental Web Workers Plugin", "to": "framework/react/examples/web-worker-row-models" },
11961206
{ "label": "With TanStack Virtual - Columns", "to": "framework/react/examples/virtualized-columns" },
11971207
{ "label": "With TanStack Virtual - Columns (Exp)", "to": "framework/react/examples/virtualized-columns-experimental" },
11981208
{ "label": "With TanStack Virtual - Rows", "to": "framework/react/examples/virtualized-rows" },
@@ -1254,18 +1264,20 @@
12541264
{
12551265
"label": "react",
12561266
"children": [
1257-
{ "label": "Basic - Shadcn (Radix)", "to": "framework/react/examples/lib-shadcn-radix" },
12581267
{ "label": "Basic - Shadcn (Base UI)", "to": "framework/react/examples/lib-shadcn-base" },
1268+
{ "label": "Basic - Shadcn (Radix)", "to": "framework/react/examples/lib-shadcn-radix" },
12591269
{ "label": "Basic - React Aria", "to": "framework/react/examples/lib-react-aria" },
12601270
{ "label": "Basic - Hero UI", "to": "framework/react/examples/lib-hero-ui" },
12611271
{ "label": "Basic - Material UI", "to": "framework/react/examples/lib-material-ui" },
12621272
{ "label": "Basic - Mantine", "to": "framework/react/examples/lib-mantine" },
1263-
{ "label": "Kitchen Sink - Shadcn (Radix)", "to": "framework/react/examples/kitchen-sink-shadcn-radix" },
1273+
{ "label": "Basic - Chakra UI", "to": "framework/react/examples/lib-chakra-ui" },
12641274
{ "label": "Kitchen Sink - Shadcn (Base UI)", "to": "framework/react/examples/kitchen-sink-shadcn-base" },
1275+
{ "label": "Kitchen Sink - Shadcn (Radix)", "to": "framework/react/examples/kitchen-sink-shadcn-radix" },
12651276
{ "label": "Kitchen Sink - React Aria", "to": "framework/react/examples/kitchen-sink-react-aria" },
12661277
{ "label": "Kitchen Sink - Hero UI", "to": "framework/react/examples/kitchen-sink-hero-ui" },
12671278
{ "label": "Kitchen Sink - Material UI", "to": "framework/react/examples/kitchen-sink-material-ui" },
12681279
{ "label": "Kitchen Sink - Mantine", "to": "framework/react/examples/kitchen-sink-mantine" },
1280+
{ "label": "Kitchen Sink - Chakra UI", "to": "framework/react/examples/kitchen-sink-chakra-ui" },
12691281
{ "label": "Material React Table", "to": "framework/react/examples/material-react-table" },
12701282
{ "label": "Mantine React Table", "to": "framework/react/examples/mantine-react-table" }
12711283
]

‎docs/framework/alpine/guide/column-faceting.md‎

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,10 +165,7 @@ Alpine.data('table', () => {
165165
<template x-if="!isNumberColumn(header.column)">
166166
<div>
167167
<datalist :id="header.column.id + 'list'">
168-
<template
169-
x-for="value in uniqueValues(header.column)"
170-
:key="value"
171-
>
168+
<template x-for="value in uniqueValues(header.column)" :key="value">
172169
<option :value="value"></option>
173170
</template>
174171
</datalist>

‎docs/framework/alpine/guide/column-ordering.md‎

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@ Read your reactive inputs such as `data` through a getter (for example backing t
1515
Here's how you set up your table to use column ordering features. Adding the column ordering feature enables the related APIs.
1616

1717
```ts
18-
import { createTable, tableFeatures, columnOrderingFeature } from '@tanstack/alpine-table'
18+
import {
19+
createTable,
20+
tableFeatures,
21+
columnOrderingFeature,
22+
} from '@tanstack/alpine-table'
1923

2024
const features = tableFeatures({ columnOrderingFeature })
2125

@@ -73,7 +77,11 @@ In v9, the recommended way to own a state slice is with an external atom passed
7377

7478
```ts
7579
import { createAtom } from '@tanstack/store'
76-
import { createTable, tableFeatures, columnOrderingFeature } from '@tanstack/alpine-table'
80+
import {
81+
createTable,
82+
tableFeatures,
83+
columnOrderingFeature,
84+
} from '@tanstack/alpine-table'
7785
import type { ColumnOrderState } from '@tanstack/alpine-table'
7886

7987
const features = tableFeatures({ columnOrderingFeature })

‎docs/framework/alpine/guide/column-pinning.md‎

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,11 @@ Read your reactive inputs such as `data` through a getter (for example backing t
1717
Here's how you set up your table to use column pinning features. Adding the column pinning feature enables the related APIs.
1818

1919
```ts
20-
import { createTable, tableFeatures, columnPinningFeature } from '@tanstack/alpine-table'
20+
import {
21+
createTable,
22+
tableFeatures,
23+
columnPinningFeature,
24+
} from '@tanstack/alpine-table'
2125

2226
const features = tableFeatures({ columnPinningFeature })
2327

@@ -52,7 +56,11 @@ In v9, the recommended way to own a state slice is with an external atom passed
5256

5357
```ts
5458
import { createAtom } from '@tanstack/store'
55-
import { createTable, tableFeatures, columnPinningFeature } from '@tanstack/alpine-table'
59+
import {
60+
createTable,
61+
tableFeatures,
62+
columnPinningFeature,
63+
} from '@tanstack/alpine-table'
5664
import type { ColumnPinningState } from '@tanstack/alpine-table'
5765

5866
const features = tableFeatures({ columnPinningFeature })

0 commit comments

Comments
 (0)