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
@@ -30,6 +30,7 @@
30
30
  #import <React/RCTTVRemoteHandler.h>
31
31
  #import <React/RCTTVNavigationEventNotification.h>
32
32
  #import "React/RCTI18nUtil.h"
33
+ #import "RCTViewComponentView.h"
33
34
  #endif
34
35
 
35
36
  using namespace facebook::react;
@@ -40,6 +41,7 @@ static NSString *kOnScrollEndEvent = @"onScrollEnded";
40
41
 
41
42
  static const CGFloat kClippingLeeway = 44.0;
42
43
  static const float TV_DEFAULT_SWIPE_DURATION = 0.3;
44
+ static const CGPoint NO_PREFERRED_CONTENT_OFFSET = CGPointMake(CGFLOAT_MIN, CGFLOAT_MIN);
43
45
 
44
46
  static UIScrollViewKeyboardDismissMode RCTUIKeyboardDismissModeFromProps(const ScrollViewProps &props)
45
47
  {
@@ -97,6 +99,8 @@ RCTSendScrollEventForNativeAnimations_DEPRECATED(UIScrollView *scrollView, NSInt
97
99
  RCTScrollableProtocol,
98
100
  RCTEnhancedScrollViewOverridingDelegate>
99
101
 
102
+ @property (nonatomic, assign) CGPoint preferredContentOffset;
103
+
100
104
  @end
101
105
 
102
106
  @implementation RCTScrollViewComponentView {
@@ -172,6 +176,7 @@ RCTSendScrollEventForNativeAnimations_DEPRECATED(UIScrollView *scrollView, NSInt
172
176
  _endDraggingSensitivityMultiplier = 1;
173
177
 
174
178
  _tvRemoteGestureRecognizers = [NSMutableDictionary new];
179
+ _preferredContentOffset = NO_PREFERRED_CONTENT_OFFSET;
175
180
  }
176
181
 
177
182
  return self;
@@ -429,6 +434,9 @@ static inline UIViewAnimationOptions animationOptionsWithCurve(UIViewAnimationCu
429
434
 
430
435
  scrollView.snapToStart = newScrollViewProps.snapToStart;
431
436
  scrollView.snapToEnd = newScrollViewProps.snapToEnd;
437
+ #if TARGET_OS_TV
438
+ scrollView.scrollAnimationEnabled = newScrollViewProps.scrollAnimationEnabled;
439
+ #endif
432
440
 
433
441
  if (oldScrollViewProps.snapToOffsets != newScrollViewProps.snapToOffsets) {
434
442
  NSMutableArray<NSNumber *> *snapToOffsets = [NSMutableArray array];
@@ -465,6 +473,12 @@ static inline UIViewAnimationOptions animationOptionsWithCurve(UIViewAnimationCu
465
473
  scrollView.keyboardDismissMode = RCTUIKeyboardDismissModeFromProps(newScrollViewProps);
466
474
  }
467
475
 
476
+ #if TARGET_OS_TV
477
+ if (oldScrollViewProps.snapToAlignment != newScrollViewProps.snapToAlignment) {
478
+ scrollView.scrollSnapEnabled = newScrollViewProps.snapToAlignment == ScrollViewSnapToAlignment::Item;
479
+ }
480
+ #endif
481
+
468
482
  [super updateProps:props oldProps:oldProps];
469
483
  }
470
484
 
@@ -702,6 +716,11 @@ static inline UIViewAnimationOptions animationOptionsWithCurve(UIViewAnimationCu
702
716
  _scrollView.contentOffset = RCTCGPointFromPoint(props.contentOffset);
703
717
  // Reset zoom scale to default
704
718
  _scrollView.zoomScale = 1.0;
719
+ // Invalidate cached content size so that updateState: recalculates the
720
+ // container frame after zoomScale reset (which may have mutated it in RTL).
721
+ _contentSize = CGSizeZero;
722
+ // Reset contentInset to prevent stale insets leaking into recycled scroll views.
723
+ _scrollView.contentInset = UIEdgeInsetsZero;
705
724
  // We set the default behavior to "never" so that iOS
706
725
  // doesn't do weird things to UIScrollView insets automatically
707
726
  // and keeps it as an opt-in behavior.
@@ -724,7 +743,10 @@ static inline UIViewAnimationOptions animationOptionsWithCurve(UIViewAnimationCu
724
743
  withVelocity:(CGPoint)velocity
725
744
  targetContentOffset:(inout CGPoint *)targetContentOffset
726
745
  {
727
- if (fabs(_endDraggingSensitivityMultiplier - 1) > 0.0001f) {
746
+ if (!CGPointEqualToPoint(self.preferredContentOffset, NO_PREFERRED_CONTENT_OFFSET))
747
+ {
748
+ *targetContentOffset = self.preferredContentOffset;
749
+ } else if (fabs(_endDraggingSensitivityMultiplier - 1) > 0.0001f) {
728
750
  if (targetContentOffset->y > 0) {
729
751
  const CGFloat travel = targetContentOffset->y - scrollView.contentOffset.y;
730
752
  targetContentOffset->y = scrollView.contentOffset.y + travel * _endDraggingSensitivityMultiplier;
@@ -1139,20 +1161,133 @@ static inline UIViewAnimationOptions animationOptionsWithCurve(UIViewAnimationCu
1139
1161
  #pragma mark Apple TV swipe and focus handling
1140
1162
 
1141
1163
  #if TARGET_OS_TV
1164
+ - (void)sendFocusEvent
1165
+ {
1166
+ self->_eventEmitter->onFocus();
1167
+ }
1168
+
1169
+ - (void)sendBlurEvent
1170
+ {
1171
+ self->_eventEmitter->onBlur();
1172
+ }
1173
+
1174
+ // Focus marker helper: traverses view hierarchy to find scrollSnapAlign prop
1175
+ // Returns the view that has the property via the output parameter
1176
+ - (NSString *)findScrollSnapAlignInView:(UIView *)view foundView:(UIView **)outView
1177
+ {
1178
+ UIView *testView = view;
1179
+ UIView *snapTarget;
1180
+ NSString *marker;
1181
+
1182
+ while (testView && testView != self) {
1183
+ if (![testView isKindOfClass:RCTViewComponentView.class])
1184
+ {
1185
+ testView = [testView superview];
1186
+ continue;
1187
+ }
1188
+ RCTViewComponentView *componentView = (RCTViewComponentView *)testView;
1189
+
1190
+ const auto &viewProps = static_cast<const facebook::react::BaseViewProps &>(*componentView.props);
1191
+ if (viewProps.scrollSnapAlign.has_value() && !viewProps.scrollSnapAlign.value().empty()) {
1192
+ marker = [NSString stringWithUTF8String:viewProps.scrollSnapAlign.value().c_str()];
1193
+ snapTarget = componentView;
1194
+ }
1195
+
1196
+ testView = [testView superview];
1197
+ }
1198
+ *outView = snapTarget;
1199
+ return marker;
1200
+ }
1201
+
1202
+ - (void)_handleScrollSnapForFocusedView:(UIView *)focusedView
1203
+ {
1204
+ const auto &scrollProps = static_cast<const ScrollViewProps &>(*_props);
1205
+ UIView *snapAlignView = nil;
1206
+ NSString *scrollSnapAlign = [self findScrollSnapAlignInView:focusedView foundView:&snapAlignView];
1207
+ if (scrollSnapAlign == nil || snapAlignView == nil) {
1208
+ return;
1209
+ }
1210
+
1211
+ RCTEnhancedScrollView *scrollView = (RCTEnhancedScrollView *)_scrollView;
1212
+ CGRect focusedFrame = [snapAlignView convertRect:snapAlignView.bounds toView:_scrollView];
1213
+ CGFloat targetOffset;
1214
+ CGFloat snapToItemPadding = scrollProps.snapToItemPadding;
1215
+
1216
+ BOOL isHorizontalSnap = _scrollView.contentSize.width > self.frame.size.width;
1217
+ // Determine axis-specific properties
1218
+ CGFloat viewportSize, focusedOrigin, focusedSize, currentOffset, maxContentSize;
1219
+ if (isHorizontalSnap) {
1220
+ viewportSize = scrollView.bounds.size.width;
1221
+ focusedOrigin = focusedFrame.origin.x;
1222
+ focusedSize = focusedFrame.size.width;
1223
+ currentOffset = scrollView.contentOffset.x;
1224
+ maxContentSize = scrollView.contentSize.width;
1225
+ } else {
1226
+ viewportSize = scrollView.bounds.size.height;
1227
+ focusedOrigin = focusedFrame.origin.y;
1228
+ focusedSize = focusedFrame.size.height;
1229
+ currentOffset = scrollView.contentOffset.y;
1230
+ maxContentSize = scrollView.contentSize.height;
1231
+ }
1232
+ // Calculate target offset based on scrollSnapAlign (unified for both axes)
1233
+ if ([scrollSnapAlign isEqualToString:@"start"]) {
1234
+ targetOffset = focusedOrigin - snapToItemPadding;
1235
+ } else if ([scrollSnapAlign isEqualToString:@"center"]) {
1236
+ CGFloat viewportCenter = viewportSize / 2;
1237
+ CGFloat focusedCenter = focusedOrigin + (focusedSize / 2);
1238
+ targetOffset = focusedCenter - viewportCenter + (snapToItemPadding / 2);
1239
+ } else if ([scrollSnapAlign isEqualToString:@"end"]) {
1240
+ targetOffset = (focusedOrigin + focusedSize) - viewportSize + snapToItemPadding;
1241
+ } else {
1242
+ targetOffset = currentOffset;
1243
+ }
1244
+
1245
+ // Apply snap-to-interval if configured
1246
+ if (scrollView.snapToInterval > 0) {
1247
+ CGFloat interval = scrollView.snapToInterval;
1248
+ targetOffset = floor(targetOffset / interval) * interval;
1249
+ }
1250
+
1251
+ // Clamp to valid range
1252
+ CGFloat maxOffset = MAX(maxContentSize - viewportSize, 0);
1253
+ targetOffset = MAX(0, MIN(targetOffset, maxOffset));
1254
+ CGPoint targetContentOffset = isHorizontalSnap
1255
+ ? CGPointMake(targetOffset, scrollView.contentOffset.y)
1256
+ : CGPointMake(scrollView.contentOffset.x, targetOffset);
1257
+ self.preferredContentOffset = targetContentOffset;
1258
+ [_scrollView setContentOffset:targetContentOffset animated:scrollProps.scrollAnimationEnabled];
1259
+ }
1260
+
1142
1261
  - (void)didUpdateFocusInContext:(UIFocusUpdateContext *)context
1143
1262
  withAnimationCoordinator:(UIFocusAnimationCoordinator *)coordinator
1144
1263
  {
1145
- if (context.previouslyFocusedView == context.nextFocusedView || !_props->isTVSelectable) {
1264
+ self.preferredContentOffset = NO_PREFERRED_CONTENT_OFFSET;
1265
+ const auto &scrollProps = static_cast<const ScrollViewProps &>(*_props);
1266
+ BOOL hasItemSnapAlignment = scrollProps.snapToAlignment == ScrollViewSnapToAlignment::Item;
1267
+ if (context.previouslyFocusedView == context.nextFocusedView) {
1146
1268
  return;
1147
1269
  }
1148
- if (context.nextFocusedView == self) {
1270
+ if (!_props->isTVSelectable && !hasItemSnapAlignment) {
1271
+ if (!scrollProps.scrollAnimationEnabled && [context.nextFocusedView isDescendantOfView:_scrollView]) {
1272
+ // When animations are disabled and there's no snap alignment, manually scroll
1273
+ // the focused view into view instantly. We can't let UIScrollView's default
1274
+ // focus handling do this because it uses deceleration (timer-based) that can't
1275
+ // be blocked by the animation-blocking layer.
1276
+ CGRect targetRect = [context.nextFocusedView convertRect:context.nextFocusedView.bounds toView:_scrollView];
1277
+ [_scrollView scrollRectToVisible:targetRect animated:NO];
1278
+ }
1279
+ return;
1280
+ }
1281
+ if (_props->isTVSelectable && context.nextFocusedView == self) {
1149
1282
  [self becomeFirstResponder];
1150
1283
  [self addSwipeGestureRecognizers];
1284
+ [self sendFocusEvent];
1151
1285
  // if we enter the scroll view from different view then block first touch event since it is the event that triggered the focus
1152
1286
  _blockFirstTouch = (unsigned long)context.focusHeading != 0;
1153
1287
  [self addArrowsListeners];
1154
- } else if (context.previouslyFocusedView == self) {
1288
+ } else if (_props->isTVSelectable && context.previouslyFocusedView == self) {
1155
1289
  [self removeArrowsListeners];
1290
+ [self sendBlurEvent];
1156
1291
  [self removeSwipeGestureRecognizers];
1157
1292
  [self resignFirstResponder];
1158
1293
  // If scrolling is enabled:
@@ -1173,6 +1308,8 @@ static inline UIViewAnimationOptions animationOptionsWithCurve(UIViewAnimationCu
1173
1308
  [self scrollToHorizontalOffset:scrollView.contentSize.width];
1174
1309
  }
1175
1310
  }
1311
+ } else if ([context.nextFocusedView isDescendantOfView:_scrollView]) {
1312
+ [self _handleScrollSnapForFocusedView:context.nextFocusedView];
1176
1313
  }
1177
1314
  }
1178
1315
 
@@ -1306,10 +1443,16 @@ static inline UIViewAnimationOptions animationOptionsWithCurve(UIViewAnimationCu
1306
1443
  limitedOffset = MAX(limitedOffset, 0.0);
1307
1444
  limitedOffset = MIN(limitedOffset, maxOffset);
1308
1445
 
1309
- [UIView animateWithDuration:[self swipeDuration] animations:^{
1446
+ const auto &scrollProps = static_cast<const ScrollViewProps &>(*self->_props);
1447
+ if (scrollProps.scrollAnimationEnabled) {
1448
+ [UIView animateWithDuration:[self swipeDuration] animations:^{
1449
+ self.scrollView.contentOffset =
1450
+ CGPointMake(self.scrollView.contentOffset.x, limitedOffset);
1451
+ }];
1452
+ } else {
1310
1453
  self.scrollView.contentOffset =
1311
1454
  CGPointMake(self.scrollView.contentOffset.x, limitedOffset);
1312
- }];
1455
+ }
1313
1456
  });
1314
1457
  }
1315
1458
 
@@ -1330,10 +1473,16 @@ static inline UIViewAnimationOptions animationOptionsWithCurve(UIViewAnimationCu
1330
1473
  limitedOffset = MAX(limitedOffset, 0.0);
1331
1474
  limitedOffset = MIN(limitedOffset, maxOffset);
1332
1475
 
1333
- [UIView animateWithDuration:[self swipeDuration] animations:^{
1476
+ const auto &scrollProps = static_cast<const ScrollViewProps &>(*self->_props);
1477
+ if (scrollProps.scrollAnimationEnabled) {
1478
+ [UIView animateWithDuration:[self swipeDuration] animations:^{
1479
+ self.scrollView.contentOffset =
1480
+ CGPointMake(limitedOffset, self.scrollView.contentOffset.y);
1481
+ }];
1482
+ } else {
1334
1483
  self.scrollView.contentOffset =
1335
1484
  CGPointMake(limitedOffset, self.scrollView.contentOffset.y);
1336
- }];
1485
+ }
1337
1486
  });
1338
1487
  }
1339
1488
 
@@ -18,17 +18,22 @@
18
18
 
19
19
  using namespace facebook::react;
20
20
 
21
+ @interface RCTSwitchComponentView () <RCTSwitchViewProtocol>
22
+ @end
23
+
21
24
  #if TARGET_OS_TV
22
25
 
23
- @implementation RCTSwitchComponentView
26
+ @implementation RCTSwitchComponentView {
27
+ }
28
+
29
+ - (void)setValue:(BOOL)value
30
+ {
31
+ }
24
32
 
25
33
  @end
26
34
 
27
35
  #else
28
36
 
29
- @interface RCTSwitchComponentView () <RCTSwitchViewProtocol>
30
- @end
31
-
32
37
  @implementation RCTSwitchComponentView {
33
38
  UISwitch *_switchView;
34
39
  BOOL _isInitialValueSet;
@@ -135,7 +140,7 @@ using namespace facebook::react;
135
140
 
136
141
  @end
137
142
 
138
- #endif // TARGET_OS_TV
143
+ #endif
139
144
 
140
145
  Class<RCTComponentViewProtocol> RCTSwitchCls(void)
141
146
  {
@@ -39,6 +39,9 @@ using namespace facebook::react;
39
39
 
40
40
  @property (nonatomic, nullable) UIEditMenuInteraction *editMenuInteraction API_AVAILABLE(ios(16.0));
41
41
 
42
+ @end
43
+ #else
44
+ @interface RCTParagraphComponentView ()
42
45
  @end
43
46
  #endif
44
47
 
@@ -282,6 +285,7 @@ using namespace facebook::react;
282
285
 
283
286
  #pragma mark - Context Menu
284
287
 
288
+ #if !TARGET_OS_TV
285
289
  - (void)enableContextMenu
286
290
  {
287
291
  #if !TARGET_OS_TV
@@ -367,6 +371,15 @@ using namespace facebook::react;
367
371
  pasteboard.items = @[ item ];
368
372
  #endif
369
373
  }
374
+ #else
375
+ - (void)enableContextMenu
376
+ {
377
+ }
378
+
379
+ - (void)disableContextMenu
380
+ {
381
+ }
382
+ #endif
370
383
 
371
384
  @end
372
385
 
@@ -30,18 +30,15 @@ static const CGFloat kSingleLineKeyboardBottomOffset = 15.0;
30
30
 
31
31
  using namespace facebook::react;
32
32
 
33
- #if TARGET_OS_TV
34
33
  @interface RCTTextInputComponentView () <
35
34
  RCTBackedTextInputDelegate,
36
- RCTTextInputViewProtocol>
37
- @end
38
- #else
39
- @interface RCTTextInputComponentView () <
40
- RCTBackedTextInputDelegate,
41
- RCTTextInputViewProtocol,
42
- UIDropInteractionDelegate>
43
- @end
35
+ RCTTextInputViewProtocol
36
+ #if !TARGET_OS_TV
37
+ ,
38
+ UIDropInteractionDelegate
44
39
  #endif
40
+ >
41
+ @end
45
42
 
46
43
  static NSSet<NSNumber *> *returnKeyTypesSet;
47
44
 
@@ -225,7 +222,7 @@ static NSSet<NSNumber *> *returnKeyTypesSet;
225
222
  RCTUITextViewDataDetectorTypesFromStringVector(newTextInputProps.traits.dataDetectorTypes);
226
223
  }
227
224
  #endif
228
-
225
+
229
226
  if (newTextInputProps.traits.enablesReturnKeyAutomatically !=
230
227
  oldTextInputProps.traits.enablesReturnKeyAutomatically) {
231
228
  _backedTextInputView.enablesReturnKeyAutomatically = newTextInputProps.traits.enablesReturnKeyAutomatically;
@@ -692,11 +689,10 @@ static NSSet<NSNumber *> *returnKeyTypesSet;
692
689
  action:@selector(handleInputAccessoryDoneButton)];
693
690
  toolbarView.items = @[ flexibleSpace, doneButton ];
694
691
  _backedTextInputView.inputAccessoryView = toolbarView;
695
- } else
696
- #endif
697
- {
692
+ } else {
698
693
  _backedTextInputView.inputAccessoryView = nil;
699
694
  }
695
+ #endif
700
696
 
701
697
  if (_backedTextInputView.isFirstResponder) {
702
698
  [_backedTextInputView reloadInputViews];
@@ -41,6 +41,8 @@ UITextInputPasswordRules *RCTUITextInputPasswordRulesFromString(const std::strin
41
41
 
42
42
  UITextSmartInsertDeleteType RCTUITextSmartInsertDeleteTypeFromOptionalBool(std::optional<bool> smartInsertDelete);
43
43
 
44
+ #if !TARGET_OS_TV
44
45
  UIDataDetectorTypes RCTUITextViewDataDetectorTypesFromStringVector(const std::vector<std::string> &dataDetectorTypes);
46
+ #endif
45
47
 
46
48
  NS_ASSUME_NONNULL_END
@@ -271,6 +271,7 @@ UITextSmartInsertDeleteType RCTUITextSmartInsertDeleteTypeFromOptionalBool(std::
271
271
  : UITextSmartInsertDeleteTypeDefault;
272
272
  }
273
273
 
274
+ #if !TARGET_OS_TV
274
275
  UIDataDetectorTypes RCTUITextViewDataDetectorTypesFromStringVector(const std::vector<std::string> &dataDetectorTypes)
275
276
  {
276
277
  #if TARGET_OS_TV
@@ -302,3 +303,4 @@ UIDataDetectorTypes RCTUITextViewDataDetectorTypesFromStringVector(const std::ve
302
303
  return ret;
303
304
  #endif
304
305
  }
306
+ #endif
@@ -80,6 +80,8 @@ NS_ASSUME_NONNULL_BEGIN
80
80
  @property(nonatomic, nullable) UIFocusGuide *focusGuideLeft;
81
81
  @property(nonatomic, nullable) UIFocusGuide *focusGuideRight;
82
82
  @property(nonatomic, nullable, strong) RCTTVRemoteSelectHandler *tvRemoteSelectHandler;
83
+
84
+ - (NSString *)scrollSnapAlign;
83
85
  #endif
84
86
 
85
87
  /**
@@ -87,7 +87,9 @@ const CGFloat BACKGROUND_COLOR_ZPOSITION = -1024.0f;
87
87
  BOOL _trapFocusRight;
88
88
  NSArray* _focusDestinations;
89
89
  id<UIFocusItem> _previouslyFocusedItem;
90
+ NSString *_scrollSnapAlign;
90
91
  RCTSwiftUIContainerViewWrapper *_swiftUIWrapper;
92
+ BOOL _shouldFocusOnMount;
91
93
  }
92
94
 
93
95
  #ifdef RCT_DYNAMIC_FRAMEWORKS
@@ -102,6 +104,9 @@ const CGFloat BACKGROUND_COLOR_ZPOSITION = -1024.0f;
102
104
  if (self = [super initWithFrame:frame]) {
103
105
  _props = ViewShadowNode::defaultSharedProps();
104
106
  _reactSubviews = [NSMutableArray new];
107
+ #if !TARGET_OS_TV
108
+ self.multipleTouchEnabled = YES;
109
+ #endif
105
110
  _useCustomContainerView = NO;
106
111
  _removeClippedSubviews = NO;
107
112
  #if TARGET_OS_TV
@@ -113,8 +118,8 @@ const CGFloat BACKGROUND_COLOR_ZPOSITION = -1024.0f;
113
118
  _tvParallaxProperties.pressMagnification = 1.0f;
114
119
  _tvParallaxProperties.pressDuration = 0.3f;
115
120
  _tvParallaxProperties.pressDelay = 0.0f;
116
- #else
117
- self.multipleTouchEnabled = YES;
121
+
122
+ _shouldFocusOnMount = false;
118
123
  #endif
119
124
  }
120
125
  return self;
@@ -170,6 +175,15 @@ const CGFloat BACKGROUND_COLOR_ZPOSITION = -1024.0f;
170
175
 
171
176
  #pragma mark - Apple TV methods
172
177
 
178
+ - (void)didMoveToWindow {
179
+ [super didMoveToWindow];
180
+
181
+ if (self->_shouldFocusOnMount) {
182
+ self->_shouldFocusOnMount = false;
183
+ [self focusSelf];
184
+ }
185
+ }
186
+
173
187
  - (RCTSurfaceHostingProxyRootView *)containingRootView
174
188
  {
175
189
  UIView *rootview = self;
@@ -205,10 +219,8 @@ const CGFloat BACKGROUND_COLOR_ZPOSITION = -1024.0f;
205
219
  if (!focusedSync) {
206
220
  // `focusSelf` function relies on `rootView` which may not be present on the first render.
207
221
  // `focusSelf` fails and returns `false` in that case. We try re-executing the same action
208
- // by putting it to the main queue to make sure it runs after UI creation is completed.
209
- dispatch_async(dispatch_get_main_queue(), ^{
210
- [self focusSelf];
211
- });
222
+ // when the view has moved to the window. This is tracked by the `_shouldFocusOnMount` flag.
223
+ self->_shouldFocusOnMount = true;
212
224
  }
213
225
  }
214
226
 
@@ -431,6 +443,13 @@ const CGFloat BACKGROUND_COLOR_ZPOSITION = -1024.0f;
431
443
  _motionEffectsAdded = NO;
432
444
  }
433
445
 
446
+ - (NSString *)scrollSnapAlign
447
+ {
448
+ #if TARGET_OS_TV
449
+ return _scrollSnapAlign;
450
+ #endif
451
+ return nil;
452
+ }
434
453
 
435
454
  - (BOOL)isTVFocusGuide
436
455
  {
@@ -902,6 +921,7 @@ const CGFloat BACKGROUND_COLOR_ZPOSITION = -1024.0f;
902
921
  #if !TARGET_OS_TV
903
922
  // `accessibilityShowsLargeContentViewer`
904
923
  if (oldViewProps.accessibilityShowsLargeContentViewer != newViewProps.accessibilityShowsLargeContentViewer) {
924
+ #if !TARGET_OS_TV
905
925
  if (@available(iOS 13.0, *)) {
906
926
  if (newViewProps.accessibilityShowsLargeContentViewer) {
907
927
  self.showsLargeContentViewer = YES;
@@ -911,13 +931,16 @@ const CGFloat BACKGROUND_COLOR_ZPOSITION = -1024.0f;
911
931
  self.showsLargeContentViewer = NO;
912
932
  }
913
933
  }
934
+ #endif
914
935
  }
915
936
 
916
937
  // `accessibilityLargeContentTitle`
917
938
  if (oldViewProps.accessibilityLargeContentTitle != newViewProps.accessibilityLargeContentTitle) {
939
+ #if !TARGET_OS_TV
918
940
  if (@available(iOS 13.0, *)) {
919
941
  self.largeContentTitle = RCTNSStringFromStringNilIfEmpty(newViewProps.accessibilityLargeContentTitle);
920
942
  }
943
+ #endif
921
944
  }
922
945
  #endif
923
946
 
@@ -1160,6 +1183,15 @@ const CGFloat BACKGROUND_COLOR_ZPOSITION = -1024.0f;
1160
1183
  _trapFocusDown = newViewProps.trapFocusDown;
1161
1184
  _trapFocusLeft = newViewProps.trapFocusLeft;
1162
1185
  _trapFocusRight = newViewProps.trapFocusRight;
1186
+
1187
+ // `scrollSnapAlign`
1188
+ if (oldViewProps.scrollSnapAlign != newViewProps.scrollSnapAlign) {
1189
+ if (newViewProps.scrollSnapAlign.has_value()) {
1190
+ _scrollSnapAlign = [[NSString alloc] initWithUTF8String:newViewProps.scrollSnapAlign.value().c_str()];
1191
+ } else {
1192
+ _scrollSnapAlign = nil;
1193
+ }
1194
+ }
1163
1195
  #endif
1164
1196
 
1165
1197
  _needsInvalidateLayer = _needsInvalidateLayer || needsInvalidateLayer;
@@ -1185,6 +1217,12 @@ const CGFloat BACKGROUND_COLOR_ZPOSITION = -1024.0f;
1185
1217
  // re-applying individual sub-values which weren't changed.
1186
1218
  [super updateLayoutMetrics:layoutMetrics oldLayoutMetrics:_layoutMetrics];
1187
1219
 
1220
+ // Capture the frame size that was used by updateProps to resolve the
1221
+ // transform, before overwriting _layoutMetrics. This is important because
1222
+ // _layoutMetrics may be stale (e.g., from a recycled view) and differ from
1223
+ // the oldLayoutMetrics parameter (which comes from the shadow tree).
1224
+ auto previousFrameSize = _layoutMetrics.frame.size;
1225
+
1188
1226
  _layoutMetrics = layoutMetrics;
1189
1227
  _needsInvalidateLayer = YES;
1190
1228
 
@@ -1202,8 +1240,12 @@ const CGFloat BACKGROUND_COLOR_ZPOSITION = -1024.0f;
1202
1240
  _backgroundColorLayer.frame = CGRectMake(0, 0, self.layer.bounds.size.width, self.layer.bounds.size.height);
1203
1241
  }
1204
1242
 
1243
+ // Recompute the transform whenever the layout size differs from what was
1244
+ // used in updateProps. Using previousFrameSize (the stored _layoutMetrics)
1245
+ // instead of the oldLayoutMetrics parameter ensures correctness even when
1246
+ // the view was recycled with stale dimensions.
1205
1247
  if ((_props->transformOrigin.isSet() || !_props->transform.operations.empty()) &&
1206
- layoutMetrics.frame.size != oldLayoutMetrics.frame.size) {
1248
+ layoutMetrics.frame.size != previousFrameSize) {
1207
1249
  auto newTransform = _props->resolveTransform(layoutMetrics);
1208
1250
  self.layer.transform = RCTCATransform3DFromTransformMatrix(newTransform);
1209
1251
  }
@@ -1287,6 +1329,7 @@ const CGFloat BACKGROUND_COLOR_ZPOSITION = -1024.0f;
1287
1329
  _isJSResponder = NO;
1288
1330
  _removeClippedSubviews = NO;
1289
1331
  _reactSubviews = [NSMutableArray new];
1332
+ _layoutMetrics = {};
1290
1333
  }
1291
1334
 
1292
1335
  - (void)setPropKeysManagedByAnimated_DO_NOT_USE_THIS_IS_BROKEN:(NSSet<NSString *> *_Nullable)props
@@ -1578,7 +1621,8 @@ static RCTBorderStyle RCTBorderStyleFromOutlineStyle(OutlineStyle outlineStyle)
1578
1621
  layer.shadowPath = nil;
1579
1622
  }
1580
1623
 
1581
- #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 170000 /* __IPHONE_17_0 */ && !TARGET_OS_TV
1624
+ #if !TARGET_OS_TV && defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && \
1625
+ __IPHONE_OS_VERSION_MAX_ALLOWED >= 170000 /* __IPHONE_17_0 */
1582
1626
  // Stage 1.5. Cursor / Hover Effects
1583
1627
  if (@available(iOS 17.0, *)) {
1584
1628
  UIHoverStyle *hoverStyle = nil;
@@ -1999,6 +2043,10 @@ static NSString *RCTRecursiveAccessibilityLabel(UIView *view)
1999
2043
  // Result string is initialized lazily to prevent useless but costly allocations.
2000
2044
  NSMutableString *result = nil;
2001
2045
  for (UIView *subview in view.subviews) {
2046
+ // Skip subviews that have accessibilityElementsHidden set to YES
2047
+ if (subview.accessibilityElementsHidden) {
2048
+ continue;
2049
+ }
2002
2050
  NSString *label = subview.accessibilityLabel;
2003
2051
  if (!label) {
2004
2052
  label = RCTRecursiveAccessibilityLabel(subview);
@@ -8,10 +8,11 @@
8
8
  #import <UIKit/UIKit.h>
9
9
 
10
10
  #import <React/RCTViewComponentView.h>
11
+ #import <React/RCTVirtualViewProtocol.h>
11
12
 
12
13
  NS_ASSUME_NONNULL_BEGIN
13
14
 
14
- @interface RCTVirtualViewComponentView : RCTViewComponentView
15
+ @interface RCTVirtualViewComponentView : RCTViewComponentView <RCTVirtualViewProtocol>
15
16
 
16
17
  + (instancetype)new NS_UNAVAILABLE;
17
18
  - (instancetype)init NS_UNAVAILABLE;