diff --git a/crates/next-core/src/next_config.rs b/crates/next-core/src/next_config.rs index 937e565c86e3e..29d625b90c097 100644 --- a/crates/next-core/src/next_config.rs +++ b/crates/next-core/src/next_config.rs @@ -864,7 +864,6 @@ pub struct ExperimentalConfig { trust_host_header: Option, url_imports: Option, - view_transition: Option, /// This option is to enable running the Webpack build in a worker thread /// (doesn't apply to Turbopack). webpack_build_worker: Option, @@ -1722,11 +1721,6 @@ impl NextConfig { Vc::cell(self.experimental.taint.unwrap_or(false)) } - #[turbo_tasks::function] - pub fn enable_view_transition(&self) -> Vc { - Vc::cell(self.experimental.view_transition.unwrap_or(false)) - } - #[turbo_tasks::function] pub fn enable_cache_components(&self) -> Vc { Vc::cell(self.experimental.cache_components.unwrap_or(false)) diff --git a/crates/next-core/src/next_import_map.rs b/crates/next-core/src/next_import_map.rs index c78a83b464818..7a088c6b1b298 100644 --- a/crates/next-core/src/next_import_map.rs +++ b/crates/next-core/src/next_import_map.rs @@ -127,14 +127,13 @@ pub async fn get_next_client_import_map( match &ty { ClientContextType::Pages { .. } => {} ClientContextType::App { app_dir } => { - let react_flavor = if *next_config.enable_ppr().await? - || *next_config.enable_taint().await? - || *next_config.enable_view_transition().await? - { - "-experimental" - } else { - "" - }; + // Keep in sync with file:///./../../../packages/next/src/lib/needs-experimental-react.ts + let react_flavor = + if *next_config.enable_ppr().await? || *next_config.enable_taint().await? { + "-experimental" + } else { + "" + }; import_map.insert_exact_alias( rcstr!("react"), @@ -833,12 +832,7 @@ async fn apply_vendored_react_aliases_server( ) -> Result<()> { let ppr = *next_config.enable_ppr().await?; let taint = *next_config.enable_taint().await?; - let view_transition = *next_config.enable_view_transition().await?; - let react_channel = if ppr || taint || view_transition { - "-experimental" - } else { - "" - }; + let react_channel = if ppr || taint { "-experimental" } else { "" }; let react_condition = if ty.should_use_react_server_condition() { "server" } else { diff --git a/docs/01-app/03-api-reference/05-config/01-next-config-js/viewTransition.mdx b/docs/01-app/03-api-reference/05-config/01-next-config-js/viewTransition.mdx index 37fd7619e0a45..ccbea80d46ee7 100644 --- a/docs/01-app/03-api-reference/05-config/01-next-config-js/viewTransition.mdx +++ b/docs/01-app/03-api-reference/05-config/01-next-config-js/viewTransition.mdx @@ -4,7 +4,7 @@ description: Enable ViewTransition API from React in App Router version: experimental --- -`viewTransition` is an experimental flag that enables the new experimental [View Transitions API](https://developer.mozilla.org/en-US/docs/Web/API/View_Transition_API) in React. This API allows you to leverage the native View Transitions browser API to create seamless transitions between UI states. +`viewTransition` is an experimental flag that enables the new [View Transitions API](https://developer.mozilla.org/en-US/docs/Web/API/View_Transition_API) in React. This API allows you to leverage the native View Transitions browser API to create seamless transitions between UI states. To enable this feature, you need to set the `viewTransition` property to `true` in your `next.config.js` file. @@ -19,19 +19,18 @@ const nextConfig = { module.exports = nextConfig ``` -> Important Notice: This feature is not developed or maintained by the Next.js team — it is an experimental API from the React team. It is still in **early stages** and **not recommended for production use**. The implementation is still being iterated on, and its behavior may change in future React releases. -> Enabling this feature requires understanding the experimental nature of the API. To fully grasp its behavior, refer to the [React pull request](https://github.com/facebook/react/pull/31975) and related discussions. +> Important Notice: The `` Component is already available in React's Canary release channel. +> `experimental.viewTransition` is only required to enable deeper integration with Next.js features e.g. automatically +> [adding Transition types](https://react.dev/reference/react/addTransitionType) for navigations. Next.js specific transition types are not implemented yet. ## Usage -Once enabled, you can import the `ViewTransition` component from React in your application: +You can import the [`` Component](https://react.dev/reference/react/ViewTransition) from React in your application: ```jsx -import { unstable_ViewTransition as ViewTransition } from 'react' +import { ViewTransition } from 'react' ``` -However, documentation and examples are currently limited, and you will need to refer directly to React’s source code and discussions to understand how this works. - ### Live Demo Check out our [Next.js View Transition Demo](https://view-transition-example.vercel.app) to see this feature in action. diff --git a/package.json b/package.json index d0730b4cd0873..4bafb99967612 100644 --- a/package.json +++ b/package.json @@ -163,8 +163,8 @@ "@types/jest": "29.5.5", "@types/node": "20.17.6", "@types/node-fetch": "2.6.1", - "@types/react": "19.1.16", - "@types/react-dom": "19.1.10", + "@types/react": "19.2.2", + "@types/react-dom": "19.2.1", "@types/relay-runtime": "14.1.13", "@types/string-hash": "1.1.1", "@types/trusted-types": "2.0.3", @@ -199,7 +199,7 @@ "eslint-plugin-jsdoc": "48.0.4", "eslint-plugin-mdx": "3.1.5", "eslint-plugin-react": "7.35.0", - "eslint-plugin-react-hooks": "0.0.0-experimental-c7862584-20251006", + "eslint-plugin-react-hooks": "0.0.0-experimental-a4eb2dfa-20251006", "eslint-v8": "npm:eslint@^8.57.0", "event-stream": "4.0.1", "execa": "2.0.3", @@ -259,16 +259,16 @@ "pretty-ms": "7.0.0", "random-seed": "0.3.0", "react": "19.0.0", - "react-builtin": "npm:react@19.3.0-canary-c7862584-20251006", + "react-builtin": "npm:react@19.3.0-canary-a4eb2dfa-20251006", "react-dom": "19.0.0", - "react-dom-builtin": "npm:react-dom@19.3.0-canary-c7862584-20251006", - "react-dom-experimental-builtin": "npm:react-dom@0.0.0-experimental-c7862584-20251006", - "react-experimental-builtin": "npm:react@0.0.0-experimental-c7862584-20251006", - "react-is-builtin": "npm:react-is@19.3.0-canary-c7862584-20251006", - "react-server-dom-turbopack": "19.3.0-canary-c7862584-20251006", - "react-server-dom-turbopack-experimental": "npm:react-server-dom-turbopack@0.0.0-experimental-c7862584-20251006", - "react-server-dom-webpack": "19.3.0-canary-c7862584-20251006", - "react-server-dom-webpack-experimental": "npm:react-server-dom-webpack@0.0.0-experimental-c7862584-20251006", + "react-dom-builtin": "npm:react-dom@19.3.0-canary-a4eb2dfa-20251006", + "react-dom-experimental-builtin": "npm:react-dom@0.0.0-experimental-a4eb2dfa-20251006", + "react-experimental-builtin": "npm:react@0.0.0-experimental-a4eb2dfa-20251006", + "react-is-builtin": "npm:react-is@19.3.0-canary-a4eb2dfa-20251006", + "react-server-dom-turbopack": "19.3.0-canary-a4eb2dfa-20251006", + "react-server-dom-turbopack-experimental": "npm:react-server-dom-turbopack@0.0.0-experimental-a4eb2dfa-20251006", + "react-server-dom-webpack": "19.3.0-canary-a4eb2dfa-20251006", + "react-server-dom-webpack-experimental": "npm:react-server-dom-webpack@0.0.0-experimental-a4eb2dfa-20251006", "react-ssr-prepass": "1.0.8", "react-virtualized": "9.22.3", "relay-compiler": "13.0.2", @@ -278,8 +278,8 @@ "resolve-from": "5.0.0", "sass": "1.54.0", "satori": "0.15.2", - "scheduler-builtin": "npm:scheduler@0.28.0-canary-c7862584-20251006", - "scheduler-experimental-builtin": "npm:scheduler@0.0.0-experimental-c7862584-20251006", + "scheduler-builtin": "npm:scheduler@0.28.0-canary-a4eb2dfa-20251006", + "scheduler-experimental-builtin": "npm:scheduler@0.0.0-experimental-a4eb2dfa-20251006", "seedrandom": "3.0.5", "semver": "7.3.7", "serve-handler": "6.1.6", @@ -319,14 +319,14 @@ "@babel/parser": "7.27.0", "@babel/types": "7.27.0", "@babel/traverse": "7.27.0", - "@types/react": "19.1.16", - "@types/react-dom": "19.1.10", + "@types/react": "19.2.2", + "@types/react-dom": "19.2.1", "@types/retry": "0.12.0", "jest-snapshot": "30.0.0-alpha.6", - "react": "19.3.0-canary-c7862584-20251006", - "react-dom": "19.3.0-canary-c7862584-20251006", - "react-is": "19.3.0-canary-c7862584-20251006", - "scheduler": "0.28.0-canary-c7862584-20251006" + "react": "19.3.0-canary-a4eb2dfa-20251006", + "react-dom": "19.3.0-canary-a4eb2dfa-20251006", + "react-is": "19.3.0-canary-a4eb2dfa-20251006", + "scheduler": "0.28.0-canary-a4eb2dfa-20251006" }, "packageExtensions": { "eslint-plugin-react-hooks@0.0.0-experimental-6de32a5a-20250822": { 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 3ac8eeb1ec2e5..08a970dcd24c3 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 @@ -31872,12 +31872,10 @@ ? parentHostFiber : Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC; }; - FragmentInstance.prototype.experimental_scrollIntoView = function ( - alignToTop - ) { + FragmentInstance.prototype.scrollIntoView = function (alignToTop) { if ("object" === typeof alignToTop) throw Error( - "FragmentInstance.experimental_scrollIntoView() does not support scrollIntoViewOptions. Use the alignToTop boolean instead." + "FragmentInstance.scrollIntoView() does not support scrollIntoViewOptions. Use the alignToTop boolean instead." ); var children = []; traverseVisibleHostChildren( @@ -32342,11 +32340,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c7862584-20251006" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-a4eb2dfa-20251006" !== 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.3.0-experimental-c7862584-20251006\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-a4eb2dfa-20251006\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -32383,10 +32381,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.3.0-experimental-c7862584-20251006", + version: "19.3.0-experimental-a4eb2dfa-20251006", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-c7862584-20251006" + reconcilerVersion: "19.3.0-experimental-a4eb2dfa-20251006" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -32534,7 +32532,7 @@ listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; - exports.version = "19.3.0-experimental-c7862584-20251006"; + exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; "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 50269d5fdc938..7b5232ac1052d 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 @@ -17674,7 +17674,7 @@ function validateDocumentPositionWithFiberTree( fragmentFiber) : !1; } -FragmentInstance.prototype.experimental_scrollIntoView = function (alignToTop) { +FragmentInstance.prototype.scrollIntoView = function (alignToTop) { if ("object" === typeof alignToTop) throw Error(formatProdErrorMessage(566)); var children = []; traverseVisibleHostChildren( @@ -19570,14 +19570,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2217 = React.version; if ( - "19.3.0-experimental-c7862584-20251006" !== + "19.3.0-experimental-a4eb2dfa-20251006" !== isomorphicReactPackageVersion$jscomp$inline_2217 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2217, - "19.3.0-experimental-c7862584-20251006" + "19.3.0-experimental-a4eb2dfa-20251006" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -19599,10 +19599,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2914 = { bundleType: 0, - version: "19.3.0-experimental-c7862584-20251006", + version: "19.3.0-experimental-a4eb2dfa-20251006", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-c7862584-20251006" + reconcilerVersion: "19.3.0-experimental-a4eb2dfa-20251006" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2915 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -19709,4 +19709,4 @@ exports.hydrateRoot = function (container, initialChildren, options) { listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; -exports.version = "19.3.0-experimental-c7862584-20251006"; +exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; 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 fe9a84d43af13..a4d3e6bf6377a 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 @@ -31924,12 +31924,10 @@ ? parentHostFiber : Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC; }; - FragmentInstance.prototype.experimental_scrollIntoView = function ( - alignToTop - ) { + FragmentInstance.prototype.scrollIntoView = function (alignToTop) { if ("object" === typeof alignToTop) throw Error( - "FragmentInstance.experimental_scrollIntoView() does not support scrollIntoViewOptions. Use the alignToTop boolean instead." + "FragmentInstance.scrollIntoView() does not support scrollIntoViewOptions. Use the alignToTop boolean instead." ); var children = []; traverseVisibleHostChildren( @@ -32394,11 +32392,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c7862584-20251006" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-a4eb2dfa-20251006" !== 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.3.0-experimental-c7862584-20251006\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-a4eb2dfa-20251006\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -32435,10 +32433,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.3.0-experimental-c7862584-20251006", + version: "19.3.0-experimental-a4eb2dfa-20251006", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-c7862584-20251006" + reconcilerVersion: "19.3.0-experimental-a4eb2dfa-20251006" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -32916,7 +32914,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.3.0-experimental-c7862584-20251006"; + exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; "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 ebf08e07af2b8..445ae9bf212f6 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 @@ -19711,7 +19711,7 @@ function validateDocumentPositionWithFiberTree( fragmentFiber) : !1; } -FragmentInstance.prototype.experimental_scrollIntoView = function (alignToTop) { +FragmentInstance.prototype.scrollIntoView = function (alignToTop) { if ("object" === typeof alignToTop) throw Error(formatProdErrorMessage(566)); var children = []; traverseVisibleHostChildren( @@ -21624,14 +21624,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2513 = React.version; if ( - "19.3.0-experimental-c7862584-20251006" !== + "19.3.0-experimental-a4eb2dfa-20251006" !== isomorphicReactPackageVersion$jscomp$inline_2513 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2513, - "19.3.0-experimental-c7862584-20251006" + "19.3.0-experimental-a4eb2dfa-20251006" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -21653,10 +21653,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_3223 = { bundleType: 0, - version: "19.3.0-experimental-c7862584-20251006", + version: "19.3.0-experimental-a4eb2dfa-20251006", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-c7862584-20251006" + reconcilerVersion: "19.3.0-experimental-a4eb2dfa-20251006" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_3224 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -21924,7 +21924,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.3.0-experimental-c7862584-20251006"; +exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; "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 f3b3aa1c5dbf3..3da9fe63589ee 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 @@ -10544,5 +10544,5 @@ '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.3.0-experimental-c7862584-20251006"; + exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.js index c518c90c23304..e5f35ff9e8bde 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.js @@ -7157,4 +7157,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.3.0-experimental-c7862584-20251006"; +exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.development.js index 63d8f9a7dd17a..a9db5edc5e8a0 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.development.js @@ -10544,5 +10544,5 @@ '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 "renderToPipeableStream" which supports Suspense on the server' ); }; - exports.version = "19.3.0-experimental-c7862584-20251006"; + exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.production.js index 9599babead156..8aa3dd8a67223 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.production.js @@ -7260,4 +7260,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 "renderToPipeableStream" which supports Suspense on the server' ); }; -exports.version = "19.3.0-experimental-c7862584-20251006"; +exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.development.js index dc34f01746541..59230bf971c54 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.development.js @@ -9537,11 +9537,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c7862584-20251006" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-a4eb2dfa-20251006" !== 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.3.0-experimental-c7862584-20251006\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-a4eb2dfa-20251006\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react-experimental"), @@ -11365,5 +11365,5 @@ startWork(request); }); }; - exports.version = "19.3.0-experimental-c7862584-20251006"; + exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.production.js index f11267b6a9557..f250cdda991ca 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.production.js @@ -7828,12 +7828,12 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c7862584-20251006" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-a4eb2dfa-20251006" !== isomorphicReactPackageVersion) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion, - "19.3.0-experimental-c7862584-20251006" + "19.3.0-experimental-a4eb2dfa-20251006" ) ); } @@ -8088,4 +8088,4 @@ exports.resumeAndPrerender = function (children, postponedState, options) { startWork(request); }); }; -exports.version = "19.3.0-experimental-c7862584-20251006"; +exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.bun.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.bun.production.js index a5deaa6145850..1c61ad3b99f9e 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.bun.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.bun.production.js @@ -7316,13 +7316,13 @@ function addToReplayParent(node, parentKeyPath, trackedPostpones) { } var isomorphicReactPackageVersion$jscomp$inline_871 = React.version; if ( - "19.3.0-experimental-c7862584-20251006" !== + "19.3.0-experimental-a4eb2dfa-20251006" !== isomorphicReactPackageVersion$jscomp$inline_871 ) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion$jscomp$inline_871 + - "\n - react-dom: 19.3.0-experimental-c7862584-20251006\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-a4eb2dfa-20251006\nLearn more: https://react.dev/warnings/version-mismatch") ); exports.renderToReadableStream = function (children, options) { return new Promise(function (resolve, reject) { @@ -7413,4 +7413,4 @@ exports.renderToReadableStream = function (children, options) { startWork(request); }); }; -exports.version = "19.3.0-experimental-c7862584-20251006"; +exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js index 99dc38c914119..adf75e76b223d 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js @@ -9566,11 +9566,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c7862584-20251006" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-a4eb2dfa-20251006" !== 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.3.0-experimental-c7862584-20251006\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-a4eb2dfa-20251006\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react-experimental"), @@ -11390,5 +11390,5 @@ startWork(request); }); }; - exports.version = "19.3.0-experimental-c7862584-20251006"; + exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js index b3fcdae915bce..da493557520c3 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js @@ -7946,11 +7946,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c7862584-20251006" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-a4eb2dfa-20251006" !== 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.3.0-experimental-c7862584-20251006\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-a4eb2dfa-20251006\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -8204,4 +8204,4 @@ exports.resumeAndPrerender = function (children, postponedState, options) { startWork(request); }); }; -exports.version = "19.3.0-experimental-c7862584-20251006"; +exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js index 523113baf9ee3..79feea82776ec 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js @@ -9426,11 +9426,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c7862584-20251006" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-a4eb2dfa-20251006" !== 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.3.0-experimental-c7862584-20251006\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-a4eb2dfa-20251006\nLearn more: https://react.dev/warnings/version-mismatch") ); } function createDrainHandler(destination, request) { @@ -11560,5 +11560,5 @@ } }; }; - exports.version = "19.3.0-experimental-c7862584-20251006"; + exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js index 2733843228f43..77c4a8e5af129 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js @@ -7825,11 +7825,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c7862584-20251006" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-a4eb2dfa-20251006" !== 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.3.0-experimental-c7862584-20251006\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-a4eb2dfa-20251006\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -8387,4 +8387,4 @@ exports.resumeToPipeableStream = function (children, postponedState, options) { } }; }; -exports.version = "19.3.0-experimental-c7862584-20251006"; +exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.development.js index 95bb7beed979f..6c22b2c7215e2 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.development.js @@ -32193,12 +32193,10 @@ ? parentHostFiber : Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC; }; - FragmentInstance.prototype.experimental_scrollIntoView = function ( - alignToTop - ) { + FragmentInstance.prototype.scrollIntoView = function (alignToTop) { if ("object" === typeof alignToTop) throw Error( - "FragmentInstance.experimental_scrollIntoView() does not support scrollIntoViewOptions. Use the alignToTop boolean instead." + "FragmentInstance.scrollIntoView() does not support scrollIntoViewOptions. Use the alignToTop boolean instead." ); var children = []; traverseVisibleHostChildren( @@ -32663,11 +32661,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-experimental-c7862584-20251006" !== isomorphicReactPackageVersion) + if ("19.3.0-experimental-a4eb2dfa-20251006" !== 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.3.0-experimental-c7862584-20251006\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-experimental-a4eb2dfa-20251006\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -32704,10 +32702,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.3.0-experimental-c7862584-20251006", + version: "19.3.0-experimental-a4eb2dfa-20251006", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-c7862584-20251006" + reconcilerVersion: "19.3.0-experimental-a4eb2dfa-20251006" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -33021,5 +33019,5 @@ } }; }; - exports.version = "19.3.0-experimental-c7862584-20251006"; + exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.production.js index e3242106009b6..0890442257aeb 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.production.js @@ -17946,7 +17946,7 @@ function validateDocumentPositionWithFiberTree( fragmentFiber) : !1; } -FragmentInstance.prototype.experimental_scrollIntoView = function (alignToTop) { +FragmentInstance.prototype.scrollIntoView = function (alignToTop) { if ("object" === typeof alignToTop) throw Error(formatProdErrorMessage(566)); var children = []; traverseVisibleHostChildren( @@ -19886,14 +19886,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2246 = React.version; if ( - "19.3.0-experimental-c7862584-20251006" !== + "19.3.0-experimental-a4eb2dfa-20251006" !== isomorphicReactPackageVersion$jscomp$inline_2246 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2246, - "19.3.0-experimental-c7862584-20251006" + "19.3.0-experimental-a4eb2dfa-20251006" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -19915,10 +19915,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2948 = { bundleType: 0, - version: "19.3.0-experimental-c7862584-20251006", + version: "19.3.0-experimental-a4eb2dfa-20251006", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-experimental-c7862584-20251006" + reconcilerVersion: "19.3.0-experimental-a4eb2dfa-20251006" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2949 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -20176,4 +20176,4 @@ exports.observeVisibleRects = function ( } }; }; -exports.version = "19.3.0-experimental-c7862584-20251006"; +exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.development.js index 5b19883f6a5cc..57d4d7641eea3 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.development.js @@ -416,7 +416,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.3.0-experimental-c7862584-20251006"; + exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; "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.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.production.js index ae6fd41f35fdf..f65ff60782fbd 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.production.js @@ -207,4 +207,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.3.0-experimental-c7862584-20251006"; +exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.development.js index ec4d2aff5052a..fbc22f987b4bd 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.development.js @@ -336,5 +336,5 @@ })) : Internals.d.m(href)); }; - exports.version = "19.3.0-experimental-c7862584-20251006"; + exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.production.js index bff292cf4583c..69d605823e643 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.production.js @@ -149,4 +149,4 @@ exports.preloadModule = function (href, options) { }); } else Internals.d.m(href); }; -exports.version = "19.3.0-experimental-c7862584-20251006"; +exports.version = "19.3.0-experimental-a4eb2dfa-20251006"; diff --git a/packages/next/src/compiled/react-dom-experimental/package.json b/packages/next/src/compiled/react-dom-experimental/package.json index 40915bd61ef6d..806e0dc4468a7 100644 --- a/packages/next/src/compiled/react-dom-experimental/package.json +++ b/packages/next/src/compiled/react-dom-experimental/package.json @@ -72,10 +72,10 @@ "./package.json": "./package.json" }, "dependencies": { - "scheduler": "0.0.0-experimental-c7862584-20251006" + "scheduler": "0.0.0-experimental-a4eb2dfa-20251006" }, "peerDependencies": { - "react": "0.0.0-experimental-c7862584-20251006" + "react": "0.0.0-experimental-a4eb2dfa-20251006" }, "browser": { "./server.js": "./server.browser.js", diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-client.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-client.development.js index 142be8e68c2a9..7b3ce7df51dbe 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-client.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-client.development.js @@ -246,6 +246,111 @@ } return null; } + function traverseVisibleHostChildren( + child, + searchWithinHosts, + fn, + a, + b, + c + ) { + for (; null !== child; ) { + if ( + (5 === child.tag && fn(child, a, b, c)) || + ((22 !== child.tag || null === child.memoizedState) && + (searchWithinHosts || 5 !== child.tag) && + traverseVisibleHostChildren( + child.child, + searchWithinHosts, + fn, + a, + b, + c + )) + ) + return !0; + child = child.sibling; + } + return !1; + } + function getFragmentParentHostFiber(fiber) { + for (fiber = fiber.return; null !== fiber; ) { + if (3 === fiber.tag || 5 === fiber.tag) return fiber; + fiber = fiber.return; + } + return null; + } + function findFragmentInstanceSiblings(result, self, child) { + for ( + var foundSelf = + 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : !1; + null !== child; + + ) { + if (child === self) + if (((foundSelf = !0), child.sibling)) child = child.sibling; + else return !0; + if (5 === child.tag) { + if (foundSelf) return (result[1] = child), !0; + result[0] = child; + } else if ( + (22 !== child.tag || null === child.memoizedState) && + findFragmentInstanceSiblings(result, self, child.child, foundSelf) + ) + return !0; + child = child.sibling; + } + return !1; + } + function getInstanceFromHostFiber(fiber) { + switch (fiber.tag) { + case 5: + return fiber.stateNode; + case 3: + return fiber.stateNode.containerInfo; + default: + throw Error("Expected to find a host node. This is a bug in React."); + } + } + function findNextSibling(child) { + searchTarget = child; + return !0; + } + function isFiberPrecedingCheck(child, target, boundary) { + return child === boundary + ? !0 + : child === target + ? ((searchTarget = child), !0) + : !1; + } + function isFiberFollowingCheck(child, target, boundary) { + return child === boundary + ? ((searchBoundary = child), !1) + : child === target + ? (null !== searchBoundary && (searchTarget = child), !0) + : !1; + } + function getParentForFragmentAncestors(inst) { + if (null === inst) return null; + do inst = null === inst ? null : inst.return; + while (inst && 5 !== inst.tag && 27 !== inst.tag && 3 !== inst.tag); + return inst ? inst : null; + } + function getLowestCommonAncestor(instA, instB, getParent) { + for (var depthA = 0, tempA = instA; tempA; tempA = getParent(tempA)) + depthA++; + tempA = 0; + for (var tempB = instB; tempB; tempB = getParent(tempB)) tempA++; + for (; 0 < depthA - tempA; ) (instA = getParent(instA)), depthA--; + for (; 0 < tempA - depthA; ) (instB = getParent(instB)), tempA--; + for (; depthA--; ) { + if (instA === instB || (null !== instB && instA === instB.alternate)) + return instA; + instA = getParent(instA); + instB = getParent(instB); + } + return null; + } function getIteratorFn(maybeIterable) { if (null === maybeIterable || "object" !== typeof maybeIterable) return null; @@ -274,6 +379,8 @@ return "SuspenseList"; case REACT_ACTIVITY_TYPE: return "Activity"; + case REACT_VIEW_TRANSITION_TYPE: + return "ViewTransition"; } if ("object" === typeof type) switch ( @@ -367,6 +474,8 @@ return "SuspenseList"; case 25: return "TracingMarker"; + case 30: + return "ViewTransition"; case 1: case 0: case 14: @@ -748,6 +857,8 @@ return describeNativeComponentFrame(fiber.type, !0); case 31: return describeBuiltInComponentFrame("Activity"); + case 30: + return describeBuiltInComponentFrame("ViewTransition"); default: return ""; } @@ -825,6 +936,8 @@ info += describeBuiltInComponentFrame("Activity"); break; case 30: + info += describeBuiltInComponentFrame("ViewTransition"); + break; case 0: case 15: case 1: @@ -1444,6 +1557,11 @@ console.error("Invalid attribute name: `%s`", attributeName); return !1; } + function pushMutationContext() { + var prev = viewTransitionMutationContext; + viewTransitionMutationContext = !1; + return prev; + } function getValueForAttributeOnCustomComponent(node, name, expected) { if (isAttributeNameSafe(name)) { if (!node.hasAttribute(name)) { @@ -2802,12 +2920,14 @@ ? node.setProperty(styleName, "") : "float" === styleName ? (node.cssFloat = "") - : (node[styleName] = "")); + : (node[styleName] = ""), + (viewTransitionMutationContext = !0)); for (var _styleName in styles) (_key2 = styles[_styleName]), styles.hasOwnProperty(_styleName) && prevStyles[_styleName] !== _key2 && - setValueForStyle(node, _styleName, _key2); + (setValueForStyle(node, _styleName, _key2), + (viewTransitionMutationContext = !0)); } else for (expandedUpdates in styles) styles.hasOwnProperty(expandedUpdates) && @@ -3755,6 +3875,40 @@ topLevelEventsToReactNames.set(domEventName, reactName); registerTwoPhaseEvent(reactName, [domEventName]); } + function getViewTransitionName(props, instance) { + if (null != props.name && "auto" !== props.name) return props.name; + if (null !== instance.autoName) return instance.autoName; + props = pendingEffectsRoot.identifierPrefix; + var globalClientId = globalClientIdCounter$1++; + props = "_" + props + "t_" + globalClientId.toString(32) + "_"; + return (instance.autoName = props); + } + function getClassNameByType(classByType) { + if (null == classByType || "string" === typeof classByType) + return classByType; + var className = null, + activeTypes = pendingTransitionTypes; + if (null !== activeTypes) + for (var i = 0; i < activeTypes.length; i++) { + var match = classByType[activeTypes[i]]; + if (null != match) { + if ("none" === match) return "none"; + className = null == className ? match : className + (" " + match); + } + } + return null == className ? classByType.default : className; + } + function getViewTransitionClassName(defaultClass, eventClass) { + defaultClass = getClassNameByType(defaultClass); + eventClass = getClassNameByType(eventClass); + return null == eventClass + ? "auto" === defaultClass + ? null + : defaultClass + : "auto" === eventClass + ? null + : eventClass; + } function getArrayKind(array) { for ( var kind = EMPTY_ARRAY, i = 0; @@ -4584,6 +4738,42 @@ : performance.measure("Errored", startTime); } } + function logCommitPhase( + startTime, + endTime, + errors, + abortedViewTransition, + debugTask + ) { + null !== errors + ? logCommitErrored(startTime, endTime, errors, !1, debugTask) + : !supportsUserTiming || + endTime <= startTime || + (debugTask + ? debugTask.run( + console.timeStamp.bind( + console, + abortedViewTransition + ? "Commit Interrupted View Transition" + : "Commit", + startTime, + endTime, + currentTrack, + LANES_TRACK_GROUP, + abortedViewTransition ? "error" : "secondary-dark" + ) + ) + : console.timeStamp( + abortedViewTransition + ? "Commit Interrupted View Transition" + : "Commit", + startTime, + endTime, + currentTrack, + LANES_TRACK_GROUP, + abortedViewTransition ? "error" : "secondary-dark" + )); + } function logAnimatingPhase(startTime, endTime, debugTask) { !supportsUserTiming || endTime <= startTime || @@ -5036,6 +5226,21 @@ (key.lanes = lanes), key ); + case REACT_LEGACY_HIDDEN_TYPE: + case REACT_VIEW_TRANSITION_TYPE: + return ( + (type = mode | SuspenseyImagesMode), + (key = createFiber(30, pendingProps, key, type)), + (key.elementType = REACT_VIEW_TRANSITION_TYPE), + (key.lanes = lanes), + (key.stateNode = { + autoName: null, + paired: null, + clones: null, + ref: null + }), + key + ); default: if ("object" === typeof type && null !== type) switch (type.$$typeof) { @@ -5057,34 +5262,34 @@ 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 ? getComponentNameFromOwner(owner) : null) && - (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; } @@ -5742,6 +5947,21 @@ cache.controller.abort(); }); } + function queueTransitionTypes(root, transitionTypes) { + if (0 !== (root.pendingLanes & 4194048)) { + var queued = root.transitionTypes; + null === queued && (queued = root.transitionTypes = []); + for (root = 0; root < transitionTypes.length; root++) { + var transitionType = transitionTypes[root]; + -1 === queued.indexOf(transitionType) && queued.push(transitionType); + } + } + } + function claimQueuedTransitionTypes(root) { + var claimed = root.transitionTypes; + root.transitionTypes = null; + return claimed; + } function startUpdateTimerByLane(lane, method, fiber) { if (0 !== (lane & 127)) 0 > blockingUpdateTime && @@ -5923,6 +6143,7 @@ if ( 0 === --currentEntangledPendingCount && (-1 < transitionUpdateTime || (transitionStartTime = -1.1), + (entangledTransitionTypes = null), null !== currentEntangledListeners) ) { null !== currentEntangledActionThenable && @@ -6125,7 +6346,7 @@ function validateFragmentProps(element, fiber, returnFiber) { for (var keys = Object.keys(element.props), i = 0; i < keys.length; i++) { var key = keys[i]; - if ("children" !== key && "key" !== key) { + if ("children" !== key && "key" !== key && "ref" !== key) { null === fiber && ((fiber = createFiberFromElement(element, returnFiber.mode, 0)), (fiber._debugInfo = currentDebugInfo), @@ -6134,7 +6355,7 @@ fiber, function (erroredKey) { console.error( - "Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", + "Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key`, `ref`, and `children` props.", erroredKey ); }, @@ -6313,6 +6534,7 @@ lanes, element.key )), + coerceRef(current, element), validateFragmentProps(element, current, returnFiber), current ); @@ -6913,6 +7135,7 @@ null !== newChild && newChild.type === REACT_FRAGMENT_TYPE && null === newChild.key && + void 0 === newChild.props.ref && (validateFragmentProps(newChild, null, returnFiber), (newChild = newChild.props.children)); if ("object" === typeof newChild && null !== newChild) { @@ -6933,6 +7156,7 @@ currentFirstChild, newChild.props.children ); + coerceRef(lanes, newChild); lanes.return = returnFiber; lanes._debugOwner = newChild._owner; lanes._debugInfo = currentDebugInfo; @@ -6975,6 +7199,7 @@ lanes, newChild.key )), + coerceRef(lanes, newChild), (lanes.return = returnFiber), (lanes._debugOwner = returnFiber), (lanes._debugTask = returnFiber._debugTask), @@ -8438,6 +8663,8 @@ if (node.isTransition) { var prevTransition = ReactSharedInternals.T, currentTransition = {}; + currentTransition.types = + null !== prevTransition ? prevTransition.types : null; currentTransition._updatedFibers = new Set(); ReactSharedInternals.T = currentTransition; try { @@ -8941,6 +9168,8 @@ : ContinuousEventPriority; var prevTransition = ReactSharedInternals.T, currentTransition = {}; + currentTransition.types = + null !== prevTransition ? prevTransition.types : null; currentTransition._updatedFibers = new Set(); ReactSharedInternals.T = currentTransition; dispatchOptimisticSetState(fiber, !1, queue, pendingState); @@ -10874,24 +11103,24 @@ return current; } function updateSuspenseComponent(current, workInProgress, renderLanes) { - var JSCompiler_object_inline_digest_2724; - var JSCompiler_object_inline_stack_2725 = workInProgress.pendingProps; + var JSCompiler_object_inline_digest_2976; + var JSCompiler_object_inline_stack_2977 = workInProgress.pendingProps; shouldSuspendImpl(workInProgress) && (workInProgress.flags |= 128); - var JSCompiler_object_inline_message_2723 = !1; + var JSCompiler_object_inline_message_2975 = !1; var didSuspend = 0 !== (workInProgress.flags & 128); - (JSCompiler_object_inline_digest_2724 = didSuspend) || - (JSCompiler_object_inline_digest_2724 = + (JSCompiler_object_inline_digest_2976 = didSuspend) || + (JSCompiler_object_inline_digest_2976 = null !== current && null === current.memoizedState ? !1 : 0 !== (suspenseStackCursor.current & ForceSuspenseFallback)); - JSCompiler_object_inline_digest_2724 && - ((JSCompiler_object_inline_message_2723 = !0), + JSCompiler_object_inline_digest_2976 && + ((JSCompiler_object_inline_message_2975 = !0), (workInProgress.flags &= -129)); - JSCompiler_object_inline_digest_2724 = 0 !== (workInProgress.flags & 32); + JSCompiler_object_inline_digest_2976 = 0 !== (workInProgress.flags & 32); workInProgress.flags &= -33; if (null === current) { if (isHydrating) { - JSCompiler_object_inline_message_2723 + JSCompiler_object_inline_message_2975 ? pushPrimaryTreeSuspenseHandler(workInProgress) : reuseSuspenseHandlerOnStack(workInProgress); (current = nextHydratableInstance) @@ -10904,18 +11133,18 @@ ? renderLanes : null), null !== renderLanes && - ((JSCompiler_object_inline_digest_2724 = { + ((JSCompiler_object_inline_digest_2976 = { dehydrated: renderLanes, treeContext: getSuspendedTreeContext(), retryLane: 536870912, hydrationErrors: null }), (workInProgress.memoizedState = - JSCompiler_object_inline_digest_2724), - (JSCompiler_object_inline_digest_2724 = + JSCompiler_object_inline_digest_2976), + (JSCompiler_object_inline_digest_2976 = createFiberFromDehydratedFragment(renderLanes)), - (JSCompiler_object_inline_digest_2724.return = workInProgress), - (workInProgress.child = JSCompiler_object_inline_digest_2724), + (JSCompiler_object_inline_digest_2976.return = workInProgress), + (workInProgress.child = JSCompiler_object_inline_digest_2976), (hydrationParentFiber = workInProgress), (nextHydratableInstance = null))) : (renderLanes = null); @@ -10929,39 +11158,39 @@ : (workInProgress.lanes = 536870912); return null; } - var nextPrimaryChildren = JSCompiler_object_inline_stack_2725.children; - JSCompiler_object_inline_stack_2725 = - JSCompiler_object_inline_stack_2725.fallback; - if (JSCompiler_object_inline_message_2723) { + var nextPrimaryChildren = JSCompiler_object_inline_stack_2977.children; + JSCompiler_object_inline_stack_2977 = + JSCompiler_object_inline_stack_2977.fallback; + if (JSCompiler_object_inline_message_2975) { reuseSuspenseHandlerOnStack(workInProgress); var mode = workInProgress.mode; nextPrimaryChildren = mountWorkInProgressOffscreenFiber( { mode: "hidden", children: nextPrimaryChildren }, mode ); - JSCompiler_object_inline_stack_2725 = createFiberFromFragment( - JSCompiler_object_inline_stack_2725, + JSCompiler_object_inline_stack_2977 = createFiberFromFragment( + JSCompiler_object_inline_stack_2977, mode, renderLanes, null ); nextPrimaryChildren.return = workInProgress; - JSCompiler_object_inline_stack_2725.return = workInProgress; - nextPrimaryChildren.sibling = JSCompiler_object_inline_stack_2725; + JSCompiler_object_inline_stack_2977.return = workInProgress; + nextPrimaryChildren.sibling = JSCompiler_object_inline_stack_2977; workInProgress.child = nextPrimaryChildren; - JSCompiler_object_inline_stack_2725 = workInProgress.child; - JSCompiler_object_inline_stack_2725.memoizedState = + JSCompiler_object_inline_stack_2977 = workInProgress.child; + JSCompiler_object_inline_stack_2977.memoizedState = mountSuspenseOffscreenState(renderLanes); - JSCompiler_object_inline_stack_2725.childLanes = + JSCompiler_object_inline_stack_2977.childLanes = getRemainingWorkInPrimaryTree( current, - JSCompiler_object_inline_digest_2724, + JSCompiler_object_inline_digest_2976, renderLanes ); workInProgress.memoizedState = SUSPENDED_MARKER; return bailoutOffscreenComponent( null, - JSCompiler_object_inline_stack_2725 + JSCompiler_object_inline_stack_2977 ); } pushPrimaryTreeSuspenseHandler(workInProgress); @@ -10972,8 +11201,8 @@ } var prevState = current.memoizedState; if (null !== prevState) { - var JSCompiler_object_inline_componentStack_2726 = prevState.dehydrated; - if (null !== JSCompiler_object_inline_componentStack_2726) { + var JSCompiler_object_inline_componentStack_2978 = prevState.dehydrated; + if (null !== JSCompiler_object_inline_componentStack_2978) { if (didSuspend) workInProgress.flags & 256 ? (pushPrimaryTreeSuspenseHandler(workInProgress), @@ -10990,13 +11219,13 @@ (workInProgress = null)) : (reuseSuspenseHandlerOnStack(workInProgress), (nextPrimaryChildren = - JSCompiler_object_inline_stack_2725.fallback), + JSCompiler_object_inline_stack_2977.fallback), (mode = workInProgress.mode), - (JSCompiler_object_inline_stack_2725 = + (JSCompiler_object_inline_stack_2977 = mountWorkInProgressOffscreenFiber( { mode: "visible", - children: JSCompiler_object_inline_stack_2725.children + children: JSCompiler_object_inline_stack_2977.children }, mode )), @@ -11007,30 +11236,30 @@ null )), (nextPrimaryChildren.flags |= 2), - (JSCompiler_object_inline_stack_2725.return = workInProgress), + (JSCompiler_object_inline_stack_2977.return = workInProgress), (nextPrimaryChildren.return = workInProgress), - (JSCompiler_object_inline_stack_2725.sibling = + (JSCompiler_object_inline_stack_2977.sibling = nextPrimaryChildren), - (workInProgress.child = JSCompiler_object_inline_stack_2725), + (workInProgress.child = JSCompiler_object_inline_stack_2977), reconcileChildFibers( workInProgress, current.child, null, renderLanes ), - (JSCompiler_object_inline_stack_2725 = workInProgress.child), - (JSCompiler_object_inline_stack_2725.memoizedState = + (JSCompiler_object_inline_stack_2977 = workInProgress.child), + (JSCompiler_object_inline_stack_2977.memoizedState = mountSuspenseOffscreenState(renderLanes)), - (JSCompiler_object_inline_stack_2725.childLanes = + (JSCompiler_object_inline_stack_2977.childLanes = getRemainingWorkInPrimaryTree( current, - JSCompiler_object_inline_digest_2724, + JSCompiler_object_inline_digest_2976, renderLanes )), (workInProgress.memoizedState = SUSPENDED_MARKER), (workInProgress = bailoutOffscreenComponent( null, - JSCompiler_object_inline_stack_2725 + JSCompiler_object_inline_stack_2977 ))); else if ( (pushPrimaryTreeSuspenseHandler(workInProgress), @@ -11038,45 +11267,45 @@ 0 !== (renderLanes & 536870912) && markRenderDerivedCause(workInProgress), isSuspenseInstanceFallback( - JSCompiler_object_inline_componentStack_2726 + JSCompiler_object_inline_componentStack_2978 )) ) { - JSCompiler_object_inline_digest_2724 = - JSCompiler_object_inline_componentStack_2726.nextSibling && - JSCompiler_object_inline_componentStack_2726.nextSibling.dataset; - if (JSCompiler_object_inline_digest_2724) { - nextPrimaryChildren = JSCompiler_object_inline_digest_2724.dgst; - var message = JSCompiler_object_inline_digest_2724.msg; - mode = JSCompiler_object_inline_digest_2724.stck; - var componentStack = JSCompiler_object_inline_digest_2724.cstck; + JSCompiler_object_inline_digest_2976 = + JSCompiler_object_inline_componentStack_2978.nextSibling && + JSCompiler_object_inline_componentStack_2978.nextSibling.dataset; + if (JSCompiler_object_inline_digest_2976) { + nextPrimaryChildren = JSCompiler_object_inline_digest_2976.dgst; + var message = JSCompiler_object_inline_digest_2976.msg; + mode = JSCompiler_object_inline_digest_2976.stck; + var componentStack = JSCompiler_object_inline_digest_2976.cstck; } - JSCompiler_object_inline_message_2723 = message; - JSCompiler_object_inline_digest_2724 = nextPrimaryChildren; - JSCompiler_object_inline_stack_2725 = mode; - JSCompiler_object_inline_componentStack_2726 = componentStack; - nextPrimaryChildren = JSCompiler_object_inline_message_2723; - mode = JSCompiler_object_inline_componentStack_2726; + JSCompiler_object_inline_message_2975 = message; + JSCompiler_object_inline_digest_2976 = nextPrimaryChildren; + JSCompiler_object_inline_stack_2977 = mode; + JSCompiler_object_inline_componentStack_2978 = componentStack; + nextPrimaryChildren = JSCompiler_object_inline_message_2975; + mode = JSCompiler_object_inline_componentStack_2978; nextPrimaryChildren = nextPrimaryChildren ? Error(nextPrimaryChildren) : Error( "The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering." ); nextPrimaryChildren.stack = - JSCompiler_object_inline_stack_2725 || ""; - nextPrimaryChildren.digest = JSCompiler_object_inline_digest_2724; - JSCompiler_object_inline_digest_2724 = + JSCompiler_object_inline_stack_2977 || ""; + nextPrimaryChildren.digest = JSCompiler_object_inline_digest_2976; + JSCompiler_object_inline_digest_2976 = void 0 === mode ? null : mode; - JSCompiler_object_inline_stack_2725 = { + JSCompiler_object_inline_stack_2977 = { value: nextPrimaryChildren, source: null, - stack: JSCompiler_object_inline_digest_2724 + stack: JSCompiler_object_inline_digest_2976 }; - "string" === typeof JSCompiler_object_inline_digest_2724 && + "string" === typeof JSCompiler_object_inline_digest_2976 && CapturedStacks.set( nextPrimaryChildren, - JSCompiler_object_inline_stack_2725 + JSCompiler_object_inline_stack_2977 ); - queueHydrationError(JSCompiler_object_inline_stack_2725); + queueHydrationError(JSCompiler_object_inline_stack_2977); workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, @@ -11090,35 +11319,35 @@ renderLanes, !1 ), - (JSCompiler_object_inline_digest_2724 = + (JSCompiler_object_inline_digest_2976 = 0 !== (renderLanes & current.childLanes)), - didReceiveUpdate || JSCompiler_object_inline_digest_2724) + didReceiveUpdate || JSCompiler_object_inline_digest_2976) ) { - JSCompiler_object_inline_digest_2724 = workInProgressRoot; + JSCompiler_object_inline_digest_2976 = workInProgressRoot; if ( - null !== JSCompiler_object_inline_digest_2724 && - ((JSCompiler_object_inline_stack_2725 = getBumpedLaneForHydration( - JSCompiler_object_inline_digest_2724, + null !== JSCompiler_object_inline_digest_2976 && + ((JSCompiler_object_inline_stack_2977 = getBumpedLaneForHydration( + JSCompiler_object_inline_digest_2976, renderLanes )), - 0 !== JSCompiler_object_inline_stack_2725 && - JSCompiler_object_inline_stack_2725 !== prevState.retryLane) + 0 !== JSCompiler_object_inline_stack_2977 && + JSCompiler_object_inline_stack_2977 !== prevState.retryLane) ) throw ( - ((prevState.retryLane = JSCompiler_object_inline_stack_2725), + ((prevState.retryLane = JSCompiler_object_inline_stack_2977), enqueueConcurrentRenderForLane( current, - JSCompiler_object_inline_stack_2725 + JSCompiler_object_inline_stack_2977 ), scheduleUpdateOnFiber( - JSCompiler_object_inline_digest_2724, + JSCompiler_object_inline_digest_2976, current, - JSCompiler_object_inline_stack_2725 + JSCompiler_object_inline_stack_2977 ), SelectiveHydrationException) ); isSuspenseInstancePending( - JSCompiler_object_inline_componentStack_2726 + JSCompiler_object_inline_componentStack_2978 ) || renderDidSuspendDelayIfPossible(); workInProgress = retrySuspenseComponentWithoutHydrating( current, @@ -11127,14 +11356,14 @@ ); } else isSuspenseInstancePending( - JSCompiler_object_inline_componentStack_2726 + JSCompiler_object_inline_componentStack_2978 ) ? ((workInProgress.flags |= 192), (workInProgress.child = current.child), (workInProgress = null)) : ((current = prevState.treeContext), (nextHydratableInstance = getNextHydratable( - JSCompiler_object_inline_componentStack_2726.nextSibling + JSCompiler_object_inline_componentStack_2978.nextSibling )), (hydrationParentFiber = workInProgress), (isHydrating = !0), @@ -11146,32 +11375,32 @@ restoreSuspendedTreeContext(workInProgress, current), (workInProgress = mountSuspensePrimaryChildren( workInProgress, - JSCompiler_object_inline_stack_2725.children + JSCompiler_object_inline_stack_2977.children )), (workInProgress.flags |= 4096)); return workInProgress; } } - if (JSCompiler_object_inline_message_2723) + if (JSCompiler_object_inline_message_2975) return ( reuseSuspenseHandlerOnStack(workInProgress), - (nextPrimaryChildren = JSCompiler_object_inline_stack_2725.fallback), + (nextPrimaryChildren = JSCompiler_object_inline_stack_2977.fallback), (mode = workInProgress.mode), (componentStack = current.child), - (JSCompiler_object_inline_componentStack_2726 = + (JSCompiler_object_inline_componentStack_2978 = componentStack.sibling), - (JSCompiler_object_inline_stack_2725 = createWorkInProgress( + (JSCompiler_object_inline_stack_2977 = createWorkInProgress( componentStack, { mode: "hidden", - children: JSCompiler_object_inline_stack_2725.children + children: JSCompiler_object_inline_stack_2977.children } )), - (JSCompiler_object_inline_stack_2725.subtreeFlags = + (JSCompiler_object_inline_stack_2977.subtreeFlags = componentStack.subtreeFlags & 65011712), - null !== JSCompiler_object_inline_componentStack_2726 + null !== JSCompiler_object_inline_componentStack_2978 ? (nextPrimaryChildren = createWorkInProgress( - JSCompiler_object_inline_componentStack_2726, + JSCompiler_object_inline_componentStack_2978, nextPrimaryChildren )) : ((nextPrimaryChildren = createFiberFromFragment( @@ -11182,11 +11411,11 @@ )), (nextPrimaryChildren.flags |= 2)), (nextPrimaryChildren.return = workInProgress), - (JSCompiler_object_inline_stack_2725.return = workInProgress), - (JSCompiler_object_inline_stack_2725.sibling = nextPrimaryChildren), - (workInProgress.child = JSCompiler_object_inline_stack_2725), - bailoutOffscreenComponent(null, JSCompiler_object_inline_stack_2725), - (JSCompiler_object_inline_stack_2725 = workInProgress.child), + (JSCompiler_object_inline_stack_2977.return = workInProgress), + (JSCompiler_object_inline_stack_2977.sibling = nextPrimaryChildren), + (workInProgress.child = JSCompiler_object_inline_stack_2977), + bailoutOffscreenComponent(null, JSCompiler_object_inline_stack_2977), + (JSCompiler_object_inline_stack_2977 = workInProgress.child), (nextPrimaryChildren = current.child.memoizedState), null === nextPrimaryChildren ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes)) @@ -11202,18 +11431,18 @@ baseLanes: nextPrimaryChildren.baseLanes | renderLanes, cachePool: mode })), - (JSCompiler_object_inline_stack_2725.memoizedState = + (JSCompiler_object_inline_stack_2977.memoizedState = nextPrimaryChildren), - (JSCompiler_object_inline_stack_2725.childLanes = + (JSCompiler_object_inline_stack_2977.childLanes = getRemainingWorkInPrimaryTree( current, - JSCompiler_object_inline_digest_2724, + JSCompiler_object_inline_digest_2976, renderLanes )), (workInProgress.memoizedState = SUSPENDED_MARKER), bailoutOffscreenComponent( current.child, - JSCompiler_object_inline_stack_2725 + JSCompiler_object_inline_stack_2977 ) ); null !== prevState && @@ -11225,16 +11454,16 @@ current = renderLanes.sibling; renderLanes = createWorkInProgress(renderLanes, { mode: "visible", - children: JSCompiler_object_inline_stack_2725.children + children: JSCompiler_object_inline_stack_2977.children }); renderLanes.return = workInProgress; renderLanes.sibling = null; null !== current && - ((JSCompiler_object_inline_digest_2724 = workInProgress.deletions), - null === JSCompiler_object_inline_digest_2724 + ((JSCompiler_object_inline_digest_2976 = workInProgress.deletions), + null === JSCompiler_object_inline_digest_2976 ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16)) - : JSCompiler_object_inline_digest_2724.push(current)); + : JSCompiler_object_inline_digest_2976.push(current)); workInProgress.child = renderLanes; workInProgress.memoizedState = null; return renderLanes; @@ -12187,10 +12416,12 @@ ); case 7: return ( + (returnFiber = workInProgress.pendingProps), + markRef(current, workInProgress), reconcileChildren( current, workInProgress, - workInProgress.pendingProps, + returnFiber, renderLanes ), workInProgress.child @@ -12349,6 +12580,35 @@ ), workInProgress.child ); + case 30: + return ( + (returnFiber = workInProgress.pendingProps), + null != returnFiber.name && "auto" !== returnFiber.name + ? (workInProgress.flags |= null === current ? 18882560 : 18874368) + : isHydrating && pushMaterializedTreeId(workInProgress), + void 0 !== returnFiber.className && + ((prevSibling = + "string" === typeof returnFiber.className + ? JSON.stringify(returnFiber.className) + : "{...}"), + didWarnAboutClassNameOnViewTransition[prevSibling] || + ((didWarnAboutClassNameOnViewTransition[prevSibling] = !0), + console.error( + ' doesn\'t accept a "className" prop. It has been renamed to "default".\n- \n+ ', + prevSibling, + prevSibling + ))), + null !== current && current.memoizedProps.name !== returnFiber.name + ? (workInProgress.flags |= 4194816) + : markRef(current, workInProgress), + reconcileChildren( + current, + workInProgress, + returnFiber.children, + renderLanes + ), + workInProgress.child + ); case 29: throw workInProgress.pendingProps; } @@ -12368,9 +12628,18 @@ newProps, renderLanes ) { - if ((type = (workInProgress.mode & SuspenseyImagesMode) !== NoMode)) - type = !1; - if (type) { + var JSCompiler_temp; + if ( + (JSCompiler_temp = + (workInProgress.mode & SuspenseyImagesMode) !== NoMode) + ) + JSCompiler_temp = + null === oldProps + ? maySuspendCommit(type, newProps) + : maySuspendCommit(type, newProps) && + (newProps.src !== oldProps.src || + newProps.srcSet !== oldProps.srcSet); + if (JSCompiler_temp) { if ( ((workInProgress.flags |= 16777216), (renderLanes & 335544128) === renderLanes) @@ -12581,6 +12850,7 @@ "We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue." ); bubbleProperties(workInProgress); + workInProgress.subtreeFlags &= -33554433; return null; } current = getHostContext(); @@ -12597,6 +12867,7 @@ markUpdate(workInProgress)); } bubbleProperties(workInProgress); + workInProgress.subtreeFlags &= -33554433; return null; case 5: popHostContext(workInProgress); @@ -12610,6 +12881,7 @@ "We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue." ); bubbleProperties(workInProgress); + workInProgress.subtreeFlags &= -33554433; return null; } var _currentHostContext = getHostContext(); @@ -12741,6 +13013,7 @@ } } bubbleProperties(workInProgress); + workInProgress.subtreeFlags &= -33554433; preloadInstanceAndSuspendIfNeeded( workInProgress, workInProgress.type, @@ -13134,7 +13407,11 @@ case 25: return null; case 30: - return null; + return ( + (workInProgress.flags |= 33554432), + bubbleProperties(workInProgress), + null + ); } throw Error( "Unknown unit of work tag (" + @@ -13535,6 +13812,18 @@ break; case 30: instanceToUse = finishedWork.stateNode; + var name = getViewTransitionName( + finishedWork.memoizedProps, + instanceToUse + ); + if (null === instanceToUse.ref || instanceToUse.ref.name !== name) + instanceToUse.ref = createViewTransitionInstance(name); + instanceToUse = instanceToUse.ref; + break; + case 7: + null === finishedWork.stateNode && + (finishedWork.stateNode = new FragmentInstance(finishedWork)); + instanceToUse = finishedWork.stateNode; break; default: instanceToUse = finishedWork.stateNode; @@ -13675,6 +13964,37 @@ captureCommitPhaseError(finishedWork, finishedWork.return, error); } } + function commitNewChildToFragmentInstances(fiber, parentFragmentInstances) { + if ( + 5 === fiber.tag && + null === fiber.alternate && + null !== parentFragmentInstances + ) + for (var i = 0; i < parentFragmentInstances.length; i++) + commitNewChildToFragmentInstance( + fiber.stateNode, + parentFragmentInstances[i] + ); + } + function commitFragmentInstanceDeletionEffects(fiber) { + for (var parent = fiber.return; null !== parent; ) { + if (isFragmentInstanceParent(parent)) { + var childElement = fiber.stateNode, + eventListeners = parent.stateNode._eventListeners; + if (null !== eventListeners) + for (var i = 0; i < eventListeners.length; i++) { + var _eventListeners$i3 = eventListeners[i]; + childElement.removeEventListener( + _eventListeners$i3.type, + _eventListeners$i3.listener, + _eventListeners$i3.optionsOrUseCapture + ); + } + } + if (isHostParent(parent)) break; + parent = parent.return; + } + } function isHostParent(fiber) { return ( 5 === fiber.tag || @@ -13684,6 +14004,9 @@ 4 === fiber.tag ); } + function isFragmentInstanceParent(fiber) { + return fiber && 7 === fiber.tag && null !== fiber.stateNode; + } function getHostSibling(fiber) { a: for (;;) { for (; null === fiber.sibling; ) { @@ -13704,10 +14027,15 @@ if (!(fiber.flags & 2)) return fiber.stateNode; } } - function insertOrAppendPlacementNodeIntoContainer(node, before, parent) { + function insertOrAppendPlacementNodeIntoContainer( + node, + before, + parent, + parentFragmentInstances + ) { var tag = node.tag; if (5 === tag || 6 === tag) - (node = node.stateNode), + (tag = node.stateNode), before ? (warnForReactChildrenConflict(parent), (9 === parent.nodeType @@ -13715,7 +14043,7 @@ : "HTML" === parent.nodeName ? parent.ownerDocument.body : parent - ).insertBefore(node, before)) + ).insertBefore(tag, before)) : (warnForReactChildrenConflict(parent), (before = 9 === parent.nodeType @@ -13723,11 +14051,13 @@ : "HTML" === parent.nodeName ? parent.ownerDocument.body : parent), - before.appendChild(node), - (parent = parent._reactRootContainer), - (null !== parent && void 0 !== parent) || + before.appendChild(tag), + (tag = parent._reactRootContainer), + (null !== tag && void 0 !== tag) || null !== before.onclick || - (before.onclick = noop$1)); + (before.onclick = noop$1)), + commitNewChildToFragmentInstances(node, parentFragmentInstances), + (viewTransitionMutationContext = !0); else if ( 4 !== tag && (27 === tag && @@ -13737,19 +14067,36 @@ null !== node) ) for ( - insertOrAppendPlacementNodeIntoContainer(node, before, parent), + insertOrAppendPlacementNodeIntoContainer( + node, + before, + parent, + parentFragmentInstances + ), node = node.sibling; null !== node; ) - insertOrAppendPlacementNodeIntoContainer(node, before, parent), + insertOrAppendPlacementNodeIntoContainer( + node, + before, + parent, + parentFragmentInstances + ), (node = node.sibling); } - function insertOrAppendPlacementNode(node, before, parent) { + function insertOrAppendPlacementNode( + node, + before, + parent, + parentFragmentInstances + ) { var tag = node.tag; if (5 === tag || 6 === tag) - (node = node.stateNode), - before ? parent.insertBefore(node, before) : parent.appendChild(node); + (tag = node.stateNode), + before ? parent.insertBefore(tag, before) : parent.appendChild(tag), + commitNewChildToFragmentInstances(node, parentFragmentInstances), + (viewTransitionMutationContext = !0); else if ( 4 !== tag && (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode), @@ -13757,20 +14104,38 @@ null !== node) ) for ( - insertOrAppendPlacementNode(node, before, parent), + insertOrAppendPlacementNode( + node, + before, + parent, + parentFragmentInstances + ), node = node.sibling; null !== node; ) - insertOrAppendPlacementNode(node, before, parent), + insertOrAppendPlacementNode( + node, + before, + parent, + parentFragmentInstances + ), (node = node.sibling); } function commitPlacement(finishedWork) { for ( - var hostParentFiber, parentFiber = finishedWork.return; + var hostParentFiber, + parentFragmentInstances = null, + parentFiber = finishedWork.return; null !== parentFiber; ) { + if (isFragmentInstanceParent(parentFiber)) { + var fragmentInstance = parentFiber.stateNode; + null === parentFragmentInstances + ? (parentFragmentInstances = [fragmentInstance]) + : parentFragmentInstances.push(fragmentInstance); + } if (isHostParent(parentFiber)) { hostParentFiber = parentFiber; break; @@ -13788,7 +14153,8 @@ insertOrAppendPlacementNode( finishedWork, parentFiber, - hostParentFiber + hostParentFiber, + parentFragmentInstances ); break; case 5: @@ -13799,7 +14165,8 @@ insertOrAppendPlacementNode( finishedWork, hostParentFiber, - parentFiber + parentFiber, + parentFragmentInstances ); break; case 3: @@ -13809,7 +14176,8 @@ insertOrAppendPlacementNodeIntoContainer( finishedWork, parentFiber, - hostParentFiber + hostParentFiber, + parentFragmentInstances ); break; default: @@ -13834,6 +14202,436 @@ captureCommitPhaseError(finishedWork, finishedWork.return, error); } } + function trackEnterViewTransitions(placement) { + if (30 === placement.tag || 0 !== (placement.subtreeFlags & 33554432)) + shouldStartViewTransition = !0; + } + function pushViewTransitionCancelableScope() { + var prevChildren = viewTransitionCancelableChildren; + viewTransitionCancelableChildren = null; + return prevChildren; + } + function applyViewTransitionToHostInstances( + fiber, + name, + className, + collectMeasurements, + stopAtNestedViewTransitions + ) { + viewTransitionHostInstanceIdx = 0; + (name = applyViewTransitionToHostInstancesRecursive( + fiber.child, + name, + className, + collectMeasurements, + stopAtNestedViewTransitions + )) && + null != fiber._debugTask && + null === animatingTask && + (animatingTask = fiber._debugTask); + return name; + } + function applyViewTransitionToHostInstancesRecursive( + child, + name, + className, + collectMeasurements, + stopAtNestedViewTransitions + ) { + for (var inViewport = !1; null !== child; ) { + if (5 === child.tag) { + var instance = child.stateNode; + if (null !== collectMeasurements) { + var measurement = measureInstance(instance); + collectMeasurements.push(measurement); + measurement.view && (inViewport = !0); + } else + inViewport || (measureInstance(instance).view && (inViewport = !0)); + shouldStartViewTransition = !0; + applyViewTransitionName( + instance, + 0 === viewTransitionHostInstanceIdx + ? name + : name + "_" + viewTransitionHostInstanceIdx, + className + ); + viewTransitionHostInstanceIdx++; + } else if (22 !== child.tag || null === child.memoizedState) + (30 === child.tag && stopAtNestedViewTransitions) || + (applyViewTransitionToHostInstancesRecursive( + child.child, + name, + className, + collectMeasurements, + stopAtNestedViewTransitions + ) && + (inViewport = !0)); + child = child.sibling; + } + return inViewport; + } + function restoreViewTransitionOnHostInstances( + child, + stopAtNestedViewTransitions + ) { + for (; null !== child; ) { + if (5 === child.tag) + restoreViewTransitionName(child.stateNode, child.memoizedProps); + else if (22 !== child.tag || null === child.memoizedState) + (30 === child.tag && stopAtNestedViewTransitions) || + restoreViewTransitionOnHostInstances( + child.child, + stopAtNestedViewTransitions + ); + child = child.sibling; + } + } + function commitAppearingPairViewTransitions(placement) { + if (0 !== (placement.subtreeFlags & 18874368)) + for (placement = placement.child; null !== placement; ) { + if (22 !== placement.tag || null !== placement.memoizedState) + if ( + (commitAppearingPairViewTransitions(placement), + 30 === placement.tag && + 0 !== (placement.flags & 18874368) && + placement.stateNode.paired) + ) { + var props = placement.memoizedProps; + if (null == props.name || "auto" === props.name) + throw Error( + "Found a pair with an auto name. This is a bug in React." + ); + var name = props.name; + props = getViewTransitionClassName(props.default, props.share); + "none" !== props && + (applyViewTransitionToHostInstances( + placement, + name, + props, + null, + !1 + ) || + restoreViewTransitionOnHostInstances(placement.child, !1)); + } + placement = placement.sibling; + } + } + function commitEnterViewTransitions(placement, gesture) { + if (30 === placement.tag) { + var state = placement.stateNode, + props = placement.memoizedProps, + name = getViewTransitionName(props, state), + className = getViewTransitionClassName( + props.default, + state.paired ? props.share : props.enter + ); + "none" !== className + ? applyViewTransitionToHostInstances( + placement, + name, + className, + null, + !1 + ) + ? (commitAppearingPairViewTransitions(placement), + state.paired || + gesture || + scheduleViewTransitionEvent(placement, props.onEnter)) + : restoreViewTransitionOnHostInstances(placement.child, !1) + : commitAppearingPairViewTransitions(placement); + } else if (0 !== (placement.subtreeFlags & 33554432)) + for (placement = placement.child; null !== placement; ) + commitEnterViewTransitions(placement, gesture), + (placement = placement.sibling); + else commitAppearingPairViewTransitions(placement); + } + function commitDeletedPairViewTransitions(deletion) { + if ( + null !== appearingViewTransitions && + 0 !== appearingViewTransitions.size + ) { + var pairs = appearingViewTransitions; + if (0 !== (deletion.subtreeFlags & 18874368)) + for (deletion = deletion.child; null !== deletion; ) { + if (22 !== deletion.tag || null !== deletion.memoizedState) { + if (30 === deletion.tag && 0 !== (deletion.flags & 18874368)) { + var props = deletion.memoizedProps, + name = props.name; + if (null != name && "auto" !== name) { + var pair = pairs.get(name); + if (void 0 !== pair) { + var className = getViewTransitionClassName( + props.default, + props.share + ); + "none" !== className && + (applyViewTransitionToHostInstances( + deletion, + name, + className, + null, + !1 + ) + ? ((className = deletion.stateNode), + (pair.paired = className), + (className.paired = pair), + scheduleViewTransitionEvent(deletion, props.onShare)) + : restoreViewTransitionOnHostInstances( + deletion.child, + !1 + )); + pairs.delete(name); + if (0 === pairs.size) break; + } + } + } + commitDeletedPairViewTransitions(deletion); + } + deletion = deletion.sibling; + } + } + } + function commitExitViewTransitions(deletion) { + if (30 === deletion.tag) { + var props = deletion.memoizedProps, + name = getViewTransitionName(props, deletion.stateNode), + pair = + null !== appearingViewTransitions + ? appearingViewTransitions.get(name) + : void 0, + className = getViewTransitionClassName( + props.default, + void 0 !== pair ? props.share : props.exit + ); + "none" !== className && + (applyViewTransitionToHostInstances( + deletion, + name, + className, + null, + !1 + ) + ? void 0 !== pair + ? ((className = deletion.stateNode), + (pair.paired = className), + (className.paired = pair), + appearingViewTransitions.delete(name), + scheduleViewTransitionEvent(deletion, props.onShare)) + : scheduleViewTransitionEvent(deletion, props.onExit) + : restoreViewTransitionOnHostInstances(deletion.child, !1)); + null !== appearingViewTransitions && + commitDeletedPairViewTransitions(deletion); + } else if (0 !== (deletion.subtreeFlags & 33554432)) + for (deletion = deletion.child; null !== deletion; ) + commitExitViewTransitions(deletion), (deletion = deletion.sibling); + else + null !== appearingViewTransitions && + commitDeletedPairViewTransitions(deletion); + } + function commitNestedViewTransitions(changedParent) { + for (changedParent = changedParent.child; null !== changedParent; ) { + if (30 === changedParent.tag) { + var props = changedParent.memoizedProps, + name = getViewTransitionName(props, changedParent.stateNode); + props = getViewTransitionClassName(props.default, props.update); + changedParent.flags &= -5; + "none" !== props && + applyViewTransitionToHostInstances( + changedParent, + name, + props, + (changedParent.memoizedState = []), + !1 + ); + } else + 0 !== (changedParent.subtreeFlags & 33554432) && + commitNestedViewTransitions(changedParent); + changedParent = changedParent.sibling; + } + } + function restorePairedViewTransitions(parent) { + if (0 !== (parent.subtreeFlags & 18874368)) + for (parent = parent.child; null !== parent; ) { + if (22 !== parent.tag || null !== parent.memoizedState) { + if (30 === parent.tag && 0 !== (parent.flags & 18874368)) { + var instance = parent.stateNode; + null !== instance.paired && + ((instance.paired = null), + restoreViewTransitionOnHostInstances(parent.child, !1)); + } + restorePairedViewTransitions(parent); + } + parent = parent.sibling; + } + } + function restoreEnterOrExitViewTransitions(fiber) { + if (30 === fiber.tag) + (fiber.stateNode.paired = null), + restoreViewTransitionOnHostInstances(fiber.child, !1), + restorePairedViewTransitions(fiber); + else if (0 !== (fiber.subtreeFlags & 33554432)) + for (fiber = fiber.child; null !== fiber; ) + restoreEnterOrExitViewTransitions(fiber), (fiber = fiber.sibling); + else restorePairedViewTransitions(fiber); + } + function restoreNestedViewTransitions(changedParent) { + for (changedParent = changedParent.child; null !== changedParent; ) + 30 === changedParent.tag + ? restoreViewTransitionOnHostInstances(changedParent.child, !1) + : 0 !== (changedParent.subtreeFlags & 33554432) && + restoreNestedViewTransitions(changedParent), + (changedParent = changedParent.sibling); + } + function measureViewTransitionHostInstancesRecursive( + parentViewTransition, + child, + newName, + oldName, + className, + previousMeasurements, + stopAtNestedViewTransitions + ) { + for (var inViewport = !1; null !== child; ) { + if (5 === child.tag) { + var instance = child.stateNode; + if ( + null !== previousMeasurements && + viewTransitionHostInstanceIdx < previousMeasurements.length + ) { + var previousMeasurement = + previousMeasurements[viewTransitionHostInstanceIdx], + nextMeasurement = measureInstance(instance); + if (previousMeasurement.view || nextMeasurement.view) + inViewport = !0; + var JSCompiler_temp; + if ((JSCompiler_temp = 0 === (parentViewTransition.flags & 4))) + if (nextMeasurement.clip) JSCompiler_temp = !0; + else { + JSCompiler_temp = previousMeasurement.rect; + var newRect = nextMeasurement.rect; + JSCompiler_temp = + JSCompiler_temp.y !== newRect.y || + JSCompiler_temp.x !== newRect.x || + JSCompiler_temp.height !== newRect.height || + JSCompiler_temp.width !== newRect.width; + } + JSCompiler_temp && (parentViewTransition.flags |= 4); + nextMeasurement.abs + ? (nextMeasurement = !previousMeasurement.abs) + : ((previousMeasurement = previousMeasurement.rect), + (nextMeasurement = nextMeasurement.rect), + (nextMeasurement = + previousMeasurement.height !== nextMeasurement.height || + previousMeasurement.width !== nextMeasurement.width)); + nextMeasurement && (parentViewTransition.flags |= 32); + } else parentViewTransition.flags |= 32; + 0 !== (parentViewTransition.flags & 4) && + applyViewTransitionName( + instance, + 0 === viewTransitionHostInstanceIdx + ? newName + : newName + "_" + viewTransitionHostInstanceIdx, + className + ); + (inViewport && 0 !== (parentViewTransition.flags & 4)) || + (null === viewTransitionCancelableChildren && + (viewTransitionCancelableChildren = []), + viewTransitionCancelableChildren.push( + instance, + oldName, + child.memoizedProps + )); + viewTransitionHostInstanceIdx++; + } else if (22 !== child.tag || null === child.memoizedState) + 30 === child.tag && stopAtNestedViewTransitions + ? (parentViewTransition.flags |= child.flags & 32) + : measureViewTransitionHostInstancesRecursive( + parentViewTransition, + child.child, + newName, + oldName, + className, + previousMeasurements, + stopAtNestedViewTransitions + ) && (inViewport = !0); + child = child.sibling; + } + return inViewport; + } + function measureNestedViewTransitions(changedParent, gesture) { + for (changedParent = changedParent.child; null !== changedParent; ) { + if (30 === changedParent.tag) { + var props = changedParent.memoizedProps, + state = changedParent.stateNode, + name = getViewTransitionName(props, state), + className = getViewTransitionClassName(props.default, props.update); + if (gesture) { + state = state.clones; + var previousMeasurements = + null === state ? null : state.map(measureClonedInstance); + } else + (previousMeasurements = changedParent.memoizedState), + (changedParent.memoizedState = null); + state = changedParent; + var child = changedParent.child, + newName = name; + viewTransitionHostInstanceIdx = 0; + className = measureViewTransitionHostInstancesRecursive( + state, + child, + newName, + name, + className, + previousMeasurements, + !1 + ); + 0 !== (changedParent.flags & 4) && + className && + (gesture || + scheduleViewTransitionEvent(changedParent, props.onUpdate)); + } else + 0 !== (changedParent.subtreeFlags & 33554432) && + measureNestedViewTransitions(changedParent, gesture); + changedParent = changedParent.sibling; + } + } + function trackNamedViewTransition(fiber) { + var name = fiber.memoizedProps.name; + if (null != name && "auto" !== name) { + var existing = mountedNamedViewTransitions.get(name); + if (void 0 !== existing) { + if ( + existing !== fiber && + existing !== fiber.alternate && + !didWarnAboutName[name] + ) { + didWarnAboutName[name] = !0; + var stringifiedName = JSON.stringify(name); + runWithFiberInDEV(fiber, function () { + console.error( + "There are two components with the same name mounted at the same time. This is not supported and will cause View Transitions to error. Try to use a more unique name e.g. by using a namespace prefix and adding the id of an item to the name.", + stringifiedName + ); + }); + runWithFiberInDEV(existing, function () { + console.error( + "The existing duplicate has this stack trace.", + stringifiedName + ); + }); + } + } else mountedNamedViewTransitions.set(name, fiber); + } + } + function untrackNamedViewTransition(fiber) { + var name = fiber.memoizedProps.name; + if (null != name && "auto" !== name) { + var existing = mountedNamedViewTransitions.get(name); + void 0 === existing || + (existing !== fiber && existing !== fiber.alternate) || + mountedNamedViewTransitions.delete(name); + } + } function isHydratingParent(current, finishedWork) { return 31 === finishedWork.tag ? ((finishedWork = finishedWork.memoizedState), @@ -13849,7 +14647,7 @@ 0 === (finishedWork.flags & 256) : !1; } - function commitBeforeMutationEffects(root, firstChild) { + function commitBeforeMutationEffects(root, firstChild, committedLanes) { root = root.containerInfo; eventsEnabled = _enabled; root = getActiveElementDeep(root); @@ -13923,84 +14721,154 @@ selectionRange: JSCompiler_temp }; _enabled = !1; - for (nextEffect = firstChild; null !== nextEffect; ) + committedLanes = (committedLanes & 335544064) === committedLanes; + nextEffect = firstChild; + for (firstChild = committedLanes ? 9270 : 1028; null !== nextEffect; ) { + root = nextEffect; if ( - ((firstChild = nextEffect), - (root = firstChild.child), - 0 !== (firstChild.subtreeFlags & 1028) && null !== root) + committedLanes && + ((JSCompiler_temp = root.deletions), null !== JSCompiler_temp) ) - (root.return = firstChild), (nextEffect = root); - else - for (; null !== nextEffect; ) { - root = firstChild = nextEffect; - JSCompiler_temp = root.alternate; - anchorOffset = root.flags; - switch (root.tag) { - case 0: - if ( - 0 !== (anchorOffset & 4) && - ((root = root.updateQueue), - (root = null !== root ? root.events : null), - null !== root) - ) - for ( - JSCompiler_temp = 0; - JSCompiler_temp < root.length; - JSCompiler_temp++ - ) - (anchorOffset = root[JSCompiler_temp]), - (anchorOffset.ref.impl = anchorOffset.nextImpl); - break; - case 11: - case 15: - break; - case 1: - 0 !== (anchorOffset & 1024) && - null !== JSCompiler_temp && - commitClassSnapshot(root, JSCompiler_temp); - break; - case 3: - if (0 !== (anchorOffset & 1024)) - if ( - ((root = root.stateNode.containerInfo), - (JSCompiler_temp = root.nodeType), - 9 === JSCompiler_temp) - ) - clearContainerSparingly(root); - else if (1 === JSCompiler_temp) - switch (root.nodeName) { - case "HEAD": - case "HTML": - case "BODY": - clearContainerSparingly(root); - break; - default: - root.textContent = ""; - } - break; - case 5: - case 26: - case 27: - case 6: - case 4: - case 17: - break; - default: - if (0 !== (anchorOffset & 1024)) - throw Error( - "This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue." - ); - } - root = firstChild.sibling; - if (null !== root) { - root.return = firstChild.return; - nextEffect = root; - break; + for ( + anchorOffset = 0; + anchorOffset < JSCompiler_temp.length; + anchorOffset++ + ) + committedLanes && + commitExitViewTransitions(JSCompiler_temp[anchorOffset]); + if (null === root.alternate && 0 !== (root.flags & 2)) + committedLanes && trackEnterViewTransitions(root), + commitBeforeMutationEffects_complete(committedLanes); + else { + if (22 === root.tag) + if ( + ((JSCompiler_temp = root.alternate), null !== root.memoizedState) + ) { + null !== JSCompiler_temp && + null === JSCompiler_temp.memoizedState && + committedLanes && + commitExitViewTransitions(JSCompiler_temp); + commitBeforeMutationEffects_complete(committedLanes); + continue; + } else if ( + null !== JSCompiler_temp && + null !== JSCompiler_temp.memoizedState + ) { + committedLanes && trackEnterViewTransitions(root); + commitBeforeMutationEffects_complete(committedLanes); + continue; } - nextEffect = firstChild.return; - } + JSCompiler_temp = root.child; + 0 !== (root.subtreeFlags & firstChild) && null !== JSCompiler_temp + ? ((JSCompiler_temp.return = root), (nextEffect = JSCompiler_temp)) + : (committedLanes && commitNestedViewTransitions(root), + commitBeforeMutationEffects_complete(committedLanes)); + } + } + appearingViewTransitions = null; } - function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { + function commitBeforeMutationEffects_complete( + isViewTransitionEligible$jscomp$0 + ) { + for (; null !== nextEffect; ) { + var fiber = nextEffect, + finishedWork = fiber, + isViewTransitionEligible = isViewTransitionEligible$jscomp$0, + current = finishedWork.alternate, + flags = finishedWork.flags; + switch (finishedWork.tag) { + case 0: + if ( + 0 !== (flags & 4) && + ((isViewTransitionEligible = finishedWork.updateQueue), + (isViewTransitionEligible = + null !== isViewTransitionEligible + ? isViewTransitionEligible.events + : null), + null !== isViewTransitionEligible) + ) + for ( + finishedWork = 0; + finishedWork < isViewTransitionEligible.length; + finishedWork++ + ) + (current = isViewTransitionEligible[finishedWork]), + (current.ref.impl = current.nextImpl); + break; + case 11: + case 15: + break; + case 1: + 0 !== (flags & 1024) && + null !== current && + commitClassSnapshot(finishedWork, current); + break; + case 3: + if (0 !== (flags & 1024)) + if ( + ((isViewTransitionEligible = + finishedWork.stateNode.containerInfo), + (finishedWork = isViewTransitionEligible.nodeType), + 9 === finishedWork) + ) + clearContainerSparingly(isViewTransitionEligible); + else if (1 === finishedWork) + switch (isViewTransitionEligible.nodeName) { + case "HEAD": + case "HTML": + case "BODY": + clearContainerSparingly(isViewTransitionEligible); + break; + default: + isViewTransitionEligible.textContent = ""; + } + break; + case 5: + case 26: + case 27: + case 6: + case 4: + case 17: + break; + case 30: + isViewTransitionEligible && + null !== current && + ((isViewTransitionEligible = current), + (current = finishedWork), + (finishedWork = getViewTransitionName( + isViewTransitionEligible.memoizedProps, + isViewTransitionEligible.stateNode + )), + (current = current.memoizedProps), + (current = getViewTransitionClassName( + current.default, + current.update + )), + "none" !== current && + applyViewTransitionToHostInstances( + isViewTransitionEligible, + finishedWork, + current, + (isViewTransitionEligible.memoizedState = []), + !0 + )); + break; + default: + if (0 !== (flags & 1024)) + throw Error( + "This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue." + ); + } + isViewTransitionEligible = fiber.sibling; + if (null !== isViewTransitionEligible) { + isViewTransitionEligible.return = fiber.return; + nextEffect = isViewTransitionEligible; + break; + } + nextEffect = fiber.return; + } + } + function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { var prevEffectStart = pushComponentEffectStart(), prevEffectDuration = pushComponentEffectDuration(), prevEffectErrors = pushComponentEffectErrors(), @@ -14224,7 +15092,12 @@ } break; case 30: + flags & 18874368 && trackNamedViewTransition(finishedWork); + recursivelyTraverseLayoutEffects(finishedRoot, finishedWork); + flags & 512 && safelyAttachRef(finishedWork, finishedWork.return); break; + case 7: + flags & 512 && safelyAttachRef(finishedWork, finishedWork.return); default: recursivelyTraverseLayoutEffects(finishedRoot, finishedWork); } @@ -14352,7 +15225,9 @@ break; case 5: offscreenSubtreeWasHidden || - safelyDetachRef(deletedFiber, nearestMountedAncestor); + safelyDetachRef(deletedFiber, nearestMountedAncestor), + 5 === deletedFiber.tag && + commitFragmentInstanceDeletionEffects(deletedFiber); case 6: prevHostParent = hostParent; prevHostParentIsContainer = hostParentIsContainer; @@ -14372,7 +15247,8 @@ removeChildFromContainer, hostParent, deletedFiber.stateNode - ); + ), + (viewTransitionMutationContext = !0); } catch (error) { captureCommitPhaseError( deletedFiber, @@ -14387,7 +15263,8 @@ removeChild, hostParent, deletedFiber.stateNode - ); + ), + (viewTransitionMutationContext = !0); } catch (error) { captureCommitPhaseError( deletedFiber, @@ -14479,6 +15356,25 @@ ); offscreenSubtreeWasHidden = prevHostParent; break; + case 30: + deletedFiber.flags & 18874368 && + untrackNamedViewTransition(deletedFiber); + safelyDetachRef(deletedFiber, nearestMountedAncestor); + recursivelyTraverseDeletionEffects( + finishedRoot, + nearestMountedAncestor, + deletedFiber + ); + break; + case 7: + offscreenSubtreeWasHidden || + safelyDetachRef(deletedFiber, nearestMountedAncestor); + recursivelyTraverseDeletionEffects( + finishedRoot, + nearestMountedAncestor, + deletedFiber + ); + break; default: recursivelyTraverseDeletionEffects( finishedRoot, @@ -14582,7 +15478,11 @@ } }); } - function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) { + function recursivelyTraverseMutationEffects( + root$jscomp$0, + parentFiber, + lanes + ) { var deletions = parentFiber.deletions; if (null !== deletions) for (var i = 0; i < deletions.length; i++) { @@ -14637,10 +15537,10 @@ } if (parentFiber.subtreeFlags & 13886) for (parentFiber = parentFiber.child; null !== parentFiber; ) - commitMutationEffectsOnFiber(parentFiber, root$jscomp$0), + commitMutationEffectsOnFiber(parentFiber, root$jscomp$0, lanes), (parentFiber = parentFiber.sibling); } - function commitMutationEffectsOnFiber(finishedWork, root) { + function commitMutationEffectsOnFiber(finishedWork, root, lanes) { var prevEffectStart = pushComponentEffectStart(), prevEffectDuration = pushComponentEffectDuration(), prevEffectErrors = pushComponentEffectErrors(), @@ -14652,7 +15552,7 @@ case 11: case 14: case 15: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 4 && (commitHookEffectListUnmount( @@ -14668,192 +15568,173 @@ )); break; case 1: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 512 && (offscreenSubtreeWasHidden || null === current || safelyDetachRef(current, current.return)); - if ( - flags & 64 && + flags & 64 && offscreenSubtreeIsHidden && - ((flags = finishedWork.updateQueue), - null !== flags && ((current = flags.callbacks), null !== current)) - ) { - var existingHiddenCallbacks = flags.shared.hiddenCallbacks; - flags.shared.hiddenCallbacks = - null === existingHiddenCallbacks - ? current - : existingHiddenCallbacks.concat(current); - } + ((current = finishedWork.updateQueue), + null !== current && + ((flags = current.callbacks), + null !== flags && + ((root = current.shared.hiddenCallbacks), + (current.shared.hiddenCallbacks = + null === root ? flags : root.concat(flags))))); break; case 26: - existingHiddenCallbacks = currentHoistableRoot; - recursivelyTraverseMutationEffects(root, finishedWork); + var hoistableRoot = currentHoistableRoot; + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 512 && (offscreenSubtreeWasHidden || null === current || safelyDetachRef(current, current.return)); - if (flags & 4) { - var currentResource = - null !== current ? current.memoizedState : null; - flags = finishedWork.memoizedState; - if (null === current) + if (flags & 4) + if ( + ((root = null !== current ? current.memoizedState : null), + (flags = finishedWork.memoizedState), + null === current) + ) if (null === flags) if (null === finishedWork.stateNode) { a: { - flags = finishedWork.type; - current = finishedWork.memoizedProps; - existingHiddenCallbacks = - existingHiddenCallbacks.ownerDocument || - existingHiddenCallbacks; - b: switch (flags) { + current = finishedWork.type; + flags = finishedWork.memoizedProps; + root = hoistableRoot.ownerDocument || hoistableRoot; + b: switch (current) { case "title": - currentResource = - existingHiddenCallbacks.getElementsByTagName( - "title" - )[0]; + lanes = root.getElementsByTagName("title")[0]; if ( - !currentResource || - currentResource[internalHoistableMarker] || - currentResource[internalInstanceKey] || - currentResource.namespaceURI === SVG_NAMESPACE || - currentResource.hasAttribute("itemprop") + !lanes || + lanes[internalHoistableMarker] || + lanes[internalInstanceKey] || + lanes.namespaceURI === SVG_NAMESPACE || + lanes.hasAttribute("itemprop") ) - (currentResource = - existingHiddenCallbacks.createElement(flags)), - existingHiddenCallbacks.head.insertBefore( - currentResource, - existingHiddenCallbacks.querySelector( - "head > title" - ) + (lanes = root.createElement(current)), + root.head.insertBefore( + lanes, + root.querySelector("head > title") ); - setInitialProperties(currentResource, flags, current); - currentResource[internalInstanceKey] = finishedWork; - markNodeAsHoistable(currentResource); - flags = currentResource; + setInitialProperties(lanes, current, flags); + lanes[internalInstanceKey] = finishedWork; + markNodeAsHoistable(lanes); + current = lanes; break a; case "link": - var maybeNodes = getHydratableHoistableCache( - "link", - "href", - existingHiddenCallbacks - ).get(flags + (current.href || "")); - if (maybeNodes) - for (var i = 0; i < maybeNodes.length; i++) + if ( + (hoistableRoot = getHydratableHoistableCache( + "link", + "href", + root + ).get(current + (flags.href || ""))) + ) + for (var i = 0; i < hoistableRoot.length; i++) if ( - ((currentResource = maybeNodes[i]), - currentResource.getAttribute("href") === - (null == current.href || "" === current.href + ((lanes = hoistableRoot[i]), + lanes.getAttribute("href") === + (null == flags.href || "" === flags.href ? null - : current.href) && - currentResource.getAttribute("rel") === - (null == current.rel ? null : current.rel) && - currentResource.getAttribute("title") === - (null == current.title - ? null - : current.title) && - currentResource.getAttribute("crossorigin") === - (null == current.crossOrigin + : flags.href) && + lanes.getAttribute("rel") === + (null == flags.rel ? null : flags.rel) && + lanes.getAttribute("title") === + (null == flags.title ? null : flags.title) && + lanes.getAttribute("crossorigin") === + (null == flags.crossOrigin ? null - : current.crossOrigin)) + : flags.crossOrigin)) ) { - maybeNodes.splice(i, 1); + hoistableRoot.splice(i, 1); break b; } - currentResource = - existingHiddenCallbacks.createElement(flags); - setInitialProperties(currentResource, flags, current); - existingHiddenCallbacks.head.appendChild( - currentResource - ); + lanes = root.createElement(current); + setInitialProperties(lanes, current, flags); + root.head.appendChild(lanes); break; case "meta": if ( - (maybeNodes = getHydratableHoistableCache( + (hoistableRoot = getHydratableHoistableCache( "meta", "content", - existingHiddenCallbacks - ).get(flags + (current.content || ""))) + root + ).get(current + (flags.content || ""))) ) - for (i = 0; i < maybeNodes.length; i++) + for (i = 0; i < hoistableRoot.length; i++) if ( - ((currentResource = maybeNodes[i]), + ((lanes = hoistableRoot[i]), checkAttributeStringCoercion( - current.content, + flags.content, "content" ), - currentResource.getAttribute("content") === - (null == current.content + lanes.getAttribute("content") === + (null == flags.content ? null - : "" + current.content) && - currentResource.getAttribute("name") === - (null == current.name + : "" + flags.content) && + lanes.getAttribute("name") === + (null == flags.name ? null : flags.name) && + lanes.getAttribute("property") === + (null == flags.property ? null - : current.name) && - currentResource.getAttribute("property") === - (null == current.property + : flags.property) && + lanes.getAttribute("http-equiv") === + (null == flags.httpEquiv ? null - : current.property) && - currentResource.getAttribute("http-equiv") === - (null == current.httpEquiv + : flags.httpEquiv) && + lanes.getAttribute("charset") === + (null == flags.charSet ? null - : current.httpEquiv) && - currentResource.getAttribute("charset") === - (null == current.charSet - ? null - : current.charSet)) + : flags.charSet)) ) { - maybeNodes.splice(i, 1); + hoistableRoot.splice(i, 1); break b; } - currentResource = - existingHiddenCallbacks.createElement(flags); - setInitialProperties(currentResource, flags, current); - existingHiddenCallbacks.head.appendChild( - currentResource - ); + lanes = root.createElement(current); + setInitialProperties(lanes, current, flags); + root.head.appendChild(lanes); break; default: throw Error( 'getNodesForType encountered a type it did not expect: "' + - flags + + current + '". This is a bug in React.' ); } - currentResource[internalInstanceKey] = finishedWork; - markNodeAsHoistable(currentResource); - flags = currentResource; + lanes[internalInstanceKey] = finishedWork; + markNodeAsHoistable(lanes); + current = lanes; } - finishedWork.stateNode = flags; + finishedWork.stateNode = current; } else mountHoistable( - existingHiddenCallbacks, + hoistableRoot, finishedWork.type, finishedWork.stateNode ); else finishedWork.stateNode = acquireResource( - existingHiddenCallbacks, + hoistableRoot, flags, finishedWork.memoizedProps ); else - currentResource !== flags - ? (null === currentResource + root !== flags + ? (null === root ? null !== current.stateNode && ((current = current.stateNode), current.parentNode.removeChild(current)) - : currentResource.count--, + : root.count--, null === flags ? mountHoistable( - existingHiddenCallbacks, + hoistableRoot, finishedWork.type, finishedWork.stateNode ) : acquireResource( - existingHiddenCallbacks, + hoistableRoot, flags, finishedWork.memoizedProps )) @@ -14864,10 +15745,9 @@ finishedWork.memoizedProps, current.memoizedProps ); - } break; case 27: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 512 && (offscreenSubtreeWasHidden || @@ -14882,31 +15762,28 @@ ); break; case 5: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 512 && (offscreenSubtreeWasHidden || null === current || safelyDetachRef(current, current.return)); if (finishedWork.flags & 32) { - existingHiddenCallbacks = finishedWork.stateNode; + root = finishedWork.stateNode; try { - runWithFiberInDEV( - finishedWork, - resetTextContent, - existingHiddenCallbacks - ); + runWithFiberInDEV(finishedWork, resetTextContent, root), + (viewTransitionMutationContext = !0); } catch (error) { captureCommitPhaseError(finishedWork, finishedWork.return, error); } } flags & 4 && null != finishedWork.stateNode && - ((existingHiddenCallbacks = finishedWork.memoizedProps), + ((root = finishedWork.memoizedProps), commitHostUpdate( finishedWork, - existingHiddenCallbacks, - null !== current ? current.memoizedProps : existingHiddenCallbacks + root, + null !== current ? current.memoizedProps : root )); flags & 1024 && ((needsFormReset = !0), @@ -14916,7 +15793,7 @@ )); break; case 6: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); if (flags & 4) { if (null === finishedWork.stateNode) @@ -14925,27 +15802,29 @@ ); flags = finishedWork.memoizedProps; current = null !== current ? current.memoizedProps : flags; - existingHiddenCallbacks = finishedWork.stateNode; + root = finishedWork.stateNode; try { runWithFiberInDEV( finishedWork, commitTextUpdate, - existingHiddenCallbacks, + root, current, flags - ); + ), + (viewTransitionMutationContext = !0); } catch (error) { captureCommitPhaseError(finishedWork, finishedWork.return, error); } } break; case 3: - existingHiddenCallbacks = pushNestedEffectDurations(); + hoistableRoot = pushNestedEffectDurations(); + viewTransitionMutationContext = !1; tagCaches = null; - currentResource = currentHoistableRoot; + i = currentHoistableRoot; currentHoistableRoot = getHoistableRoot(root.containerInfo); - recursivelyTraverseMutationEffects(root, finishedWork); - currentHoistableRoot = currentResource; + recursivelyTraverseMutationEffects(root, finishedWork, lanes); + currentHoistableRoot = i; commitReconciliationEffects(finishedWork); if ( flags & 4 && @@ -14963,62 +15842,66 @@ } needsFormReset && ((needsFormReset = !1), recursivelyResetForms(finishedWork)); - root.effectDuration += popNestedEffectDurations( - existingHiddenCallbacks - ); + root.effectDuration += popNestedEffectDurations(hoistableRoot); + viewTransitionMutationContext = !1; break; case 4: + current = pushMutationContext(); flags = currentHoistableRoot; currentHoistableRoot = getHoistableRoot( finishedWork.stateNode.containerInfo ); - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); currentHoistableRoot = flags; + viewTransitionMutationContext && + inUpdateViewTransition && + (rootViewTransitionAffected = !0); + viewTransitionMutationContext = current; break; case 12: - flags = pushNestedEffectDurations(); - recursivelyTraverseMutationEffects(root, finishedWork); + current = pushNestedEffectDurations(); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); finishedWork.stateNode.effectDuration += - bubbleNestedEffectDurations(flags); + bubbleNestedEffectDurations(current); break; case 31: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 4 && - ((flags = finishedWork.updateQueue), - null !== flags && + ((current = finishedWork.updateQueue), + null !== current && ((finishedWork.updateQueue = null), - attachSuspenseRetryListeners(finishedWork, flags))); + attachSuspenseRetryListeners(finishedWork, current))); break; case 13: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); finishedWork.child.flags & 8192 && (null !== finishedWork.memoizedState) !== (null !== current && null !== current.memoizedState) && (globalMostRecentFallbackTime = now$1()); flags & 4 && - ((flags = finishedWork.updateQueue), - null !== flags && + ((current = finishedWork.updateQueue), + null !== current && ((finishedWork.updateQueue = null), - attachSuspenseRetryListeners(finishedWork, flags))); + attachSuspenseRetryListeners(finishedWork, current))); break; case 22: - existingHiddenCallbacks = null !== finishedWork.memoizedState; + hoistableRoot = null !== finishedWork.memoizedState; var wasHidden = null !== current && null !== current.memoizedState, prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden, prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden; offscreenSubtreeIsHidden = - prevOffscreenSubtreeIsHidden || existingHiddenCallbacks; + prevOffscreenSubtreeIsHidden || hoistableRoot; offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden; - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden; offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden; wasHidden && - !existingHiddenCallbacks && + !hoistableRoot && !prevOffscreenSubtreeIsHidden && !prevOffscreenSubtreeWasHidden && (finishedWork.mode & ProfileMode) !== NoMode && @@ -15034,10 +15917,10 @@ if (flags & 8192) a: for ( root = finishedWork.stateNode, - root._visibility = existingHiddenCallbacks + root._visibility = hoistableRoot ? root._visibility & ~OffscreenVisible : root._visibility | OffscreenVisible, - !existingHiddenCallbacks || + !hoistableRoot || null === current || wasHidden || offscreenSubtreeIsHidden || @@ -15060,64 +15943,57 @@ ) { if (5 === root.tag || 26 === root.tag) { if (null === current) { - wasHidden = current = root; + lanes = current = root; try { - (currentResource = wasHidden.stateNode), - existingHiddenCallbacks - ? runWithFiberInDEV( - wasHidden, - hideInstance, - currentResource - ) + (i = lanes.stateNode), + hoistableRoot + ? runWithFiberInDEV(lanes, hideInstance, i) : runWithFiberInDEV( - wasHidden, + lanes, unhideInstance, - wasHidden.stateNode, - wasHidden.memoizedProps + lanes.stateNode, + lanes.memoizedProps ); } catch (error) { - captureCommitPhaseError(wasHidden, wasHidden.return, error); + captureCommitPhaseError(lanes, lanes.return, error); } } } else if (6 === root.tag) { if (null === current) { - wasHidden = root; + lanes = root; try { - (maybeNodes = wasHidden.stateNode), - existingHiddenCallbacks - ? runWithFiberInDEV( - wasHidden, - hideTextInstance, - maybeNodes - ) - : runWithFiberInDEV( - wasHidden, - unhideTextInstance, - maybeNodes, - wasHidden.memoizedProps - ); + var instance = lanes.stateNode; + hoistableRoot + ? runWithFiberInDEV(lanes, hideTextInstance, instance) + : runWithFiberInDEV( + lanes, + unhideTextInstance, + instance, + lanes.memoizedProps + ); + viewTransitionMutationContext = !0; } catch (error) { - captureCommitPhaseError(wasHidden, wasHidden.return, error); + captureCommitPhaseError(lanes, lanes.return, error); } } } else if (18 === root.tag) { if (null === current) { - wasHidden = root; + lanes = root; try { - (i = wasHidden.stateNode), - existingHiddenCallbacks - ? runWithFiberInDEV( - wasHidden, - hideDehydratedBoundary, - i - ) - : runWithFiberInDEV( - wasHidden, - unhideDehydratedBoundary, - wasHidden.stateNode - ); + var instance$jscomp$0 = lanes.stateNode; + hoistableRoot + ? runWithFiberInDEV( + lanes, + hideDehydratedBoundary, + instance$jscomp$0 + ) + : runWithFiberInDEV( + lanes, + unhideDehydratedBoundary, + lanes.stateNode + ); } catch (error) { - captureCommitPhaseError(wasHidden, wasHidden.return, error); + captureCommitPhaseError(lanes, lanes.return, error); } } } else if ( @@ -15142,28 +16018,52 @@ root = root.sibling; } flags & 4 && - ((flags = finishedWork.updateQueue), - null !== flags && - ((current = flags.retryQueue), - null !== current && - ((flags.retryQueue = null), - attachSuspenseRetryListeners(finishedWork, current)))); + ((current = finishedWork.updateQueue), + null !== current && + ((flags = current.retryQueue), + null !== flags && + ((current.retryQueue = null), + attachSuspenseRetryListeners(finishedWork, flags)))); break; case 19: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 4 && - ((flags = finishedWork.updateQueue), - null !== flags && + ((current = finishedWork.updateQueue), + null !== current && ((finishedWork.updateQueue = null), - attachSuspenseRetryListeners(finishedWork, flags))); + attachSuspenseRetryListeners(finishedWork, current))); break; case 30: + flags & 512 && + (offscreenSubtreeWasHidden || + null === current || + safelyDetachRef(current, current.return)); + flags = pushMutationContext(); + hoistableRoot = inUpdateViewTransition; + i = (lanes & 335544064) === lanes; + instance = finishedWork.memoizedProps; + inUpdateViewTransition = + i && + "none" !== + getViewTransitionClassName(instance.default, instance.update); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); + commitReconciliationEffects(finishedWork); + i && + null !== current && + viewTransitionMutationContext && + (finishedWork.flags |= 4); + inUpdateViewTransition = hoistableRoot; + viewTransitionMutationContext = flags; break; case 21: break; + case 7: + current && + null !== current.stateNode && + (current.stateNode._fragmentFiber = finishedWork); default: - recursivelyTraverseMutationEffects(root, finishedWork), + recursivelyTraverseMutationEffects(root, finishedWork, lanes), commitReconciliationEffects(finishedWork); } (finishedWork.mode & ProfileMode) !== NoMode && @@ -15217,6 +16117,133 @@ parentFiber = parentFiber.sibling; } } + function recursivelyTraverseAfterMutationEffects(root, parentFiber) { + if (parentFiber.subtreeFlags & 9270) + for (parentFiber = parentFiber.child; null !== parentFiber; ) + commitAfterMutationEffectsOnFiber(parentFiber, root), + (parentFiber = parentFiber.sibling); + else measureNestedViewTransitions(parentFiber, !1); + } + function commitAfterMutationEffectsOnFiber(finishedWork, root) { + var current = finishedWork.alternate; + if (null === current) commitEnterViewTransitions(finishedWork, !1); + else + switch (finishedWork.tag) { + case 3: + rootViewTransitionNameCanceled = viewTransitionContextChanged = !1; + pushViewTransitionCancelableScope(); + recursivelyTraverseAfterMutationEffects(root, finishedWork); + if (!viewTransitionContextChanged && !rootViewTransitionAffected) { + finishedWork = viewTransitionCancelableChildren; + if (null !== finishedWork) + for (var i = 0; i < finishedWork.length; i += 3) { + current = finishedWork[i]; + var oldName = finishedWork[i + 1]; + restoreViewTransitionName(current, finishedWork[i + 2]); + current = current.ownerDocument.documentElement; + null !== current && + current.animate( + { opacity: [0, 0], pointerEvents: ["none", "none"] }, + { + duration: 0, + fill: "forwards", + pseudoElement: + "::view-transition-group(" + oldName + ")" + } + ); + } + finishedWork = root.containerInfo; + finishedWork = + 9 === finishedWork.nodeType + ? finishedWork.documentElement + : finishedWork.ownerDocument.documentElement; + null !== finishedWork && + "" === finishedWork.style.viewTransitionName && + ((finishedWork.style.viewTransitionName = "none"), + finishedWork.animate( + { opacity: [0, 0], pointerEvents: ["none", "none"] }, + { + duration: 0, + fill: "forwards", + pseudoElement: "::view-transition-group(root)" + } + ), + finishedWork.animate( + { width: [0, 0], height: [0, 0] }, + { + duration: 0, + fill: "forwards", + pseudoElement: "::view-transition" + } + )); + rootViewTransitionNameCanceled = !0; + } + viewTransitionCancelableChildren = null; + break; + case 5: + recursivelyTraverseAfterMutationEffects(root, finishedWork); + break; + case 4: + i = viewTransitionContextChanged; + viewTransitionContextChanged = !1; + recursivelyTraverseAfterMutationEffects(root, finishedWork); + viewTransitionContextChanged && (rootViewTransitionAffected = !0); + viewTransitionContextChanged = i; + break; + case 22: + null === finishedWork.memoizedState && + (null !== current.memoizedState + ? commitEnterViewTransitions(finishedWork, !1) + : recursivelyTraverseAfterMutationEffects(root, finishedWork)); + break; + case 30: + i = viewTransitionContextChanged; + oldName = pushViewTransitionCancelableScope(); + viewTransitionContextChanged = !1; + recursivelyTraverseAfterMutationEffects(root, finishedWork); + viewTransitionContextChanged && (finishedWork.flags |= 4); + var props = finishedWork.memoizedProps, + state = finishedWork.stateNode; + root = getViewTransitionName(props, state); + state = getViewTransitionName(current.memoizedProps, state); + var className = getViewTransitionClassName( + props.default, + props.update + ); + "none" === className + ? (root = !1) + : ((props = current.memoizedState), + (current.memoizedState = null), + (current = finishedWork.child), + (viewTransitionHostInstanceIdx = 0), + (root = measureViewTransitionHostInstancesRecursive( + finishedWork, + current, + root, + state, + className, + props, + !0 + )), + viewTransitionHostInstanceIdx !== + (null === props ? 0 : props.length) && + (finishedWork.flags |= 32)); + 0 !== (finishedWork.flags & 4) && root + ? (scheduleViewTransitionEvent( + finishedWork, + finishedWork.memoizedProps.onUpdate + ), + (viewTransitionCancelableChildren = oldName)) + : null !== oldName && + (oldName.push.apply(oldName, viewTransitionCancelableChildren), + (viewTransitionCancelableChildren = oldName)); + viewTransitionContextChanged = + 0 !== (finishedWork.flags & 32) ? !0 : i; + break; + default: + recursivelyTraverseAfterMutationEffects(root, finishedWork); + } + } function recursivelyTraverseLayoutEffects(root, parentFiber) { if (parentFiber.subtreeFlags & 8772) for (parentFiber = parentFiber.child; null !== parentFiber; ) @@ -15260,6 +16287,8 @@ case 26: case 5: safelyDetachRef(finishedWork, finishedWork.return); + 5 === finishedWork.tag && + commitFragmentInstanceDeletionEffects(finishedWork); recursivelyTraverseDisappearLayoutEffects(finishedWork); break; case 22: @@ -15267,8 +16296,13 @@ recursivelyTraverseDisappearLayoutEffects(finishedWork); break; case 30: + finishedWork.flags & 18874368 && + untrackNamedViewTransition(finishedWork); + safelyDetachRef(finishedWork, finishedWork.return); recursivelyTraverseDisappearLayoutEffects(finishedWork); break; + case 7: + safelyDetachRef(finishedWork, finishedWork.return); default: recursivelyTraverseDisappearLayoutEffects(finishedWork); } @@ -15352,6 +16386,16 @@ commitHostSingletonAcquisition(finishedWork); case 26: case 5: + if (5 === finishedWork.tag) + a: for (var parent = finishedWork.return; null !== parent; ) { + isFragmentInstanceParent(parent) && + commitNewChildToFragmentInstance( + finishedWork.stateNode, + parent.stateNode + ); + if (isHostParent(parent)) break a; + parent = parent.return; + } recursivelyTraverseReappearLayoutEffects( finishedRoot, finishedWork, @@ -15423,7 +16467,16 @@ safelyAttachRef(finishedWork, finishedWork.return); break; case 30: + recursivelyTraverseReappearLayoutEffects( + finishedRoot, + finishedWork, + includeWorkInProgressEffects + ); + flags & 18874368 && trackNamedViewTransition(finishedWork); + safelyAttachRef(finishedWork, finishedWork.return); break; + case 7: + safelyAttachRef(finishedWork, finishedWork.return); default: recursivelyTraverseReappearLayoutEffects( finishedRoot, @@ -15492,23 +16545,28 @@ committedTransitions, endTime ) { + var isViewTransitionEligible = + (committedLanes & 335544064) === committedLanes; if ( - parentFiber.subtreeFlags & 10256 || + parentFiber.subtreeFlags & (isViewTransitionEligible ? 10262 : 10256) || (0 !== parentFiber.actualDuration && (null === parentFiber.alternate || parentFiber.alternate.child !== parentFiber.child)) ) - for (parentFiber = parentFiber.child; null !== parentFiber; ) { - var nextSibling = parentFiber.sibling; - commitPassiveMountOnFiber( - root, - parentFiber, - committedLanes, - committedTransitions, - null !== nextSibling ? nextSibling.actualStartTime : endTime - ); - parentFiber = nextSibling; - } + for (parentFiber = parentFiber.child; null !== parentFiber; ) + (isViewTransitionEligible = parentFiber.sibling), + commitPassiveMountOnFiber( + root, + parentFiber, + committedLanes, + committedTransitions, + null !== isViewTransitionEligible + ? isViewTransitionEligible.actualStartTime + : endTime + ), + (parentFiber = isViewTransitionEligible); + else + isViewTransitionEligible && restoreNestedViewTransitions(parentFiber); } function commitPassiveMountOnFiber( finishedRoot, @@ -15522,7 +16580,14 @@ prevEffectErrors = pushComponentEffectErrors(), prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(), prevDeepEquality = alreadyWarnedForDeepEquality, - flags = finishedWork.flags; + isViewTransitionEligible = + (committedLanes & 335544064) === committedLanes; + isViewTransitionEligible && + null === finishedWork.alternate && + null !== finishedWork.return && + null !== finishedWork.return.alternate && + restoreEnterOrExitViewTransitions(finishedWork); + var flags = finishedWork.flags; switch (finishedWork.tag) { case 0: case 11: @@ -15588,6 +16653,21 @@ endTime ); inHydratedSubtree = wasInHydratedSubtree; + isViewTransitionEligible && + rootViewTransitionNameCanceled && + ((committedLanes = finishedRoot.containerInfo), + (committedLanes = + 9 === committedLanes.nodeType + ? committedLanes.body + : "HTML" === committedLanes.nodeName + ? committedLanes.ownerDocument.body + : committedLanes), + "root" === committedLanes.style.viewTransitionName && + (committedLanes.style.viewTransitionName = ""), + (committedLanes = committedLanes.ownerDocument.documentElement), + null !== committedLanes && + "none" === committedLanes.style.viewTransitionName && + (committedLanes.style.viewTransitionName = "")); flags & 2048 && ((committedLanes = null), null !== finishedWork.alternate && @@ -15640,12 +16720,13 @@ null !== finishedWork.alternate ? finishedWork.alternate.memoizedState : null; - wasInHydratedSubtree = finishedWork.memoizedState; - null !== prevProfilerEffectDuration && null === wasInHydratedSubtree - ? ((wasInHydratedSubtree = finishedWork.deletions), - null !== wasInHydratedSubtree && - 0 < wasInHydratedSubtree.length && - 18 === wasInHydratedSubtree[0].tag + isViewTransitionEligible = finishedWork.memoizedState; + null !== prevProfilerEffectDuration && + null === isViewTransitionEligible + ? ((isViewTransitionEligible = finishedWork.deletions), + null !== isViewTransitionEligible && + 0 < isViewTransitionEligible.length && + 18 === isViewTransitionEligible[0].tag ? ((inHydratedSubtree = !1), (prevProfilerEffectDuration = prevProfilerEffectDuration.hydrationErrors), @@ -15673,16 +16754,16 @@ null !== finishedWork.alternate ? finishedWork.alternate.memoizedState : null; - wasInHydratedSubtree = finishedWork.memoizedState; + isViewTransitionEligible = finishedWork.memoizedState; null === prevProfilerEffectDuration || null === prevProfilerEffectDuration.dehydrated || - (null !== wasInHydratedSubtree && - null !== wasInHydratedSubtree.dehydrated) + (null !== isViewTransitionEligible && + null !== isViewTransitionEligible.dehydrated) ? (inHydratedSubtree = !1) - : ((wasInHydratedSubtree = finishedWork.deletions), - null !== wasInHydratedSubtree && - 0 < wasInHydratedSubtree.length && - 18 === wasInHydratedSubtree[0].tag + : ((isViewTransitionEligible = finishedWork.deletions), + null !== isViewTransitionEligible && + 0 < isViewTransitionEligible.length && + 18 === isViewTransitionEligible[0].tag ? ((inHydratedSubtree = !1), (prevProfilerEffectDuration = prevProfilerEffectDuration.hydrationErrors), @@ -15709,58 +16790,71 @@ wasInHydratedSubtree = finishedWork.stateNode; prevProfilerEffectDuration = finishedWork.alternate; null !== finishedWork.memoizedState - ? wasInHydratedSubtree._visibility & + ? (isViewTransitionEligible && + null !== prevProfilerEffectDuration && + null === prevProfilerEffectDuration.memoizedState && + restoreEnterOrExitViewTransitions(prevProfilerEffectDuration), + wasInHydratedSubtree._visibility & OffscreenPassiveEffectsConnected - ? recursivelyTraversePassiveMountEffects( - finishedRoot, - finishedWork, - committedLanes, - committedTransitions, - endTime - ) - : recursivelyTraverseAtomicPassiveEffects( - finishedRoot, - finishedWork, - committedLanes, - committedTransitions, - endTime - ) - : wasInHydratedSubtree._visibility & - OffscreenPassiveEffectsConnected - ? recursivelyTraversePassiveMountEffects( - finishedRoot, - finishedWork, - committedLanes, - committedTransitions, - endTime - ) - : ((wasInHydratedSubtree._visibility |= - OffscreenPassiveEffectsConnected), - recursivelyTraverseReconnectPassiveEffects( - finishedRoot, - finishedWork, - committedLanes, - committedTransitions, - 0 !== (finishedWork.subtreeFlags & 10256) || - (0 !== finishedWork.actualDuration && - (null === finishedWork.alternate || - finishedWork.alternate.child !== finishedWork.child)), - endTime - ), - (finishedWork.mode & ProfileMode) === NoMode || - inHydratedSubtree || - ((finishedRoot = finishedWork.actualStartTime), - 0 <= finishedRoot && - 0.05 < endTime - finishedRoot && - logComponentReappeared(finishedWork, finishedRoot, endTime), - 0 <= componentEffectStartTime && - 0 <= componentEffectEndTime && - 0.05 < componentEffectEndTime - componentEffectStartTime && - logComponentReappeared( - finishedWork, - componentEffectStartTime, - componentEffectEndTime - ))); + ? recursivelyTraversePassiveMountEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions, + endTime + ) + : recursivelyTraverseAtomicPassiveEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions, + endTime + )) + : (isViewTransitionEligible && + null !== prevProfilerEffectDuration && + null !== prevProfilerEffectDuration.memoizedState && + restoreEnterOrExitViewTransitions(finishedWork), + wasInHydratedSubtree._visibility & + OffscreenPassiveEffectsConnected + ? recursivelyTraversePassiveMountEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions, + endTime + ) + : ((wasInHydratedSubtree._visibility |= + OffscreenPassiveEffectsConnected), + recursivelyTraverseReconnectPassiveEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions, + 0 !== (finishedWork.subtreeFlags & 10256) || + (0 !== finishedWork.actualDuration && + (null === finishedWork.alternate || + finishedWork.alternate.child !== finishedWork.child)), + endTime + ), + (finishedWork.mode & ProfileMode) === NoMode || + inHydratedSubtree || + ((finishedRoot = finishedWork.actualStartTime), + 0 <= finishedRoot && + 0.05 < endTime - finishedRoot && + logComponentReappeared( + finishedWork, + finishedRoot, + endTime + ), + 0 <= componentEffectStartTime && + 0 <= componentEffectEndTime && + 0.05 < + componentEffectEndTime - componentEffectStartTime && + logComponentReappeared( + finishedWork, + componentEffectStartTime, + componentEffectEndTime + )))); flags & 2048 && commitOffscreenPassiveMountEffects( prevProfilerEffectDuration, @@ -15778,6 +16872,20 @@ flags & 2048 && commitCachePassiveMountEffect(finishedWork.alternate, finishedWork); break; + case 30: + isViewTransitionEligible && + ((flags = finishedWork.alternate), + null !== flags && + (restoreViewTransitionOnHostInstances(flags.child, !0), + restoreViewTransitionOnHostInstances(finishedWork.child, !0))); + recursivelyTraversePassiveMountEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions, + endTime + ); + break; default: recursivelyTraversePassiveMountEffects( finishedRoot, @@ -16069,13 +17177,16 @@ suspendedState ); fiber.flags & suspenseyCommitFlag && - null !== fiber.memoizedState && - suspendResource( - suspendedState, - currentHoistableRoot, - fiber.memoizedState, - fiber.memoizedProps - ); + (null !== fiber.memoizedState + ? suspendResource( + suspendedState, + currentHoistableRoot, + fiber.memoizedState, + fiber.memoizedProps + ) + : ((fiber = fiber.stateNode), + (committedLanes & 335544128) === committedLanes && + suspendInstance(suspendedState, fiber))); break; case 5: recursivelyAccumulateSuspenseyCommit( @@ -16083,6 +17194,10 @@ committedLanes, suspendedState ); + fiber.flags & suspenseyCommitFlag && + ((fiber = fiber.stateNode), + (committedLanes & 335544128) === committedLanes && + suspendInstance(suspendedState, fiber)); break; case 3: case 4: @@ -16116,6 +17231,24 @@ suspendedState )); break; + case 30: + if ( + 0 !== (fiber.flags & suspenseyCommitFlag) && + ((previousHoistableRoot = fiber.memoizedProps.name), + null != previousHoistableRoot && "auto" !== previousHoistableRoot) + ) { + var state = fiber.stateNode; + state.paired = null; + null === appearingViewTransitions && + (appearingViewTransitions = new Map()); + appearingViewTransitions.set(previousHoistableRoot, state); + } + recursivelyAccumulateSuspenseyCommit( + fiber, + committedLanes, + suspendedState + ); + break; default: recursivelyAccumulateSuspenseyCommit( fiber, @@ -16421,6 +17554,20 @@ null !== lane && (lane.flags |= 32); return workInProgressDeferredLane; } + function scheduleViewTransitionEvent(fiber, callback) { + if (null != callback) { + var state = fiber.stateNode, + instance = state.ref; + null === instance && + (instance = state.ref = + createViewTransitionInstance( + getViewTransitionName(fiber.memoizedProps, state) + )); + null === pendingViewTransitionEvents && + (pendingViewTransitionEvents = []); + pendingViewTransitionEvents.push(callback.bind(null, instance)); + } + } function scheduleUpdateOnFiber(root, fiber, lane) { isRunningInsertionEffect && console.error("useInsertionEffect must not schedule updates."); @@ -16824,8 +17971,13 @@ ) { root.timeoutHandle = noTimeout; var subtreeFlags = finishedWork.subtreeFlags, + isViewTransitionEligible = (lanes & 335544064) === lanes, suspendedState = null; - if (subtreeFlags & 8192 || 16785408 === (subtreeFlags & 16785408)) + if ( + isViewTransitionEligible || + subtreeFlags & 8192 || + 16785408 === (subtreeFlags & 16785408) + ) if ( ((suspendedState = { stylesheets: null, @@ -16837,7 +17989,24 @@ waitingForViewTransition: !1, unsuspend: noop$1 }), + (appearingViewTransitions = null), accumulateSuspenseyCommitOnFiber(finishedWork, lanes, suspendedState), + isViewTransitionEligible && + ((subtreeFlags = suspendedState), + (isViewTransitionEligible = root.containerInfo), + (isViewTransitionEligible = ( + 9 === isViewTransitionEligible.nodeType + ? isViewTransitionEligible + : isViewTransitionEligible.ownerDocument + ).__reactViewTransition), + null != isViewTransitionEligible && + (subtreeFlags.count++, + (subtreeFlags.waitingForViewTransition = !0), + (subtreeFlags = onUnsuspend.bind(subtreeFlags)), + isViewTransitionEligible.finished.then( + subtreeFlags, + subtreeFlags + ))), (subtreeFlags = (lanes & 62914560) === lanes ? globalMostRecentFallbackTime - now$1() @@ -17974,10 +19143,15 @@ pendingEffectsRenderEndTime = completedRenderEndTime; pendingSuspendedCommitReason = suspendedCommitReason; pendingDelayedCommitReason = IMMEDIATE_COMMIT; - pendingSuspendedViewTransitionReason = null; + pendingViewTransitionEvents = pendingSuspendedViewTransitionReason = + null; + (lanes & 335544064) === lanes + ? ((pendingTransitionTypes = claimQueuedTransitionTypes(root)), + (recoverableErrors = 10262)) + : ((pendingTransitionTypes = null), (recoverableErrors = 10256)); 0 !== finishedWork.actualDuration || - 0 !== (finishedWork.subtreeFlags & 10256) || - 0 !== (finishedWork.flags & 10256) + 0 !== (finishedWork.subtreeFlags & recoverableErrors) || + 0 !== (finishedWork.flags & recoverableErrors) ? ((root.callbackNode = null), (root.callbackPriority = 0), scheduleCallback$1(NormalPriority$1, function () { @@ -17997,28 +19171,98 @@ suspendedCommitReason, workInProgressUpdateTask ); - recoverableErrors = 0 !== (finishedWork.flags & 13878); - if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) { - recoverableErrors = ReactSharedInternals.T; + shouldStartViewTransition = !1; + suspendedCommitReason = 0 !== (finishedWork.flags & 13878); + if ( + 0 !== (finishedWork.subtreeFlags & 13878) || + suspendedCommitReason + ) { + suspendedCommitReason = ReactSharedInternals.T; ReactSharedInternals.T = null; - transitions = ReactDOMSharedInternals.p; + completedRenderEndTime = ReactDOMSharedInternals.p; ReactDOMSharedInternals.p = DiscreteEventPriority; - spawnedLane = executionContext; + recoverableErrors = executionContext; executionContext |= CommitContext; try { commitBeforeMutationEffects(root, finishedWork, lanes); } finally { - (executionContext = spawnedLane), - (ReactDOMSharedInternals.p = transitions), - (ReactSharedInternals.T = recoverableErrors); + (executionContext = recoverableErrors), + (ReactDOMSharedInternals.p = completedRenderEndTime), + (ReactSharedInternals.T = suspendedCommitReason); } } + finishedWork = shouldStartViewTransition; pendingEffectsStatus = PENDING_MUTATION_PHASE; - flushMutationEffects(); - flushLayoutEffects(); - flushSpawnedWork(); + finishedWork + ? ((animatingLanes |= lanes), + (animatingTask = null), + (pendingViewTransition = startViewTransition( + suspendedState, + root.containerInfo, + pendingTransitionTypes, + flushMutationEffects, + flushLayoutEffects, + flushAfterMutationEffects, + flushSpawnedWork, + flushPassiveEffects, + reportViewTransitionError, + suspendedViewTransition, + finishedViewTransition.bind(null, lanes) + ))) + : (flushMutationEffects(), flushLayoutEffects(), flushSpawnedWork()); + } + } + function reportViewTransitionError(error) { + if (pendingEffectsStatus !== NO_PENDING_EFFECTS) { + var onRecoverableError = pendingEffectsRoot.onRecoverableError; + onRecoverableError(error, makeErrorInfo(null)); } } + function suspendedViewTransition(reason) { + commitEndTime = now(); + logCommitPhase( + null === pendingSuspendedCommitReason + ? pendingEffectsRenderEndTime + : commitStartTime, + commitEndTime, + commitErrors, + pendingDelayedCommitReason === ABORTED_VIEW_TRANSITION_COMMIT, + workInProgressUpdateTask + ); + pendingSuspendedCommitReason = pendingSuspendedViewTransitionReason = + reason; + } + function finishedViewTransition(lanes) { + if (0 !== (animatingLanes & lanes)) { + var task = animatingTask; + animatingLanes &= ~lanes; + animatingTask = null; + 0 !== (lanes & 4194048) && + 0 === (workInProgressRootRenderLanes & 4194048) && + 0 === (pendingEffectsLanes & 4194048) && + (setCurrentTrackFromLanes(256), + logAnimatingPhase(transitionClampTime, now$1(), task)); + 0 !== (lanes & 62914560) && + 0 === (workInProgressRootRenderLanes & 62914560) && + 0 === (pendingEffectsLanes & 62914560) && + (setCurrentTrackFromLanes(4194304), + logAnimatingPhase(retryClampTime, now$1(), task)); + 0 !== (lanes & 2080374784) && + 0 === (workInProgressRootRenderLanes & 2080374784) && + 0 === (pendingEffectsLanes & 2080374784) && + (setCurrentTrackFromLanes(268435456), + logAnimatingPhase(idleClampTime, now$1(), task)); + } + } + function flushAfterMutationEffects() { + pendingEffectsStatus === PENDING_AFTER_MUTATION_PHASE && + ((pendingEffectsStatus = NO_PENDING_EFFECTS), + commitAfterMutationEffectsOnFiber( + pendingFinishedWork, + pendingEffectsRoot + ), + (pendingEffectsStatus = PENDING_SPAWNED_WORK)); + } function flushMutationEffects() { if (pendingEffectsStatus === PENDING_MUTATION_PHASE) { pendingEffectsStatus = NO_PENDING_EFFECTS; @@ -18039,8 +19283,9 @@ try { inProgressLanes = lanes; inProgressRoot = root; + inUpdateViewTransition = rootViewTransitionAffected = !1; resetComponentEffectTimers(); - commitMutationEffectsOnFiber(finishedWork, root); + commitMutationEffectsOnFiber(finishedWork, root, lanes); inProgressRoot = inProgressLanes = null; lanes = selectionInformation; var curFocusedElem = getActiveElementDeep(root.containerInfo), @@ -18214,41 +19459,13 @@ suspendedViewTransitionReason = pendingEffectsRenderEndTime; startTime = pendingSuspendedCommitReason; commitEndTime = now(); - suspendedViewTransitionReason = - null === startTime ? suspendedViewTransitionReason : commitStartTime; - startTime = commitEndTime; - endTime = pendingDelayedCommitReason === ABORTED_VIEW_TRANSITION_COMMIT; - rootHasLayoutEffect = workInProgressUpdateTask; - null !== commitErrors - ? logCommitErrored( - suspendedViewTransitionReason, - startTime, - commitErrors, - !1, - rootHasLayoutEffect - ) - : !supportsUserTiming || - startTime <= suspendedViewTransitionReason || - (rootHasLayoutEffect - ? rootHasLayoutEffect.run( - console.timeStamp.bind( - console, - endTime ? "Commit Interrupted View Transition" : "Commit", - suspendedViewTransitionReason, - startTime, - currentTrack, - LANES_TRACK_GROUP, - endTime ? "error" : "secondary-dark" - ) - ) - : console.timeStamp( - endTime ? "Commit Interrupted View Transition" : "Commit", - suspendedViewTransitionReason, - startTime, - currentTrack, - LANES_TRACK_GROUP, - endTime ? "error" : "secondary-dark" - )); + logCommitPhase( + null === startTime ? suspendedViewTransitionReason : commitStartTime, + commitEndTime, + commitErrors, + pendingDelayedCommitReason === ABORTED_VIEW_TRANSITION_COMMIT, + workInProgressUpdateTask + ); pendingEffectsStatus = PENDING_AFTER_MUTATION_PHASE; } } @@ -18293,16 +19510,18 @@ (pendingDelayedCommitReason = ANIMATION_STARTED_COMMIT); } pendingEffectsStatus = NO_PENDING_EFFECTS; + pendingViewTransition = null; requestPaint(); startViewTransitionStartTime = pendingEffectsRoot; var finishedWork = pendingFinishedWork; endTime = pendingEffectsLanes; - abortedViewTransition = pendingRecoverableErrors; - var rootDidHavePassiveEffects = + var recoverableErrors = pendingRecoverableErrors; + abortedViewTransition = + (endTime & 335544064) === endTime ? 10262 : 10256; + (abortedViewTransition = 0 !== finishedWork.actualDuration || - 0 !== (finishedWork.subtreeFlags & 10256) || - 0 !== (finishedWork.flags & 10256); - rootDidHavePassiveEffects + 0 !== (finishedWork.subtreeFlags & abortedViewTransition) || + 0 !== (finishedWork.flags & abortedViewTransition)) ? (pendingEffectsStatus = PENDING_PASSIVE_PHASE) : ((pendingEffectsStatus = NO_PENDING_EFFECTS), (pendingFinishedWork = pendingEffectsRoot = null), @@ -18314,7 +19533,7 @@ (rootWithPassiveNestedUpdates = null)); var remainingLanes = startViewTransitionStartTime.pendingLanes; 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null); - rootDidHavePassiveEffects || + abortedViewTransition || commitDoubleInvokeEffectsInDEV(startViewTransitionStartTime); remainingLanes = lanesToEventPriority(endTime); finishedWork = finishedWork.stateNode; @@ -18357,7 +19576,7 @@ isDevToolsPresent && startViewTransitionStartTime.memoizedUpdaters.clear(); onCommitRoot(); - if (null !== abortedViewTransition) { + if (null !== recoverableErrors) { didError = ReactSharedInternals.T; schedulerPriority = ReactDOMSharedInternals.p; ReactDOMSharedInternals.p = DiscreteEventPriority; @@ -18367,10 +19586,10 @@ startViewTransitionStartTime.onRecoverableError; for ( finishedWork = 0; - finishedWork < abortedViewTransition.length; + finishedWork < recoverableErrors.length; finishedWork++ ) { - var recoverableError = abortedViewTransition[finishedWork], + var recoverableError = recoverableErrors[finishedWork], errorInfo = makeErrorInfo(recoverableError.stack); runWithFiberInDEV( recoverableError.source, @@ -18384,6 +19603,18 @@ (ReactDOMSharedInternals.p = schedulerPriority); } } + onRecoverableError = pendingViewTransitionEvents; + recoverableError = pendingTransitionTypes; + pendingTransitionTypes = null; + if (null !== onRecoverableError) + for ( + pendingViewTransitionEvents = null, + null === recoverableError && (recoverableError = []), + errorInfo = 0; + errorInfo < onRecoverableError.length; + errorInfo++ + ) + (0, onRecoverableError[errorInfo])(recoverableError); 0 !== (pendingEffectsLanes & 3) && flushPendingEffects(); ensureRootIsScheduled(startViewTransitionStartTime); remainingLanes = startViewTransitionStartTime.pendingLanes; @@ -18394,7 +19625,7 @@ : ((nestedUpdateCount = 0), (rootWithNestedUpdates = startViewTransitionStartTime))) : (nestedUpdateCount = 0); - rootDidHavePassiveEffects || finalizeRender(endTime, commitEndTime); + abortedViewTransition || finalizeRender(endTime, commitEndTime); flushSyncWorkAcrossRoots_impl(0, !1); } } @@ -18416,6 +19647,15 @@ ((root.pooledCache = null), releaseCache(remainingLanes))); } function flushPendingEffects() { + null !== pendingViewTransition && + (pendingViewTransition.skipTransition(), + didWarnAboutInterruptedViewTransitions || + ((didWarnAboutInterruptedViewTransitions = !0), + console.warn( + "A flushSync update cancelled a View Transition because it was called while the View Transition was still preparing. To preserve the synchronous semantics, React had to skip the View Transition. If you can, try to avoid flushSync() in a scenario that's likely to interfere." + )), + (pendingViewTransition = null), + (pendingDelayedCommitReason = ABORTED_VIEW_TRANSITION_COMMIT)); flushMutationEffects(); flushLayoutEffects(); flushSpawnedWork(); @@ -19520,12 +20760,12 @@ } if (0 === (eventSystemFlags & 7)) { a: { - reactName = - "mouseover" === domEventName || "pointerover" === domEventName; SyntheticEventCtor = + "mouseover" === domEventName || "pointerover" === domEventName; + reactName = "mouseout" === domEventName || "pointerout" === domEventName; if ( - reactName && + SyntheticEventCtor && nativeEvent !== currentReplayingEvent && (reactEventType = nativeEvent.relatedTarget || nativeEvent.fromElement) && @@ -19533,33 +20773,34 @@ reactEventType[internalContainerInstanceKey]) ) break a; - if (SyntheticEventCtor || reactName) { - reactName = + if (reactName || SyntheticEventCtor) { + reactEventType = nativeEventTarget.window === nativeEventTarget ? nativeEventTarget - : (reactName = nativeEventTarget.ownerDocument) - ? reactName.defaultView || reactName.parentWindow + : (SyntheticEventCtor = nativeEventTarget.ownerDocument) + ? SyntheticEventCtor.defaultView || + SyntheticEventCtor.parentWindow : window; - if (SyntheticEventCtor) { + if (reactName) { if ( - ((reactEventType = + ((SyntheticEventCtor = nativeEvent.relatedTarget || nativeEvent.toElement), - (SyntheticEventCtor = targetInst), - (reactEventType = reactEventType - ? getClosestInstanceFromNode(reactEventType) + (reactName = targetInst), + (SyntheticEventCtor = SyntheticEventCtor + ? getClosestInstanceFromNode(SyntheticEventCtor) : null), - null !== reactEventType && + null !== SyntheticEventCtor && ((accumulateTargetOnly = - getNearestMountedFiber(reactEventType)), - (inCapturePhase = reactEventType.tag), - reactEventType !== accumulateTargetOnly || + getNearestMountedFiber(SyntheticEventCtor)), + (inCapturePhase = SyntheticEventCtor.tag), + SyntheticEventCtor !== accumulateTargetOnly || (5 !== inCapturePhase && 27 !== inCapturePhase && 6 !== inCapturePhase))) ) - reactEventType = null; - } else (SyntheticEventCtor = null), (reactEventType = targetInst); - if (SyntheticEventCtor !== reactEventType) { + SyntheticEventCtor = null; + } else (reactName = null), (SyntheticEventCtor = targetInst); + if (reactName !== SyntheticEventCtor) { inCapturePhase = SyntheticMouseEvent; _instance2 = "onMouseLeave"; reactEventName = "onMouseEnter"; @@ -19573,28 +20814,28 @@ (reactEventName = "onPointerEnter"), (instance = "pointer"); accumulateTargetOnly = + null == reactName + ? reactEventType + : getNodeFromInstance(reactName); + lastHostComponent = null == SyntheticEventCtor - ? reactName + ? reactEventType : getNodeFromInstance(SyntheticEventCtor); - lastHostComponent = - null == reactEventType - ? reactName - : getNodeFromInstance(reactEventType); - reactName = new inCapturePhase( + reactEventType = new inCapturePhase( _instance2, instance + "leave", - SyntheticEventCtor, + reactName, nativeEvent, nativeEventTarget ); - reactName.target = accumulateTargetOnly; - reactName.relatedTarget = lastHostComponent; + reactEventType.target = accumulateTargetOnly; + reactEventType.relatedTarget = lastHostComponent; _instance2 = null; getClosestInstanceFromNode(nativeEventTarget) === targetInst && ((inCapturePhase = new inCapturePhase( reactEventName, instance + "enter", - reactEventType, + SyntheticEventCtor, nativeEvent, nativeEventTarget )), @@ -19602,59 +20843,28 @@ (inCapturePhase.relatedTarget = accumulateTargetOnly), (_instance2 = inCapturePhase)); accumulateTargetOnly = _instance2; - if (SyntheticEventCtor && reactEventType) - b: { - inCapturePhase = getParent; - reactEventName = SyntheticEventCtor; - instance = reactEventType; - lastHostComponent = 0; - for ( - _instance2 = reactEventName; - _instance2; - _instance2 = inCapturePhase(_instance2) - ) - lastHostComponent++; - _instance2 = 0; - for ( - var tempB = instance; - tempB; - tempB = inCapturePhase(tempB) - ) - _instance2++; - for (; 0 < lastHostComponent - _instance2; ) - (reactEventName = inCapturePhase(reactEventName)), - lastHostComponent--; - for (; 0 < _instance2 - lastHostComponent; ) - (instance = inCapturePhase(instance)), _instance2--; - for (; lastHostComponent--; ) { - if ( - reactEventName === instance || - (null !== instance && - reactEventName === instance.alternate) - ) { - inCapturePhase = reactEventName; - break b; - } - reactEventName = inCapturePhase(reactEventName); - instance = inCapturePhase(instance); - } - inCapturePhase = null; - } - else inCapturePhase = null; - null !== SyntheticEventCtor && + inCapturePhase = + reactName && SyntheticEventCtor + ? getLowestCommonAncestor( + reactName, + SyntheticEventCtor, + getParent + ) + : null; + null !== reactName && accumulateEnterLeaveListenersForEvent( dispatchQueue, + reactEventType, reactName, - SyntheticEventCtor, inCapturePhase, !1 ); - null !== reactEventType && + null !== SyntheticEventCtor && null !== accumulateTargetOnly && accumulateEnterLeaveListenersForEvent( dispatchQueue, accumulateTargetOnly, - reactEventType, + SyntheticEventCtor, inCapturePhase, !0 ); @@ -20014,6 +21224,7 @@ else if ("number" === typeof value || "bigint" === typeof value) validateTextNesting("" + value, tag, !1), "body" !== tag && setTextContent(domElement, "" + value); + else return; break; case "className": setValueForKnownAttribute(domElement, "class", value); @@ -20030,7 +21241,7 @@ break; case "style": setValueForStyles(domElement, value, prevValue); - break; + return; case "data": if ("object" !== tag) { setValueForKnownAttribute(domElement, "data", value); @@ -20204,19 +21415,19 @@ ("function" !== typeof value && warnForInvalidEventListener(key, value), (domElement.onclick = noop$1)); - break; + return; case "onScroll": null != value && ("function" !== typeof value && warnForInvalidEventListener(key, value), listenToNonDelegatedEvent("scroll", domElement)); - break; + return; case "onScrollEnd": null != value && ("function" !== typeof value && warnForInvalidEventListener(key, value), listenToNonDelegatedEvent("scrollend", domElement)); - break; + return; case "dangerouslySetInnerHTML": if (null != value) { if ("object" !== typeof value || !("__html" in value)) @@ -20434,7 +21645,7 @@ break; case "innerText": case "textContent": - break; + return; case "popoverTarget": didWarnPopoverTargetObject || null == value || @@ -20445,16 +21656,22 @@ value )); default: - !(2 < key.length) || - ("o" !== key[0] && "O" !== key[0]) || - ("n" !== key[1] && "N" !== key[1]) - ? ((key = getAttributeAlias(key)), - setValueForAttribute(domElement, key, value)) - : registrationNameDependencies.hasOwnProperty(key) && + if ( + !(2 < key.length) || + ("o" !== key[0] && "O" !== key[0]) || + ("n" !== key[1] && "N" !== key[1]) + ) + (key = getAttributeAlias(key)), + setValueForAttribute(domElement, key, value); + else { + registrationNameDependencies.hasOwnProperty(key) && null != value && "function" !== typeof value && warnForInvalidEventListener(key, value); + return; + } } + viewTransitionMutationContext = !0; } function setPropOnCustomElement( domElement, @@ -20467,7 +21684,7 @@ switch (key) { case "style": setValueForStyles(domElement, value, prevValue); - break; + return; case "dangerouslySetInnerHTML": if (null != value) { if ("object" !== typeof value || !("__html" in value)) @@ -20485,37 +21702,37 @@ } break; case "children": - "string" === typeof value - ? setTextContent(domElement, value) - : ("number" === typeof value || "bigint" === typeof value) && - setTextContent(domElement, "" + value); + if ("string" === typeof value) setTextContent(domElement, value); + else if ("number" === typeof value || "bigint" === typeof value) + setTextContent(domElement, "" + value); + else return; break; case "onScroll": null != value && ("function" !== typeof value && warnForInvalidEventListener(key, value), listenToNonDelegatedEvent("scroll", domElement)); - break; + return; case "onScrollEnd": null != value && ("function" !== typeof value && warnForInvalidEventListener(key, value), listenToNonDelegatedEvent("scrollend", domElement)); - break; + return; case "onClick": null != value && ("function" !== typeof value && warnForInvalidEventListener(key, value), (domElement.onclick = noop$1)); - break; + return; case "suppressContentEditableWarning": case "suppressHydrationWarning": case "innerHTML": case "ref": - break; + return; case "innerText": case "textContent": - break; + return; default: if (registrationNameDependencies.hasOwnProperty(key)) null != value && @@ -20543,13 +21760,16 @@ domElement.addEventListener(tag, value, props); break a; } + viewTransitionMutationContext = !0; key in domElement ? (domElement[key] = value) : !0 === value ? domElement.setAttribute(key, "") : setValueForAttribute(domElement, key, value); } + return; } + viewTransitionMutationContext = !0; } function setInitialProperties(domElement, tag, props) { validatePropertiesInDevelopment(tag, props); @@ -20867,21 +22087,27 @@ ) switch (_propKey8) { case "type": + propKey !== lastProp && (viewTransitionMutationContext = !0); type = propKey; break; case "name": + propKey !== lastProp && (viewTransitionMutationContext = !0); name = propKey; break; case "checked": + propKey !== lastProp && (viewTransitionMutationContext = !0); checked = propKey; break; case "defaultChecked": + propKey !== lastProp && (viewTransitionMutationContext = !0); defaultChecked = propKey; break; case "value": + propKey !== lastProp && (viewTransitionMutationContext = !0); value = propKey; break; case "defaultValue": + propKey !== lastProp && (viewTransitionMutationContext = !0); defaultValue = propKey; break; case "children": @@ -20969,13 +22195,19 @@ ) switch (name) { case "value": + type !== lastDefaultValue && + (viewTransitionMutationContext = !0); _propKey8 = type; break; case "defaultValue": + type !== lastDefaultValue && + (viewTransitionMutationContext = !0); defaultValue = type; break; case "multiple": - value = type; + type !== lastDefaultValue && + (viewTransitionMutationContext = !0), + (value = type); default: type !== lastDefaultValue && setProp( @@ -21022,9 +22254,11 @@ ) switch (value) { case "value": + name !== type && (viewTransitionMutationContext = !0); _propKey8 = name; break; case "defaultValue": + name !== type && (viewTransitionMutationContext = !0); propKey = name; break; case "children": @@ -21073,6 +22307,7 @@ ) switch (lastDefaultValue) { case "selected": + _propKey8 !== propKey && (viewTransitionMutationContext = !0); domElement.selected = _propKey8 && "function" !== typeof _propKey8 && @@ -21438,6 +22673,12 @@ break; case "selected": break; + case "vt-name": + case "vt-update": + case "vt-enter": + case "vt-exit": + case "vt-share": + break; default: extraAttributes.add(attributes[i].name); } @@ -22268,119 +23509,732 @@ function removeChild(parentInstance, child) { parentInstance.removeChild(child); } - function removeChildFromContainer(container, child) { - (9 === container.nodeType - ? container.body - : "HTML" === container.nodeName - ? container.ownerDocument.body - : container - ).removeChild(child); + function removeChildFromContainer(container, child) { + (9 === container.nodeType + ? container.body + : "HTML" === container.nodeName + ? container.ownerDocument.body + : container + ).removeChild(child); + } + function clearHydrationBoundary(parentInstance, hydrationInstance) { + var node = hydrationInstance, + depth = 0; + do { + var nextNode = node.nextSibling; + parentInstance.removeChild(node); + if (nextNode && 8 === nextNode.nodeType) + if ( + ((node = nextNode.data), + node === SUSPENSE_END_DATA || node === ACTIVITY_END_DATA) + ) { + if (0 === depth) { + parentInstance.removeChild(nextNode); + retryIfBlockedOn(hydrationInstance); + return; + } + depth--; + } 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 + ) + depth++; + else if (node === PREAMBLE_CONTRIBUTION_HTML) + releaseSingletonInstance( + parentInstance.ownerDocument.documentElement + ); + else if (node === PREAMBLE_CONTRIBUTION_HEAD) { + node = parentInstance.ownerDocument.head; + releaseSingletonInstance(node); + for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) { + var nextNode$jscomp$0 = node$jscomp$0.nextSibling, + nodeName = node$jscomp$0.nodeName; + node$jscomp$0[internalHoistableMarker] || + "SCRIPT" === nodeName || + "STYLE" === nodeName || + ("LINK" === nodeName && + "stylesheet" === node$jscomp$0.rel.toLowerCase()) || + node.removeChild(node$jscomp$0); + node$jscomp$0 = nextNode$jscomp$0; + } + } else + node === PREAMBLE_CONTRIBUTION_BODY && + releaseSingletonInstance(parentInstance.ownerDocument.body); + node = nextNode; + } while (node); + retryIfBlockedOn(hydrationInstance); + } + function hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) { + var node = suspenseInstance; + suspenseInstance = 0; + do { + var nextNode = node.nextSibling; + 1 === node.nodeType + ? isHidden + ? ((node._stashedDisplay = node.style.display), + (node.style.display = "none")) + : ((node.style.display = node._stashedDisplay || ""), + "" === node.getAttribute("style") && + node.removeAttribute("style")) + : 3 === node.nodeType && + (isHidden + ? ((node._stashedText = node.nodeValue), (node.nodeValue = "")) + : (node.nodeValue = node._stashedText || "")); + if (nextNode && 8 === nextNode.nodeType) + if (((node = nextNode.data), node === SUSPENSE_END_DATA)) + if (0 === suspenseInstance) break; + else suspenseInstance--; + else + (node !== SUSPENSE_START_DATA && + node !== SUSPENSE_PENDING_START_DATA && + node !== SUSPENSE_QUEUED_START_DATA && + node !== SUSPENSE_FALLBACK_START_DATA) || + suspenseInstance++; + node = nextNode; + } while (node); + } + function hideDehydratedBoundary(suspenseInstance) { + hideOrUnhideDehydratedBoundary(suspenseInstance, !0); + } + function hideInstance(instance) { + instance = instance.style; + "function" === typeof instance.setProperty + ? instance.setProperty("display", "none", "important") + : (instance.display = "none"); + } + function hideTextInstance(textInstance) { + textInstance.nodeValue = ""; + } + function unhideDehydratedBoundary(dehydratedInstance) { + hideOrUnhideDehydratedBoundary(dehydratedInstance, !1); + } + function unhideInstance(instance, props) { + props = props[STYLE]; + props = + void 0 !== props && null !== props && props.hasOwnProperty("display") + ? props.display + : null; + instance.style.display = + null == props || "boolean" === typeof props ? "" : ("" + props).trim(); + } + function unhideTextInstance(textInstance, text) { + textInstance.nodeValue = text; + } + function warnForBlockInsideInline(instance) { + for (var nextNode = instance.firstChild; null != nextNode; ) { + if ( + 1 === nextNode.nodeType && + "block" === getComputedStyle(nextNode).display + ) { + var fiber = + getInstanceFromNode(nextNode) || getInstanceFromNode(instance); + runWithFiberInDEV( + fiber, + function (parentTag, childTag) { + console.error( + "You're about to start a around a display: inline element <%s>, which itself has a display: block element <%s> inside it. This might trigger a bug in Safari which causes the View Transition to be skipped with a duplicate name error.\nhttps://bugs.webkit.org/show_bug.cgi?id=290923", + parentTag.toLocaleLowerCase(), + childTag.toLocaleLowerCase() + ); + }, + instance.tagName, + nextNode.tagName + ); + break; + } + if (null != nextNode.firstChild) nextNode = nextNode.firstChild; + else { + if (nextNode === instance) break; + for ( + ; + null == nextNode.nextSibling && + null != nextNode.parentNode && + nextNode.parentNode !== instance; + + ) + nextNode = nextNode.parentNode; + nextNode = nextNode.nextSibling; + } + } + } + function applyViewTransitionName(instance, name, className) { + instance.style.viewTransitionName = name; + null != className && (instance.style.viewTransitionClass = className); + name = getComputedStyle(instance); + if ("inline" === name.display) { + className = instance.getClientRects(); + if (1 === className.length) var JSCompiler_inline_result = 1; + else + for ( + var i = (JSCompiler_inline_result = 0); + i < className.length; + i++ + ) { + var rect = className[i]; + 0 < rect.width && 0 < rect.height && JSCompiler_inline_result++; + } + 1 === JSCompiler_inline_result + ? ((instance = instance.style), + (instance.display = + 1 === className.length ? "inline-block" : "block"), + (instance.marginTop = "-" + name.paddingTop), + (instance.marginBottom = "-" + name.paddingBottom)) + : warnForBlockInsideInline(instance); + } + } + function restoreViewTransitionName(instance, props) { + instance = instance.style; + props = props[STYLE]; + var viewTransitionName = + null != props + ? props.hasOwnProperty("viewTransitionName") + ? props.viewTransitionName + : props.hasOwnProperty("view-transition-name") + ? props["view-transition-name"] + : null + : null; + instance.viewTransitionName = + null == viewTransitionName || "boolean" === typeof viewTransitionName + ? "" + : ("" + viewTransitionName).trim(); + viewTransitionName = + null != props + ? props.hasOwnProperty("viewTransitionClass") + ? props.viewTransitionClass + : props.hasOwnProperty("view-transition-class") + ? props["view-transition-class"] + : null + : null; + instance.viewTransitionClass = + null == viewTransitionName || "boolean" === typeof viewTransitionName + ? "" + : ("" + viewTransitionName).trim(); + "inline-block" === instance.display && + (null == props + ? (instance.display = instance.margin = "") + : ((viewTransitionName = props.display), + (instance.display = + null == viewTransitionName || + "boolean" === typeof viewTransitionName + ? "" + : viewTransitionName), + (viewTransitionName = props.margin), + null != viewTransitionName + ? (instance.margin = viewTransitionName) + : ((viewTransitionName = props.hasOwnProperty("marginTop") + ? props.marginTop + : props["margin-top"]), + (instance.marginTop = + null == viewTransitionName || + "boolean" === typeof viewTransitionName + ? "" + : viewTransitionName), + (props = props.hasOwnProperty("marginBottom") + ? props.marginBottom + : props["margin-bottom"]), + (instance.marginBottom = + null == props || "boolean" === typeof props ? "" : props)))); + } + function createMeasurement(rect, computedStyle, element) { + element = element.ownerDocument.defaultView; + return { + rect: rect, + abs: + "absolute" === computedStyle.position || + "fixed" === computedStyle.position, + clip: + "none" !== computedStyle.clipPath || + "visible" !== computedStyle.overflow || + "none" !== computedStyle.filter || + "none" !== computedStyle.mask || + "none" !== computedStyle.mask || + "0px" !== computedStyle.borderRadius, + view: + 0 <= rect.bottom && + 0 <= rect.right && + rect.top <= element.innerHeight && + rect.left <= element.innerWidth + }; + } + function measureInstance(instance) { + var rect = instance.getBoundingClientRect(), + computedStyle = getComputedStyle(instance); + return createMeasurement(rect, computedStyle, instance); + } + function measureClonedInstance(instance) { + var measuredRect = instance.getBoundingClientRect(); + measuredRect = new DOMRect( + measuredRect.x + 2e4, + measuredRect.y + 2e4, + measuredRect.width, + measuredRect.height + ); + var computedStyle = getComputedStyle(instance); + return createMeasurement(measuredRect, computedStyle, instance); + } + function customizeViewTransitionError(error, ignoreAbort) { + if ("object" === typeof error && null !== error) + switch (error.name) { + case "TimeoutError": + return Error( + "A ViewTransition timed out because a Navigation stalled. This can happen if a Navigation is blocked on React itself. Such as if it's resolved inside useEffect. This can be solved by moving the resolution to useLayoutEffect.", + { cause: error } + ); + case "AbortError": + return ignoreAbort + ? null + : Error( + "A ViewTransition was aborted early. This might be because you have other View Transition libraries on the page and only one can run at a time. To avoid this, use only React's built-in to coordinate.", + { cause: error } + ); + case "InvalidStateError": + if ( + "View transition was skipped because document visibility state is hidden." === + error.message || + "Skipping view transition because document visibility state has become hidden." === + error.message || + "Skipping view transition because viewport size changed." === + error.message || + "Transition was aborted because of invalid state" === + error.message + ) + return null; + } + return error; + } + function forceLayout(ownerDocument) { + return ownerDocument.documentElement.clientHeight; + } + function waitForImageToLoad(resolve) { + this.addEventListener("load", resolve); + this.addEventListener("error", resolve); + } + function startViewTransition( + suspendedState, + rootContainer, + transitionTypes, + mutationCallback, + layoutCallback, + afterMutationCallback, + spawnedWorkCallback, + passiveCallback, + errorCallback, + blockedCallback, + finishedAnimation + ) { + var ownerDocument = + 9 === rootContainer.nodeType + ? rootContainer + : rootContainer.ownerDocument; + try { + var transition = ownerDocument.startViewTransition({ + update: function () { + var ownerWindow = ownerDocument.defaultView, + pendingNavigation = + ownerWindow.navigation && ownerWindow.navigation.transition, + previousFontLoadingStatus = ownerDocument.fonts.status; + mutationCallback(); + var blockingPromises = []; + "loaded" === previousFontLoadingStatus && + (forceLayout(ownerDocument), + "loading" === ownerDocument.fonts.status && + blockingPromises.push(ownerDocument.fonts.ready)); + previousFontLoadingStatus = blockingPromises.length; + if (null !== suspendedState) + for ( + var suspenseyImages = suspendedState.suspenseyImages, + imgBytes = 0, + i = 0; + i < suspenseyImages.length; + i++ + ) { + var suspenseyImage = suspenseyImages[i]; + if (!suspenseyImage.complete) { + var rect = suspenseyImage.getBoundingClientRect(); + if ( + 0 < rect.bottom && + 0 < rect.right && + rect.top < ownerWindow.innerHeight && + rect.left < ownerWindow.innerWidth + ) { + imgBytes += estimateImageBytes(suspenseyImage); + if (imgBytes > estimatedBytesWithinLimit) { + blockingPromises.length = previousFontLoadingStatus; + break; + } + suspenseyImage = new Promise( + waitForImageToLoad.bind(suspenseyImage) + ); + blockingPromises.push(suspenseyImage); + } + } + } + if (0 < blockingPromises.length) + return ( + blockedCallback( + 0 < previousFontLoadingStatus + ? blockingPromises.length > previousFontLoadingStatus + ? "Waiting on Fonts and Images" + : "Waiting on Fonts" + : "Waiting on Images" + ), + (ownerWindow = Promise.race([ + Promise.all(blockingPromises), + new Promise(function (resolve) { + return setTimeout( + resolve, + SUSPENSEY_FONT_AND_IMAGE_TIMEOUT + ); + }) + ]).then(layoutCallback, layoutCallback)), + (pendingNavigation + ? Promise.allSettled([ + pendingNavigation.finished, + ownerWindow + ]) + : ownerWindow + ).then(afterMutationCallback, afterMutationCallback) + ); + layoutCallback(); + if (pendingNavigation) + return pendingNavigation.finished.then( + afterMutationCallback, + afterMutationCallback + ); + afterMutationCallback(); + }, + types: transitionTypes + }); + ownerDocument.__reactViewTransition = transition; + transition.ready.then( + function () { + for ( + var animations = ownerDocument.documentElement.getAnimations({ + subtree: !0 + }), + i = 0; + i < animations.length; + i++ + ) { + var effect = animations[i].effect, + pseudoElement = effect.pseudoElement; + if ( + null != pseudoElement && + pseudoElement.startsWith("::view-transition") + ) { + pseudoElement = effect.getKeyframes(); + for ( + var width = void 0, + height = void 0, + unchangedDimensions = !0, + j = 0; + j < pseudoElement.length; + j++ + ) { + var keyframe = pseudoElement[j], + w = keyframe.width; + if (void 0 === width) width = w; + else if (width !== w) { + unchangedDimensions = !1; + break; + } + w = keyframe.height; + if (void 0 === height) height = w; + else if (height !== w) { + unchangedDimensions = !1; + break; + } + delete keyframe.width; + delete keyframe.height; + "none" === keyframe.transform && delete keyframe.transform; + } + unchangedDimensions && + void 0 !== width && + void 0 !== height && + (effect.setKeyframes(pseudoElement), + (unchangedDimensions = getComputedStyle( + effect.target, + effect.pseudoElement + )), + unchangedDimensions.width !== width || + unchangedDimensions.height !== height) && + ((unchangedDimensions = pseudoElement[0]), + (unchangedDimensions.width = width), + (unchangedDimensions.height = height), + (unchangedDimensions = + pseudoElement[pseudoElement.length - 1]), + (unchangedDimensions.width = width), + (unchangedDimensions.height = height), + effect.setKeyframes(pseudoElement)); + } + } + spawnedWorkCallback(); + }, + function (error) { + ownerDocument.__reactViewTransition === transition && + (ownerDocument.__reactViewTransition = null); + try { + (error = customizeViewTransitionError(error, !1)), + null !== error && errorCallback(error); + } finally { + mutationCallback(), + layoutCallback(), + spawnedWorkCallback(), + finishedAnimation(); + } + } + ); + transition.finished.finally(function () { + for ( + var scope = ownerDocument.documentElement, + animations = scope.getAnimations({ subtree: !0 }), + i = 0; + i < animations.length; + i++ + ) { + var anim = animations[i], + effect = anim.effect, + pseudo = effect.pseudoElement; + null != pseudo && + pseudo.startsWith("::view-transition") && + effect.target === scope && + anim.cancel(); + } + ownerDocument.__reactViewTransition === transition && + (ownerDocument.__reactViewTransition = null); + finishedAnimation(); + passiveCallback(); + }); + return transition; + } catch (x) { + return ( + mutationCallback(), + layoutCallback(), + finishedAnimation(), + spawnedWorkCallback(), + null + ); + } + } + function ViewTransitionPseudoElement(pseudo, name) { + this._scope = document.documentElement; + this._selector = "::view-transition-" + pseudo + "(" + name + ")"; + } + function createViewTransitionInstance(name) { + return { + name: name, + group: new ViewTransitionPseudoElement("group", name), + imagePair: new ViewTransitionPseudoElement("image-pair", name), + old: new ViewTransitionPseudoElement("old", name), + new: new ViewTransitionPseudoElement("new", name) + }; + } + function FragmentInstance(fragmentFiber) { + this._fragmentFiber = fragmentFiber; + this._observers = this._eventListeners = null; + } + function addEventListenerToChild( + child, + type, + listener, + optionsOrUseCapture + ) { + getInstanceFromHostFiber(child).addEventListener( + type, + listener, + optionsOrUseCapture + ); + return !1; + } + function removeEventListenerFromChild( + child, + type, + listener, + optionsOrUseCapture + ) { + getInstanceFromHostFiber(child).removeEventListener( + type, + listener, + optionsOrUseCapture + ); + return !1; + } + function normalizeListenerOptions(opts) { + return null == opts + ? "0" + : "boolean" === typeof opts + ? "c=" + (opts ? "1" : "0") + : "c=" + + (opts.capture ? "1" : "0") + + "&o=" + + (opts.once ? "1" : "0") + + "&p=" + + (opts.passive ? "1" : "0"); + } + function indexOfEventListener( + eventListeners, + type, + listener, + optionsOrUseCapture + ) { + for (var i = 0; i < eventListeners.length; i++) { + var item = eventListeners[i]; + if ( + item.type === type && + item.listener === listener && + normalizeListenerOptions(item.optionsOrUseCapture) === + normalizeListenerOptions(optionsOrUseCapture) + ) + return i; + } + return -1; } - function clearHydrationBoundary(parentInstance, hydrationInstance) { - var node = hydrationInstance, - depth = 0; - do { - var nextNode = node.nextSibling; - parentInstance.removeChild(node); - if (nextNode && 8 === nextNode.nodeType) - if ( - ((node = nextNode.data), - node === SUSPENSE_END_DATA || node === ACTIVITY_END_DATA) - ) { - if (0 === depth) { - parentInstance.removeChild(nextNode); - retryIfBlockedOn(hydrationInstance); - return; - } - depth--; - } 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 - ) - depth++; - else if (node === PREAMBLE_CONTRIBUTION_HTML) - releaseSingletonInstance( - parentInstance.ownerDocument.documentElement - ); - else if (node === PREAMBLE_CONTRIBUTION_HEAD) { - node = parentInstance.ownerDocument.head; - releaseSingletonInstance(node); - for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) { - var nextNode$jscomp$0 = node$jscomp$0.nextSibling, - nodeName = node$jscomp$0.nodeName; - node$jscomp$0[internalHoistableMarker] || - "SCRIPT" === nodeName || - "STYLE" === nodeName || - ("LINK" === nodeName && - "stylesheet" === node$jscomp$0.rel.toLowerCase()) || - node.removeChild(node$jscomp$0); - node$jscomp$0 = nextNode$jscomp$0; - } - } else - node === PREAMBLE_CONTRIBUTION_BODY && - releaseSingletonInstance(parentInstance.ownerDocument.body); - node = nextNode; - } while (node); - retryIfBlockedOn(hydrationInstance); + function setFocusOnFiberIfFocusable(fiber, focusOptions) { + fiber = getInstanceFromHostFiber(fiber); + return setFocusIfFocusable(fiber, focusOptions); } - function hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) { - var node = suspenseInstance; - suspenseInstance = 0; - do { - var nextNode = node.nextSibling; - 1 === node.nodeType - ? isHidden - ? ((node._stashedDisplay = node.style.display), - (node.style.display = "none")) - : ((node.style.display = node._stashedDisplay || ""), - "" === node.getAttribute("style") && - node.removeAttribute("style")) - : 3 === node.nodeType && - (isHidden - ? ((node._stashedText = node.nodeValue), (node.nodeValue = "")) - : (node.nodeValue = node._stashedText || "")); - if (nextNode && 8 === nextNode.nodeType) - if (((node = nextNode.data), node === SUSPENSE_END_DATA)) - if (0 === suspenseInstance) break; - else suspenseInstance--; - else - (node !== SUSPENSE_START_DATA && - node !== SUSPENSE_PENDING_START_DATA && - node !== SUSPENSE_QUEUED_START_DATA && - node !== SUSPENSE_FALLBACK_START_DATA) || - suspenseInstance++; - node = nextNode; - } while (node); + function collectChildren(child, collection) { + collection.push(child); + return !1; } - function hideDehydratedBoundary(suspenseInstance) { - hideOrUnhideDehydratedBoundary(suspenseInstance, !0); + function blurActiveElementWithinFragment(child) { + child = getInstanceFromHostFiber(child); + return child === child.ownerDocument.activeElement + ? (child.blur(), !0) + : !1; } - function hideInstance(instance) { - instance = instance.style; - "function" === typeof instance.setProperty - ? instance.setProperty("display", "none", "important") - : (instance.display = "none"); + function observeChild(child, observer) { + child = getInstanceFromHostFiber(child); + observer.observe(child); + return !1; } - function hideTextInstance(textInstance) { - textInstance.nodeValue = ""; + function unobserveChild(child, observer) { + child = getInstanceFromHostFiber(child); + observer.unobserve(child); + return !1; } - function unhideDehydratedBoundary(dehydratedInstance) { - hideOrUnhideDehydratedBoundary(dehydratedInstance, !1); + function collectClientRects(child, rects) { + child = getInstanceFromHostFiber(child); + rects.push.apply(rects, child.getClientRects()); + return !1; } - function unhideInstance(instance, props) { - props = props[STYLE]; - props = - void 0 !== props && null !== props && props.hasOwnProperty("display") - ? props.display - : null; - instance.style.display = - null == props || "boolean" === typeof props ? "" : ("" + props).trim(); + function validateDocumentPositionWithFiberTree( + documentPosition, + fragmentFiber, + precedingBoundaryFiber, + followingBoundaryFiber, + otherNode + ) { + var otherFiber = getClosestInstanceFromNode(otherNode); + if (documentPosition & Node.DOCUMENT_POSITION_CONTAINED_BY) { + if ((precedingBoundaryFiber = !!otherFiber)) + a: { + for (; null !== otherFiber; ) { + if ( + 7 === otherFiber.tag && + (otherFiber === fragmentFiber || + otherFiber.alternate === fragmentFiber) + ) { + precedingBoundaryFiber = !0; + break a; + } + otherFiber = otherFiber.return; + } + precedingBoundaryFiber = !1; + } + return precedingBoundaryFiber; + } + if (documentPosition & Node.DOCUMENT_POSITION_CONTAINS) { + if (null === otherFiber) + return ( + (otherFiber = otherNode.ownerDocument), + otherNode === otherFiber || otherNode === otherFiber.body + ); + a: { + otherFiber = fragmentFiber; + for ( + fragmentFiber = getFragmentParentHostFiber(fragmentFiber); + null !== otherFiber; + + ) { + if ( + !( + (5 !== otherFiber.tag && 3 !== otherFiber.tag) || + (otherFiber !== fragmentFiber && + otherFiber.alternate !== fragmentFiber) + ) + ) { + otherFiber = !0; + break a; + } + otherFiber = otherFiber.return; + } + otherFiber = !1; + } + return otherFiber; + } + return documentPosition & Node.DOCUMENT_POSITION_PRECEDING + ? ((fragmentFiber = !!otherFiber) && + !(fragmentFiber = otherFiber === precedingBoundaryFiber) && + ((fragmentFiber = getLowestCommonAncestor( + precedingBoundaryFiber, + otherFiber, + getParentForFragmentAncestors + )), + null === fragmentFiber + ? (fragmentFiber = !1) + : (traverseVisibleHostChildren( + fragmentFiber, + !0, + isFiberPrecedingCheck, + otherFiber, + precedingBoundaryFiber + ), + (otherFiber = searchTarget), + (searchTarget = null), + (fragmentFiber = null !== otherFiber))), + fragmentFiber) + : documentPosition & Node.DOCUMENT_POSITION_FOLLOWING + ? ((fragmentFiber = !!otherFiber) && + !(fragmentFiber = otherFiber === followingBoundaryFiber) && + ((fragmentFiber = getLowestCommonAncestor( + followingBoundaryFiber, + otherFiber, + getParentForFragmentAncestors + )), + null === fragmentFiber + ? (fragmentFiber = !1) + : (traverseVisibleHostChildren( + fragmentFiber, + !0, + isFiberFollowingCheck, + otherFiber, + followingBoundaryFiber + ), + (otherFiber = searchTarget), + (searchBoundary = searchTarget = null), + (fragmentFiber = null !== otherFiber))), + fragmentFiber) + : !1; } - function unhideTextInstance(textInstance, text) { - textInstance.nodeValue = text; + function commitNewChildToFragmentInstance(childInstance, fragmentInstance) { + var eventListeners = fragmentInstance._eventListeners; + if (null !== eventListeners) + for (var i = 0; i < eventListeners.length; i++) { + var _eventListeners$i2 = eventListeners[i]; + childInstance.addEventListener( + _eventListeners$i2.type, + _eventListeners$i2.listener, + _eventListeners$i2.optionsOrUseCapture + ); + } + null !== fragmentInstance._observers && + fragmentInstance._observers.forEach(function (observer) { + observer.observe(childInstance); + }); } function clearContainerSparingly(container) { var nextNode = container.firstChild; @@ -22651,6 +24505,19 @@ function commitHydratedSuspenseInstance(suspenseInstance) { retryIfBlockedOn(suspenseInstance); } + function setFocusIfFocusable(node, focusOptions) { + function handleFocus() { + didFocus = !0; + } + var didFocus = !1; + try { + node.addEventListener("focus", handleFocus), + (node.focus || HTMLElement.prototype.focus).call(node, focusOptions); + } finally { + node.removeEventListener("focus", handleFocus); + } + return didFocus; + } function resolveSingletonInstance( type, props, @@ -23266,12 +25133,38 @@ } return !1; } + function maySuspendCommit(type, props) { + return ( + "img" === type && + null != props.src && + "" !== props.src && + null == props.onLoad && + "lazy" !== props.loading + ); + } function preloadResource(resource) { return "stylesheet" === resource.type && (resource.state.loading & Settled) === NotLoaded ? !1 : !0; } + function estimateImageBytes(instance) { + return ( + (instance.width || 100) * + (instance.height || 100) * + ("number" === typeof devicePixelRatio ? devicePixelRatio : 1) * + 0.25 + ); + } + function suspendInstance(state, instance) { + "function" === typeof instance.decode && + (state.imgCount++, + instance.complete || + ((state.imgBytes += estimateImageBytes(instance)), + state.suspenseyImages.push(instance)), + (state = onUnsuspendImg.bind(state)), + instance.decode().then(state, state)); + } function suspendResource(state, hoistableRoot, resource, props) { if ( "stylesheet" === resource.type && @@ -23367,17 +25260,27 @@ } : null; } - function onUnsuspend() { - this.count--; - if (0 === this.count && (0 === this.imgCount || !this.waitingForImages)) - if (this.stylesheets) - insertSuspendedStylesheets(this, this.stylesheets); - else if (this.unsuspend) { - var unsuspend = this.unsuspend; - this.unsuspend = null; + function checkIfFullyUnsuspended(state) { + if ( + 0 === state.count && + (0 === state.imgCount || !state.waitingForImages) + ) + if (state.stylesheets) + insertSuspendedStylesheets(state, state.stylesheets); + else if (state.unsuspend) { + var unsuspend = state.unsuspend; + state.unsuspend = null; unsuspend(); } } + function onUnsuspend() { + this.count--; + checkIfFullyUnsuspended(this); + } + function onUnsuspendImg() { + this.imgCount--; + checkIfFullyUnsuspended(this); + } function insertSuspendedStylesheets(state, resources) { state.stylesheets = null; null !== state.unsuspend && @@ -23468,6 +25371,7 @@ this.pooledCache = null; this.pooledCacheLanes = 0; this.formState = formState; + this.transitionTypes = null; this.incompleteTransitions = new Map(); this.passiveEffectDuration = this.effectDuration = -0; this.memoizedUpdaters = new Set(); @@ -24254,6 +26158,8 @@ var Scheduler = require("next/dist/compiled/scheduler"), React = require("next/dist/compiled/react"), ReactDOM = require("next/dist/compiled/react-dom"), + searchTarget = null, + searchBoundary = null, assign = Object.assign, REACT_LEGACY_ELEMENT_TYPE = Symbol.for("react.element"), REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), @@ -24269,12 +26175,12 @@ REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"); Symbol.for("react.scope"); - var REACT_ACTIVITY_TYPE = Symbol.for("react.activity"); - Symbol.for("react.legacy_hidden"); + var REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), + REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"); Symbol.for("react.tracing_marker"); - var REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"); - Symbol.for("react.view_transition"); - var MAYBE_ITERATOR_SYMBOL = Symbol.iterator, + var REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"), + REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"), + MAYBE_ITERATOR_SYMBOL = Symbol.iterator, REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), isArrayImpl = Array.isArray, ReactSharedInternals = @@ -24365,6 +26271,7 @@ ), illegalAttributeNameCache = {}, validatedAttributeNameCache = {}, + viewTransitionMutationContext = !1, escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\n"\\]/g, didWarnValueDefaultValue$1 = !1, didWarnCheckedDefaultChecked = !1, @@ -25532,7 +27439,8 @@ " " ); simpleEventPluginEvents.push("scrollEnd"); - var lastResetTime = 0; + var globalClientIdCounter$1 = 0, + lastResetTime = 0; if ( "object" === typeof performance && "function" === typeof performance.now @@ -25689,6 +27597,7 @@ _currentRenderer: null, _currentRenderer2: null }, + entangledTransitionTypes = null, now = Scheduler.unstable_now, createTask = console.createTask ? console.createTask @@ -25763,6 +27672,26 @@ } entangleAsyncAction(transition, returnValue); } + if (null !== entangledTransitionTypes) + for (newEventTime = firstScheduledRoot; null !== newEventTime; ) + queueTransitionTypes(newEventTime, entangledTransitionTypes), + (newEventTime = newEventTime.next); + newEventTime = transition.types; + if (null !== newEventTime) { + for (newEventType = firstScheduledRoot; null !== newEventType; ) + queueTransitionTypes(newEventType, newEventTime), + (newEventType = newEventType.next); + if (0 !== currentEntangledLane) { + newEventType = entangledTransitionTypes; + null === newEventType && + (newEventType = entangledTransitionTypes = []); + for (var i = 0; i < newEventTime.length; i++) { + var transitionType = newEventTime[i]; + -1 === newEventType.indexOf(transitionType) && + newEventType.push(transitionType); + } + } + } null !== prevOnStartTransitionFinish && prevOnStartTransitionFinish(transition, returnValue); }; @@ -27320,6 +29249,7 @@ var didWarnAboutReassigningProps = !1; var didWarnAboutRevealOrder = {}; var didWarnAboutTailOptions = {}; + var didWarnAboutClassNameOnViewTransition = {}; var SUSPENDED_MARKER = { dehydrated: null, treeContext: null, @@ -27329,13 +29259,23 @@ hasWarnedAboutUsingNoValuePropOnContextProvider = !1, didWarnAboutUndefinedSnapshotBeforeUpdate = null; didWarnAboutUndefinedSnapshotBeforeUpdate = new Set(); - var offscreenSubtreeIsHidden = !1, + var shouldStartViewTransition = !1, + appearingViewTransitions = null, + viewTransitionCancelableChildren = null, + viewTransitionHostInstanceIdx = 0, + mountedNamedViewTransitions = new Map(), + didWarnAboutName = {}, + offscreenSubtreeIsHidden = !1, offscreenSubtreeWasHidden = !1, needsFormReset = !1, PossiblyWeakSet = "function" === typeof WeakSet ? WeakSet : Set, nextEffect = null, inProgressLanes = null, inProgressRoot = null, + viewTransitionContextChanged = !1, + inUpdateViewTransition = !1, + rootViewTransitionAffected = !1, + rootViewTransitionNameCanceled = !1, hostParent = null, hostParentIsContainer = !1, currentHoistableRoot = null, @@ -27432,6 +29372,9 @@ pendingEffectsRenderEndTime = -0, pendingPassiveTransitions = null, pendingRecoverableErrors = null, + pendingViewTransition = null, + pendingViewTransitionEvents = null, + pendingTransitionTypes = null, pendingSuspendedCommitReason = null, pendingDelayedCommitReason = IMMEDIATE_COMMIT, pendingSuspendedViewTransitionReason = null, @@ -27444,6 +29387,7 @@ nestedPassiveUpdateCount = 0, rootWithPassiveNestedUpdates = null, isRunningInsertionEffect = !1, + didWarnAboutInterruptedViewTransitions = !1, didWarnStateUpdateForNotYetMountedComponent = null, didWarnAboutUpdateInRender = !1; var didWarnAboutUpdateInRenderForAnotherComponent = new Set(); @@ -27571,7 +29515,342 @@ .catch(handleErrorInNextTick); } : scheduleTimeout, - previousHydratableOnEnteringScopedSingleton = null, + SUSPENSEY_FONT_AND_IMAGE_TIMEOUT = 500; + ViewTransitionPseudoElement.prototype.animate = function ( + keyframes, + options + ) { + options = + "number" === typeof options + ? { duration: options } + : assign({}, options); + options.pseudoElement = this._selector; + return this._scope.animate(keyframes, options); + }; + ViewTransitionPseudoElement.prototype.getAnimations = function () { + for ( + var scope = this._scope, + selector = this._selector, + animations = scope.getAnimations({ subtree: !0 }), + result = [], + i = 0; + i < animations.length; + i++ + ) { + var effect = animations[i].effect; + null !== effect && + effect.target === scope && + effect.pseudoElement === selector && + result.push(animations[i]); + } + return result; + }; + ViewTransitionPseudoElement.prototype.getComputedStyle = function () { + return getComputedStyle(this._scope, this._selector); + }; + FragmentInstance.prototype.addEventListener = function ( + type, + listener, + optionsOrUseCapture + ) { + null === this._eventListeners && (this._eventListeners = []); + var listeners = this._eventListeners; + -1 === + indexOfEventListener(listeners, type, listener, optionsOrUseCapture) && + (listeners.push({ + type: type, + listener: listener, + optionsOrUseCapture: optionsOrUseCapture + }), + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + addEventListenerToChild, + type, + listener, + optionsOrUseCapture + )); + this._eventListeners = listeners; + }; + FragmentInstance.prototype.removeEventListener = function ( + type, + listener, + optionsOrUseCapture + ) { + var listeners = this._eventListeners; + null !== listeners && + "undefined" !== typeof listeners && + 0 < listeners.length && + (traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + removeEventListenerFromChild, + type, + listener, + optionsOrUseCapture + ), + (type = indexOfEventListener( + listeners, + type, + listener, + optionsOrUseCapture + )), + null !== this._eventListeners && this._eventListeners.splice(type, 1)); + }; + FragmentInstance.prototype.dispatchEvent = function (event) { + var parentHostFiber = getFragmentParentHostFiber(this._fragmentFiber); + if (null === parentHostFiber) return !0; + parentHostFiber = getInstanceFromHostFiber(parentHostFiber); + var eventListeners = this._eventListeners; + if ( + (null !== eventListeners && 0 < eventListeners.length) || + !event.bubbles + ) { + var temp = document.createTextNode(""); + if (eventListeners) + for (var i = 0; i < eventListeners.length; i++) { + var _eventListeners$i = eventListeners[i]; + temp.addEventListener( + _eventListeners$i.type, + _eventListeners$i.listener, + _eventListeners$i.optionsOrUseCapture + ); + } + parentHostFiber.appendChild(temp); + event = temp.dispatchEvent(event); + if (eventListeners) + for (i = 0; i < eventListeners.length; i++) + (_eventListeners$i = eventListeners[i]), + temp.removeEventListener( + _eventListeners$i.type, + _eventListeners$i.listener, + _eventListeners$i.optionsOrUseCapture + ); + parentHostFiber.removeChild(temp); + return event; + } + return parentHostFiber.dispatchEvent(event); + }; + FragmentInstance.prototype.focus = function (focusOptions) { + traverseVisibleHostChildren( + this._fragmentFiber.child, + !0, + setFocusOnFiberIfFocusable, + focusOptions, + void 0, + void 0 + ); + }; + FragmentInstance.prototype.focusLast = function (focusOptions) { + var children = []; + traverseVisibleHostChildren( + this._fragmentFiber.child, + !0, + collectChildren, + children, + void 0, + void 0 + ); + for ( + var i = children.length - 1; + 0 <= i && !setFocusOnFiberIfFocusable(children[i], focusOptions); + i-- + ); + }; + FragmentInstance.prototype.blur = function () { + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + blurActiveElementWithinFragment, + void 0, + void 0, + void 0 + ); + }; + FragmentInstance.prototype.observeUsing = function (observer) { + null === this._observers && (this._observers = new Set()); + this._observers.add(observer); + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + observeChild, + observer, + void 0, + void 0 + ); + }; + FragmentInstance.prototype.unobserveUsing = function (observer) { + var observers = this._observers; + null !== observers && observers.has(observer) + ? (observers.delete(observer), + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + unobserveChild, + observer, + void 0, + void 0 + )) + : console.error( + "You are calling unobserveUsing() with an observer that is not being observed with this fragment instance. First attach the observer with observeUsing()" + ); + }; + FragmentInstance.prototype.getClientRects = function () { + var rects = []; + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + collectClientRects, + rects, + void 0, + void 0 + ); + return rects; + }; + FragmentInstance.prototype.getRootNode = function (getRootNodeOptions) { + var parentHostFiber = getFragmentParentHostFiber(this._fragmentFiber); + return null === parentHostFiber + ? this + : getInstanceFromHostFiber(parentHostFiber).getRootNode( + getRootNodeOptions + ); + }; + FragmentInstance.prototype.compareDocumentPosition = function (otherNode) { + var parentHostFiber = getFragmentParentHostFiber(this._fragmentFiber); + if (null === parentHostFiber) return Node.DOCUMENT_POSITION_DISCONNECTED; + var children = []; + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + collectChildren, + children, + void 0, + void 0 + ); + var parentHostInstance = getInstanceFromHostFiber(parentHostFiber); + if (0 === children.length) { + children = this._fragmentFiber; + var parentResult = + parentHostInstance.compareDocumentPosition(otherNode); + parentHostFiber = parentResult; + parentHostInstance === otherNode + ? (parentHostFiber = Node.DOCUMENT_POSITION_CONTAINS) + : parentResult & Node.DOCUMENT_POSITION_CONTAINED_BY && + (traverseVisibleHostChildren(children.sibling, !1, findNextSibling), + (children = searchTarget), + (searchTarget = null), + null === children + ? (parentHostFiber = Node.DOCUMENT_POSITION_PRECEDING) + : ((otherNode = + getInstanceFromHostFiber(children).compareDocumentPosition( + otherNode + )), + (parentHostFiber = + 0 === otherNode || + otherNode & Node.DOCUMENT_POSITION_FOLLOWING + ? Node.DOCUMENT_POSITION_FOLLOWING + : Node.DOCUMENT_POSITION_PRECEDING))); + return (parentHostFiber |= + Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC); + } + parentHostFiber = getInstanceFromHostFiber(children[0]); + parentResult = getInstanceFromHostFiber(children[children.length - 1]); + for ( + var firstInstance = getInstanceFromHostFiber(children[0]), + foundPortalParent = !1, + parent = this._fragmentFiber.return; + null !== parent; + + ) { + 4 === parent.tag && (foundPortalParent = !0); + if (3 === parent.tag || 5 === parent.tag) break; + parent = parent.return; + } + firstInstance = foundPortalParent + ? firstInstance.parentElement + : parentHostInstance; + if (null == firstInstance) return Node.DOCUMENT_POSITION_DISCONNECTED; + parentHostInstance = + firstInstance.compareDocumentPosition(parentHostFiber) & + Node.DOCUMENT_POSITION_CONTAINED_BY; + firstInstance = + firstInstance.compareDocumentPosition(parentResult) & + Node.DOCUMENT_POSITION_CONTAINED_BY; + foundPortalParent = parentHostFiber.compareDocumentPosition(otherNode); + var lastResult = parentResult.compareDocumentPosition(otherNode); + parent = + foundPortalParent & Node.DOCUMENT_POSITION_CONTAINED_BY || + lastResult & Node.DOCUMENT_POSITION_CONTAINED_BY; + lastResult = + parentHostInstance && + firstInstance && + foundPortalParent & Node.DOCUMENT_POSITION_FOLLOWING && + lastResult & Node.DOCUMENT_POSITION_PRECEDING; + parentHostFiber = + (parentHostInstance && parentHostFiber === otherNode) || + (firstInstance && parentResult === otherNode) || + parent || + lastResult + ? Node.DOCUMENT_POSITION_CONTAINED_BY + : (!parentHostInstance && parentHostFiber === otherNode) || + (!firstInstance && parentResult === otherNode) + ? Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC + : foundPortalParent; + return parentHostFiber & Node.DOCUMENT_POSITION_DISCONNECTED || + parentHostFiber & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC || + validateDocumentPositionWithFiberTree( + parentHostFiber, + this._fragmentFiber, + children[0], + children[children.length - 1], + otherNode + ) + ? parentHostFiber + : Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC; + }; + FragmentInstance.prototype.scrollIntoView = function (alignToTop) { + if ("object" === typeof alignToTop) + throw Error( + "FragmentInstance.scrollIntoView() does not support scrollIntoViewOptions. Use the alignToTop boolean instead." + ); + var children = []; + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + collectChildren, + children, + void 0, + void 0 + ); + var resolvedAlignToTop = !1 !== alignToTop; + if (0 === children.length) { + children = this._fragmentFiber; + var result = [null, null], + parentHostFiber = getFragmentParentHostFiber(children); + null !== parentHostFiber && + findFragmentInstanceSiblings(result, children, parentHostFiber.child); + resolvedAlignToTop = resolvedAlignToTop + ? result[1] || + result[0] || + getFragmentParentHostFiber(this._fragmentFiber) + : result[0] || result[1]; + null === resolvedAlignToTop + ? console.warn( + "You are attempting to scroll a FragmentInstance that has no children, siblings, or parent. No scroll was performed." + ) + : getInstanceFromHostFiber(resolvedAlignToTop).scrollIntoView( + alignToTop + ); + } else + for ( + result = resolvedAlignToTop ? children.length - 1 : 0; + result !== (resolvedAlignToTop ? -1 : children.length); + + ) + getInstanceFromHostFiber(children[result]).scrollIntoView(alignToTop), + (result += resolvedAlignToTop ? -1 : 1); + }; + var previousHydratableOnEnteringScopedSingleton = null, NotLoaded = 0, Loaded = 1, Errored = 2, @@ -27996,11 +30275,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-c7862584-20251006" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-a4eb2dfa-20251006" !== 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.3.0-canary-c7862584-20251006\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-a4eb2dfa-20251006\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -28037,10 +30316,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.3.0-canary-c7862584-20251006", + version: "19.3.0-canary-a4eb2dfa-20251006", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-canary-c7862584-20251006" + reconcilerVersion: "19.3.0-canary-a4eb2dfa-20251006" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -28178,7 +30457,7 @@ listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; - exports.version = "19.3.0-canary-c7862584-20251006"; + exports.version = "19.3.0-canary-a4eb2dfa-20251006"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-client.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-client.production.js index 29d92af5ee5cf..c9a66bd812a3a 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-client.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-client.production.js @@ -152,6 +152,105 @@ function findCurrentHostFiberImpl(node) { } return null; } +function traverseVisibleHostChildren(child, searchWithinHosts, fn, a, b, c) { + for (; null !== child; ) { + if ( + (5 === child.tag && fn(child, a, b, c)) || + ((22 !== child.tag || null === child.memoizedState) && + (searchWithinHosts || 5 !== child.tag) && + traverseVisibleHostChildren( + child.child, + searchWithinHosts, + fn, + a, + b, + c + )) + ) + return !0; + child = child.sibling; + } + return !1; +} +function getFragmentParentHostFiber(fiber) { + for (fiber = fiber.return; null !== fiber; ) { + if (3 === fiber.tag || 5 === fiber.tag) return fiber; + fiber = fiber.return; + } + return null; +} +function findFragmentInstanceSiblings(result, self, child) { + for ( + var foundSelf = + 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : !1; + null !== child; + + ) { + if (child === self) + if (((foundSelf = !0), child.sibling)) child = child.sibling; + else return !0; + if (5 === child.tag) { + if (foundSelf) return (result[1] = child), !0; + result[0] = child; + } else if ( + (22 !== child.tag || null === child.memoizedState) && + findFragmentInstanceSiblings(result, self, child.child, foundSelf) + ) + return !0; + child = child.sibling; + } + return !1; +} +function getInstanceFromHostFiber(fiber) { + switch (fiber.tag) { + case 5: + return fiber.stateNode; + case 3: + return fiber.stateNode.containerInfo; + default: + throw Error(formatProdErrorMessage(559)); + } +} +var searchTarget = null, + searchBoundary = null; +function findNextSibling(child) { + searchTarget = child; + return !0; +} +function isFiberPrecedingCheck(child, target, boundary) { + return child === boundary + ? !0 + : child === target + ? ((searchTarget = child), !0) + : !1; +} +function isFiberFollowingCheck(child, target, boundary) { + return child === boundary + ? ((searchBoundary = child), !1) + : child === target + ? (null !== searchBoundary && (searchTarget = child), !0) + : !1; +} +function getParentForFragmentAncestors(inst) { + if (null === inst) return null; + do inst = null === inst ? null : inst.return; + while (inst && 5 !== inst.tag && 27 !== inst.tag && 3 !== inst.tag); + return inst ? inst : null; +} +function getLowestCommonAncestor(instA, instB, getParent) { + for (var depthA = 0, tempA = instA; tempA; tempA = getParent(tempA)) depthA++; + tempA = 0; + for (var tempB = instB; tempB; tempB = getParent(tempB)) tempA++; + for (; 0 < depthA - tempA; ) (instA = getParent(instA)), depthA--; + for (; 0 < tempA - depthA; ) (instB = getParent(instB)), tempA--; + for (; depthA--; ) { + if (instA === instB || (null !== instB && instA === instB.alternate)) + return instA; + instA = getParent(instA); + instB = getParent(instB); + } + return null; +} var assign = Object.assign, REACT_LEGACY_ELEMENT_TYPE = Symbol.for("react.element"), REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), @@ -167,12 +266,12 @@ var assign = Object.assign, REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"); Symbol.for("react.scope"); -var REACT_ACTIVITY_TYPE = Symbol.for("react.activity"); -Symbol.for("react.legacy_hidden"); +var REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), + REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"); Symbol.for("react.tracing_marker"); -var REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"); -Symbol.for("react.view_transition"); -var MAYBE_ITERATOR_SYMBOL = Symbol.iterator; +var REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"), + REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"), + MAYBE_ITERATOR_SYMBOL = Symbol.iterator; function getIteratorFn(maybeIterable) { if (null === maybeIterable || "object" !== typeof maybeIterable) return null; maybeIterable = @@ -201,6 +300,8 @@ function getComponentNameFromType(type) { return "SuspenseList"; case REACT_ACTIVITY_TYPE: return "Activity"; + case REACT_VIEW_TRANSITION_TYPE: + return "ViewTransition"; } if ("object" === typeof type) switch (type.$$typeof) { @@ -491,6 +592,8 @@ function describeFiber(fiber, childFiber) { return describeNativeComponentFrame(fiber.type, !0); case 31: return describeBuiltInComponentFrame("Activity"); + case 30: + return describeBuiltInComponentFrame("ViewTransition"); default: return ""; } @@ -947,6 +1050,12 @@ function isAttributeNameSafe(attributeName) { illegalAttributeNameCache[attributeName] = !0; return !1; } +var viewTransitionMutationContext = !1; +function pushMutationContext() { + var prev = viewTransitionMutationContext; + viewTransitionMutationContext = !1; + return prev; +} function setValueForAttribute(node, name, value) { if (isAttributeNameSafe(name)) if (null === value) node.removeAttribute(name); @@ -1300,12 +1409,14 @@ function setValueForStyles(node, styles, prevStyles) { ? node.setProperty(styleName, "") : "float" === styleName ? (node.cssFloat = "") - : (node[styleName] = "")); + : (node[styleName] = ""), + (viewTransitionMutationContext = !0)); for (var styleName$16 in styles) (styleName = styles[styleName$16]), styles.hasOwnProperty(styleName$16) && prevStyles[styleName$16] !== styleName && - setValueForStyle(node, styleName$16, styleName); + (setValueForStyle(node, styleName$16, styleName), + (viewTransitionMutationContext = !0)); } else for (var styleName$17 in styles) styles.hasOwnProperty(styleName$17) && @@ -2044,19 +2155,19 @@ function getTargetInstForChangeEvent(domEventName, targetInst) { } var isInputEventSupported = !1; if (canUseDOM) { - var JSCompiler_inline_result$jscomp$286; + var JSCompiler_inline_result$jscomp$307; if (canUseDOM) { - var isSupported$jscomp$inline_427 = "oninput" in document; - if (!isSupported$jscomp$inline_427) { - var element$jscomp$inline_428 = document.createElement("div"); - element$jscomp$inline_428.setAttribute("oninput", "return;"); - isSupported$jscomp$inline_427 = - "function" === typeof element$jscomp$inline_428.oninput; - } - JSCompiler_inline_result$jscomp$286 = isSupported$jscomp$inline_427; - } else JSCompiler_inline_result$jscomp$286 = !1; + var isSupported$jscomp$inline_468 = "oninput" in document; + if (!isSupported$jscomp$inline_468) { + var element$jscomp$inline_469 = document.createElement("div"); + element$jscomp$inline_469.setAttribute("oninput", "return;"); + isSupported$jscomp$inline_468 = + "function" === typeof element$jscomp$inline_469.oninput; + } + JSCompiler_inline_result$jscomp$307 = isSupported$jscomp$inline_468; + } else JSCompiler_inline_result$jscomp$307 = !1; isInputEventSupported = - JSCompiler_inline_result$jscomp$286 && + JSCompiler_inline_result$jscomp$307 && (!document.documentMode || 9 < document.documentMode); } function stopWatchingForValueChange() { @@ -2304,6 +2415,41 @@ function registerSimpleEvent(domEventName, reactName) { topLevelEventsToReactNames.set(domEventName, reactName); registerTwoPhaseEvent(reactName, [domEventName]); } +var globalClientIdCounter$1 = 0; +function getViewTransitionName(props, instance) { + if (null != props.name && "auto" !== props.name) return props.name; + if (null !== instance.autoName) return instance.autoName; + props = pendingEffectsRoot.identifierPrefix; + var globalClientId = globalClientIdCounter$1++; + props = "_" + props + "t_" + globalClientId.toString(32) + "_"; + return (instance.autoName = props); +} +function getClassNameByType(classByType) { + if (null == classByType || "string" === typeof classByType) + return classByType; + var className = null, + activeTypes = pendingTransitionTypes; + if (null !== activeTypes) + for (var i = 0; i < activeTypes.length; i++) { + var match = classByType[activeTypes[i]]; + if (null != match) { + if ("none" === match) return "none"; + className = null == className ? match : className + (" " + match); + } + } + return null == className ? classByType.default : className; +} +function getViewTransitionClassName(defaultClass, eventClass) { + defaultClass = getClassNameByType(defaultClass); + eventClass = getClassNameByType(eventClass); + return null == eventClass + ? "auto" === defaultClass + ? null + : defaultClass + : "auto" === eventClass + ? null + : eventClass; +} var reportGlobalError = "function" === typeof reportError ? reportError @@ -2575,6 +2721,21 @@ function createFiberFromTypeAndProps( (type.lanes = lanes), type ); + case REACT_LEGACY_HIDDEN_TYPE: + case REACT_VIEW_TRANSITION_TYPE: + return ( + (type = mode | 32), + (type = createFiberImplClass(30, pendingProps, key, type)), + (type.elementType = REACT_VIEW_TRANSITION_TYPE), + (type.lanes = lanes), + (type.stateNode = { + autoName: null, + paired: null, + clones: null, + ref: null + }), + type + ); default: if ("object" === typeof type && null !== type) switch (type.$$typeof) { @@ -3102,6 +3263,22 @@ function releaseCache(cache) { cache.controller.abort(); }); } +function queueTransitionTypes(root, transitionTypes) { + if (0 !== (root.pendingLanes & 4194048)) { + var queued = root.transitionTypes; + null === queued && (queued = root.transitionTypes = []); + for (root = 0; root < transitionTypes.length; root++) { + var transitionType = transitionTypes[root]; + -1 === queued.indexOf(transitionType) && queued.push(transitionType); + } + } +} +var entangledTransitionTypes = null; +function claimQueuedTransitionTypes(root) { + var claimed = root.transitionTypes; + root.transitionTypes = null; + return claimed; +} var currentEntangledListeners = null, currentEntangledPendingCount = 0, currentEntangledLane = 0, @@ -3126,7 +3303,7 @@ function entangleAsyncAction(transition, thenable) { function pingEngtangledActionScope() { if ( 0 === --currentEntangledPendingCount && - null !== currentEntangledListeners + ((entangledTransitionTypes = null), null !== currentEntangledListeners) ) { null !== currentEntangledActionThenable && (currentEntangledActionThenable.status = "fulfilled"); @@ -3169,6 +3346,23 @@ ReactSharedInternals.S = function (transition, returnValue) { null !== returnValue && "function" === typeof returnValue.then && entangleAsyncAction(transition, returnValue); + if (null !== entangledTransitionTypes) + for (var root$26 = firstScheduledRoot; null !== root$26; ) + queueTransitionTypes(root$26, entangledTransitionTypes), + (root$26 = root$26.next); + root$26 = transition.types; + if (null !== root$26) { + for (var root$27 = firstScheduledRoot; null !== root$27; ) + queueTransitionTypes(root$27, root$26), (root$27 = root$27.next); + if (0 !== currentEntangledLane) { + root$27 = entangledTransitionTypes; + null === root$27 && (root$27 = entangledTransitionTypes = []); + for (var i = 0; i < root$26.length; i++) { + var transitionType = root$26[i]; + -1 === root$27.indexOf(transitionType) && root$27.push(transitionType); + } + } + } null !== prevOnStartTransitionFinish && prevOnStartTransitionFinish(transition, returnValue); }; @@ -3365,12 +3559,16 @@ function createChildReconciler(shouldTrackSideEffects) { function updateElement(returnFiber, current, element, lanes) { var elementType = element.type; if (elementType === REACT_FRAGMENT_TYPE) - return updateFragment( - returnFiber, - current, - element.props.children, - lanes, - element.key + return ( + (returnFiber = updateFragment( + returnFiber, + current, + element.props.children, + lanes, + element.key + )), + coerceRef(returnFiber, element), + returnFiber ); if ( null !== current && @@ -3800,6 +3998,7 @@ function createChildReconciler(shouldTrackSideEffects) { null !== newChild && newChild.type === REACT_FRAGMENT_TYPE && null === newChild.key && + void 0 === newChild.props.ref && (newChild = newChild.props.children); if ("object" === typeof newChild && null !== newChild) { switch (newChild.$$typeof) { @@ -3818,6 +4017,7 @@ function createChildReconciler(shouldTrackSideEffects) { currentFirstChild, newChild.props.children ); + coerceRef(lanes, newChild); lanes.return = returnFiber; returnFiber = lanes; break a; @@ -3851,6 +4051,7 @@ function createChildReconciler(shouldTrackSideEffects) { lanes, newChild.key )), + coerceRef(lanes, newChild), (lanes.return = returnFiber), (returnFiber = lanes)) : ((lanes = createFiberFromTypeAndProps( @@ -4576,7 +4777,7 @@ function updateReducerImpl(hook, current, reducer) { var newBaseQueueFirst = (baseFirst = null), newBaseQueueLast = null, update = current, - didReadFromEntangledAsyncAction$60 = !1; + didReadFromEntangledAsyncAction$62 = !1; do { var updateLane = update.lane & -536870913; if ( @@ -4598,11 +4799,11 @@ function updateReducerImpl(hook, current, reducer) { next: null }), updateLane === currentEntangledLane && - (didReadFromEntangledAsyncAction$60 = !0); + (didReadFromEntangledAsyncAction$62 = !0); else if ((renderLanes & revertLane) === revertLane) { update = update.next; revertLane === currentEntangledLane && - (didReadFromEntangledAsyncAction$60 = !0); + (didReadFromEntangledAsyncAction$62 = !0); continue; } else (updateLane = { @@ -4650,7 +4851,7 @@ function updateReducerImpl(hook, current, reducer) { if ( !objectIs(pendingQueue, hook.memoizedState) && ((didReceiveUpdate = !0), - didReadFromEntangledAsyncAction$60 && + didReadFromEntangledAsyncAction$62 && ((reducer = currentEntangledActionThenable), null !== reducer)) ) throw reducer; @@ -4836,6 +5037,8 @@ function runActionStateAction(actionQueue, node) { if (node.isTransition) { var prevTransition = ReactSharedInternals.T, currentTransition = {}; + currentTransition.types = + null !== prevTransition ? prevTransition.types : null; ReactSharedInternals.T = currentTransition; try { var returnValue = action(prevState, payload), @@ -4855,8 +5058,8 @@ function runActionStateAction(actionQueue, node) { try { (prevTransition = action(prevState, payload)), handleActionReturnValue(actionQueue, node, prevTransition); - } catch (error$66) { - onActionError(actionQueue, node, error$66); + } catch (error$68) { + onActionError(actionQueue, node, error$68); } } function handleActionReturnValue(actionQueue, node, returnValue) { @@ -5215,6 +5418,8 @@ function startTransition(fiber, queue, pendingState, finishedState, callback) { 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8; var prevTransition = ReactSharedInternals.T, currentTransition = {}; + currentTransition.types = + null !== prevTransition ? prevTransition.types : null; ReactSharedInternals.T = currentTransition; dispatchOptimisticSetState(fiber, !1, queue, pendingState); try { @@ -5337,10 +5542,10 @@ function refreshCache(fiber) { case 3: var lane = requestUpdateLane(); fiber = createUpdate(lane); - var root$69 = enqueueUpdate(provider, fiber, lane); - null !== root$69 && - (scheduleUpdateOnFiber(root$69, provider, lane), - entangleTransitions(root$69, provider, lane)); + var root$71 = enqueueUpdate(provider, fiber, lane); + null !== root$71 && + (scheduleUpdateOnFiber(root$71, provider, lane), + entangleTransitions(root$71, provider, lane)); provider = { cache: createCache() }; fiber.payload = provider; return; @@ -5879,9 +6084,9 @@ function resolveClassComponentProps(Component, baseProps) { } if ((Component = Component.defaultProps)) { newProps === baseProps && (newProps = assign({}, newProps)); - for (var propName$73 in Component) - void 0 === newProps[propName$73] && - (newProps[propName$73] = Component[propName$73]); + for (var propName$75 in Component) + void 0 === newProps[propName$75] && + (newProps[propName$75] = Component[propName$75]); } return newProps; } @@ -5898,9 +6103,9 @@ function logUncaughtError(root, errorInfo) { try { var onUncaughtError = root.onUncaughtError; onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack }); - } catch (e$74) { + } catch (e$76) { setTimeout(function () { - throw e$74; + throw e$76; }); } } @@ -5911,9 +6116,9 @@ function logCaughtError(root, boundary, errorInfo) { componentStack: errorInfo.stack, errorBoundary: 1 === boundary.tag ? boundary.stateNode : null }); - } catch (e$75) { + } catch (e$77) { setTimeout(function () { - throw e$75; + throw e$77; }); } } @@ -7326,9 +7531,9 @@ function attemptEarlyBailoutIfNoScheduledUpdate( ); break; case 13: - var state$102 = workInProgress.memoizedState; - if (null !== state$102) { - if (null !== state$102.dehydrated) + var state$104 = workInProgress.memoizedState; + if (null !== state$104) { + if (null !== state$104.dehydrated) return ( pushPrimaryTreeSuspenseHandler(workInProgress), (workInProgress.flags |= 128), @@ -7348,17 +7553,17 @@ function attemptEarlyBailoutIfNoScheduledUpdate( break; case 19: var didSuspendBefore = 0 !== (current.flags & 128); - state$102 = 0 !== (renderLanes & workInProgress.childLanes); - state$102 || + state$104 = 0 !== (renderLanes & workInProgress.childLanes); + state$104 || (propagateParentContextChanges( current, workInProgress, renderLanes, !1 ), - (state$102 = 0 !== (renderLanes & workInProgress.childLanes))); + (state$104 = 0 !== (renderLanes & workInProgress.childLanes))); if (didSuspendBefore) { - if (state$102) + if (state$104) return updateSuspenseListComponent( current, workInProgress, @@ -7372,7 +7577,7 @@ function attemptEarlyBailoutIfNoScheduledUpdate( (didSuspendBefore.tail = null), (didSuspendBefore.lastEffect = null)); push(suspenseStackCursor, suspenseStackCursor.current); - if (state$102) break; + if (state$104) break; else return null; case 22: return ( @@ -7734,12 +7939,9 @@ function beginWork(current, workInProgress, renderLanes) { ); case 7: return ( - reconcileChildren( - current, - workInProgress, - workInProgress.pendingProps, - renderLanes - ), + (props = workInProgress.pendingProps), + markRef(current, workInProgress), + reconcileChildren(current, workInProgress, props, renderLanes), workInProgress.child ); case 8: @@ -7854,6 +8056,18 @@ function beginWork(current, workInProgress, renderLanes) { ), workInProgress.child ); + case 30: + return ( + (props = workInProgress.pendingProps), + null != props.name && "auto" !== props.name + ? (workInProgress.flags |= null === current ? 18882560 : 18874368) + : isHydrating && pushMaterializedTreeId(workInProgress), + null !== current && current.memoizedProps.name !== props.name + ? (workInProgress.flags |= 4194816) + : markRef(current, workInProgress), + reconcileChildren(current, workInProgress, props.children, renderLanes), + workInProgress.child + ); case 29: throw workInProgress.pendingProps; } @@ -7869,8 +8083,15 @@ function preloadInstanceAndSuspendIfNeeded( newProps, renderLanes ) { - if ((type = 0 !== (workInProgress.mode & 32))) type = !1; - if (type) { + var JSCompiler_temp; + if ((JSCompiler_temp = 0 !== (workInProgress.mode & 32))) + JSCompiler_temp = + null === oldProps + ? maySuspendCommit(type, newProps) + : maySuspendCommit(type, newProps) && + (newProps.src !== oldProps.src || + newProps.srcSet !== oldProps.srcSet); + if (JSCompiler_temp) { if ( ((workInProgress.flags |= 16777216), (renderLanes & 335544128) === renderLanes) @@ -7918,14 +8139,14 @@ function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) { break; case "collapsed": lastTailNode = renderState.tail; - for (var lastTailNode$106 = null; null !== lastTailNode; ) - null !== lastTailNode.alternate && (lastTailNode$106 = lastTailNode), + for (var lastTailNode$108 = null; null !== lastTailNode; ) + null !== lastTailNode.alternate && (lastTailNode$108 = lastTailNode), (lastTailNode = lastTailNode.sibling); - null === lastTailNode$106 + null === lastTailNode$108 ? hasRenderedATailFallback || null === renderState.tail ? (renderState.tail = null) : (renderState.tail.sibling = null) - : (lastTailNode$106.sibling = null); + : (lastTailNode$108.sibling = null); } } function bubbleProperties(completedWork) { @@ -7935,19 +8156,19 @@ function bubbleProperties(completedWork) { newChildLanes = 0, subtreeFlags = 0; if (didBailout) - for (var child$107 = completedWork.child; null !== child$107; ) - (newChildLanes |= child$107.lanes | child$107.childLanes), - (subtreeFlags |= child$107.subtreeFlags & 65011712), - (subtreeFlags |= child$107.flags & 65011712), - (child$107.return = completedWork), - (child$107 = child$107.sibling); + for (var child$109 = completedWork.child; null !== child$109; ) + (newChildLanes |= child$109.lanes | child$109.childLanes), + (subtreeFlags |= child$109.subtreeFlags & 65011712), + (subtreeFlags |= child$109.flags & 65011712), + (child$109.return = completedWork), + (child$109 = child$109.sibling); else - for (child$107 = completedWork.child; null !== child$107; ) - (newChildLanes |= child$107.lanes | child$107.childLanes), - (subtreeFlags |= child$107.subtreeFlags), - (subtreeFlags |= child$107.flags), - (child$107.return = completedWork), - (child$107 = child$107.sibling); + for (child$109 = completedWork.child; null !== child$109; ) + (newChildLanes |= child$109.lanes | child$109.childLanes), + (subtreeFlags |= child$109.subtreeFlags), + (subtreeFlags |= child$109.flags), + (child$109.return = completedWork), + (child$109 = child$109.sibling); completedWork.subtreeFlags |= subtreeFlags; completedWork.childLanes = newChildLanes; return didBailout; @@ -8034,6 +8255,7 @@ function completeWork(current, workInProgress, renderLanes) { if (null === workInProgress.stateNode) throw Error(formatProdErrorMessage(166)); bubbleProperties(workInProgress); + workInProgress.subtreeFlags &= -33554433; return null; } current = contextStackCursor.current; @@ -8044,6 +8266,7 @@ function completeWork(current, workInProgress, renderLanes) { markUpdate(workInProgress)); } bubbleProperties(workInProgress); + workInProgress.subtreeFlags &= -33554433; return null; case 5: popHostContext(workInProgress); @@ -8055,6 +8278,7 @@ function completeWork(current, workInProgress, renderLanes) { if (null === workInProgress.stateNode) throw Error(formatProdErrorMessage(166)); bubbleProperties(workInProgress); + workInProgress.subtreeFlags &= -33554433; return null; } nextResource = contextStackCursor.current; @@ -8166,6 +8390,7 @@ function completeWork(current, workInProgress, renderLanes) { } } bubbleProperties(workInProgress); + workInProgress.subtreeFlags &= -33554433; preloadInstanceAndSuspendIfNeeded( workInProgress, workInProgress.type, @@ -8455,7 +8680,11 @@ function completeWork(current, workInProgress, renderLanes) { case 25: return null; case 30: - return null; + return ( + (workInProgress.flags |= 33554432), + bubbleProperties(workInProgress), + null + ); } throw Error(formatProdErrorMessage(156, workInProgress.tag)); } @@ -8666,6 +8895,15 @@ function safelyAttachRef(current, nearestMountedAncestor) { var instanceToUse = current.stateNode; break; case 30: + var instance = current.stateNode, + name = getViewTransitionName(current.memoizedProps, instance); + if (null === instance.ref || instance.ref.name !== name) + instance.ref = createViewTransitionInstance(name); + instanceToUse = instance.ref; + break; + case 7: + null === current.stateNode && + (current.stateNode = new FragmentInstance(current)); instanceToUse = current.stateNode; break; default: @@ -8696,8 +8934,8 @@ function safelyDetachRef(current, nearestMountedAncestor) { else if ("function" === typeof ref) try { ref(null); - } catch (error$140) { - captureCommitPhaseError(current, nearestMountedAncestor, error$140); + } catch (error$143) { + captureCommitPhaseError(current, nearestMountedAncestor, error$143); } else ref.current = null; } @@ -8731,6 +8969,37 @@ function commitHostUpdate(finishedWork, newProps, oldProps) { captureCommitPhaseError(finishedWork, finishedWork.return, error); } } +function commitNewChildToFragmentInstances(fiber, parentFragmentInstances) { + if ( + 5 === fiber.tag && + null === fiber.alternate && + null !== parentFragmentInstances + ) + for (var i = 0; i < parentFragmentInstances.length; i++) + commitNewChildToFragmentInstance( + fiber.stateNode, + parentFragmentInstances[i] + ); +} +function commitFragmentInstanceDeletionEffects(fiber) { + for (var parent = fiber.return; null !== parent; ) { + if (isFragmentInstanceParent(parent)) { + var childElement = fiber.stateNode, + eventListeners = parent.stateNode._eventListeners; + if (null !== eventListeners) + for (var i = 0; i < eventListeners.length; i++) { + var _eventListeners$i4 = eventListeners[i]; + childElement.removeEventListener( + _eventListeners$i4.type, + _eventListeners$i4.listener, + _eventListeners$i4.optionsOrUseCapture + ); + } + } + if (isHostParent(parent)) break; + parent = parent.return; + } +} function isHostParent(fiber) { return ( 5 === fiber.tag || @@ -8740,6 +9009,9 @@ function isHostParent(fiber) { 4 === fiber.tag ); } +function isFragmentInstanceParent(fiber) { + return fiber && 7 === fiber.tag && null !== fiber.stateNode; +} function getHostSibling(fiber) { a: for (;;) { for (; null === fiber.sibling; ) { @@ -8760,28 +9032,35 @@ function getHostSibling(fiber) { if (!(fiber.flags & 2)) return fiber.stateNode; } } -function insertOrAppendPlacementNodeIntoContainer(node, before, parent) { +function insertOrAppendPlacementNodeIntoContainer( + node, + before, + parent, + parentFragmentInstances +) { var tag = node.tag; if (5 === tag || 6 === tag) - (node = node.stateNode), + (tag = node.stateNode), before ? (9 === parent.nodeType ? parent.body : "HTML" === parent.nodeName ? parent.ownerDocument.body : parent - ).insertBefore(node, before) + ).insertBefore(tag, before) : ((before = 9 === parent.nodeType ? parent.body : "HTML" === parent.nodeName ? parent.ownerDocument.body : parent), - before.appendChild(node), + before.appendChild(tag), (parent = parent._reactRootContainer), (null !== parent && void 0 !== parent) || null !== before.onclick || - (before.onclick = noop$1)); + (before.onclick = noop$1)), + commitNewChildToFragmentInstances(node, parentFragmentInstances), + (viewTransitionMutationContext = !0); else if ( 4 !== tag && (27 === tag && @@ -8791,19 +9070,36 @@ function insertOrAppendPlacementNodeIntoContainer(node, before, parent) { null !== node) ) for ( - insertOrAppendPlacementNodeIntoContainer(node, before, parent), + insertOrAppendPlacementNodeIntoContainer( + node, + before, + parent, + parentFragmentInstances + ), node = node.sibling; null !== node; ) - insertOrAppendPlacementNodeIntoContainer(node, before, parent), + insertOrAppendPlacementNodeIntoContainer( + node, + before, + parent, + parentFragmentInstances + ), (node = node.sibling); } -function insertOrAppendPlacementNode(node, before, parent) { +function insertOrAppendPlacementNode( + node, + before, + parent, + parentFragmentInstances +) { var tag = node.tag; if (5 === tag || 6 === tag) - (node = node.stateNode), - before ? parent.insertBefore(node, before) : parent.appendChild(node); + (tag = node.stateNode), + before ? parent.insertBefore(tag, before) : parent.appendChild(tag), + commitNewChildToFragmentInstances(node, parentFragmentInstances), + (viewTransitionMutationContext = !0); else if ( 4 !== tag && (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode), @@ -8811,11 +9107,23 @@ function insertOrAppendPlacementNode(node, before, parent) { null !== node) ) for ( - insertOrAppendPlacementNode(node, before, parent), node = node.sibling; + insertOrAppendPlacementNode( + node, + before, + parent, + parentFragmentInstances + ), + node = node.sibling; null !== node; ) - insertOrAppendPlacementNode(node, before, parent), (node = node.sibling); + insertOrAppendPlacementNode( + node, + before, + parent, + parentFragmentInstances + ), + (node = node.sibling); } function commitHostSingletonAcquisition(finishedWork) { var singleton = finishedWork.stateNode, @@ -8834,12 +9142,389 @@ function commitHostSingletonAcquisition(finishedWork) { captureCommitPhaseError(finishedWork, finishedWork.return, error); } } +var shouldStartViewTransition = !1, + appearingViewTransitions = null; +function trackEnterViewTransitions(placement) { + if (30 === placement.tag || 0 !== (placement.subtreeFlags & 33554432)) + shouldStartViewTransition = !0; +} +var viewTransitionCancelableChildren = null; +function pushViewTransitionCancelableScope() { + var prevChildren = viewTransitionCancelableChildren; + viewTransitionCancelableChildren = null; + return prevChildren; +} +var viewTransitionHostInstanceIdx = 0; +function applyViewTransitionToHostInstances( + fiber, + name, + className, + collectMeasurements, + stopAtNestedViewTransitions +) { + viewTransitionHostInstanceIdx = 0; + return applyViewTransitionToHostInstancesRecursive( + fiber.child, + name, + className, + collectMeasurements, + stopAtNestedViewTransitions + ); +} +function applyViewTransitionToHostInstancesRecursive( + child, + name, + className, + collectMeasurements, + stopAtNestedViewTransitions +) { + for (var inViewport = !1; null !== child; ) { + if (5 === child.tag) { + var instance = child.stateNode; + if (null !== collectMeasurements) { + var measurement = measureInstance(instance); + collectMeasurements.push(measurement); + measurement.view && (inViewport = !0); + } else + inViewport || (measureInstance(instance).view && (inViewport = !0)); + shouldStartViewTransition = !0; + applyViewTransitionName( + instance, + 0 === viewTransitionHostInstanceIdx + ? name + : name + "_" + viewTransitionHostInstanceIdx, + className + ); + viewTransitionHostInstanceIdx++; + } else if (22 !== child.tag || null === child.memoizedState) + (30 === child.tag && stopAtNestedViewTransitions) || + (applyViewTransitionToHostInstancesRecursive( + child.child, + name, + className, + collectMeasurements, + stopAtNestedViewTransitions + ) && + (inViewport = !0)); + child = child.sibling; + } + return inViewport; +} +function restoreViewTransitionOnHostInstances( + child, + stopAtNestedViewTransitions +) { + for (; null !== child; ) { + if (5 === child.tag) + restoreViewTransitionName(child.stateNode, child.memoizedProps); + else if (22 !== child.tag || null === child.memoizedState) + (30 === child.tag && stopAtNestedViewTransitions) || + restoreViewTransitionOnHostInstances( + child.child, + stopAtNestedViewTransitions + ); + child = child.sibling; + } +} +function commitAppearingPairViewTransitions(placement) { + if (0 !== (placement.subtreeFlags & 18874368)) + for (placement = placement.child; null !== placement; ) { + if (22 !== placement.tag || null !== placement.memoizedState) + if ( + (commitAppearingPairViewTransitions(placement), + 30 === placement.tag && + 0 !== (placement.flags & 18874368) && + placement.stateNode.paired) + ) { + var props = placement.memoizedProps; + if (null == props.name || "auto" === props.name) + throw Error(formatProdErrorMessage(544)); + var name = props.name; + props = getViewTransitionClassName(props.default, props.share); + "none" !== props && + (applyViewTransitionToHostInstances( + placement, + name, + props, + null, + !1 + ) || + restoreViewTransitionOnHostInstances(placement.child, !1)); + } + placement = placement.sibling; + } +} +function commitEnterViewTransitions(placement, gesture) { + if (30 === placement.tag) { + var state = placement.stateNode, + props = placement.memoizedProps, + name = getViewTransitionName(props, state), + className = getViewTransitionClassName( + props.default, + state.paired ? props.share : props.enter + ); + "none" !== className + ? applyViewTransitionToHostInstances(placement, name, className, null, !1) + ? (commitAppearingPairViewTransitions(placement), + state.paired || + gesture || + scheduleViewTransitionEvent(placement, props.onEnter)) + : restoreViewTransitionOnHostInstances(placement.child, !1) + : commitAppearingPairViewTransitions(placement); + } else if (0 !== (placement.subtreeFlags & 33554432)) + for (placement = placement.child; null !== placement; ) + commitEnterViewTransitions(placement, gesture), + (placement = placement.sibling); + else commitAppearingPairViewTransitions(placement); +} +function commitDeletedPairViewTransitions(deletion) { + if ( + null !== appearingViewTransitions && + 0 !== appearingViewTransitions.size + ) { + var pairs = appearingViewTransitions; + if (0 !== (deletion.subtreeFlags & 18874368)) + for (deletion = deletion.child; null !== deletion; ) { + if (22 !== deletion.tag || null !== deletion.memoizedState) { + if (30 === deletion.tag && 0 !== (deletion.flags & 18874368)) { + var props = deletion.memoizedProps, + name = props.name; + if (null != name && "auto" !== name) { + var pair = pairs.get(name); + if (void 0 !== pair) { + var className = getViewTransitionClassName( + props.default, + props.share + ); + "none" !== className && + (applyViewTransitionToHostInstances( + deletion, + name, + className, + null, + !1 + ) + ? ((className = deletion.stateNode), + (pair.paired = className), + (className.paired = pair), + scheduleViewTransitionEvent(deletion, props.onShare)) + : restoreViewTransitionOnHostInstances(deletion.child, !1)); + pairs.delete(name); + if (0 === pairs.size) break; + } + } + } + commitDeletedPairViewTransitions(deletion); + } + deletion = deletion.sibling; + } + } +} +function commitExitViewTransitions(deletion) { + if (30 === deletion.tag) { + var props = deletion.memoizedProps, + name = getViewTransitionName(props, deletion.stateNode), + pair = + null !== appearingViewTransitions + ? appearingViewTransitions.get(name) + : void 0, + className = getViewTransitionClassName( + props.default, + void 0 !== pair ? props.share : props.exit + ); + "none" !== className && + (applyViewTransitionToHostInstances(deletion, name, className, null, !1) + ? void 0 !== pair + ? ((className = deletion.stateNode), + (pair.paired = className), + (className.paired = pair), + appearingViewTransitions.delete(name), + scheduleViewTransitionEvent(deletion, props.onShare)) + : scheduleViewTransitionEvent(deletion, props.onExit) + : restoreViewTransitionOnHostInstances(deletion.child, !1)); + null !== appearingViewTransitions && + commitDeletedPairViewTransitions(deletion); + } else if (0 !== (deletion.subtreeFlags & 33554432)) + for (deletion = deletion.child; null !== deletion; ) + commitExitViewTransitions(deletion), (deletion = deletion.sibling); + else + null !== appearingViewTransitions && + commitDeletedPairViewTransitions(deletion); +} +function commitNestedViewTransitions(changedParent) { + for (changedParent = changedParent.child; null !== changedParent; ) { + if (30 === changedParent.tag) { + var props = changedParent.memoizedProps, + name = getViewTransitionName(props, changedParent.stateNode); + props = getViewTransitionClassName(props.default, props.update); + changedParent.flags &= -5; + "none" !== props && + applyViewTransitionToHostInstances( + changedParent, + name, + props, + (changedParent.memoizedState = []), + !1 + ); + } else + 0 !== (changedParent.subtreeFlags & 33554432) && + commitNestedViewTransitions(changedParent); + changedParent = changedParent.sibling; + } +} +function restorePairedViewTransitions(parent) { + if (0 !== (parent.subtreeFlags & 18874368)) + for (parent = parent.child; null !== parent; ) { + if (22 !== parent.tag || null !== parent.memoizedState) { + if (30 === parent.tag && 0 !== (parent.flags & 18874368)) { + var instance = parent.stateNode; + null !== instance.paired && + ((instance.paired = null), + restoreViewTransitionOnHostInstances(parent.child, !1)); + } + restorePairedViewTransitions(parent); + } + parent = parent.sibling; + } +} +function restoreEnterOrExitViewTransitions(fiber) { + if (30 === fiber.tag) + (fiber.stateNode.paired = null), + restoreViewTransitionOnHostInstances(fiber.child, !1), + restorePairedViewTransitions(fiber); + else if (0 !== (fiber.subtreeFlags & 33554432)) + for (fiber = fiber.child; null !== fiber; ) + restoreEnterOrExitViewTransitions(fiber), (fiber = fiber.sibling); + else restorePairedViewTransitions(fiber); +} +function restoreNestedViewTransitions(changedParent) { + for (changedParent = changedParent.child; null !== changedParent; ) + 30 === changedParent.tag + ? restoreViewTransitionOnHostInstances(changedParent.child, !1) + : 0 !== (changedParent.subtreeFlags & 33554432) && + restoreNestedViewTransitions(changedParent), + (changedParent = changedParent.sibling); +} +function measureViewTransitionHostInstancesRecursive( + parentViewTransition, + child, + newName, + oldName, + className, + previousMeasurements, + stopAtNestedViewTransitions +) { + for (var inViewport = !1; null !== child; ) { + if (5 === child.tag) { + var instance = child.stateNode; + if ( + null !== previousMeasurements && + viewTransitionHostInstanceIdx < previousMeasurements.length + ) { + var previousMeasurement = + previousMeasurements[viewTransitionHostInstanceIdx], + nextMeasurement = measureInstance(instance); + if (previousMeasurement.view || nextMeasurement.view) inViewport = !0; + var JSCompiler_temp; + if ((JSCompiler_temp = 0 === (parentViewTransition.flags & 4))) + if (nextMeasurement.clip) JSCompiler_temp = !0; + else { + JSCompiler_temp = previousMeasurement.rect; + var newRect = nextMeasurement.rect; + JSCompiler_temp = + JSCompiler_temp.y !== newRect.y || + JSCompiler_temp.x !== newRect.x || + JSCompiler_temp.height !== newRect.height || + JSCompiler_temp.width !== newRect.width; + } + JSCompiler_temp && (parentViewTransition.flags |= 4); + nextMeasurement.abs + ? (nextMeasurement = !previousMeasurement.abs) + : ((previousMeasurement = previousMeasurement.rect), + (nextMeasurement = nextMeasurement.rect), + (nextMeasurement = + previousMeasurement.height !== nextMeasurement.height || + previousMeasurement.width !== nextMeasurement.width)); + nextMeasurement && (parentViewTransition.flags |= 32); + } else parentViewTransition.flags |= 32; + 0 !== (parentViewTransition.flags & 4) && + applyViewTransitionName( + instance, + 0 === viewTransitionHostInstanceIdx + ? newName + : newName + "_" + viewTransitionHostInstanceIdx, + className + ); + (inViewport && 0 !== (parentViewTransition.flags & 4)) || + (null === viewTransitionCancelableChildren && + (viewTransitionCancelableChildren = []), + viewTransitionCancelableChildren.push( + instance, + oldName, + child.memoizedProps + )); + viewTransitionHostInstanceIdx++; + } else if (22 !== child.tag || null === child.memoizedState) + 30 === child.tag && stopAtNestedViewTransitions + ? (parentViewTransition.flags |= child.flags & 32) + : measureViewTransitionHostInstancesRecursive( + parentViewTransition, + child.child, + newName, + oldName, + className, + previousMeasurements, + stopAtNestedViewTransitions + ) && (inViewport = !0); + child = child.sibling; + } + return inViewport; +} +function measureNestedViewTransitions(changedParent, gesture) { + for (changedParent = changedParent.child; null !== changedParent; ) { + if (30 === changedParent.tag) { + var props = changedParent.memoizedProps, + state = changedParent.stateNode, + name = getViewTransitionName(props, state), + className = getViewTransitionClassName(props.default, props.update); + if (gesture) { + state = state.clones; + var previousMeasurements = + null === state ? null : state.map(measureClonedInstance); + } else + (previousMeasurements = changedParent.memoizedState), + (changedParent.memoizedState = null); + state = changedParent; + var child = changedParent.child; + viewTransitionHostInstanceIdx = 0; + name = measureViewTransitionHostInstancesRecursive( + state, + child, + name, + name, + className, + previousMeasurements, + !1 + ); + 0 !== (changedParent.flags & 4) && + name && + (gesture || scheduleViewTransitionEvent(changedParent, props.onUpdate)); + } else + 0 !== (changedParent.subtreeFlags & 33554432) && + measureNestedViewTransitions(changedParent, gesture); + changedParent = changedParent.sibling; + } +} var offscreenSubtreeIsHidden = !1, offscreenSubtreeWasHidden = !1, needsFormReset = !1, PossiblyWeakSet = "function" === typeof WeakSet ? WeakSet : Set, - nextEffect = null; -function commitBeforeMutationEffects(root, firstChild) { + nextEffect = null, + viewTransitionContextChanged = !1, + inUpdateViewTransition = !1, + rootViewTransitionAffected = !1, + rootViewTransitionNameCanceled = !1; +function commitBeforeMutationEffects(root, firstChild, committedLanes) { root = root.containerInfo; eventsEnabled = _enabled; root = getActiveElementDeep(root); @@ -8910,100 +9595,154 @@ function commitBeforeMutationEffects(root, firstChild) { } else JSCompiler_temp = null; selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp }; _enabled = !1; - for (nextEffect = firstChild; null !== nextEffect; ) + committedLanes = (committedLanes & 335544064) === committedLanes; + nextEffect = firstChild; + for (firstChild = committedLanes ? 9270 : 1028; null !== nextEffect; ) { + root = nextEffect; if ( - ((firstChild = nextEffect), - (root = firstChild.child), - 0 !== (firstChild.subtreeFlags & 1028) && null !== root) + committedLanes && + ((JSCompiler_temp = root.deletions), null !== JSCompiler_temp) ) - (root.return = firstChild), (nextEffect = root); - else - for (; null !== nextEffect; ) { - firstChild = nextEffect; - focusNode = firstChild.alternate; - root = firstChild.flags; - switch (firstChild.tag) { - case 0: - if ( - 0 !== (root & 4) && - ((root = firstChild.updateQueue), - (root = null !== root ? root.events : null), - null !== root) - ) - for ( - JSCompiler_temp = 0; - JSCompiler_temp < root.length; - JSCompiler_temp++ - ) - (anchorOffset = root[JSCompiler_temp]), - (anchorOffset.ref.impl = anchorOffset.nextImpl); - break; - case 11: - case 15: - break; - case 1: - if (0 !== (root & 1024) && null !== focusNode) { - root = void 0; - JSCompiler_temp = firstChild; - anchorOffset = focusNode.memoizedProps; - focusNode = focusNode.memoizedState; - selection = JSCompiler_temp.stateNode; - try { - var resolvedPrevProps = resolveClassComponentProps( - JSCompiler_temp.type, - anchorOffset - ); - root = selection.getSnapshotBeforeUpdate( - resolvedPrevProps, - focusNode - ); - selection.__reactInternalSnapshotBeforeUpdate = root; - } catch (error) { - captureCommitPhaseError( - JSCompiler_temp, - JSCompiler_temp.return, - error - ); - } - } - break; - case 3: - if (0 !== (root & 1024)) - if ( - ((root = firstChild.stateNode.containerInfo), - (JSCompiler_temp = root.nodeType), - 9 === JSCompiler_temp) - ) - clearContainerSparingly(root); - else if (1 === JSCompiler_temp) - switch (root.nodeName) { - case "HEAD": - case "HTML": - case "BODY": - clearContainerSparingly(root); - break; - default: - root.textContent = ""; - } - break; - case 5: - case 26: - case 27: - case 6: - case 4: - case 17: - break; - default: - if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163)); + for ( + anchorOffset = 0; + anchorOffset < JSCompiler_temp.length; + anchorOffset++ + ) + committedLanes && + commitExitViewTransitions(JSCompiler_temp[anchorOffset]); + if (null === root.alternate && 0 !== (root.flags & 2)) + committedLanes && trackEnterViewTransitions(root), + commitBeforeMutationEffects_complete(committedLanes); + else { + if (22 === root.tag) + if (((JSCompiler_temp = root.alternate), null !== root.memoizedState)) { + null !== JSCompiler_temp && + null === JSCompiler_temp.memoizedState && + committedLanes && + commitExitViewTransitions(JSCompiler_temp); + commitBeforeMutationEffects_complete(committedLanes); + continue; + } else if ( + null !== JSCompiler_temp && + null !== JSCompiler_temp.memoizedState + ) { + committedLanes && trackEnterViewTransitions(root); + commitBeforeMutationEffects_complete(committedLanes); + continue; } - root = firstChild.sibling; - if (null !== root) { - root.return = firstChild.return; - nextEffect = root; - break; + JSCompiler_temp = root.child; + 0 !== (root.subtreeFlags & firstChild) && null !== JSCompiler_temp + ? ((JSCompiler_temp.return = root), (nextEffect = JSCompiler_temp)) + : (committedLanes && commitNestedViewTransitions(root), + commitBeforeMutationEffects_complete(committedLanes)); + } + } + appearingViewTransitions = null; +} +function commitBeforeMutationEffects_complete( + isViewTransitionEligible$jscomp$0 +) { + for (; null !== nextEffect; ) { + var fiber = nextEffect, + isViewTransitionEligible = isViewTransitionEligible$jscomp$0, + current = fiber.alternate, + flags = fiber.flags; + switch (fiber.tag) { + case 0: + if ( + 0 !== (flags & 4) && + ((current = fiber.updateQueue), + (current = null !== current ? current.events : null), + null !== current) + ) + for ( + isViewTransitionEligible = 0; + isViewTransitionEligible < current.length; + isViewTransitionEligible++ + ) + (flags = current[isViewTransitionEligible]), + (flags.ref.impl = flags.nextImpl); + break; + case 11: + case 15: + break; + case 1: + if (0 !== (flags & 1024) && null !== current) { + isViewTransitionEligible = void 0; + flags = current.memoizedProps; + current = current.memoizedState; + var instance = fiber.stateNode; + try { + var resolvedPrevProps = resolveClassComponentProps( + fiber.type, + flags + ); + isViewTransitionEligible = instance.getSnapshotBeforeUpdate( + resolvedPrevProps, + current + ); + instance.__reactInternalSnapshotBeforeUpdate = + isViewTransitionEligible; + } catch (error) { + captureCommitPhaseError(fiber, fiber.return, error); + } } - nextEffect = firstChild.return; - } + break; + case 3: + if (0 !== (flags & 1024)) + if ( + ((current = fiber.stateNode.containerInfo), + (isViewTransitionEligible = current.nodeType), + 9 === isViewTransitionEligible) + ) + clearContainerSparingly(current); + else if (1 === isViewTransitionEligible) + switch (current.nodeName) { + case "HEAD": + case "HTML": + case "BODY": + clearContainerSparingly(current); + break; + default: + current.textContent = ""; + } + break; + case 5: + case 26: + case 27: + case 6: + case 4: + case 17: + break; + case 30: + isViewTransitionEligible && + null !== current && + ((isViewTransitionEligible = getViewTransitionName( + current.memoizedProps, + current.stateNode + )), + (flags = fiber.memoizedProps), + (flags = getViewTransitionClassName(flags.default, flags.update)), + "none" !== flags && + applyViewTransitionToHostInstances( + current, + isViewTransitionEligible, + flags, + (current.memoizedState = []), + !0 + )); + break; + default: + if (0 !== (flags & 1024)) throw Error(formatProdErrorMessage(163)); + } + current = fiber.sibling; + if (null !== current) { + current.return = fiber.return; + nextEffect = current; + break; + } + nextEffect = fiber.return; + } } function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { var flags = finishedWork.flags; @@ -9035,11 +9774,11 @@ function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { current, finishedRoot.__reactInternalSnapshotBeforeUpdate ); - } catch (error$139) { + } catch (error$141) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$139 + error$141 ); } } @@ -9121,7 +9860,11 @@ function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { } break; case 30: + recursivelyTraverseLayoutEffects(finishedRoot, finishedWork); + flags & 512 && safelyAttachRef(finishedWork, finishedWork.return); break; + case 7: + flags & 512 && safelyAttachRef(finishedWork, finishedWork.return); default: recursivelyTraverseLayoutEffects(finishedRoot, finishedWork); } @@ -9198,7 +9941,9 @@ function commitDeletionEffectsOnFiber( break; case 5: offscreenSubtreeWasHidden || - safelyDetachRef(deletedFiber, nearestMountedAncestor); + safelyDetachRef(deletedFiber, nearestMountedAncestor), + 5 === deletedFiber.tag && + commitFragmentInstanceDeletionEffects(deletedFiber); case 6: prevHostParent = hostParent; prevHostParentIsContainer = hostParentIsContainer; @@ -9218,7 +9963,8 @@ function commitDeletionEffectsOnFiber( : "HTML" === hostParent.nodeName ? hostParent.ownerDocument.body : hostParent - ).removeChild(deletedFiber.stateNode); + ).removeChild(deletedFiber.stateNode), + (viewTransitionMutationContext = !0); } catch (error) { captureCommitPhaseError( deletedFiber, @@ -9228,7 +9974,8 @@ function commitDeletionEffectsOnFiber( } else try { - hostParent.removeChild(deletedFiber.stateNode); + hostParent.removeChild(deletedFiber.stateNode), + (viewTransitionMutationContext = !0); } catch (error) { captureCommitPhaseError( deletedFiber, @@ -9312,6 +10059,23 @@ function commitDeletionEffectsOnFiber( ); offscreenSubtreeWasHidden = prevHostParent; break; + case 30: + safelyDetachRef(deletedFiber, nearestMountedAncestor); + recursivelyTraverseDeletionEffects( + finishedRoot, + nearestMountedAncestor, + deletedFiber + ); + break; + case 7: + offscreenSubtreeWasHidden || + safelyDetachRef(deletedFiber, nearestMountedAncestor); + recursivelyTraverseDeletionEffects( + finishedRoot, + nearestMountedAncestor, + deletedFiber + ); + break; default: recursivelyTraverseDeletionEffects( finishedRoot, @@ -9381,7 +10145,7 @@ function attachSuspenseRetryListeners(finishedWork, wakeables) { } }); } -function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) { +function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber, lanes) { var deletions = parentFiber.deletions; if (null !== deletions) for (var i = 0; i < deletions.length; i++) { @@ -9420,11 +10184,11 @@ function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) { } if (parentFiber.subtreeFlags & 13886) for (parentFiber = parentFiber.child; null !== parentFiber; ) - commitMutationEffectsOnFiber(parentFiber, root$jscomp$0), + commitMutationEffectsOnFiber(parentFiber, root$jscomp$0, lanes), (parentFiber = parentFiber.sibling); } var currentHoistableRoot = null; -function commitMutationEffectsOnFiber(finishedWork, root) { +function commitMutationEffectsOnFiber(finishedWork, root, lanes) { var current = finishedWork.alternate, flags = finishedWork.flags; switch (finishedWork.tag) { @@ -9432,7 +10196,7 @@ function commitMutationEffectsOnFiber(finishedWork, root) { case 11: case 14: case 15: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 4 && (commitHookEffectListUnmount(3, finishedWork, finishedWork.return), @@ -9440,7 +10204,7 @@ function commitMutationEffectsOnFiber(finishedWork, root) { commitHookEffectListUnmount(5, finishedWork, finishedWork.return)); break; case 1: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 512 && (offscreenSubtreeWasHidden || @@ -9450,127 +10214,126 @@ function commitMutationEffectsOnFiber(finishedWork, root) { offscreenSubtreeIsHidden && ((finishedWork = finishedWork.updateQueue), null !== finishedWork && - ((flags = finishedWork.callbacks), - null !== flags && - ((current = finishedWork.shared.hiddenCallbacks), + ((current = finishedWork.callbacks), + null !== current && + ((flags = finishedWork.shared.hiddenCallbacks), (finishedWork.shared.hiddenCallbacks = - null === current ? flags : current.concat(flags))))); + null === flags ? current : flags.concat(current))))); break; case 26: var hoistableRoot = currentHoistableRoot; - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 512 && (offscreenSubtreeWasHidden || null === current || safelyDetachRef(current, current.return)); - if (flags & 4) { - var currentResource = null !== current ? current.memoizedState : null; - flags = finishedWork.memoizedState; - if (null === current) + if (flags & 4) + if ( + ((root = null !== current ? current.memoizedState : null), + (flags = finishedWork.memoizedState), + null === current) + ) if (null === flags) if (null === finishedWork.stateNode) { a: { - flags = finishedWork.type; - current = finishedWork.memoizedProps; - hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot; - b: switch (flags) { + current = finishedWork.type; + flags = finishedWork.memoizedProps; + root = hoistableRoot.ownerDocument || hoistableRoot; + b: switch (current) { case "title": - currentResource = - hoistableRoot.getElementsByTagName("title")[0]; + lanes = root.getElementsByTagName("title")[0]; if ( - !currentResource || - currentResource[internalHoistableMarker] || - currentResource[internalInstanceKey] || - "http://www.w3.org/2000/svg" === - currentResource.namespaceURI || - currentResource.hasAttribute("itemprop") + !lanes || + lanes[internalHoistableMarker] || + lanes[internalInstanceKey] || + "http://www.w3.org/2000/svg" === lanes.namespaceURI || + lanes.hasAttribute("itemprop") ) - (currentResource = hoistableRoot.createElement(flags)), - hoistableRoot.head.insertBefore( - currentResource, - hoistableRoot.querySelector("head > title") + (lanes = root.createElement(current)), + root.head.insertBefore( + lanes, + root.querySelector("head > title") ); - setInitialProperties(currentResource, flags, current); - currentResource[internalInstanceKey] = finishedWork; - markNodeAsHoistable(currentResource); - flags = currentResource; + setInitialProperties(lanes, current, flags); + lanes[internalInstanceKey] = finishedWork; + markNodeAsHoistable(lanes); + current = lanes; break a; case "link": - var maybeNodes = getHydratableHoistableCache( - "link", - "href", - hoistableRoot - ).get(flags + (current.href || "")); - if (maybeNodes) - for (var i = 0; i < maybeNodes.length; i++) + if ( + (hoistableRoot = getHydratableHoistableCache( + "link", + "href", + root + ).get(current + (flags.href || ""))) + ) + for (var i = 0; i < hoistableRoot.length; i++) if ( - ((currentResource = maybeNodes[i]), - currentResource.getAttribute("href") === - (null == current.href || "" === current.href + ((lanes = hoistableRoot[i]), + lanes.getAttribute("href") === + (null == flags.href || "" === flags.href ? null - : current.href) && - currentResource.getAttribute("rel") === - (null == current.rel ? null : current.rel) && - currentResource.getAttribute("title") === - (null == current.title ? null : current.title) && - currentResource.getAttribute("crossorigin") === - (null == current.crossOrigin + : flags.href) && + lanes.getAttribute("rel") === + (null == flags.rel ? null : flags.rel) && + lanes.getAttribute("title") === + (null == flags.title ? null : flags.title) && + lanes.getAttribute("crossorigin") === + (null == flags.crossOrigin ? null - : current.crossOrigin)) + : flags.crossOrigin)) ) { - maybeNodes.splice(i, 1); + hoistableRoot.splice(i, 1); break b; } - currentResource = hoistableRoot.createElement(flags); - setInitialProperties(currentResource, flags, current); - hoistableRoot.head.appendChild(currentResource); + lanes = root.createElement(current); + setInitialProperties(lanes, current, flags); + root.head.appendChild(lanes); break; case "meta": if ( - (maybeNodes = getHydratableHoistableCache( + (hoistableRoot = getHydratableHoistableCache( "meta", "content", - hoistableRoot - ).get(flags + (current.content || ""))) + root + ).get(current + (flags.content || ""))) ) - for (i = 0; i < maybeNodes.length; i++) + for (i = 0; i < hoistableRoot.length; i++) if ( - ((currentResource = maybeNodes[i]), - currentResource.getAttribute("content") === - (null == current.content + ((lanes = hoistableRoot[i]), + lanes.getAttribute("content") === + (null == flags.content ? null - : "" + current.content) && - currentResource.getAttribute("name") === - (null == current.name ? null : current.name) && - currentResource.getAttribute("property") === - (null == current.property + : "" + flags.content) && + lanes.getAttribute("name") === + (null == flags.name ? null : flags.name) && + lanes.getAttribute("property") === + (null == flags.property ? null - : current.property) && - currentResource.getAttribute("http-equiv") === - (null == current.httpEquiv + : flags.property) && + lanes.getAttribute("http-equiv") === + (null == flags.httpEquiv ? null - : current.httpEquiv) && - currentResource.getAttribute("charset") === - (null == current.charSet - ? null - : current.charSet)) + : flags.httpEquiv) && + lanes.getAttribute("charset") === + (null == flags.charSet ? null : flags.charSet)) ) { - maybeNodes.splice(i, 1); + hoistableRoot.splice(i, 1); break b; } - currentResource = hoistableRoot.createElement(flags); - setInitialProperties(currentResource, flags, current); - hoistableRoot.head.appendChild(currentResource); + lanes = root.createElement(current); + setInitialProperties(lanes, current, flags); + root.head.appendChild(lanes); break; default: - throw Error(formatProdErrorMessage(468, flags)); + throw Error(formatProdErrorMessage(468, current)); } - currentResource[internalInstanceKey] = finishedWork; - markNodeAsHoistable(currentResource); - flags = currentResource; + lanes[internalInstanceKey] = finishedWork; + markNodeAsHoistable(lanes); + current = lanes; } - finishedWork.stateNode = flags; + finishedWork.stateNode = current; } else mountHoistable( hoistableRoot, @@ -9584,12 +10347,12 @@ function commitMutationEffectsOnFiber(finishedWork, root) { finishedWork.memoizedProps ); else - currentResource !== flags - ? (null === currentResource + root !== flags + ? (null === root ? null !== current.stateNode && ((current = current.stateNode), current.parentNode.removeChild(current)) - : currentResource.count--, + : root.count--, null === flags ? mountHoistable( hoistableRoot, @@ -9608,10 +10371,9 @@ function commitMutationEffectsOnFiber(finishedWork, root) { finishedWork.memoizedProps, current.memoizedProps ); - } break; case 27: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 512 && (offscreenSubtreeWasHidden || @@ -9626,50 +10388,51 @@ function commitMutationEffectsOnFiber(finishedWork, root) { ); break; case 5: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 512 && (offscreenSubtreeWasHidden || null === current || safelyDetachRef(current, current.return)); if (finishedWork.flags & 32) { - hoistableRoot = finishedWork.stateNode; + root = finishedWork.stateNode; try { - setTextContent(hoistableRoot, ""); + setTextContent(root, ""), (viewTransitionMutationContext = !0); } catch (error) { captureCommitPhaseError(finishedWork, finishedWork.return, error); } } flags & 4 && null != finishedWork.stateNode && - ((hoistableRoot = finishedWork.memoizedProps), + ((root = finishedWork.memoizedProps), commitHostUpdate( finishedWork, - hoistableRoot, - null !== current ? current.memoizedProps : hoistableRoot + root, + null !== current ? current.memoizedProps : root )); flags & 1024 && (needsFormReset = !0); break; case 6: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); if (flags & 4) { if (null === finishedWork.stateNode) throw Error(formatProdErrorMessage(162)); - flags = finishedWork.memoizedProps; - current = finishedWork.stateNode; + current = finishedWork.memoizedProps; + flags = finishedWork.stateNode; try { - current.nodeValue = flags; + (flags.nodeValue = current), (viewTransitionMutationContext = !0); } catch (error) { captureCommitPhaseError(finishedWork, finishedWork.return, error); } } break; case 3: + viewTransitionMutationContext = !1; tagCaches = null; hoistableRoot = currentHoistableRoot; currentHoistableRoot = getHoistableRoot(root.containerInfo); - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); currentHoistableRoot = hoistableRoot; commitReconciliationEffects(finishedWork); if (flags & 4 && null !== current && current.memoizedState.isDehydrated) @@ -9680,41 +10443,47 @@ function commitMutationEffectsOnFiber(finishedWork, root) { } needsFormReset && ((needsFormReset = !1), recursivelyResetForms(finishedWork)); + viewTransitionMutationContext = !1; break; case 4: + current = pushMutationContext(); flags = currentHoistableRoot; currentHoistableRoot = getHoistableRoot( finishedWork.stateNode.containerInfo ); - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); currentHoistableRoot = flags; + viewTransitionMutationContext && + inUpdateViewTransition && + (rootViewTransitionAffected = !0); + viewTransitionMutationContext = current; break; case 12: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); break; case 31: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 4 && - ((flags = finishedWork.updateQueue), - null !== flags && + ((current = finishedWork.updateQueue), + null !== current && ((finishedWork.updateQueue = null), - attachSuspenseRetryListeners(finishedWork, flags))); + attachSuspenseRetryListeners(finishedWork, current))); break; case 13: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); finishedWork.child.flags & 8192 && (null !== finishedWork.memoizedState) !== (null !== current && null !== current.memoizedState) && (globalMostRecentFallbackTime = now()); flags & 4 && - ((flags = finishedWork.updateQueue), - null !== flags && + ((current = finishedWork.updateQueue), + null !== current && ((finishedWork.updateQueue = null), - attachSuspenseRetryListeners(finishedWork, flags))); + attachSuspenseRetryListeners(finishedWork, current))); break; case 22: hoistableRoot = null !== finishedWork.memoizedState; @@ -9723,7 +10492,7 @@ function commitMutationEffectsOnFiber(finishedWork, root) { prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden; offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || hoistableRoot; offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden; - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden; offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden; commitReconciliationEffects(finishedWork); @@ -9746,52 +10515,53 @@ function commitMutationEffectsOnFiber(finishedWork, root) { ) { if (5 === root.tag || 26 === root.tag) { if (null === current) { - wasHidden = current = root; + lanes = current = root; try { - if (((currentResource = wasHidden.stateNode), hoistableRoot)) - (maybeNodes = currentResource.style), - "function" === typeof maybeNodes.setProperty - ? maybeNodes.setProperty("display", "none", "important") - : (maybeNodes.display = "none"); - else { - i = wasHidden.stateNode; - var styleProp = wasHidden.memoizedProps.style, + if (((i = lanes.stateNode), hoistableRoot)) { + var style = i.style; + "function" === typeof style.setProperty + ? style.setProperty("display", "none", "important") + : (style.display = "none"); + } else { + var instance = lanes.stateNode, + styleProp = lanes.memoizedProps.style, display = void 0 !== styleProp && null !== styleProp && styleProp.hasOwnProperty("display") ? styleProp.display : null; - i.style.display = + instance.style.display = null == display || "boolean" === typeof display ? "" : ("" + display).trim(); } } catch (error) { - captureCommitPhaseError(wasHidden, wasHidden.return, error); + captureCommitPhaseError(lanes, lanes.return, error); } } } else if (6 === root.tag) { if (null === current) { - wasHidden = root; + lanes = root; try { - wasHidden.stateNode.nodeValue = hoistableRoot + (lanes.stateNode.nodeValue = hoistableRoot ? "" - : wasHidden.memoizedProps; + : lanes.memoizedProps), + (viewTransitionMutationContext = !0); } catch (error) { - captureCommitPhaseError(wasHidden, wasHidden.return, error); + captureCommitPhaseError(lanes, lanes.return, error); } } } else if (18 === root.tag) { if (null === current) { - wasHidden = root; + lanes = root; try { - var instance = wasHidden.stateNode; + var instance$jscomp$0 = lanes.stateNode; hoistableRoot - ? hideOrUnhideDehydratedBoundary(instance, !0) - : hideOrUnhideDehydratedBoundary(wasHidden.stateNode, !1); + ? hideOrUnhideDehydratedBoundary(instance$jscomp$0, !0) + : hideOrUnhideDehydratedBoundary(lanes.stateNode, !1); } catch (error) { - captureCommitPhaseError(wasHidden, wasHidden.return, error); + captureCommitPhaseError(lanes, lanes.return, error); } } } else if ( @@ -9815,28 +10585,50 @@ function commitMutationEffectsOnFiber(finishedWork, root) { root = root.sibling; } flags & 4 && - ((flags = finishedWork.updateQueue), - null !== flags && - ((current = flags.retryQueue), - null !== current && - ((flags.retryQueue = null), - attachSuspenseRetryListeners(finishedWork, current)))); + ((current = finishedWork.updateQueue), + null !== current && + ((flags = current.retryQueue), + null !== flags && + ((current.retryQueue = null), + attachSuspenseRetryListeners(finishedWork, flags)))); break; case 19: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 4 && - ((flags = finishedWork.updateQueue), - null !== flags && + ((current = finishedWork.updateQueue), + null !== current && ((finishedWork.updateQueue = null), - attachSuspenseRetryListeners(finishedWork, flags))); + attachSuspenseRetryListeners(finishedWork, current))); break; case 30: + flags & 512 && + (offscreenSubtreeWasHidden || + null === current || + safelyDetachRef(current, current.return)); + flags = pushMutationContext(); + hoistableRoot = inUpdateViewTransition; + i = (lanes & 335544064) === lanes; + style = finishedWork.memoizedProps; + inUpdateViewTransition = + i && "none" !== getViewTransitionClassName(style.default, style.update); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); + commitReconciliationEffects(finishedWork); + i && + null !== current && + viewTransitionMutationContext && + (finishedWork.flags |= 4); + inUpdateViewTransition = hoistableRoot; + viewTransitionMutationContext = flags; break; case 21: break; + case 7: + current && + null !== current.stateNode && + (current.stateNode._fragmentFiber = finishedWork); default: - recursivelyTraverseMutationEffects(root, finishedWork), + recursivelyTraverseMutationEffects(root, finishedWork, lanes), commitReconciliationEffects(finishedWork); } } @@ -9845,10 +10637,18 @@ function commitReconciliationEffects(finishedWork) { if (flags & 2) { try { for ( - var hostParentFiber, parentFiber = finishedWork.return; + var hostParentFiber, + parentFragmentInstances = null, + parentFiber = finishedWork.return; null !== parentFiber; ) { + if (isFragmentInstanceParent(parentFiber)) { + var fragmentInstance = parentFiber.stateNode; + null === parentFragmentInstances + ? (parentFragmentInstances = [fragmentInstance]) + : parentFragmentInstances.push(fragmentInstance); + } if (isHostParent(parentFiber)) { hostParentFiber = parentFiber; break; @@ -9860,23 +10660,34 @@ function commitReconciliationEffects(finishedWork) { case 27: var parent = hostParentFiber.stateNode, before = getHostSibling(finishedWork); - insertOrAppendPlacementNode(finishedWork, before, parent); + insertOrAppendPlacementNode( + finishedWork, + before, + parent, + parentFragmentInstances + ); break; case 5: - var parent$141 = hostParentFiber.stateNode; + var parent$144 = hostParentFiber.stateNode; hostParentFiber.flags & 32 && - (setTextContent(parent$141, ""), (hostParentFiber.flags &= -33)); - var before$142 = getHostSibling(finishedWork); - insertOrAppendPlacementNode(finishedWork, before$142, parent$141); + (setTextContent(parent$144, ""), (hostParentFiber.flags &= -33)); + var before$145 = getHostSibling(finishedWork); + insertOrAppendPlacementNode( + finishedWork, + before$145, + parent$144, + parentFragmentInstances + ); break; case 3: case 4: - var parent$143 = hostParentFiber.stateNode.containerInfo, - before$144 = getHostSibling(finishedWork); + var parent$146 = hostParentFiber.stateNode.containerInfo, + before$147 = getHostSibling(finishedWork); insertOrAppendPlacementNodeIntoContainer( finishedWork, - before$144, - parent$143 + before$147, + parent$146, + parentFragmentInstances ); break; default: @@ -9898,6 +10709,128 @@ function recursivelyResetForms(parentFiber) { parentFiber = parentFiber.sibling; } } +function recursivelyTraverseAfterMutationEffects(root, parentFiber) { + if (parentFiber.subtreeFlags & 9270) + for (parentFiber = parentFiber.child; null !== parentFiber; ) + commitAfterMutationEffectsOnFiber(parentFiber, root), + (parentFiber = parentFiber.sibling); + else measureNestedViewTransitions(parentFiber, !1); +} +function commitAfterMutationEffectsOnFiber(finishedWork, root) { + var current = finishedWork.alternate; + if (null === current) commitEnterViewTransitions(finishedWork, !1); + else + switch (finishedWork.tag) { + case 3: + rootViewTransitionNameCanceled = viewTransitionContextChanged = !1; + pushViewTransitionCancelableScope(); + recursivelyTraverseAfterMutationEffects(root, finishedWork); + if (!viewTransitionContextChanged && !rootViewTransitionAffected) { + finishedWork = viewTransitionCancelableChildren; + if (null !== finishedWork) + for (var i = 0; i < finishedWork.length; i += 3) { + current = finishedWork[i]; + var oldName = finishedWork[i + 1]; + restoreViewTransitionName(current, finishedWork[i + 2]); + current = current.ownerDocument.documentElement; + null !== current && + current.animate( + { opacity: [0, 0], pointerEvents: ["none", "none"] }, + { + duration: 0, + fill: "forwards", + pseudoElement: "::view-transition-group(" + oldName + ")" + } + ); + } + finishedWork = root.containerInfo; + finishedWork = + 9 === finishedWork.nodeType + ? finishedWork.documentElement + : finishedWork.ownerDocument.documentElement; + null !== finishedWork && + "" === finishedWork.style.viewTransitionName && + ((finishedWork.style.viewTransitionName = "none"), + finishedWork.animate( + { opacity: [0, 0], pointerEvents: ["none", "none"] }, + { + duration: 0, + fill: "forwards", + pseudoElement: "::view-transition-group(root)" + } + ), + finishedWork.animate( + { width: [0, 0], height: [0, 0] }, + { + duration: 0, + fill: "forwards", + pseudoElement: "::view-transition" + } + )); + rootViewTransitionNameCanceled = !0; + } + viewTransitionCancelableChildren = null; + break; + case 5: + recursivelyTraverseAfterMutationEffects(root, finishedWork); + break; + case 4: + i = viewTransitionContextChanged; + viewTransitionContextChanged = !1; + recursivelyTraverseAfterMutationEffects(root, finishedWork); + viewTransitionContextChanged && (rootViewTransitionAffected = !0); + viewTransitionContextChanged = i; + break; + case 22: + null === finishedWork.memoizedState && + (null !== current.memoizedState + ? commitEnterViewTransitions(finishedWork, !1) + : recursivelyTraverseAfterMutationEffects(root, finishedWork)); + break; + case 30: + i = viewTransitionContextChanged; + oldName = pushViewTransitionCancelableScope(); + viewTransitionContextChanged = !1; + recursivelyTraverseAfterMutationEffects(root, finishedWork); + viewTransitionContextChanged && (finishedWork.flags |= 4); + var props = finishedWork.memoizedProps, + state = finishedWork.stateNode; + root = getViewTransitionName(props, state); + state = getViewTransitionName(current.memoizedProps, state); + var className = getViewTransitionClassName(props.default, props.update); + "none" === className + ? (root = !1) + : ((props = current.memoizedState), + (current.memoizedState = null), + (current = finishedWork.child), + (viewTransitionHostInstanceIdx = 0), + (root = measureViewTransitionHostInstancesRecursive( + finishedWork, + current, + root, + state, + className, + props, + !0 + )), + viewTransitionHostInstanceIdx !== + (null === props ? 0 : props.length) && + (finishedWork.flags |= 32)); + 0 !== (finishedWork.flags & 4) && root + ? (scheduleViewTransitionEvent( + finishedWork, + finishedWork.memoizedProps.onUpdate + ), + (viewTransitionCancelableChildren = oldName)) + : null !== oldName && + (oldName.push.apply(oldName, viewTransitionCancelableChildren), + (viewTransitionCancelableChildren = oldName)); + viewTransitionContextChanged = 0 !== (finishedWork.flags & 32) ? !0 : i; + break; + default: + recursivelyTraverseAfterMutationEffects(root, finishedWork); + } +} function recursivelyTraverseLayoutEffects(root, parentFiber) { if (parentFiber.subtreeFlags & 8772) for (parentFiber = parentFiber.child; null !== parentFiber; ) @@ -9931,6 +10864,8 @@ function recursivelyTraverseDisappearLayoutEffects(parentFiber) { case 26: case 5: safelyDetachRef(finishedWork, finishedWork.return); + 5 === finishedWork.tag && + commitFragmentInstanceDeletionEffects(finishedWork); recursivelyTraverseDisappearLayoutEffects(finishedWork); break; case 22: @@ -9938,8 +10873,11 @@ function recursivelyTraverseDisappearLayoutEffects(parentFiber) { recursivelyTraverseDisappearLayoutEffects(finishedWork); break; case 30: + safelyDetachRef(finishedWork, finishedWork.return); recursivelyTraverseDisappearLayoutEffects(finishedWork); break; + case 7: + safelyDetachRef(finishedWork, finishedWork.return); default: recursivelyTraverseDisappearLayoutEffects(finishedWork); } @@ -10009,6 +10947,18 @@ function recursivelyTraverseReappearLayoutEffects( commitHostSingletonAcquisition(finishedWork); case 26: case 5: + if (5 === finishedWork.tag) { + instance = finishedWork; + for (var parent = instance.return; null !== parent; ) { + isFragmentInstanceParent(parent) && + commitNewChildToFragmentInstance( + instance.stateNode, + parent.stateNode + ); + if (isHostParent(parent)) break; + parent = parent.return; + } + } recursivelyTraverseReappearLayoutEffects( finishedRoot, finishedWork, @@ -10057,7 +11007,15 @@ function recursivelyTraverseReappearLayoutEffects( safelyAttachRef(finishedWork, finishedWork.return); break; case 30: + recursivelyTraverseReappearLayoutEffects( + finishedRoot, + finishedWork, + includeWorkInProgressEffects + ); + safelyAttachRef(finishedWork, finishedWork.return); break; + case 7: + safelyAttachRef(finishedWork, finishedWork.return); default: recursivelyTraverseReappearLayoutEffects( finishedRoot, @@ -10096,7 +11054,9 @@ function recursivelyTraversePassiveMountEffects( committedLanes, committedTransitions ) { - if (parentFiber.subtreeFlags & 10256) + var isViewTransitionEligible = + (committedLanes & 335544064) === committedLanes; + if (parentFiber.subtreeFlags & (isViewTransitionEligible ? 10262 : 10256)) for (parentFiber = parentFiber.child; null !== parentFiber; ) commitPassiveMountOnFiber( root, @@ -10105,6 +11065,7 @@ function recursivelyTraversePassiveMountEffects( committedTransitions ), (parentFiber = parentFiber.sibling); + else isViewTransitionEligible && restoreNestedViewTransitions(parentFiber); } function commitPassiveMountOnFiber( finishedRoot, @@ -10112,6 +11073,13 @@ function commitPassiveMountOnFiber( committedLanes, committedTransitions ) { + var isViewTransitionEligible = + (committedLanes & 335544064) === committedLanes; + isViewTransitionEligible && + null === finishedWork.alternate && + null !== finishedWork.return && + null !== finishedWork.return.alternate && + restoreEnterOrExitViewTransitions(finishedWork); var flags = finishedWork.flags; switch (finishedWork.tag) { case 0: @@ -10140,14 +11108,28 @@ function commitPassiveMountOnFiber( committedLanes, committedTransitions ); + isViewTransitionEligible && + rootViewTransitionNameCanceled && + ((finishedRoot = finishedRoot.containerInfo), + (finishedRoot = + 9 === finishedRoot.nodeType + ? finishedRoot.body + : "HTML" === finishedRoot.nodeName + ? finishedRoot.ownerDocument.body + : finishedRoot), + "root" === finishedRoot.style.viewTransitionName && + (finishedRoot.style.viewTransitionName = ""), + (finishedRoot = finishedRoot.ownerDocument.documentElement), + null !== finishedRoot && + "none" === finishedRoot.style.viewTransitionName && + (finishedRoot.style.viewTransitionName = "")); flags & 2048 && - ((finishedRoot = null), + ((flags = null), null !== finishedWork.alternate && - (finishedRoot = finishedWork.alternate.memoizedState.cache), + (flags = finishedWork.alternate.memoizedState.cache), (finishedWork = finishedWork.memoizedState.cache), - finishedWork !== finishedRoot && - (finishedWork.refCount++, - null != finishedRoot && releaseCache(finishedRoot))); + finishedWork !== flags && + (finishedWork.refCount++, null != flags && releaseCache(flags))); break; case 12: if (flags & 2048) { @@ -10157,7 +11139,7 @@ function commitPassiveMountOnFiber( committedLanes, committedTransitions ); - finishedRoot = finishedWork.stateNode; + flags = finishedWork.stateNode; try { var _finishedWork$memoize2 = finishedWork.memoizedProps, id = _finishedWork$memoize2.id, @@ -10166,7 +11148,7 @@ function commitPassiveMountOnFiber( onPostCommit( id, null === finishedWork.alternate ? "mount" : "update", - finishedRoot.passiveEffectDuration, + flags.passiveEffectDuration, -0 ); } catch (error) { @@ -10202,29 +11184,40 @@ function commitPassiveMountOnFiber( _finishedWork$memoize2 = finishedWork.stateNode; id = finishedWork.alternate; null !== finishedWork.memoizedState - ? _finishedWork$memoize2._visibility & 2 - ? recursivelyTraversePassiveMountEffects( - finishedRoot, - finishedWork, - committedLanes, - committedTransitions - ) - : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork) - : _finishedWork$memoize2._visibility & 2 - ? recursivelyTraversePassiveMountEffects( - finishedRoot, - finishedWork, - committedLanes, - committedTransitions - ) - : ((_finishedWork$memoize2._visibility |= 2), - recursivelyTraverseReconnectPassiveEffects( - finishedRoot, - finishedWork, - committedLanes, - committedTransitions, - 0 !== (finishedWork.subtreeFlags & 10256) || !1 - )); + ? (isViewTransitionEligible && + null !== id && + null === id.memoizedState && + restoreEnterOrExitViewTransitions(id), + _finishedWork$memoize2._visibility & 2 + ? recursivelyTraversePassiveMountEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions + ) + : recursivelyTraverseAtomicPassiveEffects( + finishedRoot, + finishedWork + )) + : (isViewTransitionEligible && + null !== id && + null !== id.memoizedState && + restoreEnterOrExitViewTransitions(finishedWork), + _finishedWork$memoize2._visibility & 2 + ? recursivelyTraversePassiveMountEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions + ) + : ((_finishedWork$memoize2._visibility |= 2), + recursivelyTraverseReconnectPassiveEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions, + 0 !== (finishedWork.subtreeFlags & 10256) || !1 + ))); flags & 2048 && commitOffscreenPassiveMountEffects(id, finishedWork); break; case 24: @@ -10237,6 +11230,19 @@ function commitPassiveMountOnFiber( flags & 2048 && commitCachePassiveMountEffect(finishedWork.alternate, finishedWork); break; + case 30: + isViewTransitionEligible && + ((flags = finishedWork.alternate), + null !== flags && + (restoreViewTransitionOnHostInstances(flags.child, !0), + restoreViewTransitionOnHostInstances(finishedWork.child, !0))); + recursivelyTraversePassiveMountEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions + ); + break; default: recursivelyTraversePassiveMountEffects( finishedRoot, @@ -10388,13 +11394,16 @@ function accumulateSuspenseyCommitOnFiber( suspendedState ); fiber.flags & suspenseyCommitFlag && - null !== fiber.memoizedState && - suspendResource( - suspendedState, - currentHoistableRoot, - fiber.memoizedState, - fiber.memoizedProps - ); + (null !== fiber.memoizedState + ? suspendResource( + suspendedState, + currentHoistableRoot, + fiber.memoizedState, + fiber.memoizedProps + ) + : ((fiber = fiber.stateNode), + (committedLanes & 335544128) === committedLanes && + suspendInstance(suspendedState, fiber))); break; case 5: recursivelyAccumulateSuspenseyCommit( @@ -10402,6 +11411,10 @@ function accumulateSuspenseyCommitOnFiber( committedLanes, suspendedState ); + fiber.flags & suspenseyCommitFlag && + ((fiber = fiber.stateNode), + (committedLanes & 335544128) === committedLanes && + suspendInstance(suspendedState, fiber)); break; case 3: case 4: @@ -10433,6 +11446,24 @@ function accumulateSuspenseyCommitOnFiber( suspendedState )); break; + case 30: + if ( + 0 !== (fiber.flags & suspenseyCommitFlag) && + ((previousHoistableRoot = fiber.memoizedProps.name), + null != previousHoistableRoot && "auto" !== previousHoistableRoot) + ) { + var state = fiber.stateNode; + state.paired = null; + null === appearingViewTransitions && + (appearingViewTransitions = new Map()); + appearingViewTransitions.set(previousHoistableRoot, state); + } + recursivelyAccumulateSuspenseyCommit( + fiber, + committedLanes, + suspendedState + ); + break; default: recursivelyAccumulateSuspenseyCommit( fiber, @@ -10628,6 +11659,9 @@ var DefaultAsyncDispatcher = { pendingEffectsRemainingLanes = 0, pendingPassiveTransitions = null, pendingRecoverableErrors = null, + pendingViewTransition = null, + pendingViewTransitionEvents = null, + pendingTransitionTypes = null, nestedUpdateCount = 0, rootWithNestedUpdates = null; function requestUpdateLane() { @@ -10650,6 +11684,19 @@ function requestDeferredLane() { null !== lane && (lane.flags |= 32); return workInProgressDeferredLane; } +function scheduleViewTransitionEvent(fiber, callback) { + if (null != callback) { + var state = fiber.stateNode, + instance = state.ref; + null === instance && + (instance = state.ref = + createViewTransitionInstance( + getViewTransitionName(fiber.memoizedProps, state) + )); + null === pendingViewTransitionEvents && (pendingViewTransitionEvents = []); + pendingViewTransitionEvents.push(callback.bind(null, instance)); + } +} function scheduleUpdateOnFiber(root, fiber, lane) { if ( (root === workInProgressRoot && @@ -10862,39 +11909,58 @@ function commitRootWhenReady( completedRenderEndTime ) { root.timeoutHandle = -1; - suspendedCommitReason = finishedWork.subtreeFlags; + var subtreeFlags = finishedWork.subtreeFlags, + isViewTransitionEligible = (lanes & 335544064) === lanes; + suspendedCommitReason = null; if ( - suspendedCommitReason & 8192 || - 16785408 === (suspendedCommitReason & 16785408) - ) { - suspendedCommitReason = { - stylesheets: null, - count: 0, - imgCount: 0, - imgBytes: 0, - suspenseyImages: [], - waitingForImages: !0, - waitingForViewTransition: !1, - unsuspend: noop$1 - }; - accumulateSuspenseyCommitOnFiber( - finishedWork, - lanes, - suspendedCommitReason - ); - var timeoutOffset = - (lanes & 62914560) === lanes - ? globalMostRecentFallbackTime - now() - : (lanes & 4194048) === lanes - ? globalMostRecentTransitionTime - now() - : 0; - timeoutOffset = waitForCommitToBeReady( - suspendedCommitReason, - timeoutOffset - ); - if (null !== timeoutOffset) { + isViewTransitionEligible || + subtreeFlags & 8192 || + 16785408 === (subtreeFlags & 16785408) + ) + if ( + ((suspendedCommitReason = { + stylesheets: null, + count: 0, + imgCount: 0, + imgBytes: 0, + suspenseyImages: [], + waitingForImages: !0, + waitingForViewTransition: !1, + unsuspend: noop$1 + }), + (appearingViewTransitions = null), + accumulateSuspenseyCommitOnFiber( + finishedWork, + lanes, + suspendedCommitReason + ), + isViewTransitionEligible && + ((subtreeFlags = suspendedCommitReason), + (isViewTransitionEligible = root.containerInfo), + (isViewTransitionEligible = ( + 9 === isViewTransitionEligible.nodeType + ? isViewTransitionEligible + : isViewTransitionEligible.ownerDocument + ).__reactViewTransition), + null != isViewTransitionEligible && + (subtreeFlags.count++, + (subtreeFlags.waitingForViewTransition = !0), + (subtreeFlags = onUnsuspend.bind(subtreeFlags)), + isViewTransitionEligible.finished.then(subtreeFlags, subtreeFlags))), + (subtreeFlags = + (lanes & 62914560) === lanes + ? globalMostRecentFallbackTime - now() + : (lanes & 4194048) === lanes + ? globalMostRecentTransitionTime - now() + : 0), + (subtreeFlags = waitForCommitToBeReady( + suspendedCommitReason, + subtreeFlags + )), + null !== subtreeFlags) + ) { pendingEffectsLanes = lanes; - root.cancelPendingCommit = timeoutOffset( + root.cancelPendingCommit = subtreeFlags( commitRoot.bind( null, root, @@ -10916,7 +11982,6 @@ function commitRootWhenReady( markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings); return; } - } commitRoot( root, finishedWork, @@ -10926,7 +11991,9 @@ function commitRootWhenReady( didIncludeRenderPhaseUpdate, spawnedLane, updatedLanes, - suspendedRetryLanes + suspendedRetryLanes, + exitStatus, + suspendedCommitReason ); } function isRenderConsistentWithExternalStores(finishedWork) { @@ -11163,8 +12230,8 @@ function renderRootSync(root, lanes, shouldYieldForPrerendering) { workLoopSync(); exitStatus = workInProgressRootExitStatus; break; - } catch (thrownValue$165) { - handleThrow(root, thrownValue$165); + } catch (thrownValue$172) { + handleThrow(root, thrownValue$172); } while (1); lanes && root.shellSuspendCounter++; @@ -11283,8 +12350,8 @@ function renderRootConcurrent(root, lanes) { } workLoopConcurrentByScheduler(); break; - } catch (thrownValue$167) { - handleThrow(root, thrownValue$167); + } catch (thrownValue$174) { + handleThrow(root, thrownValue$174); } while (1); lastContextDependency = currentlyRenderingFiber$1 = null; @@ -11463,7 +12530,9 @@ function commitRoot( didIncludeRenderPhaseUpdate, spawnedLane, updatedLanes, - suspendedRetryLanes + suspendedRetryLanes, + exitStatus, + suspendedState ) { root.cancelPendingCommit = null; do flushPendingEffects(); @@ -11490,8 +12559,13 @@ function commitRoot( pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate; pendingPassiveTransitions = transitions; pendingRecoverableErrors = recoverableErrors; - 0 !== (finishedWork.subtreeFlags & 10256) || - 0 !== (finishedWork.flags & 10256) + pendingViewTransitionEvents = null; + (lanes & 335544064) === lanes + ? ((pendingTransitionTypes = claimQueuedTransitionTypes(root)), + (recoverableErrors = 10262)) + : ((pendingTransitionTypes = null), (recoverableErrors = 10256)); + 0 !== (finishedWork.subtreeFlags & recoverableErrors) || + 0 !== (finishedWork.flags & recoverableErrors) ? ((root.callbackNode = null), (root.callbackPriority = 0), scheduleCallback$1(NormalPriority$1, function () { @@ -11499,6 +12573,7 @@ function commitRoot( return null; })) : ((root.callbackNode = null), (root.callbackPriority = 0)); + shouldStartViewTransition = !1; recoverableErrors = 0 !== (finishedWork.flags & 13878); if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) { recoverableErrors = ReactSharedInternals.T; @@ -11515,17 +12590,43 @@ function commitRoot( (ReactSharedInternals.T = recoverableErrors); } } + finishedWork = shouldStartViewTransition; pendingEffectsStatus = 1; - flushMutationEffects(); - flushLayoutEffects(); - flushSpawnedWork(); + finishedWork + ? (pendingViewTransition = startViewTransition( + suspendedState, + root.containerInfo, + pendingTransitionTypes, + flushMutationEffects, + flushLayoutEffects, + flushAfterMutationEffects, + flushSpawnedWork, + flushPassiveEffects, + reportViewTransitionError, + null, + null + )) + : (flushMutationEffects(), flushLayoutEffects(), flushSpawnedWork()); } } +function reportViewTransitionError(error) { + if (0 !== pendingEffectsStatus) { + var onRecoverableError = pendingEffectsRoot.onRecoverableError; + onRecoverableError(error, { componentStack: null }); + } +} +function flushAfterMutationEffects() { + 3 === pendingEffectsStatus && + ((pendingEffectsStatus = 0), + commitAfterMutationEffectsOnFiber(pendingFinishedWork, pendingEffectsRoot), + (pendingEffectsStatus = 4)); +} function flushMutationEffects() { if (1 === pendingEffectsStatus) { pendingEffectsStatus = 0; var root = pendingEffectsRoot, finishedWork = pendingFinishedWork, + lanes = pendingEffectsLanes, rootMutationHasEffect = 0 !== (finishedWork.flags & 13878); if (0 !== (finishedWork.subtreeFlags & 13878) || rootMutationHasEffect) { rootMutationHasEffect = ReactSharedInternals.T; @@ -11535,11 +12636,12 @@ function flushMutationEffects() { var prevExecutionContext = executionContext; executionContext |= 4; try { - commitMutationEffectsOnFiber(finishedWork, root); - var priorSelectionInformation = selectionInformation, - curFocusedElem = getActiveElementDeep(root.containerInfo), - priorFocusedElem = priorSelectionInformation.focusedElem, - priorSelectionRange = priorSelectionInformation.selectionRange; + inUpdateViewTransition = rootViewTransitionAffected = !1; + commitMutationEffectsOnFiber(finishedWork, root, lanes); + lanes = selectionInformation; + var curFocusedElem = getActiveElementDeep(root.containerInfo), + priorFocusedElem = lanes.focusedElem, + priorSelectionRange = lanes.selectionRange; if ( curFocusedElem !== priorFocusedElem && priorFocusedElem && @@ -11670,19 +12772,21 @@ function flushLayoutEffects() { function flushSpawnedWork() { if (4 === pendingEffectsStatus || 3 === pendingEffectsStatus) { pendingEffectsStatus = 0; + pendingViewTransition = null; requestPaint(); var root = pendingEffectsRoot, finishedWork = pendingFinishedWork, lanes = pendingEffectsLanes, - recoverableErrors = pendingRecoverableErrors; - 0 !== (finishedWork.subtreeFlags & 10256) || - 0 !== (finishedWork.flags & 10256) + recoverableErrors = pendingRecoverableErrors, + passiveSubtreeMask = (lanes & 335544064) === lanes ? 10262 : 10256; + 0 !== (finishedWork.subtreeFlags & passiveSubtreeMask) || + 0 !== (finishedWork.flags & passiveSubtreeMask) ? (pendingEffectsStatus = 5) : ((pendingEffectsStatus = 0), (pendingFinishedWork = pendingEffectsRoot = null), releaseRootPooledCache(root, root.pendingLanes)); - var remainingLanes = root.pendingLanes; - 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null); + passiveSubtreeMask = root.pendingLanes; + 0 === passiveSubtreeMask && (legacyErrorBoundariesThatAlreadyFailed = null); lanesToEventPriority(lanes); finishedWork = finishedWork.stateNode; if (injectedHook && "function" === typeof injectedHook.onCommitFiberRoot) @@ -11696,7 +12800,7 @@ function flushSpawnedWork() { } catch (err) {} if (null !== recoverableErrors) { finishedWork = ReactSharedInternals.T; - remainingLanes = ReactDOMSharedInternals.p; + passiveSubtreeMask = ReactDOMSharedInternals.p; ReactDOMSharedInternals.p = 2; ReactSharedInternals.T = null; try { @@ -11712,13 +12816,25 @@ function flushSpawnedWork() { } } finally { (ReactSharedInternals.T = finishedWork), - (ReactDOMSharedInternals.p = remainingLanes); + (ReactDOMSharedInternals.p = passiveSubtreeMask); } } + recoverableErrors = pendingViewTransitionEvents; + onRecoverableError = pendingTransitionTypes; + pendingTransitionTypes = null; + if (null !== recoverableErrors) + for ( + pendingViewTransitionEvents = null, + null === onRecoverableError && (onRecoverableError = []), + recoverableError = 0; + recoverableError < recoverableErrors.length; + recoverableError++ + ) + (0, recoverableErrors[recoverableError])(onRecoverableError); 0 !== (pendingEffectsLanes & 3) && flushPendingEffects(); ensureRootIsScheduled(root); - remainingLanes = root.pendingLanes; - 0 !== (lanes & 261930) && 0 !== (remainingLanes & 42) + passiveSubtreeMask = root.pendingLanes; + 0 !== (lanes & 261930) && 0 !== (passiveSubtreeMask & 42) ? root === rootWithNestedUpdates ? nestedUpdateCount++ : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root)) @@ -11733,6 +12849,8 @@ function releaseRootPooledCache(root, remainingLanes) { ((root.pooledCache = null), releaseCache(remainingLanes))); } function flushPendingEffects() { + null !== pendingViewTransition && + (pendingViewTransition.skipTransition(), (pendingViewTransition = null)); flushMutationEffects(); flushLayoutEffects(); flushSpawnedWork(); @@ -11920,14 +13038,14 @@ function flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) { isFlushingWork = !0; do { var didPerformSomeWork = !1; - for (var root$170 = firstScheduledRoot; null !== root$170; ) { + for (var root$178 = firstScheduledRoot; null !== root$178; ) { if (!onlyLegacy) if (0 !== syncTransitionLanes) { - var pendingLanes = root$170.pendingLanes; + var pendingLanes = root$178.pendingLanes; if (0 === pendingLanes) var JSCompiler_inline_result = 0; else { - var suspendedLanes = root$170.suspendedLanes, - pingedLanes = root$170.pingedLanes; + var suspendedLanes = root$178.suspendedLanes, + pingedLanes = root$178.pingedLanes; JSCompiler_inline_result = (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1; JSCompiler_inline_result &= @@ -11941,20 +13059,20 @@ function flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) { } 0 !== JSCompiler_inline_result && ((didPerformSomeWork = !0), - performSyncWorkOnRoot(root$170, JSCompiler_inline_result)); + performSyncWorkOnRoot(root$178, JSCompiler_inline_result)); } else (JSCompiler_inline_result = workInProgressRootRenderLanes), (JSCompiler_inline_result = getNextLanes( - root$170, - root$170 === workInProgressRoot ? JSCompiler_inline_result : 0, - null !== root$170.cancelPendingCommit || - -1 !== root$170.timeoutHandle + root$178, + root$178 === workInProgressRoot ? JSCompiler_inline_result : 0, + null !== root$178.cancelPendingCommit || + -1 !== root$178.timeoutHandle )), 0 === (JSCompiler_inline_result & 3) || - checkIfRootIsPrerendering(root$170, JSCompiler_inline_result) || + checkIfRootIsPrerendering(root$178, JSCompiler_inline_result) || ((didPerformSomeWork = !0), - performSyncWorkOnRoot(root$170, JSCompiler_inline_result)); - root$170 = root$170.next; + performSyncWorkOnRoot(root$178, JSCompiler_inline_result)); + root$178 = root$178.next; } } while (didPerformSomeWork); isFlushingWork = !1; @@ -12202,20 +13320,20 @@ function extractEvents$1( } } for ( - var i$jscomp$inline_1577 = 0; - i$jscomp$inline_1577 < simpleEventPluginEvents.length; - i$jscomp$inline_1577++ + var i$jscomp$inline_1703 = 0; + i$jscomp$inline_1703 < simpleEventPluginEvents.length; + i$jscomp$inline_1703++ ) { - var eventName$jscomp$inline_1578 = - simpleEventPluginEvents[i$jscomp$inline_1577], - domEventName$jscomp$inline_1579 = - eventName$jscomp$inline_1578.toLowerCase(), - capitalizedEvent$jscomp$inline_1580 = - eventName$jscomp$inline_1578[0].toUpperCase() + - eventName$jscomp$inline_1578.slice(1); + var eventName$jscomp$inline_1704 = + simpleEventPluginEvents[i$jscomp$inline_1703], + domEventName$jscomp$inline_1705 = + eventName$jscomp$inline_1704.toLowerCase(), + capitalizedEvent$jscomp$inline_1706 = + eventName$jscomp$inline_1704[0].toUpperCase() + + eventName$jscomp$inline_1704.slice(1); registerSimpleEvent( - domEventName$jscomp$inline_1579, - "on" + capitalizedEvent$jscomp$inline_1580 + domEventName$jscomp$inline_1705, + "on" + capitalizedEvent$jscomp$inline_1706 ); } registerSimpleEvent(ANIMATION_END, "onAnimationEnd"); @@ -12584,12 +13702,12 @@ function dispatchEventForPluginEventSystem( } if (0 === (eventSystemFlags & 7)) { a: { - reactName = - "mouseover" === domEventName || "pointerover" === domEventName; SyntheticEventCtor = + "mouseover" === domEventName || "pointerover" === domEventName; + reactName = "mouseout" === domEventName || "pointerout" === domEventName; if ( - reactName && + SyntheticEventCtor && nativeEvent !== currentReplayingEvent && (reactEventType = nativeEvent.relatedTarget || nativeEvent.fromElement) && @@ -12597,33 +13715,34 @@ function dispatchEventForPluginEventSystem( reactEventType[internalContainerInstanceKey]) ) break a; - if (SyntheticEventCtor || reactName) { - reactName = + if (reactName || SyntheticEventCtor) { + reactEventType = nativeEventTarget.window === nativeEventTarget ? nativeEventTarget - : (reactName = nativeEventTarget.ownerDocument) - ? reactName.defaultView || reactName.parentWindow + : (SyntheticEventCtor = nativeEventTarget.ownerDocument) + ? SyntheticEventCtor.defaultView || + SyntheticEventCtor.parentWindow : window; - if (SyntheticEventCtor) { + if (reactName) { if ( - ((reactEventType = + ((SyntheticEventCtor = nativeEvent.relatedTarget || nativeEvent.toElement), - (SyntheticEventCtor = targetInst), - (reactEventType = reactEventType - ? getClosestInstanceFromNode(reactEventType) + (reactName = targetInst), + (SyntheticEventCtor = SyntheticEventCtor + ? getClosestInstanceFromNode(SyntheticEventCtor) : null), - null !== reactEventType && + null !== SyntheticEventCtor && ((accumulateTargetOnly = - getNearestMountedFiber(reactEventType)), - (inCapturePhase = reactEventType.tag), - reactEventType !== accumulateTargetOnly || + getNearestMountedFiber(SyntheticEventCtor)), + (inCapturePhase = SyntheticEventCtor.tag), + SyntheticEventCtor !== accumulateTargetOnly || (5 !== inCapturePhase && 27 !== inCapturePhase && 6 !== inCapturePhase))) ) - reactEventType = null; - } else (SyntheticEventCtor = null), (reactEventType = targetInst); - if (SyntheticEventCtor !== reactEventType) { + SyntheticEventCtor = null; + } else (reactName = null), (SyntheticEventCtor = targetInst); + if (reactName !== SyntheticEventCtor) { inCapturePhase = SyntheticMouseEvent; _instance = "onMouseLeave"; reactEventName = "onMouseEnter"; @@ -12634,28 +13753,28 @@ function dispatchEventForPluginEventSystem( (reactEventName = "onPointerEnter"), (instance = "pointer"); accumulateTargetOnly = + null == reactName + ? reactEventType + : getNodeFromInstance(reactName); + lastHostComponent = null == SyntheticEventCtor - ? reactName + ? reactEventType : getNodeFromInstance(SyntheticEventCtor); - lastHostComponent = - null == reactEventType - ? reactName - : getNodeFromInstance(reactEventType); - reactName = new inCapturePhase( + reactEventType = new inCapturePhase( _instance, instance + "leave", - SyntheticEventCtor, + reactName, nativeEvent, nativeEventTarget ); - reactName.target = accumulateTargetOnly; - reactName.relatedTarget = lastHostComponent; + reactEventType.target = accumulateTargetOnly; + reactEventType.relatedTarget = lastHostComponent; _instance = null; getClosestInstanceFromNode(nativeEventTarget) === targetInst && ((inCapturePhase = new inCapturePhase( reactEventName, instance + "enter", - reactEventType, + SyntheticEventCtor, nativeEvent, nativeEventTarget )), @@ -12663,54 +13782,28 @@ function dispatchEventForPluginEventSystem( (inCapturePhase.relatedTarget = accumulateTargetOnly), (_instance = inCapturePhase)); accumulateTargetOnly = _instance; - if (SyntheticEventCtor && reactEventType) - b: { - inCapturePhase = getParent; - reactEventName = SyntheticEventCtor; - instance = reactEventType; - lastHostComponent = 0; - for ( - _instance = reactEventName; - _instance; - _instance = inCapturePhase(_instance) - ) - lastHostComponent++; - _instance = 0; - for (var tempB = instance; tempB; tempB = inCapturePhase(tempB)) - _instance++; - for (; 0 < lastHostComponent - _instance; ) - (reactEventName = inCapturePhase(reactEventName)), - lastHostComponent--; - for (; 0 < _instance - lastHostComponent; ) - (instance = inCapturePhase(instance)), _instance--; - for (; lastHostComponent--; ) { - if ( - reactEventName === instance || - (null !== instance && reactEventName === instance.alternate) - ) { - inCapturePhase = reactEventName; - break b; - } - reactEventName = inCapturePhase(reactEventName); - instance = inCapturePhase(instance); - } - inCapturePhase = null; - } - else inCapturePhase = null; - null !== SyntheticEventCtor && + inCapturePhase = + reactName && SyntheticEventCtor + ? getLowestCommonAncestor( + reactName, + SyntheticEventCtor, + getParent + ) + : null; + null !== reactName && accumulateEnterLeaveListenersForEvent( dispatchQueue, + reactEventType, reactName, - SyntheticEventCtor, inCapturePhase, !1 ); - null !== reactEventType && + null !== SyntheticEventCtor && null !== accumulateTargetOnly && accumulateEnterLeaveListenersForEvent( dispatchQueue, accumulateTargetOnly, - reactEventType, + SyntheticEventCtor, inCapturePhase, !0 ); @@ -12957,13 +14050,13 @@ function checkForUnmatchedText(serverText, clientText) { function setProp(domElement, tag, key, value, props, prevValue) { switch (key) { case "children": - "string" === typeof value - ? "body" === tag || + if ("string" === typeof value) + "body" === tag || ("textarea" === tag && "" === value) || - setTextContent(domElement, value) - : ("number" === typeof value || "bigint" === typeof value) && - "body" !== tag && - setTextContent(domElement, "" + value); + setTextContent(domElement, value); + else if ("number" === typeof value || "bigint" === typeof value) + "body" !== tag && setTextContent(domElement, "" + value); + else return; break; case "className": setValueForKnownAttribute(domElement, "class", value); @@ -12980,7 +14073,7 @@ function setProp(domElement, tag, key, value, props, prevValue) { break; case "style": setValueForStyles(domElement, value, prevValue); - break; + return; case "data": if ("object" !== tag) { setValueForKnownAttribute(domElement, "data", value); @@ -13057,13 +14150,13 @@ function setProp(domElement, tag, key, value, props, prevValue) { break; case "onClick": null != value && (domElement.onclick = noop$1); - break; + return; case "onScroll": null != value && listenToNonDelegatedEvent("scroll", domElement); - break; + return; case "onScrollEnd": null != value && listenToNonDelegatedEvent("scrollend", domElement); - break; + return; case "dangerouslySetInnerHTML": if (null != value) { if ("object" !== typeof value || !("__html" in value)) @@ -13262,7 +14355,7 @@ function setProp(domElement, tag, key, value, props, prevValue) { break; case "innerText": case "textContent": - break; + return; default: if ( !(2 < key.length) || @@ -13271,13 +14364,15 @@ function setProp(domElement, tag, key, value, props, prevValue) { ) (key = aliases.get(key) || key), setValueForAttribute(domElement, key, value); + else return; } + viewTransitionMutationContext = !0; } function setPropOnCustomElement(domElement, tag, key, value, props, prevValue) { switch (key) { case "style": setValueForStyles(domElement, value, prevValue); - break; + return; case "dangerouslySetInnerHTML": if (null != value) { if ("object" !== typeof value || !("__html" in value)) @@ -13290,28 +14385,28 @@ function setPropOnCustomElement(domElement, tag, key, value, props, prevValue) { } break; case "children": - "string" === typeof value - ? setTextContent(domElement, value) - : ("number" === typeof value || "bigint" === typeof value) && - setTextContent(domElement, "" + value); + if ("string" === typeof value) setTextContent(domElement, value); + else if ("number" === typeof value || "bigint" === typeof value) + setTextContent(domElement, "" + value); + else return; break; case "onScroll": null != value && listenToNonDelegatedEvent("scroll", domElement); - break; + return; case "onScrollEnd": null != value && listenToNonDelegatedEvent("scrollend", domElement); - break; + return; case "onClick": null != value && (domElement.onclick = noop$1); - break; + return; case "suppressContentEditableWarning": case "suppressHydrationWarning": case "innerHTML": case "ref": - break; + return; case "innerText": case "textContent": - break; + return; default: if (!registrationNameDependencies.hasOwnProperty(key)) a: { @@ -13335,13 +14430,16 @@ function setPropOnCustomElement(domElement, tag, key, value, props, prevValue) { domElement.addEventListener(tag, value, props); break a; } + viewTransitionMutationContext = !0; key in domElement ? (domElement[key] = value) : !0 === value ? domElement.setAttribute(key, "") : setValueForAttribute(domElement, key, value); } + return; } + viewTransitionMutationContext = !0; } function setInitialProperties(domElement, tag, props) { switch (tag) { @@ -13389,34 +14487,34 @@ function setInitialProperties(domElement, tag, props) { defaultChecked = null; for (hasSrc in props) if (props.hasOwnProperty(hasSrc)) { - var propValue$184 = props[hasSrc]; - if (null != propValue$184) + var propValue$192 = props[hasSrc]; + if (null != propValue$192) switch (hasSrc) { case "name": - hasSrcSet = propValue$184; + hasSrcSet = propValue$192; break; case "type": - propValue = propValue$184; + propValue = propValue$192; break; case "checked": - checked = propValue$184; + checked = propValue$192; break; case "defaultChecked": - defaultChecked = propValue$184; + defaultChecked = propValue$192; break; case "value": - propKey = propValue$184; + propKey = propValue$192; break; case "defaultValue": - defaultValue = propValue$184; + defaultValue = propValue$192; break; case "children": case "dangerouslySetInnerHTML": - if (null != propValue$184) + if (null != propValue$192) throw Error(formatProdErrorMessage(137, tag)); break; default: - setProp(domElement, tag, hasSrc, propValue$184, props, null); + setProp(domElement, tag, hasSrc, propValue$192, props, null); } } initInput( @@ -13553,14 +14651,14 @@ function setInitialProperties(domElement, tag, props) { return; default: if (isCustomElement(tag)) { - for (propValue$184 in props) - props.hasOwnProperty(propValue$184) && - ((hasSrc = props[propValue$184]), + for (propValue$192 in props) + props.hasOwnProperty(propValue$192) && + ((hasSrc = props[propValue$192]), void 0 !== hasSrc && setPropOnCustomElement( domElement, tag, - propValue$184, + propValue$192, hasSrc, props, void 0 @@ -13608,30 +14706,36 @@ function updateProperties(domElement, tag, lastProps, nextProps) { setProp(domElement, tag, propKey, null, nextProps, lastProp); } } - for (var propKey$201 in nextProps) { - var propKey = nextProps[propKey$201]; - lastProp = lastProps[propKey$201]; + for (var propKey$209 in nextProps) { + var propKey = nextProps[propKey$209]; + lastProp = lastProps[propKey$209]; if ( - nextProps.hasOwnProperty(propKey$201) && + nextProps.hasOwnProperty(propKey$209) && (null != propKey || null != lastProp) ) - switch (propKey$201) { + switch (propKey$209) { case "type": + propKey !== lastProp && (viewTransitionMutationContext = !0); type = propKey; break; case "name": + propKey !== lastProp && (viewTransitionMutationContext = !0); name = propKey; break; case "checked": + propKey !== lastProp && (viewTransitionMutationContext = !0); checked = propKey; break; case "defaultChecked": + propKey !== lastProp && (viewTransitionMutationContext = !0); defaultChecked = propKey; break; case "value": + propKey !== lastProp && (viewTransitionMutationContext = !0); value = propKey; break; case "defaultValue": + propKey !== lastProp && (viewTransitionMutationContext = !0); defaultValue = propKey; break; case "children": @@ -13644,7 +14748,7 @@ function updateProperties(domElement, tag, lastProps, nextProps) { setProp( domElement, tag, - propKey$201, + propKey$209, propKey, nextProps, lastProp @@ -13663,7 +14767,7 @@ function updateProperties(domElement, tag, lastProps, nextProps) { ); return; case "select": - propKey = value = defaultValue = propKey$201 = null; + propKey = value = defaultValue = propKey$209 = null; for (type in lastProps) if ( ((lastDefaultValue = lastProps[type]), @@ -13694,13 +14798,16 @@ function updateProperties(domElement, tag, lastProps, nextProps) { ) switch (name) { case "value": - propKey$201 = type; + type !== lastDefaultValue && (viewTransitionMutationContext = !0); + propKey$209 = type; break; case "defaultValue": + type !== lastDefaultValue && (viewTransitionMutationContext = !0); defaultValue = type; break; case "multiple": - value = type; + type !== lastDefaultValue && (viewTransitionMutationContext = !0), + (value = type); default: type !== lastDefaultValue && setProp( @@ -13715,15 +14822,15 @@ function updateProperties(domElement, tag, lastProps, nextProps) { tag = defaultValue; lastProps = value; nextProps = propKey; - null != propKey$201 - ? updateOptions(domElement, !!lastProps, propKey$201, !1) + null != propKey$209 + ? updateOptions(domElement, !!lastProps, propKey$209, !1) : !!nextProps !== !!lastProps && (null != tag ? updateOptions(domElement, !!lastProps, tag, !0) : updateOptions(domElement, !!lastProps, lastProps ? [] : "", !1)); return; case "textarea": - propKey = propKey$201 = null; + propKey = propKey$209 = null; for (defaultValue in lastProps) if ( ((name = lastProps[defaultValue]), @@ -13747,9 +14854,11 @@ function updateProperties(domElement, tag, lastProps, nextProps) { ) switch (value) { case "value": - propKey$201 = name; + name !== type && (viewTransitionMutationContext = !0); + propKey$209 = name; break; case "defaultValue": + name !== type && (viewTransitionMutationContext = !0); propKey = name; break; case "children": @@ -13761,17 +14870,17 @@ function updateProperties(domElement, tag, lastProps, nextProps) { name !== type && setProp(domElement, tag, value, name, nextProps, type); } - updateTextarea(domElement, propKey$201, propKey); + updateTextarea(domElement, propKey$209, propKey); return; case "option": - for (var propKey$217 in lastProps) + for (var propKey$225 in lastProps) if ( - ((propKey$201 = lastProps[propKey$217]), - lastProps.hasOwnProperty(propKey$217) && - null != propKey$201 && - !nextProps.hasOwnProperty(propKey$217)) + ((propKey$209 = lastProps[propKey$225]), + lastProps.hasOwnProperty(propKey$225) && + null != propKey$209 && + !nextProps.hasOwnProperty(propKey$225)) ) - switch (propKey$217) { + switch (propKey$225) { case "selected": domElement.selected = !1; break; @@ -13779,33 +14888,34 @@ function updateProperties(domElement, tag, lastProps, nextProps) { setProp( domElement, tag, - propKey$217, + propKey$225, null, nextProps, - propKey$201 + propKey$209 ); } for (lastDefaultValue in nextProps) if ( - ((propKey$201 = nextProps[lastDefaultValue]), + ((propKey$209 = nextProps[lastDefaultValue]), (propKey = lastProps[lastDefaultValue]), nextProps.hasOwnProperty(lastDefaultValue) && - propKey$201 !== propKey && - (null != propKey$201 || null != propKey)) + propKey$209 !== propKey && + (null != propKey$209 || null != propKey)) ) switch (lastDefaultValue) { case "selected": + propKey$209 !== propKey && (viewTransitionMutationContext = !0); domElement.selected = - propKey$201 && - "function" !== typeof propKey$201 && - "symbol" !== typeof propKey$201; + propKey$209 && + "function" !== typeof propKey$209 && + "symbol" !== typeof propKey$209; break; default: setProp( domElement, tag, lastDefaultValue, - propKey$201, + propKey$209, nextProps, propKey ); @@ -13826,24 +14936,24 @@ function updateProperties(domElement, tag, lastProps, nextProps) { case "track": case "wbr": case "menuitem": - for (var propKey$222 in lastProps) - (propKey$201 = lastProps[propKey$222]), - lastProps.hasOwnProperty(propKey$222) && - null != propKey$201 && - !nextProps.hasOwnProperty(propKey$222) && - setProp(domElement, tag, propKey$222, null, nextProps, propKey$201); + for (var propKey$230 in lastProps) + (propKey$209 = lastProps[propKey$230]), + lastProps.hasOwnProperty(propKey$230) && + null != propKey$209 && + !nextProps.hasOwnProperty(propKey$230) && + setProp(domElement, tag, propKey$230, null, nextProps, propKey$209); for (checked in nextProps) if ( - ((propKey$201 = nextProps[checked]), + ((propKey$209 = nextProps[checked]), (propKey = lastProps[checked]), nextProps.hasOwnProperty(checked) && - propKey$201 !== propKey && - (null != propKey$201 || null != propKey)) + propKey$209 !== propKey && + (null != propKey$209 || null != propKey)) ) switch (checked) { case "children": case "dangerouslySetInnerHTML": - if (null != propKey$201) + if (null != propKey$209) throw Error(formatProdErrorMessage(137, tag)); break; default: @@ -13851,7 +14961,7 @@ function updateProperties(domElement, tag, lastProps, nextProps) { domElement, tag, checked, - propKey$201, + propKey$209, nextProps, propKey ); @@ -13859,49 +14969,49 @@ function updateProperties(domElement, tag, lastProps, nextProps) { return; default: if (isCustomElement(tag)) { - for (var propKey$227 in lastProps) - (propKey$201 = lastProps[propKey$227]), - lastProps.hasOwnProperty(propKey$227) && - void 0 !== propKey$201 && - !nextProps.hasOwnProperty(propKey$227) && + for (var propKey$235 in lastProps) + (propKey$209 = lastProps[propKey$235]), + lastProps.hasOwnProperty(propKey$235) && + void 0 !== propKey$209 && + !nextProps.hasOwnProperty(propKey$235) && setPropOnCustomElement( domElement, tag, - propKey$227, + propKey$235, void 0, nextProps, - propKey$201 + propKey$209 ); for (defaultChecked in nextProps) - (propKey$201 = nextProps[defaultChecked]), + (propKey$209 = nextProps[defaultChecked]), (propKey = lastProps[defaultChecked]), !nextProps.hasOwnProperty(defaultChecked) || - propKey$201 === propKey || - (void 0 === propKey$201 && void 0 === propKey) || + propKey$209 === propKey || + (void 0 === propKey$209 && void 0 === propKey) || setPropOnCustomElement( domElement, tag, defaultChecked, - propKey$201, + propKey$209, nextProps, propKey ); return; } } - for (var propKey$232 in lastProps) - (propKey$201 = lastProps[propKey$232]), - lastProps.hasOwnProperty(propKey$232) && - null != propKey$201 && - !nextProps.hasOwnProperty(propKey$232) && - setProp(domElement, tag, propKey$232, null, nextProps, propKey$201); + for (var propKey$240 in lastProps) + (propKey$209 = lastProps[propKey$240]), + lastProps.hasOwnProperty(propKey$240) && + null != propKey$209 && + !nextProps.hasOwnProperty(propKey$240) && + setProp(domElement, tag, propKey$240, null, nextProps, propKey$209); for (lastProp in nextProps) - (propKey$201 = nextProps[lastProp]), + (propKey$209 = nextProps[lastProp]), (propKey = lastProps[lastProp]), !nextProps.hasOwnProperty(lastProp) || - propKey$201 === propKey || - (null == propKey$201 && null == propKey) || - setProp(domElement, tag, lastProp, propKey$201, nextProps, propKey); + propKey$209 === propKey || + (null == propKey$209 && null == propKey) || + setProp(domElement, tag, lastProp, propKey$209, nextProps, propKey); } function isLikelyStaticResource(initiatorType) { switch (initiatorType) { @@ -14109,6 +15219,837 @@ function hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) { node = nextNode; } while (node); } +function applyViewTransitionName(instance, name, className) { + instance.style.viewTransitionName = name; + null != className && (instance.style.viewTransitionClass = className); + name = getComputedStyle(instance); + if ("inline" === name.display) { + className = instance.getClientRects(); + if (1 === className.length) var JSCompiler_inline_result = 1; + else + for (var i = (JSCompiler_inline_result = 0); i < className.length; i++) { + var rect = className[i]; + 0 < rect.width && 0 < rect.height && JSCompiler_inline_result++; + } + 1 === JSCompiler_inline_result && + ((instance = instance.style), + (instance.display = 1 === className.length ? "inline-block" : "block"), + (instance.marginTop = "-" + name.paddingTop), + (instance.marginBottom = "-" + name.paddingBottom)); + } +} +function restoreViewTransitionName(instance, props) { + instance = instance.style; + props = props.style; + var viewTransitionName = + null != props + ? props.hasOwnProperty("viewTransitionName") + ? props.viewTransitionName + : props.hasOwnProperty("view-transition-name") + ? props["view-transition-name"] + : null + : null; + instance.viewTransitionName = + null == viewTransitionName || "boolean" === typeof viewTransitionName + ? "" + : ("" + viewTransitionName).trim(); + viewTransitionName = + null != props + ? props.hasOwnProperty("viewTransitionClass") + ? props.viewTransitionClass + : props.hasOwnProperty("view-transition-class") + ? props["view-transition-class"] + : null + : null; + instance.viewTransitionClass = + null == viewTransitionName || "boolean" === typeof viewTransitionName + ? "" + : ("" + viewTransitionName).trim(); + "inline-block" === instance.display && + (null == props + ? (instance.display = instance.margin = "") + : ((viewTransitionName = props.display), + (instance.display = + null == viewTransitionName || "boolean" === typeof viewTransitionName + ? "" + : viewTransitionName), + (viewTransitionName = props.margin), + null != viewTransitionName + ? (instance.margin = viewTransitionName) + : ((viewTransitionName = props.hasOwnProperty("marginTop") + ? props.marginTop + : props["margin-top"]), + (instance.marginTop = + null == viewTransitionName || + "boolean" === typeof viewTransitionName + ? "" + : viewTransitionName), + (props = props.hasOwnProperty("marginBottom") + ? props.marginBottom + : props["margin-bottom"]), + (instance.marginBottom = + null == props || "boolean" === typeof props ? "" : props)))); +} +function createMeasurement(rect, computedStyle, element) { + element = element.ownerDocument.defaultView; + return { + rect: rect, + abs: + "absolute" === computedStyle.position || + "fixed" === computedStyle.position, + clip: + "none" !== computedStyle.clipPath || + "visible" !== computedStyle.overflow || + "none" !== computedStyle.filter || + "none" !== computedStyle.mask || + "none" !== computedStyle.mask || + "0px" !== computedStyle.borderRadius, + view: + 0 <= rect.bottom && + 0 <= rect.right && + rect.top <= element.innerHeight && + rect.left <= element.innerWidth + }; +} +function measureInstance(instance) { + var rect = instance.getBoundingClientRect(), + computedStyle = getComputedStyle(instance); + return createMeasurement(rect, computedStyle, instance); +} +function measureClonedInstance(instance) { + var measuredRect = instance.getBoundingClientRect(); + measuredRect = new DOMRect( + measuredRect.x + 2e4, + measuredRect.y + 2e4, + measuredRect.width, + measuredRect.height + ); + var computedStyle = getComputedStyle(instance); + return createMeasurement(measuredRect, computedStyle, instance); +} +function forceLayout(ownerDocument) { + return ownerDocument.documentElement.clientHeight; +} +function waitForImageToLoad(resolve) { + this.addEventListener("load", resolve); + this.addEventListener("error", resolve); +} +function startViewTransition( + suspendedState, + rootContainer, + transitionTypes, + mutationCallback, + layoutCallback, + afterMutationCallback, + spawnedWorkCallback, + passiveCallback, + errorCallback +) { + var ownerDocument = + 9 === rootContainer.nodeType ? rootContainer : rootContainer.ownerDocument; + try { + var transition = ownerDocument.startViewTransition({ + update: function () { + var ownerWindow = ownerDocument.defaultView, + pendingNavigation = + ownerWindow.navigation && ownerWindow.navigation.transition, + previousFontLoadingStatus = ownerDocument.fonts.status; + mutationCallback(); + var blockingPromises = []; + "loaded" === previousFontLoadingStatus && + (forceLayout(ownerDocument), + "loading" === ownerDocument.fonts.status && + blockingPromises.push(ownerDocument.fonts.ready)); + previousFontLoadingStatus = blockingPromises.length; + if (null !== suspendedState) + for ( + var suspenseyImages = suspendedState.suspenseyImages, + imgBytes = 0, + i = 0; + i < suspenseyImages.length; + i++ + ) { + var suspenseyImage = suspenseyImages[i]; + if (!suspenseyImage.complete) { + var rect = suspenseyImage.getBoundingClientRect(); + if ( + 0 < rect.bottom && + 0 < rect.right && + rect.top < ownerWindow.innerHeight && + rect.left < ownerWindow.innerWidth + ) { + imgBytes += estimateImageBytes(suspenseyImage); + if (imgBytes > estimatedBytesWithinLimit) { + blockingPromises.length = previousFontLoadingStatus; + break; + } + suspenseyImage = new Promise( + waitForImageToLoad.bind(suspenseyImage) + ); + blockingPromises.push(suspenseyImage); + } + } + } + if (0 < blockingPromises.length) + return ( + (ownerWindow = Promise.race([ + Promise.all(blockingPromises), + new Promise(function (resolve) { + return setTimeout(resolve, 500); + }) + ]).then(layoutCallback, layoutCallback)), + (pendingNavigation + ? Promise.allSettled([pendingNavigation.finished, ownerWindow]) + : ownerWindow + ).then(afterMutationCallback, afterMutationCallback) + ); + layoutCallback(); + if (pendingNavigation) + return pendingNavigation.finished.then( + afterMutationCallback, + afterMutationCallback + ); + afterMutationCallback(); + }, + types: transitionTypes + }); + ownerDocument.__reactViewTransition = transition; + transition.ready.then( + function () { + for ( + var animations = ownerDocument.documentElement.getAnimations({ + subtree: !0 + }), + i = 0; + i < animations.length; + i++ + ) { + var effect = animations[i].effect, + pseudoElement = effect.pseudoElement; + if ( + null != pseudoElement && + pseudoElement.startsWith("::view-transition") + ) { + pseudoElement = effect.getKeyframes(); + for ( + var width = void 0, + height = void 0, + unchangedDimensions = !0, + j = 0; + j < pseudoElement.length; + j++ + ) { + var keyframe = pseudoElement[j], + w = keyframe.width; + if (void 0 === width) width = w; + else if (width !== w) { + unchangedDimensions = !1; + break; + } + w = keyframe.height; + if (void 0 === height) height = w; + else if (height !== w) { + unchangedDimensions = !1; + break; + } + delete keyframe.width; + delete keyframe.height; + "none" === keyframe.transform && delete keyframe.transform; + } + unchangedDimensions && + void 0 !== width && + void 0 !== height && + (effect.setKeyframes(pseudoElement), + (unchangedDimensions = getComputedStyle( + effect.target, + effect.pseudoElement + )), + unchangedDimensions.width !== width || + unchangedDimensions.height !== height) && + ((unchangedDimensions = pseudoElement[0]), + (unchangedDimensions.width = width), + (unchangedDimensions.height = height), + (unchangedDimensions = pseudoElement[pseudoElement.length - 1]), + (unchangedDimensions.width = width), + (unchangedDimensions.height = height), + effect.setKeyframes(pseudoElement)); + } + } + spawnedWorkCallback(); + }, + function (error) { + ownerDocument.__reactViewTransition === transition && + (ownerDocument.__reactViewTransition = null); + try { + if ("object" === typeof error && null !== error) + switch (error.name) { + case "InvalidStateError": + if ( + "View transition was skipped because document visibility state is hidden." === + error.message || + "Skipping view transition because document visibility state has become hidden." === + error.message || + "Skipping view transition because viewport size changed." === + error.message || + "Transition was aborted because of invalid state" === + error.message + ) + error = null; + } + null !== error && errorCallback(error); + } finally { + mutationCallback(), layoutCallback(), spawnedWorkCallback(); + } + } + ); + transition.finished.finally(function () { + for ( + var scope = ownerDocument.documentElement, + animations = scope.getAnimations({ subtree: !0 }), + i = 0; + i < animations.length; + i++ + ) { + var anim = animations[i], + effect = anim.effect, + pseudo = effect.pseudoElement; + null != pseudo && + pseudo.startsWith("::view-transition") && + effect.target === scope && + anim.cancel(); + } + ownerDocument.__reactViewTransition === transition && + (ownerDocument.__reactViewTransition = null); + passiveCallback(); + }); + return transition; + } catch (x) { + return mutationCallback(), layoutCallback(), spawnedWorkCallback(), null; + } +} +function ViewTransitionPseudoElement(pseudo, name) { + this._scope = document.documentElement; + this._selector = "::view-transition-" + pseudo + "(" + name + ")"; +} +ViewTransitionPseudoElement.prototype.animate = function (keyframes, options) { + options = + "number" === typeof options ? { duration: options } : assign({}, options); + options.pseudoElement = this._selector; + return this._scope.animate(keyframes, options); +}; +ViewTransitionPseudoElement.prototype.getAnimations = function () { + for ( + var scope = this._scope, + selector = this._selector, + animations = scope.getAnimations({ subtree: !0 }), + result = [], + i = 0; + i < animations.length; + i++ + ) { + var effect = animations[i].effect; + null !== effect && + effect.target === scope && + effect.pseudoElement === selector && + result.push(animations[i]); + } + return result; +}; +ViewTransitionPseudoElement.prototype.getComputedStyle = function () { + return getComputedStyle(this._scope, this._selector); +}; +function createViewTransitionInstance(name) { + return { + name: name, + group: new ViewTransitionPseudoElement("group", name), + imagePair: new ViewTransitionPseudoElement("image-pair", name), + old: new ViewTransitionPseudoElement("old", name), + new: new ViewTransitionPseudoElement("new", name) + }; +} +function FragmentInstance(fragmentFiber) { + this._fragmentFiber = fragmentFiber; + this._observers = this._eventListeners = null; +} +FragmentInstance.prototype.addEventListener = function ( + type, + listener, + optionsOrUseCapture +) { + null === this._eventListeners && (this._eventListeners = []); + var listeners = this._eventListeners; + -1 === indexOfEventListener(listeners, type, listener, optionsOrUseCapture) && + (listeners.push({ + type: type, + listener: listener, + optionsOrUseCapture: optionsOrUseCapture + }), + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + addEventListenerToChild, + type, + listener, + optionsOrUseCapture + )); + this._eventListeners = listeners; +}; +function addEventListenerToChild(child, type, listener, optionsOrUseCapture) { + getInstanceFromHostFiber(child).addEventListener( + type, + listener, + optionsOrUseCapture + ); + return !1; +} +FragmentInstance.prototype.removeEventListener = function ( + type, + listener, + optionsOrUseCapture +) { + var listeners = this._eventListeners; + null !== listeners && + "undefined" !== typeof listeners && + 0 < listeners.length && + (traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + removeEventListenerFromChild, + type, + listener, + optionsOrUseCapture + ), + (type = indexOfEventListener( + listeners, + type, + listener, + optionsOrUseCapture + )), + null !== this._eventListeners && this._eventListeners.splice(type, 1)); +}; +function removeEventListenerFromChild( + child, + type, + listener, + optionsOrUseCapture +) { + getInstanceFromHostFiber(child).removeEventListener( + type, + listener, + optionsOrUseCapture + ); + return !1; +} +function normalizeListenerOptions(opts) { + return null == opts + ? "0" + : "boolean" === typeof opts + ? "c=" + (opts ? "1" : "0") + : "c=" + + (opts.capture ? "1" : "0") + + "&o=" + + (opts.once ? "1" : "0") + + "&p=" + + (opts.passive ? "1" : "0"); +} +function indexOfEventListener( + eventListeners, + type, + listener, + optionsOrUseCapture +) { + for (var i = 0; i < eventListeners.length; i++) { + var item = eventListeners[i]; + if ( + item.type === type && + item.listener === listener && + normalizeListenerOptions(item.optionsOrUseCapture) === + normalizeListenerOptions(optionsOrUseCapture) + ) + return i; + } + return -1; +} +FragmentInstance.prototype.dispatchEvent = function (event) { + var parentHostFiber = getFragmentParentHostFiber(this._fragmentFiber); + if (null === parentHostFiber) return !0; + parentHostFiber = getInstanceFromHostFiber(parentHostFiber); + var eventListeners = this._eventListeners; + if ( + (null !== eventListeners && 0 < eventListeners.length) || + !event.bubbles + ) { + var temp = document.createTextNode(""); + if (eventListeners) + for (var i = 0; i < eventListeners.length; i++) { + var _eventListeners$i = eventListeners[i]; + temp.addEventListener( + _eventListeners$i.type, + _eventListeners$i.listener, + _eventListeners$i.optionsOrUseCapture + ); + } + parentHostFiber.appendChild(temp); + event = temp.dispatchEvent(event); + if (eventListeners) + for (i = 0; i < eventListeners.length; i++) + (_eventListeners$i = eventListeners[i]), + temp.removeEventListener( + _eventListeners$i.type, + _eventListeners$i.listener, + _eventListeners$i.optionsOrUseCapture + ); + parentHostFiber.removeChild(temp); + return event; + } + return parentHostFiber.dispatchEvent(event); +}; +FragmentInstance.prototype.focus = function (focusOptions) { + traverseVisibleHostChildren( + this._fragmentFiber.child, + !0, + setFocusOnFiberIfFocusable, + focusOptions, + void 0, + void 0 + ); +}; +function setFocusOnFiberIfFocusable(fiber, focusOptions) { + fiber = getInstanceFromHostFiber(fiber); + return setFocusIfFocusable(fiber, focusOptions); +} +FragmentInstance.prototype.focusLast = function (focusOptions) { + var children = []; + traverseVisibleHostChildren( + this._fragmentFiber.child, + !0, + collectChildren, + children, + void 0, + void 0 + ); + for ( + var i = children.length - 1; + 0 <= i && !setFocusOnFiberIfFocusable(children[i], focusOptions); + i-- + ); +}; +function collectChildren(child, collection) { + collection.push(child); + return !1; +} +FragmentInstance.prototype.blur = function () { + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + blurActiveElementWithinFragment, + void 0, + void 0, + void 0 + ); +}; +function blurActiveElementWithinFragment(child) { + child = getInstanceFromHostFiber(child); + return child === child.ownerDocument.activeElement ? (child.blur(), !0) : !1; +} +FragmentInstance.prototype.observeUsing = function (observer) { + null === this._observers && (this._observers = new Set()); + this._observers.add(observer); + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + observeChild, + observer, + void 0, + void 0 + ); +}; +function observeChild(child, observer) { + child = getInstanceFromHostFiber(child); + observer.observe(child); + return !1; +} +FragmentInstance.prototype.unobserveUsing = function (observer) { + var observers = this._observers; + null !== observers && + observers.has(observer) && + (observers.delete(observer), + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + unobserveChild, + observer, + void 0, + void 0 + )); +}; +function unobserveChild(child, observer) { + child = getInstanceFromHostFiber(child); + observer.unobserve(child); + return !1; +} +FragmentInstance.prototype.getClientRects = function () { + var rects = []; + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + collectClientRects, + rects, + void 0, + void 0 + ); + return rects; +}; +function collectClientRects(child, rects) { + child = getInstanceFromHostFiber(child); + rects.push.apply(rects, child.getClientRects()); + return !1; +} +FragmentInstance.prototype.getRootNode = function (getRootNodeOptions) { + var parentHostFiber = getFragmentParentHostFiber(this._fragmentFiber); + return null === parentHostFiber + ? this + : getInstanceFromHostFiber(parentHostFiber).getRootNode(getRootNodeOptions); +}; +FragmentInstance.prototype.compareDocumentPosition = function (otherNode) { + var parentHostFiber = getFragmentParentHostFiber(this._fragmentFiber); + if (null === parentHostFiber) return Node.DOCUMENT_POSITION_DISCONNECTED; + var children = []; + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + collectChildren, + children, + void 0, + void 0 + ); + var parentHostInstance = getInstanceFromHostFiber(parentHostFiber); + if (0 === children.length) { + children = this._fragmentFiber; + var parentResult = parentHostInstance.compareDocumentPosition(otherNode); + parentHostFiber = parentResult; + parentHostInstance === otherNode + ? (parentHostFiber = Node.DOCUMENT_POSITION_CONTAINS) + : parentResult & Node.DOCUMENT_POSITION_CONTAINED_BY && + (traverseVisibleHostChildren(children.sibling, !1, findNextSibling), + (children = searchTarget), + (searchTarget = null), + null === children + ? (parentHostFiber = Node.DOCUMENT_POSITION_PRECEDING) + : ((otherNode = + getInstanceFromHostFiber(children).compareDocumentPosition( + otherNode + )), + (parentHostFiber = + 0 === otherNode || otherNode & Node.DOCUMENT_POSITION_FOLLOWING + ? Node.DOCUMENT_POSITION_FOLLOWING + : Node.DOCUMENT_POSITION_PRECEDING))); + return (parentHostFiber |= Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC); + } + parentHostFiber = getInstanceFromHostFiber(children[0]); + parentResult = getInstanceFromHostFiber(children[children.length - 1]); + for ( + var firstInstance = getInstanceFromHostFiber(children[0]), + foundPortalParent = !1, + parent = this._fragmentFiber.return; + null !== parent; + + ) { + 4 === parent.tag && (foundPortalParent = !0); + if (3 === parent.tag || 5 === parent.tag) break; + parent = parent.return; + } + firstInstance = foundPortalParent + ? firstInstance.parentElement + : parentHostInstance; + if (null == firstInstance) return Node.DOCUMENT_POSITION_DISCONNECTED; + parentHostInstance = + firstInstance.compareDocumentPosition(parentHostFiber) & + Node.DOCUMENT_POSITION_CONTAINED_BY; + firstInstance = + firstInstance.compareDocumentPosition(parentResult) & + Node.DOCUMENT_POSITION_CONTAINED_BY; + foundPortalParent = parentHostFiber.compareDocumentPosition(otherNode); + var lastResult = parentResult.compareDocumentPosition(otherNode); + parent = + foundPortalParent & Node.DOCUMENT_POSITION_CONTAINED_BY || + lastResult & Node.DOCUMENT_POSITION_CONTAINED_BY; + lastResult = + parentHostInstance && + firstInstance && + foundPortalParent & Node.DOCUMENT_POSITION_FOLLOWING && + lastResult & Node.DOCUMENT_POSITION_PRECEDING; + parentHostFiber = + (parentHostInstance && parentHostFiber === otherNode) || + (firstInstance && parentResult === otherNode) || + parent || + lastResult + ? Node.DOCUMENT_POSITION_CONTAINED_BY + : (!parentHostInstance && parentHostFiber === otherNode) || + (!firstInstance && parentResult === otherNode) + ? Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC + : foundPortalParent; + return parentHostFiber & Node.DOCUMENT_POSITION_DISCONNECTED || + parentHostFiber & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC || + validateDocumentPositionWithFiberTree( + parentHostFiber, + this._fragmentFiber, + children[0], + children[children.length - 1], + otherNode + ) + ? parentHostFiber + : Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC; +}; +function validateDocumentPositionWithFiberTree( + documentPosition, + fragmentFiber, + precedingBoundaryFiber, + followingBoundaryFiber, + otherNode +) { + var otherFiber = getClosestInstanceFromNode(otherNode); + if (documentPosition & Node.DOCUMENT_POSITION_CONTAINED_BY) { + if ((precedingBoundaryFiber = !!otherFiber)) + a: { + for (; null !== otherFiber; ) { + if ( + 7 === otherFiber.tag && + (otherFiber === fragmentFiber || + otherFiber.alternate === fragmentFiber) + ) { + precedingBoundaryFiber = !0; + break a; + } + otherFiber = otherFiber.return; + } + precedingBoundaryFiber = !1; + } + return precedingBoundaryFiber; + } + if (documentPosition & Node.DOCUMENT_POSITION_CONTAINS) { + if (null === otherFiber) + return ( + (otherFiber = otherNode.ownerDocument), + otherNode === otherFiber || otherNode === otherFiber.body + ); + a: { + otherFiber = fragmentFiber; + for ( + fragmentFiber = getFragmentParentHostFiber(fragmentFiber); + null !== otherFiber; + + ) { + if ( + !( + (5 !== otherFiber.tag && 3 !== otherFiber.tag) || + (otherFiber !== fragmentFiber && + otherFiber.alternate !== fragmentFiber) + ) + ) { + otherFiber = !0; + break a; + } + otherFiber = otherFiber.return; + } + otherFiber = !1; + } + return otherFiber; + } + return documentPosition & Node.DOCUMENT_POSITION_PRECEDING + ? ((fragmentFiber = !!otherFiber) && + !(fragmentFiber = otherFiber === precedingBoundaryFiber) && + ((fragmentFiber = getLowestCommonAncestor( + precedingBoundaryFiber, + otherFiber, + getParentForFragmentAncestors + )), + null === fragmentFiber + ? (fragmentFiber = !1) + : (traverseVisibleHostChildren( + fragmentFiber, + !0, + isFiberPrecedingCheck, + otherFiber, + precedingBoundaryFiber + ), + (otherFiber = searchTarget), + (searchTarget = null), + (fragmentFiber = null !== otherFiber))), + fragmentFiber) + : documentPosition & Node.DOCUMENT_POSITION_FOLLOWING + ? ((fragmentFiber = !!otherFiber) && + !(fragmentFiber = otherFiber === followingBoundaryFiber) && + ((fragmentFiber = getLowestCommonAncestor( + followingBoundaryFiber, + otherFiber, + getParentForFragmentAncestors + )), + null === fragmentFiber + ? (fragmentFiber = !1) + : (traverseVisibleHostChildren( + fragmentFiber, + !0, + isFiberFollowingCheck, + otherFiber, + followingBoundaryFiber + ), + (otherFiber = searchTarget), + (searchBoundary = searchTarget = null), + (fragmentFiber = null !== otherFiber))), + fragmentFiber) + : !1; +} +FragmentInstance.prototype.scrollIntoView = function (alignToTop) { + if ("object" === typeof alignToTop) throw Error(formatProdErrorMessage(566)); + var children = []; + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + collectChildren, + children, + void 0, + void 0 + ); + var resolvedAlignToTop = !1 !== alignToTop; + if (0 === children.length) { + children = this._fragmentFiber; + var result = [null, null], + parentHostFiber = getFragmentParentHostFiber(children); + null !== parentHostFiber && + findFragmentInstanceSiblings(result, children, parentHostFiber.child); + resolvedAlignToTop = resolvedAlignToTop + ? result[1] || + result[0] || + getFragmentParentHostFiber(this._fragmentFiber) + : result[0] || result[1]; + null !== resolvedAlignToTop && + getInstanceFromHostFiber(resolvedAlignToTop).scrollIntoView(alignToTop); + } else + for ( + result = resolvedAlignToTop ? children.length - 1 : 0; + result !== (resolvedAlignToTop ? -1 : children.length); + + ) + getInstanceFromHostFiber(children[result]).scrollIntoView(alignToTop), + (result += resolvedAlignToTop ? -1 : 1); +}; +function commitNewChildToFragmentInstance(childInstance, fragmentInstance) { + var eventListeners = fragmentInstance._eventListeners; + if (null !== eventListeners) + for (var i = 0; i < eventListeners.length; i++) { + var _eventListeners$i3 = eventListeners[i]; + childInstance.addEventListener( + _eventListeners$i3.type, + _eventListeners$i3.listener, + _eventListeners$i3.optionsOrUseCapture + ); + } + null !== fragmentInstance._observers && + fragmentInstance._observers.forEach(function (observer) { + observer.observe(childInstance); + }); +} function clearContainerSparingly(container) { var nextNode = container.firstChild; nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling); @@ -14311,6 +16252,19 @@ function getParentHydrationBoundary(targetInstance) { } return null; } +function setFocusIfFocusable(node, focusOptions) { + function handleFocus() { + didFocus = !0; + } + var didFocus = !1; + try { + node.addEventListener("focus", handleFocus), + (node.focus || HTMLElement.prototype.focus).call(node, focusOptions); + } finally { + node.removeEventListener("focus", handleFocus); + } + return didFocus; +} function resolveSingletonInstance(type, props, rootContainerInstance) { props = getOwnerDocumentFromRootContainer(rootContainerInstance); switch (type) { @@ -14636,26 +16590,26 @@ function getResource(type, currentProps, pendingProps, currentResource) { "string" === typeof pendingProps.precedence ) { type = getStyleKey(pendingProps.href); - var styles$243 = getResourcesFromRoot( + var styles$256 = getResourcesFromRoot( JSCompiler_inline_result ).hoistableStyles, - resource$244 = styles$243.get(type); - resource$244 || + resource$257 = styles$256.get(type); + resource$257 || ((JSCompiler_inline_result = JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result), - (resource$244 = { + (resource$257 = { type: "stylesheet", instance: null, count: 0, state: { loading: 0, preload: null } }), - styles$243.set(type, resource$244), - (styles$243 = JSCompiler_inline_result.querySelector( + styles$256.set(type, resource$257), + (styles$256 = JSCompiler_inline_result.querySelector( getStylesheetSelectorFromKey(type) )) && - !styles$243._p && - ((resource$244.instance = styles$243), - (resource$244.state.loading = 5)), + !styles$256._p && + ((resource$257.instance = styles$256), + (resource$257.state.loading = 5)), preloadPropsMap.has(type) || ((pendingProps = { rel: "preload", @@ -14668,16 +16622,16 @@ function getResource(type, currentProps, pendingProps, currentResource) { referrerPolicy: pendingProps.referrerPolicy }), preloadPropsMap.set(type, pendingProps), - styles$243 || + styles$256 || preloadStylesheet( JSCompiler_inline_result, type, pendingProps, - resource$244.state + resource$257.state ))); if (currentProps && null === currentResource) throw Error(formatProdErrorMessage(528, "")); - return resource$244; + return resource$257; } if (currentProps && null !== currentResource) throw Error(formatProdErrorMessage(529, "")); @@ -14774,37 +16728,37 @@ function acquireResource(hoistableRoot, resource, props) { return (resource.instance = instance); case "stylesheet": styleProps = getStyleKey(props.href); - var instance$249 = hoistableRoot.querySelector( + var instance$262 = hoistableRoot.querySelector( getStylesheetSelectorFromKey(styleProps) ); - if (instance$249) + if (instance$262) return ( (resource.state.loading |= 4), - (resource.instance = instance$249), - markNodeAsHoistable(instance$249), - instance$249 + (resource.instance = instance$262), + markNodeAsHoistable(instance$262), + instance$262 ); instance = stylesheetPropsFromRawProps(props); (styleProps = preloadPropsMap.get(styleProps)) && adoptPreloadPropsForStylesheet(instance, styleProps); - instance$249 = ( + instance$262 = ( hoistableRoot.ownerDocument || hoistableRoot ).createElement("link"); - markNodeAsHoistable(instance$249); - var linkInstance = instance$249; + markNodeAsHoistable(instance$262); + var linkInstance = instance$262; linkInstance._p = new Promise(function (resolve, reject) { linkInstance.onload = resolve; linkInstance.onerror = reject; }); - setInitialProperties(instance$249, "link", instance); + setInitialProperties(instance$262, "link", instance); resource.state.loading |= 4; - insertStylesheet(instance$249, props.precedence, hoistableRoot); - return (resource.instance = instance$249); + insertStylesheet(instance$262, props.precedence, hoistableRoot); + return (resource.instance = instance$262); case "script": - instance$249 = getScriptKey(props.src); + instance$262 = getScriptKey(props.src); if ( (styleProps = hoistableRoot.querySelector( - getScriptSelectorFromKey(instance$249) + getScriptSelectorFromKey(instance$262) )) ) return ( @@ -14813,7 +16767,7 @@ function acquireResource(hoistableRoot, resource, props) { styleProps ); instance = props; - if ((styleProps = preloadPropsMap.get(instance$249))) + if ((styleProps = preloadPropsMap.get(instance$262))) (instance = assign({}, props)), adoptPreloadPropsForScript(instance, styleProps); hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot; @@ -14954,11 +16908,37 @@ function isHostHoistableType(type, props, hostContext) { } return !1; } +function maySuspendCommit(type, props) { + return ( + "img" === type && + null != props.src && + "" !== props.src && + null == props.onLoad && + "lazy" !== props.loading + ); +} function preloadResource(resource) { return "stylesheet" === resource.type && 0 === (resource.state.loading & 3) ? !1 : !0; } +function estimateImageBytes(instance) { + return ( + (instance.width || 100) * + (instance.height || 100) * + ("number" === typeof devicePixelRatio ? devicePixelRatio : 1) * + 0.25 + ); +} +function suspendInstance(state, instance) { + "function" === typeof instance.decode && + (state.imgCount++, + instance.complete || + ((state.imgBytes += estimateImageBytes(instance)), + state.suspenseyImages.push(instance)), + (state = onUnsuspendImg.bind(state)), + instance.decode().then(state, state)); +} function suspendResource(state, hoistableRoot, resource, props) { if ( "stylesheet" === resource.type && @@ -15053,16 +17033,23 @@ function waitForCommitToBeReady(state, timeoutOffset) { } : null; } -function onUnsuspend() { - this.count--; - if (0 === this.count && (0 === this.imgCount || !this.waitingForImages)) - if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets); - else if (this.unsuspend) { - var unsuspend = this.unsuspend; - this.unsuspend = null; +function checkIfFullyUnsuspended(state) { + if (0 === state.count && (0 === state.imgCount || !state.waitingForImages)) + if (state.stylesheets) insertSuspendedStylesheets(state, state.stylesheets); + else if (state.unsuspend) { + var unsuspend = state.unsuspend; + state.unsuspend = null; unsuspend(); } } +function onUnsuspend() { + this.count--; + checkIfFullyUnsuspended(this); +} +function onUnsuspendImg() { + this.imgCount--; + checkIfFullyUnsuspended(this); +} var precedencesByRoot = null; function insertSuspendedStylesheets(state, resources) { state.stylesheets = null; @@ -15162,6 +17149,7 @@ function FiberRootNode( this.pooledCache = null; this.pooledCacheLanes = 0; this.formState = formState; + this.transitionTypes = null; this.incompleteTransitions = new Map(); } function createFiberRoot( @@ -15914,16 +17902,16 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { 0 === i && attemptExplicitHydrationTarget(target); } }; -var isomorphicReactPackageVersion$jscomp$inline_1840 = React.version; +var isomorphicReactPackageVersion$jscomp$inline_2059 = React.version; if ( - "19.3.0-canary-c7862584-20251006" !== - isomorphicReactPackageVersion$jscomp$inline_1840 + "19.3.0-canary-a4eb2dfa-20251006" !== + isomorphicReactPackageVersion$jscomp$inline_2059 ) throw Error( formatProdErrorMessage( 527, - isomorphicReactPackageVersion$jscomp$inline_1840, - "19.3.0-canary-c7862584-20251006" + isomorphicReactPackageVersion$jscomp$inline_2059, + "19.3.0-canary-a4eb2dfa-20251006" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -15943,24 +17931,24 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { null === componentOrElement ? null : componentOrElement.stateNode; return componentOrElement; }; -var internals$jscomp$inline_2347 = { +var internals$jscomp$inline_2646 = { bundleType: 0, - version: "19.3.0-canary-c7862584-20251006", + version: "19.3.0-canary-a4eb2dfa-20251006", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-canary-c7862584-20251006" + reconcilerVersion: "19.3.0-canary-a4eb2dfa-20251006" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { - var hook$jscomp$inline_2348 = __REACT_DEVTOOLS_GLOBAL_HOOK__; + var hook$jscomp$inline_2647 = __REACT_DEVTOOLS_GLOBAL_HOOK__; if ( - !hook$jscomp$inline_2348.isDisabled && - hook$jscomp$inline_2348.supportsFiber + !hook$jscomp$inline_2647.isDisabled && + hook$jscomp$inline_2647.supportsFiber ) try { - (rendererID = hook$jscomp$inline_2348.inject( - internals$jscomp$inline_2347 + (rendererID = hook$jscomp$inline_2647.inject( + internals$jscomp$inline_2646 )), - (injectedHook = hook$jscomp$inline_2348); + (injectedHook = hook$jscomp$inline_2647); } catch (err) {} } exports.createRoot = function (container, options) { @@ -16046,4 +18034,4 @@ exports.hydrateRoot = function (container, initialChildren, options) { listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; -exports.version = "19.3.0-canary-c7862584-20251006"; +exports.version = "19.3.0-canary-a4eb2dfa-20251006"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.development.js index 3488afd86aae0..5ba9c3feabbf4 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.development.js @@ -246,6 +246,111 @@ } return null; } + function traverseVisibleHostChildren( + child, + searchWithinHosts, + fn, + a, + b, + c + ) { + for (; null !== child; ) { + if ( + (5 === child.tag && fn(child, a, b, c)) || + ((22 !== child.tag || null === child.memoizedState) && + (searchWithinHosts || 5 !== child.tag) && + traverseVisibleHostChildren( + child.child, + searchWithinHosts, + fn, + a, + b, + c + )) + ) + return !0; + child = child.sibling; + } + return !1; + } + function getFragmentParentHostFiber(fiber) { + for (fiber = fiber.return; null !== fiber; ) { + if (3 === fiber.tag || 5 === fiber.tag) return fiber; + fiber = fiber.return; + } + return null; + } + function findFragmentInstanceSiblings(result, self, child) { + for ( + var foundSelf = + 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : !1; + null !== child; + + ) { + if (child === self) + if (((foundSelf = !0), child.sibling)) child = child.sibling; + else return !0; + if (5 === child.tag) { + if (foundSelf) return (result[1] = child), !0; + result[0] = child; + } else if ( + (22 !== child.tag || null === child.memoizedState) && + findFragmentInstanceSiblings(result, self, child.child, foundSelf) + ) + return !0; + child = child.sibling; + } + return !1; + } + function getInstanceFromHostFiber(fiber) { + switch (fiber.tag) { + case 5: + return fiber.stateNode; + case 3: + return fiber.stateNode.containerInfo; + default: + throw Error("Expected to find a host node. This is a bug in React."); + } + } + function findNextSibling(child) { + searchTarget = child; + return !0; + } + function isFiberPrecedingCheck(child, target, boundary) { + return child === boundary + ? !0 + : child === target + ? ((searchTarget = child), !0) + : !1; + } + function isFiberFollowingCheck(child, target, boundary) { + return child === boundary + ? ((searchBoundary = child), !1) + : child === target + ? (null !== searchBoundary && (searchTarget = child), !0) + : !1; + } + function getParentForFragmentAncestors(inst) { + if (null === inst) return null; + do inst = null === inst ? null : inst.return; + while (inst && 5 !== inst.tag && 27 !== inst.tag && 3 !== inst.tag); + return inst ? inst : null; + } + function getLowestCommonAncestor(instA, instB, getParent) { + for (var depthA = 0, tempA = instA; tempA; tempA = getParent(tempA)) + depthA++; + tempA = 0; + for (var tempB = instB; tempB; tempB = getParent(tempB)) tempA++; + for (; 0 < depthA - tempA; ) (instA = getParent(instA)), depthA--; + for (; 0 < tempA - depthA; ) (instB = getParent(instB)), tempA--; + for (; depthA--; ) { + if (instA === instB || (null !== instB && instA === instB.alternate)) + return instA; + instA = getParent(instA); + instB = getParent(instB); + } + return null; + } function getIteratorFn(maybeIterable) { if (null === maybeIterable || "object" !== typeof maybeIterable) return null; @@ -274,6 +379,8 @@ return "SuspenseList"; case REACT_ACTIVITY_TYPE: return "Activity"; + case REACT_VIEW_TRANSITION_TYPE: + return "ViewTransition"; } if ("object" === typeof type) switch ( @@ -367,6 +474,8 @@ return "SuspenseList"; case 25: return "TracingMarker"; + case 30: + return "ViewTransition"; case 1: case 0: case 14: @@ -756,6 +865,8 @@ return describeNativeComponentFrame(fiber.type, !0); case 31: return describeBuiltInComponentFrame("Activity"); + case 30: + return describeBuiltInComponentFrame("ViewTransition"); default: return ""; } @@ -833,6 +944,8 @@ info += describeBuiltInComponentFrame("Activity"); break; case 30: + info += describeBuiltInComponentFrame("ViewTransition"); + break; case 0: case 15: case 1: @@ -1452,6 +1565,11 @@ console.error("Invalid attribute name: `%s`", attributeName); return !1; } + function pushMutationContext() { + var prev = viewTransitionMutationContext; + viewTransitionMutationContext = !1; + return prev; + } function getValueForAttributeOnCustomComponent(node, name, expected) { if (isAttributeNameSafe(name)) { if (!node.hasAttribute(name)) { @@ -2810,12 +2928,14 @@ ? node.setProperty(styleName, "") : "float" === styleName ? (node.cssFloat = "") - : (node[styleName] = "")); + : (node[styleName] = ""), + (viewTransitionMutationContext = !0)); for (var _styleName in styles) (_key2 = styles[_styleName]), styles.hasOwnProperty(_styleName) && prevStyles[_styleName] !== _key2 && - setValueForStyle(node, _styleName, _key2); + (setValueForStyle(node, _styleName, _key2), + (viewTransitionMutationContext = !0)); } else for (expandedUpdates in styles) styles.hasOwnProperty(expandedUpdates) && @@ -3763,6 +3883,40 @@ topLevelEventsToReactNames.set(domEventName, reactName); registerTwoPhaseEvent(reactName, [domEventName]); } + function getViewTransitionName(props, instance) { + if (null != props.name && "auto" !== props.name) return props.name; + if (null !== instance.autoName) return instance.autoName; + props = pendingEffectsRoot.identifierPrefix; + var globalClientId = globalClientIdCounter$1++; + props = "_" + props + "t_" + globalClientId.toString(32) + "_"; + return (instance.autoName = props); + } + function getClassNameByType(classByType) { + if (null == classByType || "string" === typeof classByType) + return classByType; + var className = null, + activeTypes = pendingTransitionTypes; + if (null !== activeTypes) + for (var i = 0; i < activeTypes.length; i++) { + var match = classByType[activeTypes[i]]; + if (null != match) { + if ("none" === match) return "none"; + className = null == className ? match : className + (" " + match); + } + } + return null == className ? classByType.default : className; + } + function getViewTransitionClassName(defaultClass, eventClass) { + defaultClass = getClassNameByType(defaultClass); + eventClass = getClassNameByType(eventClass); + return null == eventClass + ? "auto" === defaultClass + ? null + : defaultClass + : "auto" === eventClass + ? null + : eventClass; + } function getArrayKind(array) { for ( var kind = EMPTY_ARRAY, i = 0; @@ -4592,6 +4746,42 @@ : performance.measure("Errored", startTime); } } + function logCommitPhase( + startTime, + endTime, + errors, + abortedViewTransition, + debugTask + ) { + null !== errors + ? logCommitErrored(startTime, endTime, errors, !1, debugTask) + : !supportsUserTiming || + endTime <= startTime || + (debugTask + ? debugTask.run( + console.timeStamp.bind( + console, + abortedViewTransition + ? "Commit Interrupted View Transition" + : "Commit", + startTime, + endTime, + currentTrack, + LANES_TRACK_GROUP, + abortedViewTransition ? "error" : "secondary-dark" + ) + ) + : console.timeStamp( + abortedViewTransition + ? "Commit Interrupted View Transition" + : "Commit", + startTime, + endTime, + currentTrack, + LANES_TRACK_GROUP, + abortedViewTransition ? "error" : "secondary-dark" + )); + } function logAnimatingPhase(startTime, endTime, debugTask) { !supportsUserTiming || endTime <= startTime || @@ -5044,6 +5234,21 @@ (key.lanes = lanes), key ); + case REACT_LEGACY_HIDDEN_TYPE: + case REACT_VIEW_TRANSITION_TYPE: + return ( + (type = mode | SuspenseyImagesMode), + (key = createFiber(30, pendingProps, key, type)), + (key.elementType = REACT_VIEW_TRANSITION_TYPE), + (key.lanes = lanes), + (key.stateNode = { + autoName: null, + paired: null, + clones: null, + ref: null + }), + key + ); default: if ("object" === typeof type && null !== type) switch (type.$$typeof) { @@ -5065,34 +5270,34 @@ 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 ? getComponentNameFromOwner(owner) : null) && - (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; } @@ -5750,6 +5955,21 @@ cache.controller.abort(); }); } + function queueTransitionTypes(root, transitionTypes) { + if (0 !== (root.pendingLanes & 4194048)) { + var queued = root.transitionTypes; + null === queued && (queued = root.transitionTypes = []); + for (root = 0; root < transitionTypes.length; root++) { + var transitionType = transitionTypes[root]; + -1 === queued.indexOf(transitionType) && queued.push(transitionType); + } + } + } + function claimQueuedTransitionTypes(root) { + var claimed = root.transitionTypes; + root.transitionTypes = null; + return claimed; + } function startUpdateTimerByLane(lane, method, fiber) { if (0 !== (lane & 127)) 0 > blockingUpdateTime && @@ -5931,6 +6151,7 @@ if ( 0 === --currentEntangledPendingCount && (-1 < transitionUpdateTime || (transitionStartTime = -1.1), + (entangledTransitionTypes = null), null !== currentEntangledListeners) ) { null !== currentEntangledActionThenable && @@ -6133,7 +6354,7 @@ function validateFragmentProps(element, fiber, returnFiber) { for (var keys = Object.keys(element.props), i = 0; i < keys.length; i++) { var key = keys[i]; - if ("children" !== key && "key" !== key) { + if ("children" !== key && "key" !== key && "ref" !== key) { null === fiber && ((fiber = createFiberFromElement(element, returnFiber.mode, 0)), (fiber._debugInfo = currentDebugInfo), @@ -6142,7 +6363,7 @@ fiber, function (erroredKey) { console.error( - "Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", + "Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key`, `ref`, and `children` props.", erroredKey ); }, @@ -6321,6 +6542,7 @@ lanes, element.key )), + coerceRef(current, element), validateFragmentProps(element, current, returnFiber), current ); @@ -6921,6 +7143,7 @@ null !== newChild && newChild.type === REACT_FRAGMENT_TYPE && null === newChild.key && + void 0 === newChild.props.ref && (validateFragmentProps(newChild, null, returnFiber), (newChild = newChild.props.children)); if ("object" === typeof newChild && null !== newChild) { @@ -6941,6 +7164,7 @@ currentFirstChild, newChild.props.children ); + coerceRef(lanes, newChild); lanes.return = returnFiber; lanes._debugOwner = newChild._owner; lanes._debugInfo = currentDebugInfo; @@ -6983,6 +7207,7 @@ lanes, newChild.key )), + coerceRef(lanes, newChild), (lanes.return = returnFiber), (lanes._debugOwner = returnFiber), (lanes._debugTask = returnFiber._debugTask), @@ -8446,6 +8671,8 @@ if (node.isTransition) { var prevTransition = ReactSharedInternals.T, currentTransition = {}; + currentTransition.types = + null !== prevTransition ? prevTransition.types : null; currentTransition._updatedFibers = new Set(); ReactSharedInternals.T = currentTransition; try { @@ -8949,6 +9176,8 @@ : ContinuousEventPriority; var prevTransition = ReactSharedInternals.T, currentTransition = {}; + currentTransition.types = + null !== prevTransition ? prevTransition.types : null; currentTransition._updatedFibers = new Set(); ReactSharedInternals.T = currentTransition; dispatchOptimisticSetState(fiber, !1, queue, pendingState); @@ -10882,24 +11111,24 @@ return current; } function updateSuspenseComponent(current, workInProgress, renderLanes) { - var JSCompiler_object_inline_digest_2729; - var JSCompiler_object_inline_stack_2730 = workInProgress.pendingProps; + var JSCompiler_object_inline_digest_2981; + var JSCompiler_object_inline_stack_2982 = workInProgress.pendingProps; shouldSuspendImpl(workInProgress) && (workInProgress.flags |= 128); - var JSCompiler_object_inline_message_2728 = !1; + var JSCompiler_object_inline_message_2980 = !1; var didSuspend = 0 !== (workInProgress.flags & 128); - (JSCompiler_object_inline_digest_2729 = didSuspend) || - (JSCompiler_object_inline_digest_2729 = + (JSCompiler_object_inline_digest_2981 = didSuspend) || + (JSCompiler_object_inline_digest_2981 = null !== current && null === current.memoizedState ? !1 : 0 !== (suspenseStackCursor.current & ForceSuspenseFallback)); - JSCompiler_object_inline_digest_2729 && - ((JSCompiler_object_inline_message_2728 = !0), + JSCompiler_object_inline_digest_2981 && + ((JSCompiler_object_inline_message_2980 = !0), (workInProgress.flags &= -129)); - JSCompiler_object_inline_digest_2729 = 0 !== (workInProgress.flags & 32); + JSCompiler_object_inline_digest_2981 = 0 !== (workInProgress.flags & 32); workInProgress.flags &= -33; if (null === current) { if (isHydrating) { - JSCompiler_object_inline_message_2728 + JSCompiler_object_inline_message_2980 ? pushPrimaryTreeSuspenseHandler(workInProgress) : reuseSuspenseHandlerOnStack(workInProgress); (current = nextHydratableInstance) @@ -10912,18 +11141,18 @@ ? renderLanes : null), null !== renderLanes && - ((JSCompiler_object_inline_digest_2729 = { + ((JSCompiler_object_inline_digest_2981 = { dehydrated: renderLanes, treeContext: getSuspendedTreeContext(), retryLane: 536870912, hydrationErrors: null }), (workInProgress.memoizedState = - JSCompiler_object_inline_digest_2729), - (JSCompiler_object_inline_digest_2729 = + JSCompiler_object_inline_digest_2981), + (JSCompiler_object_inline_digest_2981 = createFiberFromDehydratedFragment(renderLanes)), - (JSCompiler_object_inline_digest_2729.return = workInProgress), - (workInProgress.child = JSCompiler_object_inline_digest_2729), + (JSCompiler_object_inline_digest_2981.return = workInProgress), + (workInProgress.child = JSCompiler_object_inline_digest_2981), (hydrationParentFiber = workInProgress), (nextHydratableInstance = null))) : (renderLanes = null); @@ -10937,39 +11166,39 @@ : (workInProgress.lanes = 536870912); return null; } - var nextPrimaryChildren = JSCompiler_object_inline_stack_2730.children; - JSCompiler_object_inline_stack_2730 = - JSCompiler_object_inline_stack_2730.fallback; - if (JSCompiler_object_inline_message_2728) { + var nextPrimaryChildren = JSCompiler_object_inline_stack_2982.children; + JSCompiler_object_inline_stack_2982 = + JSCompiler_object_inline_stack_2982.fallback; + if (JSCompiler_object_inline_message_2980) { reuseSuspenseHandlerOnStack(workInProgress); var mode = workInProgress.mode; nextPrimaryChildren = mountWorkInProgressOffscreenFiber( { mode: "hidden", children: nextPrimaryChildren }, mode ); - JSCompiler_object_inline_stack_2730 = createFiberFromFragment( - JSCompiler_object_inline_stack_2730, + JSCompiler_object_inline_stack_2982 = createFiberFromFragment( + JSCompiler_object_inline_stack_2982, mode, renderLanes, null ); nextPrimaryChildren.return = workInProgress; - JSCompiler_object_inline_stack_2730.return = workInProgress; - nextPrimaryChildren.sibling = JSCompiler_object_inline_stack_2730; + JSCompiler_object_inline_stack_2982.return = workInProgress; + nextPrimaryChildren.sibling = JSCompiler_object_inline_stack_2982; workInProgress.child = nextPrimaryChildren; - JSCompiler_object_inline_stack_2730 = workInProgress.child; - JSCompiler_object_inline_stack_2730.memoizedState = + JSCompiler_object_inline_stack_2982 = workInProgress.child; + JSCompiler_object_inline_stack_2982.memoizedState = mountSuspenseOffscreenState(renderLanes); - JSCompiler_object_inline_stack_2730.childLanes = + JSCompiler_object_inline_stack_2982.childLanes = getRemainingWorkInPrimaryTree( current, - JSCompiler_object_inline_digest_2729, + JSCompiler_object_inline_digest_2981, renderLanes ); workInProgress.memoizedState = SUSPENDED_MARKER; return bailoutOffscreenComponent( null, - JSCompiler_object_inline_stack_2730 + JSCompiler_object_inline_stack_2982 ); } pushPrimaryTreeSuspenseHandler(workInProgress); @@ -10980,8 +11209,8 @@ } var prevState = current.memoizedState; if (null !== prevState) { - var JSCompiler_object_inline_componentStack_2731 = prevState.dehydrated; - if (null !== JSCompiler_object_inline_componentStack_2731) { + var JSCompiler_object_inline_componentStack_2983 = prevState.dehydrated; + if (null !== JSCompiler_object_inline_componentStack_2983) { if (didSuspend) workInProgress.flags & 256 ? (pushPrimaryTreeSuspenseHandler(workInProgress), @@ -10998,13 +11227,13 @@ (workInProgress = null)) : (reuseSuspenseHandlerOnStack(workInProgress), (nextPrimaryChildren = - JSCompiler_object_inline_stack_2730.fallback), + JSCompiler_object_inline_stack_2982.fallback), (mode = workInProgress.mode), - (JSCompiler_object_inline_stack_2730 = + (JSCompiler_object_inline_stack_2982 = mountWorkInProgressOffscreenFiber( { mode: "visible", - children: JSCompiler_object_inline_stack_2730.children + children: JSCompiler_object_inline_stack_2982.children }, mode )), @@ -11015,30 +11244,30 @@ null )), (nextPrimaryChildren.flags |= 2), - (JSCompiler_object_inline_stack_2730.return = workInProgress), + (JSCompiler_object_inline_stack_2982.return = workInProgress), (nextPrimaryChildren.return = workInProgress), - (JSCompiler_object_inline_stack_2730.sibling = + (JSCompiler_object_inline_stack_2982.sibling = nextPrimaryChildren), - (workInProgress.child = JSCompiler_object_inline_stack_2730), + (workInProgress.child = JSCompiler_object_inline_stack_2982), reconcileChildFibers( workInProgress, current.child, null, renderLanes ), - (JSCompiler_object_inline_stack_2730 = workInProgress.child), - (JSCompiler_object_inline_stack_2730.memoizedState = + (JSCompiler_object_inline_stack_2982 = workInProgress.child), + (JSCompiler_object_inline_stack_2982.memoizedState = mountSuspenseOffscreenState(renderLanes)), - (JSCompiler_object_inline_stack_2730.childLanes = + (JSCompiler_object_inline_stack_2982.childLanes = getRemainingWorkInPrimaryTree( current, - JSCompiler_object_inline_digest_2729, + JSCompiler_object_inline_digest_2981, renderLanes )), (workInProgress.memoizedState = SUSPENDED_MARKER), (workInProgress = bailoutOffscreenComponent( null, - JSCompiler_object_inline_stack_2730 + JSCompiler_object_inline_stack_2982 ))); else if ( (pushPrimaryTreeSuspenseHandler(workInProgress), @@ -11046,45 +11275,45 @@ 0 !== (renderLanes & 536870912) && markRenderDerivedCause(workInProgress), isSuspenseInstanceFallback( - JSCompiler_object_inline_componentStack_2731 + JSCompiler_object_inline_componentStack_2983 )) ) { - JSCompiler_object_inline_digest_2729 = - JSCompiler_object_inline_componentStack_2731.nextSibling && - JSCompiler_object_inline_componentStack_2731.nextSibling.dataset; - if (JSCompiler_object_inline_digest_2729) { - nextPrimaryChildren = JSCompiler_object_inline_digest_2729.dgst; - var message = JSCompiler_object_inline_digest_2729.msg; - mode = JSCompiler_object_inline_digest_2729.stck; - var componentStack = JSCompiler_object_inline_digest_2729.cstck; + JSCompiler_object_inline_digest_2981 = + JSCompiler_object_inline_componentStack_2983.nextSibling && + JSCompiler_object_inline_componentStack_2983.nextSibling.dataset; + if (JSCompiler_object_inline_digest_2981) { + nextPrimaryChildren = JSCompiler_object_inline_digest_2981.dgst; + var message = JSCompiler_object_inline_digest_2981.msg; + mode = JSCompiler_object_inline_digest_2981.stck; + var componentStack = JSCompiler_object_inline_digest_2981.cstck; } - JSCompiler_object_inline_message_2728 = message; - JSCompiler_object_inline_digest_2729 = nextPrimaryChildren; - JSCompiler_object_inline_stack_2730 = mode; - JSCompiler_object_inline_componentStack_2731 = componentStack; - nextPrimaryChildren = JSCompiler_object_inline_message_2728; - mode = JSCompiler_object_inline_componentStack_2731; + JSCompiler_object_inline_message_2980 = message; + JSCompiler_object_inline_digest_2981 = nextPrimaryChildren; + JSCompiler_object_inline_stack_2982 = mode; + JSCompiler_object_inline_componentStack_2983 = componentStack; + nextPrimaryChildren = JSCompiler_object_inline_message_2980; + mode = JSCompiler_object_inline_componentStack_2983; nextPrimaryChildren = nextPrimaryChildren ? Error(nextPrimaryChildren) : Error( "The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering." ); nextPrimaryChildren.stack = - JSCompiler_object_inline_stack_2730 || ""; - nextPrimaryChildren.digest = JSCompiler_object_inline_digest_2729; - JSCompiler_object_inline_digest_2729 = + JSCompiler_object_inline_stack_2982 || ""; + nextPrimaryChildren.digest = JSCompiler_object_inline_digest_2981; + JSCompiler_object_inline_digest_2981 = void 0 === mode ? null : mode; - JSCompiler_object_inline_stack_2730 = { + JSCompiler_object_inline_stack_2982 = { value: nextPrimaryChildren, source: null, - stack: JSCompiler_object_inline_digest_2729 + stack: JSCompiler_object_inline_digest_2981 }; - "string" === typeof JSCompiler_object_inline_digest_2729 && + "string" === typeof JSCompiler_object_inline_digest_2981 && CapturedStacks.set( nextPrimaryChildren, - JSCompiler_object_inline_stack_2730 + JSCompiler_object_inline_stack_2982 ); - queueHydrationError(JSCompiler_object_inline_stack_2730); + queueHydrationError(JSCompiler_object_inline_stack_2982); workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, @@ -11098,35 +11327,35 @@ renderLanes, !1 ), - (JSCompiler_object_inline_digest_2729 = + (JSCompiler_object_inline_digest_2981 = 0 !== (renderLanes & current.childLanes)), - didReceiveUpdate || JSCompiler_object_inline_digest_2729) + didReceiveUpdate || JSCompiler_object_inline_digest_2981) ) { - JSCompiler_object_inline_digest_2729 = workInProgressRoot; + JSCompiler_object_inline_digest_2981 = workInProgressRoot; if ( - null !== JSCompiler_object_inline_digest_2729 && - ((JSCompiler_object_inline_stack_2730 = getBumpedLaneForHydration( - JSCompiler_object_inline_digest_2729, + null !== JSCompiler_object_inline_digest_2981 && + ((JSCompiler_object_inline_stack_2982 = getBumpedLaneForHydration( + JSCompiler_object_inline_digest_2981, renderLanes )), - 0 !== JSCompiler_object_inline_stack_2730 && - JSCompiler_object_inline_stack_2730 !== prevState.retryLane) + 0 !== JSCompiler_object_inline_stack_2982 && + JSCompiler_object_inline_stack_2982 !== prevState.retryLane) ) throw ( - ((prevState.retryLane = JSCompiler_object_inline_stack_2730), + ((prevState.retryLane = JSCompiler_object_inline_stack_2982), enqueueConcurrentRenderForLane( current, - JSCompiler_object_inline_stack_2730 + JSCompiler_object_inline_stack_2982 ), scheduleUpdateOnFiber( - JSCompiler_object_inline_digest_2729, + JSCompiler_object_inline_digest_2981, current, - JSCompiler_object_inline_stack_2730 + JSCompiler_object_inline_stack_2982 ), SelectiveHydrationException) ); isSuspenseInstancePending( - JSCompiler_object_inline_componentStack_2731 + JSCompiler_object_inline_componentStack_2983 ) || renderDidSuspendDelayIfPossible(); workInProgress = retrySuspenseComponentWithoutHydrating( current, @@ -11135,14 +11364,14 @@ ); } else isSuspenseInstancePending( - JSCompiler_object_inline_componentStack_2731 + JSCompiler_object_inline_componentStack_2983 ) ? ((workInProgress.flags |= 192), (workInProgress.child = current.child), (workInProgress = null)) : ((current = prevState.treeContext), (nextHydratableInstance = getNextHydratable( - JSCompiler_object_inline_componentStack_2731.nextSibling + JSCompiler_object_inline_componentStack_2983.nextSibling )), (hydrationParentFiber = workInProgress), (isHydrating = !0), @@ -11154,32 +11383,32 @@ restoreSuspendedTreeContext(workInProgress, current), (workInProgress = mountSuspensePrimaryChildren( workInProgress, - JSCompiler_object_inline_stack_2730.children + JSCompiler_object_inline_stack_2982.children )), (workInProgress.flags |= 4096)); return workInProgress; } } - if (JSCompiler_object_inline_message_2728) + if (JSCompiler_object_inline_message_2980) return ( reuseSuspenseHandlerOnStack(workInProgress), - (nextPrimaryChildren = JSCompiler_object_inline_stack_2730.fallback), + (nextPrimaryChildren = JSCompiler_object_inline_stack_2982.fallback), (mode = workInProgress.mode), (componentStack = current.child), - (JSCompiler_object_inline_componentStack_2731 = + (JSCompiler_object_inline_componentStack_2983 = componentStack.sibling), - (JSCompiler_object_inline_stack_2730 = createWorkInProgress( + (JSCompiler_object_inline_stack_2982 = createWorkInProgress( componentStack, { mode: "hidden", - children: JSCompiler_object_inline_stack_2730.children + children: JSCompiler_object_inline_stack_2982.children } )), - (JSCompiler_object_inline_stack_2730.subtreeFlags = + (JSCompiler_object_inline_stack_2982.subtreeFlags = componentStack.subtreeFlags & 65011712), - null !== JSCompiler_object_inline_componentStack_2731 + null !== JSCompiler_object_inline_componentStack_2983 ? (nextPrimaryChildren = createWorkInProgress( - JSCompiler_object_inline_componentStack_2731, + JSCompiler_object_inline_componentStack_2983, nextPrimaryChildren )) : ((nextPrimaryChildren = createFiberFromFragment( @@ -11190,11 +11419,11 @@ )), (nextPrimaryChildren.flags |= 2)), (nextPrimaryChildren.return = workInProgress), - (JSCompiler_object_inline_stack_2730.return = workInProgress), - (JSCompiler_object_inline_stack_2730.sibling = nextPrimaryChildren), - (workInProgress.child = JSCompiler_object_inline_stack_2730), - bailoutOffscreenComponent(null, JSCompiler_object_inline_stack_2730), - (JSCompiler_object_inline_stack_2730 = workInProgress.child), + (JSCompiler_object_inline_stack_2982.return = workInProgress), + (JSCompiler_object_inline_stack_2982.sibling = nextPrimaryChildren), + (workInProgress.child = JSCompiler_object_inline_stack_2982), + bailoutOffscreenComponent(null, JSCompiler_object_inline_stack_2982), + (JSCompiler_object_inline_stack_2982 = workInProgress.child), (nextPrimaryChildren = current.child.memoizedState), null === nextPrimaryChildren ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes)) @@ -11210,18 +11439,18 @@ baseLanes: nextPrimaryChildren.baseLanes | renderLanes, cachePool: mode })), - (JSCompiler_object_inline_stack_2730.memoizedState = + (JSCompiler_object_inline_stack_2982.memoizedState = nextPrimaryChildren), - (JSCompiler_object_inline_stack_2730.childLanes = + (JSCompiler_object_inline_stack_2982.childLanes = getRemainingWorkInPrimaryTree( current, - JSCompiler_object_inline_digest_2729, + JSCompiler_object_inline_digest_2981, renderLanes )), (workInProgress.memoizedState = SUSPENDED_MARKER), bailoutOffscreenComponent( current.child, - JSCompiler_object_inline_stack_2730 + JSCompiler_object_inline_stack_2982 ) ); null !== prevState && @@ -11233,16 +11462,16 @@ current = renderLanes.sibling; renderLanes = createWorkInProgress(renderLanes, { mode: "visible", - children: JSCompiler_object_inline_stack_2730.children + children: JSCompiler_object_inline_stack_2982.children }); renderLanes.return = workInProgress; renderLanes.sibling = null; null !== current && - ((JSCompiler_object_inline_digest_2729 = workInProgress.deletions), - null === JSCompiler_object_inline_digest_2729 + ((JSCompiler_object_inline_digest_2981 = workInProgress.deletions), + null === JSCompiler_object_inline_digest_2981 ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16)) - : JSCompiler_object_inline_digest_2729.push(current)); + : JSCompiler_object_inline_digest_2981.push(current)); workInProgress.child = renderLanes; workInProgress.memoizedState = null; return renderLanes; @@ -12195,10 +12424,12 @@ ); case 7: return ( + (returnFiber = workInProgress.pendingProps), + markRef(current, workInProgress), reconcileChildren( current, workInProgress, - workInProgress.pendingProps, + returnFiber, renderLanes ), workInProgress.child @@ -12357,6 +12588,35 @@ ), workInProgress.child ); + case 30: + return ( + (returnFiber = workInProgress.pendingProps), + null != returnFiber.name && "auto" !== returnFiber.name + ? (workInProgress.flags |= null === current ? 18882560 : 18874368) + : isHydrating && pushMaterializedTreeId(workInProgress), + void 0 !== returnFiber.className && + ((prevSibling = + "string" === typeof returnFiber.className + ? JSON.stringify(returnFiber.className) + : "{...}"), + didWarnAboutClassNameOnViewTransition[prevSibling] || + ((didWarnAboutClassNameOnViewTransition[prevSibling] = !0), + console.error( + ' doesn\'t accept a "className" prop. It has been renamed to "default".\n- \n+ ', + prevSibling, + prevSibling + ))), + null !== current && current.memoizedProps.name !== returnFiber.name + ? (workInProgress.flags |= 4194816) + : markRef(current, workInProgress), + reconcileChildren( + current, + workInProgress, + returnFiber.children, + renderLanes + ), + workInProgress.child + ); case 29: throw workInProgress.pendingProps; } @@ -12376,9 +12636,18 @@ newProps, renderLanes ) { - if ((type = (workInProgress.mode & SuspenseyImagesMode) !== NoMode)) - type = !1; - if (type) { + var JSCompiler_temp; + if ( + (JSCompiler_temp = + (workInProgress.mode & SuspenseyImagesMode) !== NoMode) + ) + JSCompiler_temp = + null === oldProps + ? maySuspendCommit(type, newProps) + : maySuspendCommit(type, newProps) && + (newProps.src !== oldProps.src || + newProps.srcSet !== oldProps.srcSet); + if (JSCompiler_temp) { if ( ((workInProgress.flags |= 16777216), (renderLanes & 335544128) === renderLanes) @@ -12589,6 +12858,7 @@ "We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue." ); bubbleProperties(workInProgress); + workInProgress.subtreeFlags &= -33554433; return null; } current = getHostContext(); @@ -12605,6 +12875,7 @@ markUpdate(workInProgress)); } bubbleProperties(workInProgress); + workInProgress.subtreeFlags &= -33554433; return null; case 5: popHostContext(workInProgress); @@ -12618,6 +12889,7 @@ "We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue." ); bubbleProperties(workInProgress); + workInProgress.subtreeFlags &= -33554433; return null; } var _currentHostContext = getHostContext(); @@ -12749,6 +13021,7 @@ } } bubbleProperties(workInProgress); + workInProgress.subtreeFlags &= -33554433; preloadInstanceAndSuspendIfNeeded( workInProgress, workInProgress.type, @@ -13142,7 +13415,11 @@ case 25: return null; case 30: - return null; + return ( + (workInProgress.flags |= 33554432), + bubbleProperties(workInProgress), + null + ); } throw Error( "Unknown unit of work tag (" + @@ -13543,6 +13820,18 @@ break; case 30: instanceToUse = finishedWork.stateNode; + var name = getViewTransitionName( + finishedWork.memoizedProps, + instanceToUse + ); + if (null === instanceToUse.ref || instanceToUse.ref.name !== name) + instanceToUse.ref = createViewTransitionInstance(name); + instanceToUse = instanceToUse.ref; + break; + case 7: + null === finishedWork.stateNode && + (finishedWork.stateNode = new FragmentInstance(finishedWork)); + instanceToUse = finishedWork.stateNode; break; default: instanceToUse = finishedWork.stateNode; @@ -13683,6 +13972,37 @@ captureCommitPhaseError(finishedWork, finishedWork.return, error); } } + function commitNewChildToFragmentInstances(fiber, parentFragmentInstances) { + if ( + 5 === fiber.tag && + null === fiber.alternate && + null !== parentFragmentInstances + ) + for (var i = 0; i < parentFragmentInstances.length; i++) + commitNewChildToFragmentInstance( + fiber.stateNode, + parentFragmentInstances[i] + ); + } + function commitFragmentInstanceDeletionEffects(fiber) { + for (var parent = fiber.return; null !== parent; ) { + if (isFragmentInstanceParent(parent)) { + var childElement = fiber.stateNode, + eventListeners = parent.stateNode._eventListeners; + if (null !== eventListeners) + for (var i = 0; i < eventListeners.length; i++) { + var _eventListeners$i3 = eventListeners[i]; + childElement.removeEventListener( + _eventListeners$i3.type, + _eventListeners$i3.listener, + _eventListeners$i3.optionsOrUseCapture + ); + } + } + if (isHostParent(parent)) break; + parent = parent.return; + } + } function isHostParent(fiber) { return ( 5 === fiber.tag || @@ -13692,6 +14012,9 @@ 4 === fiber.tag ); } + function isFragmentInstanceParent(fiber) { + return fiber && 7 === fiber.tag && null !== fiber.stateNode; + } function getHostSibling(fiber) { a: for (;;) { for (; null === fiber.sibling; ) { @@ -13712,10 +14035,15 @@ if (!(fiber.flags & 2)) return fiber.stateNode; } } - function insertOrAppendPlacementNodeIntoContainer(node, before, parent) { + function insertOrAppendPlacementNodeIntoContainer( + node, + before, + parent, + parentFragmentInstances + ) { var tag = node.tag; if (5 === tag || 6 === tag) - (node = node.stateNode), + (tag = node.stateNode), before ? (warnForReactChildrenConflict(parent), (9 === parent.nodeType @@ -13723,7 +14051,7 @@ : "HTML" === parent.nodeName ? parent.ownerDocument.body : parent - ).insertBefore(node, before)) + ).insertBefore(tag, before)) : (warnForReactChildrenConflict(parent), (before = 9 === parent.nodeType @@ -13731,11 +14059,13 @@ : "HTML" === parent.nodeName ? parent.ownerDocument.body : parent), - before.appendChild(node), - (parent = parent._reactRootContainer), - (null !== parent && void 0 !== parent) || + before.appendChild(tag), + (tag = parent._reactRootContainer), + (null !== tag && void 0 !== tag) || null !== before.onclick || - (before.onclick = noop$1)); + (before.onclick = noop$1)), + commitNewChildToFragmentInstances(node, parentFragmentInstances), + (viewTransitionMutationContext = !0); else if ( 4 !== tag && (27 === tag && @@ -13745,19 +14075,36 @@ null !== node) ) for ( - insertOrAppendPlacementNodeIntoContainer(node, before, parent), + insertOrAppendPlacementNodeIntoContainer( + node, + before, + parent, + parentFragmentInstances + ), node = node.sibling; null !== node; ) - insertOrAppendPlacementNodeIntoContainer(node, before, parent), + insertOrAppendPlacementNodeIntoContainer( + node, + before, + parent, + parentFragmentInstances + ), (node = node.sibling); } - function insertOrAppendPlacementNode(node, before, parent) { + function insertOrAppendPlacementNode( + node, + before, + parent, + parentFragmentInstances + ) { var tag = node.tag; if (5 === tag || 6 === tag) - (node = node.stateNode), - before ? parent.insertBefore(node, before) : parent.appendChild(node); + (tag = node.stateNode), + before ? parent.insertBefore(tag, before) : parent.appendChild(tag), + commitNewChildToFragmentInstances(node, parentFragmentInstances), + (viewTransitionMutationContext = !0); else if ( 4 !== tag && (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode), @@ -13765,20 +14112,38 @@ null !== node) ) for ( - insertOrAppendPlacementNode(node, before, parent), + insertOrAppendPlacementNode( + node, + before, + parent, + parentFragmentInstances + ), node = node.sibling; null !== node; ) - insertOrAppendPlacementNode(node, before, parent), + insertOrAppendPlacementNode( + node, + before, + parent, + parentFragmentInstances + ), (node = node.sibling); } function commitPlacement(finishedWork) { for ( - var hostParentFiber, parentFiber = finishedWork.return; + var hostParentFiber, + parentFragmentInstances = null, + parentFiber = finishedWork.return; null !== parentFiber; ) { + if (isFragmentInstanceParent(parentFiber)) { + var fragmentInstance = parentFiber.stateNode; + null === parentFragmentInstances + ? (parentFragmentInstances = [fragmentInstance]) + : parentFragmentInstances.push(fragmentInstance); + } if (isHostParent(parentFiber)) { hostParentFiber = parentFiber; break; @@ -13796,7 +14161,8 @@ insertOrAppendPlacementNode( finishedWork, parentFiber, - hostParentFiber + hostParentFiber, + parentFragmentInstances ); break; case 5: @@ -13807,7 +14173,8 @@ insertOrAppendPlacementNode( finishedWork, hostParentFiber, - parentFiber + parentFiber, + parentFragmentInstances ); break; case 3: @@ -13817,7 +14184,8 @@ insertOrAppendPlacementNodeIntoContainer( finishedWork, parentFiber, - hostParentFiber + hostParentFiber, + parentFragmentInstances ); break; default: @@ -13842,6 +14210,436 @@ captureCommitPhaseError(finishedWork, finishedWork.return, error); } } + function trackEnterViewTransitions(placement) { + if (30 === placement.tag || 0 !== (placement.subtreeFlags & 33554432)) + shouldStartViewTransition = !0; + } + function pushViewTransitionCancelableScope() { + var prevChildren = viewTransitionCancelableChildren; + viewTransitionCancelableChildren = null; + return prevChildren; + } + function applyViewTransitionToHostInstances( + fiber, + name, + className, + collectMeasurements, + stopAtNestedViewTransitions + ) { + viewTransitionHostInstanceIdx = 0; + (name = applyViewTransitionToHostInstancesRecursive( + fiber.child, + name, + className, + collectMeasurements, + stopAtNestedViewTransitions + )) && + null != fiber._debugTask && + null === animatingTask && + (animatingTask = fiber._debugTask); + return name; + } + function applyViewTransitionToHostInstancesRecursive( + child, + name, + className, + collectMeasurements, + stopAtNestedViewTransitions + ) { + for (var inViewport = !1; null !== child; ) { + if (5 === child.tag) { + var instance = child.stateNode; + if (null !== collectMeasurements) { + var measurement = measureInstance(instance); + collectMeasurements.push(measurement); + measurement.view && (inViewport = !0); + } else + inViewport || (measureInstance(instance).view && (inViewport = !0)); + shouldStartViewTransition = !0; + applyViewTransitionName( + instance, + 0 === viewTransitionHostInstanceIdx + ? name + : name + "_" + viewTransitionHostInstanceIdx, + className + ); + viewTransitionHostInstanceIdx++; + } else if (22 !== child.tag || null === child.memoizedState) + (30 === child.tag && stopAtNestedViewTransitions) || + (applyViewTransitionToHostInstancesRecursive( + child.child, + name, + className, + collectMeasurements, + stopAtNestedViewTransitions + ) && + (inViewport = !0)); + child = child.sibling; + } + return inViewport; + } + function restoreViewTransitionOnHostInstances( + child, + stopAtNestedViewTransitions + ) { + for (; null !== child; ) { + if (5 === child.tag) + restoreViewTransitionName(child.stateNode, child.memoizedProps); + else if (22 !== child.tag || null === child.memoizedState) + (30 === child.tag && stopAtNestedViewTransitions) || + restoreViewTransitionOnHostInstances( + child.child, + stopAtNestedViewTransitions + ); + child = child.sibling; + } + } + function commitAppearingPairViewTransitions(placement) { + if (0 !== (placement.subtreeFlags & 18874368)) + for (placement = placement.child; null !== placement; ) { + if (22 !== placement.tag || null !== placement.memoizedState) + if ( + (commitAppearingPairViewTransitions(placement), + 30 === placement.tag && + 0 !== (placement.flags & 18874368) && + placement.stateNode.paired) + ) { + var props = placement.memoizedProps; + if (null == props.name || "auto" === props.name) + throw Error( + "Found a pair with an auto name. This is a bug in React." + ); + var name = props.name; + props = getViewTransitionClassName(props.default, props.share); + "none" !== props && + (applyViewTransitionToHostInstances( + placement, + name, + props, + null, + !1 + ) || + restoreViewTransitionOnHostInstances(placement.child, !1)); + } + placement = placement.sibling; + } + } + function commitEnterViewTransitions(placement, gesture) { + if (30 === placement.tag) { + var state = placement.stateNode, + props = placement.memoizedProps, + name = getViewTransitionName(props, state), + className = getViewTransitionClassName( + props.default, + state.paired ? props.share : props.enter + ); + "none" !== className + ? applyViewTransitionToHostInstances( + placement, + name, + className, + null, + !1 + ) + ? (commitAppearingPairViewTransitions(placement), + state.paired || + gesture || + scheduleViewTransitionEvent(placement, props.onEnter)) + : restoreViewTransitionOnHostInstances(placement.child, !1) + : commitAppearingPairViewTransitions(placement); + } else if (0 !== (placement.subtreeFlags & 33554432)) + for (placement = placement.child; null !== placement; ) + commitEnterViewTransitions(placement, gesture), + (placement = placement.sibling); + else commitAppearingPairViewTransitions(placement); + } + function commitDeletedPairViewTransitions(deletion) { + if ( + null !== appearingViewTransitions && + 0 !== appearingViewTransitions.size + ) { + var pairs = appearingViewTransitions; + if (0 !== (deletion.subtreeFlags & 18874368)) + for (deletion = deletion.child; null !== deletion; ) { + if (22 !== deletion.tag || null !== deletion.memoizedState) { + if (30 === deletion.tag && 0 !== (deletion.flags & 18874368)) { + var props = deletion.memoizedProps, + name = props.name; + if (null != name && "auto" !== name) { + var pair = pairs.get(name); + if (void 0 !== pair) { + var className = getViewTransitionClassName( + props.default, + props.share + ); + "none" !== className && + (applyViewTransitionToHostInstances( + deletion, + name, + className, + null, + !1 + ) + ? ((className = deletion.stateNode), + (pair.paired = className), + (className.paired = pair), + scheduleViewTransitionEvent(deletion, props.onShare)) + : restoreViewTransitionOnHostInstances( + deletion.child, + !1 + )); + pairs.delete(name); + if (0 === pairs.size) break; + } + } + } + commitDeletedPairViewTransitions(deletion); + } + deletion = deletion.sibling; + } + } + } + function commitExitViewTransitions(deletion) { + if (30 === deletion.tag) { + var props = deletion.memoizedProps, + name = getViewTransitionName(props, deletion.stateNode), + pair = + null !== appearingViewTransitions + ? appearingViewTransitions.get(name) + : void 0, + className = getViewTransitionClassName( + props.default, + void 0 !== pair ? props.share : props.exit + ); + "none" !== className && + (applyViewTransitionToHostInstances( + deletion, + name, + className, + null, + !1 + ) + ? void 0 !== pair + ? ((className = deletion.stateNode), + (pair.paired = className), + (className.paired = pair), + appearingViewTransitions.delete(name), + scheduleViewTransitionEvent(deletion, props.onShare)) + : scheduleViewTransitionEvent(deletion, props.onExit) + : restoreViewTransitionOnHostInstances(deletion.child, !1)); + null !== appearingViewTransitions && + commitDeletedPairViewTransitions(deletion); + } else if (0 !== (deletion.subtreeFlags & 33554432)) + for (deletion = deletion.child; null !== deletion; ) + commitExitViewTransitions(deletion), (deletion = deletion.sibling); + else + null !== appearingViewTransitions && + commitDeletedPairViewTransitions(deletion); + } + function commitNestedViewTransitions(changedParent) { + for (changedParent = changedParent.child; null !== changedParent; ) { + if (30 === changedParent.tag) { + var props = changedParent.memoizedProps, + name = getViewTransitionName(props, changedParent.stateNode); + props = getViewTransitionClassName(props.default, props.update); + changedParent.flags &= -5; + "none" !== props && + applyViewTransitionToHostInstances( + changedParent, + name, + props, + (changedParent.memoizedState = []), + !1 + ); + } else + 0 !== (changedParent.subtreeFlags & 33554432) && + commitNestedViewTransitions(changedParent); + changedParent = changedParent.sibling; + } + } + function restorePairedViewTransitions(parent) { + if (0 !== (parent.subtreeFlags & 18874368)) + for (parent = parent.child; null !== parent; ) { + if (22 !== parent.tag || null !== parent.memoizedState) { + if (30 === parent.tag && 0 !== (parent.flags & 18874368)) { + var instance = parent.stateNode; + null !== instance.paired && + ((instance.paired = null), + restoreViewTransitionOnHostInstances(parent.child, !1)); + } + restorePairedViewTransitions(parent); + } + parent = parent.sibling; + } + } + function restoreEnterOrExitViewTransitions(fiber) { + if (30 === fiber.tag) + (fiber.stateNode.paired = null), + restoreViewTransitionOnHostInstances(fiber.child, !1), + restorePairedViewTransitions(fiber); + else if (0 !== (fiber.subtreeFlags & 33554432)) + for (fiber = fiber.child; null !== fiber; ) + restoreEnterOrExitViewTransitions(fiber), (fiber = fiber.sibling); + else restorePairedViewTransitions(fiber); + } + function restoreNestedViewTransitions(changedParent) { + for (changedParent = changedParent.child; null !== changedParent; ) + 30 === changedParent.tag + ? restoreViewTransitionOnHostInstances(changedParent.child, !1) + : 0 !== (changedParent.subtreeFlags & 33554432) && + restoreNestedViewTransitions(changedParent), + (changedParent = changedParent.sibling); + } + function measureViewTransitionHostInstancesRecursive( + parentViewTransition, + child, + newName, + oldName, + className, + previousMeasurements, + stopAtNestedViewTransitions + ) { + for (var inViewport = !1; null !== child; ) { + if (5 === child.tag) { + var instance = child.stateNode; + if ( + null !== previousMeasurements && + viewTransitionHostInstanceIdx < previousMeasurements.length + ) { + var previousMeasurement = + previousMeasurements[viewTransitionHostInstanceIdx], + nextMeasurement = measureInstance(instance); + if (previousMeasurement.view || nextMeasurement.view) + inViewport = !0; + var JSCompiler_temp; + if ((JSCompiler_temp = 0 === (parentViewTransition.flags & 4))) + if (nextMeasurement.clip) JSCompiler_temp = !0; + else { + JSCompiler_temp = previousMeasurement.rect; + var newRect = nextMeasurement.rect; + JSCompiler_temp = + JSCompiler_temp.y !== newRect.y || + JSCompiler_temp.x !== newRect.x || + JSCompiler_temp.height !== newRect.height || + JSCompiler_temp.width !== newRect.width; + } + JSCompiler_temp && (parentViewTransition.flags |= 4); + nextMeasurement.abs + ? (nextMeasurement = !previousMeasurement.abs) + : ((previousMeasurement = previousMeasurement.rect), + (nextMeasurement = nextMeasurement.rect), + (nextMeasurement = + previousMeasurement.height !== nextMeasurement.height || + previousMeasurement.width !== nextMeasurement.width)); + nextMeasurement && (parentViewTransition.flags |= 32); + } else parentViewTransition.flags |= 32; + 0 !== (parentViewTransition.flags & 4) && + applyViewTransitionName( + instance, + 0 === viewTransitionHostInstanceIdx + ? newName + : newName + "_" + viewTransitionHostInstanceIdx, + className + ); + (inViewport && 0 !== (parentViewTransition.flags & 4)) || + (null === viewTransitionCancelableChildren && + (viewTransitionCancelableChildren = []), + viewTransitionCancelableChildren.push( + instance, + oldName, + child.memoizedProps + )); + viewTransitionHostInstanceIdx++; + } else if (22 !== child.tag || null === child.memoizedState) + 30 === child.tag && stopAtNestedViewTransitions + ? (parentViewTransition.flags |= child.flags & 32) + : measureViewTransitionHostInstancesRecursive( + parentViewTransition, + child.child, + newName, + oldName, + className, + previousMeasurements, + stopAtNestedViewTransitions + ) && (inViewport = !0); + child = child.sibling; + } + return inViewport; + } + function measureNestedViewTransitions(changedParent, gesture) { + for (changedParent = changedParent.child; null !== changedParent; ) { + if (30 === changedParent.tag) { + var props = changedParent.memoizedProps, + state = changedParent.stateNode, + name = getViewTransitionName(props, state), + className = getViewTransitionClassName(props.default, props.update); + if (gesture) { + state = state.clones; + var previousMeasurements = + null === state ? null : state.map(measureClonedInstance); + } else + (previousMeasurements = changedParent.memoizedState), + (changedParent.memoizedState = null); + state = changedParent; + var child = changedParent.child, + newName = name; + viewTransitionHostInstanceIdx = 0; + className = measureViewTransitionHostInstancesRecursive( + state, + child, + newName, + name, + className, + previousMeasurements, + !1 + ); + 0 !== (changedParent.flags & 4) && + className && + (gesture || + scheduleViewTransitionEvent(changedParent, props.onUpdate)); + } else + 0 !== (changedParent.subtreeFlags & 33554432) && + measureNestedViewTransitions(changedParent, gesture); + changedParent = changedParent.sibling; + } + } + function trackNamedViewTransition(fiber) { + var name = fiber.memoizedProps.name; + if (null != name && "auto" !== name) { + var existing = mountedNamedViewTransitions.get(name); + if (void 0 !== existing) { + if ( + existing !== fiber && + existing !== fiber.alternate && + !didWarnAboutName[name] + ) { + didWarnAboutName[name] = !0; + var stringifiedName = JSON.stringify(name); + runWithFiberInDEV(fiber, function () { + console.error( + "There are two components with the same name mounted at the same time. This is not supported and will cause View Transitions to error. Try to use a more unique name e.g. by using a namespace prefix and adding the id of an item to the name.", + stringifiedName + ); + }); + runWithFiberInDEV(existing, function () { + console.error( + "The existing duplicate has this stack trace.", + stringifiedName + ); + }); + } + } else mountedNamedViewTransitions.set(name, fiber); + } + } + function untrackNamedViewTransition(fiber) { + var name = fiber.memoizedProps.name; + if (null != name && "auto" !== name) { + var existing = mountedNamedViewTransitions.get(name); + void 0 === existing || + (existing !== fiber && existing !== fiber.alternate) || + mountedNamedViewTransitions.delete(name); + } + } function isHydratingParent(current, finishedWork) { return 31 === finishedWork.tag ? ((finishedWork = finishedWork.memoizedState), @@ -13857,7 +14655,7 @@ 0 === (finishedWork.flags & 256) : !1; } - function commitBeforeMutationEffects(root, firstChild) { + function commitBeforeMutationEffects(root, firstChild, committedLanes) { root = root.containerInfo; eventsEnabled = _enabled; root = getActiveElementDeep(root); @@ -13931,82 +14729,152 @@ selectionRange: JSCompiler_temp }; _enabled = !1; - for (nextEffect = firstChild; null !== nextEffect; ) + committedLanes = (committedLanes & 335544064) === committedLanes; + nextEffect = firstChild; + for (firstChild = committedLanes ? 9270 : 1028; null !== nextEffect; ) { + root = nextEffect; if ( - ((firstChild = nextEffect), - (root = firstChild.child), - 0 !== (firstChild.subtreeFlags & 1028) && null !== root) + committedLanes && + ((JSCompiler_temp = root.deletions), null !== JSCompiler_temp) ) - (root.return = firstChild), (nextEffect = root); - else - for (; null !== nextEffect; ) { - root = firstChild = nextEffect; - JSCompiler_temp = root.alternate; - anchorOffset = root.flags; - switch (root.tag) { - case 0: - if ( - 0 !== (anchorOffset & 4) && - ((root = root.updateQueue), - (root = null !== root ? root.events : null), - null !== root) - ) - for ( - JSCompiler_temp = 0; - JSCompiler_temp < root.length; - JSCompiler_temp++ - ) - (anchorOffset = root[JSCompiler_temp]), - (anchorOffset.ref.impl = anchorOffset.nextImpl); - break; - case 11: - case 15: - break; - case 1: - 0 !== (anchorOffset & 1024) && - null !== JSCompiler_temp && - commitClassSnapshot(root, JSCompiler_temp); - break; - case 3: - if (0 !== (anchorOffset & 1024)) - if ( - ((root = root.stateNode.containerInfo), - (JSCompiler_temp = root.nodeType), - 9 === JSCompiler_temp) - ) - clearContainerSparingly(root); - else if (1 === JSCompiler_temp) - switch (root.nodeName) { - case "HEAD": - case "HTML": - case "BODY": - clearContainerSparingly(root); - break; - default: - root.textContent = ""; - } - break; - case 5: - case 26: - case 27: - case 6: - case 4: - case 17: - break; - default: - if (0 !== (anchorOffset & 1024)) - throw Error( - "This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue." - ); - } - root = firstChild.sibling; - if (null !== root) { - root.return = firstChild.return; - nextEffect = root; - break; + for ( + anchorOffset = 0; + anchorOffset < JSCompiler_temp.length; + anchorOffset++ + ) + committedLanes && + commitExitViewTransitions(JSCompiler_temp[anchorOffset]); + if (null === root.alternate && 0 !== (root.flags & 2)) + committedLanes && trackEnterViewTransitions(root), + commitBeforeMutationEffects_complete(committedLanes); + else { + if (22 === root.tag) + if ( + ((JSCompiler_temp = root.alternate), null !== root.memoizedState) + ) { + null !== JSCompiler_temp && + null === JSCompiler_temp.memoizedState && + committedLanes && + commitExitViewTransitions(JSCompiler_temp); + commitBeforeMutationEffects_complete(committedLanes); + continue; + } else if ( + null !== JSCompiler_temp && + null !== JSCompiler_temp.memoizedState + ) { + committedLanes && trackEnterViewTransitions(root); + commitBeforeMutationEffects_complete(committedLanes); + continue; } - nextEffect = firstChild.return; - } + JSCompiler_temp = root.child; + 0 !== (root.subtreeFlags & firstChild) && null !== JSCompiler_temp + ? ((JSCompiler_temp.return = root), (nextEffect = JSCompiler_temp)) + : (committedLanes && commitNestedViewTransitions(root), + commitBeforeMutationEffects_complete(committedLanes)); + } + } + appearingViewTransitions = null; + } + function commitBeforeMutationEffects_complete( + isViewTransitionEligible$jscomp$0 + ) { + for (; null !== nextEffect; ) { + var fiber = nextEffect, + finishedWork = fiber, + isViewTransitionEligible = isViewTransitionEligible$jscomp$0, + current = finishedWork.alternate, + flags = finishedWork.flags; + switch (finishedWork.tag) { + case 0: + if ( + 0 !== (flags & 4) && + ((isViewTransitionEligible = finishedWork.updateQueue), + (isViewTransitionEligible = + null !== isViewTransitionEligible + ? isViewTransitionEligible.events + : null), + null !== isViewTransitionEligible) + ) + for ( + finishedWork = 0; + finishedWork < isViewTransitionEligible.length; + finishedWork++ + ) + (current = isViewTransitionEligible[finishedWork]), + (current.ref.impl = current.nextImpl); + break; + case 11: + case 15: + break; + case 1: + 0 !== (flags & 1024) && + null !== current && + commitClassSnapshot(finishedWork, current); + break; + case 3: + if (0 !== (flags & 1024)) + if ( + ((isViewTransitionEligible = + finishedWork.stateNode.containerInfo), + (finishedWork = isViewTransitionEligible.nodeType), + 9 === finishedWork) + ) + clearContainerSparingly(isViewTransitionEligible); + else if (1 === finishedWork) + switch (isViewTransitionEligible.nodeName) { + case "HEAD": + case "HTML": + case "BODY": + clearContainerSparingly(isViewTransitionEligible); + break; + default: + isViewTransitionEligible.textContent = ""; + } + break; + case 5: + case 26: + case 27: + case 6: + case 4: + case 17: + break; + case 30: + isViewTransitionEligible && + null !== current && + ((isViewTransitionEligible = current), + (current = finishedWork), + (finishedWork = getViewTransitionName( + isViewTransitionEligible.memoizedProps, + isViewTransitionEligible.stateNode + )), + (current = current.memoizedProps), + (current = getViewTransitionClassName( + current.default, + current.update + )), + "none" !== current && + applyViewTransitionToHostInstances( + isViewTransitionEligible, + finishedWork, + current, + (isViewTransitionEligible.memoizedState = []), + !0 + )); + break; + default: + if (0 !== (flags & 1024)) + throw Error( + "This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue." + ); + } + isViewTransitionEligible = fiber.sibling; + if (null !== isViewTransitionEligible) { + isViewTransitionEligible.return = fiber.return; + nextEffect = isViewTransitionEligible; + break; + } + nextEffect = fiber.return; + } } function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { var prevEffectStart = pushComponentEffectStart(), @@ -14232,7 +15100,12 @@ } break; case 30: + flags & 18874368 && trackNamedViewTransition(finishedWork); + recursivelyTraverseLayoutEffects(finishedRoot, finishedWork); + flags & 512 && safelyAttachRef(finishedWork, finishedWork.return); break; + case 7: + flags & 512 && safelyAttachRef(finishedWork, finishedWork.return); default: recursivelyTraverseLayoutEffects(finishedRoot, finishedWork); } @@ -14360,7 +15233,9 @@ break; case 5: offscreenSubtreeWasHidden || - safelyDetachRef(deletedFiber, nearestMountedAncestor); + safelyDetachRef(deletedFiber, nearestMountedAncestor), + 5 === deletedFiber.tag && + commitFragmentInstanceDeletionEffects(deletedFiber); case 6: prevHostParent = hostParent; prevHostParentIsContainer = hostParentIsContainer; @@ -14380,7 +15255,8 @@ removeChildFromContainer, hostParent, deletedFiber.stateNode - ); + ), + (viewTransitionMutationContext = !0); } catch (error) { captureCommitPhaseError( deletedFiber, @@ -14395,7 +15271,8 @@ removeChild, hostParent, deletedFiber.stateNode - ); + ), + (viewTransitionMutationContext = !0); } catch (error) { captureCommitPhaseError( deletedFiber, @@ -14487,6 +15364,25 @@ ); offscreenSubtreeWasHidden = prevHostParent; break; + case 30: + deletedFiber.flags & 18874368 && + untrackNamedViewTransition(deletedFiber); + safelyDetachRef(deletedFiber, nearestMountedAncestor); + recursivelyTraverseDeletionEffects( + finishedRoot, + nearestMountedAncestor, + deletedFiber + ); + break; + case 7: + offscreenSubtreeWasHidden || + safelyDetachRef(deletedFiber, nearestMountedAncestor); + recursivelyTraverseDeletionEffects( + finishedRoot, + nearestMountedAncestor, + deletedFiber + ); + break; default: recursivelyTraverseDeletionEffects( finishedRoot, @@ -14590,7 +15486,11 @@ } }); } - function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) { + function recursivelyTraverseMutationEffects( + root$jscomp$0, + parentFiber, + lanes + ) { var deletions = parentFiber.deletions; if (null !== deletions) for (var i = 0; i < deletions.length; i++) { @@ -14645,10 +15545,10 @@ } if (parentFiber.subtreeFlags & 13886) for (parentFiber = parentFiber.child; null !== parentFiber; ) - commitMutationEffectsOnFiber(parentFiber, root$jscomp$0), + commitMutationEffectsOnFiber(parentFiber, root$jscomp$0, lanes), (parentFiber = parentFiber.sibling); } - function commitMutationEffectsOnFiber(finishedWork, root) { + function commitMutationEffectsOnFiber(finishedWork, root, lanes) { var prevEffectStart = pushComponentEffectStart(), prevEffectDuration = pushComponentEffectDuration(), prevEffectErrors = pushComponentEffectErrors(), @@ -14660,7 +15560,7 @@ case 11: case 14: case 15: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 4 && (commitHookEffectListUnmount( @@ -14676,192 +15576,173 @@ )); break; case 1: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 512 && (offscreenSubtreeWasHidden || null === current || safelyDetachRef(current, current.return)); - if ( - flags & 64 && + flags & 64 && offscreenSubtreeIsHidden && - ((flags = finishedWork.updateQueue), - null !== flags && ((current = flags.callbacks), null !== current)) - ) { - var existingHiddenCallbacks = flags.shared.hiddenCallbacks; - flags.shared.hiddenCallbacks = - null === existingHiddenCallbacks - ? current - : existingHiddenCallbacks.concat(current); - } + ((current = finishedWork.updateQueue), + null !== current && + ((flags = current.callbacks), + null !== flags && + ((root = current.shared.hiddenCallbacks), + (current.shared.hiddenCallbacks = + null === root ? flags : root.concat(flags))))); break; case 26: - existingHiddenCallbacks = currentHoistableRoot; - recursivelyTraverseMutationEffects(root, finishedWork); + var hoistableRoot = currentHoistableRoot; + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 512 && (offscreenSubtreeWasHidden || null === current || safelyDetachRef(current, current.return)); - if (flags & 4) { - var currentResource = - null !== current ? current.memoizedState : null; - flags = finishedWork.memoizedState; - if (null === current) + if (flags & 4) + if ( + ((root = null !== current ? current.memoizedState : null), + (flags = finishedWork.memoizedState), + null === current) + ) if (null === flags) if (null === finishedWork.stateNode) { a: { - flags = finishedWork.type; - current = finishedWork.memoizedProps; - existingHiddenCallbacks = - existingHiddenCallbacks.ownerDocument || - existingHiddenCallbacks; - b: switch (flags) { + current = finishedWork.type; + flags = finishedWork.memoizedProps; + root = hoistableRoot.ownerDocument || hoistableRoot; + b: switch (current) { case "title": - currentResource = - existingHiddenCallbacks.getElementsByTagName( - "title" - )[0]; + lanes = root.getElementsByTagName("title")[0]; if ( - !currentResource || - currentResource[internalHoistableMarker] || - currentResource[internalInstanceKey] || - currentResource.namespaceURI === SVG_NAMESPACE || - currentResource.hasAttribute("itemprop") + !lanes || + lanes[internalHoistableMarker] || + lanes[internalInstanceKey] || + lanes.namespaceURI === SVG_NAMESPACE || + lanes.hasAttribute("itemprop") ) - (currentResource = - existingHiddenCallbacks.createElement(flags)), - existingHiddenCallbacks.head.insertBefore( - currentResource, - existingHiddenCallbacks.querySelector( - "head > title" - ) + (lanes = root.createElement(current)), + root.head.insertBefore( + lanes, + root.querySelector("head > title") ); - setInitialProperties(currentResource, flags, current); - currentResource[internalInstanceKey] = finishedWork; - markNodeAsHoistable(currentResource); - flags = currentResource; + setInitialProperties(lanes, current, flags); + lanes[internalInstanceKey] = finishedWork; + markNodeAsHoistable(lanes); + current = lanes; break a; case "link": - var maybeNodes = getHydratableHoistableCache( - "link", - "href", - existingHiddenCallbacks - ).get(flags + (current.href || "")); - if (maybeNodes) - for (var i = 0; i < maybeNodes.length; i++) + if ( + (hoistableRoot = getHydratableHoistableCache( + "link", + "href", + root + ).get(current + (flags.href || ""))) + ) + for (var i = 0; i < hoistableRoot.length; i++) if ( - ((currentResource = maybeNodes[i]), - currentResource.getAttribute("href") === - (null == current.href || "" === current.href + ((lanes = hoistableRoot[i]), + lanes.getAttribute("href") === + (null == flags.href || "" === flags.href ? null - : current.href) && - currentResource.getAttribute("rel") === - (null == current.rel ? null : current.rel) && - currentResource.getAttribute("title") === - (null == current.title + : flags.href) && + lanes.getAttribute("rel") === + (null == flags.rel ? null : flags.rel) && + lanes.getAttribute("title") === + (null == flags.title ? null : flags.title) && + lanes.getAttribute("crossorigin") === + (null == flags.crossOrigin ? null - : current.title) && - currentResource.getAttribute("crossorigin") === - (null == current.crossOrigin - ? null - : current.crossOrigin)) + : flags.crossOrigin)) ) { - maybeNodes.splice(i, 1); + hoistableRoot.splice(i, 1); break b; } - currentResource = - existingHiddenCallbacks.createElement(flags); - setInitialProperties(currentResource, flags, current); - existingHiddenCallbacks.head.appendChild( - currentResource - ); + lanes = root.createElement(current); + setInitialProperties(lanes, current, flags); + root.head.appendChild(lanes); break; case "meta": if ( - (maybeNodes = getHydratableHoistableCache( + (hoistableRoot = getHydratableHoistableCache( "meta", "content", - existingHiddenCallbacks - ).get(flags + (current.content || ""))) + root + ).get(current + (flags.content || ""))) ) - for (i = 0; i < maybeNodes.length; i++) + for (i = 0; i < hoistableRoot.length; i++) if ( - ((currentResource = maybeNodes[i]), + ((lanes = hoistableRoot[i]), checkAttributeStringCoercion( - current.content, + flags.content, "content" ), - currentResource.getAttribute("content") === - (null == current.content + lanes.getAttribute("content") === + (null == flags.content ? null - : "" + current.content) && - currentResource.getAttribute("name") === - (null == current.name - ? null - : current.name) && - currentResource.getAttribute("property") === - (null == current.property + : "" + flags.content) && + lanes.getAttribute("name") === + (null == flags.name ? null : flags.name) && + lanes.getAttribute("property") === + (null == flags.property ? null - : current.property) && - currentResource.getAttribute("http-equiv") === - (null == current.httpEquiv + : flags.property) && + lanes.getAttribute("http-equiv") === + (null == flags.httpEquiv ? null - : current.httpEquiv) && - currentResource.getAttribute("charset") === - (null == current.charSet + : flags.httpEquiv) && + lanes.getAttribute("charset") === + (null == flags.charSet ? null - : current.charSet)) + : flags.charSet)) ) { - maybeNodes.splice(i, 1); + hoistableRoot.splice(i, 1); break b; } - currentResource = - existingHiddenCallbacks.createElement(flags); - setInitialProperties(currentResource, flags, current); - existingHiddenCallbacks.head.appendChild( - currentResource - ); + lanes = root.createElement(current); + setInitialProperties(lanes, current, flags); + root.head.appendChild(lanes); break; default: throw Error( 'getNodesForType encountered a type it did not expect: "' + - flags + + current + '". This is a bug in React.' ); } - currentResource[internalInstanceKey] = finishedWork; - markNodeAsHoistable(currentResource); - flags = currentResource; + lanes[internalInstanceKey] = finishedWork; + markNodeAsHoistable(lanes); + current = lanes; } - finishedWork.stateNode = flags; + finishedWork.stateNode = current; } else mountHoistable( - existingHiddenCallbacks, + hoistableRoot, finishedWork.type, finishedWork.stateNode ); else finishedWork.stateNode = acquireResource( - existingHiddenCallbacks, + hoistableRoot, flags, finishedWork.memoizedProps ); else - currentResource !== flags - ? (null === currentResource + root !== flags + ? (null === root ? null !== current.stateNode && ((current = current.stateNode), current.parentNode.removeChild(current)) - : currentResource.count--, + : root.count--, null === flags ? mountHoistable( - existingHiddenCallbacks, + hoistableRoot, finishedWork.type, finishedWork.stateNode ) : acquireResource( - existingHiddenCallbacks, + hoistableRoot, flags, finishedWork.memoizedProps )) @@ -14872,10 +15753,9 @@ finishedWork.memoizedProps, current.memoizedProps ); - } break; case 27: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 512 && (offscreenSubtreeWasHidden || @@ -14890,31 +15770,28 @@ ); break; case 5: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 512 && (offscreenSubtreeWasHidden || null === current || safelyDetachRef(current, current.return)); if (finishedWork.flags & 32) { - existingHiddenCallbacks = finishedWork.stateNode; + root = finishedWork.stateNode; try { - runWithFiberInDEV( - finishedWork, - resetTextContent, - existingHiddenCallbacks - ); + runWithFiberInDEV(finishedWork, resetTextContent, root), + (viewTransitionMutationContext = !0); } catch (error) { captureCommitPhaseError(finishedWork, finishedWork.return, error); } } flags & 4 && null != finishedWork.stateNode && - ((existingHiddenCallbacks = finishedWork.memoizedProps), + ((root = finishedWork.memoizedProps), commitHostUpdate( finishedWork, - existingHiddenCallbacks, - null !== current ? current.memoizedProps : existingHiddenCallbacks + root, + null !== current ? current.memoizedProps : root )); flags & 1024 && ((needsFormReset = !0), @@ -14924,7 +15801,7 @@ )); break; case 6: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); if (flags & 4) { if (null === finishedWork.stateNode) @@ -14933,27 +15810,29 @@ ); flags = finishedWork.memoizedProps; current = null !== current ? current.memoizedProps : flags; - existingHiddenCallbacks = finishedWork.stateNode; + root = finishedWork.stateNode; try { runWithFiberInDEV( finishedWork, commitTextUpdate, - existingHiddenCallbacks, + root, current, flags - ); + ), + (viewTransitionMutationContext = !0); } catch (error) { captureCommitPhaseError(finishedWork, finishedWork.return, error); } } break; case 3: - existingHiddenCallbacks = pushNestedEffectDurations(); + hoistableRoot = pushNestedEffectDurations(); + viewTransitionMutationContext = !1; tagCaches = null; - currentResource = currentHoistableRoot; + i = currentHoistableRoot; currentHoistableRoot = getHoistableRoot(root.containerInfo); - recursivelyTraverseMutationEffects(root, finishedWork); - currentHoistableRoot = currentResource; + recursivelyTraverseMutationEffects(root, finishedWork, lanes); + currentHoistableRoot = i; commitReconciliationEffects(finishedWork); if ( flags & 4 && @@ -14971,62 +15850,66 @@ } needsFormReset && ((needsFormReset = !1), recursivelyResetForms(finishedWork)); - root.effectDuration += popNestedEffectDurations( - existingHiddenCallbacks - ); + root.effectDuration += popNestedEffectDurations(hoistableRoot); + viewTransitionMutationContext = !1; break; case 4: + current = pushMutationContext(); flags = currentHoistableRoot; currentHoistableRoot = getHoistableRoot( finishedWork.stateNode.containerInfo ); - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); currentHoistableRoot = flags; + viewTransitionMutationContext && + inUpdateViewTransition && + (rootViewTransitionAffected = !0); + viewTransitionMutationContext = current; break; case 12: - flags = pushNestedEffectDurations(); - recursivelyTraverseMutationEffects(root, finishedWork); + current = pushNestedEffectDurations(); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); finishedWork.stateNode.effectDuration += - bubbleNestedEffectDurations(flags); + bubbleNestedEffectDurations(current); break; case 31: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 4 && - ((flags = finishedWork.updateQueue), - null !== flags && + ((current = finishedWork.updateQueue), + null !== current && ((finishedWork.updateQueue = null), - attachSuspenseRetryListeners(finishedWork, flags))); + attachSuspenseRetryListeners(finishedWork, current))); break; case 13: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); finishedWork.child.flags & 8192 && (null !== finishedWork.memoizedState) !== (null !== current && null !== current.memoizedState) && (globalMostRecentFallbackTime = now$1()); flags & 4 && - ((flags = finishedWork.updateQueue), - null !== flags && + ((current = finishedWork.updateQueue), + null !== current && ((finishedWork.updateQueue = null), - attachSuspenseRetryListeners(finishedWork, flags))); + attachSuspenseRetryListeners(finishedWork, current))); break; case 22: - existingHiddenCallbacks = null !== finishedWork.memoizedState; + hoistableRoot = null !== finishedWork.memoizedState; var wasHidden = null !== current && null !== current.memoizedState, prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden, prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden; offscreenSubtreeIsHidden = - prevOffscreenSubtreeIsHidden || existingHiddenCallbacks; + prevOffscreenSubtreeIsHidden || hoistableRoot; offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden; - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden; offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden; wasHidden && - !existingHiddenCallbacks && + !hoistableRoot && !prevOffscreenSubtreeIsHidden && !prevOffscreenSubtreeWasHidden && (finishedWork.mode & ProfileMode) !== NoMode && @@ -15042,10 +15925,10 @@ if (flags & 8192) a: for ( root = finishedWork.stateNode, - root._visibility = existingHiddenCallbacks + root._visibility = hoistableRoot ? root._visibility & ~OffscreenVisible : root._visibility | OffscreenVisible, - !existingHiddenCallbacks || + !hoistableRoot || null === current || wasHidden || offscreenSubtreeIsHidden || @@ -15068,64 +15951,57 @@ ) { if (5 === root.tag || 26 === root.tag) { if (null === current) { - wasHidden = current = root; + lanes = current = root; try { - (currentResource = wasHidden.stateNode), - existingHiddenCallbacks - ? runWithFiberInDEV( - wasHidden, - hideInstance, - currentResource - ) + (i = lanes.stateNode), + hoistableRoot + ? runWithFiberInDEV(lanes, hideInstance, i) : runWithFiberInDEV( - wasHidden, + lanes, unhideInstance, - wasHidden.stateNode, - wasHidden.memoizedProps + lanes.stateNode, + lanes.memoizedProps ); } catch (error) { - captureCommitPhaseError(wasHidden, wasHidden.return, error); + captureCommitPhaseError(lanes, lanes.return, error); } } } else if (6 === root.tag) { if (null === current) { - wasHidden = root; + lanes = root; try { - (maybeNodes = wasHidden.stateNode), - existingHiddenCallbacks - ? runWithFiberInDEV( - wasHidden, - hideTextInstance, - maybeNodes - ) - : runWithFiberInDEV( - wasHidden, - unhideTextInstance, - maybeNodes, - wasHidden.memoizedProps - ); + var instance = lanes.stateNode; + hoistableRoot + ? runWithFiberInDEV(lanes, hideTextInstance, instance) + : runWithFiberInDEV( + lanes, + unhideTextInstance, + instance, + lanes.memoizedProps + ); + viewTransitionMutationContext = !0; } catch (error) { - captureCommitPhaseError(wasHidden, wasHidden.return, error); + captureCommitPhaseError(lanes, lanes.return, error); } } } else if (18 === root.tag) { if (null === current) { - wasHidden = root; + lanes = root; try { - (i = wasHidden.stateNode), - existingHiddenCallbacks - ? runWithFiberInDEV( - wasHidden, - hideDehydratedBoundary, - i - ) - : runWithFiberInDEV( - wasHidden, - unhideDehydratedBoundary, - wasHidden.stateNode - ); + var instance$jscomp$0 = lanes.stateNode; + hoistableRoot + ? runWithFiberInDEV( + lanes, + hideDehydratedBoundary, + instance$jscomp$0 + ) + : runWithFiberInDEV( + lanes, + unhideDehydratedBoundary, + lanes.stateNode + ); } catch (error) { - captureCommitPhaseError(wasHidden, wasHidden.return, error); + captureCommitPhaseError(lanes, lanes.return, error); } } } else if ( @@ -15150,28 +16026,52 @@ root = root.sibling; } flags & 4 && - ((flags = finishedWork.updateQueue), - null !== flags && - ((current = flags.retryQueue), - null !== current && - ((flags.retryQueue = null), - attachSuspenseRetryListeners(finishedWork, current)))); + ((current = finishedWork.updateQueue), + null !== current && + ((flags = current.retryQueue), + null !== flags && + ((current.retryQueue = null), + attachSuspenseRetryListeners(finishedWork, flags)))); break; case 19: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 4 && - ((flags = finishedWork.updateQueue), - null !== flags && + ((current = finishedWork.updateQueue), + null !== current && ((finishedWork.updateQueue = null), - attachSuspenseRetryListeners(finishedWork, flags))); + attachSuspenseRetryListeners(finishedWork, current))); break; case 30: + flags & 512 && + (offscreenSubtreeWasHidden || + null === current || + safelyDetachRef(current, current.return)); + flags = pushMutationContext(); + hoistableRoot = inUpdateViewTransition; + i = (lanes & 335544064) === lanes; + instance = finishedWork.memoizedProps; + inUpdateViewTransition = + i && + "none" !== + getViewTransitionClassName(instance.default, instance.update); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); + commitReconciliationEffects(finishedWork); + i && + null !== current && + viewTransitionMutationContext && + (finishedWork.flags |= 4); + inUpdateViewTransition = hoistableRoot; + viewTransitionMutationContext = flags; break; case 21: break; + case 7: + current && + null !== current.stateNode && + (current.stateNode._fragmentFiber = finishedWork); default: - recursivelyTraverseMutationEffects(root, finishedWork), + recursivelyTraverseMutationEffects(root, finishedWork, lanes), commitReconciliationEffects(finishedWork); } (finishedWork.mode & ProfileMode) !== NoMode && @@ -15225,6 +16125,133 @@ parentFiber = parentFiber.sibling; } } + function recursivelyTraverseAfterMutationEffects(root, parentFiber) { + if (parentFiber.subtreeFlags & 9270) + for (parentFiber = parentFiber.child; null !== parentFiber; ) + commitAfterMutationEffectsOnFiber(parentFiber, root), + (parentFiber = parentFiber.sibling); + else measureNestedViewTransitions(parentFiber, !1); + } + function commitAfterMutationEffectsOnFiber(finishedWork, root) { + var current = finishedWork.alternate; + if (null === current) commitEnterViewTransitions(finishedWork, !1); + else + switch (finishedWork.tag) { + case 3: + rootViewTransitionNameCanceled = viewTransitionContextChanged = !1; + pushViewTransitionCancelableScope(); + recursivelyTraverseAfterMutationEffects(root, finishedWork); + if (!viewTransitionContextChanged && !rootViewTransitionAffected) { + finishedWork = viewTransitionCancelableChildren; + if (null !== finishedWork) + for (var i = 0; i < finishedWork.length; i += 3) { + current = finishedWork[i]; + var oldName = finishedWork[i + 1]; + restoreViewTransitionName(current, finishedWork[i + 2]); + current = current.ownerDocument.documentElement; + null !== current && + current.animate( + { opacity: [0, 0], pointerEvents: ["none", "none"] }, + { + duration: 0, + fill: "forwards", + pseudoElement: + "::view-transition-group(" + oldName + ")" + } + ); + } + finishedWork = root.containerInfo; + finishedWork = + 9 === finishedWork.nodeType + ? finishedWork.documentElement + : finishedWork.ownerDocument.documentElement; + null !== finishedWork && + "" === finishedWork.style.viewTransitionName && + ((finishedWork.style.viewTransitionName = "none"), + finishedWork.animate( + { opacity: [0, 0], pointerEvents: ["none", "none"] }, + { + duration: 0, + fill: "forwards", + pseudoElement: "::view-transition-group(root)" + } + ), + finishedWork.animate( + { width: [0, 0], height: [0, 0] }, + { + duration: 0, + fill: "forwards", + pseudoElement: "::view-transition" + } + )); + rootViewTransitionNameCanceled = !0; + } + viewTransitionCancelableChildren = null; + break; + case 5: + recursivelyTraverseAfterMutationEffects(root, finishedWork); + break; + case 4: + i = viewTransitionContextChanged; + viewTransitionContextChanged = !1; + recursivelyTraverseAfterMutationEffects(root, finishedWork); + viewTransitionContextChanged && (rootViewTransitionAffected = !0); + viewTransitionContextChanged = i; + break; + case 22: + null === finishedWork.memoizedState && + (null !== current.memoizedState + ? commitEnterViewTransitions(finishedWork, !1) + : recursivelyTraverseAfterMutationEffects(root, finishedWork)); + break; + case 30: + i = viewTransitionContextChanged; + oldName = pushViewTransitionCancelableScope(); + viewTransitionContextChanged = !1; + recursivelyTraverseAfterMutationEffects(root, finishedWork); + viewTransitionContextChanged && (finishedWork.flags |= 4); + var props = finishedWork.memoizedProps, + state = finishedWork.stateNode; + root = getViewTransitionName(props, state); + state = getViewTransitionName(current.memoizedProps, state); + var className = getViewTransitionClassName( + props.default, + props.update + ); + "none" === className + ? (root = !1) + : ((props = current.memoizedState), + (current.memoizedState = null), + (current = finishedWork.child), + (viewTransitionHostInstanceIdx = 0), + (root = measureViewTransitionHostInstancesRecursive( + finishedWork, + current, + root, + state, + className, + props, + !0 + )), + viewTransitionHostInstanceIdx !== + (null === props ? 0 : props.length) && + (finishedWork.flags |= 32)); + 0 !== (finishedWork.flags & 4) && root + ? (scheduleViewTransitionEvent( + finishedWork, + finishedWork.memoizedProps.onUpdate + ), + (viewTransitionCancelableChildren = oldName)) + : null !== oldName && + (oldName.push.apply(oldName, viewTransitionCancelableChildren), + (viewTransitionCancelableChildren = oldName)); + viewTransitionContextChanged = + 0 !== (finishedWork.flags & 32) ? !0 : i; + break; + default: + recursivelyTraverseAfterMutationEffects(root, finishedWork); + } + } function recursivelyTraverseLayoutEffects(root, parentFiber) { if (parentFiber.subtreeFlags & 8772) for (parentFiber = parentFiber.child; null !== parentFiber; ) @@ -15268,6 +16295,8 @@ case 26: case 5: safelyDetachRef(finishedWork, finishedWork.return); + 5 === finishedWork.tag && + commitFragmentInstanceDeletionEffects(finishedWork); recursivelyTraverseDisappearLayoutEffects(finishedWork); break; case 22: @@ -15275,8 +16304,13 @@ recursivelyTraverseDisappearLayoutEffects(finishedWork); break; case 30: + finishedWork.flags & 18874368 && + untrackNamedViewTransition(finishedWork); + safelyDetachRef(finishedWork, finishedWork.return); recursivelyTraverseDisappearLayoutEffects(finishedWork); break; + case 7: + safelyDetachRef(finishedWork, finishedWork.return); default: recursivelyTraverseDisappearLayoutEffects(finishedWork); } @@ -15360,6 +16394,16 @@ commitHostSingletonAcquisition(finishedWork); case 26: case 5: + if (5 === finishedWork.tag) + a: for (var parent = finishedWork.return; null !== parent; ) { + isFragmentInstanceParent(parent) && + commitNewChildToFragmentInstance( + finishedWork.stateNode, + parent.stateNode + ); + if (isHostParent(parent)) break a; + parent = parent.return; + } recursivelyTraverseReappearLayoutEffects( finishedRoot, finishedWork, @@ -15431,7 +16475,16 @@ safelyAttachRef(finishedWork, finishedWork.return); break; case 30: + recursivelyTraverseReappearLayoutEffects( + finishedRoot, + finishedWork, + includeWorkInProgressEffects + ); + flags & 18874368 && trackNamedViewTransition(finishedWork); + safelyAttachRef(finishedWork, finishedWork.return); break; + case 7: + safelyAttachRef(finishedWork, finishedWork.return); default: recursivelyTraverseReappearLayoutEffects( finishedRoot, @@ -15500,23 +16553,28 @@ committedTransitions, endTime ) { + var isViewTransitionEligible = + (committedLanes & 335544064) === committedLanes; if ( - parentFiber.subtreeFlags & 10256 || + parentFiber.subtreeFlags & (isViewTransitionEligible ? 10262 : 10256) || (0 !== parentFiber.actualDuration && (null === parentFiber.alternate || parentFiber.alternate.child !== parentFiber.child)) ) - for (parentFiber = parentFiber.child; null !== parentFiber; ) { - var nextSibling = parentFiber.sibling; - commitPassiveMountOnFiber( - root, - parentFiber, - committedLanes, - committedTransitions, - null !== nextSibling ? nextSibling.actualStartTime : endTime - ); - parentFiber = nextSibling; - } + for (parentFiber = parentFiber.child; null !== parentFiber; ) + (isViewTransitionEligible = parentFiber.sibling), + commitPassiveMountOnFiber( + root, + parentFiber, + committedLanes, + committedTransitions, + null !== isViewTransitionEligible + ? isViewTransitionEligible.actualStartTime + : endTime + ), + (parentFiber = isViewTransitionEligible); + else + isViewTransitionEligible && restoreNestedViewTransitions(parentFiber); } function commitPassiveMountOnFiber( finishedRoot, @@ -15530,7 +16588,14 @@ prevEffectErrors = pushComponentEffectErrors(), prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(), prevDeepEquality = alreadyWarnedForDeepEquality, - flags = finishedWork.flags; + isViewTransitionEligible = + (committedLanes & 335544064) === committedLanes; + isViewTransitionEligible && + null === finishedWork.alternate && + null !== finishedWork.return && + null !== finishedWork.return.alternate && + restoreEnterOrExitViewTransitions(finishedWork); + var flags = finishedWork.flags; switch (finishedWork.tag) { case 0: case 11: @@ -15596,6 +16661,21 @@ endTime ); inHydratedSubtree = wasInHydratedSubtree; + isViewTransitionEligible && + rootViewTransitionNameCanceled && + ((committedLanes = finishedRoot.containerInfo), + (committedLanes = + 9 === committedLanes.nodeType + ? committedLanes.body + : "HTML" === committedLanes.nodeName + ? committedLanes.ownerDocument.body + : committedLanes), + "root" === committedLanes.style.viewTransitionName && + (committedLanes.style.viewTransitionName = ""), + (committedLanes = committedLanes.ownerDocument.documentElement), + null !== committedLanes && + "none" === committedLanes.style.viewTransitionName && + (committedLanes.style.viewTransitionName = "")); flags & 2048 && ((committedLanes = null), null !== finishedWork.alternate && @@ -15648,12 +16728,13 @@ null !== finishedWork.alternate ? finishedWork.alternate.memoizedState : null; - wasInHydratedSubtree = finishedWork.memoizedState; - null !== prevProfilerEffectDuration && null === wasInHydratedSubtree - ? ((wasInHydratedSubtree = finishedWork.deletions), - null !== wasInHydratedSubtree && - 0 < wasInHydratedSubtree.length && - 18 === wasInHydratedSubtree[0].tag + isViewTransitionEligible = finishedWork.memoizedState; + null !== prevProfilerEffectDuration && + null === isViewTransitionEligible + ? ((isViewTransitionEligible = finishedWork.deletions), + null !== isViewTransitionEligible && + 0 < isViewTransitionEligible.length && + 18 === isViewTransitionEligible[0].tag ? ((inHydratedSubtree = !1), (prevProfilerEffectDuration = prevProfilerEffectDuration.hydrationErrors), @@ -15681,16 +16762,16 @@ null !== finishedWork.alternate ? finishedWork.alternate.memoizedState : null; - wasInHydratedSubtree = finishedWork.memoizedState; + isViewTransitionEligible = finishedWork.memoizedState; null === prevProfilerEffectDuration || null === prevProfilerEffectDuration.dehydrated || - (null !== wasInHydratedSubtree && - null !== wasInHydratedSubtree.dehydrated) + (null !== isViewTransitionEligible && + null !== isViewTransitionEligible.dehydrated) ? (inHydratedSubtree = !1) - : ((wasInHydratedSubtree = finishedWork.deletions), - null !== wasInHydratedSubtree && - 0 < wasInHydratedSubtree.length && - 18 === wasInHydratedSubtree[0].tag + : ((isViewTransitionEligible = finishedWork.deletions), + null !== isViewTransitionEligible && + 0 < isViewTransitionEligible.length && + 18 === isViewTransitionEligible[0].tag ? ((inHydratedSubtree = !1), (prevProfilerEffectDuration = prevProfilerEffectDuration.hydrationErrors), @@ -15717,58 +16798,71 @@ wasInHydratedSubtree = finishedWork.stateNode; prevProfilerEffectDuration = finishedWork.alternate; null !== finishedWork.memoizedState - ? wasInHydratedSubtree._visibility & + ? (isViewTransitionEligible && + null !== prevProfilerEffectDuration && + null === prevProfilerEffectDuration.memoizedState && + restoreEnterOrExitViewTransitions(prevProfilerEffectDuration), + wasInHydratedSubtree._visibility & OffscreenPassiveEffectsConnected - ? recursivelyTraversePassiveMountEffects( - finishedRoot, - finishedWork, - committedLanes, - committedTransitions, - endTime - ) - : recursivelyTraverseAtomicPassiveEffects( - finishedRoot, - finishedWork, - committedLanes, - committedTransitions, - endTime - ) - : wasInHydratedSubtree._visibility & - OffscreenPassiveEffectsConnected - ? recursivelyTraversePassiveMountEffects( - finishedRoot, - finishedWork, - committedLanes, - committedTransitions, - endTime - ) - : ((wasInHydratedSubtree._visibility |= - OffscreenPassiveEffectsConnected), - recursivelyTraverseReconnectPassiveEffects( - finishedRoot, - finishedWork, - committedLanes, - committedTransitions, - 0 !== (finishedWork.subtreeFlags & 10256) || - (0 !== finishedWork.actualDuration && - (null === finishedWork.alternate || - finishedWork.alternate.child !== finishedWork.child)), - endTime - ), - (finishedWork.mode & ProfileMode) === NoMode || - inHydratedSubtree || - ((finishedRoot = finishedWork.actualStartTime), - 0 <= finishedRoot && - 0.05 < endTime - finishedRoot && - logComponentReappeared(finishedWork, finishedRoot, endTime), - 0 <= componentEffectStartTime && - 0 <= componentEffectEndTime && - 0.05 < componentEffectEndTime - componentEffectStartTime && - logComponentReappeared( - finishedWork, - componentEffectStartTime, - componentEffectEndTime - ))); + ? recursivelyTraversePassiveMountEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions, + endTime + ) + : recursivelyTraverseAtomicPassiveEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions, + endTime + )) + : (isViewTransitionEligible && + null !== prevProfilerEffectDuration && + null !== prevProfilerEffectDuration.memoizedState && + restoreEnterOrExitViewTransitions(finishedWork), + wasInHydratedSubtree._visibility & + OffscreenPassiveEffectsConnected + ? recursivelyTraversePassiveMountEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions, + endTime + ) + : ((wasInHydratedSubtree._visibility |= + OffscreenPassiveEffectsConnected), + recursivelyTraverseReconnectPassiveEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions, + 0 !== (finishedWork.subtreeFlags & 10256) || + (0 !== finishedWork.actualDuration && + (null === finishedWork.alternate || + finishedWork.alternate.child !== finishedWork.child)), + endTime + ), + (finishedWork.mode & ProfileMode) === NoMode || + inHydratedSubtree || + ((finishedRoot = finishedWork.actualStartTime), + 0 <= finishedRoot && + 0.05 < endTime - finishedRoot && + logComponentReappeared( + finishedWork, + finishedRoot, + endTime + ), + 0 <= componentEffectStartTime && + 0 <= componentEffectEndTime && + 0.05 < + componentEffectEndTime - componentEffectStartTime && + logComponentReappeared( + finishedWork, + componentEffectStartTime, + componentEffectEndTime + )))); flags & 2048 && commitOffscreenPassiveMountEffects( prevProfilerEffectDuration, @@ -15786,6 +16880,20 @@ flags & 2048 && commitCachePassiveMountEffect(finishedWork.alternate, finishedWork); break; + case 30: + isViewTransitionEligible && + ((flags = finishedWork.alternate), + null !== flags && + (restoreViewTransitionOnHostInstances(flags.child, !0), + restoreViewTransitionOnHostInstances(finishedWork.child, !0))); + recursivelyTraversePassiveMountEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions, + endTime + ); + break; default: recursivelyTraversePassiveMountEffects( finishedRoot, @@ -16077,13 +17185,16 @@ suspendedState ); fiber.flags & suspenseyCommitFlag && - null !== fiber.memoizedState && - suspendResource( - suspendedState, - currentHoistableRoot, - fiber.memoizedState, - fiber.memoizedProps - ); + (null !== fiber.memoizedState + ? suspendResource( + suspendedState, + currentHoistableRoot, + fiber.memoizedState, + fiber.memoizedProps + ) + : ((fiber = fiber.stateNode), + (committedLanes & 335544128) === committedLanes && + suspendInstance(suspendedState, fiber))); break; case 5: recursivelyAccumulateSuspenseyCommit( @@ -16091,6 +17202,10 @@ committedLanes, suspendedState ); + fiber.flags & suspenseyCommitFlag && + ((fiber = fiber.stateNode), + (committedLanes & 335544128) === committedLanes && + suspendInstance(suspendedState, fiber)); break; case 3: case 4: @@ -16124,6 +17239,24 @@ suspendedState )); break; + case 30: + if ( + 0 !== (fiber.flags & suspenseyCommitFlag) && + ((previousHoistableRoot = fiber.memoizedProps.name), + null != previousHoistableRoot && "auto" !== previousHoistableRoot) + ) { + var state = fiber.stateNode; + state.paired = null; + null === appearingViewTransitions && + (appearingViewTransitions = new Map()); + appearingViewTransitions.set(previousHoistableRoot, state); + } + recursivelyAccumulateSuspenseyCommit( + fiber, + committedLanes, + suspendedState + ); + break; default: recursivelyAccumulateSuspenseyCommit( fiber, @@ -16429,6 +17562,20 @@ null !== lane && (lane.flags |= 32); return workInProgressDeferredLane; } + function scheduleViewTransitionEvent(fiber, callback) { + if (null != callback) { + var state = fiber.stateNode, + instance = state.ref; + null === instance && + (instance = state.ref = + createViewTransitionInstance( + getViewTransitionName(fiber.memoizedProps, state) + )); + null === pendingViewTransitionEvents && + (pendingViewTransitionEvents = []); + pendingViewTransitionEvents.push(callback.bind(null, instance)); + } + } function scheduleUpdateOnFiber(root, fiber, lane) { isRunningInsertionEffect && console.error("useInsertionEffect must not schedule updates."); @@ -16832,8 +17979,13 @@ ) { root.timeoutHandle = noTimeout; var subtreeFlags = finishedWork.subtreeFlags, + isViewTransitionEligible = (lanes & 335544064) === lanes, suspendedState = null; - if (subtreeFlags & 8192 || 16785408 === (subtreeFlags & 16785408)) + if ( + isViewTransitionEligible || + subtreeFlags & 8192 || + 16785408 === (subtreeFlags & 16785408) + ) if ( ((suspendedState = { stylesheets: null, @@ -16845,7 +17997,24 @@ waitingForViewTransition: !1, unsuspend: noop$1 }), + (appearingViewTransitions = null), accumulateSuspenseyCommitOnFiber(finishedWork, lanes, suspendedState), + isViewTransitionEligible && + ((subtreeFlags = suspendedState), + (isViewTransitionEligible = root.containerInfo), + (isViewTransitionEligible = ( + 9 === isViewTransitionEligible.nodeType + ? isViewTransitionEligible + : isViewTransitionEligible.ownerDocument + ).__reactViewTransition), + null != isViewTransitionEligible && + (subtreeFlags.count++, + (subtreeFlags.waitingForViewTransition = !0), + (subtreeFlags = onUnsuspend.bind(subtreeFlags)), + isViewTransitionEligible.finished.then( + subtreeFlags, + subtreeFlags + ))), (subtreeFlags = (lanes & 62914560) === lanes ? globalMostRecentFallbackTime - now$1() @@ -17982,10 +19151,15 @@ pendingEffectsRenderEndTime = completedRenderEndTime; pendingSuspendedCommitReason = suspendedCommitReason; pendingDelayedCommitReason = IMMEDIATE_COMMIT; - pendingSuspendedViewTransitionReason = null; + pendingViewTransitionEvents = pendingSuspendedViewTransitionReason = + null; + (lanes & 335544064) === lanes + ? ((pendingTransitionTypes = claimQueuedTransitionTypes(root)), + (recoverableErrors = 10262)) + : ((pendingTransitionTypes = null), (recoverableErrors = 10256)); 0 !== finishedWork.actualDuration || - 0 !== (finishedWork.subtreeFlags & 10256) || - 0 !== (finishedWork.flags & 10256) + 0 !== (finishedWork.subtreeFlags & recoverableErrors) || + 0 !== (finishedWork.flags & recoverableErrors) ? ((root.callbackNode = null), (root.callbackPriority = 0), scheduleCallback$1(NormalPriority$1, function () { @@ -18005,28 +19179,98 @@ suspendedCommitReason, workInProgressUpdateTask ); - recoverableErrors = 0 !== (finishedWork.flags & 13878); - if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) { - recoverableErrors = ReactSharedInternals.T; + shouldStartViewTransition = !1; + suspendedCommitReason = 0 !== (finishedWork.flags & 13878); + if ( + 0 !== (finishedWork.subtreeFlags & 13878) || + suspendedCommitReason + ) { + suspendedCommitReason = ReactSharedInternals.T; ReactSharedInternals.T = null; - transitions = ReactDOMSharedInternals.p; + completedRenderEndTime = ReactDOMSharedInternals.p; ReactDOMSharedInternals.p = DiscreteEventPriority; - spawnedLane = executionContext; + recoverableErrors = executionContext; executionContext |= CommitContext; try { commitBeforeMutationEffects(root, finishedWork, lanes); } finally { - (executionContext = spawnedLane), - (ReactDOMSharedInternals.p = transitions), - (ReactSharedInternals.T = recoverableErrors); + (executionContext = recoverableErrors), + (ReactDOMSharedInternals.p = completedRenderEndTime), + (ReactSharedInternals.T = suspendedCommitReason); } } + finishedWork = shouldStartViewTransition; pendingEffectsStatus = PENDING_MUTATION_PHASE; - flushMutationEffects(); - flushLayoutEffects(); - flushSpawnedWork(); + finishedWork + ? ((animatingLanes |= lanes), + (animatingTask = null), + (pendingViewTransition = startViewTransition( + suspendedState, + root.containerInfo, + pendingTransitionTypes, + flushMutationEffects, + flushLayoutEffects, + flushAfterMutationEffects, + flushSpawnedWork, + flushPassiveEffects, + reportViewTransitionError, + suspendedViewTransition, + finishedViewTransition.bind(null, lanes) + ))) + : (flushMutationEffects(), flushLayoutEffects(), flushSpawnedWork()); + } + } + function reportViewTransitionError(error) { + if (pendingEffectsStatus !== NO_PENDING_EFFECTS) { + var onRecoverableError = pendingEffectsRoot.onRecoverableError; + onRecoverableError(error, makeErrorInfo(null)); } } + function suspendedViewTransition(reason) { + commitEndTime = now(); + logCommitPhase( + null === pendingSuspendedCommitReason + ? pendingEffectsRenderEndTime + : commitStartTime, + commitEndTime, + commitErrors, + pendingDelayedCommitReason === ABORTED_VIEW_TRANSITION_COMMIT, + workInProgressUpdateTask + ); + pendingSuspendedCommitReason = pendingSuspendedViewTransitionReason = + reason; + } + function finishedViewTransition(lanes) { + if (0 !== (animatingLanes & lanes)) { + var task = animatingTask; + animatingLanes &= ~lanes; + animatingTask = null; + 0 !== (lanes & 4194048) && + 0 === (workInProgressRootRenderLanes & 4194048) && + 0 === (pendingEffectsLanes & 4194048) && + (setCurrentTrackFromLanes(256), + logAnimatingPhase(transitionClampTime, now$1(), task)); + 0 !== (lanes & 62914560) && + 0 === (workInProgressRootRenderLanes & 62914560) && + 0 === (pendingEffectsLanes & 62914560) && + (setCurrentTrackFromLanes(4194304), + logAnimatingPhase(retryClampTime, now$1(), task)); + 0 !== (lanes & 2080374784) && + 0 === (workInProgressRootRenderLanes & 2080374784) && + 0 === (pendingEffectsLanes & 2080374784) && + (setCurrentTrackFromLanes(268435456), + logAnimatingPhase(idleClampTime, now$1(), task)); + } + } + function flushAfterMutationEffects() { + pendingEffectsStatus === PENDING_AFTER_MUTATION_PHASE && + ((pendingEffectsStatus = NO_PENDING_EFFECTS), + commitAfterMutationEffectsOnFiber( + pendingFinishedWork, + pendingEffectsRoot + ), + (pendingEffectsStatus = PENDING_SPAWNED_WORK)); + } function flushMutationEffects() { if (pendingEffectsStatus === PENDING_MUTATION_PHASE) { pendingEffectsStatus = NO_PENDING_EFFECTS; @@ -18047,8 +19291,9 @@ try { inProgressLanes = lanes; inProgressRoot = root; + inUpdateViewTransition = rootViewTransitionAffected = !1; resetComponentEffectTimers(); - commitMutationEffectsOnFiber(finishedWork, root); + commitMutationEffectsOnFiber(finishedWork, root, lanes); inProgressRoot = inProgressLanes = null; lanes = selectionInformation; var curFocusedElem = getActiveElementDeep(root.containerInfo), @@ -18222,41 +19467,13 @@ suspendedViewTransitionReason = pendingEffectsRenderEndTime; startTime = pendingSuspendedCommitReason; commitEndTime = now(); - suspendedViewTransitionReason = - null === startTime ? suspendedViewTransitionReason : commitStartTime; - startTime = commitEndTime; - endTime = pendingDelayedCommitReason === ABORTED_VIEW_TRANSITION_COMMIT; - rootHasLayoutEffect = workInProgressUpdateTask; - null !== commitErrors - ? logCommitErrored( - suspendedViewTransitionReason, - startTime, - commitErrors, - !1, - rootHasLayoutEffect - ) - : !supportsUserTiming || - startTime <= suspendedViewTransitionReason || - (rootHasLayoutEffect - ? rootHasLayoutEffect.run( - console.timeStamp.bind( - console, - endTime ? "Commit Interrupted View Transition" : "Commit", - suspendedViewTransitionReason, - startTime, - currentTrack, - LANES_TRACK_GROUP, - endTime ? "error" : "secondary-dark" - ) - ) - : console.timeStamp( - endTime ? "Commit Interrupted View Transition" : "Commit", - suspendedViewTransitionReason, - startTime, - currentTrack, - LANES_TRACK_GROUP, - endTime ? "error" : "secondary-dark" - )); + logCommitPhase( + null === startTime ? suspendedViewTransitionReason : commitStartTime, + commitEndTime, + commitErrors, + pendingDelayedCommitReason === ABORTED_VIEW_TRANSITION_COMMIT, + workInProgressUpdateTask + ); pendingEffectsStatus = PENDING_AFTER_MUTATION_PHASE; } } @@ -18301,16 +19518,18 @@ (pendingDelayedCommitReason = ANIMATION_STARTED_COMMIT); } pendingEffectsStatus = NO_PENDING_EFFECTS; + pendingViewTransition = null; requestPaint(); startViewTransitionStartTime = pendingEffectsRoot; var finishedWork = pendingFinishedWork; endTime = pendingEffectsLanes; - abortedViewTransition = pendingRecoverableErrors; - var rootDidHavePassiveEffects = + var recoverableErrors = pendingRecoverableErrors; + abortedViewTransition = + (endTime & 335544064) === endTime ? 10262 : 10256; + (abortedViewTransition = 0 !== finishedWork.actualDuration || - 0 !== (finishedWork.subtreeFlags & 10256) || - 0 !== (finishedWork.flags & 10256); - rootDidHavePassiveEffects + 0 !== (finishedWork.subtreeFlags & abortedViewTransition) || + 0 !== (finishedWork.flags & abortedViewTransition)) ? (pendingEffectsStatus = PENDING_PASSIVE_PHASE) : ((pendingEffectsStatus = NO_PENDING_EFFECTS), (pendingFinishedWork = pendingEffectsRoot = null), @@ -18322,7 +19541,7 @@ (rootWithPassiveNestedUpdates = null)); var remainingLanes = startViewTransitionStartTime.pendingLanes; 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null); - rootDidHavePassiveEffects || + abortedViewTransition || commitDoubleInvokeEffectsInDEV(startViewTransitionStartTime); remainingLanes = lanesToEventPriority(endTime); finishedWork = finishedWork.stateNode; @@ -18365,7 +19584,7 @@ isDevToolsPresent && startViewTransitionStartTime.memoizedUpdaters.clear(); onCommitRoot(); - if (null !== abortedViewTransition) { + if (null !== recoverableErrors) { didError = ReactSharedInternals.T; schedulerPriority = ReactDOMSharedInternals.p; ReactDOMSharedInternals.p = DiscreteEventPriority; @@ -18375,10 +19594,10 @@ startViewTransitionStartTime.onRecoverableError; for ( finishedWork = 0; - finishedWork < abortedViewTransition.length; + finishedWork < recoverableErrors.length; finishedWork++ ) { - var recoverableError = abortedViewTransition[finishedWork], + var recoverableError = recoverableErrors[finishedWork], errorInfo = makeErrorInfo(recoverableError.stack); runWithFiberInDEV( recoverableError.source, @@ -18392,6 +19611,18 @@ (ReactDOMSharedInternals.p = schedulerPriority); } } + onRecoverableError = pendingViewTransitionEvents; + recoverableError = pendingTransitionTypes; + pendingTransitionTypes = null; + if (null !== onRecoverableError) + for ( + pendingViewTransitionEvents = null, + null === recoverableError && (recoverableError = []), + errorInfo = 0; + errorInfo < onRecoverableError.length; + errorInfo++ + ) + (0, onRecoverableError[errorInfo])(recoverableError); 0 !== (pendingEffectsLanes & 3) && flushPendingEffects(); ensureRootIsScheduled(startViewTransitionStartTime); remainingLanes = startViewTransitionStartTime.pendingLanes; @@ -18402,7 +19633,7 @@ : ((nestedUpdateCount = 0), (rootWithNestedUpdates = startViewTransitionStartTime))) : (nestedUpdateCount = 0); - rootDidHavePassiveEffects || finalizeRender(endTime, commitEndTime); + abortedViewTransition || finalizeRender(endTime, commitEndTime); flushSyncWorkAcrossRoots_impl(0, !1); } } @@ -18424,6 +19655,15 @@ ((root.pooledCache = null), releaseCache(remainingLanes))); } function flushPendingEffects() { + null !== pendingViewTransition && + (pendingViewTransition.skipTransition(), + didWarnAboutInterruptedViewTransitions || + ((didWarnAboutInterruptedViewTransitions = !0), + console.warn( + "A flushSync update cancelled a View Transition because it was called while the View Transition was still preparing. To preserve the synchronous semantics, React had to skip the View Transition. If you can, try to avoid flushSync() in a scenario that's likely to interfere." + )), + (pendingViewTransition = null), + (pendingDelayedCommitReason = ABORTED_VIEW_TRANSITION_COMMIT)); flushMutationEffects(); flushLayoutEffects(); flushSpawnedWork(); @@ -19528,12 +20768,12 @@ } if (0 === (eventSystemFlags & 7)) { a: { - reactName = - "mouseover" === domEventName || "pointerover" === domEventName; SyntheticEventCtor = + "mouseover" === domEventName || "pointerover" === domEventName; + reactName = "mouseout" === domEventName || "pointerout" === domEventName; if ( - reactName && + SyntheticEventCtor && nativeEvent !== currentReplayingEvent && (reactEventType = nativeEvent.relatedTarget || nativeEvent.fromElement) && @@ -19541,33 +20781,34 @@ reactEventType[internalContainerInstanceKey]) ) break a; - if (SyntheticEventCtor || reactName) { - reactName = + if (reactName || SyntheticEventCtor) { + reactEventType = nativeEventTarget.window === nativeEventTarget ? nativeEventTarget - : (reactName = nativeEventTarget.ownerDocument) - ? reactName.defaultView || reactName.parentWindow + : (SyntheticEventCtor = nativeEventTarget.ownerDocument) + ? SyntheticEventCtor.defaultView || + SyntheticEventCtor.parentWindow : window; - if (SyntheticEventCtor) { + if (reactName) { if ( - ((reactEventType = + ((SyntheticEventCtor = nativeEvent.relatedTarget || nativeEvent.toElement), - (SyntheticEventCtor = targetInst), - (reactEventType = reactEventType - ? getClosestInstanceFromNode(reactEventType) + (reactName = targetInst), + (SyntheticEventCtor = SyntheticEventCtor + ? getClosestInstanceFromNode(SyntheticEventCtor) : null), - null !== reactEventType && + null !== SyntheticEventCtor && ((accumulateTargetOnly = - getNearestMountedFiber(reactEventType)), - (inCapturePhase = reactEventType.tag), - reactEventType !== accumulateTargetOnly || + getNearestMountedFiber(SyntheticEventCtor)), + (inCapturePhase = SyntheticEventCtor.tag), + SyntheticEventCtor !== accumulateTargetOnly || (5 !== inCapturePhase && 27 !== inCapturePhase && 6 !== inCapturePhase))) ) - reactEventType = null; - } else (SyntheticEventCtor = null), (reactEventType = targetInst); - if (SyntheticEventCtor !== reactEventType) { + SyntheticEventCtor = null; + } else (reactName = null), (SyntheticEventCtor = targetInst); + if (reactName !== SyntheticEventCtor) { inCapturePhase = SyntheticMouseEvent; _instance2 = "onMouseLeave"; reactEventName = "onMouseEnter"; @@ -19581,28 +20822,28 @@ (reactEventName = "onPointerEnter"), (instance = "pointer"); accumulateTargetOnly = + null == reactName + ? reactEventType + : getNodeFromInstance(reactName); + lastHostComponent = null == SyntheticEventCtor - ? reactName + ? reactEventType : getNodeFromInstance(SyntheticEventCtor); - lastHostComponent = - null == reactEventType - ? reactName - : getNodeFromInstance(reactEventType); - reactName = new inCapturePhase( + reactEventType = new inCapturePhase( _instance2, instance + "leave", - SyntheticEventCtor, + reactName, nativeEvent, nativeEventTarget ); - reactName.target = accumulateTargetOnly; - reactName.relatedTarget = lastHostComponent; + reactEventType.target = accumulateTargetOnly; + reactEventType.relatedTarget = lastHostComponent; _instance2 = null; getClosestInstanceFromNode(nativeEventTarget) === targetInst && ((inCapturePhase = new inCapturePhase( reactEventName, instance + "enter", - reactEventType, + SyntheticEventCtor, nativeEvent, nativeEventTarget )), @@ -19610,59 +20851,28 @@ (inCapturePhase.relatedTarget = accumulateTargetOnly), (_instance2 = inCapturePhase)); accumulateTargetOnly = _instance2; - if (SyntheticEventCtor && reactEventType) - b: { - inCapturePhase = getParent; - reactEventName = SyntheticEventCtor; - instance = reactEventType; - lastHostComponent = 0; - for ( - _instance2 = reactEventName; - _instance2; - _instance2 = inCapturePhase(_instance2) - ) - lastHostComponent++; - _instance2 = 0; - for ( - var tempB = instance; - tempB; - tempB = inCapturePhase(tempB) - ) - _instance2++; - for (; 0 < lastHostComponent - _instance2; ) - (reactEventName = inCapturePhase(reactEventName)), - lastHostComponent--; - for (; 0 < _instance2 - lastHostComponent; ) - (instance = inCapturePhase(instance)), _instance2--; - for (; lastHostComponent--; ) { - if ( - reactEventName === instance || - (null !== instance && - reactEventName === instance.alternate) - ) { - inCapturePhase = reactEventName; - break b; - } - reactEventName = inCapturePhase(reactEventName); - instance = inCapturePhase(instance); - } - inCapturePhase = null; - } - else inCapturePhase = null; - null !== SyntheticEventCtor && + inCapturePhase = + reactName && SyntheticEventCtor + ? getLowestCommonAncestor( + reactName, + SyntheticEventCtor, + getParent + ) + : null; + null !== reactName && accumulateEnterLeaveListenersForEvent( dispatchQueue, + reactEventType, reactName, - SyntheticEventCtor, inCapturePhase, !1 ); - null !== reactEventType && + null !== SyntheticEventCtor && null !== accumulateTargetOnly && accumulateEnterLeaveListenersForEvent( dispatchQueue, accumulateTargetOnly, - reactEventType, + SyntheticEventCtor, inCapturePhase, !0 ); @@ -20022,6 +21232,7 @@ else if ("number" === typeof value || "bigint" === typeof value) validateTextNesting("" + value, tag, !1), "body" !== tag && setTextContent(domElement, "" + value); + else return; break; case "className": setValueForKnownAttribute(domElement, "class", value); @@ -20038,7 +21249,7 @@ break; case "style": setValueForStyles(domElement, value, prevValue); - break; + return; case "data": if ("object" !== tag) { setValueForKnownAttribute(domElement, "data", value); @@ -20212,19 +21423,19 @@ ("function" !== typeof value && warnForInvalidEventListener(key, value), (domElement.onclick = noop$1)); - break; + return; case "onScroll": null != value && ("function" !== typeof value && warnForInvalidEventListener(key, value), listenToNonDelegatedEvent("scroll", domElement)); - break; + return; case "onScrollEnd": null != value && ("function" !== typeof value && warnForInvalidEventListener(key, value), listenToNonDelegatedEvent("scrollend", domElement)); - break; + return; case "dangerouslySetInnerHTML": if (null != value) { if ("object" !== typeof value || !("__html" in value)) @@ -20442,7 +21653,7 @@ break; case "innerText": case "textContent": - break; + return; case "popoverTarget": didWarnPopoverTargetObject || null == value || @@ -20453,16 +21664,22 @@ value )); default: - !(2 < key.length) || - ("o" !== key[0] && "O" !== key[0]) || - ("n" !== key[1] && "N" !== key[1]) - ? ((key = getAttributeAlias(key)), - setValueForAttribute(domElement, key, value)) - : registrationNameDependencies.hasOwnProperty(key) && + if ( + !(2 < key.length) || + ("o" !== key[0] && "O" !== key[0]) || + ("n" !== key[1] && "N" !== key[1]) + ) + (key = getAttributeAlias(key)), + setValueForAttribute(domElement, key, value); + else { + registrationNameDependencies.hasOwnProperty(key) && null != value && "function" !== typeof value && warnForInvalidEventListener(key, value); + return; + } } + viewTransitionMutationContext = !0; } function setPropOnCustomElement( domElement, @@ -20475,7 +21692,7 @@ switch (key) { case "style": setValueForStyles(domElement, value, prevValue); - break; + return; case "dangerouslySetInnerHTML": if (null != value) { if ("object" !== typeof value || !("__html" in value)) @@ -20493,37 +21710,37 @@ } break; case "children": - "string" === typeof value - ? setTextContent(domElement, value) - : ("number" === typeof value || "bigint" === typeof value) && - setTextContent(domElement, "" + value); + if ("string" === typeof value) setTextContent(domElement, value); + else if ("number" === typeof value || "bigint" === typeof value) + setTextContent(domElement, "" + value); + else return; break; case "onScroll": null != value && ("function" !== typeof value && warnForInvalidEventListener(key, value), listenToNonDelegatedEvent("scroll", domElement)); - break; + return; case "onScrollEnd": null != value && ("function" !== typeof value && warnForInvalidEventListener(key, value), listenToNonDelegatedEvent("scrollend", domElement)); - break; + return; case "onClick": null != value && ("function" !== typeof value && warnForInvalidEventListener(key, value), (domElement.onclick = noop$1)); - break; + return; case "suppressContentEditableWarning": case "suppressHydrationWarning": case "innerHTML": case "ref": - break; + return; case "innerText": case "textContent": - break; + return; default: if (registrationNameDependencies.hasOwnProperty(key)) null != value && @@ -20551,13 +21768,16 @@ domElement.addEventListener(tag, value, props); break a; } + viewTransitionMutationContext = !0; key in domElement ? (domElement[key] = value) : !0 === value ? domElement.setAttribute(key, "") : setValueForAttribute(domElement, key, value); } + return; } + viewTransitionMutationContext = !0; } function setInitialProperties(domElement, tag, props) { validatePropertiesInDevelopment(tag, props); @@ -20875,21 +22095,27 @@ ) switch (_propKey8) { case "type": + propKey !== lastProp && (viewTransitionMutationContext = !0); type = propKey; break; case "name": + propKey !== lastProp && (viewTransitionMutationContext = !0); name = propKey; break; case "checked": + propKey !== lastProp && (viewTransitionMutationContext = !0); checked = propKey; break; case "defaultChecked": + propKey !== lastProp && (viewTransitionMutationContext = !0); defaultChecked = propKey; break; case "value": + propKey !== lastProp && (viewTransitionMutationContext = !0); value = propKey; break; case "defaultValue": + propKey !== lastProp && (viewTransitionMutationContext = !0); defaultValue = propKey; break; case "children": @@ -20977,13 +22203,19 @@ ) switch (name) { case "value": + type !== lastDefaultValue && + (viewTransitionMutationContext = !0); _propKey8 = type; break; case "defaultValue": + type !== lastDefaultValue && + (viewTransitionMutationContext = !0); defaultValue = type; break; case "multiple": - value = type; + type !== lastDefaultValue && + (viewTransitionMutationContext = !0), + (value = type); default: type !== lastDefaultValue && setProp( @@ -21030,9 +22262,11 @@ ) switch (value) { case "value": + name !== type && (viewTransitionMutationContext = !0); _propKey8 = name; break; case "defaultValue": + name !== type && (viewTransitionMutationContext = !0); propKey = name; break; case "children": @@ -21081,6 +22315,7 @@ ) switch (lastDefaultValue) { case "selected": + _propKey8 !== propKey && (viewTransitionMutationContext = !0); domElement.selected = _propKey8 && "function" !== typeof _propKey8 && @@ -21446,6 +22681,12 @@ break; case "selected": break; + case "vt-name": + case "vt-update": + case "vt-enter": + case "vt-exit": + case "vt-share": + break; default: extraAttributes.add(attributes[i].name); } @@ -22276,119 +23517,732 @@ function removeChild(parentInstance, child) { parentInstance.removeChild(child); } - function removeChildFromContainer(container, child) { - (9 === container.nodeType - ? container.body - : "HTML" === container.nodeName - ? container.ownerDocument.body - : container - ).removeChild(child); + function removeChildFromContainer(container, child) { + (9 === container.nodeType + ? container.body + : "HTML" === container.nodeName + ? container.ownerDocument.body + : container + ).removeChild(child); + } + function clearHydrationBoundary(parentInstance, hydrationInstance) { + var node = hydrationInstance, + depth = 0; + do { + var nextNode = node.nextSibling; + parentInstance.removeChild(node); + if (nextNode && 8 === nextNode.nodeType) + if ( + ((node = nextNode.data), + node === SUSPENSE_END_DATA || node === ACTIVITY_END_DATA) + ) { + if (0 === depth) { + parentInstance.removeChild(nextNode); + retryIfBlockedOn(hydrationInstance); + return; + } + depth--; + } 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 + ) + depth++; + else if (node === PREAMBLE_CONTRIBUTION_HTML) + releaseSingletonInstance( + parentInstance.ownerDocument.documentElement + ); + else if (node === PREAMBLE_CONTRIBUTION_HEAD) { + node = parentInstance.ownerDocument.head; + releaseSingletonInstance(node); + for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) { + var nextNode$jscomp$0 = node$jscomp$0.nextSibling, + nodeName = node$jscomp$0.nodeName; + node$jscomp$0[internalHoistableMarker] || + "SCRIPT" === nodeName || + "STYLE" === nodeName || + ("LINK" === nodeName && + "stylesheet" === node$jscomp$0.rel.toLowerCase()) || + node.removeChild(node$jscomp$0); + node$jscomp$0 = nextNode$jscomp$0; + } + } else + node === PREAMBLE_CONTRIBUTION_BODY && + releaseSingletonInstance(parentInstance.ownerDocument.body); + node = nextNode; + } while (node); + retryIfBlockedOn(hydrationInstance); + } + function hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) { + var node = suspenseInstance; + suspenseInstance = 0; + do { + var nextNode = node.nextSibling; + 1 === node.nodeType + ? isHidden + ? ((node._stashedDisplay = node.style.display), + (node.style.display = "none")) + : ((node.style.display = node._stashedDisplay || ""), + "" === node.getAttribute("style") && + node.removeAttribute("style")) + : 3 === node.nodeType && + (isHidden + ? ((node._stashedText = node.nodeValue), (node.nodeValue = "")) + : (node.nodeValue = node._stashedText || "")); + if (nextNode && 8 === nextNode.nodeType) + if (((node = nextNode.data), node === SUSPENSE_END_DATA)) + if (0 === suspenseInstance) break; + else suspenseInstance--; + else + (node !== SUSPENSE_START_DATA && + node !== SUSPENSE_PENDING_START_DATA && + node !== SUSPENSE_QUEUED_START_DATA && + node !== SUSPENSE_FALLBACK_START_DATA) || + suspenseInstance++; + node = nextNode; + } while (node); + } + function hideDehydratedBoundary(suspenseInstance) { + hideOrUnhideDehydratedBoundary(suspenseInstance, !0); + } + function hideInstance(instance) { + instance = instance.style; + "function" === typeof instance.setProperty + ? instance.setProperty("display", "none", "important") + : (instance.display = "none"); + } + function hideTextInstance(textInstance) { + textInstance.nodeValue = ""; + } + function unhideDehydratedBoundary(dehydratedInstance) { + hideOrUnhideDehydratedBoundary(dehydratedInstance, !1); + } + function unhideInstance(instance, props) { + props = props[STYLE]; + props = + void 0 !== props && null !== props && props.hasOwnProperty("display") + ? props.display + : null; + instance.style.display = + null == props || "boolean" === typeof props ? "" : ("" + props).trim(); + } + function unhideTextInstance(textInstance, text) { + textInstance.nodeValue = text; + } + function warnForBlockInsideInline(instance) { + for (var nextNode = instance.firstChild; null != nextNode; ) { + if ( + 1 === nextNode.nodeType && + "block" === getComputedStyle(nextNode).display + ) { + var fiber = + getInstanceFromNode(nextNode) || getInstanceFromNode(instance); + runWithFiberInDEV( + fiber, + function (parentTag, childTag) { + console.error( + "You're about to start a around a display: inline element <%s>, which itself has a display: block element <%s> inside it. This might trigger a bug in Safari which causes the View Transition to be skipped with a duplicate name error.\nhttps://bugs.webkit.org/show_bug.cgi?id=290923", + parentTag.toLocaleLowerCase(), + childTag.toLocaleLowerCase() + ); + }, + instance.tagName, + nextNode.tagName + ); + break; + } + if (null != nextNode.firstChild) nextNode = nextNode.firstChild; + else { + if (nextNode === instance) break; + for ( + ; + null == nextNode.nextSibling && + null != nextNode.parentNode && + nextNode.parentNode !== instance; + + ) + nextNode = nextNode.parentNode; + nextNode = nextNode.nextSibling; + } + } + } + function applyViewTransitionName(instance, name, className) { + instance.style.viewTransitionName = name; + null != className && (instance.style.viewTransitionClass = className); + name = getComputedStyle(instance); + if ("inline" === name.display) { + className = instance.getClientRects(); + if (1 === className.length) var JSCompiler_inline_result = 1; + else + for ( + var i = (JSCompiler_inline_result = 0); + i < className.length; + i++ + ) { + var rect = className[i]; + 0 < rect.width && 0 < rect.height && JSCompiler_inline_result++; + } + 1 === JSCompiler_inline_result + ? ((instance = instance.style), + (instance.display = + 1 === className.length ? "inline-block" : "block"), + (instance.marginTop = "-" + name.paddingTop), + (instance.marginBottom = "-" + name.paddingBottom)) + : warnForBlockInsideInline(instance); + } + } + function restoreViewTransitionName(instance, props) { + instance = instance.style; + props = props[STYLE]; + var viewTransitionName = + null != props + ? props.hasOwnProperty("viewTransitionName") + ? props.viewTransitionName + : props.hasOwnProperty("view-transition-name") + ? props["view-transition-name"] + : null + : null; + instance.viewTransitionName = + null == viewTransitionName || "boolean" === typeof viewTransitionName + ? "" + : ("" + viewTransitionName).trim(); + viewTransitionName = + null != props + ? props.hasOwnProperty("viewTransitionClass") + ? props.viewTransitionClass + : props.hasOwnProperty("view-transition-class") + ? props["view-transition-class"] + : null + : null; + instance.viewTransitionClass = + null == viewTransitionName || "boolean" === typeof viewTransitionName + ? "" + : ("" + viewTransitionName).trim(); + "inline-block" === instance.display && + (null == props + ? (instance.display = instance.margin = "") + : ((viewTransitionName = props.display), + (instance.display = + null == viewTransitionName || + "boolean" === typeof viewTransitionName + ? "" + : viewTransitionName), + (viewTransitionName = props.margin), + null != viewTransitionName + ? (instance.margin = viewTransitionName) + : ((viewTransitionName = props.hasOwnProperty("marginTop") + ? props.marginTop + : props["margin-top"]), + (instance.marginTop = + null == viewTransitionName || + "boolean" === typeof viewTransitionName + ? "" + : viewTransitionName), + (props = props.hasOwnProperty("marginBottom") + ? props.marginBottom + : props["margin-bottom"]), + (instance.marginBottom = + null == props || "boolean" === typeof props ? "" : props)))); + } + function createMeasurement(rect, computedStyle, element) { + element = element.ownerDocument.defaultView; + return { + rect: rect, + abs: + "absolute" === computedStyle.position || + "fixed" === computedStyle.position, + clip: + "none" !== computedStyle.clipPath || + "visible" !== computedStyle.overflow || + "none" !== computedStyle.filter || + "none" !== computedStyle.mask || + "none" !== computedStyle.mask || + "0px" !== computedStyle.borderRadius, + view: + 0 <= rect.bottom && + 0 <= rect.right && + rect.top <= element.innerHeight && + rect.left <= element.innerWidth + }; + } + function measureInstance(instance) { + var rect = instance.getBoundingClientRect(), + computedStyle = getComputedStyle(instance); + return createMeasurement(rect, computedStyle, instance); + } + function measureClonedInstance(instance) { + var measuredRect = instance.getBoundingClientRect(); + measuredRect = new DOMRect( + measuredRect.x + 2e4, + measuredRect.y + 2e4, + measuredRect.width, + measuredRect.height + ); + var computedStyle = getComputedStyle(instance); + return createMeasurement(measuredRect, computedStyle, instance); + } + function customizeViewTransitionError(error, ignoreAbort) { + if ("object" === typeof error && null !== error) + switch (error.name) { + case "TimeoutError": + return Error( + "A ViewTransition timed out because a Navigation stalled. This can happen if a Navigation is blocked on React itself. Such as if it's resolved inside useEffect. This can be solved by moving the resolution to useLayoutEffect.", + { cause: error } + ); + case "AbortError": + return ignoreAbort + ? null + : Error( + "A ViewTransition was aborted early. This might be because you have other View Transition libraries on the page and only one can run at a time. To avoid this, use only React's built-in to coordinate.", + { cause: error } + ); + case "InvalidStateError": + if ( + "View transition was skipped because document visibility state is hidden." === + error.message || + "Skipping view transition because document visibility state has become hidden." === + error.message || + "Skipping view transition because viewport size changed." === + error.message || + "Transition was aborted because of invalid state" === + error.message + ) + return null; + } + return error; + } + function forceLayout(ownerDocument) { + return ownerDocument.documentElement.clientHeight; + } + function waitForImageToLoad(resolve) { + this.addEventListener("load", resolve); + this.addEventListener("error", resolve); + } + function startViewTransition( + suspendedState, + rootContainer, + transitionTypes, + mutationCallback, + layoutCallback, + afterMutationCallback, + spawnedWorkCallback, + passiveCallback, + errorCallback, + blockedCallback, + finishedAnimation + ) { + var ownerDocument = + 9 === rootContainer.nodeType + ? rootContainer + : rootContainer.ownerDocument; + try { + var transition = ownerDocument.startViewTransition({ + update: function () { + var ownerWindow = ownerDocument.defaultView, + pendingNavigation = + ownerWindow.navigation && ownerWindow.navigation.transition, + previousFontLoadingStatus = ownerDocument.fonts.status; + mutationCallback(); + var blockingPromises = []; + "loaded" === previousFontLoadingStatus && + (forceLayout(ownerDocument), + "loading" === ownerDocument.fonts.status && + blockingPromises.push(ownerDocument.fonts.ready)); + previousFontLoadingStatus = blockingPromises.length; + if (null !== suspendedState) + for ( + var suspenseyImages = suspendedState.suspenseyImages, + imgBytes = 0, + i = 0; + i < suspenseyImages.length; + i++ + ) { + var suspenseyImage = suspenseyImages[i]; + if (!suspenseyImage.complete) { + var rect = suspenseyImage.getBoundingClientRect(); + if ( + 0 < rect.bottom && + 0 < rect.right && + rect.top < ownerWindow.innerHeight && + rect.left < ownerWindow.innerWidth + ) { + imgBytes += estimateImageBytes(suspenseyImage); + if (imgBytes > estimatedBytesWithinLimit) { + blockingPromises.length = previousFontLoadingStatus; + break; + } + suspenseyImage = new Promise( + waitForImageToLoad.bind(suspenseyImage) + ); + blockingPromises.push(suspenseyImage); + } + } + } + if (0 < blockingPromises.length) + return ( + blockedCallback( + 0 < previousFontLoadingStatus + ? blockingPromises.length > previousFontLoadingStatus + ? "Waiting on Fonts and Images" + : "Waiting on Fonts" + : "Waiting on Images" + ), + (ownerWindow = Promise.race([ + Promise.all(blockingPromises), + new Promise(function (resolve) { + return setTimeout( + resolve, + SUSPENSEY_FONT_AND_IMAGE_TIMEOUT + ); + }) + ]).then(layoutCallback, layoutCallback)), + (pendingNavigation + ? Promise.allSettled([ + pendingNavigation.finished, + ownerWindow + ]) + : ownerWindow + ).then(afterMutationCallback, afterMutationCallback) + ); + layoutCallback(); + if (pendingNavigation) + return pendingNavigation.finished.then( + afterMutationCallback, + afterMutationCallback + ); + afterMutationCallback(); + }, + types: transitionTypes + }); + ownerDocument.__reactViewTransition = transition; + transition.ready.then( + function () { + for ( + var animations = ownerDocument.documentElement.getAnimations({ + subtree: !0 + }), + i = 0; + i < animations.length; + i++ + ) { + var effect = animations[i].effect, + pseudoElement = effect.pseudoElement; + if ( + null != pseudoElement && + pseudoElement.startsWith("::view-transition") + ) { + pseudoElement = effect.getKeyframes(); + for ( + var width = void 0, + height = void 0, + unchangedDimensions = !0, + j = 0; + j < pseudoElement.length; + j++ + ) { + var keyframe = pseudoElement[j], + w = keyframe.width; + if (void 0 === width) width = w; + else if (width !== w) { + unchangedDimensions = !1; + break; + } + w = keyframe.height; + if (void 0 === height) height = w; + else if (height !== w) { + unchangedDimensions = !1; + break; + } + delete keyframe.width; + delete keyframe.height; + "none" === keyframe.transform && delete keyframe.transform; + } + unchangedDimensions && + void 0 !== width && + void 0 !== height && + (effect.setKeyframes(pseudoElement), + (unchangedDimensions = getComputedStyle( + effect.target, + effect.pseudoElement + )), + unchangedDimensions.width !== width || + unchangedDimensions.height !== height) && + ((unchangedDimensions = pseudoElement[0]), + (unchangedDimensions.width = width), + (unchangedDimensions.height = height), + (unchangedDimensions = + pseudoElement[pseudoElement.length - 1]), + (unchangedDimensions.width = width), + (unchangedDimensions.height = height), + effect.setKeyframes(pseudoElement)); + } + } + spawnedWorkCallback(); + }, + function (error) { + ownerDocument.__reactViewTransition === transition && + (ownerDocument.__reactViewTransition = null); + try { + (error = customizeViewTransitionError(error, !1)), + null !== error && errorCallback(error); + } finally { + mutationCallback(), + layoutCallback(), + spawnedWorkCallback(), + finishedAnimation(); + } + } + ); + transition.finished.finally(function () { + for ( + var scope = ownerDocument.documentElement, + animations = scope.getAnimations({ subtree: !0 }), + i = 0; + i < animations.length; + i++ + ) { + var anim = animations[i], + effect = anim.effect, + pseudo = effect.pseudoElement; + null != pseudo && + pseudo.startsWith("::view-transition") && + effect.target === scope && + anim.cancel(); + } + ownerDocument.__reactViewTransition === transition && + (ownerDocument.__reactViewTransition = null); + finishedAnimation(); + passiveCallback(); + }); + return transition; + } catch (x) { + return ( + mutationCallback(), + layoutCallback(), + finishedAnimation(), + spawnedWorkCallback(), + null + ); + } + } + function ViewTransitionPseudoElement(pseudo, name) { + this._scope = document.documentElement; + this._selector = "::view-transition-" + pseudo + "(" + name + ")"; + } + function createViewTransitionInstance(name) { + return { + name: name, + group: new ViewTransitionPseudoElement("group", name), + imagePair: new ViewTransitionPseudoElement("image-pair", name), + old: new ViewTransitionPseudoElement("old", name), + new: new ViewTransitionPseudoElement("new", name) + }; + } + function FragmentInstance(fragmentFiber) { + this._fragmentFiber = fragmentFiber; + this._observers = this._eventListeners = null; + } + function addEventListenerToChild( + child, + type, + listener, + optionsOrUseCapture + ) { + getInstanceFromHostFiber(child).addEventListener( + type, + listener, + optionsOrUseCapture + ); + return !1; + } + function removeEventListenerFromChild( + child, + type, + listener, + optionsOrUseCapture + ) { + getInstanceFromHostFiber(child).removeEventListener( + type, + listener, + optionsOrUseCapture + ); + return !1; + } + function normalizeListenerOptions(opts) { + return null == opts + ? "0" + : "boolean" === typeof opts + ? "c=" + (opts ? "1" : "0") + : "c=" + + (opts.capture ? "1" : "0") + + "&o=" + + (opts.once ? "1" : "0") + + "&p=" + + (opts.passive ? "1" : "0"); + } + function indexOfEventListener( + eventListeners, + type, + listener, + optionsOrUseCapture + ) { + for (var i = 0; i < eventListeners.length; i++) { + var item = eventListeners[i]; + if ( + item.type === type && + item.listener === listener && + normalizeListenerOptions(item.optionsOrUseCapture) === + normalizeListenerOptions(optionsOrUseCapture) + ) + return i; + } + return -1; } - function clearHydrationBoundary(parentInstance, hydrationInstance) { - var node = hydrationInstance, - depth = 0; - do { - var nextNode = node.nextSibling; - parentInstance.removeChild(node); - if (nextNode && 8 === nextNode.nodeType) - if ( - ((node = nextNode.data), - node === SUSPENSE_END_DATA || node === ACTIVITY_END_DATA) - ) { - if (0 === depth) { - parentInstance.removeChild(nextNode); - retryIfBlockedOn(hydrationInstance); - return; - } - depth--; - } 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 - ) - depth++; - else if (node === PREAMBLE_CONTRIBUTION_HTML) - releaseSingletonInstance( - parentInstance.ownerDocument.documentElement - ); - else if (node === PREAMBLE_CONTRIBUTION_HEAD) { - node = parentInstance.ownerDocument.head; - releaseSingletonInstance(node); - for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) { - var nextNode$jscomp$0 = node$jscomp$0.nextSibling, - nodeName = node$jscomp$0.nodeName; - node$jscomp$0[internalHoistableMarker] || - "SCRIPT" === nodeName || - "STYLE" === nodeName || - ("LINK" === nodeName && - "stylesheet" === node$jscomp$0.rel.toLowerCase()) || - node.removeChild(node$jscomp$0); - node$jscomp$0 = nextNode$jscomp$0; - } - } else - node === PREAMBLE_CONTRIBUTION_BODY && - releaseSingletonInstance(parentInstance.ownerDocument.body); - node = nextNode; - } while (node); - retryIfBlockedOn(hydrationInstance); + function setFocusOnFiberIfFocusable(fiber, focusOptions) { + fiber = getInstanceFromHostFiber(fiber); + return setFocusIfFocusable(fiber, focusOptions); } - function hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) { - var node = suspenseInstance; - suspenseInstance = 0; - do { - var nextNode = node.nextSibling; - 1 === node.nodeType - ? isHidden - ? ((node._stashedDisplay = node.style.display), - (node.style.display = "none")) - : ((node.style.display = node._stashedDisplay || ""), - "" === node.getAttribute("style") && - node.removeAttribute("style")) - : 3 === node.nodeType && - (isHidden - ? ((node._stashedText = node.nodeValue), (node.nodeValue = "")) - : (node.nodeValue = node._stashedText || "")); - if (nextNode && 8 === nextNode.nodeType) - if (((node = nextNode.data), node === SUSPENSE_END_DATA)) - if (0 === suspenseInstance) break; - else suspenseInstance--; - else - (node !== SUSPENSE_START_DATA && - node !== SUSPENSE_PENDING_START_DATA && - node !== SUSPENSE_QUEUED_START_DATA && - node !== SUSPENSE_FALLBACK_START_DATA) || - suspenseInstance++; - node = nextNode; - } while (node); + function collectChildren(child, collection) { + collection.push(child); + return !1; } - function hideDehydratedBoundary(suspenseInstance) { - hideOrUnhideDehydratedBoundary(suspenseInstance, !0); + function blurActiveElementWithinFragment(child) { + child = getInstanceFromHostFiber(child); + return child === child.ownerDocument.activeElement + ? (child.blur(), !0) + : !1; } - function hideInstance(instance) { - instance = instance.style; - "function" === typeof instance.setProperty - ? instance.setProperty("display", "none", "important") - : (instance.display = "none"); + function observeChild(child, observer) { + child = getInstanceFromHostFiber(child); + observer.observe(child); + return !1; } - function hideTextInstance(textInstance) { - textInstance.nodeValue = ""; + function unobserveChild(child, observer) { + child = getInstanceFromHostFiber(child); + observer.unobserve(child); + return !1; } - function unhideDehydratedBoundary(dehydratedInstance) { - hideOrUnhideDehydratedBoundary(dehydratedInstance, !1); + function collectClientRects(child, rects) { + child = getInstanceFromHostFiber(child); + rects.push.apply(rects, child.getClientRects()); + return !1; } - function unhideInstance(instance, props) { - props = props[STYLE]; - props = - void 0 !== props && null !== props && props.hasOwnProperty("display") - ? props.display - : null; - instance.style.display = - null == props || "boolean" === typeof props ? "" : ("" + props).trim(); + function validateDocumentPositionWithFiberTree( + documentPosition, + fragmentFiber, + precedingBoundaryFiber, + followingBoundaryFiber, + otherNode + ) { + var otherFiber = getClosestInstanceFromNode(otherNode); + if (documentPosition & Node.DOCUMENT_POSITION_CONTAINED_BY) { + if ((precedingBoundaryFiber = !!otherFiber)) + a: { + for (; null !== otherFiber; ) { + if ( + 7 === otherFiber.tag && + (otherFiber === fragmentFiber || + otherFiber.alternate === fragmentFiber) + ) { + precedingBoundaryFiber = !0; + break a; + } + otherFiber = otherFiber.return; + } + precedingBoundaryFiber = !1; + } + return precedingBoundaryFiber; + } + if (documentPosition & Node.DOCUMENT_POSITION_CONTAINS) { + if (null === otherFiber) + return ( + (otherFiber = otherNode.ownerDocument), + otherNode === otherFiber || otherNode === otherFiber.body + ); + a: { + otherFiber = fragmentFiber; + for ( + fragmentFiber = getFragmentParentHostFiber(fragmentFiber); + null !== otherFiber; + + ) { + if ( + !( + (5 !== otherFiber.tag && 3 !== otherFiber.tag) || + (otherFiber !== fragmentFiber && + otherFiber.alternate !== fragmentFiber) + ) + ) { + otherFiber = !0; + break a; + } + otherFiber = otherFiber.return; + } + otherFiber = !1; + } + return otherFiber; + } + return documentPosition & Node.DOCUMENT_POSITION_PRECEDING + ? ((fragmentFiber = !!otherFiber) && + !(fragmentFiber = otherFiber === precedingBoundaryFiber) && + ((fragmentFiber = getLowestCommonAncestor( + precedingBoundaryFiber, + otherFiber, + getParentForFragmentAncestors + )), + null === fragmentFiber + ? (fragmentFiber = !1) + : (traverseVisibleHostChildren( + fragmentFiber, + !0, + isFiberPrecedingCheck, + otherFiber, + precedingBoundaryFiber + ), + (otherFiber = searchTarget), + (searchTarget = null), + (fragmentFiber = null !== otherFiber))), + fragmentFiber) + : documentPosition & Node.DOCUMENT_POSITION_FOLLOWING + ? ((fragmentFiber = !!otherFiber) && + !(fragmentFiber = otherFiber === followingBoundaryFiber) && + ((fragmentFiber = getLowestCommonAncestor( + followingBoundaryFiber, + otherFiber, + getParentForFragmentAncestors + )), + null === fragmentFiber + ? (fragmentFiber = !1) + : (traverseVisibleHostChildren( + fragmentFiber, + !0, + isFiberFollowingCheck, + otherFiber, + followingBoundaryFiber + ), + (otherFiber = searchTarget), + (searchBoundary = searchTarget = null), + (fragmentFiber = null !== otherFiber))), + fragmentFiber) + : !1; } - function unhideTextInstance(textInstance, text) { - textInstance.nodeValue = text; + function commitNewChildToFragmentInstance(childInstance, fragmentInstance) { + var eventListeners = fragmentInstance._eventListeners; + if (null !== eventListeners) + for (var i = 0; i < eventListeners.length; i++) { + var _eventListeners$i2 = eventListeners[i]; + childInstance.addEventListener( + _eventListeners$i2.type, + _eventListeners$i2.listener, + _eventListeners$i2.optionsOrUseCapture + ); + } + null !== fragmentInstance._observers && + fragmentInstance._observers.forEach(function (observer) { + observer.observe(childInstance); + }); } function clearContainerSparingly(container) { var nextNode = container.firstChild; @@ -22659,6 +24513,19 @@ function commitHydratedSuspenseInstance(suspenseInstance) { retryIfBlockedOn(suspenseInstance); } + function setFocusIfFocusable(node, focusOptions) { + function handleFocus() { + didFocus = !0; + } + var didFocus = !1; + try { + node.addEventListener("focus", handleFocus), + (node.focus || HTMLElement.prototype.focus).call(node, focusOptions); + } finally { + node.removeEventListener("focus", handleFocus); + } + return didFocus; + } function resolveSingletonInstance( type, props, @@ -23274,12 +25141,38 @@ } return !1; } + function maySuspendCommit(type, props) { + return ( + "img" === type && + null != props.src && + "" !== props.src && + null == props.onLoad && + "lazy" !== props.loading + ); + } function preloadResource(resource) { return "stylesheet" === resource.type && (resource.state.loading & Settled) === NotLoaded ? !1 : !0; } + function estimateImageBytes(instance) { + return ( + (instance.width || 100) * + (instance.height || 100) * + ("number" === typeof devicePixelRatio ? devicePixelRatio : 1) * + 0.25 + ); + } + function suspendInstance(state, instance) { + "function" === typeof instance.decode && + (state.imgCount++, + instance.complete || + ((state.imgBytes += estimateImageBytes(instance)), + state.suspenseyImages.push(instance)), + (state = onUnsuspendImg.bind(state)), + instance.decode().then(state, state)); + } function suspendResource(state, hoistableRoot, resource, props) { if ( "stylesheet" === resource.type && @@ -23375,17 +25268,27 @@ } : null; } - function onUnsuspend() { - this.count--; - if (0 === this.count && (0 === this.imgCount || !this.waitingForImages)) - if (this.stylesheets) - insertSuspendedStylesheets(this, this.stylesheets); - else if (this.unsuspend) { - var unsuspend = this.unsuspend; - this.unsuspend = null; + function checkIfFullyUnsuspended(state) { + if ( + 0 === state.count && + (0 === state.imgCount || !state.waitingForImages) + ) + if (state.stylesheets) + insertSuspendedStylesheets(state, state.stylesheets); + else if (state.unsuspend) { + var unsuspend = state.unsuspend; + state.unsuspend = null; unsuspend(); } } + function onUnsuspend() { + this.count--; + checkIfFullyUnsuspended(this); + } + function onUnsuspendImg() { + this.imgCount--; + checkIfFullyUnsuspended(this); + } function insertSuspendedStylesheets(state, resources) { state.stylesheets = null; null !== state.unsuspend && @@ -23476,6 +25379,7 @@ this.pooledCache = null; this.pooledCacheLanes = 0; this.formState = formState; + this.transitionTypes = null; this.incompleteTransitions = new Map(); this.passiveEffectDuration = this.effectDuration = -0; this.memoizedUpdaters = new Set(); @@ -24306,6 +26210,8 @@ var Scheduler = require("next/dist/compiled/scheduler"), React = require("next/dist/compiled/react"), ReactDOM = require("next/dist/compiled/react-dom"), + searchTarget = null, + searchBoundary = null, assign = Object.assign, REACT_LEGACY_ELEMENT_TYPE = Symbol.for("react.element"), REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), @@ -24321,12 +26227,12 @@ REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"); Symbol.for("react.scope"); - var REACT_ACTIVITY_TYPE = Symbol.for("react.activity"); - Symbol.for("react.legacy_hidden"); + var REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), + REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"); Symbol.for("react.tracing_marker"); - var REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"); - Symbol.for("react.view_transition"); - var MAYBE_ITERATOR_SYMBOL = Symbol.iterator, + var REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"), + REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"), + MAYBE_ITERATOR_SYMBOL = Symbol.iterator, REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), isArrayImpl = Array.isArray, ReactSharedInternals = @@ -24417,6 +26323,7 @@ ), illegalAttributeNameCache = {}, validatedAttributeNameCache = {}, + viewTransitionMutationContext = !1, escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\n"\\]/g, didWarnValueDefaultValue$1 = !1, didWarnCheckedDefaultChecked = !1, @@ -25584,7 +27491,8 @@ " " ); simpleEventPluginEvents.push("scrollEnd"); - var lastResetTime = 0; + var globalClientIdCounter$1 = 0, + lastResetTime = 0; if ( "object" === typeof performance && "function" === typeof performance.now @@ -25741,6 +27649,7 @@ _currentRenderer: null, _currentRenderer2: null }, + entangledTransitionTypes = null, now = Scheduler.unstable_now, createTask = console.createTask ? console.createTask @@ -25815,6 +27724,26 @@ } entangleAsyncAction(transition, returnValue); } + if (null !== entangledTransitionTypes) + for (newEventTime = firstScheduledRoot; null !== newEventTime; ) + queueTransitionTypes(newEventTime, entangledTransitionTypes), + (newEventTime = newEventTime.next); + newEventTime = transition.types; + if (null !== newEventTime) { + for (newEventType = firstScheduledRoot; null !== newEventType; ) + queueTransitionTypes(newEventType, newEventTime), + (newEventType = newEventType.next); + if (0 !== currentEntangledLane) { + newEventType = entangledTransitionTypes; + null === newEventType && + (newEventType = entangledTransitionTypes = []); + for (var i = 0; i < newEventTime.length; i++) { + var transitionType = newEventTime[i]; + -1 === newEventType.indexOf(transitionType) && + newEventType.push(transitionType); + } + } + } null !== prevOnStartTransitionFinish && prevOnStartTransitionFinish(transition, returnValue); }; @@ -27372,6 +29301,7 @@ var didWarnAboutReassigningProps = !1; var didWarnAboutRevealOrder = {}; var didWarnAboutTailOptions = {}; + var didWarnAboutClassNameOnViewTransition = {}; var SUSPENDED_MARKER = { dehydrated: null, treeContext: null, @@ -27381,13 +29311,23 @@ hasWarnedAboutUsingNoValuePropOnContextProvider = !1, didWarnAboutUndefinedSnapshotBeforeUpdate = null; didWarnAboutUndefinedSnapshotBeforeUpdate = new Set(); - var offscreenSubtreeIsHidden = !1, + var shouldStartViewTransition = !1, + appearingViewTransitions = null, + viewTransitionCancelableChildren = null, + viewTransitionHostInstanceIdx = 0, + mountedNamedViewTransitions = new Map(), + didWarnAboutName = {}, + offscreenSubtreeIsHidden = !1, offscreenSubtreeWasHidden = !1, needsFormReset = !1, PossiblyWeakSet = "function" === typeof WeakSet ? WeakSet : Set, nextEffect = null, inProgressLanes = null, inProgressRoot = null, + viewTransitionContextChanged = !1, + inUpdateViewTransition = !1, + rootViewTransitionAffected = !1, + rootViewTransitionNameCanceled = !1, hostParent = null, hostParentIsContainer = !1, currentHoistableRoot = null, @@ -27484,6 +29424,9 @@ pendingEffectsRenderEndTime = -0, pendingPassiveTransitions = null, pendingRecoverableErrors = null, + pendingViewTransition = null, + pendingViewTransitionEvents = null, + pendingTransitionTypes = null, pendingSuspendedCommitReason = null, pendingDelayedCommitReason = IMMEDIATE_COMMIT, pendingSuspendedViewTransitionReason = null, @@ -27496,6 +29439,7 @@ nestedPassiveUpdateCount = 0, rootWithPassiveNestedUpdates = null, isRunningInsertionEffect = !1, + didWarnAboutInterruptedViewTransitions = !1, didWarnStateUpdateForNotYetMountedComponent = null, didWarnAboutUpdateInRender = !1; var didWarnAboutUpdateInRenderForAnotherComponent = new Set(); @@ -27623,7 +29567,342 @@ .catch(handleErrorInNextTick); } : scheduleTimeout, - previousHydratableOnEnteringScopedSingleton = null, + SUSPENSEY_FONT_AND_IMAGE_TIMEOUT = 500; + ViewTransitionPseudoElement.prototype.animate = function ( + keyframes, + options + ) { + options = + "number" === typeof options + ? { duration: options } + : assign({}, options); + options.pseudoElement = this._selector; + return this._scope.animate(keyframes, options); + }; + ViewTransitionPseudoElement.prototype.getAnimations = function () { + for ( + var scope = this._scope, + selector = this._selector, + animations = scope.getAnimations({ subtree: !0 }), + result = [], + i = 0; + i < animations.length; + i++ + ) { + var effect = animations[i].effect; + null !== effect && + effect.target === scope && + effect.pseudoElement === selector && + result.push(animations[i]); + } + return result; + }; + ViewTransitionPseudoElement.prototype.getComputedStyle = function () { + return getComputedStyle(this._scope, this._selector); + }; + FragmentInstance.prototype.addEventListener = function ( + type, + listener, + optionsOrUseCapture + ) { + null === this._eventListeners && (this._eventListeners = []); + var listeners = this._eventListeners; + -1 === + indexOfEventListener(listeners, type, listener, optionsOrUseCapture) && + (listeners.push({ + type: type, + listener: listener, + optionsOrUseCapture: optionsOrUseCapture + }), + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + addEventListenerToChild, + type, + listener, + optionsOrUseCapture + )); + this._eventListeners = listeners; + }; + FragmentInstance.prototype.removeEventListener = function ( + type, + listener, + optionsOrUseCapture + ) { + var listeners = this._eventListeners; + null !== listeners && + "undefined" !== typeof listeners && + 0 < listeners.length && + (traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + removeEventListenerFromChild, + type, + listener, + optionsOrUseCapture + ), + (type = indexOfEventListener( + listeners, + type, + listener, + optionsOrUseCapture + )), + null !== this._eventListeners && this._eventListeners.splice(type, 1)); + }; + FragmentInstance.prototype.dispatchEvent = function (event) { + var parentHostFiber = getFragmentParentHostFiber(this._fragmentFiber); + if (null === parentHostFiber) return !0; + parentHostFiber = getInstanceFromHostFiber(parentHostFiber); + var eventListeners = this._eventListeners; + if ( + (null !== eventListeners && 0 < eventListeners.length) || + !event.bubbles + ) { + var temp = document.createTextNode(""); + if (eventListeners) + for (var i = 0; i < eventListeners.length; i++) { + var _eventListeners$i = eventListeners[i]; + temp.addEventListener( + _eventListeners$i.type, + _eventListeners$i.listener, + _eventListeners$i.optionsOrUseCapture + ); + } + parentHostFiber.appendChild(temp); + event = temp.dispatchEvent(event); + if (eventListeners) + for (i = 0; i < eventListeners.length; i++) + (_eventListeners$i = eventListeners[i]), + temp.removeEventListener( + _eventListeners$i.type, + _eventListeners$i.listener, + _eventListeners$i.optionsOrUseCapture + ); + parentHostFiber.removeChild(temp); + return event; + } + return parentHostFiber.dispatchEvent(event); + }; + FragmentInstance.prototype.focus = function (focusOptions) { + traverseVisibleHostChildren( + this._fragmentFiber.child, + !0, + setFocusOnFiberIfFocusable, + focusOptions, + void 0, + void 0 + ); + }; + FragmentInstance.prototype.focusLast = function (focusOptions) { + var children = []; + traverseVisibleHostChildren( + this._fragmentFiber.child, + !0, + collectChildren, + children, + void 0, + void 0 + ); + for ( + var i = children.length - 1; + 0 <= i && !setFocusOnFiberIfFocusable(children[i], focusOptions); + i-- + ); + }; + FragmentInstance.prototype.blur = function () { + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + blurActiveElementWithinFragment, + void 0, + void 0, + void 0 + ); + }; + FragmentInstance.prototype.observeUsing = function (observer) { + null === this._observers && (this._observers = new Set()); + this._observers.add(observer); + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + observeChild, + observer, + void 0, + void 0 + ); + }; + FragmentInstance.prototype.unobserveUsing = function (observer) { + var observers = this._observers; + null !== observers && observers.has(observer) + ? (observers.delete(observer), + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + unobserveChild, + observer, + void 0, + void 0 + )) + : console.error( + "You are calling unobserveUsing() with an observer that is not being observed with this fragment instance. First attach the observer with observeUsing()" + ); + }; + FragmentInstance.prototype.getClientRects = function () { + var rects = []; + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + collectClientRects, + rects, + void 0, + void 0 + ); + return rects; + }; + FragmentInstance.prototype.getRootNode = function (getRootNodeOptions) { + var parentHostFiber = getFragmentParentHostFiber(this._fragmentFiber); + return null === parentHostFiber + ? this + : getInstanceFromHostFiber(parentHostFiber).getRootNode( + getRootNodeOptions + ); + }; + FragmentInstance.prototype.compareDocumentPosition = function (otherNode) { + var parentHostFiber = getFragmentParentHostFiber(this._fragmentFiber); + if (null === parentHostFiber) return Node.DOCUMENT_POSITION_DISCONNECTED; + var children = []; + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + collectChildren, + children, + void 0, + void 0 + ); + var parentHostInstance = getInstanceFromHostFiber(parentHostFiber); + if (0 === children.length) { + children = this._fragmentFiber; + var parentResult = + parentHostInstance.compareDocumentPosition(otherNode); + parentHostFiber = parentResult; + parentHostInstance === otherNode + ? (parentHostFiber = Node.DOCUMENT_POSITION_CONTAINS) + : parentResult & Node.DOCUMENT_POSITION_CONTAINED_BY && + (traverseVisibleHostChildren(children.sibling, !1, findNextSibling), + (children = searchTarget), + (searchTarget = null), + null === children + ? (parentHostFiber = Node.DOCUMENT_POSITION_PRECEDING) + : ((otherNode = + getInstanceFromHostFiber(children).compareDocumentPosition( + otherNode + )), + (parentHostFiber = + 0 === otherNode || + otherNode & Node.DOCUMENT_POSITION_FOLLOWING + ? Node.DOCUMENT_POSITION_FOLLOWING + : Node.DOCUMENT_POSITION_PRECEDING))); + return (parentHostFiber |= + Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC); + } + parentHostFiber = getInstanceFromHostFiber(children[0]); + parentResult = getInstanceFromHostFiber(children[children.length - 1]); + for ( + var firstInstance = getInstanceFromHostFiber(children[0]), + foundPortalParent = !1, + parent = this._fragmentFiber.return; + null !== parent; + + ) { + 4 === parent.tag && (foundPortalParent = !0); + if (3 === parent.tag || 5 === parent.tag) break; + parent = parent.return; + } + firstInstance = foundPortalParent + ? firstInstance.parentElement + : parentHostInstance; + if (null == firstInstance) return Node.DOCUMENT_POSITION_DISCONNECTED; + parentHostInstance = + firstInstance.compareDocumentPosition(parentHostFiber) & + Node.DOCUMENT_POSITION_CONTAINED_BY; + firstInstance = + firstInstance.compareDocumentPosition(parentResult) & + Node.DOCUMENT_POSITION_CONTAINED_BY; + foundPortalParent = parentHostFiber.compareDocumentPosition(otherNode); + var lastResult = parentResult.compareDocumentPosition(otherNode); + parent = + foundPortalParent & Node.DOCUMENT_POSITION_CONTAINED_BY || + lastResult & Node.DOCUMENT_POSITION_CONTAINED_BY; + lastResult = + parentHostInstance && + firstInstance && + foundPortalParent & Node.DOCUMENT_POSITION_FOLLOWING && + lastResult & Node.DOCUMENT_POSITION_PRECEDING; + parentHostFiber = + (parentHostInstance && parentHostFiber === otherNode) || + (firstInstance && parentResult === otherNode) || + parent || + lastResult + ? Node.DOCUMENT_POSITION_CONTAINED_BY + : (!parentHostInstance && parentHostFiber === otherNode) || + (!firstInstance && parentResult === otherNode) + ? Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC + : foundPortalParent; + return parentHostFiber & Node.DOCUMENT_POSITION_DISCONNECTED || + parentHostFiber & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC || + validateDocumentPositionWithFiberTree( + parentHostFiber, + this._fragmentFiber, + children[0], + children[children.length - 1], + otherNode + ) + ? parentHostFiber + : Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC; + }; + FragmentInstance.prototype.scrollIntoView = function (alignToTop) { + if ("object" === typeof alignToTop) + throw Error( + "FragmentInstance.scrollIntoView() does not support scrollIntoViewOptions. Use the alignToTop boolean instead." + ); + var children = []; + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + collectChildren, + children, + void 0, + void 0 + ); + var resolvedAlignToTop = !1 !== alignToTop; + if (0 === children.length) { + children = this._fragmentFiber; + var result = [null, null], + parentHostFiber = getFragmentParentHostFiber(children); + null !== parentHostFiber && + findFragmentInstanceSiblings(result, children, parentHostFiber.child); + resolvedAlignToTop = resolvedAlignToTop + ? result[1] || + result[0] || + getFragmentParentHostFiber(this._fragmentFiber) + : result[0] || result[1]; + null === resolvedAlignToTop + ? console.warn( + "You are attempting to scroll a FragmentInstance that has no children, siblings, or parent. No scroll was performed." + ) + : getInstanceFromHostFiber(resolvedAlignToTop).scrollIntoView( + alignToTop + ); + } else + for ( + result = resolvedAlignToTop ? children.length - 1 : 0; + result !== (resolvedAlignToTop ? -1 : children.length); + + ) + getInstanceFromHostFiber(children[result]).scrollIntoView(alignToTop), + (result += resolvedAlignToTop ? -1 : 1); + }; + var previousHydratableOnEnteringScopedSingleton = null, NotLoaded = 0, Loaded = 1, Errored = 2, @@ -28048,11 +30327,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.3.0-canary-c7862584-20251006" !== isomorphicReactPackageVersion) + if ("19.3.0-canary-a4eb2dfa-20251006" !== 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.3.0-canary-c7862584-20251006\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-canary-a4eb2dfa-20251006\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -28089,10 +30368,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.3.0-canary-c7862584-20251006", + version: "19.3.0-canary-a4eb2dfa-20251006", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-canary-c7862584-20251006" + reconcilerVersion: "19.3.0-canary-a4eb2dfa-20251006" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -28560,7 +30839,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.3.0-canary-c7862584-20251006"; + exports.version = "19.3.0-canary-a4eb2dfa-20251006"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.profiling.js b/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.profiling.js index c92301e12ba45..4ba8915b2dbe4 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.profiling.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.profiling.js @@ -156,6 +156,105 @@ function findCurrentHostFiberImpl(node) { } return null; } +function traverseVisibleHostChildren(child, searchWithinHosts, fn, a, b, c) { + for (; null !== child; ) { + if ( + (5 === child.tag && fn(child, a, b, c)) || + ((22 !== child.tag || null === child.memoizedState) && + (searchWithinHosts || 5 !== child.tag) && + traverseVisibleHostChildren( + child.child, + searchWithinHosts, + fn, + a, + b, + c + )) + ) + return !0; + child = child.sibling; + } + return !1; +} +function getFragmentParentHostFiber(fiber) { + for (fiber = fiber.return; null !== fiber; ) { + if (3 === fiber.tag || 5 === fiber.tag) return fiber; + fiber = fiber.return; + } + return null; +} +function findFragmentInstanceSiblings(result, self, child) { + for ( + var foundSelf = + 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : !1; + null !== child; + + ) { + if (child === self) + if (((foundSelf = !0), child.sibling)) child = child.sibling; + else return !0; + if (5 === child.tag) { + if (foundSelf) return (result[1] = child), !0; + result[0] = child; + } else if ( + (22 !== child.tag || null === child.memoizedState) && + findFragmentInstanceSiblings(result, self, child.child, foundSelf) + ) + return !0; + child = child.sibling; + } + return !1; +} +function getInstanceFromHostFiber(fiber) { + switch (fiber.tag) { + case 5: + return fiber.stateNode; + case 3: + return fiber.stateNode.containerInfo; + default: + throw Error(formatProdErrorMessage(559)); + } +} +var searchTarget = null, + searchBoundary = null; +function findNextSibling(child) { + searchTarget = child; + return !0; +} +function isFiberPrecedingCheck(child, target, boundary) { + return child === boundary + ? !0 + : child === target + ? ((searchTarget = child), !0) + : !1; +} +function isFiberFollowingCheck(child, target, boundary) { + return child === boundary + ? ((searchBoundary = child), !1) + : child === target + ? (null !== searchBoundary && (searchTarget = child), !0) + : !1; +} +function getParentForFragmentAncestors(inst) { + if (null === inst) return null; + do inst = null === inst ? null : inst.return; + while (inst && 5 !== inst.tag && 27 !== inst.tag && 3 !== inst.tag); + return inst ? inst : null; +} +function getLowestCommonAncestor(instA, instB, getParent) { + for (var depthA = 0, tempA = instA; tempA; tempA = getParent(tempA)) depthA++; + tempA = 0; + for (var tempB = instB; tempB; tempB = getParent(tempB)) tempA++; + for (; 0 < depthA - tempA; ) (instA = getParent(instA)), depthA--; + for (; 0 < tempA - depthA; ) (instB = getParent(instB)), tempA--; + for (; depthA--; ) { + if (instA === instB || (null !== instB && instA === instB.alternate)) + return instA; + instA = getParent(instA); + instB = getParent(instB); + } + return null; +} var assign = Object.assign, REACT_LEGACY_ELEMENT_TYPE = Symbol.for("react.element"), REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), @@ -171,12 +270,12 @@ var assign = Object.assign, REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"); Symbol.for("react.scope"); -var REACT_ACTIVITY_TYPE = Symbol.for("react.activity"); -Symbol.for("react.legacy_hidden"); +var REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), + REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"); Symbol.for("react.tracing_marker"); -var REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"); -Symbol.for("react.view_transition"); -var MAYBE_ITERATOR_SYMBOL = Symbol.iterator; +var REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"), + REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"), + MAYBE_ITERATOR_SYMBOL = Symbol.iterator; function getIteratorFn(maybeIterable) { if (null === maybeIterable || "object" !== typeof maybeIterable) return null; maybeIterable = @@ -205,6 +304,8 @@ function getComponentNameFromType(type) { return "SuspenseList"; case REACT_ACTIVITY_TYPE: return "Activity"; + case REACT_VIEW_TRANSITION_TYPE: + return "ViewTransition"; } if ("object" === typeof type) switch (type.$$typeof) { @@ -285,6 +386,8 @@ function getComponentNameFromFiber(fiber) { return "SuspenseList"; case 25: return "TracingMarker"; + case 30: + return "ViewTransition"; case 1: case 0: case 14: @@ -553,6 +656,8 @@ function describeFiber(fiber, childFiber) { return describeNativeComponentFrame(fiber.type, !0); case 31: return describeBuiltInComponentFrame("Activity"); + case 30: + return describeBuiltInComponentFrame("ViewTransition"); default: return ""; } @@ -1040,6 +1145,12 @@ function isAttributeNameSafe(attributeName) { illegalAttributeNameCache[attributeName] = !0; return !1; } +var viewTransitionMutationContext = !1; +function pushMutationContext() { + var prev = viewTransitionMutationContext; + viewTransitionMutationContext = !1; + return prev; +} function setValueForAttribute(node, name, value) { if (isAttributeNameSafe(name)) if (null === value) node.removeAttribute(name); @@ -1393,12 +1504,14 @@ function setValueForStyles(node, styles, prevStyles) { ? node.setProperty(styleName, "") : "float" === styleName ? (node.cssFloat = "") - : (node[styleName] = "")); + : (node[styleName] = ""), + (viewTransitionMutationContext = !0)); for (var styleName$18 in styles) (styleName = styles[styleName$18]), styles.hasOwnProperty(styleName$18) && prevStyles[styleName$18] !== styleName && - setValueForStyle(node, styleName$18, styleName); + (setValueForStyle(node, styleName$18, styleName), + (viewTransitionMutationContext = !0)); } else for (var styleName$19 in styles) styles.hasOwnProperty(styleName$19) && @@ -2137,19 +2250,19 @@ function getTargetInstForChangeEvent(domEventName, targetInst) { } var isInputEventSupported = !1; if (canUseDOM) { - var JSCompiler_inline_result$jscomp$330; + var JSCompiler_inline_result$jscomp$351; if (canUseDOM) { - var isSupported$jscomp$inline_473 = "oninput" in document; - if (!isSupported$jscomp$inline_473) { - var element$jscomp$inline_474 = document.createElement("div"); - element$jscomp$inline_474.setAttribute("oninput", "return;"); - isSupported$jscomp$inline_473 = - "function" === typeof element$jscomp$inline_474.oninput; + var isSupported$jscomp$inline_514 = "oninput" in document; + if (!isSupported$jscomp$inline_514) { + var element$jscomp$inline_515 = document.createElement("div"); + element$jscomp$inline_515.setAttribute("oninput", "return;"); + isSupported$jscomp$inline_514 = + "function" === typeof element$jscomp$inline_515.oninput; } - JSCompiler_inline_result$jscomp$330 = isSupported$jscomp$inline_473; - } else JSCompiler_inline_result$jscomp$330 = !1; + JSCompiler_inline_result$jscomp$351 = isSupported$jscomp$inline_514; + } else JSCompiler_inline_result$jscomp$351 = !1; isInputEventSupported = - JSCompiler_inline_result$jscomp$330 && + JSCompiler_inline_result$jscomp$351 && (!document.documentMode || 9 < document.documentMode); } function stopWatchingForValueChange() { @@ -2397,6 +2510,41 @@ function registerSimpleEvent(domEventName, reactName) { topLevelEventsToReactNames.set(domEventName, reactName); registerTwoPhaseEvent(reactName, [domEventName]); } +var globalClientIdCounter$1 = 0; +function getViewTransitionName(props, instance) { + if (null != props.name && "auto" !== props.name) return props.name; + if (null !== instance.autoName) return instance.autoName; + props = pendingEffectsRoot.identifierPrefix; + var globalClientId = globalClientIdCounter$1++; + props = "_" + props + "t_" + globalClientId.toString(32) + "_"; + return (instance.autoName = props); +} +function getClassNameByType(classByType) { + if (null == classByType || "string" === typeof classByType) + return classByType; + var className = null, + activeTypes = pendingTransitionTypes; + if (null !== activeTypes) + for (var i = 0; i < activeTypes.length; i++) { + var match = classByType[activeTypes[i]]; + if (null != match) { + if ("none" === match) return "none"; + className = null == className ? match : className + (" " + match); + } + } + return null == className ? classByType.default : className; +} +function getViewTransitionClassName(defaultClass, eventClass) { + defaultClass = getClassNameByType(defaultClass); + eventClass = getClassNameByType(eventClass); + return null == eventClass + ? "auto" === defaultClass + ? null + : defaultClass + : "auto" === eventClass + ? null + : eventClass; +} var reportGlobalError = "function" === typeof reportError ? reportError @@ -2590,6 +2738,32 @@ function logCommitErrored(startTime, endTime) { "error" ); } +function logCommitPhase(startTime, endTime, errors, abortedViewTransition) { + null !== errors + ? logCommitErrored(startTime, endTime) + : !supportsUserTiming || + endTime <= startTime || + console.timeStamp( + abortedViewTransition ? "Commit Interrupted View Transition" : "Commit", + startTime, + endTime, + currentTrack, + "Scheduler \u269b", + abortedViewTransition ? "error" : "secondary-dark" + ); +} +function logAnimatingPhase(startTime, endTime) { + !supportsUserTiming || + endTime <= startTime || + console.timeStamp( + "Animating", + startTime, + endTime, + currentTrack, + "Scheduler \u269b", + "secondary-dark" + ); +} var concurrentQueues = [], concurrentQueuesIndex = 0, concurrentlyUpdatedLanes = 0; @@ -2844,6 +3018,21 @@ function createFiberFromTypeAndProps( (type.lanes = lanes), type ); + case REACT_LEGACY_HIDDEN_TYPE: + case REACT_VIEW_TRANSITION_TYPE: + return ( + (type = mode | 32), + (type = createFiberImplClass(30, pendingProps, key, type)), + (type.elementType = REACT_VIEW_TRANSITION_TYPE), + (type.lanes = lanes), + (type.stateNode = { + autoName: null, + paired: null, + clones: null, + ref: null + }), + type + ); default: if ("object" === typeof type && null !== type) switch (type.$$typeof) { @@ -3371,6 +3560,22 @@ function releaseCache(cache) { cache.controller.abort(); }); } +function queueTransitionTypes(root, transitionTypes) { + if (0 !== (root.pendingLanes & 4194048)) { + var queued = root.transitionTypes; + null === queued && (queued = root.transitionTypes = []); + for (root = 0; root < transitionTypes.length; root++) { + var transitionType = transitionTypes[root]; + -1 === queued.indexOf(transitionType) && queued.push(transitionType); + } + } +} +var entangledTransitionTypes = null; +function claimQueuedTransitionTypes(root) { + var claimed = root.transitionTypes; + root.transitionTypes = null; + return claimed; +} var now = Scheduler.unstable_now, renderStartTime = -0, commitStartTime = -0, @@ -3398,6 +3603,9 @@ var now = Scheduler.unstable_now, transitionEventType = null, transitionEventRepeatTime = -1.1, transitionSuspendedTime = -1.1, + retryClampTime = -0, + idleClampTime = -0, + animatingLanes = 0, yieldReason = 0, yieldStartTime = -1.1; function startUpdateTimerByLane(lane) { @@ -3573,6 +3781,7 @@ function pingEngtangledActionScope() { if ( 0 === --currentEntangledPendingCount && (-1 < transitionUpdateTime || (transitionStartTime = -1.1), + (entangledTransitionTypes = null), null !== currentEntangledListeners) ) { null !== currentEntangledActionThenable && @@ -3631,6 +3840,25 @@ ReactSharedInternals.S = function (transition, returnValue) { } entangleAsyncAction(transition, returnValue); } + if (null !== entangledTransitionTypes) + for (newEventTime = firstScheduledRoot; null !== newEventTime; ) + queueTransitionTypes(newEventTime, entangledTransitionTypes), + (newEventTime = newEventTime.next); + newEventTime = transition.types; + if (null !== newEventTime) { + for (newEventType = firstScheduledRoot; null !== newEventType; ) + queueTransitionTypes(newEventType, newEventTime), + (newEventType = newEventType.next); + if (0 !== currentEntangledLane) { + newEventType = entangledTransitionTypes; + null === newEventType && (newEventType = entangledTransitionTypes = []); + for (var i = 0; i < newEventTime.length; i++) { + var transitionType = newEventTime[i]; + -1 === newEventType.indexOf(transitionType) && + newEventType.push(transitionType); + } + } + } null !== prevOnStartTransitionFinish && prevOnStartTransitionFinish(transition, returnValue); }; @@ -3827,12 +4055,16 @@ function createChildReconciler(shouldTrackSideEffects) { function updateElement(returnFiber, current, element, lanes) { var elementType = element.type; if (elementType === REACT_FRAGMENT_TYPE) - return updateFragment( - returnFiber, - current, - element.props.children, - lanes, - element.key + return ( + (returnFiber = updateFragment( + returnFiber, + current, + element.props.children, + lanes, + element.key + )), + coerceRef(returnFiber, element), + returnFiber ); if ( null !== current && @@ -4262,6 +4494,7 @@ function createChildReconciler(shouldTrackSideEffects) { null !== newChild && newChild.type === REACT_FRAGMENT_TYPE && null === newChild.key && + void 0 === newChild.props.ref && (newChild = newChild.props.children); if ("object" === typeof newChild && null !== newChild) { switch (newChild.$$typeof) { @@ -4280,6 +4513,7 @@ function createChildReconciler(shouldTrackSideEffects) { currentFirstChild, newChild.props.children ); + coerceRef(lanes, newChild); lanes.return = returnFiber; returnFiber = lanes; break a; @@ -4313,6 +4547,7 @@ function createChildReconciler(shouldTrackSideEffects) { lanes, newChild.key )), + coerceRef(lanes, newChild), (lanes.return = returnFiber), (returnFiber = lanes)) : ((lanes = createFiberFromTypeAndProps( @@ -5038,7 +5273,7 @@ function updateReducerImpl(hook, current, reducer) { var newBaseQueueFirst = (baseFirst = null), newBaseQueueLast = null, update = current, - didReadFromEntangledAsyncAction$69 = !1; + didReadFromEntangledAsyncAction$71 = !1; do { var updateLane = update.lane & -536870913; if ( @@ -5060,11 +5295,11 @@ function updateReducerImpl(hook, current, reducer) { next: null }), updateLane === currentEntangledLane && - (didReadFromEntangledAsyncAction$69 = !0); + (didReadFromEntangledAsyncAction$71 = !0); else if ((renderLanes & revertLane) === revertLane) { update = update.next; revertLane === currentEntangledLane && - (didReadFromEntangledAsyncAction$69 = !0); + (didReadFromEntangledAsyncAction$71 = !0); continue; } else (updateLane = { @@ -5112,7 +5347,7 @@ function updateReducerImpl(hook, current, reducer) { if ( !objectIs(pendingQueue, hook.memoizedState) && ((didReceiveUpdate = !0), - didReadFromEntangledAsyncAction$69 && + didReadFromEntangledAsyncAction$71 && ((reducer = currentEntangledActionThenable), null !== reducer)) ) throw reducer; @@ -5299,6 +5534,8 @@ function runActionStateAction(actionQueue, node) { if (node.isTransition) { var prevTransition = ReactSharedInternals.T, currentTransition = {}; + currentTransition.types = + null !== prevTransition ? prevTransition.types : null; ReactSharedInternals.T = currentTransition; try { var returnValue = action(prevState, payload), @@ -5318,8 +5555,8 @@ function runActionStateAction(actionQueue, node) { try { (prevTransition = action(prevState, payload)), handleActionReturnValue(actionQueue, node, prevTransition); - } catch (error$75) { - onActionError(actionQueue, node, error$75); + } catch (error$77) { + onActionError(actionQueue, node, error$77); } } function handleActionReturnValue(actionQueue, node, returnValue) { @@ -5678,6 +5915,8 @@ function startTransition(fiber, queue, pendingState, finishedState, callback) { 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8; var prevTransition = ReactSharedInternals.T, currentTransition = {}; + currentTransition.types = + null !== prevTransition ? prevTransition.types : null; ReactSharedInternals.T = currentTransition; dispatchOptimisticSetState(fiber, !1, queue, pendingState); try { @@ -5801,11 +6040,11 @@ function refreshCache(fiber) { case 3: var lane = requestUpdateLane(); fiber = createUpdate(lane); - var root$78 = enqueueUpdate(provider, fiber, lane); - null !== root$78 && + var root$80 = enqueueUpdate(provider, fiber, lane); + null !== root$80 && (startUpdateTimerByLane(lane), - scheduleUpdateOnFiber(root$78, provider, lane), - entangleTransitions(root$78, provider, lane)); + scheduleUpdateOnFiber(root$80, provider, lane), + entangleTransitions(root$80, provider, lane)); provider = { cache: createCache() }; fiber.payload = provider; return; @@ -6350,9 +6589,9 @@ function resolveClassComponentProps(Component, baseProps) { } if ((Component = Component.defaultProps)) { newProps === baseProps && (newProps = assign({}, newProps)); - for (var propName$82 in Component) - void 0 === newProps[propName$82] && - (newProps[propName$82] = Component[propName$82]); + for (var propName$84 in Component) + void 0 === newProps[propName$84] && + (newProps[propName$84] = Component[propName$84]); } return newProps; } @@ -6369,9 +6608,9 @@ function logUncaughtError(root, errorInfo) { try { var onUncaughtError = root.onUncaughtError; onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack }); - } catch (e$83) { + } catch (e$85) { setTimeout(function () { - throw e$83; + throw e$85; }); } } @@ -6382,9 +6621,9 @@ function logCaughtError(root, boundary, errorInfo) { componentStack: errorInfo.stack, errorBoundary: 1 === boundary.tag ? boundary.stateNode : null }); - } catch (e$84) { + } catch (e$86) { setTimeout(function () { - throw e$84; + throw e$86; }); } } @@ -8214,12 +8453,9 @@ function beginWork(current, workInProgress, renderLanes) { ); case 7: return ( - reconcileChildren( - current, - workInProgress, - workInProgress.pendingProps, - renderLanes - ), + (props = workInProgress.pendingProps), + markRef(current, workInProgress), + reconcileChildren(current, workInProgress, props, renderLanes), workInProgress.child ); case 8: @@ -8339,6 +8575,18 @@ function beginWork(current, workInProgress, renderLanes) { ), workInProgress.child ); + case 30: + return ( + (props = workInProgress.pendingProps), + null != props.name && "auto" !== props.name + ? (workInProgress.flags |= null === current ? 18882560 : 18874368) + : isHydrating && pushMaterializedTreeId(workInProgress), + null !== current && current.memoizedProps.name !== props.name + ? (workInProgress.flags |= 4194816) + : markRef(current, workInProgress), + reconcileChildren(current, workInProgress, props.children, renderLanes), + workInProgress.child + ); case 29: throw workInProgress.pendingProps; } @@ -8354,8 +8602,15 @@ function preloadInstanceAndSuspendIfNeeded( newProps, renderLanes ) { - if ((type = 0 !== (workInProgress.mode & 32))) type = !1; - if (type) { + var JSCompiler_temp; + if ((JSCompiler_temp = 0 !== (workInProgress.mode & 32))) + JSCompiler_temp = + null === oldProps + ? maySuspendCommit(type, newProps) + : maySuspendCommit(type, newProps) && + (newProps.src !== oldProps.src || + newProps.srcSet !== oldProps.srcSet); + if (JSCompiler_temp) { if ( ((workInProgress.flags |= 16777216), (renderLanes & 335544128) === renderLanes) @@ -8403,14 +8658,14 @@ function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) { break; case "collapsed": lastTailNode = renderState.tail; - for (var lastTailNode$116 = null; null !== lastTailNode; ) - null !== lastTailNode.alternate && (lastTailNode$116 = lastTailNode), + for (var lastTailNode$118 = null; null !== lastTailNode; ) + null !== lastTailNode.alternate && (lastTailNode$118 = lastTailNode), (lastTailNode = lastTailNode.sibling); - null === lastTailNode$116 + null === lastTailNode$118 ? hasRenderedATailFallback || null === renderState.tail ? (renderState.tail = null) : (renderState.tail.sibling = null) - : (lastTailNode$116.sibling = null); + : (lastTailNode$118.sibling = null); } } function bubbleProperties(completedWork) { @@ -8422,53 +8677,53 @@ function bubbleProperties(completedWork) { if (didBailout) if (0 !== (completedWork.mode & 2)) { for ( - var treeBaseDuration$118 = completedWork.selfBaseDuration, - child$119 = completedWork.child; - null !== child$119; + var treeBaseDuration$120 = completedWork.selfBaseDuration, + child$121 = completedWork.child; + null !== child$121; ) - (newChildLanes |= child$119.lanes | child$119.childLanes), - (subtreeFlags |= child$119.subtreeFlags & 65011712), - (subtreeFlags |= child$119.flags & 65011712), - (treeBaseDuration$118 += child$119.treeBaseDuration), - (child$119 = child$119.sibling); - completedWork.treeBaseDuration = treeBaseDuration$118; + (newChildLanes |= child$121.lanes | child$121.childLanes), + (subtreeFlags |= child$121.subtreeFlags & 65011712), + (subtreeFlags |= child$121.flags & 65011712), + (treeBaseDuration$120 += child$121.treeBaseDuration), + (child$121 = child$121.sibling); + completedWork.treeBaseDuration = treeBaseDuration$120; } else for ( - treeBaseDuration$118 = completedWork.child; - null !== treeBaseDuration$118; + treeBaseDuration$120 = completedWork.child; + null !== treeBaseDuration$120; ) (newChildLanes |= - treeBaseDuration$118.lanes | treeBaseDuration$118.childLanes), - (subtreeFlags |= treeBaseDuration$118.subtreeFlags & 65011712), - (subtreeFlags |= treeBaseDuration$118.flags & 65011712), - (treeBaseDuration$118.return = completedWork), - (treeBaseDuration$118 = treeBaseDuration$118.sibling); + treeBaseDuration$120.lanes | treeBaseDuration$120.childLanes), + (subtreeFlags |= treeBaseDuration$120.subtreeFlags & 65011712), + (subtreeFlags |= treeBaseDuration$120.flags & 65011712), + (treeBaseDuration$120.return = completedWork), + (treeBaseDuration$120 = treeBaseDuration$120.sibling); else if (0 !== (completedWork.mode & 2)) { - treeBaseDuration$118 = completedWork.actualDuration; - child$119 = completedWork.selfBaseDuration; + treeBaseDuration$120 = completedWork.actualDuration; + child$121 = completedWork.selfBaseDuration; for (var child = completedWork.child; null !== child; ) (newChildLanes |= child.lanes | child.childLanes), (subtreeFlags |= child.subtreeFlags), (subtreeFlags |= child.flags), - (treeBaseDuration$118 += child.actualDuration), - (child$119 += child.treeBaseDuration), + (treeBaseDuration$120 += child.actualDuration), + (child$121 += child.treeBaseDuration), (child = child.sibling); - completedWork.actualDuration = treeBaseDuration$118; - completedWork.treeBaseDuration = child$119; + completedWork.actualDuration = treeBaseDuration$120; + completedWork.treeBaseDuration = child$121; } else for ( - treeBaseDuration$118 = completedWork.child; - null !== treeBaseDuration$118; + treeBaseDuration$120 = completedWork.child; + null !== treeBaseDuration$120; ) (newChildLanes |= - treeBaseDuration$118.lanes | treeBaseDuration$118.childLanes), - (subtreeFlags |= treeBaseDuration$118.subtreeFlags), - (subtreeFlags |= treeBaseDuration$118.flags), - (treeBaseDuration$118.return = completedWork), - (treeBaseDuration$118 = treeBaseDuration$118.sibling); + treeBaseDuration$120.lanes | treeBaseDuration$120.childLanes), + (subtreeFlags |= treeBaseDuration$120.subtreeFlags), + (subtreeFlags |= treeBaseDuration$120.flags), + (treeBaseDuration$120.return = completedWork), + (treeBaseDuration$120 = treeBaseDuration$120.sibling); completedWork.subtreeFlags |= subtreeFlags; completedWork.childLanes = newChildLanes; return didBailout; @@ -8555,6 +8810,7 @@ function completeWork(current, workInProgress, renderLanes) { if (null === workInProgress.stateNode) throw Error(formatProdErrorMessage(166)); bubbleProperties(workInProgress); + workInProgress.subtreeFlags &= -33554433; return null; } current = contextStackCursor.current; @@ -8565,6 +8821,7 @@ function completeWork(current, workInProgress, renderLanes) { markUpdate(workInProgress)); } bubbleProperties(workInProgress); + workInProgress.subtreeFlags &= -33554433; return null; case 5: popHostContext(workInProgress); @@ -8576,6 +8833,7 @@ function completeWork(current, workInProgress, renderLanes) { if (null === workInProgress.stateNode) throw Error(formatProdErrorMessage(166)); bubbleProperties(workInProgress); + workInProgress.subtreeFlags &= -33554433; return null; } nextResource = contextStackCursor.current; @@ -8687,6 +8945,7 @@ function completeWork(current, workInProgress, renderLanes) { } } bubbleProperties(workInProgress); + workInProgress.subtreeFlags &= -33554433; preloadInstanceAndSuspendIfNeeded( workInProgress, workInProgress.type, @@ -9011,7 +9270,11 @@ function completeWork(current, workInProgress, renderLanes) { case 25: return null; case 30: - return null; + return ( + (workInProgress.flags |= 33554432), + bubbleProperties(workInProgress), + null + ); } throw Error(formatProdErrorMessage(156, workInProgress.tag)); } @@ -9283,8 +9546,8 @@ function safelyCallComponentWillUnmount( } else try { instance.componentWillUnmount(); - } catch (error$159) { - captureCommitPhaseError(current, nearestMountedAncestor, error$159); + } catch (error$161) { + captureCommitPhaseError(current, nearestMountedAncestor, error$161); } } function safelyAttachRef(current, nearestMountedAncestor) { @@ -9298,6 +9561,15 @@ function safelyAttachRef(current, nearestMountedAncestor) { var instanceToUse = current.stateNode; break; case 30: + var instance = current.stateNode, + name = getViewTransitionName(current.memoizedProps, instance); + if (null === instance.ref || instance.ref.name !== name) + instance.ref = createViewTransitionInstance(name); + instanceToUse = instance.ref; + break; + case 7: + null === current.stateNode && + (current.stateNode = new FragmentInstance(current)); instanceToUse = current.stateNode; break; default: @@ -9346,8 +9618,8 @@ function safelyDetachRef(current, nearestMountedAncestor) { recordEffectDuration(current); } else ref(null); - } catch (error$160) { - captureCommitPhaseError(current, nearestMountedAncestor, error$160); + } catch (error$163) { + captureCommitPhaseError(current, nearestMountedAncestor, error$163); } else ref.current = null; } @@ -9409,6 +9681,37 @@ function commitHostUpdate(finishedWork, newProps, oldProps) { captureCommitPhaseError(finishedWork, finishedWork.return, error); } } +function commitNewChildToFragmentInstances(fiber, parentFragmentInstances) { + if ( + 5 === fiber.tag && + null === fiber.alternate && + null !== parentFragmentInstances + ) + for (var i = 0; i < parentFragmentInstances.length; i++) + commitNewChildToFragmentInstance( + fiber.stateNode, + parentFragmentInstances[i] + ); +} +function commitFragmentInstanceDeletionEffects(fiber) { + for (var parent = fiber.return; null !== parent; ) { + if (isFragmentInstanceParent(parent)) { + var childElement = fiber.stateNode, + eventListeners = parent.stateNode._eventListeners; + if (null !== eventListeners) + for (var i = 0; i < eventListeners.length; i++) { + var _eventListeners$i4 = eventListeners[i]; + childElement.removeEventListener( + _eventListeners$i4.type, + _eventListeners$i4.listener, + _eventListeners$i4.optionsOrUseCapture + ); + } + } + if (isHostParent(parent)) break; + parent = parent.return; + } +} function isHostParent(fiber) { return ( 5 === fiber.tag || @@ -9418,6 +9721,9 @@ function isHostParent(fiber) { 4 === fiber.tag ); } +function isFragmentInstanceParent(fiber) { + return fiber && 7 === fiber.tag && null !== fiber.stateNode; +} function getHostSibling(fiber) { a: for (;;) { for (; null === fiber.sibling; ) { @@ -9438,28 +9744,35 @@ function getHostSibling(fiber) { if (!(fiber.flags & 2)) return fiber.stateNode; } } -function insertOrAppendPlacementNodeIntoContainer(node, before, parent) { +function insertOrAppendPlacementNodeIntoContainer( + node, + before, + parent, + parentFragmentInstances +) { var tag = node.tag; if (5 === tag || 6 === tag) - (node = node.stateNode), + (tag = node.stateNode), before ? (9 === parent.nodeType ? parent.body : "HTML" === parent.nodeName ? parent.ownerDocument.body : parent - ).insertBefore(node, before) + ).insertBefore(tag, before) : ((before = 9 === parent.nodeType ? parent.body : "HTML" === parent.nodeName ? parent.ownerDocument.body : parent), - before.appendChild(node), + before.appendChild(tag), (parent = parent._reactRootContainer), (null !== parent && void 0 !== parent) || null !== before.onclick || - (before.onclick = noop$1)); + (before.onclick = noop$1)), + commitNewChildToFragmentInstances(node, parentFragmentInstances), + (viewTransitionMutationContext = !0); else if ( 4 !== tag && (27 === tag && @@ -9469,19 +9782,36 @@ function insertOrAppendPlacementNodeIntoContainer(node, before, parent) { null !== node) ) for ( - insertOrAppendPlacementNodeIntoContainer(node, before, parent), + insertOrAppendPlacementNodeIntoContainer( + node, + before, + parent, + parentFragmentInstances + ), node = node.sibling; null !== node; ) - insertOrAppendPlacementNodeIntoContainer(node, before, parent), + insertOrAppendPlacementNodeIntoContainer( + node, + before, + parent, + parentFragmentInstances + ), (node = node.sibling); } -function insertOrAppendPlacementNode(node, before, parent) { +function insertOrAppendPlacementNode( + node, + before, + parent, + parentFragmentInstances +) { var tag = node.tag; if (5 === tag || 6 === tag) - (node = node.stateNode), - before ? parent.insertBefore(node, before) : parent.appendChild(node); + (tag = node.stateNode), + before ? parent.insertBefore(tag, before) : parent.appendChild(tag), + commitNewChildToFragmentInstances(node, parentFragmentInstances), + (viewTransitionMutationContext = !0); else if ( 4 !== tag && (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode), @@ -9489,11 +9819,23 @@ function insertOrAppendPlacementNode(node, before, parent) { null !== node) ) for ( - insertOrAppendPlacementNode(node, before, parent), node = node.sibling; + insertOrAppendPlacementNode( + node, + before, + parent, + parentFragmentInstances + ), + node = node.sibling; null !== node; ) - insertOrAppendPlacementNode(node, before, parent), (node = node.sibling); + insertOrAppendPlacementNode( + node, + before, + parent, + parentFragmentInstances + ), + (node = node.sibling); } function commitHostSingletonAcquisition(finishedWork) { var singleton = finishedWork.stateNode, @@ -9512,13 +9854,390 @@ function commitHostSingletonAcquisition(finishedWork) { captureCommitPhaseError(finishedWork, finishedWork.return, error); } } +var shouldStartViewTransition = !1, + appearingViewTransitions = null; +function trackEnterViewTransitions(placement) { + if (30 === placement.tag || 0 !== (placement.subtreeFlags & 33554432)) + shouldStartViewTransition = !0; +} +var viewTransitionCancelableChildren = null; +function pushViewTransitionCancelableScope() { + var prevChildren = viewTransitionCancelableChildren; + viewTransitionCancelableChildren = null; + return prevChildren; +} +var viewTransitionHostInstanceIdx = 0; +function applyViewTransitionToHostInstances( + fiber, + name, + className, + collectMeasurements, + stopAtNestedViewTransitions +) { + viewTransitionHostInstanceIdx = 0; + return applyViewTransitionToHostInstancesRecursive( + fiber.child, + name, + className, + collectMeasurements, + stopAtNestedViewTransitions + ); +} +function applyViewTransitionToHostInstancesRecursive( + child, + name, + className, + collectMeasurements, + stopAtNestedViewTransitions +) { + for (var inViewport = !1; null !== child; ) { + if (5 === child.tag) { + var instance = child.stateNode; + if (null !== collectMeasurements) { + var measurement = measureInstance(instance); + collectMeasurements.push(measurement); + measurement.view && (inViewport = !0); + } else + inViewport || (measureInstance(instance).view && (inViewport = !0)); + shouldStartViewTransition = !0; + applyViewTransitionName( + instance, + 0 === viewTransitionHostInstanceIdx + ? name + : name + "_" + viewTransitionHostInstanceIdx, + className + ); + viewTransitionHostInstanceIdx++; + } else if (22 !== child.tag || null === child.memoizedState) + (30 === child.tag && stopAtNestedViewTransitions) || + (applyViewTransitionToHostInstancesRecursive( + child.child, + name, + className, + collectMeasurements, + stopAtNestedViewTransitions + ) && + (inViewport = !0)); + child = child.sibling; + } + return inViewport; +} +function restoreViewTransitionOnHostInstances( + child, + stopAtNestedViewTransitions +) { + for (; null !== child; ) { + if (5 === child.tag) + restoreViewTransitionName(child.stateNode, child.memoizedProps); + else if (22 !== child.tag || null === child.memoizedState) + (30 === child.tag && stopAtNestedViewTransitions) || + restoreViewTransitionOnHostInstances( + child.child, + stopAtNestedViewTransitions + ); + child = child.sibling; + } +} +function commitAppearingPairViewTransitions(placement) { + if (0 !== (placement.subtreeFlags & 18874368)) + for (placement = placement.child; null !== placement; ) { + if (22 !== placement.tag || null !== placement.memoizedState) + if ( + (commitAppearingPairViewTransitions(placement), + 30 === placement.tag && + 0 !== (placement.flags & 18874368) && + placement.stateNode.paired) + ) { + var props = placement.memoizedProps; + if (null == props.name || "auto" === props.name) + throw Error(formatProdErrorMessage(544)); + var name = props.name; + props = getViewTransitionClassName(props.default, props.share); + "none" !== props && + (applyViewTransitionToHostInstances( + placement, + name, + props, + null, + !1 + ) || + restoreViewTransitionOnHostInstances(placement.child, !1)); + } + placement = placement.sibling; + } +} +function commitEnterViewTransitions(placement, gesture) { + if (30 === placement.tag) { + var state = placement.stateNode, + props = placement.memoizedProps, + name = getViewTransitionName(props, state), + className = getViewTransitionClassName( + props.default, + state.paired ? props.share : props.enter + ); + "none" !== className + ? applyViewTransitionToHostInstances(placement, name, className, null, !1) + ? (commitAppearingPairViewTransitions(placement), + state.paired || + gesture || + scheduleViewTransitionEvent(placement, props.onEnter)) + : restoreViewTransitionOnHostInstances(placement.child, !1) + : commitAppearingPairViewTransitions(placement); + } else if (0 !== (placement.subtreeFlags & 33554432)) + for (placement = placement.child; null !== placement; ) + commitEnterViewTransitions(placement, gesture), + (placement = placement.sibling); + else commitAppearingPairViewTransitions(placement); +} +function commitDeletedPairViewTransitions(deletion) { + if ( + null !== appearingViewTransitions && + 0 !== appearingViewTransitions.size + ) { + var pairs = appearingViewTransitions; + if (0 !== (deletion.subtreeFlags & 18874368)) + for (deletion = deletion.child; null !== deletion; ) { + if (22 !== deletion.tag || null !== deletion.memoizedState) { + if (30 === deletion.tag && 0 !== (deletion.flags & 18874368)) { + var props = deletion.memoizedProps, + name = props.name; + if (null != name && "auto" !== name) { + var pair = pairs.get(name); + if (void 0 !== pair) { + var className = getViewTransitionClassName( + props.default, + props.share + ); + "none" !== className && + (applyViewTransitionToHostInstances( + deletion, + name, + className, + null, + !1 + ) + ? ((className = deletion.stateNode), + (pair.paired = className), + (className.paired = pair), + scheduleViewTransitionEvent(deletion, props.onShare)) + : restoreViewTransitionOnHostInstances(deletion.child, !1)); + pairs.delete(name); + if (0 === pairs.size) break; + } + } + } + commitDeletedPairViewTransitions(deletion); + } + deletion = deletion.sibling; + } + } +} +function commitExitViewTransitions(deletion) { + if (30 === deletion.tag) { + var props = deletion.memoizedProps, + name = getViewTransitionName(props, deletion.stateNode), + pair = + null !== appearingViewTransitions + ? appearingViewTransitions.get(name) + : void 0, + className = getViewTransitionClassName( + props.default, + void 0 !== pair ? props.share : props.exit + ); + "none" !== className && + (applyViewTransitionToHostInstances(deletion, name, className, null, !1) + ? void 0 !== pair + ? ((className = deletion.stateNode), + (pair.paired = className), + (className.paired = pair), + appearingViewTransitions.delete(name), + scheduleViewTransitionEvent(deletion, props.onShare)) + : scheduleViewTransitionEvent(deletion, props.onExit) + : restoreViewTransitionOnHostInstances(deletion.child, !1)); + null !== appearingViewTransitions && + commitDeletedPairViewTransitions(deletion); + } else if (0 !== (deletion.subtreeFlags & 33554432)) + for (deletion = deletion.child; null !== deletion; ) + commitExitViewTransitions(deletion), (deletion = deletion.sibling); + else + null !== appearingViewTransitions && + commitDeletedPairViewTransitions(deletion); +} +function commitNestedViewTransitions(changedParent) { + for (changedParent = changedParent.child; null !== changedParent; ) { + if (30 === changedParent.tag) { + var props = changedParent.memoizedProps, + name = getViewTransitionName(props, changedParent.stateNode); + props = getViewTransitionClassName(props.default, props.update); + changedParent.flags &= -5; + "none" !== props && + applyViewTransitionToHostInstances( + changedParent, + name, + props, + (changedParent.memoizedState = []), + !1 + ); + } else + 0 !== (changedParent.subtreeFlags & 33554432) && + commitNestedViewTransitions(changedParent); + changedParent = changedParent.sibling; + } +} +function restorePairedViewTransitions(parent) { + if (0 !== (parent.subtreeFlags & 18874368)) + for (parent = parent.child; null !== parent; ) { + if (22 !== parent.tag || null !== parent.memoizedState) { + if (30 === parent.tag && 0 !== (parent.flags & 18874368)) { + var instance = parent.stateNode; + null !== instance.paired && + ((instance.paired = null), + restoreViewTransitionOnHostInstances(parent.child, !1)); + } + restorePairedViewTransitions(parent); + } + parent = parent.sibling; + } +} +function restoreEnterOrExitViewTransitions(fiber) { + if (30 === fiber.tag) + (fiber.stateNode.paired = null), + restoreViewTransitionOnHostInstances(fiber.child, !1), + restorePairedViewTransitions(fiber); + else if (0 !== (fiber.subtreeFlags & 33554432)) + for (fiber = fiber.child; null !== fiber; ) + restoreEnterOrExitViewTransitions(fiber), (fiber = fiber.sibling); + else restorePairedViewTransitions(fiber); +} +function restoreNestedViewTransitions(changedParent) { + for (changedParent = changedParent.child; null !== changedParent; ) + 30 === changedParent.tag + ? restoreViewTransitionOnHostInstances(changedParent.child, !1) + : 0 !== (changedParent.subtreeFlags & 33554432) && + restoreNestedViewTransitions(changedParent), + (changedParent = changedParent.sibling); +} +function measureViewTransitionHostInstancesRecursive( + parentViewTransition, + child, + newName, + oldName, + className, + previousMeasurements, + stopAtNestedViewTransitions +) { + for (var inViewport = !1; null !== child; ) { + if (5 === child.tag) { + var instance = child.stateNode; + if ( + null !== previousMeasurements && + viewTransitionHostInstanceIdx < previousMeasurements.length + ) { + var previousMeasurement = + previousMeasurements[viewTransitionHostInstanceIdx], + nextMeasurement = measureInstance(instance); + if (previousMeasurement.view || nextMeasurement.view) inViewport = !0; + var JSCompiler_temp; + if ((JSCompiler_temp = 0 === (parentViewTransition.flags & 4))) + if (nextMeasurement.clip) JSCompiler_temp = !0; + else { + JSCompiler_temp = previousMeasurement.rect; + var newRect = nextMeasurement.rect; + JSCompiler_temp = + JSCompiler_temp.y !== newRect.y || + JSCompiler_temp.x !== newRect.x || + JSCompiler_temp.height !== newRect.height || + JSCompiler_temp.width !== newRect.width; + } + JSCompiler_temp && (parentViewTransition.flags |= 4); + nextMeasurement.abs + ? (nextMeasurement = !previousMeasurement.abs) + : ((previousMeasurement = previousMeasurement.rect), + (nextMeasurement = nextMeasurement.rect), + (nextMeasurement = + previousMeasurement.height !== nextMeasurement.height || + previousMeasurement.width !== nextMeasurement.width)); + nextMeasurement && (parentViewTransition.flags |= 32); + } else parentViewTransition.flags |= 32; + 0 !== (parentViewTransition.flags & 4) && + applyViewTransitionName( + instance, + 0 === viewTransitionHostInstanceIdx + ? newName + : newName + "_" + viewTransitionHostInstanceIdx, + className + ); + (inViewport && 0 !== (parentViewTransition.flags & 4)) || + (null === viewTransitionCancelableChildren && + (viewTransitionCancelableChildren = []), + viewTransitionCancelableChildren.push( + instance, + oldName, + child.memoizedProps + )); + viewTransitionHostInstanceIdx++; + } else if (22 !== child.tag || null === child.memoizedState) + 30 === child.tag && stopAtNestedViewTransitions + ? (parentViewTransition.flags |= child.flags & 32) + : measureViewTransitionHostInstancesRecursive( + parentViewTransition, + child.child, + newName, + oldName, + className, + previousMeasurements, + stopAtNestedViewTransitions + ) && (inViewport = !0); + child = child.sibling; + } + return inViewport; +} +function measureNestedViewTransitions(changedParent, gesture) { + for (changedParent = changedParent.child; null !== changedParent; ) { + if (30 === changedParent.tag) { + var props = changedParent.memoizedProps, + state = changedParent.stateNode, + name = getViewTransitionName(props, state), + className = getViewTransitionClassName(props.default, props.update); + if (gesture) { + state = state.clones; + var previousMeasurements = + null === state ? null : state.map(measureClonedInstance); + } else + (previousMeasurements = changedParent.memoizedState), + (changedParent.memoizedState = null); + state = changedParent; + var child = changedParent.child; + viewTransitionHostInstanceIdx = 0; + name = measureViewTransitionHostInstancesRecursive( + state, + child, + name, + name, + className, + previousMeasurements, + !1 + ); + 0 !== (changedParent.flags & 4) && + name && + (gesture || scheduleViewTransitionEvent(changedParent, props.onUpdate)); + } else + 0 !== (changedParent.subtreeFlags & 33554432) && + measureNestedViewTransitions(changedParent, gesture); + changedParent = changedParent.sibling; + } +} var offscreenSubtreeIsHidden = !1, offscreenSubtreeWasHidden = !1, needsFormReset = !1, PossiblyWeakSet = "function" === typeof WeakSet ? WeakSet : Set, nextEffect = null, inProgressLanes = null, - inProgressRoot = null; + inProgressRoot = null, + viewTransitionContextChanged = !1, + inUpdateViewTransition = !1, + rootViewTransitionAffected = !1, + rootViewTransitionNameCanceled = !1; function isHydratingParent(current, finishedWork) { return 31 === finishedWork.tag ? ((finishedWork = finishedWork.memoizedState), @@ -9533,7 +10252,7 @@ function isHydratingParent(current, finishedWork) { ? current.memoizedState.isDehydrated && 0 === (finishedWork.flags & 256) : !1; } -function commitBeforeMutationEffects(root, firstChild) { +function commitBeforeMutationEffects(root, firstChild, committedLanes) { root = root.containerInfo; eventsEnabled = _enabled; root = getActiveElementDeep(root); @@ -9604,134 +10323,188 @@ function commitBeforeMutationEffects(root, firstChild) { } else JSCompiler_temp = null; selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp }; _enabled = !1; - for (nextEffect = firstChild; null !== nextEffect; ) + committedLanes = (committedLanes & 335544064) === committedLanes; + nextEffect = firstChild; + for (firstChild = committedLanes ? 9270 : 1028; null !== nextEffect; ) { + root = nextEffect; if ( - ((firstChild = nextEffect), - (root = firstChild.child), - 0 !== (firstChild.subtreeFlags & 1028) && null !== root) + committedLanes && + ((JSCompiler_temp = root.deletions), null !== JSCompiler_temp) ) - (root.return = firstChild), (nextEffect = root); - else - for (; null !== nextEffect; ) { - firstChild = nextEffect; - focusNode = firstChild.alternate; - root = firstChild.flags; - switch (firstChild.tag) { - case 0: - if ( - 0 !== (root & 4) && - ((root = firstChild.updateQueue), - (root = null !== root ? root.events : null), - null !== root) - ) - for ( - JSCompiler_temp = 0; - JSCompiler_temp < root.length; - JSCompiler_temp++ - ) - (anchorOffset = root[JSCompiler_temp]), - (anchorOffset.ref.impl = anchorOffset.nextImpl); - break; - case 11: - case 15: - break; - case 1: - if (0 !== (root & 1024) && null !== focusNode) { - root = void 0; - JSCompiler_temp = firstChild; - anchorOffset = focusNode.memoizedProps; - focusNode = focusNode.memoizedState; - selection = JSCompiler_temp.stateNode; - try { - var resolvedPrevProps = resolveClassComponentProps( - JSCompiler_temp.type, - anchorOffset - ); - root = selection.getSnapshotBeforeUpdate( - resolvedPrevProps, - focusNode - ); - selection.__reactInternalSnapshotBeforeUpdate = root; - } catch (error) { - captureCommitPhaseError( - JSCompiler_temp, - JSCompiler_temp.return, - error - ); - } - } - break; - case 3: - if (0 !== (root & 1024)) - if ( - ((root = firstChild.stateNode.containerInfo), - (JSCompiler_temp = root.nodeType), - 9 === JSCompiler_temp) - ) - clearContainerSparingly(root); - else if (1 === JSCompiler_temp) - switch (root.nodeName) { - case "HEAD": - case "HTML": - case "BODY": - clearContainerSparingly(root); - break; - default: - root.textContent = ""; - } - break; - case 5: - case 26: - case 27: - case 6: - case 4: - case 17: - break; - default: - if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163)); - } - root = firstChild.sibling; - if (null !== root) { - root.return = firstChild.return; - nextEffect = root; - break; + for ( + anchorOffset = 0; + anchorOffset < JSCompiler_temp.length; + anchorOffset++ + ) + committedLanes && + commitExitViewTransitions(JSCompiler_temp[anchorOffset]); + if (null === root.alternate && 0 !== (root.flags & 2)) + committedLanes && trackEnterViewTransitions(root), + commitBeforeMutationEffects_complete(committedLanes); + else { + if (22 === root.tag) + if (((JSCompiler_temp = root.alternate), null !== root.memoizedState)) { + null !== JSCompiler_temp && + null === JSCompiler_temp.memoizedState && + committedLanes && + commitExitViewTransitions(JSCompiler_temp); + commitBeforeMutationEffects_complete(committedLanes); + continue; + } else if ( + null !== JSCompiler_temp && + null !== JSCompiler_temp.memoizedState + ) { + committedLanes && trackEnterViewTransitions(root); + commitBeforeMutationEffects_complete(committedLanes); + continue; } - nextEffect = firstChild.return; - } + JSCompiler_temp = root.child; + 0 !== (root.subtreeFlags & firstChild) && null !== JSCompiler_temp + ? ((JSCompiler_temp.return = root), (nextEffect = JSCompiler_temp)) + : (committedLanes && commitNestedViewTransitions(root), + commitBeforeMutationEffects_complete(committedLanes)); + } + } + appearingViewTransitions = null; } -function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { - var prevEffectStart = pushComponentEffectStart(), - prevEffectDuration = pushComponentEffectDuration(), - prevEffectErrors = pushComponentEffectErrors(), - prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(), - flags = finishedWork.flags; - switch (finishedWork.tag) { - case 0: - case 11: - case 15: - recursivelyTraverseLayoutEffects(finishedRoot, finishedWork); - flags & 4 && commitHookLayoutEffects(finishedWork, 5); - break; - case 1: - recursivelyTraverseLayoutEffects(finishedRoot, finishedWork); - if (flags & 4) - if (((finishedRoot = finishedWork.stateNode), null === current)) - if (shouldProfile(finishedWork)) { - startEffectTimer(); - try { - finishedRoot.componentDidMount(); - } catch (error) { - captureCommitPhaseError(finishedWork, finishedWork.return, error); - } - recordEffectDuration(); - } else - try { - finishedRoot.componentDidMount(); - } catch (error$156) { +function commitBeforeMutationEffects_complete( + isViewTransitionEligible$jscomp$0 +) { + for (; null !== nextEffect; ) { + var fiber = nextEffect, + isViewTransitionEligible = isViewTransitionEligible$jscomp$0, + current = fiber.alternate, + flags = fiber.flags; + switch (fiber.tag) { + case 0: + if ( + 0 !== (flags & 4) && + ((current = fiber.updateQueue), + (current = null !== current ? current.events : null), + null !== current) + ) + for ( + isViewTransitionEligible = 0; + isViewTransitionEligible < current.length; + isViewTransitionEligible++ + ) + (flags = current[isViewTransitionEligible]), + (flags.ref.impl = flags.nextImpl); + break; + case 11: + case 15: + break; + case 1: + if (0 !== (flags & 1024) && null !== current) { + isViewTransitionEligible = void 0; + flags = current.memoizedProps; + current = current.memoizedState; + var instance = fiber.stateNode; + try { + var resolvedPrevProps = resolveClassComponentProps( + fiber.type, + flags + ); + isViewTransitionEligible = instance.getSnapshotBeforeUpdate( + resolvedPrevProps, + current + ); + instance.__reactInternalSnapshotBeforeUpdate = + isViewTransitionEligible; + } catch (error) { + captureCommitPhaseError(fiber, fiber.return, error); + } + } + break; + case 3: + if (0 !== (flags & 1024)) + if ( + ((current = fiber.stateNode.containerInfo), + (isViewTransitionEligible = current.nodeType), + 9 === isViewTransitionEligible) + ) + clearContainerSparingly(current); + else if (1 === isViewTransitionEligible) + switch (current.nodeName) { + case "HEAD": + case "HTML": + case "BODY": + clearContainerSparingly(current); + break; + default: + current.textContent = ""; + } + break; + case 5: + case 26: + case 27: + case 6: + case 4: + case 17: + break; + case 30: + isViewTransitionEligible && + null !== current && + ((isViewTransitionEligible = getViewTransitionName( + current.memoizedProps, + current.stateNode + )), + (flags = fiber.memoizedProps), + (flags = getViewTransitionClassName(flags.default, flags.update)), + "none" !== flags && + applyViewTransitionToHostInstances( + current, + isViewTransitionEligible, + flags, + (current.memoizedState = []), + !0 + )); + break; + default: + if (0 !== (flags & 1024)) throw Error(formatProdErrorMessage(163)); + } + current = fiber.sibling; + if (null !== current) { + current.return = fiber.return; + nextEffect = current; + break; + } + nextEffect = fiber.return; + } +} +function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { + var prevEffectStart = pushComponentEffectStart(), + prevEffectDuration = pushComponentEffectDuration(), + prevEffectErrors = pushComponentEffectErrors(), + prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(), + flags = finishedWork.flags; + switch (finishedWork.tag) { + case 0: + case 11: + case 15: + recursivelyTraverseLayoutEffects(finishedRoot, finishedWork); + flags & 4 && commitHookLayoutEffects(finishedWork, 5); + break; + case 1: + recursivelyTraverseLayoutEffects(finishedRoot, finishedWork); + if (flags & 4) + if (((finishedRoot = finishedWork.stateNode), null === current)) + if (shouldProfile(finishedWork)) { + startEffectTimer(); + try { + finishedRoot.componentDidMount(); + } catch (error) { + captureCommitPhaseError(finishedWork, finishedWork.return, error); + } + recordEffectDuration(); + } else + try { + finishedRoot.componentDidMount(); + } catch (error$158) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$156 + error$158 ); } else { @@ -9748,11 +10521,11 @@ function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { current, finishedRoot.__reactInternalSnapshotBeforeUpdate ); - } catch (error$157) { + } catch (error$159) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$157 + error$159 ); } recordEffectDuration(); @@ -9763,11 +10536,11 @@ function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { current, finishedRoot.__reactInternalSnapshotBeforeUpdate ); - } catch (error$158) { + } catch (error$160) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$158 + error$160 ); } } @@ -9868,7 +10641,11 @@ function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { } break; case 30: + recursivelyTraverseLayoutEffects(finishedRoot, finishedWork); + flags & 512 && safelyAttachRef(finishedWork, finishedWork.return); break; + case 7: + flags & 512 && safelyAttachRef(finishedWork, finishedWork.return); default: recursivelyTraverseLayoutEffects(finishedRoot, finishedWork); } @@ -9975,7 +10752,9 @@ function commitDeletionEffectsOnFiber( break; case 5: offscreenSubtreeWasHidden || - safelyDetachRef(deletedFiber, nearestMountedAncestor); + safelyDetachRef(deletedFiber, nearestMountedAncestor), + 5 === deletedFiber.tag && + commitFragmentInstanceDeletionEffects(deletedFiber); case 6: prevHostParent = hostParent; prevHostParentIsContainer = hostParentIsContainer; @@ -9995,7 +10774,8 @@ function commitDeletionEffectsOnFiber( : "HTML" === hostParent.nodeName ? hostParent.ownerDocument.body : hostParent - ).removeChild(deletedFiber.stateNode); + ).removeChild(deletedFiber.stateNode), + (viewTransitionMutationContext = !0); } catch (error) { captureCommitPhaseError( deletedFiber, @@ -10005,7 +10785,8 @@ function commitDeletionEffectsOnFiber( } else try { - hostParent.removeChild(deletedFiber.stateNode); + hostParent.removeChild(deletedFiber.stateNode), + (viewTransitionMutationContext = !0); } catch (error) { captureCommitPhaseError( deletedFiber, @@ -10089,6 +10870,23 @@ function commitDeletionEffectsOnFiber( ); offscreenSubtreeWasHidden = prevHostParent; break; + case 30: + safelyDetachRef(deletedFiber, nearestMountedAncestor); + recursivelyTraverseDeletionEffects( + finishedRoot, + nearestMountedAncestor, + deletedFiber + ); + break; + case 7: + offscreenSubtreeWasHidden || + safelyDetachRef(deletedFiber, nearestMountedAncestor); + recursivelyTraverseDeletionEffects( + finishedRoot, + nearestMountedAncestor, + deletedFiber + ); + break; default: recursivelyTraverseDeletionEffects( finishedRoot, @@ -10177,7 +10975,7 @@ function attachSuspenseRetryListeners(finishedWork, wakeables) { } }); } -function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) { +function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber, lanes) { var deletions = parentFiber.deletions; if (null !== deletions) for (var i = 0; i < deletions.length; i++) { @@ -10228,11 +11026,11 @@ function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) { } if (parentFiber.subtreeFlags & 13886) for (parentFiber = parentFiber.child; null !== parentFiber; ) - commitMutationEffectsOnFiber(parentFiber, root$jscomp$0), + commitMutationEffectsOnFiber(parentFiber, root$jscomp$0, lanes), (parentFiber = parentFiber.sibling); } var currentHoistableRoot = null; -function commitMutationEffectsOnFiber(finishedWork, root) { +function commitMutationEffectsOnFiber(finishedWork, root, lanes) { var prevEffectStart = pushComponentEffectStart(), prevEffectDuration = pushComponentEffectDuration(), prevEffectErrors = pushComponentEffectErrors(), @@ -10244,7 +11042,7 @@ function commitMutationEffectsOnFiber(finishedWork, root) { case 11: case 14: case 15: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 4 && (commitHookEffectListUnmount(3, finishedWork, finishedWork.return), @@ -10252,172 +11050,163 @@ function commitMutationEffectsOnFiber(finishedWork, root) { commitHookLayoutUnmountEffects(finishedWork, finishedWork.return, 5)); break; case 1: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 512 && (offscreenSubtreeWasHidden || null === current || safelyDetachRef(current, current.return)); - if ( - flags & 64 && + flags & 64 && offscreenSubtreeIsHidden && - ((flags = finishedWork.updateQueue), - null !== flags && ((current = flags.callbacks), null !== current)) - ) { - var existingHiddenCallbacks = flags.shared.hiddenCallbacks; - flags.shared.hiddenCallbacks = - null === existingHiddenCallbacks - ? current - : existingHiddenCallbacks.concat(current); - } + ((current = finishedWork.updateQueue), + null !== current && + ((flags = current.callbacks), + null !== flags && + ((root = current.shared.hiddenCallbacks), + (current.shared.hiddenCallbacks = + null === root ? flags : root.concat(flags))))); break; case 26: - existingHiddenCallbacks = currentHoistableRoot; - recursivelyTraverseMutationEffects(root, finishedWork); + var hoistableRoot = currentHoistableRoot; + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 512 && (offscreenSubtreeWasHidden || null === current || safelyDetachRef(current, current.return)); - if (flags & 4) { - var currentResource = null !== current ? current.memoizedState : null; - flags = finishedWork.memoizedState; - if (null === current) + if (flags & 4) + if ( + ((root = null !== current ? current.memoizedState : null), + (flags = finishedWork.memoizedState), + null === current) + ) if (null === flags) if (null === finishedWork.stateNode) { a: { - flags = finishedWork.type; - current = finishedWork.memoizedProps; - existingHiddenCallbacks = - existingHiddenCallbacks.ownerDocument || - existingHiddenCallbacks; - b: switch (flags) { + current = finishedWork.type; + flags = finishedWork.memoizedProps; + root = hoistableRoot.ownerDocument || hoistableRoot; + b: switch (current) { case "title": - currentResource = - existingHiddenCallbacks.getElementsByTagName("title")[0]; + lanes = root.getElementsByTagName("title")[0]; if ( - !currentResource || - currentResource[internalHoistableMarker] || - currentResource[internalInstanceKey] || - "http://www.w3.org/2000/svg" === - currentResource.namespaceURI || - currentResource.hasAttribute("itemprop") + !lanes || + lanes[internalHoistableMarker] || + lanes[internalInstanceKey] || + "http://www.w3.org/2000/svg" === lanes.namespaceURI || + lanes.hasAttribute("itemprop") ) - (currentResource = - existingHiddenCallbacks.createElement(flags)), - existingHiddenCallbacks.head.insertBefore( - currentResource, - existingHiddenCallbacks.querySelector("head > title") + (lanes = root.createElement(current)), + root.head.insertBefore( + lanes, + root.querySelector("head > title") ); - setInitialProperties(currentResource, flags, current); - currentResource[internalInstanceKey] = finishedWork; - markNodeAsHoistable(currentResource); - flags = currentResource; + setInitialProperties(lanes, current, flags); + lanes[internalInstanceKey] = finishedWork; + markNodeAsHoistable(lanes); + current = lanes; break a; case "link": - var maybeNodes = getHydratableHoistableCache( - "link", - "href", - existingHiddenCallbacks - ).get(flags + (current.href || "")); - if (maybeNodes) - for (var i = 0; i < maybeNodes.length; i++) + if ( + (hoistableRoot = getHydratableHoistableCache( + "link", + "href", + root + ).get(current + (flags.href || ""))) + ) + for (var i = 0; i < hoistableRoot.length; i++) if ( - ((currentResource = maybeNodes[i]), - currentResource.getAttribute("href") === - (null == current.href || "" === current.href + ((lanes = hoistableRoot[i]), + lanes.getAttribute("href") === + (null == flags.href || "" === flags.href ? null - : current.href) && - currentResource.getAttribute("rel") === - (null == current.rel ? null : current.rel) && - currentResource.getAttribute("title") === - (null == current.title ? null : current.title) && - currentResource.getAttribute("crossorigin") === - (null == current.crossOrigin + : flags.href) && + lanes.getAttribute("rel") === + (null == flags.rel ? null : flags.rel) && + lanes.getAttribute("title") === + (null == flags.title ? null : flags.title) && + lanes.getAttribute("crossorigin") === + (null == flags.crossOrigin ? null - : current.crossOrigin)) + : flags.crossOrigin)) ) { - maybeNodes.splice(i, 1); + hoistableRoot.splice(i, 1); break b; } - currentResource = - existingHiddenCallbacks.createElement(flags); - setInitialProperties(currentResource, flags, current); - existingHiddenCallbacks.head.appendChild(currentResource); + lanes = root.createElement(current); + setInitialProperties(lanes, current, flags); + root.head.appendChild(lanes); break; case "meta": if ( - (maybeNodes = getHydratableHoistableCache( + (hoistableRoot = getHydratableHoistableCache( "meta", "content", - existingHiddenCallbacks - ).get(flags + (current.content || ""))) + root + ).get(current + (flags.content || ""))) ) - for (i = 0; i < maybeNodes.length; i++) + for (i = 0; i < hoistableRoot.length; i++) if ( - ((currentResource = maybeNodes[i]), - currentResource.getAttribute("content") === - (null == current.content + ((lanes = hoistableRoot[i]), + lanes.getAttribute("content") === + (null == flags.content ? null - : "" + current.content) && - currentResource.getAttribute("name") === - (null == current.name ? null : current.name) && - currentResource.getAttribute("property") === - (null == current.property + : "" + flags.content) && + lanes.getAttribute("name") === + (null == flags.name ? null : flags.name) && + lanes.getAttribute("property") === + (null == flags.property ? null - : current.property) && - currentResource.getAttribute("http-equiv") === - (null == current.httpEquiv + : flags.property) && + lanes.getAttribute("http-equiv") === + (null == flags.httpEquiv ? null - : current.httpEquiv) && - currentResource.getAttribute("charset") === - (null == current.charSet - ? null - : current.charSet)) + : flags.httpEquiv) && + lanes.getAttribute("charset") === + (null == flags.charSet ? null : flags.charSet)) ) { - maybeNodes.splice(i, 1); + hoistableRoot.splice(i, 1); break b; } - currentResource = - existingHiddenCallbacks.createElement(flags); - setInitialProperties(currentResource, flags, current); - existingHiddenCallbacks.head.appendChild(currentResource); + lanes = root.createElement(current); + setInitialProperties(lanes, current, flags); + root.head.appendChild(lanes); break; default: - throw Error(formatProdErrorMessage(468, flags)); + throw Error(formatProdErrorMessage(468, current)); } - currentResource[internalInstanceKey] = finishedWork; - markNodeAsHoistable(currentResource); - flags = currentResource; + lanes[internalInstanceKey] = finishedWork; + markNodeAsHoistable(lanes); + current = lanes; } - finishedWork.stateNode = flags; + finishedWork.stateNode = current; } else mountHoistable( - existingHiddenCallbacks, + hoistableRoot, finishedWork.type, finishedWork.stateNode ); else finishedWork.stateNode = acquireResource( - existingHiddenCallbacks, + hoistableRoot, flags, finishedWork.memoizedProps ); else - currentResource !== flags - ? (null === currentResource + root !== flags + ? (null === root ? null !== current.stateNode && ((current = current.stateNode), current.parentNode.removeChild(current)) - : currentResource.count--, + : root.count--, null === flags ? mountHoistable( - existingHiddenCallbacks, + hoistableRoot, finishedWork.type, finishedWork.stateNode ) : acquireResource( - existingHiddenCallbacks, + hoistableRoot, flags, finishedWork.memoizedProps )) @@ -10428,10 +11217,9 @@ function commitMutationEffectsOnFiber(finishedWork, root) { finishedWork.memoizedProps, current.memoizedProps ); - } break; case 27: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 512 && (offscreenSubtreeWasHidden || @@ -10446,52 +11234,53 @@ function commitMutationEffectsOnFiber(finishedWork, root) { ); break; case 5: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 512 && (offscreenSubtreeWasHidden || null === current || safelyDetachRef(current, current.return)); if (finishedWork.flags & 32) { - existingHiddenCallbacks = finishedWork.stateNode; + root = finishedWork.stateNode; try { - setTextContent(existingHiddenCallbacks, ""); + setTextContent(root, ""), (viewTransitionMutationContext = !0); } catch (error) { captureCommitPhaseError(finishedWork, finishedWork.return, error); } } flags & 4 && null != finishedWork.stateNode && - ((existingHiddenCallbacks = finishedWork.memoizedProps), + ((root = finishedWork.memoizedProps), commitHostUpdate( finishedWork, - existingHiddenCallbacks, - null !== current ? current.memoizedProps : existingHiddenCallbacks + root, + null !== current ? current.memoizedProps : root )); flags & 1024 && (needsFormReset = !0); break; case 6: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); if (flags & 4) { if (null === finishedWork.stateNode) throw Error(formatProdErrorMessage(162)); - flags = finishedWork.memoizedProps; - current = finishedWork.stateNode; + current = finishedWork.memoizedProps; + flags = finishedWork.stateNode; try { - current.nodeValue = flags; + (flags.nodeValue = current), (viewTransitionMutationContext = !0); } catch (error) { captureCommitPhaseError(finishedWork, finishedWork.return, error); } } break; case 3: - existingHiddenCallbacks = pushNestedEffectDurations(); + hoistableRoot = pushNestedEffectDurations(); + viewTransitionMutationContext = !1; tagCaches = null; - currentResource = currentHoistableRoot; + i = currentHoistableRoot; currentHoistableRoot = getHoistableRoot(root.containerInfo); - recursivelyTraverseMutationEffects(root, finishedWork); - currentHoistableRoot = currentResource; + recursivelyTraverseMutationEffects(root, finishedWork, lanes); + currentHoistableRoot = i; commitReconciliationEffects(finishedWork); if (flags & 4 && null !== current && current.memoizedState.isDehydrated) try { @@ -10501,59 +11290,64 @@ function commitMutationEffectsOnFiber(finishedWork, root) { } needsFormReset && ((needsFormReset = !1), recursivelyResetForms(finishedWork)); - root.effectDuration += popNestedEffectDurations(existingHiddenCallbacks); + root.effectDuration += popNestedEffectDurations(hoistableRoot); + viewTransitionMutationContext = !1; break; case 4: + current = pushMutationContext(); flags = currentHoistableRoot; currentHoistableRoot = getHoistableRoot( finishedWork.stateNode.containerInfo ); - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); currentHoistableRoot = flags; + viewTransitionMutationContext && + inUpdateViewTransition && + (rootViewTransitionAffected = !0); + viewTransitionMutationContext = current; break; case 12: - flags = pushNestedEffectDurations(); - recursivelyTraverseMutationEffects(root, finishedWork); + current = pushNestedEffectDurations(); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); finishedWork.stateNode.effectDuration += - bubbleNestedEffectDurations(flags); + bubbleNestedEffectDurations(current); break; case 31: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 4 && - ((flags = finishedWork.updateQueue), - null !== flags && + ((current = finishedWork.updateQueue), + null !== current && ((finishedWork.updateQueue = null), - attachSuspenseRetryListeners(finishedWork, flags))); + attachSuspenseRetryListeners(finishedWork, current))); break; case 13: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); finishedWork.child.flags & 8192 && (null !== finishedWork.memoizedState) !== (null !== current && null !== current.memoizedState) && (globalMostRecentFallbackTime = now$1()); flags & 4 && - ((flags = finishedWork.updateQueue), - null !== flags && + ((current = finishedWork.updateQueue), + null !== current && ((finishedWork.updateQueue = null), - attachSuspenseRetryListeners(finishedWork, flags))); + attachSuspenseRetryListeners(finishedWork, current))); break; case 22: - existingHiddenCallbacks = null !== finishedWork.memoizedState; + hoistableRoot = null !== finishedWork.memoizedState; var wasHidden = null !== current && null !== current.memoizedState, prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden, prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden; - offscreenSubtreeIsHidden = - prevOffscreenSubtreeIsHidden || existingHiddenCallbacks; + offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || hoistableRoot; offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden; - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden; offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden; wasHidden && - !existingHiddenCallbacks && + !hoistableRoot && !prevOffscreenSubtreeIsHidden && !prevOffscreenSubtreeWasHidden && 0 !== (finishedWork.mode & 2) && @@ -10569,10 +11363,10 @@ function commitMutationEffectsOnFiber(finishedWork, root) { if (flags & 8192) a: for ( root = finishedWork.stateNode, - root._visibility = existingHiddenCallbacks + root._visibility = hoistableRoot ? root._visibility & -2 : root._visibility | 1, - !existingHiddenCallbacks || + !hoistableRoot || null === current || wasHidden || offscreenSubtreeIsHidden || @@ -10595,55 +11389,53 @@ function commitMutationEffectsOnFiber(finishedWork, root) { ) { if (5 === root.tag || 26 === root.tag) { if (null === current) { - wasHidden = current = root; + lanes = current = root; try { - if ( - ((currentResource = wasHidden.stateNode), - existingHiddenCallbacks) - ) - (maybeNodes = currentResource.style), - "function" === typeof maybeNodes.setProperty - ? maybeNodes.setProperty("display", "none", "important") - : (maybeNodes.display = "none"); - else { - i = wasHidden.stateNode; - var styleProp = wasHidden.memoizedProps.style, + if (((i = lanes.stateNode), hoistableRoot)) { + var style = i.style; + "function" === typeof style.setProperty + ? style.setProperty("display", "none", "important") + : (style.display = "none"); + } else { + var instance = lanes.stateNode, + styleProp = lanes.memoizedProps.style, display = void 0 !== styleProp && null !== styleProp && styleProp.hasOwnProperty("display") ? styleProp.display : null; - i.style.display = + instance.style.display = null == display || "boolean" === typeof display ? "" : ("" + display).trim(); } } catch (error) { - captureCommitPhaseError(wasHidden, wasHidden.return, error); + captureCommitPhaseError(lanes, lanes.return, error); } } } else if (6 === root.tag) { if (null === current) { - wasHidden = root; + lanes = root; try { - wasHidden.stateNode.nodeValue = existingHiddenCallbacks + (lanes.stateNode.nodeValue = hoistableRoot ? "" - : wasHidden.memoizedProps; + : lanes.memoizedProps), + (viewTransitionMutationContext = !0); } catch (error) { - captureCommitPhaseError(wasHidden, wasHidden.return, error); + captureCommitPhaseError(lanes, lanes.return, error); } } } else if (18 === root.tag) { if (null === current) { - wasHidden = root; + lanes = root; try { - var instance = wasHidden.stateNode; - existingHiddenCallbacks - ? hideOrUnhideDehydratedBoundary(instance, !0) - : hideOrUnhideDehydratedBoundary(wasHidden.stateNode, !1); + var instance$jscomp$0 = lanes.stateNode; + hoistableRoot + ? hideOrUnhideDehydratedBoundary(instance$jscomp$0, !0) + : hideOrUnhideDehydratedBoundary(lanes.stateNode, !1); } catch (error) { - captureCommitPhaseError(wasHidden, wasHidden.return, error); + captureCommitPhaseError(lanes, lanes.return, error); } } } else if ( @@ -10667,28 +11459,50 @@ function commitMutationEffectsOnFiber(finishedWork, root) { root = root.sibling; } flags & 4 && - ((flags = finishedWork.updateQueue), - null !== flags && - ((current = flags.retryQueue), - null !== current && - ((flags.retryQueue = null), - attachSuspenseRetryListeners(finishedWork, current)))); + ((current = finishedWork.updateQueue), + null !== current && + ((flags = current.retryQueue), + null !== flags && + ((current.retryQueue = null), + attachSuspenseRetryListeners(finishedWork, flags)))); break; case 19: - recursivelyTraverseMutationEffects(root, finishedWork); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); commitReconciliationEffects(finishedWork); flags & 4 && - ((flags = finishedWork.updateQueue), - null !== flags && + ((current = finishedWork.updateQueue), + null !== current && ((finishedWork.updateQueue = null), - attachSuspenseRetryListeners(finishedWork, flags))); + attachSuspenseRetryListeners(finishedWork, current))); break; case 30: + flags & 512 && + (offscreenSubtreeWasHidden || + null === current || + safelyDetachRef(current, current.return)); + flags = pushMutationContext(); + hoistableRoot = inUpdateViewTransition; + i = (lanes & 335544064) === lanes; + style = finishedWork.memoizedProps; + inUpdateViewTransition = + i && "none" !== getViewTransitionClassName(style.default, style.update); + recursivelyTraverseMutationEffects(root, finishedWork, lanes); + commitReconciliationEffects(finishedWork); + i && + null !== current && + viewTransitionMutationContext && + (finishedWork.flags |= 4); + inUpdateViewTransition = hoistableRoot; + viewTransitionMutationContext = flags; break; case 21: break; + case 7: + current && + null !== current.stateNode && + (current.stateNode._fragmentFiber = finishedWork); default: - recursivelyTraverseMutationEffects(root, finishedWork), + recursivelyTraverseMutationEffects(root, finishedWork, lanes), commitReconciliationEffects(finishedWork); } 0 !== (finishedWork.mode & 2) && @@ -10723,10 +11537,18 @@ function commitReconciliationEffects(finishedWork) { if (flags & 2) { try { for ( - var hostParentFiber, parentFiber = finishedWork.return; + var hostParentFiber, + parentFragmentInstances = null, + parentFiber = finishedWork.return; null !== parentFiber; ) { + if (isFragmentInstanceParent(parentFiber)) { + var fragmentInstance = parentFiber.stateNode; + null === parentFragmentInstances + ? (parentFragmentInstances = [fragmentInstance]) + : parentFragmentInstances.push(fragmentInstance); + } if (isHostParent(parentFiber)) { hostParentFiber = parentFiber; break; @@ -10738,23 +11560,34 @@ function commitReconciliationEffects(finishedWork) { case 27: var parent = hostParentFiber.stateNode, before = getHostSibling(finishedWork); - insertOrAppendPlacementNode(finishedWork, before, parent); + insertOrAppendPlacementNode( + finishedWork, + before, + parent, + parentFragmentInstances + ); break; case 5: - var parent$161 = hostParentFiber.stateNode; + var parent$164 = hostParentFiber.stateNode; hostParentFiber.flags & 32 && - (setTextContent(parent$161, ""), (hostParentFiber.flags &= -33)); - var before$162 = getHostSibling(finishedWork); - insertOrAppendPlacementNode(finishedWork, before$162, parent$161); + (setTextContent(parent$164, ""), (hostParentFiber.flags &= -33)); + var before$165 = getHostSibling(finishedWork); + insertOrAppendPlacementNode( + finishedWork, + before$165, + parent$164, + parentFragmentInstances + ); break; case 3: case 4: - var parent$163 = hostParentFiber.stateNode.containerInfo, - before$164 = getHostSibling(finishedWork); + var parent$166 = hostParentFiber.stateNode.containerInfo, + before$167 = getHostSibling(finishedWork); insertOrAppendPlacementNodeIntoContainer( finishedWork, - before$164, - parent$163 + before$167, + parent$166, + parentFragmentInstances ); break; default: @@ -10776,6 +11609,128 @@ function recursivelyResetForms(parentFiber) { parentFiber = parentFiber.sibling; } } +function recursivelyTraverseAfterMutationEffects(root, parentFiber) { + if (parentFiber.subtreeFlags & 9270) + for (parentFiber = parentFiber.child; null !== parentFiber; ) + commitAfterMutationEffectsOnFiber(parentFiber, root), + (parentFiber = parentFiber.sibling); + else measureNestedViewTransitions(parentFiber, !1); +} +function commitAfterMutationEffectsOnFiber(finishedWork, root) { + var current = finishedWork.alternate; + if (null === current) commitEnterViewTransitions(finishedWork, !1); + else + switch (finishedWork.tag) { + case 3: + rootViewTransitionNameCanceled = viewTransitionContextChanged = !1; + pushViewTransitionCancelableScope(); + recursivelyTraverseAfterMutationEffects(root, finishedWork); + if (!viewTransitionContextChanged && !rootViewTransitionAffected) { + finishedWork = viewTransitionCancelableChildren; + if (null !== finishedWork) + for (var i = 0; i < finishedWork.length; i += 3) { + current = finishedWork[i]; + var oldName = finishedWork[i + 1]; + restoreViewTransitionName(current, finishedWork[i + 2]); + current = current.ownerDocument.documentElement; + null !== current && + current.animate( + { opacity: [0, 0], pointerEvents: ["none", "none"] }, + { + duration: 0, + fill: "forwards", + pseudoElement: "::view-transition-group(" + oldName + ")" + } + ); + } + finishedWork = root.containerInfo; + finishedWork = + 9 === finishedWork.nodeType + ? finishedWork.documentElement + : finishedWork.ownerDocument.documentElement; + null !== finishedWork && + "" === finishedWork.style.viewTransitionName && + ((finishedWork.style.viewTransitionName = "none"), + finishedWork.animate( + { opacity: [0, 0], pointerEvents: ["none", "none"] }, + { + duration: 0, + fill: "forwards", + pseudoElement: "::view-transition-group(root)" + } + ), + finishedWork.animate( + { width: [0, 0], height: [0, 0] }, + { + duration: 0, + fill: "forwards", + pseudoElement: "::view-transition" + } + )); + rootViewTransitionNameCanceled = !0; + } + viewTransitionCancelableChildren = null; + break; + case 5: + recursivelyTraverseAfterMutationEffects(root, finishedWork); + break; + case 4: + i = viewTransitionContextChanged; + viewTransitionContextChanged = !1; + recursivelyTraverseAfterMutationEffects(root, finishedWork); + viewTransitionContextChanged && (rootViewTransitionAffected = !0); + viewTransitionContextChanged = i; + break; + case 22: + null === finishedWork.memoizedState && + (null !== current.memoizedState + ? commitEnterViewTransitions(finishedWork, !1) + : recursivelyTraverseAfterMutationEffects(root, finishedWork)); + break; + case 30: + i = viewTransitionContextChanged; + oldName = pushViewTransitionCancelableScope(); + viewTransitionContextChanged = !1; + recursivelyTraverseAfterMutationEffects(root, finishedWork); + viewTransitionContextChanged && (finishedWork.flags |= 4); + var props = finishedWork.memoizedProps, + state = finishedWork.stateNode; + root = getViewTransitionName(props, state); + state = getViewTransitionName(current.memoizedProps, state); + var className = getViewTransitionClassName(props.default, props.update); + "none" === className + ? (root = !1) + : ((props = current.memoizedState), + (current.memoizedState = null), + (current = finishedWork.child), + (viewTransitionHostInstanceIdx = 0), + (root = measureViewTransitionHostInstancesRecursive( + finishedWork, + current, + root, + state, + className, + props, + !0 + )), + viewTransitionHostInstanceIdx !== + (null === props ? 0 : props.length) && + (finishedWork.flags |= 32)); + 0 !== (finishedWork.flags & 4) && root + ? (scheduleViewTransitionEvent( + finishedWork, + finishedWork.memoizedProps.onUpdate + ), + (viewTransitionCancelableChildren = oldName)) + : null !== oldName && + (oldName.push.apply(oldName, viewTransitionCancelableChildren), + (viewTransitionCancelableChildren = oldName)); + viewTransitionContextChanged = 0 !== (finishedWork.flags & 32) ? !0 : i; + break; + default: + recursivelyTraverseAfterMutationEffects(root, finishedWork); + } +} function recursivelyTraverseLayoutEffects(root, parentFiber) { if (parentFiber.subtreeFlags & 8772) for (parentFiber = parentFiber.child; null !== parentFiber; ) @@ -10813,6 +11768,8 @@ function recursivelyTraverseDisappearLayoutEffects(parentFiber) { case 26: case 5: safelyDetachRef(finishedWork, finishedWork.return); + 5 === finishedWork.tag && + commitFragmentInstanceDeletionEffects(finishedWork); recursivelyTraverseDisappearLayoutEffects(finishedWork); break; case 22: @@ -10820,8 +11777,11 @@ function recursivelyTraverseDisappearLayoutEffects(parentFiber) { recursivelyTraverseDisappearLayoutEffects(finishedWork); break; case 30: + safelyDetachRef(finishedWork, finishedWork.return); recursivelyTraverseDisappearLayoutEffects(finishedWork); break; + case 7: + safelyDetachRef(finishedWork, finishedWork.return); default: recursivelyTraverseDisappearLayoutEffects(finishedWork); } @@ -10910,6 +11870,18 @@ function recursivelyTraverseReappearLayoutEffects( commitHostSingletonAcquisition(finishedWork); case 26: case 5: + if (5 === finishedWork.tag) { + instance = finishedWork; + for (var parent = instance.return; null !== parent; ) { + isFragmentInstanceParent(parent) && + commitNewChildToFragmentInstance( + instance.stateNode, + parent.stateNode + ); + if (isHostParent(parent)) break; + parent = parent.return; + } + } recursivelyTraverseReappearLayoutEffects( finishedRoot, finishedWork, @@ -10973,7 +11945,15 @@ function recursivelyTraverseReappearLayoutEffects( safelyAttachRef(finishedWork, finishedWork.return); break; case 30: + recursivelyTraverseReappearLayoutEffects( + finishedRoot, + finishedWork, + includeWorkInProgressEffects + ); + safelyAttachRef(finishedWork, finishedWork.return); break; + case 7: + safelyAttachRef(finishedWork, finishedWork.return); default: recursivelyTraverseReappearLayoutEffects( finishedRoot, @@ -11028,23 +12008,27 @@ function recursivelyTraversePassiveMountEffects( committedTransitions, endTime ) { + var isViewTransitionEligible = + (committedLanes & 335544064) === committedLanes; if ( - parentFiber.subtreeFlags & 10256 || + parentFiber.subtreeFlags & (isViewTransitionEligible ? 10262 : 10256) || (0 !== parentFiber.actualDuration && (null === parentFiber.alternate || parentFiber.alternate.child !== parentFiber.child)) ) - for (parentFiber = parentFiber.child; null !== parentFiber; ) { - var nextSibling = parentFiber.sibling; - commitPassiveMountOnFiber( - root, - parentFiber, - committedLanes, - committedTransitions, - null !== nextSibling ? nextSibling.actualStartTime : endTime - ); - parentFiber = nextSibling; - } + for (parentFiber = parentFiber.child; null !== parentFiber; ) + (isViewTransitionEligible = parentFiber.sibling), + commitPassiveMountOnFiber( + root, + parentFiber, + committedLanes, + committedTransitions, + null !== isViewTransitionEligible + ? isViewTransitionEligible.actualStartTime + : endTime + ), + (parentFiber = isViewTransitionEligible); + else isViewTransitionEligible && restoreNestedViewTransitions(parentFiber); } var inHydratedSubtree = !1; function commitPassiveMountOnFiber( @@ -11058,7 +12042,13 @@ function commitPassiveMountOnFiber( prevEffectDuration = pushComponentEffectDuration(), prevEffectErrors = pushComponentEffectErrors(), prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(), - flags = finishedWork.flags; + isViewTransitionEligible = (committedLanes & 335544064) === committedLanes; + isViewTransitionEligible && + null === finishedWork.alternate && + null !== finishedWork.return && + null !== finishedWork.return.alternate && + restoreEnterOrExitViewTransitions(finishedWork); + var flags = finishedWork.flags; switch (finishedWork.tag) { case 0: case 11: @@ -11120,6 +12110,21 @@ function commitPassiveMountOnFiber( endTime ); inHydratedSubtree = wasInHydratedSubtree; + isViewTransitionEligible && + rootViewTransitionNameCanceled && + ((committedLanes = finishedRoot.containerInfo), + (committedLanes = + 9 === committedLanes.nodeType + ? committedLanes.body + : "HTML" === committedLanes.nodeName + ? committedLanes.ownerDocument.body + : committedLanes), + "root" === committedLanes.style.viewTransitionName && + (committedLanes.style.viewTransitionName = ""), + (committedLanes = committedLanes.ownerDocument.documentElement), + null !== committedLanes && + "none" === committedLanes.style.viewTransitionName && + (committedLanes.style.viewTransitionName = "")); flags & 2048 && ((committedLanes = null), null !== finishedWork.alternate && @@ -11172,18 +12177,18 @@ function commitPassiveMountOnFiber( break; case 31: flags = inHydratedSubtree; - prevProfilerEffectDuration = + isViewTransitionEligible = null !== finishedWork.alternate ? finishedWork.alternate.memoizedState : null; - wasInHydratedSubtree = finishedWork.memoizedState; - null !== prevProfilerEffectDuration && null === wasInHydratedSubtree - ? ((wasInHydratedSubtree = finishedWork.deletions), - null !== wasInHydratedSubtree && - 0 < wasInHydratedSubtree.length && - 18 === wasInHydratedSubtree[0].tag + prevProfilerEffectDuration = finishedWork.memoizedState; + null !== isViewTransitionEligible && null === prevProfilerEffectDuration + ? ((prevProfilerEffectDuration = finishedWork.deletions), + null !== prevProfilerEffectDuration && + 0 < prevProfilerEffectDuration.length && + 18 === prevProfilerEffectDuration[0].tag ? ((inHydratedSubtree = !1), - null !== prevProfilerEffectDuration.hydrationErrors && + null !== isViewTransitionEligible.hydrationErrors && logComponentErrored( finishedWork, finishedWork.actualStartTime, @@ -11202,22 +12207,22 @@ function commitPassiveMountOnFiber( break; case 13: flags = inHydratedSubtree; - prevProfilerEffectDuration = + isViewTransitionEligible = null !== finishedWork.alternate ? finishedWork.alternate.memoizedState : null; - wasInHydratedSubtree = finishedWork.memoizedState; - null === prevProfilerEffectDuration || - null === prevProfilerEffectDuration.dehydrated || - (null !== wasInHydratedSubtree && - null !== wasInHydratedSubtree.dehydrated) + prevProfilerEffectDuration = finishedWork.memoizedState; + null === isViewTransitionEligible || + null === isViewTransitionEligible.dehydrated || + (null !== prevProfilerEffectDuration && + null !== prevProfilerEffectDuration.dehydrated) ? (inHydratedSubtree = !1) - : ((wasInHydratedSubtree = finishedWork.deletions), - null !== wasInHydratedSubtree && - 0 < wasInHydratedSubtree.length && - 18 === wasInHydratedSubtree[0].tag + : ((prevProfilerEffectDuration = finishedWork.deletions), + null !== prevProfilerEffectDuration && + 0 < prevProfilerEffectDuration.length && + 18 === prevProfilerEffectDuration[0].tag ? ((inHydratedSubtree = !1), - null !== prevProfilerEffectDuration.hydrationErrors && + null !== isViewTransitionEligible.hydrationErrors && logComponentErrored( finishedWork, finishedWork.actualStartTime, @@ -11239,55 +12244,63 @@ function commitPassiveMountOnFiber( wasInHydratedSubtree = finishedWork.stateNode; prevProfilerEffectDuration = finishedWork.alternate; null !== finishedWork.memoizedState - ? wasInHydratedSubtree._visibility & 2 - ? recursivelyTraversePassiveMountEffects( - finishedRoot, - finishedWork, - committedLanes, - committedTransitions, - endTime - ) - : recursivelyTraverseAtomicPassiveEffects( - finishedRoot, - finishedWork, - committedLanes, - committedTransitions, - endTime - ) - : wasInHydratedSubtree._visibility & 2 - ? recursivelyTraversePassiveMountEffects( - finishedRoot, - finishedWork, - committedLanes, - committedTransitions, - endTime - ) - : ((wasInHydratedSubtree._visibility |= 2), - recursivelyTraverseReconnectPassiveEffects( - finishedRoot, - finishedWork, - committedLanes, - committedTransitions, - 0 !== (finishedWork.subtreeFlags & 10256) || - (0 !== finishedWork.actualDuration && - (null === finishedWork.alternate || - finishedWork.alternate.child !== finishedWork.child)), - endTime - ), - 0 === (finishedWork.mode & 2) || - inHydratedSubtree || - ((finishedRoot = finishedWork.actualStartTime), - 0 <= finishedRoot && - 0.05 < endTime - finishedRoot && - logComponentReappeared(finishedWork, finishedRoot, endTime), - 0 <= componentEffectStartTime && - 0 <= componentEffectEndTime && - 0.05 < componentEffectEndTime - componentEffectStartTime && - logComponentReappeared( - finishedWork, - componentEffectStartTime, - componentEffectEndTime - ))); + ? (isViewTransitionEligible && + null !== prevProfilerEffectDuration && + null === prevProfilerEffectDuration.memoizedState && + restoreEnterOrExitViewTransitions(prevProfilerEffectDuration), + wasInHydratedSubtree._visibility & 2 + ? recursivelyTraversePassiveMountEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions, + endTime + ) + : recursivelyTraverseAtomicPassiveEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions, + endTime + )) + : (isViewTransitionEligible && + null !== prevProfilerEffectDuration && + null !== prevProfilerEffectDuration.memoizedState && + restoreEnterOrExitViewTransitions(finishedWork), + wasInHydratedSubtree._visibility & 2 + ? recursivelyTraversePassiveMountEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions, + endTime + ) + : ((wasInHydratedSubtree._visibility |= 2), + recursivelyTraverseReconnectPassiveEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions, + 0 !== (finishedWork.subtreeFlags & 10256) || + (0 !== finishedWork.actualDuration && + (null === finishedWork.alternate || + finishedWork.alternate.child !== finishedWork.child)), + endTime + ), + 0 === (finishedWork.mode & 2) || + inHydratedSubtree || + ((finishedRoot = finishedWork.actualStartTime), + 0 <= finishedRoot && + 0.05 < endTime - finishedRoot && + logComponentReappeared(finishedWork, finishedRoot, endTime), + 0 <= componentEffectStartTime && + 0 <= componentEffectEndTime && + 0.05 < componentEffectEndTime - componentEffectStartTime && + logComponentReappeared( + finishedWork, + componentEffectStartTime, + componentEffectEndTime + )))); flags & 2048 && commitOffscreenPassiveMountEffects( prevProfilerEffectDuration, @@ -11305,6 +12318,20 @@ function commitPassiveMountOnFiber( flags & 2048 && commitCachePassiveMountEffect(finishedWork.alternate, finishedWork); break; + case 30: + isViewTransitionEligible && + ((flags = finishedWork.alternate), + null !== flags && + (restoreViewTransitionOnHostInstances(flags.child, !0), + restoreViewTransitionOnHostInstances(finishedWork.child, !0))); + recursivelyTraversePassiveMountEffects( + finishedRoot, + finishedWork, + committedLanes, + committedTransitions, + endTime + ); + break; default: recursivelyTraversePassiveMountEffects( finishedRoot, @@ -11567,13 +12594,16 @@ function accumulateSuspenseyCommitOnFiber( suspendedState ); fiber.flags & suspenseyCommitFlag && - null !== fiber.memoizedState && - suspendResource( - suspendedState, - currentHoistableRoot, - fiber.memoizedState, - fiber.memoizedProps - ); + (null !== fiber.memoizedState + ? suspendResource( + suspendedState, + currentHoistableRoot, + fiber.memoizedState, + fiber.memoizedProps + ) + : ((fiber = fiber.stateNode), + (committedLanes & 335544128) === committedLanes && + suspendInstance(suspendedState, fiber))); break; case 5: recursivelyAccumulateSuspenseyCommit( @@ -11581,6 +12611,10 @@ function accumulateSuspenseyCommitOnFiber( committedLanes, suspendedState ); + fiber.flags & suspenseyCommitFlag && + ((fiber = fiber.stateNode), + (committedLanes & 335544128) === committedLanes && + suspendInstance(suspendedState, fiber)); break; case 3: case 4: @@ -11612,6 +12646,24 @@ function accumulateSuspenseyCommitOnFiber( suspendedState )); break; + case 30: + if ( + 0 !== (fiber.flags & suspenseyCommitFlag) && + ((previousHoistableRoot = fiber.memoizedProps.name), + null != previousHoistableRoot && "auto" !== previousHoistableRoot) + ) { + var state = fiber.stateNode; + state.paired = null; + null === appearingViewTransitions && + (appearingViewTransitions = new Map()); + appearingViewTransitions.set(previousHoistableRoot, state); + } + recursivelyAccumulateSuspenseyCommit( + fiber, + committedLanes, + suspendedState + ); + break; default: recursivelyAccumulateSuspenseyCommit( fiber, @@ -11905,6 +12957,9 @@ var DefaultAsyncDispatcher = { pendingEffectsRenderEndTime = -0, pendingPassiveTransitions = null, pendingRecoverableErrors = null, + pendingViewTransition = null, + pendingViewTransitionEvents = null, + pendingTransitionTypes = null, pendingSuspendedCommitReason = null, pendingDelayedCommitReason = 0, pendingSuspendedViewTransitionReason = null, @@ -11930,6 +12985,19 @@ function requestDeferredLane() { null !== lane && (lane.flags |= 32); return workInProgressDeferredLane; } +function scheduleViewTransitionEvent(fiber, callback) { + if (null != callback) { + var state = fiber.stateNode, + instance = state.ref; + null === instance && + (instance = state.ref = + createViewTransitionInstance( + getViewTransitionName(fiber.memoizedProps, state) + )); + null === pendingViewTransitionEvents && (pendingViewTransitionEvents = []); + pendingViewTransitionEvents.push(callback.bind(null, instance)); + } +} function scheduleUpdateOnFiber(root, fiber, lane) { if ( (root === workInProgressRoot && @@ -12209,8 +13277,13 @@ function commitRootWhenReady( ) { root.timeoutHandle = -1; var subtreeFlags = finishedWork.subtreeFlags, + isViewTransitionEligible = (lanes & 335544064) === lanes, suspendedState = null; - if (subtreeFlags & 8192 || 16785408 === (subtreeFlags & 16785408)) + if ( + isViewTransitionEligible || + subtreeFlags & 8192 || + 16785408 === (subtreeFlags & 16785408) + ) if ( ((suspendedState = { stylesheets: null, @@ -12222,7 +13295,21 @@ function commitRootWhenReady( waitingForViewTransition: !1, unsuspend: noop$1 }), + (appearingViewTransitions = null), accumulateSuspenseyCommitOnFiber(finishedWork, lanes, suspendedState), + isViewTransitionEligible && + ((subtreeFlags = suspendedState), + (isViewTransitionEligible = root.containerInfo), + (isViewTransitionEligible = ( + 9 === isViewTransitionEligible.nodeType + ? isViewTransitionEligible + : isViewTransitionEligible.ownerDocument + ).__reactViewTransition), + null != isViewTransitionEligible && + (subtreeFlags.count++, + (subtreeFlags.waitingForViewTransition = !0), + (subtreeFlags = onUnsuspend.bind(subtreeFlags)), + isViewTransitionEligible.finished.then(subtreeFlags, subtreeFlags))), (subtreeFlags = (lanes & 62914560) === lanes ? globalMostRecentFallbackTime - now$1() @@ -12362,6 +13449,8 @@ function resetWorkInProgressStack() { function finalizeRender(lanes, finalizationTime) { 0 !== (lanes & 127) && (blockingClampTime = finalizationTime); 0 !== (lanes & 4194048) && (transitionClampTime = finalizationTime); + 0 !== (lanes & 62914560) && (retryClampTime = finalizationTime); + 0 !== (lanes & 2080374784) && (idleClampTime = finalizationTime); } function prepareFreshStack(root, lanes) { supportsUserTiming && @@ -12434,20 +13523,23 @@ function prepareFreshStack(root, lanes) { 0 <= blockingEventTime && blockingEventTime < blockingClampTime ? blockingClampTime : blockingEventTime; - var clampedRenderStartTime$203 = + var clampedRenderStartTime$210 = 0 <= endTime ? endTime : 0 <= previousRenderStartTime ? previousRenderStartTime : renderStartTime; - 0 <= blockingSuspendedTime && - (setCurrentTrackFromLanes(2), - logSuspendedWithDelayPhase( - blockingSuspendedTime, - clampedRenderStartTime$203, - lanes - )); - clampedRenderStartTime$203 = blockingEventType; + 0 <= blockingSuspendedTime + ? (setCurrentTrackFromLanes(2), + logSuspendedWithDelayPhase( + blockingSuspendedTime, + clampedRenderStartTime$210, + lanes + )) + : 0 !== (animatingLanes & 127) && + (setCurrentTrackFromLanes(2), + logAnimatingPhase(blockingClampTime, clampedRenderStartTime$210)); + clampedRenderStartTime$210 = blockingEventType; var eventIsRepeat = 0 < blockingEventRepeatTime, isSpawnedUpdate = 1 === blockingUpdateType, isPingedUpdate = 2 === blockingUpdateType, @@ -12462,12 +13554,12 @@ function prepareFreshStack(root, lanes) { ? endTime > previousRenderStartTime && (endTime = previousRenderStartTime) : (endTime = previousRenderStartTime), - null !== clampedRenderStartTime$203 && + null !== clampedRenderStartTime$210 && previousRenderStartTime > endTime && console.timeStamp( eventIsRepeat ? "Consecutive" - : "Event: " + clampedRenderStartTime$203, + : "Event: " + clampedRenderStartTime$210, endTime, previousRenderStartTime, currentTrack, @@ -12509,23 +13601,26 @@ function prepareFreshStack(root, lanes) { 0 <= transitionUpdateTime && transitionUpdateTime < transitionClampTime ? transitionClampTime : transitionUpdateTime), - (clampedRenderStartTime$203 = + (clampedRenderStartTime$210 = 0 <= transitionEventTime && transitionEventTime < transitionClampTime ? transitionClampTime : transitionEventTime), (eventIsRepeat = - 0 <= clampedRenderStartTime$203 - ? clampedRenderStartTime$203 + 0 <= clampedRenderStartTime$210 + ? clampedRenderStartTime$210 : 0 <= endTime ? endTime : renderStartTime), - 0 <= transitionSuspendedTime && - (setCurrentTrackFromLanes(256), - logSuspendedWithDelayPhase( - transitionSuspendedTime, - eventIsRepeat, - lanes - )), + 0 <= transitionSuspendedTime + ? (setCurrentTrackFromLanes(256), + logSuspendedWithDelayPhase( + transitionSuspendedTime, + eventIsRepeat, + lanes + )) + : 0 !== (animatingLanes & 4194048) && + (setCurrentTrackFromLanes(256), + logAnimatingPhase(transitionClampTime, eventIsRepeat)), (eventIsRepeat = transitionEventType), (isSpawnedUpdate = 0 < transitionEventRepeatTime), (isPingedUpdate = 2 === transitionUpdateType), @@ -12540,15 +13635,15 @@ function prepareFreshStack(root, lanes) { ? previousRenderStartTime > endTime && (previousRenderStartTime = endTime) : (previousRenderStartTime = endTime), - 0 < clampedRenderStartTime$203 - ? clampedRenderStartTime$203 > previousRenderStartTime && - (clampedRenderStartTime$203 = previousRenderStartTime) - : (clampedRenderStartTime$203 = previousRenderStartTime), - previousRenderStartTime > clampedRenderStartTime$203 && + 0 < clampedRenderStartTime$210 + ? clampedRenderStartTime$210 > previousRenderStartTime && + (clampedRenderStartTime$210 = previousRenderStartTime) + : (clampedRenderStartTime$210 = previousRenderStartTime), + previousRenderStartTime > clampedRenderStartTime$210 && null !== eventIsRepeat && console.timeStamp( isSpawnedUpdate ? "Consecutive" : "Event: " + eventIsRepeat, - clampedRenderStartTime$203, + clampedRenderStartTime$210, previousRenderStartTime, currentTrack, "Scheduler \u269b", @@ -12582,6 +13677,14 @@ function prepareFreshStack(root, lanes) { (transitionEventRepeatTime = transitionEventTime), (transitionEventTime = -1.1), (transitionClampTime = now())); + 0 !== (lanes & 62914560) && + 0 !== (animatingLanes & 62914560) && + (setCurrentTrackFromLanes(4194304), + logAnimatingPhase(retryClampTime, renderStartTime)); + 0 !== (lanes & 2080374784) && + 0 !== (animatingLanes & 2080374784) && + (setCurrentTrackFromLanes(268435456), + logAnimatingPhase(idleClampTime, renderStartTime)); previousRenderStartTime = root.timeoutHandle; -1 !== previousRenderStartTime && ((root.timeoutHandle = -1), cancelTimeout(previousRenderStartTime)); @@ -12615,9 +13718,9 @@ function prepareFreshStack(root, lanes) { endTime = root.entangledLanes; if (0 !== endTime) for (root = root.entanglements, endTime &= lanes; 0 < endTime; ) - (clampedRenderStartTime$203 = 31 - clz32(endTime)), - (eventIsRepeat = 1 << clampedRenderStartTime$203), - (lanes |= root[clampedRenderStartTime$203]), + (clampedRenderStartTime$210 = 31 - clz32(endTime)), + (eventIsRepeat = 1 << clampedRenderStartTime$210), + (lanes |= root[clampedRenderStartTime$210]), (endTime &= ~eventIsRepeat); entangledRenderLanes = lanes; finishQueueingConcurrentUpdates(); @@ -12748,8 +13851,8 @@ function renderRootSync(root, lanes, shouldYieldForPrerendering) { workLoopSync(); memoizedUpdaters = workInProgressRootExitStatus; break; - } catch (thrownValue$208) { - handleThrow(root, thrownValue$208); + } catch (thrownValue$215) { + handleThrow(root, thrownValue$215); } while (1); lanes && root.shellSuspendCounter++; @@ -12874,8 +13977,8 @@ function renderRootConcurrent(root, lanes) { } workLoopConcurrentByScheduler(); break; - } catch (thrownValue$210) { - handleThrow(root, thrownValue$210); + } catch (thrownValue$217) { + handleThrow(root, thrownValue$217); } while (1); lastContextDependency = currentlyRenderingFiber$1 = null; @@ -13135,10 +14238,14 @@ function commitRoot( pendingEffectsRenderEndTime = completedRenderEndTime; pendingSuspendedCommitReason = suspendedCommitReason; pendingDelayedCommitReason = 0; - pendingSuspendedViewTransitionReason = null; + pendingViewTransitionEvents = pendingSuspendedViewTransitionReason = null; + (lanes & 335544064) === lanes + ? ((pendingTransitionTypes = claimQueuedTransitionTypes(root)), + (recoverableErrors = 10262)) + : ((pendingTransitionTypes = null), (recoverableErrors = 10256)); 0 !== finishedWork.actualDuration || - 0 !== (finishedWork.subtreeFlags & 10256) || - 0 !== (finishedWork.flags & 10256) + 0 !== (finishedWork.subtreeFlags & recoverableErrors) || + 0 !== (finishedWork.flags & recoverableErrors) ? ((root.callbackNode = null), (root.callbackPriority = 0), scheduleCallback$1(NormalPriority$1, function () { @@ -13161,28 +14268,86 @@ function commitRoot( "Scheduler \u269b", "secondary-light" )); - recoverableErrors = 0 !== (finishedWork.flags & 13878); - if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) { - recoverableErrors = ReactSharedInternals.T; + shouldStartViewTransition = !1; + suspendedCommitReason = 0 !== (finishedWork.flags & 13878); + if (0 !== (finishedWork.subtreeFlags & 13878) || suspendedCommitReason) { + suspendedCommitReason = ReactSharedInternals.T; ReactSharedInternals.T = null; - transitions = ReactDOMSharedInternals.p; + completedRenderEndTime = ReactDOMSharedInternals.p; ReactDOMSharedInternals.p = 2; - spawnedLane = executionContext; + recoverableErrors = executionContext; executionContext |= 4; try { commitBeforeMutationEffects(root, finishedWork, lanes); } finally { - (executionContext = spawnedLane), - (ReactDOMSharedInternals.p = transitions), - (ReactSharedInternals.T = recoverableErrors); + (executionContext = recoverableErrors), + (ReactDOMSharedInternals.p = completedRenderEndTime), + (ReactSharedInternals.T = suspendedCommitReason); } } + finishedWork = shouldStartViewTransition; pendingEffectsStatus = 1; - flushMutationEffects(); - flushLayoutEffects(); - flushSpawnedWork(); + finishedWork + ? ((animatingLanes |= lanes), + (pendingViewTransition = startViewTransition( + suspendedState, + root.containerInfo, + pendingTransitionTypes, + flushMutationEffects, + flushLayoutEffects, + flushAfterMutationEffects, + flushSpawnedWork, + flushPassiveEffects, + reportViewTransitionError, + suspendedViewTransition, + finishedViewTransition.bind(null, lanes) + ))) + : (flushMutationEffects(), flushLayoutEffects(), flushSpawnedWork()); } } +function reportViewTransitionError(error) { + if (0 !== pendingEffectsStatus) { + var onRecoverableError = pendingEffectsRoot.onRecoverableError; + onRecoverableError(error, { componentStack: null }); + } +} +function suspendedViewTransition(reason) { + commitEndTime = now(); + logCommitPhase( + null === pendingSuspendedCommitReason + ? pendingEffectsRenderEndTime + : commitStartTime, + commitEndTime, + commitErrors, + 1 === pendingDelayedCommitReason + ); + pendingSuspendedCommitReason = pendingSuspendedViewTransitionReason = reason; +} +function finishedViewTransition(lanes) { + 0 !== (animatingLanes & lanes) && + ((animatingLanes &= ~lanes), + 0 !== (lanes & 4194048) && + 0 === (workInProgressRootRenderLanes & 4194048) && + 0 === (pendingEffectsLanes & 4194048) && + (setCurrentTrackFromLanes(256), + logAnimatingPhase(transitionClampTime, now$1())), + 0 !== (lanes & 62914560) && + 0 === (workInProgressRootRenderLanes & 62914560) && + 0 === (pendingEffectsLanes & 62914560) && + (setCurrentTrackFromLanes(4194304), + logAnimatingPhase(retryClampTime, now$1())), + 0 !== (lanes & 2080374784) && + 0 === (workInProgressRootRenderLanes & 2080374784) && + 0 === (pendingEffectsLanes & 2080374784) && + (setCurrentTrackFromLanes(268435456), + logAnimatingPhase(idleClampTime, now$1()))); +} +function flushAfterMutationEffects() { + 3 === pendingEffectsStatus && + ((pendingEffectsStatus = 0), + commitAfterMutationEffectsOnFiber(pendingFinishedWork, pendingEffectsRoot), + (pendingEffectsStatus = 4)); +} function flushMutationEffects() { if (1 === pendingEffectsStatus) { pendingEffectsStatus = 0; @@ -13200,8 +14365,9 @@ function flushMutationEffects() { try { inProgressLanes = lanes; inProgressRoot = root; + inUpdateViewTransition = rootViewTransitionAffected = !1; resetComponentEffectTimers(); - commitMutationEffectsOnFiber(finishedWork, root); + commitMutationEffectsOnFiber(finishedWork, root, lanes); inProgressRoot = inProgressLanes = null; lanes = selectionInformation; var curFocusedElem = getActiveElementDeep(root.containerInfo), @@ -13356,22 +14522,12 @@ function flushLayoutEffects() { suspendedViewTransitionReason = pendingEffectsRenderEndTime; finishedWork = pendingSuspendedCommitReason; commitEndTime = now(); - suspendedViewTransitionReason = - null === finishedWork ? suspendedViewTransitionReason : commitStartTime; - finishedWork = commitEndTime; - lanes = 1 === pendingDelayedCommitReason; - null !== commitErrors - ? logCommitErrored(suspendedViewTransitionReason, finishedWork) - : !supportsUserTiming || - finishedWork <= suspendedViewTransitionReason || - console.timeStamp( - lanes ? "Commit Interrupted View Transition" : "Commit", - suspendedViewTransitionReason, - finishedWork, - currentTrack, - "Scheduler \u269b", - lanes ? "error" : "secondary-dark" - ); + logCommitPhase( + null === finishedWork ? suspendedViewTransitionReason : commitStartTime, + commitEndTime, + commitErrors, + 1 === pendingDelayedCommitReason + ); pendingEffectsStatus = 3; } } @@ -13396,16 +14552,20 @@ function flushSpawnedWork() { 1 !== pendingDelayedCommitReason && (pendingDelayedCommitReason = 3); } pendingEffectsStatus = 0; + pendingViewTransition = null; requestPaint(); startViewTransitionStartTime = pendingEffectsRoot; var finishedWork = pendingFinishedWork; abortedViewTransition = pendingEffectsLanes; var recoverableErrors = pendingRecoverableErrors, - rootDidHavePassiveEffects = - 0 !== finishedWork.actualDuration || - 0 !== (finishedWork.subtreeFlags & 10256) || - 0 !== (finishedWork.flags & 10256); - rootDidHavePassiveEffects + passiveSubtreeMask = + (abortedViewTransition & 335544064) === abortedViewTransition + ? 10262 + : 10256; + (passiveSubtreeMask = + 0 !== finishedWork.actualDuration || + 0 !== (finishedWork.subtreeFlags & passiveSubtreeMask) || + 0 !== (finishedWork.flags & passiveSubtreeMask)) ? (pendingEffectsStatus = 5) : ((pendingEffectsStatus = 0), (pendingFinishedWork = pendingEffectsRoot = null), @@ -13467,6 +14627,18 @@ function flushSpawnedWork() { (ReactDOMSharedInternals.p = schedulerPriority); } } + onRecoverableError = pendingViewTransitionEvents; + recoverableError = pendingTransitionTypes; + pendingTransitionTypes = null; + if (null !== onRecoverableError) + for ( + pendingViewTransitionEvents = null, + null === recoverableError && (recoverableError = []), + recoverableErrors = 0; + recoverableErrors < onRecoverableError.length; + recoverableErrors++ + ) + (0, onRecoverableError[recoverableErrors])(recoverableError); 0 !== (pendingEffectsLanes & 3) && flushPendingEffects(); ensureRootIsScheduled(startViewTransitionStartTime); remainingLanes = startViewTransitionStartTime.pendingLanes; @@ -13477,8 +14649,7 @@ function flushSpawnedWork() { : ((nestedUpdateCount = 0), (rootWithNestedUpdates = startViewTransitionStartTime))) : (nestedUpdateCount = 0); - rootDidHavePassiveEffects || - finalizeRender(abortedViewTransition, commitEndTime); + passiveSubtreeMask || finalizeRender(abortedViewTransition, commitEndTime); flushSyncWorkAcrossRoots_impl(0, !1); } } @@ -13489,6 +14660,10 @@ function releaseRootPooledCache(root, remainingLanes) { ((root.pooledCache = null), releaseCache(remainingLanes))); } function flushPendingEffects() { + null !== pendingViewTransition && + (pendingViewTransition.skipTransition(), + (pendingViewTransition = null), + (pendingDelayedCommitReason = 1)); flushMutationEffects(); flushLayoutEffects(); flushSpawnedWork(); @@ -13518,16 +14693,7 @@ function flushPassiveEffects() { commitErrors = null; passiveEffectStartTime = now$1(); 3 === pendingDelayedCommitReason - ? !supportsUserTiming || - passiveEffectStartTime <= commitEndTime || - console.timeStamp( - "Animating", - commitEndTime, - passiveEffectStartTime, - currentTrack, - "Scheduler \u269b", - "secondary-dark" - ) + ? logAnimatingPhase(commitEndTime, passiveEffectStartTime) : !supportsUserTiming || passiveEffectStartTime <= commitEndTime || console.timeStamp( @@ -13742,14 +14908,14 @@ function flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) { isFlushingWork = !0; do { var didPerformSomeWork = !1; - for (var root$213 = firstScheduledRoot; null !== root$213; ) { + for (var root$221 = firstScheduledRoot; null !== root$221; ) { if (!onlyLegacy) if (0 !== syncTransitionLanes) { - var pendingLanes = root$213.pendingLanes; + var pendingLanes = root$221.pendingLanes; if (0 === pendingLanes) var JSCompiler_inline_result = 0; else { - var suspendedLanes = root$213.suspendedLanes, - pingedLanes = root$213.pingedLanes; + var suspendedLanes = root$221.suspendedLanes, + pingedLanes = root$221.pingedLanes; JSCompiler_inline_result = (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1; JSCompiler_inline_result &= @@ -13763,20 +14929,20 @@ function flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) { } 0 !== JSCompiler_inline_result && ((didPerformSomeWork = !0), - performSyncWorkOnRoot(root$213, JSCompiler_inline_result)); + performSyncWorkOnRoot(root$221, JSCompiler_inline_result)); } else (JSCompiler_inline_result = workInProgressRootRenderLanes), (JSCompiler_inline_result = getNextLanes( - root$213, - root$213 === workInProgressRoot ? JSCompiler_inline_result : 0, - null !== root$213.cancelPendingCommit || - -1 !== root$213.timeoutHandle + root$221, + root$221 === workInProgressRoot ? JSCompiler_inline_result : 0, + null !== root$221.cancelPendingCommit || + -1 !== root$221.timeoutHandle )), 0 === (JSCompiler_inline_result & 3) || - checkIfRootIsPrerendering(root$213, JSCompiler_inline_result) || + checkIfRootIsPrerendering(root$221, JSCompiler_inline_result) || ((didPerformSomeWork = !0), - performSyncWorkOnRoot(root$213, JSCompiler_inline_result)); - root$213 = root$213.next; + performSyncWorkOnRoot(root$221, JSCompiler_inline_result)); + root$221 = root$221.next; } } while (didPerformSomeWork); isFlushingWork = !1; @@ -14030,20 +15196,20 @@ function extractEvents$1( } } for ( - var i$jscomp$inline_1875 = 0; - i$jscomp$inline_1875 < simpleEventPluginEvents.length; - i$jscomp$inline_1875++ + var i$jscomp$inline_2000 = 0; + i$jscomp$inline_2000 < simpleEventPluginEvents.length; + i$jscomp$inline_2000++ ) { - var eventName$jscomp$inline_1876 = - simpleEventPluginEvents[i$jscomp$inline_1875], - domEventName$jscomp$inline_1877 = - eventName$jscomp$inline_1876.toLowerCase(), - capitalizedEvent$jscomp$inline_1878 = - eventName$jscomp$inline_1876[0].toUpperCase() + - eventName$jscomp$inline_1876.slice(1); + var eventName$jscomp$inline_2001 = + simpleEventPluginEvents[i$jscomp$inline_2000], + domEventName$jscomp$inline_2002 = + eventName$jscomp$inline_2001.toLowerCase(), + capitalizedEvent$jscomp$inline_2003 = + eventName$jscomp$inline_2001[0].toUpperCase() + + eventName$jscomp$inline_2001.slice(1); registerSimpleEvent( - domEventName$jscomp$inline_1877, - "on" + capitalizedEvent$jscomp$inline_1878 + domEventName$jscomp$inline_2002, + "on" + capitalizedEvent$jscomp$inline_2003 ); } registerSimpleEvent(ANIMATION_END, "onAnimationEnd"); @@ -14412,12 +15578,12 @@ function dispatchEventForPluginEventSystem( } if (0 === (eventSystemFlags & 7)) { a: { - reactName = - "mouseover" === domEventName || "pointerover" === domEventName; SyntheticEventCtor = + "mouseover" === domEventName || "pointerover" === domEventName; + reactName = "mouseout" === domEventName || "pointerout" === domEventName; if ( - reactName && + SyntheticEventCtor && nativeEvent !== currentReplayingEvent && (reactEventType = nativeEvent.relatedTarget || nativeEvent.fromElement) && @@ -14425,33 +15591,34 @@ function dispatchEventForPluginEventSystem( reactEventType[internalContainerInstanceKey]) ) break a; - if (SyntheticEventCtor || reactName) { - reactName = + if (reactName || SyntheticEventCtor) { + reactEventType = nativeEventTarget.window === nativeEventTarget ? nativeEventTarget - : (reactName = nativeEventTarget.ownerDocument) - ? reactName.defaultView || reactName.parentWindow + : (SyntheticEventCtor = nativeEventTarget.ownerDocument) + ? SyntheticEventCtor.defaultView || + SyntheticEventCtor.parentWindow : window; - if (SyntheticEventCtor) { + if (reactName) { if ( - ((reactEventType = + ((SyntheticEventCtor = nativeEvent.relatedTarget || nativeEvent.toElement), - (SyntheticEventCtor = targetInst), - (reactEventType = reactEventType - ? getClosestInstanceFromNode(reactEventType) + (reactName = targetInst), + (SyntheticEventCtor = SyntheticEventCtor + ? getClosestInstanceFromNode(SyntheticEventCtor) : null), - null !== reactEventType && + null !== SyntheticEventCtor && ((accumulateTargetOnly = - getNearestMountedFiber(reactEventType)), - (inCapturePhase = reactEventType.tag), - reactEventType !== accumulateTargetOnly || + getNearestMountedFiber(SyntheticEventCtor)), + (inCapturePhase = SyntheticEventCtor.tag), + SyntheticEventCtor !== accumulateTargetOnly || (5 !== inCapturePhase && 27 !== inCapturePhase && 6 !== inCapturePhase))) ) - reactEventType = null; - } else (SyntheticEventCtor = null), (reactEventType = targetInst); - if (SyntheticEventCtor !== reactEventType) { + SyntheticEventCtor = null; + } else (reactName = null), (SyntheticEventCtor = targetInst); + if (reactName !== SyntheticEventCtor) { inCapturePhase = SyntheticMouseEvent; _instance = "onMouseLeave"; reactEventName = "onMouseEnter"; @@ -14462,83 +15629,57 @@ function dispatchEventForPluginEventSystem( (reactEventName = "onPointerEnter"), (instance = "pointer"); accumulateTargetOnly = + null == reactName + ? reactEventType + : getNodeFromInstance(reactName); + lastHostComponent = null == SyntheticEventCtor - ? reactName + ? reactEventType : getNodeFromInstance(SyntheticEventCtor); - lastHostComponent = - null == reactEventType - ? reactName - : getNodeFromInstance(reactEventType); - reactName = new inCapturePhase( + reactEventType = new inCapturePhase( _instance, instance + "leave", - SyntheticEventCtor, + reactName, nativeEvent, nativeEventTarget ); - reactName.target = accumulateTargetOnly; - reactName.relatedTarget = lastHostComponent; + reactEventType.target = accumulateTargetOnly; + reactEventType.relatedTarget = lastHostComponent; _instance = null; getClosestInstanceFromNode(nativeEventTarget) === targetInst && ((inCapturePhase = new inCapturePhase( reactEventName, instance + "enter", - reactEventType, + SyntheticEventCtor, nativeEvent, nativeEventTarget )), - (inCapturePhase.target = lastHostComponent), - (inCapturePhase.relatedTarget = accumulateTargetOnly), - (_instance = inCapturePhase)); - accumulateTargetOnly = _instance; - if (SyntheticEventCtor && reactEventType) - b: { - inCapturePhase = getParent; - reactEventName = SyntheticEventCtor; - instance = reactEventType; - lastHostComponent = 0; - for ( - _instance = reactEventName; - _instance; - _instance = inCapturePhase(_instance) - ) - lastHostComponent++; - _instance = 0; - for (var tempB = instance; tempB; tempB = inCapturePhase(tempB)) - _instance++; - for (; 0 < lastHostComponent - _instance; ) - (reactEventName = inCapturePhase(reactEventName)), - lastHostComponent--; - for (; 0 < _instance - lastHostComponent; ) - (instance = inCapturePhase(instance)), _instance--; - for (; lastHostComponent--; ) { - if ( - reactEventName === instance || - (null !== instance && reactEventName === instance.alternate) - ) { - inCapturePhase = reactEventName; - break b; - } - reactEventName = inCapturePhase(reactEventName); - instance = inCapturePhase(instance); - } - inCapturePhase = null; - } - else inCapturePhase = null; - null !== SyntheticEventCtor && + (inCapturePhase.target = lastHostComponent), + (inCapturePhase.relatedTarget = accumulateTargetOnly), + (_instance = inCapturePhase)); + accumulateTargetOnly = _instance; + inCapturePhase = + reactName && SyntheticEventCtor + ? getLowestCommonAncestor( + reactName, + SyntheticEventCtor, + getParent + ) + : null; + null !== reactName && accumulateEnterLeaveListenersForEvent( dispatchQueue, + reactEventType, reactName, - SyntheticEventCtor, inCapturePhase, !1 ); - null !== reactEventType && + null !== SyntheticEventCtor && null !== accumulateTargetOnly && accumulateEnterLeaveListenersForEvent( dispatchQueue, accumulateTargetOnly, - reactEventType, + SyntheticEventCtor, inCapturePhase, !0 ); @@ -14785,13 +15926,13 @@ function checkForUnmatchedText(serverText, clientText) { function setProp(domElement, tag, key, value, props, prevValue) { switch (key) { case "children": - "string" === typeof value - ? "body" === tag || + if ("string" === typeof value) + "body" === tag || ("textarea" === tag && "" === value) || - setTextContent(domElement, value) - : ("number" === typeof value || "bigint" === typeof value) && - "body" !== tag && - setTextContent(domElement, "" + value); + setTextContent(domElement, value); + else if ("number" === typeof value || "bigint" === typeof value) + "body" !== tag && setTextContent(domElement, "" + value); + else return; break; case "className": setValueForKnownAttribute(domElement, "class", value); @@ -14808,7 +15949,7 @@ function setProp(domElement, tag, key, value, props, prevValue) { break; case "style": setValueForStyles(domElement, value, prevValue); - break; + return; case "data": if ("object" !== tag) { setValueForKnownAttribute(domElement, "data", value); @@ -14885,13 +16026,13 @@ function setProp(domElement, tag, key, value, props, prevValue) { break; case "onClick": null != value && (domElement.onclick = noop$1); - break; + return; case "onScroll": null != value && listenToNonDelegatedEvent("scroll", domElement); - break; + return; case "onScrollEnd": null != value && listenToNonDelegatedEvent("scrollend", domElement); - break; + return; case "dangerouslySetInnerHTML": if (null != value) { if ("object" !== typeof value || !("__html" in value)) @@ -15090,7 +16231,7 @@ function setProp(domElement, tag, key, value, props, prevValue) { break; case "innerText": case "textContent": - break; + return; default: if ( !(2 < key.length) || @@ -15099,13 +16240,15 @@ function setProp(domElement, tag, key, value, props, prevValue) { ) (key = aliases.get(key) || key), setValueForAttribute(domElement, key, value); + else return; } + viewTransitionMutationContext = !0; } function setPropOnCustomElement(domElement, tag, key, value, props, prevValue) { switch (key) { case "style": setValueForStyles(domElement, value, prevValue); - break; + return; case "dangerouslySetInnerHTML": if (null != value) { if ("object" !== typeof value || !("__html" in value)) @@ -15118,28 +16261,28 @@ function setPropOnCustomElement(domElement, tag, key, value, props, prevValue) { } break; case "children": - "string" === typeof value - ? setTextContent(domElement, value) - : ("number" === typeof value || "bigint" === typeof value) && - setTextContent(domElement, "" + value); + if ("string" === typeof value) setTextContent(domElement, value); + else if ("number" === typeof value || "bigint" === typeof value) + setTextContent(domElement, "" + value); + else return; break; case "onScroll": null != value && listenToNonDelegatedEvent("scroll", domElement); - break; + return; case "onScrollEnd": null != value && listenToNonDelegatedEvent("scrollend", domElement); - break; + return; case "onClick": null != value && (domElement.onclick = noop$1); - break; + return; case "suppressContentEditableWarning": case "suppressHydrationWarning": case "innerHTML": case "ref": - break; + return; case "innerText": case "textContent": - break; + return; default: if (!registrationNameDependencies.hasOwnProperty(key)) a: { @@ -15163,13 +16306,16 @@ function setPropOnCustomElement(domElement, tag, key, value, props, prevValue) { domElement.addEventListener(tag, value, props); break a; } + viewTransitionMutationContext = !0; key in domElement ? (domElement[key] = value) : !0 === value ? domElement.setAttribute(key, "") : setValueForAttribute(domElement, key, value); } + return; } + viewTransitionMutationContext = !0; } function setInitialProperties(domElement, tag, props) { switch (tag) { @@ -15217,34 +16363,34 @@ function setInitialProperties(domElement, tag, props) { defaultChecked = null; for (hasSrc in props) if (props.hasOwnProperty(hasSrc)) { - var propValue$227 = props[hasSrc]; - if (null != propValue$227) + var propValue$235 = props[hasSrc]; + if (null != propValue$235) switch (hasSrc) { case "name": - hasSrcSet = propValue$227; + hasSrcSet = propValue$235; break; case "type": - propValue = propValue$227; + propValue = propValue$235; break; case "checked": - checked = propValue$227; + checked = propValue$235; break; case "defaultChecked": - defaultChecked = propValue$227; + defaultChecked = propValue$235; break; case "value": - propKey = propValue$227; + propKey = propValue$235; break; case "defaultValue": - defaultValue = propValue$227; + defaultValue = propValue$235; break; case "children": case "dangerouslySetInnerHTML": - if (null != propValue$227) + if (null != propValue$235) throw Error(formatProdErrorMessage(137, tag)); break; default: - setProp(domElement, tag, hasSrc, propValue$227, props, null); + setProp(domElement, tag, hasSrc, propValue$235, props, null); } } initInput( @@ -15381,14 +16527,14 @@ function setInitialProperties(domElement, tag, props) { return; default: if (isCustomElement(tag)) { - for (propValue$227 in props) - props.hasOwnProperty(propValue$227) && - ((hasSrc = props[propValue$227]), + for (propValue$235 in props) + props.hasOwnProperty(propValue$235) && + ((hasSrc = props[propValue$235]), void 0 !== hasSrc && setPropOnCustomElement( domElement, tag, - propValue$227, + propValue$235, hasSrc, props, void 0 @@ -15436,30 +16582,36 @@ function updateProperties(domElement, tag, lastProps, nextProps) { setProp(domElement, tag, propKey, null, nextProps, lastProp); } } - for (var propKey$244 in nextProps) { - var propKey = nextProps[propKey$244]; - lastProp = lastProps[propKey$244]; + for (var propKey$252 in nextProps) { + var propKey = nextProps[propKey$252]; + lastProp = lastProps[propKey$252]; if ( - nextProps.hasOwnProperty(propKey$244) && + nextProps.hasOwnProperty(propKey$252) && (null != propKey || null != lastProp) ) - switch (propKey$244) { + switch (propKey$252) { case "type": + propKey !== lastProp && (viewTransitionMutationContext = !0); type = propKey; break; case "name": + propKey !== lastProp && (viewTransitionMutationContext = !0); name = propKey; break; case "checked": + propKey !== lastProp && (viewTransitionMutationContext = !0); checked = propKey; break; case "defaultChecked": + propKey !== lastProp && (viewTransitionMutationContext = !0); defaultChecked = propKey; break; case "value": + propKey !== lastProp && (viewTransitionMutationContext = !0); value = propKey; break; case "defaultValue": + propKey !== lastProp && (viewTransitionMutationContext = !0); defaultValue = propKey; break; case "children": @@ -15472,7 +16624,7 @@ function updateProperties(domElement, tag, lastProps, nextProps) { setProp( domElement, tag, - propKey$244, + propKey$252, propKey, nextProps, lastProp @@ -15491,7 +16643,7 @@ function updateProperties(domElement, tag, lastProps, nextProps) { ); return; case "select": - propKey = value = defaultValue = propKey$244 = null; + propKey = value = defaultValue = propKey$252 = null; for (type in lastProps) if ( ((lastDefaultValue = lastProps[type]), @@ -15522,13 +16674,16 @@ function updateProperties(domElement, tag, lastProps, nextProps) { ) switch (name) { case "value": - propKey$244 = type; + type !== lastDefaultValue && (viewTransitionMutationContext = !0); + propKey$252 = type; break; case "defaultValue": + type !== lastDefaultValue && (viewTransitionMutationContext = !0); defaultValue = type; break; case "multiple": - value = type; + type !== lastDefaultValue && (viewTransitionMutationContext = !0), + (value = type); default: type !== lastDefaultValue && setProp( @@ -15543,15 +16698,15 @@ function updateProperties(domElement, tag, lastProps, nextProps) { tag = defaultValue; lastProps = value; nextProps = propKey; - null != propKey$244 - ? updateOptions(domElement, !!lastProps, propKey$244, !1) + null != propKey$252 + ? updateOptions(domElement, !!lastProps, propKey$252, !1) : !!nextProps !== !!lastProps && (null != tag ? updateOptions(domElement, !!lastProps, tag, !0) : updateOptions(domElement, !!lastProps, lastProps ? [] : "", !1)); return; case "textarea": - propKey = propKey$244 = null; + propKey = propKey$252 = null; for (defaultValue in lastProps) if ( ((name = lastProps[defaultValue]), @@ -15575,9 +16730,11 @@ function updateProperties(domElement, tag, lastProps, nextProps) { ) switch (value) { case "value": - propKey$244 = name; + name !== type && (viewTransitionMutationContext = !0); + propKey$252 = name; break; case "defaultValue": + name !== type && (viewTransitionMutationContext = !0); propKey = name; break; case "children": @@ -15589,17 +16746,17 @@ function updateProperties(domElement, tag, lastProps, nextProps) { name !== type && setProp(domElement, tag, value, name, nextProps, type); } - updateTextarea(domElement, propKey$244, propKey); + updateTextarea(domElement, propKey$252, propKey); return; case "option": - for (var propKey$260 in lastProps) + for (var propKey$268 in lastProps) if ( - ((propKey$244 = lastProps[propKey$260]), - lastProps.hasOwnProperty(propKey$260) && - null != propKey$244 && - !nextProps.hasOwnProperty(propKey$260)) + ((propKey$252 = lastProps[propKey$268]), + lastProps.hasOwnProperty(propKey$268) && + null != propKey$252 && + !nextProps.hasOwnProperty(propKey$268)) ) - switch (propKey$260) { + switch (propKey$268) { case "selected": domElement.selected = !1; break; @@ -15607,33 +16764,34 @@ function updateProperties(domElement, tag, lastProps, nextProps) { setProp( domElement, tag, - propKey$260, + propKey$268, null, nextProps, - propKey$244 + propKey$252 ); } for (lastDefaultValue in nextProps) if ( - ((propKey$244 = nextProps[lastDefaultValue]), + ((propKey$252 = nextProps[lastDefaultValue]), (propKey = lastProps[lastDefaultValue]), nextProps.hasOwnProperty(lastDefaultValue) && - propKey$244 !== propKey && - (null != propKey$244 || null != propKey)) + propKey$252 !== propKey && + (null != propKey$252 || null != propKey)) ) switch (lastDefaultValue) { case "selected": + propKey$252 !== propKey && (viewTransitionMutationContext = !0); domElement.selected = - propKey$244 && - "function" !== typeof propKey$244 && - "symbol" !== typeof propKey$244; + propKey$252 && + "function" !== typeof propKey$252 && + "symbol" !== typeof propKey$252; break; default: setProp( domElement, tag, lastDefaultValue, - propKey$244, + propKey$252, nextProps, propKey ); @@ -15654,24 +16812,24 @@ function updateProperties(domElement, tag, lastProps, nextProps) { case "track": case "wbr": case "menuitem": - for (var propKey$265 in lastProps) - (propKey$244 = lastProps[propKey$265]), - lastProps.hasOwnProperty(propKey$265) && - null != propKey$244 && - !nextProps.hasOwnProperty(propKey$265) && - setProp(domElement, tag, propKey$265, null, nextProps, propKey$244); + for (var propKey$273 in lastProps) + (propKey$252 = lastProps[propKey$273]), + lastProps.hasOwnProperty(propKey$273) && + null != propKey$252 && + !nextProps.hasOwnProperty(propKey$273) && + setProp(domElement, tag, propKey$273, null, nextProps, propKey$252); for (checked in nextProps) if ( - ((propKey$244 = nextProps[checked]), + ((propKey$252 = nextProps[checked]), (propKey = lastProps[checked]), nextProps.hasOwnProperty(checked) && - propKey$244 !== propKey && - (null != propKey$244 || null != propKey)) + propKey$252 !== propKey && + (null != propKey$252 || null != propKey)) ) switch (checked) { case "children": case "dangerouslySetInnerHTML": - if (null != propKey$244) + if (null != propKey$252) throw Error(formatProdErrorMessage(137, tag)); break; default: @@ -15679,7 +16837,7 @@ function updateProperties(domElement, tag, lastProps, nextProps) { domElement, tag, checked, - propKey$244, + propKey$252, nextProps, propKey ); @@ -15687,49 +16845,49 @@ function updateProperties(domElement, tag, lastProps, nextProps) { return; default: if (isCustomElement(tag)) { - for (var propKey$270 in lastProps) - (propKey$244 = lastProps[propKey$270]), - lastProps.hasOwnProperty(propKey$270) && - void 0 !== propKey$244 && - !nextProps.hasOwnProperty(propKey$270) && + for (var propKey$278 in lastProps) + (propKey$252 = lastProps[propKey$278]), + lastProps.hasOwnProperty(propKey$278) && + void 0 !== propKey$252 && + !nextProps.hasOwnProperty(propKey$278) && setPropOnCustomElement( domElement, tag, - propKey$270, + propKey$278, void 0, nextProps, - propKey$244 + propKey$252 ); for (defaultChecked in nextProps) - (propKey$244 = nextProps[defaultChecked]), + (propKey$252 = nextProps[defaultChecked]), (propKey = lastProps[defaultChecked]), !nextProps.hasOwnProperty(defaultChecked) || - propKey$244 === propKey || - (void 0 === propKey$244 && void 0 === propKey) || + propKey$252 === propKey || + (void 0 === propKey$252 && void 0 === propKey) || setPropOnCustomElement( domElement, tag, defaultChecked, - propKey$244, + propKey$252, nextProps, propKey ); return; } } - for (var propKey$275 in lastProps) - (propKey$244 = lastProps[propKey$275]), - lastProps.hasOwnProperty(propKey$275) && - null != propKey$244 && - !nextProps.hasOwnProperty(propKey$275) && - setProp(domElement, tag, propKey$275, null, nextProps, propKey$244); + for (var propKey$283 in lastProps) + (propKey$252 = lastProps[propKey$283]), + lastProps.hasOwnProperty(propKey$283) && + null != propKey$252 && + !nextProps.hasOwnProperty(propKey$283) && + setProp(domElement, tag, propKey$283, null, nextProps, propKey$252); for (lastProp in nextProps) - (propKey$244 = nextProps[lastProp]), + (propKey$252 = nextProps[lastProp]), (propKey = lastProps[lastProp]), !nextProps.hasOwnProperty(lastProp) || - propKey$244 === propKey || - (null == propKey$244 && null == propKey) || - setProp(domElement, tag, lastProp, propKey$244, nextProps, propKey); + propKey$252 === propKey || + (null == propKey$252 && null == propKey) || + setProp(domElement, tag, lastProp, propKey$252, nextProps, propKey); } function isLikelyStaticResource(initiatorType) { switch (initiatorType) { @@ -15946,6 +17104,856 @@ function hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) { node = nextNode; } while (node); } +function applyViewTransitionName(instance, name, className) { + instance.style.viewTransitionName = name; + null != className && (instance.style.viewTransitionClass = className); + name = getComputedStyle(instance); + if ("inline" === name.display) { + className = instance.getClientRects(); + if (1 === className.length) var JSCompiler_inline_result = 1; + else + for (var i = (JSCompiler_inline_result = 0); i < className.length; i++) { + var rect = className[i]; + 0 < rect.width && 0 < rect.height && JSCompiler_inline_result++; + } + 1 === JSCompiler_inline_result && + ((instance = instance.style), + (instance.display = 1 === className.length ? "inline-block" : "block"), + (instance.marginTop = "-" + name.paddingTop), + (instance.marginBottom = "-" + name.paddingBottom)); + } +} +function restoreViewTransitionName(instance, props) { + instance = instance.style; + props = props.style; + var viewTransitionName = + null != props + ? props.hasOwnProperty("viewTransitionName") + ? props.viewTransitionName + : props.hasOwnProperty("view-transition-name") + ? props["view-transition-name"] + : null + : null; + instance.viewTransitionName = + null == viewTransitionName || "boolean" === typeof viewTransitionName + ? "" + : ("" + viewTransitionName).trim(); + viewTransitionName = + null != props + ? props.hasOwnProperty("viewTransitionClass") + ? props.viewTransitionClass + : props.hasOwnProperty("view-transition-class") + ? props["view-transition-class"] + : null + : null; + instance.viewTransitionClass = + null == viewTransitionName || "boolean" === typeof viewTransitionName + ? "" + : ("" + viewTransitionName).trim(); + "inline-block" === instance.display && + (null == props + ? (instance.display = instance.margin = "") + : ((viewTransitionName = props.display), + (instance.display = + null == viewTransitionName || "boolean" === typeof viewTransitionName + ? "" + : viewTransitionName), + (viewTransitionName = props.margin), + null != viewTransitionName + ? (instance.margin = viewTransitionName) + : ((viewTransitionName = props.hasOwnProperty("marginTop") + ? props.marginTop + : props["margin-top"]), + (instance.marginTop = + null == viewTransitionName || + "boolean" === typeof viewTransitionName + ? "" + : viewTransitionName), + (props = props.hasOwnProperty("marginBottom") + ? props.marginBottom + : props["margin-bottom"]), + (instance.marginBottom = + null == props || "boolean" === typeof props ? "" : props)))); +} +function createMeasurement(rect, computedStyle, element) { + element = element.ownerDocument.defaultView; + return { + rect: rect, + abs: + "absolute" === computedStyle.position || + "fixed" === computedStyle.position, + clip: + "none" !== computedStyle.clipPath || + "visible" !== computedStyle.overflow || + "none" !== computedStyle.filter || + "none" !== computedStyle.mask || + "none" !== computedStyle.mask || + "0px" !== computedStyle.borderRadius, + view: + 0 <= rect.bottom && + 0 <= rect.right && + rect.top <= element.innerHeight && + rect.left <= element.innerWidth + }; +} +function measureInstance(instance) { + var rect = instance.getBoundingClientRect(), + computedStyle = getComputedStyle(instance); + return createMeasurement(rect, computedStyle, instance); +} +function measureClonedInstance(instance) { + var measuredRect = instance.getBoundingClientRect(); + measuredRect = new DOMRect( + measuredRect.x + 2e4, + measuredRect.y + 2e4, + measuredRect.width, + measuredRect.height + ); + var computedStyle = getComputedStyle(instance); + return createMeasurement(measuredRect, computedStyle, instance); +} +function forceLayout(ownerDocument) { + return ownerDocument.documentElement.clientHeight; +} +function waitForImageToLoad(resolve) { + this.addEventListener("load", resolve); + this.addEventListener("error", resolve); +} +function startViewTransition( + suspendedState, + rootContainer, + transitionTypes, + mutationCallback, + layoutCallback, + afterMutationCallback, + spawnedWorkCallback, + passiveCallback, + errorCallback, + blockedCallback, + finishedAnimation +) { + var ownerDocument = + 9 === rootContainer.nodeType ? rootContainer : rootContainer.ownerDocument; + try { + var transition = ownerDocument.startViewTransition({ + update: function () { + var ownerWindow = ownerDocument.defaultView, + pendingNavigation = + ownerWindow.navigation && ownerWindow.navigation.transition, + previousFontLoadingStatus = ownerDocument.fonts.status; + mutationCallback(); + var blockingPromises = []; + "loaded" === previousFontLoadingStatus && + (forceLayout(ownerDocument), + "loading" === ownerDocument.fonts.status && + blockingPromises.push(ownerDocument.fonts.ready)); + previousFontLoadingStatus = blockingPromises.length; + if (null !== suspendedState) + for ( + var suspenseyImages = suspendedState.suspenseyImages, + imgBytes = 0, + i = 0; + i < suspenseyImages.length; + i++ + ) { + var suspenseyImage = suspenseyImages[i]; + if (!suspenseyImage.complete) { + var rect = suspenseyImage.getBoundingClientRect(); + if ( + 0 < rect.bottom && + 0 < rect.right && + rect.top < ownerWindow.innerHeight && + rect.left < ownerWindow.innerWidth + ) { + imgBytes += estimateImageBytes(suspenseyImage); + if (imgBytes > estimatedBytesWithinLimit) { + blockingPromises.length = previousFontLoadingStatus; + break; + } + suspenseyImage = new Promise( + waitForImageToLoad.bind(suspenseyImage) + ); + blockingPromises.push(suspenseyImage); + } + } + } + if (0 < blockingPromises.length) + return ( + blockedCallback( + 0 < previousFontLoadingStatus + ? blockingPromises.length > previousFontLoadingStatus + ? "Waiting on Fonts and Images" + : "Waiting on Fonts" + : "Waiting on Images" + ), + (ownerWindow = Promise.race([ + Promise.all(blockingPromises), + new Promise(function (resolve) { + return setTimeout(resolve, 500); + }) + ]).then(layoutCallback, layoutCallback)), + (pendingNavigation + ? Promise.allSettled([pendingNavigation.finished, ownerWindow]) + : ownerWindow + ).then(afterMutationCallback, afterMutationCallback) + ); + layoutCallback(); + if (pendingNavigation) + return pendingNavigation.finished.then( + afterMutationCallback, + afterMutationCallback + ); + afterMutationCallback(); + }, + types: transitionTypes + }); + ownerDocument.__reactViewTransition = transition; + transition.ready.then( + function () { + for ( + var animations = ownerDocument.documentElement.getAnimations({ + subtree: !0 + }), + i = 0; + i < animations.length; + i++ + ) { + var effect = animations[i].effect, + pseudoElement = effect.pseudoElement; + if ( + null != pseudoElement && + pseudoElement.startsWith("::view-transition") + ) { + pseudoElement = effect.getKeyframes(); + for ( + var width = void 0, + height = void 0, + unchangedDimensions = !0, + j = 0; + j < pseudoElement.length; + j++ + ) { + var keyframe = pseudoElement[j], + w = keyframe.width; + if (void 0 === width) width = w; + else if (width !== w) { + unchangedDimensions = !1; + break; + } + w = keyframe.height; + if (void 0 === height) height = w; + else if (height !== w) { + unchangedDimensions = !1; + break; + } + delete keyframe.width; + delete keyframe.height; + "none" === keyframe.transform && delete keyframe.transform; + } + unchangedDimensions && + void 0 !== width && + void 0 !== height && + (effect.setKeyframes(pseudoElement), + (unchangedDimensions = getComputedStyle( + effect.target, + effect.pseudoElement + )), + unchangedDimensions.width !== width || + unchangedDimensions.height !== height) && + ((unchangedDimensions = pseudoElement[0]), + (unchangedDimensions.width = width), + (unchangedDimensions.height = height), + (unchangedDimensions = pseudoElement[pseudoElement.length - 1]), + (unchangedDimensions.width = width), + (unchangedDimensions.height = height), + effect.setKeyframes(pseudoElement)); + } + } + spawnedWorkCallback(); + }, + function (error) { + ownerDocument.__reactViewTransition === transition && + (ownerDocument.__reactViewTransition = null); + try { + if ("object" === typeof error && null !== error) + switch (error.name) { + case "InvalidStateError": + if ( + "View transition was skipped because document visibility state is hidden." === + error.message || + "Skipping view transition because document visibility state has become hidden." === + error.message || + "Skipping view transition because viewport size changed." === + error.message || + "Transition was aborted because of invalid state" === + error.message + ) + error = null; + } + null !== error && errorCallback(error); + } finally { + mutationCallback(), + layoutCallback(), + spawnedWorkCallback(), + finishedAnimation(); + } + } + ); + transition.finished.finally(function () { + for ( + var scope = ownerDocument.documentElement, + animations = scope.getAnimations({ subtree: !0 }), + i = 0; + i < animations.length; + i++ + ) { + var anim = animations[i], + effect = anim.effect, + pseudo = effect.pseudoElement; + null != pseudo && + pseudo.startsWith("::view-transition") && + effect.target === scope && + anim.cancel(); + } + ownerDocument.__reactViewTransition === transition && + (ownerDocument.__reactViewTransition = null); + finishedAnimation(); + passiveCallback(); + }); + return transition; + } catch (x) { + return ( + mutationCallback(), + layoutCallback(), + finishedAnimation(), + spawnedWorkCallback(), + null + ); + } +} +function ViewTransitionPseudoElement(pseudo, name) { + this._scope = document.documentElement; + this._selector = "::view-transition-" + pseudo + "(" + name + ")"; +} +ViewTransitionPseudoElement.prototype.animate = function (keyframes, options) { + options = + "number" === typeof options ? { duration: options } : assign({}, options); + options.pseudoElement = this._selector; + return this._scope.animate(keyframes, options); +}; +ViewTransitionPseudoElement.prototype.getAnimations = function () { + for ( + var scope = this._scope, + selector = this._selector, + animations = scope.getAnimations({ subtree: !0 }), + result = [], + i = 0; + i < animations.length; + i++ + ) { + var effect = animations[i].effect; + null !== effect && + effect.target === scope && + effect.pseudoElement === selector && + result.push(animations[i]); + } + return result; +}; +ViewTransitionPseudoElement.prototype.getComputedStyle = function () { + return getComputedStyle(this._scope, this._selector); +}; +function createViewTransitionInstance(name) { + return { + name: name, + group: new ViewTransitionPseudoElement("group", name), + imagePair: new ViewTransitionPseudoElement("image-pair", name), + old: new ViewTransitionPseudoElement("old", name), + new: new ViewTransitionPseudoElement("new", name) + }; +} +function FragmentInstance(fragmentFiber) { + this._fragmentFiber = fragmentFiber; + this._observers = this._eventListeners = null; +} +FragmentInstance.prototype.addEventListener = function ( + type, + listener, + optionsOrUseCapture +) { + null === this._eventListeners && (this._eventListeners = []); + var listeners = this._eventListeners; + -1 === indexOfEventListener(listeners, type, listener, optionsOrUseCapture) && + (listeners.push({ + type: type, + listener: listener, + optionsOrUseCapture: optionsOrUseCapture + }), + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + addEventListenerToChild, + type, + listener, + optionsOrUseCapture + )); + this._eventListeners = listeners; +}; +function addEventListenerToChild(child, type, listener, optionsOrUseCapture) { + getInstanceFromHostFiber(child).addEventListener( + type, + listener, + optionsOrUseCapture + ); + return !1; +} +FragmentInstance.prototype.removeEventListener = function ( + type, + listener, + optionsOrUseCapture +) { + var listeners = this._eventListeners; + null !== listeners && + "undefined" !== typeof listeners && + 0 < listeners.length && + (traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + removeEventListenerFromChild, + type, + listener, + optionsOrUseCapture + ), + (type = indexOfEventListener( + listeners, + type, + listener, + optionsOrUseCapture + )), + null !== this._eventListeners && this._eventListeners.splice(type, 1)); +}; +function removeEventListenerFromChild( + child, + type, + listener, + optionsOrUseCapture +) { + getInstanceFromHostFiber(child).removeEventListener( + type, + listener, + optionsOrUseCapture + ); + return !1; +} +function normalizeListenerOptions(opts) { + return null == opts + ? "0" + : "boolean" === typeof opts + ? "c=" + (opts ? "1" : "0") + : "c=" + + (opts.capture ? "1" : "0") + + "&o=" + + (opts.once ? "1" : "0") + + "&p=" + + (opts.passive ? "1" : "0"); +} +function indexOfEventListener( + eventListeners, + type, + listener, + optionsOrUseCapture +) { + for (var i = 0; i < eventListeners.length; i++) { + var item = eventListeners[i]; + if ( + item.type === type && + item.listener === listener && + normalizeListenerOptions(item.optionsOrUseCapture) === + normalizeListenerOptions(optionsOrUseCapture) + ) + return i; + } + return -1; +} +FragmentInstance.prototype.dispatchEvent = function (event) { + var parentHostFiber = getFragmentParentHostFiber(this._fragmentFiber); + if (null === parentHostFiber) return !0; + parentHostFiber = getInstanceFromHostFiber(parentHostFiber); + var eventListeners = this._eventListeners; + if ( + (null !== eventListeners && 0 < eventListeners.length) || + !event.bubbles + ) { + var temp = document.createTextNode(""); + if (eventListeners) + for (var i = 0; i < eventListeners.length; i++) { + var _eventListeners$i = eventListeners[i]; + temp.addEventListener( + _eventListeners$i.type, + _eventListeners$i.listener, + _eventListeners$i.optionsOrUseCapture + ); + } + parentHostFiber.appendChild(temp); + event = temp.dispatchEvent(event); + if (eventListeners) + for (i = 0; i < eventListeners.length; i++) + (_eventListeners$i = eventListeners[i]), + temp.removeEventListener( + _eventListeners$i.type, + _eventListeners$i.listener, + _eventListeners$i.optionsOrUseCapture + ); + parentHostFiber.removeChild(temp); + return event; + } + return parentHostFiber.dispatchEvent(event); +}; +FragmentInstance.prototype.focus = function (focusOptions) { + traverseVisibleHostChildren( + this._fragmentFiber.child, + !0, + setFocusOnFiberIfFocusable, + focusOptions, + void 0, + void 0 + ); +}; +function setFocusOnFiberIfFocusable(fiber, focusOptions) { + fiber = getInstanceFromHostFiber(fiber); + return setFocusIfFocusable(fiber, focusOptions); +} +FragmentInstance.prototype.focusLast = function (focusOptions) { + var children = []; + traverseVisibleHostChildren( + this._fragmentFiber.child, + !0, + collectChildren, + children, + void 0, + void 0 + ); + for ( + var i = children.length - 1; + 0 <= i && !setFocusOnFiberIfFocusable(children[i], focusOptions); + i-- + ); +}; +function collectChildren(child, collection) { + collection.push(child); + return !1; +} +FragmentInstance.prototype.blur = function () { + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + blurActiveElementWithinFragment, + void 0, + void 0, + void 0 + ); +}; +function blurActiveElementWithinFragment(child) { + child = getInstanceFromHostFiber(child); + return child === child.ownerDocument.activeElement ? (child.blur(), !0) : !1; +} +FragmentInstance.prototype.observeUsing = function (observer) { + null === this._observers && (this._observers = new Set()); + this._observers.add(observer); + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + observeChild, + observer, + void 0, + void 0 + ); +}; +function observeChild(child, observer) { + child = getInstanceFromHostFiber(child); + observer.observe(child); + return !1; +} +FragmentInstance.prototype.unobserveUsing = function (observer) { + var observers = this._observers; + null !== observers && + observers.has(observer) && + (observers.delete(observer), + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + unobserveChild, + observer, + void 0, + void 0 + )); +}; +function unobserveChild(child, observer) { + child = getInstanceFromHostFiber(child); + observer.unobserve(child); + return !1; +} +FragmentInstance.prototype.getClientRects = function () { + var rects = []; + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + collectClientRects, + rects, + void 0, + void 0 + ); + return rects; +}; +function collectClientRects(child, rects) { + child = getInstanceFromHostFiber(child); + rects.push.apply(rects, child.getClientRects()); + return !1; +} +FragmentInstance.prototype.getRootNode = function (getRootNodeOptions) { + var parentHostFiber = getFragmentParentHostFiber(this._fragmentFiber); + return null === parentHostFiber + ? this + : getInstanceFromHostFiber(parentHostFiber).getRootNode(getRootNodeOptions); +}; +FragmentInstance.prototype.compareDocumentPosition = function (otherNode) { + var parentHostFiber = getFragmentParentHostFiber(this._fragmentFiber); + if (null === parentHostFiber) return Node.DOCUMENT_POSITION_DISCONNECTED; + var children = []; + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + collectChildren, + children, + void 0, + void 0 + ); + var parentHostInstance = getInstanceFromHostFiber(parentHostFiber); + if (0 === children.length) { + children = this._fragmentFiber; + var parentResult = parentHostInstance.compareDocumentPosition(otherNode); + parentHostFiber = parentResult; + parentHostInstance === otherNode + ? (parentHostFiber = Node.DOCUMENT_POSITION_CONTAINS) + : parentResult & Node.DOCUMENT_POSITION_CONTAINED_BY && + (traverseVisibleHostChildren(children.sibling, !1, findNextSibling), + (children = searchTarget), + (searchTarget = null), + null === children + ? (parentHostFiber = Node.DOCUMENT_POSITION_PRECEDING) + : ((otherNode = + getInstanceFromHostFiber(children).compareDocumentPosition( + otherNode + )), + (parentHostFiber = + 0 === otherNode || otherNode & Node.DOCUMENT_POSITION_FOLLOWING + ? Node.DOCUMENT_POSITION_FOLLOWING + : Node.DOCUMENT_POSITION_PRECEDING))); + return (parentHostFiber |= Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC); + } + parentHostFiber = getInstanceFromHostFiber(children[0]); + parentResult = getInstanceFromHostFiber(children[children.length - 1]); + for ( + var firstInstance = getInstanceFromHostFiber(children[0]), + foundPortalParent = !1, + parent = this._fragmentFiber.return; + null !== parent; + + ) { + 4 === parent.tag && (foundPortalParent = !0); + if (3 === parent.tag || 5 === parent.tag) break; + parent = parent.return; + } + firstInstance = foundPortalParent + ? firstInstance.parentElement + : parentHostInstance; + if (null == firstInstance) return Node.DOCUMENT_POSITION_DISCONNECTED; + parentHostInstance = + firstInstance.compareDocumentPosition(parentHostFiber) & + Node.DOCUMENT_POSITION_CONTAINED_BY; + firstInstance = + firstInstance.compareDocumentPosition(parentResult) & + Node.DOCUMENT_POSITION_CONTAINED_BY; + foundPortalParent = parentHostFiber.compareDocumentPosition(otherNode); + var lastResult = parentResult.compareDocumentPosition(otherNode); + parent = + foundPortalParent & Node.DOCUMENT_POSITION_CONTAINED_BY || + lastResult & Node.DOCUMENT_POSITION_CONTAINED_BY; + lastResult = + parentHostInstance && + firstInstance && + foundPortalParent & Node.DOCUMENT_POSITION_FOLLOWING && + lastResult & Node.DOCUMENT_POSITION_PRECEDING; + parentHostFiber = + (parentHostInstance && parentHostFiber === otherNode) || + (firstInstance && parentResult === otherNode) || + parent || + lastResult + ? Node.DOCUMENT_POSITION_CONTAINED_BY + : (!parentHostInstance && parentHostFiber === otherNode) || + (!firstInstance && parentResult === otherNode) + ? Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC + : foundPortalParent; + return parentHostFiber & Node.DOCUMENT_POSITION_DISCONNECTED || + parentHostFiber & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC || + validateDocumentPositionWithFiberTree( + parentHostFiber, + this._fragmentFiber, + children[0], + children[children.length - 1], + otherNode + ) + ? parentHostFiber + : Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC; +}; +function validateDocumentPositionWithFiberTree( + documentPosition, + fragmentFiber, + precedingBoundaryFiber, + followingBoundaryFiber, + otherNode +) { + var otherFiber = getClosestInstanceFromNode(otherNode); + if (documentPosition & Node.DOCUMENT_POSITION_CONTAINED_BY) { + if ((precedingBoundaryFiber = !!otherFiber)) + a: { + for (; null !== otherFiber; ) { + if ( + 7 === otherFiber.tag && + (otherFiber === fragmentFiber || + otherFiber.alternate === fragmentFiber) + ) { + precedingBoundaryFiber = !0; + break a; + } + otherFiber = otherFiber.return; + } + precedingBoundaryFiber = !1; + } + return precedingBoundaryFiber; + } + if (documentPosition & Node.DOCUMENT_POSITION_CONTAINS) { + if (null === otherFiber) + return ( + (otherFiber = otherNode.ownerDocument), + otherNode === otherFiber || otherNode === otherFiber.body + ); + a: { + otherFiber = fragmentFiber; + for ( + fragmentFiber = getFragmentParentHostFiber(fragmentFiber); + null !== otherFiber; + + ) { + if ( + !( + (5 !== otherFiber.tag && 3 !== otherFiber.tag) || + (otherFiber !== fragmentFiber && + otherFiber.alternate !== fragmentFiber) + ) + ) { + otherFiber = !0; + break a; + } + otherFiber = otherFiber.return; + } + otherFiber = !1; + } + return otherFiber; + } + return documentPosition & Node.DOCUMENT_POSITION_PRECEDING + ? ((fragmentFiber = !!otherFiber) && + !(fragmentFiber = otherFiber === precedingBoundaryFiber) && + ((fragmentFiber = getLowestCommonAncestor( + precedingBoundaryFiber, + otherFiber, + getParentForFragmentAncestors + )), + null === fragmentFiber + ? (fragmentFiber = !1) + : (traverseVisibleHostChildren( + fragmentFiber, + !0, + isFiberPrecedingCheck, + otherFiber, + precedingBoundaryFiber + ), + (otherFiber = searchTarget), + (searchTarget = null), + (fragmentFiber = null !== otherFiber))), + fragmentFiber) + : documentPosition & Node.DOCUMENT_POSITION_FOLLOWING + ? ((fragmentFiber = !!otherFiber) && + !(fragmentFiber = otherFiber === followingBoundaryFiber) && + ((fragmentFiber = getLowestCommonAncestor( + followingBoundaryFiber, + otherFiber, + getParentForFragmentAncestors + )), + null === fragmentFiber + ? (fragmentFiber = !1) + : (traverseVisibleHostChildren( + fragmentFiber, + !0, + isFiberFollowingCheck, + otherFiber, + followingBoundaryFiber + ), + (otherFiber = searchTarget), + (searchBoundary = searchTarget = null), + (fragmentFiber = null !== otherFiber))), + fragmentFiber) + : !1; +} +FragmentInstance.prototype.scrollIntoView = function (alignToTop) { + if ("object" === typeof alignToTop) throw Error(formatProdErrorMessage(566)); + var children = []; + traverseVisibleHostChildren( + this._fragmentFiber.child, + !1, + collectChildren, + children, + void 0, + void 0 + ); + var resolvedAlignToTop = !1 !== alignToTop; + if (0 === children.length) { + children = this._fragmentFiber; + var result = [null, null], + parentHostFiber = getFragmentParentHostFiber(children); + null !== parentHostFiber && + findFragmentInstanceSiblings(result, children, parentHostFiber.child); + resolvedAlignToTop = resolvedAlignToTop + ? result[1] || + result[0] || + getFragmentParentHostFiber(this._fragmentFiber) + : result[0] || result[1]; + null !== resolvedAlignToTop && + getInstanceFromHostFiber(resolvedAlignToTop).scrollIntoView(alignToTop); + } else + for ( + result = resolvedAlignToTop ? children.length - 1 : 0; + result !== (resolvedAlignToTop ? -1 : children.length); + + ) + getInstanceFromHostFiber(children[result]).scrollIntoView(alignToTop), + (result += resolvedAlignToTop ? -1 : 1); +}; +function commitNewChildToFragmentInstance(childInstance, fragmentInstance) { + var eventListeners = fragmentInstance._eventListeners; + if (null !== eventListeners) + for (var i = 0; i < eventListeners.length; i++) { + var _eventListeners$i3 = eventListeners[i]; + childInstance.addEventListener( + _eventListeners$i3.type, + _eventListeners$i3.listener, + _eventListeners$i3.optionsOrUseCapture + ); + } + null !== fragmentInstance._observers && + fragmentInstance._observers.forEach(function (observer) { + observer.observe(childInstance); + }); +} function clearContainerSparingly(container) { var nextNode = container.firstChild; nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling); @@ -16148,6 +18156,19 @@ function getParentHydrationBoundary(targetInstance) { } return null; } +function setFocusIfFocusable(node, focusOptions) { + function handleFocus() { + didFocus = !0; + } + var didFocus = !1; + try { + node.addEventListener("focus", handleFocus), + (node.focus || HTMLElement.prototype.focus).call(node, focusOptions); + } finally { + node.removeEventListener("focus", handleFocus); + } + return didFocus; +} function resolveSingletonInstance(type, props, rootContainerInstance) { props = getOwnerDocumentFromRootContainer(rootContainerInstance); switch (type) { @@ -16473,26 +18494,26 @@ function getResource(type, currentProps, pendingProps, currentResource) { "string" === typeof pendingProps.precedence ) { type = getStyleKey(pendingProps.href); - var styles$286 = getResourcesFromRoot( + var styles$299 = getResourcesFromRoot( JSCompiler_inline_result ).hoistableStyles, - resource$287 = styles$286.get(type); - resource$287 || + resource$300 = styles$299.get(type); + resource$300 || ((JSCompiler_inline_result = JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result), - (resource$287 = { + (resource$300 = { type: "stylesheet", instance: null, count: 0, state: { loading: 0, preload: null } }), - styles$286.set(type, resource$287), - (styles$286 = JSCompiler_inline_result.querySelector( + styles$299.set(type, resource$300), + (styles$299 = JSCompiler_inline_result.querySelector( getStylesheetSelectorFromKey(type) )) && - !styles$286._p && - ((resource$287.instance = styles$286), - (resource$287.state.loading = 5)), + !styles$299._p && + ((resource$300.instance = styles$299), + (resource$300.state.loading = 5)), preloadPropsMap.has(type) || ((pendingProps = { rel: "preload", @@ -16505,16 +18526,16 @@ function getResource(type, currentProps, pendingProps, currentResource) { referrerPolicy: pendingProps.referrerPolicy }), preloadPropsMap.set(type, pendingProps), - styles$286 || + styles$299 || preloadStylesheet( JSCompiler_inline_result, type, pendingProps, - resource$287.state + resource$300.state ))); if (currentProps && null === currentResource) throw Error(formatProdErrorMessage(528, "")); - return resource$287; + return resource$300; } if (currentProps && null !== currentResource) throw Error(formatProdErrorMessage(529, "")); @@ -16611,37 +18632,37 @@ function acquireResource(hoistableRoot, resource, props) { return (resource.instance = instance); case "stylesheet": styleProps = getStyleKey(props.href); - var instance$292 = hoistableRoot.querySelector( + var instance$305 = hoistableRoot.querySelector( getStylesheetSelectorFromKey(styleProps) ); - if (instance$292) + if (instance$305) return ( (resource.state.loading |= 4), - (resource.instance = instance$292), - markNodeAsHoistable(instance$292), - instance$292 + (resource.instance = instance$305), + markNodeAsHoistable(instance$305), + instance$305 ); instance = stylesheetPropsFromRawProps(props); (styleProps = preloadPropsMap.get(styleProps)) && adoptPreloadPropsForStylesheet(instance, styleProps); - instance$292 = ( + instance$305 = ( hoistableRoot.ownerDocument || hoistableRoot ).createElement("link"); - markNodeAsHoistable(instance$292); - var linkInstance = instance$292; + markNodeAsHoistable(instance$305); + var linkInstance = instance$305; linkInstance._p = new Promise(function (resolve, reject) { linkInstance.onload = resolve; linkInstance.onerror = reject; }); - setInitialProperties(instance$292, "link", instance); + setInitialProperties(instance$305, "link", instance); resource.state.loading |= 4; - insertStylesheet(instance$292, props.precedence, hoistableRoot); - return (resource.instance = instance$292); + insertStylesheet(instance$305, props.precedence, hoistableRoot); + return (resource.instance = instance$305); case "script": - instance$292 = getScriptKey(props.src); + instance$305 = getScriptKey(props.src); if ( (styleProps = hoistableRoot.querySelector( - getScriptSelectorFromKey(instance$292) + getScriptSelectorFromKey(instance$305) )) ) return ( @@ -16650,7 +18671,7 @@ function acquireResource(hoistableRoot, resource, props) { styleProps ); instance = props; - if ((styleProps = preloadPropsMap.get(instance$292))) + if ((styleProps = preloadPropsMap.get(instance$305))) (instance = assign({}, props)), adoptPreloadPropsForScript(instance, styleProps); hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot; @@ -16791,11 +18812,37 @@ function isHostHoistableType(type, props, hostContext) { } return !1; } +function maySuspendCommit(type, props) { + return ( + "img" === type && + null != props.src && + "" !== props.src && + null == props.onLoad && + "lazy" !== props.loading + ); +} function preloadResource(resource) { return "stylesheet" === resource.type && 0 === (resource.state.loading & 3) ? !1 : !0; } +function estimateImageBytes(instance) { + return ( + (instance.width || 100) * + (instance.height || 100) * + ("number" === typeof devicePixelRatio ? devicePixelRatio : 1) * + 0.25 + ); +} +function suspendInstance(state, instance) { + "function" === typeof instance.decode && + (state.imgCount++, + instance.complete || + ((state.imgBytes += estimateImageBytes(instance)), + state.suspenseyImages.push(instance)), + (state = onUnsuspendImg.bind(state)), + instance.decode().then(state, state)); +} function suspendResource(state, hoistableRoot, resource, props) { if ( "stylesheet" === resource.type && @@ -16890,16 +18937,23 @@ function waitForCommitToBeReady(state, timeoutOffset) { } : null; } -function onUnsuspend() { - this.count--; - if (0 === this.count && (0 === this.imgCount || !this.waitingForImages)) - if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets); - else if (this.unsuspend) { - var unsuspend = this.unsuspend; - this.unsuspend = null; +function checkIfFullyUnsuspended(state) { + if (0 === state.count && (0 === state.imgCount || !state.waitingForImages)) + if (state.stylesheets) insertSuspendedStylesheets(state, state.stylesheets); + else if (state.unsuspend) { + var unsuspend = state.unsuspend; + state.unsuspend = null; unsuspend(); } } +function onUnsuspend() { + this.count--; + checkIfFullyUnsuspended(this); +} +function onUnsuspendImg() { + this.imgCount--; + checkIfFullyUnsuspended(this); +} var precedencesByRoot = null; function insertSuspendedStylesheets(state, resources) { state.stylesheets = null; @@ -16999,6 +19053,7 @@ function FiberRootNode( this.pooledCache = null; this.pooledCacheLanes = 0; this.formState = formState; + this.transitionTypes = null; this.incompleteTransitions = new Map(); this.passiveEffectDuration = this.effectDuration = -0; this.memoizedUpdaters = new Set(); @@ -17768,16 +19823,16 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { 0 === i && attemptExplicitHydrationTarget(target); } }; -var isomorphicReactPackageVersion$jscomp$inline_2138 = React.version; +var isomorphicReactPackageVersion$jscomp$inline_2356 = React.version; if ( - "19.3.0-canary-c7862584-20251006" !== - isomorphicReactPackageVersion$jscomp$inline_2138 + "19.3.0-canary-a4eb2dfa-20251006" !== + isomorphicReactPackageVersion$jscomp$inline_2356 ) throw Error( formatProdErrorMessage( 527, - isomorphicReactPackageVersion$jscomp$inline_2138, - "19.3.0-canary-c7862584-20251006" + isomorphicReactPackageVersion$jscomp$inline_2356, + "19.3.0-canary-a4eb2dfa-20251006" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -17797,24 +19852,24 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { null === componentOrElement ? null : componentOrElement.stateNode; return componentOrElement; }; -var internals$jscomp$inline_2658 = { +var internals$jscomp$inline_2956 = { bundleType: 0, - version: "19.3.0-canary-c7862584-20251006", + version: "19.3.0-canary-a4eb2dfa-20251006", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.3.0-canary-c7862584-20251006" + reconcilerVersion: "19.3.0-canary-a4eb2dfa-20251006" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { - var hook$jscomp$inline_2659 = __REACT_DEVTOOLS_GLOBAL_HOOK__; + var hook$jscomp$inline_2957 = __REACT_DEVTOOLS_GLOBAL_HOOK__; if ( - !hook$jscomp$inline_2659.isDisabled && - hook$jscomp$inline_2659.supportsFiber + !hook$jscomp$inline_2957.isDisabled && + hook$jscomp$inline_2957.supportsFiber ) try { - (rendererID = hook$jscomp$inline_2659.inject( - internals$jscomp$inline_2658 + (rendererID = hook$jscomp$inline_2957.inject( + internals$jscomp$inline_2956 )), - (injectedHook = hook$jscomp$inline_2659); + (injectedHook = hook$jscomp$inline_2957); } catch (err) {} } function getCrossOriginStringAs(as, input) { @@ -18061,7 +20116,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.3.0-canary-c7862584-20251006"; +exports.version = "19.3.0-canary-a4eb2dfa-20251006"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.development.js index 016353c094833..2f72c05cd4e10 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.development.js @@ -86,6 +86,8 @@ return "Suspense"; case REACT_SUSPENSE_LIST_TYPE: return "SuspenseList"; + case REACT_VIEW_TRANSITION_TYPE: + return "ViewTransition"; } if ("object" === typeof type) switch (type.$$typeof) { @@ -842,7 +844,8 @@ return parentContext.insertionMode >= HTML_TABLE_MODE || parentContext.insertionMode < HTML_MODE ? createFormatContext(HTML_MODE, null, subtreeScope, null) - : parentContext.tagScope !== subtreeScope + : null !== parentContext.viewTransition || + parentContext.tagScope !== subtreeScope ? createFormatContext( parentContext.insertionMode, parentContext.selectedValue, @@ -865,7 +868,8 @@ }; } function getSuspenseFallbackFormatContext(resumableState, parentContext) { - parentContext.tagScope & 32 && (resumableState.instructions |= 128); + parentContext.tagScope & 32 && + (resumableState.instructions |= NeedUpgradeToViewTransitions); return createFormatContext( parentContext.insertionMode, parentContext.selectedValue, @@ -886,6 +890,31 @@ resumableState ); } + function makeId(resumableState, treeId, localId) { + resumableState = "_" + resumableState.idPrefix + "R_" + treeId; + 0 < localId && (resumableState += "H" + localId.toString(32)); + return resumableState + "_"; + } + function pushViewTransitionAttributes(target, formatContext) { + formatContext = formatContext.viewTransition; + null !== formatContext && + ("auto" !== formatContext.name && + (pushStringAttribute( + target, + "vt-name", + 0 === formatContext.nameIdx + ? formatContext.name + : formatContext.name + "_" + formatContext.nameIdx + ), + formatContext.nameIdx++), + pushStringAttribute(target, "vt-update", formatContext.update), + "none" !== formatContext.enter && + pushStringAttribute(target, "vt-enter", formatContext.enter), + "none" !== formatContext.exit && + pushStringAttribute(target, "vt-exit", formatContext.exit), + "none" !== formatContext.share && + pushStringAttribute(target, "vt-share", formatContext.share)); + } function pushStyleAttribute(target, style) { if ("object" !== typeof style) throw Error( @@ -1431,7 +1460,7 @@ checkHtmlStringCoercion(styleText); return ("" + styleText).replace(styleRegex, styleReplacer); } - function pushSelfClosing(target, props, tag) { + function pushSelfClosing(target, props, tag, formatContext) { target.push(startChunkForTag(tag)); for (var propKey in props) if (hasOwnProperty.call(props, propKey)) { @@ -1448,6 +1477,7 @@ pushAttribute(target, propKey, propValue); } } + pushViewTransitionAttributes(target, formatContext); target.push(endOfStartTagSelfClosing); return null; } @@ -1525,7 +1555,7 @@ target.push(endChunkForTag("script")); return null; } - function pushStartSingletonElement(target, props, tag) { + function pushStartSingletonElement(target, props, tag, formatContext) { target.push(startChunkForTag(tag)); var innerHTML = (tag = null), propKey; @@ -1544,11 +1574,12 @@ pushAttribute(target, propKey, propValue); } } + pushViewTransitionAttributes(target, formatContext); target.push(endOfStartTag); pushInnerHTML(target, innerHTML, tag); return tag; } - function pushStartGenericElement(target, props, tag) { + function pushStartGenericElement(target, props, tag, formatContext) { target.push(startChunkForTag(tag)); var innerHTML = (tag = null), propKey; @@ -1567,6 +1598,7 @@ pushAttribute(target, propKey, propValue); } } + pushViewTransitionAttributes(target, formatContext); target.push(endOfStartTag); pushInnerHTML(target, innerHTML, tag); return "string" === typeof tag @@ -1672,6 +1704,7 @@ pushAttribute(target$jscomp$0, propKey, propValue); } } + pushViewTransitionAttributes(target$jscomp$0, formatContext); target$jscomp$0.push(endOfStartTag); pushInnerHTML(target$jscomp$0, innerHTML, children); if ("string" === typeof children) { @@ -1720,6 +1753,7 @@ ); } } + pushViewTransitionAttributes(target$jscomp$0, formatContext); target$jscomp$0.push(endOfStartTag); pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0); return children$jscomp$0; @@ -1833,6 +1867,7 @@ null === value$jscomp$0 && null !== defaultValue && (value$jscomp$0 = defaultValue); + pushViewTransitionAttributes(target$jscomp$0, formatContext); target$jscomp$0.push(endOfStartTag); if (null != children$jscomp$2) { console.error( @@ -1960,6 +1995,7 @@ ? pushAttribute(target$jscomp$0, "value", value$jscomp$1) : null !== defaultValue$jscomp$0 && pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0); + pushViewTransitionAttributes(target$jscomp$0, formatContext); target$jscomp$0.push(endOfStartTagSelfClosing); null != formData && formData.forEach(pushAdditionalFormField, target$jscomp$0); @@ -2026,6 +2062,7 @@ formTarget$jscomp$0, name$jscomp$0 ); + pushViewTransitionAttributes(target$jscomp$0, formatContext); target$jscomp$0.push(endOfStartTag); null != formData$jscomp$0 && formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0); @@ -2123,6 +2160,7 @@ pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1); null != formTarget$jscomp$1 && pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1); + pushViewTransitionAttributes(target$jscomp$0, formatContext); target$jscomp$0.push(endOfStartTag); null !== formActionName && (target$jscomp$0.push('q&&2E3 parentContext.insertionMode ? createFormatContext(2, null, subtreeScope, null) - : parentContext.tagScope !== subtreeScope + : null !== parentContext.viewTransition || + parentContext.tagScope !== subtreeScope ? createFormatContext( parentContext.insertionMode, parentContext.selectedValue, @@ -433,6 +434,31 @@ function getSuspenseContentFormatContext(resumableState, parentContext) { resumableState ); } +function makeId(resumableState, treeId, localId) { + resumableState = "_" + resumableState.idPrefix + "R_" + treeId; + 0 < localId && (resumableState += "H" + localId.toString(32)); + return resumableState + "_"; +} +function pushViewTransitionAttributes(target, formatContext) { + formatContext = formatContext.viewTransition; + null !== formatContext && + ("auto" !== formatContext.name && + (pushStringAttribute( + target, + "vt-name", + 0 === formatContext.nameIdx + ? formatContext.name + : formatContext.name + "_" + formatContext.nameIdx + ), + formatContext.nameIdx++), + pushStringAttribute(target, "vt-update", formatContext.update), + "none" !== formatContext.enter && + pushStringAttribute(target, "vt-enter", formatContext.enter), + "none" !== formatContext.exit && + pushStringAttribute(target, "vt-exit", formatContext.exit), + "none" !== formatContext.share && + pushStringAttribute(target, "vt-share", formatContext.share)); +} var styleNameCache = new Map(); function pushStyleAttribute(target, style) { if ("object" !== typeof style) throw Error(formatProdErrorMessage(62)); @@ -772,7 +798,7 @@ var styleRegex = /(<\/|<)(s)(tyle)/gi; function styleReplacer(match, prefix, s, suffix) { return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix; } -function pushSelfClosing(target, props, tag) { +function pushSelfClosing(target, props, tag, formatContext) { target.push(startChunkForTag(tag)); for (var propKey in props) if (hasOwnProperty.call(props, propKey)) { @@ -786,6 +812,7 @@ function pushSelfClosing(target, props, tag) { pushAttribute(target, propKey, propValue); } } + pushViewTransitionAttributes(target, formatContext); target.push("/>"); return null; } @@ -851,7 +878,7 @@ function pushScriptImpl(target, props) { target.push(endChunkForTag("script")); return null; } -function pushStartSingletonElement(target, props, tag) { +function pushStartSingletonElement(target, props, tag, formatContext) { target.push(startChunkForTag(tag)); var innerHTML = (tag = null), propKey; @@ -870,11 +897,12 @@ function pushStartSingletonElement(target, props, tag) { pushAttribute(target, propKey, propValue); } } + pushViewTransitionAttributes(target, formatContext); target.push(">"); pushInnerHTML(target, innerHTML, tag); return tag; } -function pushStartGenericElement(target, props, tag) { +function pushStartGenericElement(target, props, tag, formatContext) { target.push(startChunkForTag(tag)); var innerHTML = (tag = null), propKey; @@ -893,6 +921,7 @@ function pushStartGenericElement(target, props, tag) { pushAttribute(target, propKey, propValue); } } + pushViewTransitionAttributes(target, formatContext); target.push(">"); pushInnerHTML(target, innerHTML, tag); return "string" === typeof tag @@ -953,6 +982,7 @@ function pushStartInstance( pushAttribute(target$jscomp$0, propKey, propValue); } } + pushViewTransitionAttributes(target$jscomp$0, formatContext); target$jscomp$0.push(">"); pushInnerHTML(target$jscomp$0, innerHTML, children); if ("string" === typeof children) { @@ -991,6 +1021,7 @@ function pushStartInstance( ); } } + pushViewTransitionAttributes(target$jscomp$0, formatContext); target$jscomp$0.push(">"); pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0); return children$jscomp$0; @@ -1078,6 +1109,7 @@ function pushStartInstance( null === value$jscomp$0 && null !== defaultValue && (value$jscomp$0 = defaultValue); + pushViewTransitionAttributes(target$jscomp$0, formatContext); target$jscomp$0.push(">"); if (null != children$jscomp$2) { if (null != value$jscomp$0) throw Error(formatProdErrorMessage(92)); @@ -1167,6 +1199,7 @@ function pushStartInstance( ? pushAttribute(target$jscomp$0, "value", value$jscomp$1) : null !== defaultValue$jscomp$0 && pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0); + pushViewTransitionAttributes(target$jscomp$0, formatContext); target$jscomp$0.push("/>"); null != formData && formData.forEach(pushAdditionalFormField, target$jscomp$0); @@ -1225,6 +1258,7 @@ function pushStartInstance( formTarget$jscomp$0, name$jscomp$0 ); + pushViewTransitionAttributes(target$jscomp$0, formatContext); target$jscomp$0.push(">"); null != formData$jscomp$0 && formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0); @@ -1310,6 +1344,7 @@ function pushStartInstance( pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1); null != formTarget$jscomp$1 && pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1); + pushViewTransitionAttributes(target$jscomp$0, formatContext); target$jscomp$0.push(">"); null !== formActionName && (target$jscomp$0.push('"); return null; case "object": @@ -1378,6 +1414,7 @@ function pushStartInstance( ); } } + pushViewTransitionAttributes(target$jscomp$0, formatContext); target$jscomp$0.push(">"); pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5); if ("string" === typeof children$jscomp$5) { @@ -1649,17 +1686,33 @@ function pushStartInstance( var JSCompiler_inline_result$jscomp$7 = pushSelfClosing( target$jscomp$0, props, - "meta" + "meta", + formatContext ); else textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"), (JSCompiler_inline_result$jscomp$7 = isFallback$jscomp$1 ? null : "string" === typeof props.charSet - ? pushSelfClosing(renderState.charsetChunks, props, "meta") + ? pushSelfClosing( + renderState.charsetChunks, + props, + "meta", + formatContext + ) : "viewport" === props.name - ? pushSelfClosing(renderState.viewportChunks, props, "meta") - : pushSelfClosing(renderState.hoistableChunks, props, "meta")); + ? pushSelfClosing( + renderState.viewportChunks, + props, + "meta", + formatContext + ) + : pushSelfClosing( + renderState.hoistableChunks, + props, + "meta", + formatContext + )); return JSCompiler_inline_result$jscomp$7; case "listing": case "pre": @@ -1686,6 +1739,7 @@ function pushStartInstance( ); } } + pushViewTransitionAttributes(target$jscomp$0, formatContext); target$jscomp$0.push(">"); if (null != innerHTML$jscomp$7) { if (null != children$jscomp$8) throw Error(formatProdErrorMessage(60)); @@ -1797,7 +1851,7 @@ function pushStartInstance( promotablePreloads.set(key$jscomp$0, resource$jscomp$1))); } } - return pushSelfClosing(target$jscomp$0, props, "img"); + return pushSelfClosing(target$jscomp$0, props, "img", formatContext); case "base": case "area": case "br": @@ -1809,7 +1863,7 @@ function pushStartInstance( case "source": case "track": case "wbr": - return pushSelfClosing(target$jscomp$0, props, type); + return pushSelfClosing(target$jscomp$0, props, type, formatContext); case "annotation-xml": case "color-profile": case "font-face": @@ -1829,13 +1883,15 @@ function pushStartInstance( var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement( preamble.headChunks, props, - "head" + "head", + formatContext ); } else JSCompiler_inline_result$jscomp$9 = pushStartGenericElement( target$jscomp$0, props, - "head" + "head", + formatContext ); return JSCompiler_inline_result$jscomp$9; case "body": @@ -1848,13 +1904,15 @@ function pushStartInstance( var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement( preamble$jscomp$0.bodyChunks, props, - "body" + "body", + formatContext ); } else JSCompiler_inline_result$jscomp$10 = pushStartGenericElement( target$jscomp$0, props, - "body" + "body", + formatContext ); return JSCompiler_inline_result$jscomp$10; case "html": @@ -1867,13 +1925,15 @@ function pushStartInstance( var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement( preamble$jscomp$1.htmlChunks, props, - "html" + "html", + formatContext ); } else JSCompiler_inline_result$jscomp$11 = pushStartGenericElement( target$jscomp$0, props, - "html" + "html", + formatContext ); return JSCompiler_inline_result$jscomp$11; default: @@ -1923,12 +1983,13 @@ function pushStartInstance( } } } + pushViewTransitionAttributes(target$jscomp$0, formatContext); target$jscomp$0.push(">"); pushInnerHTML(target$jscomp$0, innerHTML$jscomp$8, children$jscomp$9); return children$jscomp$9; } } - return pushStartGenericElement(target$jscomp$0, props, type); + return pushStartGenericElement(target$jscomp$0, props, type, formatContext); } var endTagCache = new Map(); function endChunkForTag(tag) { @@ -2733,16 +2794,16 @@ function createRenderState(resumableState, generateStaticMarkup) { "\x3c/script>" )); bootstrapScriptContent = idPrefix + "P:"; - var JSCompiler_object_inline_segmentPrefix_1673 = idPrefix + "S:"; + var JSCompiler_object_inline_segmentPrefix_1688 = idPrefix + "S:"; idPrefix += "B:"; - var JSCompiler_object_inline_preconnects_1687 = new Set(), - JSCompiler_object_inline_fontPreloads_1688 = new Set(), - JSCompiler_object_inline_highImagePreloads_1689 = new Set(), - JSCompiler_object_inline_styles_1690 = new Map(), - JSCompiler_object_inline_bootstrapScripts_1691 = new Set(), - JSCompiler_object_inline_scripts_1692 = new Set(), - JSCompiler_object_inline_bulkPreloads_1693 = new Set(), - JSCompiler_object_inline_preloads_1694 = { + var JSCompiler_object_inline_preconnects_1702 = new Set(), + JSCompiler_object_inline_fontPreloads_1703 = new Set(), + JSCompiler_object_inline_highImagePreloads_1704 = new Set(), + JSCompiler_object_inline_styles_1705 = new Map(), + JSCompiler_object_inline_bootstrapScripts_1706 = new Set(), + JSCompiler_object_inline_scripts_1707 = new Set(), + JSCompiler_object_inline_bulkPreloads_1708 = new Set(), + JSCompiler_object_inline_preloads_1709 = { images: new Map(), stylesheets: new Map(), scripts: new Map(), @@ -2779,7 +2840,7 @@ function createRenderState(resumableState, generateStaticMarkup) { scriptConfig.moduleScriptResources[href] = null; scriptConfig = []; pushLinkImpl(scriptConfig, props); - JSCompiler_object_inline_bootstrapScripts_1691.add(scriptConfig); + JSCompiler_object_inline_bootstrapScripts_1706.add(scriptConfig); bootstrapChunks.push('