@depup/react-native 0.84.1-depup.2 → 0.85.0-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (871) 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/RCTDefaultReactNativeFactoryDelegate.mm +4 -0
  25. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +1 -0
  26. package/Libraries/AppDelegate/RCTRootViewFactory.mm +8 -0
  27. package/Libraries/AppState/AppState.js +1 -1
  28. package/Libraries/BatchedBridge/MessageQueue.js +3 -3
  29. package/Libraries/BatchedBridge/NativeModules.js +12 -10
  30. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
  31. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
  32. package/Libraries/Components/Button.js +2 -2
  33. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
  34. package/Libraries/Components/Keyboard/Keyboard.js +6 -6
  35. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
  36. package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
  37. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
  38. package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
  39. package/Libraries/Components/Pressable/Pressable.js +3 -3
  40. package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
  41. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  42. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
  43. package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
  44. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
  45. package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -0
  46. package/Libraries/Components/ScrollView/ScrollView.js +19 -9
  47. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -18
  48. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
  49. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  50. package/Libraries/Components/StaticRenderer.js +1 -1
  51. package/Libraries/Components/StatusBar/StatusBar.js +8 -8
  52. package/Libraries/Components/Switch/Switch.js +3 -3
  53. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
  54. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  55. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
  56. package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
  57. package/Libraries/Components/TextInput/TextInput.js +8 -4
  58. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  59. package/Libraries/Components/Touchable/Touchable.js +2 -2
  60. package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
  61. package/Libraries/Components/Touchable/TouchableHighlight.js +8 -8
  62. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
  63. package/Libraries/Components/Touchable/TouchableOpacity.js +4 -4
  64. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
  65. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  66. package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
  67. package/Libraries/Components/View/ViewAccessibility.js +7 -7
  68. package/Libraries/Components/View/ViewPropTypes.js +14 -14
  69. package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
  70. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  71. package/Libraries/Core/ExceptionsManager.js +2 -2
  72. package/Libraries/Core/ExtendedError.js +3 -3
  73. package/Libraries/Core/RawEventEmitter.js +1 -1
  74. package/Libraries/Core/ReactNativeVersion.js +2 -2
  75. package/Libraries/Core/Timers/JSTimers.js +3 -2
  76. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  77. package/Libraries/Core/setUpErrorHandling.js +4 -2
  78. package/Libraries/Core/setUpReactDevTools.js +23 -6
  79. package/Libraries/Core/setUpSegmentFetcher.js +1 -1
  80. package/Libraries/Debugging/DebuggingOverlay.js +2 -2
  81. package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
  82. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
  83. package/Libraries/FBLazyVector/FBLazyVector/FBLazyIterator.h +0 -6
  84. package/Libraries/Image/AssetSourceResolver.js +1 -1
  85. package/Libraries/Image/Image.android.js +172 -306
  86. package/Libraries/Image/ImageProps.js +9 -11
  87. package/Libraries/Image/ImageSource.js +2 -2
  88. package/Libraries/Image/ImageSourceUtils.js +8 -4
  89. package/Libraries/Image/ImageTypes.flow.js +2 -2
  90. package/Libraries/Image/ImageViewNativeComponent.js +7 -16
  91. package/Libraries/Image/RCTImageUtils.mm +37 -1
  92. package/Libraries/Image/nativeImageSource.js +1 -1
  93. package/Libraries/Interaction/InteractionManager.js +5 -4
  94. package/Libraries/Interaction/PanResponder.js +1 -1
  95. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  96. package/Libraries/Linking/Linking.js +1 -1
  97. package/Libraries/Lists/FlatList.js +3 -3
  98. package/Libraries/Lists/SectionList.js +1 -1
  99. package/Libraries/Lists/SectionListModern.js +2 -2
  100. package/Libraries/LogBox/Data/LogBoxData.js +38 -24
  101. package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
  102. package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
  103. package/Libraries/LogBox/LogBox.js +42 -19
  104. package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
  105. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  106. package/Libraries/LogBox/UI/LogBoxButton.js +14 -16
  107. package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
  108. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
  109. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
  110. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
  111. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  112. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
  113. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
  114. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
  115. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
  116. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
  117. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
  118. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
  119. package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
  120. package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
  121. package/Libraries/Modal/Modal.js +3 -3
  122. package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
  123. package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
  124. package/Libraries/Network/RCTHTTPRequestHandler.h +9 -0
  125. package/Libraries/Network/RCTHTTPRequestHandler.mm +15 -1
  126. package/Libraries/Network/RCTNetworking.android.js +1 -1
  127. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  128. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  129. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
  130. package/Libraries/Network/XMLHttpRequest.js +1 -1
  131. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  132. package/Libraries/Pressability/Pressability.js +5 -5
  133. package/Libraries/Pressability/PressabilityDebug.js +1 -1
  134. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  135. package/Libraries/Pressability/usePressability.js +3 -14
  136. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
  137. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +25 -4
  138. package/Libraries/ReactNative/AppContainer-dev.js +18 -1
  139. package/Libraries/ReactNative/AppContainer.js +1 -1
  140. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  141. package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
  142. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  143. package/Libraries/ReactNative/RendererImplementation.js +4 -4
  144. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  145. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
  146. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
  147. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
  148. package/Libraries/Renderer/shims/ReactFabric.js +1 -3
  149. package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
  150. package/Libraries/Renderer/shims/ReactNative.js +3 -2
  151. package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
  152. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
  153. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
  154. package/Libraries/StyleSheet/PointPropType.js +1 -1
  155. package/Libraries/StyleSheet/Rect.js +1 -1
  156. package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
  157. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  158. package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
  159. package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
  160. package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
  161. package/Libraries/StyleSheet/StyleSheetTypes.js +33 -35
  162. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
  163. package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
  164. package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
  165. package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
  166. package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
  167. package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
  168. package/Libraries/StyleSheet/processBoxShadow.js +44 -4
  169. package/Libraries/StyleSheet/processColorArray.js +2 -2
  170. package/Libraries/StyleSheet/processFilter.js +2 -2
  171. package/Libraries/Text/Text/RCTDynamicTypeRamp.mm +6 -3
  172. package/Libraries/Text/Text.js +295 -627
  173. package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +10 -2
  174. package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm +26 -2
  175. package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +2 -2
  176. package/Libraries/Text/TextNativeComponent.js +14 -7
  177. package/Libraries/Text/TextProps.js +4 -4
  178. package/Libraries/Types/CodegenTypes.js +1 -1
  179. package/Libraries/Types/CoreEventTypes.js +21 -21
  180. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  181. package/Libraries/Utilities/Appearance.js +6 -1
  182. package/Libraries/Utilities/Dimensions.js +1 -1
  183. package/Libraries/Utilities/HMRClient.js +4 -4
  184. package/Libraries/Utilities/IPerformanceLogger.js +4 -4
  185. package/Libraries/Utilities/codegenNativeCommands.js +4 -4
  186. package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
  187. package/Libraries/Utilities/codegenNativeComponent.js +2 -2
  188. package/Libraries/Utilities/logError.js +1 -1
  189. package/Libraries/Utilities/stringifySafe.js +3 -3
  190. package/Libraries/Utilities/useMergeRefs.js +2 -2
  191. package/Libraries/WebSocket/RCTReconnectingWebSocket.m +4 -1
  192. package/Libraries/vendor/core/ErrorUtils.js +4 -4
  193. package/Libraries/vendor/emitter/EventEmitter.js +16 -20
  194. package/README.md +6 -9
  195. package/React/Base/RCTBridge.mm +1 -1
  196. package/React/Base/RCTBundleURLProvider.mm +29 -8
  197. package/React/Base/RCTConvert.mm +6 -0
  198. package/React/Base/RCTDefines.h +0 -8
  199. package/React/Base/RCTDevSupportHttpHeaders.h +24 -0
  200. package/React/Base/RCTDevSupportHttpHeaders.m +65 -0
  201. package/React/Base/RCTJavaScriptLoader.h +1 -0
  202. package/React/Base/RCTJavaScriptLoader.mm +6 -2
  203. package/React/Base/RCTMultipartDataTask.h +9 -0
  204. package/React/Base/RCTMultipartDataTask.m +19 -1
  205. package/React/Base/RCTUtils.mm +20 -1
  206. package/React/Base/RCTVersion.m +2 -2
  207. package/React/CoreModules/RCTActionSheetManager.mm +28 -3
  208. package/React/CoreModules/RCTClipboard.mm +6 -0
  209. package/React/CoreModules/RCTDevLoadingView.mm +1 -1
  210. package/React/CoreModules/RCTDevSettings.mm +8 -0
  211. package/React/CoreModules/RCTDeviceInfo.mm +6 -3
  212. package/React/CoreModules/RCTKeyboardObserver.mm +11 -0
  213. package/React/CoreModules/RCTLogBoxView.mm +4 -0
  214. package/React/CoreModules/RCTPerfMonitor.mm +4 -0
  215. package/React/CoreModules/RCTRedBox.mm +4 -0
  216. package/React/CoreModules/RCTStatusBarManager.h +2 -0
  217. package/React/CoreModules/RCTWebSocketModule.h +6 -0
  218. package/React/CoreModules/RCTWebSocketModule.mm +14 -1
  219. package/React/DevSupport/RCTInspectorDevServerHelper.mm +33 -22
  220. package/React/DevSupport/RCTInspectorNetworkHelper.mm +2 -0
  221. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +66 -79
  222. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.cpp +8 -8
  223. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h +1 -1
  224. package/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm +2 -2
  225. package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryComponentView.mm +4 -0
  226. package/React/Fabric/Mounting/ComponentViews/Modal/RCTFabricModalHostViewController.mm +13 -5
  227. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +14 -0
  228. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +18 -0
  229. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +7 -0
  230. package/React/Fabric/Mounting/ComponentViews/Switch/RCTSwitchComponentView.mm +15 -0
  231. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +15 -0
  232. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +10 -2
  233. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.h +2 -0
  234. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +4 -2
  235. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +24 -2
  236. package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.h +2 -1
  237. package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.mm +92 -163
  238. package/React/Fabric/Mounting/RCTMountingManager.mm +8 -3
  239. package/React/Fabric/RCTScheduler.h +2 -0
  240. package/React/Fabric/RCTScheduler.mm +57 -0
  241. package/React/Fabric/RCTSurfacePointerHandler.mm +15 -7
  242. package/React/Fabric/RCTSurfacePresenter.mm +9 -0
  243. package/React/Fabric/RCTSurfaceTouchHandler.mm +4 -0
  244. package/React/Fabric/Surface/RCTFabricSurface.mm +4 -0
  245. package/React/Fabric/Utils/RCTLinearGradient.mm +4 -9
  246. package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +5 -1
  247. package/React/Modules/RCTLayoutAnimation.m +10 -0
  248. package/React/Modules/RCTRedBoxExtraDataViewController.m +2 -0
  249. package/React/Modules/RCTUIManager.mm +2 -2
  250. package/React/Profiler/RCTProfile.m +4 -0
  251. package/React/React-RCTFabric.podspec +3 -0
  252. package/React/Views/RCTComponentData.mm +2 -0
  253. package/React/Views/RCTView.m +6 -1
  254. package/React/Views/RCTViewManager.m +4 -0
  255. package/React-Core-prebuilt.podspec +1 -1
  256. package/ReactAndroid/api/ReactAndroid.api +120 -298
  257. package/ReactAndroid/build.gradle.kts +9 -0
  258. package/ReactAndroid/gradle.properties +1 -1
  259. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +11 -101
  260. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.kt +2 -2
  261. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +10 -10
  262. package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimationDriver.kt +1 -3
  263. package/ReactAndroid/src/main/java/com/facebook/react/animated/ColorAnimatedNode.kt +11 -11
  264. package/ReactAndroid/src/main/java/com/facebook/react/animated/DiffClampAnimatedNode.kt +11 -11
  265. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +0 -26
  266. package/ReactAndroid/src/main/java/com/facebook/react/animated/InterpolationAnimatedNode.kt +12 -0
  267. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.kt +11 -1
  268. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.kt +5 -5
  269. package/ReactAndroid/src/main/java/com/facebook/react/animated/PropsAnimatedNode.kt +5 -5
  270. package/ReactAndroid/src/main/java/com/facebook/react/animated/SpringAnimation.kt +19 -19
  271. package/ReactAndroid/src/main/java/com/facebook/react/animated/TrackingAnimatedNode.kt +5 -1
  272. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromArray.kt +9 -4
  273. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +15 -15
  274. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaOnlyMap.kt +8 -6
  275. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.kt +3 -1
  276. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +10 -0
  277. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ScrollEndedListener.kt +70 -0
  278. package/ReactAndroid/src/main/java/com/facebook/react/common/assets/ReactFontManager.kt +4 -0
  279. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBuffer.kt +4 -4
  280. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +36 -34
  281. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BundleDownloader.kt +14 -9
  282. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +2 -8
  283. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.kt +3 -2
  284. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.kt +17 -13
  285. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +5 -5
  286. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.kt +10 -19
  287. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxContentView.kt +2 -2
  288. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/DevSupportHttpClient.kt +74 -0
  289. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt +2 -3
  290. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +110 -80
  291. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt +1 -12
  292. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevBundleDownloadListener.kt +1 -1
  293. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevLoadingViewManager.kt +1 -1
  294. package/ReactAndroid/src/main/java/com/facebook/react/fabric/AnimationBackendChoreographer.kt +87 -0
  295. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +36 -7
  296. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +16 -2
  297. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.kt +3 -0
  298. package/ReactAndroid/src/main/java/com/facebook/react/fabric/LongStreamingStats.kt +2 -2
  299. package/ReactAndroid/src/main/java/com/facebook/react/fabric/SurfaceHandlerBinding.kt +6 -6
  300. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventBeatManager.kt +2 -2
  301. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +0 -29
  302. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.kt +2 -8
  303. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt +1258 -0
  304. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/FabricNameComponentMapping.kt +1 -0
  305. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.kt +2 -2
  306. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/MountItemFactory.kt +1 -1
  307. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.kt +1 -1
  308. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +37 -55
  309. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +66 -96
  310. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +14 -20
  311. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +14 -20
  312. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +74 -107
  313. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +14 -20
  314. package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +1 -15
  315. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.kt +2 -2
  316. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.kt +4 -10
  317. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobModule.kt +1 -1
  318. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt +4 -2
  319. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.kt +4 -1
  320. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +45 -74
  321. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +17 -13
  322. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ProgressRequestBody.kt +2 -5
  323. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoHelpers.kt +1 -1
  324. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +2 -2
  325. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +3 -4
  326. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/JSPackagerClient.kt +2 -1
  327. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.kt +2 -8
  328. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessAtomicRef.kt +2 -0
  329. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +9 -3
  330. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt +8 -8
  331. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +12 -12
  332. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +2 -2
  333. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +13 -7
  334. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +14 -14
  335. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.kt +14 -6
  336. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +42 -28
  337. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +8 -49
  338. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.kt +11 -8
  339. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.kt +17 -0
  340. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +13 -8
  341. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.kt +751 -0
  342. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +104 -781
  343. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.kt +18 -0
  344. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +7 -9
  345. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +7 -31
  346. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactZIndexedViewGroup.kt +11 -1
  347. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +4 -0
  348. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.kt +1 -4
  349. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +103 -759
  350. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.kt +14 -38
  351. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +41 -170
  352. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +33 -962
  353. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupDrawingOrderHelper.kt +2 -0
  354. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/UIManagerType.kt +22 -0
  355. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/ViewUtil.kt +15 -0
  356. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +1 -6
  357. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.kt +2 -9
  358. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +12 -1
  359. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.kt +1 -16
  360. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +0 -33
  361. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundImageLayer.kt +27 -0
  362. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundPosition.kt +20 -0
  363. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundRepeat.kt +27 -0
  364. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundSize.kt +50 -0
  365. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderColors.kt +33 -0
  366. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderInsets.kt +25 -1
  367. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +46 -2
  368. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderStyle.kt +14 -0
  369. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BoxShadow.kt +23 -1
  370. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ColorStop.kt +45 -7
  371. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ComputedBorderRadius.kt +40 -2
  372. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/CornerRadii.kt +21 -1
  373. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Gradient.kt +16 -0
  374. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/LinearGradient.kt +34 -0
  375. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/LogicalEdge.kt +33 -1
  376. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/OutlineStyle.kt +17 -0
  377. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Overflow.kt +15 -0
  378. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/RadialGradient.kt +42 -0
  379. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.kt +1 -2
  380. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +9 -10
  381. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +1 -1
  382. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ReactProgressBarViewManager.kt +6 -5
  383. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +28 -4
  384. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.kt +5 -0
  385. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.java +1647 -0
  386. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollViewManager.kt +466 -0
  387. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +28 -4
  388. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +2 -9
  389. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.kt +5 -0
  390. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainer.kt +2 -35
  391. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateClassic.kt +7 -30
  392. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +20 -41
  393. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/generate-nested-scroll-view.js +270 -0
  394. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.kt +1 -1
  395. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.kt +1 -1
  396. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.kt +7 -7
  397. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayout.kt +2 -0
  398. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayoutTextView.kt +39 -17
  399. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayoutTextViewManager.kt +4 -3
  400. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextUpdate.kt +4 -65
  401. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +58 -108
  402. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewAccessibilityDelegate.kt +6 -0
  403. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt +243 -20
  404. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.kt +1 -2
  405. package/ReactAndroid/src/main/java/com/facebook/react/views/text/SelectableTextViewManager.kt +29 -0
  406. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.kt +1 -2
  407. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +54 -77
  408. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/DrawCommandSpan.kt +27 -0
  409. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactClickableSpan.kt +1 -1
  410. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactLinkSpan.kt +10 -3
  411. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +2 -75
  412. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextChangedEvent.kt +8 -0
  413. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextContentSizeWatcher.kt +1 -1
  414. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +5 -38
  415. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputTextWatcher.kt +3 -2
  416. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextScrollWatcher.kt +1 -1
  417. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextSelectionWatcher.kt +1 -1
  418. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ImportantForInteractionHelper.kt +55 -0
  419. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +17 -59
  420. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +3 -4
  421. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +150 -296
  422. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualViewManager.kt +11 -13
  423. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfig.kt +2 -2
  424. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIBase.kt +64 -0
  425. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIFinalizer.java +4 -4
  426. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDirection.kt +29 -0
  427. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.kt +1 -1
  428. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.kt +244 -0
  429. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +1 -1
  430. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.kt +183 -0
  431. package/ReactAndroid/src/main/jni/CMakeLists.txt +6 -0
  432. package/ReactAndroid/src/main/jni/react/fabric/AndroidAnimationChoreographer.h +38 -0
  433. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +4 -4
  434. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +7 -0
  435. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +2 -0
  436. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +50 -2
  437. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +11 -0
  438. package/ReactAndroid/src/main/jni/react/fabric/JAnimationBackendChoreographer.cpp +23 -0
  439. package/ReactAndroid/src/main/jni/react/fabric/JAnimationBackendChoreographer.h +37 -0
  440. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +2 -1
  441. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +89 -131
  442. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +19 -28
  443. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +0 -1
  444. package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +1 -1
  445. package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +0 -7
  446. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +24 -60
  447. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +12 -28
  448. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +13 -6
  449. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +2 -1
  450. package/{ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.cpp → ReactAndroid/src/main/jni/react/uimanager/StateWrapper.h} +7 -2
  451. package/ReactAndroid/src/main/res/views/uimanager/values/ids.xml +3 -0
  452. package/ReactAndroid/src/main/res/views/uimanager/values-ne/strings.xml +2 -0
  453. package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.mm +8 -1
  454. package/ReactApple/RCTSwiftUI/RCTSwiftUI.podspec +1 -1
  455. package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIWrapper.podspec +1 -2
  456. package/ReactCommon/React-Fabric.podspec +5 -6
  457. package/ReactCommon/React-FabricComponents.podspec +6 -8
  458. package/ReactCommon/cxxreact/ReactNativeVersion.h +8 -6
  459. package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +1 -1
  460. package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeTargetDelegate.cpp +25 -16
  461. package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeTargetDelegate.h +1 -1
  462. package/ReactCommon/jsinspector-modern/HostAgent.cpp +10 -30
  463. package/ReactCommon/jsinspector-modern/HostAgent.h +4 -11
  464. package/ReactCommon/jsinspector-modern/HostTarget.cpp +33 -33
  465. package/ReactCommon/jsinspector-modern/HostTarget.h +23 -24
  466. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +1 -2
  467. package/ReactCommon/jsinspector-modern/HostTargetTracing.h +89 -0
  468. package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +4 -9
  469. package/ReactCommon/jsinspector-modern/InspectorInterfaces.h +0 -1
  470. package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +164 -54
  471. package/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +39 -4
  472. package/ReactCommon/jsinspector-modern/NetworkIOAgent.cpp +12 -3
  473. package/ReactCommon/jsinspector-modern/NetworkIOAgent.h +13 -0
  474. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +6 -0
  475. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +34 -18
  476. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +19 -0
  477. package/ReactCommon/jsinspector-modern/RuntimeTargetDebuggerSessionObserver.cpp +6 -95
  478. package/ReactCommon/jsinspector-modern/RuntimeTargetGlobalStateObserver.cpp +122 -0
  479. package/ReactCommon/jsinspector-modern/RuntimeTargetGlobalStateObserver.h +42 -0
  480. package/ReactCommon/jsinspector-modern/RuntimeTargetTracingStateObserver.cpp +27 -0
  481. package/ReactCommon/jsinspector-modern/RuntimeTargetTracingStateObserver.h +27 -0
  482. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +7 -45
  483. package/ReactCommon/jsinspector-modern/TracingAgent.h +0 -11
  484. package/ReactCommon/jsinspector-modern/UniqueMonostate.h +0 -4
  485. package/ReactCommon/jsinspector-modern/WeakList.h +60 -1
  486. package/ReactCommon/jsinspector-modern/network/NetworkHandler.cpp +25 -21
  487. package/ReactCommon/jsinspector-modern/network/NetworkHandler.h +21 -15
  488. package/ReactCommon/jsinspector-modern/tests/GmockHelpers.h +1 -1
  489. package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +3 -3
  490. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionMultiSessionTest.cpp +692 -0
  491. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp +10 -123
  492. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.h +140 -0
  493. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +158 -6
  494. package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +34 -0
  495. package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +223 -4
  496. package/ReactCommon/jsinspector-modern/tests/WeakListTest.cpp +31 -1
  497. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.cpp +1 -1
  498. package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +6 -9
  499. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +4 -6
  500. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +6 -17
  501. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +4 -5
  502. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +27 -39
  503. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +32 -47
  504. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +153 -207
  505. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +18 -24
  506. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +25 -37
  507. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +56 -83
  508. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +9 -12
  509. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +3 -1
  510. package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
  511. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +10 -4
  512. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -0
  513. package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.cpp +32 -0
  514. package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.h +2 -0
  515. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +32 -47
  516. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +14 -20
  517. package/ReactCommon/react/renderer/animated/AnimatedModule.h +1 -1
  518. package/ReactCommon/react/renderer/animated/CMakeLists.txt +0 -1
  519. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +108 -151
  520. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +16 -11
  521. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +80 -86
  522. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.h +0 -1
  523. package/ReactCommon/react/renderer/animated/event_drivers/EventAnimationDriver.h +0 -1
  524. package/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.h +0 -2
  525. package/ReactCommon/react/renderer/animated/internal/NativeAnimatedAllowlist.h +2 -2
  526. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +32 -4
  527. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +6 -0
  528. package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +14 -21
  529. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +3 -1
  530. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +6 -3
  531. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +125 -63
  532. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +33 -33
  533. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.cpp +18 -8
  534. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +1 -1
  535. package/ReactCommon/react/renderer/animationbackend/AnimationChoreographer.h +39 -0
  536. package/ReactCommon/react/renderer/animationbackend/CMakeLists.txt +0 -1
  537. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +1 -2
  538. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  539. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.cpp +0 -6
  540. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.h +0 -1
  541. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +0 -4
  542. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +0 -1
  543. package/ReactCommon/react/renderer/attributedstring/conversions.h +60 -0
  544. package/ReactCommon/react/renderer/componentregistry/componentNameByReactViewName.cpp +3 -5
  545. package/ReactCommon/react/renderer/components/image/ImageProps.h +1 -1
  546. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{LegacyViewManagerInteropComponentDescriptor.mm → platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm} +1 -1
  547. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{LegacyViewManagerInteropState.mm → platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropState.mm} +1 -1
  548. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +1 -1
  549. package/ReactCommon/react/renderer/components/scrollview/ScrollViewState.h +1 -1
  550. package/ReactCommon/react/renderer/components/scrollview/primitives.h +1 -10
  551. package/ReactCommon/react/renderer/components/scrollview/tests/ScrollViewTest.cpp +83 -3
  552. package/ReactCommon/react/renderer/components/text/BaseParagraphComponentDescriptor.h +49 -0
  553. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +14 -14
  554. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +3 -28
  555. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +10 -10
  556. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h +4 -4
  557. package/ReactCommon/react/renderer/components/text/SelectableParagraphComponentDescriptor.h +24 -0
  558. package/ReactCommon/react/renderer/components/text/SelectableParagraphShadowNode.h +32 -0
  559. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.cpp +1 -1
  560. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.cpp +1 -1
  561. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +2 -2
  562. package/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +13 -1
  563. package/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.cpp +2 -1
  564. package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +2 -21
  565. package/ReactCommon/react/renderer/components/view/BackgroundImagePropsConversions.cpp +15 -24
  566. package/ReactCommon/react/renderer/components/view/BaseTouch.h +7 -7
  567. package/ReactCommon/react/renderer/components/view/ConcreteViewShadowNode.h +0 -3
  568. package/ReactCommon/react/renderer/components/view/FilterPropsConversions.h +57 -53
  569. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +1 -0
  570. package/ReactCommon/react/renderer/components/view/conversions.h +250 -2
  571. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +1 -63
  572. package/ReactCommon/react/renderer/components/view/primitives.h +3 -86
  573. package/ReactCommon/react/renderer/components/view/tests/ConversionsTest.cpp +215 -0
  574. package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +1 -1
  575. package/ReactCommon/react/renderer/components/virtualview/VirtualViewComponentDescriptor.h +1 -1
  576. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +1 -1
  577. package/ReactCommon/react/renderer/core/EventEmitter.cpp +2 -2
  578. package/ReactCommon/react/renderer/core/EventEmitter.h +8 -8
  579. package/ReactCommon/react/renderer/core/EventPipe.h +1 -1
  580. package/ReactCommon/react/renderer/core/EventTarget.cpp +3 -3
  581. package/ReactCommon/react/renderer/core/EventTarget.h +7 -7
  582. package/ReactCommon/react/renderer/core/LayoutConstraints.h +0 -5
  583. package/ReactCommon/react/renderer/core/LayoutContext.h +0 -5
  584. package/ReactCommon/react/renderer/core/LayoutMetrics.h +0 -2
  585. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +11 -21
  586. package/ReactCommon/react/renderer/core/RawPropsKey.h +0 -1
  587. package/ReactCommon/react/renderer/core/RawPropsKeyMap.cpp +4 -1
  588. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +1 -7
  589. package/ReactCommon/react/renderer/core/RawPropsParser.h +2 -6
  590. package/ReactCommon/react/renderer/core/RawValue.h +1 -2
  591. package/ReactCommon/react/renderer/core/ShadowNode.cpp +33 -31
  592. package/ReactCommon/react/renderer/core/ShadowNode.h +19 -29
  593. package/ReactCommon/react/renderer/core/ShadowNodeFamily.cpp +6 -6
  594. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +14 -14
  595. package/ReactCommon/react/renderer/core/ShadowNodeFragment.cpp +4 -2
  596. package/ReactCommon/react/renderer/core/ShadowNodeFragment.h +2 -2
  597. package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +57 -2
  598. package/ReactCommon/react/renderer/css/CSSBackgroundImage.h +112 -140
  599. package/ReactCommon/react/renderer/css/CSSColor.h +7 -8
  600. package/ReactCommon/react/renderer/css/CSSColorFunction.h +38 -39
  601. package/ReactCommon/react/renderer/css/CSSCompoundDataType.h +23 -17
  602. package/ReactCommon/react/renderer/css/CSSDataType.h +15 -10
  603. package/ReactCommon/react/renderer/css/CSSFilter.h +12 -17
  604. package/ReactCommon/react/renderer/css/CSSKeyword.h +8 -0
  605. package/ReactCommon/react/renderer/css/CSSList.h +11 -11
  606. package/ReactCommon/react/renderer/css/CSSRatio.h +4 -4
  607. package/ReactCommon/react/renderer/css/CSSShadow.h +7 -7
  608. package/ReactCommon/react/renderer/css/CSSSyntaxParser.h +10 -6
  609. package/ReactCommon/react/renderer/css/CSSTokenizer.h +2 -0
  610. package/ReactCommon/react/renderer/css/CSSTransform.h +20 -20
  611. package/ReactCommon/react/renderer/css/CSSTransformOrigin.h +4 -5
  612. package/ReactCommon/react/renderer/css/CSSValueParser.h +71 -67
  613. package/ReactCommon/react/renderer/css/tests/CSSValueParserTest.cpp +11 -10
  614. package/ReactCommon/react/renderer/graphics/BackgroundPosition.h +0 -1
  615. package/ReactCommon/react/renderer/graphics/BackgroundRepeat.h +0 -1
  616. package/ReactCommon/react/renderer/graphics/BackgroundSize.h +0 -1
  617. package/ReactCommon/react/renderer/graphics/Filter.h +3 -2
  618. package/ReactCommon/react/renderer/graphics/LinearGradient.cpp +9 -15
  619. package/ReactCommon/react/renderer/graphics/LinearGradient.h +7 -19
  620. package/ReactCommon/react/renderer/graphics/Point.h +0 -2
  621. package/ReactCommon/react/renderer/graphics/RadialGradient.h +4 -35
  622. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -0
  623. package/ReactCommon/react/renderer/graphics/Rect.h +1 -9
  624. package/ReactCommon/react/renderer/graphics/RectangleCorners.h +1 -10
  625. package/ReactCommon/react/renderer/graphics/RectangleEdges.h +1 -10
  626. package/ReactCommon/react/renderer/graphics/Size.h +0 -5
  627. package/ReactCommon/react/renderer/graphics/Transform.cpp +0 -4
  628. package/ReactCommon/react/renderer/graphics/Transform.h +1 -13
  629. package/ReactCommon/react/renderer/graphics/TransformUtils.h +95 -0
  630. package/ReactCommon/react/renderer/graphics/ValueUnit.h +3 -11
  631. package/ReactCommon/react/renderer/graphics/fromRawValueShared.h +13 -1
  632. package/ReactCommon/react/renderer/imagemanager/ImageManager.h +0 -4
  633. package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.cpp +11 -12
  634. package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.h +4 -3
  635. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +1 -36
  636. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequestParams.h +1 -9
  637. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequestParams.h +1 -9
  638. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +1 -1
  639. package/ReactCommon/react/renderer/imagemanager/primitives.h +0 -5
  640. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.cpp +51 -30
  641. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.h +2 -0
  642. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +21 -38
  643. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +153 -18
  644. package/ReactCommon/react/renderer/mounting/ShadowTree.h +30 -6
  645. package/ReactCommon/react/renderer/mounting/ShadowTreeDelegate.h +11 -0
  646. package/ReactCommon/react/renderer/mounting/ShadowView.cpp +0 -4
  647. package/ReactCommon/react/renderer/mounting/ShadowView.h +0 -1
  648. package/ReactCommon/react/renderer/mounting/internal/DiffMap.h +170 -0
  649. package/ReactCommon/react/renderer/mounting/internal/ShadowViewNodePair.h +0 -5
  650. package/ReactCommon/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.h +3 -3
  651. package/ReactCommon/react/renderer/mounting/stubs/StubView.cpp +0 -4
  652. package/ReactCommon/react/renderer/mounting/stubs/StubView.h +0 -1
  653. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +0 -4
  654. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.h +0 -2
  655. package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +6 -0
  656. package/ReactCommon/react/renderer/mounting/updateMountedFlag.cpp +12 -4
  657. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +2 -1
  658. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverState.cpp +0 -5
  659. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverState.h +0 -1
  660. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +1 -1
  661. package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +1 -0
  662. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +28 -1
  663. package/ReactCommon/react/renderer/scheduler/Scheduler.h +2 -2
  664. package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +6 -0
  665. package/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h +7 -0
  666. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +2 -2
  667. package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManagerExtended.h +18 -18
  668. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +8 -7
  669. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h +5 -5
  670. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.h +3 -3
  671. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +5 -0
  672. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.h +1 -1
  673. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +15 -5
  674. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextPrimitivesConversions.h +2 -2
  675. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +10 -1
  676. package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.cpp +1 -1
  677. package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.h +1 -3
  678. package/ReactCommon/react/renderer/uimanager/PointerHoverTracker.cpp +1 -1
  679. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +68 -38
  680. package/ReactCommon/react/renderer/uimanager/UIManager.h +17 -8
  681. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +17 -5
  682. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -2
  683. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +2 -2
  684. package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +10 -0
  685. package/ReactCommon/react/renderer/uimanager/consistency/LazyShadowTreeRevisionConsistencyManager.cpp +19 -23
  686. package/ReactCommon/react/renderer/uimanager/consistency/LazyShadowTreeRevisionConsistencyManager.h +2 -3
  687. package/ReactCommon/react/renderer/uimanager/consistency/tests/LazyShadowTreeRevisionConsistencyManagerTest.cpp +13 -5
  688. package/ReactCommon/react/renderer/uimanager/primitives.h +16 -7
  689. package/ReactCommon/react/renderer/uimanager/tests/FindShadowNodeByTagTest.cpp +287 -0
  690. package/ReactCommon/react/runtime/TimerManager.cpp +16 -2
  691. package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +11 -6
  692. package/ReactCommon/react/runtime/iostests/RCTHostTests.mm +11 -0
  693. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +17 -3
  694. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +8 -1
  695. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +8 -5
  696. package/ReactCommon/react/utils/ContextContainer.h +0 -2
  697. package/ReactCommon/yoga/yoga/YGNode.cpp +14 -0
  698. package/ReactCommon/yoga/yoga/YGValue.h +0 -4
  699. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +7 -7
  700. package/ReactCommon/yoga/yoga/enums/YogaEnums.h +0 -1
  701. package/ReactCommon/yoga/yoga/node/LayoutResults.h +0 -3
  702. package/ReactCommon/yoga/yoga/numeric/FloatOptional.h +0 -9
  703. package/ReactCommon/yoga/yoga/style/Style.h +0 -4
  704. package/changes.json +5 -17
  705. package/flow/bom.js.flow +18 -17
  706. package/flow/dom.js.flow +12 -5
  707. package/flow/global.js +1 -1
  708. package/gradle/libs.versions.toml +1 -1
  709. package/index.js +9 -0
  710. package/index.js.flow +8 -1
  711. package/jest-preset.js +14 -18
  712. package/package.json +20 -32
  713. package/scripts/cocoapods/rncore.rb +111 -2
  714. package/scripts/cocoapods/utils.rb +2 -0
  715. package/scripts/codegen/templates/Package.swift.template +7 -0
  716. package/scripts/react_native_pods.rb +13 -6
  717. package/scripts/replace-rncore-version.js +12 -3
  718. package/sdks/.hermesv1version +1 -1
  719. package/sdks/.hermesversion +1 -1
  720. package/sdks/hermes-engine/version.properties +2 -2
  721. package/src/private/animated/NativeAnimatedHelper.js +2 -2
  722. package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
  723. package/src/private/components/virtualview/VirtualView.js +14 -21
  724. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
  725. package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
  726. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
  727. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
  728. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
  729. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  730. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
  731. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
  732. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
  733. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
  734. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  735. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  736. package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
  737. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
  738. package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
  739. package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
  740. package/src/private/featureflags/ReactNativeFeatureFlags.js +48 -81
  741. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
  742. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +9 -12
  743. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
  744. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
  745. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
  746. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  747. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
  748. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
  749. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
  750. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
  751. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
  752. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +3 -3
  753. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
  754. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
  755. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
  756. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
  757. package/src/private/styles/composeStyles.js +1 -1
  758. package/src/private/utilities/toError.js +27 -0
  759. package/src/private/utilities/toExtendedError.js +30 -0
  760. package/src/private/webapis/dom/events/Event.js +1 -1
  761. package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
  762. package/src/private/webapis/dom/events/EventTarget.js +3 -3
  763. package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
  764. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  765. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
  766. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
  767. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
  768. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +1 -1
  769. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  770. package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +1 -1
  771. package/src/private/webapis/geometry/DOMRectList.js +2 -2
  772. package/src/private/webapis/geometry/DOMRectList.js.flow +1 -1
  773. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
  774. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
  775. package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
  776. package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
  777. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
  778. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
  779. package/src/private/webapis/performance/LongTasks.js +3 -3
  780. package/src/private/webapis/performance/Performance.js +4 -4
  781. package/src/private/webapis/performance/PerformanceEntry.js +1 -1
  782. package/src/private/webapis/performance/PerformanceObserver.js +2 -2
  783. package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
  784. package/src/private/webapis/structuredClone/structuredClone.js +2 -2
  785. package/src/types/globals.d.ts +4 -4
  786. package/third-party-podspecs/RCT-Folly.podspec +1 -1
  787. package/third-party-podspecs/fmt.podspec +2 -2
  788. package/types/index.d.ts +2 -0
  789. package/types_generated/Libraries/Animated/useAnimatedColor.d.ts +16 -0
  790. package/types_generated/Libraries/Animated/useAnimatedValueXY.d.ts +18 -0
  791. package/types_generated/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +4 -2
  792. package/types_generated/Libraries/Components/ScrollView/ScrollView.d.ts +9 -1
  793. package/types_generated/Libraries/Components/ScrollView/ScrollViewNativeComponentType.d.ts +3 -1
  794. package/types_generated/Libraries/Components/TextInput/TextInput.flow.d.ts +2 -1
  795. package/types_generated/Libraries/LogBox/Data/LogBoxData.d.ts +4 -4
  796. package/types_generated/Libraries/LogBox/Data/LogBoxLog.d.ts +25 -42
  797. package/types_generated/Libraries/LogBox/Data/parseLogBoxLog.d.ts +4 -8
  798. package/types_generated/Libraries/StyleSheet/StyleSheetExports.d.ts +1 -6
  799. package/types_generated/Libraries/Text/Text.d.ts +8 -3
  800. package/types_generated/Libraries/Text/TextNativeComponent.d.ts +3 -1
  801. package/types_generated/index.d.ts +6 -2
  802. package/types_generated/src/private/components/virtualview/VirtualView.d.ts +3 -3
  803. package/types_generated/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.d.ts +107 -0
  804. package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
  805. package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
  806. package/React/Fabric/Mounting/ComponentViews/VirtualViewExperimental/RCTVirtualViewExperimentalComponentView.h +0 -25
  807. package/React/Fabric/Mounting/ComponentViews/VirtualViewExperimental/RCTVirtualViewExperimentalComponentView.mm +0 -321
  808. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +0 -620
  809. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +0 -1411
  810. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +0 -985
  811. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +0 -403
  812. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.kt +0 -336
  813. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventEmitterImpl.kt +0 -135
  814. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarShadowNode.kt +0 -81
  815. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchShadowNode.kt +0 -72
  816. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.kt +0 -677
  817. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.kt +0 -218
  818. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.kt +0 -369
  819. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageShadowNode.kt +0 -156
  820. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageSpan.kt +0 -174
  821. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.kt +0 -54
  822. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/ReactTextInlineImageShadowNode.kt +0 -30
  823. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/TextInlineImageSpan.kt +0 -58
  824. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.kt +0 -228
  825. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental.kt +0 -305
  826. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimentalManager.kt +0 -110
  827. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIBase.java +0 -62
  828. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDirection.java +0 -35
  829. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +0 -279
  830. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +0 -197
  831. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +0 -410
  832. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +0 -113
  833. package/ReactCommon/react/renderer/components/virtualviewexperimental/VirtualViewExperimentalComponentDescriptor.h +0 -19
  834. package/ReactCommon/react/renderer/components/virtualviewexperimental/VirtualViewExperimentalShadowNode.h +0 -38
  835. package/jest/MockNativeMethods.js +0 -27
  836. package/jest/RefreshControlMock.js +0 -32
  837. package/jest/assetFileTransformer.js +0 -33
  838. package/jest/local-setup.js +0 -29
  839. package/jest/mock.js +0 -39
  840. package/jest/mockComponent.js +0 -104
  841. package/jest/mockNativeComponent.js +0 -52
  842. package/jest/mocks/AccessibilityInfo.js +0 -62
  843. package/jest/mocks/ActivityIndicator.js +0 -23
  844. package/jest/mocks/AppState.js +0 -19
  845. package/jest/mocks/Image.js +0 -23
  846. package/jest/mocks/InitializeCore.js +0 -9
  847. package/jest/mocks/Linking.js +0 -28
  848. package/jest/mocks/Modal.js +0 -33
  849. package/jest/mocks/NativeComponentRegistry.js +0 -30
  850. package/jest/mocks/NativeModules.js +0 -239
  851. package/jest/mocks/RefreshControl.js +0 -31
  852. package/jest/mocks/RendererProxy.js +0 -45
  853. package/jest/mocks/ScrollView.js +0 -58
  854. package/jest/mocks/Text.js +0 -27
  855. package/jest/mocks/TextInput.js +0 -32
  856. package/jest/mocks/UIManager.js +0 -60
  857. package/jest/mocks/View.js +0 -27
  858. package/jest/mocks/ViewNativeComponent.js +0 -23
  859. package/jest/mocks/requireNativeComponent.js +0 -22
  860. package/jest/mocks/useColorScheme.js +0 -18
  861. package/jest/react-native-env.js +0 -17
  862. package/jest/renderer.js +0 -40
  863. package/jest/resolver.js +0 -32
  864. package/jest/setup.js +0 -140
  865. /package/React/Fabric/Mounting/ComponentViews/{VirtualViewExperimental → VirtualView}/RCTVirtualViewMode.h +0 -0
  866. /package/React/Fabric/Mounting/ComponentViews/{VirtualViewExperimental → VirtualView}/RCTVirtualViewRenderState.h +0 -0
  867. /package/ReactAndroid/src/main/java/com/facebook/react/fabric/internal/interop/{InteropUiBlockListener.kt → InteropUIBlockListener.kt} +0 -0
  868. /package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{LegacyViewManagerInteropComponentDescriptor.h → platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.h} +0 -0
  869. /package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{RCTLegacyViewManagerInteropCoordinator.h → platform/ios/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.h} +0 -0
  870. /package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{RCTLegacyViewManagerInteropCoordinator.mm → platform/ios/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm} +0 -0
  871. /package/ReactCommon/react/renderer/components/scrollview/{RCTComponentViewHelpers.h → platform/ios/react/renderer/components/scrollview/RCTComponentViewHelpers.h} +0 -0
