diff --git a/change/@office-iss-react-native-win32-00f08c1d-abec-4482-ac13-a55c51d9d0ab.json b/change/@office-iss-react-native-win32-00f08c1d-abec-4482-ac13-a55c51d9d0ab.json
new file mode 100644
index 00000000000..b99650482d0
--- /dev/null
+++ b/change/@office-iss-react-native-win32-00f08c1d-abec-4482-ac13-a55c51d9d0ab.json
@@ -0,0 +1,7 @@
+{
+ "type": "prerelease",
+ "comment": "integrate RN-Nightly 0.77.0-nightly-20241125-4cffff35e",
+ "packageName": "@office-iss/react-native-win32",
+ "email": "email not defined",
+ "dependentChangeType": "patch"
+}
diff --git a/change/@react-native-windows-automation-channel-9599af0a-0bfc-472c-a030-cce847337557.json b/change/@react-native-windows-automation-channel-9599af0a-0bfc-472c-a030-cce847337557.json
new file mode 100644
index 00000000000..ca24ef8102f
--- /dev/null
+++ b/change/@react-native-windows-automation-channel-9599af0a-0bfc-472c-a030-cce847337557.json
@@ -0,0 +1,7 @@
+{
+ "type": "patch",
+ "comment": "integrate RN-Nightly 0.77.0-nightly-20241125-4cffff35e",
+ "packageName": "@react-native-windows/automation-channel",
+ "email": "email not defined",
+ "dependentChangeType": "patch"
+}
diff --git a/change/react-native-windows-cf3be303-f17a-4c7a-b180-a20c22ea1c27.json b/change/react-native-windows-cf3be303-f17a-4c7a-b180-a20c22ea1c27.json
new file mode 100644
index 00000000000..b9d2afcddbb
--- /dev/null
+++ b/change/react-native-windows-cf3be303-f17a-4c7a-b180-a20c22ea1c27.json
@@ -0,0 +1,7 @@
+{
+ "type": "prerelease",
+ "comment": "integrate RN-Nightly 0.77.0-nightly-20241125-4cffff35e",
+ "packageName": "react-native-windows",
+ "email": "email not defined",
+ "dependentChangeType": "patch"
+}
diff --git a/packages/@office-iss/react-native-win32-tester/overrides.json b/packages/@office-iss/react-native-win32-tester/overrides.json
index 307414f9bec..f1a3eb4f13d 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.77.0-nightly-20241118-3986eefed",
+ "baseVersion": "0.77.0-nightly-20241125-4cffff35e",
"overrides": [
{
"type": "patch",
diff --git a/packages/@office-iss/react-native-win32-tester/package.json b/packages/@office-iss/react-native-win32-tester/package.json
index 7317820e828..76cad89e5a8 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.275",
"react": "18.0.0",
- "react-native": "0.77.0-nightly-20241118-3986eefed"
+ "react-native": "0.77.0-nightly-20241125-4cffff35e"
},
"devDependencies": {
"@office-iss/react-native-win32": "^0.0.0-canary.275",
@@ -30,7 +30,7 @@
"@types/node": "^18.0.0",
"eslint": "^8.19.0",
"just-scripts": "^1.3.3",
- "react-native": "0.77.0-nightly-20241118-3986eefed",
+ "react-native": "0.77.0-nightly-20241125-4cffff35e",
"react-native-platform-override": "^1.9.49",
"typescript": "5.0.4"
},
diff --git a/packages/@office-iss/react-native-win32/overrides.json b/packages/@office-iss/react-native-win32/overrides.json
index 3aef529d49d..31b23b0e770 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.77.0-nightly-20241118-3986eefed",
+ "baseVersion": "0.77.0-nightly-20241125-4cffff35e",
"overrides": [
{
"type": "derived",
"file": ".flowconfig",
"baseFile": ".flowconfig",
- "baseHash": "afa414432bb8dae6ce606a148b74f85fcef8a59d"
+ "baseHash": "168a2b4bcf33aba4727eb608902b17b4eb74c95d"
},
{
"type": "derived",
@@ -197,7 +197,7 @@
"type": "patch",
"file": "src-win/Libraries/Components/View/ViewPropTypes.win32.js",
"baseFile": "packages/react-native/Libraries/Components/View/ViewPropTypes.js",
- "baseHash": "a742b26e4c96fdefb07779e40bc58cd1cc872675",
+ "baseHash": "994aead3d5ab49e6bd34a497094a4bc131a8bdb1",
"issue": 6240
},
{
diff --git a/packages/@office-iss/react-native-win32/package.json b/packages/@office-iss/react-native-win32/package.json
index 300e138ef3b..6bada06306c 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": "15.0.0-alpha.2",
"@react-native-community/cli-platform-ios": "15.0.0-alpha.2",
"@react-native/assets": "1.0.0",
- "@react-native/assets-registry": "0.77.0-nightly-20241118-3986eefed",
- "@react-native/codegen": "0.77.0-nightly-20241118-3986eefed",
- "@react-native/community-cli-plugin": "0.77.0-nightly-20241118-3986eefed",
- "@react-native/gradle-plugin": "0.77.0-nightly-20241118-3986eefed",
- "@react-native/js-polyfills": "0.77.0-nightly-20241118-3986eefed",
- "@react-native/normalize-colors": "0.77.0-nightly-20241118-3986eefed",
- "@react-native/virtualized-lists": "0.77.0-nightly-20241118-3986eefed",
+ "@react-native/assets-registry": "0.77.0-nightly-20241125-4cffff35e",
+ "@react-native/codegen": "0.77.0-nightly-20241125-4cffff35e",
+ "@react-native/community-cli-plugin": "0.77.0-nightly-20241125-4cffff35e",
+ "@react-native/gradle-plugin": "0.77.0-nightly-20241125-4cffff35e",
+ "@react-native/js-polyfills": "0.77.0-nightly-20241125-4cffff35e",
+ "@react-native/normalize-colors": "0.77.0-nightly-20241125-4cffff35e",
+ "@react-native/virtualized-lists": "0.77.0-nightly-20241125-4cffff35e",
"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.24.0",
+ "babel-plugin-syntax-hermes-parser": "0.25.1",
"base64-js": "^1.5.1",
"chalk": "^4.0.0",
"commander": "^12.0.0",
@@ -90,14 +90,14 @@
"just-scripts": "^1.3.3",
"prettier": "2.8.8",
"react": "18.3.1",
- "react-native": "0.77.0-nightly-20241118-3986eefed",
+ "react-native": "0.77.0-nightly-20241125-4cffff35e",
"react-native-platform-override": "^1.9.49",
"typescript": "5.0.4"
},
"peerDependencies": {
"@types/react": "^18.2.6",
"react": "^18.2.0",
- "react-native": "0.77.0-nightly-20241118-3986eefed"
+ "react-native": "0.77.0-nightly-20241125-4cffff35e"
},
"beachball": {
"defaultNpmTag": "canary",
diff --git a/packages/@office-iss/react-native-win32/src-win/Libraries/Components/View/ViewPropTypes.win32.js b/packages/@office-iss/react-native-win32/src-win/Libraries/Components/View/ViewPropTypes.win32.js
index 731115e4a75..dae6ae127c2 100644
--- a/packages/@office-iss/react-native-win32/src-win/Libraries/Components/View/ViewPropTypes.win32.js
+++ b/packages/@office-iss/react-native-win32/src-win/Libraries/Components/View/ViewPropTypes.win32.js
@@ -628,9 +628,6 @@ export type ViewProps = $ReadOnly<{|
* optimization. Set this property to `false` to disable this optimization and
* ensure that this `View` exists in the native view hierarchy.
*
- * @platform android
- * In Fabric, this prop is used in ios as well.
- *
* See https://reactnative.dev/docs/view#collapsable
*/
collapsable?: ?boolean,
diff --git a/packages/@react-native-windows/automation-channel/package.json b/packages/@react-native-windows/automation-channel/package.json
index 5cc6797f1da..ae463bc8b3b 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": "18.3.1",
- "react-native": "0.77.0-nightly-20241118-3986eefed",
+ "react-native": "0.77.0-nightly-20241125-4cffff35e",
"react-native-windows": "^0.0.0-canary.902",
"typescript": "5.0.4"
},
@@ -45,4 +45,4 @@
"engines": {
"node": ">= 18"
}
-}
+}
\ No newline at end of file
diff --git a/packages/@react-native-windows/tester/overrides.json b/packages/@react-native-windows/tester/overrides.json
index 2344c9367f0..97d18059cc6 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.77.0-nightly-20241118-3986eefed",
+ "baseVersion": "0.77.0-nightly-20241125-4cffff35e",
"overrides": [
{
"type": "derived",
diff --git a/packages/@react-native-windows/tester/package.json b/packages/@react-native-windows/tester/package.json
index d54293da979..f7cbf0e4dc4 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.4.10",
"react": "18.0.0",
- "react-native": "0.77.0-nightly-20241118-3986eefed",
+ "react-native": "0.77.0-nightly-20241125-4cffff35e",
"react-native-windows": "^0.0.0-canary.902",
"react-native-xaml": "^0.0.78"
},
@@ -32,7 +32,7 @@
"@types/node": "^18.0.0",
"eslint": "^8.19.0",
"just-scripts": "^1.3.3",
- "react-native": "0.77.0-nightly-20241118-3986eefed",
+ "react-native": "0.77.0-nightly-20241125-4cffff35e",
"react-native-platform-override": "^1.9.49",
"react-native-windows": "^0.0.0-canary.902",
"typescript": "5.0.4"
@@ -40,4 +40,4 @@
"engines": {
"node": ">= 18"
}
-}
+}
\ No newline at end of file
diff --git a/packages/@react-native/monorepo/overrides.json b/packages/@react-native/monorepo/overrides.json
index d99522e200a..027c11b4e19 100644
--- a/packages/@react-native/monorepo/overrides.json
+++ b/packages/@react-native/monorepo/overrides.json
@@ -1,11 +1,11 @@
{
- "baseVersion": "0.77.0-nightly-20241118-3986eefed",
+ "baseVersion": "0.77.0-nightly-20241125-4cffff35e",
"overrides": [
{
"type": "patch",
"file": "package.json",
"baseFile": "package.json",
- "baseHash": "ed58cfcbca39885cda24a4d1e5d115e0e60e62f5"
+ "baseHash": "9e15fbb7324a582fea297efedd4d1843b2b94902"
}
]
}
\ No newline at end of file
diff --git a/packages/@react-native/monorepo/package.json b/packages/@react-native/monorepo/package.json
index 682b063ed08..a6b1b1e065e 100644
--- a/packages/@react-native/monorepo/package.json
+++ b/packages/@react-native/monorepo/package.json
@@ -47,14 +47,14 @@
"@definitelytyped/dtslint": "^0.0.127",
"@jest/create-cache-key-function": "^29.6.3",
"@pkgjs/parseargs": "^0.11.0",
- "@react-native/metro-babel-transformer": "0.77.0-nightly-20241118-3986eefed",
- "@react-native/metro-config": "0.77.0-nightly-20241118-3986eefed",
+ "@react-native/metro-babel-transformer": "0.77.0-nightly-20241125-4cffff35e",
+ "@react-native/metro-config": "0.77.0-nightly-20241125-4cffff35e",
"@tsconfig/node18": "1.0.1",
"@types/react": "^18.2.6",
"@typescript-eslint/parser": "^7.1.1",
"ansi-styles": "^4.2.1",
"babel-plugin-minify-dead-code-elimination": "^0.5.2",
- "babel-plugin-syntax-hermes-parser": "0.24.0",
+ "babel-plugin-syntax-hermes-parser": "0.25.1",
"babel-plugin-transform-define": "^2.1.4",
"babel-plugin-transform-flow-enums": "^0.0.2",
"chalk": "^4.0.0",
diff --git a/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverIndex.js b/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverIndex.js
index 2e71beaf427..9311a5801b1 100644
--- a/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverIndex.js
+++ b/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverIndex.js
@@ -10,6 +10,7 @@
import * as IntersectionObserverBenchmark from './IntersectionObserverBenchmark';
import * as IntersectionObserverMDNExample from './IntersectionObserverMDNExample';
+import * as IntersectionObserverRootThreshold from './IntersectionObserverRootThreshold';
export const framework = 'React';
export const title = 'IntersectionObserver';
@@ -22,4 +23,5 @@ export const showIndividualExamples = true;
export const examples = [
IntersectionObserverMDNExample,
IntersectionObserverBenchmark,
+ IntersectionObserverRootThreshold,
];
diff --git a/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverRootThreshold.js b/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverRootThreshold.js
new file mode 100644
index 00000000000..5bb844048bc
--- /dev/null
+++ b/packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverRootThreshold.js
@@ -0,0 +1,221 @@
+/**
+ * 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 {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';
+
+export const name = 'IntersectionObserver Root Threshold';
+export const title = name;
+export const description =
+ 'Examples of setting threshold and rn_rootThreshold. 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.rn_intersectionRootRatio);
+ });
+ },
+ {threshold: props.threshold, rn_rootThreshold: 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}
+ rn_rootThreshold: {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/LinearGradient/LinearGradientExample.js b/packages/@react-native/tester/js/examples/LinearGradient/LinearGradientExample.js
index 82cdd137c03..620da9d4079 100644
--- a/packages/@react-native/tester/js/examples/LinearGradient/LinearGradientExample.js
+++ b/packages/@react-native/tester/js/examples/LinearGradient/LinearGradientExample.js
@@ -61,6 +61,43 @@ exports.examples = [
);
},
},
+ {
+ title: 'Linear Gradient with corner angle',
+ description: 'Rectangular Linear gradient with corner angle',
+ render(): React.Node {
+ return (
+
+ );
+ },
+ },
+ {
+ title: 'Multiple linear gradients',
+ render(): React.Node {
+ return (
+
+ );
+ },
+ },
{
title: 'Diagonal Gradient',
description: 'Linear gradient from top-left to bottom-right',
diff --git a/packages/@react-native/tester/overrides.json b/packages/@react-native/tester/overrides.json
index 25e22f98503..787c77f4c2d 100644
--- a/packages/@react-native/tester/overrides.json
+++ b/packages/@react-native/tester/overrides.json
@@ -1,5 +1,5 @@
{
- "baseVersion": "0.77.0-nightly-20241118-3986eefed",
+ "baseVersion": "0.77.0-nightly-20241125-4cffff35e",
"overrides": [
{
"type": "copy",
@@ -173,7 +173,7 @@
"type": "copy",
"directory": "js/examples/IntersectionObserver",
"baseDirectory": "packages/rn-tester/js/examples/IntersectionObserver",
- "baseHash": "ace636ea59030d802cee26ba49d7417f8ee3630e",
+ "baseHash": "18fa6bfda63981e386186916fd7a0f7530015b89",
"issue": 4054
},
{
@@ -215,7 +215,7 @@
"type": "copy",
"directory": "js/examples/LinearGradient",
"baseDirectory": "packages/rn-tester/js/examples/LinearGradient/",
- "baseHash": "1818fa64f944095d532d9e75d3937884392d7826",
+ "baseHash": "f7dda687686dfa4f255046878140b5224d3da937",
"issue": 4054
},
{
diff --git a/packages/e2e-test-app-fabric/package.json b/packages/e2e-test-app-fabric/package.json
index 8456e497317..4a1480258b0 100644
--- a/packages/e2e-test-app-fabric/package.json
+++ b/packages/e2e-test-app-fabric/package.json
@@ -20,7 +20,7 @@
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
"react": "^18.2.0",
- "react-native": "0.77.0-nightly-20241118-3986eefed",
+ "react-native": "0.77.0-nightly-20241125-4cffff35e",
"react-native-windows": "^0.0.0-canary.902"
},
"devDependencies": {
@@ -55,4 +55,4 @@
"engines": {
"node": ">= 18"
}
-}
+}
\ No newline at end of file
diff --git a/packages/e2e-test-app/package.json b/packages/e2e-test-app/package.json
index a06bbd0b96e..fb2719d581f 100644
--- a/packages/e2e-test-app/package.json
+++ b/packages/e2e-test-app/package.json
@@ -20,7 +20,7 @@
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
"react": "^18.2.0",
- "react-native": "0.77.0-nightly-20241118-3986eefed",
+ "react-native": "0.77.0-nightly-20241125-4cffff35e",
"react-native-windows": "^0.0.0-canary.902",
"react-native-xaml": "^0.0.78"
},
@@ -55,4 +55,4 @@
"engines": {
"node": ">= 18"
}
-}
+}
\ No newline at end of file
diff --git a/packages/integration-test-app/package.json b/packages/integration-test-app/package.json
index a00dd6d7b2c..08325f4835f 100644
--- a/packages/integration-test-app/package.json
+++ b/packages/integration-test-app/package.json
@@ -17,7 +17,7 @@
"@typescript-eslint/parser": "^7.1.1",
"chai": "^4.2.0",
"react": "^18.2.0",
- "react-native": "0.77.0-nightly-20241118-3986eefed",
+ "react-native": "0.77.0-nightly-20241125-4cffff35e",
"react-native-windows": "^0.0.0-canary.902"
},
"devDependencies": {
@@ -51,4 +51,4 @@
"engines": {
"node": ">= 18"
}
-}
+}
\ No newline at end of file
diff --git a/packages/playground/package.json b/packages/playground/package.json
index d784d6a834e..52dfae8a569 100644
--- a/packages/playground/package.json
+++ b/packages/playground/package.json
@@ -16,7 +16,7 @@
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
"react": "^18.2.0",
- "react-native": "0.77.0-nightly-20241118-3986eefed",
+ "react-native": "0.77.0-nightly-20241125-4cffff35e",
"react-native-windows": "^0.0.0-canary.902"
},
"devDependencies": {
@@ -40,4 +40,4 @@
"engines": {
"node": ">= 18"
}
-}
+}
\ No newline at end of file
diff --git a/packages/sample-app-fabric/package.json b/packages/sample-app-fabric/package.json
index ab63a1b232d..24f8c40217b 100644
--- a/packages/sample-app-fabric/package.json
+++ b/packages/sample-app-fabric/package.json
@@ -16,7 +16,7 @@
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
"react": "^18.2.0",
- "react-native": "0.77.0-nightly-20241118-3986eefed",
+ "react-native": "0.77.0-nightly-20241125-4cffff35e",
"react-native-windows": "^0.0.0-canary.902"
},
"devDependencies": {
@@ -48,4 +48,4 @@
"engines": {
"node": ">=18"
}
-}
+}
\ No newline at end of file
diff --git a/packages/sample-apps/package.json b/packages/sample-apps/package.json
index 3ae28a43b61..33305a91655 100644
--- a/packages/sample-apps/package.json
+++ b/packages/sample-apps/package.json
@@ -16,7 +16,7 @@
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
"react": "^18.2.0",
- "react-native": "0.77.0-nightly-20241118-3986eefed",
+ "react-native": "0.77.0-nightly-20241125-4cffff35e",
"react-native-windows": "^0.0.0-canary.902"
},
"devDependencies": {
@@ -50,4 +50,4 @@
"engines": {
"node": ">= 18"
}
-}
+}
\ No newline at end of file
diff --git a/packages/sample-custom-component/package.json b/packages/sample-custom-component/package.json
index 2559bd66793..bac3b2dc625 100644
--- a/packages/sample-custom-component/package.json
+++ b/packages/sample-custom-component/package.json
@@ -22,7 +22,7 @@
"dependencies": {
"@types/react": "^18.2.6",
"react": "^18.2.0",
- "react-native": "0.77.0-nightly-20241118-3986eefed",
+ "react-native": "0.77.0-nightly-20241125-4cffff35e",
"react-native-windows": "^0.0.0-canary.902"
},
"devDependencies": {
@@ -53,4 +53,4 @@
"engines": {
"node": ">=18"
}
-}
+}
\ No newline at end of file
diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Base.h b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Base.h
deleted file mode 100644
index f82076c0b6d..00000000000
--- a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Base.h
+++ /dev/null
@@ -1,176 +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
-#include
-
-namespace facebook::react {
-
-class CallInvoker;
-
-template
-struct Bridging;
-
-template <>
-struct Bridging {
- // Highly generic code may result in "casting" to void.
- static void fromJs(jsi::Runtime&, const jsi::Value&) {}
-};
-
-namespace bridging {
-namespace detail {
-
-template
-struct function_wrapper;
-
-template
-struct function_wrapper {
- using type = std::function;
-};
-
-template
-struct function_wrapper {
- using type = std::function;
-};
-
-template
-struct bridging_wrapper {
- using type = remove_cvref_t;
-};
-
-// Convert lambda types to move-only function types since we can't specialize
-// Bridging templates for arbitrary lambdas.
-template
-struct bridging_wrapper<
- T,
- std::void_t::operator())>>
- : function_wrapper::operator())> {};
-
-} // namespace detail
-
-template
-using bridging_t = typename detail::bridging_wrapper::type;
-
-template , int> = 0>
-auto fromJs(jsi::Runtime& rt, T&& value, const std::shared_ptr&)
- -> decltype(static_cast(std::move(convert(rt, std::forward(value))))) {
- return static_cast(std::move(convert(rt, std::forward(value))));
-}
-
-template
-auto fromJs(jsi::Runtime& rt, T&& value, const std::shared_ptr&)
- -> decltype(Bridging>::fromJs(
- rt,
- convert(rt, std::forward(value)))) {
- return Bridging>::fromJs(
- rt, convert(rt, std::forward(value)));
-}
-
-template
-auto fromJs(
- jsi::Runtime& rt,
- T&& value,
- const std::shared_ptr& jsInvoker)
- -> decltype(Bridging>::fromJs(
- rt,
- convert(rt, std::forward(value)),
- jsInvoker)) {
- return Bridging>::fromJs(
- rt, convert(rt, std::forward(value)), jsInvoker);
-}
-
-template , int> = 0>
-auto toJs(
- jsi::Runtime& rt,
- T&& value,
- const std::shared_ptr& = nullptr) -> remove_cvref_t {
- return convert(rt, std::forward(value));
-}
-
-template
-auto toJs(
- jsi::Runtime& rt,
- T&& value,
- const std::shared_ptr& = nullptr)
- -> decltype(Bridging>::toJs(rt, std::forward(value))) {
- return Bridging>::toJs(rt, std::forward(value));
-}
-
-template
-auto toJs(
- jsi::Runtime& rt,
- T&& value,
- const std::shared_ptr& jsInvoker)
- -> decltype(Bridging>::toJs(
- rt,
- std::forward(value),
- jsInvoker)) {
- return Bridging>::toJs(rt, std::forward(value), jsInvoker);
-}
-
-template
-inline constexpr bool supportsFromJs = false;
-
-template
-inline constexpr bool supportsFromJs<
- T,
- Arg,
- std::void_t(
- std::declval(),
- std::declval(),
- nullptr))>> = true;
-
-template
-inline constexpr bool supportsFromJs<
- T,
- jsi::Value,
- std::void_t(
- std::declval(),
- std::declval(),
- nullptr))>> = true;
-
-template
-inline constexpr bool supportsToJs = false;
-
-template
-inline constexpr bool supportsToJs<
- T,
- Ret,
- std::void_t(),
- std::declval(),
- nullptr))>> =
- std::is_convertible_v<
- decltype(toJs(
- std::declval(),
- std::declval(),
- nullptr)),
- Ret>;
-
-template
-inline constexpr bool supportsToJs<
- T,
- jsi::Value,
- std::void_t(),
- std::declval(),
- nullptr))>> =
- std::is_convertible_v<
- decltype(toJs(
- std::declval(),
- std::declval(),
- nullptr)),
- jsi::Value>;
-
-} // namespace bridging
-} // namespace facebook::react
\ No newline at end of file
diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp
index c023270927b..cab2a5e1dbf 100644
--- a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp
+++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp
@@ -19,6 +19,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -92,6 +93,7 @@ ReactInstance::ReactInstance(
jsi::Runtime& jsiRuntime = runtime->getRuntime();
SystraceSection s("ReactInstance::_runtimeExecutor[Callback]");
try {
+ ShadowNode::setUseRuntimeShadowNodeReferenceUpdateOnThread(true);
callback(jsiRuntime);
// If we have first-class support for microtasks,
@@ -433,6 +435,37 @@ void ReactInstance::initializeRuntime(
return jsErrorHandler->isRuntimeReady();
}));
+ defineReadOnlyGlobal(
+ runtime,
+ "RN$hasHandledFatalException",
+ jsi::Function::createFromHostFunction(
+ runtime,
+ jsi::PropNameID::forAscii(runtime, "hasHandledFatalException"),
+ 0,
+ [jsErrorHandler = jsErrorHandler_](
+ jsi::Runtime& /*runtime*/,
+ const jsi::Value& /*unused*/,
+ const jsi::Value* /*args*/,
+ size_t /*count*/) {
+ return jsErrorHandler->hasHandledFatalError();
+ }));
+
+ defineReadOnlyGlobal(
+ runtime,
+ "RN$notifyOfFatalException",
+ jsi::Function::createFromHostFunction(
+ runtime,
+ jsi::PropNameID::forAscii(runtime, "notifyOfFatalException"),
+ 0,
+ [jsErrorHandler = jsErrorHandler_](
+ jsi::Runtime& /*runtime*/,
+ const jsi::Value& /*unused*/,
+ const jsi::Value* /*args*/,
+ size_t /*count*/) {
+ jsErrorHandler->notifyOfFatalError();
+ return jsi::Value::undefined();
+ }));
+
defineReadOnlyGlobal(
runtime,
"RN$inExceptionHandler",
@@ -472,10 +505,6 @@ void ReactInstance::initializeRuntime(
if (!ReactNativeFeatureFlags::
useAlwaysAvailableJSErrorHandling()) {
if (jsErrorHandler->isRuntimeReady()) {
- if (isFatal) {
- jsErrorHandler->notifyOfFatalError();
- }
-
return jsi::Value(false);
}
}
diff --git a/vnext/codegen/NativeIntersectionObserverSpec.g.h b/vnext/codegen/NativeIntersectionObserverSpec.g.h
index fc3973c4d11..ff7bdbabb9b 100644
--- a/vnext/codegen/NativeIntersectionObserverSpec.g.h
+++ b/vnext/codegen/NativeIntersectionObserverSpec.g.h
@@ -28,6 +28,7 @@ struct IntersectionObserverSpec_NativeIntersectionObserverObserveOptions {
double intersectionObserverId;
targetShadowNode;
std::vector thresholds;
+ std::optional> rootThresholds;
};
@@ -49,6 +50,7 @@ inline winrt::Microsoft::ReactNative::FieldMap GetStructInfo(IntersectionObserve
{L"intersectionObserverId", &IntersectionObserverSpec_NativeIntersectionObserverObserveOptions::intersectionObserverId},
{L"targetShadowNode", &IntersectionObserverSpec_NativeIntersectionObserverObserveOptions::targetShadowNode},
{L"thresholds", &IntersectionObserverSpec_NativeIntersectionObserverObserveOptions::thresholds},
+ {L"rootThresholds", &IntersectionObserverSpec_NativeIntersectionObserverObserveOptions::rootThresholds},
};
return fieldMap;
}
diff --git a/vnext/codegen/NativeReactNativeFeatureFlagsSpec.g.h b/vnext/codegen/NativeReactNativeFeatureFlagsSpec.g.h
index f069834001b..da8d4fe1b0b 100644
--- a/vnext/codegen/NativeReactNativeFeatureFlagsSpec.g.h
+++ b/vnext/codegen/NativeReactNativeFeatureFlagsSpec.g.h
@@ -53,17 +53,16 @@ struct ReactNativeFeatureFlagsSpec : winrt::Microsoft::ReactNative::TurboModuleS
SyncMethod{33, L"initEagerTurboModulesOnNativeModulesQueueAndroid"},
SyncMethod{34, L"lazyAnimationCallbacks"},
SyncMethod{35, L"loadVectorDrawablesOnImages"},
- SyncMethod{36, L"setAndroidLayoutDirection"},
- SyncMethod{37, L"traceTurboModulePromiseRejectionsOnAndroid"},
- SyncMethod{38, L"useAlwaysAvailableJSErrorHandling"},
- SyncMethod{39, L"useFabricInterop"},
- SyncMethod{40, L"useImmediateExecutorInAndroidBridgeless"},
- SyncMethod{41, L"useNativeViewConfigsInBridgelessMode"},
- SyncMethod{42, L"useOptimisedViewPreallocationOnAndroid"},
- SyncMethod{43, L"useOptimizedEventBatchingOnAndroid"},
- SyncMethod{44, L"useRuntimeShadowNodeReferenceUpdate"},
- SyncMethod{45, L"useTurboModuleInterop"},
- SyncMethod{46, L"useTurboModules"},
+ SyncMethod{36, L"traceTurboModulePromiseRejectionsOnAndroid"},
+ SyncMethod{37, L"useAlwaysAvailableJSErrorHandling"},
+ SyncMethod{38, L"useFabricInterop"},
+ SyncMethod{39, L"useImmediateExecutorInAndroidBridgeless"},
+ SyncMethod{40, L"useNativeViewConfigsInBridgelessMode"},
+ SyncMethod{41, L"useOptimisedViewPreallocationOnAndroid"},
+ SyncMethod{42, L"useOptimizedEventBatchingOnAndroid"},
+ SyncMethod{43, L"useRuntimeShadowNodeReferenceUpdate"},
+ SyncMethod{44, L"useTurboModuleInterop"},
+ SyncMethod{45, L"useTurboModules"},
};
template
@@ -252,56 +251,51 @@ struct ReactNativeFeatureFlagsSpec : winrt::Microsoft::ReactNative::TurboModuleS
" REACT_SYNC_METHOD(loadVectorDrawablesOnImages) static bool loadVectorDrawablesOnImages() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
36,
- "setAndroidLayoutDirection",
- " REACT_SYNC_METHOD(setAndroidLayoutDirection) bool setAndroidLayoutDirection() noexcept { /* implementation */ }\n"
- " REACT_SYNC_METHOD(setAndroidLayoutDirection) static bool setAndroidLayoutDirection() noexcept { /* implementation */ }\n");
- REACT_SHOW_METHOD_SPEC_ERRORS(
- 37,
"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(
- 38,
+ 37,
"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(
- 39,
+ 38,
"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(
- 40,
+ 39,
"useImmediateExecutorInAndroidBridgeless",
" REACT_SYNC_METHOD(useImmediateExecutorInAndroidBridgeless) bool useImmediateExecutorInAndroidBridgeless() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(useImmediateExecutorInAndroidBridgeless) static bool useImmediateExecutorInAndroidBridgeless() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 41,
+ 40,
"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(
- 42,
+ 41,
"useOptimisedViewPreallocationOnAndroid",
" REACT_SYNC_METHOD(useOptimisedViewPreallocationOnAndroid) bool useOptimisedViewPreallocationOnAndroid() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(useOptimisedViewPreallocationOnAndroid) static bool useOptimisedViewPreallocationOnAndroid() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 43,
+ 42,
"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(
- 44,
+ 43,
"useRuntimeShadowNodeReferenceUpdate",
" REACT_SYNC_METHOD(useRuntimeShadowNodeReferenceUpdate) bool useRuntimeShadowNodeReferenceUpdate() noexcept { /* implementation */ }\n"
" REACT_SYNC_METHOD(useRuntimeShadowNodeReferenceUpdate) static bool useRuntimeShadowNodeReferenceUpdate() noexcept { /* implementation */ }\n");
REACT_SHOW_METHOD_SPEC_ERRORS(
- 45,
+ 44,
"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(
- 46,
+ 45,
"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 4abf97b8ba4..7c7f61ebc49 100644
--- a/vnext/codegen/rnwcoreJSI-generated.cpp
+++ b/vnext/codegen/rnwcoreJSI-generated.cpp
@@ -191,11 +191,6 @@ static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_loadVec
rt
);
}
-static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_setAndroidLayoutDirection(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
- return static_cast(&turboModule)->setAndroidLayoutDirection(
- 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
@@ -285,7 +280,6 @@ NativeReactNativeFeatureFlagsCxxSpecJSI::NativeReactNativeFeatureFlagsCxxSpecJSI
methodMap_["initEagerTurboModulesOnNativeModulesQueueAndroid"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_initEagerTurboModulesOnNativeModulesQueueAndroid};
methodMap_["lazyAnimationCallbacks"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_lazyAnimationCallbacks};
methodMap_["loadVectorDrawablesOnImages"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_loadVectorDrawablesOnImages};
- methodMap_["setAndroidLayoutDirection"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_setAndroidLayoutDirection};
methodMap_["traceTurboModulePromiseRejectionsOnAndroid"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_traceTurboModulePromiseRejectionsOnAndroid};
methodMap_["useAlwaysAvailableJSErrorHandling"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useAlwaysAvailableJSErrorHandling};
methodMap_["useFabricInterop"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useFabricInterop};
diff --git a/vnext/codegen/rnwcoreJSI.h b/vnext/codegen/rnwcoreJSI.h
index 4138b97c784..0ecaba21d76 100644
--- a/vnext/codegen/rnwcoreJSI.h
+++ b/vnext/codegen/rnwcoreJSI.h
@@ -56,7 +56,6 @@ namespace facebook::react {
virtual bool initEagerTurboModulesOnNativeModulesQueueAndroid(jsi::Runtime &rt) = 0;
virtual bool lazyAnimationCallbacks(jsi::Runtime &rt) = 0;
virtual bool loadVectorDrawablesOnImages(jsi::Runtime &rt) = 0;
- virtual bool setAndroidLayoutDirection(jsi::Runtime &rt) = 0;
virtual bool traceTurboModulePromiseRejectionsOnAndroid(jsi::Runtime &rt) = 0;
virtual bool useAlwaysAvailableJSErrorHandling(jsi::Runtime &rt) = 0;
virtual bool useFabricInterop(jsi::Runtime &rt) = 0;
@@ -385,14 +384,6 @@ class JSI_EXPORT NativeReactNativeFeatureFlagsCxxSpec : public TurboModule {
return bridging::callFromJs(
rt, &T::loadVectorDrawablesOnImages, jsInvoker_, instance_);
}
- bool setAndroidLayoutDirection(jsi::Runtime &rt) override {
- static_assert(
- bridging::getParameterCount(&T::setAndroidLayoutDirection) == 1,
- "Expected setAndroidLayoutDirection(...) to have 1 parameters");
-
- return bridging::callFromJs(
- rt, &T::setAndroidLayoutDirection, jsInvoker_, instance_);
- }
bool traceTurboModulePromiseRejectionsOnAndroid(jsi::Runtime &rt) override {
static_assert(
bridging::getParameterCount(&T::traceTurboModulePromiseRejectionsOnAndroid) == 1,
@@ -8213,13 +8204,14 @@ struct NativeIntersectionObserverNativeIntersectionObserverEntryBridging {
#pragma mark - NativeIntersectionObserverNativeIntersectionObserverObserveOptions
-template
+template
struct NativeIntersectionObserverNativeIntersectionObserverObserveOptions {
P0 intersectionObserverId;
P1 targetShadowNode;
P2 thresholds;
+ P3 rootThresholds;
bool operator==(const NativeIntersectionObserverNativeIntersectionObserverObserveOptions &other) const {
- return intersectionObserverId == other.intersectionObserverId && targetShadowNode == other.targetShadowNode && thresholds == other.thresholds;
+ return intersectionObserverId == other.intersectionObserverId && targetShadowNode == other.targetShadowNode && thresholds == other.thresholds && rootThresholds == other.rootThresholds;
}
};
@@ -8234,7 +8226,8 @@ struct NativeIntersectionObserverNativeIntersectionObserverObserveOptionsBridgin
T result{
bridging::fromJs(rt, value.getProperty(rt, "intersectionObserverId"), jsInvoker),
bridging::fromJs(rt, value.getProperty(rt, "targetShadowNode"), jsInvoker),
- bridging::fromJs(rt, value.getProperty(rt, "thresholds"), jsInvoker)};
+ bridging::fromJs(rt, value.getProperty(rt, "thresholds"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "rootThresholds"), jsInvoker)};
return result;
}
@@ -8250,6 +8243,10 @@ struct NativeIntersectionObserverNativeIntersectionObserverObserveOptionsBridgin
static jsi::Array thresholdsToJs(jsi::Runtime &rt, decltype(types.thresholds) value) {
return bridging::toJs(rt, value);
}
+
+ static std::optional rootThresholdsToJs(jsi::Runtime &rt, decltype(types.rootThresholds) value) {
+ return bridging::toJs(rt, value);
+ }
#endif
static jsi::Object toJs(
@@ -8260,6 +8257,9 @@ struct NativeIntersectionObserverNativeIntersectionObserverObserveOptionsBridgin
result.setProperty(rt, "intersectionObserverId", bridging::toJs(rt, value.intersectionObserverId, jsInvoker));
result.setProperty(rt, "targetShadowNode", bridging::toJs(rt, value.targetShadowNode, jsInvoker));
result.setProperty(rt, "thresholds", bridging::toJs(rt, value.thresholds, jsInvoker));
+ if (value.rootThresholds) {
+ result.setProperty(rt, "rootThresholds", bridging::toJs(rt, value.rootThresholds.value(), jsInvoker));
+ }
return result;
}
};
diff --git a/vnext/overrides.json b/vnext/overrides.json
index b9eac3fb461..097bfb0779f 100644
--- a/vnext/overrides.json
+++ b/vnext/overrides.json
@@ -8,13 +8,13 @@
"**/__snapshots__/**",
"src-win/rntypes/**"
],
- "baseVersion": "0.77.0-nightly-20241118-3986eefed",
+ "baseVersion": "0.77.0-nightly-20241125-4cffff35e",
"overrides": [
{
"type": "derived",
"file": ".flowconfig",
"baseFile": ".flowconfig",
- "baseHash": "afa414432bb8dae6ce606a148b74f85fcef8a59d"
+ "baseHash": "168a2b4bcf33aba4727eb608902b17b4eb74c95d"
},
{
"type": "derived",
@@ -126,13 +126,6 @@
"baseHash": "d961f37983356cbc64622db6194cd4b2a9a4e05c",
"issue": 13587
},
- {
- "type": "patch",
- "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Base.h",
- "baseFile": "packages/react-native/ReactCommon/react/bridging/Base.h",
- "baseHash": "e85dc01810f13f0891dfeb0bad43efda7402a145",
- "issue": 14130
- },
{
"type": "patch",
"file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h",
@@ -197,7 +190,7 @@
"type": "patch",
"file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp",
"baseFile": "packages/react-native/ReactCommon/react/runtime/ReactInstance.cpp",
- "baseHash": "847ac68f0dbcacdd5a47a244bd57c93da2226d04",
+ "baseHash": "240a49c5f5bd67f35e79dcbe9a9c6e7f6e6e2a32",
"issue": 13172
},
{
@@ -473,7 +466,7 @@
"type": "patch",
"file": "src-win/Libraries/Components/View/ViewPropTypes.windows.js",
"baseFile": "packages/react-native/Libraries/Components/View/ViewPropTypes.js",
- "baseHash": "a742b26e4c96fdefb07779e40bc58cd1cc872675"
+ "baseHash": "994aead3d5ab49e6bd34a497094a4bc131a8bdb1"
},
{
"type": "patch",
diff --git a/vnext/package.json b/vnext/package.json
index edcf36d7c02..2bcfd9bded7 100644
--- a/vnext/package.json
+++ b/vnext/package.json
@@ -28,18 +28,18 @@
"@react-native-community/cli-platform-ios": "15.0.0-alpha.2",
"@react-native-windows/cli": "0.0.0-canary.251",
"@react-native/assets": "1.0.0",
- "@react-native/assets-registry": "0.77.0-nightly-20241118-3986eefed",
- "@react-native/codegen": "0.77.0-nightly-20241118-3986eefed",
- "@react-native/community-cli-plugin": "0.77.0-nightly-20241118-3986eefed",
- "@react-native/gradle-plugin": "0.77.0-nightly-20241118-3986eefed",
- "@react-native/js-polyfills": "0.77.0-nightly-20241118-3986eefed",
- "@react-native/normalize-colors": "0.77.0-nightly-20241118-3986eefed",
- "@react-native/virtualized-lists": "0.77.0-nightly-20241118-3986eefed",
+ "@react-native/assets-registry": "0.77.0-nightly-20241125-4cffff35e",
+ "@react-native/codegen": "0.77.0-nightly-20241125-4cffff35e",
+ "@react-native/community-cli-plugin": "0.77.0-nightly-20241125-4cffff35e",
+ "@react-native/gradle-plugin": "0.77.0-nightly-20241125-4cffff35e",
+ "@react-native/js-polyfills": "0.77.0-nightly-20241125-4cffff35e",
+ "@react-native/normalize-colors": "0.77.0-nightly-20241125-4cffff35e",
+ "@react-native/virtualized-lists": "0.77.0-nightly-20241125-4cffff35e",
"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.24.0",
+ "babel-plugin-syntax-hermes-parser": "0.25.1",
"base64-js": "^1.5.1",
"chalk": "^4.0.0",
"commander": "^12.0.0",
@@ -85,7 +85,7 @@
"just-scripts": "^1.3.3",
"prettier": "2.8.8",
"react": "18.3.1",
- "react-native": "0.77.0-nightly-20241118-3986eefed",
+ "react-native": "0.77.0-nightly-20241125-4cffff35e",
"react-native-platform-override": "^1.9.49",
"react-refresh": "^0.14.0",
"typescript": "5.0.4"
@@ -93,7 +93,7 @@
"peerDependencies": {
"@types/react": "^18.2.6",
"react": "^18.2.0",
- "react-native": "0.77.0-nightly-20241118-3986eefed"
+ "react-native": "0.77.0-nightly-20241125-4cffff35e"
},
"beachball": {
"defaultNpmTag": "canary",
diff --git a/vnext/src-win/Libraries/Components/View/ViewPropTypes.windows.js b/vnext/src-win/Libraries/Components/View/ViewPropTypes.windows.js
index 1fb9833f434..2e625447e91 100644
--- a/vnext/src-win/Libraries/Components/View/ViewPropTypes.windows.js
+++ b/vnext/src-win/Libraries/Components/View/ViewPropTypes.windows.js
@@ -635,9 +635,6 @@ export type ViewProps = $ReadOnly<{|
* optimization. Set this property to `false` to disable this optimization and
* ensure that this `View` exists in the native view hierarchy.
*
- * @platform android
- * In Fabric, this prop is used in ios as well.
- *
* See https://reactnative.dev/docs/view#collapsable
*/
collapsable?: ?boolean,
diff --git a/yarn.lock b/yarn.lock
index 393f3f690bd..bca84cb703d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2090,10 +2090,10 @@
resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-2.10.2.tgz#92870eaefdde5cf06a0bb18dde593b9675c0bcab"
integrity sha512-kr3OvCRwTYjR/OKlb52k4xmQVU7dPRIALqpyiihexdJxEgvc1smnepgqCeM9oXmNSG4YaV5/RSxFlLC5Z/T/Eg==
-"@react-native/assets-registry@0.77.0-nightly-20241118-3986eefed":
- version "0.77.0-nightly-20241118-3986eefed"
- resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.77.0-nightly-20241118-3986eefed.tgz#2abc96dff0eaf9865a961d87da38581655099959"
- integrity sha512-ZBCiGql2+CTm/KBrjCoca1MB2UvzXmuXVqELFjaoxboqWPmRIirPHvLHXoWiUk3tDKIV/pBEA1xwg9Fd+w0PBg==
+"@react-native/assets-registry@0.77.0-nightly-20241125-4cffff35e":
+ version "0.77.0-nightly-20241125-4cffff35e"
+ resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.77.0-nightly-20241125-4cffff35e.tgz#9493bb84fb433f8b66c04aea926f16696735aff4"
+ integrity sha512-0xCTAlKUkcSYIIZKEXze/Jq7DNL1C3vMCkVdmA8sR5mtAP9dDc5mdXTnElMlY1G1Vh/MuZtJTuE7PKWprvhaxA==
"@react-native/assets@1.0.0":
version "1.0.0"
@@ -2116,13 +2116,13 @@
"@babel/traverse" "^7.25.3"
"@react-native/codegen" "0.77.0-nightly-20241020-e7a3f479f"
-"@react-native/babel-plugin-codegen@0.77.0-nightly-20241118-3986eefed":
- version "0.77.0-nightly-20241118-3986eefed"
- resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.77.0-nightly-20241118-3986eefed.tgz#3046d94faa248d449c306eb7fe1405492054628f"
- integrity sha512-vTNCT8G/OiAiBoQ92tHdDpBIeYvwS5w0CFU+Da5yXx95mWZbYMVMmuxYezPy85e3WEphcS+iWX1S8vG2sWy9mA==
+"@react-native/babel-plugin-codegen@0.77.0-nightly-20241125-4cffff35e":
+ version "0.77.0-nightly-20241125-4cffff35e"
+ resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.77.0-nightly-20241125-4cffff35e.tgz#afb49fb8b07c484c9aea63f16edc3c71be1e7b09"
+ integrity sha512-AUJpvNg6xUMzbNB+iy182GAenOjxa8F3ptJf51KhmFQ8EMBBgHIjqwqPhDpOizht4Cutg/qh5m2hwAP6OFcMrw==
dependencies:
"@babel/traverse" "^7.25.3"
- "@react-native/codegen" "0.77.0-nightly-20241118-3986eefed"
+ "@react-native/codegen" "0.77.0-nightly-20241125-4cffff35e"
"@react-native/babel-preset@0.77.0-nightly-20241001-223e98cc4":
version "0.77.0-nightly-20241001-223e98cc4"
@@ -2226,10 +2226,10 @@
babel-plugin-transform-flow-enums "^0.0.2"
react-refresh "^0.14.0"
-"@react-native/babel-preset@0.77.0-nightly-20241118-3986eefed":
- version "0.77.0-nightly-20241118-3986eefed"
- resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.77.0-nightly-20241118-3986eefed.tgz#db2172e2544b4fa4a51987b77456652d02d12ea6"
- integrity sha512-nwlF4clPmlY/f8eFDwPEMIkU1LHu14ZhN5JC2bsg6+I0dq6o0iiULq1/6QvAf987i/oSF905rg+TDIv/k9Q1cg==
+"@react-native/babel-preset@0.77.0-nightly-20241125-4cffff35e":
+ version "0.77.0-nightly-20241125-4cffff35e"
+ resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.77.0-nightly-20241125-4cffff35e.tgz#0bdceb472a619b4f963f6441b9cf767eea87374f"
+ integrity sha512-XmMcryvwsSoclrQwS46aX6AWHm1sHHhuogUmBZaWjVykvSLOGz8vpZO6jcyx03dn3jGS5RqMOPmrDRXYppL3vg==
dependencies:
"@babel/core" "^7.25.2"
"@babel/plugin-proposal-export-default-from" "^7.24.7"
@@ -2272,8 +2272,8 @@
"@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.77.0-nightly-20241118-3986eefed"
- babel-plugin-syntax-hermes-parser "0.24.0"
+ "@react-native/babel-plugin-codegen" "0.77.0-nightly-20241125-4cffff35e"
+ babel-plugin-syntax-hermes-parser "0.25.1"
babel-plugin-transform-flow-enums "^0.0.2"
react-refresh "^0.14.0"
@@ -2303,26 +2303,26 @@
nullthrows "^1.1.1"
yargs "^17.6.2"
-"@react-native/codegen@0.77.0-nightly-20241118-3986eefed":
- version "0.77.0-nightly-20241118-3986eefed"
- resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.77.0-nightly-20241118-3986eefed.tgz#01b559674df6a3dcb0add6172f4726f4839bcd4a"
- integrity sha512-MgL/6CrnkoyBgclYHQpzSsapNx7nC1XavJvW2Khd+bDhE4fBNe07r2RJgtP03ThK3us9g1gyK7xNKZgPdMC4Ug==
+"@react-native/codegen@0.77.0-nightly-20241125-4cffff35e":
+ version "0.77.0-nightly-20241125-4cffff35e"
+ resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.77.0-nightly-20241125-4cffff35e.tgz#7e9afa45c7a37504480b2d157cec8f8240f66dc3"
+ integrity sha512-Q7NI+i+LwbHjHdilHArbdE9GAJSnbafE51QIkf8ZMTOCX9uEx7uOuV1HV7TxyRWAweImyq0YpLSsAaJ8WINtKA==
dependencies:
"@babel/parser" "^7.25.3"
glob "^7.1.1"
- hermes-parser "0.24.0"
+ hermes-parser "0.25.1"
invariant "^2.2.4"
jscodeshift "^17.0.0"
nullthrows "^1.1.1"
yargs "^17.6.2"
-"@react-native/community-cli-plugin@0.77.0-nightly-20241118-3986eefed":
- version "0.77.0-nightly-20241118-3986eefed"
- resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.77.0-nightly-20241118-3986eefed.tgz#a6df91f6a4cb8a73913ba51a9105cbab5851c4d8"
- integrity sha512-NZCIWfx7ZY051QOL6yvp6IJ5M2VMjbBJDS8vDfrv6YhMhWZgh6ACBqi5SKeN7pyaxIP42oFt2qk+iAmGGB2JdQ==
+"@react-native/community-cli-plugin@0.77.0-nightly-20241125-4cffff35e":
+ version "0.77.0-nightly-20241125-4cffff35e"
+ resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.77.0-nightly-20241125-4cffff35e.tgz#d73f441df7f99150b162c0683012067ff93e705f"
+ integrity sha512-4X5Tuzr0OGApMfsqk1bQJYebwF7qvwWuNOfF23sNvncZKE2fW9Lw3xtX+e5aCr6n0Dsa/sJWA21ZaFpUhmVJEA==
dependencies:
- "@react-native/dev-middleware" "0.77.0-nightly-20241118-3986eefed"
- "@react-native/metro-babel-transformer" "0.77.0-nightly-20241118-3986eefed"
+ "@react-native/dev-middleware" "0.77.0-nightly-20241125-4cffff35e"
+ "@react-native/metro-babel-transformer" "0.77.0-nightly-20241125-4cffff35e"
chalk "^4.0.0"
debug "^2.2.0"
invariant "^2.2.4"
@@ -2333,18 +2333,18 @@
readline "^1.3.0"
semver "^7.1.3"
-"@react-native/debugger-frontend@0.77.0-nightly-20241118-3986eefed":
- version "0.77.0-nightly-20241118-3986eefed"
- resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.77.0-nightly-20241118-3986eefed.tgz#74ced45acd7a2e908bb59d7b4f6f99a6fb826110"
- integrity sha512-iOi5Vml08Cyf4XqWJpuD20f9FjDN7blclGoSGbxfCXgM5u7E+LlUNpRsuOR9ri35zaGnHrLm5vaYFNTyGeo3DQ==
+"@react-native/debugger-frontend@0.77.0-nightly-20241125-4cffff35e":
+ version "0.77.0-nightly-20241125-4cffff35e"
+ resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.77.0-nightly-20241125-4cffff35e.tgz#32c66bf76b9474d7a07a52e23eb311bfe2cd79eb"
+ integrity sha512-ngK8JDhZFWC7+7fGEavCl/l/co+gO7UY8Ostk4rQtFwuUoDvZPlsU1ocijJwn/B5VbXHgvxeyxLf/Z/TOuuJDg==
-"@react-native/dev-middleware@0.77.0-nightly-20241118-3986eefed":
- version "0.77.0-nightly-20241118-3986eefed"
- resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.77.0-nightly-20241118-3986eefed.tgz#e0924ef9805cb11e70a99a3be69aff31344aafc8"
- integrity sha512-93DIJK8Z3fMm4J275BTzANL3lVObUP/965BC9yrHPt8U5OsrwMmWlRX2vW+PzhqDJMA9vv9Km2NpYZ6dyuwtvA==
+"@react-native/dev-middleware@0.77.0-nightly-20241125-4cffff35e":
+ version "0.77.0-nightly-20241125-4cffff35e"
+ resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.77.0-nightly-20241125-4cffff35e.tgz#0e41be1a028b4ef72a70b0bf98afd7607ba8fc40"
+ integrity sha512-vajh4TbUxxhN848hdqe4N1FtjP2O2PGNElh8SZnm33FhV5/rLmOYCHsqRaFbYfgE2zFzxe1qHv0Kd2L2nVDyXQ==
dependencies:
"@isaacs/ttlcache" "^1.4.1"
- "@react-native/debugger-frontend" "0.77.0-nightly-20241118-3986eefed"
+ "@react-native/debugger-frontend" "0.77.0-nightly-20241125-4cffff35e"
chrome-launcher "^0.15.2"
chromium-edge-launcher "^0.2.0"
connect "^3.6.5"
@@ -2378,10 +2378,10 @@
resolved "https://registry.yarnpkg.com/@react-native/eslint-plugin/-/eslint-plugin-0.77.0-nightly-20241001-223e98cc4.tgz#33aa61842c0933b4276ae340911484f2ad7900ed"
integrity sha512-IMv29Jyh4z2sh6n2QB2XjgxHAJuGFfKVqvrxLSwzuOgJIbN7xCVIClIHVe2nX+6LxW5Wl4Zu+lgJpOjTN/vu+g==
-"@react-native/gradle-plugin@0.77.0-nightly-20241118-3986eefed":
- version "0.77.0-nightly-20241118-3986eefed"
- resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.77.0-nightly-20241118-3986eefed.tgz#3c3b92d1692396f98915b9d9c463ce041a2c55b3"
- integrity sha512-u9qGuPvwC4Dr/ozSTUQwBg5RjcEV+aV+4lgseyQO8NNrZDh1RmCSSV2vd1q2CL1Qvx0Edw03BZwcMqw/9LoVgw==
+"@react-native/gradle-plugin@0.77.0-nightly-20241125-4cffff35e":
+ version "0.77.0-nightly-20241125-4cffff35e"
+ resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.77.0-nightly-20241125-4cffff35e.tgz#d8fd697a1af028a97545c564e79c0b34f46d63e8"
+ integrity sha512-/UA01VnBz5rDhy9f4vdCTTiSFh2Jq6Tl1MXvaA+0R5/Q+0erR27YUV42nU3yKEYZo427h1a12Z1E9pGUeTnAcA==
"@react-native/js-polyfills@0.77.0-nightly-20241001-223e98cc4":
version "0.77.0-nightly-20241001-223e98cc4"
@@ -2393,10 +2393,10 @@
resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.77.0-nightly-20241020-e7a3f479f.tgz#ebebed85d3791041699f10d40c00beb676b960ce"
integrity sha512-Zj3LOOrrrfzZW8OnAcHGtEBGLkKc1gvhlMz/zSzDzhWlHH+EDCfTP6QcA/z8roTIKq1QkubDLEAiMOLe+koGsg==
-"@react-native/js-polyfills@0.77.0-nightly-20241118-3986eefed":
- version "0.77.0-nightly-20241118-3986eefed"
- resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.77.0-nightly-20241118-3986eefed.tgz#fa04b960702e2138af40fa27fabc46160a2f8c41"
- integrity sha512-yNevfQWC1hVc1sbVdoKeZzhn82g5flusxLJSqPrOwCs+vVr9c/SoO3pZdrt/MnSyuOLzXr8ul2qtQfwJtG4rMA==
+"@react-native/js-polyfills@0.77.0-nightly-20241125-4cffff35e":
+ version "0.77.0-nightly-20241125-4cffff35e"
+ resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.77.0-nightly-20241125-4cffff35e.tgz#8acc645c899de41215c0c9103f5b207ea6c92a7a"
+ integrity sha512-F9NHcsxmlRmP7TOBRf/h3JZw0Jj42s3X8S9MueOsn1KsyUQDjxwkAVOPG/bJNCOqSo1cXdR24SHlO5sfdUXt+w==
"@react-native/metro-babel-transformer@0.77.0-nightly-20241001-223e98cc4":
version "0.77.0-nightly-20241001-223e98cc4"
@@ -2418,14 +2418,14 @@
hermes-parser "0.24.0"
nullthrows "^1.1.1"
-"@react-native/metro-babel-transformer@0.77.0-nightly-20241118-3986eefed":
- version "0.77.0-nightly-20241118-3986eefed"
- resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.77.0-nightly-20241118-3986eefed.tgz#4c9ad9745dc5ff6ace6daa49d545b04ebab01ff6"
- integrity sha512-ej9xchfME7wVrjrkL7zynHp4oMf9EjEGBOFAigFWnmn+LwZ/lf29uT61TvUM9V2rtDFuwXixPakTpzVuwGatdA==
+"@react-native/metro-babel-transformer@0.77.0-nightly-20241125-4cffff35e":
+ version "0.77.0-nightly-20241125-4cffff35e"
+ resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.77.0-nightly-20241125-4cffff35e.tgz#555c8fde11311abc0380a0a6ef4a940c6735088b"
+ integrity sha512-JK9aWPh5dnlloVvyEWBxoR/02GCiiwUBMycFIpfJjVCtWZE7V6npBqe9Cyl5LakpgbotB3FVjsknCGMTLWOP7w==
dependencies:
"@babel/core" "^7.25.2"
- "@react-native/babel-preset" "0.77.0-nightly-20241118-3986eefed"
- hermes-parser "0.24.0"
+ "@react-native/babel-preset" "0.77.0-nightly-20241125-4cffff35e"
+ hermes-parser "0.25.1"
nullthrows "^1.1.1"
"@react-native/metro-config@0.77.0-nightly-20241001-223e98cc4":
@@ -2448,20 +2448,20 @@
metro-config "^0.81.0"
metro-runtime "^0.81.0"
-"@react-native/metro-config@0.77.0-nightly-20241118-3986eefed":
- version "0.77.0-nightly-20241118-3986eefed"
- resolved "https://registry.yarnpkg.com/@react-native/metro-config/-/metro-config-0.77.0-nightly-20241118-3986eefed.tgz#ca407541d3fb61d521b5471582d91437d06f6edc"
- integrity sha512-oNHJ2T53H3f4YXx7UZzlPr7InZog2ywoclyMR3kZ/FnyOPR7p7ydhsotVJsLFztzOFS0hd/O0u6R0W3D7diyoA==
+"@react-native/metro-config@0.77.0-nightly-20241125-4cffff35e":
+ version "0.77.0-nightly-20241125-4cffff35e"
+ resolved "https://registry.yarnpkg.com/@react-native/metro-config/-/metro-config-0.77.0-nightly-20241125-4cffff35e.tgz#b34f980654bfb7caa105fb604c218d67d535b7dc"
+ integrity sha512-gKpl/bkhSnWY9mx/56eHIuZibmnQhzAP9Q1Nyjszj6xwTaTReIWwDsIyJ6stR3OMhVHzeLtxO0oZ0N1qZGJQrw==
dependencies:
- "@react-native/js-polyfills" "0.77.0-nightly-20241118-3986eefed"
- "@react-native/metro-babel-transformer" "0.77.0-nightly-20241118-3986eefed"
+ "@react-native/js-polyfills" "0.77.0-nightly-20241125-4cffff35e"
+ "@react-native/metro-babel-transformer" "0.77.0-nightly-20241125-4cffff35e"
metro-config "^0.81.0"
metro-runtime "^0.81.0"
-"@react-native/normalize-colors@0.77.0-nightly-20241118-3986eefed":
- version "0.77.0-nightly-20241118-3986eefed"
- resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.77.0-nightly-20241118-3986eefed.tgz#e128b10313947ab1e12343a488e203b99f1fe0cc"
- integrity sha512-21V+0Z8qG43I++6L1J5ux3FcjuH5rHePPoIuHcGaAAS9/xvdohgWgwFGs2Ya2pGkcBzaTBm9TfaxXZ/4tx7mOg==
+"@react-native/normalize-colors@0.77.0-nightly-20241125-4cffff35e":
+ version "0.77.0-nightly-20241125-4cffff35e"
+ resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.77.0-nightly-20241125-4cffff35e.tgz#6420eecec569f8c24b598a0952a0f452e523db5c"
+ integrity sha512-5P8ImMqKHcGMeRWJyPZnIvZjSGIheBxyFBSLs22/U+sxc2HKCn5r0x3aQmJ55fqNl5u3jEf5qVYJClDt2FBD4Q==
"@react-native/popup-menu-android@0.77.0-nightly-20241001-223e98cc4":
version "0.77.0-nightly-20241001-223e98cc4"
@@ -2470,10 +2470,10 @@
dependencies:
nullthrows "^1.1.1"
-"@react-native/virtualized-lists@0.77.0-nightly-20241118-3986eefed":
- version "0.77.0-nightly-20241118-3986eefed"
- resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.77.0-nightly-20241118-3986eefed.tgz#4d88a7c84125b4bc856892b714430289dc02c082"
- integrity sha512-+ZwiJjLTYRYGJWLLh8W+i3oKDJ846R1KKLa5nmYHiImN97PptD8Fr3vFQ3W0Sl4s1Qp87N61Mc93WwSw/F846A==
+"@react-native/virtualized-lists@0.77.0-nightly-20241125-4cffff35e":
+ version "0.77.0-nightly-20241125-4cffff35e"
+ resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.77.0-nightly-20241125-4cffff35e.tgz#7e3dbace0498c3056b01dcf15b7ea889f1f500f6"
+ integrity sha512-7h/LAHlUdYgopakRjDafIn/UM3wrZAeY7NEiGxbsuY4MTlUPXfUgr6PAX+YFZRi4idzKd5ZXVU3vhlME7xgRZg==
dependencies:
invariant "^2.2.4"
nullthrows "^1.1.1"
@@ -4131,6 +4131,13 @@ babel-plugin-syntax-hermes-parser@0.24.0:
dependencies:
hermes-parser "0.24.0"
+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.23.1:
version "0.23.1"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.23.1.tgz#470e9d1d30ad670d4c8a37138e22ae39c843d1ff"
@@ -6852,6 +6859,11 @@ hermes-estree@0.24.0:
resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.24.0.tgz#487dc1ddc0bae698c2d79f34153ac9bf62d7b3c0"
integrity sha512-LyoXLB7IFzeZW0EvAbGZacbxBN7t6KKSDqFJPo3Ydow7wDlrDjXwsdiAHV6XOdvEN9MEuWXsSIFN4tzpyrXIHw==
+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-parser@0.21.1:
version "0.21.1"
resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.21.1.tgz#b2ab42b6ee1bed8c659ed61a03d3f61a63183ada"
@@ -6873,6 +6885,13 @@ hermes-parser@0.24.0:
dependencies:
hermes-estree "0.24.0"
+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-transform@0.24.0:
version "0.24.0"
resolved "https://registry.yarnpkg.com/hermes-transform/-/hermes-transform-0.24.0.tgz#bf7693978b8f2d94f79c3a6700018b21ec08233e"
@@ -10070,24 +10089,24 @@ react-native-xaml@^0.0.78:
dependencies:
"@types/react" "*"
-react-native@0.77.0-nightly-20241118-3986eefed:
- version "0.77.0-nightly-20241118-3986eefed"
- resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.77.0-nightly-20241118-3986eefed.tgz#8d7f60d3fdcf69316ab2540bd782569e54e558dc"
- integrity sha512-k0+yPojylfjHpiz1tHJSBaE7a0pWNZp4IaeLD3IrKKR8THaAcnbw4V0THmewpsg8TBrBn4EICVsWjfIIL+3EYg==
+react-native@0.77.0-nightly-20241125-4cffff35e:
+ version "0.77.0-nightly-20241125-4cffff35e"
+ resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.77.0-nightly-20241125-4cffff35e.tgz#9e46989558f1054e9322f3025429707bd391481d"
+ integrity sha512-PBY1xYuqptM8ZzWG3umtInLbIK8BwZpadz5MXNCSK8kxiL6QGUrhDf2wCnFeWG9gGATcmEGP2UVmTDAdXqouww==
dependencies:
"@jest/create-cache-key-function" "^29.6.3"
- "@react-native/assets-registry" "0.77.0-nightly-20241118-3986eefed"
- "@react-native/codegen" "0.77.0-nightly-20241118-3986eefed"
- "@react-native/community-cli-plugin" "0.77.0-nightly-20241118-3986eefed"
- "@react-native/gradle-plugin" "0.77.0-nightly-20241118-3986eefed"
- "@react-native/js-polyfills" "0.77.0-nightly-20241118-3986eefed"
- "@react-native/normalize-colors" "0.77.0-nightly-20241118-3986eefed"
- "@react-native/virtualized-lists" "0.77.0-nightly-20241118-3986eefed"
+ "@react-native/assets-registry" "0.77.0-nightly-20241125-4cffff35e"
+ "@react-native/codegen" "0.77.0-nightly-20241125-4cffff35e"
+ "@react-native/community-cli-plugin" "0.77.0-nightly-20241125-4cffff35e"
+ "@react-native/gradle-plugin" "0.77.0-nightly-20241125-4cffff35e"
+ "@react-native/js-polyfills" "0.77.0-nightly-20241125-4cffff35e"
+ "@react-native/normalize-colors" "0.77.0-nightly-20241125-4cffff35e"
+ "@react-native/virtualized-lists" "0.77.0-nightly-20241125-4cffff35e"
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.24.0"
+ babel-plugin-syntax-hermes-parser "0.25.1"
base64-js "^1.5.1"
chalk "^4.0.0"
commander "^12.0.0"