react-native-tvos 0.83.1-0 → 0.84.0-0rc0

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 (563) 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 +3 -3
  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 +3 -3
  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 +40 -4
  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 +1 -12
  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/systeminfo/ReactNativeVersion.kt +3 -3
  234. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt +15 -8
  235. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +0 -9
  236. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +46 -12
  237. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +3 -3
  238. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +11 -17
  239. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +52 -0
  240. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +92 -3
  241. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +62 -8
  242. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSKeyDispatcher.kt +65 -0
  243. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +19 -2
  244. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.kt +1 -2
  245. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +5 -36
  246. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +9 -91
  247. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.kt +1 -1
  248. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAxOrderHelper.kt +47 -0
  249. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +0 -2
  250. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +4 -23
  251. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +1 -7
  252. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +1 -11
  253. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +1 -47
  254. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +0 -16
  255. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/OutlineDrawable.kt +1 -1
  256. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +3 -36
  257. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyDownEvent.kt +23 -0
  258. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyEvent.kt +156 -0
  259. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyUpEvent.kt +24 -0
  260. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +29 -4
  261. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +12 -9
  262. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +1 -1
  263. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +36 -3
  264. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +21 -11
  265. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +7 -0
  266. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewAccessibilityDelegate.kt +31 -15
  267. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +127 -32
  268. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +19 -21
  269. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +3 -11
  270. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental.kt +3 -12
  271. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp +29 -2
  272. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +98 -3
  273. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +62 -26
  274. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +145 -103
  275. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +31 -22
  276. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +1 -3
  277. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +5 -23
  278. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +2 -7
  279. package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapperBase.h +0 -24
  280. package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
  281. package/ReactAndroid/src/main/jni/react/jni/JSLoader.h +2 -1
  282. package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +0 -1
  283. package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.cpp +1 -29
  284. package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.h +1 -2
  285. package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +0 -4
  286. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +145 -17
  287. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +193 -19
  288. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +2 -1
  289. package/ReactAndroid/src/main/jni/react/tracing/PerformanceTracerCxxInterop.cpp +1 -1
  290. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +62 -63
  291. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +5 -7
  292. package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +1 -0
  293. package/ReactAndroid/src/main/res/devsupport/drawable/ic_perf_issue.xml +10 -0
  294. package/ReactAndroid/src/main/res/devsupport/layout/dev_loading_view.xml +41 -15
  295. package/ReactAndroid/src/main/res/devsupport/layout/fps_view.xml +1 -1
  296. package/ReactAndroid/src/main/res/devsupport/values/strings.xml +1 -0
  297. package/ReactAndroid/src/main/res/views/uimanager/values-ne/strings.xml +16 -0
  298. package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.h +2 -0
  299. package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.mm +38 -5
  300. package/ReactCommon/cxxreact/JSBigString.h +14 -5
  301. package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +4 -5
  302. package/ReactCommon/cxxreact/ReactMarker.cpp +0 -1
  303. package/ReactCommon/cxxreact/ReactNativeVersion.h +5 -5
  304. package/ReactCommon/devtoolsruntimesettings/DevToolsRuntimeSettings.cpp +1 -1
  305. package/ReactCommon/hermes/React-hermes.podspec +1 -0
  306. package/ReactCommon/jsi/jsi/jsi.cpp +6 -1
  307. package/ReactCommon/jsi/jsi/jsi.h +73 -0
  308. package/ReactCommon/jsi/jsi/test/testlib.cpp +2 -2
  309. package/ReactCommon/jsiexecutor/CMakeLists.txt +3 -1
  310. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +3 -0
  311. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +2 -43
  312. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.h +3 -8
  313. package/ReactCommon/jsinspector-modern/ConsoleTask.cpp +27 -0
  314. package/ReactCommon/jsinspector-modern/ConsoleTask.h +38 -0
  315. package/ReactCommon/jsinspector-modern/ConsoleTaskContext.cpp +46 -0
  316. package/ReactCommon/jsinspector-modern/ConsoleTaskContext.h +102 -0
  317. package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.cpp +55 -0
  318. package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.h +48 -0
  319. package/ReactCommon/jsinspector-modern/HostAgent.cpp +9 -10
  320. package/ReactCommon/jsinspector-modern/HostAgent.h +2 -2
  321. package/ReactCommon/jsinspector-modern/HostTarget.cpp +7 -6
  322. package/ReactCommon/jsinspector-modern/HostTarget.h +73 -16
  323. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +40 -8
  324. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h +42 -5
  325. package/ReactCommon/jsinspector-modern/HostTargetTracing.cpp +54 -21
  326. package/ReactCommon/jsinspector-modern/InstanceAgent.cpp +2 -11
  327. package/ReactCommon/jsinspector-modern/InstanceTarget.h +2 -2
  328. package/ReactCommon/jsinspector-modern/PerfMonitorV2.cpp +9 -1
  329. package/ReactCommon/jsinspector-modern/PerfMonitorV2.h +4 -1
  330. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +3 -2
  331. package/ReactCommon/jsinspector-modern/RuntimeAgent.h +1 -1
  332. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +12 -0
  333. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +16 -13
  334. package/ReactCommon/jsinspector-modern/RuntimeTargetConsole.cpp +106 -1
  335. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +30 -18
  336. package/ReactCommon/jsinspector-modern/TracingAgent.h +5 -4
  337. package/ReactCommon/jsinspector-modern/tests/ConsoleCreateTaskTest.cpp +131 -0
  338. package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +53 -0
  339. package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +20 -0
  340. package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +25 -55
  341. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +1 -0
  342. package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +116 -0
  343. package/ReactCommon/jsinspector-modern/tests/TracingTest.h +95 -0
  344. package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +60 -0
  345. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h +43 -0
  346. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +144 -0
  347. package/ReactCommon/jsinspector-modern/tracing/{TraceRecordingStateSerializer.h → HostTracingProfileSerializer.h} +16 -8
  348. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +67 -16
  349. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +21 -2
  350. package/ReactCommon/jsinspector-modern/tracing/TargetTracingAgent.h +5 -0
  351. package/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h +158 -0
  352. package/ReactCommon/jsinspector-modern/tracing/TraceEvent.h +2 -1
  353. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +104 -0
  354. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +59 -0
  355. package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.cpp +2 -1
  356. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h +18 -7
  357. package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +139 -0
  358. package/ReactCommon/jsinspector-modern/tracing/tests/TimeWindowedBufferTest.cpp +352 -0
  359. package/ReactCommon/jsitooling/React-jsitooling.podspec +4 -0
  360. package/ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.cpp +54 -0
  361. package/{ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h → ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.h} +4 -6
  362. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +43 -31
  363. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +55 -40
  364. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +234 -180
  365. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +24 -18
  366. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +43 -31
  367. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +91 -64
  368. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +5 -1
  369. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h +0 -4
  370. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +12 -9
  371. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +7 -2
  372. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +30 -10
  373. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +17 -6
  374. package/ReactCommon/react/nativemodule/core/iostests/RCTTurboModuleTests.mm +0 -1
  375. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +1 -4
  376. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +0 -4
  377. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +43 -60
  378. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +11 -36
  379. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +53 -38
  380. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +22 -16
  381. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -0
  382. package/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +24 -3
  383. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.h +76 -13
  384. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.mm +74 -64
  385. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.mm +17 -13
  386. package/ReactCommon/react/networking/NetworkReporter.cpp +26 -22
  387. package/ReactCommon/react/networking/React-networking.podspec +0 -1
  388. package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.cpp +4 -2
  389. package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
  390. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +10 -2
  391. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
  392. package/ReactCommon/react/renderer/animated/AnimatedModule.cpp +104 -78
  393. package/ReactCommon/react/renderer/animated/AnimatedModule.h +10 -2
  394. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +174 -75
  395. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +19 -1
  396. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +68 -46
  397. package/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.cpp +1 -0
  398. package/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.cpp +1 -1
  399. package/ReactCommon/react/renderer/animated/nodes/ColorAnimatedNode.cpp +0 -1
  400. package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.cpp +103 -4
  401. package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.h +9 -0
  402. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +5 -1
  403. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +9 -0
  404. package/ReactCommon/react/renderer/animated/nodes/RoundAnimatedNode.cpp +1 -1
  405. package/ReactCommon/react/renderer/animated/nodes/ValueAnimatedNode.cpp +1 -1
  406. package/ReactCommon/react/renderer/animated/tests/AnimatedNodeTests.cpp +67 -0
  407. package/ReactCommon/react/renderer/animated/tests/AnimationDriverTests.cpp +59 -0
  408. package/ReactCommon/react/renderer/animated/tests/AnimationTestsBase.h +2 -1
  409. package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +307 -0
  410. package/ReactCommon/react/renderer/animationbackend/AnimatedProps.h +323 -1
  411. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsBuilder.h +133 -0
  412. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +100 -0
  413. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +246 -0
  414. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsSerializer.h +17 -0
  415. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +93 -94
  416. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +23 -5
  417. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.cpp +75 -0
  418. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +32 -0
  419. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +2 -2
  420. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.h +3 -0
  421. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +2 -2
  422. package/ReactCommon/react/renderer/components/image/ImageProps.h +2 -2
  423. package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +9 -2
  424. package/ReactCommon/react/renderer/components/image/conversions.h +5 -0
  425. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +2 -1
  426. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +5 -1
  427. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +21 -1
  428. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +14 -0
  429. package/ReactCommon/react/renderer/core/DynamicEventPayload.cpp +10 -0
  430. package/ReactCommon/react/renderer/core/DynamicEventPayload.h +6 -1
  431. package/ReactCommon/react/renderer/core/DynamicPointerEvent.cpp +30 -0
  432. package/ReactCommon/react/renderer/core/DynamicPointerEvent.h +29 -0
  433. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +1 -1
  434. package/ReactCommon/react/renderer/core/EventEmitter.cpp +11 -14
  435. package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +3 -3
  436. package/ReactCommon/react/renderer/core/Props.cpp +23 -8
  437. package/ReactCommon/react/renderer/core/Props.h +6 -4
  438. package/ReactCommon/react/renderer/core/ShadowNode.cpp +4 -10
  439. package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +32 -0
  440. package/ReactCommon/react/renderer/css/CSSSyntaxParser.h +7 -0
  441. package/ReactCommon/react/renderer/debug/CMakeLists.txt +7 -0
  442. package/ReactCommon/react/renderer/debug/flags.h +3 -2
  443. package/ReactCommon/react/renderer/graphics/BlendMode.h +2 -0
  444. package/ReactCommon/react/renderer/graphics/Filter.h +2 -0
  445. package/ReactCommon/react/renderer/imagemanager/ImageManager.h +3 -0
  446. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +23 -12
  447. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +8 -3
  448. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +16 -4
  449. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +9 -4
  450. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +8 -4
  451. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +1 -1
  452. package/ReactCommon/react/renderer/imagemanager/primitives.h +15 -6
  453. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +0 -11
  454. package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +0 -4
  455. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +0 -20
  456. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +3 -3
  457. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +2 -3
  458. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +6 -0
  459. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +1 -0
  460. package/ReactCommon/react/runtime/PlatformTimerRegistry.h +2 -0
  461. package/ReactCommon/react/runtime/ReactInstance.cpp +21 -14
  462. package/ReactCommon/react/runtime/ReactInstance.h +5 -1
  463. package/ReactCommon/react/runtime/TimerManager.cpp +11 -53
  464. package/ReactCommon/react/runtime/TimerManager.h +7 -12
  465. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +3 -2
  466. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +10 -6
  467. package/ReactCommon/yoga/yoga/algorithm/FlexDirection.h +6 -6
  468. package/ReactCommon/yoga/yoga/algorithm/SizingMode.h +4 -4
  469. package/ReactCommon/yoga/yoga/style/Style.h +8 -8
  470. package/ReactCommon/yoga/yoga/style/StyleLength.h +7 -0
  471. package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +7 -0
  472. package/flow/HermesInternalType.js +6 -6
  473. package/flow/bom.js.flow +35 -28
  474. package/flow/cssom.js.flow +3 -3
  475. package/flow/dom.js.flow +34 -33
  476. package/index.js +3 -0
  477. package/index.js.flow +8 -0
  478. package/jest/mock.js +2 -2
  479. package/jest/mockComponent.js +1 -1
  480. package/jest/setup.js +1 -1
  481. package/package.json +12 -12
  482. package/react-native.config.js +0 -17
  483. package/scripts/cocoapods/new_architecture.rb +7 -1
  484. package/scripts/cocoapods/spm.rb +28 -10
  485. package/scripts/cocoapods/utils.rb +4 -4
  486. package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +7 -6
  487. package/scripts/ios-configure-glog.sh +6 -1
  488. package/scripts/react_native_pods.rb +8 -0
  489. package/sdks/.hermesv1version +1 -1
  490. package/sdks/.hermesversion +1 -1
  491. package/sdks/hermes-engine/hermes-engine.podspec +39 -31
  492. package/sdks/hermes-engine/hermes-utils.rb +7 -14
  493. package/sdks/hermes-engine/version.properties +2 -2
  494. package/src/private/animated/NativeAnimatedHelper.js +130 -125
  495. package/src/private/animated/NativeAnimatedValidation.js +7 -4
  496. package/src/private/animated/createAnimatedPropsHook.js +13 -5
  497. package/src/private/animated/createAnimatedPropsMemoHook.js +10 -10
  498. package/src/private/components/virtualview/VirtualView.js +16 -9
  499. package/src/private/components/virtualview/logger/VirtualViewLogger.js +21 -0
  500. package/src/private/components/virtualview/logger/VirtualViewLoggerTypes.js +24 -0
  501. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  502. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +6 -25
  503. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -27
  504. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +3 -2
  505. package/src/private/featureflags/ReactNativeFeatureFlags.js +63 -42
  506. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
  507. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +12 -9
  508. package/src/private/renderer/errorhandling/ErrorHandlers.js +7 -4
  509. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
  510. package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +4 -0
  511. package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -0
  512. package/src/private/webapis/dom/events/CustomEvent.js +3 -3
  513. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  514. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  515. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +29 -29
  516. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +1 -1
  517. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +2 -0
  518. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  519. package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +4 -1
  520. package/src/private/webapis/geometry/DOMRectReadOnly.js +1 -1
  521. package/src/private/webapis/html/events/MessageEvent.js +3 -3
  522. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +3 -3
  523. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +53 -5
  524. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +2 -2
  525. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +4 -4
  526. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +1 -1
  527. package/src/private/webapis/mutationobserver/MutationObserver.js +1 -1
  528. package/src/private/webapis/mutationobserver/MutationRecord.js +1 -1
  529. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +4 -4
  530. package/src/private/webapis/performance/Performance.js +1 -1
  531. package/src/private/webapis/performance/UserTiming.js +1 -1
  532. package/src/private/webapis/performance/specs/NativePerformance.js +3 -3
  533. package/src/private/webapis/structuredClone/structuredClone.js +3 -3
  534. package/src/types/globals.d.ts +30 -1
  535. package/third-party-podspecs/RCT-Folly.podspec +1 -0
  536. package/React/CxxModule/RCTCxxModule.h +0 -29
  537. package/React/CxxModule/RCTCxxModule.mm +0 -87
  538. package/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.kt +0 -146
  539. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CallbackImpl.kt +0 -45
  540. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapper.kt +0 -25
  541. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt +0 -61
  542. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener.kt +0 -36
  543. package/ReactAndroid/src/main/java/com/facebook/react/bridge/OnBatchCompleteListener.kt +0 -21
  544. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.kt +0 -54
  545. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.kt +0 -78
  546. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.kt +0 -105
  547. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/TracingState.kt +0 -19
  548. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DidJSUpdateUiDuringFrameDetector.kt +0 -157
  549. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeKind.kt +0 -32
  550. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/debug/NotThreadSafeViewHierarchyUpdateDebugListener.kt +0 -30
  551. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.kt +0 -87
  552. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationListener.kt +0 -23
  553. package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapper.h +0 -37
  554. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +0 -20
  555. package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.cpp +0 -175
  556. package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.h +0 -75
  557. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingStateSerializer.cpp +0 -68
  558. package/ReactCommon/jsinspector-modern/tracing/TracingState.h +0 -24
  559. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.cpp +0 -212
  560. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.h +0 -40
  561. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +0 -628
  562. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +0 -66
  563. /package/ReactCommon/jsi/jsi/{hermes.h → hermes-interfaces.h} +0 -0
