react-native-tvos 0.84.0-0rc5 → 0.85.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (877) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
  2. package/Libraries/Animated/Animated.d.ts +8 -1
  3. package/Libraries/Animated/AnimatedEvent.js +4 -4
  4. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  5. package/Libraries/Animated/animations/Animation.js +3 -3
  6. package/Libraries/Animated/animations/DecayAnimation.js +4 -4
  7. package/Libraries/Animated/animations/SpringAnimation.js +5 -5
  8. package/Libraries/Animated/animations/TimingAnimation.js +5 -5
  9. package/Libraries/Animated/createAnimatedComponent.js +7 -7
  10. package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
  11. package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
  12. package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
  13. package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
  14. package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
  15. package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
  16. package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
  17. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  18. package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
  19. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  20. package/{jest/mocks/Vibration.js → Libraries/Animated/useAnimatedColor.d.ts} +5 -6
  21. package/Libraries/Animated/useAnimatedColor.js +25 -0
  22. package/{jest/mocks/Clipboard.js → Libraries/Animated/useAnimatedValueXY.d.ts} +5 -6
  23. package/Libraries/Animated/useAnimatedValueXY.js +26 -0
  24. package/Libraries/AppDelegate/RCTAppDelegate.mm +0 -8
  25. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +1 -3
  26. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +1 -0
  27. package/Libraries/AppDelegate/RCTRootViewFactory.mm +2 -6
  28. package/Libraries/AppState/AppState.js +1 -1
  29. package/Libraries/BatchedBridge/MessageQueue.js +3 -3
  30. package/Libraries/BatchedBridge/NativeModules.js +12 -10
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
  32. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
  33. package/Libraries/Components/Button.js +2 -2
  34. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
  35. package/Libraries/Components/Keyboard/Keyboard.js +6 -6
  36. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
  37. package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
  38. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
  39. package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
  40. package/Libraries/Components/Pressable/Pressable.js +3 -3
  41. package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
  42. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  43. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
  44. package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
  45. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +10 -12
  46. package/Libraries/Components/ScrollView/ScrollView.d.ts +18 -1
  47. package/Libraries/Components/ScrollView/ScrollView.js +33 -10
  48. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +12 -18
  49. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +7 -4
  50. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  51. package/Libraries/Components/StaticRenderer.js +1 -1
  52. package/Libraries/Components/StatusBar/StatusBar.js +8 -8
  53. package/Libraries/Components/Switch/Switch.js +3 -3
  54. package/Libraries/Components/TV/TVViewPropTypes.js +7 -0
  55. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
  56. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  57. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
  58. package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
  59. package/Libraries/Components/TextInput/TextInput.js +8 -4
  60. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  61. package/Libraries/Components/Touchable/Touchable.js +2 -2
  62. package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
  63. package/Libraries/Components/Touchable/TouchableHighlight.js +6 -6
  64. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
  65. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -3
  66. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
  67. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  68. package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
  69. package/Libraries/Components/View/View.js +6 -0
  70. package/Libraries/Components/View/ViewAccessibility.js +7 -7
  71. package/Libraries/Components/View/ViewPropTypes.js +15 -15
  72. package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
  73. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  74. package/Libraries/Core/ExceptionsManager.js +2 -2
  75. package/Libraries/Core/ExtendedError.js +3 -3
  76. package/Libraries/Core/RawEventEmitter.js +1 -1
  77. package/Libraries/Core/ReactNativeVersion.js +2 -2
  78. package/Libraries/Core/Timers/JSTimers.js +3 -2
  79. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  80. package/Libraries/Core/setUpErrorHandling.js +4 -2
  81. package/Libraries/Core/setUpReactDevTools.js +23 -6
  82. package/Libraries/Core/setUpSegmentFetcher.js +1 -1
  83. package/Libraries/Debugging/DebuggingOverlay.js +2 -2
  84. package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
  85. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
  86. package/Libraries/FBLazyVector/FBLazyVector/FBLazyIterator.h +0 -6
  87. package/Libraries/Image/AssetSourceResolver.js +1 -1
  88. package/Libraries/Image/Image.android.js +172 -306
  89. package/Libraries/Image/ImageProps.js +9 -11
  90. package/Libraries/Image/ImageSource.js +2 -2
  91. package/Libraries/Image/ImageSourceUtils.js +8 -4
  92. package/Libraries/Image/ImageTypes.flow.js +2 -2
  93. package/Libraries/Image/ImageViewNativeComponent.js +7 -16
  94. package/Libraries/Image/RCTImageUtils.mm +37 -1
  95. package/Libraries/Image/nativeImageSource.js +1 -1
  96. package/Libraries/Interaction/InteractionManager.js +5 -4
  97. package/Libraries/Interaction/PanResponder.js +1 -1
  98. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  99. package/Libraries/Linking/Linking.js +1 -1
  100. package/Libraries/Lists/FlatList.js +3 -3
  101. package/Libraries/Lists/SectionList.js +1 -1
  102. package/Libraries/Lists/SectionListModern.js +2 -2
  103. package/Libraries/LogBox/Data/LogBoxData.js +38 -24
  104. package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
  105. package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
  106. package/Libraries/LogBox/LogBox.js +42 -19
  107. package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
  108. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  109. package/Libraries/LogBox/UI/LogBoxButton.js +28 -30
  110. package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
  111. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
  112. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
  113. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
  114. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  115. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
  116. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
  117. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
  118. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
  119. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
  120. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
  121. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
  122. package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
  123. package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
  124. package/Libraries/Modal/Modal.js +3 -3
  125. package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
  126. package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
  127. package/Libraries/NativeComponent/TVViewConfig.js +1 -0
  128. package/Libraries/Network/RCTHTTPRequestHandler.h +9 -0
  129. package/Libraries/Network/RCTHTTPRequestHandler.mm +15 -1
  130. package/Libraries/Network/RCTNetworking.android.js +1 -1
  131. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  132. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  133. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
  134. package/Libraries/Network/XMLHttpRequest.js +1 -1
  135. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  136. package/Libraries/Pressability/Pressability.js +12 -5
  137. package/Libraries/Pressability/PressabilityDebug.js +1 -1
  138. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  139. package/Libraries/Pressability/usePressability.js +3 -14
  140. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
  141. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +11 -21
  142. package/Libraries/ReactNative/AppContainer-dev.js +18 -1
  143. package/Libraries/ReactNative/AppContainer.js +1 -1
  144. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  145. package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
  146. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  147. package/Libraries/ReactNative/RendererImplementation.js +4 -4
  148. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  149. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
  150. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
  151. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
  152. package/Libraries/Renderer/shims/ReactFabric.js +1 -3
  153. package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
  154. package/Libraries/Renderer/shims/ReactNative.js +3 -2
  155. package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
  156. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
  157. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
  158. package/Libraries/StyleSheet/PointPropType.js +1 -1
  159. package/Libraries/StyleSheet/Rect.js +1 -1
  160. package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
  161. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  162. package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
  163. package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
  164. package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
  165. package/Libraries/StyleSheet/StyleSheetTypes.js +33 -36
  166. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
  167. package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
  168. package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
  169. package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
  170. package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
  171. package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
  172. package/Libraries/StyleSheet/processBoxShadow.js +44 -4
  173. package/Libraries/StyleSheet/processColorArray.js +2 -2
  174. package/Libraries/StyleSheet/processFilter.js +2 -2
  175. package/Libraries/Text/Text/RCTDynamicTypeRamp.mm +5 -4
  176. package/Libraries/Text/Text.js +295 -627
  177. package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +7 -1
  178. package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm +14 -12
  179. package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +1 -1
  180. package/Libraries/Text/TextNativeComponent.js +14 -7
  181. package/Libraries/Text/TextProps.js +4 -4
  182. package/Libraries/Types/CodegenTypes.js +1 -1
  183. package/Libraries/Types/CoreEventTypes.js +21 -21
  184. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  185. package/Libraries/Utilities/Appearance.js +6 -1
  186. package/Libraries/Utilities/Dimensions.js +1 -1
  187. package/Libraries/Utilities/HMRClient.js +4 -4
  188. package/Libraries/Utilities/IPerformanceLogger.js +4 -4
  189. package/Libraries/Utilities/codegenNativeCommands.js +4 -4
  190. package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
  191. package/Libraries/Utilities/codegenNativeComponent.js +2 -2
  192. package/Libraries/Utilities/logError.js +1 -1
  193. package/Libraries/Utilities/stringifySafe.js +3 -3
  194. package/Libraries/Utilities/useMergeRefs.js +2 -2
  195. package/Libraries/WebSocket/RCTReconnectingWebSocket.m +4 -1
  196. package/Libraries/vendor/core/ErrorUtils.js +4 -4
  197. package/Libraries/vendor/emitter/EventEmitter.js +16 -20
  198. package/README.md +68 -54
  199. package/React/Base/RCTBridge.mm +1 -1
  200. package/React/Base/RCTBundleURLProvider.mm +29 -8
  201. package/React/Base/RCTConvert.mm +3 -18
  202. package/React/Base/RCTDefines.h +7 -8
  203. package/React/Base/RCTDevSupportHttpHeaders.h +24 -0
  204. package/React/Base/RCTDevSupportHttpHeaders.m +65 -0
  205. package/React/Base/RCTJavaScriptLoader.h +1 -0
  206. package/React/Base/RCTJavaScriptLoader.mm +6 -2
  207. package/React/Base/RCTMultipartDataTask.h +9 -0
  208. package/React/Base/RCTMultipartDataTask.m +19 -1
  209. package/React/Base/RCTTVColorSupport.h +17 -0
  210. package/React/Base/RCTTVColorSupport.mm +23 -0
  211. package/React/Base/RCTUtils.mm +15 -6
  212. package/React/Base/RCTVersion.m +2 -2
  213. package/React/CoreModules/RCTActionSheetManager.mm +28 -3
  214. package/React/CoreModules/RCTClipboard.mm +5 -5
  215. package/React/CoreModules/RCTDevLoadingView.mm +1 -1
  216. package/React/CoreModules/RCTDevSettings.mm +8 -0
  217. package/React/CoreModules/RCTDeviceInfo.mm +4 -3
  218. package/React/CoreModules/RCTKeyboardObserver.mm +9 -2
  219. package/React/CoreModules/RCTLogBoxView.mm +4 -8
  220. package/React/CoreModules/RCTPerfMonitor.mm +5 -0
  221. package/React/CoreModules/RCTStatusBarManager.h +2 -0
  222. package/React/CoreModules/RCTWebSocketModule.h +6 -0
  223. package/React/CoreModules/RCTWebSocketModule.mm +14 -1
  224. package/React/DevSupport/RCTInspectorDevServerHelper.mm +33 -22
  225. package/React/DevSupport/RCTInspectorNetworkHelper.mm +2 -0
  226. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +66 -79
  227. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.cpp +8 -8
  228. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h +1 -1
  229. package/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm +2 -2
  230. package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryComponentView.mm +4 -0
  231. package/React/Fabric/Mounting/ComponentViews/Modal/RCTFabricModalHostViewController.mm +6 -0
  232. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +8 -4
  233. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.h +2 -0
  234. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +81 -0
  235. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +16 -4
  236. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +157 -8
  237. package/React/Fabric/Mounting/ComponentViews/Switch/RCTSwitchComponentView.mm +10 -5
  238. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +13 -0
  239. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +9 -13
  240. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.h +2 -0
  241. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +2 -0
  242. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +2 -0
  243. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +56 -8
  244. package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.h +2 -1
  245. package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.mm +92 -163
  246. package/React/Fabric/Mounting/RCTMountingManager.mm +8 -3
  247. package/React/Fabric/RCTScheduler.h +2 -0
  248. package/React/Fabric/RCTScheduler.mm +57 -0
  249. package/React/Fabric/RCTSurfacePointerHandler.mm +15 -9
  250. package/React/Fabric/RCTSurfacePresenter.mm +9 -0
  251. package/React/Fabric/RCTSurfaceTouchHandler.mm +4 -2
  252. package/React/Fabric/Surface/RCTFabricSurface.mm +4 -0
  253. package/React/Fabric/Utils/RCTLinearGradient.mm +4 -9
  254. package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +5 -1
  255. package/React/Modules/RCTLayoutAnimation.m +10 -0
  256. package/React/Modules/RCTUIManager.mm +2 -4
  257. package/React/Profiler/RCTProfile.m +2 -0
  258. package/React/React-RCTFabric.podspec +3 -0
  259. package/React/Views/RCTView.m +6 -1
  260. package/React/Views/ScrollView/RCTScrollViewManager.m +1 -0
  261. package/React-Core-prebuilt.podspec +1 -1
  262. package/ReactAndroid/api/ReactAndroid.api +120 -298
  263. package/ReactAndroid/build.gradle.kts +9 -0
  264. package/ReactAndroid/gradle.properties +1 -1
  265. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +11 -101
  266. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.kt +2 -2
  267. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +10 -10
  268. package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimationDriver.kt +1 -3
  269. package/ReactAndroid/src/main/java/com/facebook/react/animated/ColorAnimatedNode.kt +11 -11
  270. package/ReactAndroid/src/main/java/com/facebook/react/animated/DiffClampAnimatedNode.kt +11 -11
  271. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +0 -26
  272. package/ReactAndroid/src/main/java/com/facebook/react/animated/InterpolationAnimatedNode.kt +12 -0
  273. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.kt +11 -1
  274. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.kt +5 -5
  275. package/ReactAndroid/src/main/java/com/facebook/react/animated/PropsAnimatedNode.kt +5 -5
  276. package/ReactAndroid/src/main/java/com/facebook/react/animated/SpringAnimation.kt +19 -19
  277. package/ReactAndroid/src/main/java/com/facebook/react/animated/TrackingAnimatedNode.kt +5 -1
  278. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromArray.kt +9 -4
  279. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +15 -15
  280. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaOnlyMap.kt +8 -6
  281. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.kt +3 -1
  282. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +10 -0
  283. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ScrollEndedListener.kt +70 -0
  284. package/ReactAndroid/src/main/java/com/facebook/react/common/assets/ReactFontManager.kt +4 -0
  285. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBuffer.kt +4 -4
  286. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +36 -34
  287. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BundleDownloader.kt +14 -9
  288. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +2 -8
  289. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.kt +3 -2
  290. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.kt +17 -13
  291. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +5 -5
  292. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.kt +10 -19
  293. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxContentView.kt +2 -2
  294. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/DevSupportHttpClient.kt +74 -0
  295. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt +2 -3
  296. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +110 -80
  297. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt +1 -12
  298. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevBundleDownloadListener.kt +1 -1
  299. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevLoadingViewManager.kt +1 -1
  300. package/ReactAndroid/src/main/java/com/facebook/react/fabric/AnimationBackendChoreographer.kt +87 -0
  301. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +36 -7
  302. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +16 -2
  303. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.kt +3 -0
  304. package/ReactAndroid/src/main/java/com/facebook/react/fabric/LongStreamingStats.kt +2 -2
  305. package/ReactAndroid/src/main/java/com/facebook/react/fabric/SurfaceHandlerBinding.kt +6 -6
  306. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventBeatManager.kt +2 -2
  307. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +0 -29
  308. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.kt +2 -8
  309. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt +1258 -0
  310. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/FabricNameComponentMapping.kt +1 -0
  311. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.kt +2 -2
  312. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/MountItemFactory.kt +1 -1
  313. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.kt +1 -1
  314. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +37 -55
  315. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +66 -96
  316. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +14 -20
  317. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +15 -21
  318. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +74 -107
  319. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +5 -1
  320. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +14 -20
  321. package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +1 -15
  322. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.kt +2 -2
  323. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.kt +4 -10
  324. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobModule.kt +1 -1
  325. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt +4 -2
  326. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.kt +4 -1
  327. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +45 -74
  328. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +17 -13
  329. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ProgressRequestBody.kt +2 -5
  330. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoHelpers.kt +1 -1
  331. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +2 -2
  332. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +3 -4
  333. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/JSPackagerClient.kt +2 -1
  334. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.kt +2 -8
  335. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessAtomicRef.kt +2 -0
  336. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +9 -3
  337. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt +8 -8
  338. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +12 -12
  339. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +2 -2
  340. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +13 -7
  341. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +14 -14
  342. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.kt +14 -6
  343. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +42 -28
  344. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +8 -49
  345. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.kt +11 -8
  346. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.kt +17 -0
  347. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +13 -8
  348. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.kt +751 -0
  349. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +104 -781
  350. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.kt +18 -0
  351. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +7 -9
  352. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +7 -31
  353. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactZIndexedViewGroup.kt +11 -1
  354. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +4 -0
  355. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.kt +1 -4
  356. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +103 -759
  357. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.kt +14 -38
  358. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +41 -170
  359. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +33 -962
  360. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupDrawingOrderHelper.kt +2 -0
  361. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/UIManagerType.kt +22 -0
  362. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/ViewUtil.kt +15 -0
  363. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +1 -6
  364. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.kt +2 -9
  365. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +12 -1
  366. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.kt +1 -16
  367. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +0 -33
  368. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundImageLayer.kt +27 -0
  369. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundPosition.kt +20 -0
  370. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundRepeat.kt +27 -0
  371. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundSize.kt +50 -0
  372. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderColors.kt +33 -0
  373. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderInsets.kt +25 -1
  374. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +46 -2
  375. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderStyle.kt +14 -0
  376. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BoxShadow.kt +23 -1
  377. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ColorStop.kt +45 -7
  378. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ComputedBorderRadius.kt +40 -2
  379. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/CornerRadii.kt +21 -1
  380. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Gradient.kt +16 -0
  381. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/LinearGradient.kt +34 -0
  382. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/LogicalEdge.kt +33 -1
  383. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/OutlineStyle.kt +17 -0
  384. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Overflow.kt +15 -0
  385. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/RadialGradient.kt +42 -0
  386. package/ReactAndroid/src/main/java/com/facebook/react/views/common/UiModeUtils.kt +20 -0
  387. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.kt +1 -2
  388. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +9 -10
  389. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +1 -1
  390. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ReactProgressBarViewManager.kt +6 -5
  391. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +132 -16
  392. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.kt +17 -0
  393. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.java +1647 -0
  394. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollViewManager.kt +466 -0
  395. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +104 -10
  396. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +71 -9
  397. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.kt +17 -0
  398. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainer.kt +2 -35
  399. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateClassic.kt +7 -30
  400. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +20 -41
  401. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/generate-nested-scroll-view.js +270 -0
  402. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.kt +1 -1
  403. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.kt +1 -1
  404. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.kt +7 -7
  405. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayout.kt +2 -0
  406. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayoutTextView.kt +39 -17
  407. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayoutTextViewManager.kt +4 -3
  408. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextUpdate.kt +4 -65
  409. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +86 -111
  410. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewAccessibilityDelegate.kt +6 -0
  411. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt +243 -20
  412. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.kt +1 -2
  413. package/ReactAndroid/src/main/java/com/facebook/react/views/text/SelectableTextViewManager.kt +29 -0
  414. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.kt +1 -2
  415. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +54 -77
  416. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/DrawCommandSpan.kt +27 -0
  417. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactClickableSpan.kt +1 -1
  418. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactLinkSpan.kt +10 -3
  419. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +2 -75
  420. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextChangedEvent.kt +8 -0
  421. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextContentSizeWatcher.kt +1 -1
  422. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +5 -38
  423. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputTextWatcher.kt +3 -2
  424. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextScrollWatcher.kt +1 -1
  425. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextSelectionWatcher.kt +1 -1
  426. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ImportantForInteractionHelper.kt +55 -0
  427. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +19 -60
  428. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +7 -4
  429. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +150 -296
  430. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualViewManager.kt +11 -13
  431. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfig.kt +2 -2
  432. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIBase.kt +64 -0
  433. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIFinalizer.java +4 -4
  434. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDirection.kt +29 -0
  435. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.kt +1 -1
  436. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.kt +244 -0
  437. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +1 -1
  438. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.kt +183 -0
  439. package/ReactAndroid/src/main/jni/CMakeLists.txt +6 -0
  440. package/ReactAndroid/src/main/jni/react/fabric/AndroidAnimationChoreographer.h +38 -0
  441. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +4 -4
  442. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +7 -0
  443. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +2 -0
  444. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +50 -2
  445. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +11 -0
  446. package/ReactAndroid/src/main/jni/react/fabric/JAnimationBackendChoreographer.cpp +23 -0
  447. package/ReactAndroid/src/main/jni/react/fabric/JAnimationBackendChoreographer.h +37 -0
  448. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +2 -1
  449. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +89 -131
  450. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +19 -28
  451. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +0 -1
  452. package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +1 -1
  453. package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +0 -7
  454. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +24 -60
  455. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +12 -28
  456. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +13 -6
  457. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +2 -1
  458. package/{ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.cpp → ReactAndroid/src/main/jni/react/uimanager/StateWrapper.h} +7 -2
  459. package/ReactAndroid/src/main/res/views/uimanager/values/ids.xml +3 -0
  460. package/ReactAndroid/src/main/res/views/uimanager/values-ne/strings.xml +2 -0
  461. package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.mm +8 -1
  462. package/ReactApple/RCTSwiftUI/RCTSwiftUI.podspec +1 -1
  463. package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIWrapper.podspec +1 -2
  464. package/ReactCommon/React-Fabric.podspec +5 -6
  465. package/ReactCommon/React-FabricComponents.podspec +6 -8
  466. package/ReactCommon/cxxreact/ReactNativeVersion.h +7 -5
  467. package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +1 -1
  468. package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeTargetDelegate.cpp +25 -16
  469. package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeTargetDelegate.h +1 -1
  470. package/ReactCommon/hermes/inspector-modern/chrome/Registration.cpp +44 -3
  471. package/ReactCommon/jsinspector-modern/HostAgent.cpp +10 -30
  472. package/ReactCommon/jsinspector-modern/HostAgent.h +4 -11
  473. package/ReactCommon/jsinspector-modern/HostTarget.cpp +33 -33
  474. package/ReactCommon/jsinspector-modern/HostTarget.h +23 -24
  475. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +1 -2
  476. package/ReactCommon/jsinspector-modern/HostTargetTracing.h +89 -0
  477. package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +4 -9
  478. package/ReactCommon/jsinspector-modern/InspectorInterfaces.h +0 -1
  479. package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +164 -54
  480. package/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +39 -4
  481. package/ReactCommon/jsinspector-modern/NetworkIOAgent.cpp +12 -3
  482. package/ReactCommon/jsinspector-modern/NetworkIOAgent.h +13 -0
  483. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +6 -0
  484. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +34 -18
  485. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +19 -0
  486. package/ReactCommon/jsinspector-modern/RuntimeTargetDebuggerSessionObserver.cpp +6 -95
  487. package/ReactCommon/jsinspector-modern/RuntimeTargetGlobalStateObserver.cpp +122 -0
  488. package/ReactCommon/jsinspector-modern/RuntimeTargetGlobalStateObserver.h +42 -0
  489. package/ReactCommon/jsinspector-modern/RuntimeTargetTracingStateObserver.cpp +27 -0
  490. package/ReactCommon/jsinspector-modern/RuntimeTargetTracingStateObserver.h +27 -0
  491. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +7 -45
  492. package/ReactCommon/jsinspector-modern/TracingAgent.h +0 -11
  493. package/ReactCommon/jsinspector-modern/UniqueMonostate.h +0 -4
  494. package/ReactCommon/jsinspector-modern/WeakList.h +60 -1
  495. package/ReactCommon/jsinspector-modern/network/NetworkHandler.cpp +25 -21
  496. package/ReactCommon/jsinspector-modern/network/NetworkHandler.h +21 -15
  497. package/ReactCommon/jsinspector-modern/tests/GmockHelpers.h +1 -1
  498. package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +3 -3
  499. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionMultiSessionTest.cpp +692 -0
  500. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp +10 -123
  501. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.h +140 -0
  502. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +158 -6
  503. package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +34 -0
  504. package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +223 -4
  505. package/ReactCommon/jsinspector-modern/tests/WeakListTest.cpp +31 -1
  506. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.cpp +1 -1
  507. package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +6 -9
  508. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +4 -6
  509. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +6 -17
  510. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +4 -5
  511. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +27 -39
  512. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +32 -47
  513. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +153 -207
  514. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +18 -24
  515. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +26 -38
  516. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +56 -83
  517. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +9 -1
  518. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +9 -12
  519. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +3 -1
  520. package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
  521. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +10 -4
  522. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -0
  523. package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.cpp +32 -0
  524. package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.h +2 -0
  525. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +32 -47
  526. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +14 -20
  527. package/ReactCommon/react/renderer/animated/AnimatedModule.h +1 -1
  528. package/ReactCommon/react/renderer/animated/CMakeLists.txt +0 -1
  529. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +108 -151
  530. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +16 -11
  531. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +80 -86
  532. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.h +0 -1
  533. package/ReactCommon/react/renderer/animated/event_drivers/EventAnimationDriver.h +0 -1
  534. package/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.h +0 -2
  535. package/ReactCommon/react/renderer/animated/internal/NativeAnimatedAllowlist.h +2 -2
  536. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +32 -4
  537. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +6 -0
  538. package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +14 -21
  539. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +3 -1
  540. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +6 -3
  541. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +125 -63
  542. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +33 -33
  543. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.cpp +18 -8
  544. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +1 -1
  545. package/ReactCommon/react/renderer/animationbackend/AnimationChoreographer.h +39 -0
  546. package/ReactCommon/react/renderer/animationbackend/CMakeLists.txt +0 -1
  547. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +1 -2
  548. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  549. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.cpp +0 -6
  550. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.h +0 -1
  551. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +0 -4
  552. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +0 -1
  553. package/ReactCommon/react/renderer/attributedstring/conversions.h +60 -0
  554. package/ReactCommon/react/renderer/componentregistry/componentNameByReactViewName.cpp +3 -5
  555. package/ReactCommon/react/renderer/components/image/ImageProps.h +1 -1
  556. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{LegacyViewManagerInteropComponentDescriptor.mm → platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm} +1 -1
  557. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{LegacyViewManagerInteropState.mm → platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropState.mm} +1 -1
  558. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +1 -1
  559. package/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.cpp +20 -0
  560. package/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.h +2 -0
  561. package/ReactCommon/react/renderer/components/scrollview/ScrollViewState.h +1 -1
  562. package/ReactCommon/react/renderer/components/scrollview/conversions.h +6 -0
  563. package/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.cpp +18 -1
  564. package/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.h +2 -0
  565. package/ReactCommon/react/renderer/components/scrollview/primitives.h +2 -11
  566. package/ReactCommon/react/renderer/components/scrollview/tests/ScrollViewTest.cpp +83 -3
  567. package/ReactCommon/react/renderer/components/text/BaseParagraphComponentDescriptor.h +49 -0
  568. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +14 -14
  569. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +3 -28
  570. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +10 -10
  571. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h +4 -4
  572. package/ReactCommon/react/renderer/components/text/SelectableParagraphComponentDescriptor.h +24 -0
  573. package/ReactCommon/react/renderer/components/text/SelectableParagraphShadowNode.h +32 -0
  574. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.cpp +1 -1
  575. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.cpp +1 -1
  576. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +2 -2
  577. package/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +13 -1
  578. package/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.cpp +2 -1
  579. package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +2 -21
  580. package/ReactCommon/react/renderer/components/view/BackgroundImagePropsConversions.cpp +15 -24
  581. package/ReactCommon/react/renderer/components/view/BaseTouch.h +7 -7
  582. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +11 -1
  583. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +4 -0
  584. package/ReactCommon/react/renderer/components/view/ConcreteViewShadowNode.h +0 -3
  585. package/ReactCommon/react/renderer/components/view/FilterPropsConversions.h +57 -53
  586. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +1 -0
  587. package/ReactCommon/react/renderer/components/view/conversions.h +250 -2
  588. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +19 -63
  589. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +1 -0
  590. package/ReactCommon/react/renderer/components/view/primitives.h +3 -86
  591. package/ReactCommon/react/renderer/components/view/tests/ConversionsTest.cpp +215 -0
  592. package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +1 -1
  593. package/ReactCommon/react/renderer/components/virtualview/VirtualViewComponentDescriptor.h +1 -1
  594. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +1 -1
  595. package/ReactCommon/react/renderer/core/EventEmitter.cpp +2 -2
  596. package/ReactCommon/react/renderer/core/EventEmitter.h +8 -8
  597. package/ReactCommon/react/renderer/core/EventPipe.h +1 -1
  598. package/ReactCommon/react/renderer/core/EventTarget.cpp +3 -3
  599. package/ReactCommon/react/renderer/core/EventTarget.h +7 -7
  600. package/ReactCommon/react/renderer/core/LayoutConstraints.h +0 -5
  601. package/ReactCommon/react/renderer/core/LayoutContext.h +0 -5
  602. package/ReactCommon/react/renderer/core/LayoutMetrics.h +0 -2
  603. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +11 -21
  604. package/ReactCommon/react/renderer/core/RawPropsKey.h +0 -1
  605. package/ReactCommon/react/renderer/core/RawPropsKeyMap.cpp +4 -1
  606. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +1 -7
  607. package/ReactCommon/react/renderer/core/RawPropsParser.h +2 -6
  608. package/ReactCommon/react/renderer/core/RawValue.h +1 -2
  609. package/ReactCommon/react/renderer/core/ShadowNode.cpp +33 -31
  610. package/ReactCommon/react/renderer/core/ShadowNode.h +19 -29
  611. package/ReactCommon/react/renderer/core/ShadowNodeFamily.cpp +6 -6
  612. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +14 -14
  613. package/ReactCommon/react/renderer/core/ShadowNodeFragment.cpp +4 -2
  614. package/ReactCommon/react/renderer/core/ShadowNodeFragment.h +2 -2
  615. package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +57 -2
  616. package/ReactCommon/react/renderer/css/CSSBackgroundImage.h +112 -140
  617. package/ReactCommon/react/renderer/css/CSSColor.h +7 -8
  618. package/ReactCommon/react/renderer/css/CSSColorFunction.h +38 -39
  619. package/ReactCommon/react/renderer/css/CSSCompoundDataType.h +23 -17
  620. package/ReactCommon/react/renderer/css/CSSDataType.h +15 -10
  621. package/ReactCommon/react/renderer/css/CSSFilter.h +12 -17
  622. package/ReactCommon/react/renderer/css/CSSKeyword.h +8 -0
  623. package/ReactCommon/react/renderer/css/CSSList.h +11 -11
  624. package/ReactCommon/react/renderer/css/CSSRatio.h +4 -4
  625. package/ReactCommon/react/renderer/css/CSSShadow.h +7 -7
  626. package/ReactCommon/react/renderer/css/CSSSyntaxParser.h +10 -6
  627. package/ReactCommon/react/renderer/css/CSSTokenizer.h +2 -0
  628. package/ReactCommon/react/renderer/css/CSSTransform.h +20 -20
  629. package/ReactCommon/react/renderer/css/CSSTransformOrigin.h +4 -5
  630. package/ReactCommon/react/renderer/css/CSSValueParser.h +71 -67
  631. package/ReactCommon/react/renderer/css/tests/CSSValueParserTest.cpp +11 -10
  632. package/ReactCommon/react/renderer/graphics/BackgroundPosition.h +0 -1
  633. package/ReactCommon/react/renderer/graphics/BackgroundRepeat.h +0 -1
  634. package/ReactCommon/react/renderer/graphics/BackgroundSize.h +0 -1
  635. package/ReactCommon/react/renderer/graphics/Filter.h +3 -2
  636. package/ReactCommon/react/renderer/graphics/LinearGradient.cpp +9 -15
  637. package/ReactCommon/react/renderer/graphics/LinearGradient.h +7 -19
  638. package/ReactCommon/react/renderer/graphics/Point.h +0 -2
  639. package/ReactCommon/react/renderer/graphics/RadialGradient.h +4 -35
  640. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -0
  641. package/ReactCommon/react/renderer/graphics/Rect.h +1 -9
  642. package/ReactCommon/react/renderer/graphics/RectangleCorners.h +1 -10
  643. package/ReactCommon/react/renderer/graphics/RectangleEdges.h +1 -10
  644. package/ReactCommon/react/renderer/graphics/Size.h +0 -5
  645. package/ReactCommon/react/renderer/graphics/Transform.cpp +0 -4
  646. package/ReactCommon/react/renderer/graphics/Transform.h +1 -13
  647. package/ReactCommon/react/renderer/graphics/TransformUtils.h +95 -0
  648. package/ReactCommon/react/renderer/graphics/ValueUnit.h +3 -11
  649. package/ReactCommon/react/renderer/graphics/fromRawValueShared.h +13 -1
  650. package/ReactCommon/react/renderer/imagemanager/ImageManager.h +0 -4
  651. package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.cpp +11 -12
  652. package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.h +4 -3
  653. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +1 -36
  654. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequestParams.h +1 -9
  655. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequestParams.h +1 -9
  656. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +1 -1
  657. package/ReactCommon/react/renderer/imagemanager/primitives.h +0 -5
  658. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.cpp +51 -30
  659. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.h +2 -0
  660. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +21 -38
  661. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +153 -18
  662. package/ReactCommon/react/renderer/mounting/ShadowTree.h +30 -6
  663. package/ReactCommon/react/renderer/mounting/ShadowTreeDelegate.h +11 -0
  664. package/ReactCommon/react/renderer/mounting/ShadowView.cpp +0 -4
  665. package/ReactCommon/react/renderer/mounting/ShadowView.h +0 -1
  666. package/ReactCommon/react/renderer/mounting/internal/DiffMap.h +170 -0
  667. package/ReactCommon/react/renderer/mounting/internal/ShadowViewNodePair.h +0 -5
  668. package/ReactCommon/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.h +3 -3
  669. package/ReactCommon/react/renderer/mounting/stubs/StubView.cpp +0 -4
  670. package/ReactCommon/react/renderer/mounting/stubs/StubView.h +0 -1
  671. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +0 -4
  672. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.h +0 -2
  673. package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +6 -0
  674. package/ReactCommon/react/renderer/mounting/updateMountedFlag.cpp +12 -4
  675. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +2 -1
  676. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverState.cpp +0 -5
  677. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverState.h +0 -1
  678. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +1 -1
  679. package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +1 -0
  680. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +28 -1
  681. package/ReactCommon/react/renderer/scheduler/Scheduler.h +2 -2
  682. package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +6 -0
  683. package/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h +7 -0
  684. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +2 -2
  685. package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManagerExtended.h +18 -18
  686. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +8 -7
  687. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h +5 -5
  688. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.h +3 -3
  689. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +4 -3
  690. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.h +1 -1
  691. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +15 -5
  692. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextPrimitivesConversions.h +2 -2
  693. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +10 -1
  694. package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.cpp +1 -1
  695. package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.h +1 -3
  696. package/ReactCommon/react/renderer/uimanager/PointerHoverTracker.cpp +1 -1
  697. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +68 -38
  698. package/ReactCommon/react/renderer/uimanager/UIManager.h +17 -8
  699. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +17 -5
  700. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -2
  701. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +2 -2
  702. package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +10 -0
  703. package/ReactCommon/react/renderer/uimanager/consistency/LazyShadowTreeRevisionConsistencyManager.cpp +19 -23
  704. package/ReactCommon/react/renderer/uimanager/consistency/LazyShadowTreeRevisionConsistencyManager.h +2 -3
  705. package/ReactCommon/react/renderer/uimanager/consistency/tests/LazyShadowTreeRevisionConsistencyManagerTest.cpp +13 -5
  706. package/ReactCommon/react/renderer/uimanager/primitives.h +16 -7
  707. package/ReactCommon/react/renderer/uimanager/tests/FindShadowNodeByTagTest.cpp +287 -0
  708. package/ReactCommon/react/runtime/TimerManager.cpp +16 -2
  709. package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +11 -6
  710. package/ReactCommon/react/runtime/iostests/RCTHostTests.mm +11 -0
  711. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +17 -3
  712. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +8 -1
  713. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +8 -5
  714. package/ReactCommon/react/utils/ContextContainer.h +0 -2
  715. package/ReactCommon/yoga/yoga/YGNode.cpp +14 -0
  716. package/ReactCommon/yoga/yoga/YGValue.h +0 -4
  717. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +7 -7
  718. package/ReactCommon/yoga/yoga/enums/YogaEnums.h +0 -1
  719. package/ReactCommon/yoga/yoga/node/LayoutResults.h +0 -3
  720. package/ReactCommon/yoga/yoga/numeric/FloatOptional.h +0 -9
  721. package/ReactCommon/yoga/yoga/style/Style.h +0 -4
  722. package/flow/bom.js.flow +18 -17
  723. package/flow/dom.js.flow +12 -5
  724. package/flow/global.js +1 -1
  725. package/gradle/libs.versions.toml +1 -1
  726. package/index.js +9 -0
  727. package/index.js.flow +8 -1
  728. package/jest-preset.js +14 -18
  729. package/package.json +17 -17
  730. package/react-native.config.js +17 -0
  731. package/scripts/cocoapods/rncore.rb +111 -2
  732. package/scripts/cocoapods/utils.rb +2 -0
  733. package/scripts/codegen/templates/Package.swift.template +7 -0
  734. package/scripts/react_native_pods.rb +13 -6
  735. package/scripts/replace-rncore-version.js +12 -3
  736. package/sdks/.hermesv1version +1 -1
  737. package/sdks/.hermesversion +1 -1
  738. package/sdks/hermes-engine/version.properties +2 -2
  739. package/settings.gradle.kts +21 -1
  740. package/src/private/animated/NativeAnimatedHelper.js +2 -2
  741. package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
  742. package/src/private/components/virtualview/VirtualView.js +14 -21
  743. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
  744. package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
  745. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
  746. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
  747. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
  748. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  749. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
  750. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
  751. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
  752. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
  753. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  754. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  755. package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
  756. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
  757. package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
  758. package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
  759. package/src/private/featureflags/ReactNativeFeatureFlags.js +49 -82
  760. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
  761. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +9 -12
  762. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
  763. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
  764. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
  765. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  766. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
  767. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
  768. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
  769. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
  770. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
  771. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +3 -3
  772. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
  773. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
  774. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
  775. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
  776. package/src/private/styles/composeStyles.js +1 -1
  777. package/src/private/utilities/toError.js +27 -0
  778. package/src/private/utilities/toExtendedError.js +30 -0
  779. package/src/private/webapis/dom/events/Event.js +1 -1
  780. package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
  781. package/src/private/webapis/dom/events/EventTarget.js +3 -3
  782. package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
  783. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  784. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
  785. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
  786. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
  787. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +1 -1
  788. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  789. package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +1 -1
  790. package/src/private/webapis/geometry/DOMRectList.js +2 -2
  791. package/src/private/webapis/geometry/DOMRectList.js.flow +1 -1
  792. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
  793. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
  794. package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
  795. package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
  796. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
  797. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
  798. package/src/private/webapis/performance/LongTasks.js +3 -3
  799. package/src/private/webapis/performance/Performance.js +4 -4
  800. package/src/private/webapis/performance/PerformanceEntry.js +1 -1
  801. package/src/private/webapis/performance/PerformanceObserver.js +2 -2
  802. package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
  803. package/src/private/webapis/structuredClone/structuredClone.js +2 -2
  804. package/src/types/globals.d.ts +4 -4
  805. package/third-party-podspecs/RCT-Folly.podspec +1 -1
  806. package/third-party-podspecs/fmt.podspec +2 -2
  807. package/tvosCommands.js +51 -0
  808. package/types/index.d.ts +2 -0
  809. package/types/public/ReactNativeTVTypes.d.ts +27 -2
  810. package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
  811. package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
  812. package/React/Fabric/Mounting/ComponentViews/VirtualViewExperimental/RCTVirtualViewExperimentalComponentView.h +0 -25
  813. package/React/Fabric/Mounting/ComponentViews/VirtualViewExperimental/RCTVirtualViewExperimentalComponentView.mm +0 -321
  814. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +0 -620
  815. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +0 -1411
  816. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +0 -985
  817. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +0 -403
  818. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.kt +0 -336
  819. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventEmitterImpl.kt +0 -135
  820. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarShadowNode.kt +0 -81
  821. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchShadowNode.kt +0 -72
  822. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.kt +0 -677
  823. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.kt +0 -218
  824. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.kt +0 -369
  825. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageShadowNode.kt +0 -156
  826. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageSpan.kt +0 -174
  827. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.kt +0 -54
  828. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/ReactTextInlineImageShadowNode.kt +0 -30
  829. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/TextInlineImageSpan.kt +0 -58
  830. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.kt +0 -228
  831. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental.kt +0 -305
  832. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimentalManager.kt +0 -110
  833. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIBase.java +0 -62
  834. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDirection.java +0 -35
  835. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +0 -279
  836. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +0 -197
  837. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +0 -410
  838. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +0 -113
  839. package/ReactCommon/react/renderer/components/virtualviewexperimental/VirtualViewExperimentalComponentDescriptor.h +0 -19
  840. package/ReactCommon/react/renderer/components/virtualviewexperimental/VirtualViewExperimentalShadowNode.h +0 -38
  841. package/jest/MockNativeMethods.js +0 -27
  842. package/jest/RefreshControlMock.js +0 -32
  843. package/jest/assetFileTransformer.js +0 -33
  844. package/jest/local-setup.js +0 -29
  845. package/jest/mock.js +0 -39
  846. package/jest/mockComponent.js +0 -104
  847. package/jest/mockNativeComponent.js +0 -52
  848. package/jest/mocks/AccessibilityInfo.js +0 -62
  849. package/jest/mocks/ActivityIndicator.js +0 -23
  850. package/jest/mocks/AppState.js +0 -19
  851. package/jest/mocks/Image.js +0 -23
  852. package/jest/mocks/InitializeCore.js +0 -9
  853. package/jest/mocks/Linking.js +0 -28
  854. package/jest/mocks/Modal.js +0 -33
  855. package/jest/mocks/NativeComponentRegistry.js +0 -30
  856. package/jest/mocks/NativeModules.js +0 -239
  857. package/jest/mocks/RefreshControl.js +0 -31
  858. package/jest/mocks/RendererProxy.js +0 -45
  859. package/jest/mocks/ScrollView.js +0 -58
  860. package/jest/mocks/Text.js +0 -27
  861. package/jest/mocks/TextInput.js +0 -32
  862. package/jest/mocks/UIManager.js +0 -60
  863. package/jest/mocks/View.js +0 -27
  864. package/jest/mocks/ViewNativeComponent.js +0 -23
  865. package/jest/mocks/requireNativeComponent.js +0 -22
  866. package/jest/mocks/useColorScheme.js +0 -18
  867. package/jest/react-native-env.js +0 -17
  868. package/jest/renderer.js +0 -40
  869. package/jest/resolver.js +0 -32
  870. package/jest/setup.js +0 -140
  871. /package/React/Fabric/Mounting/ComponentViews/{VirtualViewExperimental → VirtualView}/RCTVirtualViewMode.h +0 -0
  872. /package/React/Fabric/Mounting/ComponentViews/{VirtualViewExperimental → VirtualView}/RCTVirtualViewRenderState.h +0 -0
  873. /package/ReactAndroid/src/main/java/com/facebook/react/fabric/internal/interop/{InteropUiBlockListener.kt → InteropUIBlockListener.kt} +0 -0
  874. /package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{LegacyViewManagerInteropComponentDescriptor.h → platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.h} +0 -0
  875. /package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{RCTLegacyViewManagerInteropCoordinator.h → platform/ios/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.h} +0 -0
  876. /package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{RCTLegacyViewManagerInteropCoordinator.mm → platform/ios/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm} +0 -0
  877. /package/ReactCommon/react/renderer/components/scrollview/{RCTComponentViewHelpers.h → platform/ios/react/renderer/components/scrollview/RCTComponentViewHelpers.h} +0 -0
