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
@@ -0,0 +1,75 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #include <react/renderer/animationbackend/AnimationBackendCommitHook.h>
9
+
10
+ namespace facebook::react {
11
+
12
+ AnimationBackendCommitHook::AnimationBackendCommitHook(
13
+ UIManager* uiManager,
14
+ std::shared_ptr<AnimatedPropsRegistry> animatedPropsRegistry)
15
+ : animatedPropsRegistry_(std::move(animatedPropsRegistry)) {
16
+ uiManager->registerCommitHook(*this);
17
+ }
18
+
19
+ RootShadowNode::Unshared AnimationBackendCommitHook::shadowTreeWillCommit(
20
+ const ShadowTree& shadowTree,
21
+ const RootShadowNode::Shared& oldRootShadowNode,
22
+ const RootShadowNode::Unshared& newRootShadowNode,
23
+ const ShadowTreeCommitOptions& commitOptions) noexcept {
24
+ if (commitOptions.source != ShadowTreeCommitSource::React) {
25
+ return newRootShadowNode;
26
+ }
27
+
28
+ const auto& res = animatedPropsRegistry_->getMap(shadowTree.getSurfaceId());
29
+ auto& surfaceFamilies = res.first;
30
+ auto& updates = res.second;
31
+
32
+ if (surfaceFamilies.empty()) {
33
+ return newRootShadowNode;
34
+ }
35
+ return std::static_pointer_cast<RootShadowNode>(
36
+ newRootShadowNode->cloneMultiple(
37
+ surfaceFamilies,
38
+ [&surfaceFamilies, &updates](
39
+ const ShadowNode& shadowNode,
40
+ const ShadowNodeFragment& fragment) {
41
+ auto newProps = ShadowNodeFragment::propsPlaceholder();
42
+ std::shared_ptr<BaseViewProps> viewProps = nullptr;
43
+ if (surfaceFamilies.contains(&shadowNode.getFamily()) &&
44
+ updates.contains(shadowNode.getTag())) {
45
+ auto& snapshot = updates.at(shadowNode.getTag());
46
+ if (!snapshot->propNames.empty() || snapshot->rawProps) {
47
+ PropsParserContext propsParserContext{
48
+ shadowNode.getSurfaceId(),
49
+ *shadowNode.getContextContainer()};
50
+ if (snapshot->rawProps) {
51
+ newProps = shadowNode.getComponentDescriptor().cloneProps(
52
+ propsParserContext,
53
+ shadowNode.getProps(),
54
+ RawProps(*snapshot->rawProps));
55
+ } else {
56
+ newProps = shadowNode.getComponentDescriptor().cloneProps(
57
+ propsParserContext, shadowNode.getProps(), {});
58
+ }
59
+ viewProps = std::const_pointer_cast<BaseViewProps>(
60
+ std::static_pointer_cast<const BaseViewProps>(newProps));
61
+ }
62
+
63
+ for (const auto& propName : snapshot->propNames) {
64
+ updateProp(propName, *viewProps, *snapshot);
65
+ }
66
+ }
67
+ return shadowNode.clone(
68
+ {.props = newProps,
69
+ .children = fragment.children,
70
+ .state = shadowNode.getState(),
71
+ .runtimeShadowNodeReference = true});
72
+ }));
73
+ }
74
+
75
+ } // namespace facebook::react
@@ -0,0 +1,32 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <folly/dynamic.h>
11
+ #include <react/renderer/core/ReactPrimitives.h>
12
+ #include <react/renderer/uimanager/UIManager.h>
13
+ #include <react/renderer/uimanager/UIManagerCommitHook.h>
14
+ #include "AnimatedPropsRegistry.h"
15
+
16
+ namespace facebook::react {
17
+
18
+ class AnimationBackendCommitHook : public UIManagerCommitHook {
19
+ std::shared_ptr<AnimatedPropsRegistry> animatedPropsRegistry_;
20
+
21
+ public:
22
+ AnimationBackendCommitHook(UIManager *uiManager, std::shared_ptr<AnimatedPropsRegistry> animatedPropsRegistry);
23
+ RootShadowNode::Unshared shadowTreeWillCommit(
24
+ const ShadowTree &shadowTree,
25
+ const RootShadowNode::Shared &oldRootShadowNode,
26
+ const RootShadowNode::Unshared &newRootShadowNode,
27
+ const ShadowTreeCommitOptions &commitOptions) noexcept override;
28
+ void commitHookWasRegistered(const UIManager &uiManager) noexcept override {}
29
+ void commitHookWasUnregistered(const UIManager &uiManager) noexcept override {}
30
+ };
31
+
32
+ } // namespace facebook::react
@@ -39,7 +39,7 @@ static std::string GetMutationInstructionString(
39
39
  ? mutation.newChildShadowView.tag
40
40
  : mutation.oldChildShadowView.tag;
41
41
  return getDebugName(mutation) + " [" + std::to_string(tag) + "]->[" +
42
- std::to_string(mutation.parentShadowView.tag) + "] @" +
42
+ std::to_string(mutation.parentTag) + "] @" +
43
43
  std::to_string(mutation.index);
44
44
  }