@@ -12,6 +12,7 @@ package com.facebook.react.runtime
12
12
  import android.content.Context
13
13
  import android.graphics.Point
14
14
  import android.graphics.Rect
15
+ import android.view.KeyEvent
15
16
  import android.view.MotionEvent
16
17
  import android.view.View
17
18
  import com.facebook.common.logging.FLog
@@ -20,7 +21,9 @@ import com.facebook.react.bridge.ReactContext
20
21
  import com.facebook.react.common.annotations.FrameworkAPI
21
22
  import com.facebook.react.common.annotations.UnstableReactNativeAPI
22
23
  import com.facebook.react.config.ReactFeatureFlags
24
+ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
23
25
  import com.facebook.react.uimanager.IllegalViewOperationException
26
+ import com.facebook.react.uimanager.JSKeyDispatcher
24
27
  import com.facebook.react.uimanager.JSPointerDispatcher
25
28
  import com.facebook.react.uimanager.JSTouchDispatcher
26
29
  import com.facebook.react.uimanager.common.UIManagerType
@@ -37,6 +40,7 @@ public class ReactSurfaceView(context: Context?, private val surface: ReactSurfa
37
40
  ReactRootView(context) {
38
41
  private val jsTouchDispatcher: JSTouchDispatcher = JSTouchDispatcher(this)
39
42
  private var jsPointerDispatcher: JSPointerDispatcher? = null
43
+ private var jsKeyDispatcher: JSKeyDispatcher? = null
40
44
  private var wasMeasured = false
41
45
  private var widthMeasureSpec = 0
42
46
  private var heightMeasureSpec = 0
@@ -45,6 +49,9 @@ public class ReactSurfaceView(context: Context?, private val surface: ReactSurfa
45
49
  if (ReactFeatureFlags.dispatchPointerEvents) {
46
50
  jsPointerDispatcher = JSPointerDispatcher(this)
47
51
  }
52
+ if (ReactNativeFeatureFlags.enableKeyEvents()) {
53
+ jsKeyDispatcher = JSKeyDispatcher()
54
+ }
48
55
  }
49
56
 
50
57
  override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
@@ -188,6 +195,51 @@ public class ReactSurfaceView(context: Context?, private val surface: ReactSurfa
188
195
  }
189
196
  }
190
197
 
198
+ override fun dispatchJSKeyEvent(event: KeyEvent) {
199
+ if (jsKeyDispatcher == null) {
200
+ if (!ReactNativeFeatureFlags.enableKeyEvents()) {
201
+ return
202
+ }
203
+ FLog.w(TAG, "Unable to dispatch key events to JS before the dispatcher is available")
204
+ return
205
+ }
206
+ val eventDispatcher = surface.eventDispatcher
207
+ if (eventDispatcher != null) {
208
+ jsKeyDispatcher?.handleKeyEvent(event, eventDispatcher, surface.surfaceID)
209
+ } else {
210
+ FLog.w(
211
+ TAG,
212
+ "Unable to dispatch key events to JS as the React instance has not been attached",
213
+ )
214
+ }
215
+ }
216
+
217
+ override fun requestChildFocus(child: View?, focused: View?) {
218
+ super.requestChildFocus(child, focused)
219
+
220
+ if (ReactNativeFeatureFlags.enableKeyEvents()) {
221
+ val focusedViewTag = focused?.id
222
+ if (focusedViewTag != null) {
223
+ jsKeyDispatcher?.setFocusedView(focusedViewTag)
224
+ }
225
+ }
226
+ }
227
+
228
+ override fun onFocusChanged(gainFocus: Boolean, direction: Int, previouslyFocusedRect: Rect?) {
229
+ super.onFocusChanged(gainFocus, direction, previouslyFocusedRect)
230
+
231
+ if (ReactNativeFeatureFlags.enableKeyEvents()) {
232
+ if (gainFocus) {
233
+ val focusedViewTag = focusedChild?.id
234
+ if (focusedViewTag != null) {
235
+ jsKeyDispatcher?.setFocusedView(focusedViewTag)
236
+ }
237
+ } else {
238
+ jsKeyDispatcher?.clearFocus()
239
+ }
240
+ }
241
+ }
242
+
191
243
  override fun hasActiveReactContext(): Boolean =
192
244
  surface.isAttached && surface.reactHost?.currentReactContext != null
193
245
 
@@ -9,7 +9,10 @@ package com.facebook.react.uimanager
9
9
 
10
10
  import android.graphics.Canvas
11
11
  import android.graphics.Color
12
+ import android.graphics.Paint
12
13
  import android.graphics.Path
14
+ import android.graphics.PorterDuff
15
+ import android.graphics.PorterDuffXfermode
13
16
  import android.graphics.Rect
14
17
  import android.graphics.RectF
15
18
  import android.graphics.drawable.Drawable
@@ -19,6 +22,7 @@ import android.widget.ImageView
19
22
  import androidx.annotation.ColorInt
20
23
  import com.facebook.react.bridge.ReadableArray
21
24
  import com.facebook.react.common.annotations.UnstableReactNativeAPI
25
+ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
22
26
  import com.facebook.react.uimanager.PixelUtil.dpToPx
23
27
  import com.facebook.react.uimanager.PixelUtil.pxToDp
24
28
  import com.facebook.react.uimanager.common.UIManagerType
@@ -467,7 +471,7 @@ public object BackgroundStyleApplicator {
467
471
  */
468
472
  @JvmStatic
469
473
  public fun setFeedbackUnderlay(view: View, drawable: Drawable?) {
470
- ensureCompositeBackgroundDrawable(view).withNewFeedbackUnderlay(drawable)
474
+ view.background = ensureCompositeBackgroundDrawable(view).withNewFeedbackUnderlay(drawable)
471
475
  }
472
476
 
473
477
  /**
@@ -481,12 +485,36 @@ public object BackgroundStyleApplicator {
481
485
  */
482
486
  @JvmStatic
483
487
  public fun clipToPaddingBox(view: View, canvas: Canvas) {
488
+ clipToPaddingBoxWithAntiAliasing(view, canvas, null)
489
+ }
490
+
491
+ /**
492
+ * Clips the canvas to the padding box of the view.
493
+ *
494
+ * The padding box is the area within the borders of the view, accounting for border radius if
495
+ * present.
496
+ *
497
+ * On Android 28 and below, when border radius is present, this uses an antialiased clipping
498
+ * approach with Porter-Duff compositing to avoid jagged edges. The drawContent lambda is invoked
499
+ * to draw the actual content after setting up the layer but before applying the mask.
500
+ *
501
+ * @param view The view whose padding box defines the clipping region
502
+ * @param canvas The canvas to clip
503
+ * @param drawContent Lambda that draws the content after clipping is set up
504
+ */
505
+ @JvmStatic
506
+ public fun clipToPaddingBoxWithAntiAliasing(
507
+ view: View,
508
+ canvas: Canvas,
509
+ drawContent: (() -> Unit)?,
510
+ ) {
484
511
  val drawingRect = Rect()
485
512
  view.getDrawingRect(drawingRect)
486
513
 
487
514
  val composite = getCompositeBackgroundDrawable(view)
488
515
  if (composite == null) {
489
516
  canvas.clipRect(drawingRect)
517
+ drawContent?.invoke()
490
518
  return
491
519
  }
492
520
 
@@ -508,15 +536,76 @@ public object BackgroundStyleApplicator {
508
536
  paddingBoxRect,
509
537
  computedBorderInsets,
510
538
  )
511
-
512
539
  paddingBoxPath.offset(drawingRect.left.toFloat(), drawingRect.top.toFloat())
513
- canvas.clipPath(paddingBoxPath)
540
+
541
+ // On Android 28 and below, use antialiased clipping with Porter-Duff compositing. On newer
542
+ // Android versions, use the standard clipPath.
543
+ if (
544
+ ReactNativeFeatureFlags.enableAndroidAntialiasedBorderRadiusClipping() &&
545
+ Build.VERSION.SDK_INT <= Build.VERSION_CODES.P &&
546
+ view.width > 0 &&
547
+ view.height > 0 &&
548
+ drawContent != null
549
+ ) {
550
+ clipWithAntiAliasing(
551
+ view,
552
+ canvas,
553
+ paddingBoxPath,
554
+ drawContent,
555
+ )
556
+ } else {
557
+ canvas.clipPath(paddingBoxPath)
558
+ drawContent?.invoke()
559
+ }
514
560
  } else {
515
561
  paddingBoxRect.offset(drawingRect.left.toFloat(), drawingRect.top.toFloat())
516
562
  canvas.clipRect(paddingBoxRect)
563
+ drawContent?.invoke()
517
564
  }
518
565
  }
519
566
 
567
+ /**
568
+ * Applies antialiased clipping using Porter-Duff compositing for Android 28 and below. This draws
569
+ * content to a layer, then applies an antialiased mask to clip it.
570
+ */
571
+ private fun clipWithAntiAliasing(
572
+ view: View,
573
+ canvas: Canvas,
574
+ paddingBoxPath: Path,
575
+ drawContent: () -> Unit,
576
+ ) {
577
+ // Save the layer for Porter-Duff compositing
578
+ val saveCount = canvas.saveLayer(0f, 0f, view.width.toFloat(), view.height.toFloat(), null)
579
+
580
+ // Draw the content first
581
+ drawContent()
582
+
583
+ val maskPaint = Paint(Paint.ANTI_ALIAS_FLAG)
584
+ maskPaint.style = Paint.Style.FILL
585
+
586
+ // Transparent pixels with INVERSE_WINDING only works on API 28
587
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
588
+ maskPaint.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_IN)
589
+ maskPaint.color = Color.TRANSPARENT
590
+ paddingBoxPath.setFillType(Path.FillType.INVERSE_WINDING)
591
+ canvas.drawPath(paddingBoxPath, maskPaint)
592
+ } else {
593
+ // Create an inverse path: outer rect minus the rounded rect (using even-odd fill rule)
594
+ val inversePath = Path()
595
+ inversePath.addRect(0f, 0f, view.width.toFloat(), view.height.toFloat(), Path.Direction.CW)
596
+ inversePath.addPath(paddingBoxPath)
597
+ inversePath.setFillType(Path.FillType.EVEN_ODD)
598
+
599
+ // Use DST_OUT to remove content where the mask is drawn (outside the rounded rect)
600
+ maskPaint.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_OUT)
601
+ maskPaint.color = Color.BLACK
602
+ canvas.drawPath(inversePath, maskPaint)
603
+ }
604
+
605
+ // Restore the layer
606
+ canvas.restoreToCount(saveCount)
607
+ }
608
+
520
609
  /**
521
610
  * Resets the background styling of the view to its original state.
522
611
  *
@@ -16,6 +16,7 @@ import android.view.View.OnFocusChangeListener;
16
16
  import android.view.ViewGroup;
17
17
  import android.view.ViewParent;
18
18
  import android.view.accessibility.AccessibilityEvent;
19
+ import android.widget.TextView;
19
20
  import androidx.annotation.ColorInt;
20
21
  import androidx.annotation.NonNull;
21
22
  import androidx.annotation.Nullable;
@@ -30,6 +31,7 @@ import com.facebook.react.bridge.ReadableMapKeySetIterator;
30
31
  import com.facebook.react.bridge.ReadableType;
31
32
  import com.facebook.react.common.MapBuilder;
32
33
  import com.facebook.react.common.ReactConstants;
34
+ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags;
33
35
  import com.facebook.react.uimanager.ReactAccessibilityDelegate.AccessibilityRole;
34
36
  import com.facebook.react.uimanager.ReactAccessibilityDelegate.Role;
35
37
  import com.facebook.react.uimanager.annotations.ReactProp;
@@ -147,7 +149,16 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
147
149
  // are the default view flags in View.java:
148
150
  // https://android.googlesource.com/platform/frameworks/base/+/a175a5b/core/java/android/view/View.java#2712
149
151
  // `mViewFlags = SOUND_EFFECTS_ENABLED | HAPTIC_FEEDBACK_ENABLED | LAYOUT_DIRECTION_INHERIT`
150
- // Therefore we set the following options as such:
152
+
153
+ // NOTE: setClickable MUST be called AFTER setOnClickListener because
154
+ // the latter has the side effect of setting isClickable=true on some views!
155
+ if (ReactNativeFeatureFlags.shouldResetOnClickListenerWhenRecyclingView()) {
156
+ view.setOnClickListener(null);
157
+ }
158
+ if (ReactNativeFeatureFlags.shouldResetClickableWhenRecyclingView()) {
159
+ view.setClickable(
160
+ ReactNativeFeatureFlags.shouldSetIsClickableByDefault() && !(view instanceof TextView));
161
+ }
151
162
  view.setFocusable(false);
152
163
  view.setFocusableInTouchMode(false);
153
164
 
@@ -385,8 +396,16 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
385
396
  view.setSelected(false);
386
397
  }
387
398
  view.setTag(R.id.accessibility_state, accessibilityState);
388
- if (accessibilityState.hasKey("disabled") && !accessibilityState.getBoolean("disabled")) {
389
- view.setEnabled(true);
399
+ if (accessibilityState.hasKey("disabled")) {
400
+ if (ReactNativeFeatureFlags.shouldSetEnabledBasedOnAccessibilityState()) {
401
+ // New behavior: properly set enabled state for both true and false
402
+ view.setEnabled(!accessibilityState.getBoolean("disabled"));
403
+ } else {
404
+ // Old behavior: only set enabled(true) when disabled=false
405
+ if (!accessibilityState.getBoolean("disabled")) {
406
+ view.setEnabled(true);
407
+ }
408
+ }
390
409
  }
391
410
 
392
411
  // For states which don't have corresponding methods in
@@ -474,14 +493,13 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
474
493
  public void setImportantForAccessibility(
475
494
  @NonNull T view, @Nullable String importantForAccessibility) {
476
495
  if (importantForAccessibility == null || importantForAccessibility.equals("auto")) {
477
- ViewCompat.setImportantForAccessibility(view, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_AUTO);
496
+ view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_AUTO);
478
497
  } else if (importantForAccessibility.equals("yes")) {
479
- ViewCompat.setImportantForAccessibility(view, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES);
498
+ view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
480
499
  } else if (importantForAccessibility.equals("no")) {
481
- ViewCompat.setImportantForAccessibility(view, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO);
500
+ view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
482
501
  } else if (importantForAccessibility.equals("no-hide-descendants")) {
483
- ViewCompat.setImportantForAccessibility(
484
- view, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
502
+ view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
485
503
  }
486
504
  }
487
505
 
@@ -670,6 +688,7 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
670
688
  @Override
671
689
  protected void onAfterUpdateTransaction(@NonNull T view) {
672
690
  super.onAfterUpdateTransaction(view);
691
+ configureClickableState(view);
673
692
  updateViewAccessibility(view);
674
693
 
675
694
  Boolean invalidateTransform = (Boolean) view.getTag(R.id.invalidate_transform);
@@ -762,6 +781,16 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
762
781
  MapBuilder.of(
763
782
  "phasedRegistrationNames",
764
783
  MapBuilder.of("bubbled", "onFocus", "captured", "onFocusCapture")))
784
+ .put(
785
+ "topKeyDown",
786
+ MapBuilder.of(
787
+ "phasedRegistrationNames",
788
+ MapBuilder.of("bubbled", "onKeyDown", "captured", "onKeyDownCapture")))
789
+ .put(
790
+ "topKeyUp",
791
+ MapBuilder.of(
792
+ "phasedRegistrationNames",
793
+ MapBuilder.of("bubbled", "onKeyUp", "captured", "onKeyUpCapture")))
765
794
  .build());
766
795
  return eventTypeConstants;
767
796
  }
@@ -999,6 +1028,31 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
999
1028
 
1000
1029
  // Please add new props to BaseViewManagerDelegate as well!
1001
1030
 
1031
+ private static <T extends View> void configureClickableState(@NonNull T view) {
1032
+ if (!ReactNativeFeatureFlags.shouldSetIsClickableByDefault()) {
1033
+ return;
1034
+ }
1035
+
1036
+ boolean shouldBeClickable;
1037
+ if (view instanceof ReactPointerEventsView) {
1038
+ shouldBeClickable =
1039
+ PointerEvents.canBeTouchTarget(((ReactPointerEventsView) view).getPointerEvents());
1040
+ } else if (view instanceof TextView) {
1041
+ shouldBeClickable = view.hasOnClickListeners();
1042
+ } else {
1043
+ shouldBeClickable = true;
1044
+ }
1045
+
1046
+ // NOTE: In Android O+, setClickable(true) has the side effect of setting focusable=true.
1047
+ // We need to preserve the original focusable state to respect the focusable prop.
1048
+ boolean wasFocusable = view.isFocusable();
1049
+ boolean wasFocusableInTouchMode = view.isFocusableInTouchMode();
1050
+
1051
+ view.setClickable(shouldBeClickable);
1052
+ view.setFocusable(wasFocusable);
1053
+ view.setFocusableInTouchMode(wasFocusableInTouchMode);
1054
+ }
1055
+
1002
1056
  /**
1003
1057
  * A helper class to keep track of the original focus change listener if one is set. This is
1004
1058
  * especially helpful for views that are recycled so we can retain and restore the original
@@ -0,0 +1,65 @@
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
+ package com.facebook.react.uimanager
9
+
10
+ import android.view.KeyEvent as AndroidKeyEvent
11
+ import android.view.View
12
+ import com.facebook.react.uimanager.events.EventDispatcher
13
+ import com.facebook.react.uimanager.events.KeyDownEvent
14
+ import com.facebook.react.uimanager.events.KeyUpEvent
15
+
16
+ /**
17
+ * JSKeyDispatcher handles dispatching keyboard events to JS from RootViews. It sends keydown and
18
+ * keyup events according to the W3C KeyboardEvent specification, supporting both capture and bubble
19
+ * phases.
20
+ *
21
+ * The keydown and keyup events provide a code indicating which key is pressed. The event target is
22
+ * derived from the currently focused Android view.
23
+ */
24
+ internal class JSKeyDispatcher {
25
+ private var focusedViewTag: Int = View.NO_ID
26
+
27
+ fun handleKeyEvent(
28
+ keyEvent: AndroidKeyEvent,
29
+ eventDispatcher: EventDispatcher,
30
+ surfaceId: Int,
31
+ ) {
32
+ if (focusedViewTag == View.NO_ID) {
33
+ return
34
+ }
35
+
36
+ when (keyEvent.action) {
37
+ AndroidKeyEvent.ACTION_DOWN -> {
38
+ eventDispatcher.dispatchEvent(
39
+ KeyDownEvent(
40
+ surfaceId,
41
+ focusedViewTag,
42
+ keyEvent,
43
+ )
44
+ )
45
+ }
46
+ AndroidKeyEvent.ACTION_UP -> {
47
+ eventDispatcher.dispatchEvent(
48
+ KeyUpEvent(
49
+ surfaceId,
50
+ focusedViewTag,
51
+ keyEvent,
52
+ )
53
+ )
54
+ }
55
+ }
56
+ }
57
+
58
+ fun setFocusedView(viewTag: Int) {
59
+ focusedViewTag = viewTag
60
+ }
61
+
62
+ fun clearFocus() {
63
+ focusedViewTag = View.NO_ID
64
+ }
65
+ }
@@ -15,6 +15,7 @@ import androidx.annotation.Nullable;
15
15
  import com.facebook.common.logging.FLog;
