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
@@ -8,10 +8,12 @@
8
8
  package com.facebook.react.uimanager
9
9
 
10
10
  import android.graphics.Point
11
- import android.graphics.Rect
12
11
  import android.view.View
13
12
  import androidx.annotation.UiThread
13
+ import androidx.core.view.ViewCompat
14
+ import androidx.core.view.WindowInsetsCompat
14
15
  import com.facebook.infer.annotation.Assertions
16
+ import com.facebook.react.views.view.isEdgeToEdgeFeatureFlagOn
15
17
 
16
18
  public object RootViewUtil {
17
19
  /** Returns the root view of a given view in a react application. */
@@ -34,12 +36,20 @@ public object RootViewUtil {
34
36
  val locationInWindow = IntArray(2)
35
37
  v.getLocationInWindow(locationInWindow)
36
38
 
37
- // we need to subtract visibleWindowCoords - to subtract possible window insets, split
38
- // screen or multi window
39
- val visibleWindowFrame = Rect()
40
- v.getWindowVisibleDisplayFrame(visibleWindowFrame)
41
- locationInWindow[0] -= visibleWindowFrame.left
42
- locationInWindow[1] -= visibleWindowFrame.top
39
+ if (!isEdgeToEdgeFeatureFlagOn) {
40
+ // When not in edge-to-edge mode, subtract the top system bar insets so the offset is
41
+ // relative to the content area (below the status bar / cutout).
42
+ ViewCompat.getRootWindowInsets(v)?.apply {
43
+ val insets =
44
+ getInsets(
45
+ WindowInsetsCompat.Type.statusBars() or WindowInsetsCompat.Type.displayCutout()
46
+ )
47
+
48
+ locationInWindow[0] -= insets.left
49
+ locationInWindow[1] -= insets.top
50
+ }
51
+ }
52
+
43
53
  return Point(locationInWindow[0], locationInWindow[1])
44
54
  }
45
55
  }
@@ -11,6 +11,7 @@ package com.facebook.react.uimanager
11
11
 
12
12
  import android.app.Activity
13
13
  import android.content.Context
14
+ import android.view.Window
14
15
  import com.facebook.react.bridge.Callback
15
16
  import com.facebook.react.bridge.CatalystInstance
16
17
  import com.facebook.react.bridge.JavaScriptContextHolder
@@ -22,6 +23,7 @@ import com.facebook.react.bridge.ReactContext
22
23
  import com.facebook.react.bridge.ScrollEndedListeners
23
24
  import com.facebook.react.bridge.UIManager
24
25
  import com.facebook.react.common.annotations.internal.LegacyArchitecture
26
+ import com.facebook.react.interfaces.ExtraWindowEventListener
25
27
  import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder
26
28
 
