Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
f79839c
RM old
bvaughn Nov 17, 2025
a2396a0
First big checkin
bvaughn Nov 17, 2025
6602d69
Update README
bvaughn Nov 17, 2025
5501b07
Don't render required-props markdown if empty
bvaughn Nov 17, 2025
3b362dd
Fix component source link (master -> main)
bvaughn Nov 17, 2025
e0fed8c
Add v3 version link
bvaughn Nov 17, 2025
247b586
Add persistent-layouts doc
bvaughn Nov 17, 2025
76e5b46
Nested panels route
bvaughn Nov 17, 2025
fbf9934
Show pixel sizes on collapsed panels
bvaughn Nov 17, 2025
57aa5ca
Tightening documentation wording
bvaughn Nov 17, 2025
2714ee9
Support HTML markup in component and prop descriptions
bvaughn Nov 17, 2025
36e6091
Add CSS styling page
bvaughn Nov 17, 2025
84a0885
Edge case: Handle pointer released when cursor was outside of browser…
bvaughn Nov 17, 2025
60ec6e1
Custom cursor
bvaughn Nov 17, 2025
234adae
Docs comments updates
bvaughn Nov 17, 2025
87b54f6
Add SSR target and fix some non-browser errors
bvaughn Nov 17, 2025
11c184a
Attach pointer events to Window rather than Body
bvaughn Nov 17, 2025
dcf2146
Removed empty ESLint rule
bvaughn Nov 17, 2025
c26563f
Prettier
bvaughn Nov 17, 2025
e591dce
OG image
bvaughn Nov 17, 2025
eabc9a0
Removed SSR; going to make it an external project
bvaughn Nov 18, 2025
7b0ac59
Implemented auto-save
bvaughn Nov 18, 2025
4892766
Mostly implement Panel and Group imperative APIs
bvaughn Nov 18, 2025
5ee249e
Mostly implemented imperative APIs; added tests
bvaughn Nov 24, 2025
d5ccb18
Improved autoSave+id prop coupling
bvaughn Nov 25, 2025
f1d7b90
Update docs Panel component so it no longer indiscriminately attaches…
bvaughn Nov 25, 2025
113e0db
Add conditional rendering example
bvaughn Nov 27, 2025
a6966ff
Add 'disabled' prop to Groups
bvaughn Nov 27, 2025
7d559c4
Add conditional resize handle example
bvaughn Nov 27, 2025
7daa41b
Add elementRef prop to panel, group, and resize-handle
bvaughn Nov 27, 2025
095c66c
Callout around component description
bvaughn Nov 27, 2025
6420fea
Fixed useMergedRefs
bvaughn Nov 28, 2025
dccc0e9
Update persistent-layout docs to call out Panel id requirement
bvaughn Nov 28, 2025
199a897
Inject blocking script to restore auto-save Group layout during SSR
bvaughn Nov 29, 2025
f8cbb4c
Support localStorage vs sessionStorage targets for auto-save
bvaughn Nov 29, 2025
a08880c
Remember layouts in-memory to improve conditional panel rendering UX
bvaughn Nov 29, 2025
42a7ef7
Added onLayoutChange unit tests
bvaughn Nov 29, 2025
1a351bc
Fix resize handle grab-dots size
bvaughn Nov 30, 2025
28a0778
Removed autoSave prop, switched to defaultLayout prop
bvaughn Nov 30, 2025
7421ecb
Renamed ResizeHandle component to Separator (to mirror ARIA role)
bvaughn Nov 30, 2025
20c02dd
Updated a bit of wording I missed previously
bvaughn Nov 30, 2025
2f825cb
Remove "|undefined" from optional props
bvaughn Nov 30, 2025
b1a1a2f
Seperated server components and server rendering examples
bvaughn Dec 1, 2025
c7f8d4a
Add imperative API docs pages
bvaughn Dec 2, 2025
736aee2
Replaced custom markdown processor for better formatting
bvaughn Dec 4, 2025
318c0ee
Fix <ul> formatting
bvaughn Dec 4, 2025
8df7028
Nav header text tweak
bvaughn Dec 4, 2025
b9943a3
Renamed Group direction prop to orientation
bvaughn Dec 7, 2025
b603acc
Try enable exactOptionalPropertyTypes
bvaughn Dec 7, 2025
e54fde8
Fix ReferenceError: localStorage is not defined
bvaughn Dec 7, 2025
9d210a2
Fix docs mistake
bvaughn Dec 7, 2025
0123fee
useDefaultLayout useSyncExternalStore
bvaughn Dec 7, 2025
0e2f76b
Checked in integrations projects
bvaughn Dec 7, 2025
3e2d2ce
Split up persistent layouts route
bvaughn Dec 7, 2025
d4109d5
Slimmed down adjustLayoutByDelta test
bvaughn Dec 7, 2025
50f2d68
Separator ARIA role
bvaughn Dec 7, 2025
4e1e716
A bit more ARIA role cleanup
bvaughn Dec 7, 2025
4345614
Update Next integration test harness to add second Group
bvaughn Dec 7, 2025
1796faf
Fixed Separator's inherited orientation
bvaughn Dec 7, 2025
c646db0
Add some additional sort tests, test utils, and snapshot serializers
bvaughn Dec 8, 2025
d3ede1b
Renamed util
bvaughn Dec 8, 2025
70c53c3
Add additional (client-side) Vite integration test app; will do e2e t…
bvaughn Dec 9, 2025
bc6da0a
Add dynamic route for e2e test
bvaughn Dec 10, 2025
e2ffd41
Tidied up integration styles
bvaughn Dec 10, 2025
98f00c3
Prettier
bvaughn Dec 10, 2025
91d6697
Update Vitest config
bvaughn Dec 10, 2025
135a2e9
Removed last-run json
bvaughn Dec 10, 2025
555d757
Run Playwright tests in CI
bvaughn Dec 10, 2025
a725a1e
Fix workflow cache key
bvaughn Dec 10, 2025
1fcf65b
e2e test shows panel id
bvaughn Dec 11, 2025
8d22d72
Add more e2e tests
bvaughn Dec 11, 2025
0f64e9f
Added an e2e decoder utility, mostly for my own amusement to be honest
bvaughn Dec 12, 2025
1f5534d
Add some pointer-event resize tests
bvaughn Dec 12, 2025
13440ec
Add more pointer-event resize tests
bvaughn Dec 13, 2025
aeadc78
Add more resize event tests
bvaughn Dec 13, 2025
eabc047
Generate panel docs
bvaughn Dec 13, 2025
2c9f5cc
Alpha 2 bump
bvaughn Dec 13, 2025
e93551a
Upgrade react/react-dom in test integration apps
bvaughn Dec 14, 2025
43adc92
Added some initial keyboard tests; updated docs a bit
bvaughn Dec 14, 2025
91c8393
Implemented ARIA separator interactions (and tests)
bvaughn Dec 15, 2025
ee9e7a1
4.0.0-alpha.2
bvaughn Dec 15, 2025
f265a1c
Added more unit tests
bvaughn Dec 16, 2025
02b7139
Prettier
bvaughn Dec 16, 2025
f4798a7
Added a few invariants and tests
bvaughn Dec 16, 2025
d715afa
Added v3 to v4 migration guide
bvaughn Dec 16, 2025
f3e1580
Alpha v3
bvaughn Dec 16, 2025
e11d2bc
Add FAQ section to v3 to v4 docs
bvaughn Dec 16, 2025
0a9c151
Add 'id' attribute to Groups, Panels, and Separators
bvaughn Dec 16, 2025
5092bb4
Components extend HTMLAllAttributes<HTMLDivElement> and pass-through …
bvaughn Dec 16, 2025
ec03350
Alpha v4
bvaughn Dec 16, 2025
44339e0
Panel suppresses problematic styles
bvaughn Dec 16, 2025
8c67d55
Tweaked docs comment
bvaughn Dec 16, 2025
ea0d415
Alpha v5
bvaughn Dec 16, 2025
81a7671
4.0.0
bvaughn Dec 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
19 changes: 0 additions & 19 deletions .github/workflows/e2e-ci.yml

