Enable Suspensey Images inside <ViewTransition> subtrees (#32820)

Even if the `enableSuspenseyImages` flag is off.

Started View Transitions already wait for Suspensey Fonts and this is
another Suspensey feature that is even more important for View
Transitions - even though we eventually want it all the time. So this
uses `<ViewTransition>` as an early opt-in for that tree into Suspensey
Images, which we can ship in a minor.

If you're doing an update inside a ViewTransition then we're eligible to
start a ViewTransition in any Transition that might suspend. Even if
that doesn't end up animating after all, we still consider it Suspensey.
We could try to suspend inside the startViewTransition but that's not
how it would work with `enableSuspenseyImages` on and we can't do that
for startGestureTransition.

Even so we still need some opt-in to trigger the Suspense fallback even
before we know whether we'll animate or not. So the simple solution is
just that `<ViewTransition>` opts in the whole subtree into Suspensey
Images in general.

In this PR I disable `enableSuspenseyImages` in experimental so that we
can instead test the path that only enables it inside `<ViewTransition>`
tree since that's the path that would next graduate to a minor.

DiffTrain build for [8da36d0508](https://github.com/facebook/react/commit/8da36d0508e83dd342ddbb98cb18f0606fd4045b)
This commit is contained in:
sebmarkbage
2025-04-08 15:01:08 -07:00
parent b154791a6c
commit 5c01acf862
35 changed files with 4411 additions and 3485 deletions
+301 -291
View File
@@ -4616,296 +4616,306 @@ function isValidIdentifier(name, reserved = true) {
var lib$1 = {};
Object.defineProperty(lib$1, "__esModule", {
value: true
});
lib$1.readCodePoint = readCodePoint;
lib$1.readInt = readInt;
lib$1.readStringContents = readStringContents;
var _isDigit = function isDigit(code) {
return code >= 48 && code <= 57;
};
const forbiddenNumericSeparatorSiblings = {
decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]),
hex: new Set([46, 88, 95, 120])
};
const isAllowedNumericSeparatorSibling = {
bin: ch => ch === 48 || ch === 49,
oct: ch => ch >= 48 && ch <= 55,
dec: ch => ch >= 48 && ch <= 57,
hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102
};
function readStringContents(type, input, pos, lineStart, curLine, errors) {
const initialPos = pos;
const initialLineStart = lineStart;
const initialCurLine = curLine;
let out = "";
let firstInvalidLoc = null;
let chunkStart = pos;
const {
length
} = input;
for (;;) {
if (pos >= length) {
errors.unterminated(initialPos, initialLineStart, initialCurLine);
out += input.slice(chunkStart, pos);
break;
}
const ch = input.charCodeAt(pos);
if (isStringEnd(type, ch, input, pos)) {
out += input.slice(chunkStart, pos);
break;
}
if (ch === 92) {
out += input.slice(chunkStart, pos);
const res = readEscapedChar(input, pos, lineStart, curLine, type === "template", errors);
if (res.ch === null && !firstInvalidLoc) {
firstInvalidLoc = {
pos,
lineStart,
curLine
};
} else {
out += res.ch;
}
({
pos,
lineStart,
curLine
} = res);
chunkStart = pos;
} else if (ch === 8232 || ch === 8233) {
++pos;
++curLine;
lineStart = pos;
} else if (ch === 10 || ch === 13) {
if (type === "template") {
out += input.slice(chunkStart, pos) + "\n";
++pos;
if (ch === 13 && input.charCodeAt(pos) === 10) {
++pos;
}
++curLine;
chunkStart = lineStart = pos;
} else {
errors.unterminated(initialPos, initialLineStart, initialCurLine);
}
} else {
++pos;
}
}
return {
pos,
str: out,
firstInvalidLoc,
lineStart,
curLine,
containsInvalid: !!firstInvalidLoc
};
}
function isStringEnd(type, ch, input, pos) {
if (type === "template") {
return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123;
}
return ch === (type === "double" ? 34 : 39);
}
function readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) {
const throwOnInvalid = !inTemplate;
pos++;
const res = ch => ({
pos,
ch,
lineStart,
curLine
});
const ch = input.charCodeAt(pos++);
switch (ch) {
case 110:
return res("\n");
case 114:
return res("\r");
case 120:
{
let code;
({
code,
pos
} = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors));
return res(code === null ? null : String.fromCharCode(code));
}
case 117:
{
let code;
({
code,
pos
} = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors));
return res(code === null ? null : String.fromCodePoint(code));
}
case 116:
return res("\t");
case 98:
return res("\b");
case 118:
return res("\u000b");
case 102:
return res("\f");
case 13:
if (input.charCodeAt(pos) === 10) {
++pos;
}
case 10:
lineStart = pos;
++curLine;
case 8232:
case 8233:
return res("");
case 56:
case 57:
if (inTemplate) {
return res(null);
} else {
errors.strictNumericEscape(pos - 1, lineStart, curLine);
}
default:
if (ch >= 48 && ch <= 55) {
const startPos = pos - 1;
const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2));
let octalStr = match[0];
let octal = parseInt(octalStr, 8);
if (octal > 255) {
octalStr = octalStr.slice(0, -1);
octal = parseInt(octalStr, 8);
}
pos += octalStr.length - 1;
const next = input.charCodeAt(pos);
if (octalStr !== "0" || next === 56 || next === 57) {
if (inTemplate) {
return res(null);
} else {
errors.strictNumericEscape(startPos, lineStart, curLine);
}
}
return res(String.fromCharCode(octal));
}
return res(String.fromCharCode(ch));
}
}
function readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) {
const initialPos = pos;
let n;
({
n,
pos
} = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid));
if (n === null) {
if (throwOnInvalid) {
errors.invalidEscapeSequence(initialPos, lineStart, curLine);
} else {
pos = initialPos - 1;
}
}
return {
code: n,
pos
};
}
function readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) {
const start = pos;
const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct;
const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin;
let invalid = false;
let total = 0;
for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {
const code = input.charCodeAt(pos);
let val;
if (code === 95 && allowNumSeparator !== "bail") {
const prev = input.charCodeAt(pos - 1);
const next = input.charCodeAt(pos + 1);
if (!allowNumSeparator) {
if (bailOnError) return {
n: null,
pos
};
errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);
} else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) {
if (bailOnError) return {
n: null,
pos
};
errors.unexpectedNumericSeparator(pos, lineStart, curLine);
}
++pos;
continue;
}
if (code >= 97) {
val = code - 97 + 10;
} else if (code >= 65) {
val = code - 65 + 10;
} else if (_isDigit(code)) {
val = code - 48;
} else {
val = Infinity;
}
if (val >= radix) {
if (val <= 9 && bailOnError) {
return {
n: null,
pos
};
} else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) {
val = 0;
} else if (forceLen) {
val = 0;
invalid = true;
} else {
break;
}
}
++pos;
total = total * radix + val;
}
if (pos === start || len != null && pos - start !== len || invalid) {
return {
n: null,
pos
};
}
return {
n: total,
pos
};
}
function readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) {
const ch = input.charCodeAt(pos);
let code;
if (ch === 123) {
++pos;
({
code,
pos
} = readHexChar(input, pos, lineStart, curLine, input.indexOf("}", pos) - pos, true, throwOnInvalid, errors));
++pos;
if (code !== null && code > 0x10ffff) {
if (throwOnInvalid) {
errors.invalidCodePoint(pos, lineStart, curLine);
} else {
return {
code: null,
pos
};
}
}
} else {
({
code,
pos
} = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors));
}
return {
code,
pos
};
var hasRequiredLib$1;
function requireLib$1 () {
if (hasRequiredLib$1) return lib$1;
hasRequiredLib$1 = 1;
Object.defineProperty(lib$1, "__esModule", {
value: true
});
lib$1.readCodePoint = readCodePoint;
lib$1.readInt = readInt;
lib$1.readStringContents = readStringContents;
var _isDigit = function isDigit(code) {
return code >= 48 && code <= 57;
};
const forbiddenNumericSeparatorSiblings = {
decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]),
hex: new Set([46, 88, 95, 120])
};
const isAllowedNumericSeparatorSibling = {
bin: ch => ch === 48 || ch === 49,
oct: ch => ch >= 48 && ch <= 55,
dec: ch => ch >= 48 && ch <= 57,
hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102
};
function readStringContents(type, input, pos, lineStart, curLine, errors) {
const initialPos = pos;
const initialLineStart = lineStart;
const initialCurLine = curLine;
let out = "";
let firstInvalidLoc = null;
let chunkStart = pos;
const {
length
} = input;
for (;;) {
if (pos >= length) {
errors.unterminated(initialPos, initialLineStart, initialCurLine);
out += input.slice(chunkStart, pos);
break;
}
const ch = input.charCodeAt(pos);
if (isStringEnd(type, ch, input, pos)) {
out += input.slice(chunkStart, pos);
break;
}
if (ch === 92) {
out += input.slice(chunkStart, pos);
const res = readEscapedChar(input, pos, lineStart, curLine, type === "template", errors);
if (res.ch === null && !firstInvalidLoc) {
firstInvalidLoc = {
pos,
lineStart,
curLine
};
} else {
out += res.ch;
}
({
pos,
lineStart,
curLine
} = res);
chunkStart = pos;
} else if (ch === 8232 || ch === 8233) {
++pos;
++curLine;
lineStart = pos;
} else if (ch === 10 || ch === 13) {
if (type === "template") {
out += input.slice(chunkStart, pos) + "\n";
++pos;
if (ch === 13 && input.charCodeAt(pos) === 10) {
++pos;
}
++curLine;
chunkStart = lineStart = pos;
} else {
errors.unterminated(initialPos, initialLineStart, initialCurLine);
}
} else {
++pos;
}
}
return {
pos,
str: out,
firstInvalidLoc,
lineStart,
curLine,
containsInvalid: !!firstInvalidLoc
};
}
function isStringEnd(type, ch, input, pos) {
if (type === "template") {
return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123;
}
return ch === (type === "double" ? 34 : 39);
}
function readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) {
const throwOnInvalid = !inTemplate;
pos++;
const res = ch => ({
pos,
ch,
lineStart,
curLine
});
const ch = input.charCodeAt(pos++);
switch (ch) {
case 110:
return res("\n");
case 114:
return res("\r");
case 120:
{
let code;
({
code,
pos
} = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors));
return res(code === null ? null : String.fromCharCode(code));
}
case 117:
{
let code;
({
code,
pos
} = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors));
return res(code === null ? null : String.fromCodePoint(code));
}
case 116:
return res("\t");
case 98:
return res("\b");
case 118:
return res("\u000b");
case 102:
return res("\f");
case 13:
if (input.charCodeAt(pos) === 10) {
++pos;
}
case 10:
lineStart = pos;
++curLine;
case 8232:
case 8233:
return res("");
case 56:
case 57:
if (inTemplate) {
return res(null);
} else {
errors.strictNumericEscape(pos - 1, lineStart, curLine);
}
default:
if (ch >= 48 && ch <= 55) {
const startPos = pos - 1;
const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2));
let octalStr = match[0];
let octal = parseInt(octalStr, 8);
if (octal > 255) {
octalStr = octalStr.slice(0, -1);
octal = parseInt(octalStr, 8);
}
pos += octalStr.length - 1;
const next = input.charCodeAt(pos);
if (octalStr !== "0" || next === 56 || next === 57) {
if (inTemplate) {
return res(null);
} else {
errors.strictNumericEscape(startPos, lineStart, curLine);
}
}
return res(String.fromCharCode(octal));
}
return res(String.fromCharCode(ch));
}
}
function readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) {
const initialPos = pos;
let n;
({
n,
pos
} = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid));
if (n === null) {
if (throwOnInvalid) {
errors.invalidEscapeSequence(initialPos, lineStart, curLine);
} else {
pos = initialPos - 1;
}
}
return {
code: n,
pos
};
}
function readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) {
const start = pos;
const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct;
const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin;
let invalid = false;
let total = 0;
for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {
const code = input.charCodeAt(pos);
let val;
if (code === 95 && allowNumSeparator !== "bail") {
const prev = input.charCodeAt(pos - 1);
const next = input.charCodeAt(pos + 1);
if (!allowNumSeparator) {
if (bailOnError) return {
n: null,
pos
};
errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);
} else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) {
if (bailOnError) return {
n: null,
pos
};
errors.unexpectedNumericSeparator(pos, lineStart, curLine);
}
++pos;
continue;
}
if (code >= 97) {
val = code - 97 + 10;
} else if (code >= 65) {
val = code - 65 + 10;
} else if (_isDigit(code)) {
val = code - 48;
} else {
val = Infinity;
}
if (val >= radix) {
if (val <= 9 && bailOnError) {
return {
n: null,
pos
};
} else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) {
val = 0;
} else if (forceLen) {
val = 0;
invalid = true;
} else {
break;
}
}
++pos;
total = total * radix + val;
}
if (pos === start || len != null && pos - start !== len || invalid) {
return {
n: null,
pos
};
}
return {
n: total,
pos
};
}
function readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) {
const ch = input.charCodeAt(pos);
let code;
if (ch === 123) {
++pos;
({
code,
pos
} = readHexChar(input, pos, lineStart, curLine, input.indexOf("}", pos) - pos, true, throwOnInvalid, errors));
++pos;
if (code !== null && code > 0x10ffff) {
if (throwOnInvalid) {
errors.invalidCodePoint(pos, lineStart, curLine);
} else {
return {
code: null,
pos
};
}
}
} else {
({
code,
pos
} = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors));
}
return {
code,
pos
};
}
return lib$1;
}
var constants = {};
@@ -5230,7 +5240,7 @@ function requireCore () {
var _is = requireIs();
var _isValidIdentifier = isValidIdentifier$1;
var _helperValidatorIdentifier = lib$2;
var _helperStringParser = lib$1;
var _helperStringParser = requireLib$1();
var _index = constants;
var _utils = requireUtils();
const defineType = (0, _utils.defineAliasedType)("Standardized");
+1 -1
View File
@@ -1 +1 @@
ea05b750a5374458fc8c74ea0918059c818d1167
8da36d0508e83dd342ddbb98cb18f0606fd4045b
+1 -1
View File
@@ -1 +1 @@
ea05b750a5374458fc8c74ea0918059c818d1167
8da36d0508e83dd342ddbb98cb18f0606fd4045b
+1 -1
View File
@@ -1538,7 +1538,7 @@ __DEV__ &&
exports.useTransition = function () {
return resolveDispatcher().useTransition();
};
exports.version = "19.2.0-www-classic-ea05b750-20250408";
exports.version = "19.2.0-www-classic-8da36d05-20250408";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
+1 -1
View File
@@ -1538,7 +1538,7 @@ __DEV__ &&
exports.useTransition = function () {
return resolveDispatcher().useTransition();
};
exports.version = "19.2.0-www-modern-ea05b750-20250408";
exports.version = "19.2.0-www-modern-8da36d05-20250408";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
+1 -1
View File
@@ -636,4 +636,4 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.2.0-www-classic-ea05b750-20250408";
exports.version = "19.2.0-www-classic-8da36d05-20250408";
+1 -1
View File
@@ -636,4 +636,4 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.2.0-www-modern-ea05b750-20250408";
exports.version = "19.2.0-www-modern-8da36d05-20250408";
@@ -640,7 +640,7 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.2.0-www-classic-ea05b750-20250408";
exports.version = "19.2.0-www-classic-8da36d05-20250408";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -640,7 +640,7 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.2.0-www-modern-ea05b750-20250408";
exports.version = "19.2.0-www-modern-8da36d05-20250408";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
+14 -13
View File
@@ -15968,7 +15968,8 @@ __DEV__ &&
case REACT_VIEW_TRANSITION_TYPE:
if (enableViewTransition)
return (
(key = createFiber(30, pendingProps, key, mode)),
(type = mode | 32),
(key = createFiber(30, pendingProps, key, type)),
(key.elementType = REACT_VIEW_TRANSITION_TYPE),
(key.lanes = lanes),
(key.stateNode = {
@@ -16031,27 +16032,27 @@ __DEV__ &&
resolvedType = null;
break a;
}
resolvedType = "";
pendingProps = "";
if (
void 0 === type ||
("object" === typeof type &&
null !== type &&
0 === Object.keys(type).length)
)
resolvedType +=
pendingProps +=
" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.";
null === type
? (pendingProps = "null")
? (resolvedType = "null")
: isArrayImpl(type)
? (pendingProps = "array")
? (resolvedType = "array")
: void 0 !== type && type.$$typeof === REACT_ELEMENT_TYPE
? ((pendingProps =
? ((resolvedType =
"<" +
(getComponentNameFromType(type.type) || "Unknown") +
" />"),
(resolvedType =
(pendingProps =
" Did you accidentally export a JSX literal instead of a component?"))
: (pendingProps = typeof type);
: (resolvedType = typeof type);
fiberTag = owner
? "number" === typeof owner.tag
? getComponentNameFromFiber(owner)
@@ -16060,12 +16061,12 @@ __DEV__ &&
: null
: null;
fiberTag &&
(resolvedType +=
(pendingProps +=
"\n\nCheck the render method of `" + fiberTag + "`.");
fiberTag = 29;
pendingProps = Error(
"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " +
(pendingProps + "." + resolvedType)
(resolvedType + "." + pendingProps)
);
resolvedType = null;
}
@@ -18526,10 +18527,10 @@ __DEV__ &&
(function () {
var internals = {
bundleType: 1,
version: "19.2.0-www-classic-ea05b750-20250408",
version: "19.2.0-www-classic-8da36d05-20250408",
rendererPackageName: "react-art",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-classic-ea05b750-20250408"
reconcilerVersion: "19.2.0-www-classic-8da36d05-20250408"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -18563,7 +18564,7 @@ __DEV__ &&
exports.Shape = Shape;
exports.Surface = Surface;
exports.Text = Text;
exports.version = "19.2.0-www-classic-ea05b750-20250408";
exports.version = "19.2.0-www-classic-8da36d05-20250408";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
+14 -13
View File
@@ -15782,7 +15782,8 @@ __DEV__ &&
case REACT_VIEW_TRANSITION_TYPE:
if (enableViewTransition)
return (
(key = createFiber(30, pendingProps, key, mode)),
(type = mode | 32),
(key = createFiber(30, pendingProps, key, type)),
(key.elementType = REACT_VIEW_TRANSITION_TYPE),
(key.lanes = lanes),
(key.stateNode = {
@@ -15845,27 +15846,27 @@ __DEV__ &&
resolvedType = null;
break a;
}
resolvedType = "";
pendingProps = "";
if (
void 0 === type ||
("object" === typeof type &&
null !== type &&
0 === Object.keys(type).length)
)
resolvedType +=
pendingProps +=
" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.";
null === type
? (pendingProps = "null")
? (resolvedType = "null")
: isArrayImpl(type)
? (pendingProps = "array")
? (resolvedType = "array")
: void 0 !== type && type.$$typeof === REACT_ELEMENT_TYPE
? ((pendingProps =
? ((resolvedType =
"<" +
(getComponentNameFromType(type.type) || "Unknown") +
" />"),
(resolvedType =
(pendingProps =
" Did you accidentally export a JSX literal instead of a component?"))
: (pendingProps = typeof type);
: (resolvedType = typeof type);
fiberTag = owner
? "number" === typeof owner.tag
? getComponentNameFromFiber(owner)
@@ -15874,12 +15875,12 @@ __DEV__ &&
: null
: null;
fiberTag &&
(resolvedType +=
(pendingProps +=
"\n\nCheck the render method of `" + fiberTag + "`.");
fiberTag = 29;
pendingProps = Error(
"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " +
(pendingProps + "." + resolvedType)
(resolvedType + "." + pendingProps)
);
resolvedType = null;
}
@@ -18298,10 +18299,10 @@ __DEV__ &&
(function () {
var internals = {
bundleType: 1,
version: "19.2.0-www-modern-ea05b750-20250408",
version: "19.2.0-www-modern-8da36d05-20250408",
rendererPackageName: "react-art",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-modern-ea05b750-20250408"
reconcilerVersion: "19.2.0-www-modern-8da36d05-20250408"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -18335,7 +18336,7 @@ __DEV__ &&
exports.Shape = Shape;
exports.Surface = Surface;
exports.Text = Text;
exports.version = "19.2.0-www-modern-ea05b750-20250408";
exports.version = "19.2.0-www-modern-8da36d05-20250408";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -10891,7 +10891,8 @@ function createFiberFromTypeAndProps(
case REACT_VIEW_TRANSITION_TYPE:
if (enableViewTransition)
return (
(type = createFiber(30, pendingProps, key, mode)),
(type = mode | 32),
(type = createFiber(30, pendingProps, key, type)),
(type.elementType = REACT_VIEW_TRANSITION_TYPE),
(type.lanes = lanes),
(type.stateNode = {
@@ -11217,10 +11218,10 @@ var slice = Array.prototype.slice,
})(React.Component);
var internals$jscomp$inline_1593 = {
bundleType: 0,
version: "19.2.0-www-classic-ea05b750-20250408",
version: "19.2.0-www-classic-8da36d05-20250408",
rendererPackageName: "react-art",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-classic-ea05b750-20250408"
reconcilerVersion: "19.2.0-www-classic-8da36d05-20250408"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_1594 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -11246,4 +11247,4 @@ exports.RadialGradient = RadialGradient;
exports.Shape = TYPES.SHAPE;
exports.Surface = Surface;
exports.Text = Text;
exports.version = "19.2.0-www-classic-ea05b750-20250408";
exports.version = "19.2.0-www-classic-8da36d05-20250408";
@@ -10639,7 +10639,8 @@ function createFiberFromTypeAndProps(
case REACT_VIEW_TRANSITION_TYPE:
if (enableViewTransition)
return (
(type = createFiber(30, pendingProps, key, mode)),
(type = mode | 32),
(type = createFiber(30, pendingProps, key, type)),
(type.elementType = REACT_VIEW_TRANSITION_TYPE),
(type.lanes = lanes),
(type.stateNode = {
@@ -10930,10 +10931,10 @@ var slice = Array.prototype.slice,
})(React.Component);
var internals$jscomp$inline_1566 = {
bundleType: 0,
version: "19.2.0-www-modern-ea05b750-20250408",
version: "19.2.0-www-modern-8da36d05-20250408",
rendererPackageName: "react-art",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-modern-ea05b750-20250408"
reconcilerVersion: "19.2.0-www-modern-8da36d05-20250408"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_1567 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -10959,4 +10960,4 @@ exports.RadialGradient = RadialGradient;
exports.Shape = TYPES.SHAPE;
exports.Surface = Surface;
exports.Text = Text;
exports.version = "19.2.0-www-modern-ea05b750-20250408";
exports.version = "19.2.0-www-modern-8da36d05-20250408";
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -9440,5 +9440,5 @@ __DEV__ &&
'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
);
};
exports.version = "19.2.0-www-classic-ea05b750-20250408";
exports.version = "19.2.0-www-classic-8da36d05-20250408";
})();
@@ -9369,5 +9369,5 @@ __DEV__ &&
'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
);
};
exports.version = "19.2.0-www-modern-ea05b750-20250408";
exports.version = "19.2.0-www-modern-8da36d05-20250408";
})();
@@ -6203,4 +6203,4 @@ exports.renderToString = function (children, options) {
'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
);
};
exports.version = "19.2.0-www-classic-ea05b750-20250408";
exports.version = "19.2.0-www-classic-8da36d05-20250408";
@@ -6115,4 +6115,4 @@ exports.renderToString = function (children, options) {
'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
);
};
exports.version = "19.2.0-www-modern-ea05b750-20250408";
exports.version = "19.2.0-www-modern-8da36d05-20250408";
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -10105,9 +10105,10 @@ __DEV__ &&
renderLanes
) {
if (
null === oldProps
(workInProgress.mode & 32) !== NoMode &&
(null === oldProps
? maySuspendCommit(type, newProps)
: maySuspendCommitOnUpdate(type, oldProps, newProps)
: maySuspendCommitOnUpdate(type, oldProps, newProps))
) {
if (
((workInProgress.flags |= 16777216),
@@ -18055,7 +18056,8 @@ __DEV__ &&
case REACT_VIEW_TRANSITION_TYPE:
if (enableViewTransition)
return (
(key = createFiber(30, pendingProps, key, mode)),
(type = mode | 32),
(key = createFiber(30, pendingProps, key, type)),
(key.elementType = REACT_VIEW_TRANSITION_TYPE),
(key.lanes = lanes),
(key.stateNode = {
@@ -18118,27 +18120,27 @@ __DEV__ &&
resolvedType = null;
break a;
}
resolvedType = "";
pendingProps = "";
if (
void 0 === type ||
("object" === typeof type &&
null !== type &&
0 === Object.keys(type).length)
)
resolvedType +=
pendingProps +=
" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.";
null === type
? (pendingProps = "null")
? (resolvedType = "null")
: isArrayImpl(type)
? (pendingProps = "array")
? (resolvedType = "array")
: void 0 !== type && type.$$typeof === REACT_ELEMENT_TYPE
? ((pendingProps =
? ((resolvedType =
"<" +
(getComponentNameFromType(type.type) || "Unknown") +
" />"),
(resolvedType =
(pendingProps =
" Did you accidentally export a JSX literal instead of a component?"))
: (pendingProps = typeof type);
: (resolvedType = typeof type);
fiberTag = owner
? "number" === typeof owner.tag
? getComponentNameFromFiber(owner)
@@ -18147,12 +18149,12 @@ __DEV__ &&
: null
: null;
fiberTag &&
(resolvedType +=
(pendingProps +=
"\n\nCheck the render method of `" + fiberTag + "`.");
fiberTag = 29;
pendingProps = Error(
"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " +
(pendingProps + "." + resolvedType)
(resolvedType + "." + pendingProps)
);
resolvedType = null;
}
@@ -21209,7 +21211,7 @@ __DEV__ &&
version: rendererVersion,
rendererPackageName: rendererPackageName,
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-classic-ea05b750-20250408"
reconcilerVersion: "19.2.0-www-classic-8da36d05-20250408"
};
null !== extraDevToolsConfig &&
(internals.rendererConfig = extraDevToolsConfig);
@@ -9937,9 +9937,10 @@ __DEV__ &&
renderLanes
) {
if (
null === oldProps
(workInProgress.mode & 32) !== NoMode &&
(null === oldProps
? maySuspendCommit(type, newProps)
: maySuspendCommitOnUpdate(type, oldProps, newProps)
: maySuspendCommitOnUpdate(type, oldProps, newProps))
) {
if (
((workInProgress.flags |= 16777216),
@@ -17869,7 +17870,8 @@ __DEV__ &&
case REACT_VIEW_TRANSITION_TYPE:
if (enableViewTransition)
return (
(key = createFiber(30, pendingProps, key, mode)),
(type = mode | 32),
(key = createFiber(30, pendingProps, key, type)),
(key.elementType = REACT_VIEW_TRANSITION_TYPE),
(key.lanes = lanes),
(key.stateNode = {
@@ -17932,27 +17934,27 @@ __DEV__ &&
resolvedType = null;
break a;
}
resolvedType = "";
pendingProps = "";
if (
void 0 === type ||
("object" === typeof type &&
null !== type &&
0 === Object.keys(type).length)
)
resolvedType +=
pendingProps +=
" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.";
null === type
? (pendingProps = "null")
? (resolvedType = "null")
: isArrayImpl(type)
? (pendingProps = "array")
? (resolvedType = "array")
: void 0 !== type && type.$$typeof === REACT_ELEMENT_TYPE
? ((pendingProps =
? ((resolvedType =
"<" +
(getComponentNameFromType(type.type) || "Unknown") +
" />"),
(resolvedType =
(pendingProps =
" Did you accidentally export a JSX literal instead of a component?"))
: (pendingProps = typeof type);
: (resolvedType = typeof type);
fiberTag = owner
? "number" === typeof owner.tag
? getComponentNameFromFiber(owner)
@@ -17961,12 +17963,12 @@ __DEV__ &&
: null
: null;
fiberTag &&
(resolvedType +=
(pendingProps +=
"\n\nCheck the render method of `" + fiberTag + "`.");
fiberTag = 29;
pendingProps = Error(
"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " +
(pendingProps + "." + resolvedType)
(resolvedType + "." + pendingProps)
);
resolvedType = null;
}
@@ -20990,7 +20992,7 @@ __DEV__ &&
version: rendererVersion,
rendererPackageName: rendererPackageName,
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-modern-ea05b750-20250408"
reconcilerVersion: "19.2.0-www-modern-8da36d05-20250408"
};
null !== extraDevToolsConfig &&
(internals.rendererConfig = extraDevToolsConfig);
@@ -6728,9 +6728,10 @@ module.exports = function ($$$config) {
renderLanes
) {
if (
null === oldProps
0 !== (workInProgress.mode & 32) &&
(null === oldProps
? maySuspendCommit(type, newProps)
: maySuspendCommitOnUpdate(type, oldProps, newProps)
: maySuspendCommitOnUpdate(type, oldProps, newProps))
) {
if (
((workInProgress.flags |= 16777216),
@@ -12307,7 +12308,8 @@ module.exports = function ($$$config) {
case REACT_VIEW_TRANSITION_TYPE:
if (enableViewTransition)
return (
(type = createFiber(30, pendingProps, key, mode)),
(type = mode | 32),
(type = createFiber(30, pendingProps, key, type)),
(type.elementType = REACT_VIEW_TRANSITION_TYPE),
(type.lanes = lanes),
(type.stateNode = {
@@ -13799,7 +13801,7 @@ module.exports = function ($$$config) {
version: rendererVersion,
rendererPackageName: rendererPackageName,
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-classic-ea05b750-20250408"
reconcilerVersion: "19.2.0-www-classic-8da36d05-20250408"
};
null !== extraDevToolsConfig &&
(internals.rendererConfig = extraDevToolsConfig);
@@ -6502,9 +6502,10 @@ module.exports = function ($$$config) {
renderLanes
) {
if (
null === oldProps
0 !== (workInProgress.mode & 32) &&
(null === oldProps
? maySuspendCommit(type, newProps)
: maySuspendCommitOnUpdate(type, oldProps, newProps)
: maySuspendCommitOnUpdate(type, oldProps, newProps))
) {
if (
((workInProgress.flags |= 16777216),
@@ -12058,7 +12059,8 @@ module.exports = function ($$$config) {
case REACT_VIEW_TRANSITION_TYPE:
if (enableViewTransition)
return (
(type = createFiber(30, pendingProps, key, mode)),
(type = mode | 32),
(type = createFiber(30, pendingProps, key, type)),
(type.elementType = REACT_VIEW_TRANSITION_TYPE),
(type.lanes = lanes),
(type.stateNode = {
@@ -13516,7 +13518,7 @@ module.exports = function ($$$config) {
version: rendererVersion,
rendererPackageName: rendererPackageName,
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-modern-ea05b750-20250408"
reconcilerVersion: "19.2.0-www-modern-8da36d05-20250408"
};
null !== extraDevToolsConfig &&
(internals.rendererConfig = extraDevToolsConfig);
@@ -15106,10 +15106,10 @@ __DEV__ &&
(function () {
var internals = {
bundleType: 1,
version: "19.2.0-www-classic-ea05b750-20250408",
version: "19.2.0-www-classic-8da36d05-20250408",
rendererPackageName: "react-test-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-classic-ea05b750-20250408"
reconcilerVersion: "19.2.0-www-classic-8da36d05-20250408"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -15244,5 +15244,5 @@ __DEV__ &&
exports.unstable_batchedUpdates = function (fn, a) {
return fn(a);
};
exports.version = "19.2.0-www-classic-ea05b750-20250408";
exports.version = "19.2.0-www-classic-8da36d05-20250408";
})();
@@ -15106,10 +15106,10 @@ __DEV__ &&
(function () {
var internals = {
bundleType: 1,
version: "19.2.0-www-modern-ea05b750-20250408",
version: "19.2.0-www-modern-8da36d05-20250408",
rendererPackageName: "react-test-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-modern-ea05b750-20250408"
reconcilerVersion: "19.2.0-www-modern-8da36d05-20250408"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -15244,5 +15244,5 @@ __DEV__ &&
exports.unstable_batchedUpdates = function (fn, a) {
return fn(a);
};
exports.version = "19.2.0-www-modern-ea05b750-20250408";
exports.version = "19.2.0-www-modern-8da36d05-20250408";
})();
+1 -1
View File
@@ -1 +1 @@
19.2.0-www-classic-ea05b750-20250408
19.2.0-www-classic-8da36d05-20250408
+1 -1
View File
@@ -1 +1 @@
19.2.0-www-modern-ea05b750-20250408
19.2.0-www-modern-8da36d05-20250408