16
16
  import com.facebook.infer.annotation.Assertions;
17
17
  import com.facebook.react.common.ReactConstants;
18
+ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags;
18
19
  import com.facebook.react.uimanager.TouchTargetHelper.ViewTarget;
19
20
  import com.facebook.react.uimanager.events.EventDispatcher;
20
21
  import com.facebook.react.uimanager.events.PointerEvent;
@@ -133,9 +134,17 @@ public class JSPointerDispatcher {
133
134
  boolean listeningForUp =
134
135
  isAnyoneListeningForBubblingEvent(activeHitPath, EVENT.UP, EVENT.UP_CAPTURE);
135
136
  if (listeningForUp) {
137
+ List<Integer> activeHitPathViewIds =
138
+ ReactNativeFeatureFlags.cxxNativeAnimatedEnabled()
139
+ ? eventState.getHitPathViewIdsForActivePointer()
140
+ : null;
136
141
  eventDispatcher.dispatchEvent(
137
142
  PointerEvent.obtain(
138
- PointerEventHelper.POINTER_UP, activeTargetTag, eventState, motionEvent));
143
+ PointerEventHelper.POINTER_UP,
144
+ activeTargetTag,
145
+ eventState,
146
+ motionEvent,
147
+ activeHitPathViewIds));
139
148
  }
