Skip to content

Commit 5e93f76

Browse files
committed
Release <ViewTransition /> to Canary (#34712)
## Overview This PR ships the View Transition APIs to `react@canary`: - [`<ViewTransition />`](https://react.dev/reference/react/ViewTransition) - [`addTransitionType`](https://react.dev/reference/react/addTransitionType) This means these APIs are ready for final feedback and prepare for semver stable release. ## What this means Shipping `<ViewTransition />` and `addTransitionType` to canary means they have gone through extensive testing in production, we are confident in the stability of the APIs, and we are preparing to release it in a future semver stable version. Libraries and frameworks following the [Canary Workflow](https://react.dev/blog/2023/05/03/react-canaries) should begin implementing and testing these features. ## Why we follow the Canary Workflow To prepare for semver stable, libraries should test canary features like `<ViewTransition />` with `react@canary` to confirm compatibility and prepare for the next semver release in a myriad of environments and configurations used throughout the React ecosystem. This provides libraries with ample time to catch any issues we missed before slamming them with problems in the wider semver release. Since these features have already gone through extensive production testing, and we are confident they are stable, frameworks following the [Canary Workflow](https://react.dev/blog/2023/05/03/react-canaries) can also begin adopting canary features like `<ViewTransition />`. This adoption is similar to how different Browsers implement new proposed browser features before they are added to the standard. If a frameworks adopts a canary feature, they are committing to stability for their users by ensuring any API changes before a semver stable release are opaque and non-breaking to their users. Apps not using a framework are also free to adopt canary features like `<ViewTransition>` as long as they follow the [Canary Workflow](https://react.dev/blog/2023/05/03/react-canaries), but we generally recommend waiting for a semver stable release unless you have the capacity to commit to following along with the canary changes and debugging library compatibility issues. Waiting for semver stable means you're able to benefit from libraries testing and confirming support, and use semver as signal for which version of a library you can use with support of the feature. ## Docs Check out the ["React Labs: View Transitions, Activity, and more"](https://react.dev/blog/2025/04/23/react-labs-view-transitions-activity-and-more#view-transitions) blog post, and [the new docs for `<ViewTransition />`](https://react.dev/reference/react/ViewTransition) and [`addTransitionType`](https://react.dev/reference/react/addTransitionType) for more info. DiffTrain build for [6a8c7fb](6a8c7fb)
1 parent f4aebaa commit 5e93f76

24 files changed

+157
-148
lines changed

compiled-rn/VERSION_NATIVE_FB

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
19.3.0-native-fb-b65e6fc5-20251006
1+
19.3.0-native-fb-6a8c7fb6-20251006

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-dev.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<6da0300a431f929f43a84156eab5e8da>>
10+
* @generated SignedSource<<920c68e23e55247e0cef848cd6e29cb3>>
1111
*/
1212

1313
"use strict";
@@ -404,5 +404,5 @@ __DEV__ &&
404404
exports.useFormStatus = function () {
405405
return resolveDispatcher().useHostTransitionStatus();
406406
};
407-
exports.version = "19.3.0-native-fb-b65e6fc5-20251006";
407+
exports.version = "19.3.0-native-fb-6a8c7fb6-20251006";
408408
})();

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-prod.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<8c210321a2d91851ab7e3ea7bea90070>>
10+
* @generated SignedSource<<3a876452cf91af3dc97a29e4c56cf748>>
1111
*/
1212