45
45
 
@@ -1162,7 +1162,7 @@ void LayoutAnimationKeyFrameManager::queueFinalMutationsForCompletedKeyFrame(
1162
1162
  const AnimationKeyFrame& keyframe,
1163
1163
  ShadowViewMutation::List& mutationsList,
1164
1164
  bool interrupted,
1165
- const std::string& /*logPrefix*/) const {
1165
+ [[maybe_unused]] const std::string& logPrefix) const {
1166
1166
  if (!keyframe.finalMutationsForKeyFrame.empty()) {
1167
1167
  // TODO: modularize this segment, it is repeated 2x in KeyFrameManager
1168
1168
  // as well.
@@ -71,6 +71,9 @@ struct std::hash<facebook::react::AttributedStringBox> {
71
71
  return std::hash<facebook::react::AttributedString>()(attributedStringBox.getValue());
72
72
  case facebook::react::AttributedStringBox::Mode::OpaquePointer:
73
73
  return std::hash<std::shared_ptr<void>>()(attributedStringBox.getOpaquePointer());
74
+ default:
75
+ react_native_assert(false && "Invalid AttributedStringBox::Mode");
76
+ return 0;
74
77
  }
75
78
  }
76
79
  };
@@ -98,7 +98,7 @@ ImageProps::ImageProps(
98
98
  rawProps,
99
99
  "resizeMethod",
100
100
  sourceProps.resizeMethod,
101
- {})),
101
+ {"auto"})),
102
102
  resizeMultiplier(
103
103
  ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
104
104
  ? sourceProps.resizeMultiplier
@@ -107,7 +107,7 @@ ImageProps::ImageProps(
107
107
  rawProps,
108
108
  "resizeMultiplier",
109
109
  sourceProps.resizeMultiplier,
110
- {})),
110
+ 1)),
111
111
  shouldNotifyLoadEvents(
112
112
  ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
113
113
  ? sourceProps.shouldNotifyLoadEvents
@@ -33,8 +33,8 @@ class ImageProps final : public ViewProps {
33
33
  EdgeInsets capInsets{};
34
34
  SharedColor tintColor{};
35
35
  std::string internal_analyticTag{};
36
- std::string resizeMethod{};
37
- Float resizeMultiplier{};
36
+ std::string resizeMethod{"auto"};
37
+ Float resizeMultiplier{1.f};
38
38
  bool shouldNotifyLoadEvents{};
39
39
  SharedColor overlayColor{};
40
40
  Float fadeDuration{};
@@ -65,7 +65,12 @@ void ImageShadowNode::updateStateIfNeeded() {
65
65
  imageProps.fadeDuration,
66
66
  imageProps.progressiveRenderingEnabled,
67
67
  imageProps.loadingIndicatorSource,
68
- imageProps.internal_analyticTag
68
+ imageProps.internal_analyticTag,
69
+ Size{
70
+ .width =
71
+ layoutMetrics_.frame.size.width * layoutMetrics_.pointScaleFactor,
72
+ .height = layoutMetrics_.frame.size.height *
73
+ layoutMetrics_.pointScaleFactor}
69
74
  #endif
70
75
  );
71
76
 
@@ -85,7 +90,9 @@ void ImageShadowNode::updateStateIfNeeded() {
85
90
  (uri.starts_with("content://") || uri.starts_with("file://")));
86
91
  // If we would resize but have no dimensions, skip creating the request
87
92
  if (shouldResize &&
88
- (newImageSource.size.width == 0 || newImageSource.size.height == 0)) {
93
+ (newImageSource.size.width == 0 || newImageSource.size.height == 0 ||
94
+ layoutMetrics_.frame.size.width == 0 ||
95
+ layoutMetrics_.frame.size.height == 0)) {
89
96
  // Keep the old state - don't create a new image request
90
97
  return;
91
98
  }
@@ -163,6 +163,11 @@ inline std::string toString(const ImageResizeMode &value)
163
163
  return "repeat";
164
164
  case ImageResizeMode::None:
165
165
  return "none";
166
+ default:
167
+ LOG(ERROR) << "Unsupported ImageResizeMode value: " << (int)value;
168
+ react_native_expect(false);
169
+ // "cover" is default in non-Fabric web and iOS
170
+ return "cover";
166
171
  }
167
172
  }