@@ -5,37 +5,55 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
+ @file:Suppress("DEPRECATION")
9
+
8
10
  package com.facebook.react.views.text
9
11
 
10
12
  import android.os.Build
13
+ import android.text.Layout
11
14
  import android.text.Spannable
15
+ import android.text.SpannableString
16
+ import android.text.Spanned
17
+ import android.text.TextUtils
18
+ import android.text.util.Linkify
19
+ import android.view.Gravity
20
+ import com.facebook.common.logging.FLog
12
21
  import com.facebook.react.R
22
+ import com.facebook.react.common.ReactConstants
13
23
  import com.facebook.react.common.annotations.UnstableReactNativeAPI
14
24
  import com.facebook.react.common.mapbuffer.MapBuffer
15
25
  import com.facebook.react.internal.SystraceSection
16
26
  import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
17
27
  import com.facebook.react.module.annotations.ReactModule
28
+ import com.facebook.react.uimanager.BackgroundStyleApplicator
29
+ import com.facebook.react.uimanager.BaseViewManager
18
30
  import com.facebook.react.uimanager.IViewManagerWithChildren
31
+ import com.facebook.react.uimanager.LayoutShadowNode
32
+ import com.facebook.react.uimanager.LengthPercentage
33
+ import com.facebook.react.uimanager.LengthPercentageType
19
34
  import com.facebook.react.uimanager.ReactStylesDiffMap
