@depup/react-native 0.86.0-depup.49 → 0.87.0-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1212) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +19 -24
  2. package/Libraries/Alert/Alert.js +38 -1
  3. package/Libraries/Animated/AnimatedExports.js +22 -0
  4. package/Libraries/Animated/AnimatedExports.js.flow +1 -1
  5. package/Libraries/Animated/AnimatedImplementation.js +120 -3
  6. package/Libraries/Animated/Easing.js +4 -3
  7. package/Libraries/Animated/NativeAnimatedAllowlist.js +37 -0
  8. package/Libraries/Animated/animations/Animation.js +14 -5
  9. package/Libraries/Animated/animations/DecayAnimation.js +1 -0
  10. package/Libraries/Animated/animations/SpringAnimation.js +1 -0
  11. package/Libraries/Animated/animations/TimingAnimation.js +9 -0
  12. package/Libraries/Animated/createAnimatedComponent.js +3 -3
  13. package/Libraries/Animated/nodes/AnimatedColor.js +8 -8
  14. package/Libraries/Animated/nodes/AnimatedInterpolation.js +106 -0
  15. package/Libraries/Animated/nodes/AnimatedProps.js +27 -3
  16. package/Libraries/Animated/nodes/AnimatedValue.js +8 -0
  17. package/Libraries/Animated/nodes/AnimatedValueXY.js +2 -2
  18. package/Libraries/AppDelegate/RCTAppDelegate.h +5 -9
  19. package/Libraries/AppDelegate/RCTAppDelegate.mm +0 -20
  20. package/Libraries/AppDelegate/RCTAppSetupUtils.h +0 -18
  21. package/Libraries/AppDelegate/RCTAppSetupUtils.mm +0 -78
  22. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +18 -21
  23. package/Libraries/AppDelegate/RCTReactNativeFactory.h +5 -41
  24. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +0 -82
  25. package/Libraries/AppDelegate/RCTRootViewFactory.h +4 -1
  26. package/Libraries/AppDelegate/RCTRootViewFactory.mm +3 -101
  27. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +1 -0
  28. package/Libraries/AppState/AppState.d.ts +4 -1
  29. package/Libraries/AppState/AppState.js +32 -17
  30. package/Libraries/BatchedBridge/MessageQueue.js +42 -51
  31. package/Libraries/BatchedBridge/NativeModules.js +7 -0
  32. package/Libraries/Blob/Blob.js +7 -1
  33. package/Libraries/Blob/FileReader.js +6 -0
  34. package/Libraries/Blob/URLSearchParams.js.flow +1 -1
  35. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +20 -9
  36. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -43
  37. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +59 -49
  38. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -2
  39. package/Libraries/Components/Button.js +98 -183
  40. package/Libraries/Components/Clipboard/Clipboard.js +5 -0
  41. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -2
  42. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +8 -69
  43. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +10 -1
  44. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +2 -0
  45. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +26 -31
  46. package/Libraries/Components/Keyboard/Keyboard.js +23 -60
  47. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +15 -7
  48. package/Libraries/Components/Pressable/Pressable.js +39 -17
  49. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +5 -6
  50. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +4 -4
  51. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
  52. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +17 -0
  53. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  54. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -2
  55. package/Libraries/Components/RefreshControl/RefreshControl.js +40 -50
  56. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -2
  57. package/Libraries/Components/SafeAreaView/SafeAreaView.js +8 -8
  58. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
  59. package/Libraries/Components/ScrollView/ScrollView.d.ts +55 -43
  60. package/Libraries/Components/ScrollView/ScrollView.js +205 -118
  61. package/Libraries/Components/ScrollView/ScrollViewCommands.js +4 -4
  62. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  63. package/Libraries/Components/StatusBar/StatusBar.d.ts +7 -54
  64. package/Libraries/Components/StatusBar/StatusBar.js +84 -160
  65. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -2
  66. package/Libraries/Components/Switch/Switch.js +76 -75
  67. package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -2
  68. package/Libraries/Components/TextInput/InputAccessoryView.js +13 -61
  69. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -2
  70. package/Libraries/Components/TextInput/TextInput.d.ts +9 -2
  71. package/Libraries/Components/TextInput/TextInput.flow.js +19 -2
  72. package/Libraries/Components/TextInput/TextInput.js +116 -111
  73. package/Libraries/Components/TextInput/TextInputNativeCommands.js +3 -3
  74. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +25 -19
  75. package/Libraries/Components/Touchable/Touchable.js +94 -95
  76. package/Libraries/Components/Touchable/TouchableHighlight.js +45 -112
  77. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +13 -25
  78. package/Libraries/Components/Touchable/TouchableOpacity.js +14 -84
  79. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +4 -3
  80. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -2
  81. package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -0
  82. package/Libraries/Components/View/View.js +83 -86
  83. package/Libraries/Components/View/ViewAccessibility.d.ts +11 -1
  84. package/Libraries/Components/View/ViewAccessibility.js +16 -5
  85. package/Libraries/Components/View/ViewNativeComponent.js +4 -6
  86. package/Libraries/Components/View/ViewPropTypes.js +65 -13
  87. package/Libraries/Core/InitializeCore.js +9 -1
  88. package/Libraries/Core/ReactFiberErrorDialog.js +3 -3
  89. package/Libraries/Core/ReactNativeVersion.js +1 -1
  90. package/Libraries/Core/Timers/JSTimers.js +53 -52
  91. package/Libraries/Core/setUpGlobals.js +9 -4
  92. package/Libraries/Core/setUpNavigator.js +6 -1
  93. package/Libraries/Core/setUpReactDevTools.js +0 -118
  94. package/Libraries/Core/setUpXHR.js +6 -2
  95. package/Libraries/Debugging/DebuggingOverlay.js +2 -2
  96. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -2
  97. package/Libraries/EventEmitter/NativeEventEmitter.js +29 -0
  98. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +7 -7
  99. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +3 -0
  100. package/Libraries/Image/AssetSourceResolver.js +18 -27
  101. package/Libraries/Image/Image.android.js +13 -2
  102. package/Libraries/Image/Image.ios.js +3 -1
  103. package/Libraries/Image/ImageBackground.js +30 -18
  104. package/Libraries/Image/ImageProps.js +116 -117
  105. package/Libraries/Image/ImageSource.d.ts +1 -1
  106. package/Libraries/Image/ImageSource.js +9 -9
  107. package/Libraries/Image/ImageSourceUtils.js +10 -7
  108. package/Libraries/Image/ImageTypes.flow.js +2 -0
  109. package/Libraries/Image/ImageViewNativeComponent.js +1 -1
  110. package/Libraries/Image/RCTImageLoader.mm +60 -63
  111. package/Libraries/Image/RCTImageStoreManager.h +0 -2
  112. package/Libraries/Image/RelativeImageStub.js +1 -1
  113. package/Libraries/Image/resolveAssetSource.js +1 -1
  114. package/Libraries/Interaction/PanResponder.js +102 -97
  115. package/Libraries/LayoutAnimation/LayoutAnimation.js +22 -6
  116. package/Libraries/Linking/Linking.js +24 -23
  117. package/Libraries/Lists/FlatList.d.ts +6 -17
  118. package/Libraries/Lists/FlatList.js +7 -8
  119. package/Libraries/Lists/SectionList.js +7 -0
  120. package/Libraries/Lists/VirtualizedList.js +3 -0
  121. package/Libraries/Lists/VirtualizedSectionList.js +4 -0
  122. package/Libraries/LogBox/LogBox.js +3 -3
  123. package/Libraries/LogBox/UI/AnsiHighlight.js +2 -1
  124. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +2 -2
  125. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +4 -1
  126. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +3 -1
  127. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +8 -2
  128. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +9 -2
  129. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +17 -4
  130. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +3 -1
  131. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -1
  132. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -0
  133. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +4 -2
  134. package/Libraries/LogBox/UI/LogBoxMessage.js +18 -5
  135. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +4 -1
  136. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +1 -0
  137. package/Libraries/LogBox/UI/LogBoxStyle.js +0 -4
  138. package/Libraries/Modal/Modal.d.ts +5 -4
  139. package/Libraries/Modal/Modal.js +71 -37
  140. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -2
  141. package/Libraries/NativeComponent/BaseViewConfig.android.js +17 -0
  142. package/Libraries/NativeComponent/ViewConfig.js +3 -3
  143. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -1
  144. package/Libraries/Network/RCTHTTPRequestHandler.h +1 -1
  145. package/Libraries/Performance/Systrace.js +36 -0
  146. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +4 -2
  147. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +29 -17
  148. package/Libraries/Pressability/Pressability.js +1 -1
  149. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +4 -0
  150. package/Libraries/ReactNative/AppContainer-dev.js +3 -1
  151. package/Libraries/ReactNative/AppRegistry.flow.js +1 -0
  152. package/Libraries/ReactNative/AppRegistry.js +15 -11
  153. package/Libraries/ReactNative/AppRegistryImpl.js +57 -11
  154. package/Libraries/ReactNative/DisplayMode.js +1 -1
  155. package/Libraries/ReactNative/FabricUIManager.js +29 -26
  156. package/Libraries/ReactNative/I18nManager.js +20 -0
  157. package/Libraries/ReactNative/UIManager.js +53 -0
  158. package/Libraries/ReactNative/renderApplication.js +1 -1
  159. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +5 -126
  160. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +5 -41
  161. package/Libraries/Renderer/shims/ReactNativeTypes.js +36 -36
  162. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +4 -4
  163. package/Libraries/Settings/Settings.ios.js +22 -0
  164. package/Libraries/Share/Share.js +25 -28
  165. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +6 -0
  166. package/Libraries/StyleSheet/StyleSheet.js +42 -2
  167. package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
  168. package/Libraries/StyleSheet/StyleSheetExports.js +7 -5
  169. package/Libraries/StyleSheet/StyleSheetExports.js.flow +1 -1
  170. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +24 -3
  171. package/Libraries/StyleSheet/StyleSheetTypes.js +34 -6
  172. package/Libraries/StyleSheet/flattenStyle.js +28 -13
  173. package/Libraries/StyleSheet/private/_TransformStyle.js +16 -14
  174. package/Libraries/Text/Text.js +12 -9
  175. package/Libraries/Text/TextEffectNativeComponent.js +31 -0
  176. package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +0 -1
  177. package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +0 -1
  178. package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +0 -1
  179. package/Libraries/Text/TextProps.js +59 -93
  180. package/Libraries/Text/requireNativeTextEffect.js +28 -0
  181. package/Libraries/TurboModule/RCTExport.js +1 -1
  182. package/Libraries/Types/CoreEventTypes.d.ts +8 -0
  183. package/Libraries/Types/CoreEventTypes.js +32 -29
  184. package/Libraries/Types/UIManagerJSInterface.js +2 -2
  185. package/Libraries/Utilities/Appearance.d.ts +32 -17
  186. package/Libraries/Utilities/Appearance.js +35 -18
  187. package/Libraries/Utilities/BackHandler.android.js +13 -28
  188. package/Libraries/Utilities/BackHandler.js.flow +18 -2
  189. package/Libraries/Utilities/DevSettings.js +8 -1
  190. package/Libraries/Utilities/Dimensions.js +18 -12
  191. package/Libraries/Utilities/PixelRatio.js +5 -2
  192. package/Libraries/Utilities/Platform.js.flow +4 -0
  193. package/Libraries/Utilities/PlatformTypes.js +77 -0
  194. package/Libraries/Utilities/differ/deepDiffer.js +5 -2
  195. package/Libraries/Utilities/useColorScheme.js +11 -1
  196. package/Libraries/Utilities/useWindowDimensions.js +6 -0
  197. package/Libraries/Vibration/Vibration.js +14 -11
  198. package/Libraries/vendor/emitter/EventEmitter.js +3 -3
  199. package/README.md +7 -9
  200. package/React/Base/RCTBridge+Private.h +0 -22
  201. package/React/Base/RCTBridge.h +10 -8
  202. package/React/Base/RCTBridge.mm +5 -447
  203. package/React/Base/RCTBridgeDelegate.h +1 -56
  204. package/React/Base/RCTBridgeModule.h +0 -9
  205. package/React/Base/RCTBridgeProxy.h +8 -0
  206. package/React/Base/RCTBridgeProxy.mm +3 -20
  207. package/React/Base/RCTBundleManager.h +0 -3
  208. package/React/Base/RCTBundleManager.m +0 -31
  209. package/React/Base/RCTBundleURLProvider.mm +4 -4
  210. package/React/Base/RCTCallableJSModules.m +0 -18
  211. package/React/Base/RCTConstants.h +1 -0
  212. package/React/Base/RCTConstants.m +1 -0
  213. package/React/Base/RCTConvert.mm +3 -0
  214. package/React/Base/RCTDisplayLink.h +3 -1
  215. package/React/Base/RCTJavaScriptExecutor.h +0 -69
  216. package/React/Base/RCTModuleData.mm +2 -483
  217. package/React/Base/RCTModuleRegistry.m +0 -25
  218. package/React/Base/RCTRootView.m +3 -374
  219. package/React/Base/RCTUtils.h +0 -3
  220. package/React/Base/RCTUtils.mm +17 -27
  221. package/React/Base/RCTVersion.m +1 -1
  222. package/React/Base/RCTViewRegistry.m +1 -29
  223. package/React/Base/Surface/RCTSurface.mm +1 -582
  224. package/React/Base/Surface/RCTSurfaceRootShadowView.m +0 -89
  225. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +0 -1
  226. package/React/CoreModules/PlatformStubs/RCTStatusBarManager.mm +0 -2
  227. package/React/CoreModules/RCTAlertController.mm +1 -0
  228. package/React/CoreModules/RCTAlertManager.mm +0 -5
  229. package/React/CoreModules/RCTLogBox.mm +0 -11
  230. package/React/CoreModules/RCTLogBoxView.h +0 -3
  231. package/React/CoreModules/RCTLogBoxView.mm +0 -31
  232. package/React/CoreModules/RCTPerfMonitor.mm +0 -2
  233. package/React/CoreModules/RCTStatusBarManager.mm +0 -11
  234. package/React/CxxModule/RCTCxxUtils.h +0 -8
  235. package/React/CxxModule/RCTCxxUtils.mm +0 -17
  236. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +179 -7
  237. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +100 -2
  238. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +373 -119
  239. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ComponentDescriptors.cpp +1 -1
  240. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ComponentDescriptors.h +1 -1
  241. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.cpp +71 -71
  242. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.h +96 -96
  243. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.cpp +357 -363
  244. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h +211 -212
  245. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/RCTComponentViewHelpers.h +107 -107
  246. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.cpp +1 -1
  247. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.h +11 -11
  248. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/States.h +2 -2
  249. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.h +4 -0
  250. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +4 -0
  251. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropCoordinatorAdapter.h +4 -0
  252. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropCoordinatorAdapter.mm +5 -0
  253. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +0 -1
  254. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +14 -0
  255. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +12 -3
  256. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTVirtualViewContainerState.mm +12 -26
  257. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +39 -4
  258. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +5 -5
  259. package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.mm +0 -18
  260. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +9 -5
  261. package/React/Fabric/RCTSurfacePresenter.mm +86 -5
  262. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.h +2 -0
  263. package/React/I18n/RCTLocalizedString.mm +38 -2
  264. package/React/Modules/RCTEventEmitter.m +30 -10
  265. package/React/Modules/RCTI18nUtil.m +3 -1
  266. package/React/Modules/RCTUIManager.mm +0 -1501
  267. package/React/React-RCTFBReactNativeSpec.podspec +1 -1
  268. package/React/Tests/Text/RCTAttributedTextUtilsTest.mm +27 -0
  269. package/React/Views/RCTModalHostViewController.h +0 -15
  270. package/React/Views/RCTModalHostViewManager.h +0 -24
  271. package/React/Views/RCTShadowView.h +0 -2
  272. package/React/Views/RCTShadowView.m +0 -723
  273. package/React/Views/ScrollView/RCTScrollView.h +0 -81
  274. package/React/Views/ScrollView/RCTScrollableProtocol.h +0 -4
  275. package/React-Core-prebuilt.podspec +45 -17
  276. package/React-Core.podspec +9 -2
  277. package/ReactAndroid/api/ReactAndroid.api +128 -142
  278. package/ReactAndroid/build.gradle.kts +26 -21
  279. package/ReactAndroid/external-artifacts/build.gradle.kts +49 -0
  280. package/ReactAndroid/gradle.properties +1 -1
  281. package/ReactAndroid/hermes-engine/build.gradle.kts +14 -14
  282. package/ReactAndroid/src/debug/AndroidManifest.xml +6 -0
  283. package/ReactAndroid/src/debugOptimized/AndroidManifest.xml +22 -0
  284. package/ReactAndroid/src/main/java/com/facebook/react/BaseReactPackage.kt +3 -7
  285. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +4 -2
  286. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt +4 -6
  287. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +5 -7
  288. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.kt +212 -0
  289. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +0 -16
  290. package/ReactAndroid/src/main/java/com/facebook/react/animated/PropsAnimatedNode.kt +6 -1
  291. package/ReactAndroid/src/main/java/com/facebook/react/bridge/Arguments.kt +1 -0
  292. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.kt +287 -0
  293. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ColorPropConverter.kt +16 -0
  294. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +15 -2
  295. package/ReactAndroid/src/main/java/com/facebook/react/bridge/interop/InteropModuleRegistry.kt +1 -3
  296. package/ReactAndroid/src/main/java/com/facebook/react/common/build/ReactBuildConfig.kt +4 -0
  297. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/MapBuffer.kt +50 -2
  298. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBuffer.kt +63 -22
  299. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/WritableMapBuffer.kt +33 -0
  300. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt +4 -12
  301. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactActivityDelegate.kt +14 -10
  302. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +6 -6
  303. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BundleDownloader.kt +50 -47
  304. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.kt +0 -4
  305. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.kt +10 -10
  306. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LocalNetworkPermissionUtil.kt +49 -0
  307. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/MultipartStreamReader.kt +101 -26
  308. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +40 -38
  309. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +1 -10
  310. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.kt +0 -3
  311. package/ReactAndroid/src/main/java/com/facebook/react/fabric/ViewTransitionSnapshotManager.kt +15 -11
  312. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.kt +4 -4
  313. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.kt +7 -13
  314. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt +195 -194
  315. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SynchronousMountItem.kt +12 -8
  316. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +30 -66
  317. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +51 -111
  318. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +11 -23
  319. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +12 -24
  320. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +57 -123
  321. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android.kt +7 -5
  322. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +3 -5
  323. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +11 -23
  324. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlags.kt +0 -24
  325. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt +0 -4
  326. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +1 -0
  327. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.kt +3 -0
  328. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.kt +50 -0
  329. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +53 -3
  330. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.kt +2 -77
  331. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
  332. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +2 -2
  333. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +1 -1
  334. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt +9 -4
  335. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +4 -19
  336. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +1 -5
  337. package/ReactAndroid/src/main/java/com/facebook/react/touch/ReactInterceptingViewGroup.kt +4 -4
  338. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +46 -9
  339. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.kt +1 -49
  340. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/HasChildPressedStateDelay.kt +29 -0
  341. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.kt +796 -0
  342. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.kt +2 -4
  343. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.kt +27 -27
  344. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.kt +184 -0
  345. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.kt +486 -0
  346. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +8 -8
  347. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ShadowNodeRegistry.kt +2 -2
  348. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/SkewMatrixHelper.kt +200 -0
  349. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +3 -0
  350. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.kt +6 -1
  351. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +2 -2
  352. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIBlock.kt +7 -1
  353. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.kt +645 -0
  354. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.kt +2 -3
  355. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.kt +142 -0
  356. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupManager.kt +0 -10
  357. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +3 -3
  358. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.kt +527 -0
  359. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +3 -1
  360. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +6 -6
  361. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ColorStop.kt +6 -0
  362. package/ReactAndroid/src/main/java/com/facebook/react/util/AndroidVersion.kt +7 -0
  363. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayout.kt +8 -1
  364. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +0 -3
  365. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +2 -0
  366. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ReactProgressBarViewManager.kt +4 -4
  367. package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaView.kt +2 -0
  368. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.kt +1640 -0
  369. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.kt +6 -6
  370. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.kt +1317 -0
  371. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollViewManager.kt +7 -7
  372. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.kt +1309 -0
  373. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.kt +6 -6
  374. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainer.kt +19 -33
  375. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateClassic.kt +8 -6
  376. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +4 -4
  377. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/generate-nested-scroll-view.js +13 -20
  378. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.kt +7 -1
  379. package/ReactAndroid/src/main/java/com/facebook/react/views/text/MutableSpannableLayout.kt +107 -0
  380. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayoutTextView.kt +122 -10
  381. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +91 -1
  382. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt +3 -0
  383. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.kt +41 -0
  384. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.kt +48 -2
  385. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextDecorationStyle.kt +200 -0
  386. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextEffectRegistry.kt +45 -0
  387. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextEffectSpanFactory.kt +17 -0
  388. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +361 -15
  389. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/AnimatedEffectSpan.kt +37 -0
  390. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/{DrawCommandSpan.kt → CanvasEffectSpan.kt} +3 -4
  391. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CustomStyleSpan.kt +23 -3
  392. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactStrikethroughSpan.kt +30 -3
  393. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactUnderlineSpan.kt +25 -3
  394. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/SetSpanOperation.kt +1 -1
  395. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/StatefulSpan.kt +21 -0
  396. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/TextEffectSpan.kt +19 -0
  397. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/TouchableSpan.kt +29 -0
  398. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +81 -9
  399. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +4 -0
  400. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +3 -17
  401. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +8 -0
  402. package/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt +2 -0
  403. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/VirtualViewRenderState.kt +1 -1
  404. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +7 -8
  405. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaAlign.kt +45 -0
  406. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaBoxSizing.kt +27 -0
  407. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfig.kt +15 -0
  408. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIBase.kt +6 -0
  409. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDimension.kt +27 -0
  410. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDisplay.kt +31 -0
  411. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaEdge.kt +41 -0
  412. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaErrata.kt +37 -0
  413. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaExperimentalFeature.kt +27 -0
  414. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaFlexDirection.kt +31 -0
  415. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGridTrackType.kt +33 -0
  416. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGutter.kt +29 -0
  417. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaJustify.kt +43 -0
  418. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaLogLevel.kt +39 -0
  419. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaMeasureMode.kt +29 -0
  420. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.kt +16 -0
  421. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.kt +12 -2
  422. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.kt +762 -0
  423. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.kt +4 -4
  424. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeType.kt +27 -0
  425. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaOverflow.kt +29 -0
  426. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaPositionType.kt +29 -0
  427. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.kt +24 -2
  428. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaUnit.kt +37 -0
  429. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaWrap.kt +29 -0
  430. package/ReactAndroid/src/main/jni/CMakeLists.txt +1 -2
  431. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +94 -0
  432. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionDelegateImpl.cpp +3 -0
  433. package/ReactAndroid/src/main/jni/react/fabric/AndroidAnimationChoreographer.h +10 -10
  434. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +3 -0
  435. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +12 -15
  436. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +1 -3
  437. package/ReactAndroid/src/main/jni/react/fabric/test/FabricMountingManagerTest.cpp +159 -0
  438. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +69 -153
  439. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +15 -33
  440. package/ReactAndroid/src/main/jni/react/jni/JReactMarker.cpp +10 -24
  441. package/ReactAndroid/src/main/jni/react/jni/JReactMarker.h +0 -2
  442. package/ReactAndroid/src/main/jni/react/mapbuffer/react/common/mapbuffer/JWritableMapBuffer.cpp +13 -0
  443. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +4 -1
  444. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +8 -0
  445. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +4 -0
  446. package/ReactAndroid/src/main/res/views/uimanager/values/ids.xml +5 -0
  447. package/ReactAndroid/src/main/res/views/uimanager/values-zu/strings.xml +3 -0
  448. package/ReactApple/RCTAnimatedModuleProvider/React-RCTAnimatedModuleProvider.podspec +63 -0
  449. package/ReactCommon/React-Fabric.podspec +2 -0
  450. package/ReactCommon/ReactCommon.podspec +2 -12
  451. package/ReactCommon/cmake-utils/react-native-flags.cmake +1 -3
  452. package/ReactCommon/cxxreact/CMakeLists.txt +1 -0
  453. package/ReactCommon/cxxreact/ErrorUtils.h +2 -32
  454. package/ReactCommon/cxxreact/Instance.cpp +1 -26
  455. package/ReactCommon/cxxreact/Instance.h +0 -2
  456. package/ReactCommon/cxxreact/NativeToJsBridge.cpp +3 -2
  457. package/ReactCommon/cxxreact/RAMBundleRegistry.cpp +0 -12
  458. package/ReactCommon/cxxreact/RAMBundleRegistry.h +0 -5
  459. package/ReactCommon/cxxreact/React-cxxreact.podspec +2 -1
  460. package/ReactCommon/cxxreact/ReactMarker.cpp +4 -30
  461. package/ReactCommon/cxxreact/ReactMarker.h +38 -21
  462. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  463. package/ReactCommon/cxxreact/TraceSection.h +1 -1
  464. package/ReactCommon/cxxreact/tests/methodcall.cpp +4 -0
  465. package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +6 -79
  466. package/ReactCommon/jserrorhandler/ErrorUtils.cpp +42 -0
  467. package/{React/CxxLogUtils/RCTDefaultCxxLogFunction.h → ReactCommon/jserrorhandler/ErrorUtils.h} +2 -2
  468. package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +1 -1
  469. package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +2 -3
  470. package/ReactCommon/jsi/jsi/hermes-interfaces.h +53 -0
  471. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +2 -1
  472. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +3 -14
  473. package/ReactCommon/jsiexecutor/jsireact/JSINativeModules.cpp +4 -13
  474. package/ReactCommon/jsinspector-modern/HostAgent.cpp +54 -0
  475. package/ReactCommon/jsinspector-modern/HostTarget.h +0 -7
  476. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +10 -7
  477. package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +4 -1
  478. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +7 -0
  479. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +20 -0
  480. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +16 -0
  481. package/ReactCommon/jsinspector-modern/SessionState.h +31 -0
  482. package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +53 -0
  483. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h +14 -1
  484. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h +11 -0
  485. package/ReactCommon/react/bridging/ArrayBuffer.h +180 -0
  486. package/ReactCommon/react/bridging/Bridging.h +1 -0
  487. package/ReactCommon/react/bridging/Convert.h +12 -0
  488. package/ReactCommon/react/bridging/React-bridging.podspec +44 -0
  489. package/ReactCommon/react/bridging/tests/BridgingTest.cpp +185 -11
  490. package/ReactCommon/react/bridging/tests/ClassTest.cpp +22 -0
  491. package/ReactCommon/react/cxxstableapi/CMakeLists.txt +18 -0
  492. package/ReactCommon/react/cxxstableapi/FrameworksGuard.h +35 -0
  493. package/ReactCommon/react/cxxstableapi/PrivateGuard.h +34 -0
  494. package/ReactCommon/react/cxxstableapi/React-cxxstableapi.podspec +34 -0
  495. package/ReactCommon/react/cxxstableapi/UmbrellaGuard.h +53 -0
  496. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +21 -45
  497. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +26 -56
  498. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +134 -242
  499. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +14 -26
  500. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +20 -44
  501. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +43 -97
  502. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSCanary.h +10 -6
  503. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +3 -7
  504. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h +0 -8
  505. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +7 -13
  506. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +1 -0
  507. package/ReactCommon/react/nativemodule/core/iostests/RCTTurboModuleTests.mm +49 -0
  508. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaInteropTurboModule.cpp +4 -0
  509. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaInteropTurboModule.h +4 -0
  510. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +1 -1
  511. package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +1 -1
  512. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.h +4 -0
  513. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +4 -0
  514. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +60 -3
  515. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.h +0 -9
  516. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +37 -139
  517. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleWithJSIBindings.h +0 -3
  518. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +6 -0
  519. package/ReactCommon/react/nativemodule/dom/NativeDOM.cpp +10 -4
  520. package/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +1 -0
  521. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +25 -55
  522. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +11 -23
  523. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -0
  524. package/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec +1 -0
  525. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +4 -0
  526. package/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec +1 -0
  527. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.h +1 -1
  528. package/ReactCommon/react/nativemodule/webperformance/React-webperformancenativemodule.podspec +1 -0
  529. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +95 -63
  530. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +20 -1
  531. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +7 -10
  532. package/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.cpp +20 -1
  533. package/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.h +1 -0
  534. package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.cpp +67 -6
  535. package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.h +12 -0
  536. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +25 -13
  537. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +7 -0
  538. package/ReactCommon/react/renderer/animated/tests/AnimationDriverTests.cpp +48 -0
  539. package/ReactCommon/react/renderer/animated/tests/DecayAnimationDriverTest.cpp +245 -0
  540. package/ReactCommon/react/renderer/animated/tests/ManagedPropsMountingOverrideTests.cpp +204 -0
  541. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +10 -1
  542. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +1 -0
  543. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +17 -0
  544. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +0 -2
  545. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +6 -2
  546. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +25 -1
  547. package/ReactCommon/react/renderer/attributedstring/conversions.h +29 -1
  548. package/ReactCommon/react/renderer/attributedstring/primitives.h +4 -2
  549. package/ReactCommon/react/renderer/attributedstring/tests/ParagraphAttributesTest.cpp +73 -0
  550. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +6 -0
  551. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +79 -126
  552. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropShadowNode.cpp +4 -0
  553. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropShadowNode.h +4 -0
  554. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropState.h +4 -0
  555. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.cpp +5 -0
  556. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h +4 -0
  557. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticComponentDescriptor.cpp +5 -0
  558. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticComponentDescriptor.h +4 -0
  559. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.cpp +4 -0
  560. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.h +4 -0
  561. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerInteropComponentDescriptor.h +4 -0
  562. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.h +4 -0
  563. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +5 -0
  564. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.h +4 -0
  565. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm +5 -0
  566. package/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.cpp +235 -352
  567. package/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.cpp +30 -46
  568. package/ReactCommon/react/renderer/components/text/BaseParagraphProps.cpp +17 -27
  569. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +8 -10
  570. package/ReactCommon/react/renderer/components/text/BaseTextShadowNode.cpp +19 -0
  571. package/ReactCommon/react/renderer/components/text/TextEffectComponentDescriptor.h +17 -0
  572. package/ReactCommon/react/renderer/components/text/TextEffectProps.cpp +59 -0
  573. package/ReactCommon/react/renderer/components/text/TextEffectProps.h +30 -0
  574. package/{Libraries/Text/VirtualText/RCTVirtualTextView.mm → ReactCommon/react/renderer/components/text/TextEffectShadowNode.cpp} +4 -6
  575. package/ReactCommon/react/renderer/components/text/TextEffectShadowNode.h +26 -0
  576. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.cpp +18 -28
  577. package/ReactCommon/react/renderer/components/text/tests/BaseTextShadowNodeTest.cpp +15 -0
  578. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +42 -50
  579. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +168 -754
  580. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +0 -9
  581. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +248 -312
  582. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +0 -6
  583. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +2 -12
  584. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +73 -27
  585. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +7 -9
  586. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -11
  587. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +82 -162
  588. package/ReactCommon/react/renderer/components/view/primitives.h +5 -0
  589. package/ReactCommon/react/renderer/components/view/propsConversions.h +74 -42
  590. package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +5 -5
  591. package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +353 -6
  592. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +41 -16
  593. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +19 -0
  594. package/ReactCommon/react/renderer/core/EventEmitter.cpp +20 -4
  595. package/ReactCommon/react/renderer/core/LayoutMetrics.h +3 -0
  596. package/ReactCommon/react/renderer/core/Props.cpp +8 -39
  597. package/ReactCommon/react/renderer/core/Props.h +63 -13
  598. package/ReactCommon/react/renderer/core/RawProps.cpp +20 -3
  599. package/ReactCommon/react/renderer/core/RawProps.h +44 -0
  600. package/ReactCommon/react/renderer/core/RawPropsKeyMap.cpp +11 -27
  601. package/ReactCommon/react/renderer/core/RawPropsKeyMap.h +3 -3
  602. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +4 -6
  603. package/ReactCommon/react/renderer/core/RawPropsParser.h +3 -3
  604. package/ReactCommon/react/renderer/core/ShadowNode.cpp +27 -19
  605. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +2 -0
  606. package/ReactCommon/react/renderer/core/StateData.h +4 -4
  607. package/ReactCommon/react/renderer/core/propsConversions.h +3 -7
  608. package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +8 -0
  609. package/ReactCommon/react/renderer/core/tests/FindNodeAtPointTest.cpp +7 -7
  610. package/ReactCommon/react/renderer/core/tests/LayoutableShadowNodeTest.cpp +19 -19
  611. package/ReactCommon/react/renderer/core/tests/PropsConceptsTest.cpp +135 -0
  612. package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +43 -53
  613. package/ReactCommon/react/renderer/element/tests/ElementTest.cpp +3 -3
  614. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +17 -0
  615. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +1 -1
  616. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.cpp +123 -33
  617. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.h +26 -14
  618. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp +96 -53
  619. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h +4 -0
  620. package/ReactCommon/react/renderer/mapbuffer/tests/MapBufferTest.cpp +96 -1
  621. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +29 -318
  622. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +105 -33
  623. package/ReactCommon/react/renderer/mounting/ShadowTree.h +2 -0
  624. package/ReactCommon/react/renderer/mounting/tests/DifferentiatorUnflattenTest.cpp +11 -3
  625. package/ReactCommon/react/renderer/mounting/tests/OrderIndexTest.cpp +1 -1
  626. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +15 -250
  627. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeReactBranchingTest.cpp +141 -0
  628. package/ReactCommon/react/renderer/mounting/tests/StackingContextTest.cpp +1 -1
  629. package/ReactCommon/react/renderer/runtimescheduler/CMakeLists.txt +1 -0
  630. package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +1 -0
  631. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +22 -2
  632. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +13 -2
  633. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +13 -0
  634. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.h +9 -0
  635. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +43 -5
  636. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.h +17 -1
  637. package/ReactCommon/react/renderer/runtimescheduler/Task.h +4 -0
  638. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +113 -8
  639. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +14 -6
  640. package/ReactCommon/react/renderer/scheduler/Scheduler.h +3 -2
  641. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +1 -85
  642. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +0 -6
  643. package/ReactCommon/react/renderer/scheduler/tests/SchedulerDelegateInvalidationTest.cpp +671 -0
  644. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +22 -5
  645. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +4 -2
  646. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.h +11 -0
  647. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +65 -26
  648. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +193 -1
  649. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextPrimitivesConversions.h +14 -2
  650. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +2 -1
  651. package/ReactCommon/react/renderer/textlayoutmanager/tests/TextLayoutManagerTest.cpp +86 -5
  652. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +89 -94
  653. package/ReactCommon/react/renderer/uimanager/UIManager.h +2 -2
  654. package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +1 -1
  655. package/ReactCommon/react/renderer/uimanager/tests/FabricUIManagerTest.cpp +144 -3
  656. package/ReactCommon/react/renderer/uimanager/tests/FindShadowNodeByTagTest.cpp +1 -52
  657. package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +4 -4
  658. package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.cpp +88 -39
  659. package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.h +12 -2
  660. package/ReactCommon/react/runtime/PlatformTimerRegistry.h +10 -0
  661. package/ReactCommon/react/runtime/ReactInstance.cpp +79 -64
  662. package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +0 -89
  663. package/ReactCommon/react/runtime/iostests/MainQueueCoordinatorTests.mm +99 -0
  664. package/ReactCommon/react/runtime/iostests/RCTInstanceTests.mm +244 -0
  665. package/ReactCommon/react/runtime/platform/ios/ReactCommon/ObjCTimerRegistry.h +1 -1
  666. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +47 -30
  667. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTJscInstance.mm +3 -2
  668. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTPerformanceLoggerUtils.mm +3 -2
  669. package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +27 -3
  670. package/ReactCommon/react/runtime/tests/cxx/RuntimeExecutorShutdownTest.cpp +155 -0
  671. package/ReactCommon/react/utils/Telemetry.h +0 -13
  672. package/ReactCommon/react/utils/tests/Base64Tests.cpp +36 -0
  673. package/ReactCommon/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +0 -1
  674. package/ReactCommon/runtimeexecutor/platform/ios/ReactCommon/RuntimeExecutorSyncUIThreadUtils.mm +21 -38
  675. package/ReactCommon/yoga/Yoga.podspec +1 -1
  676. package/ReactCommon/yoga/yoga/YGEnums.cpp +2 -0
  677. package/ReactCommon/yoga/yoga/YGEnums.h +1 -0
  678. package/ReactCommon/yoga/yoga/YGNode.cpp +27 -0
  679. package/ReactCommon/yoga/yoga/YGNode.h +69 -0
  680. package/ReactCommon/yoga/yoga/YGNodeLayout.h +0 -2
  681. package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +2 -1
  682. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +294 -17
  683. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.h +1 -1
  684. package/ReactCommon/yoga/yoga/config/Config.h +1 -1
  685. package/ReactCommon/yoga/yoga/enums/Errata.h +1 -0
  686. package/ReactCommon/yoga/yoga/node/LayoutResults.h +8 -0
  687. package/ReactCommon/yoga/yoga/node/Node.cpp +32 -0
  688. package/ReactCommon/yoga/yoga/node/Node.h +33 -0
  689. package/changes.json +6 -14
  690. package/cli.js +3 -182
  691. package/flow/bom.js.flow +42 -42
  692. package/flow/cssom.js.flow +21 -21
  693. package/flow/dom.js.flow +128 -128
  694. package/flow/global.js +6 -0
  695. package/gradle/libs.versions.toml +7 -5
  696. package/index.js +53 -86
  697. package/index.js.flow +53 -23
  698. package/package.json +49 -68
  699. package/react-native.config.js +82 -1
  700. package/scripts/cocoapods/fabric.rb +1 -1
  701. package/scripts/cocoapods/jsengine.rb +1 -1
  702. package/scripts/cocoapods/new_architecture.rb +1 -1
  703. package/scripts/cocoapods/rncore.rb +36 -78
  704. package/scripts/cocoapods/rncore_facades.rb +232 -0
  705. package/scripts/cocoapods/rndependencies.rb +64 -3
  706. package/scripts/cocoapods/rndeps_facades.rb +193 -0
  707. package/scripts/cocoapods/spm.rb +78 -11
  708. package/scripts/cocoapods/utils.rb +5 -7
  709. package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +0 -1
  710. package/scripts/codegen/templates/Package.swift.spm-template +97 -0
  711. package/scripts/codegen/templates/ReactCodegen.podspec.template +1 -1
  712. package/scripts/hermes/hermes-utils.js +27 -58
  713. package/scripts/react-native-xcode.sh +20 -0
  714. package/scripts/react_native_pods.rb +71 -21
  715. package/scripts/react_native_pods_utils/script_phases.sh +4 -3
  716. package/scripts/replace-rncore-version.js +57 -86
  717. package/scripts/setup-apple-spm.js +1267 -0
  718. package/scripts/spm/__doc__/rfc-spm-xcframework.md +707 -0
  719. package/scripts/spm/__doc__/spm-autolinking-plugins.md +244 -0
  720. package/scripts/spm/__doc__/spm-header-paths-contract.md +97 -0
  721. package/scripts/spm/__doc__/spm-plugins-assessment.md +128 -0
  722. package/scripts/spm/__doc__/spm-scripts.md +486 -0
  723. package/scripts/spm/autolinking-plugins.js +331 -0
  724. package/scripts/spm/download-spm-artifacts.js +1409 -0
  725. package/scripts/spm/expand-spm-dependencies.js +216 -0
  726. package/scripts/spm/flavored-frameworks.js +1008 -0
  727. package/scripts/spm/generate-spm-autolinking-config.js +221 -0
  728. package/scripts/spm/generate-spm-autolinking.js +1888 -0
  729. package/scripts/spm/generate-spm-package.js +302 -0
  730. package/scripts/spm/generate-spm-xcodeproj.js +2266 -0
  731. package/scripts/spm/read-podspec.js +695 -0
  732. package/scripts/spm/scaffold-package-swift.js +1206 -0
  733. package/scripts/spm/spm-pbxproj.js +654 -0
  734. package/scripts/spm/spm-types.js +520 -0
  735. package/scripts/spm/spm-utils.js +645 -0
  736. package/scripts/spm/sync-spm-autolinking.js +160 -0
  737. package/sdks/.hermesv1version +1 -1
  738. package/sdks/hermes-engine/hermes-engine.podspec +9 -39
  739. package/sdks/hermes-engine/hermes-utils.rb +19 -73
  740. package/sdks/hermes-engine/utils/replace_hermes_version.js +18 -4
  741. package/sdks/hermes-engine/version.properties +1 -2
  742. package/settings.gradle.kts +0 -43
  743. package/src/asset-registry.js +29 -0
  744. package/src/private/animated/NativeAnimatedHelper.js +45 -21
  745. package/src/private/assets/AssetRegistry.js +52 -0
  746. package/src/private/{specs_DEPRECATED/components → components/activityindicator/specs}/ActivityIndicatorViewNativeComponent.js +5 -5
  747. package/src/private/{specs_DEPRECATED/components → components/debuggingoverlay/specs}/DebuggingOverlayNativeComponent.js +8 -8
  748. package/src/private/{specs_DEPRECATED/components → components/drawerlayoutandroid/specs}/AndroidDrawerLayoutNativeComponent.js +8 -8
  749. package/src/private/{specs_DEPRECATED/components → components/inputaccessoryview/specs}/RCTInputAccessoryViewNativeComponent.js +4 -4
  750. package/src/private/{specs_DEPRECATED/components → components/modal/specs}/RCTModalHostViewNativeComponent.js +4 -9
  751. package/src/private/{specs_DEPRECATED/components → components/progressbarandroid/specs}/ProgressBarAndroidNativeComponent.js +5 -5
  752. package/src/private/{specs_DEPRECATED/components → components/refreshcontrol/specs}/AndroidSwipeRefreshLayoutNativeComponent.js +7 -7
  753. package/src/private/{specs_DEPRECATED/components → components/refreshcontrol/specs}/PullToRefreshViewNativeComponent.js +7 -7
  754. package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +2 -2
  755. package/src/private/{specs_DEPRECATED/components → components/safeareaview/specs}/RCTSafeAreaViewNativeComponent.js +3 -3
  756. package/src/private/components/scrollview/HScrollViewNativeComponents.js +1 -1
  757. package/src/private/{specs_DEPRECATED/components → components/scrollview/specs}/AndroidHorizontalScrollContentViewNativeComponent.js +3 -3
  758. package/src/private/{specs_DEPRECATED/components → components/switch/specs}/AndroidSwitchNativeComponent.js +7 -7
  759. package/src/private/{specs_DEPRECATED/components → components/switch/specs}/SwitchNativeComponent.js +10 -7
  760. package/src/private/{specs_DEPRECATED/components → components/unimplementedview/specs}/UnimplementedNativeViewNativeComponent.js +4 -4
  761. package/src/private/components/virtualcollection/Virtual.js +5 -5
  762. package/src/private/components/virtualcollection/VirtualCollectionView.js +2 -6
  763. package/src/private/components/virtualcollection/column/VirtualColumn.js +1 -1
  764. package/src/private/components/virtualcollection/row/VirtualRow.js +1 -1
  765. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +3 -1
  766. package/src/private/devsupport/devmenu/specs/NativeDevMenu.js +4 -4
  767. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +4 -2
  768. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsSettingsManager.js +2 -2
  769. package/src/private/featureflags/ReactNativeFeatureFlags.js +46 -70
  770. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +88 -94
  771. package/src/private/renderer/errorhandling/ErrorHandlers.js +2 -2
  772. package/src/private/renderer/events/ReactNativeResponder.js +49 -4
  773. package/src/private/renderer/events/ResponderTouchHistoryStore.js +11 -2
  774. package/src/private/renderer/events/dispatchNativeEvent.js +71 -36
  775. package/src/private/setup/setUpDOM.js +19 -9
  776. package/src/private/setup/setUpIntersectionObserver.js +7 -0
  777. package/src/private/setup/setUpMutationObserver.js +3 -1
  778. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityInfo.js +9 -9
  779. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +24 -24
  780. package/src/private/specs_DEPRECATED/modules/NativeActionSheetManager.js +28 -28
  781. package/src/private/specs_DEPRECATED/modules/NativeAlertManager.js +1 -1
  782. package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +45 -25
  783. package/src/private/specs_DEPRECATED/modules/NativeAnimatedTurboModule.js +44 -24
  784. package/src/private/specs_DEPRECATED/modules/NativeAppState.js +4 -4
  785. package/src/private/specs_DEPRECATED/modules/NativeAppearance.js +8 -6
  786. package/src/private/specs_DEPRECATED/modules/NativeBlobModule.js +7 -7
  787. package/src/private/specs_DEPRECATED/modules/NativeClipboard.js +3 -3
  788. package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +2 -2
  789. package/src/private/specs_DEPRECATED/modules/NativeDevSettings.js +11 -11
  790. package/src/private/specs_DEPRECATED/modules/NativeDeviceEventManager.js +1 -1
  791. package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +4 -4
  792. package/src/private/specs_DEPRECATED/modules/NativeDialogManagerAndroid.js +7 -7
  793. package/src/private/specs_DEPRECATED/modules/NativeExceptionsManager.js +4 -4
  794. package/src/private/specs_DEPRECATED/modules/NativeFileReaderModule.js +2 -2
  795. package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +4 -4
  796. package/src/private/specs_DEPRECATED/modules/NativeHeadlessJsTaskSupport.js +2 -2
  797. package/src/private/specs_DEPRECATED/modules/NativeI18nManager.js +1 -1
  798. package/src/private/specs_DEPRECATED/modules/NativeImageEditor.js +13 -13
  799. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderAndroid.js +9 -6
  800. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +6 -6
  801. package/src/private/specs_DEPRECATED/modules/NativeImageStoreAndroid.js +2 -2
  802. package/src/private/specs_DEPRECATED/modules/NativeImageStoreIOS.js +8 -5
  803. package/src/private/specs_DEPRECATED/modules/NativeIntentAndroid.js +5 -5
  804. package/src/private/specs_DEPRECATED/modules/NativeJSCHeapCapture.js +1 -1
  805. package/src/private/specs_DEPRECATED/modules/NativeKeyboardObserver.js +2 -2
  806. package/src/private/specs_DEPRECATED/modules/NativeLinkingManager.js +6 -6
  807. package/src/private/specs_DEPRECATED/modules/NativeLogBox.js +2 -2
  808. package/src/private/specs_DEPRECATED/modules/NativeModalManager.js +2 -2
  809. package/src/private/specs_DEPRECATED/modules/NativeNetworkingAndroid.js +5 -5
  810. package/src/private/specs_DEPRECATED/modules/NativeNetworkingIOS.js +6 -6
  811. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +6 -4
  812. package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsAndroid.js +2 -2
  813. package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsIOS.js +1 -1
  814. package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +35 -31
  815. package/src/private/specs_DEPRECATED/modules/NativeRedBox.js +2 -2
  816. package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +24 -24
  817. package/src/private/specs_DEPRECATED/modules/NativeSegmentFetcher.js +2 -2
  818. package/src/private/specs_DEPRECATED/modules/NativeSettingsManager.js +3 -3
  819. package/src/private/specs_DEPRECATED/modules/NativeShareModule.js +2 -2
  820. package/src/private/specs_DEPRECATED/modules/NativeSoundManager.js +1 -1
  821. package/src/private/specs_DEPRECATED/modules/NativeSourceCode.js +1 -1
  822. package/src/private/specs_DEPRECATED/modules/NativeStatusBarManagerAndroid.js +5 -17
  823. package/src/private/specs_DEPRECATED/modules/NativeStatusBarManagerIOS.js +10 -15
  824. package/src/private/specs_DEPRECATED/modules/NativeTiming.js +3 -3
  825. package/src/private/specs_DEPRECATED/modules/NativeToastAndroid.js +4 -4
  826. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +35 -22
  827. package/src/private/specs_DEPRECATED/modules/NativeVibration.js +4 -4
  828. package/src/private/specs_DEPRECATED/modules/NativeWebSocketModule.js +7 -7
  829. package/src/private/types/HostInstance.js +38 -80
  830. package/src/private/viewtransition/specs/NativeViewTransition.js +6 -4
  831. package/src/private/webapis/dom/abort-api/AbortController.js +92 -0
  832. package/src/private/webapis/dom/abort-api/AbortSignal.js +243 -0
  833. package/src/private/webapis/dom/events/CustomEvent.js +1 -1
  834. package/src/private/webapis/dom/events/Event.js +12 -12
  835. package/src/private/webapis/dom/events/EventTarget.js +146 -37
  836. package/src/private/webapis/dom/events/internals/EventInternals.js +36 -0
  837. package/src/private/webapis/dom/events/internals/EventTargetInternals.js +38 -3
  838. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +11 -0
  839. package/src/private/webapis/dom/nodes/ReactNativeElement.js +105 -4
  840. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +11 -0
  841. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +9 -0
  842. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +34 -7
  843. package/src/private/webapis/dom/nodes/ReadOnlyText.js +33 -0
  844. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +46 -42
  845. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +12 -0
  846. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +4 -2
  847. package/src/private/webapis/dom/oldstylecollections/NodeList.js +10 -0
  848. package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +4 -3
  849. package/src/private/webapis/errors/DOMException.js +50 -50
  850. package/src/private/webapis/geometry/DOMRectList.js +12 -0
  851. package/src/private/webapis/geometry/DOMRectList.js.flow +3 -1
  852. package/src/private/webapis/html/events/MessageEvent.js +3 -3
  853. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +2 -2
  854. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +13 -0
  855. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +3 -7
  856. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +5 -5
  857. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +1 -1
  858. package/src/private/webapis/mutationobserver/MutationObserver.js +7 -7
  859. package/src/private/webapis/mutationobserver/MutationRecord.js +12 -0
  860. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +5 -7
  861. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +5 -5
  862. package/src/private/webapis/performance/EventTiming.js +3 -3
  863. package/src/private/webapis/performance/PerformanceEntry.js +3 -3
  864. package/src/private/webapis/performance/PerformanceObserver.js +4 -4
  865. package/src/private/webapis/performance/ResourceTiming.js +13 -13
  866. package/src/private/webapis/performance/UserTiming.js +3 -3
  867. package/src/private/webapis/performance/internals/Utilities.js +1 -1
  868. package/src/private/webapis/performance/specs/NativePerformance.js +26 -20
  869. package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
  870. package/src/private/webapis/websockets/events/CloseEvent.js +3 -3
  871. package/src/private/webapis/xhr/events/ProgressEvent.js +3 -3
  872. package/src/react-private-interface.js +145 -0
  873. package/src/react-private-interface.js.flow +48 -0
  874. package/src/setup-env.js +22 -0
  875. package/src/types/globals.d.ts +33 -1
  876. package/src/unstable-internals-do-not-use.d.ts +214 -0
  877. package/src/unstable-internals-do-not-use.js +76 -0
  878. package/third-party-podspecs/ReactNativeDependencies.podspec +2 -2
  879. package/types/index.d.ts +0 -1
  880. package/types/public/DeprecatedPropertiesAlias.d.ts +0 -4
  881. package/types/public/ReactNativeTypes.d.ts +4 -2
  882. package/types_generated/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +26 -31
  883. package/types_generated/Libraries/Alert/Alert.d.ts +44 -7
  884. package/types_generated/Libraries/Animated/AnimatedEvent.d.ts +2 -2
  885. package/types_generated/Libraries/Animated/AnimatedExports.d.ts +2 -2
  886. package/types_generated/Libraries/Animated/AnimatedImplementation.d.ts +107 -3
  887. package/types_generated/Libraries/Animated/Easing.d.ts +5 -4
  888. package/types_generated/Libraries/Animated/animations/Animation.d.ts +7 -7
  889. package/types_generated/Libraries/Animated/animations/DecayAnimation.d.ts +5 -5
  890. package/types_generated/Libraries/Animated/animations/SpringAnimation.d.ts +49 -49
  891. package/types_generated/Libraries/Animated/animations/TimingAnimation.d.ts +13 -13
  892. package/types_generated/Libraries/Animated/components/AnimatedFlatList.d.ts +3 -3
  893. package/types_generated/Libraries/Animated/components/AnimatedSectionList.d.ts +3 -3
  894. package/types_generated/Libraries/Animated/createAnimatedComponent.d.ts +4 -4
  895. package/types_generated/Libraries/Animated/nodes/AnimatedColor.d.ts +2 -2
  896. package/types_generated/Libraries/Animated/nodes/AnimatedInterpolation.d.ts +9 -9
  897. package/types_generated/Libraries/Animated/nodes/AnimatedNode.d.ts +3 -3
  898. package/types_generated/Libraries/AppState/AppState.d.ts +41 -22
  899. package/types_generated/Libraries/BatchedBridge/NativeModules.d.ts +8 -1
  900. package/types_generated/Libraries/Blob/BlobTypes.d.ts +4 -4
  901. package/types_generated/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +37 -46
  902. package/types_generated/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +92 -43
  903. package/types_generated/Libraries/Components/Button.d.ts +118 -197
  904. package/types_generated/Libraries/Components/Clipboard/Clipboard.d.ts +6 -1
  905. package/types_generated/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.d.ts +44 -63
  906. package/types_generated/Libraries/Components/Keyboard/Keyboard.d.ts +30 -61
  907. package/types_generated/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +30 -21
  908. package/types_generated/Libraries/Components/Pressable/Pressable.d.ts +41 -17
  909. package/types_generated/Libraries/Components/Pressable/useAndroidRippleForView.d.ts +6 -6
  910. package/types_generated/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +5 -5
  911. package/types_generated/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.d.ts +18 -1
  912. package/types_generated/Libraries/Components/RefreshControl/RefreshControl.d.ts +35 -52
  913. package/types_generated/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +9 -11
  914. package/types_generated/Libraries/Components/ScrollView/ScrollView.d.ts +212 -88
  915. package/types_generated/Libraries/Components/ScrollView/ScrollViewStickyHeader.d.ts +4 -4
  916. package/types_generated/Libraries/Components/StatusBar/StatusBar.d.ts +29 -62
  917. package/types_generated/Libraries/Components/Switch/Switch.d.ts +75 -70
  918. package/types_generated/Libraries/Components/TextInput/InputAccessoryView.d.ts +16 -65
  919. package/types_generated/Libraries/Components/TextInput/TextInput.d.ts +118 -3
  920. package/types_generated/Libraries/Components/TextInput/TextInput.flow.d.ts +23 -8
  921. package/types_generated/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +18 -18
  922. package/types_generated/Libraries/Components/Touchable/TouchableHighlight.d.ts +24 -13
  923. package/types_generated/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +27 -64
  924. package/types_generated/Libraries/Components/Touchable/TouchableOpacity.d.ts +18 -6
  925. package/types_generated/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +28 -28
  926. package/types_generated/Libraries/Components/View/View.d.ts +13 -9
  927. package/types_generated/Libraries/Components/View/ViewAccessibility.d.ts +28 -17
  928. package/types_generated/Libraries/Components/View/ViewNativeComponent.d.ts +1 -2
  929. package/types_generated/Libraries/Components/View/ViewPropTypes.d.ts +75 -24
  930. package/types_generated/Libraries/Core/ExtendedError.d.ts +10 -10
  931. package/types_generated/Libraries/EventEmitter/NativeEventEmitter.d.ts +34 -1
  932. package/types_generated/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +4 -1
  933. package/types_generated/Libraries/Image/AssetSourceResolver.d.ts +2 -13
  934. package/types_generated/Libraries/Image/ImageBackground.d.ts +33 -22
  935. package/types_generated/Libraries/Image/ImageProps.d.ts +201 -251
  936. package/types_generated/Libraries/Image/ImageTypes.flow.d.ts +6 -5
  937. package/types_generated/Libraries/Interaction/PanResponder.d.ts +103 -97
  938. package/types_generated/Libraries/LayoutAnimation/LayoutAnimation.d.ts +18 -7
  939. package/types_generated/Libraries/Linking/Linking.d.ts +28 -20
  940. package/types_generated/Libraries/Lists/FlatList.d.ts +17 -18
  941. package/types_generated/Libraries/Lists/SectionList.d.ts +10 -5
  942. package/types_generated/Libraries/Lists/VirtualizedList.d.ts +3 -1
  943. package/types_generated/Libraries/Lists/VirtualizedSectionList.d.ts +3 -1
  944. package/types_generated/Libraries/LogBox/Data/LogBoxData.d.ts +2 -2
  945. package/types_generated/Libraries/LogBox/Data/LogBoxLog.d.ts +2 -2
  946. package/types_generated/Libraries/LogBox/Data/parseLogBoxLog.d.ts +2 -2
  947. package/types_generated/Libraries/LogBox/LogBox.d.ts +4 -1
  948. package/types_generated/Libraries/Modal/Modal.d.ts +70 -35
  949. package/types_generated/Libraries/Network/FormData.d.ts +5 -5
  950. package/types_generated/Libraries/Performance/Systrace.d.ts +11 -1
  951. package/types_generated/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +31 -21
  952. package/types_generated/Libraries/Pressability/Pressability.d.ts +5 -5
  953. package/types_generated/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +15 -11
  954. package/types_generated/Libraries/ReactNative/AppRegistry.flow.d.ts +5 -5
  955. package/types_generated/Libraries/ReactNative/AppRegistryImpl.d.ts +56 -9
  956. package/types_generated/Libraries/ReactNative/I18nManager.d.ts +20 -1
  957. package/types_generated/Libraries/ReactNative/IPerformanceLogger.flow.d.ts +5 -5
  958. package/types_generated/Libraries/ReactPrivate/ReactNativePrivateInterface.d.ts +6 -22
  959. package/types_generated/Libraries/Renderer/shims/ReactNativeTypes.d.ts +34 -34
  960. package/types_generated/Libraries/Share/Share.d.ts +36 -39
  961. package/types_generated/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +7 -1
  962. package/types_generated/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +3 -3
  963. package/types_generated/Libraries/StyleSheet/StyleSheetTypes.d.ts +202 -181
  964. package/types_generated/Libraries/StyleSheet/private/_TransformStyle.d.ts +3 -3
  965. package/types_generated/Libraries/Text/Text.d.ts +10 -6
  966. package/types_generated/Libraries/Text/TextProps.d.ts +57 -102
  967. package/types_generated/Libraries/TurboModule/RCTExport.d.ts +2 -2
  968. package/types_generated/Libraries/Types/CoreEventTypes.d.ts +14 -8
  969. package/types_generated/Libraries/Utilities/Appearance.d.ts +25 -13
  970. package/types_generated/Libraries/Utilities/BackHandler.d.ts +17 -1
  971. package/types_generated/Libraries/Utilities/DevSettings.d.ts +9 -2
  972. package/types_generated/Libraries/Utilities/Dimensions.d.ts +19 -13
  973. package/types_generated/Libraries/Utilities/PixelRatio.d.ts +6 -3
  974. package/types_generated/Libraries/Utilities/Platform.d.ts +5 -1
  975. package/types_generated/Libraries/Utilities/PlatformTypes.d.ts +65 -6
  976. package/types_generated/Libraries/Utilities/codegenNativeComponent.d.ts +5 -5
  977. package/types_generated/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.d.ts +2 -2
  978. package/types_generated/Libraries/Utilities/differ/deepDiffer.d.ts +2 -2
  979. package/types_generated/Libraries/Utilities/useColorScheme.d.ts +12 -2
  980. package/types_generated/Libraries/Utilities/useWindowDimensions.d.ts +7 -1
  981. package/types_generated/Libraries/Vibration/Vibration.d.ts +14 -6
  982. package/types_generated/index.d.ts +31 -25
  983. package/types_generated/src/private/assets/AssetRegistry.d.ts +42 -0
  984. package/types_generated/src/private/components/virtualcollection/VirtualCollectionView.d.ts +5 -5
  985. package/types_generated/src/private/components/virtualcollection/column/VirtualColumn.d.ts +3 -3
  986. package/types_generated/src/private/components/virtualcollection/row/VirtualRow.d.ts +3 -3
  987. package/types_generated/src/private/components/virtualview/VirtualView.d.ts +7 -7
  988. package/types_generated/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.d.ts +5 -5
  989. package/types_generated/src/private/components/virtualview/VirtualViewNativeComponent.d.ts +5 -5
  990. package/types_generated/src/private/renderer/events/dispatchNativeEvent.d.ts +26 -0
  991. package/types_generated/src/private/specs_DEPRECATED/modules/NativeAppearance.d.ts +6 -5
  992. package/types_generated/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.d.ts +7 -7
  993. package/types_generated/src/private/specs_DEPRECATED/modules/NativeExceptionsManager.d.ts +5 -5
  994. package/types_generated/src/private/specs_DEPRECATED/modules/NativeUIManager.d.ts +8 -8
  995. package/types_generated/src/private/types/HostComponent.d.ts +3 -3
  996. package/types_generated/src/private/types/HostInstance.d.ts +39 -74
  997. package/types_generated/src/private/webapis/dom/events/CustomEvent.d.ts +2 -2
  998. package/types_generated/src/private/webapis/dom/events/Event.d.ts +4 -4
  999. package/types_generated/src/private/webapis/dom/events/EventTarget.d.ts +8 -8
  1000. package/types_generated/src/private/webapis/dom/nodes/ReactNativeDocument.d.ts +3 -1
  1001. package/types_generated/src/private/webapis/dom/nodes/ReactNativeElement.d.ts +57 -4
  1002. package/types_generated/src/private/webapis/dom/nodes/ReadOnlyCharacterData.d.ts +3 -1
  1003. package/types_generated/src/private/webapis/dom/nodes/ReadOnlyElement.d.ts +3 -1
  1004. package/types_generated/src/private/webapis/dom/nodes/ReadOnlyNode.d.ts +4 -2
  1005. package/types_generated/src/private/webapis/dom/nodes/ReadOnlyText.d.ts +3 -1
  1006. package/types_generated/src/private/webapis/dom/nodes/specs/NativeDOM.d.ts +3 -3
  1007. package/types_generated/src/private/webapis/dom/oldstylecollections/HTMLCollection.d.ts +3 -1
  1008. package/types_generated/src/private/webapis/dom/oldstylecollections/NodeList.d.ts +3 -1
  1009. package/types_generated/src/react-private-interface.d.ts +33 -0
  1010. package/Libraries/AppDelegate/RCTArchConfiguratorProtocol.h +0 -38
  1011. package/Libraries/Image/AssetRegistry.js +0 -14
  1012. package/Libraries/Image/RCTImageShadowView.h +0 -17
  1013. package/Libraries/Image/RCTImageShadowView.mm +0 -28
  1014. package/Libraries/Image/RCTImageView.h +0 -32
  1015. package/Libraries/Image/RCTImageView.mm +0 -508
  1016. package/Libraries/Image/RCTImageViewManager.h +0 -17
  1017. package/Libraries/Image/RCTImageViewManager.mm +0 -115
  1018. package/Libraries/Interaction/InteractionManager.d.ts +0 -87
  1019. package/Libraries/Interaction/InteractionManager.js +0 -189
  1020. package/Libraries/Text/BaseText/RCTBaseTextShadowView.h +0 -35
  1021. package/Libraries/Text/BaseText/RCTBaseTextShadowView.mm +0 -162
  1022. package/Libraries/Text/BaseText/RCTBaseTextViewManager.h +0 -21
  1023. package/Libraries/Text/BaseText/RCTBaseTextViewManager.mm +0 -64
  1024. package/Libraries/Text/RCTTextAttributes.h +0 -107
  1025. package/Libraries/Text/RCTTextAttributes.mm +0 -358
  1026. package/Libraries/Text/RawText/RCTRawTextShadowView.h +0 -23
  1027. package/Libraries/Text/RawText/RCTRawTextShadowView.mm +0 -38
  1028. package/Libraries/Text/RawText/RCTRawTextViewManager.h +0 -21
  1029. package/Libraries/Text/RawText/RCTRawTextViewManager.mm +0 -32
  1030. package/Libraries/Text/Text/RCTTextShadowView.h +0 -33
  1031. package/Libraries/Text/Text/RCTTextShadowView.mm +0 -469
  1032. package/Libraries/Text/Text/RCTTextView.h +0 -34
  1033. package/Libraries/Text/Text/RCTTextView.mm +0 -298
  1034. package/Libraries/Text/Text/RCTTextViewManager.h +0 -19
  1035. package/Libraries/Text/Text/RCTTextViewManager.mm +0 -97
  1036. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.h +0 -21
  1037. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.mm +0 -67
  1038. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.h +0 -21
  1039. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.mm +0 -28
  1040. package/Libraries/Text/TextInput/RCTBaseTextInputShadowView.h +0 -30
  1041. package/Libraries/Text/TextInput/RCTBaseTextInputShadowView.mm +0 -367
  1042. package/Libraries/Text/TextInput/RCTBaseTextInputView.h +0 -68
  1043. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +0 -849
  1044. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.h +0 -17
  1045. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +0 -181
  1046. package/Libraries/Text/TextInput/RCTInputAccessoryShadowView.h +0 -17
  1047. package/Libraries/Text/TextInput/RCTInputAccessoryShadowView.mm +0 -24
  1048. package/Libraries/Text/TextInput/RCTInputAccessoryView.h +0 -22
  1049. package/Libraries/Text/TextInput/RCTInputAccessoryView.mm +0 -82
  1050. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.h +0 -17
  1051. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.mm +0 -78
  1052. package/Libraries/Text/TextInput/RCTInputAccessoryViewManager.h +0 -17
  1053. package/Libraries/Text/TextInput/RCTInputAccessoryViewManager.mm +0 -33
  1054. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.h +0 -21
  1055. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.mm +0 -43
  1056. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.h +0 -21
  1057. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.mm +0 -35
  1058. package/Libraries/Text/VirtualText/RCTVirtualTextShadowView.h +0 -17
  1059. package/Libraries/Text/VirtualText/RCTVirtualTextShadowView.mm +0 -42
  1060. package/Libraries/Text/VirtualText/RCTVirtualTextView.h +0 -28
  1061. package/Libraries/Text/VirtualText/RCTVirtualTextViewManager.h +0 -17
  1062. package/Libraries/Text/VirtualText/RCTVirtualTextViewManager.mm +0 -30
  1063. package/Libraries/Utilities/SceneTracker.js +0 -42
  1064. package/Libraries/Wrapper/Example/RCTWrapperExampleView.h +0 -21
  1065. package/Libraries/Wrapper/Example/RCTWrapperExampleView.m +0 -57
  1066. package/Libraries/Wrapper/Example/RCTWrapperExampleViewController.h +0 -21
  1067. package/Libraries/Wrapper/Example/RCTWrapperExampleViewController.m +0 -27
  1068. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewController.h +0 -25
  1069. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewController.m +0 -50
  1070. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewManager.h +0 -23
  1071. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewManager.m +0 -35
  1072. package/Libraries/Wrapper/RCTWrapper.h +0 -73
  1073. package/Libraries/Wrapper/RCTWrapperShadowView.h +0 -27
  1074. package/Libraries/Wrapper/RCTWrapperShadowView.m +0 -138
  1075. package/Libraries/Wrapper/RCTWrapperView.h +0 -42
  1076. package/Libraries/Wrapper/RCTWrapperView.m +0 -99
  1077. package/Libraries/Wrapper/RCTWrapperViewControllerHostingView.h +0 -30
  1078. package/Libraries/Wrapper/RCTWrapperViewControllerHostingView.m +0 -137
  1079. package/Libraries/Wrapper/RCTWrapperViewManager.h +0 -25
  1080. package/Libraries/Wrapper/RCTWrapperViewManager.m +0 -31
  1081. package/React/Base/RCTRootContentView.h +0 -43
  1082. package/React/Base/RCTRootContentView.m +0 -111
  1083. package/React/Base/RCTRootViewInternal.h +0 -28
  1084. package/React/CxxBridge/RCTCxxBridge.mm +0 -1572
  1085. package/React/CxxBridge/RCTJSIExecutorRuntimeInstaller.h +0 -25
  1086. package/React/CxxBridge/RCTJSIExecutorRuntimeInstaller.mm +0 -34
  1087. package/React/CxxBridge/RCTObjcExecutor.h +0 -34
  1088. package/React/CxxBridge/RCTObjcExecutor.mm +0 -150
  1089. package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +0 -34
  1090. package/React/CxxModule/DispatchMessageQueueThread.h +0 -50
  1091. package/React/CxxModule/RCTCxxMethod.h +0 -17
  1092. package/React/CxxModule/RCTCxxMethod.mm +0 -147
  1093. package/React/CxxModule/RCTNativeModule.h +0 -34
  1094. package/React/CxxModule/RCTNativeModule.mm +0 -241
  1095. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.mm +0 -205
  1096. package/React/Tests/Text/RCTTextAttributesTest.mm +0 -49
  1097. package/React/Views/RCTActivityIndicatorView.h +0 -16
  1098. package/React/Views/RCTActivityIndicatorView.m +0 -26
  1099. package/React/Views/RCTActivityIndicatorViewManager.h +0 -23
  1100. package/React/Views/RCTActivityIndicatorViewManager.m +0 -65
  1101. package/React/Views/RCTDebuggingOverlayManager.h +0 -17
  1102. package/React/Views/RCTDebuggingOverlayManager.m +0 -68
  1103. package/React/Views/RCTModalHostView.h +0 -64
  1104. package/React/Views/RCTModalHostView.m +0 -264
  1105. package/React/Views/RCTModalHostViewController.m +0 -74
  1106. package/React/Views/RCTModalHostViewManager.m +0 -131
  1107. package/React/Views/RCTModalManager.h +0 -22
  1108. package/React/Views/RCTModalManager.m +0 -46
  1109. package/React/Views/RCTRootShadowView.h +0 -35
  1110. package/React/Views/RCTRootShadowView.m +0 -53
  1111. package/React/Views/RCTShadowView+Internal.h +0 -18
  1112. package/React/Views/RCTShadowView+Internal.m +0 -23
  1113. package/React/Views/RCTSwitch.h +0 -22
  1114. package/React/Views/RCTSwitch.m +0 -24
  1115. package/React/Views/RCTSwitchManager.h +0 -17
  1116. package/React/Views/RCTSwitchManager.m +0 -70
  1117. package/React/Views/RefreshControl/RCTRefreshControl.h +0 -24
  1118. package/React/Views/RefreshControl/RCTRefreshControl.m +0 -230
  1119. package/React/Views/RefreshControl/RCTRefreshControlManager.h +0 -17
  1120. package/React/Views/RefreshControl/RCTRefreshControlManager.m +0 -47
  1121. package/React/Views/SafeAreaView/RCTSafeAreaShadowView.h +0 -21
  1122. package/React/Views/SafeAreaView/RCTSafeAreaShadowView.m +0 -57
  1123. package/React/Views/SafeAreaView/RCTSafeAreaView.h +0 -27
  1124. package/React/Views/SafeAreaView/RCTSafeAreaView.m +0 -79
  1125. package/React/Views/SafeAreaView/RCTSafeAreaViewLocalData.h +0 -25
  1126. package/React/Views/SafeAreaView/RCTSafeAreaViewLocalData.m +0 -25
  1127. package/React/Views/SafeAreaView/RCTSafeAreaViewManager.h +0 -21
  1128. package/React/Views/SafeAreaView/RCTSafeAreaViewManager.m +0 -32
  1129. package/React/Views/ScrollView/RCTScrollContentShadowView.h +0 -19
  1130. package/React/Views/ScrollView/RCTScrollContentShadowView.m +0 -35
  1131. package/React/Views/ScrollView/RCTScrollContentView.h +0 -19
  1132. package/React/Views/ScrollView/RCTScrollContentView.m +0 -36
  1133. package/React/Views/ScrollView/RCTScrollContentViewManager.h +0 -17
  1134. package/React/Views/ScrollView/RCTScrollContentViewManager.m +0 -31
  1135. package/React/Views/ScrollView/RCTScrollView.m +0 -1168
  1136. package/React/Views/ScrollView/RCTScrollViewManager.h +0 -25
  1137. package/React/Views/ScrollView/RCTScrollViewManager.m +0 -202
  1138. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +0 -251
  1139. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java +0 -315
  1140. package/ReactAndroid/src/main/java/com/facebook/react/common/ClearableSynchronizedPool.kt +0 -51
  1141. package/ReactAndroid/src/main/java/com/facebook/react/fabric/AnimationBackendChoreographer.kt +0 -89
  1142. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +0 -736
  1143. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +0 -221
  1144. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +0 -399
  1145. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactZIndexedViewGroup.kt +0 -35
  1146. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +0 -346
  1147. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +0 -666
  1148. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +0 -147
  1149. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupDrawingOrderHelper.kt +0 -113
  1150. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +0 -614
  1151. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +0 -1838
  1152. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.java +0 -1646
  1153. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +0 -1638
  1154. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaAlign.java +0 -51
  1155. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaBoxSizing.java +0 -33
  1156. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDimension.java +0 -33
  1157. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDisplay.java +0 -37
  1158. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaEdge.java +0 -47
  1159. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaErrata.java +0 -41
  1160. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaExperimentalFeature.java +0 -33
  1161. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaFlexDirection.java +0 -37
  1162. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGridTrackType.java +0 -39
  1163. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGutter.java +0 -35
  1164. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaJustify.java +0 -49
  1165. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaLogLevel.java +0 -45
  1166. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaMeasureMode.java +0 -35
  1167. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +0 -928
  1168. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeType.java +0 -33
  1169. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaOverflow.java +0 -35
  1170. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaPositionType.java +0 -35
  1171. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaUnit.java +0 -43
  1172. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaWrap.java +0 -35
  1173. package/ReactAndroid/src/main/jni/react/fabric/JAnimationBackendChoreographer.cpp +0 -23
  1174. package/ReactAndroid/src/main/jni/react/fabric/JAnimationBackendChoreographer.h +0 -37
  1175. package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +0 -135
  1176. package/ReactCommon/cxxreact/JSIndexedRAMBundle.h +0 -72
  1177. package/ReactCommon/hermes/inspector-modern/chrome/ConnectionDemux.cpp +0 -143
  1178. package/ReactCommon/hermes/inspector-modern/chrome/ConnectionDemux.h +0 -55
  1179. package/ReactCommon/hermes/inspector-modern/chrome/Registration.cpp +0 -78
  1180. package/ReactCommon/hermes/inspector-modern/chrome/Registration.h +0 -39
  1181. package/ReactCommon/hermes/inspector-modern/chrome/tests/ConnectionDemuxTests.cpp +0 -148
  1182. package/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +0 -168
  1183. package/ReactCommon/react/nativemodule/samples/platform/android/ReactCommon/SampleTurboModuleSpec.cpp +0 -416
  1184. package/ReactCommon/react/nativemodule/samples/platform/android/ReactCommon/SampleTurboModuleSpec.h +0 -31
  1185. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.h +0 -134
  1186. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.mm +0 -290
  1187. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +0 -62
  1188. package/ReactCommon/react/renderer/core/RawPropsKey.h +0 -39
  1189. package/ReactCommon/react/renderer/mounting/internal/DiffMap.h +0 -170
  1190. package/ReactCommon/react/renderer/mounting/internal/LongestIncreasingSubsequence.h +0 -95
  1191. package/ReactCommon/react/renderer/mounting/internal/TinyMap.h +0 -147
  1192. package/ReactCommon/react/renderer/mounting/tests/LongestIncreasingSubsequenceTest.cpp +0 -154
  1193. package/interface.js +0 -21
  1194. package/jest-preset.js +0 -26
  1195. package/rn-get-polyfills.js +0 -13
  1196. package/sdks/.hermesversion +0 -1
  1197. package/src/private/components/virtualcollection/debug/FlingItemOverlay.js +0 -13
  1198. package/types/tsconfig.json +0 -15
  1199. package/types_generated/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.d.ts +0 -14
  1200. package/types_generated/Libraries/Components/ScrollView/ScrollViewNativeComponent.d.ts +0 -21
  1201. package/types_generated/Libraries/Components/ScrollView/ScrollViewNativeComponentType.d.ts +0 -134
  1202. package/types_generated/Libraries/Components/Switch/AndroidSwitchNativeComponent.d.ts +0 -14
  1203. package/types_generated/Libraries/Components/Switch/SwitchNativeComponent.d.ts +0 -14
  1204. package/types_generated/Libraries/Components/Touchable/Touchable.d.ts +0 -262
  1205. package/types_generated/Libraries/Interaction/InteractionManager.d.ts +0 -117
  1206. package/types_generated/Libraries/NativeModules/specs/NativeDialogManagerAndroid.d.ts +0 -17
  1207. package/types_generated/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.d.ts +0 -53
  1208. package/types_generated/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.d.ts +0 -36
  1209. package/types_generated/src/private/specs_DEPRECATED/components/SwitchNativeComponent.d.ts +0 -51
  1210. package/types_generated/src/private/specs_DEPRECATED/modules/NativeDialogManagerAndroid.d.ts +0 -37
  1211. package/types_generated/tsconfig.test.json +0 -16
  1212. /package/ReactCommon/{cxxreact → react/utils}/MoveWrapper.h +0 -0
