react-native 0.0.0-16bb2ae4f → 0.0.0-18697adec

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 (616) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +14 -1
  2. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -0
  3. package/Libraries/Animated/AnimatedEvent.js +23 -4
  4. package/Libraries/Animated/NativeAnimatedHelper.js +3 -3
  5. package/Libraries/BatchedBridge/MessageQueue.js +10 -10
  6. package/Libraries/Blob/FileReader.js +1 -1
  7. package/Libraries/Blob/React-RCTBlob.podspec +1 -1
  8. package/Libraries/Blob/URL.js +1 -1
  9. package/Libraries/Components/Button.js +3 -0
  10. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +3 -6
  11. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
  12. package/Libraries/Components/ScrollView/ScrollView.js +14 -5
  13. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -0
  14. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +268 -252
  15. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -0
  16. package/Libraries/Components/StatusBar/StatusBar.js +6 -14
  17. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +2 -3
  18. package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +1 -0
  19. package/Libraries/Components/TextInput/TextInput.js +27 -1
  20. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  21. package/Libraries/Components/View/ViewAccessibility.js +1 -0
  22. package/Libraries/Core/ExceptionsManager.js +3 -1
  23. package/Libraries/Core/ReactNativeVersion.js +1 -1
  24. package/Libraries/Core/Timers/JSTimers.js +37 -28
  25. package/Libraries/Core/Timers/immediateShim.js +67 -0
  26. package/Libraries/Core/Timers/queueMicrotask.js +41 -0
  27. package/Libraries/Core/polyfillPromise.js +1 -1
  28. package/Libraries/Core/setUpBatchedBridge.js +1 -1
  29. package/Libraries/Core/setUpGlobals.js +2 -0
  30. package/Libraries/Core/setUpRegeneratorRuntime.js +25 -8
  31. package/Libraries/Core/setUpTimers.js +65 -6
  32. package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +1 -1
  33. package/Libraries/Image/Image.ios.js +6 -0
  34. package/Libraries/Image/ImageBackground.js +10 -8
  35. package/Libraries/Image/ImageProps.js +28 -0
  36. package/Libraries/Image/ImageSource.js +1 -1
  37. package/Libraries/Image/React-RCTImage.podspec +1 -1
  38. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
  39. package/Libraries/Lists/FlatList.js +43 -26
  40. package/Libraries/Lists/VirtualizedList.js +3 -1
  41. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +4 -4
  42. package/Libraries/LogBox/Data/LogBoxData.js +18 -18
  43. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  44. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  45. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  46. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  47. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  48. package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
  49. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
  50. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +1 -2
  51. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +17 -11
  52. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
  53. package/Libraries/Network/React-RCTNetwork.podspec +1 -1
  54. package/Libraries/Network/XMLHttpRequest.js +3 -1
  55. package/Libraries/NewAppScreen/components/logo.png +0 -0
  56. package/Libraries/Performance/QuickPerformanceLogger.js +2 -1
  57. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -1
  58. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +2 -0
  59. package/Libraries/Pressability/Pressability.js +1 -0
  60. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -0
  61. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +0 -1
  62. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
  63. package/Libraries/ReactNative/AppRegistry.js +1 -1
  64. package/Libraries/ReactNative/PaperUIManager.js +1 -0
  65. package/Libraries/ReactNative/renderApplication.js +1 -1
  66. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
  67. package/Libraries/Reliability/UserFlow.js +7 -0
  68. package/Libraries/Renderer/REVISION +1 -1
  69. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +4485 -3842
  70. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +2060 -1709
  71. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +2148 -1796
  72. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +4264 -3695
  73. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +1303 -1063
  74. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +1374 -1139
  75. package/Libraries/Renderer/shims/ReactFabric.js +3 -1
  76. package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
  77. package/Libraries/Renderer/shims/ReactNative.js +3 -1
  78. package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
  79. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
  80. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
  81. package/Libraries/Settings/React-RCTSettings.podspec +1 -1
  82. package/Libraries/StyleSheet/normalizeColor.js +2 -2
  83. package/Libraries/Text/Text.js +11 -0
  84. package/Libraries/Text/TextInput/RCTBaseTextInputView.m +2 -12
  85. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
  86. package/Libraries/Text/TextProps.js +1 -7
  87. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
  88. package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
  89. package/Libraries/UTFSequence.js +1 -1
  90. package/Libraries/Utilities/Dimensions.js +9 -14
  91. package/Libraries/Utilities/FeatureDetection.js +31 -0
  92. package/Libraries/Utilities/HMRClient.js +10 -6
  93. package/Libraries/Utilities/MatrixMath.js +1 -1
  94. package/Libraries/Utilities/NativeDeviceInfo.js +1 -1
  95. package/Libraries/Utilities/deprecatedPropType.js +2 -2
  96. package/Libraries/Utilities/useWindowDimensions.js +7 -2
  97. package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
  98. package/Libraries/vendor/emitter/_EventSubscriptionVendor.js +1 -1
  99. package/React/Base/RCTBridge+Private.h +8 -0
  100. package/React/Base/RCTBridge.h +13 -0
  101. package/React/Base/RCTBridge.m +30 -7
  102. package/React/Base/RCTBridgeModule.h +3 -12
  103. package/React/Base/RCTBundleURLProvider.h +26 -1
  104. package/React/Base/RCTBundleURLProvider.mm +79 -15
  105. package/React/Base/RCTConstants.h +6 -7
  106. package/React/Base/RCTConstants.m +12 -12
  107. package/React/Base/RCTConvert.h +1 -1
  108. package/React/Base/RCTConvert.m +1 -1
  109. package/React/Base/RCTCxxConvert.h +1 -1
  110. package/React/Base/RCTDefines.h +12 -3
  111. package/React/Base/RCTEventDispatcherProtocol.h +2 -0
  112. package/React/Base/RCTJSThread.h +29 -0
  113. package/React/Base/RCTJSThread.m +19 -0
  114. package/React/Base/RCTMultipartStreamReader.m +0 -2
  115. package/React/Base/RCTRootView.h +15 -0
  116. package/React/Base/RCTRootView.m +15 -0
  117. package/React/Base/RCTTouchHandler.m +4 -9
  118. package/React/Base/RCTUtils.h +3 -0
  119. package/React/Base/RCTUtils.m +14 -7
  120. package/React/Base/RCTVersion.m +1 -1
  121. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +11 -0
  122. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +35 -1
  123. package/React/CoreModules/BUCK +3 -3
  124. package/React/CoreModules/RCTAccessibilityManager.mm +1 -1
  125. package/React/CoreModules/RCTActionSheetManager.mm +14 -5
  126. package/React/CoreModules/RCTAsyncLocalStorage.mm +4 -0
  127. package/React/CoreModules/RCTDevLoadingView.mm +5 -10
  128. package/React/CoreModules/RCTDevSettings.mm +12 -10
  129. package/React/CoreModules/RCTDevSplitBundleLoader.mm +1 -1
  130. package/React/CoreModules/RCTDeviceInfo.mm +4 -4
  131. package/React/CoreModules/RCTEventDispatcher.mm +5 -0
  132. package/React/CoreModules/RCTLogBox.mm +14 -10
  133. package/React/CoreModules/RCTPerfMonitor.mm +9 -4
  134. package/React/CoreModules/RCTRedBox.mm +1 -5
  135. package/React/CoreModules/React-CoreModules.podspec +1 -1
  136. package/React/CxxBridge/RCTCxxBridge.mm +18 -1
  137. package/React/DevSupport/RCTPackagerConnection.h +3 -0
  138. package/React/DevSupport/RCTPackagerConnection.mm +19 -8
  139. package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +12 -4
  140. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +1 -2
  141. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +64 -62
  142. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +31 -11
  143. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
  144. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +108 -4
  145. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +1 -0
  146. package/React/Fabric/Mounting/RCTMountingManager.h +3 -0
  147. package/React/Fabric/Mounting/RCTMountingManager.mm +22 -3
  148. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.h +2 -0
  149. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.mm +12 -0
  150. package/React/Fabric/RCTConversions.h +3 -0
  151. package/React/Fabric/RCTScheduler.mm +12 -5
  152. package/React/Fabric/RCTSurfacePresenter.mm +6 -7
  153. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.h +1 -1
  154. package/React/Fabric/RCTSurfaceRegistry.h +1 -1
  155. package/React/Fabric/RCTSurfaceTouchHandler.mm +6 -20
  156. package/React/Fabric/Surface/RCTFabricSurface.mm +3 -0
  157. package/React/Modules/RCTI18nUtil.h +14 -6
  158. package/React/Modules/RCTI18nUtil.m +1 -47
  159. package/React/Profiler/RCTProfileTrampoline-arm.S +1 -1
  160. package/React/Profiler/RCTProfileTrampoline-arm64.S +2 -2
  161. package/React/React-RCTFabric.podspec +1 -1
  162. package/React/Views/RCTFont.mm +54 -38
  163. package/React/Views/RCTModalHostView.h +1 -1
  164. package/React/Views/RCTModalHostView.m +16 -0
  165. package/React/Views/RCTModalHostViewManager.m +1 -0
  166. package/React/Views/RCTView.m +2 -7
  167. package/React/Views/RCTViewManager.m +4 -2
  168. package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
  169. package/React/Views/ScrollView/RCTScrollView.h +1 -0
  170. package/React/Views/ScrollView/RCTScrollView.m +111 -36
  171. package/React/Views/ScrollView/RCTScrollViewManager.m +1 -7
  172. package/React/Views/UIView+React.m +2 -11
  173. package/React-Core.podspec +1 -1
  174. package/ReactAndroid/Android-prebuilt.mk +8 -0
  175. package/ReactAndroid/README.md +1 -1
  176. package/ReactAndroid/build.gradle +12 -5
  177. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/BUCK +1 -1
  178. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppInstrumentationTestCase.java +1 -1
  179. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/idledetection/BUCK +1 -1
  180. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/rule/BUCK +5 -5
  181. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -1
  182. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/core/BUCK +5 -5
  183. package/ReactAndroid/src/androidTest/js/BUCK +26 -0
  184. package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -7
  185. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/Android.mk +2 -2
  186. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/Android.mk +4 -4
  187. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutorFactory.java +1 -1
  188. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/RuntimeConfig.java +0 -6
  189. package/ReactAndroid/src/main/java/com/facebook/react/BUCK +1 -1
  190. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +1 -0
  191. package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.java +2 -0
  192. package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +6 -2
  193. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +89 -44
  194. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +28 -0
  195. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +13 -0
  196. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +5 -4
  197. package/ReactAndroid/src/main/java/com/facebook/react/animated/BUCK +1 -1
  198. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +2 -2
  199. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +4 -4
  200. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BackgroundExecutor.java +3 -2
  201. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +4 -0
  202. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +11 -0
  203. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java +37 -0
  204. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.java +22 -0
  205. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +3 -6
  206. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContextBaseJavaModule.java +1 -1
  207. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
  208. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{ReactSoftException.java → ReactSoftExceptionLogger.java} +8 -3
  209. package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
  210. package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.java +8 -7
  211. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java +10 -0
  212. package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
  213. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +1 -1
  214. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +32 -4
  215. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -1
  216. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +97 -0
  217. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +9 -58
  218. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +14 -9
  219. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +3 -72
  220. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.java +100 -0
  221. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +10 -0
  222. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java +4 -3
  223. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +1 -0
  224. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +64 -31
  225. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +3 -3
  226. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -1
  227. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +1 -1
  228. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +54 -10
  229. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +7 -1
  230. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +14 -6
  231. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +4 -4
  232. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +40 -11
  233. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.java +2 -2
  234. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/Android.mk +2 -2
  235. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +2 -2
  236. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/BUCK +1 -1
  237. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/BUCK +1 -1
  238. package/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/BUCK +1 -1
  239. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BUCK +1 -1
  240. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/Android.mk +2 -2
  241. package/ReactAndroid/src/main/java/com/facebook/react/modules/bundleloader/BUCK +1 -1
  242. package/ReactAndroid/src/main/java/com/facebook/react/modules/camera/BUCK +1 -1
  243. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/BUCK +1 -1
  244. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
  245. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
  246. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
  247. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/BUCK +1 -1
  248. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/BUCK +1 -1
  249. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.java +10 -6
  250. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +1 -1
  251. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/BUCK +1 -1
  252. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
  253. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/BUCK +1 -1
  254. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/BUCK +1 -1
  255. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
  256. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/BUCK +1 -1
  257. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
  258. package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/BUCK +1 -1
  259. package/ReactAndroid/src/main/java/com/facebook/react/modules/share/BUCK +1 -1
  260. package/ReactAndroid/src/main/java/com/facebook/react/modules/sound/BUCK +1 -1
  261. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/BUCK +1 -1
  262. package/ReactAndroid/src/main/java/com/facebook/react/modules/storage/BUCK +1 -1
  263. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/BUCK +2 -2
  264. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  265. package/ReactAndroid/src/main/java/com/facebook/react/modules/toast/BUCK +1 -1
  266. package/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/BUCK +1 -1
  267. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/BUCK +1 -1
  268. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +11 -9
  269. package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -1
  270. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -5
  271. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/TurboModuleManager.java +4 -2
  272. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.cpp +39 -11
  273. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.h +9 -2
  274. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.java +7 -28
  275. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/PixelUtil.java +1 -6
  276. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +2 -2
  277. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +25 -0
  278. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +162 -66
  279. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java +9 -9
  280. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +1 -0
  281. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +6 -5
  282. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +16 -1
  283. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +12 -20
  284. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +2 -2
  285. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +14 -13
  286. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +21 -5
  287. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +1 -1
  288. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +1 -1
  289. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/BUCK +1 -1
  290. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/BUCK +1 -1
  291. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.java +7 -11
  292. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/BUCK +1 -1
  293. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/BUCK +1 -0
  294. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +9 -1
  295. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +24 -1
  296. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.java +2 -2
  297. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/BUCK +1 -1
  298. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderManager.java +4 -7
  299. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/BUCK +1 -1
  300. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/BUCK +1 -1
  301. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
  302. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +23 -2
  303. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +8 -0
  304. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -1
  305. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +31 -12
  306. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +31 -11
  307. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/BUCK +1 -0
  308. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +14 -4
  309. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
  310. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +114 -62
  311. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
  312. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +39 -8
  313. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +24 -3
  314. package/ReactAndroid/src/main/jni/react/jni/Android.mk +5 -3
  315. package/ReactAndroid/src/main/jni/react/jni/BUCK +5 -2
  316. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +61 -0
  317. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +8 -0
  318. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
  319. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +25 -0
  320. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.cpp +21 -0
  321. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.h +28 -0
  322. package/{ReactCommon/react/renderer/core/Constants.cpp → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +6 -8
  323. package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
  324. package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
  325. package/ReactAndroid/src/main/jni/third-party/libevent/Android.mk +0 -1
  326. package/ReactAndroid/src/main/third-party/android/androidx/BUCK +63 -2
  327. package/ReactAndroid/src/main/third-party/java/testing-support-lib/BUCK +0 -31
  328. package/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.java +1 -0
  329. package/ReactAndroid/src/test/java/com/facebook/react/modules/BUCK +1 -0
  330. package/ReactAndroid/src/test/java/com/facebook/react/modules/deviceinfo/DeviceInfoModuleTest.java +168 -0
  331. package/ReactCommon/React-Fabric.podspec +10 -1
  332. package/ReactCommon/ReactCommon.podspec +2 -1
  333. package/ReactCommon/callinvoker/BUCK +2 -2
  334. package/ReactCommon/callinvoker/React-callinvoker.podspec +1 -1
  335. package/ReactCommon/cxxreact/Android.mk +2 -1
  336. package/ReactCommon/cxxreact/BUCK +1 -0
  337. package/ReactCommon/cxxreact/CxxNativeModule.cpp +28 -0
  338. package/ReactCommon/cxxreact/CxxNativeModule.h +9 -0
  339. package/ReactCommon/cxxreact/React-cxxreact.podspec +2 -1
  340. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  341. package/ReactCommon/hermes/React-hermes.podspec +1 -1
  342. package/ReactCommon/hermes/executor/Android.mk +4 -4
  343. package/ReactCommon/hermes/inspector/Android.mk +1 -2
  344. package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
  345. package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
  346. package/ReactCommon/jsi/Android.mk +1 -1
  347. package/ReactCommon/jsi/BUCK +0 -2
  348. package/ReactCommon/jsi/React-jsi.podspec +1 -1
  349. package/ReactCommon/jsiexecutor/Android.mk +2 -2
  350. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +1 -1
  351. package/ReactCommon/logger/Android.mk +23 -0
  352. package/ReactCommon/logger/BUCK +43 -0
  353. package/ReactCommon/logger/React-logger.podspec +40 -0
  354. package/ReactCommon/logger/react_native_log.cpp +52 -0
  355. package/ReactCommon/logger/react_native_log.h +33 -0
  356. package/ReactCommon/react/nativemodule/core/Android.mk +2 -2
  357. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.cpp +1 -0
  358. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.h +3 -2
  359. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +46 -1
  360. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +10 -0
  361. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +37 -1
  362. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +24 -22
  363. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +11 -8
  364. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.h +7 -5
  365. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.mm +51 -29
  366. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +45 -34
  367. package/ReactCommon/react/nativemodule/samples/BUCK +2 -2
  368. package/ReactCommon/react/nativemodule/samples/platform/android/Android.mk +1 -1
  369. package/ReactCommon/react/renderer/animations/BUCK +1 -0
  370. package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
  371. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -27
  372. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
  373. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +920 -1136
  374. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +80 -245
  375. package/ReactCommon/react/renderer/animations/conversions.h +212 -0
  376. package/ReactCommon/react/renderer/animations/primitives.h +104 -0
  377. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +9 -6
  378. package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
  379. package/ReactCommon/react/renderer/animations/utils.h +80 -0
  380. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  381. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
  382. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
  383. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +7 -2
  384. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +3 -1
  385. package/ReactCommon/react/renderer/attributedstring/conversions.h +162 -11
  386. package/ReactCommon/react/renderer/attributedstring/primitives.h +34 -1
  387. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.cpp +2 -2
  388. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h +1 -0
  389. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +10 -4
  390. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.h +4 -1
  391. package/ReactCommon/react/renderer/componentregistry/componentNameByReactViewName.cpp +2 -1
  392. package/ReactCommon/react/renderer/components/image/Android.mk +1 -1
  393. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +28 -9
  394. package/ReactCommon/react/renderer/components/image/ImageProps.h +5 -1
  395. package/ReactCommon/react/renderer/components/image/conversions.h +9 -2
  396. package/ReactCommon/react/renderer/components/inputaccessory/BUCK +1 -1
  397. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +1 -1
  398. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +0 -1
  399. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.cpp +2 -1
  400. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h +2 -0
  401. package/ReactCommon/react/renderer/components/root/RootProps.cpp +12 -2
  402. package/ReactCommon/react/renderer/components/root/RootProps.h +6 -1
  403. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +2 -1
  404. package/ReactCommon/react/renderer/components/root/RootShadowNode.h +2 -0
  405. package/ReactCommon/react/renderer/components/root/tests/RootShadowNodeTest.cpp +8 -4
  406. package/ReactCommon/react/renderer/components/safeareaview/BUCK +1 -1
  407. package/ReactCommon/react/renderer/components/scrollview/Android.mk +1 -1
  408. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +45 -4
  409. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +5 -1
  410. package/ReactCommon/react/renderer/components/scrollview/conversions.h +5 -0
  411. package/ReactCommon/react/renderer/components/text/Android.mk +1 -1
  412. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +32 -0
  413. package/ReactCommon/react/renderer/components/text/BaseTextProps.h +5 -1
  414. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -16
  415. package/ReactCommon/react/renderer/components/text/ParagraphProps.cpp +10 -4
  416. package/ReactCommon/react/renderer/components/text/ParagraphProps.h +5 -1
  417. package/ReactCommon/react/renderer/components/text/RawTextProps.cpp +3 -2
  418. package/ReactCommon/react/renderer/components/text/RawTextProps.h +5 -1
  419. package/ReactCommon/react/renderer/components/text/RawTextShadowNode.h +0 -6
  420. package/ReactCommon/react/renderer/components/text/TextProps.cpp +6 -3
  421. package/ReactCommon/react/renderer/components/text/TextProps.h +5 -1
  422. package/ReactCommon/react/renderer/components/text/TextShadowNode.h +0 -6
  423. package/ReactCommon/react/renderer/components/textinput/Android.mk +1 -1
  424. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +58 -91
  425. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +10 -6
  426. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.cpp +46 -22
  427. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.h +6 -5
  428. package/ReactCommon/react/renderer/components/textinput/iostextinput/conversions.h +15 -3
  429. package/ReactCommon/react/renderer/components/textinput/iostextinput/primitives.h +6 -0
  430. package/ReactCommon/react/renderer/components/textinput/iostextinput/propsConversions.h +63 -2
  431. package/ReactCommon/react/renderer/components/unimplementedview/Android.mk +1 -1
  432. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +4 -2
  433. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h +5 -2
  434. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.h +1 -0
  435. package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +21 -0
  436. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +24 -1
  437. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +3 -0
  438. package/ReactCommon/react/renderer/components/view/Android.mk +3 -2
  439. package/ReactCommon/react/renderer/components/view/BUCK +1 -0
  440. package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
  441. package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -22
  442. package/ReactCommon/react/renderer/components/view/ViewProps.cpp +62 -14
  443. package/ReactCommon/react/renderer/components/view/ViewProps.h +7 -1
  444. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +2 -10
  445. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +5 -4
  446. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
  447. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +58 -33
  448. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +2 -8
  449. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
  450. package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +2 -0
  451. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +62 -8
  452. package/ReactCommon/react/renderer/components/view/conversions.h +57 -14
  453. package/ReactCommon/react/renderer/components/view/propsConversions.h +163 -28
  454. package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +7 -2
  455. package/ReactCommon/react/renderer/core/Android.mk +1 -1
  456. package/ReactCommon/react/renderer/core/ComponentDescriptor.h +5 -2
  457. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +19 -21
  458. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +4 -0
  459. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +12 -31
  460. package/ReactCommon/react/renderer/core/EventDispatcher.h +1 -4
  461. package/ReactCommon/react/renderer/core/LayoutableShadowNode.h +0 -6
  462. package/ReactCommon/react/renderer/core/Props.cpp +10 -2
  463. package/ReactCommon/react/renderer/core/Props.h +6 -1
  464. package/ReactCommon/react/renderer/core/PropsParserContext.h +29 -0
  465. package/ReactCommon/react/renderer/core/RawProps.cpp +2 -1
  466. package/ReactCommon/react/renderer/core/RawProps.h +3 -1
  467. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
  468. package/ReactCommon/react/renderer/core/RawPropsParser.h +11 -2
  469. package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
  470. package/ReactCommon/react/renderer/core/ShadowNode.cpp +7 -10
  471. package/ReactCommon/react/renderer/core/ShadowNode.h +4 -0
  472. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
  473. package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +11 -1
  474. package/ReactCommon/react/renderer/core/propsConversions.h +18 -8
  475. package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +16 -4
  476. package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +85 -20
  477. package/ReactCommon/react/renderer/core/tests/TestComponent.h +6 -2
  478. package/ReactCommon/react/renderer/graphics/Android.mk +5 -2
  479. package/ReactCommon/react/renderer/graphics/BUCK +12 -1
  480. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +2 -1
  481. package/ReactCommon/react/renderer/graphics/Transform.cpp +1 -1
  482. package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
  483. package/ReactCommon/react/renderer/graphics/conversions.h +34 -19
  484. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +67 -0
  485. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h +29 -0
  486. package/ReactCommon/react/renderer/graphics/platform/ios/Color.h +42 -1
  487. package/ReactCommon/react/renderer/graphics/platform/ios/PlatformColorParser.h +34 -0
  488. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.h +12 -0
  489. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.mm +206 -0
  490. package/ReactCommon/react/renderer/imagemanager/BUCK +1 -1
  491. package/ReactCommon/react/renderer/imagemanager/platform/ios/RCTSyncImageManager.mm +1 -1
  492. package/ReactCommon/react/renderer/mapbuffer/BUCK +2 -2
  493. package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
  494. package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
  495. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +6 -2
  496. package/ReactCommon/react/renderer/mounting/ShadowTree.h +3 -1
  497. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
  498. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
  499. package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +12 -1
  500. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +8 -1
  501. package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +10 -3
  502. package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
  503. package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -0
  504. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +10 -4
  505. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +9 -2
  506. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +4 -2
  507. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -2
  508. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +30 -0
  509. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +34 -0
  510. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
  511. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -2
  512. package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +11 -5
  513. package/ReactCommon/react/renderer/runtimescheduler/Task.h +5 -3
  514. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
  515. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +34 -0
  516. package/ReactCommon/react/renderer/{core/Constants.h → scheduler/InspectorData.h} +9 -8
  517. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +44 -29
  518. package/ReactCommon/react/renderer/scheduler/Scheduler.h +14 -0
  519. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +49 -29
  520. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +12 -4
  521. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +1 -0
  522. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
  523. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +22 -0
  524. package/ReactCommon/react/renderer/timeline/BUCK +6 -6
  525. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +34 -30
  526. package/ReactCommon/react/renderer/uimanager/UIManager.h +6 -3
  527. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
  528. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +101 -108
  529. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +4 -7
  530. package/ReactCommon/react/test_utils/BUCK +3 -0
  531. package/ReactCommon/react/test_utils/MockSurfaceHandler.h +25 -0
  532. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +18 -4
  533. package/ReactCommon/react/utils/Android.mk +3 -1
  534. package/ReactCommon/react/utils/BUCK +1 -0
  535. package/ReactCommon/react/utils/ContextContainer.h +0 -27
  536. package/ReactCommon/reactperflogger/React-perflogger.podspec +1 -1
  537. package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +1 -1
  538. package/ReactCommon/runtimeexecutor/ReactCommon/RuntimeExecutor.h +12 -0
  539. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar → 0.0.0-18697adec/react-native-0.0.0-18697adec.aar} +0 -0
  540. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.md5 +1 -0
  541. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha1 +1 -0
  542. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha256 +1 -0
  543. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha512 +1 -0
  544. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module → 0.0.0-18697adec/react-native-0.0.0-18697adec.module} +30 -17
  545. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.md5 +1 -0
  546. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha1 +1 -0
  547. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha256 +1 -0
  548. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha512 +1 -0
  549. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom → 0.0.0-18697adec/react-native-0.0.0-18697adec.pom} +8 -2
  550. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.md5 +1 -0
  551. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha1 +1 -0
  552. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha256 +1 -0
  553. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha512 +1 -0
  554. package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
  555. package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
  556. package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
  557. package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
  558. package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
  559. package/flow/HermesInternalType.js +114 -0
  560. package/flow/global.js +68 -0
  561. package/index.js +37 -24
  562. package/jest/renderer.js +3 -7
  563. package/jest/setup.js +2 -1
  564. package/package.json +55 -16
  565. package/react.gradle +19 -13
  566. package/scripts/generate-specs-cli.js +20 -2
  567. package/scripts/ios-configure-glog.sh +4 -0
  568. package/scripts/react-native-xcode.sh +1 -1
  569. package/scripts/react_native_pods.rb +195 -38
  570. package/template/_flowconfig +1 -1
  571. package/template/android/app/build.gradle +2 -2
  572. package/template/android/build.gradle +1 -2
  573. package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  574. package/template/android/gradle.properties +1 -1
  575. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +2 -0
  576. package/template/ios/Podfile +1 -0
  577. package/template/package.json +3 -4
  578. package/third-party-podspecs/RCT-Folly.podspec +6 -3
  579. package/Libraries/BUCK +0 -26
  580. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
  581. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  582. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  583. package/Libraries/Components/StaticContainer.react.js +0 -51
  584. package/Libraries/Components/StatusBar/StatusBarIOS.js +0 -38
  585. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
  586. package/Libraries/Interaction/InteractionMixin.js +0 -54
  587. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  588. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
  589. package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
  590. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
  591. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
  592. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -153
  593. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
  594. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
  595. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/BUCK +0 -20
  596. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +0 -39
  597. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +0 -34
  598. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +0 -35
  599. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +0 -15
  600. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +0 -46
  601. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +0 -40
  602. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.md5 +0 -1
  603. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha1 +0 -1
  604. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha256 +0 -1
  605. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha512 +0 -1
  606. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.md5 +0 -1
  607. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha1 +0 -1
  608. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha256 +0 -1
  609. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha512 +0 -1
  610. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.md5 +0 -1
  611. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha1 +0 -1
  612. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha256 +0 -1
  613. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha512 +0 -1
  614. package/scripts/generate-specs.sh +0 -100
  615. package/template/_editorconfig +0 -3
  616. package/template/_gitattributes +0 -3