@@ -0,0 +1,466 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @generated SignedSource<<585a90a2f11c5bba8b3e2d011912d302>>
8
+ */
9
+
10
+ /**
11
+ * THIS FILE IS GENERATED - DO NOT EDIT DIRECTLY
12
+ * Source: ReactScrollViewManager.kt
13
+ * Run: node generate-nested-scroll-view.js
14
+ */
15
+
16
+ package com.facebook.react.views.scroll
17
+
18
+ import android.graphics.Color
19
+ import android.view.View
20
+ import androidx.core.view.ViewCompat
21
+ import com.facebook.react.bridge.Dynamic
22
+ import com.facebook.react.bridge.ReadableArray
23
+ import com.facebook.react.bridge.ReadableMap
24
+ import com.facebook.react.bridge.ReadableType
25
+ import com.facebook.react.bridge.RetryableMountingLayerException
26
+ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
27
+ import com.facebook.react.module.annotations.ReactModule
28
+ import com.facebook.react.uimanager.BackgroundStyleApplicator.setBorderColor
29
+ import com.facebook.react.uimanager.BackgroundStyleApplicator.setBorderRadius
30
+ import com.facebook.react.uimanager.BackgroundStyleApplicator.setBorderStyle
31
+ import com.facebook.react.uimanager.BackgroundStyleApplicator.setBorderWidth
32
+ import com.facebook.react.uimanager.LengthPercentage
33
+ import com.facebook.react.uimanager.LengthPercentageType
34
+ import com.facebook.react.uimanager.PixelUtil.dpToPx
35
+ import com.facebook.react.uimanager.PixelUtil.getDisplayMetricDensity
36
+ import com.facebook.react.uimanager.PointerEvents.Companion.parsePointerEvents
37
+ import com.facebook.react.uimanager.ReactClippingViewGroupHelper
38
+ import com.facebook.react.uimanager.ReactStylesDiffMap
39
+ import com.facebook.react.uimanager.StateWrapper
40
+ import com.facebook.react.uimanager.ThemedReactContext
41
+ import com.facebook.react.uimanager.ViewGroupManager
42
+ import com.facebook.react.uimanager.ViewProps
43
+ import com.facebook.react.uimanager.annotations.ReactProp
44
+ import com.facebook.react.uimanager.annotations.ReactPropGroup
45
+ import com.facebook.react.uimanager.style.BorderRadiusProp
46
+ import com.facebook.react.uimanager.style.BorderStyle.Companion.fromString
47
+ import com.facebook.react.uimanager.style.LogicalEdge
48
+ import com.facebook.react.views.scroll.ReactScrollViewCommandHelper.Companion.receiveCommand
49
+ import com.facebook.react.views.scroll.ReactScrollViewCommandHelper.ScrollCommandHandler
50
+ import com.facebook.react.views.scroll.ReactScrollViewCommandHelper.ScrollToCommandData
51
+ import com.facebook.react.views.scroll.ReactScrollViewCommandHelper.ScrollToEndCommandData
52
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.parseOverScrollMode
53
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.parseSnapToAlignment
54
+ import com.facebook.react.views.scroll.ScrollEventType.Companion.getJSEventName
55
+
56
+ /**
57
+ * View manager for [ReactNestedScrollView] components.
58
+ *
59
+ * Note that [ReactNestedScrollView] and [ReactHorizontalScrollView] are exposed to JS as a single
60
+ * ScrollView component, configured via the `horizontal` boolean property.
61
+ */
62
+ @ReactModule(name = ReactNestedScrollViewManager.REACT_CLASS)
63
+ internal open class ReactNestedScrollViewManager
64
+ @JvmOverloads
65
+ constructor(private val fpsListener: FpsListener? = null) :
66
+ ViewGroupManager<ReactNestedScrollView>(), ScrollCommandHandler<ReactNestedScrollView> {
67
+
68
+ init {
69
+ if (ReactNativeFeatureFlags.enableViewRecyclingForScrollView()) {
70
+ setupViewRecycling()
71
+ }
72
+ }
73
+
74
+ override fun prepareToRecycleView(
75
+ reactContext: ThemedReactContext,
76
+ view: ReactNestedScrollView,
77
+ ): ReactNestedScrollView? {
78
+ // BaseViewManager
79
+ val preparedView = super.prepareToRecycleView(reactContext, view)
80
+ if (preparedView != null) {
81
+ preparedView.recycleView()
82
+ }
83
+ return preparedView
84
+ }
85
+
86
+ override fun getName(): String = REACT_CLASS
87
+
88
+ public override fun createViewInstance(context: ThemedReactContext): ReactNestedScrollView =
89
+ ReactNestedScrollView(context, fpsListener)
90
+
91
+ @ReactProp(name = "scrollEnabled", defaultBoolean = true)
92
+ public fun setScrollEnabled(view: ReactNestedScrollView, value: Boolean) {
93
+ view.setScrollEnabled(value)
94
+
95
+ // Set focusable to match whether scroll is enabled. This improves keyboarding
96
+ // experience by not making scrollview a tab stop when you cannot interact with it.
97
+ view.isFocusable = value
98
+ }
99
+
100
+ @ReactProp(name = "showsVerticalScrollIndicator", defaultBoolean = true)
101
+ public fun setShowsVerticalScrollIndicator(view: ReactNestedScrollView, value: Boolean) {
102
+ view.isVerticalScrollBarEnabled = value
103
+ }
104
+
105
+ @ReactProp(name = "decelerationRate")
106
+ public fun setDecelerationRate(view: ReactNestedScrollView, decelerationRate: Float) {
107
+ view.setDecelerationRate(decelerationRate)
108
+ }
109
+
110
+ @ReactProp(name = "disableIntervalMomentum")
111
+ public fun setDisableIntervalMomentum(view: ReactNestedScrollView, disableIntervalMomentum: Boolean) {
112
+ view.setDisableIntervalMomentum(disableIntervalMomentum)
113
+ }
114
+
115
+ @ReactProp(name = "scrollsChildToFocus", defaultBoolean = true)
116
+ public fun setScrollsChildToFocus(view: ReactNestedScrollView, scrollsChildToFocus: Boolean) {
117
+ view.setScrollsChildToFocus(scrollsChildToFocus)
118
+ }
119
+
120
+ @ReactProp(name = "snapToInterval")
121
+ public fun setSnapToInterval(view: ReactNestedScrollView, snapToInterval: Float) {
122
+ // snapToInterval needs to be exposed as a float because of the Javascript interface.
123
+ val density = getDisplayMetricDensity()
124
+ view.setSnapInterval((snapToInterval * density).toInt())
125
+ }
126
+
127
+ @ReactProp(name = "snapToOffsets")
128
+ public fun setSnapToOffsets(view: ReactNestedScrollView, snapToOffsets: ReadableArray?) {
129
+ if (snapToOffsets == null || snapToOffsets.size() == 0) {
130
+ view.setSnapOffsets(null)
131
+ return
132
+ }
133
+
134
+ val density = getDisplayMetricDensity()
135
+ val offsets: MutableList<Int> = ArrayList()
136
+ for (i in 0 until snapToOffsets.size()) {
137
+ offsets.add((snapToOffsets.getDouble(i) * density).toInt())
138
+ }
139
+ view.setSnapOffsets(offsets)
140
+ }
141
+
142
+ @ReactProp(name = "snapToAlignment")
143
+ public fun setSnapToAlignment(view: ReactNestedScrollView, alignment: String?) {
144
+ view.setSnapToAlignment(parseSnapToAlignment(alignment))
145
+ }
146
+
147
+ @ReactProp(name = "snapToStart")
148
+ public fun setSnapToStart(view: ReactNestedScrollView, snapToStart: Boolean) {
149
+ view.setSnapToStart(snapToStart)
150
+ }
151
+
152
+ @ReactProp(name = "snapToEnd")
153
+ public fun setSnapToEnd(view: ReactNestedScrollView, snapToEnd: Boolean) {
154
+ view.setSnapToEnd(snapToEnd)
155
+ }
156
+
157
+ @ReactProp(name = ReactClippingViewGroupHelper.PROP_REMOVE_CLIPPED_SUBVIEWS)
158
+ public fun setRemoveClippedSubviews(view: ReactNestedScrollView, removeClippedSubviews: Boolean) {
159
+ view.removeClippedSubviews = removeClippedSubviews
160
+ }
161
+
162
+ /**
163
+ * Computing momentum events is potentially expensive since we post a runnable on the UI thread to
164
+ * see when it is done. We only do that if {@param sendMomentumEvents} is set to true. This is
165
+ * handled automatically in js by checking if there is a listener on the momentum events.
166
+ *
167
+ * @param view
168
+ * @param sendMomentumEvents
169
+ */
170
+ @ReactProp(name = "sendMomentumEvents")
171
+ public fun setSendMomentumEvents(view: ReactNestedScrollView, sendMomentumEvents: Boolean) {
172
+ view.setSendMomentumEvents(sendMomentumEvents)
173
+ }
174
+
175
+ /**
176
+ * Tag used for logging scroll performance on this scroll view. Will force momentum events to be
177
+ * turned on (see setSendMomentumEvents).
178
+ *
179
+ * @param view
180
+ * @param scrollPerfTag
181
+ */
182
+ @ReactProp(name = "scrollPerfTag")
183
+ public fun setScrollPerfTag(view: ReactNestedScrollView, scrollPerfTag: String?) {
184
+ view.setScrollPerfTag(scrollPerfTag)
185
+ }
186
+
187
+ @ReactProp(name = "pagingEnabled")
188
+ public fun setPagingEnabled(view: ReactNestedScrollView, pagingEnabled: Boolean) {
189
+ view.setPagingEnabled(pagingEnabled)
190
+ }
191
+
192
+ /**
193
+ * When set, fills the rest of the scrollview with a color to avoid setting a background and
194
+ * creating unnecessary overdraw.
195
+ *
196
+ * @param view
197
+ * @param color
198
+ */
199
+ @ReactProp(name = "endFillColor", defaultInt = Color.TRANSPARENT, customType = "Color")
200
+ public fun setBottomFillColor(view: ReactNestedScrollView, color: Int) {
201
+ view.setEndFillColor(color)
202
+ }
203
+
204
+ /** Controls overScroll behaviour */
205
+ @ReactProp(name = "overScrollMode")
206
+ public open fun setOverScrollMode(view: ReactNestedScrollView, value: String?) {
207
+ view.overScrollMode = parseOverScrollMode(value)
208
+ }
209
+
210
+ @ReactProp(name = "nestedScrollEnabled")
211
+ public fun setNestedScrollEnabled(view: ReactNestedScrollView?, value: Boolean) {
212
+ if (view != null) {
213
+ ViewCompat.setNestedScrollingEnabled(view, value)
214
+ }
215
+ }
216
+
217
+ override fun getCommandsMap(): Map<String, Int>? = ReactScrollViewCommandHelper.getCommandsMap()
218
+
219
+ @Deprecated(
220
+ message =
221
+ "ReceiveCommand with an int commandId param is deprecated. Use the overload where commandId is a string.",
222
+ ReplaceWith("receiveCommand(scrollView, commandId, args)"),
223
+ )
224
+ override fun receiveCommand(scrollView: ReactNestedScrollView, commandId: Int, args: ReadableArray?) {
225
+ receiveCommand(this, scrollView, commandId, args)
226
+ }
227
+
228
+ override fun receiveCommand(
229
+ scrollView: ReactNestedScrollView,
230
+ commandId: String,
231
+ args: ReadableArray?,
232
+ ) {
233
+ receiveCommand<ReactNestedScrollView>(this, scrollView, commandId, args)
234
+ }
235
+
236
+ override fun flashScrollIndicators(scrollView: ReactNestedScrollView) {
237
+ scrollView.flashScrollIndicators()
238
+ }
239
+
240
+ override fun scrollTo(scrollView: ReactNestedScrollView, data: ScrollToCommandData) {
241
+ scrollView.abortAnimation()
242
+ if (data.mAnimated) {
243
+ scrollView.reactSmoothScrollTo(data.mDestX, data.mDestY)
244
+ } else {
245
+ scrollView.scrollTo(data.mDestX, data.mDestY)
246
+ }
247
+ }
248
+
249
+ @ReactPropGroup(
250
+ names =
251
+ [
252
+ ViewProps.BORDER_RADIUS,
253
+ ViewProps.BORDER_TOP_LEFT_RADIUS,
254
+ ViewProps.BORDER_TOP_RIGHT_RADIUS,
255
+ ViewProps.BORDER_BOTTOM_RIGHT_RADIUS,
256
+ ViewProps.BORDER_BOTTOM_LEFT_RADIUS,
257
+ ],
258
+ defaultFloat = Float.NaN,
259
+ )
260
+ public fun setBorderRadius(view: ReactNestedScrollView?, index: Int, borderRadius: Float) {
261
+ if (view != null) {
262
+ val radius =
263
+ if (borderRadius.isNaN()) null
264
+ else LengthPercentage(borderRadius, LengthPercentageType.POINT)
265
+ setBorderRadius(view, BorderRadiusProp.entries[index], radius)
266
+ }
267
+ }
268
+
269
+ @ReactProp(name = "borderStyle")
270
+ public fun setBorderStyle(view: ReactNestedScrollView?, borderStyle: String?) {
271
+ if (view != null) {
272
+ val parsedBorderStyle = if (borderStyle == null) null else fromString(borderStyle)
273
+ setBorderStyle(view, parsedBorderStyle)
274
+ }
275
+ }
276
+
277
+ @ReactPropGroup(
278
+ names =
279
+ [
280
+ ViewProps.BORDER_WIDTH,
281
+ ViewProps.BORDER_LEFT_WIDTH,
282
+ ViewProps.BORDER_RIGHT_WIDTH,
283
+ ViewProps.BORDER_TOP_WIDTH,
284
+ ViewProps.BORDER_BOTTOM_WIDTH,
285
+ ],
286
+ defaultFloat = Float.NaN,
287
+ )
288
+ public fun setBorderWidth(view: ReactNestedScrollView?, index: Int, width: Float) {
289
+ if (view != null) {
290
+ setBorderWidth(view, LogicalEdge.entries[index], width)
291
+ }
292
+ }
293
+
294
+ @ReactPropGroup(
295
+ names =
296
+ [
297
+ "borderColor",
298
+ "borderLeftColor",
299
+ "borderRightColor",
300
+ "borderTopColor",
301
+ "borderBottomColor",
302
+ ],
303
+ customType = "Color",
304
+ )
305
+ @Suppress("UNUSED_PARAMETER")
306
+ public fun setBorderColor(view: ReactNestedScrollView?, index: Int, color: Int?) {
307
+ if (view != null) {
308
+ setBorderColor(view, LogicalEdge.ALL, color)
309
+ }
310
+ }
311
+
312
+ @ReactProp(name = "overflow")
313
+ public fun setOverflow(view: ReactNestedScrollView, overflow: String?) {
314
+ view.setOverflow(overflow)
315
+ }
316
+
317
+ override fun scrollToEnd(scrollView: ReactNestedScrollView, data: ScrollToEndCommandData) {
318
+ // ScrollView always has one child - the scrollable area. However, it's possible today that we
319
+ // execute this method as view command before the child view is mounted. Here we will retry the
320
+ // view commands as a workaround.
321
+ val child =
322
+ scrollView.getChildAt(0)
323
+ ?: throw RetryableMountingLayerException(
324
+ "scrollToEnd called on ScrollView without child"
325
+ )
326
+
327
+ // ScrollView always has one child - the scrollable area
328
+ val bottom = child.height + scrollView.paddingBottom
329
+ scrollView.abortAnimation()
330
+ if (data.mAnimated) {
331
+ scrollView.reactSmoothScrollTo(scrollView.scrollX, bottom)
332
+ } else {
333
+ scrollView.scrollTo(scrollView.scrollX, bottom)
334
+ }
335
+ }
336
+
337
+ @ReactProp(name = "persistentScrollbar")
338
+ public fun setPersistentScrollbar(view: ReactNestedScrollView, value: Boolean) {
339
+ view.isScrollbarFadingEnabled = !value
340
+ }
341
+
342
+ @ReactProp(name = "fadingEdgeLength")
343
+ public fun setFadingEdgeLength(view: ReactNestedScrollView, value: Dynamic) {
344
+ when (value.type) {
345
+ ReadableType.Number -> {
346
+ view.setFadingEdgeLengthStart(value.asInt())
347
+ view.setFadingEdgeLengthEnd(value.asInt())
348
+ }
349
+ ReadableType.Map -> {
350
+ value.asMap()?.let { map ->
351
+ var start = 0
352
+ var end = 0
353
+ if (map.hasKey("start") && map.getInt("start") > 0) {
354
+ start = map.getInt("start")
355
+ }
356
+ if (map.hasKey("end") && map.getInt("end") > 0) {
357
+ end = map.getInt("end")
358
+ }
359
+ view.setFadingEdgeLengthStart(start)
360
+ view.setFadingEdgeLengthEnd(end)
361
+ }
362
+ }
363
+ else -> {
364
+ // no-op
365
+ }
366
+ }
367
+ if (view.fadingEdgeLengthStart > 0 || view.fadingEdgeLengthEnd > 0) {
368
+ view.isVerticalFadingEdgeEnabled = true
369
+ view.setFadingEdgeLength(
370
+ Math.round(Math.max(view.fadingEdgeLengthStart, view.fadingEdgeLengthEnd).dpToPx())
371
+ )
372
+ } else {
373
+ view.isVerticalFadingEdgeEnabled = false
374
+ view.setFadingEdgeLength(0)
375
+ }
376
+ }
377
+
378
+ @ReactProp(name = "contentOffset", customType = "Point")
379
+ public fun setContentOffset(view: ReactNestedScrollView, value: ReadableMap?) {
380
+ view.setContentOffset(value)
381
+ }
382
+
383
+ @ReactProp(name = "maintainVisibleContentPosition")
384
+ public fun setMaintainVisibleContentPosition(view: ReactNestedScrollView, value: ReadableMap?) {
385
+ if (value != null) {
386
+ view.setMaintainVisibleContentPosition(
387
+ MaintainVisibleScrollPositionHelper.Config.fromReadableMap(value)
388
+ )
389
+ } else {
390
+ view.setMaintainVisibleContentPosition(null)
391
+ }
392
+ }
393
+
394
+ override fun updateState(
395
+ view: ReactNestedScrollView,
396
+ props: ReactStylesDiffMap,
397
+ stateWrapper: StateWrapper,
398
+ ): Any? {
399
+ view.setStateWrapper(stateWrapper)
400
+ if (
401
+ ReactNativeFeatureFlags.enableViewCulling() ||
402
+ ReactNativeFeatureFlags.useTraitHiddenOnAndroid()
403
+ ) {
404
+ ReactScrollViewHelper.loadFabricScrollState(view, stateWrapper)
405
+ }
406
+ return null
407
+ }
408
+
409
+ override fun getExportedCustomDirectEventTypeConstants(): Map<String, Any>? {
410
+ val baseEventTypeConstants = super.getExportedCustomDirectEventTypeConstants()
411
+ val eventTypeConstants = baseEventTypeConstants ?: HashMap()
412
+ eventTypeConstants.putAll(createExportedCustomDirectEventTypeConstants())
413
+ return eventTypeConstants
414
+ }
415
+
416
+ @ReactProp(name = ViewProps.POINTER_EVENTS)
417
+ public fun setPointerEvents(view: ReactNestedScrollView, pointerEventsStr: String?) {
418
+ view.pointerEvents = parsePointerEvents(pointerEventsStr)
419
+ }
420
+
421
+ @ReactProp(name = "scrollEventThrottle")
422
+ public fun setScrollEventThrottle(view: ReactNestedScrollView, scrollEventThrottle: Int) {
423
+ view.scrollEventThrottle = scrollEventThrottle
424
+ }
425
+
426
+ @ReactProp(name = "horizontal")
427
+ @Suppress("UNUSED_PARAMETER")
428
+ public fun setHorizontal(view: ReactNestedScrollView?, horizontal: Boolean) {
429
+ // Do Nothing: Align with static ViewConfigs
430
+ }
431
+
432
+ @ReactProp(name = "isInvertedVirtualizedList")
433
+ public fun setIsInvertedVirtualizedList(view: ReactNestedScrollView, applyFix: Boolean) {
434
+ // Usually when inverting the scroll view we are using scaleY: -1 on the list
435
+ // and on the parent container. HOWEVER, starting from android API 33 there is
436
+ // a bug that can cause an ANR due to that. Thus we are using different transform
437
+ // commands to circumvent the ANR. This however causes the vertical scrollbar to
438
+ // be on the wrong side. Thus we are moving it to the other side, when the list
439
+ // is inverted.
440
+ // See also:
441
+ // - https://github.com/facebook/react-native/issues/35350
442
+ // - https://issuetracker.google.com/issues/287304310
443
+ if (applyFix) {
444
+ view.verticalScrollbarPosition = View.SCROLLBAR_POSITION_LEFT
445
+ } else {
446
+ view.verticalScrollbarPosition = View.SCROLLBAR_POSITION_DEFAULT
447
+ }
448
+ }
449
+
450
+ public companion object {
451
+ public const val REACT_CLASS: String = "RCTScrollView"
452
+
453
+ public fun createExportedCustomDirectEventTypeConstants(): Map<String, Any> =
454
+ mapOf(
455
+ getJSEventName(ScrollEventType.SCROLL) to mapOf("registrationName" to "onScroll"),
456
+ getJSEventName(ScrollEventType.BEGIN_DRAG) to
457
+ mapOf("registrationName" to "onScrollBeginDrag"),
458
+ getJSEventName(ScrollEventType.END_DRAG) to
459
+ mapOf("registrationName" to "onScrollEndDrag"),
460
+ getJSEventName(ScrollEventType.MOMENTUM_BEGIN) to
461
+ mapOf("registrationName" to "onMomentumScrollBegin"),
462
+ getJSEventName(ScrollEventType.MOMENTUM_END) to
463
+ mapOf("registrationName" to "onMomentumScrollEnd"),
464
+ )
465
+ }
466
+ }
@@ -10,6 +10,7 @@ package com.facebook.react.views.scroll;
10
10
  import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_CENTER;
