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
@@ -26,7 +26,6 @@ import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel
26
26
  import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
27
27
  import com.facebook.react.common.build.ReactBuildConfig;
28
28
  import com.facebook.react.modules.i18nmanager.I18nUtil;
29
- import com.facebook.react.uimanager.debug.NotThreadSafeViewHierarchyUpdateDebugListener;
30
29
  import com.facebook.react.uimanager.events.EventDispatcher;
31
30
  import com.facebook.systrace.Systrace;
32
31
  import com.facebook.systrace.SystraceMessage;
@@ -730,9 +729,7 @@ public class UIImplementation {
730
729
  return;
731
730
  }
732
731
 
733
- while (node.getNativeKind() == NativeKind.NONE) {
734
- node = node.getParent();
735
- }
732
+ // While loop removed due to NativeKind removal
736
733
  mOperationsQueue.enqueueSetJSResponder(node.getReactTag(), reactTag, blockNativeResponder);
737
734
  }
738
735
 
@@ -782,13 +779,6 @@ public class UIImplementation {
782
779
  mViewManagers.invalidate();
783
780
  }
784
781
 
785
- // NOTE: When converted to Kotlin this method should be `internal` due to
786
- // visibility restriction for `NotThreadSafeViewHierarchyUpdateDebugListener`
787
- public void setViewHierarchyUpdateDebugListener(
788
- @Nullable NotThreadSafeViewHierarchyUpdateDebugListener listener) {
789
- mOperationsQueue.setViewHierarchyUpdateDebugListener(listener);
790
- }
791
-
792
782
  protected final void removeShadowNode(ReactShadowNode nodeToRemove) {
793
783
  removeShadowNodeRecursive(nodeToRemove);
794
784
  nodeToRemove.dispose();
@@ -25,7 +25,6 @@ import com.facebook.react.bridge.Callback;
25
25
  import com.facebook.react.bridge.Dynamic;
26
26
  import com.facebook.react.bridge.GuardedRunnable;
27
27
  import com.facebook.react.bridge.LifecycleEventListener;
28
- import com.facebook.react.bridge.OnBatchCompleteListener;
29
28
  import com.facebook.react.bridge.ReactApplicationContext;
30
29
  import com.facebook.react.bridge.ReactContextBaseJavaModule;
31
30
  import com.facebook.react.bridge.ReactMarker;
@@ -45,7 +44,6 @@ import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
45
44
  import com.facebook.react.common.build.ReactBuildConfig;
46
45
  import com.facebook.react.module.annotations.ReactModule;
47
46
  import com.facebook.react.uimanager.common.ViewUtil;
48
- import com.facebook.react.uimanager.debug.NotThreadSafeViewHierarchyUpdateDebugListener;
49
47
  import com.facebook.react.uimanager.events.EventDispatcher;
50
48
  import com.facebook.react.uimanager.events.EventDispatcherImpl;
51
49
  import com.facebook.react.uimanager.events.RCTEventEmitter;
@@ -90,7 +88,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
90
88
  @Deprecated(
91
89
  since = "This class is part of Legacy Architecture and will be removed in a future release")
92
90
  public class UIManagerModule extends ReactContextBaseJavaModule
93
- implements OnBatchCompleteListener, LifecycleEventListener, UIManager {
91
+ implements LifecycleEventListener, UIManager {
94
92
  static {
95
93
  LegacyArchitectureLogger.assertLegacyArchitecture(
96
94
  "UIManagerModule", LegacyArchitectureLogLevel.ERROR);
@@ -662,50 +660,6 @@ public class UIManagerModule extends ReactContextBaseJavaModule
662
660
  mUIImplementation.configureNextLayoutAnimation(config, success);
663
661
  }
664
662
 
665
- /**
666
- * To implement the transactional requirement mentioned in the class javadoc, we only commit UI
667
- * changes to the actual view hierarchy once a batch of JS->Java calls have been completed. We
668
- * know this is safe because all JS->Java calls that are triggered by a Java->JS call (e.g. the
669
- * delivery of a touch event or execution of 'renderApplication') end up in a single JS->Java
670
- * transaction.
671
- *
672
- * <p>A better way to do this would be to have JS explicitly signal to this module when a UI
673
- * transaction is done. Right now, though, this is how iOS does it, and we should probably update
674
- * the JS and native code and make this change at the same time.
675
- *
676
- * <p>TODO(5279396): Make JS UI library explicitly notify the native UI module of the end of a UI
677
- * transaction using a standard native call
678
- */
679
- @Override
680
- public void onBatchComplete() {
681
- int batchId = mBatchId;
682
- mBatchId++;
683
-
684
- SystraceMessage.beginSection(Systrace.TRACE_TAG_REACT, "onBatchCompleteUI")
685
- .arg("BatchId", batchId)
686
- .flush();
687
- for (UIManagerListener listener : mUIManagerListeners) {
688
- listener.willDispatchViewUpdates(this);
689
- }
690
- try {
691
- // If there are no RootViews registered, there will be no View updates to dispatch.
692
- // This is a hack to prevent this from being called when Fabric is used everywhere.
693
- // This should no longer be necessary in Bridgeless Mode.
694
- if (mUIImplementation.getRootViewNum() > 0) {
695
- mUIImplementation.dispatchViewUpdates(batchId);
696
- }
697
- } finally {
698
- Systrace.endSection(Systrace.TRACE_TAG_REACT);
699
- }
700
- }
701
-
702
- // NOTE: When converted to Kotlin this method should be `internal` due to
703
- // visibility restriction for `NotThreadSafeViewHierarchyUpdateDebugListener`
704
- public void setViewHierarchyUpdateDebugListener(
705
- @Nullable NotThreadSafeViewHierarchyUpdateDebugListener listener) {
706
- mUIImplementation.setViewHierarchyUpdateDebugListener(listener);
707
- }
708
-
709
663
  @Override
710
664
  public EventDispatcher getEventDispatcher() {
711
665
  return mEventDispatcher;
@@ -29,7 +29,6 @@ import com.facebook.react.common.annotations.internal.LegacyArchitecture;
29
29
  import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
30
30
  import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
31
31
  import com.facebook.react.modules.core.ReactChoreographer;
32
- import com.facebook.react.uimanager.debug.NotThreadSafeViewHierarchyUpdateDebugListener;
33
32
  import com.facebook.systrace.Systrace;
34
33
  import com.facebook.systrace.SystraceMessage;
35
34
  import com.facebook.yoga.YogaDirection;
@@ -584,7 +583,6 @@ public class UIViewOperationQueue {
584
583
  @GuardedBy("mNonBatchedOperationsLock")
585
584
  private ArrayDeque<UIOperation> mNonBatchedOperations = new ArrayDeque<>();
586
585
 
587
- private @Nullable NotThreadSafeViewHierarchyUpdateDebugListener mViewHierarchyUpdateDebugListener;
588
586
  private boolean mIsDispatchUIFrameCallbackEnqueued = false;
589
587
  private boolean mIsInIllegalUIState = false;
590
588
  private boolean mIsProfilingNextBatch = false;
@@ -619,13 +617,6 @@ public class UIViewOperationQueue {
619
617
  return mNativeViewHierarchyManager;
620
618
  }
621
619
 
622
- // NOTE: When converted to Kotlin this method should be `internal` due to
623
- // visibility restriction for `NotThreadSafeViewHierarchyUpdateDebugListener`
624
- public void setViewHierarchyUpdateDebugListener(
625
- @Nullable NotThreadSafeViewHierarchyUpdateDebugListener listener) {
626
- mViewHierarchyUpdateDebugListener = listener;
627
- }
628
-
629
620
  public void profileNextBatch() {
630
621
  mIsProfilingNextBatch = true;
631
622
  mProfiledBatchCommitStartTime = 0;
@@ -833,10 +824,6 @@ public class UIViewOperationQueue {
833
824
  }
834
825
  }
835
826
 
836
- if (mViewHierarchyUpdateDebugListener != null) {
837
- mViewHierarchyUpdateDebugListener.onViewHierarchyUpdateEnqueued();
838
- }
839
-
840
827
  Runnable runOperations =
841
828
  new Runnable() {
842
829
  @Override
@@ -926,9 +913,6 @@ public class UIViewOperationQueue {
926
913
  // Clear layout animation, as animation only apply to current UI operations batch.
927
914
  mNativeViewHierarchyManager.clearLayoutAnimation();
928
915
 
929
- if (mViewHierarchyUpdateDebugListener != null) {
930
- mViewHierarchyUpdateDebugListener.onViewHierarchyUpdateFinished();
931
- }
932
916
  } catch (Exception e) {
933
917
  mIsInIllegalUIState = true;
934
918
  throw e;
@@ -82,7 +82,7 @@ internal class OutlineDrawable(
82
82
  }
83
83
 
84
84
  private val outlinePaint: Paint =
85
- Paint().apply {
85
+ Paint(Paint.ANTI_ALIAS_FLAG).apply {
86
86
  style = Paint.Style.STROKE
87
87
  color = outlineColor
88
88
  strokeWidth = outlineWidth
@@ -7,14 +7,12 @@
7
7
 
8
8
  package com.facebook.react.uimanager.events
9
9
 
10
- import android.os.Handler
11
10
  import android.view.Choreographer
12
11
  import com.facebook.react.bridge.LifecycleEventListener
13
12
  import com.facebook.react.bridge.ReactApplicationContext
14
13
  import com.facebook.react.bridge.ReactSoftExceptionLogger
15
14
  import com.facebook.react.bridge.UiThreadUtil
16
15
  import com.facebook.react.common.annotations.UnstableReactNativeAPI
17
- import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
18
16
  import com.facebook.react.modules.core.ReactChoreographer
19
17
  import com.facebook.react.uimanager.UIManagerHelper
20
18
  import com.facebook.react.uimanager.common.UIManagerType
@@ -41,19 +39,6 @@ internal class FabricEventDispatcher(
41
39
  private val postEventDispatchListeners = CopyOnWriteArrayList<BatchEventDispatchedListener>()
42
40
  private val currentFrameCallback = ScheduleDispatchFrameCallback()
43
41
 
44
- private var isDispatchScheduled = false
45
- private val dispatchEventsRunnable = Runnable {
46
- isDispatchScheduled = false
47
- Systrace.beginSection(Systrace.TRACE_TAG_REACT, "BatchEventDispatchedListeners")
48
- try {
49
- for (listener in postEventDispatchListeners) {
50
- listener.onBatchEventDispatched()
51
- }
52
- } finally {
53
- Systrace.endSection(Systrace.TRACE_TAG_REACT)
54
- }
55
- }
56
-
57
42
  init {
58
43
  reactContext.addLifecycleEventListener(this)
59
44
  eventEmitter.registerFabricEventEmitter(fabricEventEmitter)
@@ -109,14 +94,7 @@ internal class FabricEventDispatcher(
109
94
  }
110
95
 
111
96
  private fun scheduleDispatchOfBatchedEvents() {
112
- if (ReactNativeFeatureFlags.useOptimizedEventBatchingOnAndroid()) {
113
- if (!isDispatchScheduled) {
114
- isDispatchScheduled = true
115
- uiThreadHandler.postAtFrontOfQueue(dispatchEventsRunnable)
116
- }
117
- } else {
118
- currentFrameCallback.maybeScheduleDispatchOfBatchedEvents()
119
- }
97
+ currentFrameCallback.maybeScheduleDispatchOfBatchedEvents()
120
98
  }
121
99
 
122
100
  /** Add a listener to this EventDispatcher. */
@@ -139,9 +117,7 @@ internal class FabricEventDispatcher(
139
117
 
140
118
  override fun onHostResume() {
141
119
  scheduleDispatchOfBatchedEvents()
142
- if (!ReactNativeFeatureFlags.useOptimizedEventBatchingOnAndroid()) {
143
- currentFrameCallback.resume()
144
- }
120
+ currentFrameCallback.resume()
145
121
  }
146
122
 
147
123
  override fun onHostPause() {
@@ -165,12 +141,7 @@ internal class FabricEventDispatcher(
165
141
 
166
142
  private fun cancelDispatchOfBatchedEvents() {
167
143
  UiThreadUtil.assertOnUiThread()
168
- if (ReactNativeFeatureFlags.useOptimizedEventBatchingOnAndroid()) {
169
- isDispatchScheduled = false
170
- uiThreadHandler.removeCallbacks(dispatchEventsRunnable)
171
- } else {
172
- currentFrameCallback.stop()
173
- }
144
+ currentFrameCallback.stop()
174
145
  }
175
146
 
176
147
  private inner class ScheduleDispatchFrameCallback : Choreographer.FrameCallback {
@@ -229,8 +200,4 @@ internal class FabricEventDispatcher(
229
200
  }
230
201
  }
231
202
  }
232
-
233
- private companion object {
234
- private val uiThreadHandler: Handler = UiThreadUtil.getUiThreadHandler()
235
- }
236
203
  }
@@ -0,0 +1,23 @@
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.events
9
+
10
+ import android.view.KeyEvent as AndroidKeyEvent
11
+
12
+ internal class KeyDownEvent(
13
+ surfaceId: Int,
14
+ viewTag: Int,
15
+ keyEvent: AndroidKeyEvent,
16
+ ) : KeyEvent(surfaceId, viewTag, keyEvent) {
17
+
18
+ override fun getEventName(): String = EVENT_NAME
19
+
20
+ companion object {
21
+ private const val EVENT_NAME: String = "topKeyDown"
22
+ }
23
+ }
@@ -0,0 +1,156 @@
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.events
9
+
10
+ import android.view.KeyEvent as AndroidKeyEvent
11
+ import com.facebook.react.bridge.Arguments
12
+ import com.facebook.react.bridge.WritableMap
13
+
14
+ internal abstract class KeyEvent(
15
+ surfaceId: Int,
16
+ viewTag: Int,
17
+ keyEvent: AndroidKeyEvent,
18
+ ) : Event<KeyEvent>(surfaceId, viewTag) {
19
+
20
+ // Extract all needed data from keyEvent immediately to avoid storing the AndroidKeyEvent itself
21
+ private val keyCode: Int = keyEvent.keyCode
22
+ private val unicodeChar: Int = keyEvent.unicodeChar
23
+ private val isAltPressed: Boolean = keyEvent.isAltPressed
24
+ private val isCtrlPressed: Boolean = keyEvent.isCtrlPressed
25
+ private val isMetaPressed: Boolean = keyEvent.isMetaPressed
26
+ private val isShiftPressed: Boolean = keyEvent.isShiftPressed
27
+
28
+ override fun canCoalesce(): Boolean = false
29
+
30
+ override fun getEventCategory(): Int = EventCategoryDef.DISCRETE
31
+
32
+ override fun getEventData(): WritableMap {
33
+ val eventData = Arguments.createMap()
34
+
35
+ eventData.putInt("target", viewTag)
36
+
37
+ // W3C KeyboardEvent properties
38
+ eventData.putString("key", getKeyString())
39
+ eventData.putString("code", getCodeString())
40
+
41
+ // Modifier keys
42
+ eventData.putBoolean("altKey", isAltPressed)
43
+ eventData.putBoolean("ctrlKey", isCtrlPressed)
44
+ eventData.putBoolean("metaKey", isMetaPressed)
45
+ eventData.putBoolean("shiftKey", isShiftPressed)
46
+
47
+ // Additional properties
48
+ eventData.putDouble("timestamp", timestampMs.toDouble())
49
+
50
+ return eventData
51
+ }
52
+
53
+ private fun getKeyString(): String {
54
+ return when {
55
+ unicodeChar != 0 && !Character.isISOControl(unicodeChar) -> unicodeChar.toChar().toString()
56
+ else -> KEY_NAME_MAP[keyCode] ?: UNIDENTIFIED
57
+ }
58
+ }
59
+
60
+ private fun getCodeString(): String {
61
+ return CODE_MAP[keyCode] ?: UNIDENTIFIED
62
+ }
63
+
64
+ internal companion object {
65
+ private const val UNIDENTIFIED = "Unidentified"
66
+
67
+ private val CODE_MAP: Map<Int, String> by
68
+ lazy(LazyThreadSafetyMode.PUBLICATION) {
69
+ mapOf(
70
+ // Letter keys
71
+ AndroidKeyEvent.KEYCODE_A to "KeyA",
72
+ AndroidKeyEvent.KEYCODE_B to "KeyB",
73
+ AndroidKeyEvent.KEYCODE_C to "KeyC",
74
+ AndroidKeyEvent.KEYCODE_D to "KeyD",
75
+ AndroidKeyEvent.KEYCODE_E to "KeyE",
76
+ AndroidKeyEvent.KEYCODE_F to "KeyF",
77
+ AndroidKeyEvent.KEYCODE_G to "KeyG",
78
+ AndroidKeyEvent.KEYCODE_H to "KeyH",
79
+ AndroidKeyEvent.KEYCODE_I to "KeyI",
80
+ AndroidKeyEvent.KEYCODE_J to "KeyJ",
81
+ AndroidKeyEvent.KEYCODE_K to "KeyK",
82
+ AndroidKeyEvent.KEYCODE_L to "KeyL",
83
+ AndroidKeyEvent.KEYCODE_M to "KeyM",
84
+ AndroidKeyEvent.KEYCODE_N to "KeyN",
85
+ AndroidKeyEvent.KEYCODE_O to "KeyO",
86
+ AndroidKeyEvent.KEYCODE_P to "KeyP",
87
+ AndroidKeyEvent.KEYCODE_Q to "KeyQ",
88
+ AndroidKeyEvent.KEYCODE_R to "KeyR",
89
+ AndroidKeyEvent.KEYCODE_S to "KeyS",
90
+ AndroidKeyEvent.KEYCODE_T to "KeyT",
91
+ AndroidKeyEvent.KEYCODE_U to "KeyU",
92
+ AndroidKeyEvent.KEYCODE_V to "KeyV",
93
+ AndroidKeyEvent.KEYCODE_W to "KeyW",
94
+ AndroidKeyEvent.KEYCODE_X to "KeyX",
95
+ AndroidKeyEvent.KEYCODE_Y to "KeyY",
96
+ AndroidKeyEvent.KEYCODE_Z to "KeyZ",
97
+ // Digit keys
98
+ AndroidKeyEvent.KEYCODE_0 to "Digit0",
99
+ AndroidKeyEvent.KEYCODE_1 to "Digit1",
100
+ AndroidKeyEvent.KEYCODE_2 to "Digit2",
101
+ AndroidKeyEvent.KEYCODE_3 to "Digit3",
102
+ AndroidKeyEvent.KEYCODE_4 to "Digit4",
103
+ AndroidKeyEvent.KEYCODE_5 to "Digit5",
104
+ AndroidKeyEvent.KEYCODE_6 to "Digit6",
105
+ AndroidKeyEvent.KEYCODE_7 to "Digit7",
106
+ AndroidKeyEvent.KEYCODE_8 to "Digit8",
107
+ AndroidKeyEvent.KEYCODE_9 to "Digit9",
108
+ // Special keys
109
+ AndroidKeyEvent.KEYCODE_ENTER to "Enter",
110
+ AndroidKeyEvent.KEYCODE_SPACE to "Space",
111
+ AndroidKeyEvent.KEYCODE_TAB to "Tab",
112
+ AndroidKeyEvent.KEYCODE_DEL to "Backspace",
113
+ AndroidKeyEvent.KEYCODE_ESCAPE to "Escape",
114
+ // Modifier keys
115
+ AndroidKeyEvent.KEYCODE_SHIFT_LEFT to "ShiftLeft",
116
+ AndroidKeyEvent.KEYCODE_SHIFT_RIGHT to "ShiftRight",
117
+ AndroidKeyEvent.KEYCODE_CTRL_LEFT to "ControlLeft",
118
+ AndroidKeyEvent.KEYCODE_CTRL_RIGHT to "ControlRight",
119
+ AndroidKeyEvent.KEYCODE_ALT_LEFT to "AltLeft",
120
+ AndroidKeyEvent.KEYCODE_ALT_RIGHT to "AltRight",
121
+ AndroidKeyEvent.KEYCODE_META_LEFT to "MetaLeft",
122
+ AndroidKeyEvent.KEYCODE_META_RIGHT to "MetaRight",
123
+ // Arrow keys
124
+ AndroidKeyEvent.KEYCODE_DPAD_UP to "ArrowUp",
125
+ AndroidKeyEvent.KEYCODE_DPAD_DOWN to "ArrowDown",
126
+ AndroidKeyEvent.KEYCODE_DPAD_LEFT to "ArrowLeft",
127
+ AndroidKeyEvent.KEYCODE_DPAD_RIGHT to "ArrowRight",
128
+ AndroidKeyEvent.KEYCODE_DPAD_CENTER to "Enter",
129
+ )
130
+ }
131
+
132
+ private val KEY_NAME_MAP: Map<Int, String> by
133
+ lazy(LazyThreadSafetyMode.PUBLICATION) {
134
+ mapOf(
135
+ AndroidKeyEvent.KEYCODE_ENTER to "Enter",
136
+ AndroidKeyEvent.KEYCODE_DPAD_CENTER to "Enter",
137
+ AndroidKeyEvent.KEYCODE_SPACE to " ",
138
+ AndroidKeyEvent.KEYCODE_TAB to "Tab",
139
+ AndroidKeyEvent.KEYCODE_DEL to "Backspace",
140
+ AndroidKeyEvent.KEYCODE_ESCAPE to "Escape",
141
+ AndroidKeyEvent.KEYCODE_SHIFT_LEFT to "Shift",
142
+ AndroidKeyEvent.KEYCODE_SHIFT_RIGHT to "Shift",
143
+ AndroidKeyEvent.KEYCODE_CTRL_LEFT to "Control",
144
+ AndroidKeyEvent.KEYCODE_CTRL_RIGHT to "Control",
145
+ AndroidKeyEvent.KEYCODE_ALT_LEFT to "Alt",
146
+ AndroidKeyEvent.KEYCODE_ALT_RIGHT to "Alt",
147
+ AndroidKeyEvent.KEYCODE_META_LEFT to "Meta",
148
+ AndroidKeyEvent.KEYCODE_META_RIGHT to "Meta",
149
+ AndroidKeyEvent.KEYCODE_DPAD_UP to "ArrowUp",
150
+ AndroidKeyEvent.KEYCODE_DPAD_DOWN to "ArrowDown",
151
+ AndroidKeyEvent.KEYCODE_DPAD_LEFT to "ArrowLeft",
152
+ AndroidKeyEvent.KEYCODE_DPAD_RIGHT to "ArrowRight",
153
+ )
154
+ }
155
+ }
156
+ }
@@ -0,0 +1,24 @@
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.events
9
+
10
+ import android.view.KeyEvent as AndroidKeyEvent
11
+
12
+ /** An event representing a key release (keyup). Corresponds to W3C KeyboardEvent specification. */
13
+ internal class KeyUpEvent(
14
+ surfaceId: Int,
15
+ viewTag: Int,
16
+ keyEvent: AndroidKeyEvent,
17
+ ) : KeyEvent(surfaceId, viewTag, keyEvent) {
18
+
19
+ override fun getEventName(): String = EVENT_NAME
20
+
21
+ companion object {
22
+ private const val EVENT_NAME: String = "topKeyUp"
23
+ }
24
+ }
@@ -29,7 +29,8 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
29
29
  private lateinit var _eventName: String
30
30
  private var coalescingKey = UNSET_COALESCING_KEY
31
31
  private var pointersEventData: List<WritableMap>? = null
32
- private lateinit var eventState: PointerEventState
32
+ private var eventState: PointerEventState? = null
33
+ private var activeHitPathViewIds: List<Int>? = null
33
34
 
34
35
  private fun init(
35
36
  eventName: String,
@@ -37,12 +38,14 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
37
38
  eventState: PointerEventState,
38
39
  motionEventToCopy: MotionEvent,
39
40
  coalescingKey: Short,
41
+ activeHitPathViewIds: List<Int>?,
40
42
  ) {
41
43
  super.init(eventState.getSurfaceId(), targetTag, motionEventToCopy.eventTime)
42
44
  this._eventName = eventName
43
45
  this.motionEvent = MotionEvent.obtain(motionEventToCopy)
44
46
  this.coalescingKey = coalescingKey
45
47
  this.eventState = eventState
48
+ this.activeHitPathViewIds = activeHitPathViewIds
46
49
  }
47
50
 
48
51
  override fun getEventName(): String = _eventName
@@ -84,7 +87,7 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
84
87
  return@EventAnimationDriverMatchSpec false
85
88
  }
86
89
  if (isBubblingEvent(eventName)) {
87
- for (viewTarget in eventState.hitPathForActivePointer) {
90
+ for (viewTarget in checkNotNull(eventState).hitPathForActivePointer) {
88
91
  if (viewTarget.getViewId() == viewTag) {
89
92
  return@EventAnimationDriverMatchSpec true
90
93
  }
@@ -97,10 +100,10 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
97
100
  }
98
101
 
99
102
  override fun onDispose() {
103
+ eventState = null
100
104
  pointersEventData = null
101
- val motionEvent = motionEvent
102
- this.motionEvent = null
103
105
  motionEvent?.recycle()
106
+ motionEvent = null
104
107
 
105
108
  // Either `this` is in the event pool, or motionEvent
106
109
  // is null. It is in theory not possible for a PointerEvent to
@@ -137,6 +140,7 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
137
140
  val pointerEvent = Arguments.createMap()
138
141
  val motionEvent = checkNotNull(motionEvent)
139
142
  val pointerId = motionEvent.getPointerId(index)
143
+ val eventState = checkNotNull(eventState)
140
144
 
141
145
  // https://www.w3.org/TR/pointerevents/#pointerevent-interface
142
146
  pointerEvent.putDouble("pointerId", pointerId.toDouble())
@@ -212,6 +216,13 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
212
216
  pointerEvent.putDouble("pressure", pressure)
213
217
  pointerEvent.putDouble("tangentialPressure", 0.0)
214
218
 
219
+ if (activeHitPathViewIds != null) {
220
+ pointerEvent.putArray(
221
+ "hitPathForEventListener",
222
+ Arguments.makeNativeArray(activeHitPathViewIds),
223
+ )
224
+ }
225
+
215
226
  addModifierKeyData(pointerEvent, motionEvent.metaState)
216
227
 
217
228
  return pointerEvent
@@ -295,6 +306,9 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
295
306
 
296
307
  val hitPathForActivePointer: List<ViewTarget>
297
308
  get() = checkNotNull(hitPathByPointerId[activePointerId])
309
+
310
+ val hitPathViewIdsForActivePointer: List<Int>
311
+ get() = checkNotNull(hitPathByPointerId[activePointerId]).map { it.getViewId() }
298
312
  }
299
313
 
300
314
  companion object {
@@ -309,6 +323,15 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
309
323
  targetTag: Int,
310
324
  eventState: PointerEventState,
311
325
  motionEventToCopy: MotionEvent?,
326
+ ): PointerEvent = obtain(eventName, targetTag, eventState, motionEventToCopy, null)
327
+
328
+ @JvmStatic
329
+ fun obtain(
330
+ eventName: String,
331
+ targetTag: Int,
332
+ eventState: PointerEventState,
333
+ motionEventToCopy: MotionEvent?,
334
+ activeHitPathViewIds: List<Int>?,
312
335
  ): PointerEvent {
313
336
  var event = EVENTS_POOL.acquire()
314
337
  if (event == null) {
@@ -320,6 +343,7 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
320
343
  eventState,
321
344
  Assertions.assertNotNull(motionEventToCopy),
322
345
  0.toShort(),
346
+ activeHitPathViewIds,
323
347
  )
324
348
  return event
325
349
  }
@@ -342,6 +366,7 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
342
366
  eventState,
343
367
  Assertions.assertNotNull(motionEventToCopy),
344
368
  coalescingKey,
369
+ null,
345
370
  )
346
371
  return event
347
372
  }
@@ -372,15 +372,18 @@ public class ReactImageView(
372
372
  public override fun hasOverlappingRendering(): Boolean = false
373
373
 
374
374
  public override fun onDraw(canvas: Canvas) {
375
- BackgroundStyleApplicator.clipToPaddingBox(this, canvas)
376
- try {
377
- super.onDraw(canvas)
378
- } catch (e: RuntimeException) {
379
- // Only provide updates if downloadListener is set (shouldNotify is true)
380
- if (downloadListener != null) {
381
- val eventDispatcher =
382
- UIManagerHelper.getEventDispatcherForReactTag(context as ReactContext, id)
383
- eventDispatcher?.dispatchEvent(createErrorEvent(UIManagerHelper.getSurfaceId(this), id, e))
375
+ BackgroundStyleApplicator.clipToPaddingBoxWithAntiAliasing(this, canvas) {
376
+ try {
377
+ super.onDraw(canvas)
378
+ } catch (e: RuntimeException) {
379
+ // Only provide updates if downloadListener is set (shouldNotify is true)
380
+ if (downloadListener != null) {
381
+ val eventDispatcher =
382
+ UIManagerHelper.getEventDispatcherForReactTag(context as ReactContext, id)
383
+ eventDispatcher?.dispatchEvent(
384
+ createErrorEvent(UIManagerHelper.getSurfaceId(this), id, e)
385
+ )
386
+ }
384
387
  }
385
388
  }
386
389
  }
@@ -646,7 +646,7 @@ public class ReactModalHostView(context: ThemedReactContext) :
646
646
 
647
647
  override fun onInterceptHoverEvent(event: MotionEvent): Boolean {
648
648
  eventDispatcher?.let { jSPointerDispatcher?.handleMotionEvent(event, it, true) }
649
- return super.onHoverEvent(event)
649
+ return super.onInterceptHoverEvent(event)
650
650
  }
651
651
 
652
652
  override fun onHoverEvent(event: MotionEvent): Boolean {