react-native-tvos 0.75.2-0rc0 → 0.76.0-0rc0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (989) hide show
  1. package/Libraries/Alert/Alert.js +3 -0
  2. package/Libraries/Animated/AnimatedEvent.js +1 -1
  3. package/Libraries/Animated/AnimatedImplementation.js +7 -7
  4. package/Libraries/Animated/NativeAnimatedAllowlist.js +111 -0
  5. package/Libraries/Animated/animations/Animation.js +11 -1
  6. package/Libraries/Animated/animations/DecayAnimation.js +1 -1
  7. package/Libraries/Animated/animations/SpringAnimation.js +1 -1
  8. package/Libraries/Animated/animations/TimingAnimation.js +2 -1
  9. package/Libraries/Animated/components/AnimatedScrollView.js +3 -2
  10. package/Libraries/Animated/createAnimatedComponent.js +10 -9
  11. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  12. package/Libraries/Animated/nodes/AnimatedInterpolation.js +3 -2
  13. package/Libraries/Animated/nodes/AnimatedNode.js +42 -33
  14. package/Libraries/Animated/nodes/AnimatedObject.js +56 -50
  15. package/Libraries/Animated/nodes/AnimatedProps.js +77 -40
  16. package/Libraries/Animated/nodes/AnimatedStyle.js +103 -59
  17. package/Libraries/Animated/nodes/AnimatedTracking.js +1 -1
  18. package/Libraries/Animated/nodes/AnimatedTransform.js +102 -67
  19. package/Libraries/Animated/nodes/AnimatedValue.js +2 -1
  20. package/Libraries/Animated/nodes/AnimatedWithChildren.js +21 -22
  21. package/Libraries/Animated/useAnimatedProps.js +142 -7
  22. package/Libraries/AppDelegate/RCTAppDelegate.h +7 -5
  23. package/Libraries/AppDelegate/RCTAppDelegate.mm +2 -29
  24. package/Libraries/AppDelegate/RCTRootViewFactory.mm +2 -1
  25. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +2 -3
  26. package/Libraries/BatchedBridge/NativeModules.js +2 -0
  27. package/Libraries/Blob/FileReader.js +1 -1
  28. package/Libraries/Blob/URL.js +2 -62
  29. package/Libraries/Blob/URLSearchParams.js +71 -0
  30. package/Libraries/Blob/URLSearchParams.js.flow +23 -0
  31. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -1
  32. package/Libraries/Components/Pressable/Pressable.js +5 -6
  33. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +1 -1
  34. package/Libraries/Components/ScrollView/ScrollView.d.ts +1 -1
  35. package/Libraries/Components/ScrollView/ScrollView.js +132 -171
  36. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  37. package/Libraries/Components/StatusBar/StatusBar.js +3 -1
  38. package/Libraries/Components/TV/TVEventHandler.js +11 -6
  39. package/Libraries/Components/TV/TVFocusEventHandler.js +2 -1
  40. package/Libraries/Components/TV/TVFocusGuideView.js +16 -15
  41. package/Libraries/Components/TV/TVTextScrollView.js +11 -10
  42. package/Libraries/Components/TV/TVViewPropTypes.js +1 -1
  43. package/Libraries/Components/TV/tagForComponentOrHandle.js +13 -13
  44. package/Libraries/Components/TV/useTVEventHandler.js +7 -3
  45. package/Libraries/Components/TabBarIOS/RCTTabBarNativeComponent.js +3 -2
  46. package/Libraries/Components/TabBarIOS/TabBarIOS.ios.js +6 -55
  47. package/Libraries/Components/TabBarIOS/{TabBarIOS.android.js → TabBarIOS.js} +8 -5
  48. package/Libraries/Components/TabBarIOS/TabBarIOSProps.js +52 -0
  49. package/Libraries/Components/TabBarIOS/{TabBarItemIOS.android.js → TabBarItemIOS.js} +3 -1
  50. package/Libraries/Components/TextInput/TextInput.d.ts +32 -2
  51. package/Libraries/Components/TextInput/TextInput.js +230 -94
  52. package/Libraries/Components/Touchable/TVTouchable.js +6 -5
  53. package/Libraries/Components/Touchable/Touchable.js +2 -3
  54. package/Libraries/Components/Touchable/TouchableBounce.js +2 -5
  55. package/Libraries/Components/Touchable/TouchableHighlight.js +3 -4
  56. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -4
  57. package/Libraries/Components/View/ReactNativeStyleAttributes.js +22 -0
  58. package/Libraries/Components/View/ReactNativeViewAttributes.js +2 -0
  59. package/Libraries/Components/View/ViewAccessibility.d.ts +15 -0
  60. package/Libraries/Components/View/ViewNativeComponent.js +5 -1
  61. package/Libraries/Components/View/ViewPropTypes.js +14 -0
  62. package/Libraries/Core/ExceptionsManager.js +2 -0
  63. package/Libraries/Core/InitializeCore.js +3 -1
  64. package/Libraries/Core/ReactFiberErrorDialog.js +3 -0
  65. package/Libraries/Core/ReactNativeVersion.js +2 -2
  66. package/Libraries/Core/setUpErrorHandling.js +7 -1
  67. package/Libraries/Core/setUpGlobals.js +1 -0
  68. package/Libraries/Core/setUpReactRefresh.js +0 -4
  69. package/Libraries/Debugging/DebuggingOverlayRegistry.js +1 -1
  70. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +3 -1
  71. package/Libraries/Image/AssetSourceResolver.js +28 -1
  72. package/Libraries/Image/Image.android.js +9 -14
  73. package/Libraries/Image/Image.ios.js +11 -22
  74. package/Libraries/Image/ImageBackground.js +1 -8
  75. package/Libraries/Image/ImageUtils.js +9 -9
  76. package/Libraries/Image/ImageViewNativeComponent.js +1 -0
  77. package/Libraries/Image/RCTImageLoader.mm +19 -10
  78. package/Libraries/Image/RCTImageView.mm +2 -2
  79. package/Libraries/Image/RCTResizeMode.h +28 -0
  80. package/Libraries/Image/React-RCTImage.podspec +1 -1
  81. package/Libraries/Inspector/Inspector.js +3 -2
  82. package/Libraries/Inspector/InspectorPanel.js +16 -10
  83. package/Libraries/Inspector/NetworkOverlay.js +1 -1
  84. package/Libraries/Interaction/TaskQueue.js +1 -0
  85. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -0
  86. package/Libraries/Lists/FlatList.js +1 -1
  87. package/Libraries/Lists/SectionList.js +2 -2
  88. package/Libraries/Lists/SectionListModern.js +3 -3
  89. package/Libraries/LogBox/Data/LogBoxData.js +24 -3
  90. package/Libraries/LogBox/LogBoxNotificationContainer.js +3 -2
  91. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +9 -8
  92. package/Libraries/Modal/Modal.js +0 -1
  93. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +3 -1
  94. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.h +2 -0
  95. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm +27 -0
  96. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +17 -1
  97. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -0
  98. package/Libraries/NativeComponent/BaseViewConfig.android.js +9 -2
  99. package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -2
  100. package/Libraries/NativeComponent/NativeComponentRegistry.js +22 -22
  101. package/Libraries/NativeComponent/StaticViewConfigValidator.js +0 -21
  102. package/Libraries/NativeComponent/TVViewConfig.js +4 -1
  103. package/Libraries/Network/RCTNetworkTask.h +1 -1
  104. package/Libraries/Network/RCTNetworkTask.mm +13 -9
  105. package/Libraries/Network/RCTNetworking.mm +6 -0
  106. package/Libraries/Network/XMLHttpRequest.js +4 -2
  107. package/Libraries/NewAppScreen/components/DebugInstructions.js +7 -7
  108. package/Libraries/NewAppScreen/components/HermesBadge.js +3 -6
  109. package/Libraries/Pressability/Pressability.js +6 -3
  110. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
  111. package/Libraries/ReactNative/AppContainer-dev.js +5 -8
  112. package/Libraries/ReactNative/AppContainer-prod.js +1 -5
  113. package/Libraries/ReactNative/AppContainer.js +0 -1
  114. package/Libraries/ReactNative/AppRegistry.js +0 -6
  115. package/Libraries/ReactNative/BridgelessUIManager.js +1 -0
  116. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +1 -1
  117. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +5 -5
  118. package/Libraries/ReactNative/RendererImplementation.js +28 -6
  119. package/Libraries/ReactNative/getNativeComponentAttributes.js +8 -0
  120. package/Libraries/ReactNative/renderApplication.js +0 -2
  121. package/Libraries/Renderer/shims/ReactNativeTypes.js +12 -4
  122. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  123. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +74 -15
  124. package/Libraries/StyleSheet/StyleSheetTypes.js +60 -5
  125. package/Libraries/StyleSheet/processBackgroundImage.js +384 -0
  126. package/Libraries/StyleSheet/processBoxShadow.js +211 -0
  127. package/Libraries/StyleSheet/processFilter.js +231 -42
  128. package/Libraries/Text/BaseText/RCTBaseTextViewManager.mm +1 -0
  129. package/Libraries/Text/RCTTextAttributes.h +1 -0
  130. package/Libraries/Text/RCTTextAttributes.mm +8 -0
  131. package/Libraries/Text/Text/RCTTextShadowView.mm +46 -0
  132. package/Libraries/Text/Text.js +394 -196
  133. package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm +3 -1
  134. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +20 -9
  135. package/Libraries/Text/TextNativeComponent.js +2 -1
  136. package/Libraries/TurboModule/TurboModuleRegistry.js +13 -50
  137. package/Libraries/Types/CodegenTypes.js +3 -1
  138. package/Libraries/Utilities/Appearance.js +108 -84
  139. package/Libraries/Utilities/BackHandler.ios.js +25 -23
  140. package/Libraries/Utilities/DevLoadingView.js +2 -4
  141. package/Libraries/Utilities/HMRClient.js +2 -1
  142. package/Libraries/Utilities/Platform.d.ts +1 -0
  143. package/Libraries/Utilities/Platform.flow.js +2 -0
  144. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  145. package/Libraries/Utilities/createPerformanceLogger.js +0 -9
  146. package/Libraries/Utilities/stringifyViewConfig.js +22 -0
  147. package/Libraries/Utilities/useColorScheme.js +3 -3
  148. package/Libraries/Vibration/Vibration.js +1 -1
  149. package/Libraries/WebSocket/WebSocket.js +1 -1
  150. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  151. package/Libraries/vendor/emitter/EventEmitter.js +6 -5
  152. package/README-core.md +5 -5
  153. package/README.md +76 -41
  154. package/React/Base/RCTBridge.mm +20 -2
  155. package/React/Base/RCTBundleURLProvider.h +19 -0
  156. package/React/Base/RCTBundleURLProvider.mm +62 -8
  157. package/React/Base/RCTConvert.h +0 -3
  158. package/React/Base/RCTConvert.mm +0 -13
  159. package/React/Base/RCTKeyCommands.m +1 -2
  160. package/React/Base/RCTVersion.m +2 -2
  161. package/React/CoreModules/RCTAppearance.mm +5 -0
  162. package/React/CoreModules/RCTDevLoadingView.mm +5 -0
  163. package/React/CoreModules/RCTDevMenu.mm +1 -1
  164. package/React/CoreModules/RCTDeviceInfo.mm +13 -8
  165. package/React/CoreModules/RCTPerfMonitor.mm +7 -13
  166. package/React/CoreModules/RCTRedBox.mm +4 -0
  167. package/React/CoreModules/RCTStatusBarManager.mm +5 -1
  168. package/React/CoreModules/React-CoreModules.podspec +3 -1
  169. package/React/CxxBridge/NSDataBigString.mm +2 -25
  170. package/React/CxxBridge/RCTCxxBridge.mm +27 -5
  171. package/React/DevSupport/RCTInspectorDevServerHelper.mm +6 -0
  172. package/React/DevSupport/RCTInspectorNetworkHelper.h +29 -0
  173. package/React/DevSupport/RCTInspectorNetworkHelper.mm +115 -0
  174. package/React/DevSupport/RCTInspectorUtils.h +26 -0
  175. package/React/DevSupport/RCTInspectorUtils.mm +50 -0
  176. package/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm +4 -1
  177. package/React/Fabric/Mounting/ComponentViews/Modal/RCTFabricModalHostViewController.mm +2 -2
  178. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +23 -1
  179. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.h +9 -0
  180. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +137 -10
  181. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +74 -35
  182. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +61 -12
  183. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +8 -0
  184. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +356 -59
  185. package/React/Fabric/Mounting/RCTMountingManager.mm +0 -5
  186. package/React/Fabric/RCTScheduler.mm +2 -1
  187. package/React/Fabric/RCTSurfacePresenter.mm +0 -31
  188. package/React/Fabric/Utils/RCTBoxShadow.h +21 -0
  189. package/React/Fabric/Utils/RCTBoxShadow.mm +301 -0
  190. package/React/Modules/RCTRedBoxExtraDataViewController.m +105 -85
  191. package/React/Views/RCTBorderDrawing.h +9 -5
  192. package/React/Views/RCTBorderDrawing.m +23 -14
  193. package/React/Views/RCTModalHostView.m +2 -1
  194. package/React/Views/RCTModalHostViewController.m +1 -1
  195. package/React/Views/RCTModalHostViewManager.m +23 -3
  196. package/React/Views/RCTView.m +9 -5
  197. package/React/Views/RCTViewManager.h +3 -0
  198. package/React/Views/RCTViewManager.m +63 -8
  199. package/React/Views/RefreshControl/RCTRefreshControl.m +18 -0
  200. package/React-Core.podspec +4 -1
  201. package/ReactAndroid/api/ReactAndroid.api +593 -273
  202. package/ReactAndroid/build.gradle.kts +105 -282
  203. package/ReactAndroid/cmake-utils/ReactNative-application.cmake +10 -55
  204. package/ReactAndroid/gradle.properties +1 -1
  205. package/ReactAndroid/hermes-engine/build.gradle.kts +3 -2
  206. package/ReactAndroid/publish.gradle +1 -1
  207. package/ReactAndroid/src/main/AndroidManifest.xml +1 -1
  208. package/ReactAndroid/src/main/java/com/facebook/annotationprocessors/common/ProcessorBase.kt +23 -0
  209. package/ReactAndroid/src/main/java/com/facebook/react/CompositeReactPackage.java +2 -2
  210. package/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.java +1 -1
  211. package/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java +1 -1
  212. package/ReactAndroid/src/main/java/com/facebook/react/HeadlessJsTaskService.java +56 -12
  213. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +6 -0
  214. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +7 -1
  215. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +10 -0
  216. package/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt +26 -3
  217. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +117 -41
  218. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +13 -6
  219. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.java +2 -17
  220. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +6 -2
  221. package/ReactAndroid/src/main/java/com/facebook/react/animated/AdditionAnimatedNode.kt +52 -0
  222. package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNode.kt +74 -0
  223. package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNodeValueListener.kt +13 -0
  224. package/ReactAndroid/src/main/java/com/facebook/react/animated/{AnimatedNodeWithUpdateableConfig.java → AnimatedNodeWithUpdateableConfig.kt} +4 -4
  225. package/ReactAndroid/src/main/java/com/facebook/react/animated/{AnimationDriver.java → AnimationDriver.kt} +13 -14
  226. package/ReactAndroid/src/main/java/com/facebook/react/animated/ColorAnimatedNode.kt +111 -0
  227. package/ReactAndroid/src/main/java/com/facebook/react/animated/DecayAnimation.kt +73 -0
  228. package/ReactAndroid/src/main/java/com/facebook/react/animated/DiffClampAnimatedNode.kt +51 -0
  229. package/ReactAndroid/src/main/java/com/facebook/react/animated/DivisionAnimatedNode.kt +55 -0
  230. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +100 -0
  231. package/ReactAndroid/src/main/java/com/facebook/react/animated/FrameBasedAnimationDriver.kt +104 -0
  232. package/ReactAndroid/src/main/java/com/facebook/react/animated/InterpolationAnimatedNode.kt +278 -0
  233. package/ReactAndroid/src/main/java/com/facebook/react/animated/ModulusAnimatedNode.kt +3 -3
  234. package/ReactAndroid/src/main/java/com/facebook/react/animated/MultiplicationAnimatedNode.kt +50 -0
  235. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +40 -1
  236. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +81 -52
  237. package/ReactAndroid/src/main/java/com/facebook/react/animated/ObjectAnimatedNode.kt +120 -0
  238. package/ReactAndroid/src/main/java/com/facebook/react/animated/PropsAnimatedNode.kt +120 -0
  239. package/ReactAndroid/src/main/java/com/facebook/react/animated/SpringAnimation.kt +187 -0
  240. package/ReactAndroid/src/main/java/com/facebook/react/animated/StyleAnimatedNode.kt +61 -0
  241. package/ReactAndroid/src/main/java/com/facebook/react/animated/SubtractionAnimatedNode.kt +52 -0
  242. package/ReactAndroid/src/main/java/com/facebook/react/animated/TrackingAnimatedNode.kt +36 -0
  243. package/ReactAndroid/src/main/java/com/facebook/react/animated/TransformAnimatedNode.kt +87 -0
  244. package/ReactAndroid/src/main/java/com/facebook/react/animated/ValueAnimatedNode.kt +50 -0
  245. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ActivityEventListener.java +4 -0
  246. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java +8 -0
  247. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ColorPropConverter.java +5 -0
  248. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromMap.java +2 -1
  249. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromObject.java +4 -1
  250. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicNative.kt +51 -0
  251. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSBundleLoaderDelegate.kt +52 -0
  252. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{JavaJSExecutor.java → JavaJSExecutor.kt} +13 -18
  253. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{JavaScriptExecutorFactory.java → JavaScriptExecutorFactory.kt} +5 -5
  254. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaScriptModule.kt +24 -0
  255. package/ReactAndroid/src/main/java/com/facebook/react/{animated/AnimatedNodeValueListener.java → bridge/PerformanceCounter.kt} +4 -4
  256. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{Promise.java → Promise.kt} +19 -29
  257. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +13 -0
  258. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.java +10 -0
  259. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarkerConstants.java +2 -0
  260. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNoCrashSoftException.java +3 -1
  261. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.kt +178 -0
  262. package/ReactAndroid/src/main/java/com/facebook/react/bridge/interop/InteropModuleRegistry.java +2 -1
  263. package/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThread.java +2 -0
  264. package/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadImpl.java +28 -47
  265. package/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/ReactQueueConfigurationImpl.java +5 -19
  266. package/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/ReactQueueConfigurationSpec.java +4 -6
  267. package/ReactAndroid/src/main/java/com/facebook/react/common/ClearableSynchronizedPool.kt +51 -0
  268. package/ReactAndroid/src/main/java/com/facebook/react/common/DebugServerException.kt +107 -0
  269. package/ReactAndroid/src/main/java/com/facebook/react/common/JavascriptException.kt +2 -10
  270. package/ReactAndroid/src/main/java/com/facebook/react/common/MapBuilder.java +6 -1
  271. package/ReactAndroid/src/main/java/com/facebook/react/common/ShakeDetector.kt +124 -0
  272. package/ReactAndroid/src/main/java/com/facebook/react/common/assets/ReactFontManager.kt +197 -0
  273. package/ReactAndroid/src/main/java/com/facebook/react/common/build/{ReactBuildConfig.java → ReactBuildConfig.kt} +9 -6
  274. package/ReactAndroid/src/main/java/com/facebook/react/common/futures/SimpleSettableFuture.kt +111 -0
  275. package/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.kt +38 -0
  276. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +16 -62
  277. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultComponentsRegistry.kt +5 -20
  278. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt +7 -55
  279. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +16 -16
  280. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHostDelegate.kt +1 -1
  281. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +1 -0
  282. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +0 -73
  283. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.java +30 -13
  284. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.kt +120 -0
  285. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevInternalSettings.kt +3 -7
  286. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +10 -1
  287. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +12 -5
  288. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialog.kt +29 -1
  289. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.kt +2 -3
  290. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.kt +10 -12
  291. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PausedInDebuggerOverlayDialogManager.java +19 -5
  292. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PerftestDevSupportManager.kt +38 -0
  293. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxDialogSurfaceDelegate.java +31 -0
  294. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.kt +168 -0
  295. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.java +94 -0
  296. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkRequestListener.java +34 -0
  297. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.kt +4 -1
  298. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.kt +2 -0
  299. package/ReactAndroid/src/main/java/com/facebook/react/fabric/BindingImpl.kt +2 -0
  300. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.kt +45 -0
  301. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +75 -37
  302. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventBeatManager.kt +43 -0
  303. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +64 -0
  304. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/LayoutMetricsConversions.kt +3 -3
  305. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +23 -25
  306. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +110 -360
  307. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +16 -22
  308. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/MountItemFactory.kt +1 -4
  309. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.java +1 -5
  310. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.kt +40 -0
  311. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEventMountItem.kt +40 -0
  312. package/ReactAndroid/src/main/java/com/facebook/react/internal/SystraceSection.kt +23 -0
  313. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +157 -13
  314. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +266 -26
  315. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +54 -6
  316. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +55 -7
  317. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +294 -30
  318. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +54 -6
  319. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt +43 -0
  320. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleInteropUtils.java +2 -5
  321. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.java +19 -57
  322. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.java +2 -15
  323. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +14 -14
  324. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/FileReaderModule.java +6 -0
  325. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ChoreographerCompat.kt +16 -0
  326. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{DefaultHardwareBackBtnHandler.java → DefaultHardwareBackBtnHandler.kt} +4 -6
  327. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/DeviceEventManagerModule.kt +65 -0
  328. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.kt +79 -0
  329. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/HeadlessJsTaskSupportModule.kt +51 -0
  330. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JSTimers.kt +21 -0
  331. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerExecutor.java → JavaScriptTimerExecutor.kt} +7 -8
  332. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt +363 -0
  333. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/PermissionAwareActivity.kt +30 -0
  334. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{PermissionListener.java → PermissionListener.kt} +9 -9
  335. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/RCTNativeAppEventEmitter.kt +17 -0
  336. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactChoreographer.kt +144 -0
  337. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.kt +83 -0
  338. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DidJSUpdateUiDuringFrameDetector.kt +36 -48
  339. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/interfaces/DeveloperSettings.kt +2 -0
  340. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/AlertFragment.java +58 -5
  341. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.kt +163 -0
  342. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactNetworkImageRequest.kt +31 -0
  343. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.kt +56 -0
  344. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/SystraceRequestListener.kt +152 -0
  345. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.kt +2 -6
  346. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nUtil.kt +4 -3
  347. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/OkHttpCompat.java +35 -0
  348. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/RequestBodyUtil.java +1 -7
  349. package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/PermissionsModule.kt +189 -0
  350. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.kt +4 -28
  351. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoHelpers.java +48 -0
  352. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
  353. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt +55 -0
  354. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessDevSupportManager.java +9 -14
  355. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.java +2 -2
  356. package/ReactAndroid/src/main/java/com/facebook/react/runtime/CoreReactPackage.java +2 -2
  357. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostDelegate.kt +0 -18
  358. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +243 -210
  359. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +47 -45
  360. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +2 -1
  361. package/ReactAndroid/src/main/java/com/facebook/react/runtime/hermes/HermesInstance.kt +11 -4
  362. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/Executors.kt +44 -0
  363. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +5 -2
  364. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +263 -0
  365. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +64 -32
  366. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt +109 -0
  367. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerInterface.kt +85 -0
  368. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BlendModeHelper.kt +44 -0
  369. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FilterHelper.kt +89 -17
  370. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/IViewGroupManager.kt +35 -0
  371. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{IViewManagerWithChildren.java → IViewManagerWithChildren.kt} +3 -3
  372. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +58 -11
  373. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutDirectionUtil.kt +29 -0
  374. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +2 -2
  375. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LengthPercentage.kt +8 -7
  376. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +23 -7
  377. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +4 -2
  378. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/PixelUtil.kt +21 -0
  379. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +2 -1
  380. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +1 -1
  381. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +14 -0
  382. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +16 -0
  383. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.java +9 -7
  384. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +33 -5
  385. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +20 -10
  386. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.kt +24 -0
  387. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +3 -0
  388. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BoxShadowBorderRadius.kt +29 -0
  389. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CSSBackgroundDrawable.java +160 -87
  390. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CompositeBackgroundDrawable.kt +85 -0
  391. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/InsetBoxShadowDrawable.kt +191 -0
  392. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/OutsetBoxShadowDrawable.kt +159 -0
  393. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/BlackHoleEventDispatcher.kt +57 -0
  394. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ContentSizeChangeEvent.kt +37 -0
  395. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +2 -2
  396. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java +55 -29
  397. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/SimpleSpringInterpolator.kt +48 -0
  398. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundImageLayer.kt +28 -0
  399. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderInsets.kt +105 -0
  400. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +27 -12
  401. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderStyle.kt +26 -0
  402. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BoxShadow.kt +50 -0
  403. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ComputedBorderRadius.kt +30 -6
  404. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/CornerRadii.kt +19 -0
  405. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Gradient.kt +76 -0
  406. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/LogicalEdge.kt +79 -0
  407. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Overflow.kt +26 -0
  408. package/ReactAndroid/src/main/java/com/facebook/react/views/debuggingoverlay/DebuggingOverlayManager.kt +3 -13
  409. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayout.kt +125 -0
  410. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.kt +259 -0
  411. package/ReactAndroid/src/main/java/com/facebook/react/views/image/MultiPostprocessor.kt +61 -0
  412. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageDownloadListener.kt +1 -1
  413. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.kt +307 -0
  414. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +725 -0
  415. package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ImageSource.kt +7 -5
  416. package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ResourceDrawableIdHelper.kt +35 -0
  417. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostHelper.kt +1 -0
  418. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostShadowNode.kt +1 -4
  419. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +13 -30
  420. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +61 -90
  421. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.kt +70 -0
  422. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ReactProgressBarViewManager.kt +165 -0
  423. package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaView.kt +65 -0
  424. package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaViewManager.kt +51 -0
  425. package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaViewShadowNode.kt +12 -0
  426. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/OnScrollDispatchHelper.kt +50 -0
  427. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +80 -11
  428. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +64 -20
  429. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +79 -11
  430. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +22 -33
  431. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +65 -19
  432. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VelocityHelper.kt +51 -0
  433. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.java +11 -0
  434. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitch.kt +110 -0
  435. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactRawTextManager.java +8 -0
  436. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +73 -20
  437. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +143 -77
  438. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java +36 -32
  439. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +11 -0
  440. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +79 -104
  441. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactOpacitySpan.kt +33 -0
  442. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +89 -9
  443. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +67 -38
  444. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.kt +95 -0
  445. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +2 -0
  446. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundManager.java +6 -4
  447. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +257 -96
  448. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.java +86 -25
  449. package/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt +63 -0
  450. package/ReactAndroid/src/main/java/com/facebook/systrace/Systrace.kt +23 -0
  451. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.java +1 -0
  452. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +2 -0
  453. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +4 -0
  454. package/ReactAndroid/src/main/jni/CMakeLists.txt +182 -3
  455. package/ReactAndroid/src/main/jni/first-party/fbgloginit/CMakeLists.txt +1 -1
  456. package/ReactAndroid/src/main/jni/first-party/jni-lib-merge/CMakeLists.txt +24 -0
  457. package/ReactAndroid/src/main/jni/first-party/jni-lib-merge/SoMerging-utils.cmake +23 -0
  458. package/ReactAndroid/src/main/jni/first-party/jni-lib-merge/jni_lib_merge.c +157 -0
  459. package/ReactAndroid/src/main/jni/first-party/jni-lib-merge/jni_lib_merge.h +108 -0
  460. package/ReactAndroid/src/main/jni/first-party/yogajni/CMakeLists.txt +5 -1
  461. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +12 -1
  462. package/ReactAndroid/src/main/jni/react/devsupport/CMakeLists.txt +5 -1
  463. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocketDelegate.cpp +11 -2
  464. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocketDelegate.h +1 -3
  465. package/ReactAndroid/src/main/jni/react/fabric/Binding.cpp +35 -19
  466. package/ReactAndroid/src/main/jni/react/fabric/Binding.h +3 -0
  467. package/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt +9 -1
  468. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +6 -43
  469. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.h +4 -27
  470. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +76 -40
  471. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +25 -1
  472. package/ReactAndroid/src/main/jni/react/fabric/MountItem.cpp +0 -7
  473. package/ReactAndroid/src/main/jni/react/fabric/MountItem.h +1 -7
  474. package/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +0 -2
  475. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp +49 -13
  476. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +3 -2
  477. package/ReactAndroid/src/main/jni/react/featureflags/CMakeLists.txt +5 -1
  478. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +369 -33
  479. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +79 -7
  480. package/ReactAndroid/src/main/jni/react/hermes/instrumentation/CMakeLists.txt +7 -6
  481. package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/CMakeLists.txt +5 -6
  482. package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/OnLoad.cpp +0 -1
  483. package/ReactAndroid/src/main/jni/react/hermes/tooling/CMakeLists.txt +41 -0
  484. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +3 -1
  485. package/ReactAndroid/src/main/jni/react/jni/InspectorNetworkRequestListener.cpp +76 -0
  486. package/ReactAndroid/src/main/jni/react/jni/InspectorNetworkRequestListener.h +44 -0
  487. package/ReactAndroid/src/main/jni/react/jni/JDynamicNative.cpp +46 -0
  488. package/ReactAndroid/src/main/jni/react/jni/JDynamicNative.h +56 -0
  489. package/ReactAndroid/src/main/jni/react/jni/JReactMarker.cpp +1 -0
  490. package/ReactAndroid/src/main/jni/react/jni/JWeakRefUtils.h +23 -0
  491. package/ReactAndroid/src/main/jni/react/jni/MethodInvoker.cpp +3 -1
  492. package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +4 -0
  493. package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.cpp +71 -18
  494. package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.h +17 -6
  495. package/ReactAndroid/src/main/jni/react/jscexecutor/CMakeLists.txt +6 -7
  496. package/ReactAndroid/src/main/jni/react/jsctooling/CMakeLists.txt +34 -0
  497. package/ReactAndroid/src/main/jni/react/mapbuffer/CMakeLists.txt +5 -1
  498. package/ReactAndroid/src/main/jni/react/newarchdefaults/CMakeLists.txt +10 -2
  499. package/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.cpp +16 -33
  500. package/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.h +2 -11
  501. package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +4 -1
  502. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/CMakeLists.txt +8 -4
  503. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.cpp +4 -3
  504. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.h +8 -3
  505. package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +4 -1
  506. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +64 -22
  507. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +35 -6
  508. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +1 -0
  509. package/ReactAndroid/src/main/jni/react/runtime/jsc/jni/CMakeLists.txt +7 -5
  510. package/ReactAndroid/src/main/jni/react/turbomodule/CMakeLists.txt +7 -2
  511. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +156 -166
  512. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +23 -17
  513. package/ReactAndroid/src/main/jni/react/uimanager/CMakeLists.txt +17 -5
  514. package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +1 -1
  515. package/ReactAndroid/src/main/jni/third-party/glog/CMakeLists.txt +1 -1
  516. package/ReactAndroid/src/main/res/devsupport/drawable/paused_in_debugger_background.xml +1 -1
  517. package/ReactAndroid/src/main/res/devsupport/drawable/paused_in_debugger_dialog_background.xml +7 -0
  518. package/ReactAndroid/src/main/res/devsupport/drawable-hdpi/ic_resume.png +0 -0
  519. package/ReactAndroid/src/main/res/devsupport/drawable-mdpi/ic_resume.png +0 -0
  520. package/ReactAndroid/src/main/res/devsupport/drawable-xhdpi/ic_resume.png +0 -0
  521. package/ReactAndroid/src/main/res/devsupport/drawable-xxhdpi/ic_resume.png +0 -0
  522. package/ReactAndroid/src/main/res/devsupport/drawable-xxxhdpi/ic_resume.png +0 -0
  523. package/ReactAndroid/src/main/res/devsupport/layout/paused_in_debugger_view.xml +19 -18
  524. package/ReactAndroid/src/main/res/devsupport/values/strings.xml +2 -2
  525. package/ReactAndroid/src/main/res/devsupport/values/styles.xml +4 -0
  526. package/ReactAndroid/src/main/res/devsupport/xml/rn_dev_preferences.xml +0 -6
  527. package/ReactAndroid/src/main/res/views/alert/layout/alert_title_layout.xml +22 -0
  528. package/ReactAndroid/src/main/res/views/uimanager/values/ids.xml +3 -0
  529. package/ReactCommon/cxxreact/CMakeLists.txt +2 -1
  530. package/ReactCommon/cxxreact/CxxModule.h +0 -2
  531. package/ReactCommon/cxxreact/JSExecutor.cpp +2 -7
  532. package/ReactCommon/cxxreact/React-cxxreact.podspec +1 -0
  533. package/ReactCommon/cxxreact/ReactMarker.cpp +10 -2
  534. package/ReactCommon/cxxreact/ReactMarker.h +5 -1
  535. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  536. package/ReactCommon/cxxreact/SystraceSection.h +15 -10
  537. package/ReactCommon/cxxreact/tests/jsarg_helpers.cpp +1 -1
  538. package/ReactCommon/hermes/executor/CMakeLists.txt +3 -3
  539. package/ReactCommon/hermes/inspector-modern/CMakeLists.txt +2 -5
  540. package/ReactCommon/jsc/CMakeLists.txt +5 -3
  541. package/ReactCommon/jserrorhandler/CMakeLists.txt +1 -1
  542. package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +40 -1
  543. package/ReactCommon/jserrorhandler/JsErrorHandler.h +12 -1
  544. package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +6 -0
  545. package/ReactCommon/jsi/jsi/decorator.h +57 -4
  546. package/ReactCommon/jsi/jsi/instrumentation.h +15 -3
  547. package/ReactCommon/jsi/jsi/jsi.cpp +6 -2
  548. package/ReactCommon/jsiexecutor/CMakeLists.txt +1 -1
  549. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +10 -4
  550. package/ReactCommon/jsiexecutor/jsireact/JSINativeModules.cpp +5 -1
  551. package/ReactCommon/jsinspector-modern/Base64.h +98 -0
  552. package/ReactCommon/jsinspector-modern/CMakeLists.txt +6 -1
  553. package/ReactCommon/jsinspector-modern/CdpJson.h +1 -1
  554. package/ReactCommon/jsinspector-modern/ExecutionContext.cpp +3 -4
  555. package/ReactCommon/jsinspector-modern/FallbackRuntimeAgentDelegate.h +5 -5
  556. package/ReactCommon/jsinspector-modern/HostAgent.cpp +45 -22
  557. package/ReactCommon/jsinspector-modern/HostAgent.h +7 -1
  558. package/ReactCommon/jsinspector-modern/HostTarget.cpp +36 -7
  559. package/ReactCommon/jsinspector-modern/HostTarget.h +25 -5
  560. package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +14 -3
  561. package/ReactCommon/jsinspector-modern/InspectorFlags.h +1 -1
  562. package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +5 -1
  563. package/ReactCommon/jsinspector-modern/InspectorInterfaces.h +18 -1
  564. package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.h +4 -5
  565. package/ReactCommon/jsinspector-modern/NetworkIOAgent.cpp +440 -0
  566. package/ReactCommon/jsinspector-modern/NetworkIOAgent.h +266 -0
  567. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +1 -0
  568. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +22 -0
  569. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +46 -0
  570. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +31 -0
  571. package/ReactCommon/jsinspector-modern/RuntimeTargetConsole.cpp +2 -2
  572. package/ReactCommon/jsinspector-modern/RuntimeTargetDebuggerSessionObserver.cpp +112 -0
  573. package/ReactCommon/jsinspector-modern/Utf8.h +56 -0
  574. package/ReactCommon/jsinspector-modern/WebSocketInterfaces.h +6 -0
  575. package/ReactCommon/jsinspector-modern/tests/ConsoleApiTest.cpp +54 -0
  576. package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +801 -0
  577. package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +6 -0
  578. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp +29 -12
  579. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +38 -0
  580. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +2 -1
  581. package/ReactCommon/jsinspector-modern/tests/RuntimeTargetDebuggerSessionObserverTest.cpp +214 -0
  582. package/ReactCommon/jsinspector-modern/tests/Utf8.cpp +58 -0
  583. package/ReactCommon/logger/CMakeLists.txt +1 -1
  584. package/ReactCommon/react/bridging/Bool.h +1 -1
  585. package/ReactCommon/react/bridging/CMakeLists.txt +1 -1
  586. package/ReactCommon/react/config/CMakeLists.txt +1 -1
  587. package/ReactCommon/react/config/ReactNativeConfig.cpp +0 -3
  588. package/ReactCommon/react/debug/CMakeLists.txt +1 -1
  589. package/ReactCommon/react/featureflags/CMakeLists.txt +1 -1
  590. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +107 -11
  591. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +132 -12
  592. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +479 -47
  593. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +58 -10
  594. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +106 -10
  595. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +29 -5
  596. package/ReactCommon/react/nativemodule/core/CMakeLists.txt +2 -1
  597. package/ReactCommon/react/nativemodule/core/ReactCommon/CxxTurboModuleUtils.h +6 -38
  598. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +68 -66
  599. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +2 -2
  600. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +21 -2
  601. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +13 -0
  602. package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -1
  603. package/ReactCommon/react/nativemodule/dom/CMakeLists.txt +5 -1
  604. package/ReactCommon/react/nativemodule/featureflags/CMakeLists.txt +1 -1
  605. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +132 -12
  606. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +54 -6
  607. package/ReactCommon/react/nativemodule/idlecallbacks/CMakeLists.txt +1 -1
  608. package/ReactCommon/react/nativemodule/microtasks/CMakeLists.txt +1 -1
  609. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +0 -11
  610. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +2 -0
  611. package/ReactCommon/react/nativemodule/samples/platform/android/CMakeLists.txt +2 -2
  612. package/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +16 -0
  613. package/ReactCommon/react/nativemodule/samples/platform/android/ReactCommon/SampleTurboModuleSpec.cpp +9 -0
  614. package/ReactCommon/react/nativemodule/samples/platform/android/SampleTurboModule.java +20 -1
  615. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.h +11 -0
  616. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.mm +34 -0
  617. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.h +1 -1
  618. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.mm +4 -0
  619. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +28 -16
  620. package/ReactCommon/react/nativemodule/webperformance/NativePerformanceObserver.cpp +8 -1
  621. package/ReactCommon/react/performance/timeline/CMakeLists.txt +2 -1
  622. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +12 -2
  623. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +8 -4
  624. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
  625. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +0 -18
  626. package/ReactCommon/react/renderer/attributedstring/CMakeLists.txt +1 -1
  627. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +4 -0
  628. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +2 -0
  629. package/ReactCommon/react/renderer/attributedstring/conversions.h +55 -2
  630. package/ReactCommon/react/renderer/attributedstring/primitives.h +9 -0
  631. package/ReactCommon/react/renderer/componentregistry/CMakeLists.txt +1 -1
  632. package/ReactCommon/react/renderer/componentregistry/native/CMakeLists.txt +1 -1
  633. package/ReactCommon/react/renderer/components/image/CMakeLists.txt +1 -1
  634. package/ReactCommon/react/renderer/components/image/conversions.h +9 -0
  635. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/CMakeLists.txt +1 -1
  636. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm +2 -3
  637. package/ReactCommon/react/renderer/components/modal/ModalHostViewState.h +10 -1
  638. package/{ReactAndroid/src/main/java/com/facebook/react/bridge/PerformanceCounter.java → ReactCommon/react/renderer/components/modal/ModalHostViewUtils.h} +5 -6
  639. package/ReactCommon/react/renderer/components/modal/ModalHostViewUtils.mm +20 -0
  640. package/ReactCommon/react/renderer/components/progressbar/CMakeLists.txt +1 -1
  641. package/ReactCommon/react/renderer/components/root/CMakeLists.txt +1 -1
  642. package/ReactCommon/react/renderer/components/safeareaview/CMakeLists.txt +46 -0
  643. package/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewState.cpp +10 -1
  644. package/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewState.h +20 -0
  645. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.cpp +99 -0
  646. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h +44 -0
  647. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.cpp +16 -72
  648. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +12 -18
  649. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +9 -0
  650. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +1 -0
  651. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +8 -0
  652. package/ReactCommon/react/renderer/components/text/CMakeLists.txt +1 -2
  653. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +35 -17
  654. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h +3 -0
  655. package/ReactCommon/react/renderer/components/textinput/CMakeLists.txt +1 -1
  656. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +27 -0
  657. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +3 -0
  658. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputEventEmitter.cpp +1 -1
  659. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.cpp +29 -0
  660. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h +3 -0
  661. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +20 -0
  662. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +2 -0
  663. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +117 -77
  664. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +18 -1
  665. package/ReactCommon/react/renderer/components/view/CMakeLists.txt +1 -1
  666. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +4 -1
  667. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +21 -0
  668. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +4 -0
  669. package/ReactCommon/react/renderer/components/view/conversions.h +307 -23
  670. package/ReactCommon/react/renderer/components/view/primitives.h +8 -1
  671. package/ReactCommon/react/renderer/consistency/CMakeLists.txt +1 -1
  672. package/ReactCommon/react/renderer/core/CMakeLists.txt +1 -1
  673. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +21 -12
  674. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +5 -3
  675. package/ReactCommon/react/renderer/core/EventDispatcher.h +1 -1
  676. package/ReactCommon/react/renderer/core/EventEmitter.cpp +1 -1
  677. package/ReactCommon/react/renderer/core/EventEmitter.h +2 -0
  678. package/ReactCommon/react/renderer/core/EventListener.cpp +6 -3
  679. package/ReactCommon/react/renderer/core/EventListener.h +1 -1
  680. package/ReactCommon/react/renderer/core/EventLogger.h +4 -1
  681. package/ReactCommon/react/renderer/core/EventPayloadType.h +1 -1
  682. package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +35 -11
  683. package/ReactCommon/react/renderer/core/EventTarget.cpp +8 -1
  684. package/ReactCommon/react/renderer/core/EventTarget.h +6 -1
  685. package/ReactCommon/react/renderer/core/LayoutableShadowNode.cpp +26 -6
  686. package/ReactCommon/react/renderer/core/LayoutableShadowNode.h +2 -3
  687. package/ReactCommon/react/renderer/core/Props.h +5 -0
  688. package/ReactCommon/react/renderer/core/PropsMacros.h +15 -11
  689. package/ReactCommon/react/renderer/core/RawProps.cpp +1 -6
  690. package/ReactCommon/react/renderer/core/RawProps.h +0 -8
  691. package/ReactCommon/react/renderer/core/RawPropsKeyMap.cpp +1 -1
  692. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +19 -73
  693. package/ReactCommon/react/renderer/core/RawPropsParser.h +0 -9
  694. package/ReactCommon/react/renderer/core/RawValue.h +6 -7
  695. package/ReactCommon/react/renderer/core/ShadowNode.cpp +5 -4
  696. package/ReactCommon/react/renderer/core/ShadowNode.h +5 -5
  697. package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +3 -0
  698. package/ReactCommon/react/renderer/core/tests/EventQueueProcessorTest.cpp +3 -1
  699. package/ReactCommon/react/renderer/core/tests/EventTargetTests.cpp +3 -1
  700. package/ReactCommon/react/renderer/core/tests/FindNodeAtPointTest.cpp +49 -0
  701. package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +1 -1
  702. package/ReactCommon/react/renderer/debug/CMakeLists.txt +2 -2
  703. package/ReactCommon/react/renderer/dom/CMakeLists.txt +1 -1
  704. package/ReactCommon/react/renderer/element/CMakeLists.txt +1 -1
  705. package/ReactCommon/react/renderer/graphics/BackgroundImage.h +46 -0
  706. package/ReactCommon/react/renderer/graphics/BlendMode.h +72 -0
  707. package/ReactCommon/react/renderer/graphics/BoxShadow.h +25 -0
  708. package/ReactCommon/react/renderer/graphics/CMakeLists.txt +1 -1
  709. package/ReactCommon/react/renderer/graphics/Color.cpp +27 -0
  710. package/ReactCommon/react/renderer/graphics/Color.h +6 -0
  711. package/ReactCommon/react/renderer/graphics/Filter.h +19 -5
  712. package/ReactCommon/react/renderer/graphics/Isolation.h +31 -0
  713. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -0
  714. package/ReactCommon/react/renderer/graphics/Transform.cpp +3 -2
  715. package/ReactCommon/react/renderer/graphics/Transform.h +11 -0
  716. package/ReactCommon/react/renderer/graphics/ValueUnit.h +3 -2
  717. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/HostPlatformColor.h +21 -0
  718. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +48 -20
  719. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/HostPlatformColor.h +31 -8
  720. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.h +31 -0
  721. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.mm +9 -0
  722. package/ReactCommon/react/renderer/graphics/tests/ColorTest.cpp +38 -0
  723. package/ReactCommon/react/renderer/imagemanager/CMakeLists.txt +1 -1
  724. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h +7 -0
  725. package/ReactCommon/react/renderer/imagemanager/primitives.h +1 -0
  726. package/ReactCommon/react/renderer/mapbuffer/CMakeLists.txt +1 -1
  727. package/ReactCommon/react/renderer/mounting/CMakeLists.txt +1 -1
  728. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +15 -52
  729. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +10 -3
  730. package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +22 -1
  731. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +4 -32
  732. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +2 -28
  733. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +0 -5
  734. package/ReactCommon/react/renderer/observers/events/CMakeLists.txt +4 -1
  735. package/ReactCommon/react/renderer/observers/events/EventPerformanceLogger.cpp +75 -18
  736. package/ReactCommon/react/renderer/observers/events/EventPerformanceLogger.h +19 -2
  737. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +14 -10
  738. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.h +6 -3
  739. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +24 -8
  740. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.h +6 -3
  741. package/ReactCommon/react/renderer/runtimescheduler/CMakeLists.txt +2 -0
  742. package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +2 -0
  743. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +30 -7
  744. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +25 -3
  745. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerEventTimingDelegate.h +25 -0
  746. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +19 -6
  747. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.h +12 -2
  748. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +116 -53
  749. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.h +36 -12
  750. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +149 -2
  751. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +29 -22
  752. package/ReactCommon/react/renderer/scheduler/Scheduler.h +1 -7
  753. package/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h +0 -10
  754. package/ReactCommon/react/renderer/telemetry/CMakeLists.txt +1 -1
  755. package/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt +1 -2
  756. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +44 -0
  757. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +70 -40
  758. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h +17 -7
  759. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.cpp +14 -7
  760. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.h +16 -7
  761. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.h +2 -0
  762. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +6 -2
  763. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +3 -2
  764. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +83 -13
  765. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextPrimitivesConversions.h +18 -0
  766. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.h +17 -7
  767. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +34 -10
  768. package/ReactCommon/react/renderer/uimanager/CMakeLists.txt +1 -1
  769. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +9 -11
  770. package/ReactCommon/react/renderer/uimanager/UIManager.h +0 -6
  771. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +16 -72
  772. package/ReactCommon/react/renderer/uimanager/UIManagerMountHook.h +6 -0
  773. package/ReactCommon/react/renderer/uimanager/consistency/CMakeLists.txt +1 -1
  774. package/ReactCommon/react/renderer/uimanager/primitives.h +8 -3
  775. package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +1 -4
  776. package/ReactCommon/react/runtime/BufferedRuntimeExecutor.h +1 -1
  777. package/ReactCommon/react/runtime/CMakeLists.txt +2 -6
  778. package/ReactCommon/react/runtime/JSRuntimeFactory.h +8 -0
  779. package/ReactCommon/react/runtime/React-RuntimeCore.podspec +1 -0
  780. package/ReactCommon/react/runtime/ReactInstance.cpp +117 -50
  781. package/ReactCommon/react/runtime/TimerManager.cpp +156 -75
  782. package/ReactCommon/react/runtime/TimerManager.h +16 -4
  783. package/ReactCommon/react/runtime/hermes/CMakeLists.txt +3 -5
  784. package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +24 -15
  785. package/ReactCommon/react/runtime/hermes/HermesInstance.h +3 -2
  786. package/ReactCommon/react/runtime/nativeviewconfig/CMakeLists.txt +1 -1
  787. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.h +7 -5
  788. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.mm +12 -8
  789. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +22 -52
  790. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h +1 -3
  791. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +9 -8
  792. package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +22 -16
  793. package/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.mm +4 -5
  794. package/ReactCommon/react/timing/CMakeLists.txt +18 -0
  795. package/ReactCommon/react/timing/React-timing.podspec +44 -0
  796. package/ReactCommon/react/timing/primitives.h +31 -0
  797. package/ReactCommon/react/timing/tests/PrimitivesTest.cpp +47 -0
  798. package/ReactCommon/react/utils/CMakeLists.txt +1 -1
  799. package/ReactCommon/react/utils/CoreFeatures.cpp +0 -1
  800. package/ReactCommon/react/utils/CoreFeatures.h +0 -4
  801. package/ReactCommon/reactperflogger/CMakeLists.txt +7 -2
  802. package/ReactCommon/reactperflogger/React-perflogger.podspec +15 -2
  803. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.cpp +117 -0
  804. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.h +53 -0
  805. package/ReactCommon/reactperflogger/fusebox/tests/FuseboxTracerTest.cpp +90 -0
  806. package/ReactCommon/reactperflogger/reactperflogger/HermesPerfettoDataSource.cpp +19 -4
  807. package/ReactCommon/reactperflogger/reactperflogger/HermesPerfettoDataSource.h +9 -1
  808. package/ReactCommon/reactperflogger/reactperflogger/ReactPerfetto.cpp +42 -6
  809. package/ReactCommon/reactperflogger/reactperflogger/ReactPerfetto.h +6 -1
  810. package/ReactCommon/runtimeexecutor/CMakeLists.txt +1 -1
  811. package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +5 -0
  812. package/ReactCommon/yoga/yoga/YGNodeStyle.h +3 -1
  813. package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +48 -19
  814. package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.h +2 -1
  815. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +28 -2
  816. package/ReactCommon/yoga/yoga/config/Config.cpp +24 -5
  817. package/ReactCommon/yoga/yoga/config/Config.h +3 -0
  818. package/ReactCommon/yoga/yoga/node/LayoutResults.cpp +1 -0
  819. package/ReactCommon/yoga/yoga/node/LayoutResults.h +1 -0
  820. package/ReactCommon/yoga/yoga/node/Node.cpp +7 -1
  821. package/ReactCommon/yoga/yoga/style/Style.h +18 -0
  822. package/flow/jest.js +2 -2
  823. package/gradle/libs.versions.toml +4 -6
  824. package/index.js +6 -4
  825. package/jest/mockComponent.js +4 -1
  826. package/jest/mockModal.js +1 -3
  827. package/jest/mockScrollView.js +1 -1
  828. package/jest/renderer.js +2 -2
  829. package/jest/setup.js +16 -13
  830. package/package.json +14 -15
  831. package/react-native.config.js +26 -5
  832. package/scripts/bundle.js +7 -2
  833. package/scripts/cocoapods/autolinking.rb +2 -1
  834. package/scripts/cocoapods/helpers.rb +73 -6
  835. package/scripts/cocoapods/new_architecture.rb +1 -1
  836. package/scripts/cocoapods/utils.rb +18 -7
  837. package/scripts/codegen/generate-artifacts-executor.js +3 -2
  838. package/scripts/hermes/hermes-utils.js +0 -1
  839. package/scripts/ios-configure-glog.sh +2 -0
  840. package/scripts/react-native-xcode.sh +1 -2
  841. package/scripts/react_native_pods.rb +73 -2
  842. package/sdks/.hermesversion +1 -1
  843. package/sdks/hermes-engine/hermes-engine.podspec +9 -3
  844. package/sdks/hermes-engine/utils/build-apple-framework.sh +13 -4
  845. package/sdks/hermes-engine/utils/build-ios-framework.sh +2 -4
  846. package/sdks/hermesc/linux64-bin/hermesc +0 -0
  847. package/sdks/hermesc/osx-bin/hermes +0 -0
  848. package/sdks/hermesc/osx-bin/hermesc +0 -0
  849. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  850. package/sdks/ossonly-soloader/src/main/java/com/facebook/soloader/DoNotOptimize.kt +10 -0
  851. package/sdks/ossonly-soloader/src/main/java/com/facebook/soloader/MergedSoMapping.kt +117 -0
  852. package/sdks/ossonly-soloader/src/main/java/com/facebook/soloader/SoLoader.kt +53 -0
  853. package/sdks/ossonly-soloader/src/main/java/com/facebook/soloader/nativeloader/NativeLoader.kt +28 -0
  854. package/sdks/ossonly-soloader/src/main/java/com/facebook/soloader/nativeloader/NativeLoaderDelegate.kt +23 -0
  855. package/sdks/ossonly-soloader/src/main/java/com/facebook/soloader/nativeloader/SystemDelegate.kt +10 -0
  856. package/src/private/animated/NativeAnimatedHelper.js +438 -0
  857. package/src/private/animated/NativeAnimatedValidation.js +64 -0
  858. package/src/private/components/HScrollViewNativeComponents.js +56 -0
  859. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +27 -0
  860. package/src/private/components/VScrollViewNativeComponents.js +48 -0
  861. package/src/private/components/useSyncOnScroll.js +48 -0
  862. package/src/private/featureflags/ReactNativeFeatureFlags.js +166 -16
  863. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +29 -5
  864. package/src/private/fusebox/FuseboxSessionObserver.js +42 -0
  865. package/{Libraries/Core → src/private/renderer/errorhandling}/ErrorHandlers.js +14 -4
  866. package/src/private/setup/setUpDOM.js +28 -0
  867. package/src/private/setup/setUpIntersectionObserver.js +27 -0
  868. package/src/private/setup/setUpMutationObserver.js +26 -0
  869. package/src/private/setup/setUpPerformanceObserver.js +64 -0
  870. package/src/private/specs/modules/NativeAppearance.js +3 -3
  871. package/src/private/specs/modules/NativeLinkingManager.js +1 -1
  872. package/src/private/specs/modules/NativeSampleTurboModule.js +14 -1
  873. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +6 -4
  874. package/{Libraries/IntersectionObserver → src/private/webapis/intersectionobserver}/IntersectionObserver.js +5 -3
  875. package/{Libraries/IntersectionObserver → src/private/webapis/intersectionobserver}/IntersectionObserverEntry.js +3 -3
  876. package/{Libraries/IntersectionObserver → src/private/webapis/intersectionobserver}/IntersectionObserverManager.js +14 -17
  877. package/src/private/{specs/modules → webapis/intersectionobserver/specs}/NativeIntersectionObserver.js +2 -2
  878. package/{Libraries/IntersectionObserver → src/private/webapis/intersectionobserver/specs}/__mocks__/NativeIntersectionObserver.js +4 -4
  879. package/{Libraries/MutationObserver → src/private/webapis/mutationobserver}/MutationObserver.js +5 -3
  880. package/{Libraries/MutationObserver → src/private/webapis/mutationobserver}/MutationObserverManager.js +24 -15
  881. package/{Libraries/MutationObserver → src/private/webapis/mutationobserver}/MutationRecord.js +4 -6
  882. package/src/private/{specs/modules → webapis/mutationobserver/specs}/NativeMutationObserver.js +2 -2
  883. package/{Libraries/MutationObserver → src/private/webapis/mutationobserver/specs}/__mocks__/NativeMutationObserver.js +5 -5
  884. package/src/private/webapis/performance/{EventCounts.js → EventTiming.js} +65 -3
  885. package/src/private/webapis/performance/LongTasks.js +39 -0
  886. package/src/private/webapis/performance/Performance.js +22 -9
  887. package/src/private/webapis/performance/PerformanceEntry.js +36 -18
  888. package/src/private/webapis/performance/PerformanceObserver.js +29 -43
  889. package/src/private/webapis/performance/RawPerformanceEntry.js +24 -1
  890. package/src/private/webapis/performance/UserTiming.js +17 -12
  891. package/src/private/webapis/performance/specs/NativePerformanceObserver.js +1 -1
  892. package/third-party-podspecs/DoubleConversion.podspec +4 -1
  893. package/third-party-podspecs/RCT-Folly.podspec +3 -1
  894. package/third-party-podspecs/boost.podspec +4 -1
  895. package/third-party-podspecs/fmt.podspec +4 -1
  896. package/third-party-podspecs/glog.podspec +4 -1
  897. package/types/experimental.d.ts +1 -1
  898. package/types/public/ReactNativeTVTypes.d.ts +44 -3
  899. package/Libraries/Animated/NativeAnimatedHelper.js +0 -615
  900. package/Libraries/Core/setUpIntersectionObserver.js +0 -16
  901. package/Libraries/Core/setUpMutationObserver.js +0 -16
  902. package/Libraries/Core/setUpPerformanceObserver.js +0 -18
  903. package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +0 -13
  904. package/Libraries/MutationObserver/NativeMutationObserver.js +0 -13
  905. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +0 -135
  906. package/ReactAndroid/src/main/java/com/facebook/annotationprocessors/common/ProcessorBase.java +0 -24
  907. package/ReactAndroid/src/main/java/com/facebook/react/animated/AdditionAnimatedNode.java +0 -56
  908. package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNode.java +0 -78
  909. package/ReactAndroid/src/main/java/com/facebook/react/animated/ColorAnimatedNode.java +0 -131
  910. package/ReactAndroid/src/main/java/com/facebook/react/animated/DecayAnimation.java +0 -79
  911. package/ReactAndroid/src/main/java/com/facebook/react/animated/DiffClampAnimatedNode.java +0 -66
  912. package/ReactAndroid/src/main/java/com/facebook/react/animated/DivisionAnimatedNode.java +0 -64
  913. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.java +0 -116
  914. package/ReactAndroid/src/main/java/com/facebook/react/animated/FrameBasedAnimationDriver.java +0 -109
  915. package/ReactAndroid/src/main/java/com/facebook/react/animated/InterpolationAnimatedNode.java +0 -311
  916. package/ReactAndroid/src/main/java/com/facebook/react/animated/MultiplicationAnimatedNode.java +0 -56
  917. package/ReactAndroid/src/main/java/com/facebook/react/animated/ObjectAnimatedNode.java +0 -161
  918. package/ReactAndroid/src/main/java/com/facebook/react/animated/PropsAnimatedNode.java +0 -145
  919. package/ReactAndroid/src/main/java/com/facebook/react/animated/SpringAnimation.java +0 -207
  920. package/ReactAndroid/src/main/java/com/facebook/react/animated/StyleAnimatedNode.java +0 -70
  921. package/ReactAndroid/src/main/java/com/facebook/react/animated/SubtractionAnimatedNode.java +0 -60
  922. package/ReactAndroid/src/main/java/com/facebook/react/animated/TrackingAnimatedNode.java +0 -50
  923. package/ReactAndroid/src/main/java/com/facebook/react/animated/TransformAnimatedNode.java +0 -93
  924. package/ReactAndroid/src/main/java/com/facebook/react/animated/ValueAnimatedNode.java +0 -66
  925. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BackgroundExecutor.java +0 -64
  926. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSBundleLoaderDelegate.java +0 -51
  927. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaScriptModule.java +0 -25
  928. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java +0 -162
  929. package/ReactAndroid/src/main/java/com/facebook/react/common/ClearableSynchronizedPool.java +0 -53
  930. package/ReactAndroid/src/main/java/com/facebook/react/common/DebugServerException.java +0 -104
  931. package/ReactAndroid/src/main/java/com/facebook/react/common/HasJavascriptExceptionMetadata.java +0 -17
  932. package/ReactAndroid/src/main/java/com/facebook/react/common/LongArray.java +0 -75
  933. package/ReactAndroid/src/main/java/com/facebook/react/common/ShakeDetector.java +0 -144
  934. package/ReactAndroid/src/main/java/com/facebook/react/common/assets/ReactFontManager.java +0 -239
  935. package/ReactAndroid/src/main/java/com/facebook/react/common/futures/SimpleSettableFuture.java +0 -121
  936. package/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.java +0 -36
  937. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.java +0 -156
  938. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PerftestDevSupportManager.java +0 -50
  939. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.java +0 -214
  940. package/ReactAndroid/src/main/java/com/facebook/react/fabric/CoreComponentsRegistry.kt +0 -30
  941. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java +0 -54
  942. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventBeatManager.java +0 -48
  943. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +0 -74
  944. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.java +0 -56
  945. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEventMountItem.java +0 -57
  946. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ChoreographerCompat.java +0 -18
  947. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/DeviceEventManagerModule.java +0 -76
  948. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.java +0 -91
  949. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/HeadlessJsTaskSupportModule.java +0 -61
  950. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JSTimers.java +0 -21
  951. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +0 -428
  952. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/PermissionAwareActivity.java +0 -29
  953. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/RCTNativeAppEventEmitter.java +0 -18
  954. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactChoreographer.java +0 -172
  955. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +0 -104
  956. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.java +0 -225
  957. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactNetworkImageRequest.java +0 -33
  958. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.java +0 -80
  959. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/SystraceRequestListener.java +0 -160
  960. package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/PermissionsModule.java +0 -204
  961. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.java +0 -65
  962. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/Executors.java +0 -53
  963. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.java +0 -141
  964. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerInterface.java +0 -84
  965. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/IViewGroupManager.java +0 -42
  966. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewHierarchyDumper.java +0 -45
  967. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.java +0 -25
  968. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BoxShadowDrawable.kt +0 -102
  969. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/BlackHoleEventDispatcher.java +0 -62
  970. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ContentSizeChangeEvent.java +0 -52
  971. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/SimpleSpringInterpolator.java +0 -50
  972. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayout.java +0 -123
  973. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.java +0 -302
  974. package/ReactAndroid/src/main/java/com/facebook/react/views/image/MultiPostprocessor.java +0 -76
  975. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.java +0 -289
  976. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.java +0 -638
  977. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.java +0 -99
  978. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ReactProgressBarViewManager.java +0 -203
  979. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/OnScrollDispatchHelper.java +0 -58
  980. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VelocityHelper.java +0 -64
  981. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitch.java +0 -124
  982. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +0 -87
  983. package/ReactAndroid/src/main/jni/react/devsupport/JOptional.cpp +0 -29
  984. package/ReactAndroid/src/main/jni/react/devsupport/JOptional.h +0 -27
  985. package/ReactAndroid/src/main/jni/react/fabric/JBackgroundExecutor.cpp +0 -28
  986. package/ReactAndroid/src/main/jni/react/fabric/JBackgroundExecutor.h +0 -23
  987. package/src/private/core/setUpDOM.js +0 -18
  988. package/src/private/webapis/performance/PerformanceEventTiming.js +0 -55
  989. /package/src/private/{core → styles}/composeStyles.js +0 -0