11
11
  import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_DISABLED;
12
12
  import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_END;
13
+ import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_ITEM;
13
14
  import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_START;
14
15
  import static com.facebook.react.views.scroll.ReactScrollViewHelper.findNextFocusableView;
15
16
 
@@ -37,6 +38,7 @@ import androidx.core.view.ViewCompat.FocusDirection;
37
38
  import com.facebook.common.logging.FLog;
38
39
  import com.facebook.infer.annotation.Assertions;
39
40
  import com.facebook.infer.annotation.Nullsafe;
41
+ import com.facebook.react.views.common.UiModeUtils;
40
42
  import com.facebook.react.R;
41
43
  import com.facebook.react.bridge.ReadableMap;
42
44
  import com.facebook.react.common.ReactConstants;
@@ -133,6 +135,10 @@ public class ReactScrollView extends ScrollView
133
135
  private int mFadingEdgeLengthStart;
134
136
  private int mFadingEdgeLengthEnd;
135
137
  private boolean mEmittedOverScrollSinceScrollBegin;
138
+ private boolean mScrollsChildToFocus = true;
139
+ private int mSnapToItemPadding;
140
+ private boolean mScrollAnimationEnabled = true;
141
+ private boolean mBlockScrollDelta = false;
136
142
 
137
143
  public ReactScrollView(Context context) {
138
144
  this(context, null);
@@ -196,6 +202,7 @@ public class ReactScrollView extends ScrollView
196
202
  mFadingEdgeLengthStart = 0;
197
203
  mFadingEdgeLengthEnd = 0;
198
204
  mEmittedOverScrollSinceScrollBegin = false;
205
+ mScrollsChildToFocus = true;
199
206
  }