@@ -17,6 +17,9 @@ import androidx.annotation.Nullable;
17
17
  import com.facebook.react.bridge.JSApplicationIllegalArgumentException;
18
18
  import com.facebook.react.bridge.UiThreadUtil;
19
19
  import com.facebook.react.touch.ReactHitSlopView;
20
+ import java.util.ArrayList;
21
+ import java.util.EnumSet;
22
+ import java.util.List;
20
23
 
21
24
  /**
22
25
  * Class responsible for identifying which react view should handle a given {@link MotionEvent}. It
@@ -80,7 +83,7 @@ public class TouchTargetHelper {
80
83
  // Store eventCoords in array so that they are modified to be relative to the targetView found.
81
84
  viewCoords[0] = eventX;
82
85
  viewCoords[1] = eventY;
83
- View nativeTargetView = findTouchTargetView(viewCoords, viewGroup);
86
+ View nativeTargetView = findTouchTargetViewWithPointerEvents(viewCoords, viewGroup, null);
84
87
  if (nativeTargetView != null) {
85
88
  View reactTargetView = findClosestReactAncestor(nativeTargetView);
86
89
  if (reactTargetView != null) {
@@ -93,6 +96,39 @@ public class TouchTargetHelper {
93
96
  return targetTag;
94
97
  }
95
98
 
99
+ /**
100
+ * Find touch event target view within the provided container given the coordinates provided via
101
+ * {@link MotionEvent}.
102
+ *
103
+ * @param eventX the X screen coordinate of the touch location
104
+ * @param eventY the Y screen coordinate of the touch location
105
+ * @param viewGroup the container view to traverse
106
+ * @param viewCoords an out parameter that will return the X,Y value in the target view
107
+ * @return If a target was found, returns a path through the view tree of all react tags that are
108
+ * a container for the touch target, ordered from target to root (last element)
109
+ */
110
+ public static List<Integer> findTargetPathAndCoordinatesForTouch(
111
+ float eventX, float eventY, ViewGroup viewGroup, float[] viewCoords) {
112
+ UiThreadUtil.assertOnUiThread();
113
+
114
+ // Store eventCoords in array so that they are modified to be relative to the targetView found.
115
+ viewCoords[0] = eventX;
116
+ viewCoords[1] = eventY;
117
+
118
+ List<Integer> pathAccumulator = new ArrayList<>();
119
+ View targetView = findTouchTargetViewWithPointerEvents(viewCoords, viewGroup, pathAccumulator);
120
+
121
+ if (targetView != null) {
122
+ View reactTargetView = findClosestReactAncestor(targetView);
123
+ int targetTag = getTouchTargetForView(reactTargetView, viewCoords[0], viewCoords[1]);
124
+ if (targetTag != pathAccumulator.get(0)) {
125
+ pathAccumulator.add(0, targetTag);
126
+ }
127
+ }
128
+
129
+ return pathAccumulator;
130
+ }
131
+
96
132
  private static View findClosestReactAncestor(View view) {
97
133
  while (view != null && view.getId() <= 0) {
98
134
  view = (View) view.getParent();
@@ -100,6 +136,14 @@ public class TouchTargetHelper {
100
136
  return view;
101
137
  }
102
138
 
139
+ /** Types of allowed return values from {@link #findTouchTargetView}. */
140
+ private enum TouchTargetReturnType {
141
+ /** Allow returning the view passed in through the parameters. */
142
+ SELF,
143
+ /** Allow returning children of the view passed in through parameters. */
144
+ CHILD,
145
+ }
146
+
103
147
  /**
104
148
  * Returns the touch target View that is either viewGroup or one if its descendants. This is a
105
149
  * recursive DFS since view the entire tree must be parsed until the target is found. If the
@@ -111,43 +155,91 @@ public class TouchTargetHelper {
111
155
  * be relative to the current viewGroup. When the method returns, it will contain the eventCoords
112
156
  * relative to the targetView found.
113
157
  */
114
- private static View findTouchTargetView(float[] eventCoords, ViewGroup viewGroup) {
115
- int childrenCount = viewGroup.getChildCount();
116
- // Consider z-index when determining the touch target.
117
- ReactZIndexedViewGroup zIndexedViewGroup =
118
- viewGroup instanceof ReactZIndexedViewGroup ? (ReactZIndexedViewGroup) viewGroup : null;
119
- for (int i = childrenCount - 1; i >= 0; i--) {
120
- int childIndex =
121
- zIndexedViewGroup != null ? zIndexedViewGroup.getZIndexMappedChildIndex(i) : i;
122
- View child = viewGroup.getChildAt(childIndex);
123
- PointF childPoint = mTempPoint;
124
- if (isTransformedTouchPointInView(
125
- eventCoords[0], eventCoords[1], viewGroup, child, childPoint)) {
126
- // If it is contained within the child View, the childPoint value will contain the view
127
- // coordinates relative to the child
158
+ private static View findTouchTargetView(
159
+ float[] eventCoords,
160
+ View view,
161
+ EnumSet<TouchTargetReturnType> allowReturnTouchTargetTypes,
162
+ List<Integer> pathAccumulator) {
163
+ // We prefer returning a child, so we check for a child that can handle the touch first
164
+ if (allowReturnTouchTargetTypes.contains(TouchTargetReturnType.CHILD)
165
+ && view instanceof ViewGroup) {
166
+ ViewGroup viewGroup = (ViewGroup) view;
167
+ int childrenCount = viewGroup.getChildCount();
168
+ // Consider z-index when determining the touch target.
169
+ ReactZIndexedViewGroup zIndexedViewGroup =
170
+ viewGroup instanceof ReactZIndexedViewGroup ? (ReactZIndexedViewGroup) viewGroup : null;
171
+ for (int i = childrenCount - 1; i >= 0; i--) {
172
+ int childIndex =
173
+ zIndexedViewGroup != null ? zIndexedViewGroup.getZIndexMappedChildIndex(i) : i;
174
+ View child = viewGroup.getChildAt(childIndex);
175
+ PointF childPoint = mTempPoint;
176
+ getChildPoint(eventCoords[0], eventCoords[1], viewGroup, child, childPoint);
177
+ // The childPoint value will contain the view coordinates relative to the child.
128
178
  // We need to store the existing X,Y for the viewGroup away as it is possible this child
129
179
  // will not actually be the target and so we restore them if not
130
180
  float restoreX = eventCoords[0];
131
181
  float restoreY = eventCoords[1];
132
182
  eventCoords[0] = childPoint.x;
133
183
  eventCoords[1] = childPoint.y;
134
- View targetView = findTouchTargetViewWithPointerEvents(eventCoords, child);
184
+ View targetView = findTouchTargetViewWithPointerEvents(eventCoords, child, pathAccumulator);
185
+
135
186
  if (targetView != null) {
136
- return targetView;
187
+ // We don't allow touches on views that are outside the bounds of an `overflow: hidden`
188
+ // View
189
+ boolean inOverflowBounds = true;
190
+ if (viewGroup instanceof ReactOverflowView) {
191
+ @Nullable String overflow = ((ReactOverflowView) viewGroup).getOverflow();
192
+ if ((ViewProps.HIDDEN.equals(overflow) || ViewProps.SCROLL.equals(overflow))
193
+ && !isTouchPointInView(restoreX, restoreY, view)) {
194
+ inOverflowBounds = false;
195
+ }
196
+ }
197
+ if (inOverflowBounds) {
198
+ return targetView;
199
+ }
137
200
  }
138
201
  eventCoords[0] = restoreX;
139
202
  eventCoords[1] = restoreY;
140
203
  }
141
204
  }
142
- return viewGroup;
205
+
206
+ // Check if parent can handle the touch after the children
207
+ if (allowReturnTouchTargetTypes.contains(TouchTargetReturnType.SELF)
208
+ && isTouchPointInView(eventCoords[0], eventCoords[1], view)) {
209
+ return view;
210
+ }
211
+
212
+ return null;
213
+ }
214
+
215
+ /**
216
+ * Checks whether a touch at {@code x} and {@code y} are within the bounds of the View. Both
217
+ * {@code x} and {@code y} must be relative to the top-left corner of the view.
218
+ */
219
+ private static boolean isTouchPointInView(float x, float y, View view) {
220
+ if (view instanceof ReactHitSlopView && ((ReactHitSlopView) view).getHitSlopRect() != null) {
221
+ Rect hitSlopRect = ((ReactHitSlopView) view).getHitSlopRect();
222
+ if ((x >= -hitSlopRect.left && x < (view.getWidth()) + hitSlopRect.right)
223
+ && (y >= -hitSlopRect.top && y < (view.getHeight()) + hitSlopRect.bottom)) {
224
+ return true;
225
+ }
226
+
227
+ return false;
228
+ } else {
229
+ if ((x >= 0 && x < (view.getWidth())) && (y >= 0 && y < (view.getHeight()))) {
230
+ return true;
231
+ }
232
+
233
+ return false;
234
+ }
143
235
  }
144
236
 
145
237
  /**
146
- * Returns whether the touch point is within the child View It is transform aware and will invert
147
- * the transform Matrix to find the true local points This code is taken from {@link
238
+ * Returns the coordinates of a touch in the child View. It is transform aware and will invert the
239
+ * transform Matrix to find the true local points This code is taken from {@link
148
240
  * ViewGroup#isTransformedTouchPointInView()}
149
241
  */
150
- private static boolean isTransformedTouchPointInView(
242
+ private static void getChildPoint(
151
243
  float x, float y, ViewGroup parent, View child, PointF outLocalPoint) {
152
244
  float localX = x + parent.getScrollX() - child.getLeft();
153
245
  float localY = y + parent.getScrollY() - child.getTop();
@@ -162,26 +254,7 @@ public class TouchTargetHelper {
162
254
  localX = localXY[0];
163
255
  localY = localXY[1];
164
256
  }
165
- if (child instanceof ReactHitSlopView && ((ReactHitSlopView) child).getHitSlopRect() != null) {
166
- Rect hitSlopRect = ((ReactHitSlopView) child).getHitSlopRect();
167
- if ((localX >= -hitSlopRect.left
168
- && localX < (child.getRight() - child.getLeft()) + hitSlopRect.right)
169
- && (localY >= -hitSlopRect.top
170
- && localY < (child.getBottom() - child.getTop()) + hitSlopRect.bottom)) {
171
- outLocalPoint.set(localX, localY);
172
- return true;
173
- }
174
-
175
- return false;
176
- } else {
177
- if ((localX >= 0 && localX < (child.getRight() - child.getLeft()))
178
- && (localY >= 0 && localY < (child.getBottom() - child.getTop()))) {
179
- outLocalPoint.set(localX, localY);
180
- return true;
181
- }
182
-
183
- return false;
184
- }
257
+ outLocalPoint.set(localX, localY);
185
258
  }
186
259
 
187
260
  /**
@@ -189,7 +262,7 @@ public class TouchTargetHelper {
189
262
  * its descendants are the touch target.
190
263
  */
191
264
  private static @Nullable View findTouchTargetViewWithPointerEvents(
192
- float eventCoords[], View view) {
265
+ float eventCoords[], View view, @Nullable List<Integer> pathAccumulator) {
193
266
  PointerEvents pointerEvents =
194
267
  view instanceof ReactPointerEventsView
195
268
  ? ((ReactPointerEventsView) view).getPointerEvents()
@@ -211,45 +284,68 @@ public class TouchTargetHelper {
211
284
  return null;
212
285
 
213
286
  } else if (pointerEvents == PointerEvents.BOX_ONLY) {
214
- // This view is the target, its children don't matter
215
- return view;
287
+ // This view may be the target, its children don't matter
288
+ View targetView =
289
+ findTouchTargetView(
290
+ eventCoords, view, EnumSet.of(TouchTargetReturnType.SELF), pathAccumulator);
291
+ if (targetView != null && pathAccumulator != null) {
292
+ pathAccumulator.add(view.getId());
293
+ }
294
+ return targetView;
216
295
 
217
296
  } else if (pointerEvents == PointerEvents.BOX_NONE) {
218
297
  // This view can't be the target, but its children might.
219
- if (view instanceof ViewGroup) {
220
- View targetView = findTouchTargetView(eventCoords, (ViewGroup) view);
221
- if (targetView != view) {
222
- return targetView;
298
+ View targetView =
299
+ findTouchTargetView(
300
+ eventCoords, view, EnumSet.of(TouchTargetReturnType.CHILD), pathAccumulator);
301
+ if (targetView != null) {
302
+ if (pathAccumulator != null) {
303
+ pathAccumulator.add(view.getId());
223
304
  }
305
+ return targetView;
306
+ }
224
307
 
225
- // PointerEvents.BOX_NONE means that this react element cannot receive pointer events.
226
- // However, there might be virtual children that can receive pointer events, in which case
227
- // we still want to return this View and dispatch a pointer event to the virtual element.
228
- // Note that this currently only applies to Nodes/FlatViewGroup as it's the only class that
229
- // is both a ViewGroup and ReactCompoundView (ReactTextView is a ReactCompoundView but not a
230
- // ViewGroup).
231
- if (view instanceof ReactCompoundView) {
232
- int reactTag =
233
- ((ReactCompoundView) view).reactTagForTouch(eventCoords[0], eventCoords[1]);
234
- if (reactTag != view.getId()) {
235
- // make sure we exclude the View itself because of the PointerEvents.BOX_NONE
236
- return view;
308
+ // PointerEvents.BOX_NONE means that this react element cannot receive pointer events.
309
+ // However, there might be virtual children that can receive pointer events, in which case
310
+ // we still want to return this View and dispatch a pointer event to the virtual element.
311
+ // Note that this currently only applies to Nodes/FlatViewGroup as it's the only class that
312
+ // is both a ViewGroup and ReactCompoundView (ReactTextView is a ReactCompoundView but not a
313
+ // ViewGroup).
314
+ if (view instanceof ReactCompoundView
315
+ && isTouchPointInView(eventCoords[0], eventCoords[1], view)) {
316
+ int reactTag = ((ReactCompoundView) view).reactTagForTouch(eventCoords[0], eventCoords[1]);
317
+ // make sure we exclude the View itself because of the PointerEvents.BOX_NONE
318
+ if (reactTag != view.getId()) {
319
+ if (pathAccumulator != null) {
320
+ pathAccumulator.add(view.getId());
237
321
  }
322
+ return view;
238
323
  }
239
324
  }
325
+
240
326
  return null;
241
327
 
242
328
  } else if (pointerEvents == PointerEvents.AUTO) {
243
329
  // Either this view or one of its children is the target
244
- if (view instanceof ReactCompoundViewGroup) {
245
- if (((ReactCompoundViewGroup) view).interceptsTouchEvent(eventCoords[0], eventCoords[1])) {
246
- return view;
330
+ if (view instanceof ReactCompoundViewGroup
331
+ && isTouchPointInView(eventCoords[0], eventCoords[1], view)
332
+ && ((ReactCompoundViewGroup) view).interceptsTouchEvent(eventCoords[0], eventCoords[1])) {
333
+ if (pathAccumulator != null) {
334
+ pathAccumulator.add(view.getId());
247
335
  }
336
+ return view;
248
337
  }
249
- if (view instanceof ViewGroup) {
250
- return findTouchTargetView(eventCoords, (ViewGroup) view);
338
+
339
+ View result =
340
+ findTouchTargetView(
341
+ eventCoords,
342
+ view,
343
+ EnumSet.of(TouchTargetReturnType.SELF, TouchTargetReturnType.CHILD),
344
+ pathAccumulator);
345
+ if (result != null && pathAccumulator != null) {
346
+ pathAccumulator.add(view.getId());
251
347
  }
252
- return view;
348
+ return result;
253
349
 
254
350
  } else {
255
351
  throw new JSApplicationIllegalArgumentException(
@@ -20,7 +20,7 @@ import com.facebook.react.bridge.CatalystInstance;
20
20
  import com.facebook.react.bridge.JSIModuleType;
21
21
  import com.facebook.react.bridge.ReactContext;
22
22
  import com.facebook.react.bridge.ReactNoCrashSoftException;
23
- import com.facebook.react.bridge.ReactSoftException;
23
+ import com.facebook.react.bridge.ReactSoftExceptionLogger;
24
24
  import com.facebook.react.bridge.UIManager;
25
25
  import com.facebook.react.uimanager.common.UIManagerType;
26
26
  import com.facebook.react.uimanager.events.EventDispatcher;
@@ -55,7 +55,7 @@ public class UIManagerHelper {
55
55
  if (context.isBridgeless()) {
56
56
  @Nullable UIManager uiManager = (UIManager) context.getJSIModule(JSIModuleType.UIManager);
57
57
  if (uiManager == null) {
58
- ReactSoftException.logSoftException(
58
+ ReactSoftExceptionLogger.logSoftException(
59
59
  TAG,
60
60
  new ReactNoCrashSoftException(
61
61
  "Cannot get UIManager because the instance hasn't been initialized yet."));
@@ -65,7 +65,7 @@ public class UIManagerHelper {
65
65
  }
66
66
 
67
67
  if (!context.hasCatalystInstance()) {
68
- ReactSoftException.logSoftException(
68
+ ReactSoftExceptionLogger.logSoftException(
69
69
  TAG,
70
70
  new ReactNoCrashSoftException(
71
71
  "Cannot get UIManager because the context doesn't contain a CatalystInstance."));
@@ -74,7 +74,7 @@ public class UIManagerHelper {
74
74
  // TODO T60461551: add tests to verify emission of events when the ReactContext is being turn
75
75
  // down.
76
76
  if (!context.hasActiveReactInstance()) {
77
- ReactSoftException.logSoftException(
77
+ ReactSoftExceptionLogger.logSoftException(
78
78
  TAG,
79
79
  new ReactNoCrashSoftException(
80
80
  "Cannot get UIManager because the context doesn't contain an active CatalystInstance."));
@@ -89,7 +89,7 @@ public class UIManagerHelper {
89
89
  : catalystInstance.getNativeModule(UIManagerModule.class);
90
90
  } catch (IllegalArgumentException ex) {
91
91
  // TODO T67518514 Clean this up once we migrate everything over to bridgeless mode
92
- ReactSoftException.logSoftException(
92
+ ReactSoftExceptionLogger.logSoftException(
93
93
  TAG,
94
94
  new ReactNoCrashSoftException(
95
95
  "Cannot get UIManager for UIManagerType: " + uiManagerType));
@@ -105,7 +105,7 @@ public class UIManagerHelper {
105
105
  public static EventDispatcher getEventDispatcherForReactTag(ReactContext context, int reactTag) {
106
106
  EventDispatcher eventDispatcher = getEventDispatcher(context, getUIManagerType(reactTag));
107
107
  if (eventDispatcher == null) {
108
- ReactSoftException.logSoftException(
108
+ ReactSoftExceptionLogger.logSoftException(
109
109
  TAG, new IllegalStateException("Cannot get EventDispatcher for reactTag " + reactTag));
110
110
  }
111
111
  return eventDispatcher;
@@ -127,7 +127,7 @@ public class UIManagerHelper {
127
127
  }
128
128
  UIManager uiManager = getUIManager(context, uiManagerType, false);
129
129
  if (uiManager == null) {
130
- ReactSoftException.logSoftException(
130
+ ReactSoftExceptionLogger.logSoftException(
131
131
  TAG,
132
132
  new ReactNoCrashSoftException(
133
133
  "Unable to find UIManager for UIManagerType " + uiManagerType));
@@ -135,7 +135,7 @@ public class UIManagerHelper {
135
135
  }
136
136
  EventDispatcher eventDispatcher = (EventDispatcher) uiManager.getEventDispatcher();
137
137
  if (eventDispatcher == null) {
138
- ReactSoftException.logSoftException(
138
+ ReactSoftExceptionLogger.logSoftException(
139
139
  TAG,
140
140
  new IllegalStateException(
141
141
  "Cannot get EventDispatcher for UIManagerType " + uiManagerType));
@@ -180,7 +180,7 @@ public class UIManagerHelper {
180
180
 
181
181
  // All Fabric-managed Views (should) have a ThemedReactContext attached.
182
182
  if (surfaceId == -1) {
183
- ReactSoftException.logSoftException(
183
+ ReactSoftExceptionLogger.logSoftException(
184
184
  TAG,
185
185
  new IllegalStateException(
186
186
  "Fabric View [" + reactTag + "] does not have SurfaceId associated with it"));
@@ -955,6 +955,7 @@ public class UIManagerModule extends ReactContextBaseJavaModule
955
955
  public void onLowMemory() {}
956
956
  }
957
957
 
958
+ @Override
958
959
  public View resolveView(int tag) {
959
960
  UiThreadUtil.assertOnUiThread();
960
961
  return mUIImplementation
@@ -18,7 +18,7 @@ import com.facebook.react.bridge.GuardedRunnable;
18
18
  import com.facebook.react.bridge.ReactApplicationContext;
19
19
  import com.facebook.react.bridge.ReactContext;
20
20
  import com.facebook.react.bridge.ReactNoCrashSoftException;
21
- import com.facebook.react.bridge.ReactSoftException;
21
+ import com.facebook.react.bridge.ReactSoftExceptionLogger;
22
22
  import com.facebook.react.bridge.ReadableArray;
23
23
  import com.facebook.react.bridge.ReadableMap;
24
24
  import com.facebook.react.bridge.RetryableMountingLayerException;
@@ -313,7 +313,7 @@ public class UIViewOperationQueue {
313
313
  try {
314
314
  mNativeViewHierarchyManager.dispatchCommand(mTag, mCommand, mArgs);
315
315
  } catch (Throwable e) {
316
- ReactSoftException.logSoftException(
316
+ ReactSoftExceptionLogger.logSoftException(
317
317
  TAG, new RuntimeException("Error dispatching View Command", e));
318
318
  }
319
319
  }
@@ -354,7 +354,7 @@ public class UIViewOperationQueue {
354
354
  try {
355
355
  mNativeViewHierarchyManager.dispatchCommand(mTag, mCommand, mArgs);
356
356
  } catch (Throwable e) {
357
- ReactSoftException.logSoftException(
357
+ ReactSoftExceptionLogger.logSoftException(
358
358
  TAG, new RuntimeException("Error dispatching View Command", e));
359
359
  }
360
360
  }
@@ -892,11 +892,12 @@ public class UIViewOperationQueue {
892
892
  mViewCommandOperations.add(op);
893
893
  } else {
894
894
  // Retryable exceptions should be logged, but never crash in debug.
895
- ReactSoftException.logSoftException(TAG, new ReactNoCrashSoftException(e));
895
+ ReactSoftExceptionLogger.logSoftException(
896
+ TAG, new ReactNoCrashSoftException(e));
896
897
  }
897
898
  } catch (Throwable e) {
898
899
  // Non-retryable exceptions should be logged in prod, and crash in Debug.
899
- ReactSoftException.logSoftException(TAG, e);
900
+ ReactSoftExceptionLogger.logSoftException(TAG, e);
900
901
  }
901
902
  }
902
903
  }
@@ -325,6 +325,21 @@ import java.util.Map;
325
325
  }
326
326
  }
327
327
 
328
+ private static class BoxedColorPropSetter extends PropSetter {
329
+
330
+ public BoxedColorPropSetter(ReactProp prop, Method setter) {
331
+ super(prop, "mixed", setter);
332
+ }
333
+
334
+ @Override
335
+ protected @Nullable Object getValueOrDefault(Object value, Context context) {
336
+ if (value != null) {
337
+ return ColorPropConverter.getColor(value, context);
338
+ }
339
+ return null;
340
+ }
341
+ }
342
+
328
343
  /*package*/ static Map<String, String> getNativePropsForView(
329
344
  Class<? extends ViewManager> viewManagerTopClass,
330
345
  Class<? extends ReactShadowNode> shadowNodeTopClass) {
@@ -418,7 +433,7 @@ import java.util.Map;
418
433
  return new BoxedBooleanPropSetter(annotation, method);
419
434
  } else if (propTypeClass == Integer.class) {
420
435
  if ("Color".equals(annotation.customType())) {
421
- return new ColorPropSetter(annotation, method);
436
+ return new BoxedColorPropSetter(annotation, method);
422
437
  }
423
438
  return new BoxedIntPropSetter(annotation, method);
424
439
  } else if (propTypeClass == ReadableArray.class) {
@@ -40,15 +40,6 @@ public abstract class Event<T extends Event> {
40
40
  private long mTimestampMs;
41
41
  private int mUniqueID = sUniqueID++;
42
42
 
43
- // Android native Event times use 'uptimeMillis', and historically we've used `uptimeMillis`
44
- // throughout this Event class as the coalescing key for events, and for other purposes.
45
- // To get an accurate(ish) absolute UNIX time for the event, we store the initial clock time here.
46
- // uptimeMillis can then be added to this to get an accurate UNIX time.
47
- // However, we still default to uptimeMillis: you must explicitly request UNIX time if you want
48
- // that; see `getUnixTimestampMs`.
49
- public static final long sInitialClockTimeUnixOffset =
50
- SystemClock.currentTimeMillis() - SystemClock.uptimeMillis();
51
-
52
43
  protected Event() {}
53
44
 
54
45
  @Deprecated
@@ -65,8 +56,16 @@ public abstract class Event<T extends Event> {
65
56
  init(-1, viewTag);
66
57
  }
67
58
 
68
- /** This method needs to be called before event is sent to event dispatcher. */
69
59
  protected void init(int surfaceId, int viewTag) {
60
+ init(surfaceId, viewTag, SystemClock.uptimeMillis());
61
+ }
62
+
63
+ /**
64
+ * This method needs to be called before event is sent to event dispatcher. Event timestamps can
65
+ * optionally be dated/backdated to a custom time: for example, touch events should be dated with
66
+ * the system event time.
67
+ */
68
+ protected void init(int surfaceId, int viewTag, long timestampMs) {
70
69
  mSurfaceId = surfaceId;
71
70
  mViewTag = viewTag;
72
71
 
@@ -82,9 +81,7 @@ public abstract class Event<T extends Event> {
82
81
  // At some point it would be great to pass the SurfaceContext here instead.
83
82
  mUIManagerType = (surfaceId == -1 ? UIManagerType.DEFAULT : UIManagerType.FABRIC);
84
83
 
85
- // This is a *relative* time. See `getUnixTimestampMs`.
86
- mTimestampMs = SystemClock.uptimeMillis();
87
-
84
+ mTimestampMs = timestampMs;
88
85
  mInitialized = true;
89
86
  }
90
87
 
@@ -106,11 +103,6 @@ public abstract class Event<T extends Event> {
106
103
  return mTimestampMs;
107
104
  }
108
105
 
109
- /** @return the time at which the event happened as a UNIX timestamp, in milliseconds. */
110
- public final long getUnixTimestampMs() {
111
- return sInitialClockTimeUnixOffset + mTimestampMs;
112
- }
113
-
114
106
  /** @return false if this Event can *never* be coalesced */
115
107
  public boolean canCoalesce() {
116
108
  return true;
@@ -174,7 +166,7 @@ public abstract class Event<T extends Event> {
174
166
  WritableMap eventData = getEventData();
175
167
  if (eventData == null) {
176
168
  throw new IllegalViewOperationException(
177
- "Event: you must return a valid, non-null value from `getEventData`, or override `dispatch` and `disatchModern`. Event: "
169
+ "Event: you must return a valid, non-null value from `getEventData`, or override `dispatch` and `dispatchModern`. Event: "
178
170
  + getEventName());
179
171
  }
180
172
  rctEventEmitter.receiveEvent(getViewTag(), getEventName(), eventData);
@@ -224,7 +216,7 @@ public abstract class Event<T extends Event> {
224
216
  getEventName(),
225
217
  canCoalesce(),
226
218
  getCoalescingKey(),
227
- getEventData());
219
+ eventData);
228
220
  return;
229
221
  }
230
222
  }
@@ -52,7 +52,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
52
52
  */
53
53
  public class LockFreeEventDispatcherImpl implements EventDispatcher, LifecycleEventListener {
54
54
 
55
- private final boolean DEBUG_MODE = true && ReactBuildConfig.DEBUG;
55
+ private final boolean DEBUG_MODE = ReactBuildConfig.DEBUG;
56
56
  private final String TAG = LockFreeEventDispatcherImpl.class.getSimpleName();
57
57
 
58
58
  private final ReactApplicationContext mReactContext;
@@ -77,7 +77,7 @@ public class LockFreeEventDispatcherImpl implements EventDispatcher, LifecycleEv
77
77
  Assertions.assertNotNull(mReactEventEmitter);
78
78
 
79
79
  if (DEBUG_MODE) {
80
- FLog.d(TAG, "dispatchEvent: " + event.toString());
80
+ FLog.v(TAG, "dispatchEvent: " + event.toString());
81
81
  }
82
82
 
83
83
  for (EventDispatcherListener listener : mListeners) {
@@ -13,7 +13,7 @@ import androidx.annotation.Nullable;
13
13
  import com.facebook.infer.annotation.Assertions;
14
14
  import com.facebook.react.bridge.ReactApplicationContext;
15
15
  import com.facebook.react.bridge.ReactNoCrashSoftException;
16
- import com.facebook.react.bridge.ReactSoftException;
16
+ import com.facebook.react.bridge.ReactSoftExceptionLogger;
17
17
  import com.facebook.react.bridge.WritableArray;
18
18
  import com.facebook.react.bridge.WritableMap;
19
19
  import com.facebook.react.uimanager.common.UIManagerType;
@@ -61,15 +61,10 @@ public class ReactEventEmitter implements RCTModernEventEmitter {
61
61
 
62
62
  @Override
63
63
  public void receiveEvent(
64
- int surfaceId,
65
- int targetTag,
66
- String eventName,
67
- boolean canCoalesceEvent,
68
- int customCoalesceKey,
69
- @Nullable WritableMap event) {
64
+ int surfaceId, int targetTag, String eventName, @Nullable WritableMap event) {
70
65
  // The two additional params here, `canCoalesceEvent` and `customCoalesceKey`, have no
71
66
  // meaning outside of Fabric.
72
- receiveEvent(surfaceId, targetTag, eventName, event);
67
+ receiveEvent(surfaceId, targetTag, eventName, false, 0, event);
73
68
  }
74
69
 
75
70
  @Override
@@ -84,7 +79,7 @@ public class ReactEventEmitter implements RCTModernEventEmitter {
84
79
  } else if (uiManagerType == UIManagerType.DEFAULT && getEventEmitter(reactTag) != null) {
85
80
  mRCTEventEmitter.receiveTouches(eventName, touches, changedIndices);
86
81
  } else {
87
- ReactSoftException.logSoftException(
82
+ ReactSoftExceptionLogger.logSoftException(
88
83
  TAG,
89
84
  new ReactNoCrashSoftException(
90
85
  "Cannot find EventEmitter for receivedTouches: ReactTag["
@@ -105,7 +100,7 @@ public class ReactEventEmitter implements RCTModernEventEmitter {
105
100
  if (mReactContext.hasActiveReactInstance()) {
106
101
  mRCTEventEmitter = mReactContext.getJSModule(RCTEventEmitter.class);
107
102
  } else {
108
- ReactSoftException.logSoftException(
103
+ ReactSoftExceptionLogger.logSoftException(
109
104
  TAG,
110
105
  new ReactNoCrashSoftException(
111
106
  "Cannot get RCTEventEmitter from Context for reactTag: "
@@ -120,14 +115,20 @@ public class ReactEventEmitter implements RCTModernEventEmitter {
120
115
 
121
116
  @Override
122
117
  public void receiveEvent(
123
- int surfaceId, int targetReactTag, String eventName, @Nullable WritableMap event) {
118
+ int surfaceId,
119
+ int targetReactTag,
120
+ String eventName,
121
+ boolean canCoalesceEvent,
122
+ int customCoalesceKey,
123
+ @Nullable WritableMap event) {
124
124
  @UIManagerType int uiManagerType = ViewUtil.getUIManagerType(targetReactTag);
125
125
  if (uiManagerType == UIManagerType.FABRIC && mFabricEventEmitter != null) {
126
- mFabricEventEmitter.receiveEvent(surfaceId, targetReactTag, eventName, event);
126
+ mFabricEventEmitter.receiveEvent(
127
+ surfaceId, targetReactTag, eventName, canCoalesceEvent, customCoalesceKey, event);
127
128
  } else if (uiManagerType == UIManagerType.DEFAULT && getEventEmitter(targetReactTag) != null) {
128
129
  mRCTEventEmitter.receiveEvent(targetReactTag, eventName, event);
129
130
  } else {
130
- ReactSoftException.logSoftException(
131
+ ReactSoftExceptionLogger.logSoftException(
131
132
  TAG,
132
133
  new ReactNoCrashSoftException(
133
134
  "Cannot find EventEmitter for receiveEvent: SurfaceId["