35
+ import com.facebook.react.uimanager.ReferenceStateWrapper
20
36
  import com.facebook.react.uimanager.StateWrapper
21
37
  import com.facebook.react.uimanager.ThemedReactContext
38
+ import com.facebook.react.uimanager.ViewDefaults
39
+ import com.facebook.react.uimanager.ViewProps
22
40
  import com.facebook.react.uimanager.annotations.ReactProp
23
- import com.facebook.react.views.text.internal.span.TextInlineImageSpan
41
+ import com.facebook.react.uimanager.annotations.ReactPropGroup
42
+ import com.facebook.react.uimanager.style.BorderRadiusProp
43
+ import com.facebook.react.uimanager.style.BorderStyle.Companion.fromString
44
+ import com.facebook.react.uimanager.style.LogicalEdge
45
+ import com.facebook.react.views.text.DefaultStyleValuesUtil.getDefaultTextColorHighlight
24
46
  import java.util.HashMap
25
47
 
26
- /**
27
- * Concrete class for [ReactTextAnchorViewManager] which represents view managers of anchor `<Text>`
28
- * nodes.
29
- */
30
- @Suppress("DEPRECATION")
48
+ /** View manager for `<Text>` nodes. */
31
49
  @ReactModule(name = ReactTextViewManager.REACT_CLASS)