200
207
 
201
208
  /* package */ void recycleView() {
@@ -298,6 +305,10 @@ public class ReactScrollView extends ScrollView
298
305
  mPagingEnabled = pagingEnabled;
299
306
  }
300
307
 
308
+ public void setScrollsChildToFocus(boolean scrollsChildToFocus) {
309
+ mScrollsChildToFocus = scrollsChildToFocus;
310
+ }
311
+
301
312
  public void setDecelerationRate(float decelerationRate) {
302
313
  getReactScrollViewScrollState().setDecelerationRate(decelerationRate);
303
314
 
@@ -354,6 +365,14 @@ public class ReactScrollView extends ScrollView
354
365
  invalidate();
355
366
  }
356
367
 
368
+ public void setSnapToItemPadding(int snapToItemPadding) {
369
+ mSnapToItemPadding = snapToItemPadding;
370
+ }
371
+
372
+ public void setScrollAnimationEnabled(boolean scrollAnimationEnabled) {
373
+ mScrollAnimationEnabled = scrollAnimationEnabled;
374
+ }
375
+
357
376
  @Override
358
377
  protected float getTopFadingEdgeStrength() {
359
378
  float max = Math.max(mFadingEdgeLengthStart, mFadingEdgeLengthEnd);
@@ -475,9 +494,6 @@ public class ReactScrollView extends ScrollView
475
494
  if (mMaintainVisibleContentPositionHelper != null) {
476
495
  mMaintainVisibleContentPositionHelper.stop();
477
496
  }
478
- if (mVirtualViewContainerState != null) {
479
- mVirtualViewContainerState.cleanup();
480
- }
481
497
  }
