react-native-tvos 0.83.2-0 → 0.84.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 (576) hide show
  1. package/Libraries/Animated/AnimatedEvent.js +2 -2
  2. package/Libraries/Animated/animations/Animation.js +1 -3
  3. package/Libraries/Animated/createAnimatedComponent.js +8 -5
  4. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  5. package/Libraries/Animated/nodes/AnimatedInterpolation.js +40 -4
  6. package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
  7. package/Libraries/Animated/nodes/AnimatedObject.js +16 -11
  8. package/Libraries/Animated/nodes/AnimatedProps.js +43 -12
  9. package/Libraries/Animated/nodes/AnimatedStyle.js +12 -12
  10. package/Libraries/Animated/nodes/AnimatedValue.js +6 -3
  11. package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
  12. package/Libraries/AppDelegate/RCTReactNativeFactory.h +3 -0
  13. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +33 -31
  14. package/Libraries/AppDelegate/RCTRootViewFactory.h +10 -4
  15. package/Libraries/AppDelegate/RCTRootViewFactory.mm +21 -5
  16. package/Libraries/BatchedBridge/MessageQueue.js +24 -22
  17. package/Libraries/Blob/RCTBlobPlugins.mm +14 -14
  18. package/Libraries/Blob/URL.js +34 -3
  19. package/Libraries/Blob/URLSearchParams.js +1 -0
  20. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +9 -1
  21. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +6 -1
  22. package/Libraries/Components/Button.js +2 -5
  23. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -1
  24. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +4 -4
  25. package/Libraries/Components/Keyboard/Keyboard.js +2 -2
  26. package/Libraries/Components/Pressable/Pressable.js +8 -8
  27. package/Libraries/Components/TextInput/TextInput.flow.js +13 -13
  28. package/Libraries/Components/TextInput/TextInput.js +33 -34
  29. package/Libraries/Components/Touchable/PooledClass.js +2 -2
  30. package/Libraries/Components/Touchable/TouchableBounce.js +6 -6
  31. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  32. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +9 -9
  33. package/Libraries/Components/View/ViewPropTypes.js +16 -6
  34. package/Libraries/Core/Devtools/loadBundleFromServer.js +6 -3
  35. package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
  36. package/Libraries/Core/ExceptionsManager.js +3 -3
  37. package/Libraries/Core/RawEventEmitter.js +1 -1
  38. package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
  39. package/Libraries/Core/ReactNativeVersion.js +2 -2
  40. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  41. package/Libraries/Core/setUpErrorHandling.js +1 -1
  42. package/Libraries/EventEmitter/NativeEventEmitter.js +2 -2
  43. package/Libraries/Image/Image.android.js +2 -2
  44. package/Libraries/Image/Image.ios.js +2 -2
  45. package/Libraries/Image/ImageProps.js +1 -1
  46. package/Libraries/Image/ImageTypes.flow.js +2 -2
  47. package/Libraries/Image/RCTImagePlugins.h +1 -0
  48. package/Libraries/Image/RCTImagePlugins.mm +30 -17
  49. package/Libraries/Interaction/InteractionManager.js +3 -3
  50. package/Libraries/Interaction/PanResponder.js +1 -1
  51. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
  52. package/Libraries/Linking/Linking.js +1 -1
  53. package/Libraries/LinkingIOS/RCTLinkingPlugins.mm +10 -13
  54. package/Libraries/Lists/FlatList.js +2 -2
  55. package/Libraries/LogBox/Data/LogBoxData.js +31 -4
  56. package/Libraries/LogBox/Data/LogBoxLog.js +2 -2
  57. package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
  58. package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -5
  59. package/Libraries/LogBox/LogBox.js +7 -7
  60. package/Libraries/NativeAnimation/RCTAnimationPlugins.mm +14 -14
  61. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +7 -0
  62. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -0
  63. package/Libraries/NativeComponent/BaseViewConfig.android.js +12 -0
  64. package/Libraries/NativeComponent/StaticViewConfigValidator.js +4 -4
  65. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -1
  66. package/Libraries/Network/RCTInspectorNetworkReporter.mm +26 -3
  67. package/Libraries/Network/RCTNetworkPlugins.mm +22 -16
  68. package/Libraries/Network/RCTNetworking.android.js +3 -3
  69. package/Libraries/Network/RCTNetworking.ios.js +2 -2
  70. package/Libraries/Network/RCTNetworking.js.flow +2 -2
  71. package/Libraries/Pressability/Pressability.js +9 -9
  72. package/Libraries/PushNotificationIOS/RCTPushNotificationPlugins.mm +10 -13
  73. package/Libraries/ReactNative/AppRegistry.flow.js +1 -1
  74. package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
  75. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  76. package/Libraries/ReactNative/PaperUIManager.js +1 -1
  77. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
  78. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +2 -2
  79. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +1 -1
  80. package/Libraries/ReactNative/RendererImplementation.js +1 -1
  81. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  82. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
  83. package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -3
  84. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
  85. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
  86. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +11 -4
  87. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +11 -4
  88. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +11 -4
  89. package/Libraries/Renderer/shims/ReactFabric.js +3 -1
  90. package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
  91. package/Libraries/Renderer/shims/ReactNative.js +2 -2
  92. package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
  93. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
  94. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
  95. package/Libraries/Settings/RCTSettingsManager.mm +1 -1
  96. package/Libraries/Settings/RCTSettingsPlugins.mm +10 -13
  97. package/Libraries/Settings/Settings.ios.js +1 -1
  98. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
  99. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  100. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +4 -2
  101. package/Libraries/StyleSheet/StyleSheetExports.js +1 -1
  102. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +99 -4
  103. package/Libraries/StyleSheet/StyleSheetTypes.js +6 -8
  104. package/Libraries/StyleSheet/processFilter.js +1 -1
  105. package/Libraries/Text/Text.js +46 -6
  106. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +3 -2
  107. package/Libraries/Text/TextNativeComponent.js +1 -1
  108. package/Libraries/Text/TextProps.js +7 -7
  109. package/Libraries/TypeSafety/RCTTypedModuleConstants.h +36 -1
  110. package/Libraries/Types/CodegenTypes.js +1 -1
  111. package/Libraries/Types/CoreEventTypes.js +31 -0
  112. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  113. package/Libraries/Utilities/Appearance.js +2 -2
  114. package/Libraries/Utilities/DevLoadingView.js +8 -1
  115. package/Libraries/Utilities/DevSettings.js +3 -3
  116. package/Libraries/Utilities/HMRClient.js +4 -3
  117. package/Libraries/Utilities/RCTLog.js +3 -3
  118. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  119. package/Libraries/Utilities/SceneTracker.js +1 -1
  120. package/Libraries/Utilities/codegenNativeCommands.js +1 -1
  121. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +3 -3
  122. package/Libraries/Utilities/logError.js +1 -1
  123. package/Libraries/Utilities/stringifySafe.js +7 -7
  124. package/Libraries/Utilities/useRefEffect.js +1 -1
  125. package/Libraries/Vibration/RCTVibrationPlugins.mm +10 -13
  126. package/Libraries/WebSocket/WebSocketInterceptor.js +3 -3
  127. package/Libraries/promiseRejectionTrackingOptions.js +8 -8
  128. package/Libraries/vendor/core/ErrorUtils.js +10 -10
  129. package/Libraries/vendor/emitter/EventEmitter.js +6 -6
  130. package/README.md +56 -18
  131. package/React/Base/RCTAssert.m +2 -2
  132. package/React/Base/RCTBridge.h +0 -4
  133. package/React/Base/RCTBridge.mm +1 -12
  134. package/React/Base/RCTBundleManager.h +59 -7
  135. package/React/Base/RCTBundleManager.m +112 -1
  136. package/React/Base/RCTBundleURLProvider.h +24 -0
  137. package/React/Base/RCTBundleURLProvider.mm +49 -4
  138. package/React/Base/RCTConvert.mm +2 -0
  139. package/React/Base/RCTModuleData.mm +2 -2
  140. package/React/Base/RCTUtils.h +4 -0
  141. package/React/Base/RCTUtils.mm +60 -3
  142. package/React/Base/RCTVersion.m +2 -2
  143. package/React/CoreModules/CoreModulesPlugins.mm +97 -35
  144. package/React/CoreModules/PlatformStubs/RCTStatusBarManager.mm +1 -1
  145. package/React/CoreModules/RCTAccessibilityManager.mm +18 -1
  146. package/React/CoreModules/RCTAppState.mm +1 -1
  147. package/React/CoreModules/RCTDevLoadingView.mm +116 -36
  148. package/React/CoreModules/RCTDevSettings.h +36 -1
  149. package/React/CoreModules/RCTDevSettings.mm +44 -8
  150. package/React/CoreModules/RCTExceptionsManager.mm +5 -2
  151. package/React/CoreModules/RCTPlatform.mm +3 -2
  152. package/React/CoreModules/RCTStatusBarManager.mm +1 -1
  153. package/React/CxxBridge/RCTCxxBridge.mm +1 -2
  154. package/React/CxxModule/RCTCxxMethod.mm +1 -1
  155. package/React/CxxModule/RCTCxxUtils.mm +2 -12
  156. package/React/DevSupport/RCTDevLoadingViewProtocol.h +4 -1
  157. package/React/DevSupport/RCTPackagerConnection.h +4 -2
  158. package/React/DevSupport/RCTPackagerConnection.mm +30 -33
  159. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +9 -2
  160. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +62 -17
  161. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +529 -494
  162. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.h +1 -0
  163. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h +14 -0
  164. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +11 -0
  165. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +6 -0
  166. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +2 -0
  167. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +39 -2
  168. package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.mm +5 -7
  169. package/React/Fabric/Mounting/ComponentViews/VirtualViewExperimental/RCTVirtualViewExperimentalComponentView.mm +5 -7
  170. package/React/Fabric/RCTSurfaceTouchHandler.mm +1 -1
  171. package/React/Fabric/Surface/RCTFabricSurface.mm +1 -1
  172. package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +6 -2
  173. package/React/Modules/RCTEventEmitter.m +1 -0
  174. package/React/Views/RCTModalHostView.h +2 -0
  175. package/React/Views/RCTTVView.m +2 -0
  176. package/ReactAndroid/api/ReactAndroid.api +14 -73
  177. package/ReactAndroid/build.gradle.kts +2 -0
  178. package/ReactAndroid/gradle.properties +1 -1
  179. package/ReactAndroid/hermes-engine/build.gradle.kts +97 -29
  180. package/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.kt +1 -4
  181. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +3 -0
  182. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt +10 -13
  183. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +1 -119
  184. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.kt +0 -10
  185. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageHelper.kt +1 -1
  186. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.kt +4 -29
  187. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +43 -2
  188. package/ReactAndroid/src/main/java/com/facebook/react/ViewManagerOnDemandReactPackage.kt +53 -4
  189. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +0 -18
  190. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +6 -96
  191. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +17 -2
  192. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.kt +2 -2
  193. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.kt +1 -33
  194. package/ReactAndroid/src/main/java/com/facebook/react/bridge/Promise.kt +6 -6
  195. package/ReactAndroid/src/main/java/com/facebook/react/bridge/PromiseImpl.kt +6 -6
  196. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeArray.kt +1 -12
  197. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.kt +4 -5
  198. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ChangeBundleLocationDialog.kt +11 -10
  199. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +99 -9
  200. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.kt +58 -13
  201. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +10 -60
  202. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +7 -7
  203. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.kt +1 -4
  204. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt +17 -0
  205. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +144 -0
  206. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt +1 -1
  207. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingState.kt +17 -0
  208. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingStateListener.kt +15 -0
  209. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/{interfaces → inspector}/TracingStateProvider.kt +1 -1
  210. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevLoadingViewManager.kt +6 -1
  211. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.kt +2 -2
  212. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/RedBoxHandler.kt +2 -2
  213. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorInspectorTargetBinding.kt +1 -1
  214. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt +31 -6
  215. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +7 -6
  216. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorUpdateListener.kt +1 -1
  217. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +1 -1
  218. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +2 -1
  219. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +63 -45
  220. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +106 -76
  221. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +22 -16
  222. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +23 -17
  223. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +117 -84
  224. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +3 -1
  225. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android.kt +0 -2
  226. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +22 -16
  227. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.kt +5 -43
  228. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.kt +0 -3
  229. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +36 -1
  230. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/FpsDebugFrameCallback.kt +3 -27
  231. package/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.kt +7 -2
  232. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +23 -0
  233. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +1 -1
  234. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +2 -2
  235. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt +15 -8
  236. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +0 -9
  237. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +46 -12
  238. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +3 -3
  239. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +11 -17
  240. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +52 -0
  241. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +92 -3
  242. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +62 -8
  243. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSKeyDispatcher.kt +65 -0
  244. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +19 -2
  245. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.kt +1 -2
  246. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +5 -36
  247. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +9 -91
  248. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.kt +1 -1
  249. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAxOrderHelper.kt +47 -0
  250. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +0 -2
  251. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +4 -23
  252. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +1 -7
  253. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +1 -11
  254. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +1 -47
  255. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +0 -16
  256. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/OutlineDrawable.kt +1 -1
  257. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +3 -36
  258. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyDownEvent.kt +23 -0
  259. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyEvent.kt +156 -0
  260. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyUpEvent.kt +24 -0
  261. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +29 -4
  262. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +12 -9
  263. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +1 -1
  264. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +36 -3
  265. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +21 -11
  266. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +7 -0
  267. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewAccessibilityDelegate.kt +31 -15
  268. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +127 -32
  269. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +11 -1
  270. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +3 -11
  271. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental.kt +3 -12
  272. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp +29 -2
  273. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +98 -3
  274. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +62 -26
  275. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +145 -103
  276. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +31 -22
  277. package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/CMakeLists.txt +0 -4
  278. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +1 -3
  279. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +5 -23
  280. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +2 -7
  281. package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapperBase.h +0 -24
  282. package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
  283. package/ReactAndroid/src/main/jni/react/jni/JSLoader.h +2 -1
  284. package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +0 -1
  285. package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.cpp +1 -29
  286. package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.h +1 -2
  287. package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +0 -4
  288. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/CMakeLists.txt +0 -4
  289. package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +0 -4
  290. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +145 -17
  291. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +193 -19
  292. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +2 -1
  293. package/ReactAndroid/src/main/jni/react/tracing/PerformanceTracerCxxInterop.cpp +1 -1
  294. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +62 -63
  295. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +5 -7
  296. package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +1 -0
  297. package/ReactAndroid/src/main/res/devsupport/drawable/ic_perf_issue.xml +10 -0
  298. package/ReactAndroid/src/main/res/devsupport/layout/dev_loading_view.xml +41 -15
  299. package/ReactAndroid/src/main/res/devsupport/layout/fps_view.xml +1 -1
  300. package/ReactAndroid/src/main/res/devsupport/values/strings.xml +1 -0
  301. package/ReactAndroid/src/main/res/views/uimanager/values-ne/strings.xml +16 -0
  302. package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.h +2 -0
  303. package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.mm +38 -5
  304. package/ReactCommon/cmake-utils/react-native-flags.cmake +3 -0
  305. package/ReactCommon/cxxreact/JSBigString.h +14 -5
  306. package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +4 -5
  307. package/ReactCommon/cxxreact/ReactMarker.cpp +0 -1
  308. package/ReactCommon/cxxreact/ReactNativeVersion.h +4 -4
  309. package/ReactCommon/devtoolsruntimesettings/DevToolsRuntimeSettings.cpp +1 -1
  310. package/ReactCommon/hermes/React-hermes.podspec +1 -0
  311. package/ReactCommon/hermes/executor/CMakeLists.txt +0 -4
  312. package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +2 -0
  313. package/ReactCommon/hermes/inspector-modern/CMakeLists.txt +0 -4
  314. package/ReactCommon/jsi/jsi/jsi.cpp +6 -1
  315. package/ReactCommon/jsi/jsi/jsi.h +73 -0
  316. package/ReactCommon/jsi/jsi/test/testlib.cpp +2 -2
  317. package/ReactCommon/jsiexecutor/CMakeLists.txt +3 -1
  318. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +3 -0
  319. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +2 -43
  320. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.h +3 -8
  321. package/ReactCommon/jsinspector-modern/ConsoleTask.cpp +27 -0
  322. package/ReactCommon/jsinspector-modern/ConsoleTask.h +38 -0
  323. package/ReactCommon/jsinspector-modern/ConsoleTaskContext.cpp +46 -0
  324. package/ReactCommon/jsinspector-modern/ConsoleTaskContext.h +102 -0
  325. package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.cpp +55 -0
  326. package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.h +48 -0
  327. package/ReactCommon/jsinspector-modern/HostAgent.cpp +9 -10
  328. package/ReactCommon/jsinspector-modern/HostAgent.h +2 -2
  329. package/ReactCommon/jsinspector-modern/HostTarget.cpp +7 -6
  330. package/ReactCommon/jsinspector-modern/HostTarget.h +73 -16
  331. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +40 -8
  332. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h +42 -5
  333. package/ReactCommon/jsinspector-modern/HostTargetTracing.cpp +54 -21
  334. package/ReactCommon/jsinspector-modern/InstanceAgent.cpp +2 -11
  335. package/ReactCommon/jsinspector-modern/InstanceTarget.h +2 -2
  336. package/ReactCommon/jsinspector-modern/PerfMonitorV2.cpp +9 -1
  337. package/ReactCommon/jsinspector-modern/PerfMonitorV2.h +4 -1
  338. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +3 -2
  339. package/ReactCommon/jsinspector-modern/RuntimeAgent.h +1 -1
  340. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +12 -0
  341. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +16 -13
  342. package/ReactCommon/jsinspector-modern/RuntimeTargetConsole.cpp +106 -1
  343. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +30 -18
  344. package/ReactCommon/jsinspector-modern/TracingAgent.h +5 -4
  345. package/ReactCommon/jsinspector-modern/tests/ConsoleCreateTaskTest.cpp +131 -0
  346. package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +53 -0
  347. package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +20 -0
  348. package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +25 -55
  349. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +1 -0
  350. package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +116 -0
  351. package/ReactCommon/jsinspector-modern/tests/TracingTest.h +95 -0
  352. package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +60 -0
  353. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h +43 -0
  354. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +144 -0
  355. package/ReactCommon/jsinspector-modern/tracing/{TraceRecordingStateSerializer.h → HostTracingProfileSerializer.h} +16 -8
  356. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +67 -16
  357. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +21 -2
  358. package/ReactCommon/jsinspector-modern/tracing/TargetTracingAgent.h +5 -0
  359. package/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h +158 -0
  360. package/ReactCommon/jsinspector-modern/tracing/TraceEvent.h +2 -1
  361. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +104 -0
  362. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +59 -0
  363. package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.cpp +2 -1
  364. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h +18 -7
  365. package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +139 -0
  366. package/ReactCommon/jsinspector-modern/tracing/tests/TimeWindowedBufferTest.cpp +352 -0
  367. package/ReactCommon/jsitooling/React-jsitooling.podspec +4 -0
  368. package/ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.cpp +54 -0
  369. package/{ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h → ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.h} +4 -6
  370. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +43 -31
  371. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +55 -40
  372. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +234 -180
  373. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +24 -18
  374. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +43 -31
  375. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +91 -64
  376. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +5 -1
  377. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h +0 -4
  378. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +12 -9
  379. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +7 -2
  380. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +30 -10
  381. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +17 -6
  382. package/ReactCommon/react/nativemodule/core/iostests/RCTTurboModuleTests.mm +0 -1
  383. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +1 -4
  384. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +0 -4
  385. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +43 -60
  386. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +11 -36
  387. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +53 -38
  388. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +22 -16
  389. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -0
  390. package/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +24 -3
  391. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.h +76 -13
  392. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.mm +74 -64
  393. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.mm +17 -13
  394. package/ReactCommon/react/networking/NetworkReporter.cpp +26 -22
  395. package/ReactCommon/react/networking/React-networking.podspec +0 -1
  396. package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.cpp +4 -2
  397. package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
  398. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +10 -2
  399. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
  400. package/ReactCommon/react/renderer/animated/AnimatedModule.cpp +104 -78
  401. package/ReactCommon/react/renderer/animated/AnimatedModule.h +10 -2
  402. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +174 -75
  403. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +19 -1
  404. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +68 -46
  405. package/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.cpp +1 -0
  406. package/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.cpp +1 -1
  407. package/ReactCommon/react/renderer/animated/nodes/ColorAnimatedNode.cpp +0 -1
  408. package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.cpp +103 -4
  409. package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.h +9 -0
  410. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +5 -1
  411. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +9 -0
  412. package/ReactCommon/react/renderer/animated/nodes/RoundAnimatedNode.cpp +1 -1
  413. package/ReactCommon/react/renderer/animated/nodes/ValueAnimatedNode.cpp +1 -1
  414. package/ReactCommon/react/renderer/animated/tests/AnimatedNodeTests.cpp +67 -0
  415. package/ReactCommon/react/renderer/animated/tests/AnimationDriverTests.cpp +59 -0
  416. package/ReactCommon/react/renderer/animated/tests/AnimationTestsBase.h +2 -1
  417. package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +715 -0
  418. package/ReactCommon/react/renderer/animationbackend/AnimatedProps.h +388 -1
  419. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsBuilder.h +191 -2
  420. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +100 -0
  421. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +298 -0
  422. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsSerializer.h +17 -0
  423. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +90 -94
  424. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +23 -5
  425. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.cpp +75 -0
  426. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +32 -0
  427. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +2 -2
  428. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.h +3 -0
  429. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +2 -2
  430. package/ReactCommon/react/renderer/components/image/ImageProps.h +2 -2
  431. package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +9 -2
  432. package/ReactCommon/react/renderer/components/image/conversions.h +5 -0
  433. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +2 -1
  434. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +5 -1
  435. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +21 -1
  436. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +14 -0
  437. package/ReactCommon/react/renderer/core/DynamicEventPayload.cpp +10 -0
  438. package/ReactCommon/react/renderer/core/DynamicEventPayload.h +6 -1
  439. package/ReactCommon/react/renderer/core/DynamicPointerEvent.cpp +30 -0
  440. package/ReactCommon/react/renderer/core/DynamicPointerEvent.h +29 -0
  441. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +1 -1
  442. package/ReactCommon/react/renderer/core/EventEmitter.cpp +11 -14
  443. package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +3 -3
  444. package/ReactCommon/react/renderer/core/Props.cpp +23 -8
  445. package/ReactCommon/react/renderer/core/Props.h +6 -4
  446. package/ReactCommon/react/renderer/core/ShadowNode.cpp +4 -10
  447. package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +32 -0
  448. package/ReactCommon/react/renderer/css/CSSSyntaxParser.h +7 -0
  449. package/ReactCommon/react/renderer/debug/CMakeLists.txt +7 -0
  450. package/ReactCommon/react/renderer/debug/flags.h +3 -2
  451. package/ReactCommon/react/renderer/graphics/BlendMode.h +2 -0
  452. package/ReactCommon/react/renderer/graphics/Filter.h +2 -0
  453. package/ReactCommon/react/renderer/imagemanager/ImageManager.h +3 -0
  454. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +23 -12
  455. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +8 -3
  456. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +16 -4
  457. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +9 -4
  458. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +8 -4
  459. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +1 -1
  460. package/ReactCommon/react/renderer/imagemanager/primitives.h +15 -6
  461. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +0 -11
  462. package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +0 -4
  463. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +0 -20
  464. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +3 -3
  465. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +2 -3
  466. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +6 -0
  467. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +1 -0
  468. package/ReactCommon/react/runtime/CMakeLists.txt +0 -4
  469. package/ReactCommon/react/runtime/PlatformTimerRegistry.h +2 -0
  470. package/ReactCommon/react/runtime/ReactInstance.cpp +21 -14
  471. package/ReactCommon/react/runtime/ReactInstance.h +5 -1
  472. package/ReactCommon/react/runtime/TimerManager.cpp +11 -53
  473. package/ReactCommon/react/runtime/TimerManager.h +7 -12
  474. package/ReactCommon/react/runtime/hermes/CMakeLists.txt +0 -4
  475. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +3 -2
  476. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +10 -6
  477. package/ReactCommon/yoga/yoga/algorithm/FlexDirection.h +6 -6
  478. package/ReactCommon/yoga/yoga/algorithm/SizingMode.h +4 -4
  479. package/ReactCommon/yoga/yoga/style/Style.h +8 -8
  480. package/ReactCommon/yoga/yoga/style/StyleLength.h +7 -0
  481. package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +7 -0
  482. package/flow/HermesInternalType.js +6 -6
  483. package/flow/bom.js.flow +35 -28
  484. package/flow/cssom.js.flow +3 -3
  485. package/flow/dom.js.flow +34 -33
  486. package/index.js +3 -0
  487. package/index.js.flow +8 -0
  488. package/jest/mock.js +2 -2
  489. package/jest/mockComponent.js +1 -1
  490. package/jest/setup.js +1 -1
  491. package/package.json +11 -11
  492. package/react-native.config.js +0 -17
  493. package/scripts/cocoapods/new_architecture.rb +7 -1
  494. package/scripts/cocoapods/spm.rb +28 -10
  495. package/scripts/cocoapods/utils.rb +4 -4
  496. package/scripts/codegen/generate-artifacts-executor/generateRCTThirdPartyComponents.js +5 -5
  497. package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +7 -6
  498. package/scripts/ios-configure-glog.sh +24 -1
  499. package/scripts/react_native_pods.rb +13 -0
  500. package/sdks/.hermesv1version +1 -1
  501. package/sdks/.hermesversion +1 -1
  502. package/sdks/hermes-engine/hermes-engine.podspec +53 -36
  503. package/sdks/hermes-engine/hermes-utils.rb +8 -15
  504. package/sdks/hermes-engine/version.properties +1 -1
  505. package/src/private/animated/NativeAnimatedHelper.js +130 -125
  506. package/src/private/animated/NativeAnimatedValidation.js +7 -4
  507. package/src/private/animated/createAnimatedPropsHook.js +13 -5
  508. package/src/private/animated/createAnimatedPropsMemoHook.js +10 -10
  509. package/src/private/components/virtualview/VirtualView.js +16 -9
  510. package/src/private/components/virtualview/logger/VirtualViewLogger.js +21 -0
  511. package/src/private/components/virtualview/logger/VirtualViewLoggerTypes.js +24 -0
  512. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  513. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +6 -25
  514. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -27
  515. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +3 -2
  516. package/src/private/featureflags/ReactNativeFeatureFlags.js +63 -42
  517. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
  518. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +12 -9
  519. package/src/private/renderer/errorhandling/ErrorHandlers.js +7 -4
  520. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
  521. package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +4 -0
  522. package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -0
  523. package/src/private/webapis/dom/events/CustomEvent.js +3 -3
  524. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  525. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  526. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +29 -29
  527. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +1 -1
  528. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +2 -0
  529. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  530. package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +4 -1
  531. package/src/private/webapis/geometry/DOMRectReadOnly.js +1 -1
  532. package/src/private/webapis/html/events/MessageEvent.js +3 -3
  533. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +3 -3
  534. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +53 -5
  535. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +2 -2
  536. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +4 -4
  537. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +1 -1
  538. package/src/private/webapis/mutationobserver/MutationObserver.js +1 -1
  539. package/src/private/webapis/mutationobserver/MutationRecord.js +1 -1
  540. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +4 -4
  541. package/src/private/webapis/performance/Performance.js +1 -1
  542. package/src/private/webapis/performance/UserTiming.js +1 -1
  543. package/src/private/webapis/performance/specs/NativePerformance.js +3 -3
  544. package/src/private/webapis/structuredClone/structuredClone.js +3 -3
  545. package/src/types/globals.d.ts +30 -1
  546. package/third-party-podspecs/RCT-Folly.podspec +1 -0
  547. package/third-party-podspecs/glog.podspec +1 -0
  548. package/React/CxxModule/RCTCxxModule.h +0 -29
  549. package/React/CxxModule/RCTCxxModule.mm +0 -87
  550. package/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.kt +0 -146
  551. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CallbackImpl.kt +0 -45
  552. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapper.kt +0 -25
  553. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt +0 -61
  554. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener.kt +0 -36
  555. package/ReactAndroid/src/main/java/com/facebook/react/bridge/OnBatchCompleteListener.kt +0 -21
  556. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.kt +0 -54
  557. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.kt +0 -78
  558. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.kt +0 -105
  559. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/TracingState.kt +0 -19
  560. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DidJSUpdateUiDuringFrameDetector.kt +0 -157
  561. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeKind.kt +0 -32
  562. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/debug/NotThreadSafeViewHierarchyUpdateDebugListener.kt +0 -30
  563. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.kt +0 -87
  564. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationListener.kt +0 -23
  565. package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapper.h +0 -37
  566. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +0 -20
  567. package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.cpp +0 -175
  568. package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.h +0 -75
  569. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingStateSerializer.cpp +0 -68
  570. package/ReactCommon/jsinspector-modern/tracing/TracingState.h +0 -24
  571. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.cpp +0 -212
  572. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.h +0 -40
  573. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +0 -628
  574. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +0 -66
  575. package/tvosCommands.js +0 -51
  576. /package/ReactCommon/jsi/jsi/{hermes.h → hermes-interfaces.h} +0 -0