140
149
 
141
150
  boolean supportsHover = mHoveringPointerIds.contains(activePointerId);
@@ -230,9 +239,17 @@ public class JSPointerDispatcher {
230
239
  boolean listeningForDown =
231
240
  isAnyoneListeningForBubblingEvent(activeHitPath, EVENT.DOWN, EVENT.DOWN_CAPTURE);
232
241
  if (listeningForDown) {
242
+ List<Integer> activeHitPathViewIds =
243
+ ReactNativeFeatureFlags.cxxNativeAnimatedEnabled()
244
+ ? eventState.getHitPathViewIdsForActivePointer()
245
+ : null;
233
246
  eventDispatcher.dispatchEvent(
234
247
  PointerEvent.obtain(
235
- PointerEventHelper.POINTER_DOWN, activeTargetTag, eventState, motionEvent));
248
+ PointerEventHelper.POINTER_DOWN,
249
+ activeTargetTag,
250
+ eventState,
251
+ motionEvent,
252
+ activeHitPathViewIds));
236
253
  }
237
254
  }
238
255
 
@@ -14,7 +14,6 @@ import com.facebook.infer.annotation.Assertions
14
14
  import com.facebook.react.bridge.ReactContext
15
15
  import com.facebook.react.common.ReactConstants
16
16
  import com.facebook.react.common.annotations.UnstableReactNativeAPI