482
498
 
483
499
  @Override
@@ -501,6 +517,40 @@ public class ReactScrollView extends ScrollView
501
517
  return nextFocus;
502
518
  }
503
519
 
520
+ /**
521
+ * Attempts to scroll-snap to the focused child based on snapToAlignment/scrollSnapAlign.
522
+ * Returns true if snap scrolling was performed, false otherwise.
523
+ */
524
+ private boolean tryScrollSnapToChild(View focused) {
525
+ if (mSnapToAlignment != SNAP_ALIGNMENT_ITEM) {
526
+ return false;
527
+ }
528
+
529
+ kotlin.Pair<View, String> result = ReactScrollViewHelper.findScrollSnapAlign(focused, this);
530
+ if (result == null) {
531
+ return false;
532
+ }
533
+
534
+ View snapTarget = result.getFirst();
535
+ String alignment = result.getSecond();
536
+
537
+ Rect rect = new Rect();
538
+ snapTarget.getDrawingRect(rect);
539
+ offsetDescendantRectToMyCoords(snapTarget, rect);
540
+
541
+ int viewportHeight = getHeight() - getPaddingTop() - getPaddingBottom();
542
+ int maxScrollY = getMaxScrollY();
543
+
544
+ Integer targetOffset = ReactScrollViewHelper.computeScrollSnapOffset(
545
+ rect.top, rect.bottom, viewportHeight, alignment, mSnapInterval, mSnapToItemPadding, maxScrollY);
546
+ if (targetOffset == null) {
547
+ return false;
548
+ }
549
+
550
+ reactSmoothScrollTo(getScrollX(), targetOffset);
551
+ return true;
552
+ }
553
+
504
554
  /**
505
555
  * Since ReactScrollView handles layout changes on JS side, it does not call super.onlayout due to
506
556
  * which mIsLayoutDirty flag in ScrollView remains true and prevents scrolling to child when
@@ -510,8 +560,10 @@ public class ReactScrollView extends ScrollView
510
560
  */