168
173
 
@@ -524,7 +524,8 @@ void BaseTextProps::appendTextAttributesProps(
524
524
  : nullptr;
525
525
  }
526
526
 
527
- if (textAttributes.opacity != oldProps->textAttributes.opacity) {
527
+ if (!floatEquality(
528
+ textAttributes.opacity, oldProps->textAttributes.opacity)) {
528
529
  result["opacity"] = textAttributes.opacity;
529
530
  }
530
531
 
@@ -676,6 +676,10 @@ folly::dynamic HostPlatformViewProps::getDiffProps(
676
676
  result["removeClippedSubviews"] = removeClippedSubviews;
677
677
  }
678
678
 
679
+ if (collapsableChildren != oldProps->collapsableChildren) {
680
+ result["collapsableChildren"] = collapsableChildren;
681
+ }
682
+
679
683
  if (onLayout != oldProps->onLayout) {
680
684
  result["onLayout"] = onLayout;
681
685
  }
@@ -961,7 +965,7 @@ folly::dynamic HostPlatformViewProps::getDiffProps(
961
965
 
962
966
  if (accessibilityState != oldProps->accessibilityState) {
963
967
  updateAccessibilityStateProp(
964
- result, oldProps->accessibilityState, accessibilityState);
968
+ result, accessibilityState, oldProps->accessibilityState);
965
969
  }
966
970
 
967
971
  if (accessibilityLabel != oldProps->accessibilityLabel) {
@@ -115,12 +115,32 @@ class ConcreteComponentDescriptor : public ComponentDescriptor {
115
115
  rawProps.parse(rawPropsParser_);
116
116
 
117
117
  auto shadowNodeProps = ShadowNodeT::Props(context, rawProps, props);
118
+ #ifdef RN_SERIALIZABLE_STATE
119
+ bool fallbackToDynamicRawPropsAccumulation = true;
120
+ if (ReactNativeFeatureFlags::enableExclusivePropsUpdateAndroid() &&
121
+ ReactNativeFeatureFlags::enableAccumulatedUpdatesInRawPropsAndroid()) {
122
+ // When exclusive props update is enabled, we only apply Props 1.5 processing
123
+ // (raw props merging) when Props 2.0 is not available.
124
+ if (ReactNativeFeatureFlags::enablePropsUpdateReconciliationAndroid()) {
125
+ // Cast to base Props reference to safely call virtual method
126
+ const auto &baseProps = static_cast<const Props &>(*shadowNodeProps);
127
+ if (strcmp(ShadowNodeT::Name(), baseProps.getDiffPropsImplementationTarget()) == 0) {
128
+ // Props 2.0 supported for this component, Props 1.5 processing can be skipped
129
+ fallbackToDynamicRawPropsAccumulation = false;
130
+ }
131
+ }
132
+ }
133
+ if (fallbackToDynamicRawPropsAccumulation) {
134
+ ShadowNodeT::initializeDynamicProps(shadowNodeProps, rawProps, props);
135
+ }
136
+ #endif
118
137
  // Use the new-style iterator
119
138
  // Note that we just check if `Props` has this flag set, no matter
120
139
  // the type of ShadowNode; it acts as the single global flag.
121
140
  if (ReactNativeFeatureFlags::enableCppPropsIteratorSetter()) {
122
141
  #ifdef RN_SERIALIZABLE_STATE
123
- const auto &dynamic = shadowNodeProps->rawProps;
142
+ const auto &dynamic =
143
+ fallbackToDynamicRawPropsAccumulation ? shadowNodeProps->rawProps : static_cast<folly::dynamic>(rawProps);
124
144
  #else
125
145
  const auto &dynamic = static_cast<folly::dynamic>(rawProps);
126
146
  #endif
@@ -78,6 +78,20 @@ class ConcreteShadowNode : public BaseShadowNodeT {
78
78
  context, baseProps ? static_cast<const PropsT &>(*baseProps) : *defaultSharedProps(), rawProps);
79
79
  }
80
80
 
81
+ #ifdef RN_SERIALIZABLE_STATE
82
+ static void initializeDynamicProps(
83
+ UnsharedConcreteProps props,
84
+ const RawProps &rawProps,
85
+ const Props::Shared &baseProps = nullptr)
86
+ {
87
+ if (baseProps) {
88
+ props->initializeDynamicProps(static_cast<const PropsT &>(*baseProps), rawProps);
89
+ } else {
90
+ props->initializeDynamicProps(*defaultSharedProps(), rawProps);
91
+ }
92
+ }
93
+ #endif
94
+
81
95
  static const SharedConcreteProps &defaultSharedProps()
82
96
  {
83
97
  static const SharedConcreteProps defaultSharedProps = std::make_shared<const PropsT>();
@@ -8,12 +8,22 @@
8
8
  #include "DynamicEventPayload.h"
9
9
 
10
10
  #include <jsi/JSIDynamic.h>
11
+ #include <react/renderer/core/DynamicPointerEvent.h>
11
12
 
12
13
  namespace facebook::react {
13
14
 
14
15
  DynamicEventPayload::DynamicEventPayload(folly::dynamic&& payload)
15
16
  : payload_(std::move(payload)) {}
16
17
 
18
+ /* static */ SharedEventPayload DynamicEventPayload::create(
19
+ folly::dynamic&& payload) {
20
+ if (payload.find("pointerId") != payload.items().end()) {
21
+ return std::make_shared<DynamicPointerEvent>(std::move(payload));
22
+ } else {
23
+ return std::make_shared<DynamicEventPayload>(std::move(payload));
24
+ }
25
+ }
26
+
17
27
  jsi::Value DynamicEventPayload::asJSIValue(jsi::Runtime& runtime) const {
18
28
  return jsi::valueFromDynamic(runtime, payload_);
19
29
  }
@@ -12,9 +12,14 @@
12
12
 
13
13
  namespace facebook::react {
14
14
 
15
+ /*
16
+ * EventPayload sent from android native via JNI.
17
+ */
15
18
  struct DynamicEventPayload : public EventPayload {
16
19
  explicit DynamicEventPayload(folly::dynamic &&payload);
17
20
 
21
+ static SharedEventPayload create(folly::dynamic &&payload);
22
+
18
23
  /*
19
24
  * EventPayload implementations
20
25
  */
@@ -22,7 +27,7 @@ struct DynamicEventPayload : public EventPayload {
22
27
  EventPayloadType getType() const override;
23
28
  std::optional<double> extractValue(const std::vector<std::string> &path) const override;
24
29
 
25
- private:
30
+ protected:
26
31
  folly::dynamic payload_;
27
32
  };
28
33
 
@@ -0,0 +1,30 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #include "DynamicPointerEvent.h"
9
+
10
+ #include <jsi/JSIDynamic.h>
11
+
12
+ namespace facebook::react {
13
+
14
+ DynamicPointerEvent::DynamicPointerEvent(folly::dynamic&& payload)
15
+ : DynamicEventPayload(std::move(payload)) {
16
+ const auto& hitPath = payload_["hitPathForEventListener"];
17
+ if (hitPath.type() == folly::dynamic::Type::ARRAY) {
18
+ hitPathForEventListener_ = std::vector<Tag>{};
19
+ for (const auto& item : hitPath) {
20
+ hitPathForEventListener_->push_back(static_cast<Tag>(item.asInt()));
21
+ }
22
+ }
23
+ }
24
+
25
+ const std::optional<std::vector<Tag>>&
26
+ DynamicPointerEvent::getHitPathForEventListener() const {
27
+ return hitPathForEventListener_;
28
+ }
29
+
30
+ } // namespace facebook::react
@@ -0,0 +1,29 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <folly/dynamic.h>
11
+ #include <react/renderer/core/DynamicEventPayload.h>
12
+ #include <react/renderer/core/EventPayload.h>
13
+ #include <react/renderer/core/ReactPrimitives.h>
14
+
15
+ namespace facebook::react {
16
+
17
+ /*
18
+ * Payload of PointerEvent sent from android native via JNI.
19
+ */
20
+ struct DynamicPointerEvent : public DynamicEventPayload {
21
+ explicit DynamicPointerEvent(folly::dynamic &&payload);
22
+
23
+ const std::optional<std::vector<Tag>> &getHitPathForEventListener() const;
24
+
25
+ private:
26
+ std::optional<std::vector<Tag>> hitPathForEventListener_;
27
+ };
28
+
29
+ } // namespace facebook::react
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  #include "EventDispatcher.h"
9
- #include <cxxreact/JSExecutor.h>
9
+
10
10
  #include <react/renderer/core/StateUpdate.h>
11
11
 
12
12
  #include "EventQueue.h"
@@ -10,21 +10,19 @@
10
10
  #include <cxxreact/TraceSection.h>
11
11
  #include <folly/dynamic.h>
12
12
  #include <jsi/jsi.h>
13
-
14
- #include "DynamicEventPayload.h"
15
- #include "RawEvent.h"
13
+ #include <react/renderer/core/DynamicEventPayload.h>
14
+ #include <react/renderer/core/RawEvent.h>
16
15
 
17
16
  namespace facebook::react {
18
-
19
17
  static bool hasPrefix(const std::string& str, const std::string& prefix) {
20
18
  return str.compare(0, prefix.length(), prefix) == 0;
21
19
  }
22
20
 
23
21
  // TODO(T29874519): Get rid of "top" prefix once and for all.
24
22
  /*
25
- * Replaces "on" with "top" if present. Or capitalizes the first letter and adds
26
- * "top" prefix. E.g. "eventName" becomes "topEventName", "onEventName" also
27
- * becomes "topEventName".
23
+ * Replaces "on" with "top" if present. Or capitalizes the first letter and
24
+ * adds "top" prefix. E.g. "eventName" becomes "topEventName", "onEventName"
25
+ * also becomes "topEventName".
28
26
  */
29
27
  /* static */ std::string EventEmitter::normalizeEventType(std::string type) {
30
28
  auto prefixedType = std::move(type);
@@ -61,7 +59,7 @@ void EventEmitter::dispatchEvent(
61
59
  RawEvent::Category category) const {
62
60
  dispatchEvent(
63
61
  std::move(type),
64
- std::make_shared<DynamicEventPayload>(std::move(payload)),
62
+ DynamicEventPayload::create(std::move(payload)),
65
63
  category);
66
64
  }
67
65
 
@@ -69,8 +67,7 @@ void EventEmitter::dispatchUniqueEvent(
69
67
  std::string type,
70
68
  folly::dynamic&& payload) const {
71
69
  dispatchUniqueEvent(
72
- std::move(type),
73
- std::make_shared<DynamicEventPayload>(std::move(payload)));
70
+ std::move(type), DynamicEventPayload::create(std::move(payload)));
74
71
  }
75
72
 
76
73
  void EventEmitter::dispatchEvent(
@@ -139,10 +136,10 @@ void EventEmitter::setEnabled(bool enabled) const {
139
136
  }
140
137
  }
141
138
 
142
- // Note: Initially, the state of `eventTarget_` and the value `enableCounter_`
143
- // is mismatched intentionally (it's `non-null` and `0` accordingly). We need
144
- // this to support an initial nebula state where the event target must be
145
- // retained without any associated mounted node.
139
+ // Note: Initially, the state of `eventTarget_` and the value
140
+ // `enableCounter_` is mismatched intentionally (it's `non-null` and `0`
141
+ // accordingly). We need this to support an initial nebula state where the
142
+ // event target must be retained without any associated mounted node.
146
143
  bool shouldBeRetained = enableCounter_ > 0;
147
144
  if (shouldBeRetained != (eventTarget_ != nullptr)) {
148
145
  if (!shouldBeRetained) {
@@ -5,13 +5,13 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- #include <cxxreact/JSExecutor.h>
8
+ #include "EventQueueProcessor.h"
9
+
9
10
  #include <logger/react_native_log.h>
10
11
  #include <react/featureflags/ReactNativeFeatureFlags.h>
12
+
11
13
  #include "EventEmitter.h"
12
14
  #include "EventLogger.h"
13
- #include "EventQueue.h"
14
- #include "ShadowNodeFamily.h"
15
15
 
16
16
  namespace facebook::react {
17
17
 
@@ -33,14 +33,8 @@ void Props::initialize(
33
33
  ? sourceProps.nativeId
34
34
  : convertRawProp(context, rawProps, "nativeID", sourceProps.nativeId, {});
35
35
  #ifdef RN_SERIALIZABLE_STATE
36
- if (ReactNativeFeatureFlags::enableAccumulatedUpdatesInRawPropsAndroid()) {
37
- auto& oldRawProps = sourceProps.rawProps;
38
- auto newRawProps = rawProps.toDynamic(filterObjectKeys);
39
- auto mergedRawProps = mergeDynamicProps(
40
- oldRawProps, newRawProps, NullValueStrategy::Override);
41
- this->rawProps = mergedRawProps;
42
- } else {
43
- this->rawProps = rawProps.toDynamic(filterObjectKeys);
36
+ if (!ReactNativeFeatureFlags::enableExclusivePropsUpdateAndroid()) {
37
+ initializeDynamicProps(sourceProps, rawProps, filterObjectKeys);
44
38
  }
45
39
  #endif
46
40
  }
@@ -57,6 +51,27 @@ void Props::setProp(
57
51
  }
58
52
  }
59
53
 
54
+ #ifdef RN_SERIALIZABLE_STATE
55
+ void Props::initializeDynamicProps(
56
+ const Props& sourceProps,
57
+ const RawProps& rawProps,
58
+ const std::function<bool(const std::string&)>& filterObjectKeys) {
59
+ if (ReactNativeFeatureFlags::enableAccumulatedUpdatesInRawPropsAndroid()) {
60
+ auto& oldRawProps = sourceProps.rawProps;
61
+ auto newRawProps = rawProps.toDynamic(filterObjectKeys);
62
+ auto mergedRawProps = mergeDynamicProps(
63
+ oldRawProps, newRawProps, NullValueStrategy::Override);
64
+ this->rawProps = mergedRawProps;
65
+ } else {
66
+ this->rawProps = rawProps.toDynamic(filterObjectKeys);
67
+ }
68
+ }
69
+
70
+ ComponentName Props::getDiffPropsImplementationTarget() const {
71
+ return "";
72
+ }
73
+ #endif
74
+
60
75
  #pragma mark - DebugStringConvertible
61
76
 
62
77
  #if RN_DEBUG_STRING_CONVERTIBLE
@@ -62,10 +62,12 @@ class Props : public virtual Sealable, public virtual DebugStringConvertible {
62
62
  #ifdef RN_SERIALIZABLE_STATE
63
63
  folly::dynamic rawProps = folly::dynamic::object();
64
64
 
65
- virtual ComponentName getDiffPropsImplementationTarget() const
66
- {
67
- return "";
68
- }
65
+ void initializeDynamicProps(
66
+ const Props &sourceProps,
67
+ const RawProps &rawProps,
68
+ [[maybe_unused]] const std::function<bool(const std::string &)> &filterObjectKeys = nullptr);
69
+
70
+ virtual ComponentName getDiffPropsImplementationTarget() const;
69
71
 
70
72
  virtual folly::dynamic getDiffProps(const Props *prevProps) const
71
73
  {
@@ -412,7 +412,6 @@ namespace {
412
412
 
413
413
  std::shared_ptr<ShadowNode> cloneMultipleRecursive(
414
414
  const ShadowNode& shadowNode,
415
- const std::unordered_set<const ShadowNodeFamily*>& familiesToUpdate,
416
415
  const std::unordered_map<const ShadowNodeFamily*, int>& childrenCount,
417
416
  const std::function<std::shared_ptr<
418
417
  ShadowNode>(const ShadowNode&, const ShadowNodeFragment&)>& callback) {
@@ -430,16 +429,12 @@ std::shared_ptr<ShadowNode> cloneMultipleRecursive(
430
429
  std::make_shared<std::vector<std::shared_ptr<const ShadowNode>>>(
431
430
  children);
432
431
  }
433
- (*newChildren)[i] = cloneMultipleRecursive(
434
- *children[i], familiesToUpdate, childrenCount, callback);
432
+ (*newChildren)[i] =
433
+ cloneMultipleRecursive(*children[i], childrenCount, callback);
435
434
  }
436
435
  }
437
436
 
438
- ShadowNodeFragment fragment{.children = newChildren};
439
- if (familiesToUpdate.contains(family)) {
440
- return callback(shadowNode, fragment);
441
- }
442
- return shadowNode.clone(fragment);
437
+ return callback(shadowNode, {.children = newChildren});
443
438
  }
444
439
 
445
440
  } // namespace
@@ -479,8 +474,7 @@ std::shared_ptr<ShadowNode> ShadowNode::cloneMultiple(
479
474
  return nullptr;
480
475
  }
481
476
 
482
- return cloneMultipleRecursive(
483
- *this, familiesToUpdate, childrenCount, callback);
477
+ return cloneMultipleRecursive(*this, childrenCount, callback);
484
478
  }
485
479
 
486
480
  #pragma mark - DebugStringConvertible
@@ -342,3 +342,35 @@ TEST_F(ShadowNodeTest, cloneMultiple) {
342
342
  EXPECT_EQ(newNodeABA->getTag(), nodeABA_->getTag());
343
343
  EXPECT_EQ(newNodeABA.get(), nodeABA_.get());
344
344
  }
345
+
346
+ TEST_F(ShadowNodeTest, cloneMultipleWithSingleFamily) {
347
+ auto newProps = std::make_shared<const TestProps>();
348
+ auto newRoot = nodeA_->cloneMultiple(
349
+ {&nodeAB_->getFamily()},
350
+ [&](const ShadowNode& oldShadowNode, const ShadowNodeFragment& fragment) {
351
+ return oldShadowNode.clone({
352
+ .props = newProps,
353
+ .children = fragment.children,
354
+ .state = fragment.state,
355
+ });
356
+ });
357
+
358
+ EXPECT_EQ(newRoot->getTag(), nodeA_->getTag());
359
+ // The callback is called for each cloned node, so the root props are also
360
+ // updated
361
+ EXPECT_EQ(newRoot->getProps(), newProps);
362
+
363
+ auto newNodeAA = newRoot->getChildren()[0];
364
+ EXPECT_EQ(newNodeAA->getTag(), nodeAA_->getTag());
365
+ EXPECT_EQ(newNodeAA->getProps(), nodeAA_->getProps());
366
+ // AA was cloned when its parent was cloned as it was shared
367
+ EXPECT_NE(newNodeAA.get(), nodeAA_.get());
368
+
369
+ auto newNodeAB = newRoot->getChildren()[1];
370
+ EXPECT_EQ(newNodeAB->getTag(), nodeAB_->getTag());
371
+ EXPECT_EQ(newNodeAB->getProps(), newProps);
372
+
373
+ auto newNodeABA = newNodeAB->getChildren()[0];
374
+ EXPECT_EQ(newNodeABA->getTag(), nodeABA_->getTag());
375
+ EXPECT_EQ(newNodeABA.get(), nodeABA_.get());
376
+ }
@@ -277,7 +277,14 @@ struct CSSComponentValueVisitorDispatcher {
277
277
  return {};
278
278
  }
279
279
 
280
+ #ifdef __clang__
281
+ #pragma clang diagnostic push
282
+ #pragma clang diagnostic ignored "-Wswitch-enum"
283
+ #endif
280
284
  switch (parser.peek().type()) {
285
+ #ifdef __clang__
286
+ #pragma clang diagnostic pop
287
+ #endif
281
288
  case CSSTokenType::Function:
282
289
  if (auto ret = visitFunction(visitors...)) {
283
290
  return *ret;
@@ -15,3 +15,10 @@ target_include_directories(react_renderer_debug PUBLIC ${REACT_COMMON_DIR})
15
15
  target_link_libraries(react_renderer_debug folly_runtime react_debug)
16
16
  target_compile_reactnative_options(react_renderer_debug PRIVATE)
17
17
  target_compile_options(react_renderer_debug PRIVATE -Wpedantic)
18
+
19
+ # Enable debug string convertible for Debug builds or when explicitly requested
20
+ # This allows getRenderedOutput() to include props in tests
21
+ # Set RN_ENABLE_DEBUG_STRING_CONVERTIBLE=ON to enable for Release builds
22
+ if(${CMAKE_BUILD_TYPE} MATCHES Debug OR RN_ENABLE_DEBUG_STRING_CONVERTIBLE)
23
+ target_compile_definitions(react_renderer_debug PUBLIC RN_ENABLE_DEBUG_STRING_CONVERTIBLE)
24
+ endif()