From cdf5ffe44949df668ac3c1c84a503414091802e0 Mon Sep 17 00:00:00 2001 From: vineethkuttan <66076509+vineethkuttan@users.noreply.github.com> Date: Wed, 11 Mar 2026 13:36:34 +0530 Subject: [PATCH 01/14] Update community template --- packages/@rnw-scripts/integrate-rn/package.json | 4 ++-- vnext/Scripts/creaternwapp.cmd | 2 +- yarn.lock | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/@rnw-scripts/integrate-rn/package.json b/packages/@rnw-scripts/integrate-rn/package.json index 45f483189a0..d04b89a0a9d 100644 --- a/packages/@rnw-scripts/integrate-rn/package.json +++ b/packages/@rnw-scripts/integrate-rn/package.json @@ -20,7 +20,7 @@ "integrate-rn": "./bin.js" }, "dependencies": { - "@react-native-community/template": "0.83.2", + "@react-native-community/template": "0.84.1", "@react-native-windows/find-repo-root": "^0.0.0-canary.99", "@react-native-windows/fs": "^0.0.0-canary.70", "@react-native-windows/package-utils": "^0.0.0-canary.96", @@ -62,4 +62,4 @@ "engines": { "node": ">= 22" } -} +} \ No newline at end of file diff --git a/vnext/Scripts/creaternwapp.cmd b/vnext/Scripts/creaternwapp.cmd index 5f94a29f76a..fd088ff07f0 100644 --- a/vnext/Scripts/creaternwapp.cmd +++ b/vnext/Scripts/creaternwapp.cmd @@ -117,7 +117,7 @@ if not "x%RN_VERSION:nightly=%"=="x%RN_VERSION%" ( REM Do not change, this makes sure we always get a nightly template when still consuming a nightly RN and NOT a later "stable" template that may have been released REM set RNCLI_TEMPLATE=--template "@react-native-community/template@^%RN_VERSION:~0,4%.0-" REM Windows we need to manually update this with every integration #15124 - set RNCLI_TEMPLATE=--template "@react-native-community/template@0.83.2" + set RNCLI_TEMPLATE=--template "@react-native-community/template@0.84.1" ) @echo creaternwapp.cmd: Creating base RN app project with: npx --yes @react-native-community/cli@%RNCLI_VERSION% init %APP_NAME% --version %RN_VERSION% %RNCLI_TEMPLATE% --verbose --skip-install --install-pods false --skip-git-init true diff --git a/yarn.lock b/yarn.lock index 0e3acbe17a5..362a5dc8dd0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2550,10 +2550,10 @@ prompts "^2.4.2" semver "^7.5.2" -"@react-native-community/template@0.83.2": - version "0.83.2" - resolved "https://registry.yarnpkg.com/@react-native-community/template/-/template-0.83.2.tgz#f539d6355394b3c5351f830db3eb3b82a0f2874f" - integrity sha512-WuTSVneujmyAy3j9LPOepOvXNDZ8P+aLrdmKVakPZ3i3X7Hny/5H4+PVeg78BbgfupX6dHg/ga05k63vNH3pCw== +"@react-native-community/template@0.84.1": + version "0.84.1" + resolved "https://registry.yarnpkg.com/@react-native-community/template/-/template-0.84.1.tgz#1f8a79ff20c9d8802b55bd84a4d79fb0f6edcc3e" + integrity sha512-hvWS9dRk4H5zbG8FO6/3lb77owa6Z14GQADC7ZBTwRGx0MknNLevvum5Ue4EBV203YTEDFbCUOQXJvOWtKuIlg== "@react-native-picker/picker@^2.5.1": version "2.11.4" From 32e531a986aa8e84730ab0a4d6c37918e1737e7d Mon Sep 17 00:00:00 2001 From: vineethkuttan <66076509+vineethkuttan@users.noreply.github.com> Date: Wed, 11 Mar 2026 13:43:47 +0530 Subject: [PATCH 02/14] Integrate 0.84.0-nightly-20251212-dd390dbbe - https://github.com/facebook/react-native/compare/502efe1cc...dd390dbbe --- .../react-native-win32-tester/overrides.json | 4 +- .../react-native-win32-tester/package.json | 8 +- .../src/js/utils/RNTesterList.win32.js | 29 ++++- .../react-native-win32/.flowconfig | 9 +- .../react-native-win32/overrides.json | 22 ++-- .../react-native-win32/package.json | 22 ++-- .../AccessibilityInfo/AccessibilityInfo.d.ts | 12 ++ .../AccessibilityInfo.win32.js | 12 ++ .../Libraries/Components/Button.win32.js | 3 - .../Components/View/ViewPropTypes.win32.js | 10 ++ .../src-win/Libraries/Text/Text.win32.js | 44 ++++++- .../Libraries/Types/CoreEventTypes.win32.js | 34 +++++ .../react-native-win32/src-win/index.win32.js | 3 + .../src-win/index.win32.js.flow | 8 ++ .../animated/NativeAnimatedHelper.win32.js | 30 ++++- .../automation-channel/package.json | 2 +- .../tester/overrides.json | 8 +- .../@react-native-windows/tester/package.json | 10 +- .../js/examples/Text/TextExample.windows.js | 4 + .../Text/TextSharedExamples.windows.js | 59 ++++++++- .../src/js/utils/RNTesterList.windows.js | 21 +++- .../@react-native/monorepo/overrides.json | 4 +- packages/@react-native/monorepo/package.json | 15 ++- .../tester/js/utils/RNTesterList.android.js | 21 +++- .../tester/js/utils/RNTesterList.ios.js | 15 ++- packages/@react-native/tester/overrides.json | 16 +-- packages/@react-native/tester/package.json | 23 +++- .../babel-react-native-config/package.json | 4 +- .../@rnw-scripts/eslint-config/package.json | 2 +- .../metro-dev-config/package.json | 2 +- packages/e2e-test-app-fabric/package.json | 6 +- packages/playground/package.json | 6 +- packages/sample-app-fabric/package.json | 6 +- packages/sample-custom-component/package.json | 6 +- vnext/.flowconfig | 9 +- .../jsi/jsi/test/testlib.cpp | 35 ++++++ .../core/ReactCommon/TurboModule.h | 1 - .../renderer/components/image/conversions.h | 8 ++ .../react/renderer/imagemanager/primitives.h | 27 +++- vnext/overrides.json | 28 ++--- vnext/package.json | 24 ++-- .../AccessibilityInfo.windows.js | 7 +- .../Libraries/Components/Button.windows.js | 3 - .../Components/View/ViewPropTypes.windows.js | 14 +++ vnext/src-win/Libraries/Text/Text.windows.js | 44 ++++++- .../Libraries/Types/CoreEventTypes.windows.js | 34 +++++ vnext/src-win/index.windows.js | 3 + vnext/src-win/index.windows.js.flow | 8 ++ yarn.lock | 119 +++++++++++++++--- 49 files changed, 687 insertions(+), 157 deletions(-) diff --git a/packages/@office-iss/react-native-win32-tester/overrides.json b/packages/@office-iss/react-native-win32-tester/overrides.json index fc2ace5294e..fa6e44d6503 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.83.0-nightly-20251104-502efe1cc", + "baseVersion": "0.84.0-nightly-20251212-dd390dbbe", "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": "419d588f738d7f9fc252019e74ca7bc92c6a03bf" + "baseHash": "21f111f08b53ae5d60a7c03044ae64d867d93dbb" } ] } \ 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 22965e9817d..277c4852b1a 100644 --- a/packages/@office-iss/react-native-win32-tester/package.json +++ b/packages/@office-iss/react-native-win32-tester/package.json @@ -11,7 +11,7 @@ "validate-overrides": "react-native-platform-override validate" }, "dependencies": { - "@react-native/tester": "0.83.0-nightly-20251104-502efe1cc", + "@react-native/tester": "0.84.0-nightly-20251212-dd390dbbe", "@typescript-eslint/eslint-plugin": "^7.1.1", "@typescript-eslint/parser": "^7.1.1", "flow-enums-runtime": "^0.0.6" @@ -19,7 +19,7 @@ "peerDependencies": { "@office-iss/react-native-win32": "^0.0.0-canary.307", "react": "19.2.0", - "react-native": "0.83.0-nightly-20251104-502efe1cc" + "react-native": "0.84.0-nightly-20251212-dd390dbbe" }, "devDependencies": { "@office-iss/react-native-win32": "^0.0.0-canary.307", @@ -30,11 +30,11 @@ "@types/node": "^22.14.0", "eslint": "^8.19.0", "just-scripts": "^1.3.3", - "react-native": "0.83.0-nightly-20251104-502efe1cc", + "react-native": "0.84.0-nightly-20251212-dd390dbbe", "react-native-platform-override": "0.0.0-canary.1020", "typescript": "5.0.4" }, "engines": { "node": ">= 22" } -} +} \ No newline at end of file diff --git a/packages/@office-iss/react-native-win32-tester/src/js/utils/RNTesterList.win32.js b/packages/@office-iss/react-native-win32-tester/src/js/utils/RNTesterList.win32.js index 62255f911e1..c6fa1406f4d 100644 --- a/packages/@office-iss/react-native-win32-tester/src/js/utils/RNTesterList.win32.js +++ b/packages/@office-iss/react-native-win32-tester/src/js/utils/RNTesterList.win32.js @@ -79,6 +79,19 @@ const Components: Array = [ module: require('../examples/KeyboardAvoidingView/KeyboardAvoidingViewExample'), }, { +<<<<<<< Upstream + key: 'KeyEvents', + module: require('../examples/KeyboardEventsExample/KeyboardEventsExample') + .default, + }, + { + key: 'ModalExample', + category: 'UI', + module: require('../examples/Modal/ModalExample'), + }, + { +======= +>>>>>>> Override key: 'NewAppScreenExample', module: require('../examples/NewAppScreen/NewAppScreenExample'), }, @@ -364,11 +377,17 @@ const APIs: Array = ([ key: 'LegacyModuleExample', module: require('../examples/TurboModule/LegacyModuleExample'), }, - { - key: 'TurboCxxModuleExample', - category: 'Basic', - module: require('../examples/TurboModule/TurboCxxModuleExample'), - }, + // Basic check to detect the availability of the IntersectionObserver API. + // $FlowExpectedError[cannot-resolve-name] + ...(typeof IntersectionObserver === 'function' + ? [ + { + key: 'IntersectionObserver', + category: 'UI', + module: require('../examples/IntersectionObserver/IntersectionObserverIndex'), + }, + ] + : []), // Basic check to detect the availability of the modern Performance API. ...(typeof performance.getEntries === 'function' ? [ diff --git a/packages/@office-iss/react-native-win32/.flowconfig b/packages/@office-iss/react-native-win32/.flowconfig index 12eb888bc23..ab424ccae65 100644 --- a/packages/@office-iss/react-native-win32/.flowconfig +++ b/packages/@office-iss/react-native-win32/.flowconfig @@ -139,12 +139,19 @@ module.file_ext=.win32.js munge_underscores=true +<<<<<<< Upstream +module.name_mapper='^react-native$' -> '/packages/react-native/index.js' +module.name_mapper='^react-native/\(.*\)$' -> '/packages/react-native/\1' +module.name_mapper='^@react-native/dev-middleware$' -> '/packages/dev-middleware' +module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\|xml\|ktx\|heic\|heif\)$' -> '/packages/react-native/Libraries/Image/RelativeImageStub' +======= module.name_mapper='^react-native$' -> '/index.win32.js' module.name_mapper='^@office-iss/react-native-win32$' -> '/index.win32.js' module.name_mapper='^react-native/\(.*\)$' -> '/\1' module.name_mapper='^@office-iss/react-native-win32/\(.*\)$' -> '\/1' module.name_mapper='^@react-native/dev-middleware$' -> '/\1' module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\|xml\|ktx\)$' -> '/Libraries/Image/RelativeImageStub' +>>>>>>> Override module.system.haste.module_ref_prefix=m# @@ -175,4 +182,4 @@ untyped-import untyped-type-import [version] -^0.289.0 +^0.293.0 diff --git a/packages/@office-iss/react-native-win32/overrides.json b/packages/@office-iss/react-native-win32/overrides.json index 8c1deb72816..24300baad9b 100644 --- a/packages/@office-iss/react-native-win32/overrides.json +++ b/packages/@office-iss/react-native-win32/overrides.json @@ -7,25 +7,25 @@ "**/__snapshots__/**", "src-win/rntypes/**" ], - "baseVersion": "0.83.0-nightly-20251104-502efe1cc", + "baseVersion": "0.84.0-nightly-20251212-dd390dbbe", "overrides": [ { "type": "derived", "file": ".flowconfig", "baseFile": ".flowconfig", - "baseHash": "5a5f25ce055b9b4465410b513de9dc6d4db39a90" + "baseHash": "f8443da42da65a4f55de1fdcc8e30c3446004ad0" }, { "type": "derived", "file": "src-win/index.win32.js", "baseFile": "packages/react-native/index.js", - "baseHash": "a1db6ce79c25843956a583b2dbd34aa11d15da0f" + "baseHash": "43b61164095fb1f33793316908d5f974e7c46651" }, { "type": "derived", "file": "src-win/index.win32.js.flow", "baseFile": "packages/react-native/index.js.flow", - "baseHash": "6d9f0f7e75b7575870821c3fca5db41ba7e14809" + "baseHash": "da9cb1941e2b3d395d157e64a56b71a26396f2bf" }, { "type": "platform", @@ -41,13 +41,13 @@ "type": "derived", "file": "src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts", "baseFile": "packages/react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts", - "baseHash": "30a3c7351c6a466e2ed95e9b416907ac677d71ca" + "baseHash": "34bb1374c3d892607c894ad676de1e5d104ffaae" }, { "type": "derived", "file": "src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js", "baseFile": "packages/react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js", - "baseHash": "93b9eb92a1237885cdbff255d473584226421dd3" + "baseHash": "86b1d5f06946b43428b2b09351ab6a0cff56a894" }, { "type": "copy", @@ -66,7 +66,7 @@ "type": "derived", "file": "src-win/Libraries/Components/Button.win32.js", "baseFile": "packages/react-native/Libraries/Components/Button.js", - "baseHash": "26d3afc77f82939021f848eb8185b3b441fb3c7d" + "baseHash": "67bb8c4e71cd242d366b3607f4c71f07e70f2488" }, { "type": "platform", @@ -207,7 +207,7 @@ "type": "patch", "file": "src-win/Libraries/Components/View/ViewPropTypes.win32.js", "baseFile": "packages/react-native/Libraries/Components/View/ViewPropTypes.js", - "baseHash": "d04b64a97b6040611d96b909c41230c1a350ebe6", + "baseHash": "2a031cb660382c3ebb74fcbfe71535fa99810cdb", "issue": 6240 }, { @@ -431,7 +431,7 @@ "type": "derived", "file": "src-win/Libraries/Text/Text.win32.js", "baseFile": "packages/react-native/Libraries/Text/Text.js", - "baseHash": "59bf5757acc083a749a38173b3610529b27ef4fb" + "baseHash": "d6607b86327891c5920c56ff833a9d984f20533f" }, { "type": "derived", @@ -450,7 +450,7 @@ "type": "patch", "file": "src-win/Libraries/Types/CoreEventTypes.win32.js", "baseFile": "packages/react-native/Libraries/Types/CoreEventTypes.js", - "baseHash": "ed736df6081d2fbbf54a646b8373bf485449255a", + "baseHash": "5834bb306dcf85772546feae7af58a875196d309", "issue": 6240 }, { @@ -503,7 +503,7 @@ "type": "patch", "file": "src-win/src/private/animated/NativeAnimatedHelper.win32.js", "baseFile": "packages/react-native/src/private/animated/NativeAnimatedHelper.js", - "baseHash": "14407780e54e66515159aed1a51cee154b1d5339", + "baseHash": "fa2343be98b0eb239a82376cd903f9fef16464f2", "issue": 11041 }, { diff --git a/packages/@office-iss/react-native-win32/package.json b/packages/@office-iss/react-native-win32/package.json index 18b2422f522..5c889c14293 100644 --- a/packages/@office-iss/react-native-win32/package.json +++ b/packages/@office-iss/react-native-win32/package.json @@ -30,13 +30,13 @@ "@react-native-community/cli-platform-android": "20.0.0", "@react-native-community/cli-platform-ios": "20.0.0", "@react-native/assets": "1.0.0", - "@react-native/assets-registry": "0.83.0-nightly-20251104-502efe1cc", - "@react-native/codegen": "0.83.0-nightly-20251104-502efe1cc", - "@react-native/community-cli-plugin": "0.83.0-nightly-20251104-502efe1cc", - "@react-native/gradle-plugin": "0.83.0-nightly-20251104-502efe1cc", - "@react-native/js-polyfills": "0.83.0-nightly-20251104-502efe1cc", - "@react-native/normalize-colors": "0.83.0-nightly-20251104-502efe1cc", - "@react-native/virtualized-lists": "0.83.0-nightly-20251104-502efe1cc", + "@react-native/assets-registry": "0.84.0-nightly-20251212-dd390dbbe", + "@react-native/codegen": "0.84.0-nightly-20251212-dd390dbbe", + "@react-native/community-cli-plugin": "0.84.0-nightly-20251212-dd390dbbe", + "@react-native/gradle-plugin": "0.84.0-nightly-20251212-dd390dbbe", + "@react-native/js-polyfills": "0.84.0-nightly-20251212-dd390dbbe", + "@react-native/normalize-colors": "0.84.0-nightly-20251212-dd390dbbe", + "@react-native/virtualized-lists": "0.84.0-nightly-20251212-dd390dbbe", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", @@ -72,7 +72,7 @@ "devDependencies": { "@babel/core": "^7.25.2", "@babel/eslint-parser": "^7.25.1", - "@react-native/metro-config": "0.83.0-nightly-20251104-502efe1cc", + "@react-native/metro-config": "0.84.0-nightly-20251212-dd390dbbe", "@rnw-scripts/babel-react-native-config": "0.0.0", "@rnw-scripts/eslint-config": "1.2.38", "@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.42", @@ -89,14 +89,14 @@ "just-scripts": "^1.3.3", "prettier": "2.8.8", "react": "19.2.0", - "react-native": "0.83.0-nightly-20251104-502efe1cc", + "react-native": "0.84.0-nightly-20251212-dd390dbbe", "react-native-platform-override": "0.0.0-canary.1020", "typescript": "5.0.4" }, "peerDependencies": { "@types/react": "^19.2.0", "react": "^19.2.0", - "react-native": "0.83.0-nightly-20251104-502efe1cc" + "react-native": "0.84.0-nightly-20251212-dd390dbbe" }, "beachball": { "defaultNpmTag": "canary", @@ -125,4 +125,4 @@ "engines": { "node": ">= 22" } -} +} \ No newline at end of file diff --git a/packages/@office-iss/react-native-win32/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts b/packages/@office-iss/react-native-win32/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts index cdb508f27a5..5466524d455 100644 --- a/packages/@office-iss/react-native-win32/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +++ b/packages/@office-iss/react-native-win32/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts @@ -150,13 +150,25 @@ export interface AccessibilityInfoStatic { * - `announcement`: The string announced by the screen reader. * - `options`: An object that configures the reading options. * - `queue`: The announcement will be queued behind existing announcements. iOS only. +<<<<<<< Upstream + * - `priority`: The priority of the announcement. Possible values: 'low' | 'default' | 'high'. + * High priority announcements will interrupt any ongoing speech and cannot be interrupted. + * Default priority announcements will interrupt any ongoing speech but can be interrupted. + * Low priority announcements will not interrupt ongoing speech and can be interrupted. + * (iOS only). +======= * - `nativeID`: The nativeID of the element to send the announcement from. win32 only. +>>>>>>> Override */ announceForAccessibilityWithOptions( announcement: string, options: { queue?: boolean | undefined; +<<<<<<< Upstream + priority?: 'low' | 'default' | 'high' | undefined; +======= nativeID?: string | undefined; // win32 +>>>>>>> Override }, ): void; diff --git a/packages/@office-iss/react-native-win32/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js b/packages/@office-iss/react-native-win32/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js index 9fbd984e4a4..ef091ab72f1 100644 --- a/packages/@office-iss/react-native-win32/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +++ b/packages/@office-iss/react-native-win32/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js @@ -502,6 +502,17 @@ const AccessibilityInfo = { * - `announcement`: The string announced by the screen reader. * - `options`: An object that configures the reading options. * - `queue`: The announcement will be queued behind existing announcements. iOS only. +<<<<<<< Upstream + * - `priority`: The priority of the announcement. Possible values: 'low' | 'default' | 'high'. + * High priority announcements will interrupt any ongoing speech and cannot be interrupted. + * Default priority announcements will interrupt any ongoing speech but can be interrupted. + * Low priority announcements will not interrupt ongoing speech and can be interrupted. + * (iOS only). + */ + announceForAccessibilityWithOptions( + announcement: string, + options: {queue?: boolean, priority?: 'low' | 'default' | 'high'}, +======= * - `nativeID`: The nativeID of the element to send the announcement from. win32 only. */ announceForAccessibilityWithOptions( @@ -510,6 +521,7 @@ const AccessibilityInfo = { queue?: boolean, nativeID?: string, // win32 }, +>>>>>>> Override ): void { if (Platform.OS === 'android') { NativeAccessibilityInfo?.announceForAccessibility(announcement); diff --git a/packages/@office-iss/react-native-win32/src-win/Libraries/Components/Button.win32.js b/packages/@office-iss/react-native-win32/src-win/Libraries/Components/Button.win32.js index 12afdda284b..05cf60822f3 100644 --- a/packages/@office-iss/react-native-win32/src-win/Libraries/Components/Button.win32.js +++ b/packages/@office-iss/react-native-win32/src-win/Libraries/Components/Button.win32.js @@ -187,9 +187,6 @@ export type ButtonProps = $ReadOnly<{ [button:source]: https://github.com/facebook/react-native/blob/HEAD/Libraries/Components/Button.js - [button:examples]: - https://js.coach/?menu%5Bcollections%5D=React%20Native&page=1&query=button - ```jsx