This file was deleted.

4 changes: 2 additions & 2 deletions .github/workflows/eslint.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
name: "ESLint"
on: [pull_request]
jobs:
tests-e2e:
eslint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: pnpm/action-setup@v2
with:
version: 8
version: 10
- name: Install dependencies
run: pnpm install --frozen-lockfile --recursive
- name: Run ESLint
Expand Down
16 changes: 16 additions & 0 deletions .github/workflows/pending-changes.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: "Pending changes"
on: [pull_request]
jobs:
pending-changes:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: pnpm/action-setup@v2
with:
version: 10
- name: Install dependencies
run: pnpm install --frozen-lockfile --recursive
- uses: nickcharlton/diff-check@main
with:
command: pnpm run compile
37 changes: 37 additions & 0 deletions .github/workflows/playwright.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: "Playwright Tests"
on: [pull_request]
jobs:
unit-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: pnpm/action-setup@v2
with:
version: 10
- name: Install dependencies
run: pnpm install --frozen-lockfile --recursive

- name: Cache Playwright browser binaries
id: playwright-cache
uses: actions/cache@v4
with:
path: ~/.cache/ms-playwright # Default Linux path
key: ${{ runner.os }}-playwright-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-playwright-

- name: Install Playwright browsers and dependencies (on cache miss)
if: steps.playwright-cache.outputs.cache-hit != 'true'
run: pnpm e2e:install

