From e349c6b51dcf92629abae9a834fa7c9ead1cfa2a Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Thu, 17 Jul 2025 14:41:20 +0530
Subject: [PATCH 01/43] Integrate RN Nightly Build
0.80.0-nightly-20250506-3ac16dd6a
---
.../react-native-win32-tester/overrides.json | 4 +-
.../react-native-win32-tester/package.json | 4 +-
.../Theming/ThemingModuleAPI.tsx | 91 ++--
.../react-native-win32/overrides.json | 12 +-
.../react-native-win32/package.json | 30 +-
.../automation-channel/package.json | 2 +-
.../tester/overrides.json | 20 +-
.../@react-native-windows/tester/package.json | 4 +-
.../Keyboard/KeyboardFocusExample.windows.tsx | 37 +-
.../FlatList/BaseFlatListExample.windows.js | 2 +-
.../FlatList/FlatList-basic.windows.js | 2 +-
.../FlatList/FlatList-multiColumn.windows.js | 2 +-
.../FlatList/FlatList-nested.windows.js | 2 +-
.../FlatList-stickyHeaders.windows.js | 2 +-
.../js/examples/Image/ImageExample.windows.js | 4 +-
.../Modal/ModalPresentation.windows.js | 2 +-
.../SampleTurboModuleExample.windows.js | 3 +-
.../src/js/utils/RNTesterList.windows.js | 16 +-
.../@react-native/monorepo/overrides.json | 4 +-
packages/@react-native/monorepo/package.json | 6 +-
.../js/MyNativeViewNativeComponent.js | 30 +-
.../NativeCxxModuleExample.js | 13 +-
.../NativeScreenshotManager.js | 7 +-
.../ReportFullyDrawnViewNativeComponent.js | 4 +-
.../tester/js/components/RNTOption.js | 2 +-
.../tester/js/components/RNTesterButton.js | 2 +-
.../tester/js/components/RNTesterText.js | 2 +-
.../tester/js/components/RNTesterTheme.js | 3 +-
.../Accessibility/AccessibilityExample.js | 3 +-
.../AnimatedGratuitousApp/AnExChained.js | 6 +-
.../examples/Appearance/AppearanceExample.js | 2 +-
.../ManyPointersPropertiesExample.js | 2 +-
.../RNTesterPlatformTestEventRecorder.js | 2 +-
.../RNTesterPlatformTestResultView.js | 7 +-
.../PointerEventAccessibility.js | 2 +-
...PointerEventAttributesHoverablePointers.js | 6 +-
.../PointerEventAttributesNoHoverPointers.js | 6 +-
.../PointerEventCaptureMouse.js | 2 +-
.../PointerEventClickTouch.js | 2 +-
...erEventClickTouchHierarchyPointerEvents.js | 2 +-
...rEventLayoutChangeShouldFirePointerOver.js | 2 +-
.../PointerEventPointerCancelTouch.js | 2 +-
.../PointerEventPointerMove.js | 2 +-
.../PointerEventPointerMoveEventOrder.js | 2 +-
...terEventPointerMoveOnChordedMouseButton.js | 2 +-
.../PointerEventPointerOverOut.js | 3 +-
.../PointerEventPrimaryTouchPointer.js | 2 +-
.../PointerEventSupport.js | 3 +-
.../W3CPointerEventsEventfulView.js | 3 +-
.../examples/FlatList/BaseFlatListExample.js | 2 +-
.../js/examples/FlatList/FlatList-basic.js | 3 +-
.../examples/FlatList/FlatList-multiColumn.js | 2 +-
.../js/examples/FlatList/FlatList-nested.js | 2 +-
.../FlatList/FlatList-stickyHeaders.js | 2 +-
.../tester/js/examples/Image/ImageExample.js | 4 +-
.../IntersectionObserverBenchmark.js | 130 ------
.../IntersectionObserverIndex.js | 27 --
.../IntersectionObserverMDNExample.js | 181 --------
.../IntersectionObserverRootThreshold.js | 224 ----------
.../js/examples/Keyboard/KeyboardExample.js | 2 +-
.../js/examples/Modal/ModalPresentation.js | 2 +-
.../MutationObserverExample.js | 205 ---------
.../MutationObserver/MutationObserverIndex.js | 28 --
.../VCOverlayExample.js | 68 ---
.../VCTrackerExample.js | 130 ------
.../VisualCompletionExample.js | 188 ---------
.../NewAppScreen/NewAppScreenExample.js | 77 ----
.../Performance/PerformanceApiExample.js | 276 ------------
.../Performance/components/ItemList.js | 2 +-
.../ReRenderWithNonPureChildExample.js | 2 +-
.../ReRenderWithObjectPropExample.js | 2 +-
.../PermissionsAndroid/PermissionsExample.js | 2 +-
.../PlatformColor/PlatformColorExample.js | 9 +-
.../SectionList/SectionList-scrollable.js | 2 +-
.../examples/Snapshot/SnapshotViewIOS.ios.js | 3 +-
.../SwipeableCardExample.js | 2 +-
.../TextInput/TextInputExample.ios.js | 2 +-
.../TextInput/TextInputSharedExamples.js | 2 +-
.../NativeCxxModuleExampleExample.js | 3 +-
.../TurboModule/SampleLegacyModuleExample.js | 2 +-
.../TurboModule/SampleTurboModuleExample.js | 3 +-
packages/@react-native/tester/overrides.json | 73 ++--
packages/@react-native/tester/package.json | 2 +-
.../babel-react-native-config/package.json | 6 +-
.../metro-dev-config/package.json | 2 +-
packages/e2e-test-app-fabric/package.json | 6 +-
packages/e2e-test-app/package.json | 6 +-
packages/integration-test-app/package.json | 6 +-
packages/playground/package.json | 6 +-
packages/sample-app-fabric/package.json | 6 +-
packages/sample-apps/package.json | 6 +-
packages/sample-custom-component/package.json | 6 +-
.../IntegrationTests/ImageCachePolicyTest.js | 2 +-
.../IntegrationTests/LayoutEventsTest.js | 5 +-
vnext/codegen/NativeAnimatedModuleSpec.g.h | 2 +
.../codegen/NativeAnimatedTurboModuleSpec.g.h | 2 +
vnext/codegen/NativePerformanceSpec.g.h | 14 +
.../NativeReactNativeFeatureFlagsSpec.g.h | 164 +++++---
vnext/codegen/rnwcoreJSI-generated.cpp | 42 +-
vnext/codegen/rnwcoreJSI.h | 162 ++++++-
vnext/overrides.json | 34 +-
vnext/package.json | 30 +-
.../components/DebugInstructions.windows.js | 29 --
.../components/ReloadInstructions.windows.js | 30 --
yarn.lock | 396 +++++++++---------
105 files changed, 781 insertions(+), 2220 deletions(-)
delete mode 100644 packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverBenchmark.js
delete mode 100644 packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverIndex.js
delete mode 100644 packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverMDNExample.js
delete mode 100644 packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverRootThreshold.js
delete mode 100644 packages/@react-native/tester/js/examples/MutationObserver/MutationObserverExample.js
delete mode 100644 packages/@react-native/tester/js/examples/MutationObserver/MutationObserverIndex.js
delete mode 100644 packages/@react-native/tester/js/examples/MutationObserver/VisualCompletionExample/VCOverlayExample.js
delete mode 100644 packages/@react-native/tester/js/examples/MutationObserver/VisualCompletionExample/VCTrackerExample.js
delete mode 100644 packages/@react-native/tester/js/examples/MutationObserver/VisualCompletionExample/VisualCompletionExample.js
delete mode 100644 packages/@react-native/tester/js/examples/NewAppScreen/NewAppScreenExample.js
delete mode 100644 packages/@react-native/tester/js/examples/Performance/PerformanceApiExample.js
delete mode 100644 vnext/src-win/Libraries/NewAppScreen/components/DebugInstructions.windows.js
delete mode 100644 vnext/src-win/Libraries/NewAppScreen/components/ReloadInstructions.windows.js
diff --git a/packages/@office-iss/react-native-win32-tester/overrides.json b/packages/@office-iss/react-native-win32-tester/overrides.json
index cf75b6eba58..c88646b2f7e 100644
--- a/packages/@office-iss/react-native-win32-tester/overrides.json
+++ b/packages/@office-iss/react-native-win32-tester/overrides.json
@@ -5,7 +5,7 @@
"excludePatterns": [
"src/js/examples-win32/**"
],
- "baseVersion": "0.80.0-nightly-20250428-9efcdc091",
+ "baseVersion": "0.80.0-nightly-20250506-3ac16dd6a",
"overrides": [
{
"type": "patch",
@@ -42,7 +42,7 @@
"type": "derived",
"file": "src/js/utils/RNTesterList.win32.js",
"baseFile": "packages/rn-tester/js/utils/RNTesterList.android.js",
- "baseHash": "3b5c8bcdee69293ddce0d515300504979e36f87a"
+ "baseHash": "aded9dd37f3ac325aa1cc095f6d217114c45a8b9"
}
]
}
\ No newline at end of file
diff --git a/packages/@office-iss/react-native-win32-tester/package.json b/packages/@office-iss/react-native-win32-tester/package.json
index b36dfd1f522..90b48a9716c 100644
--- a/packages/@office-iss/react-native-win32-tester/package.json
+++ b/packages/@office-iss/react-native-win32-tester/package.json
@@ -19,7 +19,7 @@
"peerDependencies": {
"@office-iss/react-native-win32": "^0.0.0-canary.293",
"react": "19.1.0",
- "react-native": "0.80.0-nightly-20250428-9efcdc091"
+ "react-native": "0.80.0-nightly-20250506-3ac16dd6a"
},
"devDependencies": {
"@office-iss/react-native-win32": "^0.0.0-canary.293",
@@ -30,7 +30,7 @@
"@types/node": "^18.0.0",
"eslint": "^8.19.0",
"just-scripts": "^1.3.3",
- "react-native": "0.80.0-nightly-20250428-9efcdc091",
+ "react-native": "0.80.0-nightly-20250506-3ac16dd6a",
"react-native-platform-override": "^1.9.56",
"typescript": "5.0.4"
},
diff --git a/packages/@office-iss/react-native-win32-tester/src/js/examples-win32/Theming/ThemingModuleAPI.tsx b/packages/@office-iss/react-native-win32-tester/src/js/examples-win32/Theming/ThemingModuleAPI.tsx
index 19f9429bfe3..8759605c8bb 100644
--- a/packages/@office-iss/react-native-win32-tester/src/js/examples-win32/Theming/ThemingModuleAPI.tsx
+++ b/packages/@office-iss/react-native-win32-tester/src/js/examples-win32/Theming/ThemingModuleAPI.tsx
@@ -24,13 +24,13 @@ const styles = StyleSheet.create({
const Theming = NativeModules.Theming;
-const ifModuleAvailable = (wrappedComponent: React.JSX.Element) => {
+const ifModuleAvailable = (wrappedComponent: React.ReactElement): React.ReactElement => {
return Theming ? wrappedComponent : Theming Native Module not available;
};
-const RenderThemeFunction = () => {
+const RenderThemeFunction = (): React.ReactElement => {
const [, setText] = React.useState('');
- const onChangeText = React.useCallback(t => setText(t), [setText]);
+ const onChangeText = React.useCallback((t: string) => setText(t), [setText]);
return (
Arguments:
@@ -39,52 +39,65 @@ const RenderThemeFunction = () => {
);
};
-const ThemingMethods: React.FunctionComponent<{}> = () => {
+const withBox = (
+ key: string,
+ component: React.ReactElement | React.ReactElement[]
+): React.ReactElement => (
+
+ {key}
+ <>{component}>
+
+);
+
+const ThemingMethods: React.FunctionComponent = () => {
return (
- {Object.keys(Theming).map((val: string) => {
- return typeof Theming[val] === 'function' ? withBox(val, RenderThemeFunction()) : undefined;
- })}
+ <>
+ {Object.keys(Theming).map((val: string) =>
+ typeof Theming[val] === 'function' ? withBox(val, ) : null
+ )}
+ >
);
};
-const renderNestedObject = (obj: Record) => {
+const renderNestedObject = (obj: Record): React.ReactElement => {
return (
- {Object.keys(obj).map((val: string) => {
- return {val + ': ' + JSON.stringify(obj[val])};
- })}
+ {Object.keys(obj).map((val: string) => (
+ {val + ': ' + JSON.stringify(obj[val])}
+ ))}
);
};
-const renderObject = (obj: Record) => {
+const renderObject = (obj: Record): React.ReactElement => {
const firstKey = Object.keys(obj)[0];
const formattedOutput = JSON.stringify(obj)
.replace(/],/g, '],\n\n')
.replace(/:/g, ': ')
.replace(/,/g, ', ');
- return obj[firstKey] instanceof Array ? {formattedOutput} : renderNestedObject(obj);
-};
-const renderThemeObject = (key: string): React.ReactElement => withBox(key, renderObject(Theming[key]));
+ return obj[firstKey] instanceof Array ? (
+ {formattedOutput}
+ ) : (
+ renderNestedObject(obj)
+ );
+};
-const withBox = (key: string, component: React.ReactNode) => (
-
- {key}
- {component}
-
-);
+const renderThemeObject = (key: string): React.ReactElement =>
+ withBox(key, renderObject(Theming[key]));
-const ThemingConstants: React.FunctionComponent<{}> = () => {
+const ThemingConstants: React.FunctionComponent = () => {
return (
- {Object.keys(Theming).map((val: string) => {
- return typeof Theming[val] === 'object' ? renderThemeObject(val) : undefined;
- })}
+ <>
+ {Object.keys(Theming).map((val: string) =>
+ typeof Theming[val] === 'object' ? renderThemeObject(val) : null
+ )}
+ >
);
};
@@ -92,15 +105,19 @@ const ThemingConstants: React.FunctionComponent<{}> = () => {
export const title = 'Theming Module APIs';
export const displayName = 'Theming Module APIs';
export const description = 'Tests shape of Theming Native Module';
-export const examples = [
- {
- title: 'Theming Module Constants',
- description: 'All constants',
- render: () => ifModuleAvailable(),
- },
- {
- title: 'Theming Module Methods',
- description: 'Method invoker',
- render: () => ifModuleAvailable(),
- },
- ];
+export const examples: {
+ title: string;
+ description: string;
+ render: () => React.ReactElement;
+}[] = [
+ {
+ title: 'Theming Module Constants',
+ description: 'All constants',
+ render: (): React.ReactElement => ifModuleAvailable(),
+ },
+ {
+ title: 'Theming Module Methods',
+ description: 'Method invoker',
+ render: (): React.ReactElement => ifModuleAvailable(),
+ },
+];
diff --git a/packages/@office-iss/react-native-win32/overrides.json b/packages/@office-iss/react-native-win32/overrides.json
index cd38f41e4a7..794ea150210 100644
--- a/packages/@office-iss/react-native-win32/overrides.json
+++ b/packages/@office-iss/react-native-win32/overrides.json
@@ -7,13 +7,13 @@
"**/__snapshots__/**",
"src-win/rntypes/**"
],
- "baseVersion": "0.80.0-nightly-20250428-9efcdc091",
+ "baseVersion": "0.80.0-nightly-20250506-3ac16dd6a",
"overrides": [
{
"type": "derived",
"file": ".flowconfig",
"baseFile": ".flowconfig",
- "baseHash": "d274ca7bb384b334c5b2ee0827726e7a3d6c98c9"
+ "baseHash": "70ed729d5f52c241530e8459cc40263d4e9fa9c0"
},
{
"type": "derived",
@@ -114,7 +114,7 @@
"type": "derived",
"file": "src-win/Libraries/Components/TextInput/TextInput.win32.js",
"baseFile": "packages/react-native/Libraries/Components/TextInput/TextInput.js",
- "baseHash": "4b3128471dd0d362e9828df8937f708d53694e12"
+ "baseHash": "9965c0079652083ab549bc2799eb9528b56a1b2d"
},
{
"type": "patch",
@@ -183,13 +183,13 @@
"type": "derived",
"file": "src-win/Libraries/Components/View/ViewAccessibility.d.ts",
"baseFile": "packages/react-native/Libraries/Components/View/ViewAccessibility.d.ts",
- "baseHash": "d97e29f01e57cc2b0de209a03f8584b984cfe190"
+ "baseHash": "1e4e3a89397960e8f08b86be62496473829c0ac3"
},
{
"type": "derived",
"file": "src-win/Libraries/Components/View/ViewAccessibility.win32.js",
"baseFile": "packages/react-native/Libraries/Components/View/ViewAccessibility.js",
- "baseHash": "c30dab3926869e84edafebd485e78637d69ccd61"
+ "baseHash": "04981261b2ed61b31bfbb396478bb6b103d99253"
},
{
"type": "derived",
@@ -329,7 +329,7 @@
"type": "derived",
"file": "src-win/Libraries/NativeComponent/BaseViewConfig.win32.js",
"baseFile": "packages/react-native/Libraries/NativeComponent/BaseViewConfig.ios.js",
- "baseHash": "3ba8fe1a60d744e057e856bc43e2df28f4fd7f66"
+ "baseHash": "b520e2bdb2be31bdb6ad7e3769dbe69168870c8c"
},
{
"type": "copy",
diff --git a/packages/@office-iss/react-native-win32/package.json b/packages/@office-iss/react-native-win32/package.json
index f4d18dbe766..b949a5af51a 100644
--- a/packages/@office-iss/react-native-win32/package.json
+++ b/packages/@office-iss/react-native-win32/package.json
@@ -30,19 +30,19 @@
"@react-native-community/cli-platform-android": "17.0.0",
"@react-native-community/cli-platform-ios": "17.0.0",
"@react-native/assets": "1.0.0",
- "@react-native/assets-registry": "0.80.0-nightly-20250428-9efcdc091",
- "@react-native/codegen": "0.80.0-nightly-20250428-9efcdc091",
- "@react-native/community-cli-plugin": "0.80.0-nightly-20250428-9efcdc091",
- "@react-native/gradle-plugin": "0.80.0-nightly-20250428-9efcdc091",
- "@react-native/js-polyfills": "0.80.0-nightly-20250428-9efcdc091",
- "@react-native/normalize-colors": "0.80.0-nightly-20250428-9efcdc091",
- "@react-native/virtualized-lists": "0.80.0-nightly-20250428-9efcdc091",
+ "@react-native/assets-registry": "0.80.0-nightly-20250506-3ac16dd6a",
+ "@react-native/codegen": "0.80.0-nightly-20250506-3ac16dd6a",
+ "@react-native/community-cli-plugin": "0.80.0-nightly-20250506-3ac16dd6a",
+ "@react-native/gradle-plugin": "0.80.0-nightly-20250506-3ac16dd6a",
+ "@react-native/js-polyfills": "0.80.0-nightly-20250506-3ac16dd6a",
+ "@react-native/normalize-colors": "0.80.0-nightly-20250506-3ac16dd6a",
+ "@react-native/virtualized-lists": "0.80.0-nightly-20250506-3ac16dd6a",
"abort-controller": "^3.0.0",
"anser": "^1.4.9",
"ansi-regex": "^5.0.0",
"art": "^0.10.0",
"babel-jest": "^29.7.0",
- "babel-plugin-syntax-hermes-parser": "0.25.1",
+ "babel-plugin-syntax-hermes-parser": "0.28.1",
"base64-js": "^1.5.1",
"chalk": "^4.0.0",
"commander": "^12.0.0",
@@ -52,8 +52,8 @@
"invariant": "^2.2.4",
"jest-environment-node": "^29.7.0",
"memoize-one": "^5.0.0",
- "metro-runtime": "^0.82.0",
- "metro-source-map": "^0.82.0",
+ "metro-runtime": "^0.82.2",
+ "metro-source-map": "^0.82.2",
"mkdirp": "^0.5.1",
"nullthrows": "^1.1.1",
"pretty-format": "^29.7.0",
@@ -62,7 +62,7 @@
"react-devtools-core": "^6.1.1",
"react-refresh": "^0.14.0",
"regenerator-runtime": "^0.13.2",
- "scheduler": "0.25.0",
+ "scheduler": "0.26.0",
"semver": "^7.1.3",
"stacktrace-parser": "^0.1.10",
"whatwg-fetch": "^3.0.0",
@@ -72,7 +72,7 @@
"devDependencies": {
"@babel/core": "^7.25.2",
"@babel/eslint-parser": "^7.25.1",
- "@react-native/metro-config": "0.80.0-nightly-20250428-9efcdc091",
+ "@react-native/metro-config": "0.80.0-nightly-20250506-3ac16dd6a",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.36",
"@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.40",
@@ -88,14 +88,14 @@
"just-scripts": "^1.3.3",
"prettier": "2.8.8",
"react": "19.1.0",
- "react-native": "0.80.0-nightly-20250428-9efcdc091",
+ "react-native": "0.80.0-nightly-20250506-3ac16dd6a",
"react-native-platform-override": "^1.9.56",
"typescript": "5.0.4"
},
"peerDependencies": {
- "@types/react": "^19.0.0",
+ "@types/react": "^19.1.0",
"react": "^19.1.0",
- "react-native": "0.80.0-nightly-20250428-9efcdc091"
+ "react-native": "0.80.0-nightly-20250506-3ac16dd6a"
},
"beachball": {
"defaultNpmTag": "canary",
diff --git a/packages/@react-native-windows/automation-channel/package.json b/packages/@react-native-windows/automation-channel/package.json
index 74bed85714f..15fe9ca01d1 100644
--- a/packages/@react-native-windows/automation-channel/package.json
+++ b/packages/@react-native-windows/automation-channel/package.json
@@ -32,7 +32,7 @@
"just-scripts": "^1.3.2",
"prettier": "2.8.8",
"react": "19.1.0",
- "react-native": "0.80.0-nightly-20250428-9efcdc091",
+ "react-native": "0.80.0-nightly-20250506-3ac16dd6a",
"react-native-windows": "^0.0.0-canary.975",
"typescript": "5.0.4"
},
diff --git a/packages/@react-native-windows/tester/overrides.json b/packages/@react-native-windows/tester/overrides.json
index ce5e1ff905d..a7ccc92ac6d 100644
--- a/packages/@react-native-windows/tester/overrides.json
+++ b/packages/@react-native-windows/tester/overrides.json
@@ -5,7 +5,7 @@
"excludePatterns": [
"src/js/examples-win/**"
],
- "baseVersion": "0.80.0-nightly-20250428-9efcdc091",
+ "baseVersion": "0.80.0-nightly-20250506-3ac16dd6a",
"overrides": [
{
"type": "copy",
@@ -43,35 +43,35 @@
"type": "patch",
"file": "src/js/examples/FlatList/BaseFlatListExample.windows.js",
"baseFile": "packages/rn-tester/js/examples/FlatList/BaseFlatListExample.js",
- "baseHash": "1f762573bd6dd3a1a1c8b7767eeb6ce923785eba",
+ "baseHash": "44b784dbde64d0ca1616f0e31a07f232939d8dd7",
"issue": 12869
},
{
"type": "patch",
"file": "src/js/examples/FlatList/FlatList-basic.windows.js",
"baseFile": "packages/rn-tester/js/examples/FlatList/FlatList-basic.js",
- "baseHash": "ac75910f0e9c21569b27934385279f2ac34b02bf",
+ "baseHash": "a10d3f1b947f00cd11f33644e374d04bf5417a04",
"issue": 12869
},
{
"type": "copy",
"file": "src/js/examples/FlatList/FlatList-multiColumn.windows.js",
"baseFile": "packages/rn-tester/js/examples/FlatList/FlatList-multiColumn.js",
- "baseHash": "913bcd6ecd22d5e0f4cae177c89756b8396096fd",
+ "baseHash": "51da04f9ee49f1a5fd857db17361443636d73bca",
"issue": 12869
},
{
"type": "patch",
"file": "src/js/examples/FlatList/FlatList-nested.windows.js",
"baseFile": "packages/rn-tester/js/examples/FlatList/FlatList-nested.js",
- "baseHash": "e77c19ae4ead3fefaa949524dfcae28e439a022c",
+ "baseHash": "c5f4c76741ff490c10c4c18db45bacfecd1b8a12",
"issue": 12869
},
{
"type": "patch",
"file": "src/js/examples/FlatList/FlatList-stickyHeaders.windows.js",
"baseFile": "packages/rn-tester/js/examples/FlatList/FlatList-stickyHeaders.js",
- "baseHash": "5cc295fd2a56b93b0c12916b333fe5862173f338"
+ "baseHash": "cfa86dc07ee3a2f17e589939a4fef982ff2c1b72"
},
{
"type": "platform",
@@ -85,7 +85,7 @@
"type": "patch",
"file": "src/js/examples/Image/ImageExample.windows.js",
"baseFile": "packages/rn-tester/js/examples/Image/ImageExample.js",
- "baseHash": "9fa7c2a5569d388509819fc8c4a08b50dd3937d1",
+ "baseHash": "20dec87a4f2c4c098adf9e3becc0969fb2b3036c",
"issue": 12869
},
{
@@ -98,7 +98,7 @@
"type": "patch",
"file": "src/js/examples/Modal/ModalPresentation.windows.js",
"baseFile": "packages/rn-tester/js/examples/Modal/ModalPresentation.js",
- "baseHash": "85f44b8ecf18784f6a0088df636b2b9742546b09"
+ "baseHash": "93c88f75903188f1b5671a288fbf6eb333ea8acb"
},
{
"type": "patch",
@@ -136,7 +136,7 @@
"type": "patch",
"file": "src/js/examples/TurboModule/SampleTurboModuleExample.windows.js",
"baseFile": "packages/rn-tester/js/examples/TurboModule/SampleTurboModuleExample.js",
- "baseHash": "5cfdbaaa81a57c5611955cce6f484eca7ad7a355"
+ "baseHash": "a005538f6ea294fb44d0f6265c1bc75bd893ab56"
},
{
"type": "patch",
@@ -155,7 +155,7 @@
"type": "derived",
"file": "src/js/utils/RNTesterList.windows.js",
"baseFile": "packages/rn-tester/js/utils/RNTesterList.android.js",
- "baseHash": "3b5c8bcdee69293ddce0d515300504979e36f87a"
+ "baseHash": "aded9dd37f3ac325aa1cc095f6d217114c45a8b9"
}
]
}
\ No newline at end of file
diff --git a/packages/@react-native-windows/tester/package.json b/packages/@react-native-windows/tester/package.json
index 412cc6c56b9..9b5bf768748 100644
--- a/packages/@react-native-windows/tester/package.json
+++ b/packages/@react-native-windows/tester/package.json
@@ -19,7 +19,7 @@
"peerDependencies": {
"@react-native-picker/picker": "2.11.0",
"react": "19.1.0",
- "react-native": "0.80.0-nightly-20250428-9efcdc091",
+ "react-native": "0.80.0-nightly-20250506-3ac16dd6a",
"react-native-windows": "^0.0.0-canary.975",
"react-native-xaml": "^0.0.80"
},
@@ -32,7 +32,7 @@
"@types/node": "^18.0.0",
"eslint": "^8.19.0",
"just-scripts": "^1.3.3",
- "react-native": "0.80.0-nightly-20250428-9efcdc091",
+ "react-native": "0.80.0-nightly-20250506-3ac16dd6a",
"react-native-platform-override": "^1.9.56",
"react-native-windows": "^0.0.0-canary.975",
"typescript": "5.0.4"
diff --git a/packages/@react-native-windows/tester/src/js/examples-win/Keyboard/KeyboardFocusExample.windows.tsx b/packages/@react-native-windows/tester/src/js/examples-win/Keyboard/KeyboardFocusExample.windows.tsx
index ccfb3448da0..63d1baa7be1 100644
--- a/packages/@react-native-windows/tester/src/js/examples-win/Keyboard/KeyboardFocusExample.windows.tsx
+++ b/packages/@react-native-windows/tester/src/js/examples-win/Keyboard/KeyboardFocusExample.windows.tsx
@@ -60,11 +60,9 @@ interface IKeyboardFocusComponentState {
const pickerRef = React.createRef>();
const viewWindowsRef = React.createRef();
const textInputRef = React.createRef();
-const textInputRef2 = React.createRef();
-const touchableHighlightRef =
- React.createRef>();
-const touchableOpacityRef =
- React.createRef>();
+const textInputRef2 = React.createRef();
+const touchableHighlightRef = React.createRef();
+const touchableOpacityRef = React.createRef();
const touchableWithoutFeedbackRef = React.createRef();
class KeyboardFocusExample extends React.Component<
@@ -182,35 +180,32 @@ class KeyboardFocusExample extends React.Component<
};
private readonly _selectionChanged = (selected: string) => {
+ this.setState({selected}); // Update selected state
+
switch (selected) {
case 'View':
- viewWindowsRef.current && viewWindowsRef.current.focus();
+ viewWindowsRef.current?.focus();
break;
case 'Picker':
// pickerRef.current && pickerRef.current.focus();
break;
case 'TextInput':
- textInputRef.current && textInputRef.current.focus();
- if (textInputRef.current) {
- textInputRef.current.focus();
- setTimeout(() => {
- textInputRef2.current && textInputRef2.current.blur();
- }, 10000);
- }
+ textInputRef.current?.focus();
+ setTimeout(() => {
+ textInputRef2.current?.blur();
+ }, 10000);
break;
case 'TextInput2':
- if (textInputRef2.current) {
- textInputRef2.current.focus();
- setTimeout(() => {
- textInputRef2.current && textInputRef2.current.blur();
- }, 10000);
- }
+ textInputRef2.current?.focus();
+ setTimeout(() => {
+ textInputRef2.current?.blur();
+ }, 10000);
break;
case 'TouchableHighlight':
- touchableHighlightRef.current && touchableHighlightRef.current.focus();
+ (touchableHighlightRef.current as any)?.focus?.();
break;
case 'TouchableOpacity':
- touchableOpacityRef.current && touchableOpacityRef.current.focus();
+ (touchableOpacityRef.current as any)?.focus?.();
break;
case 'TouchableWithoutFeedback':
// TouchableWithoutFeedback doesn't have a focus method, since it doesn't have NativeMethodsMixin applied
diff --git a/packages/@react-native-windows/tester/src/js/examples/FlatList/BaseFlatListExample.windows.js b/packages/@react-native-windows/tester/src/js/examples/FlatList/BaseFlatListExample.windows.js
index 8721de395b9..d5548c7e503 100644
--- a/packages/@react-native-windows/tester/src/js/examples/FlatList/BaseFlatListExample.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples/FlatList/BaseFlatListExample.windows.js
@@ -8,7 +8,7 @@
* @format
*/
-import type {ListRenderItemInfo} from 'react-native/Libraries/Lists/VirtualizedList';
+import type {ListRenderItemInfo} from 'react-native';
import * as React from 'react';
import {
diff --git a/packages/@react-native-windows/tester/src/js/examples/FlatList/FlatList-basic.windows.js b/packages/@react-native-windows/tester/src/js/examples/FlatList/FlatList-basic.windows.js
index 6eca8176693..68499ad54f0 100644
--- a/packages/@react-native-windows/tester/src/js/examples/FlatList/FlatList-basic.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples/FlatList/FlatList-basic.windows.js
@@ -12,9 +12,9 @@
import type {Item} from '../../components/ListExampleShared';
import type {RNTesterModuleExample} from '../../types/RNTesterTypes';
+import type {ListRenderItemInfo} from 'react-native';
import type {AnimatedComponentType} from 'react-native/Libraries/Animated/createAnimatedComponent';
import typeof FlatListType from 'react-native/Libraries/Lists/FlatList';
-import type {ListRenderItemInfo} from 'react-native/Libraries/Lists/VirtualizedList';
import {
FooterComponent,
diff --git a/packages/@react-native-windows/tester/src/js/examples/FlatList/FlatList-multiColumn.windows.js b/packages/@react-native-windows/tester/src/js/examples/FlatList/FlatList-multiColumn.windows.js
index 53ec5939241..45cdacbb035 100644
--- a/packages/@react-native-windows/tester/src/js/examples/FlatList/FlatList-multiColumn.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples/FlatList/FlatList-multiColumn.windows.js
@@ -12,7 +12,7 @@
import type {Item} from '../../components/ListExampleShared';
import type {RNTesterModuleExample} from '../../types/RNTesterTypes';
-import type {ListRenderItemInfo} from 'react-native/Libraries/Lists/VirtualizedList';
+import type {ListRenderItemInfo} from 'react-native';
import {
FooterComponent,
diff --git a/packages/@react-native-windows/tester/src/js/examples/FlatList/FlatList-nested.windows.js b/packages/@react-native-windows/tester/src/js/examples/FlatList/FlatList-nested.windows.js
index d30231da9c0..66b06ea0721 100644
--- a/packages/@react-native-windows/tester/src/js/examples/FlatList/FlatList-nested.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples/FlatList/FlatList-nested.windows.js
@@ -11,8 +11,8 @@
'use strict';
import type {RNTesterModuleExample} from '../../types/RNTesterTypes';
+import type {ListRenderItemInfo} from 'react-native';
import type {ViewToken} from 'react-native/Libraries/Lists/ViewabilityHelper';
-import type {ListRenderItemInfo} from 'react-native/Libraries/Lists/VirtualizedList';
import RNTesterPage from '../../components/RNTesterPage';
import RNTesterText from '../../components/RNTesterText';
diff --git a/packages/@react-native-windows/tester/src/js/examples/FlatList/FlatList-stickyHeaders.windows.js b/packages/@react-native-windows/tester/src/js/examples/FlatList/FlatList-stickyHeaders.windows.js
index 68132e39a5c..1f5dea3c947 100644
--- a/packages/@react-native-windows/tester/src/js/examples/FlatList/FlatList-stickyHeaders.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples/FlatList/FlatList-stickyHeaders.windows.js
@@ -9,7 +9,7 @@
*/
import type {RNTesterModuleExample} from '../../types/RNTesterTypes';
-import type {ListRenderItemInfo} from 'react-native/Libraries/Lists/VirtualizedList';
+import type {ListRenderItemInfo} from 'react-native';
import * as React from 'react';
import {FlatList, StyleSheet, Text, View} from 'react-native';
diff --git a/packages/@react-native-windows/tester/src/js/examples/Image/ImageExample.windows.js b/packages/@react-native-windows/tester/src/js/examples/Image/ImageExample.windows.js
index 6a481c7d6f1..d282ae8b94c 100644
--- a/packages/@react-native-windows/tester/src/js/examples/Image/ImageExample.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples/Image/ImageExample.windows.js
@@ -11,15 +11,13 @@
'use strict';
import type {RNTesterModuleExample} from '../../types/RNTesterTypes';
-import type {ImageProps} from 'react-native/Libraries/Image/ImageProps';
-import type {LayoutChangeEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {ImageProps, LayoutChangeEvent} from 'react-native';
import RNTesterButton from '../../components/RNTesterButton';
import RNTesterText from '../../components/RNTesterText';
import ImageCapInsetsExample from './ImageCapInsetsExample';
import React from 'react';
import {Image, ImageBackground, StyleSheet, Text, View} from 'react-native';
-import * as ReactNativeFeatureFlags from 'react-native/src/private/featureflags/ReactNativeFeatureFlags';
const IMAGE1 =
'https://www.facebook.com/assets/fb_lite_messaging/E2EE-settings@3x.png';
diff --git a/packages/@react-native-windows/tester/src/js/examples/Modal/ModalPresentation.windows.js b/packages/@react-native-windows/tester/src/js/examples/Modal/ModalPresentation.windows.js
index 947224c7040..f5569c20f53 100644
--- a/packages/@react-native-windows/tester/src/js/examples/Modal/ModalPresentation.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples/Modal/ModalPresentation.windows.js
@@ -11,7 +11,7 @@
/* eslint-disable no-alert */
import type {RNTesterModuleExample} from '../../types/RNTesterTypes';
-import type {ModalProps} from 'react-native/Libraries/Modal/Modal';
+import type {ModalProps} from 'react-native';
import RNTesterButton from '../../components/RNTesterButton';
import RNTesterText from '../../components/RNTesterText';
diff --git a/packages/@react-native-windows/tester/src/js/examples/TurboModule/SampleTurboModuleExample.windows.js b/packages/@react-native-windows/tester/src/js/examples/TurboModule/SampleTurboModuleExample.windows.js
index e3b0f4cfe0e..b27e83cebbf 100644
--- a/packages/@react-native-windows/tester/src/js/examples/TurboModule/SampleTurboModuleExample.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples/TurboModule/SampleTurboModuleExample.windows.js
@@ -8,8 +8,7 @@
* @flow strict-local
*/
-import type {RootTag} from 'react-native/Libraries/ReactNative/RootTag';
-import type {EventSubscription} from 'react-native/Libraries/vendor/emitter/EventEmitter';
+import type {EventSubscription, RootTag} from 'react-native';
import RNTesterText from '../../components/RNTesterText';
import styles from './TurboModuleExampleCommon';
diff --git a/packages/@react-native-windows/tester/src/js/utils/RNTesterList.windows.js b/packages/@react-native-windows/tester/src/js/utils/RNTesterList.windows.js
index e98f91f278f..b5529f0eb04 100644
--- a/packages/@react-native-windows/tester/src/js/utils/RNTesterList.windows.js
+++ b/packages/@react-native-windows/tester/src/js/utils/RNTesterList.windows.js
@@ -9,6 +9,7 @@
import type {RNTesterModule, RNTesterModuleInfo} from '../types/RNTesterTypes';
+import * as RNTesterListFbInternal from './RNTesterListFbInternal';
import ReactNativeFeatureFlags from 'react-native/Libraries/ReactNative/ReactNativeFeatureFlags';
const Components: Array = [
@@ -216,6 +217,7 @@ const Components: Array = [
module: require('../examples/OSSLibraryExample/OSSLibraryExample'),
},
*/
+ ...RNTesterListFbInternal.Components,
];
const APIs: Array = ([
@@ -344,14 +346,6 @@ const APIs: Array = ([
category: 'UI',
module: require('../examples/Layout/LayoutExample'),
},
- // $FlowExpectedError[cannot-resolve-name]
- typeof MutationObserver === 'function'
- ? {
- key: 'MutationObserver',
- category: 'UI',
- module: require('../examples/MutationObserver/MutationObserverIndex'),
- }
- : null,
{
key: 'MouseExample',
category: 'Basic',
@@ -471,11 +465,7 @@ const APIs: Array = ([
category: 'Basic',
module: require('../examples/TurboModule/TurboCxxModuleExample'),
},
- {
- key: 'PerformanceApiExample',
- category: 'Basic',
- module: require('../examples/Performance/PerformanceApiExample'),
- },
+ ...RNTesterListFbInternal.APIs,
]: Array).filter(Boolean);
if (ReactNativeFeatureFlags.shouldEmitW3CPointerEvents()) {
diff --git a/packages/@react-native/monorepo/overrides.json b/packages/@react-native/monorepo/overrides.json
index 936315fa59b..2663e907053 100644
--- a/packages/@react-native/monorepo/overrides.json
+++ b/packages/@react-native/monorepo/overrides.json
@@ -1,11 +1,11 @@
{
- "baseVersion": "0.80.0-nightly-20250428-9efcdc091",
+ "baseVersion": "0.80.0-nightly-20250506-3ac16dd6a",
"overrides": [
{
"type": "patch",
"file": "package.json",
"baseFile": "package.json",
- "baseHash": "1555093b05c146103ef4e9add6fe2c2c104ff225"
+ "baseHash": "4fad7b8d451333c0ccee6561c12a320d0556810f"
}
]
}
\ No newline at end of file
diff --git a/packages/@react-native/monorepo/package.json b/packages/@react-native/monorepo/package.json
index b78b2cc9bb1..40302e1307d 100644
--- a/packages/@react-native/monorepo/package.json
+++ b/packages/@react-native/monorepo/package.json
@@ -48,8 +48,8 @@
"@babel/preset-flow": "^7.24.7",
"@definitelytyped/dtslint": "^0.0.127",
"@jest/create-cache-key-function": "^29.7.0",
- "@react-native/metro-babel-transformer": "0.80.0-nightly-20250428-9efcdc091",
- "@react-native/metro-config": "0.80.0-nightly-20250428-9efcdc091",
+ "@react-native/metro-babel-transformer": "0.80.0-nightly-20250506-3ac16dd6a",
+ "@react-native/metro-config": "0.80.0-nightly-20250506-3ac16dd6a",
"@tsconfig/node18": "1.0.1",
"@types/react": "^19.0.0",
"@typescript-eslint/parser": "^7.1.1",
@@ -108,4 +108,4 @@
"resolutions": {
"react-is": "19.1.0"
}
-}
\ No newline at end of file
+}
diff --git a/packages/@react-native/tester/NativeComponentExample/js/MyNativeViewNativeComponent.js b/packages/@react-native/tester/NativeComponentExample/js/MyNativeViewNativeComponent.js
index e7a63bf4531..ea136a67b8d 100644
--- a/packages/@react-native/tester/NativeComponentExample/js/MyNativeViewNativeComponent.js
+++ b/packages/@react-native/tester/NativeComponentExample/js/MyNativeViewNativeComponent.js
@@ -8,28 +8,20 @@
* @format
*/
-import type {HostComponent} from 'react-native';
-import type {ViewProps} from 'react-native/Libraries/Components/View/ViewPropTypes';
-import type {
- BubblingEventHandler,
- Double,
- Float,
- Int32,
-} from 'react-native/Libraries/Types/CodegenTypes';
+import type {CodegenTypes, HostComponent, ViewProps} from 'react-native';
import * as React from 'react';
-import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';
-import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
+import {codegenNativeCommands, codegenNativeComponent} from 'react-native';
type Event = $ReadOnly<{
- values: $ReadOnlyArray,
+ values: $ReadOnlyArray,
boolValues: $ReadOnlyArray,
- floats: $ReadOnlyArray,
- doubles: $ReadOnlyArray,
+ floats: $ReadOnlyArray,
+ doubles: $ReadOnlyArray,
yesNos: $ReadOnlyArray<'yep' | 'nope'>,
strings: $ReadOnlyArray,
- latLons: $ReadOnlyArray<{lat: Double, lon: Double}>,
- multiArrays: $ReadOnlyArray<$ReadOnlyArray>,
+ latLons: $ReadOnlyArray<{lat: CodegenTypes.Double, lon: CodegenTypes.Double}>,
+ multiArrays: $ReadOnlyArray<$ReadOnlyArray>,
}>;
type LegacyStyleEvent = $ReadOnly<{
@@ -38,12 +30,12 @@ type LegacyStyleEvent = $ReadOnly<{
type NativeProps = $ReadOnly<{
...ViewProps,
- opacity?: Float,
- values: $ReadOnlyArray,
+ opacity?: CodegenTypes.Float,
+ values: $ReadOnlyArray,
// Events
- onIntArrayChanged?: ?BubblingEventHandler,
- onLegacyStyleEvent?: ?BubblingEventHandler<
+ onIntArrayChanged?: ?CodegenTypes.BubblingEventHandler,
+ onLegacyStyleEvent?: ?CodegenTypes.BubblingEventHandler<
LegacyStyleEvent,
'alternativeLegacyName',
>,
diff --git a/packages/@react-native/tester/NativeCxxModuleExample/NativeCxxModuleExample.js b/packages/@react-native/tester/NativeCxxModuleExample/NativeCxxModuleExample.js
index ed9bfa0f781..f29bf8bc780 100644
--- a/packages/@react-native/tester/NativeCxxModuleExample/NativeCxxModuleExample.js
+++ b/packages/@react-native/tester/NativeCxxModuleExample/NativeCxxModuleExample.js
@@ -8,8 +8,7 @@
* @format
*/
-import type {TurboModule} from 'react-native/Libraries/TurboModule/RCTExport';
-import type {EventEmitter} from 'react-native/Libraries/Types/CodegenTypes';
+import type {CodegenTypes, TurboModule} from 'react-native';
import {TurboModuleRegistry} from 'react-native';
@@ -77,11 +76,11 @@ export type CustomDeviceEvent = {
};
export interface Spec extends TurboModule {
- +onPress: EventEmitter;
- +onClick: EventEmitter;
- +onChange: EventEmitter;
- +onSubmit: EventEmitter;
- +onEvent: EventEmitter;
+ +onPress: CodegenTypes.EventEmitter;
+ +onClick: CodegenTypes.EventEmitter;
+ +onChange: CodegenTypes.EventEmitter;
+ +onSubmit: CodegenTypes.EventEmitter;
+ +onEvent: CodegenTypes.EventEmitter;
+getArray: (arg: Array) => Array;
+getBool: (arg: boolean) => boolean;
+getConstants: () => ConstantsStruct;
diff --git a/packages/@react-native/tester/NativeModuleExample/NativeScreenshotManager.js b/packages/@react-native/tester/NativeModuleExample/NativeScreenshotManager.js
index 9065b866d20..a04cca85a83 100644
--- a/packages/@react-native/tester/NativeModuleExample/NativeScreenshotManager.js
+++ b/packages/@react-native/tester/NativeModuleExample/NativeScreenshotManager.js
@@ -8,12 +8,11 @@
* @format
*/
-import type {TurboModule} from 'react-native/Libraries/TurboModule/RCTExport';
-import type {UnsafeObject} from 'react-native/Libraries/Types/CodegenTypes';
+import type {CodegenTypes, TurboModule} from 'react-native';
-import * as TurboModuleRegistry from 'react-native/Libraries/TurboModule/TurboModuleRegistry';
+import {TurboModuleRegistry} from 'react-native';
-export type ScreenshotManagerOptions = UnsafeObject;
+export type ScreenshotManagerOptions = CodegenTypes.UnsafeObject;
export interface Spec extends TurboModule {
+getConstants: () => {};
diff --git a/packages/@react-native/tester/ReportFullyDrawnView/ReportFullyDrawnViewNativeComponent.js b/packages/@react-native/tester/ReportFullyDrawnView/ReportFullyDrawnViewNativeComponent.js
index 232e9c07643..fe778e11158 100644
--- a/packages/@react-native/tester/ReportFullyDrawnView/ReportFullyDrawnViewNativeComponent.js
+++ b/packages/@react-native/tester/ReportFullyDrawnView/ReportFullyDrawnViewNativeComponent.js
@@ -9,9 +9,9 @@
*/
import type {HostComponent} from 'react-native';
-import type {ViewProps} from 'react-native/Libraries/Components/View/ViewPropTypes';
+import type {ViewProps} from 'react-native';
-import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
+import {codegenNativeComponent} from 'react-native';
type NativeProps = $ReadOnly<{
...ViewProps,
diff --git a/packages/@react-native/tester/js/components/RNTOption.js b/packages/@react-native/tester/js/components/RNTOption.js
index b8026947d01..3f0c3535600 100644
--- a/packages/@react-native/tester/js/components/RNTOption.js
+++ b/packages/@react-native/tester/js/components/RNTOption.js
@@ -10,8 +10,8 @@
'use strict';
+import type {GestureResponderEvent} from 'react-native';
import type {ViewStyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';
-import type {GestureResponderEvent} from 'react-native/Libraries/Types/CoreEventTypes';
import {RNTesterThemeContext} from './RNTesterTheme';
import * as React from 'react';
diff --git a/packages/@react-native/tester/js/components/RNTesterButton.js b/packages/@react-native/tester/js/components/RNTesterButton.js
index f63d76133b4..2ae13b5a8ff 100644
--- a/packages/@react-native/tester/js/components/RNTesterButton.js
+++ b/packages/@react-native/tester/js/components/RNTesterButton.js
@@ -10,7 +10,7 @@
'use strict';
-import type {GestureResponderEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {GestureResponderEvent} from 'react-native';
import React from 'react';
import {Pressable, StyleSheet, Text} from 'react-native';
diff --git a/packages/@react-native/tester/js/components/RNTesterText.js b/packages/@react-native/tester/js/components/RNTesterText.js
index 82cc99f5427..51bd4f4ea05 100644
--- a/packages/@react-native/tester/js/components/RNTesterText.js
+++ b/packages/@react-native/tester/js/components/RNTesterText.js
@@ -8,7 +8,7 @@
* @format
*/
-import type {TextProps} from 'react-native/Libraries/Text/TextProps';
+import type {TextProps} from 'react-native';
import {RNTesterThemeContext} from './RNTesterTheme';
import React, {useContext, useMemo} from 'react';
diff --git a/packages/@react-native/tester/js/components/RNTesterTheme.js b/packages/@react-native/tester/js/components/RNTesterTheme.js
index 9c2a77ca894..8cc4cf6f0a7 100644
--- a/packages/@react-native/tester/js/components/RNTesterTheme.js
+++ b/packages/@react-native/tester/js/components/RNTesterTheme.js
@@ -8,8 +8,7 @@
* @format
*/
-import type {ImageSource} from 'react-native/Libraries/Image/ImageSource';
-import type {ColorValue} from 'react-native/Libraries/StyleSheet/StyleSheet';
+import type {ColorValue, ImageSource} from 'react-native';
import * as React from 'react';
import {Appearance} from 'react-native';
diff --git a/packages/@react-native/tester/js/examples/Accessibility/AccessibilityExample.js b/packages/@react-native/tester/js/examples/Accessibility/AccessibilityExample.js
index 6c251bff161..d7c4b9e89de 100644
--- a/packages/@react-native/tester/js/examples/Accessibility/AccessibilityExample.js
+++ b/packages/@react-native/tester/js/examples/Accessibility/AccessibilityExample.js
@@ -10,8 +10,7 @@
'use strict';
-import type {GestureResponderEvent} from 'react-native/Libraries/Types/CoreEventTypes';
-import type {EventSubscription} from 'react-native/Libraries/vendor/emitter/EventEmitter';
+import type {EventSubscription, GestureResponderEvent} from 'react-native';
import RNTesterBlock from '../../components/RNTesterBlock';
import RNTesterText from '../../components/RNTesterText';
diff --git a/packages/@react-native/tester/js/examples/AnimatedGratuitousApp/AnExChained.js b/packages/@react-native/tester/js/examples/AnimatedGratuitousApp/AnExChained.js
index a0555bb872a..e49026d3d34 100644
--- a/packages/@react-native/tester/js/examples/AnimatedGratuitousApp/AnExChained.js
+++ b/packages/@react-native/tester/js/examples/AnimatedGratuitousApp/AnExChained.js
@@ -10,8 +10,10 @@
'use strict';
-import type {PanResponderGestureState} from 'react-native/Libraries/Interaction/PanResponder';
-import type {GestureResponderEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {
+ GestureResponderEvent,
+ PanResponderGestureState,
+} from 'react-native';
import React from 'react';
import {Animated, PanResponder, StyleSheet, View} from 'react-native';
diff --git a/packages/@react-native/tester/js/examples/Appearance/AppearanceExample.js b/packages/@react-native/tester/js/examples/Appearance/AppearanceExample.js
index 3b5f269ff43..daff14cee3a 100644
--- a/packages/@react-native/tester/js/examples/Appearance/AppearanceExample.js
+++ b/packages/@react-native/tester/js/examples/Appearance/AppearanceExample.js
@@ -8,7 +8,7 @@
* @flow
*/
-import type {ColorSchemeName} from 'react-native/Libraries/Utilities/NativeAppearance';
+import type {ColorSchemeName} from 'react-native';
import RNTesterText from '../../components/RNTesterText';
import {RNTesterThemeContext, themes} from '../../components/RNTesterTheme';
diff --git a/packages/@react-native/tester/js/examples/Experimental/Compatibility/ManyPointersPropertiesExample.js b/packages/@react-native/tester/js/examples/Experimental/Compatibility/ManyPointersPropertiesExample.js
index 469410c890f..c11dc11cdc4 100644
--- a/packages/@react-native/tester/js/examples/Experimental/Compatibility/ManyPointersPropertiesExample.js
+++ b/packages/@react-native/tester/js/examples/Experimental/Compatibility/ManyPointersPropertiesExample.js
@@ -9,7 +9,7 @@
*/
import type {RNTesterModuleExample} from '../../../types/RNTesterTypes';
-import type {PointerEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {PointerEvent} from 'react-native';
import * as React from 'react';
import {StyleSheet, Text, View} from 'react-native';
diff --git a/packages/@react-native/tester/js/examples/Experimental/PlatformTest/RNTesterPlatformTestEventRecorder.js b/packages/@react-native/tester/js/examples/Experimental/PlatformTest/RNTesterPlatformTestEventRecorder.js
index 1dcedbd4d23..3cc360bafac 100644
--- a/packages/@react-native/tester/js/examples/Experimental/PlatformTest/RNTesterPlatformTestEventRecorder.js
+++ b/packages/@react-native/tester/js/examples/Experimental/PlatformTest/RNTesterPlatformTestEventRecorder.js
@@ -8,7 +8,7 @@
* @flow
*/
-import type {ViewProps} from 'react-native/Libraries/Components/View/ViewPropTypes';
+import type {ViewProps} from 'react-native';
import {useMemo} from 'react';
diff --git a/packages/@react-native/tester/js/examples/Experimental/PlatformTest/RNTesterPlatformTestResultView.js b/packages/@react-native/tester/js/examples/Experimental/PlatformTest/RNTesterPlatformTestResultView.js
index 1b220c50258..4458a2c63a5 100644
--- a/packages/@react-native/tester/js/examples/Experimental/PlatformTest/RNTesterPlatformTestResultView.js
+++ b/packages/@react-native/tester/js/examples/Experimental/PlatformTest/RNTesterPlatformTestResultView.js
@@ -12,11 +12,8 @@ import type {
PlatformTestResult,
PlatformTestResultStatus,
} from './RNTesterPlatformTestTypes';
-import type {ListRenderItemInfo} from 'react-native/Libraries/Lists/VirtualizedList';
-import type {
- TextStyle,
- ViewStyleProp,
-} from 'react-native/Libraries/StyleSheet/StyleSheet';
+import type {ListRenderItemInfo, TextStyle} from 'react-native';
+import type {ViewStyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';
import RNTesterPlatformTestMinimizedResultView from './RNTesterPlatformTestMinimizedResultView';
import RNTesterPlatformTestResultsText from './RNTesterPlatformTestResultsText';
diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventAccessibility.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventAccessibility.js
index 9335ce8cfe0..b407a5a9122 100644
--- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventAccessibility.js
+++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventAccessibility.js
@@ -9,7 +9,7 @@
*/
import type {EventOccurrence} from './PointerEventSupport';
-import type {PointerEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {PointerEvent} from 'react-native';
import {EventTracker} from './PointerEventSupport';
import * as React from 'react';
diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventAttributesHoverablePointers.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventAttributesHoverablePointers.js
index 9a1d8d0513c..23de1e43909 100644
--- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventAttributesHoverablePointers.js
+++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventAttributesHoverablePointers.js
@@ -9,11 +9,7 @@
*/
import type {PlatformTestComponentBaseProps} from '../PlatformTest/RNTesterPlatformTestTypes';
-import type {HostInstance} from 'react-native';
-import type {
- LayoutRectangle,
- PointerEvent,
-} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {HostInstance, LayoutRectangle, PointerEvent} from 'react-native';
import RNTesterPlatformTest from '../PlatformTest/RNTesterPlatformTest';
import {check_PointerEvent, useTestEventHandler} from './PointerEventSupport';
diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventAttributesNoHoverPointers.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventAttributesNoHoverPointers.js
index e55a27b8430..58efb42a041 100644
--- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventAttributesNoHoverPointers.js
+++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventAttributesNoHoverPointers.js
@@ -9,11 +9,7 @@
*/
import type {PlatformTestComponentBaseProps} from '../PlatformTest/RNTesterPlatformTestTypes';
-import type {HostInstance} from 'react-native';
-import type {
- LayoutRectangle,
- PointerEvent,
-} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {HostInstance, LayoutRectangle, PointerEvent} from 'react-native';
import RNTesterPlatformTest from '../PlatformTest/RNTesterPlatformTest';
import {check_PointerEvent, useTestEventHandler} from './PointerEventSupport';
diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventCaptureMouse.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventCaptureMouse.js
index d5db79dc457..920f2884263 100644
--- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventCaptureMouse.js
+++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventCaptureMouse.js
@@ -10,7 +10,7 @@
import type {PlatformTestComponentBaseProps} from '../PlatformTest/RNTesterPlatformTestTypes';
import type {ElementRef} from 'react';
-import type {PointerEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {PointerEvent} from 'react-native';
import RNTesterPlatformTest from '../PlatformTest/RNTesterPlatformTest';
import * as React from 'react';
diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventClickTouch.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventClickTouch.js
index 627d913990e..de7765ce7d7 100644
--- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventClickTouch.js
+++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventClickTouch.js
@@ -10,7 +10,7 @@
import type {PlatformTestComponentBaseProps} from '../PlatformTest/RNTesterPlatformTestTypes';
import type {PlatformTestContext} from '../PlatformTest/RNTesterPlatformTestTypes';
-import type {PointerEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {PointerEvent} from 'react-native';
import RNTesterPlatformTest from '../PlatformTest/RNTesterPlatformTest';
import {check_PointerEvent} from './PointerEventSupport';
diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventClickTouchHierarchyPointerEvents.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventClickTouchHierarchyPointerEvents.js
index 7db11831df7..b1433c8fcea 100644
--- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventClickTouchHierarchyPointerEvents.js
+++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventClickTouchHierarchyPointerEvents.js
@@ -10,7 +10,7 @@
import type {PlatformTestComponentBaseProps} from '../PlatformTest/RNTesterPlatformTestTypes';
import type {EventOccurrence, EventTrackerProps} from './PointerEventSupport';
-import type {ViewProps} from 'react-native/Libraries/Components/View/ViewPropTypes';
+import type {ViewProps} from 'react-native';
import RNTesterPlatformTest from '../PlatformTest/RNTesterPlatformTest';
import {EventTracker, mkEvent} from './PointerEventSupport';
diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventLayoutChangeShouldFirePointerOver.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventLayoutChangeShouldFirePointerOver.js
index 27c9567e93e..398cc3dcf44 100644
--- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventLayoutChangeShouldFirePointerOver.js
+++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventLayoutChangeShouldFirePointerOver.js
@@ -9,7 +9,7 @@
*/
import type {PlatformTestComponentBaseProps} from '../PlatformTest/RNTesterPlatformTestTypes';
-import type {PointerEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {PointerEvent} from 'react-native';
import RNTesterPlatformTest from '../PlatformTest/RNTesterPlatformTest';
import * as React from 'react';
diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerCancelTouch.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerCancelTouch.js
index 36cca7e7ce6..8262ab702d2 100644
--- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerCancelTouch.js
+++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerCancelTouch.js
@@ -9,7 +9,7 @@
*/
import type {PlatformTestComponentBaseProps} from '../PlatformTest/RNTesterPlatformTestTypes';
-import type {PointerEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {PointerEvent} from 'react-native';
import RNTesterPlatformTest from '../PlatformTest/RNTesterPlatformTest';
import {check_PointerEvent} from './PointerEventSupport';
diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerMove.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerMove.js
index 49fbc258439..fad08cd6954 100644
--- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerMove.js
+++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerMove.js
@@ -11,7 +11,7 @@
// adapted from https://github.com/web-platform-tests/wpt/blob/master/pointerevents/pointerevent_pointermove.html
import type {PlatformTestComponentBaseProps} from '../PlatformTest/RNTesterPlatformTestTypes';
-import type {PointerEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {PointerEvent} from 'react-native';
import RNTesterPlatformTest from '../PlatformTest/RNTesterPlatformTest';
import {useTestEventHandler} from './PointerEventSupport';
diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerMoveEventOrder.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerMoveEventOrder.js
index d5267dfea7b..232d145beee 100644
--- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerMoveEventOrder.js
+++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerMoveEventOrder.js
@@ -9,7 +9,7 @@
*/
import type {PlatformTestComponentBaseProps} from '../PlatformTest/RNTesterPlatformTestTypes';
-import type {PointerEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {PointerEvent} from 'react-native';
import RNTesterPlatformTest from '../PlatformTest/RNTesterPlatformTest';
import RNTesterPlatformTestEventRecorder from '../PlatformTest/RNTesterPlatformTestEventRecorder';
diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerMoveOnChordedMouseButton.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerMoveOnChordedMouseButton.js
index 7956a7d16fb..bba7ccc9748 100644
--- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerMoveOnChordedMouseButton.js
+++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerMoveOnChordedMouseButton.js
@@ -9,7 +9,7 @@
*/
import type {PlatformTestComponentBaseProps} from '../PlatformTest/RNTesterPlatformTestTypes';
-import type {PointerEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {PointerEvent} from 'react-native';
import RNTesterPlatformTest from '../PlatformTest/RNTesterPlatformTest';
import * as React from 'react';
diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerOverOut.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerOverOut.js
index 9a77b8fd117..ce5de978815 100644
--- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerOverOut.js
+++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerOverOut.js
@@ -9,8 +9,7 @@
*/
import type {PlatformTestComponentBaseProps} from '../PlatformTest/RNTesterPlatformTestTypes';
-import type {HostInstance} from 'react-native';
-import type {PointerEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {HostInstance, PointerEvent} from 'react-native';
import RNTesterPlatformTest from '../PlatformTest/RNTesterPlatformTest';
import * as React from 'react';
diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPrimaryTouchPointer.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPrimaryTouchPointer.js
index 24dff3c6baa..a9be730348d 100644
--- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPrimaryTouchPointer.js
+++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPrimaryTouchPointer.js
@@ -9,7 +9,7 @@
*/
import type {PlatformTestComponentBaseProps} from '../PlatformTest/RNTesterPlatformTestTypes';
-import type {PointerEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {PointerEvent} from 'react-native';
import RNTesterPlatformTest from '../PlatformTest/RNTesterPlatformTest';
import {useTestEventHandler} from './PointerEventSupport';
diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventSupport.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventSupport.js
index d65b88ba21c..260c65ea342 100644
--- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventSupport.js
+++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventSupport.js
@@ -9,8 +9,7 @@
*/
import type {PlatformTestHarness} from '../PlatformTest/RNTesterPlatformTestTypes';
-import type {ViewProps} from 'react-native/Libraries/Components/View/ViewPropTypes';
-import type {PointerEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {PointerEvent, ViewProps} from 'react-native';
import * as React from 'react';
import {useMemo} from 'react';
diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventsEventfulView.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventsEventfulView.js
index 4f8ede7591f..27e75cedc01 100644
--- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventsEventfulView.js
+++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventsEventfulView.js
@@ -8,8 +8,7 @@
* @flow
*/
-import type {ViewProps} from 'react-native/Libraries/Components/View/ViewPropTypes';
-import type {PointerEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {PointerEvent, ViewProps} from 'react-native';
import * as React from 'react';
import {StyleSheet, Text, View} from 'react-native';
diff --git a/packages/@react-native/tester/js/examples/FlatList/BaseFlatListExample.js b/packages/@react-native/tester/js/examples/FlatList/BaseFlatListExample.js
index 0e75103d36a..a325b8a1f82 100644
--- a/packages/@react-native/tester/js/examples/FlatList/BaseFlatListExample.js
+++ b/packages/@react-native/tester/js/examples/FlatList/BaseFlatListExample.js
@@ -8,7 +8,7 @@
* @format
*/
-import type {ListRenderItemInfo} from 'react-native/Libraries/Lists/VirtualizedList';
+import type {ListRenderItemInfo} from 'react-native';
import * as React from 'react';
import {
diff --git a/packages/@react-native/tester/js/examples/FlatList/FlatList-basic.js b/packages/@react-native/tester/js/examples/FlatList/FlatList-basic.js
index 37ec319a7f9..2b23cb29e4a 100644
--- a/packages/@react-native/tester/js/examples/FlatList/FlatList-basic.js
+++ b/packages/@react-native/tester/js/examples/FlatList/FlatList-basic.js
@@ -12,8 +12,7 @@
import type {Item} from '../../components/ListExampleShared';
import type {RNTesterModuleExample} from '../../types/RNTesterTypes';
-import type FlatList from 'react-native/Libraries/Lists/FlatList';
-import type {ListRenderItemInfo} from 'react-native/Libraries/Lists/VirtualizedList';
+import type {FlatList, ListRenderItemInfo} from 'react-native';
import {
FooterComponent,
diff --git a/packages/@react-native/tester/js/examples/FlatList/FlatList-multiColumn.js b/packages/@react-native/tester/js/examples/FlatList/FlatList-multiColumn.js
index 53ec5939241..45cdacbb035 100644
--- a/packages/@react-native/tester/js/examples/FlatList/FlatList-multiColumn.js
+++ b/packages/@react-native/tester/js/examples/FlatList/FlatList-multiColumn.js
@@ -12,7 +12,7 @@
import type {Item} from '../../components/ListExampleShared';
import type {RNTesterModuleExample} from '../../types/RNTesterTypes';
-import type {ListRenderItemInfo} from 'react-native/Libraries/Lists/VirtualizedList';
+import type {ListRenderItemInfo} from 'react-native';
import {
FooterComponent,
diff --git a/packages/@react-native/tester/js/examples/FlatList/FlatList-nested.js b/packages/@react-native/tester/js/examples/FlatList/FlatList-nested.js
index 4386b4b7202..9d2c018366c 100644
--- a/packages/@react-native/tester/js/examples/FlatList/FlatList-nested.js
+++ b/packages/@react-native/tester/js/examples/FlatList/FlatList-nested.js
@@ -11,8 +11,8 @@
'use strict';
import type {RNTesterModuleExample} from '../../types/RNTesterTypes';
+import type {ListRenderItemInfo} from 'react-native';
import type {ViewToken} from 'react-native/Libraries/Lists/ViewabilityHelper';
-import type {ListRenderItemInfo} from 'react-native/Libraries/Lists/VirtualizedList';
import RNTesterPage from '../../components/RNTesterPage';
import RNTesterText from '../../components/RNTesterText';
diff --git a/packages/@react-native/tester/js/examples/FlatList/FlatList-stickyHeaders.js b/packages/@react-native/tester/js/examples/FlatList/FlatList-stickyHeaders.js
index b6bace9f658..0165e382a62 100644
--- a/packages/@react-native/tester/js/examples/FlatList/FlatList-stickyHeaders.js
+++ b/packages/@react-native/tester/js/examples/FlatList/FlatList-stickyHeaders.js
@@ -9,7 +9,7 @@
*/
import type {RNTesterModuleExample} from '../../types/RNTesterTypes';
-import type {ListRenderItemInfo} from 'react-native/Libraries/Lists/VirtualizedList';
+import type {ListRenderItemInfo} from 'react-native';
import * as React from 'react';
import {FlatList, StyleSheet, Text, View} from 'react-native';
diff --git a/packages/@react-native/tester/js/examples/Image/ImageExample.js b/packages/@react-native/tester/js/examples/Image/ImageExample.js
index 57d687a6b02..4a4b01294be 100644
--- a/packages/@react-native/tester/js/examples/Image/ImageExample.js
+++ b/packages/@react-native/tester/js/examples/Image/ImageExample.js
@@ -11,15 +11,13 @@
'use strict';
import type {RNTesterModuleExample} from '../../types/RNTesterTypes';
-import type {ImageProps} from 'react-native/Libraries/Image/ImageProps';
-import type {LayoutChangeEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {ImageProps, LayoutChangeEvent} from 'react-native';
import RNTesterButton from '../../components/RNTesterButton';
import RNTesterText from '../../components/RNTesterText';
import ImageCapInsetsExample from './ImageCapInsetsExample';
import React from 'react';
import {Image, ImageBackground, StyleSheet, Text, View} from 'react-native';
-import * as ReactNativeFeatureFlags from 'react-native/src/private/featureflags/ReactNativeFeatureFlags';
const IMAGE1 =
'https://www.facebook.com/assets/fb_lite_messaging/E2EE-settings@3x.png';
diff --git a/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverBenchmark.js b/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverBenchmark.js
deleted file mode 100644
index 3ab6a87d84d..00000000000
--- a/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverBenchmark.js
+++ /dev/null
@@ -1,130 +0,0 @@
-/**
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- * @format
- * @flow strict-local
- */
-
-import type IntersectionObserverType from 'react-native/src/private/webapis/intersectionobserver/IntersectionObserver';
-
-import {RNTesterThemeContext} from '../../components/RNTesterTheme';
-import * as React from 'react';
-import {
- type ElementRef,
- useContext,
- useLayoutEffect,
- useRef,
- useState,
-} from 'react';
-import {Button, ScrollView, StyleSheet, Text, View} from 'react-native';
-
-declare var IntersectionObserver: Class;
-
-export const name = 'IntersectionObserver Benchmark';
-export const title = name;
-export const description =
- 'Example of using IntersectionObserver to observe a large amount of UI elements';
-
-export function render(): React.Node {
- return ;
-}
-
-const ROWS = 100;
-const COLUMNS = 5;
-
-function IntersectionObserverBenchark(): React.Node {
- const [isObserving, setObserving] = useState(false);
-
- return (
- <>
-
-
-
- {Array(ROWS)
- .fill(null)
- .map((_, row) => (
-
- {Array(COLUMNS)
- .fill(null)
- .map((_2, column) => (
-
- ))}
-
- ))}
-
- >
- );
-}
-
-function Item({index, observe}: {index: number, observe: boolean}): React.Node {
- const theme = useContext(RNTesterThemeContext);
- const ref = useRef>();
-
- useLayoutEffect(() => {
- const element = ref.current;
-
- if (!observe || !element) {
- return;
- }
-
- const observer = new IntersectionObserver(
- entries => {
- // You can inspect the actual entries here.
- // We don't log them by default to avoid the logs themselves to degrade
- // performance.
- },
- {
- threshold: [0, 1],
- },
- );
-
- // $FlowExpectedError
- observer.observe(element);
-
- return () => {
- observer.disconnect();
- };
- }, [observe]);
-
- return (
-
-
- {index + 1}
-
-
- );
-}
-
-const styles = StyleSheet.create({
- buttonContainer: {
- padding: 10,
- },
- row: {
- flexDirection: 'row',
- },
- item: {
- flex: 1,
- padding: 12,
- margin: 5,
- },
- itemText: {
- fontSize: 22,
- textAlign: 'center',
- },
-});
diff --git a/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverIndex.js b/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverIndex.js
deleted file mode 100644
index 9311a5801b1..00000000000
--- a/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverIndex.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- * @flow strict-local
- * @format
- */
-
-import * as IntersectionObserverBenchmark from './IntersectionObserverBenchmark';
-import * as IntersectionObserverMDNExample from './IntersectionObserverMDNExample';
-import * as IntersectionObserverRootThreshold from './IntersectionObserverRootThreshold';
-
-export const framework = 'React';
-export const title = 'IntersectionObserver';
-export const category = 'UI';
-export const documentationURL =
- 'https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API';
-export const description =
- 'API to detect paint times for elements and changes in their intersections with other elements.';
-export const showIndividualExamples = true;
-export const examples = [
- IntersectionObserverMDNExample,
- IntersectionObserverBenchmark,
- IntersectionObserverRootThreshold,
-];
diff --git a/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverMDNExample.js b/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverMDNExample.js
deleted file mode 100644
index f7d92cc544b..00000000000
--- a/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverMDNExample.js
+++ /dev/null
@@ -1,181 +0,0 @@
-/**
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- * @format
- * @flow strict-local
- */
-
-import type IntersectionObserverType from 'react-native/src/private/webapis/intersectionobserver/IntersectionObserver';
-
-import {RNTesterThemeContext} from '../../components/RNTesterTheme';
-import * as React from 'react';
-import {
- type ElementRef,
- useContext,
- useLayoutEffect,
- useRef,
- useState,
-} from 'react';
-import {Button, ScrollView, StyleSheet, Text, View} from 'react-native';
-
-declare var IntersectionObserver: Class;
-
-export const name = 'IntersectionObserver MDN Example';
-export const title = name;
-export const description =
- 'Copy of the example in MDN about IntersectionObserver with different thresholds.';
-
-export function render(): React.Node {
- return ;
-}
-
-/**
- * Similar to the example in MDN: https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
- */
-function IntersectionObserverMDNExample(): React.Node {
- const theme = useContext(RNTesterThemeContext);
- const [showMargin, setShowMargin] = useState(true);
-
- return (
-
-
- );
-}
-
-function ListItem(props: {
- position: number,
- thresholds: Array,
- initialValue?: number,
-}): React.Node {
- const itemRef = useRef>(null);
- const intersectionRatioRef = useRef(0);
- const [intersectionRatio, setIntersectionRatio] = useState(
- props.initialValue ?? 0,
- );
-
- useLayoutEffect(() => {
- const itemNode = itemRef.current;
- if (itemNode == null) {
- return;
- }
-
- const intersectionObserver = new IntersectionObserver(
- entries => {
- entries.forEach(entry => {
- if (
- intersectionRatioRef.current === 0 &&
- entry.intersectionRatio > 0
- ) {
- console.log(
- `Card #${props.position} switched to intersecting (according to thresholds)`,
- );
- } else if (
- intersectionRatioRef.current !== 0 &&
- entry.intersectionRatio === 0
- ) {
- console.log(
- `Card #${props.position} switched to NOT intersecting (according to thresholds)`,
- );
- }
- intersectionRatioRef.current = entry.intersectionRatio;
- setIntersectionRatio(entry.intersectionRatio);
- });
- },
- {threshold: props.thresholds},
- );
-
- // $FlowFixMe[incompatible-call]
- intersectionObserver.observe(itemNode);
-
- return () => {
- intersectionObserver.disconnect();
- };
- }, [props.position, props.thresholds]);
-
- return (
-
-
-
-
-
-
- );
-}
-
-function IntersectionRatioIndicator(props: {
- value: number,
- style: {top?: number, bottom?: number, left?: number, right?: number},
-}): React.Node {
- return (
-
- {`${Math.floor(props.value * 100)}%`}
-
- );
-}
-
-function buildThresholdList(numSteps: number): Array {
- const thresholds = [];
-
- for (let i = 1.0; i <= numSteps; i++) {
- const ratio = i / numSteps;
- thresholds.push(ratio);
- }
-
- thresholds.push(0);
- return thresholds;
-}
-
-const styles = StyleSheet.create({
- scrollDownText: {
- textAlign: 'center',
- fontSize: 20,
- marginTop: 20,
- },
- margin: {
- marginBottom: 700,
- },
- item: {
- backgroundColor: 'rgb(245, 170, 140)',
- borderColor: 'rgb(201, 126, 17)',
- borderWidth: 2,
- height: 500,
- margin: 6,
- },
- intersectionRatioIndicator: {
- position: 'absolute',
- padding: 5,
- backgroundColor: 'white',
- opacity: 0.7,
- borderWidth: 1,
- borderColor: 'black',
- },
-});
diff --git a/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverRootThreshold.js b/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverRootThreshold.js
deleted file mode 100644
index 3b0cd19d7f8..00000000000
--- a/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverRootThreshold.js
+++ /dev/null
@@ -1,224 +0,0 @@
-/**
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- * @format
- * @flow strict-local
- */
-
-import type {ViewStyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';
-import type IntersectionObserverType from 'react-native/src/private/webapis/intersectionobserver/IntersectionObserver';
-
-import {RNTesterThemeContext} from '../../components/RNTesterTheme';
-import * as React from 'react';
-import {
- type ElementRef,
- useContext,
- useLayoutEffect,
- useRef,
- useState,
-} from 'react';
-import {Button, ScrollView, StyleSheet, Text, View} from 'react-native';
-
-declare const IntersectionObserver: Class;
-
-export const name = 'IntersectionObserver Root Threshold';
-export const title = name;
-export const description =
- 'Examples of setting threshold and rnRootThreshold. Views will change background color if they meet their threshold.';
-
-export function render(): React.Node {
- return ;
-}
-
-/**
- * Similar to the example in MDN: https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
- */
-function IntersectionObserverRootThreshold(): React.Node {
- const theme = useContext(RNTesterThemeContext);
- const [showMargin, setShowMargin] = useState(true);
-
- return (
-
-
- );
-}
-
-function ListItem(props: {
- position: number,
- rootThreshold: number,
- threshold: number,
- initialValue?: number,
- description: string,
- style?: ?ViewStyleProp,
-}): React.Node {
- const itemRef = useRef>(null);
- const [intersectionRatio, setIntersectionRatio] = useState(
- props.initialValue ?? 0,
- );
- const [intersectionRootRatio, setIntersectionRootRatio] = useState(
- props.initialValue ?? 0,
- );
-
- useLayoutEffect(() => {
- const itemNode = itemRef.current;
- if (itemNode == null) {
- return;
- }
-
- const intersectionObserver = new IntersectionObserver(
- entries => {
- entries.forEach(entry => {
- setIntersectionRatio(entry.intersectionRatio);
- // $FlowFixMe[prop-missing] - React Native specific entry property
- setIntersectionRootRatio(entry.rnRootIntersectionRatio);
- });
- },
- {threshold: props.threshold, rnRootThreshold: props.rootThreshold},
- );
-
- // $FlowFixMe[incompatible-call]
- intersectionObserver.observe(itemNode);
-
- return () => {
- intersectionObserver.disconnect();
- };
- }, [props.position, props.threshold, props.rootThreshold]);
-
- return (
- = props.threshold ? styles.intersecting : null,
- intersectionRootRatio >= props.rootThreshold
- ? styles.rootIntersecting
- : null,
- props.style,
- ]}
- ref={itemRef}>
- {props.description}
- rnRootThreshold: {props.rootThreshold}
- threshold: {props.threshold}
-
-
-
-
-
-
- );
-}
-
-function IntersectionRatioIndicator(props: {
- intersectionRatio: number,
- intersectionRootRatio: number,
- style: {top?: number, bottom?: number, left?: number, right?: number},
-}): React.Node {
- return (
-
-
- target ratio: {`${Math.floor(props.intersectionRatio * 100)}%`}
-
-
- root ratio: {`${Math.floor(props.intersectionRootRatio * 100)}%`}
-
-
- );
-}
-
-const styles = StyleSheet.create({
- scrollDownText: {
- textAlign: 'center',
- fontSize: 20,
- marginTop: 20,
- },
- intersecting: {
- backgroundColor: 'rgb(226, 237, 166)',
- },
- rootIntersecting: {
- backgroundColor: 'rgb(237, 90, 45)',
- },
- margin: {
- marginBottom: 700,
- },
- item: {
- backgroundColor: 'rgb(186, 186, 186)',
- borderColor: 'rgb(201, 126, 17)',
- borderWidth: 2,
- height: 500,
- margin: 6,
- alignItems: 'center',
- justifyContent: 'center',
- },
- intersectionRatioIndicator: {
- position: 'absolute',
- padding: 5,
- backgroundColor: 'white',
- opacity: 0.7,
- borderWidth: 1,
- borderColor: 'black',
- },
- description: {
- margin: 20,
- fontSize: 16,
- },
-});
diff --git a/packages/@react-native/tester/js/examples/Keyboard/KeyboardExample.js b/packages/@react-native/tester/js/examples/Keyboard/KeyboardExample.js
index 90ffe164ed6..0ec09885b6e 100644
--- a/packages/@react-native/tester/js/examples/Keyboard/KeyboardExample.js
+++ b/packages/@react-native/tester/js/examples/Keyboard/KeyboardExample.js
@@ -14,7 +14,7 @@ import type {
RNTesterModule,
RNTesterModuleExample,
} from '../../types/RNTesterTypes';
-import type {KeyboardEvent} from 'react-native/Libraries/Components/Keyboard/Keyboard';
+import type {KeyboardEvent} from 'react-native';
import RNTesterText from '../../components/RNTesterText';
import * as React from 'react';
diff --git a/packages/@react-native/tester/js/examples/Modal/ModalPresentation.js b/packages/@react-native/tester/js/examples/Modal/ModalPresentation.js
index 63093f86fdc..38f697a684a 100644
--- a/packages/@react-native/tester/js/examples/Modal/ModalPresentation.js
+++ b/packages/@react-native/tester/js/examples/Modal/ModalPresentation.js
@@ -11,7 +11,7 @@
/* eslint-disable no-alert */
import type {RNTesterModuleExample} from '../../types/RNTesterTypes';
-import type {ModalProps} from 'react-native/Libraries/Modal/Modal';
+import type {ModalProps} from 'react-native';
import RNTesterButton from '../../components/RNTesterButton';
import RNTesterText from '../../components/RNTesterText';
diff --git a/packages/@react-native/tester/js/examples/MutationObserver/MutationObserverExample.js b/packages/@react-native/tester/js/examples/MutationObserver/MutationObserverExample.js
deleted file mode 100644
index 0a22a03ccfb..00000000000
--- a/packages/@react-native/tester/js/examples/MutationObserver/MutationObserverExample.js
+++ /dev/null
@@ -1,205 +0,0 @@
-/**
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- * @format
- * @flow strict-local
- */
-
-import type ReadOnlyNode from 'react-native/src/private/webapis/dom/nodes/ReadOnlyNode';
-import type NodeList from 'react-native/src/private/webapis/dom/oldstylecollections/NodeList';
-
-import {RNTesterThemeContext} from '../../components/RNTesterTheme';
-import * as React from 'react';
-import {type ElementRef, useContext, useEffect, useRef, useState} from 'react';
-import {Pressable, ScrollView, StyleSheet, Text, View} from 'react-native';
-import ReadOnlyElement from 'react-native/src/private/webapis/dom/nodes/ReadOnlyElement';
-import MutationObserver from 'react-native/src/private/webapis/mutationobserver/MutationObserver';
-
-export const name = 'MutationObserver Example';
-export const title = name;
-export const description =
- '- Tap on elements to append a child.\n- Long tap on elements to remove them.';
-
-export function render(): React.Node {
- return ;
-}
-
-const nextIdByPrefix: Map = new Map();
-function generateId(prefix: string): string {
- let nextId = nextIdByPrefix.get(prefix);
- if (nextId == null) {
- nextId = 1;
- }
- nextIdByPrefix.set(prefix, nextId + 1);
- return prefix + nextId;
-}
-
-const rootId = generateId('example-item-');
-
-function useTemporaryValue(duration: number = 2000): [?T, (?T) => void] {
- const [value, setValue] = useState(null);
-
- useEffect(() => {
- const timeoutId = setTimeout(() => {
- setValue(null);
- }, duration);
- return () => clearTimeout(timeoutId);
- // we need to set the timer every time the value changes
- }, [duration, value]);
-
- return [value, setValue];
-}
-
-function MutationObserverExample(): React.Node {
- const parentViewRef = useRef>(null);
- const [showExample, setShowExample] = useState(true);
- const theme = useContext(RNTesterThemeContext);
- const [message, setMessage] = useTemporaryValue();
-
- useEffect(() => {
- const parentNode = parentViewRef.current;
- if (!parentNode) {
- return;
- }
-
- const mutationObserver = new MutationObserver(records => {
- const messages = [];
- records.forEach(record => {
- if (record.addedNodes.length > 0) {
- console.log(
- 'MutationObserverExample: added nodes',
- nodeListToString(record.addedNodes),
- );
- messages.push(`Added nodes: ${nodeListToString(record.addedNodes)}`);
- }
- if (record.removedNodes.length > 0) {
- console.log(
- 'MutationObserverExample: removed nodes',
- nodeListToString(record.removedNodes),
- );
- messages.push(
- `Removed nodes: ${nodeListToString(record.removedNodes)}`,
- );
- }
- });
- setMessage(messages.join(',\n'));
- });
-
- // $FlowExpectedError[incompatible-call]
- mutationObserver.observe(parentNode, {
- subtree: true,
- childList: true,
- });
-
- return () => {
- console.log('MutationObserverExample: disconnecting mutation observer');
- mutationObserver.disconnect();
- nextIdByPrefix.clear();
- };
- }, [setMessage]);
-
- const exampleId = showExample ? rootId : '';
-
- return (
- <>
-
-
- {showExample ? (
- setShowExample(false)}
- />
- ) : null}
-
-
-
- {message}
-
- >
- );
-}
-
-function ExampleItem(props: {
- id: string,
- label: string,
- onRemove?: () => void,
-}): React.Node {
- const theme = useContext(RNTesterThemeContext);
- const [children, setChildren] = useState<
- $ReadOnlyArray<[string, React.Node]>,
- >([]);
-
- return (
-
- {
- props.onRemove?.();
- }}
- onPress={() => {
- const id = generateId(props.label + '-');
- setChildren(prevChildren => [
- ...prevChildren,
- [
- id,
- {
- setChildren(prevChildren2 =>
- prevChildren2.filter(pair => pair[0] !== id),
- );
- }}
- />,
- ],
- ]);
- }}>
- {props.label != null ? (
-
- {props.label}
-
- ) : null}
- {children.map(([id, child]) => child)}
-
-
- );
-}
-
-function nodeListToString(nodeList: NodeList): string {
- return [...nodeList]
- .map(
- node => (node instanceof ReadOnlyElement && node.id) || '',
- )
- .join(', ');
-}
-
-const styles = StyleSheet.create({
- parent: {
- flex: 1,
- backgroundColor: 'white',
- },
- item: {
- backgroundColor: 'rgba(0, 0, 0, 0.5)',
- flex: 1,
- gap: 16,
- minHeight: 50,
- padding: 40,
- },
- label: {
- position: 'absolute',
- top: 0,
- right: 0,
- fontSize: 10,
- },
- message: {
- padding: 10,
- },
-});
diff --git a/packages/@react-native/tester/js/examples/MutationObserver/MutationObserverIndex.js b/packages/@react-native/tester/js/examples/MutationObserver/MutationObserverIndex.js
deleted file mode 100644
index 4b619548fa3..00000000000
--- a/packages/@react-native/tester/js/examples/MutationObserver/MutationObserverIndex.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- * @flow strict-local
- * @format
- */
-
-import type {RNTesterModuleExample} from '../../types/RNTesterTypes';
-
-import * as MutationObserverExample from './MutationObserverExample';
-import * as VisualCompletionExample from './VisualCompletionExample/VisualCompletionExample';
-
-export const framework = 'React';
-export const title = 'MutationObserver';
-export const category = 'UI';
-export const documentationURL =
- 'https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver';
-export const description = 'API to detect mutations in React Native nodes.';
-export const showIndividualExamples = true;
-export const examples: Array = [MutationObserverExample];
-
-// $FlowExpectedError[cannot-resolve-name]
-if (typeof IntersectionObserver !== 'undefined') {
- examples.push(VisualCompletionExample);
-}
diff --git a/packages/@react-native/tester/js/examples/MutationObserver/VisualCompletionExample/VCOverlayExample.js b/packages/@react-native/tester/js/examples/MutationObserver/VisualCompletionExample/VCOverlayExample.js
deleted file mode 100644
index 17e9c47147f..00000000000
--- a/packages/@react-native/tester/js/examples/MutationObserver/VisualCompletionExample/VCOverlayExample.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- * @flow strict-local
- * @format
- */
-
-import type VCTracker, {VisualElement} from './VCTrackerExample';
-
-import * as React from 'react';
-import {useEffect, useState} from 'react';
-import {Dimensions, StyleSheet, View} from 'react-native';
-
-const OVERLAY_SCALE = 0.25;
-
-export default function VCOverlayExample(props: {
- vcTracker: VCTracker,
-}): React.Node {
- const [visualElements, setVisualElements] = useState<
- $ReadOnlyArray,
- >([]);
-
- useEffect(() => {
- setVisualElements(props.vcTracker.getVisualElements());
- props.vcTracker.onUpdateVisualElements(elements => {
- setVisualElements(elements);
- });
- }, [props.vcTracker]);
-
- return (
-
- {visualElements.map((visualElement, index) => (
-
- ))}
-
- );
-}
-
-const styles = StyleSheet.create({
- overlay: {
- position: 'absolute',
- bottom: 60,
- right: 10,
- width: OVERLAY_SCALE * Dimensions.get('window').width,
- height: OVERLAY_SCALE * Dimensions.get('window').height,
- backgroundColor: 'gray',
- opacity: 0.9,
- },
- overlayElement: {
- position: 'absolute',
- borderWidth: 1,
- borderColor: 'black',
- },
-});
diff --git a/packages/@react-native/tester/js/examples/MutationObserver/VisualCompletionExample/VCTrackerExample.js b/packages/@react-native/tester/js/examples/MutationObserver/VisualCompletionExample/VCTrackerExample.js
deleted file mode 100644
index 85171fe7a33..00000000000
--- a/packages/@react-native/tester/js/examples/MutationObserver/VisualCompletionExample/VCTrackerExample.js
+++ /dev/null
@@ -1,130 +0,0 @@
-/**
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- * @flow strict-local
- * @format
- */
-
-import type ReadOnlyNode from 'react-native/src/private/webapis/dom/nodes/ReadOnlyNode';
-import type DOMRectReadOnly from 'react-native/src/private/webapis/geometry/DOMRectReadOnly';
-
-import ReactNativeElement from 'react-native/src/private/webapis/dom/nodes/ReactNativeElement';
-import IntersectionObserver from 'react-native/src/private/webapis/intersectionobserver/IntersectionObserver';
-import MutationObserver from 'react-native/src/private/webapis/mutationobserver/MutationObserver';
-
-export type VisualElement = {
- time: number,
- rect: DOMRectReadOnly,
-};
-
-function debug(...args: $ReadOnlyArray): void {
- console.debug('VCTrackerExample', args);
-}
-
-export default class VCTracker {
- _navigationStartTime: number;
- _intersectionObserver: IntersectionObserver;
- _mutationObserver: MutationObserver;
- _registeredCallback: ($ReadOnlyArray) => void;
- _visualElements: Map = new Map();
- _pendingMutations: WeakSet = new WeakSet();
-
- constructor(navigationStartTime: number) {
- this._navigationStartTime = navigationStartTime;
-
- // This should be guaranteed to run before painting RootView in native.
- this._intersectionObserver = new IntersectionObserver(
- (entries, observer) => {
- // This will be executed after mount/paint.
- for (const entry of entries) {
- if (this._pendingMutations.has(entry.target)) {
- this._registerVisualElement(entry.target, {
- time: entry.time,
- rect: entry.boundingClientRect,
- });
- this._pendingMutations.delete(entry.target);
- this._intersectionObserver.unobserve(entry.target);
- }
- }
- },
- );
-
- this._mutationObserver = new MutationObserver((entries, observer) => {
- // This will be executed after layout effects, and before mount/paint.
- for (const entry of entries) {
- if (entry.addedNodes) {
- for (const addedNode of entry.addedNodes) {
- // To measure paint time for added nodes
- this._pendingMutations.add(addedNode);
- if (addedNode instanceof ReactNativeElement) {
- this._intersectionObserver.observe(addedNode);
- }
- }
- for (const removedNode of entry.removedNodes) {
- // To measure paint time for added nodes
- this._pendingMutations.delete(removedNode);
- if (removedNode instanceof ReactNativeElement) {
- this._unregisterVisualElement(removedNode);
- }
- }
- }
- }
- });
- }
-
- _registerVisualElement(
- target: ReadOnlyNode,
- visualElement: VisualElement,
- ): void {
- debug(
- 'registerVisualElement',
- (target instanceof ReactNativeElement && target.id) ||
- '',
- '. Painted in',
- (visualElement.time - this._navigationStartTime).toFixed(2),
- 'ms (at ',
- visualElement.time,
- '), rect:',
- visualElement.rect.toJSON(),
- );
-
- this._visualElements.set(target, visualElement);
- this._registeredCallback?.([...this._visualElements.values()]);
- }
-
- _unregisterVisualElement(target: ReadOnlyNode): void {
- this._visualElements.delete(target);
- this._registeredCallback?.([...this._visualElements.values()]);
- }
-
- onUpdateVisualElements(
- callback: ($ReadOnlyArray) => void,
- ): void {
- this._registeredCallback = callback;
- }
-
- addMutationRoot(rootNode: ReactNativeElement): void {
- debug('addMutationRoot', rootNode.id);
- // To observe new nodes added.
- this._mutationObserver.observe(rootNode, {
- subtree: true,
- childList: true,
- });
- this._pendingMutations.add(rootNode);
-
- // To measure initial paint.
- this._intersectionObserver.observe(rootNode);
- }
-
- getVisualElements(): $ReadOnlyArray {
- return [...this._visualElements.values()];
- }
-
- disconnect(): void {
- this._mutationObserver.disconnect();
- this._intersectionObserver.disconnect();
- }
-}
diff --git a/packages/@react-native/tester/js/examples/MutationObserver/VisualCompletionExample/VisualCompletionExample.js b/packages/@react-native/tester/js/examples/MutationObserver/VisualCompletionExample/VisualCompletionExample.js
deleted file mode 100644
index 5a7303070f6..00000000000
--- a/packages/@react-native/tester/js/examples/MutationObserver/VisualCompletionExample/VisualCompletionExample.js
+++ /dev/null
@@ -1,188 +0,0 @@
-/**
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- * @flow strict-local
- * @format
- */
-
-import {RNTesterThemeContext} from '../../../components/RNTesterTheme';
-import VCOverlay from './VCOverlayExample';
-import VCTracker from './VCTrackerExample';
-import nullthrows from 'nullthrows';
-import * as React from 'react';
-import {useContext, useEffect} from 'react';
-import {
- ActivityIndicator,
- ScrollView,
- StyleSheet,
- Text,
- View,
-} from 'react-native';
-import ReactNativeElement from 'react-native/src/private/webapis/dom/nodes/ReactNativeElement';
-
-export const name = 'Visual Completion Example';
-export const title = name;
-export const description =
- 'Example of use of MutationObserver and IntersectionObserver together to track rendering performance.';
-
-export function render(): React.Node {
- // We should use the time of the touch up event that lead to this navigation,
- // but we don't have that set up.
- const navigationStartTime = performance.now();
- const vcTracker = new VCTracker(navigationStartTime);
- return ;
-}
-
-/**
- * We are going to track the visual completion of this component, which uses
- * suspense and renders a complex tree in multiple steps.
- */
-function VisualCompletionExample(props: {vcTracker: VCTracker}): React.Node {
- useEffect(() => {
- return () => props.vcTracker.disconnect();
- }, [props.vcTracker]);
-
- return (
- <>
-
-
- >
- );
-}
-
-function VisualCompletionExampleScreen(props: {
- vcTracker: VCTracker,
-}): React.Node {
- const theme = useContext(RNTesterThemeContext);
-
- return (
- {
- if (node != null) {
- // $FlowExpectedError[incompatible-type]
- const element: ReactNativeElement = node;
- props.vcTracker.addMutationRoot(element);
- }
- }}>
-
-
-
-
-
- }>
-
-
-
- }>
-
-
- Heading
-
-
-
- }>
-
-
-
-
-
- {LONG_TEXT}
-
-
-
-
-
-
-
-
- );
-}
-
-function ForceSuspense(props: {
- queryID: string,
- delay: number,
- children: React.Node,
-}): React.Node {
- useForceSuspense(props.queryID, props.delay);
- return props.children;
-}
-
-let lastQueryID = 0;
-function generateQueryID() {
- lastQueryID++;
- return 'query-id-' + lastQueryID;
-}
-
-const styles = StyleSheet.create({
- root: {
- flex: 1,
- },
- header: {
- padding: 10,
- backgroundColor: 'gray',
- },
- title: {
- textAlign: 'center',
- fontSize: 20,
- },
- body: {
- flex: 1,
- padding: 10,
- },
- heading: {
- fontSize: 16,
- },
- bodyContent: {
- width: 100,
- height: 100,
- backgroundColor: 'blue',
- margin: 50,
- },
- footer: {
- padding: 10,
- backgroundColor: 'gray',
- },
-});
-
-const store: Map, resolved: boolean}> =
- new Map();
-
-function useForceSuspense(queryID: string, delay: number): void {
- let entry = store.get(queryID);
- if (!entry) {
- entry = {
- resolved: false,
- promise: new Promise(resolve => {
- setTimeout(() => {
- nullthrows(entry).resolved = true;
- resolve();
- }, delay);
- }),
- };
- store.set(queryID, entry);
- }
-
- if (!entry.resolved) {
- throw entry.promise;
- }
-}
-
-const LONG_TEXT =
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas facilisis feugiat ipsum, non placerat nulla. Vestibulum tincidunt eu dui ut bibendum. Cras risus ex, rhoncus auctor velit ut, lobortis convallis turpis. Donec rutrum imperdiet ante, vitae accumsan velit convallis non. Suspendisse feugiat egestas lectus. In eget fringilla ligula, at vehicula orci. Cras laoreet hendrerit urna, sed tincidunt dolor consectetur dapibus.\n'.repeat(
- 10,
- );
diff --git a/packages/@react-native/tester/js/examples/NewAppScreen/NewAppScreenExample.js b/packages/@react-native/tester/js/examples/NewAppScreen/NewAppScreenExample.js
deleted file mode 100644
index b53e4a30420..00000000000
--- a/packages/@react-native/tester/js/examples/NewAppScreen/NewAppScreenExample.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- * @format
- * @flow
- */
-
-'use strict';
-
-const React = require('react');
-const {View} = require('react-native');
-const {
- Colors,
- DebugInstructions,
- Header,
- LearnMoreLinks,
- ReloadInstructions,
-} = require('react-native/Libraries/NewAppScreen');
-
-exports.title = 'New App Screen';
-exports.description = 'Displays the content of the new app screen';
-exports.examples = [
- {
- title: 'New App Screen Header',
- description: 'Displays a welcome to building a React Native app',
- render(): React.MixedElement {
- return (
-
-
-
- );
- },
- },
- {
- title: 'Learn More Links',
- description:
- 'Learn more about the tools and techniques for building React Native apps.',
- render(): React.MixedElement {
- return ;
- },
- },
- {
- title: 'New App Screen Colors',
- description: 'Consistent colors to use throughout the new app screen.',
- render(): React.MixedElement {
- return (
-
- {Object.keys(Colors).map(key => (
-
- ))}
-
- );
- },
- },
- {
- title: 'Debug Instructions',
- description:
- 'Platform-specific instructions on how to start debugging a React Native app.',
- render(): React.MixedElement {
- return ;
- },
- },
- {
- title: 'Reload Instructions',
- description:
- 'Platform-specific instructions on how to reload a React Native app.',
- render(): React.MixedElement {
- return ;
- },
- },
-];
diff --git a/packages/@react-native/tester/js/examples/Performance/PerformanceApiExample.js b/packages/@react-native/tester/js/examples/Performance/PerformanceApiExample.js
deleted file mode 100644
index 9e9576ef3e6..00000000000
--- a/packages/@react-native/tester/js/examples/Performance/PerformanceApiExample.js
+++ /dev/null
@@ -1,276 +0,0 @@
-/**
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- * @format
- * @flow strict-local
- * @oncall react_native
- */
-
-import type {RNTesterModuleExample} from '../../types/RNTesterTypes';
-import type MemoryInfo from 'react-native/src/private/webapis/performance/MemoryInfo';
-import type ReactNativeStartupTiming from 'react-native/src/private/webapis/performance/ReactNativeStartupTiming';
-
-import RNTesterText from '../../components/RNTesterText';
-import * as React from 'react';
-import {useEffect} from 'react';
-import {Button, StyleSheet, View} from 'react-native';
-import Performance from 'react-native/src/private/webapis/performance/Performance';
-import {
- type PerformanceEntry,
- type PerformanceEventTiming,
- PerformanceObserver,
-} from 'react-native/src/private/webapis/performance/PerformanceObserver';
-
-const {useState, useCallback} = React;
-const performance = new Performance();
-
-function MemoryExample(): React.Node {
- // Memory API testing
- const [memoryInfo, setMemoryInfo] = useState(null);
- const onGetMemoryInfo = useCallback(() => {
- // performance.memory is not included in bom.js yet.
- // Once we release the change in flow this can be removed.
- setMemoryInfo(performance.memory);
- }, []);
- return (
-
-
-
-
- {`jsHeapSizeLimit: ${String(memoryInfo?.jsHeapSizeLimit)} bytes`}
-
-
- {`totalJSHeapSize: ${String(memoryInfo?.totalJSHeapSize)} bytes`}
-
-
- {`usedJSHeapSize: ${String(memoryInfo?.usedJSHeapSize)} bytes`}
-
-
-
- );
-}
-
-function StartupTimingExample(): React.Node {
- // React Startup Timing API testing
- const [startUpTiming, setStartUpTiming] =
- useState(null);
- const onGetStartupTiming = useCallback(() => {
- // performance.reactNativeStartupTiming is not included in bom.js yet.
- // Once we release the change in flow this can be removed.
- setStartUpTiming(performance.rnStartupTiming);
- }, []);
- return (
-
-
-
- {`startTime: ${String(startUpTiming?.startTime)} ms`}
- {`initializeRuntimeStart: ${String(
- startUpTiming?.initializeRuntimeStart,
- )} ms`}
-
- {`executeJavaScriptBundleEntryPointStart: ${String(
- startUpTiming?.executeJavaScriptBundleEntryPointStart,
- )} ms`}
-
- {`executeJavaScriptBundleEntryPointEnd: ${String(
- startUpTiming?.executeJavaScriptBundleEntryPointEnd,
- )} ms`}
- {`initializeRuntimeEnd: ${String(
- startUpTiming?.initializeRuntimeEnd,
- )} ms`}
- {`endTime: ${String(startUpTiming?.endTime)} ms`}
-
-
- );
-}
-
-function PerformanceObserverUserTimingExample(): React.Node {
- const [entries, setEntries] = useState<$ReadOnlyArray>([]);
-
- useEffect(() => {
- const observer = new PerformanceObserver(list => {
- const newEntries = list
- .getEntries()
- .filter(entry => entry.name.startsWith('rntester-'));
- if (newEntries.length > 0) {
- setEntries(newEntries);
- }
- });
-
- observer.observe({entryTypes: ['mark', 'measure']});
-
- return () => observer.disconnect();
- }, []);
-
- const onPress = useCallback(() => {
- performance.mark('rntester-mark1');
- performance.mark('rntester-mark2');
- performance.measure(
- 'rntester-measure1',
- 'rntester-mark1',
- 'rntester-mark2',
- );
- }, []);
-
- return (
-
-
-
- {entries.map((entry, index) =>
- entry.entryType === 'mark' ? (
-
- Mark {entry.name}: {entry.startTime.toFixed(2)}
-
- ) : (
-
- Measure {entry.name}: {entry.startTime.toFixed(2)} -{' '}
- {(entry.startTime + entry.duration).toFixed(2)} (
- {entry.duration.toFixed(2)}ms)
-
- ),
- )}
-
-
- );
-}
-
-function PerformanceObserverEventTimingExample(): React.Node {
- const [count, setCount] = useState(0);
-
- const [entries, setEntries] = useState<
- $ReadOnlyArray,
- >([]);
-
- useEffect(() => {
- const observer = new PerformanceObserver(list => {
- const newEntries: $ReadOnlyArray =
- // $FlowExpectedError[incompatible-type] This is guaranteed because we're only observing `event` entry types.
- list.getEntries();
- setEntries(newEntries);
- });
-
- observer.observe({type: 'event'});
-
- return () => observer.disconnect();
- }, []);
-
- const onPress = useCallback(() => {
- busyWait(500);
- // Force a state update to show how/if we're reporting paint times as well.
- setCount(currentCount => currentCount + 1);
- }, []);
-
- return (
-
-
-
- {entries.map((entry, index) => (
-
- Event: {entry.name}
- {'\n'}
- Start: {entry.startTime.toFixed(2)}
- {'\n'}
- End: {(entry.startTime + entry.duration).toFixed(2)}
- {'\n'}
- Duration: {entry.duration.toFixed(2)}ms{'\n'}
- Processing start: {entry.processingStart.toFixed(2)} (delay:{' '}
- {(entry.processingStart - entry.startTime).toFixed(2)}ms){'\n'}
- Processing end: {entry.processingEnd.toFixed(2)} (duration:{' '}
- {(entry.processingEnd - entry.processingStart).toFixed(2)}ms){'\n'}
-
- ))}
-
-
- );
-}
-
-function PerformanceObserverLongtaskExample(): React.Node {
- const [entries, setEntries] = useState<$ReadOnlyArray>([]);
-
- useEffect(() => {
- const observer = new PerformanceObserver(list => {
- setEntries(list.getEntries());
- });
-
- observer.observe({entryTypes: ['longtask']});
-
- return () => observer.disconnect();
- }, []);
-
- const onPress = useCallback(() => {
- // Wait 1s to force a long task
- busyWait(1000);
- }, []);
-
- return (
-
-
-
- {entries.map((entry, index) => (
-
- Long task {entry.name}: {entry.startTime} -{' '}
- {entry.startTime + entry.duration} ({entry.duration}ms)
-
- ))}
-
-
- );
-}
-
-function busyWait(ms: number): void {
- const end = performance.now() + ms;
- while (performance.now() < end) {}
-}
-
-const styles = StyleSheet.create({
- container: {
- padding: 10,
- },
-});
-
-export const title = 'Performance API Examples';
-export const category = 'Basic';
-export const description = 'Shows the performance API provided in React Native';
-export const examples: Array = ([
- {
- title: 'performance.memory',
- render: (): React.Node => {
- return ;
- },
- },
- {
- title: 'performance.reactNativeStartupTiming',
- render: (): React.Node => {
- return ;
- },
- },
- {
- title: 'PerformanceObserver (marks and measures)',
- render: (): React.Node => {
- return ;
- },
- },
- {
- title: 'PerformanceObserver (events)',
- render: (): React.Node => {
- return ;
- },
- },
- PerformanceObserver.supportedEntryTypes.includes('longtask')
- ? {
- title: 'PerformanceObserver (long tasks)',
- render: (): React.Node => {
- return ;
- },
- }
- : null,
-]: Array).filter(Boolean);
diff --git a/packages/@react-native/tester/js/examples/Performance/components/ItemList.js b/packages/@react-native/tester/js/examples/Performance/components/ItemList.js
index 600311b2897..33c6ca24735 100644
--- a/packages/@react-native/tester/js/examples/Performance/components/ItemList.js
+++ b/packages/@react-native/tester/js/examples/Performance/components/ItemList.js
@@ -12,7 +12,7 @@
'use strict';
import type {ItemDataType} from './itemData';
-import type {ScrollEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {ScrollEvent} from 'react-native';
import * as React from 'react';
import {FlatList, ScrollView, StyleSheet, Text, View} from 'react-native';
diff --git a/packages/@react-native/tester/js/examples/Performance/performanceComparisonExamples/ReRenderWithNonPureChildExample.js b/packages/@react-native/tester/js/examples/Performance/performanceComparisonExamples/ReRenderWithNonPureChildExample.js
index c481466ec98..58b81f9e0aa 100644
--- a/packages/@react-native/tester/js/examples/Performance/performanceComparisonExamples/ReRenderWithNonPureChildExample.js
+++ b/packages/@react-native/tester/js/examples/Performance/performanceComparisonExamples/ReRenderWithNonPureChildExample.js
@@ -11,7 +11,7 @@
'use strict';
-import type {ScrollEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {ScrollEvent} from 'react-native';
import {LIST_100_ITEMS} from '../components/itemData';
import ItemList from '../components/ItemList';
diff --git a/packages/@react-native/tester/js/examples/Performance/performanceComparisonExamples/ReRenderWithObjectPropExample.js b/packages/@react-native/tester/js/examples/Performance/performanceComparisonExamples/ReRenderWithObjectPropExample.js
index 9da14b10054..fd11f96d320 100644
--- a/packages/@react-native/tester/js/examples/Performance/performanceComparisonExamples/ReRenderWithObjectPropExample.js
+++ b/packages/@react-native/tester/js/examples/Performance/performanceComparisonExamples/ReRenderWithObjectPropExample.js
@@ -11,7 +11,7 @@
'use strict';
-import type {ScrollEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {ScrollEvent} from 'react-native';
import {LIST_100_ITEMS} from '../components/itemData';
import ItemList from '../components/ItemList';
diff --git a/packages/@react-native/tester/js/examples/PermissionsAndroid/PermissionsExample.js b/packages/@react-native/tester/js/examples/PermissionsAndroid/PermissionsExample.js
index 8147950328c..c8fd8fb92d5 100644
--- a/packages/@react-native/tester/js/examples/PermissionsAndroid/PermissionsExample.js
+++ b/packages/@react-native/tester/js/examples/PermissionsAndroid/PermissionsExample.js
@@ -10,7 +10,7 @@
'use strict';
-import type {Permission} from 'react-native/Libraries/PermissionsAndroid/PermissionsAndroid';
+import type {Permission} from 'react-native';
import RNTesterButton from '../../components/RNTesterButton';
import RNTesterText from '../../components/RNTesterText';
diff --git a/packages/@react-native/tester/js/examples/PlatformColor/PlatformColorExample.js b/packages/@react-native/tester/js/examples/PlatformColor/PlatformColorExample.js
index 82a3970d727..5210c6d78cf 100644
--- a/packages/@react-native/tester/js/examples/PlatformColor/PlatformColorExample.js
+++ b/packages/@react-native/tester/js/examples/PlatformColor/PlatformColorExample.js
@@ -10,8 +10,13 @@
import RNTesterText from '../../components/RNTesterText';
import React from 'react';
-import {DynamicColorIOS, PlatformColor, StyleSheet, View} from 'react-native';
-import Platform from 'react-native/Libraries/Utilities/Platform';
+import {
+ DynamicColorIOS,
+ Platform,
+ PlatformColor,
+ StyleSheet,
+ View,
+} from 'react-native';
function PlatformColorsExample() {
function createTable() {
diff --git a/packages/@react-native/tester/js/examples/SectionList/SectionList-scrollable.js b/packages/@react-native/tester/js/examples/SectionList/SectionList-scrollable.js
index 41568986ecc..6a1bd9806fd 100644
--- a/packages/@react-native/tester/js/examples/SectionList/SectionList-scrollable.js
+++ b/packages/@react-native/tester/js/examples/SectionList/SectionList-scrollable.js
@@ -11,7 +11,7 @@
'use strict';
import type {Item} from '../../components/ListExampleShared';
-import type {SectionBase} from 'react-native/Libraries/Lists/SectionList';
+import type {SectionBase} from 'react-native';
import {
FooterComponent,
diff --git a/packages/@react-native/tester/js/examples/Snapshot/SnapshotViewIOS.ios.js b/packages/@react-native/tester/js/examples/Snapshot/SnapshotViewIOS.ios.js
index 22f43a5f171..ee8ed605ae9 100644
--- a/packages/@react-native/tester/js/examples/Snapshot/SnapshotViewIOS.ios.js
+++ b/packages/@react-native/tester/js/examples/Snapshot/SnapshotViewIOS.ios.js
@@ -10,8 +10,7 @@
'use strict';
-import type {ViewProps} from 'react-native/Libraries/Components/View/ViewPropTypes';
-import type {NativeSyntheticEvent} from 'react-native/Libraries/Types/CoreEventTypes';
+import type {NativeSyntheticEvent, ViewProps} from 'react-native';
const React = require('react');
const {NativeModules, StyleSheet, UIManager, View} = require('react-native');
diff --git a/packages/@react-native/tester/js/examples/SwipeableCardExample/SwipeableCardExample.js b/packages/@react-native/tester/js/examples/SwipeableCardExample/SwipeableCardExample.js
index 01839aeff94..ffc872314b2 100644
--- a/packages/@react-native/tester/js/examples/SwipeableCardExample/SwipeableCardExample.js
+++ b/packages/@react-native/tester/js/examples/SwipeableCardExample/SwipeableCardExample.js
@@ -8,7 +8,7 @@
* @format
*/
-import type {ListRenderItemInfo} from 'react-native/Libraries/Lists/VirtualizedList';
+import type {ListRenderItemInfo} from 'react-native';
import * as React from 'react';
import {
diff --git a/packages/@react-native/tester/js/examples/TextInput/TextInputExample.ios.js b/packages/@react-native/tester/js/examples/TextInput/TextInputExample.ios.js
index c2004ddcb87..28eaa39d487 100644
--- a/packages/@react-native/tester/js/examples/TextInput/TextInputExample.ios.js
+++ b/packages/@react-native/tester/js/examples/TextInput/TextInputExample.ios.js
@@ -14,7 +14,7 @@ import type {
RNTesterModule,
RNTesterModuleExample,
} from '../../types/RNTesterTypes';
-import type {KeyboardTypeOptions} from 'react-native/Libraries/Components/TextInput/TextInput';
+import type {KeyboardTypeOptions} from 'react-native';
import RNTesterText from '../../components/RNTesterText';
import ExampleTextInput from './ExampleTextInput';
diff --git a/packages/@react-native/tester/js/examples/TextInput/TextInputSharedExamples.js b/packages/@react-native/tester/js/examples/TextInput/TextInputSharedExamples.js
index b9e333cae7a..f3e62a45532 100644
--- a/packages/@react-native/tester/js/examples/TextInput/TextInputSharedExamples.js
+++ b/packages/@react-native/tester/js/examples/TextInput/TextInputSharedExamples.js
@@ -11,7 +11,7 @@
'use strict';
import type {RNTesterModuleExample} from '../../types/RNTesterTypes';
-import type {TextStyle} from 'react-native/Libraries/StyleSheet/StyleSheet';
+import type {TextStyle} from 'react-native';
import RNTesterButton from '../../components/RNTesterButton';
import RNTesterText from '../../components/RNTesterText';
diff --git a/packages/@react-native/tester/js/examples/TurboModule/NativeCxxModuleExampleExample.js b/packages/@react-native/tester/js/examples/TurboModule/NativeCxxModuleExampleExample.js
index 8b203ce4054..baefaf1f681 100644
--- a/packages/@react-native/tester/js/examples/TurboModule/NativeCxxModuleExampleExample.js
+++ b/packages/@react-native/tester/js/examples/TurboModule/NativeCxxModuleExampleExample.js
@@ -8,8 +8,7 @@
* @flow strict-local
*/
-import type {RootTag} from 'react-native/Libraries/ReactNative/RootTag';
-import type {EventSubscription} from 'react-native/Libraries/vendor/emitter/EventEmitter';
+import type {EventSubscription, RootTag} from 'react-native';
import NativeCxxModuleExample, {
EnumInt,
diff --git a/packages/@react-native/tester/js/examples/TurboModule/SampleLegacyModuleExample.js b/packages/@react-native/tester/js/examples/TurboModule/SampleLegacyModuleExample.js
index 503d93c6fa2..0944d1acf10 100644
--- a/packages/@react-native/tester/js/examples/TurboModule/SampleLegacyModuleExample.js
+++ b/packages/@react-native/tester/js/examples/TurboModule/SampleLegacyModuleExample.js
@@ -8,7 +8,7 @@
* @flow strict-local
*/
-import type {RootTag} from 'react-native/Libraries/ReactNative/RootTag';
+import type {RootTag} from 'react-native';
import RNTesterText from '../../components/RNTesterText';
import styles from './TurboModuleExampleCommon';
diff --git a/packages/@react-native/tester/js/examples/TurboModule/SampleTurboModuleExample.js b/packages/@react-native/tester/js/examples/TurboModule/SampleTurboModuleExample.js
index 2519c72e66e..dbefd3055f2 100644
--- a/packages/@react-native/tester/js/examples/TurboModule/SampleTurboModuleExample.js
+++ b/packages/@react-native/tester/js/examples/TurboModule/SampleTurboModuleExample.js
@@ -8,8 +8,7 @@
* @flow strict-local
*/
-import type {RootTag} from 'react-native/Libraries/ReactNative/RootTag';
-import type {EventSubscription} from 'react-native/Libraries/vendor/emitter/EventEmitter';
+import type {EventSubscription, RootTag} from 'react-native';
import RNTesterText from '../../components/RNTesterText';
import styles from './TurboModuleExampleCommon';
diff --git a/packages/@react-native/tester/overrides.json b/packages/@react-native/tester/overrides.json
index aa1480d368d..db3531af99d 100644
--- a/packages/@react-native/tester/overrides.json
+++ b/packages/@react-native/tester/overrides.json
@@ -1,5 +1,5 @@
{
- "baseVersion": "0.80.0-nightly-20250428-9efcdc091",
+ "baseVersion": "0.80.0-nightly-20250506-3ac16dd6a",
"overrides": [
{
"type": "copy",
@@ -12,14 +12,14 @@
"type": "copy",
"directory": "js/components",
"baseDirectory": "packages/rn-tester/js/components",
- "baseHash": "a3c1d060354c35c7f881a160af3a5fe12e44a248",
+ "baseHash": "733be94f82fc7a7dbf24fc09afa79597c26b2a53",
"issue": 4054
},
{
"type": "copy",
"directory": "js/examples/Accessibility",
"baseDirectory": "packages/rn-tester/js/examples/Accessibility",
- "baseHash": "87660899e92c56eb75445a679c9b380683f524a3",
+ "baseHash": "9ad5bec8942351ffd651632a7629581722f035cb",
"issue": 4054
},
{
@@ -54,14 +54,14 @@
"type": "copy",
"directory": "js/examples/AnimatedGratuitousApp",
"baseDirectory": "packages/rn-tester/js/examples/AnimatedGratuitousApp",
- "baseHash": "ac4e5fc05ccc16a740867ea59a0a60c8f98acef1",
+ "baseHash": "27c1dbb8fe73acc6c4397789f7b6b01e6288fac3",
"issue": 4054
},
{
"type": "copy",
"directory": "js/examples/Appearance",
"baseDirectory": "packages/rn-tester/js/examples/Appearance",
- "baseHash": "1618e86a25df2f8104467c9ef48ccbae9f61b320",
+ "baseHash": "bdb5d6a9c497a3a1098b6e5c0c19f4e5d0aa650c",
"issue": 4054
},
{
@@ -145,7 +145,7 @@
"type": "copy",
"directory": "js/examples/Experimental",
"baseDirectory": "packages/rn-tester/js/examples/Experimental",
- "baseHash": "34462179028828cfa80634d326cdff7415df26e2",
+ "baseHash": "c78c895640567ade579aa800a41a008334ab603c",
"issue": 4054
},
{
@@ -159,14 +159,14 @@
"type": "copy",
"directory": "js/examples/FlatList",
"baseDirectory": "packages/rn-tester/js/examples/FlatList",
- "baseHash": "6c42401f603681fc27a072bbbe9bc249f437082f",
+ "baseHash": "873f394a0b0f159b0d89f461814aeef68d0891ac",
"issue": 4054
},
{
"type": "copy",
"directory": "js/examples/Image",
"baseDirectory": "packages/rn-tester/js/examples/Image",
- "baseHash": "9df3036794e251a8fadc4c153f6a17d076ff5bf0",
+ "baseHash": "9f9b71f8490ecac737d4eff9b6b5092aed2ab281",
"issue": 4054
},
{
@@ -176,13 +176,6 @@
"baseHash": "3786b55aa9476b0460b6f8f7ba4ca281945bc399",
"issue": 4054
},
- {
- "type": "copy",
- "directory": "js/examples/IntersectionObserver",
- "baseDirectory": "packages/rn-tester/js/examples/IntersectionObserver",
- "baseHash": "6474162bb9c7e116ffd4f062a549a7d79cc395f8",
- "issue": 4054
- },
{
"type": "copy",
"directory": "js/examples/InvalidProps",
@@ -201,7 +194,7 @@
"type": "copy",
"directory": "js/examples/Keyboard",
"baseDirectory": "packages/rn-tester/js/examples/Keyboard",
- "baseHash": "cc35bc198910a09009757649e6b592d5615204f6",
+ "baseHash": "c97b0047f8799cdeb0429d4557786b654552944c",
"issue": 4054
},
{
@@ -243,14 +236,7 @@
"type": "copy",
"directory": "js/examples/Modal",
"baseDirectory": "packages/rn-tester/js/examples/Modal",
- "baseHash": "6f7b3e5f779970df44071279b741476f194e38d4",
- "issue": 4054
- },
- {
- "type": "copy",
- "directory": "js/examples/MutationObserver",
- "baseDirectory": "packages/rn-tester/js/examples/MutationObserver",
- "baseHash": "7a5beec3f7ec8418eea64f8e155d475d2ae0f62f",
+ "baseHash": "3f9ebfeb7e1389eefe51b0ed22465a36484fcd0e",
"issue": 4054
},
{
@@ -260,13 +246,6 @@
"baseHash": "511912caab1a4ca976b70e23d31508dd3c060cd9",
"issue": 4054
},
- {
- "type": "copy",
- "directory": "js/examples/NewAppScreen",
- "baseDirectory": "packages/rn-tester/js/examples/NewAppScreen",
- "baseHash": "fc8f3f970afd6b2ab2a37de4c6d60f92cc15577e",
- "issue": 4054
- },
{
"type": "copy",
"directory": "js/examples/NewArchitecture",
@@ -299,13 +278,13 @@
"type": "copy",
"directory": "js/examples/Performance",
"baseDirectory": "packages/rn-tester/js/examples/Performance",
- "baseHash": "92bfefb1a48b340fb9728044cd7647464e357997"
+ "baseHash": "02493cc3b5da3e7360380e76f3bf8a38e749c1d5"
},
{
"type": "copy",
"directory": "js/examples/PermissionsAndroid",
"baseDirectory": "packages/rn-tester/js/examples/PermissionsAndroid",
- "baseHash": "26cf38c650e6a5a123e66f16f0eaa2abcddb2c99",
+ "baseHash": "85f13dace4f486b5fc6bd476052bdd16f501c5e6",
"issue": 4054
},
{
@@ -319,7 +298,7 @@
"type": "copy",
"directory": "js/examples/PlatformColor",
"baseDirectory": "packages/rn-tester/js/examples/PlatformColor",
- "baseHash": "a6f88855fa09e7cfab6ece823b6e41a9c8c97ab0",
+ "baseHash": "9b3ccfdda59115536f062cae09f58a6955f9aecc",
"issue": 4054
},
{
@@ -396,7 +375,7 @@
"type": "copy",
"directory": "js/examples/SectionList",
"baseDirectory": "packages/rn-tester/js/examples/SectionList",
- "baseHash": "c5c9b64b7678f873888676140afd0dff1890be4a",
+ "baseHash": "c8bbef6b49ebcd74a152f4d5880fff3884185afa",
"issue": 4054
},
{
@@ -417,7 +396,7 @@
"type": "copy",
"directory": "js/examples/Snapshot",
"baseDirectory": "packages/rn-tester/js/examples/Snapshot",
- "baseHash": "ff7219b5d29b096329d0f440219c3cdf3d4bb6de",
+ "baseHash": "f98f7b2b775c517c0c4e3365453628e36babcd90",
"issue": 4054
},
{
@@ -431,7 +410,7 @@
"type": "copy",
"directory": "js/examples/SwipeableCardExample",
"baseDirectory": "packages/rn-tester/js/examples/SwipeableCardExample",
- "baseHash": "0d5b9bb8e9196c9655d149f11ed5128f6c92b59d",
+ "baseHash": "3d29f97ce8ece71848ee1849d9357c9d5431484b",
"issue": 4054
},
{
@@ -466,7 +445,7 @@
"type": "copy",
"file": "js/examples/TextInput/TextInputExample.ios.js",
"baseFile": "packages/rn-tester/js/examples/TextInput/TextInputExample.ios.js",
- "baseHash": "174f5038a7e38cee2f35393c47396a0581cb9f66",
+ "baseHash": "08c15ffc55a4e51c40d874739e5115e110e6112c",
"issue": 14292
},
{
@@ -487,7 +466,7 @@
"type": "patch",
"file": "js/examples/TextInput/TextInputSharedExamples.js",
"baseFile": "packages/rn-tester/js/examples/TextInput/TextInputSharedExamples.js",
- "baseHash": "4bd0a0fa18caececea50d0fbbe0044a56c5efc54",
+ "baseHash": "d99f7475f11f58e4f17cc0ce374a600841970497",
"issue": 14291
},
{
@@ -529,7 +508,7 @@
"type": "copy",
"directory": "js/examples/TurboModule",
"baseDirectory": "packages/rn-tester/js/examples/TurboModule",
- "baseHash": "7678edc69844558af53080cfdd7426bf2caad6da",
+ "baseHash": "6b267098024fd237b4fafba827871decbf6e2f86",
"issue": 4054
},
{
@@ -598,14 +577,14 @@
"type": "patch",
"file": "js/utils/RNTesterList.android.js",
"baseFile": "packages/rn-tester/js/utils/RNTesterList.android.js",
- "baseHash": "3b5c8bcdee69293ddce0d515300504979e36f87a",
+ "baseHash": "aded9dd37f3ac325aa1cc095f6d217114c45a8b9",
"issue": 13228
},
{
"type": "patch",
"file": "js/utils/RNTesterList.ios.js",
"baseFile": "packages/rn-tester/js/utils/RNTesterList.ios.js",
- "baseHash": "6f316997cd9e03c2266da9ae525241fc41213148",
+ "baseHash": "1f5aafb1dd9a476bd9df3a4e2b61af1b4c529b02",
"issue": 13228
},
{
@@ -647,28 +626,28 @@
"type": "copy",
"file": "NativeComponentExample/js/MyNativeViewNativeComponent.js",
"baseFile": "packages/rn-tester/NativeComponentExample/js/MyNativeViewNativeComponent.js",
- "baseHash": "7b762cd4e4bd11dae3de515e2aeb0e7b1b660dd7",
+ "baseHash": "0c70f1762cdfcaaa1bacbbc1546923e1963522cc",
"issue": 4054
},
{
"type": "copy",
"file": "NativeCxxModuleExample/NativeCxxModuleExample.js",
"baseFile": "packages/rn-tester/NativeCxxModuleExample/NativeCxxModuleExample.js",
- "baseHash": "48855163ebb3d9a07f341aa59da9a1fff3c0f87f",
+ "baseHash": "58880f07cabb09d297027d55ac3e3dacd4e9bd7d",
"issue": 4054
},
{
"type": "copy",
"file": "NativeModuleExample/NativeScreenshotManager.js",
"baseFile": "packages/rn-tester/NativeModuleExample/NativeScreenshotManager.js",
- "baseHash": "a4c34cbf3e97fb65dab6b7db48943fef15229b19",
+ "baseHash": "8eeff755fab7fa507c7663e3681963579f19d900",
"issue": 4054
},
{
"type": "patch",
"file": "package.json",
"baseFile": "packages/rn-tester/package.json",
- "baseHash": "72cf324cfe7a5497db80a8dd316349226228f879",
+ "baseHash": "3af616982c931030604434c83e8d3503414c0fb8",
"issue": 13228
},
{
@@ -681,7 +660,7 @@
"type": "copy",
"file": "ReportFullyDrawnView/ReportFullyDrawnViewNativeComponent.js",
"baseFile": "packages/rn-tester/ReportFullyDrawnView/ReportFullyDrawnViewNativeComponent.js",
- "baseHash": "6bf9a8a646111c9613a511281686d8cec6c964ca"
+ "baseHash": "8b8f62b9569d815fa20720d22b9a259ad7fba00c"
}
]
}
\ No newline at end of file
diff --git a/packages/@react-native/tester/package.json b/packages/@react-native/tester/package.json
index 1ce91124ff3..b3308ef8341 100644
--- a/packages/@react-native/tester/package.json
+++ b/packages/@react-native/tester/package.json
@@ -26,7 +26,7 @@
"e2e-test-ios": "./scripts/maestro-test-ios.sh"
},
"dependencies": {
- "@react-native/popup-menu-android": "0.80.0-nightly-20250428-9efcdc091",
+ "@react-native/popup-menu-android": "0.80.0-nightly-20250506-3ac16dd6a",
"flow-enums-runtime": "^0.0.6",
"invariant": "^2.2.4",
"nullthrows": "^1.1.1"
diff --git a/packages/@rnw-scripts/babel-react-native-config/package.json b/packages/@rnw-scripts/babel-react-native-config/package.json
index 53ad1ae286e..c436381337d 100644
--- a/packages/@rnw-scripts/babel-react-native-config/package.json
+++ b/packages/@rnw-scripts/babel-react-native-config/package.json
@@ -11,16 +11,16 @@
},
"dependencies": {
"@babel/core": "^7.25.2",
- "@react-native/babel-preset": "0.80.0-nightly-20250428-9efcdc091",
+ "@react-native/babel-preset": "0.80.0-nightly-20250506-3ac16dd6a",
"babel-plugin-transform-flow-enums": "^0.0.2"
},
"devDependencies": {
"@babel/core": "^7.25.2",
- "@react-native/babel-preset": "0.80.0-nightly-20250428-9efcdc091",
+ "@react-native/babel-preset": "0.80.0-nightly-20250506-3ac16dd6a",
"eslint": "^8.19.0",
"prettier": "2.8.8"
},
"engines": {
"node": ">= 18"
}
-}
\ No newline at end of file
+}
diff --git a/packages/@rnw-scripts/metro-dev-config/package.json b/packages/@rnw-scripts/metro-dev-config/package.json
index c31a84c1aab..09e96b9050c 100644
--- a/packages/@rnw-scripts/metro-dev-config/package.json
+++ b/packages/@rnw-scripts/metro-dev-config/package.json
@@ -17,7 +17,7 @@
"lint:fix": "rnw-scripts lint:fix"
},
"dependencies": {
- "@react-native/metro-config": "0.80.0-nightly-20250428-9efcdc091",
+ "@react-native/metro-config": "0.80.0-nightly-20250506-3ac16dd6a",
"@rnx-kit/metro-config": "^1.3.5",
"@rnx-kit/metro-plugin-duplicates-checker": "^2.1.0",
"@rnx-kit/metro-serializer": "^1.0.11",
diff --git a/packages/e2e-test-app-fabric/package.json b/packages/e2e-test-app-fabric/package.json
index a230dc8e8fd..69075dd9e9e 100644
--- a/packages/e2e-test-app-fabric/package.json
+++ b/packages/e2e-test-app-fabric/package.json
@@ -16,11 +16,11 @@
"dependencies": {
"@react-native-windows/automation-channel": "^0.12.315",
"@react-native-windows/tester": "0.0.1",
- "@types/react": "^19.0.0",
+ "@types/react": "^19.1.0",
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
"react": "^19.1.0",
- "react-native": "0.80.0-nightly-20250428-9efcdc091",
+ "react-native": "0.80.0-nightly-20250506-3ac16dd6a",
"react-native-windows": "^0.0.0-canary.975"
},
"devDependencies": {
@@ -30,9 +30,9 @@
"@babel/preset-typescript": "^7.8.3",
"@babel/runtime": "^7.20.0",
"@react-native-community/cli": "17.0.0",
- "@react-native/metro-config": "0.80.0-nightly-20250428-9efcdc091",
"@react-native-windows/automation": "^0.3.397",
"@react-native-windows/automation-commands": "^0.1.418",
+ "@react-native/metro-config": "0.80.0-nightly-20250506-3ac16dd6a",
"@rnw-scripts/babel-node-config": "2.3.2",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.36",
diff --git a/packages/e2e-test-app/package.json b/packages/e2e-test-app/package.json
index eeebc5badb8..161f93b42c1 100644
--- a/packages/e2e-test-app/package.json
+++ b/packages/e2e-test-app/package.json
@@ -16,11 +16,11 @@
"@react-native-picker/picker": "^2.5.1",
"@react-native-windows/automation-channel": "^0.12.315",
"@react-native-windows/tester": "0.0.1",
- "@types/react": "^19.0.0",
+ "@types/react": "^19.1.0",
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
"react": "^19.1.0",
- "react-native": "0.80.0-nightly-20250428-9efcdc091",
+ "react-native": "0.80.0-nightly-20250506-3ac16dd6a",
"react-native-windows": "^0.0.0-canary.975",
"react-native-xaml": "^0.0.80"
},
@@ -31,9 +31,9 @@
"@babel/preset-typescript": "^7.8.3",
"@babel/runtime": "^7.20.0",
"@react-native-community/cli": "17.0.0",
- "@react-native/metro-config": "0.80.0-nightly-20250428-9efcdc091",
"@react-native-windows/automation": "^0.3.397",
"@react-native-windows/automation-commands": "^0.1.418",
+ "@react-native/metro-config": "0.80.0-nightly-20250506-3ac16dd6a",
"@rnw-scripts/babel-node-config": "2.3.2",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.36",
diff --git a/packages/integration-test-app/package.json b/packages/integration-test-app/package.json
index df7fd427798..47c39d7f19e 100644
--- a/packages/integration-test-app/package.json
+++ b/packages/integration-test-app/package.json
@@ -12,12 +12,12 @@
"dependencies": {
"@react-native-windows/automation-channel": "^0.12.315",
"@react-native-windows/fs": "^0.0.0-canary.66",
- "@types/react": "^19.0.0",
+ "@types/react": "^19.1.0",
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
"chai": "^4.2.0",
"react": "^19.1.0",
- "react-native": "0.80.0-nightly-20250428-9efcdc091",
+ "react-native": "0.80.0-nightly-20250506-3ac16dd6a",
"react-native-windows": "^0.0.0-canary.975"
},
"devDependencies": {
@@ -28,7 +28,7 @@
"@babel/traverse": "^7.11.5",
"@babel/types": "^7.11.5",
"@react-native-community/cli": "17.0.0",
- "@react-native/metro-config": "0.80.0-nightly-20250428-9efcdc091",
+ "@react-native/metro-config": "0.80.0-nightly-20250506-3ac16dd6a",
"@rnw-scripts/babel-node-config": "2.3.2",
"@rnw-scripts/eslint-config": "^1.2.36",
"@rnw-scripts/just-task": "^2.3.54",
diff --git a/packages/playground/package.json b/packages/playground/package.json
index f2ff164f1e7..2dda9bc6469 100644
--- a/packages/playground/package.json
+++ b/packages/playground/package.json
@@ -11,18 +11,18 @@
"dependencies": {
"@react-native-picker/picker": "^2.5.1",
"@react-native-windows/tester": "0.0.1",
- "@types/react": "^19.0.0",
+ "@types/react": "^19.1.0",
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
"react": "^19.1.0",
- "react-native": "0.80.0-nightly-20250428-9efcdc091",
+ "react-native": "0.80.0-nightly-20250506-3ac16dd6a",
"react-native-windows": "^0.0.0-canary.975"
},
"devDependencies": {
"@babel/core": "^7.25.2",
"@babel/runtime": "^7.20.0",
"@react-native-community/cli": "17.0.0",
- "@react-native/metro-config": "0.80.0-nightly-20250428-9efcdc091",
+ "@react-native/metro-config": "0.80.0-nightly-20250506-3ac16dd6a",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.36",
"@rnw-scripts/just-task": "2.3.54",
diff --git a/packages/sample-app-fabric/package.json b/packages/sample-app-fabric/package.json
index 58ea1c1ecb5..0b8d6e30d43 100644
--- a/packages/sample-app-fabric/package.json
+++ b/packages/sample-app-fabric/package.json
@@ -12,11 +12,11 @@
"bundle": "rnw-scripts prepareBundle && npx @react-native-community/cli bundle --platform windows --entry-file App.tsx --bundle-output windows/SampleAppFabric/Bundle/app.windows.bundle --assets-dest windows/SampleAppFabric/Bundle"
},
"dependencies": {
- "@types/react": "^19.0.0",
+ "@types/react": "^19.1.0",
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
"react": "^19.1.0",
- "react-native": "0.80.0-nightly-20250428-9efcdc091",
+ "react-native": "0.80.0-nightly-20250506-3ac16dd6a",
"react-native-windows": "^0.0.0-canary.975"
},
"devDependencies": {
@@ -27,7 +27,7 @@
"@babel/runtime": "^7.20.0",
"@jest/globals": "^29.7.0",
"@react-native-community/cli": "17.0.0",
- "@react-native/metro-config": "0.80.0-nightly-20250428-9efcdc091",
+ "@react-native/metro-config": "0.80.0-nightly-20250506-3ac16dd6a",
"@rnw-scripts/babel-node-config": "2.3.2",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.36",
diff --git a/packages/sample-apps/package.json b/packages/sample-apps/package.json
index 1f74c25a588..44a7670858c 100644
--- a/packages/sample-apps/package.json
+++ b/packages/sample-apps/package.json
@@ -12,11 +12,11 @@
"windows": "npx @react-native-community/cli run-windows"
},
"dependencies": {
- "@types/react": "^19.0.0",
+ "@types/react": "^19.1.0",
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
"react": "^19.1.0",
- "react-native": "0.80.0-nightly-20250428-9efcdc091",
+ "react-native": "0.80.0-nightly-20250506-3ac16dd6a",
"react-native-windows": "^0.0.0-canary.975"
},
"devDependencies": {
@@ -26,7 +26,7 @@
"@react-native-community/cli": "17.0.0",
"@react-native-windows/cli": "0.0.0-canary.269",
"@react-native-windows/codegen": "0.0.0-canary.124",
- "@react-native/metro-config": "0.80.0-nightly-20250428-9efcdc091",
+ "@react-native/metro-config": "0.80.0-nightly-20250506-3ac16dd6a",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.36",
"@rnw-scripts/just-task": "2.3.54",
diff --git a/packages/sample-custom-component/package.json b/packages/sample-custom-component/package.json
index f1477935ac6..9e20a3895d4 100644
--- a/packages/sample-custom-component/package.json
+++ b/packages/sample-custom-component/package.json
@@ -20,9 +20,9 @@
}
},
"dependencies": {
- "@types/react": "^19.0.0",
+ "@types/react": "^19.1.0",
"react": "^19.1.0",
- "react-native": "0.80.0-nightly-20250428-9efcdc091",
+ "react-native": "0.80.0-nightly-20250506-3ac16dd6a",
"react-native-windows": "^0.0.0-canary.975"
},
"devDependencies": {
@@ -32,7 +32,7 @@
"@babel/preset-typescript": "^7.8.3",
"@babel/runtime": "^7.20.0",
"@react-native-community/cli": "17.0.0",
- "@react-native/metro-config": "0.80.0-nightly-20250428-9efcdc091",
+ "@react-native/metro-config": "0.80.0-nightly-20250506-3ac16dd6a",
"@rnw-scripts/babel-node-config": "2.3.2",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.36",
diff --git a/vnext/ReactCopies/IntegrationTests/ImageCachePolicyTest.js b/vnext/ReactCopies/IntegrationTests/ImageCachePolicyTest.js
index 6c9d3789b2c..d188e55b2b6 100644
--- a/vnext/ReactCopies/IntegrationTests/ImageCachePolicyTest.js
+++ b/vnext/ReactCopies/IntegrationTests/ImageCachePolicyTest.js
@@ -10,7 +10,7 @@
'use strict';
-import type {ImageURISource} from 'react-native/Libraries/Image/ImageSource';
+import type {ImageURISource} from 'react-native';
import * as React from 'react';
import {useEffect, useState} from 'react';
diff --git a/vnext/ReactCopies/IntegrationTests/LayoutEventsTest.js b/vnext/ReactCopies/IntegrationTests/LayoutEventsTest.js
index dc27d3ec95e..141a20d2970 100644
--- a/vnext/ReactCopies/IntegrationTests/LayoutEventsTest.js
+++ b/vnext/ReactCopies/IntegrationTests/LayoutEventsTest.js
@@ -10,11 +10,8 @@
'use strict';
+import type {LayoutChangeEvent, LayoutRectangle} from 'react-native';
import type {ViewStyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';
-import type {
- LayoutChangeEvent,
- LayoutRectangle,
-} from 'react-native/Libraries/Types/CoreEventTypes';
const React = require('react');
const ReactNative = require('react-native');
diff --git a/vnext/codegen/NativeAnimatedModuleSpec.g.h b/vnext/codegen/NativeAnimatedModuleSpec.g.h
index b0da7340293..ce1eea2a5ca 100644
--- a/vnext/codegen/NativeAnimatedModuleSpec.g.h
+++ b/vnext/codegen/NativeAnimatedModuleSpec.g.h
@@ -17,6 +17,7 @@ namespace Microsoft::ReactNativeSpecs {
struct AnimatedModuleSpec_EndResult {
bool finished;
std::optional value;
+ std::optional offset;
};
struct AnimatedModuleSpec_EventMapping {
@@ -29,6 +30,7 @@ inline winrt::Microsoft::ReactNative::FieldMap GetStructInfo(AnimatedModuleSpec_
winrt::Microsoft::ReactNative::FieldMap fieldMap {
{L"finished", &AnimatedModuleSpec_EndResult::finished},
{L"value", &AnimatedModuleSpec_EndResult::value},
+ {L"offset", &AnimatedModuleSpec_EndResult::offset},
};
return fieldMap;
}
diff --git a/vnext/codegen/NativeAnimatedTurboModuleSpec.g.h b/vnext/codegen/NativeAnimatedTurboModuleSpec.g.h
index a9061d93a47..7bf019e7ab6 100644
--- a/vnext/codegen/NativeAnimatedTurboModuleSpec.g.h
+++ b/vnext/codegen/NativeAnimatedTurboModuleSpec.g.h
@@ -17,6 +17,7 @@ namespace Microsoft::ReactNativeSpecs {
struct AnimatedTurboModuleSpec_EndResult {
bool finished;
std::optional value;
+ std::optional offset;
};
struct AnimatedTurboModuleSpec_EventMapping {
@@ -29,6 +30,7 @@ inline winrt::Microsoft::ReactNative::FieldMap GetStructInfo(AnimatedTurboModule
winrt::Microsoft::ReactNative::FieldMap fieldMap {
{L"finished", &AnimatedTurboModuleSpec_EndResult::finished},
{L"value", &AnimatedTurboModuleSpec_EndResult::value},
+ {L"offset", &AnimatedTurboModuleSpec_EndResult::offset},
};
return fieldMap;
}
diff --git a/vnext/codegen/NativePerformanceSpec.g.h b/vnext/codegen/NativePerformanceSpec.g.h
index 1456b89720b..399f6e0f0d9 100644
--- a/vnext/codegen/NativePerformanceSpec.g.h
+++ b/vnext/codegen/NativePerformanceSpec.g.h
@@ -33,6 +33,13 @@ struct PerformanceSpec_RawPerformanceEntry {
std::optional processingStart;
std::optional processingEnd;
std::optional interactionId;
+ std::optional fetchStart;
+ std::optional requestStart;
+ std::optional connectStart;
+ std::optional connectEnd;
+ std::optional responseStart;
+ std::optional responseEnd;
+ std::optional responseStatus;
};
struct PerformanceSpec_ReactNativeStartupTiming {
@@ -66,6 +73,13 @@ inline winrt::Microsoft::ReactNative::FieldMap GetStructInfo(PerformanceSpec_Raw
{L"processingStart", &PerformanceSpec_RawPerformanceEntry::processingStart},
{L"processingEnd", &PerformanceSpec_RawPerformanceEntry::processingEnd},
{L"interactionId", &PerformanceSpec_RawPerformanceEntry::interactionId},
+ {L"fetchStart", &PerformanceSpec_RawPerformanceEntry::fetchStart},
+ {L"requestStart", &PerformanceSpec_RawPerformanceEntry::requestStart},
+ {L"connectStart", &PerformanceSpec_RawPerformanceEntry::connectStart},
+ {L"connectEnd", &PerformanceSpec_RawPerformanceEntry::connectEnd},
+ {L"responseStart", &PerformanceSpec_RawPerformanceEntry::responseStart},
+ {L"responseEnd", &PerformanceSpec_RawPerformanceEntry::responseEnd},
+ {L"responseStatus", &PerformanceSpec_RawPerformanceEntry::responseStatus},
};
return fieldMap;
}
diff --git a/vnext/codegen/NativeReactNativeFeatureFlagsSpec.g.h b/vnext/codegen/NativeReactNativeFeatureFlagsSpec.g.h
index c2e0da0e540..c327cbd02ae 100644
--- a/vnext/codegen/NativeReactNativeFeatureFlagsSpec.g.h
+++ b/vnext/codegen/NativeReactNativeFeatureFlagsSpec.g.h
@@ -28,38 +28,43 @@ struct ReactNativeFeatureFlagsSpec : winrt::Microsoft::ReactNative::TurboModuleS
SyncMethod{8, L"enableBridgelessArchitecture"},
SyncMethod{9, L"enableCppPropsIteratorSetter"},
SyncMethod{10, L"enableCustomFocusSearchOnClippedElementsAndroid"},
- SyncMethod{11, L"enableEagerRootViewAttachment"},
- SyncMethod{12, L"enableFabricLogs"},
- SyncMethod{13, L"enableFabricRenderer"},
- SyncMethod{14, L"enableFixForParentTagDuringReparenting"},
- SyncMethod{15, L"enableFontScaleChangesUpdatingLayout"},
- SyncMethod{16, L"enableIOSViewClipToPaddingBox"},
- SyncMethod{17, L"enableJSRuntimeGCOnMemoryPressureOnIOS"},
- SyncMethod{18, L"enableLayoutAnimationsOnAndroid"},
- SyncMethod{19, L"enableLayoutAnimationsOnIOS"},
- SyncMethod{20, L"enableMainQueueModulesOnIOS"},
- SyncMethod{21, L"enableNativeCSSParsing"},
- SyncMethod{22, L"enableNewBackgroundAndBorderDrawables"},
- SyncMethod{23, L"enablePropsUpdateReconciliationAndroid"},
- SyncMethod{24, L"enableSynchronousStateUpdates"},
- SyncMethod{25, L"enableViewCulling"},
- SyncMethod{26, L"enableViewRecycling"},
- SyncMethod{27, L"enableViewRecyclingForText"},
- SyncMethod{28, L"enableViewRecyclingForView"},
- SyncMethod{29, L"fixMappingOfEventPrioritiesBetweenFabricAndReact"},
- SyncMethod{30, L"fuseboxEnabledRelease"},
- SyncMethod{31, L"fuseboxNetworkInspectionEnabled"},
- SyncMethod{32, L"traceTurboModulePromiseRejectionsOnAndroid"},
- SyncMethod{33, L"updateRuntimeShadowNodeReferencesOnCommit"},
- SyncMethod{34, L"useAlwaysAvailableJSErrorHandling"},
- SyncMethod{35, L"useEditTextStockAndroidFocusBehavior"},
- SyncMethod{36, L"useFabricInterop"},
- SyncMethod{37, L"useNativeViewConfigsInBridgelessMode"},
- SyncMethod{38, L"useOptimizedEventBatchingOnAndroid"},
- SyncMethod{39, L"useRawPropsJsiValue"},
- SyncMethod{40, L"useShadowNodeStateOnClone"},
- SyncMethod{41, L"useTurboModuleInterop"},
- SyncMethod{42, L"useTurboModules"},
+ SyncMethod{11, L"enableDestroyShadowTreeRevisionAsync"},
+ SyncMethod{12, L"enableDoubleMeasurementFixAndroid"},
+ SyncMethod{13, L"enableEagerRootViewAttachment"},
+ SyncMethod{14, L"enableFabricLogs"},
+ SyncMethod{15, L"enableFabricRenderer"},
+ SyncMethod{16, L"enableFixForParentTagDuringReparenting"},
+ SyncMethod{17, L"enableFontScaleChangesUpdatingLayout"},
+ SyncMethod{18, L"enableIOSViewClipToPaddingBox"},
+ SyncMethod{19, L"enableJSRuntimeGCOnMemoryPressureOnIOS"},
+ SyncMethod{20, L"enableLayoutAnimationsOnAndroid"},
+ SyncMethod{21, L"enableLayoutAnimationsOnIOS"},
+ SyncMethod{22, L"enableMainQueueModulesOnIOS"},
+ SyncMethod{23, L"enableNativeCSSParsing"},
+ SyncMethod{24, L"enableNetworkEventReporting"},
+ SyncMethod{25, L"enableNewBackgroundAndBorderDrawables"},
+ SyncMethod{26, L"enablePreparedTextLayout"},
+ SyncMethod{27, L"enablePropsUpdateReconciliationAndroid"},
+ SyncMethod{28, L"enableResourceTimingAPI"},
+ SyncMethod{29, L"enableSynchronousStateUpdates"},
+ SyncMethod{30, L"enableViewCulling"},
+ SyncMethod{31, L"enableViewRecycling"},
+ SyncMethod{32, L"enableViewRecyclingForText"},
+ SyncMethod{33, L"enableViewRecyclingForView"},
+ SyncMethod{34, L"fixMappingOfEventPrioritiesBetweenFabricAndReact"},
+ SyncMethod{35, L"fuseboxEnabledRelease"},
+ SyncMethod{36, L"fuseboxNetworkInspectionEnabled"},
+ SyncMethod{37, L"incorporateMaxLinesDuringAndroidLayout"},
+ SyncMethod{38, L"traceTurboModulePromiseRejectionsOnAndroid"},
+ SyncMethod{39, L"updateRuntimeShadowNodeReferencesOnCommit"},
+ SyncMethod{40, L"useAlwaysAvailableJSErrorHandling"},
+ SyncMethod{41, L"useFabricInterop"},
+ SyncMethod{42, L"useNativeViewConfigsInBridgelessMode"},
+ SyncMethod{43, L"useOptimizedEventBatchingOnAndroid"},
+ SyncMethod{44, L"useRawPropsJsiValue"},
+ SyncMethod{45, L"useShadowNodeStateOnClone"},
+ SyncMethod{46, L"useTurboModuleInterop"},
+ SyncMethod{47, L"useTurboModules"},
};
template
@@ -123,161 +128,186 @@ struct ReactNativeFeatureFlagsSpec : winrt::Microsoft::ReactNative::TurboModuleS
" REACT_SYNC_METHOD(enableCustomFocusSearchOnClippedElementsAndroid) static bool enableCustomFocusSearchOnClippedElementsAndroid() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
11,
+ "enableDestroyShadowTreeRevisionAsync",
+ " REACT_SYNC_METHOD(enableDestroyShadowTreeRevisionAsync) bool enableDestroyShadowTreeRevisionAsync() noexcept { /* implementation */ }\n"
+ " REACT_SYNC_METHOD(enableDestroyShadowTreeRevisionAsync) static bool enableDestroyShadowTreeRevisionAsync() noexcept { /* implementation */ }\n");
+ REACT_SHOW_METHOD_SPEC_ERRORS(
+ 12,
+ "enableDoubleMeasurementFixAndroid",
+ " REACT_SYNC_METHOD(enableDoubleMeasurementFixAndroid) bool enableDoubleMeasurementFixAndroid() noexcept { /* implementation */ }\n"
+ " REACT_SYNC_METHOD(enableDoubleMeasurementFixAndroid) static bool enableDoubleMeasurementFixAndroid() noexcept { /* implementation */ }\n");
+ REACT_SHOW_METHOD_SPEC_ERRORS(
+ 13,
"enableEagerRootViewAttachment",
" REACT_SYNC_METHOD(enableEagerRootViewAttachment) bool enableEagerRootViewAttachment() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enableEagerRootViewAttachment) static bool enableEagerRootViewAttachment() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 12,
+ 14,
"enableFabricLogs",
" REACT_SYNC_METHOD(enableFabricLogs) bool enableFabricLogs() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enableFabricLogs) static bool enableFabricLogs() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 13,
+ 15,
"enableFabricRenderer",
" REACT_SYNC_METHOD(enableFabricRenderer) bool enableFabricRenderer() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enableFabricRenderer) static bool enableFabricRenderer() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 14,
+ 16,
"enableFixForParentTagDuringReparenting",
" REACT_SYNC_METHOD(enableFixForParentTagDuringReparenting) bool enableFixForParentTagDuringReparenting() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enableFixForParentTagDuringReparenting) static bool enableFixForParentTagDuringReparenting() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 15,
+ 17,
"enableFontScaleChangesUpdatingLayout",
" REACT_SYNC_METHOD(enableFontScaleChangesUpdatingLayout) bool enableFontScaleChangesUpdatingLayout() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enableFontScaleChangesUpdatingLayout) static bool enableFontScaleChangesUpdatingLayout() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 16,
+ 18,
"enableIOSViewClipToPaddingBox",
" REACT_SYNC_METHOD(enableIOSViewClipToPaddingBox) bool enableIOSViewClipToPaddingBox() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enableIOSViewClipToPaddingBox) static bool enableIOSViewClipToPaddingBox() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 17,
+ 19,
"enableJSRuntimeGCOnMemoryPressureOnIOS",
" REACT_SYNC_METHOD(enableJSRuntimeGCOnMemoryPressureOnIOS) bool enableJSRuntimeGCOnMemoryPressureOnIOS() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enableJSRuntimeGCOnMemoryPressureOnIOS) static bool enableJSRuntimeGCOnMemoryPressureOnIOS() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 18,
+ 20,
"enableLayoutAnimationsOnAndroid",
" REACT_SYNC_METHOD(enableLayoutAnimationsOnAndroid) bool enableLayoutAnimationsOnAndroid() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enableLayoutAnimationsOnAndroid) static bool enableLayoutAnimationsOnAndroid() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 19,
+ 21,
"enableLayoutAnimationsOnIOS",
" REACT_SYNC_METHOD(enableLayoutAnimationsOnIOS) bool enableLayoutAnimationsOnIOS() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enableLayoutAnimationsOnIOS) static bool enableLayoutAnimationsOnIOS() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 20,
+ 22,
"enableMainQueueModulesOnIOS",
" REACT_SYNC_METHOD(enableMainQueueModulesOnIOS) bool enableMainQueueModulesOnIOS() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enableMainQueueModulesOnIOS) static bool enableMainQueueModulesOnIOS() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 21,
+ 23,
"enableNativeCSSParsing",
" REACT_SYNC_METHOD(enableNativeCSSParsing) bool enableNativeCSSParsing() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enableNativeCSSParsing) static bool enableNativeCSSParsing() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 22,
+ 24,
+ "enableNetworkEventReporting",
+ " REACT_SYNC_METHOD(enableNetworkEventReporting) bool enableNetworkEventReporting() noexcept { /* implementation */ }\n"
+ " REACT_SYNC_METHOD(enableNetworkEventReporting) static bool enableNetworkEventReporting() noexcept { /* implementation */ }\n");
+ REACT_SHOW_METHOD_SPEC_ERRORS(
+ 25,
"enableNewBackgroundAndBorderDrawables",
" REACT_SYNC_METHOD(enableNewBackgroundAndBorderDrawables) bool enableNewBackgroundAndBorderDrawables() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enableNewBackgroundAndBorderDrawables) static bool enableNewBackgroundAndBorderDrawables() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 23,
+ 26,
+ "enablePreparedTextLayout",
+ " REACT_SYNC_METHOD(enablePreparedTextLayout) bool enablePreparedTextLayout() noexcept { /* implementation */ }\n"
+ " REACT_SYNC_METHOD(enablePreparedTextLayout) static bool enablePreparedTextLayout() noexcept { /* implementation */ }\n");
+ REACT_SHOW_METHOD_SPEC_ERRORS(
+ 27,
"enablePropsUpdateReconciliationAndroid",
" REACT_SYNC_METHOD(enablePropsUpdateReconciliationAndroid) bool enablePropsUpdateReconciliationAndroid() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enablePropsUpdateReconciliationAndroid) static bool enablePropsUpdateReconciliationAndroid() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 24,
+ 28,
+ "enableResourceTimingAPI",
+ " REACT_SYNC_METHOD(enableResourceTimingAPI) bool enableResourceTimingAPI() noexcept { /* implementation */ }\n"
+ " REACT_SYNC_METHOD(enableResourceTimingAPI) static bool enableResourceTimingAPI() noexcept { /* implementation */ }\n");
+ REACT_SHOW_METHOD_SPEC_ERRORS(
+ 29,
"enableSynchronousStateUpdates",
" REACT_SYNC_METHOD(enableSynchronousStateUpdates) bool enableSynchronousStateUpdates() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enableSynchronousStateUpdates) static bool enableSynchronousStateUpdates() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 25,
+ 30,
"enableViewCulling",
" REACT_SYNC_METHOD(enableViewCulling) bool enableViewCulling() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enableViewCulling) static bool enableViewCulling() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 26,
+ 31,
"enableViewRecycling",
" REACT_SYNC_METHOD(enableViewRecycling) bool enableViewRecycling() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enableViewRecycling) static bool enableViewRecycling() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 27,
+ 32,
"enableViewRecyclingForText",
" REACT_SYNC_METHOD(enableViewRecyclingForText) bool enableViewRecyclingForText() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enableViewRecyclingForText) static bool enableViewRecyclingForText() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 28,
+ 33,
"enableViewRecyclingForView",
" REACT_SYNC_METHOD(enableViewRecyclingForView) bool enableViewRecyclingForView() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(enableViewRecyclingForView) static bool enableViewRecyclingForView() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 29,
+ 34,
"fixMappingOfEventPrioritiesBetweenFabricAndReact",
" REACT_SYNC_METHOD(fixMappingOfEventPrioritiesBetweenFabricAndReact) bool fixMappingOfEventPrioritiesBetweenFabricAndReact() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(fixMappingOfEventPrioritiesBetweenFabricAndReact) static bool fixMappingOfEventPrioritiesBetweenFabricAndReact() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 30,
+ 35,
"fuseboxEnabledRelease",
" REACT_SYNC_METHOD(fuseboxEnabledRelease) bool fuseboxEnabledRelease() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(fuseboxEnabledRelease) static bool fuseboxEnabledRelease() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 31,
+ 36,
"fuseboxNetworkInspectionEnabled",
" REACT_SYNC_METHOD(fuseboxNetworkInspectionEnabled) bool fuseboxNetworkInspectionEnabled() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(fuseboxNetworkInspectionEnabled) static bool fuseboxNetworkInspectionEnabled() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 32,
+ 37,
+ "incorporateMaxLinesDuringAndroidLayout",
+ " REACT_SYNC_METHOD(incorporateMaxLinesDuringAndroidLayout) bool incorporateMaxLinesDuringAndroidLayout() noexcept { /* implementation */ }\n"
+ " REACT_SYNC_METHOD(incorporateMaxLinesDuringAndroidLayout) static bool incorporateMaxLinesDuringAndroidLayout() noexcept { /* implementation */ }\n");
+ REACT_SHOW_METHOD_SPEC_ERRORS(
+ 38,
"traceTurboModulePromiseRejectionsOnAndroid",
" REACT_SYNC_METHOD(traceTurboModulePromiseRejectionsOnAndroid) bool traceTurboModulePromiseRejectionsOnAndroid() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(traceTurboModulePromiseRejectionsOnAndroid) static bool traceTurboModulePromiseRejectionsOnAndroid() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 33,
+ 39,
"updateRuntimeShadowNodeReferencesOnCommit",
" REACT_SYNC_METHOD(updateRuntimeShadowNodeReferencesOnCommit) bool updateRuntimeShadowNodeReferencesOnCommit() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(updateRuntimeShadowNodeReferencesOnCommit) static bool updateRuntimeShadowNodeReferencesOnCommit() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 34,
+ 40,
"useAlwaysAvailableJSErrorHandling",
" REACT_SYNC_METHOD(useAlwaysAvailableJSErrorHandling) bool useAlwaysAvailableJSErrorHandling() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(useAlwaysAvailableJSErrorHandling) static bool useAlwaysAvailableJSErrorHandling() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 35,
- "useEditTextStockAndroidFocusBehavior",
- " REACT_SYNC_METHOD(useEditTextStockAndroidFocusBehavior) bool useEditTextStockAndroidFocusBehavior() noexcept { /* implementation */ }\n"
- " REACT_SYNC_METHOD(useEditTextStockAndroidFocusBehavior) static bool useEditTextStockAndroidFocusBehavior() noexcept { /* implementation */ }\n");
- REACT_SHOW_METHOD_SPEC_ERRORS(
- 36,
+ 41,
"useFabricInterop",
" REACT_SYNC_METHOD(useFabricInterop) bool useFabricInterop() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(useFabricInterop) static bool useFabricInterop() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 37,
+ 42,
"useNativeViewConfigsInBridgelessMode",
" REACT_SYNC_METHOD(useNativeViewConfigsInBridgelessMode) bool useNativeViewConfigsInBridgelessMode() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(useNativeViewConfigsInBridgelessMode) static bool useNativeViewConfigsInBridgelessMode() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 38,
+ 43,
"useOptimizedEventBatchingOnAndroid",
" REACT_SYNC_METHOD(useOptimizedEventBatchingOnAndroid) bool useOptimizedEventBatchingOnAndroid() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(useOptimizedEventBatchingOnAndroid) static bool useOptimizedEventBatchingOnAndroid() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 39,
+ 44,
"useRawPropsJsiValue",
" REACT_SYNC_METHOD(useRawPropsJsiValue) bool useRawPropsJsiValue() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(useRawPropsJsiValue) static bool useRawPropsJsiValue() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 40,
+ 45,
"useShadowNodeStateOnClone",
" REACT_SYNC_METHOD(useShadowNodeStateOnClone) bool useShadowNodeStateOnClone() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(useShadowNodeStateOnClone) static bool useShadowNodeStateOnClone() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 41,
+ 46,
"useTurboModuleInterop",
" REACT_SYNC_METHOD(useTurboModuleInterop) bool useTurboModuleInterop() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(useTurboModuleInterop) static bool useTurboModuleInterop() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 42,
+ 47,
"useTurboModules",
" REACT_SYNC_METHOD(useTurboModules) bool useTurboModules() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(useTurboModules) static bool useTurboModules() noexcept { /* implementation */ }\n");
diff --git a/vnext/codegen/rnwcoreJSI-generated.cpp b/vnext/codegen/rnwcoreJSI-generated.cpp
index c48eed19537..c96283e3376 100644
--- a/vnext/codegen/rnwcoreJSI-generated.cpp
+++ b/vnext/codegen/rnwcoreJSI-generated.cpp
@@ -66,6 +66,16 @@ static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableC
rt
);
}
+static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableDestroyShadowTreeRevisionAsync(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->enableDestroyShadowTreeRevisionAsync(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableDoubleMeasurementFixAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->enableDoubleMeasurementFixAndroid(
+ rt
+ );
+}
static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableEagerRootViewAttachment(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
return static_cast(&turboModule)->enableEagerRootViewAttachment(
rt
@@ -121,16 +131,31 @@ static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableN
rt
);
}
+static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableNetworkEventReporting(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->enableNetworkEventReporting(
+ rt
+ );
+}
static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableNewBackgroundAndBorderDrawables(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
return static_cast(&turboModule)->enableNewBackgroundAndBorderDrawables(
rt
);
}
+static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enablePreparedTextLayout(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->enablePreparedTextLayout(
+ rt
+ );
+}
static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enablePropsUpdateReconciliationAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
return static_cast(&turboModule)->enablePropsUpdateReconciliationAndroid(
rt
);
}
+static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableResourceTimingAPI(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->enableResourceTimingAPI(
+ rt
+ );
+}
static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableSynchronousStateUpdates(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
return static_cast(&turboModule)->enableSynchronousStateUpdates(
rt
@@ -171,6 +196,11 @@ static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_fusebox
rt
);
}
+static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_incorporateMaxLinesDuringAndroidLayout(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->incorporateMaxLinesDuringAndroidLayout(
+ rt
+ );
+}
static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_traceTurboModulePromiseRejectionsOnAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
return static_cast(&turboModule)->traceTurboModulePromiseRejectionsOnAndroid(
rt
@@ -186,11 +216,6 @@ static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useAlwa
rt
);
}
-static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useEditTextStockAndroidFocusBehavior(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
- return static_cast(&turboModule)->useEditTextStockAndroidFocusBehavior(
- rt
- );
-}
static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useFabricInterop(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
return static_cast(&turboModule)->useFabricInterop(
rt
@@ -240,6 +265,8 @@ NativeReactNativeFeatureFlagsCxxSpecJSI::NativeReactNativeFeatureFlagsCxxSpecJSI
methodMap_["enableBridgelessArchitecture"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableBridgelessArchitecture};
methodMap_["enableCppPropsIteratorSetter"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableCppPropsIteratorSetter};
methodMap_["enableCustomFocusSearchOnClippedElementsAndroid"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableCustomFocusSearchOnClippedElementsAndroid};
+ methodMap_["enableDestroyShadowTreeRevisionAsync"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableDestroyShadowTreeRevisionAsync};
+ methodMap_["enableDoubleMeasurementFixAndroid"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableDoubleMeasurementFixAndroid};
methodMap_["enableEagerRootViewAttachment"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableEagerRootViewAttachment};
methodMap_["enableFabricLogs"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableFabricLogs};
methodMap_["enableFabricRenderer"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableFabricRenderer};
@@ -251,8 +278,11 @@ NativeReactNativeFeatureFlagsCxxSpecJSI::NativeReactNativeFeatureFlagsCxxSpecJSI
methodMap_["enableLayoutAnimationsOnIOS"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableLayoutAnimationsOnIOS};
methodMap_["enableMainQueueModulesOnIOS"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableMainQueueModulesOnIOS};
methodMap_["enableNativeCSSParsing"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableNativeCSSParsing};
+ methodMap_["enableNetworkEventReporting"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableNetworkEventReporting};
methodMap_["enableNewBackgroundAndBorderDrawables"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableNewBackgroundAndBorderDrawables};
+ methodMap_["enablePreparedTextLayout"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enablePreparedTextLayout};
methodMap_["enablePropsUpdateReconciliationAndroid"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enablePropsUpdateReconciliationAndroid};
+ methodMap_["enableResourceTimingAPI"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableResourceTimingAPI};
methodMap_["enableSynchronousStateUpdates"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableSynchronousStateUpdates};
methodMap_["enableViewCulling"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableViewCulling};
methodMap_["enableViewRecycling"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableViewRecycling};
@@ -261,10 +291,10 @@ NativeReactNativeFeatureFlagsCxxSpecJSI::NativeReactNativeFeatureFlagsCxxSpecJSI
methodMap_["fixMappingOfEventPrioritiesBetweenFabricAndReact"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_fixMappingOfEventPrioritiesBetweenFabricAndReact};
methodMap_["fuseboxEnabledRelease"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_fuseboxEnabledRelease};
methodMap_["fuseboxNetworkInspectionEnabled"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_fuseboxNetworkInspectionEnabled};
+ methodMap_["incorporateMaxLinesDuringAndroidLayout"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_incorporateMaxLinesDuringAndroidLayout};
methodMap_["traceTurboModulePromiseRejectionsOnAndroid"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_traceTurboModulePromiseRejectionsOnAndroid};
methodMap_["updateRuntimeShadowNodeReferencesOnCommit"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_updateRuntimeShadowNodeReferencesOnCommit};
methodMap_["useAlwaysAvailableJSErrorHandling"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useAlwaysAvailableJSErrorHandling};
- methodMap_["useEditTextStockAndroidFocusBehavior"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useEditTextStockAndroidFocusBehavior};
methodMap_["useFabricInterop"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useFabricInterop};
methodMap_["useNativeViewConfigsInBridgelessMode"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useNativeViewConfigsInBridgelessMode};
methodMap_["useOptimizedEventBatchingOnAndroid"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useOptimizedEventBatchingOnAndroid};
diff --git a/vnext/codegen/rnwcoreJSI.h b/vnext/codegen/rnwcoreJSI.h
index 3852b68f734..3e34c1ab816 100644
--- a/vnext/codegen/rnwcoreJSI.h
+++ b/vnext/codegen/rnwcoreJSI.h
@@ -31,6 +31,8 @@ namespace facebook::react {
virtual bool enableBridgelessArchitecture(jsi::Runtime &rt) = 0;
virtual bool enableCppPropsIteratorSetter(jsi::Runtime &rt) = 0;
virtual bool enableCustomFocusSearchOnClippedElementsAndroid(jsi::Runtime &rt) = 0;
+ virtual bool enableDestroyShadowTreeRevisionAsync(jsi::Runtime &rt) = 0;
+ virtual bool enableDoubleMeasurementFixAndroid(jsi::Runtime &rt) = 0;
virtual bool enableEagerRootViewAttachment(jsi::Runtime &rt) = 0;
virtual bool enableFabricLogs(jsi::Runtime &rt) = 0;
virtual bool enableFabricRenderer(jsi::Runtime &rt) = 0;
@@ -42,8 +44,11 @@ namespace facebook::react {
virtual bool enableLayoutAnimationsOnIOS(jsi::Runtime &rt) = 0;
virtual bool enableMainQueueModulesOnIOS(jsi::Runtime &rt) = 0;
virtual bool enableNativeCSSParsing(jsi::Runtime &rt) = 0;
+ virtual bool enableNetworkEventReporting(jsi::Runtime &rt) = 0;
virtual bool enableNewBackgroundAndBorderDrawables(jsi::Runtime &rt) = 0;
+ virtual bool enablePreparedTextLayout(jsi::Runtime &rt) = 0;
virtual bool enablePropsUpdateReconciliationAndroid(jsi::Runtime &rt) = 0;
+ virtual bool enableResourceTimingAPI(jsi::Runtime &rt) = 0;
virtual bool enableSynchronousStateUpdates(jsi::Runtime &rt) = 0;
virtual bool enableViewCulling(jsi::Runtime &rt) = 0;
virtual bool enableViewRecycling(jsi::Runtime &rt) = 0;
@@ -52,10 +57,10 @@ namespace facebook::react {
virtual bool fixMappingOfEventPrioritiesBetweenFabricAndReact(jsi::Runtime &rt) = 0;
virtual bool fuseboxEnabledRelease(jsi::Runtime &rt) = 0;
virtual bool fuseboxNetworkInspectionEnabled(jsi::Runtime &rt) = 0;
+ virtual bool incorporateMaxLinesDuringAndroidLayout(jsi::Runtime &rt) = 0;
virtual bool traceTurboModulePromiseRejectionsOnAndroid(jsi::Runtime &rt) = 0;
virtual bool updateRuntimeShadowNodeReferencesOnCommit(jsi::Runtime &rt) = 0;
virtual bool useAlwaysAvailableJSErrorHandling(jsi::Runtime &rt) = 0;
- virtual bool useEditTextStockAndroidFocusBehavior(jsi::Runtime &rt) = 0;
virtual bool useFabricInterop(jsi::Runtime &rt) = 0;
virtual bool useNativeViewConfigsInBridgelessMode(jsi::Runtime &rt) = 0;
virtual bool useOptimizedEventBatchingOnAndroid(jsi::Runtime &rt) = 0;
@@ -181,6 +186,22 @@ class JSI_EXPORT NativeReactNativeFeatureFlagsCxxSpec : public TurboModule {
return bridging::callFromJs(
rt, &T::enableCustomFocusSearchOnClippedElementsAndroid, jsInvoker_, instance_);
}
+ bool enableDestroyShadowTreeRevisionAsync(jsi::Runtime &rt) override {
+ static_assert(
+ bridging::getParameterCount(&T::enableDestroyShadowTreeRevisionAsync) == 1,
+ "Expected enableDestroyShadowTreeRevisionAsync(...) to have 1 parameters");
+
+ return bridging::callFromJs(
+ rt, &T::enableDestroyShadowTreeRevisionAsync, jsInvoker_, instance_);
+ }
+ bool enableDoubleMeasurementFixAndroid(jsi::Runtime &rt) override {
+ static_assert(
+ bridging::getParameterCount(&T::enableDoubleMeasurementFixAndroid) == 1,
+ "Expected enableDoubleMeasurementFixAndroid(...) to have 1 parameters");
+
+ return bridging::callFromJs(
+ rt, &T::enableDoubleMeasurementFixAndroid, jsInvoker_, instance_);
+ }
bool enableEagerRootViewAttachment(jsi::Runtime &rt) override {
static_assert(
bridging::getParameterCount(&T::enableEagerRootViewAttachment) == 1,
@@ -269,6 +290,14 @@ class JSI_EXPORT NativeReactNativeFeatureFlagsCxxSpec : public TurboModule {
return bridging::callFromJs(
rt, &T::enableNativeCSSParsing, jsInvoker_, instance_);
}
+ bool enableNetworkEventReporting(jsi::Runtime &rt) override {
+ static_assert(
+ bridging::getParameterCount(&T::enableNetworkEventReporting) == 1,
+ "Expected enableNetworkEventReporting(...) to have 1 parameters");
+
+ return bridging::callFromJs(
+ rt, &T::enableNetworkEventReporting, jsInvoker_, instance_);
+ }
bool enableNewBackgroundAndBorderDrawables(jsi::Runtime &rt) override {
static_assert(
bridging::getParameterCount(&T::enableNewBackgroundAndBorderDrawables) == 1,
@@ -277,6 +306,14 @@ class JSI_EXPORT NativeReactNativeFeatureFlagsCxxSpec : public TurboModule {
return bridging::callFromJs(
rt, &T::enableNewBackgroundAndBorderDrawables, jsInvoker_, instance_);
}
+ bool enablePreparedTextLayout(jsi::Runtime &rt) override {
+ static_assert(
+ bridging::getParameterCount(&T::enablePreparedTextLayout) == 1,
+ "Expected enablePreparedTextLayout(...) to have 1 parameters");
+
+ return bridging::callFromJs(
+ rt, &T::enablePreparedTextLayout, jsInvoker_, instance_);
+ }
bool enablePropsUpdateReconciliationAndroid(jsi::Runtime &rt) override {
static_assert(
bridging::getParameterCount(&T::enablePropsUpdateReconciliationAndroid) == 1,
@@ -285,6 +322,14 @@ class JSI_EXPORT NativeReactNativeFeatureFlagsCxxSpec : public TurboModule {
return bridging::callFromJs(
rt, &T::enablePropsUpdateReconciliationAndroid, jsInvoker_, instance_);
}
+ bool enableResourceTimingAPI(jsi::Runtime &rt) override {
+ static_assert(
+ bridging::getParameterCount(&T::enableResourceTimingAPI) == 1,
+ "Expected enableResourceTimingAPI(...) to have 1 parameters");
+
+ return bridging::callFromJs(
+ rt, &T::enableResourceTimingAPI, jsInvoker_, instance_);
+ }
bool enableSynchronousStateUpdates(jsi::Runtime &rt) override {
static_assert(
bridging::getParameterCount(&T::enableSynchronousStateUpdates) == 1,
@@ -349,6 +394,14 @@ class JSI_EXPORT NativeReactNativeFeatureFlagsCxxSpec : public TurboModule {
return bridging::callFromJs(
rt, &T::fuseboxNetworkInspectionEnabled, jsInvoker_, instance_);
}
+ bool incorporateMaxLinesDuringAndroidLayout(jsi::Runtime &rt) override {
+ static_assert(
+ bridging::getParameterCount(&T::incorporateMaxLinesDuringAndroidLayout) == 1,
+ "Expected incorporateMaxLinesDuringAndroidLayout(...) to have 1 parameters");
+
+ return bridging::callFromJs(
+ rt, &T::incorporateMaxLinesDuringAndroidLayout, jsInvoker_, instance_);
+ }
bool traceTurboModulePromiseRejectionsOnAndroid(jsi::Runtime &rt) override {
static_assert(
bridging::getParameterCount(&T::traceTurboModulePromiseRejectionsOnAndroid) == 1,
@@ -373,14 +426,6 @@ class JSI_EXPORT NativeReactNativeFeatureFlagsCxxSpec : public TurboModule {
return bridging::callFromJs(
rt, &T::useAlwaysAvailableJSErrorHandling, jsInvoker_, instance_);
}
- bool useEditTextStockAndroidFocusBehavior(jsi::Runtime &rt) override {
- static_assert(
- bridging::getParameterCount(&T::useEditTextStockAndroidFocusBehavior) == 1,
- "Expected useEditTextStockAndroidFocusBehavior(...) to have 1 parameters");
-
- return bridging::callFromJs(
- rt, &T::useEditTextStockAndroidFocusBehavior, jsInvoker_, instance_);
- }
bool useFabricInterop(jsi::Runtime &rt) override {
static_assert(
bridging::getParameterCount(&T::useFabricInterop) == 1,
@@ -987,12 +1032,13 @@ class JSI_EXPORT NativeAlertManagerCxxSpec : public TurboModule {
#pragma mark - NativeAnimatedModuleEndResult
-template
+template
struct NativeAnimatedModuleEndResult {
P0 finished;
P1 value;
+ P2 offset;
bool operator==(const NativeAnimatedModuleEndResult &other) const {
- return finished == other.finished && value == other.value;
+ return finished == other.finished && value == other.value && offset == other.offset;
}
};
@@ -1006,7 +1052,8 @@ struct NativeAnimatedModuleEndResultBridging {
const std::shared_ptr &jsInvoker) {
T result{
bridging::fromJs(rt, value.getProperty(rt, "finished"), jsInvoker),
- bridging::fromJs(rt, value.getProperty(rt, "value"), jsInvoker)};
+ bridging::fromJs(rt, value.getProperty(rt, "value"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "offset"), jsInvoker)};
return result;
}
@@ -1018,6 +1065,10 @@ struct NativeAnimatedModuleEndResultBridging {
static double valueToJs(jsi::Runtime &rt, decltype(types.value) value) {
return bridging::toJs(rt, value);
}
+
+ static double offsetToJs(jsi::Runtime &rt, decltype(types.offset) value) {
+ return bridging::toJs(rt, value);
+ }
#endif
static jsi::Object toJs(
@@ -1029,6 +1080,9 @@ struct NativeAnimatedModuleEndResultBridging {
if (value.value) {
result.setProperty(rt, "value", bridging::toJs(rt, value.value.value(), jsInvoker));
}
+ if (value.offset) {
+ result.setProperty(rt, "offset", bridging::toJs(rt, value.offset.value(), jsInvoker));
+ }
return result;
}
};
@@ -1345,12 +1399,13 @@ class JSI_EXPORT NativeAnimatedModuleCxxSpec : public TurboModule {
#pragma mark - NativeAnimatedTurboModuleEndResult
-template
+template
struct NativeAnimatedTurboModuleEndResult {
P0 finished;
P1 value;
+ P2 offset;
bool operator==(const NativeAnimatedTurboModuleEndResult &other) const {
- return finished == other.finished && value == other.value;
+ return finished == other.finished && value == other.value && offset == other.offset;
}
};
@@ -1364,7 +1419,8 @@ struct NativeAnimatedTurboModuleEndResultBridging {
const std::shared_ptr &jsInvoker) {
T result{
bridging::fromJs(rt, value.getProperty(rt, "finished"), jsInvoker),
- bridging::fromJs(rt, value.getProperty(rt, "value"), jsInvoker)};
+ bridging::fromJs(rt, value.getProperty(rt, "value"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "offset"), jsInvoker)};
return result;
}
@@ -1376,6 +1432,10 @@ struct NativeAnimatedTurboModuleEndResultBridging {
static double valueToJs(jsi::Runtime &rt, decltype(types.value) value) {
return bridging::toJs(rt, value);
}
+
+ static double offsetToJs(jsi::Runtime &rt, decltype(types.offset) value) {
+ return bridging::toJs(rt, value);
+ }
#endif
static jsi::Object toJs(
@@ -1387,6 +1447,9 @@ struct NativeAnimatedTurboModuleEndResultBridging {
if (value.value) {
result.setProperty(rt, "value", bridging::toJs(rt, value.value.value(), jsInvoker));
}
+ if (value.offset) {
+ result.setProperty(rt, "offset", bridging::toJs(rt, value.offset.value(), jsInvoker));
+ }
return result;
}
};
@@ -8660,7 +8723,7 @@ struct NativePerformancePerformanceObserverInitBridging {
#pragma mark - NativePerformanceRawPerformanceEntry
-template
+template
struct NativePerformanceRawPerformanceEntry {
P0 name;
P1 entryType;
@@ -8669,8 +8732,15 @@ struct NativePerformanceRawPerformanceEntry {
P4 processingStart;
P5 processingEnd;
P6 interactionId;
+ P7 fetchStart;
+ P8 requestStart;
+ P9 connectStart;
+ P10 connectEnd;
+ P11 responseStart;
+ P12 responseEnd;
+ P13 responseStatus;
bool operator==(const NativePerformanceRawPerformanceEntry &other) const {
- return name == other.name && entryType == other.entryType && startTime == other.startTime && duration == other.duration && processingStart == other.processingStart && processingEnd == other.processingEnd && interactionId == other.interactionId;
+ return name == other.name && entryType == other.entryType && startTime == other.startTime && duration == other.duration && processingStart == other.processingStart && processingEnd == other.processingEnd && interactionId == other.interactionId && fetchStart == other.fetchStart && requestStart == other.requestStart && connectStart == other.connectStart && connectEnd == other.connectEnd && responseStart == other.responseStart && responseEnd == other.responseEnd && responseStatus == other.responseStatus;
}
};
@@ -8689,7 +8759,14 @@ struct NativePerformanceRawPerformanceEntryBridging {
bridging::fromJs(rt, value.getProperty(rt, "duration"), jsInvoker),
bridging::fromJs(rt, value.getProperty(rt, "processingStart"), jsInvoker),
bridging::fromJs(rt, value.getProperty(rt, "processingEnd"), jsInvoker),
- bridging::fromJs(rt, value.getProperty(rt, "interactionId"), jsInvoker)};
+ bridging::fromJs(rt, value.getProperty(rt, "interactionId"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "fetchStart"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "requestStart"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "connectStart"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "connectEnd"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "responseStart"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "responseEnd"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "responseStatus"), jsInvoker)};
return result;
}
@@ -8721,6 +8798,34 @@ struct NativePerformanceRawPerformanceEntryBridging {
static double interactionIdToJs(jsi::Runtime &rt, decltype(types.interactionId) value) {
return bridging::toJs(rt, value);
}
+
+ static double fetchStartToJs(jsi::Runtime &rt, decltype(types.fetchStart) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static double requestStartToJs(jsi::Runtime &rt, decltype(types.requestStart) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static double connectStartToJs(jsi::Runtime &rt, decltype(types.connectStart) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static double connectEndToJs(jsi::Runtime &rt, decltype(types.connectEnd) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static double responseStartToJs(jsi::Runtime &rt, decltype(types.responseStart) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static double responseEndToJs(jsi::Runtime &rt, decltype(types.responseEnd) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static double responseStatusToJs(jsi::Runtime &rt, decltype(types.responseStatus) value) {
+ return bridging::toJs(rt, value);
+ }
#endif
static jsi::Object toJs(
@@ -8741,6 +8846,27 @@ struct NativePerformanceRawPerformanceEntryBridging {
if (value.interactionId) {
result.setProperty(rt, "interactionId", bridging::toJs(rt, value.interactionId.value(), jsInvoker));
}
+ if (value.fetchStart) {
+ result.setProperty(rt, "fetchStart", bridging::toJs(rt, value.fetchStart.value(), jsInvoker));
+ }
+ if (value.requestStart) {
+ result.setProperty(rt, "requestStart", bridging::toJs(rt, value.requestStart.value(), jsInvoker));
+ }
+ if (value.connectStart) {
+ result.setProperty(rt, "connectStart", bridging::toJs(rt, value.connectStart.value(), jsInvoker));
+ }
+ if (value.connectEnd) {
+ result.setProperty(rt, "connectEnd", bridging::toJs(rt, value.connectEnd.value(), jsInvoker));
+ }
+ if (value.responseStart) {
+ result.setProperty(rt, "responseStart", bridging::toJs(rt, value.responseStart.value(), jsInvoker));
+ }
+ if (value.responseEnd) {
+ result.setProperty(rt, "responseEnd", bridging::toJs(rt, value.responseEnd.value(), jsInvoker));
+ }
+ if (value.responseStatus) {
+ result.setProperty(rt, "responseStatus", bridging::toJs(rt, value.responseStatus.value(), jsInvoker));
+ }
return result;
}
};
diff --git a/vnext/overrides.json b/vnext/overrides.json
index 93c3528a5f7..aa98107cb5c 100644
--- a/vnext/overrides.json
+++ b/vnext/overrides.json
@@ -8,13 +8,13 @@
"**/__snapshots__/**",
"src-win/rntypes/**"
],
- "baseVersion": "0.80.0-nightly-20250428-9efcdc091",
+ "baseVersion": "0.80.0-nightly-20250506-3ac16dd6a",
"overrides": [
{
"type": "derived",
"file": ".flowconfig",
"baseFile": ".flowconfig",
- "baseHash": "d274ca7bb384b334c5b2ee0827726e7a3d6c98c9"
+ "baseHash": "70ed729d5f52c241530e8459cc40263d4e9fa9c0"
},
{
"type": "derived",
@@ -26,7 +26,7 @@
"type": "derived",
"file": "Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp",
"baseFile": "packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp",
- "baseHash": "ea5dfca71e7440a2f9e90b1270123a91ce0ee04a"
+ "baseHash": "88a0780d1f5ca006ffabc083265537ddb526e634"
},
{
"type": "derived",
@@ -156,7 +156,7 @@
"type": "patch",
"file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp",
"baseFile": "packages/react-native/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp",
- "baseHash": "a48cdffb7feb85e78244f6ef4f440ee11e260d4d",
+ "baseHash": "5157ead9e3526366c1900af19615ba3818975b66",
"issue": 14204
},
{
@@ -169,7 +169,7 @@
"type": "patch",
"file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityProps.cpp",
"baseFile": "packages/react-native/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp",
- "baseHash": "0b7955fc456e4daebd0f1b01a386f93ff1c2a645",
+ "baseHash": "1557ac3e57c91a7114fb0f6b35d05dcc341d9da6",
"issue": 14845
},
{
@@ -224,7 +224,7 @@
"type": "copy",
"directory": "ReactCopies/IntegrationTests",
"baseDirectory": "packages/rn-tester/IntegrationTests",
- "baseHash": "328bc7a8fb9eb99b7826c26cc1ace9e2207aeeb1",
+ "baseHash": "a3caedc8e2a223bf80e04801434a32934c3d60d0",
"issue": 4054
},
{
@@ -389,7 +389,7 @@
"type": "derived",
"file": "src-win/Libraries/Components/ScrollView/ScrollView.windows.js",
"baseFile": "packages/react-native/Libraries/Components/ScrollView/ScrollView.js",
- "baseHash": "e289b699d15870fd88d2fe3313db7a104e4db180"
+ "baseHash": "03d9b10d210dc747751318d9a38bc4ab1837040c"
},
{
"type": "derived",
@@ -413,7 +413,7 @@
"type": "patch",
"file": "src-win/Libraries/Components/TextInput/TextInput.windows.js",
"baseFile": "packages/react-native/Libraries/Components/TextInput/TextInput.js",
- "baseHash": "4b3128471dd0d362e9828df8937f708d53694e12"
+ "baseHash": "9965c0079652083ab549bc2799eb9528b56a1b2d"
},
{
"type": "patch",
@@ -480,13 +480,13 @@
"type": "derived",
"file": "src-win/Libraries/Components/View/ViewAccessibility.d.ts",
"baseFile": "packages/react-native/Libraries/Components/View/ViewAccessibility.d.ts",
- "baseHash": "d97e29f01e57cc2b0de209a03f8584b984cfe190"
+ "baseHash": "1e4e3a89397960e8f08b86be62496473829c0ac3"
},
{
"type": "patch",
"file": "src-win/Libraries/Components/View/ViewAccessibility.windows.js",
"baseFile": "packages/react-native/Libraries/Components/View/ViewAccessibility.js",
- "baseHash": "c30dab3926869e84edafebd485e78637d69ccd61"
+ "baseHash": "04981261b2ed61b31bfbb396478bb6b103d99253"
},
{
"type": "derived",
@@ -571,7 +571,7 @@
"type": "derived",
"file": "src-win/Libraries/NativeComponent/BaseViewConfig.windows.js",
"baseFile": "packages/react-native/Libraries/NativeComponent/BaseViewConfig.ios.js",
- "baseHash": "3ba8fe1a60d744e057e856bc43e2df28f4fd7f66"
+ "baseHash": "b520e2bdb2be31bdb6ad7e3769dbe69168870c8c"
},
{
"type": "derived",
@@ -585,18 +585,6 @@
"baseFile": "packages/react-native/Libraries/Network/RCTNetworking.ios.js",
"baseHash": "4b96609d7e8d0596d2960aacfda35af73cec1085"
},
- {
- "type": "patch",
- "file": "src-win/Libraries/NewAppScreen/components/DebugInstructions.windows.js",
- "baseFile": "packages/react-native/Libraries/NewAppScreen/components/DebugInstructions.js",
- "baseHash": "b11b6f41d6bf218274fef43f01e1d8785cb57451"
- },
- {
- "type": "patch",
- "file": "src-win/Libraries/NewAppScreen/components/ReloadInstructions.windows.js",
- "baseFile": "packages/react-native/Libraries/NewAppScreen/components/ReloadInstructions.js",
- "baseHash": "c013edfa5357640c1c956b23af870619805ab634"
- },
{
"type": "platform",
"file": "src-win/Libraries/platform-types.d.ts"
diff --git a/vnext/package.json b/vnext/package.json
index 6c406bececa..7c1fcc8a79b 100644
--- a/vnext/package.json
+++ b/vnext/package.json
@@ -28,18 +28,18 @@
"@react-native-community/cli-platform-ios": "17.0.0",
"@react-native-windows/cli": "0.0.0-canary.269",
"@react-native/assets": "1.0.0",
- "@react-native/assets-registry": "0.80.0-nightly-20250428-9efcdc091",
- "@react-native/codegen": "0.80.0-nightly-20250428-9efcdc091",
- "@react-native/community-cli-plugin": "0.80.0-nightly-20250428-9efcdc091",
- "@react-native/gradle-plugin": "0.80.0-nightly-20250428-9efcdc091",
- "@react-native/js-polyfills": "0.80.0-nightly-20250428-9efcdc091",
- "@react-native/normalize-colors": "0.80.0-nightly-20250428-9efcdc091",
- "@react-native/virtualized-lists": "0.80.0-nightly-20250428-9efcdc091",
+ "@react-native/assets-registry": "0.80.0-nightly-20250506-3ac16dd6a",
+ "@react-native/codegen": "0.80.0-nightly-20250506-3ac16dd6a",
+ "@react-native/community-cli-plugin": "0.80.0-nightly-20250506-3ac16dd6a",
+ "@react-native/gradle-plugin": "0.80.0-nightly-20250506-3ac16dd6a",
+ "@react-native/js-polyfills": "0.80.0-nightly-20250506-3ac16dd6a",
+ "@react-native/normalize-colors": "0.80.0-nightly-20250506-3ac16dd6a",
+ "@react-native/virtualized-lists": "0.80.0-nightly-20250506-3ac16dd6a",
"abort-controller": "^3.0.0",
"anser": "^1.4.9",
"ansi-regex": "^5.0.0",
"babel-jest": "^29.7.0",
- "babel-plugin-syntax-hermes-parser": "0.25.1",
+ "babel-plugin-syntax-hermes-parser": "0.28.1",
"base64-js": "^1.5.1",
"chalk": "^4.0.0",
"commander": "^12.0.0",
@@ -49,8 +49,8 @@
"invariant": "^2.2.4",
"jest-environment-node": "^29.7.0",
"memoize-one": "^5.0.0",
- "metro-runtime": "^0.82.0",
- "metro-source-map": "^0.82.0",
+ "metro-runtime": "^0.82.2",
+ "metro-source-map": "^0.82.2",
"mkdirp": "^0.5.1",
"nullthrows": "^1.1.1",
"pretty-format": "^29.7.0",
@@ -58,7 +58,7 @@
"react-devtools-core": "^6.1.1",
"react-refresh": "^0.14.0",
"regenerator-runtime": "^0.13.2",
- "scheduler": "0.25.0",
+ "scheduler": "0.26.0",
"semver": "^7.1.3",
"source-map-support": "^0.5.19",
"stacktrace-parser": "^0.1.10",
@@ -68,7 +68,7 @@
},
"devDependencies": {
"@react-native-windows/codegen": "0.0.0-canary.124",
- "@react-native/metro-config": "0.80.0-nightly-20250428-9efcdc091",
+ "@react-native/metro-config": "0.80.0-nightly-20250506-3ac16dd6a",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.36",
"@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.40",
@@ -83,15 +83,15 @@
"just-scripts": "^1.3.3",
"prettier": "2.8.8",
"react": "19.1.0",
- "react-native": "0.80.0-nightly-20250428-9efcdc091",
+ "react-native": "0.80.0-nightly-20250506-3ac16dd6a",
"react-native-platform-override": "^1.9.56",
"react-refresh": "^0.14.0",
"typescript": "5.0.4"
},
"peerDependencies": {
- "@types/react": "^19.0.0",
+ "@types/react": "^19.1.0",
"react": "^19.1.0",
- "react-native": "0.80.0-nightly-20250428-9efcdc091"
+ "react-native": "0.80.0-nightly-20250506-3ac16dd6a"
},
"beachball": {
"defaultNpmTag": "canary",
diff --git a/vnext/src-win/Libraries/NewAppScreen/components/DebugInstructions.windows.js b/vnext/src-win/Libraries/NewAppScreen/components/DebugInstructions.windows.js
deleted file mode 100644
index 1e4f077b050..00000000000
--- a/vnext/src-win/Libraries/NewAppScreen/components/DebugInstructions.windows.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- * @flow strict-local
- * @format
- */
-
-import StyleSheet from '../../StyleSheet/StyleSheet';
-import Text from '../../Text/Text';
-import Platform from '../../Utilities/Platform';
-import * as React from 'react';
-
-const styles = StyleSheet.create({
- highlight: {
- fontWeight: '700',
- },
-});
-
-const DebugInstructions = (): React.Node => (
-
- Press Ctrl+Shift+D to open the Dev
- Menu.
-
-);
-
-export default DebugInstructions;
diff --git a/vnext/src-win/Libraries/NewAppScreen/components/ReloadInstructions.windows.js b/vnext/src-win/Libraries/NewAppScreen/components/ReloadInstructions.windows.js
deleted file mode 100644
index c939dc48267..00000000000
--- a/vnext/src-win/Libraries/NewAppScreen/components/ReloadInstructions.windows.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- * @flow strict-local
- * @format
- */
-
-import StyleSheet from '../../StyleSheet/StyleSheet';
-import Text from '../../Text/Text';
-import Platform from '../../Utilities/Platform';
-import * as React from 'react';
-
-const styles = StyleSheet.create({
- highlight: {
- fontWeight: '700',
- },
-});
-
-const ReloadInstructions = (): React.Node => (
-
- Press Ctrl+Shift+D and select{' '}
- Reload javascript to reload your app's
- code.
-
-);
-
-export default ReloadInstructions;
diff --git a/yarn.lock b/yarn.lock
index fc8d92ca087..35ca62b6a11 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2102,28 +2102,28 @@
resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-2.11.0.tgz#4587fbce6a382adedad74311e96ee10bb2b2d63a"
integrity sha512-QuZU6gbxmOID5zZgd/H90NgBnbJ3VV6qVzp6c7/dDrmWdX8S0X5YFYgDcQFjE3dRen9wB9FWnj2VVdPU64adSg==
-"@react-native/assets-registry@0.80.0-nightly-20250428-9efcdc091":
- version "0.80.0-nightly-20250428-9efcdc091"
- resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.80.0-nightly-20250428-9efcdc091.tgz#30e725640cb2c2744542ed7d805dba7214203c0b"
- integrity sha512-r1ehtWh0kdiGpITFT1v+/qemsTluyAD/GfARxz7H1ychlpMD4SaQ46QkRHcqQOeNfJnbSY3JLCniyNz2JbF1+g==
+"@react-native/assets-registry@0.80.0-nightly-20250506-3ac16dd6a":
+ version "0.80.0-nightly-20250506-3ac16dd6a"
+ resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.80.0-nightly-20250506-3ac16dd6a.tgz#96a106e32436f6af1274742b693d13cb53b20ecf"
+ integrity sha512-/Wc3owDcMQh/Oipst/WaWYVNItTyH63esR/PCITyxLvNs6C5lEp9eEs1Cd32VDDFumvy9X2udwSD+oDqToAlnQ==
"@react-native/assets@1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e"
integrity sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ==
-"@react-native/babel-plugin-codegen@0.80.0-nightly-20250428-9efcdc091":
- version "0.80.0-nightly-20250428-9efcdc091"
- resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.80.0-nightly-20250428-9efcdc091.tgz#2f99d9617622aaaca1ec17d4210aa12c759d30d4"
- integrity sha512-iIkSYORMYd/S9OfTHcSkl/4G2IZzsLpaBi2NHSrWuULutqmtO9GKD0yAQhBJj0cKTbPpjjHAeabDN2K8f4+FnQ==
+"@react-native/babel-plugin-codegen@0.80.0-nightly-20250506-3ac16dd6a":
+ version "0.80.0-nightly-20250506-3ac16dd6a"
+ resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.80.0-nightly-20250506-3ac16dd6a.tgz#877aad438cbc6fd519837f8815e88698367c78dd"
+ integrity sha512-hO6xN/aw8++XNCASAyOFdn5nlQQiTnyH97IXx5vA7szX1JAIyPOS+H2huv/LSDdbDM0RymymwcFf+2Gq5fzNSQ==
dependencies:
"@babel/traverse" "^7.25.3"
- "@react-native/codegen" "0.80.0-nightly-20250428-9efcdc091"
+ "@react-native/codegen" "0.80.0-nightly-20250506-3ac16dd6a"
-"@react-native/babel-preset@0.80.0-nightly-20250428-9efcdc091":
- version "0.80.0-nightly-20250428-9efcdc091"
- resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.80.0-nightly-20250428-9efcdc091.tgz#ee5b61976c719f10d5e546e7c75b7f605138e912"
- integrity sha512-LU1JtPnEc5vLzEqG8rZJG41yOz2EHi/v+9RDEmW41akgN7mIMHtN7DfHf8ky0rq+CBpVgLFz2L9ZHVioL8zwdw==
+"@react-native/babel-preset@0.80.0-nightly-20250506-3ac16dd6a":
+ version "0.80.0-nightly-20250506-3ac16dd6a"
+ resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.80.0-nightly-20250506-3ac16dd6a.tgz#cd9c78ba2c7a108396d16232d0452e2aa7cd3aec"
+ integrity sha512-A2Z3HROkkFdCzjJY5AWUTqixzvtQjEsrKCyWnQIQuE63U2juqYBp+CUt8oVCMnsn2tPxWx+RBKen6YNb3jLgqw==
dependencies:
"@babel/core" "^7.25.2"
"@babel/plugin-proposal-export-default-from" "^7.24.7"
@@ -2166,15 +2166,15 @@
"@babel/plugin-transform-typescript" "^7.25.2"
"@babel/plugin-transform-unicode-regex" "^7.24.7"
"@babel/template" "^7.25.0"
- "@react-native/babel-plugin-codegen" "0.80.0-nightly-20250428-9efcdc091"
+ "@react-native/babel-plugin-codegen" "0.80.0-nightly-20250506-3ac16dd6a"
babel-plugin-syntax-hermes-parser "0.28.1"
babel-plugin-transform-flow-enums "^0.0.2"
react-refresh "^0.14.0"
-"@react-native/codegen@0.80.0-nightly-20250428-9efcdc091":
- version "0.80.0-nightly-20250428-9efcdc091"
- resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.80.0-nightly-20250428-9efcdc091.tgz#d39f1311a33369974ce72b310244567b5be86f7b"
- integrity sha512-JtG2i6A7/PkAATr1EqvUoWadOTX8J8egdYeZJfCkjSiD6tDMnnI13cui6Ir2wIHk9UizeQfQ8o5AXzm9EKKieQ==
+"@react-native/codegen@0.80.0-nightly-20250506-3ac16dd6a":
+ version "0.80.0-nightly-20250506-3ac16dd6a"
+ resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.80.0-nightly-20250506-3ac16dd6a.tgz#770b9f32d979a2faf7626c0b6062c7c63ebd05ae"
+ integrity sha512-E113BVFEWQJMKOq4ofnDfjSisi61iqyf+D0yY8bAQPcpRWcUNFac7FQ8t9r/P0hp2sJ69/0/AbPZySE+2Z56gg==
dependencies:
glob "^7.1.1"
hermes-parser "0.28.1"
@@ -2182,32 +2182,32 @@
nullthrows "^1.1.1"
yargs "^17.6.2"
-"@react-native/community-cli-plugin@0.80.0-nightly-20250428-9efcdc091":
- version "0.80.0-nightly-20250428-9efcdc091"
- resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.80.0-nightly-20250428-9efcdc091.tgz#f29dac6969917bc8555973b0a2fc536ea5826943"
- integrity sha512-vsjZvttksG7FtEssj4FWpbov+XqCC9CfTDOO4aUK3QtKq49OqBNsSBRtUFo/Xb5gp+KZO1BtQMiZ0dp4rk/2nw==
+"@react-native/community-cli-plugin@0.80.0-nightly-20250506-3ac16dd6a":
+ version "0.80.0-nightly-20250506-3ac16dd6a"
+ resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.80.0-nightly-20250506-3ac16dd6a.tgz#ef17fe4dbde79c387dafffd59e9fb6d5fdbaf969"
+ integrity sha512-ONFXGhZyDgcmxXx3roQc+8ErkRFap2MOIoFM6Pk9bMp+TMyElI53oDCB5aQHnZjA5Kgmpnzh3T31KmrWLhINig==
dependencies:
- "@react-native/dev-middleware" "0.80.0-nightly-20250428-9efcdc091"
+ "@react-native/dev-middleware" "0.80.0-nightly-20250506-3ac16dd6a"
chalk "^4.0.0"
debug "^4.4.0"
invariant "^2.2.4"
- metro "^0.82.0"
- metro-config "^0.82.0"
- metro-core "^0.82.0"
+ metro "^0.82.2"
+ metro-config "^0.82.2"
+ metro-core "^0.82.2"
semver "^7.1.3"
-"@react-native/debugger-frontend@0.80.0-nightly-20250428-9efcdc091":
- version "0.80.0-nightly-20250428-9efcdc091"
- resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.80.0-nightly-20250428-9efcdc091.tgz#0a10422053431523204c166af6c6dbfbce092e5a"
- integrity sha512-9QLos//Zk40QCGrYP7ANJVvBivxUWOQtB+SLHY+TjYE75Fh+TnvVE7REmAQz/8zHbJDujaedWCV7/wD7HlcvQw==
+"@react-native/debugger-frontend@0.80.0-nightly-20250506-3ac16dd6a":
+ version "0.80.0-nightly-20250506-3ac16dd6a"
+ resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.80.0-nightly-20250506-3ac16dd6a.tgz#6b5db29e9551e7e49e1d4b30b87d9a57e66c545f"
+ integrity sha512-tdBu1i4Ng2MsZ5Kc7XcGv0/5dRSrmb5l3IhYUBG5ofz4SRHUfCzTRmrXOptPyX3bmWGEuPFU8nYPAeIVI3Lr8w==
-"@react-native/dev-middleware@0.80.0-nightly-20250428-9efcdc091":
- version "0.80.0-nightly-20250428-9efcdc091"
- resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.80.0-nightly-20250428-9efcdc091.tgz#5f5b3251bc4a4ed3e1ad704fcb4434ee631d4275"
- integrity sha512-FmP568BPJIR69I/8iWGsuhYVSL67T2KxANHx97Nyvy8Ul5oGNPuCGaCoSu3ZpjAuGs4uaGHPekLotLMx3A6unA==
+"@react-native/dev-middleware@0.80.0-nightly-20250506-3ac16dd6a":
+ version "0.80.0-nightly-20250506-3ac16dd6a"
+ resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.80.0-nightly-20250506-3ac16dd6a.tgz#3dd400db8780baa86cb70909bbfba533cb433d0e"
+ integrity sha512-AR3C6c252ToCzExcwHQKqcKAODl6yFVrCFAerT6kZZY1NBRmSKhbJpM1USxqIw3wEHQAquBtYIT0sRx1sYHmMg==
dependencies:
"@isaacs/ttlcache" "^1.4.1"
- "@react-native/debugger-frontend" "0.80.0-nightly-20250428-9efcdc091"
+ "@react-native/debugger-frontend" "0.80.0-nightly-20250506-3ac16dd6a"
chrome-launcher "^0.15.2"
chromium-edge-launcher "^0.2.0"
connect "^3.6.5"
@@ -2241,52 +2241,52 @@
resolved "https://registry.yarnpkg.com/@react-native/eslint-plugin/-/eslint-plugin-0.79.0-nightly-20250123-d1028885e.tgz#7983608a83b724ab2f31d2e84e67fb5f9a7ad3b1"
integrity sha512-vYrjxRh3wvL9MmmmsO52keyONK8O7CqayB1gvgSf/EeptcnnCpd0YdJ06NU54aB3zh6p+k4vkxHliNFqpBTFBg==
-"@react-native/gradle-plugin@0.80.0-nightly-20250428-9efcdc091":
- version "0.80.0-nightly-20250428-9efcdc091"
- resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.80.0-nightly-20250428-9efcdc091.tgz#929f3cb82181f0ea37e542ed3e5d05d788c7833c"
- integrity sha512-XWLirqs3UZzaFGJXGPQ7GmZCylwf+nGx3Pfo5B5vx5B5KEXQM3EXc0vwnnQJGOhDo4/FG2TA85OZ/eLBzn3eHw==
+"@react-native/gradle-plugin@0.80.0-nightly-20250506-3ac16dd6a":
+ version "0.80.0-nightly-20250506-3ac16dd6a"
+ resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.80.0-nightly-20250506-3ac16dd6a.tgz#610b42225c1d12b2d90a4b1dd183636cfc5ddd93"
+ integrity sha512-VPZBym29PDLlTpFm+jirKuRcaRFFpTOZPCLgtkNRVVF93kAXc40doFUapH80c4+CHnCFYouGi74hZDVxpoj/DA==
-"@react-native/js-polyfills@0.80.0-nightly-20250428-9efcdc091":
- version "0.80.0-nightly-20250428-9efcdc091"
- resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.80.0-nightly-20250428-9efcdc091.tgz#96140bdf6aedc63b46f10f193a5afac64ac7d432"
- integrity sha512-4rFLOY4bXLKkg1nwcHEST3ay1AINxJ47ZjO7npjuianY7vDlCvFGisnvjTG77N6jE6uEy86eL+Hm9ewDdehIBQ==
+"@react-native/js-polyfills@0.80.0-nightly-20250506-3ac16dd6a":
+ version "0.80.0-nightly-20250506-3ac16dd6a"
+ resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.80.0-nightly-20250506-3ac16dd6a.tgz#f2c36c596e817f66ad6ff0084f5e0261876252f5"
+ integrity sha512-NGyURPiR5p5vZ8waweCrHNumRS4oKX+vJ+3WXZDlx4F5mfXq6QUcQW4djUjOqUVYxpdfCMw23fKCEeNQIPbu8Q==
-"@react-native/metro-babel-transformer@0.80.0-nightly-20250428-9efcdc091":
- version "0.80.0-nightly-20250428-9efcdc091"
- resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.80.0-nightly-20250428-9efcdc091.tgz#1809b80ef231f2696083cbcc8368a05e525cd828"
- integrity sha512-eJBF0aAPON5u11V5FO2NHsadaYTtRU7xpwwDJoZBsoWDC3JJVKzyT9tJuzf7AmwFtNsOTcehyC+IOhGy4wuUUQ==
+"@react-native/metro-babel-transformer@0.80.0-nightly-20250506-3ac16dd6a":
+ version "0.80.0-nightly-20250506-3ac16dd6a"
+ resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.80.0-nightly-20250506-3ac16dd6a.tgz#b15eceae51b4e381d7ef81dec90374eeaae8e682"
+ integrity sha512-GdDeiCs5+ZjRQK5x21u5PtTk+sAq39XiXGqI2dPPFgstGsJulI6uy3jQpaV52c9sIn4IKoZyshHnnZpLk35SzQ==
dependencies:
"@babel/core" "^7.25.2"
- "@react-native/babel-preset" "0.80.0-nightly-20250428-9efcdc091"
+ "@react-native/babel-preset" "0.80.0-nightly-20250506-3ac16dd6a"
hermes-parser "0.28.1"
nullthrows "^1.1.1"
-"@react-native/metro-config@0.80.0-nightly-20250428-9efcdc091":
- version "0.80.0-nightly-20250428-9efcdc091"
- resolved "https://registry.yarnpkg.com/@react-native/metro-config/-/metro-config-0.80.0-nightly-20250428-9efcdc091.tgz#1def0ae94886387111524e05fb8b9fb2e8b282f8"
- integrity sha512-4hne4kJU/bKNqH1VXROXViU+c+dZK7VkvHIrdqT4U3lYQcG2xx7zic/S53t1PuIB/sD0LdAm4MmMKJgh8W1Xbg==
+"@react-native/metro-config@0.80.0-nightly-20250506-3ac16dd6a":
+ version "0.80.0-nightly-20250506-3ac16dd6a"
+ resolved "https://registry.yarnpkg.com/@react-native/metro-config/-/metro-config-0.80.0-nightly-20250506-3ac16dd6a.tgz#8e26f0272a297ee9a9a122ecb0daa32679d67f5d"
+ integrity sha512-n96JOREUO6tBIoD4uAkjj9oucR8mQ/022bUxWRF0D0Ny0cW3x94hw0CJdSU/NUDLvGWon+IIqFUFMviFFvrZ+Q==
dependencies:
- "@react-native/js-polyfills" "0.80.0-nightly-20250428-9efcdc091"
- "@react-native/metro-babel-transformer" "0.80.0-nightly-20250428-9efcdc091"
- metro-config "^0.82.0"
- metro-runtime "^0.82.0"
+ "@react-native/js-polyfills" "0.80.0-nightly-20250506-3ac16dd6a"
+ "@react-native/metro-babel-transformer" "0.80.0-nightly-20250506-3ac16dd6a"
+ metro-config "^0.82.2"
+ metro-runtime "^0.82.2"
-"@react-native/normalize-colors@0.80.0-nightly-20250428-9efcdc091":
- version "0.80.0-nightly-20250428-9efcdc091"
- resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.80.0-nightly-20250428-9efcdc091.tgz#cd3c35ba0d09c48d85317b6d88af7af627d11c0e"
- integrity sha512-B9hs79cA/T0GENU5mAjimEXVbwENV3V0rRGFk8nJXMmbH5tB2SPTiLNsFj4vzvzGLSEHa+yvJHHrzEKBMmqDdg==
+"@react-native/normalize-colors@0.80.0-nightly-20250506-3ac16dd6a":
+ version "0.80.0-nightly-20250506-3ac16dd6a"
+ resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.80.0-nightly-20250506-3ac16dd6a.tgz#b230017ab7a900c3a3254d6ddee05152b2ed2a5d"
+ integrity sha512-YrTqzVFexk04ksSni3bRk6cqp83JS9XJwWc1K9esnRM/IEfh4Glc3A0IZVNA1PC93oImPdIeC06OKdZLeg0OGQ==
-"@react-native/popup-menu-android@0.80.0-nightly-20250428-9efcdc091":
- version "0.80.0-nightly-20250428-9efcdc091"
- resolved "https://registry.yarnpkg.com/@react-native/popup-menu-android/-/popup-menu-android-0.80.0-nightly-20250428-9efcdc091.tgz#b97733260f0566a501f98a11209722ef1e75c2f8"
- integrity sha512-ZnQyIs1hSauBAEfJsnQkZPGs0DIxrrz0XQ2BrrUjEUuOEw13cgqKwzM/wMYn4zhDS53QB9UQVtoRZ8jlBpOIBQ==
+"@react-native/popup-menu-android@0.80.0-nightly-20250506-3ac16dd6a":
+ version "0.80.0-nightly-20250506-3ac16dd6a"
+ resolved "https://registry.yarnpkg.com/@react-native/popup-menu-android/-/popup-menu-android-0.80.0-nightly-20250506-3ac16dd6a.tgz#7366dd0aef5e45b5ba6dedec9b08a2d85904a501"
+ integrity sha512-47SIxem0f6cbQocMZei6hSpX6OGNt34kpCw2S1TodvG9CxF1s6l+dpsG3znCTUhvCAbz/lxEoOnQeCU7qny6HA==
dependencies:
nullthrows "^1.1.1"
-"@react-native/virtualized-lists@0.80.0-nightly-20250428-9efcdc091":
- version "0.80.0-nightly-20250428-9efcdc091"
- resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.80.0-nightly-20250428-9efcdc091.tgz#b4a690befe4aaebf3ed22604f48d76cf91ea1fb6"
- integrity sha512-mNWZWlwRNe9Y2T8DaBf1LDsNMzjnBoXmt99YdAgxAdT0Cks1M/egPpos6N4N7vbtqoWh9SVOZGlohY8i4Oktng==
+"@react-native/virtualized-lists@0.80.0-nightly-20250506-3ac16dd6a":
+ version "0.80.0-nightly-20250506-3ac16dd6a"
+ resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.80.0-nightly-20250506-3ac16dd6a.tgz#d95c69a582365e6ab8210e26a959745c9467add1"
+ integrity sha512-wctCyAYEV/uPyGhnrncB5C2f51UvS5fhta/YdbEEhaMtkxxRMq/lSYeI5pC/F9iiMfuwlTXX47bZE9/PlOTBdA==
dependencies:
invariant "^2.2.4"
nullthrows "^1.1.1"
@@ -2836,6 +2836,13 @@
dependencies:
csstype "^3.0.2"
+"@types/react@^19.1.0":
+ version "19.1.8"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.8.tgz#ff8395f2afb764597265ced15f8dddb0720ae1c3"
+ integrity sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==
+ dependencies:
+ csstype "^3.0.2"
+
"@types/readline-sync@^1.4.4":
version "1.4.8"
resolved "https://registry.yarnpkg.com/@types/readline-sync/-/readline-sync-1.4.8.tgz#dc9767a93fc83825d90331f2549a2e90fc3255f0"
@@ -3942,13 +3949,6 @@ babel-plugin-replace-ts-export-assignment@^0.0.2:
resolved "https://registry.yarnpkg.com/babel-plugin-replace-ts-export-assignment/-/babel-plugin-replace-ts-export-assignment-0.0.2.tgz#927a30ba303fcf271108980a8d4f80a693e1d53f"
integrity sha512-BiTEG2Ro+O1spuheL5nB289y37FFmz0ISE6GjpNCG2JuA/WNcuEHSYw01+vN8quGf208sID3FnZFDwVyqX18YQ==
-babel-plugin-syntax-hermes-parser@0.25.1:
- version "0.25.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.25.1.tgz#58b539df973427fcfbb5176a3aec7e5dee793cb0"
- integrity sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ==
- dependencies:
- hermes-parser "0.25.1"
-
babel-plugin-syntax-hermes-parser@0.28.1:
version "0.28.1"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.28.1.tgz#9e80a774ddb8038307a62316486669c668fb3568"
@@ -6801,16 +6801,16 @@ hermes-estree@0.23.1:
resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.23.1.tgz#d0bac369a030188120ee7024926aabe5a9f84fdb"
integrity sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==
-hermes-estree@0.25.1:
- version "0.25.1"
- resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.25.1.tgz#6aeec17d1983b4eabf69721f3aa3eb705b17f480"
- integrity sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==
-
hermes-estree@0.28.1:
version "0.28.1"
resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.28.1.tgz#631e6db146b06e62fc1c630939acf4a3c77d1b24"
integrity sha512-w3nxl/RGM7LBae0v8LH2o36+8VqwOZGv9rX1wyoWT6YaKZLqpJZ0YQ5P0LVr3tuRpf7vCx0iIG4i/VmBJejxTQ==
+hermes-estree@0.29.1:
+ version "0.29.1"
+ resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.29.1.tgz#043c7db076e0e8ef8c5f6ed23828d1ba463ebcc5"
+ integrity sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==
+
hermes-parser@0.21.1:
version "0.21.1"
resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.21.1.tgz#b2ab42b6ee1bed8c659ed61a03d3f61a63183ada"
@@ -6825,13 +6825,6 @@ hermes-parser@0.23.1:
dependencies:
hermes-estree "0.23.1"
-hermes-parser@0.25.1:
- version "0.25.1"
- resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.25.1.tgz#5be0e487b2090886c62bd8a11724cd766d5f54d1"
- integrity sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==
- dependencies:
- hermes-estree "0.25.1"
-
hermes-parser@0.28.1:
version "0.28.1"
resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.28.1.tgz#17b9e6377f334b6870a1f6da2e123fdcd0b605ac"
@@ -6839,6 +6832,13 @@ hermes-parser@0.28.1:
dependencies:
hermes-estree "0.28.1"
+hermes-parser@0.29.1:
+ version "0.29.1"
+ resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.29.1.tgz#436b24bcd7bb1e71f92a04c396ccc0716c288d56"
+ integrity sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==
+ dependencies:
+ hermes-estree "0.29.1"
+
hermes-transform@0.28.1:
version "0.28.1"
resolved "https://registry.yarnpkg.com/hermes-transform/-/hermes-transform-0.28.1.tgz#0324f38032cfaeeaa6bfb975b0474d9ae9023eaa"
@@ -8672,60 +8672,60 @@ metro-babel-register@^0.82.0:
escape-string-regexp "^1.0.5"
flow-enums-runtime "^0.0.6"
-metro-babel-transformer@0.82.4:
- version "0.82.4"
- resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.82.4.tgz#1ac029add8f75d0048c54efc266c0a78791f52b2"
- integrity sha512-4juJahGRb1gmNbQq48lNinB6WFNfb6m0BQqi/RQibEltNiqTCxew/dBspI2EWA4xVCd3mQWGfw0TML4KurQZnQ==
+metro-babel-transformer@0.82.5:
+ version "0.82.5"
+ resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.82.5.tgz#a65ed29265d8257109ab8c37884e6e3a2edee86d"
+ integrity sha512-W/scFDnwJXSccJYnOFdGiYr9srhbHPdxX9TvvACOFsIXdLilh3XuxQl/wXW6jEJfgIb0jTvoTlwwrqvuwymr6Q==
dependencies:
"@babel/core" "^7.25.2"
flow-enums-runtime "^0.0.6"
- hermes-parser "0.28.1"
+ hermes-parser "0.29.1"
nullthrows "^1.1.1"
-metro-cache-key@0.82.4:
- version "0.82.4"
- resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.82.4.tgz#21f850008fa2570a51e3958574ea5a791574752e"
- integrity sha512-2JCTqcpF+f2OghOpe/+x+JywfzDkrHdAqinPFWmK2ezNAU/qX0jBFaTETogPibFivxZJil37w9Yp6syX8rFUng==
+metro-cache-key@0.82.5:
+ version "0.82.5"
+ resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.82.5.tgz#290a0054b28a708266fb91c8028cf94be04f99c9"
+ integrity sha512-qpVmPbDJuRLrT4kcGlUouyqLGssJnbTllVtvIgXfR7ZuzMKf0mGS+8WzcqzNK8+kCyakombQWR0uDd8qhWGJcA==
dependencies:
flow-enums-runtime "^0.0.6"
-metro-cache@0.82.4:
- version "0.82.4"
- resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.82.4.tgz#f44557f8b33f5d7b7ba4ccba2880c111e9884329"
- integrity sha512-vX0ylSMGtORKiZ4G8uP6fgfPdDiCWvLZUGZ5zIblSGylOX6JYhvExl0Zg4UA9pix/SSQu5Pnp9vdODMFsNIxhw==
+metro-cache@0.82.5:
+ version "0.82.5"
+ resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.82.5.tgz#4c8fe58cd5fa30b87db0b2b6a650a771ec6fe162"
+ integrity sha512-AwHV9607xZpedu1NQcjUkua8v7HfOTKfftl6Vc9OGr/jbpiJX6Gpy8E/V9jo/U9UuVYX2PqSUcVNZmu+LTm71Q==
dependencies:
exponential-backoff "^3.1.1"
flow-enums-runtime "^0.0.6"
https-proxy-agent "^7.0.5"
- metro-core "0.82.4"
+ metro-core "0.82.5"
-metro-config@0.82.4, metro-config@^0.82.0:
- version "0.82.4"
- resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.82.4.tgz#d42fa8b6a4d53493c34d217bbc6c13ee4817355c"
- integrity sha512-Ki3Wumr3hKHGDS7RrHsygmmRNc/PCJrvkLn0+BWWxmbOmOcMMJDSmSI+WRlT8jd5VPZFxIi4wg+sAt5yBXAK0g==
+metro-config@0.82.5, metro-config@^0.82.2:
+ version "0.82.5"
+ resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.82.5.tgz#07366f32c3fe6203d630af7df4781900816c7c85"
+ integrity sha512-/r83VqE55l0WsBf8IhNmc/3z71y2zIPe5kRSuqA5tY/SL/ULzlHUJEMd1szztd0G45JozLwjvrhAzhDPJ/Qo/g==
dependencies:
connect "^3.6.5"
cosmiconfig "^5.0.5"
flow-enums-runtime "^0.0.6"
jest-validate "^29.7.0"
- metro "0.82.4"
- metro-cache "0.82.4"
- metro-core "0.82.4"
- metro-runtime "0.82.4"
+ metro "0.82.5"
+ metro-cache "0.82.5"
+ metro-core "0.82.5"
+ metro-runtime "0.82.5"
-metro-core@0.82.4, metro-core@^0.82.0:
- version "0.82.4"
- resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.82.4.tgz#f7f498929ac066dafe704c3598a990eeb2acdc8c"
- integrity sha512-Xo4ozbxPg2vfgJGCgXZ8sVhC2M0lhTqD+tsKO2q9aelq/dCjnnSb26xZKcQO80CQOQUL7e3QWB7pLFGPjZm31A==
+metro-core@0.82.5, metro-core@^0.82.2:
+ version "0.82.5"
+ resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.82.5.tgz#fda1b2f7365e3a09055dd72ba1681f8fc1f6f492"
+ integrity sha512-OJL18VbSw2RgtBm1f2P3J5kb892LCVJqMvslXxuxjAPex8OH7Eb8RBfgEo7VZSjgb/LOf4jhC4UFk5l5tAOHHA==
dependencies:
flow-enums-runtime "^0.0.6"
lodash.throttle "^4.1.1"
- metro-resolver "0.82.4"
+ metro-resolver "0.82.5"
-metro-file-map@0.82.4:
- version "0.82.4"
- resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.82.4.tgz#186d737088433dd290c5974d9d96d7e62d36e4f9"
- integrity sha512-eO7HD1O3aeNsbEe6NBZvx1lLJUrxgyATjnDmb7bm4eyF6yWOQot9XVtxTDLNifECuvsZ4jzRiTInrbmIHkTdGA==
+metro-file-map@0.82.5:
+ version "0.82.5"
+ resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.82.5.tgz#3e47410a9ce8f6c913480970226a17371c2d2974"
+ integrity sha512-vpMDxkGIB+MTN8Af5hvSAanc6zXQipsAUO+XUx3PCQieKUfLwdoa8qaZ1WAQYRpaU+CJ8vhBcxtzzo3d9IsCIQ==
dependencies:
debug "^4.4.0"
fb-watchman "^2.0.0"
@@ -8744,58 +8744,70 @@ metro-memory-fs@^0.82.0:
dependencies:
flow-enums-runtime "^0.0.6"
-metro-minify-terser@0.82.4:
- version "0.82.4"
- resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.82.4.tgz#3750c14e7a25eba591f6c75eed995f6751030618"
- integrity sha512-W79Mi6BUwWVaM8Mc5XepcqkG+TSsCyyo//dmTsgYfJcsmReQorRFodil3bbJInETvjzdnS1mCsUo9pllNjT1Hg==
+metro-minify-terser@0.82.5:
+ version "0.82.5"
+ resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.82.5.tgz#5dc77d53b6ef4079bd9c752ae046d557df4ae584"
+ integrity sha512-v6Nx7A4We6PqPu/ta1oGTqJ4Usz0P7c+3XNeBxW9kp8zayS3lHUKR0sY0wsCHInxZlNAEICx791x+uXytFUuwg==
dependencies:
flow-enums-runtime "^0.0.6"
terser "^5.15.0"
-metro-resolver@0.82.4:
- version "0.82.4"
- resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.82.4.tgz#936a2300fa577183a1e0e6f7cc405e52f9276f0e"
- integrity sha512-uWoHzOBGQTPT5PjippB8rRT3iI9CTgFA9tRiLMzrseA5o7YAlgvfTdY9vFk2qyk3lW3aQfFKWkmqENryPRpu+Q==
+metro-resolver@0.82.5:
+ version "0.82.5"
+ resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.82.5.tgz#cb810038d488a47334df444312b23f0090eca5c3"
+ integrity sha512-kFowLnWACt3bEsuVsaRNgwplT8U7kETnaFHaZePlARz4Fg8tZtmRDUmjaD68CGAwc0rwdwNCkWizLYpnyVcs2g==
dependencies:
flow-enums-runtime "^0.0.6"
-metro-runtime@0.82.4, metro-runtime@^0.82.0:
- version "0.82.4"
- resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.82.4.tgz#70e0b871683fdb594f2a7c03403b6350deca086b"
- integrity sha512-vVyFO7H+eLXRV2E7YAUYA7aMGBECGagqxmFvC2hmErS7oq90BbPVENfAHbUWq1vWH+MRiivoRxdxlN8gBoF/dw==
+metro-runtime@0.82.5, metro-runtime@^0.82.2:
+ version "0.82.5"
+ resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.82.5.tgz#97840760e4cee49f08948dd918dbeba08dd0d0ec"
+ integrity sha512-rQZDoCUf7k4Broyw3Ixxlq5ieIPiR1ULONdpcYpbJQ6yQ5GGEyYjtkztGD+OhHlw81LCR2SUAoPvtTus2WDK5g==
dependencies:
"@babel/runtime" "^7.25.0"
flow-enums-runtime "^0.0.6"
-metro-source-map@0.82.4, metro-source-map@^0.82.0:
- version "0.82.4"
- resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.82.4.tgz#ddd9bdf3a5864ee8f0b296ed11e46bdc2de321ac"
- integrity sha512-9jzDQJ0FPas1FuQFtwmBHsez2BfhFNufMowbOMeG3ZaFvzeziE8A0aJwILDS3U+V5039ssCQFiQeqDgENWvquA==
+metro-source-map@0.82.5, metro-source-map@^0.82.2:
+ version "0.82.5"
+ resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.82.5.tgz#85e2e9672bff6d6cefb3b65b96fcc69f929c69c6"
+ integrity sha512-wH+awTOQJVkbhn2SKyaw+0cd+RVSCZ3sHVgyqJFQXIee/yLs3dZqKjjeKKhhVeudgjXo7aE/vSu/zVfcQEcUfw==
dependencies:
"@babel/traverse" "^7.25.3"
"@babel/traverse--for-generate-function-map" "npm:@babel/traverse@^7.25.3"
"@babel/types" "^7.25.2"
flow-enums-runtime "^0.0.6"
invariant "^2.2.4"
- metro-symbolicate "0.82.4"
+ metro-symbolicate "0.82.5"
nullthrows "^1.1.1"
- ob1 "0.82.4"
+ ob1 "0.82.5"
source-map "^0.5.6"
vlq "^1.0.0"
-metro-symbolicate@0.82.4:
- version "0.82.4"
- resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.82.4.tgz#76603b0ec2ad8fe5f174aa76485cc46228547a91"
- integrity sha512-LwEwAtdsx7z8rYjxjpLWxuFa2U0J6TS6ljlQM4WAATKa4uzV8unmnRuN2iNBWTmRqgNR77mzmI2vhwD4QSCo+w==
+metro-symbolicate@0.82.5:
+ version "0.82.5"
+ resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.82.5.tgz#b53255cad11f1e6795f319ca4b41857bfe295d65"
+ integrity sha512-1u+07gzrvYDJ/oNXuOG1EXSvXZka/0JSW1q2EYBWerVKMOhvv9JzDGyzmuV7hHbF2Hg3T3S2uiM36sLz1qKsiw==
dependencies:
flow-enums-runtime "^0.0.6"
invariant "^2.2.4"
- metro-source-map "0.82.4"
+ metro-source-map "0.82.5"
nullthrows "^1.1.1"
source-map "^0.5.6"
vlq "^1.0.0"
-metro-transform-plugins@0.82.4, metro-transform-plugins@^0.82.0:
+metro-transform-plugins@0.82.5:
+ version "0.82.5"
+ resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.82.5.tgz#678da4d0f9085b2a3fc0b4350062f19cc625c5fc"
+ integrity sha512-57Bqf3rgq9nPqLrT2d9kf/2WVieTFqsQ6qWHpEng5naIUtc/Iiw9+0bfLLWSAw0GH40iJ4yMjFcFJDtNSYynMA==
+ dependencies:
+ "@babel/core" "^7.25.2"
+ "@babel/generator" "^7.25.0"
+ "@babel/template" "^7.25.0"
+ "@babel/traverse" "^7.25.3"
+ flow-enums-runtime "^0.0.6"
+ nullthrows "^1.1.1"
+
+metro-transform-plugins@^0.82.0:
version "0.82.4"
resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.82.4.tgz#9d3bb855126e0a63ac2ccf012ed2bc7829209e8c"
integrity sha512-NoWQRPHupVpnDgYguiEcm7YwDhnqW02iWWQjO2O8NsNP09rEMSq99nPjARWfukN7+KDh6YjLvTIN20mj3dk9kw==
@@ -8807,29 +8819,29 @@ metro-transform-plugins@0.82.4, metro-transform-plugins@^0.82.0:
flow-enums-runtime "^0.0.6"
nullthrows "^1.1.1"
-metro-transform-worker@0.82.4:
- version "0.82.4"
- resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.82.4.tgz#cf7db4ef89301ab6658f7a0988fd030e28f86b28"
- integrity sha512-kPI7Ad/tdAnI9PY4T+2H0cdgGeSWWdiPRKuytI806UcN4VhFL6OmYa19/4abYVYF+Cd2jo57CDuwbaxRfmXDhw==
+metro-transform-worker@0.82.5:
+ version "0.82.5"
+ resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.82.5.tgz#aabdccf17aaa584ec0fd97b5283e806958fb3418"
+ integrity sha512-mx0grhAX7xe+XUQH6qoHHlWedI8fhSpDGsfga7CpkO9Lk9W+aPitNtJWNGrW8PfjKEWbT9Uz9O50dkI8bJqigw==
dependencies:
"@babel/core" "^7.25.2"
"@babel/generator" "^7.25.0"
"@babel/parser" "^7.25.3"
"@babel/types" "^7.25.2"
flow-enums-runtime "^0.0.6"
- metro "0.82.4"
- metro-babel-transformer "0.82.4"
- metro-cache "0.82.4"
- metro-cache-key "0.82.4"
- metro-minify-terser "0.82.4"
- metro-source-map "0.82.4"
- metro-transform-plugins "0.82.4"
+ metro "0.82.5"
+ metro-babel-transformer "0.82.5"
+ metro-cache "0.82.5"
+ metro-cache-key "0.82.5"
+ metro-minify-terser "0.82.5"
+ metro-source-map "0.82.5"
+ metro-transform-plugins "0.82.5"
nullthrows "^1.1.1"
-metro@0.82.4, metro@^0.82.0:
- version "0.82.4"
- resolved "https://registry.yarnpkg.com/metro/-/metro-0.82.4.tgz#e4fb4552f1387610b0b2873ed07d4cd59754d636"
- integrity sha512-/gFmw3ux9CPG5WUmygY35hpyno28zi/7OUn6+OFfbweA8l0B+PPqXXLr0/T6cf5nclCcH0d22o+02fICaShVxw==
+metro@0.82.5, metro@^0.82.2:
+ version "0.82.5"
+ resolved "https://registry.yarnpkg.com/metro/-/metro-0.82.5.tgz#a27fbc08dd283a14ae58496288c10adaae65f461"
+ integrity sha512-8oAXxL7do8QckID/WZEKaIFuQJFUTLzfVcC48ghkHhNK2RGuQq8Xvf4AVd+TUA0SZtX0q8TGNXZ/eba1ckeGCg==
dependencies:
"@babel/code-frame" "^7.24.7"
"@babel/core" "^7.25.2"
@@ -8846,24 +8858,24 @@ metro@0.82.4, metro@^0.82.0:
error-stack-parser "^2.0.6"
flow-enums-runtime "^0.0.6"
graceful-fs "^4.2.4"
- hermes-parser "0.28.1"
+ hermes-parser "0.29.1"
image-size "^1.0.2"
invariant "^2.2.4"
jest-worker "^29.7.0"
jsc-safe-url "^0.2.2"
lodash.throttle "^4.1.1"
- metro-babel-transformer "0.82.4"
- metro-cache "0.82.4"
- metro-cache-key "0.82.4"
- metro-config "0.82.4"
- metro-core "0.82.4"
- metro-file-map "0.82.4"
- metro-resolver "0.82.4"
- metro-runtime "0.82.4"
- metro-source-map "0.82.4"
- metro-symbolicate "0.82.4"
- metro-transform-plugins "0.82.4"
- metro-transform-worker "0.82.4"
+ metro-babel-transformer "0.82.5"
+ metro-cache "0.82.5"
+ metro-cache-key "0.82.5"
+ metro-config "0.82.5"
+ metro-core "0.82.5"
+ metro-file-map "0.82.5"
+ metro-resolver "0.82.5"
+ metro-runtime "0.82.5"
+ metro-source-map "0.82.5"
+ metro-symbolicate "0.82.5"
+ metro-transform-plugins "0.82.5"
+ metro-transform-worker "0.82.5"
mime-types "^2.1.27"
nullthrows "^1.1.1"
serialize-error "^2.1.0"
@@ -9277,10 +9289,10 @@ oauth-sign@~0.9.0:
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
-ob1@0.82.4:
- version "0.82.4"
- resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.82.4.tgz#60f04f61b8ab96e1f818eb856b35c97bbef44726"
- integrity sha512-n9S8e4l5TvkrequEAMDidl4yXesruWTNTzVkeaHSGywoTOIwTzZzKw7Z670H3eaXDZui5MJXjWGNzYowVZIxCA==
+ob1@0.82.5:
+ version "0.82.5"
+ resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.82.5.tgz#a2860e39385f4602bc2666c46f331b7531b94a8b"
+ integrity sha512-QyQQ6e66f+Ut/qUVjEce0E/wux5nAGLXYZDn1jr15JWstHsCH3l6VVrg8NKDptW9NEiBXKOJeGF/ydxeSDF3IQ==
dependencies:
flow-enums-runtime "^0.0.6"
@@ -10078,19 +10090,19 @@ react-native-xaml@^0.0.80:
dependencies:
"@types/react" "^19.0.0"
-react-native@0.80.0-nightly-20250428-9efcdc091:
- version "0.80.0-nightly-20250428-9efcdc091"
- resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.80.0-nightly-20250428-9efcdc091.tgz#f8865a751764c4a5bc44c5aa9888245d75574130"
- integrity sha512-/9ku5UgwO+hODVDEZjLLaTtgCl6txgZDHQOX8u6F/aFdhkOJ0vGDfSh4x9WlzcqPFRzxv0+O+xzp7vtG5mew3w==
+react-native@0.80.0-nightly-20250506-3ac16dd6a:
+ version "0.80.0-nightly-20250506-3ac16dd6a"
+ resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.80.0-nightly-20250506-3ac16dd6a.tgz#f700a9b5eb7013353f686bca9c7b598bf1c70da4"
+ integrity sha512-xjFxuEzoor3vNBCu3WhUOEnJhJjwUlsCkvRYjcFYWxGkzAaJfl0l75epYImN++eigXs+S8BMN3r155N7xy6vTw==
dependencies:
"@jest/create-cache-key-function" "^29.7.0"
- "@react-native/assets-registry" "0.80.0-nightly-20250428-9efcdc091"
- "@react-native/codegen" "0.80.0-nightly-20250428-9efcdc091"
- "@react-native/community-cli-plugin" "0.80.0-nightly-20250428-9efcdc091"
- "@react-native/gradle-plugin" "0.80.0-nightly-20250428-9efcdc091"
- "@react-native/js-polyfills" "0.80.0-nightly-20250428-9efcdc091"
- "@react-native/normalize-colors" "0.80.0-nightly-20250428-9efcdc091"
- "@react-native/virtualized-lists" "0.80.0-nightly-20250428-9efcdc091"
+ "@react-native/assets-registry" "0.80.0-nightly-20250506-3ac16dd6a"
+ "@react-native/codegen" "0.80.0-nightly-20250506-3ac16dd6a"
+ "@react-native/community-cli-plugin" "0.80.0-nightly-20250506-3ac16dd6a"
+ "@react-native/gradle-plugin" "0.80.0-nightly-20250506-3ac16dd6a"
+ "@react-native/js-polyfills" "0.80.0-nightly-20250506-3ac16dd6a"
+ "@react-native/normalize-colors" "0.80.0-nightly-20250506-3ac16dd6a"
+ "@react-native/virtualized-lists" "0.80.0-nightly-20250506-3ac16dd6a"
abort-controller "^3.0.0"
anser "^1.4.9"
ansi-regex "^5.0.0"
@@ -10104,8 +10116,8 @@ react-native@0.80.0-nightly-20250428-9efcdc091:
invariant "^2.2.4"
jest-environment-node "^29.7.0"
memoize-one "^5.0.0"
- metro-runtime "^0.82.0"
- metro-source-map "^0.82.0"
+ metro-runtime "^0.82.2"
+ metro-source-map "^0.82.2"
nullthrows "^1.1.1"
pretty-format "^29.7.0"
promise "^8.3.0"
@@ -10610,16 +10622,16 @@ sax@>=0.6.0:
resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f"
integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==
-scheduler@0.25.0, scheduler@^0.25.0:
- version "0.25.0"
- resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.25.0.tgz#336cd9768e8cceebf52d3c80e3dcf5de23e7e015"
- integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==
-
scheduler@0.26.0, scheduler@^0.26.0:
version "0.26.0"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.26.0.tgz#4ce8a8c2a2095f13ea11bf9a445be50c555d6337"
integrity sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==
+scheduler@^0.25.0:
+ version "0.25.0"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.25.0.tgz#336cd9768e8cceebf52d3c80e3dcf5de23e7e015"
+ integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==
+
screenshot-desktop@^1.12.2:
version "1.15.1"
resolved "https://registry.yarnpkg.com/screenshot-desktop/-/screenshot-desktop-1.15.1.tgz#3fa91d25557daf5022d9add82acc8a2b20f0bc2e"
From 12de36d20bdf22bdf304d9cb8ad872f5752f060f Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Thu, 17 Jul 2025 14:41:46 +0530
Subject: [PATCH 02/43] Change files
---
...-native-win32-98074e3b-7f24-4400-a7e4-daca6e150710.json | 7 +++++++
...ation-channel-f520c795-6a39-4d20-a6a9-487784b06176.json | 7 +++++++
...ative-windows-0b31b288-b7cb-48e2-945e-3d032942ea6c.json | 7 +++++++
3 files changed, 21 insertions(+)
create mode 100644 change/@office-iss-react-native-win32-98074e3b-7f24-4400-a7e4-daca6e150710.json
create mode 100644 change/@react-native-windows-automation-channel-f520c795-6a39-4d20-a6a9-487784b06176.json
create mode 100644 change/react-native-windows-0b31b288-b7cb-48e2-945e-3d032942ea6c.json
diff --git a/change/@office-iss-react-native-win32-98074e3b-7f24-4400-a7e4-daca6e150710.json b/change/@office-iss-react-native-win32-98074e3b-7f24-4400-a7e4-daca6e150710.json
new file mode 100644
index 00000000000..fda744bf2df
--- /dev/null
+++ b/change/@office-iss-react-native-win32-98074e3b-7f24-4400-a7e4-daca6e150710.json
@@ -0,0 +1,7 @@
+{
+ "type": "prerelease",
+ "comment": "Integrate RN Nightly Build 0.80.0-nightly-20250506-3ac16dd6a",
+ "packageName": "@office-iss/react-native-win32",
+ "email": "54227869+anupriya13@users.noreply.github.com",
+ "dependentChangeType": "patch"
+}
diff --git a/change/@react-native-windows-automation-channel-f520c795-6a39-4d20-a6a9-487784b06176.json b/change/@react-native-windows-automation-channel-f520c795-6a39-4d20-a6a9-487784b06176.json
new file mode 100644
index 00000000000..9e3409798ca
--- /dev/null
+++ b/change/@react-native-windows-automation-channel-f520c795-6a39-4d20-a6a9-487784b06176.json
@@ -0,0 +1,7 @@
+{
+ "type": "patch",
+ "comment": "Integrate RN Nightly Build 0.80.0-nightly-20250506-3ac16dd6a",
+ "packageName": "@react-native-windows/automation-channel",
+ "email": "54227869+anupriya13@users.noreply.github.com",
+ "dependentChangeType": "patch"
+}
diff --git a/change/react-native-windows-0b31b288-b7cb-48e2-945e-3d032942ea6c.json b/change/react-native-windows-0b31b288-b7cb-48e2-945e-3d032942ea6c.json
new file mode 100644
index 00000000000..8a5b57af97e
--- /dev/null
+++ b/change/react-native-windows-0b31b288-b7cb-48e2-945e-3d032942ea6c.json
@@ -0,0 +1,7 @@
+{
+ "type": "prerelease",
+ "comment": "Integrate RN Nightly Build 0.80.0-nightly-20250506-3ac16dd6a",
+ "packageName": "react-native-windows",
+ "email": "54227869+anupriya13@users.noreply.github.com",
+ "dependentChangeType": "patch"
+}
From a595216d13c85e98340c38195cdbf1a4bcab2f1b Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 09:33:39 +0530
Subject: [PATCH 03/43] fix build errors
---
vnext/PropertySheets/React.Cpp.props | 1 +
vnext/ReactCommon/ReactCommon.vcxproj | 1 -
2 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/vnext/PropertySheets/React.Cpp.props b/vnext/PropertySheets/React.Cpp.props
index 3afb695da5b..70b5b2c2c09 100644
--- a/vnext/PropertySheets/React.Cpp.props
+++ b/vnext/PropertySheets/React.Cpp.props
@@ -162,6 +162,7 @@
$(ReactNativeDir)\ReactCommon\react\renderer\imagemanager\platform\cxx;
$(ReactNativeDir)\ReactCommon\react\renderer\components\text\platform\android;
$(ReactNativeDir)\ReactCommon\react\renderer\components\text\platform\android\react\renderer\components\text;
+ $(ReactNativeDir)\ReactCommon\react\renderer\textlayoutmanager\platform\cxx\react\renderer\textlayoutmanager;
%(AdditionalIncludeDirectories);
diff --git a/vnext/ReactCommon/ReactCommon.vcxproj b/vnext/ReactCommon/ReactCommon.vcxproj
index 654fcd0d9b7..e08bb5cf07d 100644
--- a/vnext/ReactCommon/ReactCommon.vcxproj
+++ b/vnext/ReactCommon/ReactCommon.vcxproj
@@ -206,7 +206,6 @@
-
From 3c89d212d854aaef1dbc41c106fd9870a839a96e Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 09:50:51 +0530
Subject: [PATCH 04/43] fix build errors
---
vnext/ReactCommon/ReactCommon.vcxproj | 1 +
1 file changed, 1 insertion(+)
diff --git a/vnext/ReactCommon/ReactCommon.vcxproj b/vnext/ReactCommon/ReactCommon.vcxproj
index e08bb5cf07d..654fcd0d9b7 100644
--- a/vnext/ReactCommon/ReactCommon.vcxproj
+++ b/vnext/ReactCommon/ReactCommon.vcxproj
@@ -206,6 +206,7 @@
+
From ea32785a34b2b5510c70685d6e8332ab5c469e2b Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 10:16:07 +0530
Subject: [PATCH 05/43] override ParagraphState.h and TextInputState.h
---
.../renderer/components/text/ParagraphState.h | 72 ++++++++++++++++++
.../components/textinput/TextInputState.h | 74 +++++++++++++++++++
vnext/overrides.json | 14 ++++
3 files changed, 160 insertions(+)
create mode 100644 vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphState.h
create mode 100644 vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/textinput/TextInputState.h
diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphState.h b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphState.h
new file mode 100644
index 00000000000..d391497df22
--- /dev/null
+++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphState.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+ #pragma once
+
+ #include
+ #include
+ #include
+ #include // Windows
+
+ #include
+ #include
+
+ #include
+
+ namespace facebook::react {
+
+ // constants for Text State serialization
+ constexpr static MapBuffer::Key TX_STATE_KEY_ATTRIBUTED_STRING = 0;
+ constexpr static MapBuffer::Key TX_STATE_KEY_PARAGRAPH_ATTRIBUTES = 1;
+ // Used for TextInput only
+ constexpr static MapBuffer::Key TX_STATE_KEY_HASH = 2;
+ constexpr static MapBuffer::Key TX_STATE_KEY_MOST_RECENT_EVENT_COUNT = 3;
+
+ /*
+ * State for component.
+ * Represents what to render and how to render.
+ */
+ class ParagraphState final {
+ public:
+ /*
+ * All content of component represented as an `AttributedString`.
+ */
+ AttributedString attributedString;
+
+ /*
+ * Represents all visual attributes of a paragraph of text represented as
+ * a ParagraphAttributes.
+ */
+ ParagraphAttributes paragraphAttributes;
+
+ /*
+ * `TextLayoutManager` provides a connection to platform-specific
+ * text rendering infrastructure which is capable to render the
+ * `AttributedString`.
+ */
+ std::weak_ptr layoutManager;
+
+ ParagraphState(
+ AttributedString attributedString,
+ ParagraphAttributes paragraphAttributes,
+ const std::weak_ptr& layoutManager)
+ : attributedString(std::move(attributedString)),
+ paragraphAttributes(std::move(paragraphAttributes)),
+ layoutManager(layoutManager) {}
+ ParagraphState() = default;
+ ParagraphState(
+ const ParagraphState& /*previousState*/,
+ const folly::dynamic& /*data*/) {
+ react_native_assert(false && "Not supported");
+ };
+
+ folly::dynamic getDynamic() const;
+ MapBuffer getMapBuffer() const;
+ };
+
+ } // namespace facebook::react
+
\ No newline at end of file
diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/textinput/TextInputState.h b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/textinput/TextInputState.h
new file mode 100644
index 00000000000..b07d7384d9a
--- /dev/null
+++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/textinput/TextInputState.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+ #pragma once
+
+ #include
+ #include
+ #include // Windows
+
+ #ifdef ANDROID
+ #include
+ #include
+ #endif
+
+ namespace facebook::react {
+
+ /*
+ * State for component.
+ */
+ class TextInputState final {
+ public:
+ TextInputState() = default;
+
+ TextInputState(
+ AttributedStringBox attributedStringBox,
+ AttributedString reactTreeAttributedString,
+ ParagraphAttributes paragraphAttributes,
+ int64_t mostRecentEventCount);
+
+ #ifdef ANDROID
+ TextInputState(
+ const TextInputState& previousState,
+ const folly::dynamic& data);
+ folly::dynamic getDynamic() const;
+ MapBuffer getMapBuffer() const;
+ #endif
+
+ /*
+ * All content of component.
+ */
+ AttributedStringBox attributedStringBox;
+
+ /*
+ * All content of component represented as an `AttributedString`.
+ * This stores the previous computed *from the React tree*. This usually
+ * doesn't change as the TextInput contents are being updated. If it does
+ * change, we need to wipe out current contents of the TextInput and replace
+ * with the new value from the tree.
+ */
+ AttributedString reactTreeAttributedString{};
+
+ /*
+ * Represents all visual attributes of a paragraph of text represented as
+ * a ParagraphAttributes.
+ */
+ ParagraphAttributes paragraphAttributes;
+
+ int64_t mostRecentEventCount{0};
+
+ #ifdef ANDROID
+ /**
+ * Stores an opaque cache ID used on the Java side to refer to a specific
+ * AttributedString for measurement purposes only.
+ */
+ int64_t cachedAttributedStringId{0};
+ #endif
+ };
+
+ } // namespace facebook::react
+
\ No newline at end of file
diff --git a/vnext/overrides.json b/vnext/overrides.json
index aa98107cb5c..ccde8fa5605 100644
--- a/vnext/overrides.json
+++ b/vnext/overrides.json
@@ -159,6 +159,20 @@
"baseHash": "5157ead9e3526366c1900af19615ba3818975b66",
"issue": 14204
},
+ {
+ "type": "patch",
+ "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphState.h",
+ "baseFile": "packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h",
+ "baseHash": "6796ef1375e0b729785bbf99908add097c2861e2",
+ "issue": 0
+ },
+ {
+ "type": "patch",
+ "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/textinput/TextInputState.h",
+ "baseFile": "packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputState.h",
+ "baseHash": "44d97403ef1124a493ac799a03077c0297f7be3f",
+ "issue": 0
+ },
{
"type": "derived",
"file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h",
From e9f94677fbd80b5f14eefc933a72da0cd4427ef6 Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 10:32:21 +0530
Subject: [PATCH 06/43] test
---
vnext/PropertySheets/React.Cpp.props | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/vnext/PropertySheets/React.Cpp.props b/vnext/PropertySheets/React.Cpp.props
index 70b5b2c2c09..1cb9cedca4e 100644
--- a/vnext/PropertySheets/React.Cpp.props
+++ b/vnext/PropertySheets/React.Cpp.props
@@ -162,7 +162,8 @@
$(ReactNativeDir)\ReactCommon\react\renderer\imagemanager\platform\cxx;
$(ReactNativeDir)\ReactCommon\react\renderer\components\text\platform\android;
$(ReactNativeDir)\ReactCommon\react\renderer\components\text\platform\android\react\renderer\components\text;
- $(ReactNativeDir)\ReactCommon\react\renderer\textlayoutmanager\platform\cxx\react\renderer\textlayoutmanager;
+ $(ReactNativeDir)\ReactCommon\react\renderer\textlayoutmanager\platform\cxx;
+ $(ReactNativeDir)\ReactCommon\react\utils\platform\android;
%(AdditionalIncludeDirectories);
From 6f883eb75acecc76b53526771893ad19823be143 Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 10:55:58 +0530
Subject: [PATCH 07/43] Update React.Cpp.props
---
vnext/PropertySheets/React.Cpp.props | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/vnext/PropertySheets/React.Cpp.props b/vnext/PropertySheets/React.Cpp.props
index 1cb9cedca4e..a1c0a8904f8 100644
--- a/vnext/PropertySheets/React.Cpp.props
+++ b/vnext/PropertySheets/React.Cpp.props
@@ -162,7 +162,7 @@
$(ReactNativeDir)\ReactCommon\react\renderer\imagemanager\platform\cxx;
$(ReactNativeDir)\ReactCommon\react\renderer\components\text\platform\android;
$(ReactNativeDir)\ReactCommon\react\renderer\components\text\platform\android\react\renderer\components\text;
- $(ReactNativeDir)\ReactCommon\react\renderer\textlayoutmanager\platform\cxx;
+ $(ReactNativeDir)\ReactCommon\react\renderer\textlayoutmanager\platform\android;
$(ReactNativeDir)\ReactCommon\react\utils\platform\android;
%(AdditionalIncludeDirectories);
From 212d24ec2bd54c084a065f83b64df4921b60c16e Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 11:21:23 +0530
Subject: [PATCH 08/43] Revert "override ParagraphState.h and TextInputState.h"
This reverts commit ea32785a34b2b5510c70685d6e8332ab5c469e2b.
---
.../renderer/components/text/ParagraphState.h | 72 ------------------
.../components/textinput/TextInputState.h | 74 -------------------
vnext/overrides.json | 14 ----
3 files changed, 160 deletions(-)
delete mode 100644 vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphState.h
delete mode 100644 vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/textinput/TextInputState.h
diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphState.h b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphState.h
deleted file mode 100644
index d391497df22..00000000000
--- a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphState.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
- #pragma once
-
- #include
- #include
- #include
- #include // Windows
-
- #include
- #include
-
- #include
-
- namespace facebook::react {
-
- // constants for Text State serialization
- constexpr static MapBuffer::Key TX_STATE_KEY_ATTRIBUTED_STRING = 0;
- constexpr static MapBuffer::Key TX_STATE_KEY_PARAGRAPH_ATTRIBUTES = 1;
- // Used for TextInput only
- constexpr static MapBuffer::Key TX_STATE_KEY_HASH = 2;
- constexpr static MapBuffer::Key TX_STATE_KEY_MOST_RECENT_EVENT_COUNT = 3;
-
- /*
- * State for component.
- * Represents what to render and how to render.
- */
- class ParagraphState final {
- public:
- /*
- * All content of component represented as an `AttributedString`.
- */
- AttributedString attributedString;
-
- /*
- * Represents all visual attributes of a paragraph of text represented as
- * a ParagraphAttributes.
- */
- ParagraphAttributes paragraphAttributes;
-
- /*
- * `TextLayoutManager` provides a connection to platform-specific
- * text rendering infrastructure which is capable to render the
- * `AttributedString`.
- */
- std::weak_ptr layoutManager;
-
- ParagraphState(
- AttributedString attributedString,
- ParagraphAttributes paragraphAttributes,
- const std::weak_ptr& layoutManager)
- : attributedString(std::move(attributedString)),
- paragraphAttributes(std::move(paragraphAttributes)),
- layoutManager(layoutManager) {}
- ParagraphState() = default;
- ParagraphState(
- const ParagraphState& /*previousState*/,
- const folly::dynamic& /*data*/) {
- react_native_assert(false && "Not supported");
- };
-
- folly::dynamic getDynamic() const;
- MapBuffer getMapBuffer() const;
- };
-
- } // namespace facebook::react
-
\ No newline at end of file
diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/textinput/TextInputState.h b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/textinput/TextInputState.h
deleted file mode 100644
index b07d7384d9a..00000000000
--- a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/textinput/TextInputState.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
- #pragma once
-
- #include
- #include
- #include // Windows
-
- #ifdef ANDROID
- #include
- #include
- #endif
-
- namespace facebook::react {
-
- /*
- * State for component.
- */
- class TextInputState final {
- public:
- TextInputState() = default;
-
- TextInputState(
- AttributedStringBox attributedStringBox,
- AttributedString reactTreeAttributedString,
- ParagraphAttributes paragraphAttributes,
- int64_t mostRecentEventCount);
-
- #ifdef ANDROID
- TextInputState(
- const TextInputState& previousState,
- const folly::dynamic& data);
- folly::dynamic getDynamic() const;
- MapBuffer getMapBuffer() const;
- #endif
-
- /*
- * All content of component.
- */
- AttributedStringBox attributedStringBox;
-
- /*
- * All content of component represented as an `AttributedString`.
- * This stores the previous computed *from the React tree*. This usually
- * doesn't change as the TextInput contents are being updated. If it does
- * change, we need to wipe out current contents of the TextInput and replace
- * with the new value from the tree.
- */
- AttributedString reactTreeAttributedString{};
-
- /*
- * Represents all visual attributes of a paragraph of text represented as
- * a ParagraphAttributes.
- */
- ParagraphAttributes paragraphAttributes;
-
- int64_t mostRecentEventCount{0};
-
- #ifdef ANDROID
- /**
- * Stores an opaque cache ID used on the Java side to refer to a specific
- * AttributedString for measurement purposes only.
- */
- int64_t cachedAttributedStringId{0};
- #endif
- };
-
- } // namespace facebook::react
-
\ No newline at end of file
diff --git a/vnext/overrides.json b/vnext/overrides.json
index ccde8fa5605..aa98107cb5c 100644
--- a/vnext/overrides.json
+++ b/vnext/overrides.json
@@ -159,20 +159,6 @@
"baseHash": "5157ead9e3526366c1900af19615ba3818975b66",
"issue": 14204
},
- {
- "type": "patch",
- "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphState.h",
- "baseFile": "packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h",
- "baseHash": "6796ef1375e0b729785bbf99908add097c2861e2",
- "issue": 0
- },
- {
- "type": "patch",
- "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/textinput/TextInputState.h",
- "baseFile": "packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputState.h",
- "baseHash": "44d97403ef1124a493ac799a03077c0297f7be3f",
- "issue": 0
- },
{
"type": "derived",
"file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h",
From c18335a585b75237e244701b2a30ebe4118dbc34 Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 11:54:27 +0530
Subject: [PATCH 09/43] Update React.Cpp.props
---
vnext/PropertySheets/React.Cpp.props | 1 +
1 file changed, 1 insertion(+)
diff --git a/vnext/PropertySheets/React.Cpp.props b/vnext/PropertySheets/React.Cpp.props
index a1c0a8904f8..51986b49ada 100644
--- a/vnext/PropertySheets/React.Cpp.props
+++ b/vnext/PropertySheets/React.Cpp.props
@@ -164,6 +164,7 @@
$(ReactNativeDir)\ReactCommon\react\renderer\components\text\platform\android\react\renderer\components\text;
$(ReactNativeDir)\ReactCommon\react\renderer\textlayoutmanager\platform\android;
$(ReactNativeDir)\ReactCommon\react\utils\platform\android;
+ $(ReactNativeDir)\ReactCommon\react\ReactAndroid\src\main\jni;
%(AdditionalIncludeDirectories);
From 46c05cc5e4e082579e9876480cde310cd8585a58 Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 12:10:32 +0530
Subject: [PATCH 10/43] override textlayoutmanager
---
.../textlayoutmanager/TextLayoutManager.cpp | 289 ++++++++++++++++++
.../textlayoutmanager/TextLayoutManager.h | 75 +++++
vnext/overrides.json | 14 +
3 files changed, 378 insertions(+)
create mode 100644 vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/textlayoutmanager/TextLayoutManager.cpp
create mode 100644 vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/textlayoutmanager/TextLayoutManager.h
diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/textlayoutmanager/TextLayoutManager.cpp b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/textlayoutmanager/TextLayoutManager.cpp
new file mode 100644
index 00000000000..404818e52a3
--- /dev/null
+++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/textlayoutmanager/TextLayoutManager.cpp
@@ -0,0 +1,289 @@
+/*
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+ #include "TextLayoutManager.h"
+
+ #include
+ #include
+
+ #include
+ #include
+ #include
+ #include
+ #include
+ #include
+ #include
+
+ namespace facebook::react {
+
+ namespace {
+
+ int countAttachments(const AttributedString& attributedString) {
+ int count = 0;
+
+ for (const auto& fragment : attributedString.getFragments()) {
+ if (fragment.isAttachment()) {
+ count++;
+ }
+ }
+
+ return count;
+ }
+
+ Size measureAndroidComponent(
+ const ContextContainer::Shared& contextContainer,
+ Tag rootTag,
+ const std::string& componentName,
+ MapBuffer localData,
+ MapBuffer props,
+ float minWidth,
+ float maxWidth,
+ float minHeight,
+ float maxHeight,
+ jfloatArray attachmentPositions) {
+ const jni::global_ref& fabricUIManager =
+ contextContainer->at>("FabricUIManager");
+ auto componentNameRef = jni::make_jstring(componentName);
+
+ static auto measure =
+ jni::findClassStatic("com/facebook/react/fabric/FabricUIManager")
+ ->getMethod("measureMapBuffer");
+
+ auto localDataMap =
+ JReadableMapBuffer::createWithContents(std::move(localData));
+ auto propsMap = JReadableMapBuffer::createWithContents(std::move(props));
+
+ auto size = yogaMeassureToSize(measure(
+ fabricUIManager,
+ rootTag,
+ componentNameRef.get(),
+ localDataMap.get(),
+ propsMap.get(),
+ nullptr,
+ minWidth,
+ maxWidth,
+ minHeight,
+ maxHeight,
+ attachmentPositions));
+
+ // Explicitly release smart pointers to free up space faster in JNI tables
+ componentNameRef.reset();
+ localDataMap.reset();
+ propsMap.reset();
+ return size;
+ }
+
+ TextMeasurement doMeasure(
+ const ContextContainer::Shared& contextContainer,
+ const AttributedString& attributedString,
+ const ParagraphAttributes& paragraphAttributes,
+ const LayoutConstraints& layoutConstraints) {
+ const int attachmentCount = countAttachments(attributedString);
+ auto env = jni::Environment::current();
+ auto attachmentPositions = env->NewFloatArray(attachmentCount * 2);
+
+ auto minimumSize = layoutConstraints.minimumSize;
+ auto maximumSize = layoutConstraints.maximumSize;
+
+ // We assume max height will have no effect on measurement, so we override it
+ // with a constant value with no constraints, to enable cache reuse later down
+ // in the stack.
+ // TODO: This is suss, and not at the right layer
+ maximumSize.height = std::numeric_limits::infinity();
+
+ auto attributedStringMap = toMapBuffer(attributedString);
+ auto paragraphAttributesMap = toMapBuffer(paragraphAttributes);
+
+ auto size = measureAndroidComponent(
+ contextContainer,
+ -1, // TODO: we should pass rootTag in
+ "RCTText",
+ std::move(attributedStringMap),
+ std::move(paragraphAttributesMap),
+ minimumSize.width,
+ maximumSize.width,
+ minimumSize.height,
+ maximumSize.height,
+ attachmentPositions);
+
+ jfloat* attachmentDataElements =
+ env->GetFloatArrayElements(attachmentPositions, nullptr /*isCopy*/);
+ std::span attachmentData{
+ attachmentDataElements, static_cast(attachmentCount * 2)};
+
+ auto attachments = TextMeasurement::Attachments{};
+ if (attachmentCount > 0) {
+ for (const auto& fragment : attributedString.getFragments()) {
+ if (fragment.isAttachment()) {
+ float top = attachmentData[attachments.size() * 2];
+ float left = attachmentData[attachments.size() * 2 + 1];
+ if (std::isnan(top) || std::isnan(left)) {
+ attachments.push_back(
+ TextMeasurement::Attachment{.frame = Rect{}, .isClipped = true});
+ } else {
+ float width =
+ fragment.parentShadowView.layoutMetrics.frame.size.width;
+ float height =
+ fragment.parentShadowView.layoutMetrics.frame.size.height;
+
+ auto rect = facebook::react::Rect{
+ .origin = {.x = left, .y = top},
+ .size = facebook::react::Size{.width = width, .height = height}};
+ attachments.push_back(
+ TextMeasurement::Attachment{.frame = rect, .isClipped = false});
+ }
+ }
+ }
+ }
+
+ // Clean up allocated ref
+ env->ReleaseFloatArrayElements(
+ attachmentPositions, attachmentDataElements, JNI_ABORT);
+ env->DeleteLocalRef(attachmentPositions);
+
+ return TextMeasurement{.size = size, .attachments = attachments};
+ }
+
+ } // namespace
+
+ TextLayoutManager::TextLayoutManager(
+ const ContextContainer::Shared& contextContainer)
+ : contextContainer_(contextContainer),
+ textMeasureCache_(kSimpleThreadSafeCacheSizeCap),
+ lineMeasureCache_(kSimpleThreadSafeCacheSizeCap) {}
+
+ TextMeasurement TextLayoutManager::measure(
+ const AttributedStringBox& attributedStringBox,
+ const ParagraphAttributes& paragraphAttributes,
+ const TextLayoutContext& layoutContext,
+ const LayoutConstraints& layoutConstraints) const {
+ auto& attributedString = attributedStringBox.getValue();
+
+ auto measurement = textMeasureCache_.get(
+ {attributedString, paragraphAttributes, layoutConstraints},
+ [&](const TextMeasureCacheKey& /*key*/) {
+ auto telemetry = TransactionTelemetry::threadLocalTelemetry();
+ if (telemetry != nullptr) {
+ telemetry->willMeasureText();
+ }
+
+ auto measurement = doMeasure(
+ contextContainer_,
+ attributedString,
+ paragraphAttributes,
+ layoutConstraints);
+
+ if (telemetry != nullptr) {
+ telemetry->didMeasureText();
+ }
+
+ return measurement;
+ });
+
+ measurement.size = layoutConstraints.clamp(measurement.size);
+ return measurement;
+ }
+
+ TextMeasurement TextLayoutManager::measureCachedSpannableById(
+ int64_t cacheId,
+ const ParagraphAttributes& paragraphAttributes,
+ const LayoutConstraints& layoutConstraints) const {
+ auto env = jni::Environment::current();
+ auto attachmentPositions = env->NewFloatArray(0);
+ auto minimumSize = layoutConstraints.minimumSize;
+ auto maximumSize = layoutConstraints.maximumSize;
+
+ auto localDataBuilder = MapBufferBuilder();
+
+ // TODO: this is always sourced from an int, and Java expects an int
+ localDataBuilder.putInt(AS_KEY_CACHE_ID, static_cast(cacheId));
+
+ auto size = measureAndroidComponent(
+ contextContainer_,
+ -1, // TODO: we should pass rootTag in
+ "RCTText",
+ localDataBuilder.build(),
+ toMapBuffer(paragraphAttributes),
+ minimumSize.width,
+ maximumSize.width,
+ minimumSize.height,
+ maximumSize.height,
+ attachmentPositions);
+
+ // Clean up allocated ref - it still takes up space in the JNI ref table even
+ // though it's 0 length
+ env->DeleteLocalRef(attachmentPositions);
+
+ // TODO: currently we do not support attachments for cached IDs - should we?
+ auto attachments = TextMeasurement::Attachments{};
+
+ return TextMeasurement{size, attachments};
+ }
+
+ LinesMeasurements TextLayoutManager::measureLines(
+ const AttributedStringBox& attributedStringBox,
+ const ParagraphAttributes& paragraphAttributes,
+ const Size& size) const {
+ react_native_assert(
+ attributedStringBox.getMode() == AttributedStringBox::Mode::Value);
+ const auto& attributedString = attributedStringBox.getValue();
+
+ auto lineMeasurements = lineMeasureCache_.get(
+ {attributedString, paragraphAttributes, size},
+ [&](const LineMeasureCacheKey& /*key*/) {
+ const jni::global_ref& fabricUIManager =
+ contextContainer_->at>("FabricUIManager");
+ static auto measureLines =
+ jni::findClassStatic("com/facebook/react/fabric/FabricUIManager")
+ ->getMethod("measureLines");
+
+ auto attributedStringMB = JReadableMapBuffer::createWithContents(
+ toMapBuffer(attributedString));
+ auto paragraphAttributesMB = JReadableMapBuffer::createWithContents(
+ toMapBuffer(paragraphAttributes));
+
+ auto array = measureLines(
+ fabricUIManager,
+ attributedStringMB.get(),
+ paragraphAttributesMB.get(),
+ size.width,
+ size.height);
+
+ auto dynamicArray = cthis(array)->consume();
+ LinesMeasurements lineMeasurements;
+ lineMeasurements.reserve(dynamicArray.size());
+
+ for (const auto& data : dynamicArray) {
+ lineMeasurements.push_back(LineMeasurement(data));
+ }
+
+ // Explicitly release smart pointers to free up space faster in JNI
+ // tables
+ attributedStringMB.reset();
+ paragraphAttributesMB.reset();
+
+ return lineMeasurements;
+ });
+
+ return lineMeasurements;
+ }
+
+ } // namespace facebook::react
\ No newline at end of file
diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/textlayoutmanager/TextLayoutManager.h b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/textlayoutmanager/TextLayoutManager.h
new file mode 100644
index 00000000000..01326ae7457
--- /dev/null
+++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/textlayoutmanager/TextLayoutManager.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+ #pragma once
+
+ #include
+ #include
+ #include
+ #include
+ #include
+ #include
+ #include
+
+ namespace facebook::react {
+
+ class TextLayoutManager;
+
+ /*
+ * Cross platform facade for text measurement (e.g. Android-specific
+ * TextLayoutManager)
+ */
+ class TextLayoutManager {
+ public:
+ TextLayoutManager(const ContextContainer::Shared& contextContainer);
+
+ /*
+ * Not copyable.
+ */
+ TextLayoutManager(const TextLayoutManager&) = delete;
+ TextLayoutManager& operator=(const TextLayoutManager&) = delete;
+
+ /*
+ * Not movable.
+ */
+ TextLayoutManager(TextLayoutManager&&) = delete;
+ TextLayoutManager& operator=(TextLayoutManager&&) = delete;
+
+ /*
+ * Measures `attributedString` using native text rendering infrastructure.
+ */
+ TextMeasurement measure(
+ const AttributedStringBox& attributedStringBox,
+ const ParagraphAttributes& paragraphAttributes,
+ const TextLayoutContext& layoutContext,
+ const LayoutConstraints& layoutConstraints) const;
+
+ /**
+ * Measures an AttributedString on the platform, as identified by some
+ * opaque cache ID.
+ */
+ TextMeasurement measureCachedSpannableById(
+ int64_t cacheId,
+ const ParagraphAttributes& paragraphAttributes,
+ const LayoutConstraints& layoutConstraints) const;
+
+ /*
+ * Measures lines of `attributedString` using native text rendering
+ * infrastructure.
+ */
+ LinesMeasurements measureLines(
+ const AttributedStringBox& attributedStringBox,
+ const ParagraphAttributes& paragraphAttributes,
+ const Size& size) const;
+
+ private:
+ std::shared_ptr contextContainer_;
+ TextMeasureCache textMeasureCache_;
+ LineMeasureCache lineMeasureCache_;
+ };
+
+ } // namespace facebook::react
\ No newline at end of file
diff --git a/vnext/overrides.json b/vnext/overrides.json
index aa98107cb5c..ca600c5a1af 100644
--- a/vnext/overrides.json
+++ b/vnext/overrides.json
@@ -159,6 +159,20 @@
"baseHash": "5157ead9e3526366c1900af19615ba3818975b66",
"issue": 14204
},
+ {
+ "type": "patch",
+ "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/textlayoutmanager/TextLayoutManager.cpp",
+ "baseFile": "packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp",
+ "baseHash": "f654697e201d3f9ae683b44b2cd1e132e82761e8",
+ "issue": 0
+ },
+ {
+ "type": "patch",
+ "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/textlayoutmanager/TextLayoutManager.h",
+ "baseFile": "packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h",
+ "baseHash": "edb31b6a6118a58a4f4408e40fa51dc618de5ab7",
+ "issue": 0
+ },
{
"type": "derived",
"file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h",
From b4f848512b8b9eda1dceb2b10fcffc82fea3603a Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 13:14:55 +0530
Subject: [PATCH 11/43] override LowPriorityExecutor
---
.../react/utils/LowPriorityExecutor.cpp | 91 +++++++++++++++++++
vnext/Shared/Shared.vcxitems | 2 +
vnext/overrides.json | 35 ++++---
3 files changed, 114 insertions(+), 14 deletions(-)
create mode 100644 vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/platform/android/react/utils/LowPriorityExecutor.cpp
diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/platform/android/react/utils/LowPriorityExecutor.cpp b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/platform/android/react/utils/LowPriorityExecutor.cpp
new file mode 100644
index 00000000000..49e7844653a
--- /dev/null
+++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/platform/android/react/utils/LowPriorityExecutor.cpp
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+// Windows version: no pthreads, no sched.h
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+namespace facebook::react::LowPriorityExecutor {
+
+struct LowPriorityExecutorThread {
+ LowPriorityExecutorThread() : thread_{std::thread([this] { run(); })} {
+ // Optionally set thread name (Windows 10 1607+)
+#if defined(_MSC_VER) && (_MSC_VER >= 1920)
+ auto handle = thread_.native_handle();
+ // SetThreadDescription is available on Windows 10 1607+.
+ // Dynamically load to avoid build break on older SDKs.
+ using SetThreadDescriptionFunc = HRESULT(WINAPI*)(HANDLE, PCWSTR);
+ HMODULE hKernel32 = GetModuleHandleW(L"Kernel32.dll");
+ if (hKernel32) {
+ auto setThreadDescription = reinterpret_cast(
+ GetProcAddress(hKernel32, "SetThreadDescription"));
+ if (setThreadDescription) {
+ setThreadDescription(handle, L"LowPriorityExecutorThread");
+ }
+ }
+#endif
+ // Setting thread priority to low (optional)
+ // ::SetThreadPriority(handle, THREAD_PRIORITY_LOWEST);
+ }
+
+ LowPriorityExecutorThread(const LowPriorityExecutorThread&) = delete;
+ LowPriorityExecutorThread(LowPriorityExecutorThread&&) = delete;
+ LowPriorityExecutorThread& operator=(const LowPriorityExecutorThread&) = delete;
+ LowPriorityExecutorThread& operator=(LowPriorityExecutorThread&&) = delete;
+
+ ~LowPriorityExecutorThread() {
+ {
+ std::lock_guard lock(mutex_);
+ running_ = false;
+ }
+ cv_.notify_one();
+ thread_.join();
+ }
+
+ void post(std::function&& workItem) {
+ {
+ std::lock_guard lock(mutex_);
+ queue_.emplace(std::move(workItem));
+ }
+ cv_.notify_one();
+ }
+
+ private:
+ void run() {
+ while (true) {
+ std::unique_lock lock(mutex_);
+ cv_.wait(lock, [this] { return !queue_.empty() || !running_; });
+
+ while (!queue_.empty()) {
+ queue_.front()();
+ queue_.pop();
+ }
+
+ if (!running_) {
+ break;
+ }
+ }
+ }
+
+ std::thread thread_;
+ std::queue> queue_;
+ std::mutex mutex_;
+ std::condition_variable cv_;
+ bool running_{true};
+};
+
+void execute(std::function&& workItem) {
+ static LowPriorityExecutorThread thread{};
+ thread.post(std::move(workItem));
+}
+
+} // namespace facebook::react::LowPriorityExecutor
diff --git a/vnext/Shared/Shared.vcxitems b/vnext/Shared/Shared.vcxitems
index fbfc3740fb4..a3537b0f668 100644
--- a/vnext/Shared/Shared.vcxitems
+++ b/vnext/Shared/Shared.vcxitems
@@ -643,6 +643,7 @@
+
@@ -677,6 +678,7 @@
+
diff --git a/vnext/overrides.json b/vnext/overrides.json
index ca600c5a1af..4d8fdc2b43f 100644
--- a/vnext/overrides.json
+++ b/vnext/overrides.json
@@ -159,20 +159,6 @@
"baseHash": "5157ead9e3526366c1900af19615ba3818975b66",
"issue": 14204
},
- {
- "type": "patch",
- "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/textlayoutmanager/TextLayoutManager.cpp",
- "baseFile": "packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp",
- "baseHash": "f654697e201d3f9ae683b44b2cd1e132e82761e8",
- "issue": 0
- },
- {
- "type": "patch",
- "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/textlayoutmanager/TextLayoutManager.h",
- "baseFile": "packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h",
- "baseHash": "edb31b6a6118a58a4f4408e40fa51dc618de5ab7",
- "issue": 0
- },
{
"type": "derived",
"file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h",
@@ -227,6 +213,20 @@
"baseHash": "e03ce8e5db0216f23389ff8b3e9ea450c8a031b7",
"issue": 14673
},
+ {
+ "type": "patch",
+ "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/textlayoutmanager/TextLayoutManager.cpp",
+ "baseFile": "packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp",
+ "baseHash": "f654697e201d3f9ae683b44b2cd1e132e82761e8",
+ "issue": 0
+ },
+ {
+ "type": "patch",
+ "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/textlayoutmanager/TextLayoutManager.h",
+ "baseFile": "packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h",
+ "baseHash": "edb31b6a6118a58a4f4408e40fa51dc618de5ab7",
+ "issue": 0
+ },
{
"type": "patch",
"file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp",
@@ -234,6 +234,13 @@
"baseHash": "d9767072276759fde75aa7be5a4acec405d892d3",
"issue": 13172
},
+ {
+ "type": "patch",
+ "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/platform/android/react/utils/LowPriorityExecutor.cpp",
+ "baseFile": "packages/react-native/ReactCommon/react/utils/platform/android/react/utils/LowPriorityExecutor.cpp",
+ "baseHash": "c4505cf6f0f69c0b0e4b5e16e4b928299e645207",
+ "issue": 0
+ },
{
"type": "copy",
"directory": "ReactCopies/IntegrationTests",
From 528bd9509cda6087c342f0fc0d135bcfa2d98036 Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 13:47:29 +0530
Subject: [PATCH 12/43] fix linting issues
---
vnext/ReactCopies/IntegrationTests/ImageCachePolicyTest.js | 2 +-
vnext/ReactCopies/IntegrationTests/LayoutEventsTest.js | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/vnext/ReactCopies/IntegrationTests/ImageCachePolicyTest.js b/vnext/ReactCopies/IntegrationTests/ImageCachePolicyTest.js
index d188e55b2b6..9a5e8bafb0d 100644
--- a/vnext/ReactCopies/IntegrationTests/ImageCachePolicyTest.js
+++ b/vnext/ReactCopies/IntegrationTests/ImageCachePolicyTest.js
@@ -10,7 +10,7 @@
'use strict';
-import type {ImageURISource} from 'react-native';
+import type {ImageURISource} from 'react-native/Libraries/Image/ImageSource'; // Windows
import * as React from 'react';
import {useEffect, useState} from 'react';
diff --git a/vnext/ReactCopies/IntegrationTests/LayoutEventsTest.js b/vnext/ReactCopies/IntegrationTests/LayoutEventsTest.js
index 141a20d2970..bbc3b9631d6 100644
--- a/vnext/ReactCopies/IntegrationTests/LayoutEventsTest.js
+++ b/vnext/ReactCopies/IntegrationTests/LayoutEventsTest.js
@@ -10,7 +10,7 @@
'use strict';
-import type {LayoutChangeEvent, LayoutRectangle} from 'react-native';
+import type {LayoutChangeEvent, LayoutRectangle} from 'react-native/Libraries/Types/CoreEventTypes'; // Windows
import type {ViewStyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';
const React = require('react');
From bb131d4529b3d718940e6d3ac1eb0c4704cac670 Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 14:20:10 +0530
Subject: [PATCH 13/43] fix linting issues
---
vnext/ReactCopies/IntegrationTests/ImageCachePolicyTest.js | 2 +-
vnext/ReactCopies/IntegrationTests/LayoutEventsTest.js | 2 +-
vnext/src-win/index.windows.js | 3 +++
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/vnext/ReactCopies/IntegrationTests/ImageCachePolicyTest.js b/vnext/ReactCopies/IntegrationTests/ImageCachePolicyTest.js
index 9a5e8bafb0d..d188e55b2b6 100644
--- a/vnext/ReactCopies/IntegrationTests/ImageCachePolicyTest.js
+++ b/vnext/ReactCopies/IntegrationTests/ImageCachePolicyTest.js
@@ -10,7 +10,7 @@
'use strict';
-import type {ImageURISource} from 'react-native/Libraries/Image/ImageSource'; // Windows
+import type {ImageURISource} from 'react-native';
import * as React from 'react';
import {useEffect, useState} from 'react';
diff --git a/vnext/ReactCopies/IntegrationTests/LayoutEventsTest.js b/vnext/ReactCopies/IntegrationTests/LayoutEventsTest.js
index bbc3b9631d6..141a20d2970 100644
--- a/vnext/ReactCopies/IntegrationTests/LayoutEventsTest.js
+++ b/vnext/ReactCopies/IntegrationTests/LayoutEventsTest.js
@@ -10,7 +10,7 @@
'use strict';
-import type {LayoutChangeEvent, LayoutRectangle} from 'react-native/Libraries/Types/CoreEventTypes'; // Windows
+import type {LayoutChangeEvent, LayoutRectangle} from 'react-native';
import type {ViewStyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';
const React = require('react');
diff --git a/vnext/src-win/index.windows.js b/vnext/src-win/index.windows.js
index c81a0b7b60a..a10239c4006 100644
--- a/vnext/src-win/index.windows.js
+++ b/vnext/src-win/index.windows.js
@@ -32,6 +32,9 @@ import typeof AccessibilityInfo from './Libraries/Components/AccessibilityInfo/A
import typeof ActivityIndicator from './Libraries/Components/ActivityIndicator/ActivityIndicator';
// [Windows
import typeof AppTheme from './Libraries/AppTheme/AppTheme';
+import typeof ImageURISource from './Libraries/Image/ImageSource';
+import typeof LayoutChangeEvent from './Libraries/Types/CoreEventTypes';
+import typeof LayoutRectangle from './Libraries/Types/CoreEventTypes';
// Windows]
import typeof Button from './Libraries/Components/Button';
import typeof Clipboard from './Libraries/Components/Clipboard/Clipboard';
From 240d12e7c601f781b988c28594ed10a0a8f1b6e8 Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 14:53:54 +0530
Subject: [PATCH 14/43] Update index.windows.js
---
vnext/src-win/index.windows.js | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/vnext/src-win/index.windows.js b/vnext/src-win/index.windows.js
index a10239c4006..4a5f696a832 100644
--- a/vnext/src-win/index.windows.js
+++ b/vnext/src-win/index.windows.js
@@ -32,9 +32,8 @@ import typeof AccessibilityInfo from './Libraries/Components/AccessibilityInfo/A
import typeof ActivityIndicator from './Libraries/Components/ActivityIndicator/ActivityIndicator';
// [Windows
import typeof AppTheme from './Libraries/AppTheme/AppTheme';
-import typeof ImageURISource from './Libraries/Image/ImageSource';
-import typeof LayoutChangeEvent from './Libraries/Types/CoreEventTypes';
-import typeof LayoutRectangle from './Libraries/Types/CoreEventTypes';
+export {ImageURISource} from './Libraries/Image/ImageSource';
+export {LayoutChangeEvent, LayoutRectangle} from './Libraries/Types/CoreEventTypes';
// Windows]
import typeof Button from './Libraries/Components/Button';
import typeof Clipboard from './Libraries/Components/Clipboard/Clipboard';
From acbec5ed62492c6d953dd1c26b433421758b1074 Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 14:56:38 +0530
Subject: [PATCH 15/43] Update index.windows.js
---
vnext/src-win/index.windows.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/vnext/src-win/index.windows.js b/vnext/src-win/index.windows.js
index 4a5f696a832..4e7b9fa8b7d 100644
--- a/vnext/src-win/index.windows.js
+++ b/vnext/src-win/index.windows.js
@@ -32,8 +32,8 @@ import typeof AccessibilityInfo from './Libraries/Components/AccessibilityInfo/A
import typeof ActivityIndicator from './Libraries/Components/ActivityIndicator/ActivityIndicator';
// [Windows
import typeof AppTheme from './Libraries/AppTheme/AppTheme';
-export {ImageURISource} from './Libraries/Image/ImageSource';
-export {LayoutChangeEvent, LayoutRectangle} from './Libraries/Types/CoreEventTypes';
+export type {ImageURISource} from './Libraries/Image/ImageSource';
+export type {LayoutChangeEvent, LayoutRectangle} from './Libraries/Types/CoreEventTypes';
// Windows]
import typeof Button from './Libraries/Components/Button';
import typeof Clipboard from './Libraries/Components/Clipboard/Clipboard';
From c478c6d784ef5334ce006191201a12f44281f982 Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 16:48:15 +0530
Subject: [PATCH 16/43] Update index.windows.js
---
vnext/src-win/index.windows.js | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/vnext/src-win/index.windows.js b/vnext/src-win/index.windows.js
index 4e7b9fa8b7d..91d35bb363f 100644
--- a/vnext/src-win/index.windows.js
+++ b/vnext/src-win/index.windows.js
@@ -33,7 +33,10 @@ import typeof ActivityIndicator from './Libraries/Components/ActivityIndicator/A
// [Windows
import typeof AppTheme from './Libraries/AppTheme/AppTheme';
export type {ImageURISource} from './Libraries/Image/ImageSource';
-export type {LayoutChangeEvent, LayoutRectangle} from './Libraries/Types/CoreEventTypes';
+export type {
+ LayoutChangeEvent,
+ LayoutRectangle,
+} from './Libraries/Types/CoreEventTypes';
// Windows]
import typeof Button from './Libraries/Components/Button';
import typeof Clipboard from './Libraries/Components/Clipboard/Clipboard';
From b2ae708314fa2d24ef81b69d907c7b3dad96779f Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 18:15:30 +0530
Subject: [PATCH 17/43] test
---
vnext/overrides.json | 8 +
.../IntegrationTests/ImageCachePolicyTest.js | 108 ++++++++++
.../IntegrationTests/LayoutEventsTest.js | 204 ++++++++++++++++++
vnext/src-win/index.windows.js | 5 -
4 files changed, 320 insertions(+), 5 deletions(-)
create mode 100644 vnext/src-win/IntegrationTests/ImageCachePolicyTest.js
create mode 100644 vnext/src-win/IntegrationTests/LayoutEventsTest.js
diff --git a/vnext/overrides.json b/vnext/overrides.json
index 4d8fdc2b43f..96f26e9bafd 100644
--- a/vnext/overrides.json
+++ b/vnext/overrides.json
@@ -254,6 +254,14 @@
"baseFile": "packages/react-native/index.js",
"baseHash": "96361b83bfc122f1d78cc7d87ea0d7c3bfac138f"
},
+ {
+ "type": "platform",
+ "file": "src-win/IntegrationTests/ImageCachePolicyTest.js"
+ },
+ {
+ "type": "platform",
+ "file": "src-win/IntegrationTests/LayoutEventsTest.js"
+ },
{
"type": "platform",
"file": "src-win/IntegrationTests/BlobTest.js"
diff --git a/vnext/src-win/IntegrationTests/ImageCachePolicyTest.js b/vnext/src-win/IntegrationTests/ImageCachePolicyTest.js
new file mode 100644
index 00000000000..9a5e8bafb0d
--- /dev/null
+++ b/vnext/src-win/IntegrationTests/ImageCachePolicyTest.js
@@ -0,0 +1,108 @@
+/**
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ * @format
+ * @flow strict-local
+ */
+
+'use strict';
+
+import type {ImageURISource} from 'react-native/Libraries/Image/ImageSource'; // Windows
+
+import * as React from 'react';
+import {useEffect, useState} from 'react';
+import {Image, NativeModules, StyleSheet, Text, View} from 'react-native';
+
+const {TestModule} = NativeModules;
+
+/*
+ * The reload and force-cache tests don't actually verify that the complete functionality.
+ *
+ * reload: Should have the server set a long cache header, then swap the image on next load
+ * with the test comparing the old image to the new image and making sure they are different.
+ *
+ * force-cache: Should do the above but set a no-cache header. The test should compare the first
+ * image with the new one and make sure they are the same.
+ */
+
+const TESTS = ['only-if-cached', 'default', 'reload', 'force-cache'];
+
+function ImageCachePolicyTest(): React.Node {
+ const [state, setState] = useState({
+ 'only-if-cached': undefined,
+ default: undefined,
+ reload: undefined,
+ 'force-cache': undefined,
+ });
+
+ const testComplete = (
+ name: $NonMaybeType,
+ pass: boolean,
+ ) => {
+ setState(prevState => ({
+ ...prevState,
+ [name]: pass,
+ }));
+ };
+
+ useEffect(() => {
+ const results = TESTS.map(key => state[key]);
+
+ if (!results.includes(undefined)) {
+ const result = results.reduce((x, y) => (x === y) === true, true);
+ TestModule.markTestPassed(result);
+ }
+ }, [state]);
+
+ return (
+
+ Hello
+ testComplete('only-if-cached', false)}
+ onError={() => testComplete('only-if-cached', true)}
+ style={styles.base}
+ />
+ testComplete('default', true)}
+ onError={() => testComplete('default', false)}
+ style={styles.base}
+ />
+ testComplete('reload', true)}
+ onError={() => testComplete('reload', false)}
+ style={styles.base}
+ />
+ testComplete('force-cache', true)}
+ onError={() => testComplete('force-cache', false)}
+ style={styles.base}
+ />
+
+ );
+}
+
+const getImageSource = (cache: ImageURISource['cache']) => ({
+ uri:
+ 'https://raw.githubusercontent.com/facebook/react-native/HEAD/Libraries/NewAppScreen/components/logo.png?cacheBust=notinCache' +
+ Date.now(),
+ cache,
+});
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ },
+ base: {
+ width: 100,
+ height: 100,
+ },
+});
+
+export default ImageCachePolicyTest;
diff --git a/vnext/src-win/IntegrationTests/LayoutEventsTest.js b/vnext/src-win/IntegrationTests/LayoutEventsTest.js
new file mode 100644
index 00000000000..bbc3b9631d6
--- /dev/null
+++ b/vnext/src-win/IntegrationTests/LayoutEventsTest.js
@@ -0,0 +1,204 @@
+/**
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ * @format
+ * @flow strict-local
+ */
+
+'use strict';
+
+import type {LayoutChangeEvent, LayoutRectangle} from 'react-native/Libraries/Types/CoreEventTypes'; // Windows
+import type {ViewStyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';
+
+const React = require('react');
+const ReactNative = require('react-native');
+const deepDiffer =
+ require('react-native/Libraries/Utilities/differ/deepDiffer').default;
+
+const {Image, LayoutAnimation, StyleSheet, Text, View} = ReactNative;
+const {TestModule} = ReactNative.NativeModules;
+function debug(...args: Array) {
+ // console.log.apply(null, arguments);
+}
+
+type Props = $ReadOnly<{}>;
+
+type State = {
+ didAnimation: boolean,
+ extraText?: string,
+ imageLayout?: LayoutRectangle,
+ textLayout?: LayoutRectangle,
+ viewLayout?: LayoutRectangle,
+ viewStyle?: ViewStyleProp,
+ containerStyle?: ViewStyleProp,
+ ...
+};
+
+class LayoutEventsTest extends React.Component {
+ _view: ?React.ElementRef;
+ _img: ?React.ElementRef;
+ _txt: ?React.ElementRef;
+
+ state: State = {
+ didAnimation: false,
+ };
+
+ animateViewLayout() {
+ debug('animateViewLayout invoked');
+ LayoutAnimation.configureNext(LayoutAnimation.Presets.spring, () => {
+ debug('animateViewLayout done');
+ this.checkLayout(this.addWrapText);
+ });
+ this.setState({viewStyle: {margin: 60}});
+ }
+
+ addWrapText: () => void = () => {
+ debug('addWrapText invoked');
+ this.setState(
+ {extraText: ' And a bunch more text to wrap around a few lines.'},
+ () => this.checkLayout(this.changeContainer),
+ );
+ };
+
+ changeContainer: () => void = () => {
+ debug('changeContainer invoked');
+ this.setState({containerStyle: {width: 280}}, () =>
+ this.checkLayout(TestModule.markTestCompleted),
+ );
+ };
+
+ checkLayout: (next?: ?() => void) => void = (next?: ?() => void) => {
+ const view = this._view;
+ const txt = this._txt;
+ const img = this._img;
+
+ if (view == null || txt == null || img == null) {
+ return;
+ }
+
+ view.measure((x, y, width, height) => {
+ this.compare(
+ 'view',
+ {x, y, width, height},
+ this.state.viewLayout || null,
+ );
+ if (typeof next === 'function') {
+ next();
+ } else if (!this.state.didAnimation) {
+ // Trigger first state change after onLayout fires
+ this.animateViewLayout();
+ this.state.didAnimation = true;
+ }
+ });
+
+ txt.measure((x, y, width, height) => {
+ this.compare('txt', {x, y, width, height}, this.state.textLayout);
+ });
+
+ img.measure((x, y, width, height) => {
+ this.compare('img', {x, y, width, height}, this.state.imageLayout);
+ });
+ };
+
+ compare(
+ node: string,
+ measured: LayoutRectangle,
+ onLayout?: ?LayoutRectangle,
+ ): void {
+ if (deepDiffer(measured, onLayout)) {
+ const data = {measured, onLayout};
+ throw new Error(
+ node +
+ ' onLayout mismatch with measure ' +
+ JSON.stringify(data, null, ' '),
+ );
+ }
+ }
+
+ onViewLayout: (e: LayoutChangeEvent) => void = (e: LayoutChangeEvent) => {
+ // $FlowFixMe[incompatible-call]
+ debug('received view layout event\n', e.nativeEvent);
+ this.setState({viewLayout: e.nativeEvent.layout}, this.checkLayout);
+ };
+
+ onTextLayout: (e: LayoutChangeEvent) => void = (e: LayoutChangeEvent) => {
+ // $FlowFixMe[incompatible-call]
+ debug('received text layout event\n', e.nativeEvent);
+ this.setState({textLayout: e.nativeEvent.layout}, this.checkLayout);
+ };
+
+ onImageLayout: (e: LayoutChangeEvent) => void = (e: LayoutChangeEvent) => {
+ // $FlowFixMe[incompatible-call]
+ debug('received image layout event\n', e.nativeEvent);
+ this.setState({imageLayout: e.nativeEvent.layout}, this.checkLayout);
+ };
+
+ render(): React.Node {
+ const viewStyle = [styles.view, this.state.viewStyle];
+ const textLayout = this.state.textLayout || {width: '?', height: '?'};
+ const imageLayout = this.state.imageLayout || {x: '?', y: '?'};
+ debug('viewLayout', this.state.viewLayout);
+ return (
+
+ {
+ this._view = ref;
+ }}
+ onLayout={this.onViewLayout}
+ style={viewStyle}>
+ {
+ this._img = ref;
+ }}
+ onLayout={this.onImageLayout}
+ style={styles.image}
+ source={{uri: 'uie_thumb_big.png'}}
+ />
+ {
+ this._txt = ref;
+ }}
+ onLayout={this.onTextLayout}
+ style={styles.text}>
+ A simple piece of text.{this.state.extraText}
+
+
+ {'\n'}
+ Text w/h: {textLayout.width}/{textLayout.height + '\n'}
+ Image x/y: {imageLayout.x}/{imageLayout.y}
+
+
+
+ );
+ }
+}
+
+const styles = StyleSheet.create({
+ container: {
+ margin: 40,
+ },
+ view: {
+ margin: 20,
+ padding: 12,
+ borderColor: 'black',
+ borderWidth: 0.5,
+ backgroundColor: 'transparent',
+ },
+ text: {
+ alignSelf: 'flex-start',
+ borderColor: 'rgba(0, 0, 255, 0.2)',
+ borderWidth: 0.5,
+ },
+ image: {
+ width: 50,
+ height: 50,
+ marginBottom: 10,
+ alignSelf: 'center',
+ },
+});
+
+LayoutEventsTest.displayName = 'LayoutEventsTest';
+module.exports = LayoutEventsTest;
diff --git a/vnext/src-win/index.windows.js b/vnext/src-win/index.windows.js
index 91d35bb363f..c81a0b7b60a 100644
--- a/vnext/src-win/index.windows.js
+++ b/vnext/src-win/index.windows.js
@@ -32,11 +32,6 @@ import typeof AccessibilityInfo from './Libraries/Components/AccessibilityInfo/A
import typeof ActivityIndicator from './Libraries/Components/ActivityIndicator/ActivityIndicator';
// [Windows
import typeof AppTheme from './Libraries/AppTheme/AppTheme';
-export type {ImageURISource} from './Libraries/Image/ImageSource';
-export type {
- LayoutChangeEvent,
- LayoutRectangle,
-} from './Libraries/Types/CoreEventTypes';
// Windows]
import typeof Button from './Libraries/Components/Button';
import typeof Clipboard from './Libraries/Components/Clipboard/Clipboard';
From 1f1a3120d4cbb932e1b70514b12b6b2b0a6f21f9 Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 18:49:47 +0530
Subject: [PATCH 18/43] lint
---
vnext/src-win/IntegrationTests/LayoutEventsTest.js | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/vnext/src-win/IntegrationTests/LayoutEventsTest.js b/vnext/src-win/IntegrationTests/LayoutEventsTest.js
index bbc3b9631d6..973c6933d00 100644
--- a/vnext/src-win/IntegrationTests/LayoutEventsTest.js
+++ b/vnext/src-win/IntegrationTests/LayoutEventsTest.js
@@ -10,7 +10,10 @@
'use strict';
-import type {LayoutChangeEvent, LayoutRectangle} from 'react-native/Libraries/Types/CoreEventTypes'; // Windows
+import type {
+ LayoutChangeEvent,
+ LayoutRectangle,
+} from 'react-native/Libraries/Types/CoreEventTypes'; // Windows
import type {ViewStyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';
const React = require('react');
From 8367d3a58f593e562d20d4aea920e664f290c0fa Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 19:44:34 +0530
Subject: [PATCH 19/43] Update .flowconfig
---
vnext/.flowconfig | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/vnext/.flowconfig b/vnext/.flowconfig
index c4bd5c783a5..a7fe1d8f0b5 100644
--- a/vnext/.flowconfig
+++ b/vnext/.flowconfig
@@ -4,6 +4,9 @@
.*/*[.]ios.js
.*/*[.]macos.js
+; Ignore fb_internal modules
+/packages/react-native/src/fb_internal/.*
+
; These modules have base components and Windows versions.
; Ideally we'd delete the base versions of files that had .windows overrides as part of the
; initRNLibraries build step
@@ -162,4 +165,4 @@ untyped-import
untyped-type-import
[version]
-^0.268.0
+^0.269.1
From f58662e964b1c665356bbd6edebbf9fc2dccb498 Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 19:49:00 +0530
Subject: [PATCH 20/43] Update .flowconfig
---
packages/@office-iss/react-native-win32/.flowconfig | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/packages/@office-iss/react-native-win32/.flowconfig b/packages/@office-iss/react-native-win32/.flowconfig
index 4b336c425b0..6d1a0939c1c 100644
--- a/packages/@office-iss/react-native-win32/.flowconfig
+++ b/packages/@office-iss/react-native-win32/.flowconfig
@@ -5,6 +5,9 @@
.*/*[.]macos.js
.*/*[.]windesktop.js
+; Ignore fb_internal modules
+/packages/react-native/src/fb_internal/.*
+
; These modules have base components and win32 versions.
; Ideally we'd delete the base versions of files that had .win32 overrides as part of the
; initRNLibraries build step
@@ -167,4 +170,4 @@ untyped-import
untyped-type-import
[version]
-^0.268.0
+^0.269.1
From 80c9e538e8d7f8ae7f7b6d1951231771ed6a0315 Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 19:52:56 +0530
Subject: [PATCH 21/43] update flow version
---
packages/@react-native/monorepo/package.json | 4 ++--
yarn.lock | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/packages/@react-native/monorepo/package.json b/packages/@react-native/monorepo/package.json
index 40302e1307d..e7dbdae196b 100644
--- a/packages/@react-native/monorepo/package.json
+++ b/packages/@react-native/monorepo/package.json
@@ -77,7 +77,7 @@
"eslint-plugin-redundant-undefined": "^0.4.0",
"eslint-plugin-relay": "^1.8.3",
"flow-api-translator": "0.28.1",
- "flow-bin": "^0.268.0",
+ "flow-bin": "^0.269.1",
"glob": "^7.1.1",
"hermes-eslint": "0.28.1",
"hermes-transform": "0.28.1",
@@ -108,4 +108,4 @@
"resolutions": {
"react-is": "19.1.0"
}
-}
+}
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index 3cc06b583f6..601207831d1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -6205,10 +6205,10 @@ flow-bin@^0.267.0:
resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.267.0.tgz#a191375df35c768f1afaebfd0e25b06c8ab82a04"
integrity sha512-NsBcxdAqQauzgOaDf960M+eEnjcFS6FeMs93dEpkvQflwMlP4SRMdKQR8p5WzJJh07CXq9iQnxn+JjLN6kaLUw==
-flow-bin@^0.268.0:
- version "0.268.0"
- resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.268.0.tgz#89cb4de4ea65af30c9ad25e74068c840e40415e7"
- integrity sha512-ccENQl1ToGeDUjxinJ+0Z65o1ELg/F+1wylMZ7RBMhO1TvxyByVOLPoDji44JpIzGOPuw9dzYcBSEpFoWyoD7w==
+flow-bin@^0.269.1:
+ version "0.269.1"
+ resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.269.1.tgz#35396a95b769171e56d493b3a0cca9ade9944011"
+ integrity sha512-k5Ja91KVNVtGxyGuEm21lqf2TeVWXriiwlVHU95k8ArJwEZQ+KVza9ZSvJYgwMnpp7/Q9nuSdWJ9MJdEbvl2QQ==
flow-enums-runtime@^0.0.6:
version "0.0.6"
From ede9d0e41adcaf8327e04f71612ed9069c421087 Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 20:04:55 +0530
Subject: [PATCH 22/43] Update .flowconfig
---
vnext/.flowconfig | 3 +++
1 file changed, 3 insertions(+)
diff --git a/vnext/.flowconfig b/vnext/.flowconfig
index a7fe1d8f0b5..18a0271b30e 100644
--- a/vnext/.flowconfig
+++ b/vnext/.flowconfig
@@ -41,6 +41,9 @@
/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js
/Libraries/Utilities/Platform.flow.js
+/IntegrationTests/ImageCachePolicyTest.js
+/IntegrationTests/LayoutEventsTest.js
+/IntegrationTests/IntegrationTestsApp.js
; Ignore react-native files in node_modules since they are copied into project root
.*/node_modules/react-native/.*
From 330c2451fd0137e6aafce0f5a065ecd87c47ac0f Mon Sep 17 00:00:00 2001
From: Anupriya Verma <54227869+anupriya13@users.noreply.github.com>
Date: Fri, 18 Jul 2025 20:10:36 +0530
Subject: [PATCH 23/43] fix
---
vnext/.flowconfig | 3 +
vnext/overrides.json | 8 -
.../IntegrationTests/ImageCachePolicyTest.js | 108 ---------
.../IntegrationTests/LayoutEventsTest.js | 207 ------------------
4 files changed, 3 insertions(+), 323 deletions(-)
delete mode 100644 vnext/src-win/IntegrationTests/ImageCachePolicyTest.js
delete mode 100644 vnext/src-win/IntegrationTests/LayoutEventsTest.js
diff --git a/vnext/.flowconfig b/vnext/.flowconfig
index 18a0271b30e..5008f9e3bd3 100644
--- a/vnext/.flowconfig
+++ b/vnext/.flowconfig
@@ -44,6 +44,9 @@
/IntegrationTests/ImageCachePolicyTest.js
/IntegrationTests/LayoutEventsTest.js