@@ -73,11 +73,13 @@ thread_local bool NativeAnimatedNodesManager::isOnRenderThread_{false};
73
73
  NativeAnimatedNodesManager::NativeAnimatedNodesManager(
74
74
  DirectManipulationCallback&& directManipulationCallback,
75
75
  FabricCommitCallback&& fabricCommitCallback,
76
+ ResolvePlatformColor&& resolvePlatformColor,
76
77
  StartOnRenderCallback&& startOnRenderCallback,
77
78
  StopOnRenderCallback&& stopOnRenderCallback,
78
79
  FrameRateListenerCallback&& frameRateListenerCallback) noexcept
79
80
  : directManipulationCallback_(std::move(directManipulationCallback)),
80
81
  fabricCommitCallback_(std::move(fabricCommitCallback)),
82
+ resolvePlatformColor_(std::move(resolvePlatformColor)),
81
83
  startOnRenderCallback_(std::move(startOnRenderCallback)),
82
84
  stopOnRenderCallback_(std::move(stopOnRenderCallback)),
83
85
  frameRateListenerCallback_(std::move(frameRateListenerCallback)) {
@@ -236,6 +238,20 @@ void NativeAnimatedNodesManager::connectAnimatedNodeToView(
236
238
  }
237
239
  }
238
240
 