17
- import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
18
17
  import com.facebook.react.uimanager.common.UIManagerType
19
18
  import com.facebook.react.uimanager.events.EventDispatcher
20
19
  import com.facebook.react.uimanager.events.TouchEvent
@@ -59,7 +58,7 @@ public class JSTouchDispatcher(private val viewGroup: ViewGroup) {
59
58
  dispatchCancelEvent(androidEvent, eventDispatcher)
60
59
  childIsHandlingNativeGesture = true
61
60
 
62
- if (targetTag != -1 && ReactNativeFeatureFlags.sweepActiveTouchOnChildNativeGesturesAndroid()) {
61
+ if (targetTag != -1) {
63
62
  val surfaceId = UIManagerHelper.getSurfaceId(viewGroup)
64
63
  sweepActiveTouchForTag(surfaceId, targetTag, reactContext)
65
64
  }
@@ -31,8 +31,6 @@ import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel
31
31
  import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
32
32
  import com.facebook.react.common.build.ReactBuildConfig;
33
33
  import com.facebook.react.touch.JSResponderHandler;
34
- import com.facebook.react.uimanager.layoutanimation.LayoutAnimationController;
35
- import com.facebook.react.uimanager.layoutanimation.LayoutAnimationListener;
36
34
  import com.facebook.systrace.Systrace;
37
35
  import com.facebook.systrace.SystraceMessage;
38
36
  import com.facebook.yoga.YogaDirection;
@@ -86,7 +84,6 @@ public class NativeViewHierarchyManager {
86
84
  private final ViewManagerRegistry mViewManagers;
87
85
  private final JSResponderHandler mJSResponderHandler = new JSResponderHandler();
88
86
  private final RootViewManager mRootViewManager;
89
- private final LayoutAnimationController mLayoutAnimator = new LayoutAnimationController();
90
87
  private final RectF mBoundingBox = new RectF();
91
88
 
92
89
  private volatile boolean mLayoutAnimationEnabled;
@@ -265,9 +262,7 @@ public class NativeViewHierarchyManager {
265
262
  }
266
263
 
267
264
  private void updateLayout(View viewToUpdate, int x, int y, int width, int height) {
268
- if (mLayoutAnimationEnabled && mLayoutAnimator.shouldAnimateLayout(viewToUpdate)) {
269
- mLayoutAnimator.applyLayoutUpdate(viewToUpdate, x, y, width, height);
270
- } else {
265
+ if (!mLayoutAnimationEnabled) {
271
266
  viewToUpdate.layout(x, y, x + width, y + height);
272
267
  }
273
268
  }
@@ -464,14 +459,7 @@ public class NativeViewHierarchyManager {
464
459
  viewToManage, viewManager, indicesToRemove, viewsToAdd, tagsToDelete));
465
460
  }
466
461
 
467
- View viewToRemove = viewManager.getChildAt(viewToManage, indexToRemove);
468
-
469
- if (mLayoutAnimationEnabled
470
- && mLayoutAnimator.shouldAnimateLayout(viewToRemove)
471
- && arrayContains(tagsToDelete, viewToRemove.getId())) {
472
- // The view will be removed and dropped by the 'delete' layout animation
473
- // instead, so do nothing
474
- } else {
462
+ if (!mLayoutAnimationEnabled) {
475
463
  viewManager.removeViewAt(viewToManage, indexToRemove);
476
464
  }
477
465
 
@@ -492,26 +480,7 @@ public class NativeViewHierarchyManager {
492
480
  viewToManage, viewManager, indicesToRemove, viewsToAdd, tagsToDelete));
493
481
  }
494
482
 
495
- if (mLayoutAnimationEnabled && mLayoutAnimator.shouldAnimateLayout(viewToDestroy)) {
496
- pendingDeletionTags.add(tagToDelete);
497
- mLayoutAnimator.deleteView(
498
- viewToDestroy,
499
- new LayoutAnimationListener() {
500
- @Override
501
- public void onAnimationEnd() {
502
- // This should be called only on the UI thread, because
503
- // onAnimationEnd is called (indirectly) by Android View Animation.
504
- UiThreadUtil.assertOnUiThread();
505
-
506
- viewManager.removeView(viewToManage, viewToDestroy);
507
- dropView(viewToDestroy);
508
- pendingDeletionTags.remove(viewToDestroy.getId());
509
- if (pendingDeletionTags.isEmpty()) {
510
- mPendingDeletionsForTag.remove(tag);
511
- }
512
- }
513
- });
514
- } else {
483
+ if (!mLayoutAnimationEnabled) {
515
484
  dropView(viewToDestroy);
516
485
  }
517
486
  }
@@ -828,11 +797,11 @@ public class NativeViewHierarchyManager {
828
797
 
829
798
  synchronized void configureLayoutAnimation(
830
799
  final ReadableMap config, final Callback onAnimationComplete) {
831
- mLayoutAnimator.initializeFromConfig(config, onAnimationComplete);
800
+ // no-op
832
801
  }
833
802
 
834
803
  synchronized void clearLayoutAnimation() {
835
- mLayoutAnimator.reset();
804
+ // no-op
836
805
  }
837
806
 
838
807
  @Deprecated