@@ -0,0 +1,725 @@
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
+ @file:Suppress("DEPRECATION") // As we depend on ReactFeatureFlags still
9
+
10
+ package com.facebook.react.views.image
11
+
12
+ import android.content.Context
13
+ import android.graphics.Bitmap
14
+ import android.graphics.BitmapShader
15
+ import android.graphics.Canvas
16
+ import android.graphics.Color
17
+ import android.graphics.Matrix
18
+ import android.graphics.Paint
19
+ import android.graphics.Rect
20
+ import android.graphics.Shader
21
+ import android.graphics.Shader.TileMode
22
+ import android.graphics.drawable.Animatable
23
+ import android.graphics.drawable.Drawable
24
+ import android.net.Uri
25
+ import com.facebook.common.references.CloseableReference
26
+ import com.facebook.common.util.UriUtil
27
+ import com.facebook.drawee.controller.AbstractDraweeControllerBuilder
28
+ import com.facebook.drawee.controller.ControllerListener
29
+ import com.facebook.drawee.controller.ForwardingControllerListener
30
+ import com.facebook.drawee.drawable.AutoRotateDrawable
31
+ import com.facebook.drawee.drawable.RoundedColorDrawable
32
+ import com.facebook.drawee.drawable.ScalingUtils
33
+ import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder
34
+ import com.facebook.drawee.generic.RoundingParams
35
+ import com.facebook.drawee.view.GenericDraweeView
36
+ import com.facebook.imagepipeline.bitmaps.PlatformBitmapFactory
37
+ import com.facebook.imagepipeline.common.ResizeOptions
38
+ import com.facebook.imagepipeline.image.CloseableImage
39
+ import com.facebook.imagepipeline.image.ImageInfo
40
+ import com.facebook.imagepipeline.postprocessors.IterativeBoxBlurPostProcessor
41
+ import com.facebook.imagepipeline.request.BasePostprocessor
42
+ import com.facebook.imagepipeline.request.ImageRequest
43
+ import com.facebook.imagepipeline.request.ImageRequestBuilder
44
+ import com.facebook.imagepipeline.request.Postprocessor
45
+ import com.facebook.react.bridge.ReactContext
46
+ import com.facebook.react.bridge.ReadableArray
47
+ import com.facebook.react.bridge.ReadableMap
48
+ import com.facebook.react.common.annotations.UnstableReactNativeAPI
49
+ import com.facebook.react.common.annotations.VisibleForTesting
50
+ import com.facebook.react.common.build.ReactBuildConfig
51
+ import com.facebook.react.config.ReactFeatureFlags
52
+ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags.enableBackgroundStyleApplicator
53
+ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags.loadVectorDrawablesOnImages
54
+ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags.useNewReactImageViewBackgroundDrawing
55
+ import com.facebook.react.modules.fresco.ReactNetworkImageRequest
56
+ import com.facebook.react.uimanager.BackgroundStyleApplicator
57
+ import com.facebook.react.uimanager.FloatUtil.floatsEqual
58
+ import com.facebook.react.uimanager.LengthPercentage
59
+ import com.facebook.react.uimanager.LengthPercentageType
60
+ import com.facebook.react.uimanager.PixelUtil.dpToPx
61
+ import com.facebook.react.uimanager.PixelUtil.pxToDp
62
+ import com.facebook.react.uimanager.Spacing
63
+ import com.facebook.react.uimanager.UIManagerHelper
64
+ import com.facebook.react.uimanager.style.BorderRadiusProp
65
+ import com.facebook.react.uimanager.style.LogicalEdge
66
+ import com.facebook.react.util.RNLog
67
+ import com.facebook.react.views.image.ImageLoadEvent.Companion.createErrorEvent
68
+ import com.facebook.react.views.image.ImageLoadEvent.Companion.createLoadEndEvent
69
+ import com.facebook.react.views.image.ImageLoadEvent.Companion.createLoadEvent
70
+ import com.facebook.react.views.image.ImageLoadEvent.Companion.createLoadStartEvent
71
+ import com.facebook.react.views.image.ImageLoadEvent.Companion.createProgressEvent
72
+ import com.facebook.react.views.image.ImageResizeMode.defaultTileMode
73
+ import com.facebook.react.views.image.ImageResizeMode.defaultValue
74
+ import com.facebook.react.views.image.MultiPostprocessor.Companion.from
75
+ import com.facebook.react.views.imagehelper.ImageSource
76
+ import com.facebook.react.views.imagehelper.ImageSource.Companion.getTransparentBitmapImageSource
77
+ import com.facebook.react.views.imagehelper.MultiSourceHelper.getBestSourceForSize
78
+ import com.facebook.react.views.imagehelper.ResourceDrawableIdHelper.Companion.instance
79
+ import com.facebook.react.views.view.ReactViewBackgroundManager
80
+ import com.facebook.yoga.YogaConstants
81
+ import kotlin.math.abs
82
+
83
+ /**
84
+ * Wrapper class around Fresco's GenericDraweeView, enabling persisting props across multiple view
85
+ * update and consistent processing of both static and network images.
86
+ */
87
+ @OptIn(UnstableReactNativeAPI::class)
88
+ public class ReactImageView(
89
+ context: Context,
90
+ private val draweeControllerBuilder: AbstractDraweeControllerBuilder<*, *, *, *>,
91
+ private val globalImageLoadListener: GlobalImageLoadListener?,
92
+ private var callerContext: Any?
93
+ ) : GenericDraweeView(context, buildHierarchy(context)) {
94
+
95
+ private val sources: MutableList<ImageSource> = mutableListOf()
96
+ internal var imageSource: ImageSource? = null
97
+ private var cachedImageSource: ImageSource? = null
98
+ private var defaultImageDrawable: Drawable? = null
99
+ private var loadingImageDrawable: Drawable? = null
100
+ private var backgroundImageDrawable: RoundedColorDrawable? = null
101
+ private var backgroundColor = 0x00000000
102
+ private var borderColor = 0
103
+ private var overlayColor = 0
104
+ private var borderWidth = 0f
105
+ private var borderRadius = YogaConstants.UNDEFINED
106
+ private var borderCornerRadii: FloatArray? = null
107
+ private var scaleType = defaultValue()
108
+ private var tileMode = defaultTileMode()
109
+ private var isDirty = false
110
+ private var tilePostprocessor: TilePostprocessor? = null
111
+ private var iterativeBoxBlurPostProcessor: IterativeBoxBlurPostProcessor? = null
112
+ private var downloadListener: ReactImageDownloadListener<ImageInfo>? = null
113
+ private var controllerForTesting: ControllerListener<ImageInfo>? = null
114
+ private var fadeDurationMs = -1
115
+ private var progressiveRenderingEnabled = false
116
+ private var headers: ReadableMap? = null
117
+ private var resizeMultiplier = 1.0f
118
+ private val reactBackgroundManager = ReactViewBackgroundManager(this)
119
+ private var resizeMethod = ImageResizeMethod.AUTO
120
+
121
+ init {
122
+ reactBackgroundManager.setOverflow("hidden")
123
+ // Workaround Android bug where ImageView visibility is not propagated to the Drawable, so you
124
+ // have to manually update visibility. Will be resolved once we move to VitoView.
125
+ setLegacyVisibilityHandlingEnabled(true)
126
+ }
127
+
128
+ public fun updateCallerContext(callerContext: Any?) {
129
+ if (this.callerContext != callerContext) {
130
+ this.callerContext = callerContext
131
+ isDirty = true
132
+ }
133
+ }
134
+
135
+ public fun setShouldNotifyLoadEvents(shouldNotify: Boolean) {
136
+ // Skip update if shouldNotify is already in sync with the download listener
137
+ if (shouldNotify == (downloadListener != null)) {
138
+ return
139
+ }
140
+
141
+ if (!shouldNotify) {
142
+ downloadListener = null
143
+ } else {
144
+ val eventDispatcher =
145
+ UIManagerHelper.getEventDispatcherForReactTag((context as ReactContext), id)
146
+
147
+ downloadListener =
148
+ object : ReactImageDownloadListener<ImageInfo>() {
149
+ override fun onProgressChange(loaded: Int, total: Int) {
150
+ // TODO: Somehow get image size and convert `loaded` and `total` to image bytes.
151
+ if (eventDispatcher == null || imageSource == null) {
152
+ return
153
+ }
154
+ // TODO: Somehow get image size and convert `loaded` and `total` to image bytes.
155
+ eventDispatcher.dispatchEvent(
156
+ createProgressEvent(
157
+ UIManagerHelper.getSurfaceId(this@ReactImageView),
158
+ id,
159
+ imageSource?.source,
160
+ loaded,
161
+ total))
162
+ }
163
+
164
+ override fun onSubmit(id: String, callerContext: Any?) {
165
+ if (eventDispatcher == null) {
166
+ return
167
+ }
168
+ eventDispatcher.dispatchEvent(
169
+ createLoadStartEvent(UIManagerHelper.getSurfaceId(this@ReactImageView), getId()))
170
+ }
171
+
172
+ override fun onFinalImageSet(
173
+ id: String,
174
+ imageInfo: ImageInfo?,
175
+ animatable: Animatable?
176
+ ) {
177
+ if (imageInfo != null && imageSource != null && eventDispatcher != null) {
178
+ eventDispatcher.dispatchEvent(
179
+ createLoadEvent(
180
+ UIManagerHelper.getSurfaceId(this@ReactImageView),
181
+ getId(),
182
+ imageSource?.source,
183
+ imageInfo.width,
184
+ imageInfo.height))
185
+ eventDispatcher.dispatchEvent(
186
+ createLoadEndEvent(UIManagerHelper.getSurfaceId(this@ReactImageView), getId()))
187
+ }
188
+ }
189
+
190
+ override fun onFailure(id: String, throwable: Throwable) {
191
+ if (eventDispatcher == null) {
192
+ return
193
+ }
194
+ eventDispatcher.dispatchEvent(
195
+ createErrorEvent(
196
+ UIManagerHelper.getSurfaceId(this@ReactImageView), getId(), throwable))
197
+ }
198
+ }
199
+ }
200
+ isDirty = true
201
+ }
202
+
203
+ public fun setBlurRadius(blurRadius: Float) {
204
+ // Divide `blurRadius` by 2 to more closely match other platforms.
205
+ val pixelBlurRadius = blurRadius.dpToPx().toInt() / 2
206
+ iterativeBoxBlurPostProcessor =
207
+ if (pixelBlurRadius == 0) {
208
+ null
209
+ } else {
210
+ IterativeBoxBlurPostProcessor(2, pixelBlurRadius)
211
+ }
212
+ isDirty = true
213
+ }
214
+
215
+ public override fun setBackgroundColor(backgroundColor: Int) {
216
+ if (enableBackgroundStyleApplicator()) {
217
+ BackgroundStyleApplicator.setBackgroundColor(this, backgroundColor)
218
+ } else if (useNewReactImageViewBackgroundDrawing()) {
219
+ reactBackgroundManager.backgroundColor = backgroundColor
220
+ } else if (this.backgroundColor != backgroundColor) {
221
+ this.backgroundColor = backgroundColor
222
+ backgroundImageDrawable = RoundedColorDrawable(backgroundColor)
223
+ isDirty = true
224
+ }
225
+ }
226
+
227
+ public fun setBorderColor(borderColor: Int) {
228
+ if (enableBackgroundStyleApplicator()) {
229
+ BackgroundStyleApplicator.setBorderColor(this, LogicalEdge.ALL, borderColor)
230
+ } else if (useNewReactImageViewBackgroundDrawing()) {
231
+ reactBackgroundManager.setBorderColor(Spacing.ALL, borderColor)
232
+ } else if (this.borderColor != borderColor) {
233
+ this.borderColor = borderColor
234
+ isDirty = true
235
+ }
236
+ }
237
+
238
+ public fun setOverlayColor(overlayColor: Int) {
239
+ if (this.overlayColor != overlayColor) {
240
+ this.overlayColor = overlayColor
241
+ isDirty = true
242
+ }
243
+ }
244
+
245
+ public fun setBorderWidth(borderWidth: Float) {
246
+ val newBorderWidth = borderWidth.dpToPx()
247
+ if (enableBackgroundStyleApplicator()) {
248
+ BackgroundStyleApplicator.setBorderWidth(this, LogicalEdge.ALL, borderWidth)
249
+ } else if (useNewReactImageViewBackgroundDrawing()) {
250
+ reactBackgroundManager.setBorderWidth(Spacing.ALL, newBorderWidth)
251
+ } else if (!floatsEqual(this.borderWidth, newBorderWidth)) {
252
+ this.borderWidth = newBorderWidth
253
+ isDirty = true
254
+ }
255
+ }
256
+
257
+ public fun setBorderRadius(borderRadius: Float) {
258
+ if (enableBackgroundStyleApplicator()) {
259
+ val radius =
260
+ if (borderRadius.isNaN()) null
261
+ else LengthPercentage(borderRadius.pxToDp(), LengthPercentageType.POINT)
262
+ BackgroundStyleApplicator.setBorderRadius(this, BorderRadiusProp.BORDER_RADIUS, radius)
263
+ } else if (useNewReactImageViewBackgroundDrawing()) {
264
+ reactBackgroundManager.setBorderRadius(borderRadius)
265
+ } else if (!floatsEqual(this.borderRadius, borderRadius)) {
266
+ this.borderRadius = borderRadius
267
+ isDirty = true
268
+ }
269
+ }
270
+
271
+ public fun setBorderRadius(borderRadius: Float, position: Int) {
272
+ if (enableBackgroundStyleApplicator()) {
273
+ val radius =
274
+ if (borderRadius.isNaN()) null
275
+ else LengthPercentage(borderRadius.pxToDp(), LengthPercentageType.POINT)
276
+ BackgroundStyleApplicator.setBorderRadius(this, BorderRadiusProp.values()[position], radius)
277
+ } else if (useNewReactImageViewBackgroundDrawing()) {
278
+ reactBackgroundManager.setBorderRadius(borderRadius, position + 1)
279
+ } else {
280
+ if (borderCornerRadii == null) {
281
+ borderCornerRadii = FloatArray(4) { YogaConstants.UNDEFINED }
282
+ }
283
+
284
+ if (!floatsEqual(borderCornerRadii?.get(position), borderRadius)) {
285
+ borderCornerRadii?.set(position, borderRadius)
286
+ isDirty = true
287
+ }
288
+ }
289
+ }
290
+
291
+ public fun setScaleType(scaleType: ScalingUtils.ScaleType) {
292
+ if (this.scaleType !== scaleType) {
293
+ this.scaleType = scaleType
294
+ isDirty = true
295
+ }
296
+ }
297
+
298
+ public fun setTileMode(tileMode: TileMode) {
299
+ if (this.tileMode != tileMode) {
300
+ this.tileMode = tileMode
301
+ tilePostprocessor = if (isTiled) TilePostprocessor() else null
302
+ isDirty = true
303
+ }
304
+ }
305
+
306
+ public fun setResizeMethod(resizeMethod: ImageResizeMethod) {
307
+ if (this.resizeMethod != resizeMethod) {
308
+ this.resizeMethod = resizeMethod
309
+ isDirty = true
310
+ }
311
+ }
312
+
313
+ public fun setResizeMultiplier(multiplier: Float) {
314
+ val isNewMultiplier = abs((resizeMultiplier - multiplier).toDouble()) > 0.0001f
315
+ if (isNewMultiplier) {
316
+ resizeMultiplier = multiplier
317
+ isDirty = true
318
+ }
319
+ }
320
+
321
+ public fun setSource(sources: ReadableArray?) {
322
+ val tmpSources = mutableListOf<ImageSource>()
323
+
324
+ if (sources == null || sources.size() == 0) {
325
+ tmpSources.add(getTransparentBitmapImageSource(context))
326
+ } else if (sources.size() == 1) {
327
+ // Optimize for the case where we have just one uri, case in which we don't need the sizes
328
+ val source = sources.getMap(0)
329
+ var imageSource = ImageSource(context, source.getString("uri"))
330
+ if (Uri.EMPTY == imageSource.uri) {
331
+ warnImageSource(source.getString("uri"))
332
+ imageSource = getTransparentBitmapImageSource(context)
333
+ }
334
+ tmpSources.add(imageSource)
335
+ } else {
336
+ for (idx in 0 until sources.size()) {
337
+ val source = sources.getMap(idx)
338
+ var imageSource =
339
+ ImageSource(
340
+ context,
341
+ source.getString("uri"),
342
+ source.getDouble("width"),
343
+ source.getDouble("height"))
344
+ if (Uri.EMPTY == imageSource.uri) {
345
+ warnImageSource(source.getString("uri"))
346
+ imageSource = getTransparentBitmapImageSource(context)
347
+ }
348
+ tmpSources.add(imageSource)
349
+ }
350
+ }
351
+
352
+ // Don't reset sources and dirty node if sources haven't changed
353
+ if (this.sources == tmpSources) {
354
+ return
355
+ }
356
+
357
+ this.sources.clear()
358
+ this.sources.addAll(tmpSources)
359
+ isDirty = true
360
+ }
361
+
362
+ public fun setDefaultSource(name: String?) {
363
+ val newDefaultDrawable = instance.getResourceDrawable(context, name)
364
+ if (defaultImageDrawable != newDefaultDrawable) {
365
+ defaultImageDrawable = newDefaultDrawable
366
+ isDirty = true
367
+ }
368
+ }
369
+
370
+ public fun setLoadingIndicatorSource(name: String?) {
371
+ val drawable = instance.getResourceDrawable(context, name)
372
+ val newLoadingIndicatorSource = drawable?.let { AutoRotateDrawable(it, 1000) }
373
+ if (loadingImageDrawable != newLoadingIndicatorSource) {
374
+ loadingImageDrawable = newLoadingIndicatorSource
375
+ isDirty = true
376
+ }
377
+ }
378
+
379
+ public fun setProgressiveRenderingEnabled(enabled: Boolean) {
380
+ progressiveRenderingEnabled = enabled
381
+ // no worth marking as dirty if it already rendered.
382
+ }
383
+
384
+ public fun setFadeDuration(durationMs: Int) {
385
+ fadeDurationMs = durationMs
386
+ // no worth marking as dirty if it already rendered.
387
+ }
388
+
389
+ public fun setHeaders(headers: ReadableMap?) {
390
+ this.headers = headers
391
+ }
392
+
393
+ // Disable rasterizing to offscreen layer in order to preserve background effects like box-shadow
394
+ // or outline which may draw outside of bounds.
395
+ public override fun hasOverlappingRendering(): Boolean = false
396
+
397
+ public override fun onDraw(canvas: Canvas) {
398
+ if (enableBackgroundStyleApplicator()) {
399
+ BackgroundStyleApplicator.clipToPaddingBox(this, canvas)
400
+ } else if (useNewReactImageViewBackgroundDrawing()) {
401
+ reactBackgroundManager.maybeClipToPaddingBox(canvas)
402
+ }
403
+ super.onDraw(canvas)
404
+ }
405
+
406
+ public fun maybeUpdateView() {
407
+ if (!isDirty) {
408
+ return
409
+ }
410
+
411
+ if (hasMultipleSources() && (width <= 0 || height <= 0)) {
412
+ // If we need to choose from multiple uris but the size is not yet set, wait for layout pass
413
+ return
414
+ }
415
+
416
+ setSourceImage()
417
+ val imageSourceSafe = this.imageSource ?: return
418
+ val doResize = shouldResize(imageSourceSafe)
419
+
420
+ if (doResize && (width <= 0 || height <= 0)) {
421
+ // If need a resize and the size is not yet set, wait until the layout pass provides one
422
+ return
423
+ }
424
+
425
+ if (isTiled && (width <= 0 || height <= 0)) {
426
+ // If need to tile and the size is not yet set, wait until the layout pass provides one
427
+ return
428
+ }
429
+
430
+ // We store this in a local variable as it's coming from super.getHierarchy()
431
+ val hierarchy = this.hierarchy
432
+ hierarchy.actualImageScaleType = scaleType
433
+
434
+ if (defaultImageDrawable != null) {
435
+ hierarchy.setPlaceholderImage(defaultImageDrawable, scaleType)
436
+ }
437
+
438
+ if (loadingImageDrawable != null) {
439
+ hierarchy.setPlaceholderImage(loadingImageDrawable, ScalingUtils.ScaleType.CENTER)
440
+ }
441
+
442
+ getCornerRadii(computedCornerRadii)
443
+
444
+ val roundingParams = hierarchy.roundingParams
445
+ if (roundingParams != null) {
446
+ roundingParams.setCornersRadii(
447
+ computedCornerRadii[0],
448
+ computedCornerRadii[1],
449
+ computedCornerRadii[2],
450
+ computedCornerRadii[3])
451
+
452
+ backgroundImageDrawable?.let { background ->
453
+ background.setBorder(borderColor, borderWidth)
454
+ roundingParams.cornersRadii?.let { background.radii = it }
455
+ hierarchy.setBackgroundImage(background)
456
+ }
457
+ roundingParams.setBorder(borderColor, borderWidth)
458
+ if (overlayColor != Color.TRANSPARENT) {
459
+ roundingParams.setOverlayColor(overlayColor)
460
+ } else {
461
+ // make sure the default rounding method is used.
462
+ roundingParams.setRoundingMethod(RoundingParams.RoundingMethod.BITMAP_ONLY)
463
+ }
464
+ hierarchy.roundingParams = roundingParams
465
+ }
466
+ hierarchy.fadeDuration =
467
+ when {
468
+ fadeDurationMs >= 0 -> fadeDurationMs
469
+ imageSourceSafe.isResource -> 0
470
+ else -> REMOTE_IMAGE_FADE_DURATION_MS
471
+ }
472
+
473
+ val drawable = getDrawableIfUnsupported(imageSourceSafe)
474
+ if (drawable != null) {
475
+ maybeUpdateViewFromDrawable(drawable)
476
+ } else {
477
+ maybeUpdateViewFromRequest(doResize)
478
+ }
479
+
480
+ isDirty = false
481
+ }
482
+
483
+ private fun maybeUpdateViewFromRequest(doResize: Boolean) {
484
+ val uri = this.imageSource?.uri ?: return
485
+
486
+ val postprocessorList = mutableListOf<Postprocessor>()
487
+ iterativeBoxBlurPostProcessor?.let { postprocessorList.add(it) }
488
+ tilePostprocessor?.let { postprocessorList.add(it) }
489
+ val postprocessor = from(postprocessorList)
490
+
491
+ val resizeOptions = if (doResize) resizeOptions else null
492
+
493
+ val imageRequestBuilder =
494
+ ImageRequestBuilder.newBuilderWithSource(uri)
495
+ .setPostprocessor(postprocessor)
496
+ .setResizeOptions(resizeOptions)
497
+ .setAutoRotateEnabled(true)
498
+ .setProgressiveRenderingEnabled(progressiveRenderingEnabled)
499
+
500
+ val imageRequest: ImageRequest =
501
+ ReactNetworkImageRequest.fromBuilderWithHeaders(imageRequestBuilder, headers)
502
+
503
+ globalImageLoadListener?.onLoadAttempt(uri)
504
+
505
+ @Suppress("UNCHECKED_CAST") // Unsafe cast necessary as this java class used raw generics
506
+ val builder =
507
+ draweeControllerBuilder
508
+ as
509
+ AbstractDraweeControllerBuilder<
510
+ *, ImageRequest, CloseableReference<CloseableImage>, ImageInfo>
511
+
512
+ // This builder is reused
513
+ builder.reset()
514
+
515
+ builder.setImageRequest(imageRequest).setAutoPlayAnimations(true).setOldController(controller)
516
+
517
+ callerContext?.let { builder.setCallerContext(it) }
518
+
519
+ cachedImageSource?.let { cachedSource ->
520
+ val cachedImageRequest =
521
+ ImageRequestBuilder.newBuilderWithSource(cachedSource.uri)
522
+ .setPostprocessor(postprocessor)
523
+ .setResizeOptions(resizeOptions)
524
+ .setAutoRotateEnabled(true)
525
+ .setProgressiveRenderingEnabled(progressiveRenderingEnabled)
526
+ .build()
527
+ builder.setLowResImageRequest(cachedImageRequest)
528
+ }
529
+
530
+ if (downloadListener != null && controllerForTesting != null) {
531
+ val combinedListener: ForwardingControllerListener<ImageInfo> =
532
+ ForwardingControllerListener<ImageInfo>()
533
+ combinedListener.addListener(downloadListener)
534
+ combinedListener.addListener(controllerForTesting)
535
+ builder.setControllerListener(combinedListener)
536
+ } else if (controllerForTesting != null) {
537
+ builder.setControllerListener(controllerForTesting)
538
+ } else if (downloadListener != null) {
539
+ builder.setControllerListener(downloadListener)
540
+ }
541
+
542
+ if (downloadListener != null) {
543
+ hierarchy.setProgressBarImage(downloadListener)
544
+ }
545
+
546
+ controller = builder.build()
547
+
548
+ // Reset again so the DraweeControllerBuilder clears all it's references. Otherwise, this causes
549
+ // a memory leak.
550
+ builder.reset()
551
+ }
552
+
553
+ private fun maybeUpdateViewFromDrawable(drawable: Drawable) {
554
+ val shouldNotify = downloadListener != null
555
+
556
+ val eventDispatcher =
557
+ if (shouldNotify) {
558
+ UIManagerHelper.getEventDispatcherForReactTag((context as ReactContext), id)
559
+ } else {
560
+ null
561
+ }
562
+
563
+ eventDispatcher?.dispatchEvent(
564
+ createLoadStartEvent(UIManagerHelper.getSurfaceId(this@ReactImageView), id))
565
+
566
+ hierarchy.setImage(drawable, 1f, false)
567
+
568
+ if (eventDispatcher != null && imageSource != null) {
569
+ eventDispatcher.dispatchEvent(
570
+ createLoadEvent(
571
+ UIManagerHelper.getSurfaceId(this@ReactImageView),
572
+ id,
573
+ imageSource?.source,
574
+ width,
575
+ height))
576
+ eventDispatcher.dispatchEvent(
577
+ createLoadEndEvent(UIManagerHelper.getSurfaceId(this@ReactImageView), id))
578
+ }
579
+ }
580
+
581
+ private fun getCornerRadii(computedCorners: FloatArray) {
582
+ val defaultBorderRadius = if (!YogaConstants.isUndefined(borderRadius)) borderRadius else 0f
583
+
584
+ val radii = borderCornerRadii ?: FloatArray(4) { Float.NaN }
585
+ computedCorners[0] = if (!YogaConstants.isUndefined(radii[0])) radii[0] else defaultBorderRadius
586
+ computedCorners[1] = if (!YogaConstants.isUndefined(radii[1])) radii[1] else defaultBorderRadius
587
+ computedCorners[2] = if (!YogaConstants.isUndefined(radii[2])) radii[2] else defaultBorderRadius
588
+ computedCorners[3] = if (!YogaConstants.isUndefined(radii[3])) radii[3] else defaultBorderRadius
589
+ }
590
+
591
+ @VisibleForTesting
592
+ public fun setControllerListener(controllerListener: ControllerListener<ImageInfo>?) {
593
+ controllerForTesting = controllerListener
594
+ isDirty = true
595
+ maybeUpdateView()
596
+ }
597
+
598
+ protected override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
599
+ super.onSizeChanged(w, h, oldw, oldh)
600
+ if (w > 0 && h > 0) {
601
+ isDirty = isDirty || hasMultipleSources() || isTiled
602
+ maybeUpdateView()
603
+ }
604
+ }
605
+
606
+ private fun hasMultipleSources(): Boolean = sources.size > 1
607
+
608
+ private val isTiled: Boolean
609
+ get() = tileMode != TileMode.CLAMP
610
+
611
+ private fun setSourceImage() {
612
+ imageSource = null
613
+ if (sources.isEmpty()) {
614
+ sources.add(getTransparentBitmapImageSource(context))
615
+ } else if (hasMultipleSources()) {
616
+ val multiSource = getBestSourceForSize(width, height, sources)
617
+ imageSource = multiSource.bestResult
618
+ cachedImageSource = multiSource.bestResultInCache
619
+ return
620
+ }
621
+ imageSource = sources[0]
622
+ }
623
+
624
+ private fun shouldResize(imageSource: ImageSource): Boolean =
625
+ // Resizing is inferior to scaling. See http://frescolib.org/docs/resizing-rotating.html#_
626
+ // We resize here only for images likely to be from the device's camera, where the app
627
+ // developer
628
+ // has no control over the original size
629
+ when (resizeMethod) {
630
+ ImageResizeMethod.AUTO ->
631
+ (UriUtil.isLocalContentUri(imageSource.uri) || UriUtil.isLocalFileUri(imageSource.uri))
632
+ ImageResizeMethod.RESIZE -> true
633
+ else -> false
634
+ }
635
+
636
+ /**
637
+ * Checks if the provided ImageSource should not be requested through Fresco and instead loaded
638
+ * directly from the resources table. Fresco explicitly does not support a number of drawable
639
+ * types like VectorDrawable but they can still be mounted in the image hierarchy.
640
+ *
641
+ * @param imageSource
642
+ * @return drawable resource if Fresco cannot load the image, null otherwise
643
+ */
644
+ private fun getDrawableIfUnsupported(imageSource: ImageSource): Drawable? {
645
+ if (!loadVectorDrawablesOnImages()) {
646
+ return null
647
+ }
648
+ val resourceName = imageSource.source
649
+ if (!imageSource.isResource || resourceName == null) {
650
+ return null
651
+ }
652
+ val drawableHelper = instance
653
+ val isVectorDrawable = drawableHelper.isVectorDrawable(context, resourceName)
654
+ if (!isVectorDrawable) {
655
+ return null
656
+ }
657
+ return drawableHelper.getResourceDrawable(context, resourceName)
658
+ }
659
+
660
+ private val resizeOptions: ResizeOptions?
661
+ get() {
662
+ val width = Math.round(width.toFloat() * resizeMultiplier)
663
+ val height = Math.round(height.toFloat() * resizeMultiplier)
664
+ if (width <= 0 || height <= 0) {
665
+ return null
666
+ }
667
+ return ResizeOptions(width, height)
668
+ }
669
+
670
+ private fun warnImageSource(uri: String?) {
671
+ // TODO(T189014077): This code-path produces an infinite loop of js calls with logbox.
672
+ // This is an issue with Fabric view preallocation, react, and LogBox. Fix.
673
+ // The bug:
674
+ // 1. An app renders an <Image/>
675
+ // 2. Fabric preallocates <Image/>; sets a null src to ReactImageView (potential problem?).
676
+ // 3. ReactImageView detects the null src; displays a warning in LogBox (via this code).
677
+ // 3. LogBox renders an <Image/>, which fabric preallocates.
678
+ // 4. Rinse and repeat.
679
+ if (ReactBuildConfig.DEBUG && !ReactFeatureFlags.enableBridgelessArchitecture) {
680
+ RNLog.w(context as ReactContext, "ReactImageView: Image source \"$uri\" doesn't exist")
681
+ }
682
+ }
683
+
684
+ private inner class TilePostprocessor : BasePostprocessor() {
685
+ override fun process(
686
+ source: Bitmap,
687
+ bitmapFactory: PlatformBitmapFactory
688
+ ): CloseableReference<Bitmap> {
689
+ val destRect = Rect(0, 0, width, height)
690
+ scaleType.getTransform(tileMatrix, destRect, source.width, source.height, 0.0f, 0.0f)
691
+
692
+ val paint = Paint()
693
+ paint.isAntiAlias = true
694
+ val shader: Shader = BitmapShader(source, tileMode, tileMode)
695
+ shader.setLocalMatrix(tileMatrix)
696
+ paint.setShader(shader)
697
+
698
+ val output = bitmapFactory.createBitmap(width, height)
699
+ try {
700
+ val canvas = Canvas(output.get())
701
+ canvas.drawRect(destRect, paint)
702
+ return output.clone()
703
+ } finally {
704
+ CloseableReference.closeSafely(output)
705
+ }
706
+ }
707
+ }
708
+
709
+ public companion object {
710
+ public const val REMOTE_IMAGE_FADE_DURATION_MS: Int = 300
711
+
712
+ private val computedCornerRadii = FloatArray(4)
713
+
714
+ // Fresco lacks support for repeating images, see https://github.com/facebook/fresco/issues/1575
715
+ // We implement it here as a postprocessing step.
716
+ private val tileMatrix = Matrix()
717
+
718
+ // We can't specify rounding in XML, so have to do so here
719
+ private fun buildHierarchy(context: Context) =
720
+ GenericDraweeHierarchyBuilder(context.resources)
721
+ .setRoundingParams(
722
+ RoundingParams.fromCornersRadius(0f).apply { setPaintFilterBitmap(true) })
723
+ .build()
724
+ }
725
+ }