511
561
  @Override
512
562
  public void requestChildFocus(View child, View focused) {
513
- if (focused != null) {
514
- scrollToChild(focused);
563
+ if (focused != null && mScrollsChildToFocus) {
564
+ if (!tryScrollSnapToChild(focused)) {
565
+ scrollToChild(focused);
566
+ }
515
567
  }
516
568
  requestChildFocusWithoutScroll(child, focused);
517
569
  }
@@ -522,7 +574,17 @@ public class ReactScrollView extends ScrollView
522
574
  * unblocks such customization.
523
575
  */
524
576
  protected void requestChildFocusWithoutScroll(View child, View focused) {
577
+ mBlockScrollDelta = true;
525
578
  super.requestChildFocus(child, focused);
579
+ mBlockScrollDelta = false;
580
+ }
581
+
582
+ @Override
583
+ public boolean requestChildRectangleOnScreen(View child, Rect rectangle, boolean immediate) {
584
+ if (!mScrollsChildToFocus) {
585
+ return false;
586
+ }
587
+ return super.requestChildRectangleOnScreen(child, rectangle, immediate);
526
588
  }
527
589
 
528
590
  private int getScrollDelta(View descendent) {
@@ -566,9 +628,24 @@ public class ReactScrollView extends ScrollView
566
628
  }
567
629
  }
