diff --git a/package.json b/package.json index 1024b1338e41c..8d61609adf5dd 100644 --- a/package.json +++ b/package.json @@ -227,16 +227,16 @@ "pretty-ms": "7.0.0", "random-seed": "0.3.0", "react": "19.0.0", - "react-builtin": "npm:react@19.2.0-canary-408d055a-20250430", + "react-builtin": "npm:react@19.2.0-canary-f7396427-20250501", "react-dom": "19.0.0", - "react-dom-builtin": "npm:react-dom@19.2.0-canary-408d055a-20250430", - "react-dom-experimental-builtin": "npm:react-dom@0.0.0-experimental-408d055a-20250430", - "react-experimental-builtin": "npm:react@0.0.0-experimental-408d055a-20250430", - "react-is-builtin": "npm:react-is@19.2.0-canary-408d055a-20250430", - "react-server-dom-turbopack": "19.2.0-canary-408d055a-20250430", - "react-server-dom-turbopack-experimental": "npm:react-server-dom-turbopack@0.0.0-experimental-408d055a-20250430", - "react-server-dom-webpack": "19.2.0-canary-408d055a-20250430", - "react-server-dom-webpack-experimental": "npm:react-server-dom-webpack@0.0.0-experimental-408d055a-20250430", + "react-dom-builtin": "npm:react-dom@19.2.0-canary-f7396427-20250501", + "react-dom-experimental-builtin": "npm:react-dom@0.0.0-experimental-f7396427-20250501", + "react-experimental-builtin": "npm:react@0.0.0-experimental-f7396427-20250501", + "react-is-builtin": "npm:react-is@19.2.0-canary-f7396427-20250501", + "react-server-dom-turbopack": "19.2.0-canary-f7396427-20250501", + "react-server-dom-turbopack-experimental": "npm:react-server-dom-turbopack@0.0.0-experimental-f7396427-20250501", + "react-server-dom-webpack": "19.2.0-canary-f7396427-20250501", + "react-server-dom-webpack-experimental": "npm:react-server-dom-webpack@0.0.0-experimental-f7396427-20250501", "react-ssr-prepass": "1.0.8", "react-virtualized": "9.22.3", "relay-compiler": "13.0.2", @@ -246,8 +246,8 @@ "resolve-from": "5.0.0", "sass": "1.54.0", "satori": "0.12.2", - "scheduler-builtin": "npm:scheduler@0.27.0-canary-408d055a-20250430", - "scheduler-experimental-builtin": "npm:scheduler@0.0.0-experimental-408d055a-20250430", + "scheduler-builtin": "npm:scheduler@0.27.0-canary-f7396427-20250501", + "scheduler-experimental-builtin": "npm:scheduler@0.0.0-experimental-f7396427-20250501", "seedrandom": "3.0.5", "semver": "7.3.7", "shell-quote": "1.7.3", @@ -290,10 +290,10 @@ "@types/react-dom": "19.1.2", "@types/retry": "0.12.0", "jest-snapshot": "30.0.0-alpha.6", - "react": "19.2.0-canary-408d055a-20250430", - "react-dom": "19.2.0-canary-408d055a-20250430", - "react-is": "19.2.0-canary-408d055a-20250430", - "scheduler": "0.27.0-canary-408d055a-20250430" + "react": "19.2.0-canary-f7396427-20250501", + "react-dom": "19.2.0-canary-f7396427-20250501", + "react-is": "19.2.0-canary-f7396427-20250501", + "scheduler": "0.27.0-canary-f7396427-20250501" }, "patchedDependencies": { "webpack-sources@3.2.3": "patches/webpack-sources@3.2.3.patch", diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.development.js index 1d759f3c42b0c..76231a062d7bb 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.development.js @@ -7187,7 +7187,7 @@ null !== state && ((state = state.dehydrated), null === state || - state.data === SUSPENSE_PENDING_START_DATA || + isSuspenseInstancePending(state) || isSuspenseInstanceFallback(state)) ) return node; @@ -10669,16 +10669,15 @@ ), SelectiveHydrationException) ); - JSCompiler_object_inline_message_3004.data === - SUSPENSE_PENDING_START_DATA || renderDidSuspendDelayIfPossible(); + isSuspenseInstancePending(JSCompiler_object_inline_message_3004) || + renderDidSuspendDelayIfPossible(); workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, renderLanes ); } else - JSCompiler_object_inline_message_3004.data === - SUSPENSE_PENDING_START_DATA + isSuspenseInstancePending(JSCompiler_object_inline_message_3004) ? ((workInProgress.flags |= 192), (workInProgress.child = current.child), (workInProgress = null)) @@ -23612,6 +23611,7 @@ } else if ( node === SUSPENSE_START_DATA || node === SUSPENSE_PENDING_START_DATA || + node === SUSPENSE_QUEUED_START_DATA || node === SUSPENSE_FALLBACK_START_DATA || node === ACTIVITY_START_DATA ) @@ -23664,6 +23664,7 @@ else (node !== SUSPENSE_START_DATA && node !== SUSPENSE_PENDING_START_DATA && + node !== SUSPENSE_QUEUED_START_DATA && node !== SUSPENSE_FALLBACK_START_DATA) || suspenseInstance++; node = nextNode; @@ -24444,18 +24445,26 @@ } return instance; } + function isSuspenseInstancePending(instance) { + return ( + instance.data === SUSPENSE_PENDING_START_DATA || + instance.data === SUSPENSE_QUEUED_START_DATA + ); + } function isSuspenseInstanceFallback(instance) { return ( instance.data === SUSPENSE_FALLBACK_START_DATA || (instance.data === SUSPENSE_PENDING_START_DATA && - instance.ownerDocument.readyState === DOCUMENT_READY_STATE_COMPLETE) + instance.ownerDocument.readyState !== DOCUMENT_READY_STATE_LOADING) ); } function registerSuspenseInstanceRetry(instance, callback) { var ownerDocument = instance.ownerDocument; - if ( + if (instance.data === SUSPENSE_QUEUED_START_DATA) + instance._reactRetry = callback; + else if ( instance.data !== SUSPENSE_PENDING_START_DATA || - ownerDocument.readyState === DOCUMENT_READY_STATE_COMPLETE + ownerDocument.readyState !== DOCUMENT_READY_STATE_LOADING ) callback(); else { @@ -24477,6 +24486,7 @@ nodeType === SUSPENSE_START_DATA || nodeType === SUSPENSE_FALLBACK_START_DATA || nodeType === SUSPENSE_PENDING_START_DATA || + nodeType === SUSPENSE_QUEUED_START_DATA || nodeType === ACTIVITY_START_DATA || nodeType === FORM_STATE_IS_MATCHING || nodeType === FORM_STATE_IS_NOT_MATCHING @@ -24541,6 +24551,7 @@ (data !== SUSPENSE_START_DATA && data !== SUSPENSE_FALLBACK_START_DATA && data !== SUSPENSE_PENDING_START_DATA && + data !== SUSPENSE_QUEUED_START_DATA && data !== ACTIVITY_START_DATA) || depth++; } @@ -24557,6 +24568,7 @@ data === SUSPENSE_START_DATA || data === SUSPENSE_FALLBACK_START_DATA || data === SUSPENSE_PENDING_START_DATA || + data === SUSPENSE_QUEUED_START_DATA || data === ACTIVITY_START_DATA ) { if (0 === depth) return targetInstance; @@ -29469,13 +29481,14 @@ SUSPENSE_START_DATA = "$", SUSPENSE_END_DATA = "/$", SUSPENSE_PENDING_START_DATA = "$?", + SUSPENSE_QUEUED_START_DATA = "$~", SUSPENSE_FALLBACK_START_DATA = "$!", PREAMBLE_CONTRIBUTION_HTML = "html", PREAMBLE_CONTRIBUTION_BODY = "body", PREAMBLE_CONTRIBUTION_HEAD = "head", FORM_STATE_IS_MATCHING = "F!", FORM_STATE_IS_NOT_MATCHING = "F", - DOCUMENT_READY_STATE_COMPLETE = "complete", + DOCUMENT_READY_STATE_LOADING = "loading", STYLE = "style", HostContextNamespaceNone = 0, HostContextNamespaceSvg = 1, @@ -30094,11 +30107,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-408d055a-20250430" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-f7396427-20250501" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-experimental-408d055a-20250430\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-f7396427-20250501\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -30135,10 +30148,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.2.0-experimental-408d055a-20250430", + version: "19.2.0-experimental-f7396427-20250501", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-408d055a-20250430" + reconcilerVersion: "19.2.0-experimental-f7396427-20250501" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -30280,7 +30293,7 @@ listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; - exports.version = "19.2.0-experimental-408d055a-20250430"; + exports.version = "19.2.0-experimental-f7396427-20250501"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.production.js index 878d9462500ff..19d1a8c871b37 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.production.js @@ -4524,7 +4524,7 @@ function findFirstSuspended(row) { null !== state && ((state = state.dehydrated), null === state || - "$?" === state.data || + isSuspenseInstancePending(state) || isSuspenseInstanceFallback(state)) ) return node; @@ -7225,14 +7225,15 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps), SelectiveHydrationException) ); - "$?" === nextPrimaryChildren.data || renderDidSuspendDelayIfPossible(); + isSuspenseInstancePending(nextPrimaryChildren) || + renderDidSuspendDelayIfPossible(); workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, renderLanes ); } else - "$?" === nextPrimaryChildren.data + isSuspenseInstancePending(nextPrimaryChildren) ? ((workInProgress.flags |= 192), (workInProgress.child = current.child), (workInProgress = null)) @@ -16105,7 +16106,13 @@ function clearHydrationBoundary(parentInstance, hydrationInstance) { return; } depth--; - } else if ("$" === node || "$?" === node || "$!" === node || "&" === node) + } else if ( + "$" === node || + "$?" === node || + "$~" === node || + "$!" === node || + "&" === node + ) depth++; else if ("html" === node) releaseSingletonInstance(parentInstance.ownerDocument.documentElement); @@ -16150,7 +16157,8 @@ function hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) { if (0 === suspenseInstance) break; else suspenseInstance--; else - ("$" !== node && "$?" !== node && "$!" !== node) || suspenseInstance++; + ("$" !== node && "$?" !== node && "$~" !== node && "$!" !== node) || + suspenseInstance++; node = nextNode; } while (node); } @@ -17004,15 +17012,19 @@ function canHydrateHydrationBoundary(instance, inRootOrSingleton) { } return instance; } +function isSuspenseInstancePending(instance) { + return "$?" === instance.data || "$~" === instance.data; +} function isSuspenseInstanceFallback(instance) { return ( "$!" === instance.data || - ("$?" === instance.data && "complete" === instance.ownerDocument.readyState) + ("$?" === instance.data && "loading" !== instance.ownerDocument.readyState) ); } function registerSuspenseInstanceRetry(instance, callback) { var ownerDocument = instance.ownerDocument; - if ("$?" !== instance.data || "complete" === ownerDocument.readyState) + if ("$~" === instance.data) instance._reactRetry = callback; + else if ("$?" !== instance.data || "loading" !== ownerDocument.readyState) callback(); else { var listener = function () { @@ -17033,6 +17045,7 @@ function getNextHydratable(node) { "$" === nodeType || "$!" === nodeType || "$?" === nodeType || + "$~" === nodeType || "&" === nodeType || "F!" === nodeType || "F" === nodeType @@ -17054,7 +17067,11 @@ function getNextHydratableInstanceAfterHydrationBoundary(hydrationInstance) { return getNextHydratable(hydrationInstance.nextSibling); depth--; } else - ("$" !== data && "$!" !== data && "$?" !== data && "&" !== data) || + ("$" !== data && + "$!" !== data && + "$?" !== data && + "$~" !== data && + "&" !== data) || depth++; } hydrationInstance = hydrationInstance.nextSibling; @@ -17066,7 +17083,13 @@ function getParentHydrationBoundary(targetInstance) { for (var depth = 0; targetInstance; ) { if (8 === targetInstance.nodeType) { var data = targetInstance.data; - if ("$" === data || "$!" === data || "$?" === data || "&" === data) { + if ( + "$" === data || + "$!" === data || + "$?" === data || + "$~" === data || + "&" === data + ) { if (0 === depth) return targetInstance; depth--; } else ("/$" !== data && "/&" !== data) || depth++; @@ -18657,14 +18680,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2045 = React.version; if ( - "19.2.0-experimental-408d055a-20250430" !== + "19.2.0-experimental-f7396427-20250501" !== isomorphicReactPackageVersion$jscomp$inline_2045 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2045, - "19.2.0-experimental-408d055a-20250430" + "19.2.0-experimental-f7396427-20250501" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -18686,10 +18709,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2681 = { bundleType: 0, - version: "19.2.0-experimental-408d055a-20250430", + version: "19.2.0-experimental-f7396427-20250501", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-408d055a-20250430" + reconcilerVersion: "19.2.0-experimental-f7396427-20250501" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2682 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -18793,4 +18816,4 @@ exports.hydrateRoot = function (container, initialChildren, options) { listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; -exports.version = "19.2.0-experimental-408d055a-20250430"; +exports.version = "19.2.0-experimental-f7396427-20250501"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.development.js index 852fb5e7bb698..9b6135d76d8b2 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.development.js @@ -7195,7 +7195,7 @@ null !== state && ((state = state.dehydrated), null === state || - state.data === SUSPENSE_PENDING_START_DATA || + isSuspenseInstancePending(state) || isSuspenseInstanceFallback(state)) ) return node; @@ -10677,16 +10677,15 @@ ), SelectiveHydrationException) ); - JSCompiler_object_inline_message_3009.data === - SUSPENSE_PENDING_START_DATA || renderDidSuspendDelayIfPossible(); + isSuspenseInstancePending(JSCompiler_object_inline_message_3009) || + renderDidSuspendDelayIfPossible(); workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, renderLanes ); } else - JSCompiler_object_inline_message_3009.data === - SUSPENSE_PENDING_START_DATA + isSuspenseInstancePending(JSCompiler_object_inline_message_3009) ? ((workInProgress.flags |= 192), (workInProgress.child = current.child), (workInProgress = null)) @@ -23620,6 +23619,7 @@ } else if ( node === SUSPENSE_START_DATA || node === SUSPENSE_PENDING_START_DATA || + node === SUSPENSE_QUEUED_START_DATA || node === SUSPENSE_FALLBACK_START_DATA || node === ACTIVITY_START_DATA ) @@ -23672,6 +23672,7 @@ else (node !== SUSPENSE_START_DATA && node !== SUSPENSE_PENDING_START_DATA && + node !== SUSPENSE_QUEUED_START_DATA && node !== SUSPENSE_FALLBACK_START_DATA) || suspenseInstance++; node = nextNode; @@ -24452,18 +24453,26 @@ } return instance; } + function isSuspenseInstancePending(instance) { + return ( + instance.data === SUSPENSE_PENDING_START_DATA || + instance.data === SUSPENSE_QUEUED_START_DATA + ); + } function isSuspenseInstanceFallback(instance) { return ( instance.data === SUSPENSE_FALLBACK_START_DATA || (instance.data === SUSPENSE_PENDING_START_DATA && - instance.ownerDocument.readyState === DOCUMENT_READY_STATE_COMPLETE) + instance.ownerDocument.readyState !== DOCUMENT_READY_STATE_LOADING) ); } function registerSuspenseInstanceRetry(instance, callback) { var ownerDocument = instance.ownerDocument; - if ( + if (instance.data === SUSPENSE_QUEUED_START_DATA) + instance._reactRetry = callback; + else if ( instance.data !== SUSPENSE_PENDING_START_DATA || - ownerDocument.readyState === DOCUMENT_READY_STATE_COMPLETE + ownerDocument.readyState !== DOCUMENT_READY_STATE_LOADING ) callback(); else { @@ -24485,6 +24494,7 @@ nodeType === SUSPENSE_START_DATA || nodeType === SUSPENSE_FALLBACK_START_DATA || nodeType === SUSPENSE_PENDING_START_DATA || + nodeType === SUSPENSE_QUEUED_START_DATA || nodeType === ACTIVITY_START_DATA || nodeType === FORM_STATE_IS_MATCHING || nodeType === FORM_STATE_IS_NOT_MATCHING @@ -24549,6 +24559,7 @@ (data !== SUSPENSE_START_DATA && data !== SUSPENSE_FALLBACK_START_DATA && data !== SUSPENSE_PENDING_START_DATA && + data !== SUSPENSE_QUEUED_START_DATA && data !== ACTIVITY_START_DATA) || depth++; } @@ -24565,6 +24576,7 @@ data === SUSPENSE_START_DATA || data === SUSPENSE_FALLBACK_START_DATA || data === SUSPENSE_PENDING_START_DATA || + data === SUSPENSE_QUEUED_START_DATA || data === ACTIVITY_START_DATA ) { if (0 === depth) return targetInstance; @@ -29522,13 +29534,14 @@ SUSPENSE_START_DATA = "$", SUSPENSE_END_DATA = "/$", SUSPENSE_PENDING_START_DATA = "$?", + SUSPENSE_QUEUED_START_DATA = "$~", SUSPENSE_FALLBACK_START_DATA = "$!", PREAMBLE_CONTRIBUTION_HTML = "html", PREAMBLE_CONTRIBUTION_BODY = "body", PREAMBLE_CONTRIBUTION_HEAD = "head", FORM_STATE_IS_MATCHING = "F!", FORM_STATE_IS_NOT_MATCHING = "F", - DOCUMENT_READY_STATE_COMPLETE = "complete", + DOCUMENT_READY_STATE_LOADING = "loading", STYLE = "style", HostContextNamespaceNone = 0, HostContextNamespaceSvg = 1, @@ -30147,11 +30160,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-408d055a-20250430" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-f7396427-20250501" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-experimental-408d055a-20250430\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-f7396427-20250501\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -30188,10 +30201,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.2.0-experimental-408d055a-20250430", + version: "19.2.0-experimental-f7396427-20250501", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-408d055a-20250430" + reconcilerVersion: "19.2.0-experimental-f7396427-20250501" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -30663,7 +30676,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.2.0-experimental-408d055a-20250430"; + exports.version = "19.2.0-experimental-f7396427-20250501"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.profiling.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.profiling.js index 648b8ec65923f..7743185169e30 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.profiling.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.profiling.js @@ -4935,7 +4935,7 @@ function findFirstSuspended(row) { null !== state && ((state = state.dehydrated), null === state || - "$?" === state.data || + isSuspenseInstancePending(state) || isSuspenseInstanceFallback(state)) ) return node; @@ -7644,14 +7644,15 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps), SelectiveHydrationException) ); - "$?" === nextPrimaryChildren.data || renderDidSuspendDelayIfPossible(); + isSuspenseInstancePending(nextPrimaryChildren) || + renderDidSuspendDelayIfPossible(); workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, renderLanes ); } else - "$?" === nextPrimaryChildren.data + isSuspenseInstancePending(nextPrimaryChildren) ? ((workInProgress.flags |= 192), (workInProgress.child = current.child), (workInProgress = null)) @@ -17741,7 +17742,13 @@ function clearHydrationBoundary(parentInstance, hydrationInstance) { return; } depth--; - } else if ("$" === node || "$?" === node || "$!" === node || "&" === node) + } else if ( + "$" === node || + "$?" === node || + "$~" === node || + "$!" === node || + "&" === node + ) depth++; else if ("html" === node) releaseSingletonInstance(parentInstance.ownerDocument.documentElement); @@ -17786,7 +17793,8 @@ function hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) { if (0 === suspenseInstance) break; else suspenseInstance--; else - ("$" !== node && "$?" !== node && "$!" !== node) || suspenseInstance++; + ("$" !== node && "$?" !== node && "$~" !== node && "$!" !== node) || + suspenseInstance++; node = nextNode; } while (node); } @@ -18640,15 +18648,19 @@ function canHydrateHydrationBoundary(instance, inRootOrSingleton) { } return instance; } +function isSuspenseInstancePending(instance) { + return "$?" === instance.data || "$~" === instance.data; +} function isSuspenseInstanceFallback(instance) { return ( "$!" === instance.data || - ("$?" === instance.data && "complete" === instance.ownerDocument.readyState) + ("$?" === instance.data && "loading" !== instance.ownerDocument.readyState) ); } function registerSuspenseInstanceRetry(instance, callback) { var ownerDocument = instance.ownerDocument; - if ("$?" !== instance.data || "complete" === ownerDocument.readyState) + if ("$~" === instance.data) instance._reactRetry = callback; + else if ("$?" !== instance.data || "loading" !== ownerDocument.readyState) callback(); else { var listener = function () { @@ -18669,6 +18681,7 @@ function getNextHydratable(node) { "$" === nodeType || "$!" === nodeType || "$?" === nodeType || + "$~" === nodeType || "&" === nodeType || "F!" === nodeType || "F" === nodeType @@ -18690,7 +18703,11 @@ function getNextHydratableInstanceAfterHydrationBoundary(hydrationInstance) { return getNextHydratable(hydrationInstance.nextSibling); depth--; } else - ("$" !== data && "$!" !== data && "$?" !== data && "&" !== data) || + ("$" !== data && + "$!" !== data && + "$?" !== data && + "$~" !== data && + "&" !== data) || depth++; } hydrationInstance = hydrationInstance.nextSibling; @@ -18702,7 +18719,13 @@ function getParentHydrationBoundary(targetInstance) { for (var depth = 0; targetInstance; ) { if (8 === targetInstance.nodeType) { var data = targetInstance.data; - if ("$" === data || "$!" === data || "$?" === data || "&" === data) { + if ( + "$" === data || + "$!" === data || + "$?" === data || + "$~" === data || + "&" === data + ) { if (0 === depth) return targetInstance; depth--; } else ("/$" !== data && "/&" !== data) || depth++; @@ -20310,14 +20333,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2265 = React.version; if ( - "19.2.0-experimental-408d055a-20250430" !== + "19.2.0-experimental-f7396427-20250501" !== isomorphicReactPackageVersion$jscomp$inline_2265 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2265, - "19.2.0-experimental-408d055a-20250430" + "19.2.0-experimental-f7396427-20250501" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -20339,10 +20362,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2903 = { bundleType: 0, - version: "19.2.0-experimental-408d055a-20250430", + version: "19.2.0-experimental-f7396427-20250501", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-408d055a-20250430" + reconcilerVersion: "19.2.0-experimental-f7396427-20250501" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2904 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -20607,7 +20630,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.2.0-experimental-408d055a-20250430"; +exports.version = "19.2.0-experimental-f7396427-20250501"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js index 4b3b185e5c2ca..f7fa280a0ecd7 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js @@ -1412,13 +1412,13 @@ bootstrapChunks.push( endOfStartTag, formReplayingRuntimeScript, - "\x3c/script>" + endInlineScript )) : bootstrapChunks.unshift( renderState.startInlineScript, endOfStartTag, formReplayingRuntimeScript, - "\x3c/script>" + endInlineScript ); } } @@ -3148,6 +3148,15 @@ styleQueue.sheets.forEach(preloadLateStyle, this); styleQueue.sheets.clear(); } + function writeCompletedShellIdAttribute(destination, resumableState) { + (resumableState.instructions & SentCompletedShellId) === NothingSent && + ((resumableState.instructions |= SentCompletedShellId), + (resumableState = "\u00ab" + resumableState.idPrefix + "R\u00bb"), + destination.push(completedShellIdAttributeStart), + (resumableState = escapeTextForBrowser(resumableState)), + destination.push(resumableState), + destination.push(attributeEnd)); + } function pushCompletedShellIdAttribute(target, resumableState) { (resumableState.instructions & SentCompletedShellId) === NothingSent && ((resumableState.instructions |= SentCompletedShellId), @@ -3481,7 +3490,7 @@ bootstrapChunks.push( endOfStartTag, escapeEntireInlineScriptContent(bootstrapScriptContent), - "\x3c/script>" + endInlineScript )); idPrefix = { placeholderPrefix: idPrefix + "P:", @@ -7675,23 +7684,24 @@ ? (destination.push(request.startInlineScript), destination.push(endOfStartTag), requiresStyleInsertion - ? (completedSegments.instructions & + ? ((completedSegments.instructions & SentClientRenderFunction) === + NothingSent && + ((completedSegments.instructions |= SentClientRenderFunction), + destination.push(clientRenderScriptFunctionOnly)), + (completedSegments.instructions & SentCompleteBoundaryFunction) === - NothingSent - ? ((completedSegments.instructions = - completedSegments.instructions | - SentStyleInsertionFunction | + NothingSent && + ((completedSegments.instructions |= SentCompleteBoundaryFunction), - destination.push(completeBoundaryWithStylesScript1FullBoth)) - : (completedSegments.instructions & - SentStyleInsertionFunction) === - NothingSent + destination.push(completeBoundaryScriptFunctionOnly)), + (completedSegments.instructions & SentStyleInsertionFunction) === + NothingSent ? ((completedSegments.instructions |= SentStyleInsertionFunction), destination.push( completeBoundaryWithStylesScript1FullPartial )) - : destination.push(completeBoundaryWithStylesScript1Partial) + : destination.push(completeBoundaryWithStylesScript1Partial)) : (completedSegments.instructions & SentCompleteBoundaryFunction) === NothingSent @@ -7786,11 +7796,7 @@ flushedByteSize = request.byteSize; var resumableState = request.resumableState, renderState = request.renderState; - if ( - (0 !== request.allPendingTasks || - null !== request.trackedPostpones) && - renderState.externalRuntimeScript - ) { + if (renderState.externalRuntimeScript) { var _renderState$external = renderState.externalRuntimeScript, src = _renderState$external.src, chunks = _renderState$external.chunks; @@ -7900,20 +7906,41 @@ flushSegment(request, destination, completedRootSegment, null); request.completedRootSegment = null; var resumableState$jscomp$0 = request.resumableState, - renderState$jscomp$0 = request.renderState, - preamble$jscomp$1 = renderState$jscomp$0.preamble; + renderState$jscomp$0 = request.renderState; + (0 === request.allPendingTasks && + 0 === request.clientRenderedBoundaries.length && + 0 === request.completedBoundaries.length && + (null === request.trackedPostpones || + (0 === request.trackedPostpones.rootNodes.length && + null === request.trackedPostpones.rootSlots))) || + resumableState$jscomp$0.streamingFormat !== + ScriptStreamingFormat || + (resumableState$jscomp$0.instructions & SentMarkShellTime) !== + NothingSent || + ((resumableState$jscomp$0.instructions |= SentMarkShellTime), + destination.push(renderState$jscomp$0.startInlineScript), + writeCompletedShellIdAttribute( + destination, + resumableState$jscomp$0 + ), + destination.push(endOfStartTag), + destination.push(shellTimeRuntimeScript), + destination.push(endInlineScript)); + var preamble$jscomp$1 = renderState$jscomp$0.preamble; if ( (preamble$jscomp$1.htmlChunks || preamble$jscomp$1.headChunks) && (resumableState$jscomp$0.instructions & SentCompletedShellId) === NothingSent ) { - var bootstrapChunks = renderState$jscomp$0.bootstrapChunks; - bootstrapChunks.push(startChunkForTag("template")); - pushCompletedShellIdAttribute( - bootstrapChunks, + var chunk$jscomp$2 = startChunkForTag("template"); + destination.push(chunk$jscomp$2); + writeCompletedShellIdAttribute( + destination, resumableState$jscomp$0 ); - bootstrapChunks.push(endOfStartTag, endChunkForTag("template")); + destination.push(endOfStartTag); + var chunk$jscomp$3 = endChunkForTag("template"); + destination.push(chunk$jscomp$3); } writeBootstrap(destination, renderState$jscomp$0); } @@ -7977,8 +8004,8 @@ : renderState$jscomp$1.push(clientRenderScript1Partial)) : renderState$jscomp$1.push(clientRenderData1); renderState$jscomp$1.push(renderState$jscomp$2.boundaryPrefix); - var chunk$jscomp$2 = id.toString(16); - renderState$jscomp$1.push(chunk$jscomp$2); + var chunk$jscomp$4 = id.toString(16); + renderState$jscomp$1.push(chunk$jscomp$4); scriptFormat && renderState$jscomp$1.push(clientRenderScript1A); if ( errorDigest || @@ -7990,55 +8017,55 @@ renderState$jscomp$1.push( clientRenderErrorScriptArgInterstitial ); - var chunk$jscomp$3 = escapeJSStringsForInstructionScripts( + var chunk$jscomp$5 = escapeJSStringsForInstructionScripts( errorDigest || "" ); - renderState$jscomp$1.push(chunk$jscomp$3); + renderState$jscomp$1.push(chunk$jscomp$5); } else { renderState$jscomp$1.push(clientRenderData2); - var chunk$jscomp$4 = escapeTextForBrowser(errorDigest || ""); - renderState$jscomp$1.push(chunk$jscomp$4); + var chunk$jscomp$6 = escapeTextForBrowser(errorDigest || ""); + renderState$jscomp$1.push(chunk$jscomp$6); } if (errorMessage || errorStack || errorComponentStack) if (scriptFormat) { renderState$jscomp$1.push( clientRenderErrorScriptArgInterstitial ); - var chunk$jscomp$5 = escapeJSStringsForInstructionScripts( + var chunk$jscomp$7 = escapeJSStringsForInstructionScripts( errorMessage || "" ); - renderState$jscomp$1.push(chunk$jscomp$5); + renderState$jscomp$1.push(chunk$jscomp$7); } else { renderState$jscomp$1.push(clientRenderData3); - var chunk$jscomp$6 = escapeTextForBrowser(errorMessage || ""); - renderState$jscomp$1.push(chunk$jscomp$6); + var chunk$jscomp$8 = escapeTextForBrowser(errorMessage || ""); + renderState$jscomp$1.push(chunk$jscomp$8); } if (errorStack || errorComponentStack) if (scriptFormat) { renderState$jscomp$1.push( clientRenderErrorScriptArgInterstitial ); - var chunk$jscomp$7 = escapeJSStringsForInstructionScripts( + var chunk$jscomp$9 = escapeJSStringsForInstructionScripts( errorStack || "" ); - renderState$jscomp$1.push(chunk$jscomp$7); + renderState$jscomp$1.push(chunk$jscomp$9); } else { renderState$jscomp$1.push(clientRenderData4); - var chunk$jscomp$8 = escapeTextForBrowser(errorStack || ""); - renderState$jscomp$1.push(chunk$jscomp$8); + var chunk$jscomp$10 = escapeTextForBrowser(errorStack || ""); + renderState$jscomp$1.push(chunk$jscomp$10); } if (errorComponentStack) if (scriptFormat) { renderState$jscomp$1.push( clientRenderErrorScriptArgInterstitial ); - var chunk$jscomp$9 = + var chunk$jscomp$11 = escapeJSStringsForInstructionScripts(errorComponentStack); - renderState$jscomp$1.push(chunk$jscomp$9); + renderState$jscomp$1.push(chunk$jscomp$11); } else { renderState$jscomp$1.push(clientRenderData5); - var chunk$jscomp$10 = escapeTextForBrowser(errorComponentStack); - renderState$jscomp$1.push(chunk$jscomp$10); + var chunk$jscomp$12 = escapeTextForBrowser(errorComponentStack); + renderState$jscomp$1.push(chunk$jscomp$12); } var JSCompiler_inline_result = scriptFormat ? renderState$jscomp$1.push(clientRenderScriptEnd) @@ -8121,7 +8148,6 @@ } } finally { 0 === request.allPendingTasks && - 0 === request.pingedTasks.length && 0 === request.clientRenderedBoundaries.length && 0 === request.completedBoundaries.length && ((request.flushScheduled = !1), @@ -9334,10 +9360,12 @@ SentClientRenderFunction = 4, SentStyleInsertionFunction = 8, SentCompletedShellId = 32, + SentMarkShellTime = 64, EXISTS = null, PRELOAD_NO_CREDS = []; Object.freeze(PRELOAD_NO_CREDS); - var scriptRegex = /(<\/|<)(s)(cript)/gi; + var endInlineScript = "\x3c/script>", + scriptRegex = /(<\/|<)(s)(cript)/gi; var didWarnForNewBooleanPropsWithEmptyValue = {}; var ROOT_HTML_MODE = 0, HTML_HTML_MODE = 1, @@ -9381,6 +9409,8 @@ VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/, validatedTagCache = new Map(), endTagCache = new Map(), + shellTimeRuntimeScript = + "requestAnimationFrame(function(){$RT=performance.now()});", placeholder1 = '', startCompletedSuspenseBoundary = "\x3c!--$--\x3e", @@ -9424,13 +9454,13 @@ completeSegmentData1 = '', + completeBoundaryScriptFunctionOnly = + '$RB=[];$RC=function(d,c){function m(){$RT=performance.now();var f=$RB;$RB=[];for(var e=0;e" )); bootstrapScriptContent = idPrefix + "P:"; - var JSCompiler_object_inline_segmentPrefix_1751 = idPrefix + "S:"; + var JSCompiler_object_inline_segmentPrefix_1796 = idPrefix + "S:"; idPrefix += "B:"; - var JSCompiler_object_inline_preamble_1754 = createPreambleState(), - JSCompiler_object_inline_preconnects_1764 = new Set(), - JSCompiler_object_inline_fontPreloads_1765 = new Set(), - JSCompiler_object_inline_highImagePreloads_1766 = new Set(), - JSCompiler_object_inline_styles_1767 = new Map(), - JSCompiler_object_inline_bootstrapScripts_1768 = new Set(), - JSCompiler_object_inline_scripts_1769 = new Set(), - JSCompiler_object_inline_bulkPreloads_1770 = new Set(), - JSCompiler_object_inline_preloads_1771 = { + var JSCompiler_object_inline_preamble_1799 = createPreambleState(), + JSCompiler_object_inline_preconnects_1809 = new Set(), + JSCompiler_object_inline_fontPreloads_1810 = new Set(), + JSCompiler_object_inline_highImagePreloads_1811 = new Set(), + JSCompiler_object_inline_styles_1812 = new Map(), + JSCompiler_object_inline_bootstrapScripts_1813 = new Set(), + JSCompiler_object_inline_scripts_1814 = new Set(), + JSCompiler_object_inline_bulkPreloads_1815 = new Set(), + JSCompiler_object_inline_preloads_1816 = { images: new Map(), stylesheets: new Map(), scripts: new Map(), @@ -2853,7 +2862,7 @@ function createRenderState(resumableState, generateStaticMarkup) { scriptConfig.moduleScriptResources[href] = null; scriptConfig = []; pushLinkImpl(scriptConfig, props); - JSCompiler_object_inline_bootstrapScripts_1768.add(scriptConfig); + JSCompiler_object_inline_bootstrapScripts_1813.add(scriptConfig); bootstrapChunks.push('