diff --git a/compiled/facebook-www/REVISION b/compiled/facebook-www/REVISION
index 15a90d3c19..1bc504bcf4 100644
--- a/compiled/facebook-www/REVISION
+++ b/compiled/facebook-www/REVISION
@@ -1 +1 @@
-fee786a057774ab687aff765345dd86fce534ab2
+208ceeb46ca2838c9bf24cd341435f87b2d50569
diff --git a/compiled/facebook-www/React-prod.modern.js b/compiled/facebook-www/React-prod.modern.js
index 37aa4ba7bc..b0eb4507fa 100644
--- a/compiled/facebook-www/React-prod.modern.js
+++ b/compiled/facebook-www/React-prod.modern.js
@@ -625,4 +625,4 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactCurrentDispatcher.current.useTransition();
};
-exports.version = "18.3.0-www-modern-e739dc06";
+exports.version = "18.3.0-www-modern-77738445";
diff --git a/compiled/facebook-www/ReactDOMServer-dev.classic.js b/compiled/facebook-www/ReactDOMServer-dev.classic.js
index 9eb5d7f6a8..f6f732ac1d 100644
--- a/compiled/facebook-www/ReactDOMServer-dev.classic.js
+++ b/compiled/facebook-www/ReactDOMServer-dev.classic.js
@@ -19,7 +19,7 @@ if (__DEV__) {
var React = require("react");
var ReactDOM = require("react-dom");
- var ReactVersion = "18.3.0-www-classic-1ff2dafc";
+ var ReactVersion = "18.3.0-www-classic-ab242ef5";
// This refers to a WWW module.
var warningWWW = require("warning");
@@ -682,7 +682,6 @@ if (__DEV__) {
enableRefAsProp = dynamicFeatureFlags.enableRefAsProp,
enableNewBooleanProps = dynamicFeatureFlags.enableNewBooleanProps;
// On WWW, false is used for a new modern build.
- var enableFloat = true;
var enableBigIntSupport = false; // TODO: Roll out with GK. Don't keep as dynamic flag for too long, though,
// $FlowFixMe[method-unbinding]
@@ -4577,41 +4576,39 @@ if (__DEV__) {
noscriptTagInScope,
isFallback
) {
- {
- if (
- insertionMode === SVG_MODE ||
- noscriptTagInScope ||
- props.itemProp != null
- ) {
- return pushSelfClosing(target, props, "meta");
- } else {
- if (textEmbedded) {
- // This link follows text but we aren't writing a tag. while not as efficient as possible we need
- // to be safe and assume text will follow by inserting a textSeparator
- target.push(textSeparator);
- }
+ if (
+ insertionMode === SVG_MODE ||
+ noscriptTagInScope ||
+ props.itemProp != null
+ ) {
+ return pushSelfClosing(target, props, "meta");
+ } else {
+ if (textEmbedded) {
+ // This link follows text but we aren't writing a tag. while not as efficient as possible we need
+ // to be safe and assume text will follow by inserting a textSeparator
+ target.push(textSeparator);
+ }
- if (isFallback) {
- // Hoistable Elements for fallbacks are simply omitted. we don't want to emit them early
- // because they are likely superceded by primary content and we want to avoid needing to clean
- // them up when the primary content is ready. They are never hydrated on the client anyway because
- // boundaries in fallback are awaited or client render, in either case there is never hydration
- return null;
- } else if (typeof props.charSet === "string") {
- // "charset" Should really be config and not picked up from tags however since this is
- // the only way to embed the tag today we flush it on a special queue on the Request so it
- // can go before everything else. Like viewport this means that the tag will escape it's
- // parent container.
- return pushSelfClosing(renderState.charsetChunks, props, "meta");
- } else if (props.name === "viewport") {
- // "viewport" is flushed on the Request so it can go earlier that Float resources that
- // might be affected by it. This means it can escape the boundary it is rendered within.
- // This is a pragmatic solution to viewport being incredibly sensitive to document order
- // without requiring all hoistables to be flushed too early.
- return pushSelfClosing(renderState.viewportChunks, props, "meta");
- } else {
- return pushSelfClosing(renderState.hoistableChunks, props, "meta");
- }
+ if (isFallback) {
+ // Hoistable Elements for fallbacks are simply omitted. we don't want to emit them early
+ // because they are likely superceded by primary content and we want to avoid needing to clean
+ // them up when the primary content is ready. They are never hydrated on the client anyway because
+ // boundaries in fallback are awaited or client render, in either case there is never hydration
+ return null;
+ } else if (typeof props.charSet === "string") {
+ // "charset" Should really be config and not picked up from tags however since this is
+ // the only way to embed the tag today we flush it on a special queue on the Request so it
+ // can go before everything else. Like viewport this means that the tag will escape it's
+ // parent container.
+ return pushSelfClosing(renderState.charsetChunks, props, "meta");
+ } else if (props.name === "viewport") {
+ // "viewport" is flushed on the Request so it can go earlier that Float resources that
+ // might be affected by it. This means it can escape the boundary it is rendered within.
+ // This is a pragmatic solution to viewport being incredibly sensitive to document order
+ // without requiring all hoistables to be flushed too early.
+ return pushSelfClosing(renderState.viewportChunks, props, "meta");
+ } else {
+ return pushSelfClosing(renderState.hoistableChunks, props, "meta");
}
}
}
@@ -4627,174 +4624,172 @@ if (__DEV__) {
noscriptTagInScope,
isFallback
) {
- {
- var rel = props.rel;
- var href = props.href;
- var precedence = props.precedence;
+ var rel = props.rel;
+ var href = props.href;
+ var precedence = props.precedence;
+
+ if (
+ insertionMode === SVG_MODE ||
+ noscriptTagInScope ||
+ props.itemProp != null ||
+ typeof rel !== "string" ||
+ typeof href !== "string" ||
+ href === ""
+ ) {
+ {
+ if (rel === "stylesheet" && typeof props.precedence === "string") {
+ if (typeof href !== "string" || !href) {
+ error(
+ 'React encountered a `` with a `precedence` prop and expected the `href` prop to be a non-empty string but ecountered %s instead. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop ensure there is a non-empty string `href` prop as well, otherwise remove the `precedence` prop.',
+ getValueDescriptorExpectingObjectForWarning(href)
+ );
+ }
+ }
+ }
+
+ pushLinkImpl(target, props);
+ return null;
+ }
+
+ if (props.rel === "stylesheet") {
+ // This may hoistable as a Stylesheet Resource, otherwise it will emit in place
+ var key = getResourceKey(href);
if (
- insertionMode === SVG_MODE ||
- noscriptTagInScope ||
- props.itemProp != null ||
- typeof rel !== "string" ||
- typeof href !== "string" ||
- href === ""
+ typeof precedence !== "string" ||
+ props.disabled != null ||
+ props.onLoad ||
+ props.onError
) {
+ // This stylesheet is either not opted into Resource semantics or has conflicting properties which
+ // disqualify it for such. We can still create a preload resource to help it load faster on the
+ // client
{
- if (rel === "stylesheet" && typeof props.precedence === "string") {
- if (typeof href !== "string" || !href) {
+ if (typeof precedence === "string") {
+ if (props.disabled != null) {
error(
- 'React encountered a `` with a `precedence` prop and expected the `href` prop to be a non-empty string but ecountered %s instead. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop ensure there is a non-empty string `href` prop as well, otherwise remove the `precedence` prop.',
- getValueDescriptorExpectingObjectForWarning(href)
+ 'React encountered a `` with a `precedence` prop and a `disabled` prop. The presence of the `disabled` prop indicates an intent to manage the stylesheet active state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the `disabled` prop, otherwise remove the `precedence` prop.'
+ );
+ } else if (props.onLoad || props.onError) {
+ var propDescription =
+ props.onLoad && props.onError
+ ? "`onLoad` and `onError` props"
+ : props.onLoad
+ ? "`onLoad` prop"
+ : "`onError` prop";
+
+ error(
+ 'React encountered a `` with a `precedence` prop and %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.',
+ propDescription,
+ propDescription
);
}
}
}
- pushLinkImpl(target, props);
- return null;
- }
-
- if (props.rel === "stylesheet") {
- // This may hoistable as a Stylesheet Resource, otherwise it will emit in place
- var key = getResourceKey(href);
-
- if (
- typeof precedence !== "string" ||
- props.disabled != null ||
- props.onLoad ||
- props.onError
- ) {
- // This stylesheet is either not opted into Resource semantics or has conflicting properties which
- // disqualify it for such. We can still create a preload resource to help it load faster on the
- // client
- {
- if (typeof precedence === "string") {
- if (props.disabled != null) {
- error(
- 'React encountered a `` with a `precedence` prop and a `disabled` prop. The presence of the `disabled` prop indicates an intent to manage the stylesheet active state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the `disabled` prop, otherwise remove the `precedence` prop.'
- );
- } else if (props.onLoad || props.onError) {
- var propDescription =
- props.onLoad && props.onError
- ? "`onLoad` and `onError` props"
- : props.onLoad
- ? "`onLoad` prop"
- : "`onError` prop";
-
- error(
- 'React encountered a `` with a `precedence` prop and %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.',
- propDescription,
- propDescription
- );
- }
- }
- }
-
- return pushLinkImpl(target, props);
- } else {
- // This stylesheet refers to a Resource and we create a new one if necessary
- var styleQueue = renderState.styles.get(precedence);
- var hasKey = resumableState.styleResources.hasOwnProperty(key);
- var resourceState = hasKey
- ? resumableState.styleResources[key]
- : undefined;
-
- if (resourceState !== EXISTS) {
- // We are going to create this resource now so it is marked as Exists
- resumableState.styleResources[key] = EXISTS; // If this is the first time we've encountered this precedence we need
- // to create a StyleQueue
-
- if (!styleQueue) {
- styleQueue = {
- precedence: stringToChunk(escapeTextForBrowser(precedence)),
- rules: [],
- hrefs: [],
- sheets: new Map()
- };
- renderState.styles.set(precedence, styleQueue);
- }
-
- var resource = {
- state: PENDING$1,
- props: stylesheetPropsFromRawProps(props)
- };
-
- if (resourceState) {
- // When resourceState is truty it is a Preload state. We cast it for clarity
- var preloadState = resourceState;
-
- if (preloadState.length === 2) {
- adoptPreloadCredentials(resource.props, preloadState);
- }
-
- var preloadResource = renderState.preloads.stylesheets.get(key);
-
- if (preloadResource && preloadResource.length > 0) {
- // The Preload for this resource was created in this render pass and has not flushed yet so
- // we need to clear it to avoid it flushing.
- preloadResource.length = 0;
- } else {
- // Either the preload resource from this render already flushed in this render pass
- // or the preload flushed in a prior pass (prerender). In either case we need to mark
- // this resource as already having been preloaded.
- resource.state = PRELOADED;
- }
- } // We add the newly created resource to our StyleQueue and if necessary
- // track the resource with the currently rendering boundary
-
- styleQueue.sheets.set(key, resource);
-
- if (hoistableState) {
- hoistableState.stylesheets.add(resource);
- }
- } else {
- // We need to track whether this boundary should wait on this resource or not.
- // Typically this resource should always exist since we either had it or just created
- // it. However, it's possible when you resume that the style has already been emitted
- // and then it wouldn't be recreated in the RenderState and there's no need to track
- // it again since we should've hoisted it to the shell already.
- if (styleQueue) {
- var _resource = styleQueue.sheets.get(key);
-
- if (_resource) {
- if (hoistableState) {
- hoistableState.stylesheets.add(_resource);
- }
- }
- }
- }
-
- if (textEmbedded) {
- // This link follows text but we aren't writing a tag. while not as efficient as possible we need
- // to be safe and assume text will follow by inserting a textSeparator
- target.push(textSeparator);
- }
-
- return null;
- }
- } else if (props.onLoad || props.onError) {
- // When using load handlers we cannot hoist and need to emit links in place
return pushLinkImpl(target, props);
} else {
- // We can hoist this link so we may need to emit a text separator.
- // @TODO refactor text separators so we don't have to defensively add
- // them when we don't end up emitting a tag as a result of pushStartInstance
+ // This stylesheet refers to a Resource and we create a new one if necessary
+ var styleQueue = renderState.styles.get(precedence);
+ var hasKey = resumableState.styleResources.hasOwnProperty(key);
+ var resourceState = hasKey
+ ? resumableState.styleResources[key]
+ : undefined;
+
+ if (resourceState !== EXISTS) {
+ // We are going to create this resource now so it is marked as Exists
+ resumableState.styleResources[key] = EXISTS; // If this is the first time we've encountered this precedence we need
+ // to create a StyleQueue
+
+ if (!styleQueue) {
+ styleQueue = {
+ precedence: stringToChunk(escapeTextForBrowser(precedence)),
+ rules: [],
+ hrefs: [],
+ sheets: new Map()
+ };
+ renderState.styles.set(precedence, styleQueue);
+ }
+
+ var resource = {
+ state: PENDING$1,
+ props: stylesheetPropsFromRawProps(props)
+ };
+
+ if (resourceState) {
+ // When resourceState is truty it is a Preload state. We cast it for clarity
+ var preloadState = resourceState;
+
+ if (preloadState.length === 2) {
+ adoptPreloadCredentials(resource.props, preloadState);
+ }
+
+ var preloadResource = renderState.preloads.stylesheets.get(key);
+
+ if (preloadResource && preloadResource.length > 0) {
+ // The Preload for this resource was created in this render pass and has not flushed yet so
+ // we need to clear it to avoid it flushing.
+ preloadResource.length = 0;
+ } else {
+ // Either the preload resource from this render already flushed in this render pass
+ // or the preload flushed in a prior pass (prerender). In either case we need to mark
+ // this resource as already having been preloaded.
+ resource.state = PRELOADED;
+ }
+ } // We add the newly created resource to our StyleQueue and if necessary
+ // track the resource with the currently rendering boundary
+
+ styleQueue.sheets.set(key, resource);
+
+ if (hoistableState) {
+ hoistableState.stylesheets.add(resource);
+ }
+ } else {
+ // We need to track whether this boundary should wait on this resource or not.
+ // Typically this resource should always exist since we either had it or just created
+ // it. However, it's possible when you resume that the style has already been emitted
+ // and then it wouldn't be recreated in the RenderState and there's no need to track
+ // it again since we should've hoisted it to the shell already.
+ if (styleQueue) {
+ var _resource = styleQueue.sheets.get(key);
+
+ if (_resource) {
+ if (hoistableState) {
+ hoistableState.stylesheets.add(_resource);
+ }
+ }
+ }
+ }
+
if (textEmbedded) {
// This link follows text but we aren't writing a tag. while not as efficient as possible we need
// to be safe and assume text will follow by inserting a textSeparator
target.push(textSeparator);
}
- if (isFallback) {
- // Hoistable Elements for fallbacks are simply omitted. we don't want to emit them early
- // because they are likely superceded by primary content and we want to avoid needing to clean
- // them up when the primary content is ready. They are never hydrated on the client anyway because
- // boundaries in fallback are awaited or client render, in either case there is never hydration
- return null;
- } else {
- return pushLinkImpl(renderState.hoistableChunks, props);
- }
+ return null;
+ }
+ } else if (props.onLoad || props.onError) {
+ // When using load handlers we cannot hoist and need to emit links in place
+ return pushLinkImpl(target, props);
+ } else {
+ // We can hoist this link so we may need to emit a text separator.
+ // @TODO refactor text separators so we don't have to defensively add
+ // them when we don't end up emitting a tag as a result of pushStartInstance
+ if (textEmbedded) {
+ // This link follows text but we aren't writing a tag. while not as efficient as possible we need
+ // to be safe and assume text will follow by inserting a textSeparator
+ target.push(textSeparator);
+ }
+
+ if (isFallback) {
+ // Hoistable Elements for fallbacks are simply omitted. we don't want to emit them early
+ // because they are likely superceded by primary content and we want to avoid needing to clean
+ // them up when the primary content is ready. They are never hydrated on the client anyway because
+ // boundaries in fallback are awaited or client render, in either case there is never hydration
+ return null;
+ } else {
+ return pushLinkImpl(renderState.hoistableChunks, props);
}
}
}
@@ -4870,86 +4865,84 @@ if (__DEV__) {
}
}
- {
- var precedence = props.precedence;
- var href = props.href;
+ var precedence = props.precedence;
+ var href = props.href;
- if (
- insertionMode === SVG_MODE ||
- noscriptTagInScope ||
- props.itemProp != null ||
- typeof precedence !== "string" ||
- typeof href !== "string" ||
- href === ""
- ) {
- // This style tag is not able to be turned into a Style Resource
- return pushStyleImpl(target, props);
+ if (
+ insertionMode === SVG_MODE ||
+ noscriptTagInScope ||
+ props.itemProp != null ||
+ typeof precedence !== "string" ||
+ typeof href !== "string" ||
+ href === ""
+ ) {
+ // This style tag is not able to be turned into a Style Resource
+ return pushStyleImpl(target, props);
+ }
+
+ {
+ if (href.includes(" ")) {
+ error(
+ 'React expected the `href` prop for a