- name: Build library
run: pnpm prerelease
- name: Run Playwright tests
run: pnpm dev:integrations:vite & pnpm e2e:test
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: playwright-report
path: integrations/vite/test-results/
retention-days: 14
4 changes: 2 additions & 2 deletions .github/workflows/prettier.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
name: "Prettier"
on: [pull_request]
jobs:
tests-e2e:
prettier:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: pnpm/action-setup@v2
with:
version: 8
version: 10
- name: Install dependencies
run: pnpm install --frozen-lockfile --recursive
- name: Run Prettier
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/typescript.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
name: "TypeScript"
on: [pull_request]
jobs:
tests-e2e:
typescript:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: pnpm/action-setup@v2
with:
version: 8
version: 10
- name: Install dependencies
run: pnpm install --frozen-lockfile --recursive
- name: Build NPM package
run: pnpm prerelease
run: pnpm build
- name: Run TypeScript
run: pnpm typescript
run: pnpm tsc
12 changes: 5 additions & 7 deletions .github/workflows/vitest.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
name: "Vitest"
on: [pull_request]
jobs:
tests-e2e:
unit-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: pnpm/action-setup@v2
with:
version: 8
version: 10
- name: Install dependencies
run: pnpm install --frozen-lockfile --recursive
- name: Build NPM packages
run: pnpm run prerelease
- name: Run browser tests
run: cd packages/react-resizable-panels && pnpm run test:browser
- name: Run node tests
run: cd packages/react-resizable-panels && pnpm run test:node
run: pnpm run build
- name: Run tests
run: pnpm run test:ci
34 changes: 24 additions & 10 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,12 +1,26 @@
.DS_Store
# Logs
logs
*.log
example/bundle.js
example/.nojekyll
dist
website/dist
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
.cache
.parcel-cache
.pnp.*
.yarn
.vscode
/dist
/docs
*.local

integrations/vite/test-results

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
1 change: 0 additions & 1 deletion .npmrc

This file was deleted.

1 change: 0 additions & 1 deletion .nvmrc

This file was deleted.

9 changes: 0 additions & 9 deletions .parcelrc

This file was deleted.

12 changes: 6 additions & 6 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
.parcel-cache
node_modules
packages/react-resizable-panels/dist
packages/react-resizable-panels-website/.cache
packages/react-resizable-panels-website/dist
packages/react-resizable-panels/src/vendor/stacking-order.ts
/dist
/docs
/generated
/public

integrations/next/.next
6 changes: 0 additions & 6 deletions .prettierrc.json

This file was deleted.

8 changes: 0 additions & 8 deletions .proxyrc

This file was deleted.

Loading
Loading