27
29
  /**
@@ -67,6 +69,22 @@ public class ThemedReactContext(
67
69
  reactApplicationContext.removeLifecycleEventListener(listener)
68
70
  }
69
71
 
72
+ override fun addExtraWindowEventListener(listener: ExtraWindowEventListener) {
73
+ reactApplicationContext.addExtraWindowEventListener(listener)
74
+ }
75
+
76
+ override fun removeExtraWindowEventListener(listener: ExtraWindowEventListener) {
77
+ reactApplicationContext.removeExtraWindowEventListener(listener)
78
+ }
79
+
80
+ override fun onExtraWindowCreate(window: Window) {
81
+ reactApplicationContext.onExtraWindowCreate(window)
82
+ }
83
+
84
+ override fun onExtraWindowDestroy(window: Window) {
85
+ reactApplicationContext.onExtraWindowDestroy(window)
86
+ }
87
+
70
88
  override fun hasCurrentActivity(): Boolean = reactApplicationContext.hasCurrentActivity()
71
89
 
72
90
  override fun getCurrentActivity(): Activity? = reactApplicationContext.getCurrentActivity()
@@ -16,8 +16,6 @@ import com.facebook.common.logging.FLog
16
16
  import com.facebook.react.bridge.UiThreadUtil
17
17
  import com.facebook.react.common.ReactConstants
18
18
  import com.facebook.react.touch.ReactHitSlopView
19
- import com.facebook.react.uimanager.common.UIManagerType
20
- import com.facebook.react.uimanager.common.ViewUtil
21
19
  import java.util.EnumSet
22
20
 
23
21
  /**
@@ -86,7 +84,7 @@ public object TouchTargetHelper {
86
84
  // Store eventCoords in array so that they are modified to be relative to the targetView found.
87
85
  viewCoords[0] = eventX
88
86
  viewCoords[1] = eventY
89
- val nativeTargetView = findTouchTargetViewWithPointerEvents(viewCoords, viewGroup, null)
87
+ val nativeTargetView = findTouchTargetViewWithPointerEvents(viewCoords, viewGroup)
90
88
  if (nativeTargetView != null) {
91
89
  val reactTargetView = findClosestReactAncestor(nativeTargetView)
92
90
  if (reactTargetView != null) {
@@ -193,10 +191,7 @@ public object TouchTargetHelper {
193
191
  if (view is ReactOverflowViewWithInset) {
194
192
  // If the touch point is outside of the overflow inset for the view, we can safely ignore
195
193
  // it.
196
- if (
197
- ViewUtil.getUIManagerType(view.id) == UIManagerType.FABRIC &&
198
- !isTouchPointInViewWithOverflowInset(eventCoords[0], eventCoords[1], view)
199
- ) {
194
+ if (!isTouchPointInViewWithOverflowInset(eventCoords[0], eventCoords[1], view)) {
200
195
  return null
201
196
  }
202
197
 
@@ -217,7 +212,11 @@ public object TouchTargetHelper {
217
212
  for (i in childrenCount - 1 downTo 0) {
218
213
  val child = viewGroup.getChildAt(i)
219
214
  val childPoint = tempPoint
220
- getChildPoint(eventCoords[0], eventCoords[1], viewGroup, child, childPoint)
215
+ if (!getChildPoint(eventCoords[0], eventCoords[1], viewGroup, child, childPoint)) {
216
+ // Child's transform is non-invertible (e.g. scaleX: 0 or scaleY: 0): the child is
217
+ // visually degenerate, so it must not receive touches.
218
+ continue
219
+ }
221
220
  // The childPoint value will contain the view coordinates relative to the child.
222
221
  // We need to store the existing X,Y for the viewGroup away as it is possible this child
223
222
  // will not actually be the target and so we restore them if not
@@ -282,7 +281,13 @@ public object TouchTargetHelper {
282
281
  /**
283
282
  * Returns the coordinates of a touch in the child View. It is transform-aware and will invert the
284
283
  * transform Matrix to find the true local points. This code is taken from {@link
285
- * ViewGroup#isTransformedTouchPointInView()}
284
+ * ViewGroup#isTransformedTouchPointInView()}.
285
+ *
286
+ * Returns `true` when [outLocalPoint] was populated with coordinates in the child's coordinate
287
+ * space. Returns `false` when the child's transform matrix is not invertible (for example
288
+ * `scaleX: 0` or `scaleY: 0`). On `false`, [outLocalPoint] is left in an indeterminate state and
289
+ * callers must skip the child — the shared [inverseMatrix] field is retained from the previous
290
+ * successful `invert`, so using it here would leak coordinates from another view.
286
291
  */