568
630
 
631
+ @Override
632
+ public void computeScroll() {
633
+ if (UiModeUtils.isTVDevice(getContext())
634
+ && !mScrollAnimationEnabled
635
+ && mScroller != null
636
+ && !mScroller.isFinished()) {
637
+ // When scroll animation is disabled, just abort any in-flight smooth scroll.
638
+ // The correct position has already been set synchronously by
639
+ // requestChildFocus → tryScrollSnapToChild/scrollToChild.
640
+ mScroller.forceFinished(true);
641
+ return;
642
+ }
643
+ super.computeScroll();
644
+ }
645
+
569
646
  @Override
570
647
  protected int computeScrollDeltaToGetChildRectOnScreen(Rect rect) {
571
- if (!mScrollEnabled) {
648
+ if (!mScrollEnabled || mBlockScrollDelta) {
572
649
  return 0;
573
650
  }
574
651
  return super.computeScrollDeltaToGetChildRectOnScreen(rect);
@@ -673,6 +750,11 @@ public class ReactScrollView extends ScrollView
673
750
 
674
751
  @Override
675
752
  public boolean dispatchGenericMotionEvent(MotionEvent ev) {
753
+ // Ignore generic motion events (joystick, mouse wheel, trackpad) if scrolling is disabled
754
+ if (!mScrollEnabled) {
755
+ return false;
756
+ }
757
+
676
758
  // We do not dispatch the motion event if its children are not supposed to receive it
677
759
  if (!PointerEvents.canChildrenBeTouchTarget(mPointerEvents)) {
678
760
  return false;
@@ -689,7 +771,7 @@ public class ReactScrollView extends ScrollView
689
771
  && (mPagingEnabled
690
772
  || mSnapInterval != 0
691
773
  || mSnapOffsets != null
692
- || mSnapToAlignment != SNAP_ALIGNMENT_DISABLED)) {
774
+ || (mSnapToAlignment != SNAP_ALIGNMENT_DISABLED && mSnapToAlignment != SNAP_ALIGNMENT_ITEM))) {
693
775
  // Cancel any pending post-touch runnable and reschedule
694
776
  if (mPostTouchRunnable != null) {
695
777
  removeCallbacks(mPostTouchRunnable);
@@ -771,6 +853,14 @@ public class ReactScrollView extends ScrollView
771
853
  }
772
854
  }
773
855
 
856
+ @Override
857
+ public boolean getClipToPadding() {
858
+ if (ReactNativeFeatureFlags.syncAndroidClipToPaddingWithOverflow()) {
859
+ return mOverflow != Overflow.VISIBLE;
860
+ }
861
+ return super.getClipToPadding();
862
+ }
863
+
774
864
  @Override
775
865
  public void getClippingRect(Rect outClippingRect) {
776
866
  outClippingRect.set(Assertions.assertNotNull(mClippingRect));
@@ -1051,7 +1141,7 @@ public class ReactScrollView extends ScrollView
1051
1141
  }
1052
1142
 
1053
1143
  // pagingEnabled only allows snapping one interval at a time
1054
- if (mSnapInterval == 0 && mSnapOffsets == null && mSnapToAlignment == SNAP_ALIGNMENT_DISABLED) {
1144
+ if (mSnapInterval == 0 && mSnapOffsets == null && (mSnapToAlignment == SNAP_ALIGNMENT_DISABLED || mSnapToAlignment == SNAP_ALIGNMENT_ITEM)) {
1055
1145
  smoothScrollAndSnap(velocityY);
1056
1146
  return;
1057
1147
  }
@@ -1090,7 +1180,7 @@ public class ReactScrollView extends ScrollView
1090
1180
  }
1091
1181
  }
1092
1182
 
1093
- } else if (mSnapToAlignment != SNAP_ALIGNMENT_DISABLED) {
1183
+ } else if (mSnapToAlignment != SNAP_ALIGNMENT_DISABLED && mSnapToAlignment != SNAP_ALIGNMENT_ITEM) {
1094
1184
  if (mSnapInterval > 0) {
1095
1185
  double ratio = (double) targetOffset / mSnapInterval;
1096
1186
  smallerOffset =
@@ -1330,7 +1420,11 @@ public class ReactScrollView extends ScrollView
1330
1420
  * scroll view and state. Calling raw `smoothScrollTo` doesn't update state.
1331
1421
  */
1332
1422
  public void reactSmoothScrollTo(int x, int y) {
1333
- ReactScrollViewHelper.smoothScrollTo(this, x, y);
1423
+ if (mScrollAnimationEnabled || !UiModeUtils.isTVDevice(getContext())) {
1424
+ ReactScrollViewHelper.smoothScrollTo(this, x, y);
1425
+ } else {
1426
+ scrollTo(x, y);
1427
+ }
1334
1428
  setPendingContentOffsets(x, y);
1335
1429
  }
1336
1430