1313
"use strict";
@@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) {
203203
exports.useFormStatus = function () {
204204
return ReactSharedInternals.H.useHostTransitionStatus();
205205
};
206-
exports.version = "19.3.0-native-fb-b65e6fc5-20251006";
206+
exports.version = "19.3.0-native-fb-6a8c7fb6-20251006";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-profiling.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<8c210321a2d91851ab7e3ea7bea90070>>
10+
* @generated SignedSource<<3a876452cf91af3dc97a29e4c56cf748>>
1111
*/
1212

1313
"use strict";
@@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) {
203203
exports.useFormStatus = function () {
204204
return ReactSharedInternals.H.useHostTransitionStatus();
205205
};
206-
exports.version = "19.3.0-native-fb-b65e6fc5-20251006";
206+
exports.version = "19.3.0-native-fb-6a8c7fb6-20251006";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-dev.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<0910a771f9940f1b489c124e0d60d0c0>>
10+
* @generated SignedSource<<6adb28befe05208cabc4f01bdd5175cb>>
1111
*/
1212

1313
/*
@@ -30126,11 +30126,11 @@ __DEV__ &&
3012630126
};
3012730127
(function () {
3012830128
var isomorphicReactPackageVersion = React.version;
30129-
if ("19.3.0-native-fb-b65e6fc5-20251006" !== isomorphicReactPackageVersion)
30129+
if ("19.3.0-native-fb-6a8c7fb6-20251006" !== isomorphicReactPackageVersion)
3013030130
throw Error(
3013130131
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
3013230132
(isomorphicReactPackageVersion +
30133-
"\n - react-dom: 19.3.0-native-fb-b65e6fc5-20251006\nLearn more: https://react.dev/warnings/version-mismatch")
30133+
"\n - react-dom: 19.3.0-native-fb-6a8c7fb6-20251006\nLearn more: https://react.dev/warnings/version-mismatch")
3013430134
);
3013530135
})();
3013630136
("function" === typeof Map &&
@@ -30167,10 +30167,10 @@ __DEV__ &&
3016730167
!(function () {
3016830168
var internals = {
3016930169
bundleType: 1,
30170-
version: "19.3.0-native-fb-b65e6fc5-20251006",
30170+
version: "19.3.0-native-fb-6a8c7fb6-20251006",
3017130171
rendererPackageName: "react-dom",
3017230172
currentDispatcherRef: ReactSharedInternals,
30173-
reconcilerVersion: "19.3.0-native-fb-b65e6fc5-20251006"
30173+
reconcilerVersion: "19.3.0-native-fb-6a8c7fb6-20251006"
3017430174
};
3017530175
internals.overrideHookState = overrideHookState;
3017630176
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -30320,5 +30320,5 @@ __DEV__ &&
3032030320
listenToAllSupportedEvents(container);
3032130321
return new ReactDOMHydrationRoot(initialChildren);
3032230322
};
30323-
exports.version = "19.3.0-native-fb-b65e6fc5-20251006";
30323+
exports.version = "19.3.0-native-fb-6a8c7fb6-20251006";
3032430324
})();

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-prod.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<920ca6fc996321d4371fc26550f20942>>
10+
* @generated SignedSource<<85628605fb90001c44cf7b46c683a63c>>
1111
*/
1212

1313
/*
@@ -17578,14 +17578,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1757817578
};
1757917579
var isomorphicReactPackageVersion$jscomp$inline_2059 = React.version;
1758017580
if (
17581-
"19.3.0-native-fb-b65e6fc5-20251006" !==
17581+
"19.3.0-native-fb-6a8c7fb6-20251006" !==
1758217582
isomorphicReactPackageVersion$jscomp$inline_2059
1758317583
)
1758417584
throw Error(
1758517585
formatProdErrorMessage(
1758617586
527,
1758717587
isomorphicReactPackageVersion$jscomp$inline_2059,
17588-
"19.3.0-native-fb-b65e6fc5-20251006"
17588+
"19.3.0-native-fb-6a8c7fb6-20251006"
1758917589
)
1759017590
);
1759117591
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -17607,10 +17607,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1760717607
};
1760817608
var internals$jscomp$inline_2636 = {
1760917609
bundleType: 0,
17610-
version: "19.3.0-native-fb-b65e6fc5-20251006",
17610+
version: "19.3.0-native-fb-6a8c7fb6-20251006",
1761117611
rendererPackageName: "react-dom",
1761217612
currentDispatcherRef: ReactSharedInternals,
17613-
reconcilerVersion: "19.3.0-native-fb-b65e6fc5-20251006"
17613+
reconcilerVersion: "19.3.0-native-fb-6a8c7fb6-20251006"
1761417614
};
1761517615
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1761617616
var hook$jscomp$inline_2637 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -17717,4 +17717,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
1771717717
listenToAllSupportedEvents(container);
1771817718
return new ReactDOMHydrationRoot(initialChildren);
1771917719
};
17720-
exports.version = "19.3.0-native-fb-b65e6fc5-20251006";
17720+
exports.version = "19.3.0-native-fb-6a8c7fb6-20251006";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-profiling.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<f30a996dbdb56eeab9f4fe85a1909b96>>
10+
* @generated SignedSource<<ad97274de4029cff9e7a07f081b661e1>>
1111
*/
1212

1313
/*
@@ -19716,14 +19716,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1971619716
};
1971719717
var isomorphicReactPackageVersion$jscomp$inline_2374 = React.version;
1971819718
if (
19719-
"19.3.0-native-fb-b65e6fc5-20251006" !==
19719+
"19.3.0-native-fb-6a8c7fb6-20251006" !==
1972019720
isomorphicReactPackageVersion$jscomp$inline_2374
1972119721
)
1972219722
throw Error(
1972319723
formatProdErrorMessage(
1972419724
527,
1972519725
isomorphicReactPackageVersion$jscomp$inline_2374,
19726-
"19.3.0-native-fb-b65e6fc5-20251006"
19726+
"19.3.0-native-fb-6a8c7fb6-20251006"
1972719727
)
1972819728
);
1972919729
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -19745,10 +19745,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1974519745
};
1974619746
var internals$jscomp$inline_2381 = {
1974719747
bundleType: 0,
19748-
version: "19.3.0-native-fb-b65e6fc5-20251006",
19748+
version: "19.3.0-native-fb-6a8c7fb6-20251006",
1974919749
rendererPackageName: "react-dom",
1975019750
currentDispatcherRef: ReactSharedInternals,
19751-
reconcilerVersion: "19.3.0-native-fb-b65e6fc5-20251006",
19751+
reconcilerVersion: "19.3.0-native-fb-6a8c7fb6-20251006",
1975219752
getLaneLabelMap: function () {
1975319753
for (
1975419754
var map = new Map(), lane = 1, index$331 = 0;
@@ -19871,4 +19871,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
1987119871
listenToAllSupportedEvents(container);
1987219872
return new ReactDOMHydrationRoot(initialChildren);
1987319873
};
19874-
exports.version = "19.3.0-native-fb-b65e6fc5-20251006";
19874+
exports.version = "19.3.0-native-fb-6a8c7fb6-20251006";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-dev.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<fd386e3b34bb3a20abea074c46069efe>>
10+
* @generated SignedSource<<27c38be51da59ccff98963645747a895>>
1111
*/
1212

1313
/*
@@ -30182,11 +30182,11 @@ __DEV__ &&
3018230182
};
3018330183
(function () {
3018430184
var isomorphicReactPackageVersion = React.version;
30185-
if ("19.3.0-native-fb-b65e6fc5-20251006" !== isomorphicReactPackageVersion)
30185+
if ("19.3.0-native-fb-6a8c7fb6-20251006" !== isomorphicReactPackageVersion)
3018630186
throw Error(
3018730187
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
3018830188
(isomorphicReactPackageVersion +
30189-
"\n - react-dom: 19.3.0-native-fb-b65e6fc5-20251006\nLearn more: https://react.dev/warnings/version-mismatch")
30189+
"\n - react-dom: 19.3.0-native-fb-6a8c7fb6-20251006\nLearn more: https://react.dev/warnings/version-mismatch")
3019030190
);
3019130191
})();
3019230192
("function" === typeof Map &&
@@ -30223,10 +30223,10 @@ __DEV__ &&
3022330223
!(function () {
3022430224
var internals = {
3022530225
bundleType: 1,
30226-
version: "19.3.0-native-fb-b65e6fc5-20251006",
30226+
version: "19.3.0-native-fb-6a8c7fb6-20251006",
3022730227
rendererPackageName: "react-dom",
3022830228
currentDispatcherRef: ReactSharedInternals,
30229-
reconcilerVersion: "19.3.0-native-fb-b65e6fc5-20251006"
30229+
reconcilerVersion: "19.3.0-native-fb-6a8c7fb6-20251006"
3023030230
};
3023130231
internals.overrideHookState = overrideHookState;
3023230232
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -30692,7 +30692,7 @@ __DEV__ &&
3069230692
exports.useFormStatus = function () {
3069330693
return resolveDispatcher().useHostTransitionStatus();
3069430694
};
30695-
exports.version = "19.3.0-native-fb-b65e6fc5-20251006";
30695+
exports.version = "19.3.0-native-fb-6a8c7fb6-20251006";
3069630696
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
3069730697
"function" ===
3069830698
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-prod.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<89267c3e83654df13818c9d00079c1a4>>
10+
* @generated SignedSource<<1c11b48daad6c15a06c4477420320f58>>
1111
*/
1212

1313
/*
@@ -17589,14 +17589,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1758917589
};
1759017590
var isomorphicReactPackageVersion$jscomp$inline_2060 = React.version;
1759117591
if (
17592-
"19.3.0-native-fb-b65e6fc5-20251006" !==
17592+
"19.3.0-native-fb-6a8c7fb6-20251006" !==
1759317593
isomorphicReactPackageVersion$jscomp$inline_2060
1759417594
)
1759517595
throw Error(
1759617596
formatProdErrorMessage(
1759717597
527,
1759817598
isomorphicReactPackageVersion$jscomp$inline_2060,
17599-
"19.3.0-native-fb-b65e6fc5-20251006"
17599+
"19.3.0-native-fb-6a8c7fb6-20251006"
1760017600
)
1760117601
);
1760217602
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -17618,10 +17618,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1761817618
};
1761917619
var internals$jscomp$inline_2639 = {
1762017620
bundleType: 0,
17621-
version: "19.3.0-native-fb-b65e6fc5-20251006",
17621+
version: "19.3.0-native-fb-6a8c7fb6-20251006",
1762217622
rendererPackageName: "react-dom",
1762317623
currentDispatcherRef: ReactSharedInternals,
17624-
reconcilerVersion: "19.3.0-native-fb-b65e6fc5-20251006"
17624+
reconcilerVersion: "19.3.0-native-fb-6a8c7fb6-20251006"
1762517625
};
1762617626
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1762717627
var hook$jscomp$inline_2640 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -17881,4 +17881,4 @@ exports.useFormState = function (action, initialState, permalink) {
1788117881
exports.useFormStatus = function () {
1788217882
return ReactSharedInternals.H.useHostTransitionStatus();
1788317883
};
17884-
exports.version = "19.3.0-native-fb-b65e6fc5-20251006";
17884+
exports.version = "19.3.0-native-fb-6a8c7fb6-20251006";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-profiling.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<9bb39bc13e089c53d0ce68ea66f8bf45>>
10+
* @generated SignedSource<<01df5f2138c382bf524b7af3817919e9>>
1111
*/
1212

1313
/*
@@ -19731,14 +19731,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1973119731
};
1973219732
var isomorphicReactPackageVersion$jscomp$inline_2375 = React.version;
1973319733
if (
19734-
"19.3.0-native-fb-b65e6fc5-20251006" !==
19734+
"19.3.0-native-fb-6a8c7fb6-20251006" !==
1973519735
isomorphicReactPackageVersion$jscomp$inline_2375
1973619736
)
1973719737
throw Error(
1973819738
formatProdErrorMessage(
1973919739
527,
1974019740
isomorphicReactPackageVersion$jscomp$inline_2375,
19741-
"19.3.0-native-fb-b65e6fc5-20251006"
19741+
"19.3.0-native-fb-6a8c7fb6-20251006"
1974219742
)
1974319743
);
1974419744
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -19760,10 +19760,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1976019760
};
1976119761
var internals$jscomp$inline_2382 = {
1976219762
bundleType: 0,
19763-
version: "19.3.0-native-fb-b65e6fc5-20251006",
19763+
version: "19.3.0-native-fb-6a8c7fb6-20251006",
1976419764
rendererPackageName: "react-dom",
1976519765
currentDispatcherRef: ReactSharedInternals,
19766-
reconcilerVersion: "19.3.0-native-fb-b65e6fc5-20251006",
19766+
reconcilerVersion: "19.3.0-native-fb-6a8c7fb6-20251006",
1976719767
getLaneLabelMap: function () {
1976819768
for (
1976919769
var map = new Map(), lane = 1, index$331 = 0;
@@ -20039,7 +20039,7 @@ exports.useFormState = function (action, initialState, permalink) {
2003920039
exports.useFormStatus = function () {
2004020040
return ReactSharedInternals.H.useHostTransitionStatus();
2004120041
};
20042-
exports.version = "19.3.0-native-fb-b65e6fc5-20251006";
20042+
exports.version = "19.3.0-native-fb-6a8c7fb6-20251006";
2004320043
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
2004420044
"function" ===
2004520045
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

0 commit comments

Comments
 (0)