react-native-tvos 0.85.3-1 → 0.86.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (667) hide show
  1. package/Libraries/Animated/AnimatedImplementation.js +6 -6
  2. package/Libraries/Animated/NativeAnimatedAllowlist.js +21 -0
  3. package/Libraries/Animated/components/AnimatedImage.js +3 -3
  4. package/Libraries/Animated/components/AnimatedText.js +3 -3
  5. package/Libraries/Animated/createAnimatedComponent.js +7 -7
  6. package/Libraries/Animated/nodes/AnimatedAddition.js +1 -1
  7. package/Libraries/Animated/nodes/AnimatedColor.js +7 -7
  8. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +1 -1
  9. package/Libraries/Animated/nodes/AnimatedDivision.js +1 -1
  10. package/Libraries/Animated/nodes/AnimatedInterpolation.js +22 -24
  11. package/Libraries/Animated/nodes/AnimatedModulo.js +1 -1
  12. package/Libraries/Animated/nodes/AnimatedMultiplication.js +1 -1
  13. package/Libraries/Animated/nodes/AnimatedStyle.js +2 -2
  14. package/Libraries/Animated/nodes/AnimatedSubtraction.js +1 -1
  15. package/Libraries/Animated/nodes/AnimatedTracking.js +1 -1
  16. package/Libraries/Animated/nodes/AnimatedValue.js +2 -2
  17. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +4 -0
  18. package/Libraries/AppDelegate/RCTRootViewFactory.h +5 -5
  19. package/Libraries/AppDelegate/RCTRootViewFactory.mm +2 -2
  20. package/Libraries/AppState/AppState.js +1 -1
  21. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  22. package/Libraries/Blob/RCTBlobCollector.h +1 -1
  23. package/Libraries/Blob/RCTBlobCollector.mm +14 -26
  24. package/Libraries/Blob/RCTBlobManager.mm +11 -3
  25. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +29 -23
  26. package/Libraries/Components/Keyboard/Keyboard.js +4 -2
  27. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
  28. package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -27
  29. package/Libraries/Components/Pressable/Pressable.d.ts +1 -0
  30. package/Libraries/Components/Pressable/Pressable.js +2 -2
  31. package/Libraries/Components/Pressable/useAndroidRippleForView.js +7 -8
  32. package/Libraries/Components/ScrollView/ScrollView.js +3 -3
  33. package/Libraries/Components/ScrollView/ScrollViewCommands.js +2 -2
  34. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +2 -2
  35. package/Libraries/Components/Switch/Switch.js +1 -1
  36. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +25 -1
  37. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +1 -1
  38. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +2 -2
  39. package/Libraries/Components/TextInput/TextInput.d.ts +24 -0
  40. package/Libraries/Components/TextInput/TextInput.flow.js +24 -0
  41. package/Libraries/Components/TextInput/TextInput.js +5 -5
  42. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +5 -5
  43. package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +5 -5
  44. package/Libraries/Components/Touchable/PooledClass.js +4 -4
  45. package/Libraries/Components/Touchable/Touchable.js +1 -1
  46. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +6 -10
  47. package/Libraries/Components/View/ReactNativeStyleAttributes.js +10 -2
  48. package/Libraries/Components/View/View.js +100 -95
  49. package/Libraries/Components/View/ViewPropTypes.js +3 -1
  50. package/Libraries/Core/Devtools/loadBundleFromServer.js +8 -0
  51. package/Libraries/Core/ExceptionsManager.js +2 -8
  52. package/Libraries/Core/InitializeCore.js +0 -13
  53. package/Libraries/Core/ReactFiberErrorDialog.js +3 -3
  54. package/Libraries/Core/ReactNativeVersion.js +3 -3
  55. package/Libraries/Core/ReactNativeVersionCheck.js +1 -1
  56. package/Libraries/Core/Timers/JSTimers.js +2 -2
  57. package/Libraries/Core/Timers/immediateShim.js +1 -1
  58. package/Libraries/Core/setUpBatchedBridge.js +1 -1
  59. package/Libraries/Core/setUpSegmentFetcher.js +1 -1
  60. package/Libraries/Debugging/DebuggingOverlayRegistry.js +1 -1
  61. package/Libraries/EventEmitter/NativeEventEmitter.js +9 -5
  62. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -2
  63. package/Libraries/Image/Image.android.js +15 -35
  64. package/Libraries/Image/RCTImageLoader.mm +4 -2
  65. package/Libraries/Image/RelativeImageStub.js +2 -2
  66. package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -12
  67. package/Libraries/Linking/Linking.js +1 -1
  68. package/Libraries/Lists/FlatList.js +1 -1
  69. package/Libraries/LogBox/LogBox.js +2 -2
  70. package/Libraries/LogBox/LogBoxInspectorContainer.js +24 -2
  71. package/Libraries/LogBox/LogBoxNotificationContainer.js +27 -4
  72. package/Libraries/LogBox/UI/LogBoxButton.js +47 -33
  73. package/Libraries/LogBox/UI/LogBoxInspector.js +61 -1
  74. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +6 -0
  75. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +3 -1
  76. package/Libraries/LogBox/UI/LogBoxNotification.js +2 -0
  77. package/Libraries/Modal/Modal.js +12 -7
  78. package/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.mm +0 -2
  79. package/Libraries/NativeComponent/BaseViewConfig.android.js +15 -0
  80. package/Libraries/NativeComponent/BaseViewConfig.ios.js +17 -0
  81. package/Libraries/NativeComponent/NativeComponentRegistry.js +2 -2
  82. package/Libraries/NativeComponent/ViewConfigIgnore.js +4 -2
  83. package/Libraries/Network/RCTNetworking.android.js +1 -1
  84. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  85. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  86. package/Libraries/Network/RCTNetworking.mm +1 -2
  87. package/Libraries/Network/XMLHttpRequest.js +29 -12
  88. package/Libraries/Pressability/Pressability.js +2 -2
  89. package/Libraries/ReactNative/AppContainer-dev.js +2 -3
  90. package/Libraries/ReactNative/AppContainer-prod.js +1 -2
  91. package/Libraries/ReactNative/AppContainer.js +0 -1
  92. package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
  93. package/Libraries/ReactNative/AppRegistry.flow.js +1 -2
  94. package/Libraries/ReactNative/AppRegistryImpl.js +16 -16
  95. package/Libraries/ReactNative/DeprecatedPerformanceLoggerStub.js +83 -0
  96. package/Libraries/ReactNative/FabricUIManager.js +6 -0
  97. package/Libraries/{Utilities → ReactNative}/IPerformanceLogger.d.ts +8 -5
  98. package/Libraries/{Utilities/IPerformanceLogger.js → ReactNative/IPerformanceLogger.flow.js} +12 -9
  99. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +14 -14
  100. package/Libraries/ReactNative/RendererImplementation.js +26 -143
  101. package/Libraries/ReactNative/RendererProxy.js +4 -15
  102. package/Libraries/ReactNative/renderApplication.js +33 -59
  103. package/Libraries/ReactNative/requireNativeComponent.js +3 -3
  104. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +5 -0
  105. package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -32
  106. package/Libraries/Settings/Settings.ios.js +1 -1
  107. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
  108. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +3 -3
  109. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  110. package/Libraries/StyleSheet/StyleSheet.js.flow +2 -2
  111. package/Libraries/StyleSheet/StyleSheetExports.js +1 -1
  112. package/Libraries/StyleSheet/StyleSheetExports.js.flow +1 -1
  113. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +6 -8
  114. package/Libraries/StyleSheet/StyleSheetTypes.js +11 -11
  115. package/Libraries/StyleSheet/flattenStyle.js +1 -1
  116. package/Libraries/StyleSheet/private/_TransformStyle.js +1 -1
  117. package/Libraries/StyleSheet/processBackgroundImage.js +19 -9
  118. package/Libraries/StyleSheet/processBackgroundSize.js +7 -12
  119. package/Libraries/StyleSheet/processBoxShadow.js +9 -47
  120. package/Libraries/StyleSheet/processFilter.js +16 -8
  121. package/Libraries/StyleSheet/processTransformOrigin.js +10 -3
  122. package/Libraries/Text/Text.js +4 -4
  123. package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm +16 -2
  124. package/Libraries/Text/TextNativeComponent.js +4 -4
  125. package/Libraries/TurboModule/RCTExport.js +1 -1
  126. package/Libraries/TurboModule/TurboModuleRegistry.js +3 -3
  127. package/Libraries/Types/CodegenTypes.js +7 -4
  128. package/Libraries/Types/ReactDevToolsTypes.js +1 -1
  129. package/Libraries/Utilities/BackHandler.android.js +11 -3
  130. package/Libraries/Utilities/BackHandler.d.ts +11 -1
  131. package/Libraries/Utilities/BackHandler.ios.js +3 -1
  132. package/Libraries/Utilities/BackHandler.js.flow +6 -1
  133. package/Libraries/Utilities/HardwareBackPressEvent.js +22 -0
  134. package/Libraries/Utilities/ReactNativeTestTools.js +4 -4
  135. package/Libraries/Utilities/binaryToBase64.js +1 -1
  136. package/Libraries/Utilities/codegenNativeCommands.js +2 -2
  137. package/Libraries/Utilities/codegenNativeComponent.js +4 -4
  138. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +2 -2
  139. package/Libraries/Utilities/stringifySafe.js +1 -1
  140. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  141. package/Libraries/vendor/core/ErrorUtils.js +4 -4
  142. package/Libraries/vendor/emitter/EventEmitter.js +27 -13
  143. package/React/Base/RCTBundleURLProvider.h +19 -1
  144. package/React/Base/RCTBundleURLProvider.mm +82 -0
  145. package/React/Base/RCTDefines.h +1 -1
  146. package/React/Base/RCTMultipartDataTask.h +1 -1
  147. package/React/Base/RCTMultipartDataTask.m +0 -3
  148. package/React/Base/RCTRootView.h +4 -0
  149. package/React/Base/RCTRootViewDelegate.h +5 -2
  150. package/React/Base/RCTVersion.m +3 -3
  151. package/React/Base/Surface/RCTSurface.h +3 -0
  152. package/React/Base/Surface/RCTSurfaceDelegate.h +7 -3
  153. package/React/Base/Surface/RCTSurfaceRootView.mm +1 -1
  154. package/React/Base/Surface/RCTSurfaceView.mm +2 -1
  155. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +2 -0
  156. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.h +0 -3
  157. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm +3 -1
  158. package/React/CoreModules/RCTDevMenuConfigurationDecorator.h +2 -2
  159. package/React/CoreModules/RCTRedBox2AnsiParser.mm +1 -1
  160. package/React/CoreModules/RCTWebSocketModule.mm +45 -6
  161. package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +0 -1
  162. package/React/DevSupport/RCTInspectorDevServerHelper.mm +4 -0
  163. package/React/DevSupport/RCTPackagerConnection.mm +13 -11
  164. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +108 -43
  165. package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.h +1 -0
  166. package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.mm +1 -0
  167. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.h +1 -1
  168. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +2 -2
  169. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +70 -8
  170. package/React/Fabric/RCTConversions.h +14 -0
  171. package/React/Fabric/RCTScheduler.mm +18 -0
  172. package/React/Fabric/RCTSurfacePointerHandler.mm +8 -2
  173. package/React/Fabric/RCTSurfaceTouchHandler.mm +1 -0
  174. package/React/Fabric/Surface/RCTFabricSurface.mm +3 -0
  175. package/React/I18n/strings/pt.lproj/fbt_language_pack.bin +0 -0
  176. package/React/Modules/RCTUIManager.mm +1 -1
  177. package/React/Profiler/RCTProfile.h +5 -0
  178. package/React/Profiler/RCTProfile.m +2 -1
  179. package/React/Profiler/RCTProfileTrampoline-arm.S +1 -1
  180. package/React/Profiler/RCTProfileTrampoline-arm64.S +1 -1
  181. package/React/Profiler/RCTProfileTrampoline-i386.S +1 -1
  182. package/React/Profiler/RCTProfileTrampoline-x86_64.S +1 -1
  183. package/React/Tests/Mounting/RCTViewComponentViewTests.mm +186 -0
  184. package/React/Tests/Text/RCTAttributedTextUtilsTest.mm +5 -5
  185. package/React/Views/RCTLayout.m +4 -3
  186. package/React/Views/ScrollView/RCTScrollView.h +6 -2
  187. package/ReactAndroid/api/ReactAndroid.api +37 -27
  188. package/ReactAndroid/build.gradle.kts +28 -21
  189. package/ReactAndroid/gradle.properties +1 -1
  190. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/HermesSamplingProfiler.kt +2 -0
  191. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +1 -3
  192. package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.kt +2 -0
  193. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +40 -110
  194. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +32 -87
  195. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +1 -0
  196. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.kt +9 -99
  197. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.kt +7 -28
  198. package/ReactAndroid/src/main/java/com/facebook/react/animated/PropsAnimatedNode.kt +2 -19
  199. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.kt +15 -23
  200. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +36 -0
  201. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNativeJNISoLoader.kt +2 -0
  202. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNativeJniCommonSoLoader.kt +2 -0
  203. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +4 -0
  204. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultSoLoader.kt +2 -0
  205. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/FpsView.kt +2 -2
  206. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +2 -0
  207. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.kt +15 -2
  208. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxDialogSurfaceDelegate.kt +1 -0
  209. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/DevSupportHttpClient.kt +9 -34
  210. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +9 -10
  211. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkRequestListener.kt +2 -0
  212. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +10 -10
  213. package/ReactAndroid/src/main/java/com/facebook/react/fabric/AnimationBackendChoreographer.kt +15 -13
  214. package/ReactAndroid/src/main/java/com/facebook/react/fabric/DevToolsReactPerfLogger.kt +4 -1
  215. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +139 -43
  216. package/ReactAndroid/src/main/java/com/facebook/react/fabric/ViewTransitionSnapshotManager.kt +223 -0
  217. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.kt +25 -8
  218. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +34 -1
  219. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.kt +104 -65
  220. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.kt +9 -1
  221. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt +172 -36
  222. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.kt +1 -1
  223. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/ExtraWindowEventListener.kt +29 -0
  224. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +41 -29
  225. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +71 -51
  226. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +15 -11
  227. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +16 -12
  228. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +79 -57
  229. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +3 -3
  230. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android.kt +1 -4
  231. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +15 -11
  232. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt +5 -9
  233. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/rewrite_feature_flag_defaults.py +76 -0
  234. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/tests/test_rewrite_feature_flag_defaults.py +63 -0
  235. package/ReactAndroid/src/main/java/com/facebook/react/internal/tracing/PerformanceTracer.kt +1 -1
  236. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +3 -0
  237. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobModule.kt +10 -5
  238. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobProvider.kt +1 -2
  239. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.kt +3 -0
  240. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/DeviceEventManagerModule.kt +2 -1
  241. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactChoreographer.kt +21 -20
  242. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.kt +63 -3
  243. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.kt +59 -62
  244. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +8 -0
  245. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.kt +45 -36
  246. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +3 -3
  247. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +5 -2
  248. package/ReactAndroid/src/main/java/com/facebook/react/runtime/CoreReactPackage.kt +4 -0
  249. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +18 -5
  250. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +8 -1
  251. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +21 -19
  252. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.kt +4 -0
  253. package/ReactAndroid/src/main/java/com/facebook/react/soloader/OpenSourceMergedSoMapping.kt +4 -0
  254. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +77 -72
  255. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +7 -16
  256. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BlendModeHelper.kt +3 -2
  257. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.kt +3 -0
  258. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FilterHelper.kt +3 -1
  259. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +25 -0
  260. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.kt +2 -2
  261. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactRootViewTagGenerator.kt +3 -2
  262. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewUtil.kt +17 -7
  263. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +18 -0
  264. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.kt +20 -12
  265. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +18 -24
  266. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIConstantsProviderBinding.kt +2 -0
  267. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +4 -0
  268. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.kt +11 -71
  269. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +10 -17
  270. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/ViewUtil.kt +29 -30
  271. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundImageDrawable.kt +5 -3
  272. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/InsetBoxShadowDrawable.kt +12 -13
  273. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +1 -0
  274. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +1 -0
  275. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +30 -0
  276. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/SynchronousEventReceiver.kt +28 -0
  277. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +9 -9
  278. package/ReactAndroid/src/main/java/com/facebook/react/util/AndroidVersion.kt +27 -3
  279. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +4 -0
  280. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/MaintainVisibleScrollPositionHelper.kt +1 -14
  281. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerViewManager.kt +1 -22
  282. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +18 -20
  283. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.java +20 -21
  284. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +19 -20
  285. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +14 -5
  286. package/ReactAndroid/src/main/java/com/facebook/react/views/text/FontMetricsUtil.kt +2 -3
  287. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +5 -162
  288. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt +1 -1
  289. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +71 -97
  290. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CustomStyleSpan.kt +1 -4
  291. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/DrawCommandSpan.kt +1 -1
  292. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +7 -13
  293. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +40 -2
  294. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.kt +59 -20
  295. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +84 -20
  296. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +41 -65
  297. package/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt +85 -13
  298. package/ReactAndroid/src/main/java/com/facebook/soloader/annotation/SoLoaderLibrary.kt +17 -0
  299. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaAlign.java +5 -1
  300. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIFinalizer.kt +30 -0
  301. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDisplay.java +3 -1
  302. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaExperimentalFeature.java +3 -1
  303. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGridTrackType.java +39 -0
  304. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaJustify.java +20 -12
  305. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +101 -0
  306. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.kt +33 -0
  307. package/ReactAndroid/src/main/jni/CMakeLists.txt +10 -1
  308. package/ReactAndroid/src/main/jni/react/fabric/ComponentFactory.cpp +0 -1
  309. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +0 -2
  310. package/ReactAndroid/src/main/jni/react/fabric/EventEmitterWrapper.cpp +26 -6
  311. package/ReactAndroid/src/main/jni/react/fabric/EventEmitterWrapper.h +3 -3
  312. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +47 -0
  313. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +20 -6
  314. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +24 -1
  315. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +6 -0
  316. package/ReactAndroid/src/main/jni/react/fabric/FocusOrderingHelper.cpp +0 -1
  317. package/ReactAndroid/src/main/jni/react/fabric/SurfaceHandlerBinding.cpp +1 -0
  318. package/ReactAndroid/src/main/jni/react/fabric/test_helper/FabricMountingManagerTestHelper.cpp +85 -0
  319. package/ReactAndroid/src/main/jni/react/fabric/test_helper/FabricMountingManagerTestHelper.h +46 -0
  320. package/ReactAndroid/src/main/jni/react/fabric/test_helper/OnLoad.cpp +16 -0
  321. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +97 -69
  322. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +21 -15
  323. package/ReactAndroid/src/main/jni/react/hermes/instrumentation/HermesSamplingProfiler.cpp +1 -1
  324. package/ReactAndroid/src/main/jni/react/jni/OnLoad-common.cpp +0 -2
  325. package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +2 -1
  326. package/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.cpp +37 -30
  327. package/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.h +11 -8
  328. package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +2 -1
  329. package/ReactAndroid/src/main/jni/react/reactnativeblob/OnLoad.cpp +1 -1
  330. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +10 -0
  331. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +7 -0
  332. package/ReactAndroid/src/main/jni/react/tracing/CMakeLists.txt +28 -0
  333. package/ReactCommon/React-Fabric.podspec +7 -0
  334. package/ReactCommon/React-FabricComponents.podspec +1 -1
  335. package/ReactCommon/cxxreact/ReactNativeVersion.h +5 -5
  336. package/ReactCommon/jsc/JSCRuntime.cpp +9 -0
  337. package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +1 -0
  338. package/ReactCommon/jserrorhandler/JsErrorHandler.h +1 -1
  339. package/ReactCommon/jsi/jsi/JSIDynamic.cpp +1 -0
  340. package/ReactCommon/jsi/jsi/decorator.h +93 -0
  341. package/ReactCommon/jsi/jsi/jsi-inl.h +97 -68
  342. package/ReactCommon/jsi/jsi/jsi.cpp +208 -27
  343. package/ReactCommon/jsi/jsi/jsi.h +553 -224
  344. package/ReactCommon/jsi/jsi/test/testlib.cpp +453 -0
  345. package/ReactCommon/jsiexecutor/jsireact/JSINativeModules.cpp +1 -1
  346. package/ReactCommon/jsinspector-modern/EmulationAgent.cpp +108 -0
  347. package/ReactCommon/jsinspector-modern/EmulationAgent.h +47 -0
  348. package/ReactCommon/jsinspector-modern/HostAgent.cpp +10 -1
  349. package/ReactCommon/jsinspector-modern/HostTarget.h +25 -0
  350. package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +6 -2
  351. package/ReactCommon/jsinspector-modern/InspectorFlags.h +5 -2
  352. package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +19 -2
  353. package/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +3 -0
  354. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +10 -0
  355. package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +0 -1
  356. package/ReactCommon/logger/react_native_log.cpp +0 -1
  357. package/ReactCommon/react/bridging/Array.h +1 -1
  358. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +29 -21
  359. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +35 -25
  360. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +168 -132
  361. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +18 -14
  362. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +28 -20
  363. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +61 -43
  364. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +3 -3
  365. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +9 -7
  366. package/ReactCommon/react/featureflags/rewrite_feature_flag_defaults.py +111 -0
  367. package/ReactCommon/react/featureflags/tests/test_rewrite_feature_flag_defaults.py +60 -0
  368. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.h +3 -9
  369. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +0 -1
  370. package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
  371. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
  372. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -0
  373. package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.cpp +2 -2
  374. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +35 -25
  375. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +15 -11
  376. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +3 -2
  377. package/ReactCommon/react/nativemodule/viewtransition/CMakeLists.txt +24 -0
  378. package/ReactCommon/react/nativemodule/viewtransition/NativeViewTransition.cpp +92 -0
  379. package/ReactCommon/react/nativemodule/viewtransition/NativeViewTransition.h +37 -0
  380. package/ReactCommon/react/nativemodule/viewtransition/React-viewtransitionnativemodule.podspec +58 -0
  381. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +10 -1
  382. package/ReactCommon/react/networking/NetworkReporter.h +0 -1
  383. package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.h +0 -1
  384. package/ReactCommon/react/performance/timeline/PerformanceEntry.h +1 -1
  385. package/ReactCommon/react/performance/timeline/tests/PerformanceEntryTest.cpp +62 -0
  386. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +24 -12
  387. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +1 -1
  388. package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +3 -0
  389. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +10 -3
  390. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +1 -0
  391. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +4 -0
  392. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +1 -1
  393. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +0 -1
  394. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +8 -3
  395. package/ReactCommon/react/renderer/animations/tests/MutationComparatorTest.cpp +273 -0
  396. package/ReactCommon/react/renderer/animations/utils.h +12 -1
  397. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +1 -1
  398. package/ReactCommon/react/renderer/attributedstring/conversions.h +104 -3
  399. package/ReactCommon/react/renderer/components/image/conversions.h +2 -3
  400. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +0 -1
  401. package/ReactCommon/react/renderer/components/scrollview/conversions.h +0 -1
  402. package/ReactCommon/react/renderer/components/text/stateConversions.h +0 -1
  403. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +531 -21
  404. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +9 -0
  405. package/ReactCommon/react/renderer/components/view/BaseTouch.cpp +3 -2
  406. package/ReactCommon/react/renderer/components/view/BaseTouch.h +7 -0
  407. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +8 -0
  408. package/ReactCommon/react/renderer/components/view/PointerEvent.cpp +2 -0
  409. package/ReactCommon/react/renderer/components/view/PointerEvent.h +5 -0
  410. package/ReactCommon/react/renderer/components/view/TouchEvent.h +0 -2
  411. package/ReactCommon/react/renderer/components/view/TouchEventEmitter.cpp +23 -5
  412. package/ReactCommon/react/renderer/components/view/TouchEventEmitter.h +1 -0
  413. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +5 -0
  414. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +33 -28
  415. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +0 -1
  416. package/ReactCommon/react/renderer/components/view/conversions.h +44 -28
  417. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +53 -5
  418. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/NativeDrawable.h +47 -16
  419. package/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +2 -2
  420. package/ReactCommon/react/renderer/{graphics/DoubleConversions.h → components/view/platform/tvos/react/renderer/components/view/HostPlatformTouch.h} +2 -4
  421. package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewEventEmitter.h +14 -0
  422. package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.cpp +38 -0
  423. package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.h +29 -0
  424. package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +30 -0
  425. package/ReactCommon/react/renderer/components/view/propsConversions.h +8 -2
  426. package/ReactCommon/react/renderer/components/view/tests/ConversionsTest.cpp +86 -0
  427. package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +34 -0
  428. package/ReactCommon/react/renderer/core/EventEmitter.cpp +67 -2
  429. package/ReactCommon/react/renderer/core/EventEmitter.h +25 -0
  430. package/ReactCommon/react/renderer/core/EventPipe.h +3 -1
  431. package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +18 -10
  432. package/ReactCommon/react/renderer/core/EventTarget.cpp +8 -5
  433. package/ReactCommon/react/renderer/core/LayoutContext.h +9 -2
  434. package/ReactCommon/react/renderer/core/LayoutMetrics.cpp +5 -3
  435. package/ReactCommon/react/renderer/core/LayoutPrimitives.h +1 -0
  436. package/ReactCommon/react/renderer/core/Props.cpp +20 -0
  437. package/ReactCommon/react/renderer/core/RawEvent.cpp +4 -2
  438. package/ReactCommon/react/renderer/core/RawEvent.h +6 -6
  439. package/ReactCommon/react/renderer/core/ShadowNode.h +2 -2
  440. package/ReactCommon/react/renderer/core/conversions.h +4 -0
  441. package/ReactCommon/react/renderer/core/graphicsConversions.h +4 -4
  442. package/ReactCommon/react/renderer/core/propsConversions.h +1 -1
  443. package/ReactCommon/react/renderer/core/tests/EventQueueProcessorTest.cpp +52 -3
  444. package/ReactCommon/react/renderer/core/tests/EventTargetTests.cpp +26 -0
  445. package/ReactCommon/react/renderer/css/tests/CSSValueParserTest.cpp +1 -1
  446. package/ReactCommon/react/renderer/debug/DebugStringConvertible.cpp +42 -26
  447. package/ReactCommon/react/renderer/debug/DebugStringConvertible.h +4 -2
  448. package/ReactCommon/react/renderer/debug/tests/DebugStringConvertibleTest.cpp +34 -3
  449. package/ReactCommon/react/renderer/graphics/BlendMode.h +5 -0
  450. package/ReactCommon/react/renderer/graphics/CMakeLists.txt +1 -0
  451. package/ReactCommon/react/renderer/graphics/ColorStop.h +3 -0
  452. package/ReactCommon/react/renderer/graphics/LinearGradient.h +3 -0
  453. package/ReactCommon/react/renderer/graphics/RadialGradient.h +4 -0
  454. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -0
  455. package/ReactCommon/react/renderer/graphics/ValueUnit.cpp +1 -1
  456. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +0 -5
  457. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +2 -2
  458. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h +0 -4
  459. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +5 -1
  460. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp +12 -4
  461. package/ReactCommon/react/renderer/mounting/CMakeLists.txt +1 -0
  462. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +307 -4
  463. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +27 -2
  464. package/ReactCommon/react/renderer/mounting/internal/LongestIncreasingSubsequence.h +95 -0
  465. package/ReactCommon/react/renderer/mounting/tests/DifferentiatorUnflattenTest.cpp +212 -0
  466. package/ReactCommon/react/renderer/mounting/tests/LongestIncreasingSubsequenceTest.cpp +154 -0
  467. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +314 -18
  468. package/ReactCommon/react/renderer/mounting/updateMountedFlag.cpp +38 -20
  469. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +20 -22
  470. package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +1 -0
  471. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +76 -3
  472. package/ReactCommon/react/renderer/scheduler/Scheduler.h +12 -0
  473. package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +5 -0
  474. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +0 -7
  475. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +2 -1
  476. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +16 -1
  477. package/ReactCommon/react/renderer/uimanager/UIManager.h +8 -0
  478. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +1 -0
  479. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +347 -5
  480. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +5 -3
  481. package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +5 -0
  482. package/ReactCommon/react/renderer/uimanager/UIManagerViewTransitionDelegate.h +82 -0
  483. package/ReactCommon/react/renderer/viewtransition/CMakeLists.txt +22 -0
  484. package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.cpp +520 -0
  485. package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.h +161 -0
  486. package/ReactCommon/react/runtime/TimerManager.cpp +4 -2
  487. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +37 -0
  488. package/ReactCommon/react/timing/PrivacyInfo.xcprivacy +21 -0
  489. package/ReactCommon/react/timing/React-timing.podspec +2 -0
  490. package/ReactCommon/react/timing/primitives.h +33 -1
  491. package/ReactCommon/yoga/yoga/YGEnums.cpp +32 -0
  492. package/ReactCommon/yoga/yoga/YGEnums.h +20 -4
  493. package/ReactCommon/yoga/yoga/YGMacros.h +2 -0
  494. package/ReactCommon/yoga/yoga/YGNode.h +1 -1
  495. package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +269 -0
  496. package/ReactCommon/yoga/yoga/YGNodeStyle.h +93 -1
  497. package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +40 -9
  498. package/ReactCommon/yoga/yoga/algorithm/Align.h +12 -1
  499. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +106 -14
  500. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.h +22 -0
  501. package/ReactCommon/yoga/yoga/enums/Align.h +3 -1
  502. package/ReactCommon/yoga/yoga/enums/Display.h +2 -1
  503. package/ReactCommon/yoga/yoga/enums/ExperimentalFeature.h +2 -1
  504. package/ReactCommon/yoga/yoga/enums/GridTrackType.h +43 -0
  505. package/ReactCommon/yoga/yoga/enums/Justify.h +5 -1
  506. package/ReactCommon/yoga/yoga/event/event.cpp +2 -0
  507. package/ReactCommon/yoga/yoga/event/event.h +1 -0
  508. package/ReactCommon/yoga/yoga/node/Node.cpp +6 -1
  509. package/ReactCommon/yoga/yoga/node/Node.h +4 -4
  510. package/ReactCommon/yoga/yoga/style/GridLine.h +53 -0
  511. package/ReactCommon/yoga/yoga/style/GridTrack.h +63 -0
  512. package/ReactCommon/yoga/yoga/style/Style.h +261 -71
  513. package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +7 -1
  514. package/ReactCommon/yoga/yoga/style/StyleValueHandle.h +8 -0
  515. package/ReactCommon/yoga/yoga/style/StyleValuePool.h +10 -0
  516. package/cli.js +1 -1
  517. package/flow/HermesInternalType.js +1 -1
  518. package/flow/bom.js.flow +95 -3
  519. package/flow/dom.js.flow +89 -89
  520. package/gradle/libs.versions.toml +3 -1
  521. package/index.js +30 -3
  522. package/index.js.flow +23 -1
  523. package/package.json +11 -11
  524. package/react-native.config.js +3 -3
  525. package/scripts/cocoapods/rncore.rb +65 -11
  526. package/scripts/cocoapods/rndependencies.rb +65 -11
  527. package/scripts/cocoapods/utils.rb +52 -0
  528. package/scripts/codegen/generate-artifacts-executor/generateCustomURLHandlers.js +1 -1
  529. package/scripts/codegen/generate-artifacts-executor/generateNativeCode.js +13 -4
  530. package/scripts/codegen/generate-artifacts-executor/generateRCTModuleProviders.js +1 -1
  531. package/scripts/codegen/generate-artifacts-executor/generateRCTThirdPartyComponents.js +1 -1
  532. package/scripts/codegen/generate-artifacts-executor/generateReactCodegenPodspec.js +17 -6
  533. package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +1 -1
  534. package/scripts/codegen/generate-artifacts-executor/generateUnstableModulesRequiringMainQueueSetupProvider.js +1 -1
  535. package/scripts/codegen/generate-artifacts-executor/index.js +2 -0
  536. package/scripts/codegen/generate-artifacts-executor/utils.js +1 -1
  537. package/scripts/codegen/generate-specs-cli-executor.js +1 -1
  538. package/scripts/generate-codegen-artifacts.js +20 -2
  539. package/scripts/generate-provider-cli.js +1 -1
  540. package/scripts/react_native_pods.rb +25 -2
  541. package/scripts/react_native_pods_utils/script_phases.rb +9 -3
  542. package/scripts/replace-rncore-version.js +20 -0
  543. package/scripts/xcode/with-environment.sh +7 -1
  544. package/sdks/.hermesv1version +1 -1
  545. package/sdks/.hermesversion +1 -1
  546. package/sdks/hermes-engine/hermes-utils.rb +92 -5
  547. package/sdks/hermes-engine/version.properties +2 -2
  548. package/src/private/animated/NativeAnimatedValidation.js +1 -1
  549. package/src/private/animated/createAnimatedPropsHook.js +2 -2
  550. package/src/private/components/virtualcollection/FlingConstants.js +21 -0
  551. package/src/private/components/virtualcollection/Virtual.js +62 -0
  552. package/src/private/components/virtualcollection/VirtualCollectionView.js +238 -0
  553. package/src/private/components/virtualcollection/column/VirtualColumn.js +43 -0
  554. package/src/private/components/virtualcollection/column/VirtualColumnGenerator.js +72 -0
  555. package/src/private/components/virtualcollection/debug/FlingItemOverlay.js +13 -0
  556. package/src/private/components/virtualcollection/dom/getScrollParent.js +43 -0
  557. package/src/private/components/virtualcollection/dom/isScrollableNode.js +22 -0
  558. package/src/private/components/virtualcollection/row/VirtualRow.js +43 -0
  559. package/src/private/components/virtualcollection/row/VirtualRowGenerator.js +72 -0
  560. package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +2 -2
  561. package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +1 -1
  562. package/src/private/devsupport/devmenu/specs/NativeDevMenu.js +1 -1
  563. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +2 -2
  564. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsSettingsManager.js +2 -2
  565. package/src/private/featureflags/ReactNativeFeatureFlags.js +41 -37
  566. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
  567. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +9 -7
  568. package/src/private/renderer/errorhandling/ErrorHandlers.js +3 -3
  569. package/src/private/renderer/events/LegacySyntheticEvent.js +90 -0
  570. package/src/private/renderer/events/ReactNativeEventTypeMapping.js +103 -0
  571. package/src/private/renderer/events/ReactNativeResponder.js +687 -0
  572. package/src/private/renderer/events/ResponderEvent.js +40 -0
  573. package/src/private/renderer/events/ResponderTouchHistoryStore.js +258 -0
  574. package/src/private/renderer/events/dispatchNativeEvent.js +83 -0
  575. package/src/private/setup/setUpDOM.js +20 -0
  576. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +2 -2
  577. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +2 -2
  578. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
  579. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  580. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
  581. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +2 -2
  582. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +2 -2
  583. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +2 -2
  584. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +2 -2
  585. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +2 -2
  586. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +2 -2
  587. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
  588. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +2 -2
  589. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityInfo.js +1 -1
  590. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
  591. package/src/private/specs_DEPRECATED/modules/NativeActionSheetManager.js +1 -1
  592. package/src/private/specs_DEPRECATED/modules/NativeAlertManager.js +1 -1
  593. package/src/private/specs_DEPRECATED/modules/NativeAppState.js +1 -1
  594. package/src/private/specs_DEPRECATED/modules/NativeAppearance.js +1 -1
  595. package/src/private/specs_DEPRECATED/modules/NativeBlobModule.js +1 -1
  596. package/src/private/specs_DEPRECATED/modules/NativeClipboard.js +1 -1
  597. package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -1
  598. package/src/private/specs_DEPRECATED/modules/NativeDevSettings.js +1 -1
  599. package/src/private/specs_DEPRECATED/modules/NativeDeviceEventManager.js +1 -1
  600. package/src/private/specs_DEPRECATED/modules/NativeDialogManagerAndroid.js +1 -1
  601. package/src/private/specs_DEPRECATED/modules/NativeFileReaderModule.js +2 -2
  602. package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
  603. package/src/private/specs_DEPRECATED/modules/NativeHeadlessJsTaskSupport.js +1 -1
  604. package/src/private/specs_DEPRECATED/modules/NativeI18nManager.js +1 -1
  605. package/src/private/specs_DEPRECATED/modules/NativeImageEditor.js +2 -2
  606. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderAndroid.js +1 -1
  607. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
  608. package/src/private/specs_DEPRECATED/modules/NativeImageStoreAndroid.js +2 -2
  609. package/src/private/specs_DEPRECATED/modules/NativeImageStoreIOS.js +2 -2
  610. package/src/private/specs_DEPRECATED/modules/NativeIntentAndroid.js +1 -1
  611. package/src/private/specs_DEPRECATED/modules/NativeJSCHeapCapture.js +1 -1
  612. package/src/private/specs_DEPRECATED/modules/NativeKeyboardObserver.js +1 -1
  613. package/src/private/specs_DEPRECATED/modules/NativeLinkingManager.js +1 -1
  614. package/src/private/specs_DEPRECATED/modules/NativeLogBox.js +1 -1
  615. package/src/private/specs_DEPRECATED/modules/NativeModalManager.js +1 -1
  616. package/src/private/specs_DEPRECATED/modules/NativeNetworkingAndroid.js +1 -1
  617. package/src/private/specs_DEPRECATED/modules/NativeNetworkingIOS.js +1 -1
  618. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
  619. package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsAndroid.js +2 -2
  620. package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsIOS.js +2 -2
  621. package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +2 -2
  622. package/src/private/specs_DEPRECATED/modules/NativeRedBox.js +1 -1
  623. package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +2 -2
  624. package/src/private/specs_DEPRECATED/modules/NativeSegmentFetcher.js +1 -1
  625. package/src/private/specs_DEPRECATED/modules/NativeSettingsManager.js +2 -2
  626. package/src/private/specs_DEPRECATED/modules/NativeShareModule.js +1 -1
  627. package/src/private/specs_DEPRECATED/modules/NativeSoundManager.js +1 -1
  628. package/src/private/specs_DEPRECATED/modules/NativeTiming.js +1 -1
  629. package/src/private/specs_DEPRECATED/modules/NativeToastAndroid.js +1 -1
  630. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +1 -1
  631. package/src/private/specs_DEPRECATED/modules/NativeVibration.js +1 -1
  632. package/src/private/specs_DEPRECATED/modules/NativeWebSocketModule.js +2 -2
  633. package/src/private/styles/composeStyles.js +1 -1
  634. package/src/private/types/HostComponent.js +1 -1
  635. package/src/private/utilities/toExtendedError.js +1 -1
  636. package/src/private/viewtransition/specs/NativeViewTransition.js +33 -0
  637. package/src/private/webapis/dom/events/Event.js +10 -1
  638. package/src/private/webapis/dom/events/EventTarget.js +60 -18
  639. package/src/private/webapis/dom/events/internals/EventInternals.js +18 -1
  640. package/src/private/webapis/dom/events/internals/EventTargetInternals.js +12 -0
  641. package/src/private/webapis/dom/nodes/ReactNativeElement.js +24 -0
  642. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +4 -6
  643. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +70 -1
  644. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +10 -0
  645. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +1 -1
  646. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +2 -2
  647. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +5 -9
  648. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +2 -2
  649. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +2 -2
  650. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +2 -2
  651. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +1 -1
  652. package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
  653. package/src/private/webapis/structuredClone/structuredClone.js +1 -1
  654. package/src/private/webapis/webidl/PlatformObjects.js +4 -4
  655. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +0 -19669
  656. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +0 -11129
  657. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +0 -12930
  658. package/Libraries/Renderer/shims/ReactNative.js +0 -27
  659. package/Libraries/Utilities/GlobalPerformanceLogger.js +0 -24
  660. package/Libraries/Utilities/PerformanceLoggerContext.js +0 -33
  661. package/Libraries/Utilities/createPerformanceLogger.js +0 -329
  662. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +0 -442
  663. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobCollector.kt +0 -31
  664. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerLegacyView.kt +0 -47
  665. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIFinalizer.java +0 -31
  666. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.java +0 -35
  667. package/ReactCommon/react/renderer/graphics/DoubleConversions.cpp +0 -38
