Conversation
* Expand ViewTransition callback props reference documentation
Document the full callback signatures with ViewTransitionInstance
and types arguments, cleanup function return values, instance
properties (group, imagePair, old, new), and per-callback behavior.
* Add usage section for imperative animations with ViewTransition callbacks
Add "Animating imperatively with callbacks" usage section with Sandpack
example showing onEnter/onExit with instance.new.animate() and cleanup
functions. Includes addTransitionType integration example.
* Fiz lint
* Fix heading IDs to use no-space format for dead link checker
The dead link checker regex expects {/*id*/} format without spaces.
Prettier reformatted these to {/* id */} which broke anchor links.
* bump CI
* rm ;
* Human Updates
* Claude Feedback
* Add RSC Sandboxes * Recover from errors, parse directives in worker with AST * Fix client edits * fast refresh * hardening * make rsc-sandbox-test dev-only * add more examples to rsc-sandbox-test * remove rsc-sandbox-text from sidebar * Add inline server actions * fix lint * pin deps, update skill * remove [RSC Client Error] from logs * log error directly in worker * update worker
Size changesDetails📦 Next.js Bundle Analysis for react-devThis analysis was generated by the Next.js Bundle Analysis action. 🤖
|
| Page | Size (compressed) |
|---|---|
global |
116.38 KB (🟡 +51 B) |
Details
The global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster.
Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis
If you want further insight into what is behind the changes, give @next/bundle-analyzer a try!
Five Pages Changed Size
The following pages changed size from the code in this PR compared to its base branch:
| Page | Size (compressed) | First Load |
|---|---|---|
/404 |
128.3 KB (🟡 +164 B) |
244.69 KB |
/500 |
128.32 KB (🟡 +164 B) |
244.7 KB |
/[[...markdownPath]] |
130.75 KB (🟡 +164 B) |
247.13 KB |
/errors |
128.56 KB (🟡 +164 B) |
244.94 KB |
/errors/[errorCode] |
128.54 KB (🟡 +164 B) |
244.92 KB |
Details
Only the gzipped size is provided here based on an expert tip.
First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.
Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis
Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 10% or more, there will be a red status indicator applied, indicating that special attention should be given to this.
There was a problem hiding this comment.
Pull request overview
Syncs this repo with upstream react.dev at commit 427f24d6, bringing in new documentation content plus a new React Server Components (RSC) Sandpack runtime and its build tooling.
Changes:
- Add RSC Sandpack support (
<SandpackRSC>) including worker bundling, iframe client runtime, and file-bridge plumbing. - Update/expand React docs (notably
ViewTransition) and add new content (blog post + dev-only learn sandbox test page). - Update dependencies/build scripts and lockfile to support the new Sandpack pipeline (esbuild, raw-loader, react-server-dom-webpack).
Reviewed changes
Copilot reviewed 26 out of 34 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| yarn.lock | Locks new dependencies (esbuild, raw-loader, react-server-dom-webpack, etc.). |
| tsconfig.json | Includes src/**/*.source.js in TS project inputs. |
| src/sidebarBlog.json | Adds a new blog entry route for “The React Foundation…” post. |
| src/pages/_document.tsx | Updates “logo credit” URL for the uwu-mode console log. |
| src/pages/[[...markdownPath]].js | Filters a dev-only page from production getStaticPaths. |
| src/content/reference/react/ViewTransition.md | Substantial doc update/expansion for <ViewTransition> (usage, props, caveats, JS animation, etc.). |
| src/content/learn/rsc-sandbox-test.md | Adds a dev-only learn page with many <SandpackRSC> examples. |
| src/content/blog/index.md | Adds the new React Foundation blog card to the index. |
| src/content/blog/2026/02/24/the-react-foundation.md | Adds the new blog post content. |
| src/components/MDX/SandpackWithHTMLOutput.tsx | Switches to SandpackClient export from the Sandpack module. |
| src/components/MDX/Sandpack/templateRSC.ts | Introduces the RSC Sandpack template (raw-loader injected infra files, local deps). |
| src/components/MDX/Sandpack/sandpack-rsc/sandbox-code/src/webpack-shim.js | Adds a minimal webpack shim used by the RSC runtime. |
| src/components/MDX/Sandpack/sandpack-rsc/sandbox-code/src/rsc-server.js | Adds the worker “server” runtime (directive detection, Sucrase transform, Flight rendering). |
| src/components/MDX/Sandpack/sandpack-rsc/sandbox-code/src/rsc-client.js | Adds the iframe “client” runtime (worker orchestration, Flight consumption, refresh integration). |
| src/components/MDX/Sandpack/sandpack-rsc/sandbox-code/src/react_refresh_init.js | Adds a DevTools hook shim needed for react-refresh inside the sandbox. |
| src/components/MDX/Sandpack/sandpack-rsc/RscFileBridge.tsx | Bridges Sandpack editor file contents into the iframe runtime. |
| src/components/MDX/Sandpack/index.tsx | Refactors exports (SandpackClient) and adds <SandpackRSC> wrapper. |
| src/components/MDX/Sandpack/SandpackRSCRoot.tsx | Adds SandpackProvider setup for RSC sandboxes (template + UI shell). |
| src/components/MDX/Sandpack/NavigationBar.tsx | Adds option to hide the “Open in CodeSandbox” button (used by RSC sandboxes). |
| src/components/MDX/Sandpack/CustomPreset.tsx | Wires the new showOpenInCodeSandbox option through. |
| src/components/MDX/Sandpack/Console.tsx | Tightens console log filtering to require both method and data. |
| src/components/MDX/MDXComponents.tsx | Exposes SandpackRSC to MDX and updates Sandpack import to SandpackClient. |
| scripts/buildRscWorker.mjs | Adds an esbuild-based worker bundling script for the RSC runtime. |
| package.json | Adds deps + scripts (prebuild:rsc, build now runs worker bundling). |
| .eslintignore | Ignores worker-bundle.dist.js. |
| .claude/skills/write/diagrams/write_flow.svg | Adds diagram asset for the “write” skill. |
| .claude/skills/write/SKILL.md | Adds a “write” documentation skill definition. |
| .claude/skills/docs-rsc-sandpack/SKILL.md | Adds an RSC Sandpack-specific documentation skill definition. |
| .claude/settings.json | Registers the new docs-rsc-sandpack skill. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This PR was automatically generated.
Merge changes from react.dev at 427f24d
DO NOT SQUASH MERGE THIS PULL REQUEST!
Doing so will "erase" the commits from main and cause them to show up as conflicts the next time we merge.