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('