241
+ void NativeAnimatedNodesManager::connectAnimatedNodeToShadowNodeFamily(
242
+ Tag propsNodeTag,
243
+ std::shared_ptr<const ShadowNodeFamily> family) noexcept {
244
+ react_native_assert(propsNodeTag);
245
+ auto node = getAnimatedNode<PropsAnimatedNode>(propsNodeTag);
246
+ if (node != nullptr && family != nullptr) {
247
+ std::lock_guard<std::mutex> lock(tagToShadowNodeFamilyMutex_);
248
+ tagToShadowNodeFamily_[family->getTag()] = family;
249
+ } else {
250
+ LOG(WARNING)
251
+ << "Cannot ConnectAnimatedNodeToShadowNodeFamily, animated node has to be props type";
252
+ }
253
+ }
254
+
239
255
  void NativeAnimatedNodesManager::disconnectAnimatedNodeFromView(
240
256
  Tag propsNodeTag,
241
257
  Tag viewTag) noexcept {
@@ -249,6 +265,10 @@ void NativeAnimatedNodesManager::disconnectAnimatedNodeFromView(
249
265
  std::lock_guard<std::mutex> lock(connectedAnimatedNodesMutex_);
250
266
  connectedAnimatedNodes_.erase(viewTag);
251
267
  }
268
+ {
269
+ std::lock_guard<std::mutex> lock(tagToShadowNodeFamilyMutex_);
270
+ tagToShadowNodeFamily_.erase(viewTag);
271
+ }
252
272
  updatedNodeTags_.insert(node->tag());
253
273
 
254
274
  onManagedPropsRemoved(viewTag);
@@ -519,6 +539,17 @@ NativeAnimatedNodesManager::ensureEventEmitterListener() noexcept {
519
539
  }
520
540
 
521
541
  void NativeAnimatedNodesManager::startRenderCallbackIfNeeded(bool isAsync) {
542
+ // This method can be called from either the UI thread or JavaScript thread.
543
+ // It ensures `startOnRenderCallback_` is called exactly once using atomic
544
+ // operations. We use std::atomic_bool rather than std::mutex to avoid
545
+ // potential deadlocks that could occur if we called external code while
546
+ // holding a mutex.
547
+ auto isRenderCallbackStarted = isRenderCallbackStarted_.exchange(true);
548
+ if (isRenderCallbackStarted) {
549
+ // onRender callback is already started.
550
+ return;
551
+ }
552
+
522
553
  if (ReactNativeFeatureFlags::useSharedAnimatedBackend()) {
523
554
  #ifdef RN_USE_ANIMATION_BACKEND
524
555
  if (auto animationBackend = animationBackend_.lock()) {
@@ -531,16 +562,6 @@ void NativeAnimatedNodesManager::startRenderCallbackIfNeeded(bool isAsync) {
531
562
 
532
563
  return;
533
564
  }
534
- // This method can be called from either the UI thread or JavaScript thread.
535
- // It ensures `startOnRenderCallback_` is called exactly once using atomic
536
- // operations. We use std::atomic_bool rather than std::mutex to avoid
537
- // potential deadlocks that could occur if we called external code while
538
- // holding a mutex.
539
- auto isRenderCallbackStarted = isRenderCallbackStarted_.exchange(true);
540
- if (isRenderCallbackStarted) {
541
- // onRender callback is already started.
542
- return;
543
- }
544
565
 
545
566
  if (startOnRenderCallback_) {
546
567
  startOnRenderCallback_([this]() { onRender(); }, isAsync);
@@ -549,25 +570,28 @@ void NativeAnimatedNodesManager::startRenderCallbackIfNeeded(bool isAsync) {
549
570
 
550
571
  void NativeAnimatedNodesManager::stopRenderCallbackIfNeeded(
551
572
  bool isAsync) noexcept {
552
- if (ReactNativeFeatureFlags::useSharedAnimatedBackend()) {
553
- if (auto animationBackend = animationBackend_.lock()) {
554
- animationBackend->stop(isAsync);
555
- }
556
- return;
557
- }
558
573
  // When multiple threads reach this point, only one thread should call
559
574
  // stopOnRenderCallback_. This synchronization is primarily needed during
560
575
  // destruction of NativeAnimatedNodesManager. In normal operation,
561
576
  // stopRenderCallbackIfNeeded is always called from the UI thread.
562
577
  auto isRenderCallbackStarted = isRenderCallbackStarted_.exchange(false);
563
578
 
579
+ if (ReactNativeFeatureFlags::useSharedAnimatedBackend()) {
580
+ if (isRenderCallbackStarted) {
581
+ if (auto animationBackend = animationBackend_.lock()) {
582
+ animationBackend->stop(isAsync);
583
+ }
584
+ }
585
+ return;
586
+ }
587
+
564
588
  if (isRenderCallbackStarted) {
565
589
  if (stopOnRenderCallback_) {
566
590
  stopOnRenderCallback_(isAsync);
567
- }
568
591
 
569
- if (frameRateListenerCallback_) {
570
- frameRateListenerCallback_(false);
592
+ if (frameRateListenerCallback_) {
593
+ frameRateListenerCallback_(false);
594
+ }
571
595
  }
572
596
  }
573
597
  }
@@ -629,20 +653,22 @@ void NativeAnimatedNodesManager::updateNodes(
629
653
  // in Animated, value nodes like RGBA are parents and Color node is child
630
654
  // (the opposite of tree structure)
631
655
  for (const auto childTag : nextNode.node->getChildren()) {
632
- auto child = getAnimatedNode<AnimatedNode>(childTag);
633
- child->activeIncomingNodes++;
634
- if (child->bfsColor != animatedGraphBFSColor_) {
635
- child->bfsColor = animatedGraphBFSColor_;
656
+ if (auto child = getAnimatedNode<AnimatedNode>(childTag)) {
657
+ child->activeIncomingNodes++;
658
+ if (child->bfsColor != animatedGraphBFSColor_) {
659
+ child->bfsColor = animatedGraphBFSColor_;
636
660
  #ifdef REACT_NATIVE_DEBUG
637
- activeNodesCount++;
661
+ activeNodesCount++;
638
662
  #endif
639
- const auto connectedToFinishedAnimation =
640
- is_node_connected_to_finished_animation(
641
- child, childTag, nextNode.connectedToFinishedAnimation);
642
- nodesQueue.emplace_back(
643
- NodesQueueItem{
644
- .node = child,
645
- .connectedToFinishedAnimation = connectedToFinishedAnimation});
663
+ const auto connectedToFinishedAnimation =
664
+ is_node_connected_to_finished_animation(
665
+ child, childTag, nextNode.connectedToFinishedAnimation);
666
+ nodesQueue.emplace_back(
667
+ NodesQueueItem{
668
+ .node = child,
669
+ .connectedToFinishedAnimation =
670
+ connectedToFinishedAnimation});
671
+ }
646
672
  }
647
673
  }
648
674
  }
@@ -697,26 +723,29 @@ void NativeAnimatedNodesManager::updateNodes(
697
723
  }
698
724
 
699
725
  for (auto childTag : nextNode.node->getChildren()) {
700
- auto child = getAnimatedNode<AnimatedNode>(childTag);
701
- child->activeIncomingNodes--;
702
- if (child->activeIncomingNodes == 0 && child->activeIncomingNodes == 0) {
703
- child->bfsColor = animatedGraphBFSColor_;
726
+ if (auto child = getAnimatedNode<AnimatedNode>(childTag)) {
727
+ child->activeIncomingNodes--;
728
+ if (child->activeIncomingNodes == 0 &&
729
+ child->bfsColor != animatedGraphBFSColor_) {
730
+ child->bfsColor = animatedGraphBFSColor_;
704
731
  #ifdef REACT_NATIVE_DEBUG
705
- updatedNodesCount++;
732
+ updatedNodesCount++;
706
733
  #endif
707
- const auto connectedToFinishedAnimation =
708
- is_node_connected_to_finished_animation(
709
- child, childTag, nextNode.connectedToFinishedAnimation);
710
- nodesQueue.emplace_back(
711
- NodesQueueItem{
712
- .node = child,
713
- .connectedToFinishedAnimation = connectedToFinishedAnimation});
714
- }
734
+ const auto connectedToFinishedAnimation =
735
+ is_node_connected_to_finished_animation(
736
+ child, childTag, nextNode.connectedToFinishedAnimation);
737
+ nodesQueue.emplace_back(
738
+ NodesQueueItem{
739
+ .node = child,
740
+ .connectedToFinishedAnimation =
741
+ connectedToFinishedAnimation});
742
+ }
715
743
  #ifdef REACT_NATIVE_DEBUG
716
- else if (child->bfsColor == animatedGraphBFSColor_) {
717
- cyclesDetected++;
718
- }
744
+ else if (child->bfsColor == animatedGraphBFSColor_) {
745
+ cyclesDetected++;
746
+ }
719
747
  #endif
748
+ }
720
749
  }
721
750
  }
722
751
 
@@ -758,12 +787,7 @@ bool NativeAnimatedNodesManager::onAnimationFrame(double timestamp) {
758
787
 
759
788
  if (driver->getIsComplete()) {
760
789
  hasFinishedAnimations = true;
761
- const auto shouldRemoveJsSync =
762
- ReactNativeFeatureFlags::cxxNativeAnimatedRemoveJsSync() &&
763
- !ReactNativeFeatureFlags::disableFabricCommitInCXXAnimated();
764
- if (shouldRemoveJsSync) {
765
- finishedAnimationValueNodes.insert(driver->getAnimatedValueTag());
766
- }
790
+ finishedAnimationValueNodes.insert(driver->getAnimatedValueTag());
767
791
  }
768
792
  }
769
793
 
@@ -790,7 +814,7 @@ bool NativeAnimatedNodesManager::onAnimationFrame(double timestamp) {
790
814
  return commitProps();
791
815
  }
792
816
 
793
- folly::dynamic NativeAnimatedNodesManager::managedProps(
817
+ folly::dynamic NativeAnimatedNodesManager::getManagedProps(
794
818
  Tag tag) const noexcept {
795
819
  std::lock_guard<std::mutex> lock(connectedAnimatedNodesMutex_);
796
820
  if (const auto iter = connectedAnimatedNodes_.find(tag);
@@ -843,6 +867,15 @@ bool NativeAnimatedNodesManager::isOnRenderThread() const noexcept {
843
867
  return isOnRenderThread_;
844
868
  }
845
869
 
870
+ void NativeAnimatedNodesManager::resolvePlatformColor(
871
+ SurfaceId surfaceId,
872
+ const RawValue& value,
873
+ SharedColor& result) const {
874
+ if (resolvePlatformColor_) {
875
+ resolvePlatformColor_(surfaceId, value, result);
876
+ }
877
+ }
878
+
846
879
  #pragma mark - Listeners
847
880
 
848
881
  void NativeAnimatedNodesManager::startListeningToAnimatedNodeValue(
@@ -950,12 +983,7 @@ AnimationMutations NativeAnimatedNodesManager::pullAnimationMutations() {
950
983
 
951
984
  if (driver->getIsComplete()) {
952
985
  hasFinishedAnimations = true;
953
- const auto shouldRemoveJsSync =
954
- ReactNativeFeatureFlags::cxxNativeAnimatedRemoveJsSync() &&
955
- !ReactNativeFeatureFlags::disableFabricCommitInCXXAnimated();
956
- if (shouldRemoveJsSync) {
957
- finishedAnimationValueNodes.insert(driver->getAnimatedValueTag());
958
- }
986
+ finishedAnimationValueNodes.insert(driver->getAnimatedValueTag());
959
987
  }
960
988
  }
961
989
 
@@ -979,14 +1007,49 @@ AnimationMutations NativeAnimatedNodesManager::pullAnimationMutations() {
979
1007
  }
980
1008
  }
981
1009
 
982
- for (auto& [tag, props] : updateViewPropsDirect_) {
983
- // TODO: also handle layout props (updateViewProps_). It is skipped for
984
- // now, because the backend requires shadowNodeFamilies to be able to
985
- // commit to the ShadowTree
986
- propsBuilder.storeDynamic(props);
987
- mutations.push_back(
988
- AnimationMutation{tag, nullptr, propsBuilder.get()});
989
- containsChange = true;
1010
+ {
1011
+ std::lock_guard<std::mutex> lock(tagToShadowNodeFamilyMutex_);
1012
+ for (auto& [tag, props] : updateViewPropsDirect_) {
1013
+ auto familyIt = tagToShadowNodeFamily_.find(tag);
1014
+ if (familyIt == tagToShadowNodeFamily_.end()) {
1015
+ continue;
1016
+ }
1017
+
1018
+ auto weakFamily = familyIt->second;
1019
+ if (auto family = weakFamily.lock()) {
1020
+ propsBuilder.storeDynamic(props);
1021
+ mutations.batch.push_back(
1022
+ AnimationMutation{
1023
+ .tag = tag,
1024
+ .family = family,
1025
+ .props = propsBuilder.get(),
1026
+ });
1027
+ }
1028
+ containsChange = true;
1029
+ }
1030
+ for (auto& [tag, props] : updateViewProps_) {
1031
+ auto familyIt = tagToShadowNodeFamily_.find(tag);
1032
+ if (familyIt == tagToShadowNodeFamily_.end()) {
1033
+ continue;
1034
+ }
1035
+
1036
+ auto weakFamily = familyIt->second;
1037
+ if (auto family = weakFamily.lock()) {
1038
+ propsBuilder.storeDynamic(props);
1039
+ mutations.batch.push_back(
1040
+ AnimationMutation{
1041
+ .tag = tag,
1042
+ .family = family,
1043
+ .props = propsBuilder.get(),
1044
+ .hasLayoutUpdates = true,
1045
+ });
1046
+ }
1047
+ containsChange = true;
1048
+ }
1049
+ }
1050
+ if (containsChange) {
1051
+ updateViewPropsDirect_.clear();
1052
+ updateViewProps_.clear();
990
1053
  }
991
1054
  }
992
1055
 
@@ -1007,17 +1070,52 @@ AnimationMutations NativeAnimatedNodesManager::pullAnimationMutations() {
1007
1070
  }
1008
1071
  }
1009
1072
 
1010
- // Step 2: update all nodes that are connected to the finished animations.
1073
+ // Step 2: update all nodes that are connected to the finished
1074
+ // animations.
1011
1075
  updateNodes(finishedAnimationValueNodes);
1012
1076
 
1013
1077
  isEventAnimationInProgress_ = false;
1014
1078
 
1015
- for (auto& [tag, props] : updateViewPropsDirect_) {
1016
- // TODO: handle layout props
1017
- propsBuilder.storeDynamic(props);
1018
- mutations.push_back(
1019
- AnimationMutation{tag, nullptr, propsBuilder.get()});
1079
+ {
1080
+ std::lock_guard<std::mutex> lock(tagToShadowNodeFamilyMutex_);
1081
+ for (auto& [tag, props] : updateViewPropsDirect_) {
1082
+ auto familyIt = tagToShadowNodeFamily_.find(tag);
1083
+ if (familyIt == tagToShadowNodeFamily_.end()) {
1084
+ continue;
1085
+ }
1086
+
1087
+ auto weakFamily = familyIt->second;
1088
+ if (auto family = weakFamily.lock()) {
1089
+ propsBuilder.storeDynamic(props);
1090
+ mutations.batch.push_back(
1091
+ AnimationMutation{
1092
+ .tag = tag,
1093
+ .family = family,
1094
+ .props = propsBuilder.get(),
1095
+ });
1096
+ }
1097
+ }
1098
+ for (auto& [tag, props] : updateViewProps_) {
1099
+ auto familyIt = tagToShadowNodeFamily_.find(tag);
1100
+ if (familyIt == tagToShadowNodeFamily_.end()) {
1101
+ continue;
1102
+ }
1103
+
1104
+ auto weakFamily = familyIt->second;
1105
+ if (auto family = weakFamily.lock()) {
1106
+ propsBuilder.storeDynamic(props);
1107
+ mutations.batch.push_back(
1108
+ AnimationMutation{
1109
+ .tag = tag,
1110
+ .family = family,
1111
+ .props = propsBuilder.get(),
1112
+ .hasLayoutUpdates = true,
1113
+ });
1114
+ }
1115
+ }
1020
1116
  }
1117
+ updateViewProps_.clear();
1118
+ updateViewPropsDirect_.clear();
1021
1119
  }
1022
1120
  } else {
1023
1121
  // There is no active animation. Stop the render callback.
@@ -1097,7 +1195,8 @@ void NativeAnimatedNodesManager::onRender() {
1097
1195
  }
1098
1196
  }
1099
1197
 
1100
- // Step 2: update all nodes that are connected to the finished animations.
1198
+ // Step 2: update all nodes that are connected to the finished
1199
+ // animations.
1101
1200
  updateNodes(finishedAnimationValueNodes);
1102
1201
 
1103
1202
  isEventAnimationInProgress_ = false;
@@ -21,6 +21,7 @@
21
21
  #include <react/renderer/animationbackend/AnimationBackend.h>
22
22
  #endif
23
23
  #include <react/renderer/core/ReactPrimitives.h>
24
+ #include <react/renderer/core/ShadowNode.h>
24
25
  #include <react/renderer/uimanager/UIManagerAnimationBackend.h>
25
26
  #include <chrono>
26
27
  #include <memory>
@@ -58,10 +59,12 @@ class NativeAnimatedNodesManager {
58
59
  using StartOnRenderCallback = std::function<void(std::function<void()> &&, bool isAsync)>;
59
60
  using StopOnRenderCallback = std::function<void(bool isAsync)>;
60
61
  using FrameRateListenerCallback = std::function<void(bool /* shouldEnableListener */)>;
62
+ using ResolvePlatformColor = std::function<void(SurfaceId surfaceId, const RawValue &value, SharedColor &result)>;
61
63
 
62
64
  explicit NativeAnimatedNodesManager(
63
65
  DirectManipulationCallback &&directManipulationCallback,
64
66
  FabricCommitCallback &&fabricCommitCallback,
67
+ ResolvePlatformColor &&resolvePlatformColor,
65
68
  StartOnRenderCallback &&startOnRenderCallback = nullptr,
66
69
  StopOnRenderCallback &&stopOnRenderCallback = nullptr,
67
70
  FrameRateListenerCallback &&frameRateListenerCallback = nullptr) noexcept;
@@ -70,6 +73,12 @@ class NativeAnimatedNodesManager {
70
73
 
71
74
  ~NativeAnimatedNodesManager() noexcept;
72
75
 
76
+ // Non-copyable and non-movable to prevent accidental copies or moves of this resource-heavy manager
77
+ NativeAnimatedNodesManager(const NativeAnimatedNodesManager &) = delete;
78
+ NativeAnimatedNodesManager &operator=(const NativeAnimatedNodesManager &) = delete;
79
+ NativeAnimatedNodesManager(NativeAnimatedNodesManager &&) = delete;
80
+ NativeAnimatedNodesManager &operator=(NativeAnimatedNodesManager &&) = delete;
81
+
73
82
  template <typename T, typename = std::enable_if_t<std::is_base_of_v<AnimatedNode, T>>>
74
83
  T *getAnimatedNode(Tag tag) const
75
84
  requires(std::is_base_of_v<AnimatedNode, T>)
@@ -93,6 +102,8 @@ class NativeAnimatedNodesManager {
93
102
 
94
103
  void connectAnimatedNodeToView(Tag propsNodeTag, Tag viewTag) noexcept;
95
104
 
105
+ void connectAnimatedNodeToShadowNodeFamily(Tag propsNodeTag, std::shared_ptr<const ShadowNodeFamily> family) noexcept;
106
+
96
107
  void disconnectAnimatedNodes(Tag parentTag, Tag childTag) noexcept;
97
108
 
98
109
  void disconnectAnimatedNodeFromView(Tag propsNodeTag, Tag viewTag) noexcept;
@@ -177,7 +188,7 @@ class NativeAnimatedNodesManager {
177
188
 
178
189
  void updateNodes(const std::set<int> &finishedAnimationValueNodes = {}) noexcept;
179
190
 
180
- folly::dynamic managedProps(Tag tag) const noexcept;
191
+ folly::dynamic getManagedProps(Tag tag) const noexcept;
181
192
 
182
193
  bool hasManagedProps() const noexcept;
183
194
 
@@ -185,6 +196,8 @@ class NativeAnimatedNodesManager {
185
196
 
186
197
  bool isOnRenderThread() const noexcept;
187
198
 
199
+ void resolvePlatformColor(SurfaceId surfaceId, const RawValue &value, SharedColor &result) const;
200
+
188
201
  private:
189
202
  void stopRenderCallbackIfNeeded(bool isAsync) noexcept;
190
203
 
@@ -233,6 +246,8 @@ class NativeAnimatedNodesManager {
233
246
  const DirectManipulationCallback directManipulationCallback_;
234
247
  const FabricCommitCallback fabricCommitCallback_;
235
248
 
249
+ const ResolvePlatformColor resolvePlatformColor_;
250
+
236
251
  /*
237
252
  * Tracks whether the render callback loop for animations is currently active.
238
253
  */
@@ -246,6 +261,9 @@ class NativeAnimatedNodesManager {
246
261
  std::unordered_map<Tag, folly::dynamic> updateViewProps_{};
247
262
  std::unordered_map<Tag, folly::dynamic> updateViewPropsDirect_{};
248
263
 
264
+ mutable std::mutex tagToShadowNodeFamilyMutex_;
265
+ std::unordered_map<Tag, std::weak_ptr<const ShadowNodeFamily>> tagToShadowNodeFamily_{};
266
+
249
267
  /*
250
268
  * Sometimes a view is not longer connected to a PropsAnimatedNode, but
251
269
  * NativeAnimated has previously changed the view's props via direct
@@ -14,6 +14,9 @@
14
14
  #ifdef RN_USE_ANIMATION_BACKEND
15
15
  #include <react/renderer/animationbackend/AnimationBackend.h>
16
16
  #endif
17
+ #include <react/renderer/animated/internal/primitives.h>
18
+ #include <react/renderer/components/view/conversions.h>
19
+ #include <react/renderer/scheduler/Scheduler.h>
17
20
  #include <react/renderer/uimanager/UIManagerBinding.h>
18
21
 
19
22
  namespace facebook::react {
@@ -47,29 +50,42 @@ NativeAnimatedNodesManagerProvider::getOrCreate(
47
50
  if (nativeAnimatedNodesManager_ == nullptr) {
48
51
  auto* uiManager = &UIManagerBinding::getBinding(runtime)->getUIManager();
49
52
 
50
- NativeAnimatedNodesManager::FabricCommitCallback fabricCommitCallback =
51
- nullptr;
52
-
53
- if (!ReactNativeFeatureFlags::disableFabricCommitInCXXAnimated()) {
54
- mergedValueDispatcher_ = std::make_unique<MergedValueDispatcher>(
55
- [jsInvoker](std::function<void()>&& func) {
56
- jsInvoker->invokeAsync(std::move(func));
57
- },
58
- [uiManager](std::unordered_map<Tag, folly::dynamic>&& tagToProps) {
59
- uiManager->updateShadowTree(std::move(tagToProps));
60
- });
53
+ mergedValueDispatcher_ = std::make_unique<MergedValueDispatcher>(
54
+ [jsInvoker](std::function<void()>&& func) {
55
+ jsInvoker->invokeAsync(std::move(func));
56
+ },
57
+ [uiManager](std::unordered_map<Tag, folly::dynamic>&& tagToProps) {
58
+ uiManager->updateShadowTree(std::move(tagToProps));
59
+ });
61
60
 
62
- fabricCommitCallback =
63
- [this](std::unordered_map<Tag, folly::dynamic>& tagToProps) {
64
- mergedValueDispatcher_->dispatch(tagToProps);
65
- };
66
- }
61
+ NativeAnimatedNodesManager::FabricCommitCallback fabricCommitCallback =
62
+ [this](std::unordered_map<Tag, folly::dynamic>& tagToProps) {
63
+ mergedValueDispatcher_->dispatch(tagToProps);
64
+ };
67
65
 
68
66
  auto directManipulationCallback =
69
67
  [uiManager](Tag viewTag, const folly::dynamic& props) {
70
68
  uiManager->synchronouslyUpdateViewOnUIThread(viewTag, props);
71
69
  };
72
70
 
71
+ // TODO: remove force casting.
72
+ auto* scheduler = (Scheduler*)uiManager->getDelegate();
73
+ auto resolvePlatformColor = [scheduler, uiManager](
74
+ SurfaceId surfaceId,
75
+ const RawValue& value,
76
+ SharedColor& result) {
77
+ if (uiManager) {
78
+ if (surfaceId != animated::undefinedAnimatedNodeIdentifier) {
79
+ PropsParserContext propsParserContext{
80
+ surfaceId, *scheduler->getContextContainer()};
81
+ fromRawValue(propsParserContext, value, result);
82
+ } else {
83
+ LOG(ERROR)
84
+ << "Cannot resolve platformColor because surfaceId is unavailable.";
85
+ }
86
+ }
87
+ };
88
+
73
89
  if (ReactNativeFeatureFlags::useSharedAnimatedBackend()) {
74
90
  #ifdef RN_USE_ANIMATION_BACKEND
75
91
  // TODO: this should be initialized outside of animated, but for now it
@@ -80,19 +96,29 @@ NativeAnimatedNodesManagerProvider::getOrCreate(
80
96
  std::move(directManipulationCallback),
81
97
  std::move(fabricCommitCallback),
82
98
  uiManager);
83
- #endif
84
99
 
85
100
  nativeAnimatedNodesManager_ =
86
101
  std::make_shared<NativeAnimatedNodesManager>(animationBackend_);
87
102
 
103
+ nativeAnimatedDelegate_ =
104
+ std::make_shared<UIManagerNativeAnimatedDelegateBackendImpl>(
105
+ animationBackend_);
106
+
88
107
  uiManager->unstable_setAnimationBackend(animationBackend_);
108
+ #endif
89
109
  } else {
90
110
  nativeAnimatedNodesManager_ =
91
111
  std::make_shared<NativeAnimatedNodesManager>(
92
112
  std::move(directManipulationCallback),
93
113
  std::move(fabricCommitCallback),
114
+ std::move(resolvePlatformColor),
94
115
  std::move(startOnRenderCallback_),
95
- std::move(stopOnRenderCallback_));
116
+ std::move(stopOnRenderCallback_),
117
+ std::move(frameRateListenerCallback_));
118
+
119
+ nativeAnimatedDelegate_ =
120
+ std::make_shared<UIManagerNativeAnimatedDelegateImpl>(
121
+ nativeAnimatedNodesManager_);
96
122
  }
97
123
 
98
124
  addEventEmitterListener(
@@ -117,36 +143,32 @@ NativeAnimatedNodesManagerProvider::getOrCreate(
117
143
  return false;
118
144
  }));
119
145
 
120
- nativeAnimatedDelegate_ =
121
- std::make_shared<UIManagerNativeAnimatedDelegateImpl>(
122
- nativeAnimatedNodesManager_);
123
-
124
146
  uiManager->setNativeAnimatedDelegate(nativeAnimatedDelegate_);
125
147
 
126
- // TODO: remove force casting.
127
- auto* scheduler = (Scheduler*)uiManager->getDelegate();
128
- animatedMountingOverrideDelegate_ =
129
- std::make_shared<AnimatedMountingOverrideDelegate>(
130
- *nativeAnimatedNodesManager_, *scheduler);
131
-
132
- // Register on existing surfaces
133
- uiManager->getShadowTreeRegistry().enumerate(
134
- [animatedMountingOverrideDelegate =
135
- std::weak_ptr<const AnimatedMountingOverrideDelegate>(
136
- animatedMountingOverrideDelegate_)](
137
- const ShadowTree& shadowTree, bool& /*stop*/) {
138
- shadowTree.getMountingCoordinator()->setMountingOverrideDelegate(
139
- animatedMountingOverrideDelegate);
140
- });
141
- // Register on surfaces started in the future
142
- uiManager->setOnSurfaceStartCallback(
143
- [animatedMountingOverrideDelegate =
144
- std::weak_ptr<const AnimatedMountingOverrideDelegate>(
145
- animatedMountingOverrideDelegate_)](
146
- const ShadowTree& shadowTree) {
147
- shadowTree.getMountingCoordinator()->setMountingOverrideDelegate(
148
- animatedMountingOverrideDelegate);
149
- });
148
+ if (!ReactNativeFeatureFlags::useSharedAnimatedBackend()) {
149
+ animatedMountingOverrideDelegate_ =
150
+ std::make_shared<AnimatedMountingOverrideDelegate>(
151
+ *nativeAnimatedNodesManager_, *scheduler);
152
+
153
+ // Register on existing surfaces
154
+ uiManager->getShadowTreeRegistry().enumerate(
155
+ [animatedMountingOverrideDelegate =
156
+ std::weak_ptr<const AnimatedMountingOverrideDelegate>(
157
+ animatedMountingOverrideDelegate_)](
158
+ const ShadowTree& shadowTree, bool& /*stop*/) {
159
+ shadowTree.getMountingCoordinator()->setMountingOverrideDelegate(
160
+ animatedMountingOverrideDelegate);
161
+ });
162
+ // Register on surfaces started in the future
163
+ uiManager->setOnSurfaceStartCallback(
164
+ [animatedMountingOverrideDelegate =
165
+ std::weak_ptr<const AnimatedMountingOverrideDelegate>(
166
+ animatedMountingOverrideDelegate_)](
167
+ const ShadowTree& shadowTree) {
168
+ shadowTree.getMountingCoordinator()->setMountingOverrideDelegate(
169
+ animatedMountingOverrideDelegate);
170
+ });
171
+ }
150
172
  }
151
173
  return nativeAnimatedNodesManager_;
152
174
  }
@@ -43,6 +43,7 @@ void FrameAnimationDriver::updateConfig(folly::dynamic config) {
43
43
  void FrameAnimationDriver::onConfigChanged() {
44
44
  auto frames = config_["frames"];
45
45
  react_native_assert(frames.type() == folly::dynamic::ARRAY);
46
+ frames_.clear();
46
47
  for (const auto& frame : frames) {
47
48
  auto frameValue = frame.asDouble();
48
49
  frames_.push_back(frameValue);
@@ -40,7 +40,7 @@ AnimatedMountingOverrideDelegate::pullTransaction(
40
40
  for (const auto& mutation : mutations) {
41
41
  if (mutation.type == ShadowViewMutation::Update) {
42
42
  const auto tag = mutation.newChildShadowView.tag;
43
- auto props = animatedManager_->managedProps(tag);
43
+ auto props = animatedManager_->getManagedProps(tag);
44
44
  if (!props.isNull()) {
45
45
  animatedManagedProps.insert({tag, std::move(props)});
46
46
  }
@@ -62,7 +62,6 @@ Color ColorAnimatedNode::getColor() {
62
62
  manager_->updatedNodeTags_.erase(tag_);
63
63
  }
64
64
  return color_;
65
- return 0;
66
65
  }
67
66
 
68
67
  } // namespace facebook::react