@@ -25,11 +25,7 @@
25
25
  #import "RCTModuleData.h"
26
26
  #import "RCTModuleMethod.h"
27
27
  #import "RCTProfile.h"
28
- #import "RCTRootContentView.h"
29
- #import "RCTRootShadowView.h"
30
- #import "RCTRootViewInternal.h"
31
28
  #import "RCTScrollableProtocol.h"
32
- #import "RCTShadowView+Internal.h"
33
29
  #import "RCTShadowView.h"
34
30
  #import "RCTSurfaceRootShadowView.h"
35
31
  #import "RCTSurfaceRootView.h"
@@ -133,1501 +129,6 @@ NSMutableDictionary<NSString *, id> *RCTModuleConstantsForDestructuredComponent(
133
129
  return moduleConstants;
134
130
  }
135
131
 
136
- #ifndef RCT_REMOVE_LEGACY_ARCH
137
-
138
- static void RCTTraverseViewNodes(id<RCTComponent> view, void (^block)(id<RCTComponent>))
139
- {
140
- if (view.reactTag) {
141
- block(view);
142
-
143
- for (id<RCTComponent> subview in view.reactSubviews) {
144
- RCTTraverseViewNodes(subview, block);
145
- }
146
- }
147
- }
148
-
149
- static NSString *RCTNativeIDRegistryKey(NSString *nativeID, NSNumber *rootTag)
150
- {
151
- if (!nativeID || !rootTag) {
152
- return @"";
153
- }
154
- return [NSString stringWithFormat:@"%@-%@", rootTag, nativeID];
155
- }
156
-
157
- NSString *const RCTUIManagerWillUpdateViewsDueToContentSizeMultiplierChangeNotification =
158
- @"RCTUIManagerWillUpdateViewsDueToContentSizeMultiplierChangeNotification";
159
-
160
- @implementation RCTUIManager {
161
- // Root views are only mutated on the shadow queue
162
- NSMutableSet<NSNumber *> *_rootViewTags;
163
- NSMutableArray<RCTViewManagerUIBlock> *_pendingUIBlocks;
164
-
165
- // Animation
166
- RCTLayoutAnimationGroup *_layoutAnimationGroup; // Main thread only
167
-
168
- NSMutableDictionary<NSNumber *, RCTShadowView *> *_shadowViewRegistry; // RCT thread only
169
- NSMutableDictionary<NSNumber *, UIView *> *_viewRegistry; // Main thread only
170
- NSMapTable<NSString *, UIView *> *_nativeIDRegistry;
171
-
172
- NSMapTable<RCTShadowView *, NSArray<NSString *> *> *_shadowViewsWithUpdatedProps; // UIManager queue only.
173
- NSHashTable<RCTShadowView *> *_shadowViewsWithUpdatedChildren; // UIManager queue only.
174
-
175
- // Keyed by viewName
176
- NSMutableDictionary *_componentDataByName;
177
- }
178
-
179
- @synthesize bridge = _bridge;
180
- @synthesize moduleRegistry = _moduleRegistry;
181
-
182
- RCT_EXPORT_MODULE()
183
-
184
- + (BOOL)requiresMainQueueSetup
185
- {
186
- return NO;
187
- }
188
-
189
- - (void)invalidate
190
- {
191
- /**
192
- * Called on the JS Thread since all modules are invalidated on the JS thread
193
- */
194
-
195
- // This only accessed from the shadow queue
196
- _pendingUIBlocks = nil;
197
-
198
- RCTExecuteOnMainQueue(^{
199
- RCT_PROFILE_BEGIN_EVENT(RCTProfileTagAlways, @"UIManager invalidate", nil);
200
- NSMutableDictionary<NSNumber *, id<RCTComponent>> *viewRegistry =
201
- (NSMutableDictionary<NSNumber *, id<RCTComponent>> *)self->_viewRegistry;
202
- for (NSNumber *rootViewTag in self->_rootViewTags) {
203
- id<RCTComponent> rootView = viewRegistry[rootViewTag];
204
- [self _purgeChildren:[rootView reactSubviews] fromRegistry:viewRegistry];
205
- if ([rootView conformsToProtocol:@protocol(RCTInvalidating)]) {
206
- [(id<RCTInvalidating>)rootView invalidate];
207
- }
208
- }
209
-
210
- self->_rootViewTags = nil;
211
- self->_shadowViewRegistry = nil;
212
- self->_viewRegistry = nil;
213
- self->_nativeIDRegistry = nil;
214
- self->_bridge = nil;
215
-
216
- [[NSNotificationCenter defaultCenter] removeObserver:self];
217
- RCT_PROFILE_END_EVENT(RCTProfileTagAlways, @"");
218
- });
219
- }
220
-
221
- - (NSMutableDictionary<NSNumber *, RCTShadowView *> *)shadowViewRegistry
222
- {
223
- // NOTE: this method only exists so that it can be accessed by unit tests
224
- if (!_shadowViewRegistry) {
225
- _shadowViewRegistry = [NSMutableDictionary new];
226
- }
227
- return _shadowViewRegistry;
228
- }
229
-
230
- - (NSMutableDictionary<NSNumber *, UIView *> *)viewRegistry
231
- {
232
- // NOTE: this method only exists so that it can be accessed by unit tests
233
- if (!_viewRegistry) {
234
- _viewRegistry = [NSMutableDictionary new];
235
- }
236
- return _viewRegistry;
237
- }
238
-
239
- - (NSMapTable *)nativeIDRegistry
240
- {
241
- if (!_nativeIDRegistry) {
242
- _nativeIDRegistry = [NSMapTable strongToWeakObjectsMapTable];
243
- }
244
- return _nativeIDRegistry;
245
- }
246
-
247
- - (void)setBridge:(RCTBridge *)bridge
248
- {
249
- RCTAssert(_bridge == nil, @"Should not re-use same UIManager instance");
250
- _bridge = bridge;
251
-
252
- _shadowViewRegistry = [NSMutableDictionary new];
253
- _viewRegistry = [NSMutableDictionary new];
254
- _nativeIDRegistry = [NSMapTable strongToWeakObjectsMapTable];
255
-
256
- _shadowViewsWithUpdatedProps = [NSMapTable weakToStrongObjectsMapTable];
257
- _shadowViewsWithUpdatedChildren = [NSHashTable weakObjectsHashTable];
258
-
259
- // Internal resources
260
- _pendingUIBlocks = [NSMutableArray new];
261
- _rootViewTags = [NSMutableSet new];
262
-
263
- _observerCoordinator = [RCTUIManagerObserverCoordinator new];
264
-
265
- // Get view managers from bridge=
266
- _componentDataByName = [NSMutableDictionary new];
267
- for (Class moduleClass in _bridge.moduleClasses) {
268
- if ([moduleClass isSubclassOfClass:[RCTViewManager class]]) {
269
- RCTComponentData *componentData = [[RCTComponentData alloc] initWithManagerClass:moduleClass
270
- bridge:_bridge
271
- eventDispatcher:_bridge.eventDispatcher];
272
- _componentDataByName[componentData.name] = componentData;
273
- }
274
- }
275
-
276
- // Preload the a11yManager as the RCTUIManager needs it to listen for notification
277
- // By eagerly preloading it in the setBridge method, we make sure that the manager is
278
- // properly initialized in the Main Thread and that we do not incur in any race condition
279
- // or concurrency problem.
280
- id<RCTBridgeModule> a11yManager = [bridge moduleForName:@"AccessibilityManager" lazilyLoadIfNecessary:YES];
281
-
282
- // This dispatch_async avoids a deadlock while configuring native modules
283
- dispatch_queue_t accessibilityManagerInitQueue = RCTUIManagerDispatchAccessibilityManagerInitOntoMain()
284
- ? dispatch_get_main_queue()
285
- : dispatch_get_global_queue(QOS_CLASS_USER_INTERACTIVE, 0);
286
- dispatch_async(accessibilityManagerInitQueue, ^{
287
- [[NSNotificationCenter defaultCenter] addObserver:self
288
- selector:@selector(didReceiveNewContentSizeMultiplier)
289
- name:@"RCTAccessibilityManagerDidUpdateMultiplierNotification"
290
- object:a11yManager];
291
- });
292
- #if TARGET_OS_IOS
293
- [[NSNotificationCenter defaultCenter] addObserver:self
294
- selector:@selector(namedOrientationDidChange)
295
- name:UIDeviceOrientationDidChangeNotification
296
- object:nil];
297
- #endif
298
- [RCTLayoutAnimation initializeStatics];
299
- }
300
-
301
- #pragma mark - Event emitting
302
-
303
- - (void)didReceiveNewContentSizeMultiplier
304
- {
305
- // Report the event across the bridge.
306
- #pragma clang diagnostic push
307
- #pragma clang diagnostic ignored "-Wdeprecated-declarations"
308
- id multiplier = [[self->_bridge moduleForName:@"AccessibilityManager"
309
- lazilyLoadIfNecessary:YES] valueForKey:@"multiplier"];
310
- if (multiplier) {
311
- [[_moduleRegistry moduleForName:"EventDispatcher"] sendDeviceEventWithName:@"didUpdateContentSizeMultiplier"
312
- body:multiplier];
313
- }
314
- #pragma clang diagnostic pop
315
-
316
- RCTExecuteOnUIManagerQueue(^{
317
- [[NSNotificationCenter defaultCenter]
318
- postNotificationName:RCTUIManagerWillUpdateViewsDueToContentSizeMultiplierChangeNotification
319
- object:self];
320
- [self setNeedsLayout];
321
- });
322
- }
323
-
324
- #if TARGET_OS_IOS
325
- // Names and coordinate system from html5 spec:
326
- // https://developer.mozilla.org/en-US/docs/Web/API/Screen.orientation
327
- // https://developer.mozilla.org/en-US/docs/Web/API/Screen.lockOrientation
328
- static NSDictionary *deviceOrientationEventBody(UIDeviceOrientation orientation)
329
- {
330
- NSString *name;
331
- NSNumber *degrees = @0;
332
- BOOL isLandscape = NO;
333
- switch (orientation) {
334
- case UIDeviceOrientationPortrait:
335
- name = @"portrait-primary";
336
- break;
337
- case UIDeviceOrientationPortraitUpsideDown:
338
- name = @"portrait-secondary";
339
- degrees = @180;
340
- break;
341
- case UIDeviceOrientationLandscapeRight:
342
- name = @"landscape-primary";
343
- degrees = @-90;
344
- isLandscape = YES;
345
- break;
346
- case UIDeviceOrientationLandscapeLeft:
347
- name = @"landscape-secondary";
348
- degrees = @90;
349
- isLandscape = YES;
350
- break;
351
- case UIDeviceOrientationFaceDown:
352
- case UIDeviceOrientationFaceUp:
353
- case UIDeviceOrientationUnknown:
354
- // Unsupported
355
- return nil;
356
- }
357
- return @{
358
- @"name" : name,
359
- @"rotationDegrees" : degrees,
360
- @"isLandscape" : @(isLandscape),
361
- };
362
- }
363
-
364
- - (void)namedOrientationDidChange
365
- {
366
- NSDictionary *orientationEvent = deviceOrientationEventBody([UIDevice currentDevice].orientation);
367
- if (!orientationEvent) {
368
- return;
369
- }
370
-
371
- #pragma clang diagnostic push
372
- #pragma clang diagnostic ignored "-Wdeprecated-declarations"
373
- [[_moduleRegistry moduleForName:"EventDispatcher"] sendDeviceEventWithName:@"namedOrientationDidChange"
374
- body:orientationEvent];
375
- #pragma clang diagnostic pop
376
- }
377
- #endif
378
-
379
- - (dispatch_queue_t)methodQueue
380
- {
381
- return RCTGetUIManagerQueue();
382
- }
383
-
384
- - (void)registerRootViewTag:(NSNumber *)rootTag
385
- {
386
- RCTAssertUIManagerQueue();
387
-
388
- RCTAssert(RCTIsReactRootView(rootTag), @"Attempt to register rootTag (%@) which is not actually root tag.", rootTag);
389
-
390
- RCTAssert(
391
- ![_rootViewTags containsObject:rootTag],
392
- @"Attempt to register rootTag (%@) which was already registered.",
393
- rootTag);
394
-
395
- [_rootViewTags addObject:rootTag];
396
-
397
- // Registering root shadow view
398
- RCTSurfaceRootShadowView *shadowView = [RCTSurfaceRootShadowView new];
399
- shadowView.reactTag = rootTag;
400
- _shadowViewRegistry[rootTag] = shadowView;
401
-
402
- // Registering root view
403
- RCTExecuteOnMainQueue(^{
404
- RCTSurfaceRootView *rootView = [RCTSurfaceRootView new];
405
- rootView.reactTag = rootTag;
406
- self->_viewRegistry[rootTag] = rootView;
407
- });
408
- }
409
-
410
- - (void)registerRootView:(RCTRootContentView *)rootView
411
- {
412
- RCTAssertMainQueue();
413
-
414
- NSNumber *reactTag = rootView.reactTag;
415
- RCTAssert(RCTIsReactRootView(reactTag), @"View %@ with tag #%@ is not a root view", rootView, reactTag);
416
-
417
- RCTAssert(
418
- _viewRegistry[reactTag] == nil || _viewRegistry[reactTag] == rootView,
419
- @"Expect all root views to have unique tag. Added %@ twice",
420
- reactTag);
421
-
422
- CGSize availableSize = rootView.availableSize;
423
-
424
- // Register view
425
- _viewRegistry[reactTag] = rootView;
426
-
427
- // Register shadow view
428
- RCTExecuteOnUIManagerQueue(^{
429
- if (!self->_viewRegistry) {
430
- return;
431
- }
432
-
433
- RCTRootShadowView *shadowView = [RCTRootShadowView new];
434
- shadowView.availableSize = availableSize;
435
- shadowView.reactTag = reactTag;
436
- shadowView.viewName = NSStringFromClass([rootView class]);
437
- self->_shadowViewRegistry[shadowView.reactTag] = shadowView;
438
- [self->_rootViewTags addObject:reactTag];
439
- });
440
- }
441
-
442
- - (NSString *)viewNameForReactTag:(NSNumber *)reactTag
443
- {
444
- RCTAssertUIManagerQueue();
445
- NSString *name = _shadowViewRegistry[reactTag].viewName;
446
- if (name) {
447
- return name;
448
- }
449
-
450
- __block UIView *view;
451
- RCTUnsafeExecuteOnMainQueueSync(^{
452
- view = self->_viewRegistry[reactTag];
453
- });
454
-
455
- #pragma clang diagnostic push
456
- #pragma clang diagnostic ignored "-Wundeclared-selector"
457
-
458
- if ([view respondsToSelector:@selector(componentViewName_DO_NOT_USE_THIS_IS_BROKEN)]) {
459
- return [view performSelector:@selector(componentViewName_DO_NOT_USE_THIS_IS_BROKEN)];
460
- }
461
-
462
- #pragma clang diagnostic pop
463
- return nil;
464
- }
465
-
466
- - (UIView *)viewForReactTag:(NSNumber *)reactTag
467
- {
468
- RCTAssertMainQueue();
469
- UIView *view = [_bridge.surfacePresenter findComponentViewWithTag_DO_NOT_USE_DEPRECATED:reactTag.integerValue];
470
- if (!view) {
471
- view = _viewRegistry[reactTag];
472
- }
473
- return RCTPaperViewOrCurrentView(view);
474
- }
475
-
476
- - (RCTShadowView *)shadowViewForReactTag:(NSNumber *)reactTag
477
- {
478
- RCTAssertUIManagerQueue();
479
- return _shadowViewRegistry[reactTag];
480
- }
481
-
482
- - (void)_executeBlockWithShadowView:(void (^)(RCTShadowView *shadowView))block forTag:(NSNumber *)tag
483
- {
484
- RCTAssertMainQueue();
485
-
486
- RCTExecuteOnUIManagerQueue(^{
487
- RCTShadowView *shadowView = self->_shadowViewRegistry[tag];
488
-
489
- if (shadowView == nil) {
490
- RCTLogInfo(
491
- @"Could not locate shadow view with tag #%@, this is probably caused by a temporary inconsistency between native views and shadow views.",
492
- tag);
493
- return;
494
- }
495
-
496
- block(shadowView);
497
- });
498
- }
499
-
500
- - (void)setAvailableSize:(CGSize)availableSize forRootView:(UIView *)rootView
501
- {
502
- RCTAssertMainQueue();
503
- [self
504
- _executeBlockWithShadowView:^(RCTShadowView *shadowView) {
505
- RCTAssert(
506
- [shadowView isKindOfClass:[RCTRootShadowView class]], @"Located shadow view is actually not root view.");
507
-
508
- RCTRootShadowView *rootShadowView = (RCTRootShadowView *)shadowView;
509
-
510
- if (CGSizeEqualToSize(availableSize, rootShadowView.availableSize)) {
511
- return;
512
- }
513
-
514
- rootShadowView.availableSize = availableSize;
515
- [self setNeedsLayout];
516
- }
517
- forTag:rootView.reactTag];
518
- }
519
-
520
- - (void)setLocalData:(NSObject *)localData forView:(UIView *)view
521
- {
522
- RCTAssertMainQueue();
523
- [self
524
- _executeBlockWithShadowView:^(RCTShadowView *shadowView) {
525
- shadowView.localData = localData;
526
- [self setNeedsLayout];
527
- }
528
- forTag:view.reactTag];
529
- }
530
-
531
- - (UIView *)viewForNativeID:(NSString *)nativeID withRootTag:(NSNumber *)rootTag
532
- {
533
- if (!nativeID || !rootTag) {
534
- return nil;
535
- }
536
- UIView *view;
537
- @synchronized(self) {
538
- view = [_nativeIDRegistry objectForKey:RCTNativeIDRegistryKey(nativeID, rootTag)];
539
- }
540
- return view;
541
- }
542
-
543
- - (void)setNativeID:(NSString *)nativeID forView:(UIView *)view
544
- {
545
- if (!nativeID || !view) {
546
- return;
547
- }
548
- __weak RCTUIManager *weakSelf = self;
549
- RCTExecuteOnUIManagerQueue(^{
550
- NSNumber *rootTag = [weakSelf shadowViewForReactTag:view.reactTag].rootView.reactTag;
551
- @synchronized(weakSelf) {
552
- [weakSelf.nativeIDRegistry setObject:view forKey:RCTNativeIDRegistryKey(nativeID, rootTag)];
553
- }
554
- });
555
- }
556
-
557
- - (void)setSize:(CGSize)size forView:(UIView *)view
558
- {
559
- RCTAssertMainQueue();
560
- [self
561
- _executeBlockWithShadowView:^(RCTShadowView *shadowView) {
562
- if (CGSizeEqualToSize(size, shadowView.size)) {
563
- return;
564
- }
565
-
566
- shadowView.size = size;
567
- [self setNeedsLayout];
568
- }
569
- forTag:view.reactTag];
570
- }
571
-
572
- - (void)setIntrinsicContentSize:(CGSize)intrinsicContentSize forView:(UIView *)view
573
- {
574
- RCTAssertMainQueue();
575
- [self
576
- _executeBlockWithShadowView:^(RCTShadowView *shadowView) {
577
- if (CGSizeEqualToSize(shadowView.intrinsicContentSize, intrinsicContentSize)) {
578
- return;
579
- }
580
-
581
- shadowView.intrinsicContentSize = intrinsicContentSize;
582
- [self setNeedsLayout];
583
- }
584
- forTag:view.reactTag];
585
- }
586
-
587
- /**
588
- * Unregisters views from registries
589
- */
590
- - (void)_purgeChildren:(NSArray<id<RCTComponent>> *)children
591
- fromRegistry:(NSMutableDictionary<NSNumber *, id<RCTComponent>> *)registry
592
- {
593
- for (id<RCTComponent> child in children) {
594
- RCTTraverseViewNodes(registry[child.reactTag], ^(id<RCTComponent> subview) {
595
- RCTAssert(![subview isReactRootView], @"Root views should not be unregistered");
596
- if ([subview conformsToProtocol:@protocol(RCTInvalidating)]) {
597
- [(id<RCTInvalidating>)subview invalidate];
598
- }
599
- [registry removeObjectForKey:subview.reactTag];
600
- });
601
- }
602
- }
603
-
604
- - (void)addUIBlock:(RCTViewManagerUIBlock)block
605
- {
606
- RCTAssertUIManagerQueue();
607
-
608
- if (!block || !_viewRegistry) {
609
- return;
610
- }
611
-
612
- [_pendingUIBlocks addObject:block];
613
- }
614
-
615
- - (void)prependUIBlock:(RCTViewManagerUIBlock)block
616
- {
617
- RCTAssertUIManagerQueue();
618
-
619
- if (!block || !_viewRegistry) {
620
- return;
621
- }
622
-
623
- [_pendingUIBlocks insertObject:block atIndex:0];
624
- }
625
-
626
- - (void)setNextLayoutAnimationGroup:(RCTLayoutAnimationGroup *)layoutAnimationGroup
627
- {
628
- RCTAssertMainQueue();
629
-
630
- if (_layoutAnimationGroup && ![_layoutAnimationGroup isEqual:layoutAnimationGroup]) {
631
- RCTLogWarn(
632
- @"Warning: Overriding previous layout animation with new one before the first began:\n%@ -> %@.",
633
- [_layoutAnimationGroup description],
634
- [layoutAnimationGroup description]);
635
- }
636
-
637
- _layoutAnimationGroup = layoutAnimationGroup;
638
- }
639
-
640
- - (RCTViewManagerUIBlock)uiBlockWithLayoutUpdateForRootView:(RCTRootShadowView *)rootShadowView
641
- {
642
- RCTAssertUIManagerQueue();
643
-
644
- NSPointerArray *affectedShadowViews = [NSPointerArray weakObjectsPointerArray];
645
- [rootShadowView layoutWithAffectedShadowViews:affectedShadowViews];
646
-
647
- if (!affectedShadowViews.count) {
648
- // no frame change results in no UI update block
649
- return nil;
650
- }
651
-
652
- typedef struct {
653
- CGRect frame;
654
- UIUserInterfaceLayoutDirection layoutDirection;
655
- BOOL isNew;
656
- BOOL parentIsNew;
657
- RCTDisplayType displayType;
658
- } RCTFrameData;
659
-
660
- // Construct arrays then hand off to main thread
661
- NSUInteger count = affectedShadowViews.count;
662
- NSMutableArray *reactTags = [[NSMutableArray alloc] initWithCapacity:count];
663
- NSMutableData *framesData = [[NSMutableData alloc] initWithLength:sizeof(RCTFrameData) * count];
664
- {
665
- NSUInteger index = 0;
666
- RCTFrameData *frameDataArray = (RCTFrameData *)framesData.mutableBytes;
667
- for (RCTShadowView *shadowView in affectedShadowViews) {
668
- reactTags[index] = shadowView.reactTag;
669
- RCTLayoutMetrics layoutMetrics = shadowView.layoutMetrics;
670
- frameDataArray[index++] = (RCTFrameData){layoutMetrics.frame,
671
- layoutMetrics.layoutDirection,
672
- shadowView.isNewView,
673
- shadowView.superview.isNewView,
674
- layoutMetrics.displayType};
675
- }
676
- }
677
-
678
- for (RCTShadowView *shadowView in affectedShadowViews) {
679
- // We have to do this after we build the parentsAreNew array.
680
- shadowView.newView = NO;
681
-
682
- NSNumber *reactTag = shadowView.reactTag;
683
-
684
- if (shadowView.onLayout) {
685
- CGRect frame = shadowView.layoutMetrics.frame;
686
- shadowView.onLayout(@{
687
- @"layout" : @{
688
- @"x" : @(frame.origin.x),
689
- @"y" : @(frame.origin.y),
690
- @"width" : @(frame.size.width),
691
- @"height" : @(frame.size.height),
692
- },
693
- });
694
- }
695
-
696
- if (RCTIsReactRootView(reactTag) && [shadowView isKindOfClass:[RCTRootShadowView class]]) {
697
- CGSize contentSize = shadowView.layoutMetrics.frame.size;
698
-
699
- RCTExecuteOnMainQueue(^{
700
- UIView *view = self->_viewRegistry[reactTag];
701
- RCTAssert(view != nil, @"view (for ID %@) not found", reactTag);
702
-
703
- RCTRootView *rootView = (RCTRootView *)[view superview];
704
- if ([rootView isKindOfClass:[RCTRootView class]]) {
705
- rootView.intrinsicContentSize = contentSize;
706
- }
707
- });
708
- }
709
- }
710
-
711
- // Perform layout (possibly animated)
712
- return ^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
713
- const RCTFrameData *frameDataArray = (const RCTFrameData *)framesData.bytes;
714
- RCTLayoutAnimationGroup *layoutAnimationGroup = uiManager->_layoutAnimationGroup;
715
-
716
- __block NSUInteger completionsCalled = 0;
717
-
718
- NSInteger index = 0;
719
- for (NSNumber *reactTag in reactTags) {
720
- RCTFrameData frameData = frameDataArray[index++];
721
-
722
- UIView *view = viewRegistry[reactTag];
723
- CGRect frame = frameData.frame;
724
-
725
- UIUserInterfaceLayoutDirection layoutDirection = frameData.layoutDirection;
726
- BOOL isNew = frameData.isNew;
727
- RCTLayoutAnimation *updatingLayoutAnimation = isNew ? nil : layoutAnimationGroup.updatingLayoutAnimation;
728
- BOOL shouldAnimateCreation = isNew && !frameData.parentIsNew;
729
- RCTLayoutAnimation *creatingLayoutAnimation =
730
- shouldAnimateCreation ? layoutAnimationGroup.creatingLayoutAnimation : nil;
731
- BOOL isHidden = frameData.displayType == RCTDisplayTypeNone;
732
-
733
- void (^completion)(BOOL) = ^(BOOL finished) {
734
- completionsCalled++;
735
- if (layoutAnimationGroup.callback && completionsCalled == count) {
736
- layoutAnimationGroup.callback(@[ @(finished) ]);
737
-
738
- // It's unsafe to call this callback more than once, so we nil it out here
739
- // to make sure that doesn't happen.
740
- layoutAnimationGroup.callback = nil;
741
- }
742
- };
743
-
744
- if (view.reactLayoutDirection != layoutDirection) {
745
- view.reactLayoutDirection = layoutDirection;
746
- }
747
-
748
- if (view.isHidden != isHidden) {
749
- view.hidden = isHidden;
750
- }
751
-
752
- if (creatingLayoutAnimation) {
753
- // Animate view creation
754
- [view reactSetFrame:frame];
755
-
756
- CATransform3D finalTransform = view.layer.transform;
757
- CGFloat finalOpacity = view.layer.opacity;
758
-
759
- NSString *property = creatingLayoutAnimation.property;
760
- if ([property isEqualToString:@"scaleXY"]) {
761
- view.layer.transform = CATransform3DMakeScale(0, 0, 0);
762
- } else if ([property isEqualToString:@"scaleX"]) {
763
- view.layer.transform = CATransform3DMakeScale(0, 1, 0);
764
- } else if ([property isEqualToString:@"scaleY"]) {
765
- view.layer.transform = CATransform3DMakeScale(1, 0, 0);
766
- } else if ([property isEqualToString:@"opacity"]) {
767
- view.layer.opacity = 0.0;
768
- } else {
769
- RCTLogError(@"Unsupported layout animation createConfig property %@", creatingLayoutAnimation.property);
770
- }
771
-
772
- [creatingLayoutAnimation
773
- performAnimations:^{
774
- if ([property isEqualToString:@"scaleX"] || [property isEqualToString:@"scaleY"] ||
775
- [property isEqualToString:@"scaleXY"]) {
776
- view.layer.transform = finalTransform;
777
- } else if ([property isEqualToString:@"opacity"]) {
778
- view.layer.opacity = finalOpacity;
779
- }
780
- }
781
- withCompletionBlock:completion];
782
-
783
- } else if (updatingLayoutAnimation) {
784
- // Animate view update
785
- [updatingLayoutAnimation
786
- performAnimations:^{
787
- [view reactSetFrame:frame];
788
- }
789
- withCompletionBlock:completion];
790
-
791
- } else {
792
- // Update without animation
793
- [view reactSetFrame:frame];
794
- completion(YES);
795
- }
796
- }
797
-
798
- // Clean up
799
- uiManager->_layoutAnimationGroup = nil;
800
- };
801
- }
802
-
803
- /**
804
- * Disassociates children from container. Doesn't remove from registries.
805
- * TODO: use [NSArray getObjects:buffer] to reuse same fast buffer each time.
806
- *
807
- * @returns Array of removed items.
808
- */
809
- - (NSArray<id<RCTComponent>> *)_childrenToRemoveFromContainer:(id<RCTComponent>)container
810
- atIndices:(NSArray<NSNumber *> *)atIndices
811
- {
812
- // If there are no indices to move or the container has no subviews don't bother
813
- // We support parents with nil subviews so long as they're all nil so this allows for this behavior
814
- if (atIndices.count == 0 || [container reactSubviews].count == 0) {
815
- return nil;
816
- }
817
- // Construction of removed children must be done "up front", before indices are disturbed by removals.
818
- NSMutableArray<id<RCTComponent>> *removedChildren = [NSMutableArray arrayWithCapacity:atIndices.count];
819
- RCTAssert(container != nil, @"container view (for ID %@) not found", container);
820
- for (NSNumber *indexNumber in atIndices) {
821
- NSUInteger index = indexNumber.unsignedIntegerValue;
822
- if (index < [container reactSubviews].count) {
823
- [removedChildren addObject:[container reactSubviews][index]];
824
- }
825
- }
826
- if (removedChildren.count != atIndices.count) {
827
- NSString *message = [NSString stringWithFormat:@"removedChildren count (%tu) was not what we expected (%tu)",
828
- removedChildren.count,
829
- atIndices.count];
830
- RCTFatal(RCTErrorWithMessage(message));
831
- }
832
- return removedChildren;
833
- }
834
-
835
- - (void)_removeChildren:(NSArray<id<RCTComponent>> *)children fromContainer:(id<RCTComponent>)container
836
- {
837
- for (id<RCTComponent> removedChild in children) {
838
- [container removeReactSubview:removedChild];
839
- }
840
- }
841
-
842
- /**
843
- * Remove subviews from their parent with an animation.
844
- */
845
- - (void)_removeChildren:(NSArray<UIView *> *)children
846
- fromContainer:(UIView *)container
847
- withAnimation:(RCTLayoutAnimationGroup *)animation
848
- {
849
- RCTAssertMainQueue();
850
- RCTLayoutAnimation *deletingLayoutAnimation = animation.deletingLayoutAnimation;
851
-
852
- __block NSUInteger completionsCalled = 0;
853
- for (UIView *removedChild in children) {
854
- void (^completion)(BOOL) = ^(BOOL finished) {
855
- completionsCalled++;
856
-
857
- [removedChild removeFromSuperview];
858
-
859
- if (animation.callback && completionsCalled == children.count) {
860
- animation.callback(@[ @(finished) ]);
861
-
862
- // It's unsafe to call this callback more than once, so we nil it out here
863
- // to make sure that doesn't happen.
864
- animation.callback = nil;
865
- }
866
- };
867
-
868
- // Hack: At this moment we have two contradict intents.
869
- // First one: We want to delete the view from view hierarchy.
870
- // Second one: We want to animate this view, which implies the existence of this view in the hierarchy.
871
- // So, we have to remove this view from React's view hierarchy but postpone removing from UIKit's hierarchy.
872
- // Here the problem: the default implementation of `-[UIView removeReactSubview:]` also removes the view from
873
- // UIKit's hierarchy. So, let's temporary restore the view back after removing. To do so, we have to memorize
874
- // original `superview` (which can differ from `container`) and an index of removed view.
875
- UIView *originalSuperview = removedChild.superview;
876
- NSUInteger originalIndex = [originalSuperview.subviews indexOfObjectIdenticalTo:removedChild];
877
- [container removeReactSubview:removedChild];
878
- // Disable user interaction while the view is animating
879
- // since the view is (conceptually) deleted and not supposed to be interactive.
880
- removedChild.userInteractionEnabled = NO;
881
- [originalSuperview insertSubview:removedChild atIndex:originalIndex];
882
-
883
- NSString *property = deletingLayoutAnimation.property;
884
- [deletingLayoutAnimation
885
- performAnimations:^{
886
- if ([property isEqualToString:@"scaleXY"]) {
887
- removedChild.layer.transform = CATransform3DMakeScale(0.001, 0.001, 0.001);
888
- } else if ([property isEqualToString:@"scaleX"]) {
889
- removedChild.layer.transform = CATransform3DMakeScale(0.001, 1, 0.001);
890
- } else if ([property isEqualToString:@"scaleY"]) {
891
- removedChild.layer.transform = CATransform3DMakeScale(1, 0.001, 0.001);
892
- } else if ([property isEqualToString:@"opacity"]) {
893
- removedChild.layer.opacity = 0.0;
894
- } else {
895
- RCTLogError(@"Unsupported layout animation createConfig property %@", deletingLayoutAnimation.property);
896
- }
897
- }
898
- withCompletionBlock:completion];
899
- }
900
- }
901
-
902
- RCT_EXPORT_METHOD(removeRootView : (nonnull NSNumber *)rootReactTag)
903
- {
904
- RCTShadowView *rootShadowView = _shadowViewRegistry[rootReactTag];
905
- RCTAssert(rootShadowView.superview == nil, @"root view cannot have superview (ID %@)", rootReactTag);
906
- [self _purgeChildren:(NSArray<id<RCTComponent>> *)rootShadowView.reactSubviews
907
- fromRegistry:(NSMutableDictionary<NSNumber *, id<RCTComponent>> *)_shadowViewRegistry];
908
- [_shadowViewRegistry removeObjectForKey:rootReactTag];
909
- [_rootViewTags removeObject:rootReactTag];
910
-
911
- [self addUIBlock:^(RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
912
- RCTAssertMainQueue();
913
- UIView *rootView = viewRegistry[rootReactTag];
914
- [uiManager _purgeChildren:(NSArray<id<RCTComponent>> *)rootView.reactSubviews
915
- fromRegistry:(NSMutableDictionary<NSNumber *, id<RCTComponent>> *)viewRegistry];
916
- [(NSMutableDictionary *)viewRegistry removeObjectForKey:rootReactTag];
917
- }];
918
- }
919
-
920
- RCT_EXPORT_METHOD(setChildren : (nonnull NSNumber *)containerTag reactTags : (NSArray<NSNumber *> *)reactTags)
921
- {
922
- RCTSetChildren(containerTag, reactTags, (NSDictionary<NSNumber *, id<RCTComponent>> *)_shadowViewRegistry);
923
-
924
- [self addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
925
- RCTSetChildren(containerTag, reactTags, (NSDictionary<NSNumber *, id<RCTComponent>> *)viewRegistry);
926
- }];
927
-
928
- [self _shadowViewDidReceiveUpdatedChildren:_shadowViewRegistry[containerTag]];
929
- }
930
-
931
- static void RCTSetChildren(
932
- NSNumber *containerTag,
933
- NSArray<NSNumber *> *reactTags,
934
- NSDictionary<NSNumber *, id<RCTComponent>> *registry)
935
- {
936
- id<RCTComponent> container = registry[containerTag];
937
- NSInteger index = 0;
938
- for (NSNumber *reactTag in reactTags) {
939
- id<RCTComponent> view = registry[reactTag];
940
- if (view) {
941
- [container insertReactSubview:view atIndex:index++];
942
- }
943
- }
944
- }
945
-
946
- RCT_EXPORT_METHOD(
947
- manageChildren : (nonnull NSNumber *)containerTag moveFromIndices : (NSArray<NSNumber *> *)
948
- moveFromIndices moveToIndices : (NSArray<NSNumber *> *)moveToIndices addChildReactTags : (NSArray<NSNumber *> *)
949
- addChildReactTags addAtIndices : (NSArray<NSNumber *> *)
950
- addAtIndices removeAtIndices : (NSArray<NSNumber *> *)removeAtIndices)
951
- {
952
- [self _manageChildren:containerTag
953
- moveFromIndices:moveFromIndices
954
- moveToIndices:moveToIndices
955
- addChildReactTags:addChildReactTags
956
- addAtIndices:addAtIndices
957
- removeAtIndices:removeAtIndices
958
- registry:(NSMutableDictionary<NSNumber *, id<RCTComponent>> *)_shadowViewRegistry];
959
-
960
- [self addUIBlock:^(RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
961
- [uiManager _manageChildren:containerTag
962
- moveFromIndices:moveFromIndices
963
- moveToIndices:moveToIndices
964
- addChildReactTags:addChildReactTags
965
- addAtIndices:addAtIndices
966
- removeAtIndices:removeAtIndices
967
- registry:(NSMutableDictionary<NSNumber *, id<RCTComponent>> *)viewRegistry];
968
- }];
969
-
970
- [self _shadowViewDidReceiveUpdatedChildren:_shadowViewRegistry[containerTag]];
971
- }
972
-
973
- - (void)_manageChildren:(NSNumber *)containerTag
974
- moveFromIndices:(NSArray<NSNumber *> *)moveFromIndices
975
- moveToIndices:(NSArray<NSNumber *> *)moveToIndices
976
- addChildReactTags:(NSArray<NSNumber *> *)addChildReactTags
977
- addAtIndices:(NSArray<NSNumber *> *)addAtIndices
978
- removeAtIndices:(NSArray<NSNumber *> *)removeAtIndices
979
- registry:(NSMutableDictionary<NSNumber *, id<RCTComponent>> *)registry
980
- {
981
- id<RCTComponent> container = registry[containerTag];
982
- RCTAssert(
983
- moveFromIndices.count == moveToIndices.count,
984
- @"moveFromIndices had size %tu, moveToIndices had size %tu",
985
- moveFromIndices.count,
986
- moveToIndices.count);
987
- RCTAssert(addChildReactTags.count == addAtIndices.count, @"there should be at least one React child to add");
988
-
989
- // Removes (both permanent and temporary moves) are using "before" indices
990
- NSArray<id<RCTComponent>> *permanentlyRemovedChildren = [self _childrenToRemoveFromContainer:container
991
- atIndices:removeAtIndices];
992
- NSArray<id<RCTComponent>> *temporarilyRemovedChildren = [self _childrenToRemoveFromContainer:container
993
- atIndices:moveFromIndices];
994
-
995
- BOOL isUIViewRegistry = ((id)registry == (id)_viewRegistry);
996
- if (isUIViewRegistry && _layoutAnimationGroup.deletingLayoutAnimation) {
997
- [self _removeChildren:(NSArray<UIView *> *)permanentlyRemovedChildren
998
- fromContainer:(UIView *)container
999
- withAnimation:_layoutAnimationGroup];
1000
- } else {
1001
- [self _removeChildren:permanentlyRemovedChildren fromContainer:container];
1002
- }
1003
-
1004
- [self _removeChildren:temporarilyRemovedChildren fromContainer:container];
1005
- [self _purgeChildren:permanentlyRemovedChildren fromRegistry:registry];
1006
-
1007
- // Figure out what to insert - merge temporary inserts and adds
1008
- NSMutableDictionary *destinationsToChildrenToAdd = [NSMutableDictionary dictionary];
1009
- for (NSInteger index = 0, length = temporarilyRemovedChildren.count; index < length; index++) {
1010
- destinationsToChildrenToAdd[moveToIndices[index]] = temporarilyRemovedChildren[index];
1011
- }
1012
-
1013
- for (NSInteger index = 0, length = addAtIndices.count; index < length; index++) {
1014
- id<RCTComponent> view = registry[addChildReactTags[index]];
1015
- if (view) {
1016
- destinationsToChildrenToAdd[addAtIndices[index]] = view;
1017
- }
1018
- }
1019
-
1020
- NSArray<NSNumber *> *sortedIndices =
1021
- [destinationsToChildrenToAdd.allKeys sortedArrayUsingSelector:@selector(compare:)];
1022
- for (NSNumber *reactIndex in sortedIndices) {
1023
- [container insertReactSubview:destinationsToChildrenToAdd[reactIndex] atIndex:reactIndex.integerValue];
1024
- }
1025
- }
1026
-
1027
- RCT_EXPORT_METHOD(
1028
- createView : (nonnull NSNumber *)reactTag viewName : (NSString *)viewName rootTag : (nonnull NSNumber *)
1029
- rootTag props : (NSDictionary *)props)
1030
- {
1031
- RCTComponentData *componentData = _componentDataByName[viewName];
1032
- if (componentData == nil) {
1033
- RCTLogError(@"No component found for view with name \"%@\"", viewName);
1034
- }
1035
-
1036
- // Register shadow view
1037
- RCTShadowView *shadowView = [componentData createShadowViewWithTag:reactTag];
1038
- if (shadowView) {
1039
- [componentData setProps:props forShadowView:shadowView];
1040
- _shadowViewRegistry[reactTag] = shadowView;
1041
- RCTShadowView *rootView = _shadowViewRegistry[rootTag];
1042
- RCTAssert(
1043
- [rootView isKindOfClass:[RCTRootShadowView class]] || [rootView isKindOfClass:[RCTSurfaceRootShadowView class]],
1044
- @"Given `rootTag` (%@) does not correspond to a valid root shadow view instance.",
1045
- rootTag);
1046
- shadowView.rootView = (RCTRootShadowView *)rootView;
1047
- }
1048
-
1049
- // Dispatch view creation directly to the main thread instead of adding to
1050
- // UIBlocks array. This way, it doesn't get deferred until after layout.
1051
- __block UIView *preliminaryCreatedView = nil;
1052
-
1053
- void (^createViewBlock)(void) = ^{
1054
- // Do nothing on the second run.
1055
- if (preliminaryCreatedView) {
1056
- return;
1057
- }
1058
-
1059
- preliminaryCreatedView = [componentData createViewWithTag:reactTag rootTag:rootTag];
1060
-
1061
- if (preliminaryCreatedView) {
1062
- self->_viewRegistry[reactTag] = preliminaryCreatedView;
1063
- }
1064
- };
1065
-
1066
- // We cannot guarantee that asynchronously scheduled block will be executed
1067
- // *before* a block is added to the regular mounting process (simply because
1068
- // mounting process can be managed externally while the main queue is
1069
- // locked).
1070
- // So, we positively dispatch it asynchronously and double check inside
1071
- // the regular mounting block.
1072
-
1073
- RCTExecuteOnMainQueue(createViewBlock);
1074
-
1075
- [self addUIBlock:^(__unused RCTUIManager *uiManager, __unused NSDictionary<NSNumber *, UIView *> *viewRegistry) {
1076
- createViewBlock();
1077
-
1078
- if (preliminaryCreatedView) {
1079
- [componentData setProps:props forView:preliminaryCreatedView];
1080
- }
1081
- }];
1082
-
1083
- [self _shadowView:shadowView didReceiveUpdatedProps:[props allKeys]];
1084
- }
1085
-
1086
- RCT_EXPORT_METHOD(
1087
- updateView : (nonnull NSNumber *)reactTag viewName : (NSString *)
1088
- viewName // not always reliable, use shadowView.viewName if available
1089
- props : (NSDictionary *)props)
1090
- {
1091
- RCTShadowView *shadowView = _shadowViewRegistry[reactTag];
1092
- RCTComponentData *componentData = _componentDataByName[shadowView.viewName ?: viewName];
1093
- [componentData setProps:props forShadowView:shadowView];
1094
-
1095
- [self addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
1096
- UIView *view = viewRegistry[reactTag];
1097
- [componentData setProps:props forView:view];
1098
- }];
1099
-
1100
- [self _shadowView:shadowView didReceiveUpdatedProps:[props allKeys]];
1101
- }
1102
-
1103
- - (void)synchronouslyUpdateViewOnUIThread:(NSNumber *)reactTag viewName:(NSString *)viewName props:(NSDictionary *)props
1104
- {
1105
- RCTAssertMainQueue();
1106
- RCTComponentData *componentData = _componentDataByName[viewName];
1107
- UIView *view = _viewRegistry[reactTag];
1108
- [componentData setProps:props forView:view];
1109
- }
1110
-
1111
- RCT_EXPORT_METHOD(focus : (nonnull NSNumber *)reactTag)
1112
- {
1113
- [self addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
1114
- UIView *newResponder = viewRegistry[reactTag];
1115
- [newResponder reactFocus];
1116
- }];
1117
- }
1118
-
1119
- RCT_EXPORT_METHOD(blur : (nonnull NSNumber *)reactTag)
1120
- {
1121
- [self addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
1122
- UIView *currentResponder = viewRegistry[reactTag];
1123
- [currentResponder reactBlur];
1124
- }];
1125
- }
1126
-
1127
- RCT_EXPORT_METHOD(
1128
- findSubviewIn : (nonnull NSNumber *)reactTag atPoint : (CGPoint)point callback : (RCTResponseSenderBlock)callback)
1129
- {
1130
- [self addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
1131
- UIView *view = viewRegistry[reactTag];
1132
- UIView *target = [view hitTest:point withEvent:nil];
1133
- CGRect frame = [target convertRect:target.bounds toView:view];
1134
-
1135
- while (target.reactTag == nil && target.superview != nil) {
1136
- target = target.superview;
1137
- }
1138
-
1139
- callback(@[
1140
- RCTNullIfNil(target.reactTag),
1141
- @(frame.origin.x),
1142
- @(frame.origin.y),
1143
- @(frame.size.width),
1144
- @(frame.size.height),
1145
- ]);
1146
- }];
1147
- }
1148
-
1149
- RCT_EXPORT_METHOD(
1150
- dispatchViewManagerCommand : (nonnull NSNumber *)reactTag commandID : (id /*(NSString or NSNumber) */)
1151
- commandID commandArgs : (NSArray<id> *)commandArgs)
1152
- {
1153
- RCTShadowView *shadowView = _shadowViewRegistry[reactTag];
1154
- RCTComponentData *componentData = _componentDataByName[shadowView.viewName];
1155
-
1156
- // Achtung! Achtung!
1157
- // This is a remarkably hacky and ugly workaround.
1158
- // We need this only temporary for some testing. We need this hack until Fabric fully implements command-execution
1159
- // pipeline. This does not affect non-Fabric apps.
1160
- #pragma clang diagnostic push
1161
- #pragma clang diagnostic ignored "-Wundeclared-selector"
1162
- if (!componentData) {
1163
- __block UIView *view;
1164
- RCTUnsafeExecuteOnMainQueueSync(^{
1165
- view = self->_viewRegistry[reactTag];
1166
- });
1167
- if ([view respondsToSelector:@selector(componentViewName_DO_NOT_USE_THIS_IS_BROKEN)]) {
1168
- NSString *name = [view performSelector:@selector(componentViewName_DO_NOT_USE_THIS_IS_BROKEN)];
1169
- componentData = _componentDataByName[[NSString stringWithFormat:@"RCT%@", name]];
1170
- }
1171
- }
1172
- #pragma clang diagnostic pop
1173
-
1174
- Class managerClass = componentData.managerClass;
1175
- RCTModuleData *moduleData = [_bridge moduleDataForName:RCTBridgeModuleNameForClass(managerClass)];
1176
-
1177
- id<RCTBridgeMethod> method;
1178
- if ([commandID isKindOfClass:[NSNumber class]]) {
1179
- method = moduleData.methods[[commandID intValue]];
1180
- } else if ([commandID isKindOfClass:[NSString class]]) {
1181
- method = moduleData.methodsByName[commandID];
1182
- if (method == nil) {
1183
- RCTLogError(@"No command found with name \"%@\"", commandID);
1184
- }
1185
- } else {
1186
- RCTLogError(@"dispatchViewManagerCommand must be called with a string or integer command");
1187
- return;
1188
- }
1189
-
1190
- NSArray *args = [@[ reactTag ] arrayByAddingObjectsFromArray:commandArgs];
1191
- [method invokeWithBridge:_bridge module:componentData.manager arguments:args];
1192
- }
1193
-
1194
- - (void)batchDidComplete
1195
- {
1196
- [self _layoutAndMount];
1197
- }
1198
-
1199
- /**
1200
- * Sets up animations, computes layout, creates UI mounting blocks for computed layout,
1201
- * runs these blocks and all other already existing blocks.
1202
- */
1203
- - (void)_layoutAndMount
1204
- {
1205
- [self _dispatchPropsDidChangeEvents];
1206
- [self _dispatchChildrenDidChangeEvents];
1207
-
1208
- [_observerCoordinator uiManagerWillPerformLayout:self];
1209
-
1210
- // Perform layout
1211
- for (NSNumber *reactTag in _rootViewTags) {
1212
- RCTRootShadowView *rootView = (RCTRootShadowView *)_shadowViewRegistry[reactTag];
1213
- [self addUIBlock:[self uiBlockWithLayoutUpdateForRootView:rootView]];
1214
- }
1215
-
1216
- [_observerCoordinator uiManagerDidPerformLayout:self];
1217
-
1218
- [_observerCoordinator uiManagerWillPerformMounting:self];
1219
-
1220
- [self flushUIBlocksWithCompletion:^{
1221
- [self->_observerCoordinator uiManagerDidPerformMounting:self];
1222
- }];
1223
- }
1224
-
1225
- - (void)flushUIBlocksWithCompletion:(void (^)(void))completion
1226
- {
1227
- RCTAssertUIManagerQueue();
1228
-
1229
- // First copy the previous blocks into a temporary variable, then reset the
1230
- // pending blocks to a new array. This guards against mutation while
1231
- // processing the pending blocks in another thread.
1232
- NSArray<RCTViewManagerUIBlock> *previousPendingUIBlocks = _pendingUIBlocks;
1233
- _pendingUIBlocks = [NSMutableArray new];
1234
-
1235
- if (previousPendingUIBlocks.count == 0) {
1236
- completion();
1237
- return;
1238
- }
1239
-
1240
- __weak __typeof(self) weakSelf = self;
1241
-
1242
- void (^mountingBlock)(void) = ^{
1243
- __typeof(self) strongSelf = weakSelf;
1244
-
1245
- @try {
1246
- for (RCTViewManagerUIBlock block in previousPendingUIBlocks) {
1247
- RCTComposedViewRegistry *composedViewRegistry =
1248
- [[RCTComposedViewRegistry alloc] initWithUIManager:strongSelf andRegistry:strongSelf->_viewRegistry];
1249
- block(strongSelf, composedViewRegistry);
1250
- }
1251
- } @catch (NSException *__unused exception) {
1252
- RCTLogError(@"Exception thrown while executing UI block: %@", exception);
1253
- }
1254
- };
1255
-
1256
- if ([self.observerCoordinator uiManager:self performMountingWithBlock:mountingBlock]) {
1257
- completion();
1258
- return;
1259
- }
1260
-
1261
- // Execute the previously queued UI blocks
1262
- RCTProfileBeginFlowEvent();
1263
- RCTExecuteOnMainQueue(^{
1264
- RCTProfileEndFlowEvent();
1265
- RCT_PROFILE_BEGIN_EVENT(RCTProfileTagAlways, @"-[UIManager flushUIBlocks]", (@{
1266
- @"count" : [@(previousPendingUIBlocks.count) stringValue],
1267
- }));
1268
-
1269
- mountingBlock();
1270
-
1271
- RCT_PROFILE_END_EVENT(RCTProfileTagAlways, @"");
1272
-
1273
- RCTExecuteOnUIManagerQueue(completion);
1274
- });
1275
- }
1276
-
1277
- - (void)setNeedsLayout
1278
- {
1279
- // If there is an active batch layout will happen when batch finished, so we will wait for that.
1280
- // Otherwise we immediately trigger layout.
1281
- if (![_bridge isBatchActive] && ![_bridge isLoading]) {
1282
- [self _layoutAndMount];
1283
- }
1284
- }
1285
-
1286
- - (void)_shadowView:(RCTShadowView *)shadowView didReceiveUpdatedProps:(NSArray<NSString *> *)props
1287
- {
1288
- // We collect a set with changed `shadowViews` and its changed props,
1289
- // so we have to maintain this collection properly.
1290
- NSArray<NSString *> *previousProps;
1291
- if ((previousProps = [_shadowViewsWithUpdatedProps objectForKey:shadowView])) {
1292
- // Merging already registered changed props and new ones.
1293
- NSMutableSet *set = [NSMutableSet setWithArray:previousProps];
1294
- [set addObjectsFromArray:props];
1295
- props = [set allObjects];
1296
- }
1297
-
1298
- [_shadowViewsWithUpdatedProps setObject:props forKey:shadowView];
1299
- }
1300
-
1301
- - (void)_shadowViewDidReceiveUpdatedChildren:(RCTShadowView *)shadowView
1302
- {
1303
- [_shadowViewsWithUpdatedChildren addObject:shadowView];
1304
- }
1305
-
1306
- - (void)_dispatchChildrenDidChangeEvents
1307
- {
1308
- if (_shadowViewsWithUpdatedChildren.count == 0) {
1309
- return;
1310
- }
1311
-
1312
- NSHashTable<RCTShadowView *> *shadowViews = _shadowViewsWithUpdatedChildren;
1313
- _shadowViewsWithUpdatedChildren = [NSHashTable weakObjectsHashTable];
1314
-
1315
- NSMutableArray *tags = [NSMutableArray arrayWithCapacity:shadowViews.count];
1316
-
1317
- for (RCTShadowView *shadowView in shadowViews) {
1318
- [shadowView didUpdateReactSubviews];
1319
- [tags addObject:shadowView.reactTag];
1320
- }
1321
-
1322
- [self addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
1323
- for (NSNumber *tag in tags) {
1324
- UIView<RCTComponent> *view = viewRegistry[tag];
1325
- [view didUpdateReactSubviews];
1326
- }
1327
- }];
1328
- }
1329
-
1330
- - (void)_dispatchPropsDidChangeEvents
1331
- {
1332
- if (_shadowViewsWithUpdatedProps.count == 0) {
1333
- return;
1334
- }
1335
-
1336
- NSMapTable<RCTShadowView *, NSArray<NSString *> *> *shadowViews = _shadowViewsWithUpdatedProps;
1337
- _shadowViewsWithUpdatedProps = [NSMapTable weakToStrongObjectsMapTable];
1338
-
1339
- NSMapTable<NSNumber *, NSArray<NSString *> *> *tags = [NSMapTable strongToStrongObjectsMapTable];
1340
-
1341
- for (RCTShadowView *shadowView in shadowViews) {
1342
- NSArray<NSString *> *props = [shadowViews objectForKey:shadowView];
1343
- [shadowView didSetProps:props];
1344
- [tags setObject:props forKey:shadowView.reactTag];
1345
- }
1346
-
1347
- [self addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
1348
- for (NSNumber *tag in tags) {
1349
- UIView<RCTComponent> *view = viewRegistry[tag];
1350
- [view didSetProps:[tags objectForKey:tag]];
1351
- }
1352
- }];
1353
- }
1354
-
1355
- RCT_EXPORT_METHOD(measure : (nonnull NSNumber *)reactTag callback : (RCTResponseSenderBlock)callback)
1356
- {
1357
- [self addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
1358
- UIView *view = viewRegistry[reactTag];
1359
- if (!view) {
1360
- // this view was probably collapsed out
1361
- RCTLogWarn(@"measure cannot find view with tag #%@", reactTag);
1362
- callback(@[]);
1363
- return;
1364
- }
1365
-
1366
- // If in a <Modal>, rootView will be the root of the modal container.
1367
- UIView *rootView = view;
1368
- while (rootView.superview && ![rootView isReactRootView]) {
1369
- rootView = rootView.superview;
1370
- }
1371
-
1372
- // By convention, all coordinates, whether they be touch coordinates, or
1373
- // measurement coordinates are with respect to the root view.
1374
- CGRect frame = view.frame;
1375
- CGRect globalBounds = [view convertRect:view.bounds toView:rootView];
1376
-
1377
- callback(@[
1378
- @(frame.origin.x),
1379
- @(frame.origin.y),
1380
- @(globalBounds.size.width),
1381
- @(globalBounds.size.height),
1382
- @(globalBounds.origin.x),
1383
- @(globalBounds.origin.y),
1384
- ]);
1385
- }];
1386
- }
1387
-
1388
- RCT_EXPORT_METHOD(measureInWindow : (nonnull NSNumber *)reactTag callback : (RCTResponseSenderBlock)callback)
1389
- {
1390
- [self addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
1391
- UIView *view = viewRegistry[reactTag];
1392
- if (!view) {
1393
- // this view was probably collapsed out
1394
- RCTLogWarn(@"measure cannot find view with tag #%@", reactTag);
1395
- callback(@[]);
1396
- return;
1397
- }
1398
-
1399
- // Return frame coordinates in window
1400
- CGRect windowFrame = [view.window convertRect:view.frame fromView:view.superview];
1401
- callback(@[
1402
- @(windowFrame.origin.x),
1403
- @(windowFrame.origin.y),
1404
- @(windowFrame.size.width),
1405
- @(windowFrame.size.height),
1406
- ]);
1407
- }];
1408
- }
1409
-
1410
- /**
1411
- * Returns if the shadow view provided has the `ancestor` shadow view as
1412
- * an actual ancestor.
1413
- */
1414
- RCT_EXPORT_METHOD(
1415
- viewIsDescendantOf : (nonnull NSNumber *)reactTag ancestor : (nonnull NSNumber *)
1416
- ancestorReactTag callback : (RCTResponseSenderBlock)callback)
1417
- {
1418
- RCTShadowView *shadowView = _shadowViewRegistry[reactTag];
1419
- RCTShadowView *ancestorShadowView = _shadowViewRegistry[ancestorReactTag];
1420
- if (!shadowView) {
1421
- return;
1422
- }
1423
- if (!ancestorShadowView) {
1424
- return;
1425
- }
1426
- BOOL viewIsAncestor = [shadowView viewIsDescendantOf:ancestorShadowView];
1427
- callback(@[ @(viewIsAncestor) ]);
1428
- }
1429
-
1430
- static void RCTMeasureLayout(RCTShadowView *view, RCTShadowView *ancestor, RCTResponseSenderBlock callback)
1431
- {
1432
- if (!view) {
1433
- return;
1434
- }
1435
- if (!ancestor) {
1436
- return;
1437
- }
1438
- CGRect result = [view measureLayoutRelativeToAncestor:ancestor];
1439
- if (CGRectIsNull(result)) {
1440
- RCTLogError(
1441
- @"view %@ (tag #%@) is not a descendant of %@ (tag #%@)", view, view.reactTag, ancestor, ancestor.reactTag);
1442
- return;
1443
- }
1444
- CGFloat leftOffset = result.origin.x;
1445
- CGFloat topOffset = result.origin.y;
1446
- CGFloat width = result.size.width;
1447
- CGFloat height = result.size.height;
1448
- if (isnan(leftOffset) || isnan(topOffset) || isnan(width) || isnan(height)) {
1449
- RCTLogError(@"Attempted to measure layout but offset or dimensions were NaN");
1450
- return;
1451
- }
1452
- callback(@[ @(leftOffset), @(topOffset), @(width), @(height) ]);
1453
- }
1454
-
1455
- /**
1456
- * Returns the computed recursive offset layout in a dictionary form. The
1457
- * returned values are relative to the `ancestor` shadow view. Returns `nil`, if
1458
- * the `ancestor` shadow view is not actually an `ancestor`. Does not touch
1459
- * anything on the main UI thread. Invokes supplied callback with (x, y, width,
1460
- * height).
1461
- */
1462
- RCT_EXPORT_METHOD(
1463
- measureLayout : (nonnull NSNumber *)reactTag relativeTo : (nonnull NSNumber *)ancestorReactTag errorCallback : (
1464
- __unused RCTResponseSenderBlock)errorCallback callback : (RCTResponseSenderBlock)callback)
1465
- {
1466
- RCTShadowView *shadowView = _shadowViewRegistry[reactTag];
1467
- RCTShadowView *ancestorShadowView = _shadowViewRegistry[ancestorReactTag];
1468
- RCTMeasureLayout(shadowView, ancestorShadowView, callback);
1469
- }
1470
-
1471
- /**
1472
- * JS sets what *it* considers to be the responder. Later, scroll views can use
1473
- * this in order to determine if scrolling is appropriate.
1474
- */
1475
- RCT_EXPORT_METHOD(
1476
- setJSResponder : (nonnull NSNumber *)reactTag blockNativeResponder : (__unused BOOL)blockNativeResponder)
1477
- {
1478
- [self addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
1479
- _jsResponder = viewRegistry[reactTag];
1480
- // Fabric view's are not stored in viewRegistry. We avoid logging a warning in that case.
1481
- if (!_jsResponder && !RCTUIManagerTypeForTagIsFabric(reactTag)) {
1482
- RCTLogWarn(@"Invalid view set to be the JS responder - tag %@", reactTag);
1483
- }
1484
- }];
1485
- }
1486
-
1487
- RCT_EXPORT_METHOD(clearJSResponder)
1488
- {
1489
- [self addUIBlock:^(__unused RCTUIManager *uiManager, __unused NSDictionary<NSNumber *, UIView *> *viewRegistry) {
1490
- _jsResponder = nil;
1491
- }];
1492
- }
1493
-
1494
- static NSMutableDictionary<NSString *, id> *moduleConstantsForComponentData(
1495
- NSMutableDictionary<NSString *, NSDictionary *> *directEvents,
1496
- NSMutableDictionary<NSString *, NSDictionary *> *bubblingEvents,
1497
- RCTComponentData *componentData)
1498
- {
1499
- return RCTModuleConstantsForDestructuredComponent(
1500
- directEvents, bubblingEvents, componentData.managerClass, componentData.name, componentData.viewConfig);
1501
- }
1502
-
1503
- - (NSDictionary<NSString *, id> *)constantsToExport
1504
- {
1505
- return [self getConstants];
1506
- }
1507
-
1508
- - (NSDictionary<NSString *, id> *)getConstants
1509
- {
1510
- NSMutableDictionary<NSString *, NSDictionary *> *constants = [NSMutableDictionary new];
1511
- NSMutableDictionary<NSString *, NSDictionary *> *directEvents = [NSMutableDictionary new];
1512
- NSMutableDictionary<NSString *, NSDictionary *> *bubblingEvents = [NSMutableDictionary new];
1513
-
1514
- [_componentDataByName
1515
- enumerateKeysAndObjectsUsingBlock:^(NSString *name, RCTComponentData *componentData, __unused BOOL *stop) {
1516
- RCTAssert(!constants[name], @"UIManager already has constants for %@", componentData.name);
1517
- NSMutableDictionary<NSString *, id> *moduleConstants =
1518
- moduleConstantsForComponentData(directEvents, bubblingEvents, componentData);
1519
- constants[name] = moduleConstants;
1520
- }];
1521
-
1522
- return constants;
1523
- }
1524
-
1525
- RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(lazilyLoadView : (NSString *)name)
1526
- {
1527
- if (_componentDataByName[name]) {
1528
- return @{};
1529
- }
1530
-
1531
- id<RCTBridgeDelegate> delegate = self.bridge.delegate;
1532
- if (![delegate respondsToSelector:@selector(bridge:didNotFindModule:)]) {
1533
- return @{};
1534
- }
1535
-
1536
- NSString *moduleName = name;
1537
- BOOL result = [delegate bridge:self.bridge didNotFindModule:moduleName];
1538
- if (!result) {
1539
- moduleName = [name stringByAppendingString:@"Manager"];
1540
- result = [delegate bridge:self.bridge didNotFindModule:moduleName];
1541
- }
1542
- if (!result) {
1543
- return @{};
1544
- }
1545
-
1546
- id module = [self.bridge moduleForName:moduleName lazilyLoadIfNecessary:RCTTurboModuleEnabled()];
1547
- if (module == nil) {
1548
- // There is all sorts of code in this codebase that drops prefixes.
1549
- //
1550
- // If we didn't find a module, it's possible because it's stored under a key
1551
- // which had RCT Prefixes stripped. Lets check one more time...
1552
- module = [self.bridge moduleForName:RCTDropReactPrefixes(moduleName) lazilyLoadIfNecessary:RCTTurboModuleEnabled()];
1553
- }
1554
-
1555
- if (!module) {
1556
- return @{};
1557
- }
1558
-
1559
- RCTComponentData *componentData = [[RCTComponentData alloc] initWithManagerClass:[module class]
1560
- bridge:self.bridge
1561
- eventDispatcher:self.bridge.eventDispatcher];
1562
- _componentDataByName[componentData.name] = componentData;
1563
- NSMutableDictionary *directEvents = [NSMutableDictionary new];
1564
- NSMutableDictionary *bubblingEvents = [NSMutableDictionary new];
1565
- NSMutableDictionary<NSString *, id> *moduleConstants =
1566
- moduleConstantsForComponentData(directEvents, bubblingEvents, componentData);
1567
- return @{
1568
- @"viewConfig" : moduleConstants,
1569
- };
1570
- }
1571
-
1572
- RCT_EXPORT_METHOD(
1573
- configureNextLayoutAnimation : (NSDictionary *)config withCallback : (RCTResponseSenderBlock)
1574
- callback errorCallback : (__unused RCTResponseSenderBlock)errorCallback)
1575
- {
1576
- RCTLayoutAnimationGroup *layoutAnimationGroup = [[RCTLayoutAnimationGroup alloc] initWithConfig:config
1577
- callback:callback];
1578
-
1579
- [self addUIBlock:^(RCTUIManager *uiManager, __unused NSDictionary<NSNumber *, UIView *> *viewRegistry) {
1580
- [uiManager setNextLayoutAnimationGroup:layoutAnimationGroup];
1581
- }];
1582
- }
1583
-
1584
- - (void)rootViewForReactTag:(NSNumber *)reactTag withCompletion:(void (^)(UIView *view))completion
1585
- {
1586
- RCTAssertMainQueue();
1587
- RCTAssert(completion != nil, @"Attempted to resolve rootView for tag %@ without a completion block", reactTag);
1588
-
1589
- if (reactTag == nil) {
1590
- completion(nil);
1591
- return;
1592
- }
1593
-
1594
- RCTExecuteOnUIManagerQueue(^{
1595
- NSNumber *rootTag = [self shadowViewForReactTag:reactTag].rootView.reactTag;
1596
- RCTExecuteOnMainQueue(^{
1597
- UIView *rootView = nil;
1598
- if (rootTag != nil) {
1599
- rootView = [self viewForReactTag:rootTag];
1600
- }
1601
- completion(rootView);
1602
- });
1603
- });
1604
- }
1605
-
1606
- static UIView *_jsResponder;
1607
-
1608
- + (UIView *)JSResponder
1609
- {
1610
- return _jsResponder;
1611
- }
1612
-
1613
- - (void)removeViewFromRegistry:(NSNumber *)reactTag
1614
- {
1615
- [_viewRegistry removeObjectForKey:reactTag];
1616
- }
1617
-
1618
- @end
1619
-
1620
- @implementation RCTBridge (RCTUIManager)
1621
-
1622
- - (RCTUIManager *)uiManager
1623
- {
1624
- return [self moduleForClass:[RCTUIManager class]];
1625
- }
1626
-
1627
- @end
1628
-
1629
- #else // RCT_REMOVE_LEGACY_ARCH
1630
-
1631
132
  @implementation RCTUIManager
1632
133
  - (void)registerRootViewTag:(NSNumber *)rootTag
1633
134
  {
@@ -1730,8 +231,6 @@ static UIView *_jsResponder;
1730
231
 
1731
232
  @end
1732
233
 
1733
- #endif // RCT_REMOVE_LEGACY_ARCH
1734
-
1735
234
  UIView *RCTPaperViewOrCurrentView(UIView *view)
1736
235
  {
1737
236
  if ([view respondsToSelector:@selector(paperView)]) {