@@ -44,28 +44,27 @@ public class ReactChoreographer private constructor(choreographerProvider: Chore
44
44
  private var totalCallbacks = 0
45
45
  @GuardedBy("callbackQueues") private var hasPostedCallback = false
46
46
 
47
- private val frameCallback =
48
- Choreographer.FrameCallback { frameTimeNanos ->
49
- synchronized(callbackQueues) {
50
- // Callbacks run once and are then automatically removed, the callback will
51
- // be posted again from postFrameCallback
52
- hasPostedCallback = false
53
- for (i in callbackQueues.indices) {
54
- val callbackQueue = callbackQueues[i]
55
- val initialLength = callbackQueue.size
56
- for (callback in 0 until initialLength) {
57
- val frameCallback = callbackQueue.pollFirst()
58
- if (frameCallback != null) {
59
- frameCallback.doFrame(frameTimeNanos)
60
- totalCallbacks--
61
- } else {
62
- FLog.e(ReactConstants.TAG, "Tried to execute non-existent frame callback")
63
- }
64
- }
47
+ private val frameCallback = Choreographer.FrameCallback { frameTimeNanos ->
48
+ synchronized(callbackQueues) {
49
+ // Callbacks run once and are then automatically removed, the callback will
50
+ // be posted again from postFrameCallback
51
+ hasPostedCallback = false
52
+ for (i in callbackQueues.indices) {
53
+ val callbackQueue = callbackQueues[i]
54
+ val initialLength = callbackQueue.size
55
+ for (callback in 0 until initialLength) {
56
+ val frameCallback = callbackQueue.pollFirst()
57
+ if (frameCallback != null) {
58
+ frameCallback.doFrame(frameTimeNanos)
59
+ totalCallbacks--
60
+ } else {
61
+ FLog.e(ReactConstants.TAG, "Tried to execute non-existent frame callback")
65
62
  }
66
- maybeRemoveFrameCallback()
67
63
  }
68
64
  }
65
+ maybeRemoveFrameCallback()
66
+ }
67
+ }
69
68
 
70
69
  init {
71
70
  UiThreadUtil.runOnUiThread { choreographer = choreographerProvider.getChoreographer() }
@@ -138,6 +137,8 @@ public class ReactChoreographer private constructor(choreographerProvider: Chore
138
137
 
139
138
  @VisibleForTesting
140
139
  internal fun overrideInstanceForTest(instance: ReactChoreographer?): ReactChoreographer? =
141
- choreographer.also { choreographer = instance }
140
+ choreographer.also {
141
+ choreographer = instance
142
+ }
142
143
  }
143
144
  }
@@ -7,14 +7,21 @@
7
7
 
8
8
  package com.facebook.react.modules.deviceinfo
9
9
 
10
+ import android.util.DisplayMetrics
11
+ import androidx.annotation.VisibleForTesting
12
+ import androidx.core.view.ViewCompat
13
+ import androidx.core.view.WindowInsetsCompat
14
+ import androidx.window.layout.WindowMetricsCalculator
10
15
  import com.facebook.fbreact.specs.NativeDeviceInfoSpec
11
16
  import com.facebook.react.bridge.LifecycleEventListener
12
17
  import com.facebook.react.bridge.ReactApplicationContext
13
18
  import com.facebook.react.bridge.ReactNoCrashSoftException
14
19
  import com.facebook.react.bridge.ReactSoftExceptionLogger
15
20
  import com.facebook.react.bridge.ReadableMap
21
+ import com.facebook.react.bridge.WritableMap
22
+ import com.facebook.react.bridge.WritableNativeMap
16
23
  import com.facebook.react.module.annotations.ReactModule
17
- import com.facebook.react.uimanager.DisplayMetricsHolder.getDisplayMetricsWritableMap
24
+ import com.facebook.react.uimanager.DisplayMetricsHolder.getScreenDisplayMetrics
18
25
  import com.facebook.react.uimanager.DisplayMetricsHolder.initDisplayMetricsIfNotInitialized
19
26
  import com.facebook.react.views.view.isEdgeToEdgeFeatureFlagOn
20
27
 
@@ -30,8 +37,61 @@ internal class DeviceInfoModule(reactContext: ReactApplicationContext) :
30
37
  reactContext.addLifecycleEventListener(this)
31
38
  }
32
39
 
40
+ @VisibleForTesting
41
+ internal fun getWindowDisplayMetrics(): DisplayMetrics {
42
+ val windowDisplayMetrics = DisplayMetrics()
43
+ windowDisplayMetrics.setTo(reactApplicationContext.resources.displayMetrics)
44
+
45
+ val activity = reactApplicationContext.currentActivity ?: return windowDisplayMetrics
46
+ val bounds = WindowMetricsCalculator.getOrCreate().computeCurrentWindowMetrics(activity).bounds
47
+
48
+ if (isEdgeToEdgeFeatureFlagOn) {
49
+ windowDisplayMetrics.widthPixels = bounds.width()
50
+ windowDisplayMetrics.heightPixels = bounds.height()
51
+ } else {
52
+ // WindowMetrics bounds include system bars. When edge-to-edge is not enabled, we subtract
53
+ // them so that window dimensions reflect the usable content area. If insets aren't yet
54
+ // available (e.g. before the first layout pass), fall back to resources.displayMetrics,
55
+ // which already excludes system bars in non-edge-to-edge mode.
56
+ ViewCompat.getRootWindowInsets(activity.window.decorView)?.let {
57
+ val insets =
58
+ it.getInsets(
59
+ WindowInsetsCompat.Type.systemBars() or WindowInsetsCompat.Type.displayCutout()
60
+ )
61
+ windowDisplayMetrics.widthPixels = bounds.width() - (insets.left + insets.right)
62
+ windowDisplayMetrics.heightPixels = bounds.height() - (insets.top + insets.bottom)
63
+ }
64
+ }
65
+
66
+ return windowDisplayMetrics
67
+ }
68
+
69
+ @VisibleForTesting
70
+ internal fun getDisplayMetricsWritableMap(): WritableMap =
71
+ WritableNativeMap().apply {
72
+ putMap(
73
+ "windowPhysicalPixels",
74
+ getPhysicalPixelsWritableMap(getWindowDisplayMetrics()),
75
+ )
76
+ putMap(
77
+ "screenPhysicalPixels",
78
+ getPhysicalPixelsWritableMap(getScreenDisplayMetrics()),
79
+ )
80
+ }
81
+
82
+ private fun getPhysicalPixelsWritableMap(
83
+ displayMetrics: DisplayMetrics,
84
+ ): WritableMap =
85
+ WritableNativeMap().apply {
86
+ putInt("width", displayMetrics.widthPixels)
87
+ putInt("height", displayMetrics.heightPixels)
88
+ putDouble("scale", displayMetrics.density.toDouble())
89
+ putDouble("fontScale", fontScale.toDouble())
90
+ putDouble("densityDpi", displayMetrics.densityDpi.toDouble())
91
+ }
92
+
33
93
  public override fun getTypedExportedConstants(): Map<String, Any> {
34
- val displayMetrics = getDisplayMetricsWritableMap(fontScale.toDouble())
94
+ val displayMetrics = getDisplayMetricsWritableMap()
35
95
 
36
96
  // Cache the initial dimensions for later comparison in emitUpdateDimensionsEvent
37
97
  previousDisplayMetrics = displayMetrics.copy()
@@ -58,7 +118,7 @@ internal class DeviceInfoModule(reactContext: ReactApplicationContext) :
58
118
  reactApplicationContext.let { context ->
59
119
  if (context.hasActiveReactInstance()) {
60
120
  // Don't emit an event to JS if the dimensions haven't changed
61
- val displayMetrics = getDisplayMetricsWritableMap(fontScale.toDouble())
121
+ val displayMetrics = getDisplayMetricsWritableMap()
62
122
  if (previousDisplayMetrics == null) {
63
123
  previousDisplayMetrics = displayMetrics.copy()
64
124
  } else if (displayMetrics != previousDisplayMetrics) {
@@ -7,17 +7,20 @@
7
7
 
8
8
  package com.facebook.react.modules.image
9
9
 
10
+ import android.media.ExifInterface
10
11
  import android.net.Uri
11
12
  import android.util.SparseArray
12
13
  import com.facebook.common.executors.CallerThreadExecutor
14
+ import com.facebook.common.memory.PooledByteBuffer
13
15
  import com.facebook.common.references.CloseableReference
14
16
  import com.facebook.datasource.BaseDataSubscriber
15
17
  import com.facebook.datasource.DataSource
16
18
  import com.facebook.datasource.DataSubscriber
17
19
  import com.facebook.drawee.backends.pipeline.Fresco
18
20
  import com.facebook.fbreact.specs.NativeImageLoaderAndroidSpec
21
+ import com.facebook.imagepipeline.common.RotationOptions
19
22
  import com.facebook.imagepipeline.core.ImagePipeline
20
- import com.facebook.imagepipeline.image.CloseableImage
23
+ import com.facebook.imagepipeline.image.EncodedImage
21
24
  import com.facebook.imagepipeline.request.ImageRequest
22
25
  import com.facebook.imagepipeline.request.ImageRequestBuilder
23
26
  import com.facebook.react.bridge.GuardedAsyncTask
@@ -82,39 +85,13 @@ internal class ImageLoaderModule : NativeImageLoaderAndroidSpec, LifecycleEventL
82
85
  return
83
86
  }
84
87
  val source = ImageSource(reactApplicationContext, uriString)
85
- val request: ImageRequest = ImageRequestBuilder.newBuilderWithSource(source.uri).build()
86
- val dataSource: DataSource<CloseableReference<CloseableImage>> =
87
- this.imagePipeline.fetchDecodedImage(request, this.callerContext)
88
- val dataSubscriber: DataSubscriber<CloseableReference<CloseableImage>> =
89
- object : BaseDataSubscriber<CloseableReference<CloseableImage>>() {
90
- override fun onNewResultImpl(dataSource: DataSource<CloseableReference<CloseableImage>>) {
91
- if (!dataSource.isFinished) {
92
- return
93
- }
94
- val ref = dataSource.result
95
- if (ref != null) {
96
- try {
97
- val image: CloseableImage = ref.get()
98
- val sizes = buildReadableMap {
99
- put("width", image.width)
100
- put("height", image.height)
101
- }
102
- promise.resolve(sizes)
103
- } catch (e: Exception) {
104
- promise.reject(ERROR_GET_SIZE_FAILURE, e)
105
- } finally {
106
- CloseableReference.closeSafely(ref)
107
- }
108
- } else {
109
- promise.reject(ERROR_GET_SIZE_FAILURE, "Failed to get the size of the image")
110
- }
111
- }
112
-
113
- override fun onFailureImpl(dataSource: DataSource<CloseableReference<CloseableImage>>) {
114
- promise.reject(ERROR_GET_SIZE_FAILURE, dataSource.failureCause)
115
- }
116
- }
117
- dataSource.subscribe(dataSubscriber, CallerThreadExecutor.getInstance())
88
+ val request: ImageRequest =
89
+ ImageRequestBuilder.newBuilderWithSource(source.uri)
90
+ .setRotationOptions(RotationOptions.disableRotation())
91
+ .build()
92
+ val dataSource: DataSource<CloseableReference<PooledByteBuffer>> =
93
+ this.imagePipeline.fetchEncodedImage(request, this.callerContext)
94
+ dataSource.subscribe(createSizeSubscriber(promise), CallerThreadExecutor.getInstance())
118
95
  }
119
96
 
120
97
  /**
@@ -134,41 +111,61 @@ internal class ImageLoaderModule : NativeImageLoaderAndroidSpec, LifecycleEventL
134
111
  val source = ImageSource(reactApplicationContext, uriString)
135
112
  val imageRequestBuilder: ImageRequestBuilder =
136
113
  ImageRequestBuilder.newBuilderWithSource(source.uri)
114
+ .setRotationOptions(RotationOptions.disableRotation())
137
115
  val request: ImageRequest =
138
116
  ReactNetworkImageRequest.fromBuilderWithHeaders(imageRequestBuilder, headers)
139
- val dataSource: DataSource<CloseableReference<CloseableImage>> =
140
- this.imagePipeline.fetchDecodedImage(request, this.callerContext)
141
- val dataSubscriber: DataSubscriber<CloseableReference<CloseableImage>> =
142
- object : BaseDataSubscriber<CloseableReference<CloseableImage>>() {
143
- override fun onNewResultImpl(dataSource: DataSource<CloseableReference<CloseableImage>>) {
144
- if (!dataSource.isFinished) {
145
- return
146
- }
147
- val ref = dataSource.result
148
- if (ref != null) {
149
- try {
150
- val image: CloseableImage = ref.get()
151
- val sizes = buildReadableMap {
152
- put("width", image.width)
153
- put("height", image.height)
154
- }
155
- promise.resolve(sizes)
156
- } catch (e: Exception) {
157
- promise.reject(ERROR_GET_SIZE_FAILURE, e)
158
- } finally {
159
- CloseableReference.closeSafely(ref)
117
+ val dataSource: DataSource<CloseableReference<PooledByteBuffer>> =
118
+ this.imagePipeline.fetchEncodedImage(request, this.callerContext)
119
+ dataSource.subscribe(createSizeSubscriber(promise), CallerThreadExecutor.getInstance())
120
+ }
121
+
122
+ private fun createSizeSubscriber(
123
+ promise: Promise
124
+ ): DataSubscriber<CloseableReference<PooledByteBuffer>> =
125
+ object : BaseDataSubscriber<CloseableReference<PooledByteBuffer>>() {
126
+ override fun onNewResultImpl(dataSource: DataSource<CloseableReference<PooledByteBuffer>>) {
127
+ if (!dataSource.isFinished) {
128
+ return
129
+ }
130
+ val ref = dataSource.result
131
+ if (ref != null) {
132
+ var encodedImage: EncodedImage? = null
133
+ try {
134
+ encodedImage = EncodedImage(ref)
135
+ // Swap width and height when the image's EXIF orientation swaps the X/Y axes
136
+ // (90°/270° rotations, or transpose/transverse), so the values reflect the
137
+ // visible dimensions, matching iOS behavior.
138
+ val rotated =
139
+ encodedImage.rotationAngle == 90 ||
140
+ encodedImage.rotationAngle == 270 ||
141
+ encodedImage.exifOrientation == ExifInterface.ORIENTATION_TRANSPOSE ||
142
+ encodedImage.exifOrientation == ExifInterface.ORIENTATION_TRANSVERSE
143
+ val width = if (rotated) encodedImage.height else encodedImage.width
144
+ val height = if (rotated) encodedImage.width else encodedImage.height
145
+ if (width < 0 || height < 0) {
146
+ promise.reject(ERROR_GET_SIZE_FAILURE, "Failed to get the size of the image")
147
+ return
148
+ }
149
+ val sizes = buildReadableMap {
150
+ put("width", width)
151
+ put("height", height)
160
152
  }
161
- } else {
162
- promise.reject(ERROR_GET_SIZE_FAILURE, "Failed to get the size of the image")
153
+ promise.resolve(sizes)
154
+ } catch (e: Exception) {
155
+ promise.reject(ERROR_GET_SIZE_FAILURE, e)
156
+ } finally {
157
+ encodedImage?.close()
158
+ CloseableReference.closeSafely(ref)
163
159
  }
160
+ } else {
161
+ promise.reject(ERROR_GET_SIZE_FAILURE, "Failed to get the size of the image")
164
162
  }
163
+ }
165
164
 
166
- override fun onFailureImpl(dataSource: DataSource<CloseableReference<CloseableImage>>) {
167
- promise.reject(ERROR_GET_SIZE_FAILURE, dataSource.failureCause)
168
- }
165
+ override fun onFailureImpl(dataSource: DataSource<CloseableReference<PooledByteBuffer>>) {
166
+ promise.reject(ERROR_GET_SIZE_FAILURE, dataSource.failureCause)
169
167
  }
170
- dataSource.subscribe(dataSubscriber, CallerThreadExecutor.getInstance())
171
- }
168
+ }
172
169
 
173
170
  /**
174
171
  * Prefetches the given image to the Fresco image disk cache.
@@ -773,6 +773,14 @@ public class NetworkingModule(
773
773
  e.message,
774
774
  e,
775
775
  )
776
+ } catch (e: OutOfMemoryError) {
777
+ NetworkEventUtil.onRequestError(
778
+ reactApplicationContext,
779
+ requestId,
780
+ devToolsRequestId,
781
+ "Out of memory while processing network response",
782
+ null,
783
+ )
776
784
  }
777
785
  }
778
786
  }
@@ -9,10 +9,11 @@ package com.facebook.react.modules.statusbar
9
9
 
10
10
  import android.animation.ArgbEvaluator
11
11
  import android.animation.ValueAnimator
12
- import android.os.Build
13
- import android.view.View
14
- import android.view.WindowInsetsController
12
+ import android.view.Window
15
13
  import android.view.WindowManager
14
+ import androidx.core.view.ViewCompat
15
+ import androidx.core.view.WindowCompat
16
+ import androidx.core.view.WindowInsetsCompat
16
17
  import com.facebook.common.logging.FLog
17
18
  import com.facebook.fbreact.specs.NativeStatusBarManagerAndroidSpec
18
19
  import com.facebook.react.bridge.GuardedRunnable
@@ -20,17 +21,48 @@ import com.facebook.react.bridge.NativeModule
20
21
  import com.facebook.react.bridge.ReactApplicationContext
21
22
  import com.facebook.react.bridge.UiThreadUtil
22
23
  import com.facebook.react.common.ReactConstants
24
+ import com.facebook.react.interfaces.ExtraWindowEventListener
23
25
  import com.facebook.react.module.annotations.ReactModule
24
26
  import com.facebook.react.uimanager.DisplayMetricsHolder.getStatusBarHeightPx
25
27
  import com.facebook.react.uimanager.PixelUtil
26
28
  import com.facebook.react.views.view.isEdgeToEdgeFeatureFlagOn
29
+ import com.facebook.react.views.view.setStatusBarStyle
27
30
  import com.facebook.react.views.view.setStatusBarTranslucency
28
31
  import com.facebook.react.views.view.setStatusBarVisibility
32
+ import java.util.Collections
33
+ import java.util.WeakHashMap
29
34
 
30
35
  /** [NativeModule] that allows changing the appearance of the status bar. */
31
36
  @ReactModule(name = NativeStatusBarManagerAndroidSpec.NAME)
32
37
  internal class StatusBarModule(reactContext: ReactApplicationContext?) :
33
- NativeStatusBarManagerAndroidSpec(reactContext) {
38
+ NativeStatusBarManagerAndroidSpec(reactContext), ExtraWindowEventListener {
39
+
40
+ init {
41
+ reactApplicationContext.addExtraWindowEventListener(this)
42
+ }
43
+
44
+ override fun invalidate() {
45
+ super.invalidate()
46
+ reactApplicationContext.removeExtraWindowEventListener(this)
47
+ }
48
+
49
+ override fun onExtraWindowCreate(window: Window) {
50
+ extraWindows.add(window)
51
+
52
+ reactApplicationContext.currentActivity?.window?.let { activityWindow ->
53
+ val controller = WindowCompat.getInsetsController(activityWindow, activityWindow.decorView)
54
+ val insets = ViewCompat.getRootWindowInsets(activityWindow.decorView)
55
+ val style = if (controller.isAppearanceLightStatusBars) "dark-content" else "light-content"
56
+ val visible = insets?.isVisible(WindowInsetsCompat.Type.statusBars()) ?: true
57
+
58
+ window.setStatusBarStyle(style)
59
+ window.setStatusBarVisibility(!visible)
60
+ }
61
+ }
62
+
63
+ override fun onExtraWindowDestroy(window: Window) {
64
+ extraWindows.remove(window)
65
+ }
34
66
 
35
67
  @Suppress("DEPRECATION")
36
68
  override fun getTypedExportedConstants(): Map<String, Any> {
@@ -118,10 +150,12 @@ internal class StatusBarModule(reactContext: ReactApplicationContext?) :
118
150
  )
119
151
  return
120
152
  }
121
- UiThreadUtil.runOnUiThread { activity.window?.setStatusBarVisibility(hidden) }
153
+ UiThreadUtil.runOnUiThread {
154
+ activity.window?.setStatusBarVisibility(hidden)
155
+ extraWindows.forEach { it.setStatusBarVisibility(hidden) }
156
+ }
122
157
  }
123
158
 
124
- @Suppress("DEPRECATION")
125
159
  override fun setStyle(style: String?) {
126
160
  val activity = reactApplicationContext.getCurrentActivity()
127
161
  if (activity == null) {
@@ -131,41 +165,16 @@ internal class StatusBarModule(reactContext: ReactApplicationContext?) :
131
165
  )
132
166
  return
133
167
  }
134
- UiThreadUtil.runOnUiThread(
135
- Runnable {
136
- val window = activity.window ?: return@Runnable
137
- if (Build.VERSION.SDK_INT > Build.VERSION_CODES.R) {
138
- val insetsController = window.insetsController ?: return@Runnable
139
- if ("dark-content" == style) {
140
- // dark-content means dark icons on a light status bar
141
- insetsController.setSystemBarsAppearance(
142
- WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS,
143
- WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS,
144
- )
145
- } else {
146
- insetsController.setSystemBarsAppearance(
147
- 0,
148
- WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS,
149
- )
150
- }
151
- } else {
152
- val decorView = window.decorView
153
- var systemUiVisibilityFlags = decorView.systemUiVisibility
154
- systemUiVisibilityFlags =
155
- if ("dark-content" == style) {
156
- systemUiVisibilityFlags or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
157
- } else {
158
- systemUiVisibilityFlags and View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR.inv()
159
- }
160
- decorView.systemUiVisibility = systemUiVisibilityFlags
161
- }
162
- }
163
- )
168
+ UiThreadUtil.runOnUiThread {
169
+ activity.window?.setStatusBarStyle(style)
170
+ extraWindows.forEach { it.setStatusBarStyle(style) }
171
+ }
164
172
  }
165
173
 
166
174
  companion object {
167
175
  private const val HEIGHT_KEY = "HEIGHT"
168
176
  private const val DEFAULT_BACKGROUND_COLOR_KEY = "DEFAULT_BACKGROUND_COLOR"
169
177
  const val NAME: String = NativeStatusBarManagerAndroidSpec.NAME
178
+ private val extraWindows = Collections.newSetFromMap<Window>(WeakHashMap())
170
179
  }
171
180
  }
@@ -13,8 +13,8 @@ public object ReactNativeVersion {
13
13
  @JvmField
14
14
  public val VERSION: Map<String, Any?> = mapOf(
15
15
  "major" to 0,
16
- "minor" to 85,
17
- "patch" to 3,
18
- "prerelease" to "1"
16
+ "minor" to 86,
17
+ "patch" to 0,
18
+ "prerelease" to "0"
19
19
  )
20
20
  }
@@ -29,6 +29,7 @@ import java.net.URISyntaxException
29
29
  import java.util.HashMap
30
30
  import java.util.concurrent.ConcurrentHashMap
31
31
  import java.util.concurrent.TimeUnit
32
+ import okhttp3.CookieJar
32
33
  import okhttp3.OkHttpClient
33
34
  import okhttp3.Request
34
35
  import okhttp3.Response
@@ -83,6 +84,8 @@ public class WebSocketModule(context: ReactApplicationContext) :
83
84
  val okHttpBuilder =
84
85
  OkHttpClientProvider.getOkHttpClient()
85
86
  .newBuilder()
87
+ // Don't let BridgeInterceptor overwrite a caller-supplied Cookie header.
88
+ .cookieJar(CookieJar.NO_COOKIES)
86
89
  .connectTimeout(10, TimeUnit.SECONDS)
87
90
  .writeTimeout(10, TimeUnit.SECONDS)
88
91
  .readTimeout(0, TimeUnit.MINUTES) // Disable timeouts for read
@@ -395,9 +398,9 @@ public class WebSocketModule(context: ReactApplicationContext) :
395
398
 
396
399
  val defaultOrigin =
397
400
  if (requestURI.port != -1) {
398
- String.format("%s://%s:%s", scheme, requestURI.host, requestURI.port)
401
+ "$scheme://${requestURI.host}:${requestURI.port}"
399
402
  } else {
400
- String.format("%s://%s", scheme, requestURI.host)
403
+ "$scheme://${requestURI.host}"
401
404
  }
402
405
 
403
406
  return defaultOrigin
@@ -20,6 +20,7 @@ import com.facebook.react.module.model.ReactModuleInfoProvider
20
20
  import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler
21
21
  import com.facebook.react.modules.core.DeviceEventManagerModule
22
22
  import com.facebook.react.modules.core.ExceptionsManagerModule
23
+ import com.facebook.react.modules.core.HeadlessJsTaskSupportModule
23
24
  import com.facebook.react.modules.debug.DevMenuModule
24
25
  import com.facebook.react.modules.debug.DevSettingsModule
25
26
  import com.facebook.react.modules.debug.SourceCodeModule
@@ -38,6 +39,7 @@ import java.util.HashMap
38
39
  LogBoxModule::class,
39
40
  DeviceEventManagerModule::class,
40
41
  ExceptionsManagerModule::class,
42
+ HeadlessJsTaskSupportModule::class,
41
43
  ]
42
44
  )
43
45
  internal class CoreReactPackage(
@@ -57,6 +59,7 @@ internal class CoreReactPackage(
57
59
 
58
60
  LogBoxModule.NAME -> LogBoxModule(reactContext, devSupportManager)
59
61
  ExceptionsManagerModule.NAME -> ExceptionsManagerModule(devSupportManager)
62
+ HeadlessJsTaskSupportModule.NAME -> HeadlessJsTaskSupportModule(reactContext)
60
63
  else -> null
61
64
  }
62
65
 
@@ -96,6 +99,7 @@ internal class CoreReactPackage(
96
99
  DeviceEventManagerModule::class.java,
97
100
  LogBoxModule::class.java,
98
101
  ExceptionsManagerModule::class.java,
102
+ HeadlessJsTaskSupportModule::class.java,
99
103
  )
100
104
  val reactModuleInfoMap: MutableMap<String, ReactModuleInfo> = HashMap()
101
105
  for (moduleClass in moduleList) {
@@ -12,6 +12,7 @@ import android.content.Context
12
12
  import android.content.Intent
13
13
  import android.nfc.NfcAdapter
14
14
  import android.os.Bundle
15
+ import androidx.appcompat.app.AppCompatDelegate
15
16
  import androidx.core.graphics.createBitmap
16
17
  import com.facebook.common.logging.FLog
17
18
  import com.facebook.infer.annotation.Assertions
@@ -448,6 +449,19 @@ public class ReactHostImpl(
448
449
  InspectorNetworkHelper.loadNetworkResource(url, listener)
449
450
  }
450
451
 
452
+ @DoNotStrip
453
+ private fun setEmulatedMedia(colorScheme: String) {
454
+ UiThreadUtil.runOnUiThread {
455
+ val mode =
456
+ when (colorScheme) {
457
+ "dark" -> AppCompatDelegate.MODE_NIGHT_YES
458
+ "light" -> AppCompatDelegate.MODE_NIGHT_NO
459
+ else -> AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM
460
+ }
461
+ AppCompatDelegate.setDefaultNightMode(mode)
462
+ }
463
+ }
464
+
451
465
  @DoNotStrip
452
466
  private fun captureScreenshot(format: String, quality: Int): String? {
453
467
  val activity = currentActivity ?: return null
@@ -1027,11 +1041,10 @@ public class ReactHostImpl(
1027
1041
  jsBundleLoader.onSuccess(
1028
1042
  { task ->
1029
1043
  val bundleLoader = checkNotNull(task.getResult())
1030
- val reactContext =
1031
- bridgelessReactContextRef.getOrCreate {
1032
- stateTracker.enterState(method, "Creating BridgelessReactContext")
1033
- BridgelessReactContext(context, this)
1034
- }
1044
+ val reactContext = bridgelessReactContextRef.getOrCreate {
1045
+ stateTracker.enterState(method, "Creating BridgelessReactContext")
1046
+ BridgelessReactContext(context, this)
1047
+ }
1035
1048
  reactContext.jsExceptionHandler = devSupportManager
1036
1049
 
1037
1050
  stateTracker.enterState(method, "Creating ReactInstance")
@@ -70,7 +70,14 @@ internal class ReactHostImplDevHelper(private val delegate: ReactHostImpl) :
70
70
  }
71
71
 
72
72
  override fun destroyRootView(rootView: View) {
73
- // Not implemented, only referenced by BridgeDevSupportManager
73
+ val surface = (rootView as? ReactSurfaceView)?.surface ?: return
74
+ // stop() synchronously removes the surface from ReactHostImpl.attachedSurfaces via
75
+ // detachSurface(), then asynchronously tears down the React component tree.
76
+ // detach() severs the surface's back-reference to the host.
77
+ // clear() removes child views from the ReactSurfaceView.
78
+ surface.stop()
79
+ surface.detach()
80
+ surface.clear()
74
81
  }
75
82
 
76
83
  override fun reload(reason: String) {
@@ -15,6 +15,8 @@ import android.graphics.Rect
15
15
  import android.view.KeyEvent
16
16
  import android.view.MotionEvent
17
17
  import android.view.View
18
+ import androidx.core.view.ViewCompat
19
+ import androidx.core.view.WindowInsetsCompat
18
20
  import com.facebook.common.logging.FLog
19
21
  import com.facebook.react.ReactRootView
20
22
  import com.facebook.react.bridge.ReactContext
@@ -26,7 +28,7 @@ import com.facebook.react.uimanager.IllegalViewOperationException
26
28
  import com.facebook.react.uimanager.JSKeyDispatcher
27
29
  import com.facebook.react.uimanager.JSPointerDispatcher
28
30
  import com.facebook.react.uimanager.JSTouchDispatcher
29
- import com.facebook.react.uimanager.common.UIManagerType
31
+ import com.facebook.react.views.view.isEdgeToEdgeFeatureFlagOn
30
32
  import com.facebook.systrace.Systrace
31
33
  import java.util.Objects
32
34
  import kotlin.math.max
@@ -36,7 +38,7 @@ import kotlin.math.max
36
38
  * rendering a React component.
37
39
  */
38
40
  @OptIn(FrameworkAPI::class, UnstableReactNativeAPI::class)
39
- public class ReactSurfaceView(context: Context?, private val surface: ReactSurfaceImpl) :
41
+ public class ReactSurfaceView(context: Context?, internal val surface: ReactSurfaceImpl) :
40
42
  ReactRootView(context) {
41
43
  private val jsTouchDispatcher: JSTouchDispatcher = JSTouchDispatcher(this)
42
44
  private var jsPointerDispatcher: JSPointerDispatcher? = null
@@ -47,16 +49,24 @@ public class ReactSurfaceView(context: Context?, private val surface: ReactSurfa
47
49
 
48
50
  private val viewportOffset: Point
49
51
  get() {
50
- val locationOnScreen = IntArray(2)
51
- getLocationOnScreen(locationOnScreen)
52
+ val locationInWindow = IntArray(2)
53
+ getLocationInWindow(locationInWindow)
52
54
 
53
- // we need to subtract visibleWindowCoords - to subtract possible window insets, split
54
- // screen or multi window
55
- val visibleWindowFrame = Rect()
56
- getWindowVisibleDisplayFrame(visibleWindowFrame)
57
- locationOnScreen[0] -= visibleWindowFrame.left
58
- locationOnScreen[1] -= visibleWindowFrame.top
59
- return Point(locationOnScreen[0], locationOnScreen[1])
55
+ if (!isEdgeToEdgeFeatureFlagOn) {
56
+ // When not in edge-to-edge mode, subtract the top system bar insets so the offset is
57
+ // relative to the content area (below the status bar / cutout).
58
+ ViewCompat.getRootWindowInsets(this)?.apply {
59
+ val insets =
60
+ getInsets(
61
+ WindowInsetsCompat.Type.statusBars() or WindowInsetsCompat.Type.displayCutout()
62
+ )
63
+
64
+ locationInWindow[0] -= insets.left
65
+ locationInWindow[1] -= insets.top
66
+ }
67
+ }
68
+
69
+ return Point(locationInWindow[0], locationInWindow[1])
60
70
  }
61
71
 
62
72
  init {
@@ -150,14 +160,6 @@ public class ReactSurfaceView(context: Context?, private val surface: ReactSurfa
150
160
  (surface.reactHost ?: throw e).handleHostException(e)
151
161
  }
152
162
 
153
- override fun setIsFabric(isFabric: Boolean) {
154
- // This surface view is always on Fabric regardless.
155
- super.setIsFabric(true)
156
- }
157
-
158
- // This surface view is always on Fabric.
159
- @UIManagerType override fun getUIManagerType(): Int = UIManagerType.FABRIC
160
-
161
163
  override fun getJSModuleName(): String = surface.moduleName
162
164
 
163
165
  override fun dispatchJSTouchEvent(event: MotionEvent) {