287
292
  private fun getChildPoint(
288
293
  x: Float,
@@ -290,21 +295,24 @@ public object TouchTargetHelper {
290
295
  parent: ViewGroup,
291
296
  child: View,
292
297
  outLocalPoint: PointF,
293
- ) {
298
+ ): Boolean {
294
299
  var localX = x + parent.scrollX - child.left
295
300
  var localY = y + parent.scrollY - child.top
296
301
  val matrix = child.matrix
297
302
  if (!matrix.isIdentity) {
303
+ val inverseMatrix = inverseMatrix
304
+ if (!matrix.invert(inverseMatrix)) {
305
+ return false
306
+ }
298
307
  val localXY = matrixTransformCoords
299
308
  localXY[0] = localX
300
309
  localXY[1] = localY
301
- val inverseMatrix = inverseMatrix
302
- matrix.invert(inverseMatrix)
303
310
  inverseMatrix.mapPoints(localXY)
304
311
  localX = localXY[0]
305
312
  localY = localXY[1]
306
313
  }
307
314
  outLocalPoint.set(localX, localY)
315
+ return true
308
316
  }
309
317
 
310
318
  /**
@@ -9,12 +9,16 @@ package com.facebook.react.uimanager
9
9
 
10
10
  import com.facebook.common.logging.FLog
11
11
  import com.facebook.react.bridge.NativeArray
12
+ import com.facebook.react.bridge.ReactNativeJNISoLoader
12
13
  import com.facebook.react.bridge.ReadableArray
13
14
  import com.facebook.react.bridge.ReadableMap
14
15
  import com.facebook.react.bridge.ReadableType
15
16
  import com.facebook.react.common.ReactConstants
16
17
 
17
18
  public object TransformHelper {
19
+ init {
20
+ ReactNativeJNISoLoader.staticInit()
21
+ }
18
22
 
19
23
  private val helperMatrix: ThreadLocal<DoubleArray> =
20
24
  object : ThreadLocal<DoubleArray>() {
@@ -40,16 +44,16 @@ public object TransformHelper {
40
44
  }
41
45
 
42
46
  @Deprecated(
43
- "Use processTransform(ReadableArray, DoubleArray, Float, Float, ReadableArray, Boolean) instead",
47
+ "Use processTransform(ReadableArray, DoubleArray, Float, Float, ReadableArray) instead",
44
48
  ReplaceWith("processTransform(...)"),
45
49
  )
46
50
  @JvmStatic
47
51
  public fun processTransform(transforms: ReadableArray, result: DoubleArray) {
48
- processTransform(transforms, result, 0f, 0f, null, false)
52
+ processTransform(transforms, result, 0f, 0f, null)
49
53
  }
50
54
 
51
55
  @Deprecated(
52
- "Use processTransform(ReadableArray, DoubleArray, Float, Float, ReadableArray, Boolean) instead",
56
+ "Use processTransform(ReadableArray, DoubleArray, Float, Float, ReadableArray) instead",
53
57
  ReplaceWith("processTransform(...)"),
54
58
  )
55
59
  @JvmStatic
@@ -59,8 +63,9 @@ public object TransformHelper {
59
63
  viewWidth: Float,
60
64
  viewHeight: Float,
61
65
  transformOrigin: ReadableArray?,
66
+ allowPercentageResolution: Boolean,
62
67
  ) {
63
- processTransform(transforms, result, viewWidth, viewHeight, transformOrigin, false)
68
+ processTransform(transforms, result, viewWidth, viewHeight, transformOrigin)
64
69
  }
65
70
 
66
71
  @JvmStatic
@@ -70,9 +75,8 @@ public object TransformHelper {
70
75
  viewWidth: Float,
71
76
  viewHeight: Float,
72
77
  transformOrigin: ReadableArray?,
73
- allowPercentageResolution: Boolean,
74
78
  ) {
75
- if (allowPercentageResolution && transforms is NativeArray && transformOrigin is NativeArray?) {
79
+ if (transforms is NativeArray && transformOrigin is NativeArray?) {
76
80
  nativeProcessTransform(transforms, result, viewWidth, viewHeight, transformOrigin)
77
81
  return
78
82
  }
@@ -84,7 +88,6 @@ public object TransformHelper {
84
88
  viewWidth,
85
89
  viewHeight,
86
90
  transformOrigin,
87
- allowPercentageResolution,
88
91
  )
89
92
 
90
93
  if (offsets != null) {
@@ -144,11 +147,11 @@ public object TransformHelper {
144
147
  "translate" -> {
145
148
  val value = transform.getArray(transformType)!!
146
149
  val x =
147
- if (value.getType(0) == ReadableType.String && allowPercentageResolution)
150
+ if (value.getType(0) == ReadableType.String)
148
151
  parseTranslateValue(value.getString(0)!!, viewWidth.toDouble())
149
152
  else value.getDouble(0)
150
153
  val y =
151
- if (value.getType(1) == ReadableType.String && allowPercentageResolution)
154
+ if (value.getType(1) == ReadableType.String)
152
155
  parseTranslateValue(value.getString(1)!!, viewHeight.toDouble())
153
156
  else value.getDouble(1)
154
157
  val z = if (value.size() > 2) value.getDouble(2) else 0.0
@@ -156,20 +159,14 @@ public object TransformHelper {
156
159
  }
157
160
  "translateX" -> {
158
161
  val translateValue =
159
- if (
160
- transform.getType(transformType) == ReadableType.String &&
161
- allowPercentageResolution
162
- )
162
+ if (transform.getType(transformType) == ReadableType.String)
163
163
  parseTranslateValue(transform.getString(transformType)!!, viewWidth.toDouble())
164
164
  else transform.getDouble(transformType)
165
165
  MatrixMathHelper.applyTranslate2D(helperMatrix, translateValue, 0.0)
166
166
  }
167
167
  "translateY" -> {
168
168
  val translateValue =
169
- if (
170
- transform.getType(transformType) == ReadableType.String &&
171
- allowPercentageResolution
172
- )
169
+ if (transform.getType(transformType) == ReadableType.String)
173
170
  parseTranslateValue(transform.getString(transformType)!!, viewHeight.toDouble())
174
171
  else transform.getDouble(transformType)
175
172
  MatrixMathHelper.applyTranslate2D(helperMatrix, 0.0, translateValue)
@@ -210,7 +207,6 @@ public object TransformHelper {
210
207
  viewWidth: Float,
211
208
  viewHeight: Float,
212
209
  transformOrigin: ReadableArray?,
213
- allowPercentageResolution: Boolean,
214
210
  ): DoubleArray? {
215
211
  if (transformOrigin == null || (viewHeight == 0f && viewWidth == 0f)) {
216
212
  return null
@@ -224,12 +220,10 @@ public object TransformHelper {
224
220
  when (transformOrigin.getType(i)) {
225
221
  ReadableType.Number -> origin[i] = transformOrigin.getDouble(i)
226
222
  ReadableType.String -> {
227
- if (allowPercentageResolution) {
228
- val part = transformOrigin.getString(i)!!
229
- if (part.endsWith("%")) {
230
- val valPercent = part.dropLast(1).toDouble()
231
- origin[i] = (if (i == 0) viewWidth else viewHeight) * valPercent / 100.0
232
- }
223
+ val part = transformOrigin.getString(i)!!
224
+ if (part.endsWith("%")) {
225
+ val valPercent = part.dropLast(1).toDouble()
226
+ origin[i] = (if (i == 0) viewWidth else viewHeight) * valPercent / 100.0
233
227
  }
234
228
  }
235
229
  else -> {}
@@ -11,8 +11,10 @@ import com.facebook.proguard.annotations.DoNotStripAny
11
11
  import com.facebook.react.bridge.NativeMap
12
12
  import com.facebook.react.bridge.RuntimeExecutor
13
13
  import com.facebook.soloader.SoLoader
14
+ import com.facebook.soloader.annotation.SoLoaderLibrary
14
15
  import kotlin.jvm.JvmStatic
15
16
 
17
+ @SoLoaderLibrary("uimanagerjni")
16
18
  @DoNotStripAny
17
19
  internal object UIConstantsProviderBinding {
18
20
  init {
@@ -58,6 +58,7 @@ public class UIImplementation {
58
58
  /**
59
59
  * @deprecated This method is a stub and always returns null.
60
60
  */
61
+ @Deprecated
61
62
  protected ReactShadowNode createRootShadowNode() {
62
63
  return null;
63
64
  }
@@ -65,6 +66,7 @@ public class UIImplementation {
65
66
  /**
66
67
  * @deprecated This method is a stub and always returns null.
67
68
  */
69
+ @Deprecated
68
70
  protected ReactShadowNode createShadowNode(String className) {
69
71
  return null;
70
72
  }
@@ -72,6 +74,7 @@ public class UIImplementation {
72
74
  /**
73
75
  * @deprecated This method is a stub and always returns null.
74
76
  */
77
+ @Deprecated
75
78
  public final ReactShadowNode resolveShadowNode(int reactTag) {
76
79
  return null;
77
80
  }
@@ -79,6 +82,7 @@ public class UIImplementation {
79
82
  /**
80
83
  * @deprecated This method is a stub and always returns null.
81
84
  */
85
+ @Deprecated
82
86
  protected final @Nullable ViewManager resolveViewManager(String className) {
83
87
  return null;
84
88
  }
@@ -14,16 +14,11 @@ import android.content.ContextWrapper
14
14
  import android.view.View
15
15
  import android.widget.EditText
16
16
  import androidx.core.view.ViewCompat
17
- import com.facebook.react.bridge.CatalystInstance
18
17
  import com.facebook.react.bridge.ReactContext
19
18
  import com.facebook.react.bridge.ReactNoCrashSoftException
20
19
  import com.facebook.react.bridge.ReactSoftExceptionLogger
21
20
  import com.facebook.react.bridge.UIManager
22
- import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel
23
- import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger
24
- import com.facebook.react.common.build.ReactBuildConfig
25
21
  import com.facebook.react.uimanager.common.UIManagerType
26
- import com.facebook.react.uimanager.common.ViewUtil.getUIManagerType
27
22
  import com.facebook.react.uimanager.events.EventDispatcher
28
23
  import com.facebook.react.uimanager.events.EventDispatcherProvider
29
24
 
@@ -38,78 +33,31 @@ public object UIManagerHelper {
38
33
  /** @return a [UIManager] that can handle the react tag received by parameter. */
39
34
  @JvmStatic
40
35
  public fun getUIManagerForReactTag(context: ReactContext, reactTag: Int): UIManager? =
41
- getUIManager(context, getUIManagerType(reactTag))
36
+ getUIManager(context, UIManagerType.FABRIC)
42
37
 
43
38
  /** @return a [UIManager] that can handle the react tag received by parameter. */
44
39
  @JvmStatic
45
- public fun getUIManager(context: ReactContext, @UIManagerType uiManagerType: Int): UIManager? =
46
- getUIManager(context, uiManagerType, true)
47
-
48
- @JvmStatic
49
- private fun getUIManager(
50
- context: ReactContext,
51
- @UIManagerType uiManagerType: Int,
52
- returnNullIfCatalystIsInactive: Boolean,
53
- ): UIManager? {
54
- if (ReactBuildConfig.UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE || context.isBridgeless()) {
55
- val uiManager = context.getFabricUIManager()
56
- if (uiManager == null) {
57
- ReactSoftExceptionLogger.logSoftException(
58
- TAG,
59
- ReactNoCrashSoftException(
60
- "Cannot get UIManager because the instance hasn't been initialized yet."
61
- ),
62
- )
63
- return null
64
- }
65
- return uiManager
66
- }
67
-
68
- // The following code is compiled-out when `context.isBridgeless() == true &&
69
- // ReactBuildConfig.UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE == true ` because:
70
- // - BridgelessReactContext.isBridgeless() is set to true statically
71
- // - BridgeReactContext is compiled-out when UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE == true
72
- //
73
- // To detect a potential regression we add the following assertion ERROR
74
- LegacyArchitectureLogger.assertLegacyArchitecture(
75
- "UIManagerHelper.getUIManager(context, uiManagerType)",
76
- LegacyArchitectureLogLevel.ERROR,
77
- )
78
- if (!context.hasCatalystInstance()) {
40
+ public fun getUIManager(context: ReactContext, @UIManagerType uiManagerType: Int): UIManager? {
41
+ if (!context.hasActiveReactInstance()) {
79
42
  ReactSoftExceptionLogger.logSoftException(
80
43
  TAG,
81
44
  ReactNoCrashSoftException(
82
- "Cannot get UIManager because the context doesn't contain a CatalystInstance."
45
+ "Cannot get UIManager because the context doesn't contain an active React instance."
83
46
  ),
84
47
  )
85
48
  return null
86
49
  }
87
- // TODO T60461551: add tests to verify emission of events when the ReactContext is being turn
88
- // down.
89
- if (!context.hasActiveReactInstance()) {
50
+
51
+ val uiManager = context.getFabricUIManager()
52
+ if (uiManager == null) {
90
53
  ReactSoftExceptionLogger.logSoftException(
91
54
  TAG,
92
55
  ReactNoCrashSoftException(
93
- "Cannot get UIManager because the context doesn't contain an active" +
94
- " CatalystInstance."
56
+ "Cannot get UIManager because the instance hasn't been initialized yet."
95
57
  ),
96
58
  )
97
- if (returnNullIfCatalystIsInactive) {
98
- return null
99
- }
100
- }
101
- val catalystInstance: CatalystInstance = context.getCatalystInstance()
102
- try {
103
- return if (uiManagerType == UIManagerType.Companion.FABRIC) context.getFabricUIManager()
104
- else catalystInstance.getNativeModule<UIManagerModule>(UIManagerModule::class.java)
105
- } catch (_: IllegalArgumentException) {
106
- // TODO T67518514 Clean this up once we migrate everything over to bridgeless mode
107
- ReactSoftExceptionLogger.logSoftException(
108
- TAG,
109
- ReactNoCrashSoftException("Cannot get UIManager for UIManagerType: $uiManagerType"),
110
- )
111
- return catalystInstance.getNativeModule<UIManagerModule>(UIManagerModule::class.java)
112
59
  }
60
+ return uiManager
113
61
  }
114
62
 
115
63
  /** @return the [EventDispatcher] that handles events for the given [ReactContext]. */
@@ -170,15 +118,7 @@ public object UIManagerHelper {
170
118
  public fun getSurfaceId(view: View): Int {
171
119
  if (view is ReactRoot) {
172
120
  val rootView = view as ReactRoot
173
- return if (rootView.getUIManagerType() == UIManagerType.FABRIC) rootView.getRootViewTag()
174
- else -1
175
- }
176
-
177
- val reactTag = view.id
178
-
179
- // In non-Fabric we don't have (or use) SurfaceId
180
- if (getUIManagerType(reactTag) == UIManagerType.LEGACY) {
181
- return -1
121
+ return rootView.getRootViewTag()
182
122
  }
183
123
 
184
124
  var context = view.context
@@ -192,7 +132,7 @@ public object UIManagerHelper {
192
132
  ReactSoftExceptionLogger.logSoftException(
193
133
  TAG,
194
134
  IllegalStateException(
195
- "Fabric View [$reactTag] does not have SurfaceId associated with it"
135
+ "Fabric View [${view.id}] does not have SurfaceId associated with it"
196
136
  ),
197
137
  )
198
138
  }
@@ -10,7 +10,6 @@ package com.facebook.react.uimanager;
10
10
  import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_UI_MANAGER_MODULE_CONSTANTS_END;
11
11
  import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_UI_MANAGER_MODULE_CONSTANTS_START;
12
12
  import static com.facebook.react.uimanager.common.UIManagerType.FABRIC;
13
- import static com.facebook.react.uimanager.common.UIManagerType.LEGACY;
14
13
 
15
14
  import android.content.ComponentCallbacks2;
16
15
  import android.content.res.Configuration;
@@ -44,7 +43,6 @@ import com.facebook.react.common.build.ReactBuildConfig;
44
43
  import com.facebook.react.module.annotations.ReactModule;
45
44
  import com.facebook.react.uimanager.common.ViewUtil;
46
45
  import com.facebook.react.uimanager.events.EventDispatcher;
47
- import com.facebook.react.uimanager.events.RCTEventEmitter;
48
46
  import com.facebook.react.uimanager.internal.LegacyArchitectureShadowNodeLogger;
49
47
  import com.facebook.systrace.Systrace;
50
48
  import com.facebook.systrace.SystraceMessage;
@@ -511,9 +509,7 @@ public class UIManagerModule extends ReactContextBaseJavaModule
511
509
  int reactTag, Dynamic commandId, @Nullable ReadableArray commandArgs) {
512
510
  // Fabric dispatchCommands should go through the JSI API - this will crash in Fabric.
513
511
  @Nullable
514
- UIManager uiManager =
515
- UIManagerHelper.getUIManager(
516
- getReactApplicationContext(), ViewUtil.getUIManagerType(reactTag));
512
+ UIManager uiManager = UIManagerHelper.getUIManager(getReactApplicationContext(), FABRIC);
517
513
  if (uiManager == null) {
518
514
  return;
519
515
  }
@@ -567,16 +563,13 @@ public class UIManagerModule extends ReactContextBaseJavaModule
567
563
  return null;
568
564
  }
569
565
 
566
+ @Override
570
567
  @ReactMethod
571
568
  public void sendAccessibilityEvent(int tag, int eventType) {
572
- int uiManagerType = ViewUtil.getUIManagerType(tag);
573
- if (uiManagerType == FABRIC) {
574
- // TODO: T65793557 Refactor sendAccessibilityEvent to use ViewCommands
575
- UIManager fabricUIManager =
576
- UIManagerHelper.getUIManager(getReactApplicationContext(), uiManagerType);
577
- if (fabricUIManager != null) {
578
- fabricUIManager.sendAccessibilityEvent(tag, eventType);
579
- }
569
+ // TODO: T65793557 Refactor sendAccessibilityEvent to use ViewCommands
570
+ UIManager fabricUIManager = UIManagerHelper.getUIManager(getReactApplicationContext(), FABRIC);
571
+ if (fabricUIManager != null) {
572
+ fabricUIManager.sendAccessibilityEvent(tag, eventType);
580
573
  }
581
574
  }
582
575
 
@@ -601,10 +594,12 @@ public class UIManagerModule extends ReactContextBaseJavaModule
601
594
  */
602
595
  public void prependUIBlock(UIBlock block) {}
603
596
 
597
+ @Override
604
598
  public void addUIManagerEventListener(UIManagerListener listener) {
605
599
  mUIManagerListeners.add(listener);
606
600
  }
607
601
 
602
+ @Override
608
603
  public void removeUIManagerEventListener(UIManagerListener listener) {
609
604
  mUIManagerListeners.remove(listener);
610
605
  }
@@ -631,6 +626,7 @@ public class UIManagerModule extends ReactContextBaseJavaModule
631
626
  * Updates the styles of the {@link ReactShadowNode} based on the Measure specs received by
632
627
  * parameters. offsetX and offsetY aren't used in non-Fabric, so they're ignored here.
633
628
  */
629
+ @Override
634
630
  public void updateRootLayoutSpecs(
635
631
  final int rootViewTag,
636
632
  final int widthMeasureSpec,
@@ -665,9 +661,6 @@ public class UIManagerModule extends ReactContextBaseJavaModule
665
661
  @Override
666
662
  public void receiveEvent(
667
663
  int surfaceId, int reactTag, String eventName, @Nullable WritableMap event) {
668
- assert ViewUtil.getUIManagerType(reactTag) == LEGACY;
669
- getReactApplicationContext()
670
- .getJSModule(RCTEventEmitter.class)
671
- .receiveEvent(reactTag, eventName, event);
664
+ assert false;
672
665
  }
673
666
  }
@@ -8,6 +8,7 @@
8
8
  package com.facebook.react.uimanager.common
9
9
 
10
10
  import android.view.View
11
+ import com.facebook.react.common.annotations.internal.LegacyArchitecture
11
12
 
12
13
  /**
13
14
  * Utility object providing helper methods for working with React Native views.
@@ -33,53 +34,51 @@ public object ViewUtil {
33
34
  * https://github.com/facebook/react/pull/12587
34
35
  *
35
36
  * @param viewTag tag of the view this is event is dispatched to
37
+ * @deprecated Fabric is now the only supported UIManager. This method always returns
38
+ * [UIManagerType.FABRIC].
36
39
  */
40
+ @Deprecated(
41
+ "Fabric is now the only supported UIManager. This method always returns UIManagerType.FABRIC.",
42
+ ReplaceWith("UIManagerType.FABRIC"),
43
+ )
44
+ @LegacyArchitecture
37
45
  @JvmStatic
38
46
  @UIManagerType
39
- public fun getUIManagerType(viewTag: Int): Int =
40
- if (viewTag % 2 == 0) {
41
- UIManagerType.FABRIC
42
- } else {
43
- UIManagerType.LEGACY
44
- }
47
+ public fun getUIManagerType(viewTag: Int): Int = UIManagerType.FABRIC
45
48
 
46
49
  /**
47
50
  * Overload for [getUIManagerType] that uses the view's id to determine if it originated from
48
51
  * Fabric
52
+ *
53
+ * @deprecated Fabric is now the only supported UIManager. This method always returns
54
+ * [UIManagerType.FABRIC].
49
55
  */
50
- @JvmStatic @UIManagerType public fun getUIManagerType(view: View): Int = getUIManagerType(view.id)
56
+ @Deprecated(
57
+ "Fabric is now the only supported UIManager. This method always returns UIManagerType.FABRIC.",
58
+ ReplaceWith("UIManagerType.FABRIC"),
59
+ )
60
+ @LegacyArchitecture
61
+ @JvmStatic
62
+ @UIManagerType
63
+ public fun getUIManagerType(view: View): Int = UIManagerType.FABRIC
51
64
 
52
65
  /**
53
66
  * Version of getUIManagerType that uses both surfaceId and viewTag heuristics
54
67
  *
55
68
  * @param viewTag tag of the view this is event is dispatched to
56
69
  * @param surfaceId ID of the corresponding surface
70
+ * @deprecated Fabric is now the only supported UIManager. This method always returns
71
+ * [UIManagerType.FABRIC].
57
72
  */
58
- @Suppress("DEPRECATION")
73
+ @Deprecated(
74
+ "Fabric is now the only supported UIManager. This method always returns UIManagerType.FABRIC.",
75
+ ReplaceWith("UIManagerType.FABRIC"),
76
+ )
77
+ @LegacyArchitecture
78
+ @Suppress("UNUSED_PARAMETER")
59
79
  @JvmStatic
60
80
  @UIManagerType
61
- public fun getUIManagerType(viewTag: Int, surfaceId: Int): Int {
62
- // We have a contract that Fabric events *always* have a SurfaceId passed in, and non-Fabric
63
- // events NEVER have a SurfaceId passed in (the default/placeholder of -1 is passed in instead).
64
- //
65
- // Why does this matter?
66
- // Events can be sent to Views that are part of the View hierarchy *but not directly managed
67
- // by React Native*. For example, embedded custom hierarchies, Litho hierarchies, etc.
68
- // In those cases it's important to know that the Event should be sent to the Fabric or
69
- // non-Fabric UIManager, and we cannot use the ViewTag for inference since it's not controlled
70
- // by RN and is essentially a random number.
71
- // At some point it would be great to pass the SurfaceContext here instead.
72
- @UIManagerType
73
- val uiManagerType = if (surfaceId == -1) UIManagerType.LEGACY else UIManagerType.FABRIC
74
- if (uiManagerType == UIManagerType.LEGACY && !isRootTag(viewTag)) {
75
- // TODO (T123064648): Some events for Fabric still didn't have the surfaceId set, so if it's
76
- // not a React RootView, double check if the tag belongs to Fabric.
77
- if (viewTag % 2 == 0) {
78
- return UIManagerType.FABRIC
79
- }
80
- }
81
- return uiManagerType
82
- }
81
+ public fun getUIManagerType(viewTag: Int, surfaceId: Int): Int = UIManagerType.FABRIC
83
82
 
84
83
  /**
85
84
  * @param viewTag react tag
@@ -134,9 +134,11 @@ internal class BackgroundImageDrawable(
134
134
  // So we draw in reverse (last drawn in canvas appears closest)
135
135
  for (index in layers.indices.reversed()) {
136
136
  val backgroundImageLayer = layers[index]
137
- val size = backgroundSize?.let { it.getOrNull(index % it.size) }
138
- val repeat = backgroundRepeat?.let { it.getOrNull(index % it.size) }
139
- val position = backgroundPosition?.let { it.getOrNull(index % it.size) }
137
+ val size = backgroundSize?.takeIf { it.isNotEmpty() }?.let { it.getOrNull(index % it.size) }
138
+ val repeat =
139
+ backgroundRepeat?.takeIf { it.isNotEmpty() }?.let { it.getOrNull(index % it.size) }
140
+ val position =
141
+ backgroundPosition?.takeIf { it.isNotEmpty() }?.let { it.getOrNull(index % it.size) }
140
142
 
141
143
  // 2. Calculate the size of a single tile.
142
144
  val (tileWidth, tileHeight) =