32
50
  @OptIn(UnstableReactNativeAPI::class)
33
- public class ReactTextViewManager
51
+ public open class ReactTextViewManager
34
52
  @JvmOverloads
35
53
  public constructor(
36
54
  protected var reactTextViewManagerCallback: ReactTextViewManagerCallback? = null
37
55
  ) :
38
- ReactTextAnchorViewManager<ReactTextShadowNode>(),
56
+ BaseViewManager<ReactTextView, LayoutShadowNode>(),
39
57
  IViewManagerWithChildren,
40
58
  ReactTextViewManagerCallback {
41
59
  init {
@@ -53,7 +71,7 @@ public constructor(
53
71
  if (preparedView != null) {
54
72
  // Resets background and borders
55
73
  preparedView.recycleView()
56
- // Defaults from ReactTextAnchorViewManager
74
+ // Reset selection color to default
57
75
  setSelectionColor(preparedView, null)
58
76
  }
59
77
  return preparedView
@@ -75,17 +93,13 @@ public constructor(
75
93
  override fun updateExtraData(view: ReactTextView, extraData: Any) {
76
94
  SystraceSection("ReactTextViewManager.updateExtraData").use { s ->
77
95
  val update = extraData as ReactTextUpdate
78
- val spannable: Spannable = update.text
79
- @Suppress("DEPRECATION")
80
- if (update.containsImages()) {
81
- TextInlineImageSpan.possiblyUpdateInlineImageSpans(spannable, view)
82
- }
96
+ val spanned: Spanned = update.text
83
97
  view.setText(update)
84
98
 
85
99
  // If this text view contains any clickable spans, set a view tag and reset the accessibility
86
100
  // delegate so that these can be picked up by the accessibility system.
87
101
  val accessibilityLinks: ReactTextViewAccessibilityDelegate.AccessibilityLinks =
88
- ReactTextViewAccessibilityDelegate.AccessibilityLinks(spannable)
102
+ ReactTextViewAccessibilityDelegate.AccessibilityLinks(spanned)
89
103
  view.setTag(
90
104
  R.id.accessibility_links,
91
105
  if (accessibilityLinks.size() > 0) accessibilityLinks else null,
@@ -98,14 +112,13 @@ public constructor(
98
112
  }
99
113
  }
100
114
 
101
- override fun createShadowNodeInstance(): ReactTextShadowNode =
102
- ReactTextShadowNode(reactTextViewManagerCallback)
115
+ override fun createShadowNodeInstance(): LayoutShadowNode = LayoutShadowNode()
103
116
 
104
117
  public fun createShadowNodeInstance(
105
118
  reactTextViewManagerCallback: ReactTextViewManagerCallback?
106
- ): ReactTextShadowNode = ReactTextShadowNode(reactTextViewManagerCallback)
119
+ ): LayoutShadowNode = LayoutShadowNode()
107
120
 
108
- override fun getShadowNodeClass(): Class<ReactTextShadowNode> = ReactTextShadowNode::class.java
121
+ override fun getShadowNodeClass(): Class<LayoutShadowNode> = LayoutShadowNode::class.java
109
122
 
110
123
  override fun onAfterUpdateTransaction(view: ReactTextView) {
111
124
  super.onAfterUpdateTransaction(view)
@@ -120,6 +133,11 @@ public constructor(
120
133
  stateWrapper: StateWrapper,
121
134
  ): Any? {
122
135
  SystraceSection("ReactTextViewManager.updateState").use { s ->
136
+ val refState = (stateWrapper as? ReferenceStateWrapper)?.stateDataReference
137
+ if (refState is PreparedLayout) {
138
+ return getReactTextUpdateFromPreparedLayout(view, refState)
139
+ }
140
+
123
141
  val stateMapBuffer = stateWrapper.stateDataMapBuffer
124
142
  return if (stateMapBuffer != null) {
125
143
  getReactTextUpdate(view, props, stateMapBuffer)
@@ -149,6 +167,9 @@ public constructor(
149
167
  paragraphAttributes.getDouble(TextLayoutManager.PA_KEY_MINIMUM_FONT_SIZE).toFloat()
150
168
  view.setMinimumFontSize(minimumFontSize)
151
169
 
170
+ // Clear any stale PreparedLayout from a previous update
171
+ view.setPreparedLayout(null)
172
+
152
173
  val textBreakStrategy =
153
174
  TextAttributeProps.getTextBreakStrategy(
154
175
  paragraphAttributes.getString(TextLayoutManager.PA_KEY_TEXT_BREAK_STRATEGY)
@@ -159,13 +180,41 @@ public constructor(
159
180
  return ReactTextUpdate(
160
181
  spanned,
161
182
  -1, // UNUSED FOR TEXT
162
- false, // TODO add this into local Data
163
183
  TextLayoutManager.getTextGravity(attributedString, spanned),
164
184
  textBreakStrategy,
165
185
  TextAttributeProps.getJustificationMode(props, currentJustificationMode),
166
186
  )
167
187
  }
168
188
 
189
+ /**
190
+ * Constructs a [ReactTextUpdate] from a [PreparedLayout] received via [ReferenceStateWrapper].
191
+ */
192
+ private fun getReactTextUpdateFromPreparedLayout(
193
+ view: ReactTextView,
194
+ preparedLayout: PreparedLayout,
195
+ ): ReactTextUpdate {
196
+ val layout = preparedLayout.layout
197
+ val text = layout.text
198
+ val spanned = if (text is Spannable) text else SpannableString(text)
199
+ view.setSpanned(spanned)
200
+ view.setPreparedLayout(preparedLayout)
201
+
202
+ val textAlign =
203
+ when (layout.alignment) {
204
+ Layout.Alignment.ALIGN_CENTER -> Gravity.CENTER_HORIZONTAL
205
+ Layout.Alignment.ALIGN_OPPOSITE -> Gravity.END
206
+ else -> Gravity.START
207
+ }
208
+
209
+ return ReactTextUpdate(
210
+ spanned,
211
+ -1,
212
+ textAlign,
213
+ preparedLayout.textBreakStrategy,
214
+ preparedLayout.justificationMode,
215
+ )
216
+ }
217
+
169
218
  override fun getExportedCustomDirectEventTypeConstants(): MutableMap<String, Any>? {
170
219
  val baseEventTypeConstants = super.getExportedCustomDirectEventTypeConstants()
171
220
  val eventTypeConstants = baseEventTypeConstants ?: HashMap()
@@ -186,6 +235,180 @@ public constructor(
186
235
  view.setOverflow(overflow)
187
236
  }
188
237
 
238
+ @ReactProp(name = "accessible")
239
+ public fun setAccessible(view: ReactTextView, accessible: Boolean) {
240
+ view.isFocusable = accessible
241
+ }
242
+
243
+ // maxLines can only be set in master view (block), doesn't really make sense to set in a span
244
+ @ReactProp(name = ViewProps.NUMBER_OF_LINES, defaultInt = ViewDefaults.NUMBER_OF_LINES)
245
+ public fun setNumberOfLines(view: ReactTextView, numberOfLines: Int) {
246
+ view.setNumberOfLines(numberOfLines)
247
+ }
248
+
249
+ @ReactProp(name = ViewProps.ELLIPSIZE_MODE)
250
+ public fun setEllipsizeMode(view: ReactTextView, ellipsizeMode: String?) {
251
+ when (ellipsizeMode) {
252
+ null,
253
+ "tail" -> view.setEllipsizeLocation(TextUtils.TruncateAt.END)
254
+ "head" -> view.setEllipsizeLocation(TextUtils.TruncateAt.START)
255
+ "middle" -> view.setEllipsizeLocation(TextUtils.TruncateAt.MIDDLE)
256
+ "clip" -> view.setEllipsizeLocation(null)
257
+ else -> {
258
+ FLog.w(ReactConstants.TAG, "Invalid ellipsizeMode: $ellipsizeMode")
259
+ view.setEllipsizeLocation(TextUtils.TruncateAt.END)
260
+ }
261
+ }
262
+ }
263
+
264
+ @ReactProp(name = ViewProps.ADJUSTS_FONT_SIZE_TO_FIT)
265
+ public fun setAdjustFontSizeToFit(view: ReactTextView, adjustsFontSizeToFit: Boolean) {
266
+ view.setAdjustFontSizeToFit(adjustsFontSizeToFit)
267
+ }
268
+
269
+ @ReactProp(name = ViewProps.FONT_SIZE)
270
+ public fun setFontSize(view: ReactTextView, fontSize: Float) {
271
+ view.setFontSize(fontSize)
272
+ }
273
+
274
+ @ReactProp(name = ViewProps.LETTER_SPACING, defaultFloat = 0f)
275
+ public fun setLetterSpacing(view: ReactTextView, letterSpacing: Float) {
276
+ view.letterSpacing = letterSpacing
277
+ }
278
+
279
+ @ReactProp(name = ViewProps.TEXT_ALIGN_VERTICAL)
280
+ public fun setTextAlignVertical(view: ReactTextView, textAlignVertical: String?) {
281
+ when (textAlignVertical) {
282
+ null,
283
+ "auto" -> view.setGravityVertical(Gravity.NO_GRAVITY)
284
+ "top" -> view.setGravityVertical(Gravity.TOP)
285
+ "bottom" -> view.setGravityVertical(Gravity.BOTTOM)
286
+ "center" -> view.setGravityVertical(Gravity.CENTER_VERTICAL)
287
+ else -> {
288
+ FLog.w(ReactConstants.TAG, "Invalid textAlignVertical: $textAlignVertical")
289
+ view.setGravityVertical(Gravity.NO_GRAVITY)
290
+ }
291
+ }
292
+ }
293
+
294
+ @ReactProp(name = "selectable")
295
+ public fun setSelectable(view: ReactTextView, isSelectable: Boolean) {
296
+ view.setTextIsSelectable(isSelectable)
297
+ }
298
+
299
+ @ReactProp(name = "selectionColor", customType = "Color")
300
+ public fun setSelectionColor(view: ReactTextView, color: Int?) {
301
+ view.highlightColor = color ?: getDefaultTextColorHighlight(view.context)
302
+ }
303
+
304
+ @ReactProp(name = "android_hyphenationFrequency")
305
+ public fun setAndroidHyphenationFrequency(view: ReactTextView, frequency: String?) {
306
+ when (frequency) {
307
+ null,
308
+ "none" -> view.hyphenationFrequency = Layout.HYPHENATION_FREQUENCY_NONE
309
+ "full" -> view.hyphenationFrequency = Layout.HYPHENATION_FREQUENCY_FULL
310
+ "normal" -> view.hyphenationFrequency = Layout.HYPHENATION_FREQUENCY_NORMAL
311
+ else -> {
312
+ FLog.w(ReactConstants.TAG, "Invalid android_hyphenationFrequency: $frequency")
313
+ view.hyphenationFrequency = Layout.HYPHENATION_FREQUENCY_NONE
314
+ }
315
+ }
316
+ }
317
+
318
+ @ReactPropGroup(
319
+ names =
320
+ [
321
+ ViewProps.BORDER_RADIUS,
322
+ ViewProps.BORDER_TOP_LEFT_RADIUS,
323
+ ViewProps.BORDER_TOP_RIGHT_RADIUS,
324
+ ViewProps.BORDER_BOTTOM_RIGHT_RADIUS,
325
+ ViewProps.BORDER_BOTTOM_LEFT_RADIUS,
326
+ ],
327
+ defaultFloat = Float.NaN,
328
+ )
329
+ public fun setBorderRadius(view: ReactTextView, index: Int, borderRadius: Float) {
330
+ val radius =
331
+ if (borderRadius.isNaN()) {
332
+ null
333
+ } else {
334
+ LengthPercentage(borderRadius, LengthPercentageType.POINT)
335
+ }
336
+ BackgroundStyleApplicator.setBorderRadius(view, BorderRadiusProp.values()[index], radius)
337
+ }
338
+
339
+ @ReactProp(name = "borderStyle")
340
+ public fun setBorderStyle(view: ReactTextView, borderStyle: String?) {
341
+ val parsedBorderStyle = if (borderStyle == null) null else fromString(borderStyle)
342
+ BackgroundStyleApplicator.setBorderStyle(view, parsedBorderStyle)
343
+ }
344
+
345
+ @ReactPropGroup(
346
+ names =
347
+ [
348
+ ViewProps.BORDER_WIDTH,
349
+ ViewProps.BORDER_LEFT_WIDTH,
350
+ ViewProps.BORDER_RIGHT_WIDTH,
351
+ ViewProps.BORDER_TOP_WIDTH,
352
+ ViewProps.BORDER_BOTTOM_WIDTH,
353
+ ViewProps.BORDER_START_WIDTH,
354
+ ViewProps.BORDER_END_WIDTH,
355
+ ],
356
+ defaultFloat = Float.NaN,
357
+ )
358
+ public fun setBorderWidth(view: ReactTextView, index: Int, width: Float) {
359
+ BackgroundStyleApplicator.setBorderWidth(view, LogicalEdge.values()[index], width)
360
+ }
361
+
362
+ @ReactPropGroup(
363
+ names =
364
+ [
365
+ "borderColor",
366
+ "borderLeftColor",
367
+ "borderRightColor",
368
+ "borderTopColor",
369
+ "borderBottomColor",
370
+ ],
371
+ customType = "Color",
372
+ )
373
+ public fun setBorderColor(view: ReactTextView, index: Int, color: Int?) {
374
+ BackgroundStyleApplicator.setBorderColor(view, LogicalEdge.values()[index], color)
375
+ }
376
+
377
+ @ReactProp(name = ViewProps.INCLUDE_FONT_PADDING, defaultBoolean = true)
378
+ public fun setIncludeFontPadding(view: ReactTextView, includepad: Boolean) {
379
+ view.includeFontPadding = includepad
380
+ }
381
+
382
+ @ReactProp(name = "disabled", defaultBoolean = false)
383
+ public fun setDisabled(view: ReactTextView, disabled: Boolean) {
384
+ view.isEnabled = !disabled
385
+ }
386
+
387
+ @ReactProp(name = "dataDetectorType")
388
+ public fun setDataDetectorType(view: ReactTextView, type: String?) {
389
+ when (type) {
390
+ "phoneNumber" -> {
391
+ view.setLinkifyMask(Linkify.PHONE_NUMBERS)
392
+ return
393
+ }
394
+ "link" -> {
395
+ view.setLinkifyMask(Linkify.WEB_URLS)
396
+ return
397
+ }
398
+ "email" -> {
399
+ view.setLinkifyMask(Linkify.EMAIL_ADDRESSES)
400
+ return
401
+ }
402
+ "all" -> {
403
+ @Suppress("DEPRECATION") view.setLinkifyMask(Linkify.ALL)
404
+ return
405
+ }
406
+ }
407
+
408
+ // "none" case, default, and null type are equivalent.
409
+ view.setLinkifyMask(0)
410
+ }
411
+
189
412
  public companion object {
190
413
  private const val TX_STATE_KEY_ATTRIBUTED_STRING: Short = 0
191
414
  private const val TX_STATE_KEY_PARAGRAPH_ATTRIBUTES: Short = 1
@@ -9,7 +9,6 @@ package com.facebook.react.views.text
9
9
 
10
10
  import android.content.res.AssetManager
11
11
  import android.graphics.Typeface
12
- import android.text.TextUtils
13
12
  import com.facebook.react.bridge.ReadableArray
14
13
  import com.facebook.react.common.ReactConstants
15
14
  import com.facebook.react.common.assets.ReactFontManager
@@ -93,7 +92,7 @@ public object ReactTypefaceUtils {
93
92
  "stylistic-twenty" -> features.add("'ss20'")
94
93
  }
95
94
  }
96
- return TextUtils.join(", ", features)
95
+ return features.joinToString(", ")
97
96
  }
98
97
 
99
98
  @JvmStatic
@@ -0,0 +1,29 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ package com.facebook.react.views.text
9
+
10
+ import com.facebook.react.common.annotations.UnstableReactNativeAPI
11
+
12
+ /**
13
+ * A [ReactTextViewManager] registered under the name "RCTSelectableText". Used to route selectable
14
+ * text through [ReactTextView] (a real [android.widget.TextView]) instead of
15
+ * [PreparedLayoutTextView] when enablePreparedTextLayout is on, since [PreparedLayoutTextView] does
16
+ * not support native text selection.
17
+ */
18
+ @UnstableReactNativeAPI
19
+ public class SelectableTextViewManager
20
+ @JvmOverloads
21
+ public constructor(reactTextViewManagerCallback: ReactTextViewManagerCallback? = null) :
22
+ ReactTextViewManager(reactTextViewManagerCallback) {
23
+
24
+ override fun getName(): String = REACT_CLASS
25
+
26
+ public companion object {
27
+ public const val REACT_CLASS: String = "RCTSelectableText"
28
+ }
29
+ }
@@ -9,7 +9,6 @@ package com.facebook.react.views.text
9
9
 
10
10
  import android.os.Build
11
11
  import android.text.Layout
12
- import android.text.TextUtils
13
12
  import android.text.TextUtils.TruncateAt
14
13
  import android.util.LayoutDirection
15
14
  import android.view.Gravity
@@ -238,7 +237,7 @@ public class TextAttributeProps private constructor() {
238
237
  }
239
238
  }
240
239
  }
241
- fontFeatureSettings = TextUtils.join(", ", features)
240
+ fontFeatureSettings = features.joinToString(", ")
242
241
  }
243
242
 
244
243
  private fun setFontWeight(fontWeightString: String?) {
@@ -821,15 +821,16 @@ internal object TextLayoutManager {
821
821
  }
822
822
 
823
823
  return createLayout(
824
- text,
825
- paint,
826
- attributedString,
827
- paragraphAttributes,
828
- width,
829
- widthYogaMeasureMode,
830
- height,
831
- heightYogaMeasureMode,
832
- )
824
+ text,
825
+ paint,
826
+ attributedString,
827
+ paragraphAttributes,
828
+ width,
829
+ widthYogaMeasureMode,
830
+ height,
831
+ heightYogaMeasureMode,
832
+ )
833
+ .layout
833
834
  }
834
835
 
835
836
  private fun createLayout(
@@ -841,7 +842,7 @@ internal object TextLayoutManager {
841
842
  widthYogaMeasureMode: YogaMeasureMode,
842
843
  height: Float,
843
844
  heightYogaMeasureMode: YogaMeasureMode,
844
- ): Layout {
845
+ ): CreateLayoutResult {
845
846
  val boring = isBoring(text, paint)
846
847
 
847
848
  val textBreakStrategy =
@@ -899,19 +900,23 @@ internal object TextLayoutManager {
899
900
  )
900
901
  }
901
902
 
902
- return createLayout(
903
- text,
904
- boring,
905
- width,
906
- widthYogaMeasureMode,
907
- includeFontPadding,
903
+ return CreateLayoutResult(
904
+ createLayout(
905
+ text,
906
+ boring,
907
+ width,
908
+ widthYogaMeasureMode,
909
+ includeFontPadding,
910
+ textBreakStrategy,
911
+ hyphenationFrequency,
912
+ alignment,
913
+ justificationMode,
914
+ ellipsizeMode,
915
+ maximumNumberOfLines,
916
+ paint,
917
+ ),
908
918
  textBreakStrategy,
909
- hyphenationFrequency,
910
- alignment,
911
919
  justificationMode,
912
- ellipsizeMode,
913
- maximumNumberOfLines,
914
- paint,
915
920
  )
916
921
  }
917
922
 
@@ -937,7 +942,7 @@ internal object TextLayoutManager {
937
942
  )
938
943
  val baseTextAttributes =
939
944
  TextAttributeProps.fromMapBuffer(attributedString.getMapBuffer(AS_KEY_BASE_ATTRIBUTES))
940
- val layout =
945
+ val result =
941
946
  createLayout(
942
947
  text,
943
948
  newPaintWithAttributes(baseTextAttributes, context),
@@ -956,14 +961,21 @@ internal object TextLayoutManager {
956
961
 
957
962
  val verticalOffset =
958
963
  getVerticalOffset(
959
- layout,
964
+ result.layout,
960
965
  paragraphAttributes,
961
966
  height,
962
967
  heightYogaMeasureMode,
963
968
  maximumNumberOfLines,
964
969
  )
965
970
 
966
- return PreparedLayout(layout, maximumNumberOfLines, verticalOffset, reactTags)
971
+ return PreparedLayout(
972
+ result.layout,
973
+ maximumNumberOfLines,
974
+ verticalOffset,
975
+ reactTags,
976
+ result.textBreakStrategy,
977
+ result.justificationMode,
978
+ )
967
979
  }
968
980
 
969
981
  @JvmStatic
@@ -1307,63 +1319,22 @@ internal object TextLayoutManager {
1307
1319
  } else {
1308
1320
  val placeholderWidth = placeholder.width.toFloat()
1309
1321
  val placeholderHeight = placeholder.height.toFloat()
1322
+
1310
1323
  // Calculate if the direction of the placeholder character is Right-To-Left.
1311
1324
  val isRtlChar = layout.isRtlCharAt(start)
1312
1325
  val isRtlParagraph = layout.getParagraphDirection(line) == Layout.DIR_RIGHT_TO_LEFT
1313
- var placeholderLeftPosition: Float
1314
- // There's a bug on Samsung devices where calling getPrimaryHorizontal on
1315
- // the last offset in the layout will result in an endless loop. Work around
1316
- // this bug by avoiding getPrimaryHorizontal in that case.
1317
- if (
1318
- !ReactNativeFeatureFlags.disableOldAndroidAttachmentMetricsWorkarounds() &&
1319
- start == text.length - 1
1320
- ) {
1321
- val endsWithNewLine = text.length > 0 && text[layout.getLineEnd(line) - 1] == '\n'
1322
- val lineWidth = if (endsWithNewLine) layout.getLineMax(line) else layout.getLineWidth(line)
1323
- placeholderLeftPosition =
1324
- if (
1325
- isRtlParagraph // Equivalent to `layout.getLineLeft(line)` but `getLineLeft` returns
1326
- // incorrect
1327
- // values when the paragraph is RTL and `setSingleLine(true)`.
1328
- )
1329
- ( // Equivalent to `layout.getLineLeft(line)` but `getLineLeft` returns
1330
- // incorrect
1331
- // values when the paragraph is RTL and `setSingleLine(true)`.
1332
- calculatedWidth - lineWidth)
1333
- else (layout.getLineRight(line) - placeholderWidth)
1334
- } else {
1335
- // The direction of the paragraph may not be exactly the direction the string is
1336
- // heading
1337
- // in at the
1338
- // position of the placeholder. So, if the direction of the character is the same
1339
- // as the
1340
- // paragraph
1341
- // use primary, secondary otherwise.
1342
- val characterAndParagraphDirectionMatch = isRtlParagraph == isRtlChar
1343
- placeholderLeftPosition =
1344
- if (characterAndParagraphDirectionMatch) layout.getPrimaryHorizontal(start)
1345
- else layout.getSecondaryHorizontal(start)
1346
- if (
1347
- !ReactNativeFeatureFlags.disableOldAndroidAttachmentMetricsWorkarounds() &&
1348
- isRtlParagraph &&
1349
- !isRtlChar
1350
- ) {
1351
- // Adjust `placeholderLeftPosition` to work around an Android bug.
1352
- // The bug is when the paragraph is RTL and `setSingleLine(true)`, some layout
1353
- // methods such as `getPrimaryHorizontal`, `getSecondaryHorizontal`, and
1354
- // `getLineRight` return incorrect values. Their return values seem to be off
1355
- // by the same number of pixels so subtracting these values cancels out the
1356
- // error.
1357
- //
1358
- // The result is equivalent to bugless versions of
1359
- // `getPrimaryHorizontal`/`getSecondaryHorizontal`.
1360
- placeholderLeftPosition =
1361
- calculatedWidth - (layout.getLineRight(line) - placeholderLeftPosition)
1362
- }
1363
- if (isRtlChar) {
1364
- placeholderLeftPosition -= placeholderWidth
1365
- }
1326
+
1327
+ // The direction of the paragraph may not be exactly the direction the string is heading in at
1328
+ // the position of the placeholder. So, if the direction of the character is the same as the
1329
+ // paragraph use primary, secondary otherwise.
1330
+ val characterAndParagraphDirectionMatch = isRtlParagraph == isRtlChar
1331
+ var placeholderLeftPosition =
1332
+ if (characterAndParagraphDirectionMatch) layout.getPrimaryHorizontal(start)
1333
+ else layout.getSecondaryHorizontal(start)
1334
+ if (isRtlChar) {
1335
+ placeholderLeftPosition -= placeholderWidth
1366
1336
  }
1337
+
1367
1338
  // Vertically align the inline view to the baseline of the line of text.
1368
1339
  val placeholderTopPosition = layout.getLineBaseline(line) - placeholderHeight
1369
1340
 
@@ -1414,6 +1385,12 @@ internal object TextLayoutManager {
1414
1385
  BoringLayout.isBoring(text, paint, TextDirectionHeuristics.FIRSTSTRONG_LTR, true, null)
1415
1386
  }
1416
1387
 
1388
+ private class CreateLayoutResult(
1389
+ val layout: Layout,
1390
+ val textBreakStrategy: Int,
1391
+ val justificationMode: Int,
1392
+ )
1393
+
1417
1394
  private class AttachmentMetrics {
1418
1395
  var wasFound: Boolean = false
1419
1396
  var top: Float = 0f
@@ -0,0 +1,27 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ package com.facebook.react.views.text.internal.span
9
+
10
+ import android.graphics.Canvas
11
+ import android.text.Layout
12
+ import android.text.style.UpdateAppearance
13
+
14
+ /**
15
+ * May be overriden to implement charater styles which are applied by [PreparedLayoutTextView]
16
+ * during the drawing of text, against the underlying Android canvas
17
+ */
18
+ public abstract class DrawCommandSpan : UpdateAppearance, ReactSpan {
19
+ /**
20
+ * Called before the text is drawn. This happens after the Paragraph component has drawn its
21
+ * background, but may be called before text spans with their own background color are drawn.
22
+ */
23
+ public open fun onPreDraw(start: Int, end: Int, canvas: Canvas, layout: Layout): Unit = Unit
24
+
25
+ /** Called after the text is drawn, including some effects like text shadows */
26
+ public open fun onDraw(start: Int, end: Int, canvas: Canvas, layout: Layout): Unit = Unit
27
+ }
@@ -42,7 +42,7 @@ internal class ReactClickableSpan(val reactTag: Int) : ClickableSpan(), ReactSpa
42
42
 
43
43
  override fun onClick(view: View) {
44
44
  val context = view.context as ReactContext
45
- val eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(context, reactTag)
45
+ val eventDispatcher = UIManagerHelper.getEventDispatcher(context)
46
46
  eventDispatcher?.dispatchEvent(
47
47
  ViewGroupClickEvent(UIManagerHelper.getSurfaceId(context), reactTag)
48
48
  )
@@ -11,8 +11,10 @@ import android.text.TextPaint
11
11
  import android.text.style.ClickableSpan
12
12
  import android.view.View
13
13
  import com.facebook.react.bridge.ReactContext
14
+ import com.facebook.react.common.annotations.UnstableReactNativeAPI
14
15
  import com.facebook.react.uimanager.UIManagerHelper
15
16
  import com.facebook.react.views.text.PreparedLayoutTextView
17
+ import com.facebook.react.views.text.ReactTextView
16
18
  import com.facebook.react.views.text.TextLayoutManager
17
19
  import com.facebook.react.views.view.ViewGroupClickEvent
18
20
 
@@ -29,13 +31,18 @@ import com.facebook.react.views.view.ViewGroupClickEvent
29
31
  * </Text>
30
32
  * ```
31
33
  */
34
+ @OptIn(UnstableReactNativeAPI::class)
32
35
  internal class ReactLinkSpan(val fragmentIndex: Int) : ClickableSpan(), ReactSpan {
33
36
  override fun onClick(view: View) {
34
37
  val context = view.context as ReactContext
35
- val textView = view as? PreparedLayoutTextView ?: return
36
- val preparedLayout = textView.preparedLayout ?: return
38
+ val preparedLayout =
39
+ when (view) {
40
+ is PreparedLayoutTextView -> view.preparedLayout
41
+ is ReactTextView -> view.preparedLayout
42
+ else -> null
43
+ } ?: return
37
44
  val reactTag = preparedLayout.reactTags[fragmentIndex]
38
- val eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(context, reactTag)
45
+ val eventDispatcher = UIManagerHelper.getEventDispatcher(context)
39
46
  eventDispatcher?.dispatchEvent(
40
47
  ViewGroupClickEvent(UIManagerHelper.getSurfaceId(context), reactTag)
41
48
  )