react-native-tvos 0.76.6-0 → 0.77.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1063) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +1 -0
  2. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +13 -0
  3. package/Libraries/Animated/AnimatedEvent.js +1 -1
  4. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  5. package/Libraries/Animated/NativeAnimatedAllowlist.js +20 -9
  6. package/Libraries/Animated/animations/Animation.js +60 -25
  7. package/Libraries/Animated/animations/DecayAnimation.js +26 -38
  8. package/Libraries/Animated/animations/SpringAnimation.js +33 -39
  9. package/Libraries/Animated/animations/TimingAnimation.js +34 -42
  10. package/Libraries/Animated/components/AnimatedFlatList.js +1 -1
  11. package/Libraries/Animated/components/AnimatedSectionList.js +3 -1
  12. package/Libraries/Animated/createAnimatedComponent.js +60 -33
  13. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  14. package/Libraries/Animated/nodes/AnimatedInterpolation.js +1 -1
  15. package/Libraries/Animated/nodes/AnimatedNode.js +39 -45
  16. package/Libraries/Animated/nodes/AnimatedObject.js +13 -3
  17. package/Libraries/Animated/nodes/AnimatedProps.js +104 -46
  18. package/Libraries/Animated/nodes/AnimatedStyle.js +116 -39
  19. package/Libraries/Animated/nodes/AnimatedTransform.js +56 -23
  20. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  21. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -3
  22. package/Libraries/Animated/useAnimatedProps.js +41 -35
  23. package/Libraries/AppDelegate/RCTAppDelegate.h +10 -64
  24. package/Libraries/AppDelegate/RCTAppDelegate.mm +23 -21
  25. package/Libraries/AppDelegate/RCTAppSetupUtils.h +5 -1
  26. package/Libraries/AppDelegate/RCTAppSetupUtils.mm +8 -14
  27. package/Libraries/AppDelegate/RCTArchConfiguratorProtocol.h +32 -0
  28. package/Libraries/AppDelegate/RCTDependencyProvider.h +26 -0
  29. package/Libraries/AppDelegate/RCTRootViewFactory.h +6 -2
  30. package/Libraries/AppDelegate/RCTRootViewFactory.mm +27 -43
  31. package/Libraries/AppDelegate/RCTUIConfiguratorProtocol.h +56 -0
  32. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +2 -1
  33. package/Libraries/Blob/React-RCTBlob.podspec +3 -1
  34. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +19 -3
  35. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +77 -5
  36. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +4 -4
  37. package/Libraries/Components/Button.js +9 -4
  38. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
  39. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +7 -0
  40. package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
  41. package/Libraries/Components/Pressable/Pressable.js +7 -7
  42. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +13 -7
  43. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +3 -2
  44. package/Libraries/Components/SafeAreaView/SafeAreaView.js +4 -4
  45. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +0 -1
  46. package/Libraries/Components/ScrollView/ScrollView.js +51 -90
  47. package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
  48. package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -0
  49. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +0 -2
  50. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +8 -9
  51. package/Libraries/Components/Switch/Switch.js +8 -6
  52. package/Libraries/Components/TV/TVFocusGuideView.js +2 -5
  53. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  54. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +4 -4
  55. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +6 -4
  56. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -1
  57. package/Libraries/Components/TextInput/TextInput.d.ts +27 -4
  58. package/Libraries/Components/TextInput/TextInput.flow.js +36 -19
  59. package/Libraries/Components/TextInput/TextInput.js +38 -14
  60. package/Libraries/Components/TextInput/TextInputState.js +11 -13
  61. package/Libraries/Components/Touchable/BoundingDimensions.js +11 -3
  62. package/Libraries/Components/Touchable/Position.js +7 -2
  63. package/Libraries/Components/Touchable/Touchable.js +4 -0
  64. package/Libraries/Components/Touchable/TouchableBounce.js +6 -2
  65. package/Libraries/Components/Touchable/TouchableHighlight.js +5 -5
  66. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  67. package/Libraries/Components/Touchable/TouchableOpacity.js +7 -7
  68. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -2
  69. package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -1
  70. package/Libraries/Components/View/View.js +6 -11
  71. package/Libraries/Components/View/ViewNativeComponent.js +8 -111
  72. package/Libraries/Components/View/ViewPropTypes.d.ts +7 -0
  73. package/Libraries/Components/View/ViewPropTypes.js +0 -3
  74. package/Libraries/Core/ExceptionsManager.js +50 -29
  75. package/Libraries/Core/ReactNativeVersion.js +2 -2
  76. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -1
  77. package/Libraries/Core/setUpBatchedBridge.js +1 -10
  78. package/Libraries/Core/setUpDeveloperTools.js +1 -5
  79. package/Libraries/Core/setUpErrorHandling.js +20 -18
  80. package/Libraries/Core/setUpReactDevTools.js +107 -8
  81. package/Libraries/Core/setUpSegmentFetcher.js +1 -0
  82. package/Libraries/Core/setUpTimers.js +21 -18
  83. package/Libraries/Debugging/DebuggingOverlay.js +4 -5
  84. package/Libraries/Image/AssetSourceResolver.js +12 -1
  85. package/Libraries/Image/Image.android.js +1 -5
  86. package/Libraries/Image/Image.d.ts +20 -29
  87. package/Libraries/Image/Image.ios.js +0 -2
  88. package/Libraries/Image/ImageBackground.js +2 -5
  89. package/Libraries/Image/ImageProps.js +7 -6
  90. package/Libraries/Image/ImageResizeMode.d.ts +8 -1
  91. package/Libraries/Image/ImageResizeMode.js +4 -1
  92. package/Libraries/Image/ImageSource.d.ts +0 -2
  93. package/Libraries/Image/ImageSource.js +0 -2
  94. package/Libraries/Image/ImageTypes.flow.js +11 -9
  95. package/Libraries/Image/ImageUtils.js +6 -3
  96. package/Libraries/Image/ImageViewNativeComponent.js +5 -3
  97. package/Libraries/Image/RCTImageUtils.mm +2 -0
  98. package/Libraries/Image/RCTResizeMode.h +4 -1
  99. package/Libraries/Image/RCTResizeMode.mm +1 -0
  100. package/Libraries/Image/React-RCTImage.podspec +1 -1
  101. package/Libraries/Inspector/Inspector.js +1 -0
  102. package/Libraries/Inspector/NetworkOverlay.js +4 -0
  103. package/Libraries/Inspector/ReactDevToolsOverlay.js +8 -14
  104. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +3 -5
  105. package/Libraries/Interaction/InteractionManager.js +6 -1
  106. package/Libraries/Interaction/InteractionManagerStub.js +176 -0
  107. package/Libraries/Interaction/TouchHistoryMath.js +22 -19
  108. package/Libraries/JSInspector/NetworkAgent.js +1 -1
  109. package/Libraries/LinkingIOS/RCTLinkingManager.mm +2 -1
  110. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
  111. package/Libraries/Lists/FlatList.d.ts +1 -2
  112. package/Libraries/Lists/FlatList.js +2 -2
  113. package/Libraries/Lists/SectionListModern.js +7 -7
  114. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +2 -2
  115. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  116. package/Libraries/LogBox/Data/LogBoxData.js +3 -3
  117. package/Libraries/LogBox/LogBox.js +18 -5
  118. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  119. package/Libraries/LogBox/LogBoxNotificationContainer.js +3 -3
  120. package/Libraries/LogBox/UI/AnsiHighlight.js +26 -17
  121. package/Libraries/LogBox/UI/LogBoxButton.js +2 -2
  122. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -1
  123. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  124. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +1 -1
  125. package/Libraries/LogBox/UI/LogBoxMessage.js +2 -2
  126. package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
  127. package/Libraries/Modal/Modal.d.ts +12 -0
  128. package/Libraries/Modal/Modal.js +31 -4
  129. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
  130. package/Libraries/NativeComponent/BaseViewConfig.android.js +72 -1
  131. package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -1
  132. package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -3
  133. package/Libraries/NativeComponent/StaticViewConfigValidator.js +0 -1
  134. package/Libraries/NativeComponent/TVViewConfig.js +1 -0
  135. package/Libraries/Network/FormData.js +11 -3
  136. package/Libraries/Network/React-RCTNetwork.podspec +1 -1
  137. package/Libraries/Network/XHRInterceptor.js +63 -14
  138. package/Libraries/Network/XMLHttpRequest.js +26 -1
  139. package/Libraries/NewAppScreen/components/HermesBadge.js +1 -1
  140. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +49 -2
  141. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -4
  142. package/Libraries/Pressability/HoverState.js +2 -0
  143. package/Libraries/Pressability/Pressability.js +4 -5
  144. package/Libraries/Pressability/usePressability.js +4 -1
  145. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
  146. package/Libraries/ReactNative/AppContainer.js +1 -1
  147. package/Libraries/ReactNative/AppRegistry.js +1 -11
  148. package/Libraries/ReactNative/DisplayMode.js +1 -1
  149. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -3
  150. package/Libraries/ReactNative/RendererImplementation.js +18 -17
  151. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -3
  152. package/Libraries/ReactNative/renderApplication.js +9 -8
  153. package/Libraries/ReactNative/requireNativeComponent.js +5 -2
  154. package/Libraries/Renderer/shims/ReactFabric.js +3 -3
  155. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  156. package/Libraries/Renderer/shims/ReactNative.js +3 -3
  157. package/Libraries/Renderer/shims/ReactNativeTypes.js +22 -35
  158. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +5 -6
  159. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  160. package/Libraries/Settings/React-RCTSettings.podspec +1 -1
  161. package/Libraries/StyleSheet/StyleSheet.js +7 -1
  162. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +13 -2
  163. package/Libraries/StyleSheet/StyleSheetTypes.js +24 -6
  164. package/Libraries/StyleSheet/processBackgroundImage.js +87 -110
  165. package/Libraries/StyleSheet/processTransform.js +3 -34
  166. package/Libraries/Text/RCTTextAttributes.h +1 -2
  167. package/Libraries/Text/RCTTextAttributes.mm +9 -13
  168. package/Libraries/Text/Text.js +248 -249
  169. package/Libraries/Text/TextInput/Multiline/RCTUITextView.h +1 -0
  170. package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +1 -0
  171. package/Libraries/Text/TextInput/RCTBaseTextInputView.h +1 -0
  172. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +24 -2
  173. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +1 -0
  174. package/Libraries/Text/TextInput/Singleline/RCTUITextField.h +1 -0
  175. package/Libraries/Text/TextNativeComponent.js +0 -1
  176. package/Libraries/TurboModule/TurboModuleRegistry.js +5 -5
  177. package/Libraries/Types/CoreEventTypes.d.ts +3 -10
  178. package/Libraries/Types/CoreEventTypes.js +4 -6
  179. package/Libraries/Utilities/Appearance.js +3 -1
  180. package/Libraries/Utilities/BackHandler.android.js +6 -18
  181. package/Libraries/Utilities/BackHandler.d.ts +0 -4
  182. package/Libraries/Utilities/BackHandler.ios.js +3 -16
  183. package/Libraries/Utilities/BackHandler.js.flow +0 -4
  184. package/Libraries/Utilities/HMRClient.js +3 -4
  185. package/Libraries/Utilities/Platform.flow.js +2 -2
  186. package/Libraries/Utilities/__mocks__/BackHandler.js +3 -8
  187. package/Libraries/Utilities/codegenNativeComponent.js +1 -1
  188. package/Libraries/Utilities/setAndForwardRef.js +2 -2
  189. package/Libraries/Utilities/useMergeRefs.js +26 -7
  190. package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
  191. package/Libraries/WebSocket/WebSocketEvent.js +4 -1
  192. package/Libraries/WebSocket/WebSocketInterceptor.js +31 -13
  193. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +6 -5
  194. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  195. package/React/Base/RCTBridge.h +3 -0
  196. package/React/Base/RCTBridge.mm +12 -11
  197. package/React/Base/RCTBridgeModule.h +1 -9
  198. package/React/Base/RCTBridgeProxy.h +3 -0
  199. package/React/Base/RCTBridgeProxy.mm +10 -0
  200. package/React/Base/RCTCallInvoker.mm +5 -0
  201. package/React/Base/RCTConstants.h +2 -12
  202. package/React/Base/RCTConstants.m +3 -31
  203. package/React/Base/RCTConvert.mm +3 -0
  204. package/React/Base/RCTKeyCommands.m +0 -2
  205. package/React/Base/RCTModuleData.h +1 -7
  206. package/React/Base/RCTModuleData.mm +27 -34
  207. package/React/Base/RCTModuleMethod.mm +1 -1
  208. package/React/Base/RCTTouchEvent.m +1 -1
  209. package/React/Base/RCTUtils.h +1 -1
  210. package/React/Base/RCTUtils.m +9 -10
  211. package/React/Base/RCTVersion.m +2 -2
  212. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +7 -0
  213. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +2 -5
  214. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.h +1 -1
  215. package/React/CoreModules/PlatformStubs/RCTStatusBarManager.mm +57 -0
  216. package/React/CoreModules/RCTAccessibilityManager.h +1 -0
  217. package/React/CoreModules/RCTAccessibilityManager.mm +27 -0
  218. package/React/CoreModules/RCTActionSheetManager.mm +14 -7
  219. package/React/CoreModules/RCTAppearance.h +1 -1
  220. package/React/CoreModules/RCTAppearance.mm +8 -2
  221. package/React/CoreModules/RCTDevLoadingView.mm +42 -25
  222. package/React/CoreModules/RCTDevMenu.mm +5 -1
  223. package/{ReactAndroid/src/main/java/com/facebook/perftest/PerfTestConfig.java → React/CoreModules/RCTDevToolsRuntimeSettingsModule.h} +3 -7
  224. package/React/CoreModules/RCTDevToolsRuntimeSettingsModule.mm +58 -0
  225. package/React/CoreModules/RCTDeviceInfo.mm +4 -1
  226. package/React/CoreModules/RCTEventDispatcher.mm +1 -1
  227. package/React/CoreModules/RCTExceptionsManager.h +2 -6
  228. package/React/CoreModules/RCTExceptionsManager.mm +35 -30
  229. package/React/CoreModules/React-CoreModules.podspec +12 -2
  230. package/React/CxxBridge/RCTCxxBridge.mm +20 -23
  231. package/React/CxxModule/RCTCxxMethod.mm +10 -2
  232. package/React/DevSupport/RCTInspectorDevServerHelper.mm +1 -5
  233. package/React/DevSupport/RCTPackagerConnection.mm +11 -0
  234. package/React/DevSupport/RCTPausedInDebuggerOverlayController.mm +5 -1
  235. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +2395 -0
  236. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +2854 -0
  237. package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +2982 -0
  238. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +8201 -0
  239. package/React/Fabric/AppleEventBeat.cpp +31 -0
  240. package/{ReactCommon/react/renderer/scheduler/AsynchronousEventBeat.h → React/Fabric/AppleEventBeat.h} +8 -11
  241. package/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm +0 -8
  242. package/React/Fabric/Mounting/ComponentViews/Modal/RCTFabricModalHostViewController.mm +1 -1
  243. package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.h +0 -1
  244. package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.mm +1 -1
  245. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +3 -1
  246. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +106 -59
  247. package/React/Fabric/Mounting/ComponentViews/Switch/RCTSwitchComponentView.mm +2 -1
  248. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +35 -15
  249. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +9 -0
  250. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +161 -96
  251. package/React/Fabric/Mounting/RCTMountingManager.h +1 -1
  252. package/React/Fabric/Mounting/RCTMountingManager.mm +1 -2
  253. package/React/Fabric/RCTScheduler.h +3 -2
  254. package/React/Fabric/RCTScheduler.mm +5 -8
  255. package/React/Fabric/RCTSurfacePointerHandler.mm +8 -6
  256. package/React/Fabric/RCTSurfacePresenter.mm +6 -18
  257. package/React/Fabric/Surface/RCTFabricSurface.mm +7 -6
  258. package/React/Fabric/Utils/PlatformRunLoopObserver.h +6 -3
  259. package/React/Fabric/Utils/PlatformRunLoopObserver.mm +2 -5
  260. package/React/Fabric/Utils/RCTLinearGradient.h +19 -0
  261. package/React/Fabric/Utils/RCTLinearGradient.mm +134 -0
  262. package/React/I18n/FBXXHashUtils.h +10 -8
  263. package/React/Inspector/RCTCxxInspectorPackagerConnection.mm +3 -0
  264. package/React/Inspector/RCTCxxInspectorPackagerConnectionDelegate.mm +3 -0
  265. package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +12 -1
  266. package/React/Inspector/RCTInspector.mm +1 -1
  267. package/React/Modules/{RCTUIManager.m → RCTUIManager.mm} +7 -4
  268. package/React/React-RCTFBReactNativeSpec.podspec +87 -0
  269. package/React/React-RCTFabric.podspec +3 -1
  270. package/React/Tests/Text/RCTAttributedTextUtilsTest.mm +274 -0
  271. package/React/Tests/Text/RCTParagraphComponentViewTests.mm +20 -20
  272. package/React/Tests/Text/RCTTextAttributesTest.mm +49 -0
  273. package/React/Views/RCTBorderDrawing.h +5 -5
  274. package/React/Views/RCTBorderDrawing.m +21 -23
  275. package/React/Views/{RCTComponentData.m → RCTComponentData.mm} +5 -4
  276. package/React/Views/RCTLayout.m +3 -0
  277. package/React/Views/RCTModalHostViewController.m +1 -1
  278. package/React/Views/RCTModalHostViewManager.m +3 -23
  279. package/React/Views/RCTView.m +9 -10
  280. package/React/Views/RCTViewManager.m +1 -1
  281. package/React/Views/ScrollView/RCTScrollEvent.m +3 -0
  282. package/React/Views/ScrollView/RCTScrollView.h +1 -1
  283. package/React/Views/ScrollView/RCTScrollView.m +80 -26
  284. package/React/Views/ScrollView/RCTScrollViewManager.m +1 -0
  285. package/React/third-party.xcconfig +1 -1
  286. package/React-Core.podspec +4 -2
  287. package/ReactAndroid/api/ReactAndroid.api +339 -814
  288. package/ReactAndroid/build.gradle.kts +48 -13
  289. package/ReactAndroid/cmake-utils/ReactNative-application.cmake +1 -1
  290. package/ReactAndroid/gradle.properties +8 -2
  291. package/ReactAndroid/hermes-engine/build.gradle.kts +28 -26
  292. package/ReactAndroid/src/main/AndroidManifest.xml +1 -1
  293. package/ReactAndroid/src/main/java/com/facebook/debug/debugoverlay/model/DebugOverlayTag.kt +21 -0
  294. package/ReactAndroid/src/main/java/com/facebook/debug/holder/NoopPrinter.kt +4 -5
  295. package/ReactAndroid/src/main/java/com/facebook/debug/holder/Printer.kt +4 -4
  296. package/ReactAndroid/src/main/java/com/facebook/debug/holder/PrinterHolder.kt +2 -2
  297. package/ReactAndroid/src/main/java/com/facebook/debug/tags/ReactDebugOverlayTags.kt +45 -0
  298. package/ReactAndroid/src/main/java/com/facebook/proguard/annotations/KeepGettersAndSetters.kt +24 -0
  299. package/ReactAndroid/src/main/java/com/facebook/react/BaseReactPackage.kt +131 -0
  300. package/ReactAndroid/src/main/java/com/facebook/react/HeadlessJsTaskService.java +3 -3
  301. package/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.kt +61 -0
  302. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +12 -0
  303. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +74 -34
  304. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +109 -27
  305. package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +25 -7
  306. package/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt +35 -3
  307. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +43 -27
  308. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +2 -2
  309. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackage.kt +53 -0
  310. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageHelper.kt +43 -0
  311. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.java +1 -2
  312. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +28 -0
  313. package/ReactAndroid/src/main/java/com/facebook/react/TurboReactPackage.kt +13 -0
  314. package/ReactAndroid/src/main/java/com/facebook/react/{ViewManagerOnDemandReactPackage.java → ViewManagerOnDemandReactPackage.kt} +8 -8
  315. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +3 -0
  316. package/ReactAndroid/src/main/java/com/facebook/react/animated/InterpolationAnimatedNode.kt +2 -2
  317. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +22 -30
  318. package/ReactAndroid/src/main/java/com/facebook/react/animated/ObjectAnimatedNode.kt +3 -1
  319. package/ReactAndroid/src/main/java/com/facebook/react/animated/TransformAnimatedNode.kt +5 -5
  320. package/ReactAndroid/src/main/java/com/facebook/react/bridge/AssertionException.kt +14 -0
  321. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java +2 -0
  322. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +9 -10
  323. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +2 -2
  324. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ColorPropConverter.java +4 -4
  325. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxCallbackImpl.java +3 -6
  326. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicNative.kt +2 -5
  327. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{InvalidIteratorException.java → InvalidIteratorException.kt} +4 -9
  328. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{JSApplicationCausedNativeException.java → JSApplicationCausedNativeException.kt} +7 -16
  329. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSApplicationIllegalArgumentException.kt +16 -0
  330. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaOnlyArray.kt +148 -0
  331. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaOnlyMap.kt +180 -0
  332. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArgumentsParseException.kt +16 -0
  333. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArray.kt +25 -0
  334. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeMap.kt +2 -2
  335. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NoSuchKeyException.kt +14 -0
  336. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{ObjectAlreadyConsumedException.java → ObjectAlreadyConsumedException.kt} +4 -9
  337. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +4 -3
  338. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactIgnorableMountingException.kt +35 -0
  339. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNoCrashBridgeNotAllowedSoftException.kt +17 -0
  340. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNoCrashSoftException.kt +22 -0
  341. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +65 -0
  342. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableArray.kt +4 -4
  343. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableMap.kt +2 -2
  344. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeArray.kt +92 -0
  345. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeMap.kt +8 -13
  346. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{RetryableMountingLayerException.java → RetryableMountingLayerException.kt} +6 -11
  347. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManagerProvider.kt +1 -5
  348. package/ReactAndroid/src/main/java/com/facebook/react/bridge/WritableNativeArray.kt +52 -0
  349. package/ReactAndroid/src/main/java/com/facebook/react/bridge/WritableNativeMap.kt +6 -9
  350. package/ReactAndroid/src/main/java/com/facebook/react/bridge/interop/InteropModuleRegistry.kt +49 -0
  351. package/ReactAndroid/src/main/java/com/facebook/react/common/{SurfaceDelegate.java → SurfaceDelegate.kt} +11 -11
  352. package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegateFactory.kt +22 -0
  353. package/ReactAndroid/src/main/java/com/facebook/react/common/build/ReactBuildConfig.kt +4 -0
  354. package/ReactAndroid/src/main/java/com/facebook/react/common/futures/SimpleSettableFuture.kt +1 -1
  355. package/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.kt +1 -1
  356. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.kt +35 -0
  357. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt +14 -15
  358. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +52 -3
  359. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultTurboModuleManagerDelegate.kt +14 -18
  360. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +2 -2
  361. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.java +124 -0
  362. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.java +3 -3
  363. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +33 -26
  364. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +6 -3
  365. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSettingsActivity.kt +2 -0
  366. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +28 -38
  367. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +22 -0
  368. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialog.kt +2 -1
  369. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.kt +2 -2
  370. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.kt +1 -1
  371. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReactInstanceDevHelper.java +12 -2
  372. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxDialogSurfaceDelegate.java +37 -3
  373. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.kt +3 -6
  374. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.java +23 -5
  375. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.kt +1 -2
  376. package/ReactAndroid/src/main/java/com/facebook/react/fabric/DevToolsReactPerfLogger.java +6 -7
  377. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +24 -26
  378. package/ReactAndroid/src/main/java/com/facebook/react/fabric/{BindingImpl.kt → FabricUIManagerBinding.kt} +26 -20
  379. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.java +1 -1
  380. package/ReactAndroid/src/main/java/com/facebook/react/fabric/LongStreamingStats.kt +62 -0
  381. package/ReactAndroid/src/main/java/com/facebook/react/fabric/StateWrapperImpl.java +10 -14
  382. package/ReactAndroid/src/main/java/com/facebook/react/fabric/SurfaceHandlerBinding.java +10 -57
  383. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +5 -17
  384. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +3 -0
  385. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +45 -62
  386. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +10 -18
  387. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/DestroyUnmountedViewMountItem.kt +30 -0
  388. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/FabricNameComponentMapping.kt +3 -9
  389. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +27 -11
  390. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/MountItemFactory.kt +5 -0
  391. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.kt +63 -0
  392. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/exceptionmanager/ReactJsExceptionHandler.kt +20 -10
  393. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/fabric/ReactSurface.kt +10 -10
  394. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/fabric/SurfaceHandler.kt +0 -11
  395. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +80 -66
  396. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsAccessor.kt +2 -0
  397. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +107 -124
  398. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +25 -27
  399. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +25 -29
  400. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +136 -144
  401. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +23 -27
  402. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt +25 -22
  403. package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +1 -0
  404. package/ReactAndroid/src/main/java/com/facebook/react/module/model/ReactModuleInfo.kt +11 -16
  405. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.kt +121 -3
  406. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +0 -1
  407. package/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/AppStateModule.kt +1 -1
  408. package/ReactAndroid/src/main/java/com/facebook/react/modules/camera/ImageStoreManager.kt +1 -1
  409. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.kt +5 -5
  410. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.kt +0 -11
  411. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactChoreographer.kt +7 -8
  412. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DidJSUpdateUiDuringFrameDetector.kt +2 -0
  413. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/FpsDebugFrameCallback.kt +1 -1
  414. package/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.kt +1 -1
  415. package/ReactAndroid/src/main/java/com/facebook/react/modules/devtoolsruntimesettings/ReactDevToolsRuntimeSettingsModule.kt +49 -0
  416. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/AlertFragment.java +57 -5
  417. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogTitle.kt +55 -0
  418. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.kt +21 -5
  419. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ImageCacheControl.kt +31 -0
  420. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactNetworkImageRequest.kt +6 -3
  421. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.kt +19 -5
  422. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/SystraceRequestListener.kt +21 -14
  423. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/XmlFormat.kt +143 -0
  424. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.kt +5 -2
  425. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.kt +2 -2
  426. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.kt +270 -0
  427. package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/PermissionsModule.kt +4 -3
  428. package/ReactAndroid/src/main/java/com/facebook/react/modules/reactdevtoolssettings/ReactDevToolsSettingsManagerModule.kt +34 -0
  429. package/ReactAndroid/src/main/java/com/facebook/react/modules/share/ShareModule.kt +1 -0
  430. package/ReactAndroid/src/main/java/com/facebook/react/modules/sound/SoundManagerModule.kt +4 -0
  431. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoHelpers.kt +126 -0
  432. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.kt +87 -0
  433. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
  434. package/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/VibrationModule.kt +8 -4
  435. package/ReactAndroid/src/main/java/com/facebook/react/processing/ReactPropertyProcessor.java +2 -0
  436. package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/NativeModulePerfLogger.kt +11 -11
  437. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +15 -8
  438. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +153 -81
  439. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +75 -0
  440. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +2 -3
  441. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceImpl.java +6 -2
  442. package/ReactAndroid/src/main/java/com/facebook/react/runtime/cxxreactpackage/CxxReactPackage.kt +2 -2
  443. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/{Continuation.java → Continuation.kt} +4 -8
  444. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/{ExecutorException.java → ExecutorException.kt} +3 -9
  445. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/Task.java +1 -1
  446. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/TaskCompletionSource.kt +50 -0
  447. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/UnobservedErrorNotifier.kt +27 -0
  448. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/{UnobservedTaskException.java → UnobservedTaskException.kt} +2 -8
  449. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.kt +272 -0
  450. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +398 -62
  451. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +42 -36
  452. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt +40 -1
  453. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BlendModeHelper.kt +7 -0
  454. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FilterHelper.kt +3 -3
  455. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +1 -1
  456. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +4 -4
  457. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/PixelUtil.kt +12 -4
  458. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +13 -14
  459. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{ReactClippingProhibitedView.java → ReactClippingProhibitedView.kt} +6 -6
  460. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{ReactCompoundView.java → ReactCompoundView.kt} +3 -5
  461. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{ReactCompoundViewGroup.java → ReactCompoundViewGroup.kt} +3 -3
  462. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +2 -0
  463. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +2 -0
  464. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.java +4 -3
  465. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +2 -0
  466. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupDrawingOrderHelper.java +1 -1
  467. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupManager.java +1 -1
  468. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +5 -1
  469. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactProp.java +0 -2
  470. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactPropGroup.java +0 -2
  471. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactPropertyHolder.java +0 -2
  472. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/debug/NotThreadSafeViewHierarchyUpdateDebugListener.kt +25 -0
  473. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundDrawable.kt +257 -0
  474. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BorderDrawable.kt +1071 -0
  475. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CSSBackgroundDrawable.java +11 -9
  476. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CompositeBackgroundDrawable.kt +200 -24
  477. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/InsetBoxShadowDrawable.kt +16 -20
  478. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/OutlineDrawable.kt +189 -0
  479. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/OutsetBoxShadowDrawable.kt +15 -11
  480. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/BlackHoleEventDispatcher.kt +1 -0
  481. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java +7 -0
  482. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.java +2 -2
  483. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.kt +1 -0
  484. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundImageLayer.kt +3 -2
  485. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderColors.kt +107 -0
  486. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +53 -4
  487. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BoxShadow.kt +14 -3
  488. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ComputedBorderRadius.kt +5 -1
  489. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Gradient.kt +20 -29
  490. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/LinearGradient.kt +137 -0
  491. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/OutlineStyle.kt +26 -0
  492. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/util/ReactFindViewUtil.kt +129 -0
  493. package/ReactAndroid/src/main/java/com/facebook/react/util/JSStackTrace.kt +1 -1
  494. package/ReactAndroid/src/main/java/com/facebook/react/views/common/ContextUtils.kt +2 -1
  495. package/ReactAndroid/src/main/java/com/facebook/react/views/debuggingoverlay/DebuggingOverlayManager.kt +96 -90
  496. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ImageResizeMethod.kt +1 -0
  497. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ImageResizeMode.kt +4 -1
  498. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageDownloadListener.kt +1 -1
  499. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.kt +8 -56
  500. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +74 -171
  501. package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ImageSource.kt +7 -4
  502. package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/MultiSourceHelper.kt +4 -0
  503. package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ResourceDrawableIdHelper.kt +0 -35
  504. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostShadowNode.kt +1 -1
  505. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +8 -0
  506. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +24 -6
  507. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.kt +1 -1
  508. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarShadowNode.kt +2 -2
  509. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ReactProgressBarViewManager.kt +25 -25
  510. package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaView.kt +1 -1
  511. package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaViewManager.kt +3 -3
  512. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerLegacyView.kt +46 -0
  513. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerViewManager.kt +27 -7
  514. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +56 -100
  515. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +15 -93
  516. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +44 -81
  517. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewCommandHelper.kt +101 -0
  518. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +28 -49
  519. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +12 -63
  520. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.kt +5 -11
  521. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.kt +131 -0
  522. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/RefreshEvent.kt +2 -2
  523. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.kt +153 -0
  524. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.java +6 -0
  525. package/ReactAndroid/src/main/java/com/facebook/react/views/text/FontMetricsUtil.kt +72 -0
  526. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java +7 -1
  527. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.kt +60 -0
  528. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactRawTextManager.kt +45 -0
  529. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +12 -59
  530. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +4 -0
  531. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextUpdate.kt +92 -0
  532. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +20 -54
  533. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManagerCallback.kt +25 -0
  534. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.kt +114 -0
  535. package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactVirtualTextShadowNode.java → ReactVirtualTextShadowNode.kt} +3 -8
  536. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactVirtualTextViewManager.kt +38 -0
  537. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +161 -56
  538. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextTransform.kt +48 -0
  539. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.java +2 -0
  540. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CustomLineHeightSpan.kt +25 -38
  541. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/LegacyLineHeightSpan.kt +69 -0
  542. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactTextPaintHolderSpan.kt +13 -0
  543. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +54 -58
  544. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +16 -60
  545. package/ReactAndroid/src/main/java/com/facebook/react/views/unimplementedview/ReactUnimplementedView.kt +2 -2
  546. package/ReactAndroid/src/main/java/com/facebook/react/views/unimplementedview/ReactUnimplementedViewManager.kt +14 -4
  547. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.kt +0 -5
  548. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactClippingViewManager.kt +82 -0
  549. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.java +9 -5
  550. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +149 -351
  551. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +489 -0
  552. package/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt +42 -0
  553. package/ReactAndroid/src/main/java/com/facebook/systrace/Systrace.kt +11 -0
  554. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaBoxSizing.java +33 -0
  555. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDisplay.java +3 -1
  556. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaErrata.java +2 -2
  557. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.java +2 -0
  558. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +4 -0
  559. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +10 -0
  560. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +4 -0
  561. package/ReactAndroid/src/main/jni/CMakeLists.txt +1 -0
  562. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +7 -0
  563. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnection.cpp +4 -2
  564. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnection.h +2 -0
  565. package/ReactAndroid/src/main/jni/react/fabric/{AsyncEventBeat.cpp → AndroidEventBeat.cpp} +10 -32
  566. package/ReactAndroid/src/main/jni/react/fabric/{AsyncEventBeat.h → AndroidEventBeat.h} +6 -9
  567. package/ReactAndroid/src/main/jni/react/fabric/Binding.h +3 -156
  568. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +1 -0
  569. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +422 -313
  570. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +2 -4
  571. package/ReactAndroid/src/main/jni/react/fabric/{Binding.cpp → FabricUIManagerBinding.cpp} +233 -151
  572. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +174 -0
  573. package/ReactAndroid/src/main/jni/react/fabric/JFabricUIManager.cpp +5 -6
  574. package/ReactAndroid/src/main/jni/react/fabric/JFabricUIManager.h +2 -2
  575. package/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +2 -2
  576. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp +16 -48
  577. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +1 -3
  578. package/ReactAndroid/src/main/jni/react/fabric/SurfaceHandlerBinding.cpp +8 -36
  579. package/ReactAndroid/src/main/jni/react/fabric/SurfaceHandlerBinding.h +2 -9
  580. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +149 -163
  581. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +32 -34
  582. package/ReactAndroid/src/main/jni/react/jni/JCallback.h +1 -1
  583. package/ReactAndroid/src/main/jni/react/jni/JInspector.cpp +1 -1
  584. package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.cpp +2 -3
  585. package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.h +1 -1
  586. package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.cpp +2 -3
  587. package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.h +1 -1
  588. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.cpp +29 -8
  589. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.h +3 -1
  590. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +2 -1
  591. package/ReactAndroid/src/main/jni/react/turbomodule/CMakeLists.txt +0 -1
  592. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/BindingsInstallerHolder.cpp +12 -3
  593. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/BindingsInstallerHolder.h +15 -4
  594. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/OnLoad.cpp +0 -3
  595. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +1 -1
  596. package/ReactAndroid/src/main/jni/third-party/fast_float/CMakeLists.txt +13 -0
  597. package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +5 -6
  598. package/ReactAndroid/src/main/res/views/alert/layout/alert_title_layout.xml +22 -0
  599. package/ReactCommon/React-Fabric.podspec +4 -2
  600. package/ReactCommon/React-FabricComponents.podspec +7 -4
  601. package/ReactCommon/React-FabricImage.podspec +6 -2
  602. package/ReactCommon/ReactCommon.podspec +5 -3
  603. package/ReactCommon/callinvoker/React-callinvoker.podspec +0 -6
  604. package/ReactCommon/cxxreact/CMakeLists.txt +0 -1
  605. package/ReactCommon/cxxreact/CxxNativeModule.cpp +6 -3
  606. package/ReactCommon/cxxreact/JSBigString.cpp +4 -4
  607. package/ReactCommon/cxxreact/JSExecutor.cpp +2 -4
  608. package/ReactCommon/cxxreact/React-cxxreact.podspec +4 -2
  609. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  610. package/ReactCommon/devtoolsruntimesettings/CMakeLists.txt +22 -0
  611. package/ReactCommon/devtoolsruntimesettings/DevToolsRuntimeSettings.cpp +27 -0
  612. package/ReactCommon/devtoolsruntimesettings/DevToolsRuntimeSettings.h +56 -0
  613. package/ReactCommon/hermes/React-hermes.podspec +3 -1
  614. package/ReactCommon/jsc/JSCRuntime.cpp +9 -9
  615. package/ReactCommon/jserrorhandler/CMakeLists.txt +2 -1
  616. package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +369 -98
  617. package/ReactCommon/jserrorhandler/JsErrorHandler.h +34 -8
  618. package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +8 -4
  619. package/ReactCommon/jserrorhandler/StackTraceParser.cpp +317 -0
  620. package/ReactCommon/jserrorhandler/StackTraceParser.h +23 -0
  621. package/ReactCommon/jserrorhandler/tests/StackTraceParserTest.cpp +1196 -0
  622. package/ReactCommon/jsi/React-jsi.podspec +8 -3
  623. package/ReactCommon/jsi/jsi/decorator.h +16 -0
  624. package/ReactCommon/jsi/jsi/jsi.cpp +113 -2
  625. package/ReactCommon/jsi/jsi/jsi.h +19 -6
  626. package/ReactCommon/jsi/jsi/test/testlib.cpp +59 -0
  627. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +4 -2
  628. package/ReactCommon/jsinspector-modern/HostAgent.cpp +6 -40
  629. package/ReactCommon/jsinspector-modern/HostAgent.h +4 -1
  630. package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +2 -0
  631. package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +8 -7
  632. package/ReactCommon/jsinspector-modern/InspectorInterfaces.h +2 -2
  633. package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +19 -9
  634. package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.h +4 -2
  635. package/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +6 -3
  636. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +1 -1
  637. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +59 -0
  638. package/ReactCommon/jsinspector-modern/TracingAgent.h +41 -0
  639. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp +29 -33
  640. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +130 -0
  641. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +4 -13
  642. package/ReactCommon/logger/React-logger.podspec +2 -1
  643. package/ReactCommon/react/bridging/Base.h +29 -4
  644. package/ReactCommon/react/bridging/Convert.h +2 -2
  645. package/ReactCommon/react/config/ReactNativeConfig.cpp +0 -3
  646. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +66 -59
  647. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +67 -60
  648. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +191 -218
  649. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +31 -33
  650. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +37 -45
  651. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +15 -17
  652. package/ReactCommon/react/featureflags/tests/ReactNativeFeatureFlagsTest.cpp +23 -0
  653. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.cpp +4 -16
  654. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.h +1 -1
  655. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +22 -22
  656. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +65 -45
  657. package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +5 -2
  658. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +2 -2
  659. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.h +0 -8
  660. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +4 -22
  661. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleWithJSIBindings.h +9 -1
  662. package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
  663. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +10 -0
  664. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +18 -2
  665. package/ReactCommon/react/nativemodule/devtoolsruntimesettings/CMakeLists.txt +24 -0
  666. package/ReactCommon/react/nativemodule/devtoolsruntimesettings/DevToolsRuntimeSettingsModule.cpp +35 -0
  667. package/ReactCommon/react/nativemodule/devtoolsruntimesettings/DevToolsRuntimeSettingsModule.h +27 -0
  668. package/ReactCommon/react/nativemodule/devtoolsruntimesettings/README.md +6 -0
  669. package/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +21 -3
  670. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +54 -57
  671. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +24 -26
  672. package/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec +19 -3
  673. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +18 -3
  674. package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.cpp +6 -1
  675. package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.h +3 -1
  676. package/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec +18 -3
  677. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +2 -1
  678. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +6 -3
  679. package/ReactCommon/react/nativemodule/samples/platform/android/ReactCommon/SampleTurboModuleJSIBindings.cpp +5 -4
  680. package/ReactCommon/react/nativemodule/samples/platform/android/SampleLegacyModule.kt +277 -0
  681. package/ReactCommon/react/nativemodule/samples/platform/android/SampleTurboModule.kt +245 -0
  682. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.h +4 -0
  683. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleLegacyModule.mm +2 -2
  684. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.mm +3 -2
  685. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +261 -28
  686. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.h +131 -0
  687. package/ReactCommon/react/performance/timeline/CircularBuffer.h +133 -0
  688. package/ReactCommon/react/performance/timeline/PerformanceEntry.h +53 -0
  689. package/ReactCommon/react/performance/timeline/PerformanceEntryBuffer.h +40 -0
  690. package/ReactCommon/react/performance/timeline/PerformanceEntryCircularBuffer.cpp +38 -0
  691. package/ReactCommon/react/performance/timeline/PerformanceEntryCircularBuffer.h +34 -0
  692. package/ReactCommon/react/performance/timeline/PerformanceEntryKeyedBuffer.cpp +59 -0
  693. package/ReactCommon/react/performance/timeline/PerformanceEntryKeyedBuffer.h +39 -0
  694. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +140 -206
  695. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +82 -131
  696. package/ReactCommon/react/performance/timeline/PerformanceObserver.cpp +92 -0
  697. package/ReactCommon/react/performance/timeline/PerformanceObserver.h +139 -0
  698. package/ReactCommon/react/performance/timeline/PerformanceObserverRegistry.cpp +34 -0
  699. package/ReactCommon/react/performance/timeline/PerformanceObserverRegistry.h +54 -0
  700. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
  701. package/ReactCommon/react/performance/timeline/tests/CircularBufferTest.cpp +127 -0
  702. package/ReactCommon/react/performance/timeline/tests/PerformanceEntryReporterTest.cpp +238 -254
  703. package/ReactCommon/react/performance/timeline/tests/PerformanceObserverTest.cpp +272 -0
  704. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +4 -4
  705. package/ReactCommon/react/renderer/attributedstring/AttributedString.cpp +13 -28
  706. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +8 -6
  707. package/ReactCommon/react/renderer/attributedstring/conversions.h +4 -0
  708. package/ReactCommon/react/renderer/attributedstring/tests/AttributedStringBoxTest.cpp +3 -3
  709. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +5 -18
  710. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +110 -36
  711. package/ReactCommon/react/renderer/components/image/ImageProps.h +8 -1
  712. package/ReactCommon/react/renderer/components/image/ImageShadowNode.h +1 -1
  713. package/ReactCommon/react/renderer/components/image/conversions.h +27 -0
  714. package/ReactCommon/react/renderer/components/rncore/ComponentDescriptors.cpp +0 -1
  715. package/ReactCommon/react/renderer/components/rncore/ComponentDescriptors.h +0 -1
  716. package/ReactCommon/react/renderer/components/rncore/Props.cpp +1 -0
  717. package/ReactCommon/react/renderer/components/rncore/Props.h +1 -0
  718. package/ReactCommon/react/renderer/components/rncore/ShadowNodes.cpp +0 -1
  719. package/ReactCommon/react/renderer/components/rncore/ShadowNodes.h +0 -11
  720. package/ReactCommon/react/renderer/components/rncore/States.h +0 -12
  721. package/ReactCommon/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h +18 -0
  722. package/ReactCommon/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.cpp +29 -0
  723. package/ReactCommon/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h +26 -0
  724. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.cpp +8 -6
  725. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h +5 -0
  726. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.cpp +0 -8
  727. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +0 -1
  728. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +98 -100
  729. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +0 -1
  730. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +2 -2
  731. package/ReactCommon/react/renderer/components/text/BaseTextShadowNode.cpp +19 -10
  732. package/ReactCommon/react/renderer/components/text/ParagraphProps.cpp +18 -16
  733. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +1 -0
  734. package/ReactCommon/react/renderer/components/text/tests/BaseTextShadowNodeTest.cpp +93 -0
  735. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.cpp +38 -2
  736. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +10 -0
  737. package/ReactCommon/react/renderer/components/textinput/{platform/ios/react/renderer/components/iostextinput/TextInputEventEmitter.cpp → TextInputEventEmitter.cpp} +3 -1
  738. package/ReactCommon/react/renderer/components/textinput/{platform/ios/react/renderer/components/iostextinput/TextInputEventEmitter.h → TextInputEventEmitter.h} +1 -0
  739. package/ReactCommon/react/renderer/components/textinput/baseConversions.h +46 -0
  740. package/ReactCommon/react/{utils/CoreFeatures.cpp → renderer/components/textinput/basePrimitives.h} +7 -4
  741. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +8 -6
  742. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +44 -57
  743. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h +1 -3
  744. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +3 -20
  745. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +0 -4
  746. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.cpp +8 -1
  747. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h +1 -0
  748. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.cpp +1 -18
  749. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h +1 -5
  750. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/conversions.h +0 -20
  751. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/primitives.h +1 -20
  752. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h +0 -12
  753. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +36 -34
  754. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +206 -149
  755. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +8 -2
  756. package/ReactCommon/react/renderer/components/view/TouchEventEmitter.cpp +48 -36
  757. package/ReactCommon/react/renderer/components/view/TouchEventEmitter.h +18 -18
  758. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +2 -2
  759. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +60 -60
  760. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +23 -17
  761. package/ReactCommon/react/renderer/components/view/conversions.h +136 -68
  762. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +22 -20
  763. package/ReactCommon/react/renderer/components/view/primitives.h +2 -0
  764. package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +20 -20
  765. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +2 -2
  766. package/ReactCommon/react/renderer/core/EventBeat.cpp +47 -14
  767. package/ReactCommon/react/renderer/core/EventBeat.h +87 -31
  768. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +4 -9
  769. package/ReactCommon/react/renderer/core/EventDispatcher.h +1 -3
  770. package/ReactCommon/react/renderer/core/EventEmitter.h +0 -2
  771. package/ReactCommon/react/renderer/core/EventLogger.h +4 -1
  772. package/ReactCommon/react/renderer/core/EventQueue.cpp +3 -18
  773. package/ReactCommon/react/renderer/core/EventQueue.h +1 -8
  774. package/ReactCommon/react/renderer/core/LayoutPrimitives.h +1 -1
  775. package/ReactCommon/react/renderer/core/LayoutableShadowNode.cpp +4 -4
  776. package/ReactCommon/react/renderer/core/Props.cpp +3 -2
  777. package/ReactCommon/react/renderer/core/RawEvent.h +6 -0
  778. package/ReactCommon/react/renderer/core/RawValue.h +20 -20
  779. package/ReactCommon/react/renderer/core/ShadowNode.cpp +21 -28
  780. package/ReactCommon/react/renderer/core/ShadowNode.h +4 -13
  781. package/ReactCommon/react/renderer/core/ShadowNodeFamily.cpp +24 -1
  782. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +38 -1
  783. package/ReactCommon/react/renderer/core/ShadowNodeFragment.h +0 -1
  784. package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +5 -5
  785. package/ReactCommon/react/renderer/core/conversions.h +3 -3
  786. package/ReactCommon/react/renderer/core/tests/EventQueueProcessorTest.cpp +4 -2
  787. package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +2 -51
  788. package/ReactCommon/react/renderer/debug/DebugStringConvertible.h +18 -18
  789. package/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +2 -0
  790. package/ReactCommon/react/renderer/dom/DOM.cpp +4 -7
  791. package/ReactCommon/react/renderer/graphics/BackgroundImage.h +4 -32
  792. package/ReactCommon/react/renderer/graphics/LinearGradient.h +62 -0
  793. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +4 -1
  794. package/ReactCommon/react/renderer/graphics/Transform.h +4 -4
  795. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +20 -48
  796. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.mm +2 -2
  797. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/RCTPlatformColorUtils.mm +2 -0
  798. package/ReactCommon/react/renderer/imagemanager/ImageRequest.cpp +4 -8
  799. package/ReactCommon/react/renderer/imagemanager/ImageRequest.h +2 -12
  800. package/ReactCommon/react/renderer/imagemanager/ImageResponse.h +1 -0
  801. package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.cpp +27 -3
  802. package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.h +15 -0
  803. package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +5 -2
  804. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImageManager.mm +24 -16
  805. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h +44 -8
  806. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +4 -3
  807. package/ReactCommon/react/renderer/imagemanager/primitives.h +5 -0
  808. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +36 -23
  809. package/ReactCommon/react/renderer/mounting/Differentiator.h +41 -2
  810. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +12 -7
  811. package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +0 -3
  812. package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +5 -4
  813. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +10 -130
  814. package/ReactCommon/react/renderer/mounting/ShadowTree.h +2 -7
  815. package/ReactCommon/react/renderer/mounting/ShadowTreeDelegate.h +1 -1
  816. package/ReactCommon/react/renderer/mounting/ShadowView.cpp +0 -8
  817. package/ReactCommon/react/renderer/mounting/ShadowView.h +0 -44
  818. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +4 -4
  819. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.h +1 -1
  820. package/ReactCommon/react/renderer/mounting/stubs/stubs.h +2 -2
  821. package/ReactCommon/react/renderer/mounting/tests/StackingContextTest.cpp +3 -3
  822. package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +35 -109
  823. package/ReactCommon/react/renderer/observers/events/EventPerformanceLogger.cpp +10 -6
  824. package/ReactCommon/react/renderer/observers/events/EventPerformanceLogger.h +5 -2
  825. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +36 -16
  826. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.h +4 -3
  827. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +6 -2
  828. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.h +1 -0
  829. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverState.cpp +9 -6
  830. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverState.h +11 -1
  831. package/ReactCommon/react/renderer/observers/mutation/MutationObserver.cpp +14 -16
  832. package/ReactCommon/react/renderer/observers/mutation/MutationObserver.h +15 -4
  833. package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.cpp +2 -2
  834. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +2 -1
  835. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +6 -0
  836. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +42 -51
  837. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +0 -1
  838. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +86 -68
  839. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +33 -37
  840. package/ReactCommon/react/renderer/scheduler/Scheduler.h +3 -3
  841. package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +4 -2
  842. package/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h +1 -2
  843. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +3 -3
  844. package/ReactCommon/react/renderer/scheduler/SurfaceManager.h +1 -1
  845. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +25 -0
  846. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +4 -10
  847. package/ReactCommon/react/renderer/uimanager/UIManager.h +1 -1
  848. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
  849. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +1 -3
  850. package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +1 -1
  851. package/ReactCommon/react/renderer/uimanager/consistency/tests/LazyShadowTreeRevisionConsistencyManagerTest.cpp +1 -1
  852. package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +10 -10
  853. package/ReactCommon/react/runtime/React-RuntimeCore.podspec +5 -2
  854. package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +4 -2
  855. package/ReactCommon/react/runtime/ReactInstance.cpp +189 -39
  856. package/ReactCommon/react/runtime/ReactInstance.h +1 -0
  857. package/ReactCommon/react/runtime/TimerManager.cpp +1 -1
  858. package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +3 -6
  859. package/ReactCommon/react/runtime/iostests/RCTHostTests.mm +20 -2
  860. package/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +7 -2
  861. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost+Internal.h +3 -0
  862. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +14 -6
  863. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +59 -21
  864. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h +11 -6
  865. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +65 -27
  866. package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +2 -131
  867. package/ReactCommon/react/timing/CMakeLists.txt +1 -1
  868. package/ReactCommon/react/timing/primitives.h +2 -0
  869. package/ReactCommon/react/utils/RunLoopObserver.cpp +2 -4
  870. package/ReactCommon/react/utils/RunLoopObserver.h +1 -3
  871. package/ReactCommon/react/utils/SharedFunction.h +1 -0
  872. package/ReactCommon/reactperflogger/CMakeLists.txt +4 -1
  873. package/ReactCommon/reactperflogger/React-perflogger.podspec +1 -0
  874. package/ReactCommon/reactperflogger/reactperflogger/FuseboxPerfettoDataSource.cpp +143 -0
  875. package/ReactCommon/reactperflogger/reactperflogger/FuseboxPerfettoDataSource.h +48 -0
  876. package/ReactCommon/reactperflogger/reactperflogger/ReactPerfLogger.cpp +65 -0
  877. package/ReactCommon/reactperflogger/reactperflogger/ReactPerfLogger.h +35 -0
  878. package/ReactCommon/reactperflogger/reactperflogger/ReactPerfetto.cpp +2 -0
  879. package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +2 -1
  880. package/ReactCommon/yoga/yoga/YGEnums.cpp +14 -2
  881. package/ReactCommon/yoga/yoga/YGEnums.h +8 -2
  882. package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +38 -28
  883. package/ReactCommon/yoga/yoga/YGNodeStyle.h +3 -0
  884. package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +51 -117
  885. package/ReactCommon/yoga/yoga/algorithm/Align.h +4 -4
  886. package/ReactCommon/yoga/yoga/algorithm/Baseline.cpp +2 -6
  887. package/ReactCommon/yoga/yoga/algorithm/BoundAxis.h +13 -6
  888. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +349 -341
  889. package/ReactCommon/yoga/yoga/algorithm/FlexLine.cpp +19 -18
  890. package/ReactCommon/yoga/yoga/algorithm/FlexLine.h +2 -4
  891. package/ReactCommon/yoga/yoga/enums/BoxSizing.h +40 -0
  892. package/ReactCommon/yoga/yoga/enums/Display.h +2 -1
  893. package/ReactCommon/yoga/yoga/enums/Errata.h +1 -1
  894. package/ReactCommon/yoga/yoga/node/LayoutableChildren.h +148 -0
  895. package/ReactCommon/yoga/yoga/node/Node.cpp +60 -7
  896. package/ReactCommon/yoga/yoga/node/Node.h +51 -9
  897. package/ReactCommon/yoga/yoga/style/Style.h +64 -1
  898. package/ReactCommon/yoga/yoga/style/StyleLength.h +0 -32
  899. package/ReactCommon/yoga/yoga/style/StyleValuePool.h +4 -4
  900. package/cli.js +2 -2
  901. package/gradle/libs.versions.toml +9 -8
  902. package/index.js +15 -8
  903. package/jest/setup.js +31 -0
  904. package/package.json +11 -13
  905. package/scripts/cocoapods/codegen_utils.rb +42 -17
  906. package/scripts/cocoapods/helpers.rb +16 -2
  907. package/scripts/cocoapods/new_architecture.rb +2 -0
  908. package/scripts/cocoapods/spm.rb +1 -1
  909. package/scripts/cocoapods/utils.rb +2 -0
  910. package/scripts/codegen/generate-artifacts-executor.js +336 -172
  911. package/scripts/codegen/generate-specs-cli-executor.js +3 -3
  912. package/scripts/codegen/templates/RCTAppDependencyProviderH.template +25 -0
  913. package/scripts/codegen/templates/RCTAppDependencyProviderMM.template +55 -0
  914. package/scripts/codegen/templates/RCTThirdPartyComponentsProviderH.template +16 -0
  915. package/scripts/codegen/templates/RCTThirdPartyComponentsProviderMM.template +23 -0
  916. package/scripts/codegen/templates/ReactAppDependencyProvider.podspec.template +34 -0
  917. package/scripts/generate-provider-cli.js +1 -2
  918. package/scripts/ios-configure-glog.sh +2 -2
  919. package/scripts/react-native-xcode.sh +8 -5
  920. package/scripts/react_native_pods.rb +16 -0
  921. package/sdks/.hermesversion +1 -1
  922. package/sdks/hermes-engine/hermes-engine.podspec +15 -9
  923. package/sdks/hermes-engine/hermes-utils.rb +29 -8
  924. package/sdks/hermes-engine/utils/build-ios-framework.sh +4 -24
  925. package/sdks/hermesc/linux64-bin/hermesc +0 -0
  926. package/sdks/hermesc/osx-bin/hermes +0 -0
  927. package/sdks/hermesc/osx-bin/hermesc +0 -0
  928. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  929. package/src/private/animated/NativeAnimatedHelper.js +18 -16
  930. package/src/private/animated/useAnimatedPropsMemo.js +356 -0
  931. package/src/private/components/HScrollViewNativeComponents.js +1 -27
  932. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +11 -8
  933. package/src/private/components/VScrollViewNativeComponents.js +2 -25
  934. package/src/private/debugging/ReactDevToolsSettingsManager.android.js +20 -0
  935. package/src/private/debugging/ReactDevToolsSettingsManager.ios.js +30 -0
  936. package/{Libraries/ReactNative/ReactFabricInternals.js → src/private/debugging/ReactDevToolsSettingsManager.js.flow} +5 -6
  937. package/src/private/{fusebox → debugging}/setUpFuseboxReactDevToolsDispatcher.js +6 -0
  938. package/src/private/devmenu/DevMenu.d.ts +20 -0
  939. package/src/private/devmenu/DevMenu.js +31 -0
  940. package/src/private/featureflags/ReactNativeFeatureFlags.js +96 -82
  941. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +8 -2
  942. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +17 -18
  943. package/src/private/fusebox/specs/NativeReactDevToolsRuntimeSettingsModule.js +34 -0
  944. package/src/private/setup/setUpDOM.js +14 -6
  945. package/src/private/setup/setUpMutationObserver.js +5 -0
  946. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -0
  947. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +8 -0
  948. package/src/private/specs/modules/NativeAccessibilityInfo.js +9 -0
  949. package/src/private/specs/modules/NativeAccessibilityManager.js +4 -0
  950. package/src/private/specs/modules/NativeActionSheetManager.js +2 -0
  951. package/src/private/specs/modules/NativeAppearance.js +4 -10
  952. package/src/private/specs/modules/NativeExceptionsManager.js +0 -12
  953. package/src/private/specs/modules/{NativeDevToolsSettingsManager.js → NativeReactDevToolsSettingsManager.js} +3 -5
  954. package/src/private/webapis/dom/geometry/DOMRect.js +2 -2
  955. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +2 -2
  956. package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -3
  957. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +102 -11
  958. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +26 -0
  959. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -0
  960. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  961. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +9 -0
  962. package/src/private/webapis/performance/EventTiming.js +13 -8
  963. package/src/private/webapis/performance/Performance.js +66 -73
  964. package/src/private/webapis/performance/PerformanceEntry.js +2 -5
  965. package/src/private/webapis/performance/PerformanceObserver.js +65 -164
  966. package/src/private/webapis/performance/RawPerformanceEntry.js +1 -1
  967. package/src/private/webapis/performance/UserTiming.js +11 -7
  968. package/src/private/webapis/performance/Utilities.js +18 -0
  969. package/src/private/webapis/performance/specs/NativePerformance.js +71 -2
  970. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +267 -0
  971. package/third-party-podspecs/DoubleConversion.podspec +1 -0
  972. package/third-party-podspecs/RCT-Folly.podspec +20 -11
  973. package/third-party-podspecs/boost.podspec +4 -0
  974. package/third-party-podspecs/fast_float.podspec +29 -0
  975. package/third-party-podspecs/glog.podspec +2 -1
  976. package/types/index.d.ts +1 -1
  977. package/types/public/ReactNativeTypes.d.ts +4 -8
  978. package/types/tsconfig.json +13 -13
  979. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +0 -35
  980. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +0 -20
  981. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +0 -49
  982. package/Libraries/DevToolsSettings/DevToolsSettingsManager.js.flow +0 -19
  983. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +0 -13
  984. package/React/Base/RCTRuntimeExecutorModule.h +0 -19
  985. package/ReactAndroid/src/main/java/com/facebook/debug/debugoverlay/model/DebugOverlayTag.java +0 -30
  986. package/ReactAndroid/src/main/java/com/facebook/debug/tags/ReactDebugOverlayTags.java +0 -38
  987. package/ReactAndroid/src/main/java/com/facebook/proguard/annotations/KeepGettersAndSetters.java +0 -27
  988. package/ReactAndroid/src/main/java/com/facebook/react/BaseReactPackage.java +0 -159
  989. package/ReactAndroid/src/main/java/com/facebook/react/CompositeReactPackage.java +0 -131
  990. package/ReactAndroid/src/main/java/com/facebook/react/CompositeReactPackageTurboModuleManagerDelegate.java +0 -57
  991. package/ReactAndroid/src/main/java/com/facebook/react/EagerModuleProvider.java +0 -26
  992. package/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.java +0 -69
  993. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackage.java +0 -67
  994. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageHelper.java +0 -56
  995. package/ReactAndroid/src/main/java/com/facebook/react/TurboReactPackage.java +0 -14
  996. package/ReactAndroid/src/main/java/com/facebook/react/bridge/AssertionException.java +0 -20
  997. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSApplicationIllegalArgumentException.java +0 -20
  998. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaOnlyArray.java +0 -219
  999. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaOnlyMap.java +0 -266
  1000. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArgumentsParseException.java +0 -22
  1001. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArray.java +0 -28
  1002. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NoSuchKeyException.java +0 -20
  1003. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactIgnorableMountingException.java +0 -36
  1004. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNoCrashBridgeNotAllowedSoftException.java +0 -27
  1005. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNoCrashSoftException.java +0 -29
  1006. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.java +0 -66
  1007. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeArray.java +0 -174
  1008. package/ReactAndroid/src/main/java/com/facebook/react/bridge/WritableNativeArray.java +0 -68
  1009. package/ReactAndroid/src/main/java/com/facebook/react/bridge/interop/InteropModuleRegistry.java +0 -57
  1010. package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegateFactory.java +0 -24
  1011. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +0 -79
  1012. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/AndroidManifest.xml +0 -10
  1013. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.kt +0 -74
  1014. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.kt +0 -45
  1015. package/ReactAndroid/src/main/java/com/facebook/react/fabric/LongStreamingStats.java +0 -76
  1016. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.java +0 -90
  1017. package/ReactAndroid/src/main/java/com/facebook/react/flipper/ReactNativeFlipper.kt +0 -34
  1018. package/ReactAndroid/src/main/java/com/facebook/react/modules/devtoolssettings/DevToolsSettingsManagerModule.kt +0 -40
  1019. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +0 -280
  1020. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoHelpers.java +0 -175
  1021. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.java +0 -104
  1022. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessDevSupportManager.java +0 -159
  1023. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/TaskCompletionSource.java +0 -73
  1024. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/UnobservedErrorNotifier.java +0 -42
  1025. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -329
  1026. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerInterface.kt +0 -85
  1027. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/debug/NotThreadSafeViewHierarchyUpdateDebugListener.java +0 -30
  1028. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/util/ReactFindViewUtil.java +0 -138
  1029. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerView.java +0 -82
  1030. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewCommandHelper.java +0 -141
  1031. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.java +0 -151
  1032. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.java +0 -194
  1033. package/ReactAndroid/src/main/java/com/facebook/react/views/text/FontMetricsUtil.java +0 -65
  1034. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.java +0 -66
  1035. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactRawTextManager.java +0 -55
  1036. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextUpdate.java +0 -153
  1037. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManagerCallback.java +0 -25
  1038. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.java +0 -198
  1039. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactVirtualTextViewManager.java +0 -47
  1040. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextTransform.java +0 -63
  1041. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactClippingViewManager.java +0 -95
  1042. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +0 -25
  1043. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundManager.java +0 -146
  1044. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.java +0 -588
  1045. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CompositeTurboModuleManagerDelegate.cpp +0 -58
  1046. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CompositeTurboModuleManagerDelegate.h +0 -48
  1047. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTRuntimeExecutor.h +0 -32
  1048. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTRuntimeExecutor.mm +0 -34
  1049. package/ReactCommon/react/nativemodule/samples/platform/android/SampleLegacyModule.java +0 -246
  1050. package/ReactCommon/react/nativemodule/samples/platform/android/SampleTurboModule.java +0 -281
  1051. package/ReactCommon/react/nativemodule/webperformance/NativePerformanceObserver.cpp +0 -130
  1052. package/ReactCommon/react/nativemodule/webperformance/NativePerformanceObserver.h +0 -91
  1053. package/ReactCommon/react/performance/timeline/BoundedConsumableBuffer.h +0 -247
  1054. package/ReactCommon/react/performance/timeline/tests/BoundedConsumableBufferTest.cpp +0 -219
  1055. package/ReactCommon/react/renderer/scheduler/AsynchronousEventBeat.cpp +0 -57
  1056. package/ReactCommon/react/utils/CoreFeatures.h +0 -30
  1057. package/src/private/components/useSyncOnScroll.js +0 -48
  1058. package/src/private/fusebox/README.md +0 -12
  1059. package/src/private/webapis/performance/specs/NativePerformanceObserver.js +0 -61
  1060. package/src/private/webapis/performance/specs/__mocks__/NativePerformance.js +0 -67
  1061. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceObserver.js +0 -127
  1062. package/types/experimental.d.ts +0 -59
  1063. /package/src/private/{fusebox → debugging}/FuseboxSessionObserver.js +0 -0
@@ -10,7 +10,6 @@
10
10
  #include <cfloat>
11
11
  #include <cmath>
12
12
  #include <cstring>
13
- #include <string>
14
13
 
15
14
  #include <yoga/Yoga.h>
16
15
 
@@ -38,13 +37,15 @@ std::atomic<uint32_t> gCurrentGenerationCount(0);
38
37
 
39
38
  static void constrainMaxSizeForMode(
40
39
  const yoga::Node* node,
40
+ Direction direction,
41
41
  FlexDirection axis,
42
42
  float ownerAxisSize,
43
43
  float ownerWidth,
44
44
  /*in_out*/ SizingMode* mode,
45
45
  /*in_out*/ float* size) {
46
46
  const FloatOptional maxSize =
47
- node->style().maxDimension(dimension(axis)).resolve(ownerAxisSize) +
47
+ node->style().resolvedMaxDimension(
48
+ direction, dimension(axis), ownerAxisSize, ownerWidth) +
48
49
  FloatOptional(node->style().computeMarginForAxis(axis, ownerWidth));
49
50
  switch (*mode) {
50
51
  case SizingMode::StretchFit:
@@ -79,15 +80,15 @@ static void computeFlexBasisForChild(
79
80
  resolveDirection(node->style().flexDirection(), direction);
80
81
  const bool isMainAxisRow = isRow(mainAxis);
81
82
  const float mainAxisSize = isMainAxisRow ? width : height;
82
- const float mainAxisownerSize = isMainAxisRow ? ownerWidth : ownerHeight;
83
+ const float mainAxisOwnerSize = isMainAxisRow ? ownerWidth : ownerHeight;
83
84
 
84
85
  float childWidth = YGUndefined;
85
86
  float childHeight = YGUndefined;
86
87
  SizingMode childWidthSizingMode;
87
88
  SizingMode childHeightSizingMode;
88
89
 
89
- const FloatOptional resolvedFlexBasis =
90
- child->resolveFlexBasisPtr().resolve(mainAxisownerSize);
90
+ const FloatOptional resolvedFlexBasis = child->resolveFlexBasis(
91
+ direction, mainAxis, mainAxisOwnerSize, ownerWidth);
91
92
  const bool isRowStyleDimDefined =
92
93
  child->hasDefiniteLength(Dimension::Width, ownerWidth);
93
94
  const bool isColumnStyleDimDefined =
@@ -110,7 +111,8 @@ static void computeFlexBasisForChild(
110
111
  child, FlexDirection::Row, direction, ownerWidth));
111
112
 
112
113
  child->setLayoutComputedFlexBasis(yoga::maxOrDefined(
113
- child->getResolvedDimension(Dimension::Width).resolve(ownerWidth),
114
+ child->getResolvedDimension(
115
+ direction, Dimension::Width, ownerWidth, ownerWidth),
114
116
  paddingAndBorder));
115
117
  } else if (!isMainAxisRow && isColumnStyleDimDefined) {
116
118
  // The height is definite, so use that as the flex basis.
@@ -118,7 +120,8 @@ static void computeFlexBasisForChild(
118
120
  FloatOptional(paddingAndBorderForAxis(
119
121
  child, FlexDirection::Column, direction, ownerWidth));
120
122
  child->setLayoutComputedFlexBasis(yoga::maxOrDefined(
121
- child->getResolvedDimension(Dimension::Height).resolve(ownerHeight),
123
+ child->getResolvedDimension(
124
+ direction, Dimension::Height, ownerHeight, ownerWidth),
122
125
  paddingAndBorder));
123
126
  } else {
124
127
  // Compute the flex basis and hypothetical main size (i.e. the clamped flex
@@ -132,16 +135,19 @@ static void computeFlexBasisForChild(
132
135
  child->style().computeMarginForAxis(FlexDirection::Column, ownerWidth);
133
136
 
134
137
  if (isRowStyleDimDefined) {
135
- childWidth = child->getResolvedDimension(Dimension::Width)
136
- .resolve(ownerWidth)
138
+ childWidth = child
139
+ ->getResolvedDimension(
140
+ direction, Dimension::Width, ownerWidth, ownerWidth)
137
141
  .unwrap() +
138
142
  marginRow;
139
143
  childWidthSizingMode = SizingMode::StretchFit;
140
144
  }
141
145
  if (isColumnStyleDimDefined) {
142
- childHeight = child->getResolvedDimension(Dimension::Height)
143
- .resolve(ownerHeight)
144
- .unwrap() +
146
+ childHeight =
147
+ child
148
+ ->getResolvedDimension(
149
+ direction, Dimension::Height, ownerHeight, ownerWidth)
150
+ .unwrap() +
145
151
  marginColumn;
146
152
  childHeightSizingMode = SizingMode::StretchFit;
147
153
  }
@@ -216,6 +222,7 @@ static void computeFlexBasisForChild(
216
222
 
217
223
  constrainMaxSizeForMode(
218
224
  child,
225
+ direction,
219
226
  FlexDirection::Row,
220
227
  ownerWidth,
221
228
  ownerWidth,
@@ -223,6 +230,7 @@ static void computeFlexBasisForChild(
223
230
  &childWidth);
224
231
  constrainMaxSizeForMode(
225
232
  child,
233
+ direction,
226
234
  FlexDirection::Column,
227
235
  ownerHeight,
228
236
  ownerWidth,
@@ -467,12 +475,29 @@ static void zeroOutLayoutRecursively(yoga::Node* const node) {
467
475
  }
468
476
  }
469
477
 
478
+ static void cleanupContentsNodesRecursively(yoga::Node* const node) {
479
+ for (auto child : node->getChildren()) {
480
+ if (child->style().display() == Display::Contents) {
481
+ child->getLayout() = {};
482
+ child->setLayoutDimension(0, Dimension::Width);
483
+ child->setLayoutDimension(0, Dimension::Height);
484
+ child->setHasNewLayout(true);
485
+ child->setDirty(false);
486
+ child->cloneChildrenIfNeeded();
487
+
488
+ cleanupContentsNodesRecursively(child);
489
+ }
490
+ }
491
+ }
492
+
470
493
  static float calculateAvailableInnerDimension(
471
494
  const yoga::Node* const node,
495
+ const Direction direction,
472
496
  const Dimension dimension,
473
497
  const float availableDim,
474
498
  const float paddingAndBorder,
475
- const float ownerDim) {
499
+ const float ownerDim,
500
+ const float ownerWidth) {
476
501
  float availableInnerDim = availableDim - paddingAndBorder;
477
502
  // Max dimension overrides predefined dimension value; Min dimension in turn
478
503
  // overrides both of the above
@@ -480,13 +505,15 @@ static float calculateAvailableInnerDimension(
480
505
  // We want to make sure our available height does not violate min and max
481
506
  // constraints
482
507
  const FloatOptional minDimensionOptional =
483
- node->style().minDimension(dimension).resolve(ownerDim);
508
+ node->style().resolvedMinDimension(
509
+ direction, dimension, ownerDim, ownerWidth);
484
510
  const float minInnerDim = minDimensionOptional.isUndefined()
485
511
  ? 0.0f
486
512
  : minDimensionOptional.unwrap() - paddingAndBorder;
487
513
 
488
514
  const FloatOptional maxDimensionOptional =
489
- node->style().maxDimension(dimension).resolve(ownerDim);
515
+ node->style().resolvedMaxDimension(
516
+ direction, dimension, ownerDim, ownerWidth);
490
517
 
491
518
  const float maxInnerDim = maxDimensionOptional.isUndefined()
492
519
  ? FLT_MAX
@@ -512,7 +539,7 @@ static float computeFlexBasisForChildren(
512
539
  const uint32_t generationCount) {
513
540
  float totalOuterFlexBasis = 0.0f;
514
541
  YGNodeRef singleFlexChild = nullptr;
515
- const auto& children = node->getChildren();
542
+ auto children = node->getLayoutChildren();
516
543
  SizingMode sizingModeMainDim =
517
544
  isRow(mainAxis) ? widthSizingMode : heightSizingMode;
518
545
  // If there is only one child with flexGrow + flexShrink it means we can set
@@ -536,7 +563,7 @@ static float computeFlexBasisForChildren(
536
563
  }
537
564
 
538
565
  for (auto child : children) {
539
- child->resolveDimension();
566
+ child->processDimensions();
540
567
  if (child->style().display() == Display::None) {
541
568
  zeroOutLayoutRecursively(child);
542
569
  child->setHasNewLayout(true);
@@ -590,7 +617,8 @@ static float distributeFreeSpaceSecondPass(
590
617
  const FlexDirection mainAxis,
591
618
  const FlexDirection crossAxis,
592
619
  const Direction direction,
593
- const float mainAxisownerSize,
620
+ const float ownerWidth,
621
+ const float mainAxisOwnerSize,
594
622
  const float availableInnerMainDim,
595
623
  const float availableInnerCrossDim,
596
624
  const float availableInnerWidth,
@@ -611,9 +639,11 @@ static float distributeFreeSpaceSecondPass(
611
639
  for (auto currentLineChild : flexLine.itemsInFlow) {
612
640
  childFlexBasis = boundAxisWithinMinAndMax(
613
641
  currentLineChild,
642
+ direction,
614
643
  mainAxis,
615
644
  currentLineChild->getLayout().computedFlexBasis,
616
- mainAxisownerSize)
645
+ mainAxisOwnerSize,
646
+ ownerWidth)
617
647
  .unwrap();
618
648
  float updatedMainSize = childFlexBasis;
619
649
 
@@ -662,13 +692,6 @@ static float distributeFreeSpaceSecondPass(
662
692
  }
663
693
  }
664
694
 
665
- yoga::assertFatalWithNode(
666
- currentLineChild,
667
- yoga::isDefined(updatedMainSize),
668
- ("updatedMainSize is undefined. mainAxisownerSize: " +
669
- std::to_string(mainAxisownerSize))
670
- .c_str());
671
-
672
695
  deltaFreeSpace += updatedMainSize - childFlexBasis;
673
696
 
674
697
  const float marginMain = currentLineChild->style().computeMarginForAxis(
@@ -708,14 +731,17 @@ static float distributeFreeSpaceSecondPass(
708
731
  ? SizingMode::MaxContent
709
732
  : SizingMode::FitContent;
710
733
  } else {
711
- childCrossSize =
712
- currentLineChild->getResolvedDimension(dimension(crossAxis))
713
- .resolve(availableInnerCrossDim)
714
- .unwrap() +
734
+ childCrossSize = currentLineChild
735
+ ->getResolvedDimension(
736
+ direction,
737
+ dimension(crossAxis),
738
+ availableInnerCrossDim,
739
+ availableInnerWidth)
740
+ .unwrap() +
715
741
  marginCross;
716
742
  const bool isLoosePercentageMeasurement =
717
- currentLineChild->getResolvedDimension(dimension(crossAxis)).unit() ==
718
- Unit::Percent &&
743
+ currentLineChild->getProcessedDimension(dimension(crossAxis))
744
+ .unit() == Unit::Percent &&
719
745
  sizingModeCrossDim != SizingMode::StretchFit;
720
746
  childCrossSizingMode =
721
747
  yoga::isUndefined(childCrossSize) || isLoosePercentageMeasurement
@@ -725,6 +751,7 @@ static float distributeFreeSpaceSecondPass(
725
751
 
726
752
  constrainMaxSizeForMode(
727
753
  currentLineChild,
754
+ direction,
728
755
  mainAxis,
729
756
  availableInnerMainDim,
730
757
  availableInnerWidth,
@@ -732,6 +759,7 @@ static float distributeFreeSpaceSecondPass(
732
759
  &childMainSize);
733
760
  constrainMaxSizeForMode(
734
761
  currentLineChild,
762
+ direction,
735
763
  crossAxis,
736
764
  availableInnerCrossDim,
737
765
  availableInnerWidth,
@@ -757,20 +785,6 @@ static float distributeFreeSpaceSecondPass(
757
785
  const bool isLayoutPass = performLayout && !requiresStretchLayout;
758
786
  // Recursively call the layout algorithm for this child with the updated
759
787
  // main size.
760
-
761
- yoga::assertFatalWithNode(
762
- currentLineChild,
763
- yoga::isUndefined(childMainSize)
764
- ? childMainSizingMode == SizingMode::MaxContent
765
- : true,
766
- "childMainSize is undefined so childMainSizingMode must be MaxContent");
767
- yoga::assertFatalWithNode(
768
- currentLineChild,
769
- yoga::isUndefined(childCrossSize)
770
- ? childCrossSizingMode == SizingMode::MaxContent
771
- : true,
772
- "childCrossSize is undefined so childCrossSizingMode must be MaxContent");
773
-
774
788
  calculateLayoutInternal(
775
789
  currentLineChild,
776
790
  childWidth,
@@ -800,7 +814,8 @@ static void distributeFreeSpaceFirstPass(
800
814
  FlexLine& flexLine,
801
815
  const Direction direction,
802
816
  const FlexDirection mainAxis,
803
- const float mainAxisownerSize,
817
+ const float ownerWidth,
818
+ const float mainAxisOwnerSize,
804
819
  const float availableInnerMainDim,
805
820
  const float availableInnerWidth) {
806
821
  float flexShrinkScaledFactor = 0;
@@ -812,9 +827,11 @@ static void distributeFreeSpaceFirstPass(
812
827
  for (auto currentLineChild : flexLine.itemsInFlow) {
813
828
  float childFlexBasis = boundAxisWithinMinAndMax(
814
829
  currentLineChild,
830
+ direction,
815
831
  mainAxis,
816
832
  currentLineChild->getLayout().computedFlexBasis,
817
- mainAxisownerSize)
833
+ mainAxisOwnerSize,
834
+ ownerWidth)
818
835
  .unwrap();
819
836
 
820
837
  if (flexLine.layout.remainingFreeSpace < 0) {
@@ -908,7 +925,8 @@ static void resolveFlexibleLength(
908
925
  const FlexDirection mainAxis,
909
926
  const FlexDirection crossAxis,
910
927
  const Direction direction,
911
- const float mainAxisownerSize,
928
+ const float ownerWidth,
929
+ const float mainAxisOwnerSize,
912
930
  const float availableInnerMainDim,
913
931
  const float availableInnerCrossDim,
914
932
  const float availableInnerWidth,
@@ -925,7 +943,8 @@ static void resolveFlexibleLength(
925
943
  flexLine,
926
944
  direction,
927
945
  mainAxis,
928
- mainAxisownerSize,
946
+ ownerWidth,
947
+ mainAxisOwnerSize,
929
948
  availableInnerMainDim,
930
949
  availableInnerWidth);
931
950
 
@@ -936,7 +955,8 @@ static void resolveFlexibleLength(
936
955
  mainAxis,
937
956
  crossAxis,
938
957
  direction,
939
- mainAxisownerSize,
958
+ ownerWidth,
959
+ mainAxisOwnerSize,
940
960
  availableInnerMainDim,
941
961
  availableInnerCrossDim,
942
962
  availableInnerWidth,
@@ -954,13 +974,12 @@ static void resolveFlexibleLength(
954
974
  static void justifyMainAxis(
955
975
  yoga::Node* const node,
956
976
  FlexLine& flexLine,
957
- const size_t startOfLineIndex,
958
977
  const FlexDirection mainAxis,
959
978
  const FlexDirection crossAxis,
960
979
  const Direction direction,
961
980
  const SizingMode sizingModeMainDim,
962
981
  const SizingMode sizingModeCrossDim,
963
- const float mainAxisownerSize,
982
+ const float mainAxisOwnerSize,
964
983
  const float ownerWidth,
965
984
  const float availableInnerMainDim,
966
985
  const float availableInnerCrossDim,
@@ -982,8 +1001,9 @@ static void justifyMainAxis(
982
1001
  if (sizingModeMainDim == SizingMode::FitContent &&
983
1002
  flexLine.layout.remainingFreeSpace > 0) {
984
1003
  if (style.minDimension(dimension(mainAxis)).isDefined() &&
985
- style.minDimension(dimension(mainAxis))
986
- .resolve(mainAxisownerSize)
1004
+ style
1005
+ .resolvedMinDimension(
1006
+ direction, dimension(mainAxis), mainAxisOwnerSize, ownerWidth)
987
1007
  .isDefined()) {
988
1008
  // This condition makes sure that if the size of main dimension(after
989
1009
  // considering child nodes main dim, leading and trailing padding etc)
@@ -992,9 +1012,11 @@ static void justifyMainAxis(
992
1012
 
993
1013
  // `minAvailableMainDim` denotes minimum available space in which child
994
1014
  // can be laid out, it will exclude space consumed by padding and border.
995
- const float minAvailableMainDim = style.minDimension(dimension(mainAxis))
996
- .resolve(mainAxisownerSize)
997
- .unwrap() -
1015
+ const float minAvailableMainDim =
1016
+ style
1017
+ .resolvedMinDimension(
1018
+ direction, dimension(mainAxis), mainAxisOwnerSize, ownerWidth)
1019
+ .unwrap() -
998
1020
  leadingPaddingAndBorderMain - trailingPaddingAndBorderMain;
999
1021
  const float occupiedSpaceByChildNodes =
1000
1022
  availableInnerMainDim - flexLine.layout.remainingFreeSpace;
@@ -1051,102 +1073,69 @@ static void justifyMainAxis(
1051
1073
  float maxAscentForCurrentLine = 0;
1052
1074
  float maxDescentForCurrentLine = 0;
1053
1075
  bool isNodeBaselineLayout = isBaselineLayout(node);
1054
- for (size_t i = startOfLineIndex; i < flexLine.endOfLineIndex; i++) {
1055
- const auto child = node->getChild(i);
1056
- const Style& childStyle = child->style();
1076
+ for (auto child : flexLine.itemsInFlow) {
1057
1077
  const LayoutResults& childLayout = child->getLayout();
1058
- if (childStyle.display() == Display::None) {
1059
- continue;
1078
+ if (child->style().flexStartMarginIsAuto(mainAxis, direction) &&
1079
+ flexLine.layout.remainingFreeSpace > 0.0f) {
1080
+ flexLine.layout.mainDim += flexLine.layout.remainingFreeSpace /
1081
+ static_cast<float>(flexLine.numberOfAutoMargins);
1060
1082
  }
1061
- if (childStyle.positionType() == PositionType::Absolute &&
1062
- child->style().isFlexStartPositionDefined(mainAxis, direction) &&
1063
- !child->style().isFlexStartPositionAuto(mainAxis, direction)) {
1064
- if (performLayout) {
1065
- // In case the child is position absolute and has left/top being
1066
- // defined, we override the position to whatever the user said (and
1067
- // margin/border).
1068
- child->setLayoutPosition(
1069
- child->style().computeFlexStartPosition(
1070
- mainAxis, direction, availableInnerMainDim) +
1071
- node->style().computeFlexStartBorder(mainAxis, direction) +
1072
- child->style().computeFlexStartMargin(
1073
- mainAxis, direction, availableInnerWidth),
1074
- flexStartEdge(mainAxis));
1075
- }
1076
- } else {
1077
- // Now that we placed the element, we need to update the variables.
1078
- // We need to do that only for relative elements. Absolute elements do not
1079
- // take part in that phase.
1080
- if (childStyle.positionType() != PositionType::Absolute) {
1081
- if (child->style().flexStartMarginIsAuto(mainAxis, direction) &&
1082
- flexLine.layout.remainingFreeSpace > 0.0f) {
1083
- flexLine.layout.mainDim += flexLine.layout.remainingFreeSpace /
1084
- static_cast<float>(flexLine.numberOfAutoMargins);
1085
- }
1086
1083
 
1087
- if (performLayout) {
1088
- child->setLayoutPosition(
1089
- childLayout.position(flexStartEdge(mainAxis)) +
1090
- flexLine.layout.mainDim,
1091
- flexStartEdge(mainAxis));
1092
- }
1093
-
1094
- if (child != flexLine.itemsInFlow.back()) {
1095
- flexLine.layout.mainDim += betweenMainDim;
1096
- }
1084
+ if (performLayout) {
1085
+ child->setLayoutPosition(
1086
+ childLayout.position(flexStartEdge(mainAxis)) +
1087
+ flexLine.layout.mainDim,
1088
+ flexStartEdge(mainAxis));
1089
+ }
1097
1090
 
1098
- if (child->style().flexEndMarginIsAuto(mainAxis, direction) &&
1099
- flexLine.layout.remainingFreeSpace > 0.0f) {
1100
- flexLine.layout.mainDim += flexLine.layout.remainingFreeSpace /
1101
- static_cast<float>(flexLine.numberOfAutoMargins);
1102
- }
1103
- bool canSkipFlex =
1104
- !performLayout && sizingModeCrossDim == SizingMode::StretchFit;
1105
- if (canSkipFlex) {
1106
- // If we skipped the flex step, then we can't rely on the measuredDims
1107
- // because they weren't computed. This means we can't call
1108
- // dimensionWithMargin.
1109
- flexLine.layout.mainDim += child->style().computeMarginForAxis(
1110
- mainAxis, availableInnerWidth) +
1111
- childLayout.computedFlexBasis.unwrap();
1112
- flexLine.layout.crossDim = availableInnerCrossDim;
1113
- } else {
1114
- // The main dimension is the sum of all the elements dimension plus
1115
- // the spacing.
1116
- flexLine.layout.mainDim +=
1117
- child->dimensionWithMargin(mainAxis, availableInnerWidth);
1118
-
1119
- if (isNodeBaselineLayout) {
1120
- // If the child is baseline aligned then the cross dimension is
1121
- // calculated by adding maxAscent and maxDescent from the baseline.
1122
- const float ascent = calculateBaseline(child) +
1123
- child->style().computeFlexStartMargin(
1124
- FlexDirection::Column, direction, availableInnerWidth);
1125
- const float descent =
1126
- child->getLayout().measuredDimension(Dimension::Height) +
1127
- child->style().computeMarginForAxis(
1128
- FlexDirection::Column, availableInnerWidth) -
1129
- ascent;
1091
+ if (child != flexLine.itemsInFlow.back()) {
1092
+ flexLine.layout.mainDim += betweenMainDim;
1093
+ }
1130
1094
 
1131
- maxAscentForCurrentLine =
1132
- yoga::maxOrDefined(maxAscentForCurrentLine, ascent);
1133
- maxDescentForCurrentLine =
1134
- yoga::maxOrDefined(maxDescentForCurrentLine, descent);
1135
- } else {
1136
- // The cross dimension is the max of the elements dimension since
1137
- // there can only be one element in that cross dimension in the case
1138
- // when the items are not baseline aligned
1139
- flexLine.layout.crossDim = yoga::maxOrDefined(
1140
- flexLine.layout.crossDim,
1141
- child->dimensionWithMargin(crossAxis, availableInnerWidth));
1142
- }
1143
- }
1144
- } else if (performLayout) {
1145
- child->setLayoutPosition(
1146
- childLayout.position(flexStartEdge(mainAxis)) +
1147
- node->style().computeFlexStartBorder(mainAxis, direction) +
1148
- leadingMainDim,
1149
- flexStartEdge(mainAxis));
1095
+ if (child->style().flexEndMarginIsAuto(mainAxis, direction) &&
1096
+ flexLine.layout.remainingFreeSpace > 0.0f) {
1097
+ flexLine.layout.mainDim += flexLine.layout.remainingFreeSpace /
1098
+ static_cast<float>(flexLine.numberOfAutoMargins);
1099
+ }
1100
+ bool canSkipFlex =
1101
+ !performLayout && sizingModeCrossDim == SizingMode::StretchFit;
1102
+ if (canSkipFlex) {
1103
+ // If we skipped the flex step, then we can't rely on the measuredDims
1104
+ // because they weren't computed. This means we can't call
1105
+ // dimensionWithMargin.
1106
+ flexLine.layout.mainDim +=
1107
+ child->style().computeMarginForAxis(mainAxis, availableInnerWidth) +
1108
+ childLayout.computedFlexBasis.unwrap();
1109
+ flexLine.layout.crossDim = availableInnerCrossDim;
1110
+ } else {
1111
+ // The main dimension is the sum of all the elements dimension plus
1112
+ // the spacing.
1113
+ flexLine.layout.mainDim +=
1114
+ child->dimensionWithMargin(mainAxis, availableInnerWidth);
1115
+
1116
+ if (isNodeBaselineLayout) {
1117
+ // If the child is baseline aligned then the cross dimension is
1118
+ // calculated by adding maxAscent and maxDescent from the baseline.
1119
+ const float ascent = calculateBaseline(child) +
1120
+ child->style().computeFlexStartMargin(
1121
+ FlexDirection::Column, direction, availableInnerWidth);
1122
+ const float descent =
1123
+ child->getLayout().measuredDimension(Dimension::Height) +
1124
+ child->style().computeMarginForAxis(
1125
+ FlexDirection::Column, availableInnerWidth) -
1126
+ ascent;
1127
+
1128
+ maxAscentForCurrentLine =
1129
+ yoga::maxOrDefined(maxAscentForCurrentLine, ascent);
1130
+ maxDescentForCurrentLine =
1131
+ yoga::maxOrDefined(maxDescentForCurrentLine, descent);
1132
+ } else {
1133
+ // The cross dimension is the max of the elements dimension since
1134
+ // there can only be one element in that cross dimension in the case
1135
+ // when the items are not baseline aligned
1136
+ flexLine.layout.crossDim = yoga::maxOrDefined(
1137
+ flexLine.layout.crossDim,
1138
+ child->dimensionWithMargin(crossAxis, availableInnerWidth));
1150
1139
  }
1151
1140
  }
1152
1141
  }
@@ -1317,10 +1306,14 @@ static void calculateLayoutImpl(
1317
1306
  ownerHeight,
1318
1307
  layoutMarkerData,
1319
1308
  reason);
1309
+
1310
+ // Clean and update all display: contents nodes with a direct path to the
1311
+ // current node as they will not be traversed
1312
+ cleanupContentsNodesRecursively(node);
1320
1313
  return;
1321
1314
  }
1322
1315
 
1323
- const auto childCount = node->getChildCount();
1316
+ const auto childCount = node->getLayoutChildCount();
1324
1317
  if (childCount == 0) {
1325
1318
  measureNodeWithoutChildren(
1326
1319
  node,
@@ -1331,6 +1324,10 @@ static void calculateLayoutImpl(
1331
1324
  heightSizingMode,
1332
1325
  ownerWidth,
1333
1326
  ownerHeight);
1327
+
1328
+ // Clean and update all display: contents nodes with a direct path to the
1329
+ // current node as they will not be traversed
1330
+ cleanupContentsNodesRecursively(node);
1334
1331
  return;
1335
1332
  }
1336
1333
 
@@ -1346,6 +1343,9 @@ static void calculateLayoutImpl(
1346
1343
  heightSizingMode,
1347
1344
  ownerWidth,
1348
1345
  ownerHeight)) {
1346
+ // Clean and update all display: contents nodes with a direct path to the
1347
+ // current node as they will not be traversed
1348
+ cleanupContentsNodesRecursively(node);
1349
1349
  return;
1350
1350
  }
1351
1351
 
@@ -1355,6 +1355,10 @@ static void calculateLayoutImpl(
1355
1355
  // Reset layout flags, as they could have changed.
1356
1356
  node->setLayoutHadOverflow(false);
1357
1357
 
1358
+ // Clean and update all display: contents nodes with a direct path to the
1359
+ // current node as they will not be traversed
1360
+ cleanupContentsNodesRecursively(node);
1361
+
1358
1362
  // STEP 1: CALCULATE VALUES FOR REMAINDER OF ALGORITHM
1359
1363
  const FlexDirection mainAxis =
1360
1364
  resolveDirection(node->style().flexDirection(), direction);
@@ -1362,8 +1366,8 @@ static void calculateLayoutImpl(
1362
1366
  const bool isMainAxisRow = isRow(mainAxis);
1363
1367
  const bool isNodeFlexWrap = node->style().flexWrap() != Wrap::NoWrap;
1364
1368
 
1365
- const float mainAxisownerSize = isMainAxisRow ? ownerWidth : ownerHeight;
1366
- const float crossAxisownerSize = isMainAxisRow ? ownerHeight : ownerWidth;
1369
+ const float mainAxisOwnerSize = isMainAxisRow ? ownerWidth : ownerHeight;
1370
+ const float crossAxisOwnerSize = isMainAxisRow ? ownerHeight : ownerWidth;
1367
1371
 
1368
1372
  const float paddingAndBorderAxisMain =
1369
1373
  paddingAndBorderForAxis(node, mainAxis, direction, ownerWidth);
@@ -1387,16 +1391,20 @@ static void calculateLayoutImpl(
1387
1391
 
1388
1392
  float availableInnerWidth = calculateAvailableInnerDimension(
1389
1393
  node,
1394
+ direction,
1390
1395
  Dimension::Width,
1391
1396
  availableWidth - marginAxisRow,
1392
1397
  paddingAndBorderAxisRow,
1398
+ ownerWidth,
1393
1399
  ownerWidth);
1394
1400
  float availableInnerHeight = calculateAvailableInnerDimension(
1395
1401
  node,
1402
+ direction,
1396
1403
  Dimension::Height,
1397
1404
  availableHeight - marginAxisColumn,
1398
1405
  paddingAndBorderAxisColumn,
1399
- ownerHeight);
1406
+ ownerHeight,
1407
+ ownerWidth);
1400
1408
 
1401
1409
  float availableInnerMainDim =
1402
1410
  isMainAxisRow ? availableInnerWidth : availableInnerHeight;
@@ -1436,9 +1444,9 @@ static void calculateLayoutImpl(
1436
1444
  }
1437
1445
  // STEP 4: COLLECT FLEX ITEMS INTO FLEX LINES
1438
1446
 
1439
- // Indexes of children that represent the first and last items in the line.
1440
- size_t startOfLineIndex = 0;
1441
- size_t endOfLineIndex = 0;
1447
+ // Iterator representing the beginning of the current line
1448
+ Node::LayoutableChildren::Iterator startOfLineIterator =
1449
+ node->getLayoutChildren().begin();
1442
1450
 
1443
1451
  // Number of lines.
1444
1452
  size_t lineCount = 0;
@@ -1451,19 +1459,17 @@ static void calculateLayoutImpl(
1451
1459
 
1452
1460
  // Max main dimension of all the lines.
1453
1461
  float maxLineMainDim = 0;
1454
- for (; endOfLineIndex < childCount;
1455
- lineCount++, startOfLineIndex = endOfLineIndex) {
1462
+ for (; startOfLineIterator != node->getLayoutChildren().end(); lineCount++) {
1456
1463
  auto flexLine = calculateFlexLine(
1457
1464
  node,
1458
1465
  ownerDirection,
1459
- mainAxisownerSize,
1466
+ ownerWidth,
1467
+ mainAxisOwnerSize,
1460
1468
  availableInnerWidth,
1461
1469
  availableInnerMainDim,
1462
- startOfLineIndex,
1470
+ startOfLineIterator,
1463
1471
  lineCount);
1464
1472
 
1465
- endOfLineIndex = flexLine.endOfLineIndex;
1466
-
1467
1473
  // If we don't need to measure the cross axis, we can skip the entire flex
1468
1474
  // step.
1469
1475
  const bool canSkipFlex =
@@ -1480,16 +1486,28 @@ static void calculateLayoutImpl(
1480
1486
  if (sizingModeMainDim != SizingMode::StretchFit) {
1481
1487
  const auto& style = node->style();
1482
1488
  const float minInnerWidth =
1483
- style.minDimension(Dimension::Width).resolve(ownerWidth).unwrap() -
1489
+ style
1490
+ .resolvedMinDimension(
1491
+ direction, Dimension::Width, ownerWidth, ownerWidth)
1492
+ .unwrap() -
1484
1493
  paddingAndBorderAxisRow;
1485
1494
  const float maxInnerWidth =
1486
- style.maxDimension(Dimension::Width).resolve(ownerWidth).unwrap() -
1495
+ style
1496
+ .resolvedMaxDimension(
1497
+ direction, Dimension::Width, ownerWidth, ownerWidth)
1498
+ .unwrap() -
1487
1499
  paddingAndBorderAxisRow;
1488
1500
  const float minInnerHeight =
1489
- style.minDimension(Dimension::Height).resolve(ownerHeight).unwrap() -
1501
+ style
1502
+ .resolvedMinDimension(
1503
+ direction, Dimension::Height, ownerHeight, ownerWidth)
1504
+ .unwrap() -
1490
1505
  paddingAndBorderAxisColumn;
1491
1506
  const float maxInnerHeight =
1492
- style.maxDimension(Dimension::Height).resolve(ownerHeight).unwrap() -
1507
+ style
1508
+ .resolvedMaxDimension(
1509
+ direction, Dimension::Height, ownerHeight, ownerWidth)
1510
+ .unwrap() -
1493
1511
  paddingAndBorderAxisColumn;
1494
1512
 
1495
1513
  const float minInnerMainDim =
@@ -1541,7 +1559,8 @@ static void calculateLayoutImpl(
1541
1559
  mainAxis,
1542
1560
  crossAxis,
1543
1561
  direction,
1544
- mainAxisownerSize,
1562
+ ownerWidth,
1563
+ mainAxisOwnerSize,
1545
1564
  availableInnerMainDim,
1546
1565
  availableInnerCrossDim,
1547
1566
  availableInnerWidth,
@@ -1568,13 +1587,12 @@ static void calculateLayoutImpl(
1568
1587
  justifyMainAxis(
1569
1588
  node,
1570
1589
  flexLine,
1571
- startOfLineIndex,
1572
1590
  mainAxis,
1573
1591
  crossAxis,
1574
1592
  direction,
1575
1593
  sizingModeMainDim,
1576
1594
  sizingModeCrossDim,
1577
- mainAxisownerSize,
1595
+ mainAxisOwnerSize,
1578
1596
  ownerWidth,
1579
1597
  availableInnerMainDim,
1580
1598
  availableInnerCrossDim,
@@ -1591,7 +1609,7 @@ static void calculateLayoutImpl(
1591
1609
  crossAxis,
1592
1610
  direction,
1593
1611
  flexLine.layout.crossDim + paddingAndBorderAxisCross,
1594
- crossAxisownerSize,
1612
+ crossAxisOwnerSize,
1595
1613
  ownerWidth) -
1596
1614
  paddingAndBorderAxisCross;
1597
1615
  }
@@ -1612,7 +1630,7 @@ static void calculateLayoutImpl(
1612
1630
  crossAxis,
1613
1631
  direction,
1614
1632
  flexLine.layout.crossDim + paddingAndBorderAxisCross,
1615
- crossAxisownerSize,
1633
+ crossAxisOwnerSize,
1616
1634
  ownerWidth) -
1617
1635
  paddingAndBorderAxisCross;
1618
1636
  }
@@ -1620,149 +1638,116 @@ static void calculateLayoutImpl(
1620
1638
  // STEP 7: CROSS-AXIS ALIGNMENT
1621
1639
  // We can skip child alignment if we're just measuring the container.
1622
1640
  if (performLayout) {
1623
- for (size_t i = startOfLineIndex; i < endOfLineIndex; i++) {
1624
- const auto child = node->getChild(i);
1625
- if (child->style().display() == Display::None) {
1626
- continue;
1627
- }
1628
- if (child->style().positionType() == PositionType::Absolute) {
1629
- // If the child is absolutely positioned and has a
1630
- // top/left/bottom/right set, override all the previously computed
1631
- // positions to set it correctly.
1632
- const bool isChildLeadingPosDefined =
1633
- child->style().isFlexStartPositionDefined(crossAxis, direction) &&
1634
- !child->style().isFlexStartPositionAuto(crossAxis, direction);
1635
- if (isChildLeadingPosDefined) {
1636
- child->setLayoutPosition(
1637
- child->style().computeFlexStartPosition(
1638
- crossAxis, direction, availableInnerCrossDim) +
1639
- node->style().computeFlexStartBorder(crossAxis, direction) +
1640
- child->style().computeFlexStartMargin(
1641
- crossAxis, direction, availableInnerWidth),
1642
- flexStartEdge(crossAxis));
1643
- }
1644
- // If leading position is not defined or calculations result in Nan,
1645
- // default to border + margin
1646
- if (!isChildLeadingPosDefined ||
1647
- yoga::isUndefined(
1648
- child->getLayout().position(flexStartEdge(crossAxis)))) {
1649
- child->setLayoutPosition(
1650
- node->style().computeFlexStartBorder(crossAxis, direction) +
1651
- child->style().computeFlexStartMargin(
1652
- crossAxis, direction, availableInnerWidth),
1653
- flexStartEdge(crossAxis));
1641
+ for (auto child : flexLine.itemsInFlow) {
1642
+ float leadingCrossDim = leadingPaddingAndBorderCross;
1643
+
1644
+ // For a relative children, we're either using alignItems (owner) or
1645
+ // alignSelf (child) in order to determine the position in the cross
1646
+ // axis
1647
+ const Align alignItem = resolveChildAlignment(node, child);
1648
+
1649
+ // If the child uses align stretch, we need to lay it out one more
1650
+ // time, this time forcing the cross-axis size to be the computed
1651
+ // cross size for the current line.
1652
+ if (alignItem == Align::Stretch &&
1653
+ !child->style().flexStartMarginIsAuto(crossAxis, direction) &&
1654
+ !child->style().flexEndMarginIsAuto(crossAxis, direction)) {
1655
+ // If the child defines a definite size for its cross axis, there's
1656
+ // no need to stretch.
1657
+ if (!child->hasDefiniteLength(
1658
+ dimension(crossAxis), availableInnerCrossDim)) {
1659
+ float childMainSize =
1660
+ child->getLayout().measuredDimension(dimension(mainAxis));
1661
+ const auto& childStyle = child->style();
1662
+ float childCrossSize = childStyle.aspectRatio().isDefined()
1663
+ ? child->style().computeMarginForAxis(
1664
+ crossAxis, availableInnerWidth) +
1665
+ (isMainAxisRow
1666
+ ? childMainSize / childStyle.aspectRatio().unwrap()
1667
+ : childMainSize * childStyle.aspectRatio().unwrap())
1668
+ : flexLine.layout.crossDim;
1669
+
1670
+ childMainSize += child->style().computeMarginForAxis(
1671
+ mainAxis, availableInnerWidth);
1672
+
1673
+ SizingMode childMainSizingMode = SizingMode::StretchFit;
1674
+ SizingMode childCrossSizingMode = SizingMode::StretchFit;
1675
+ constrainMaxSizeForMode(
1676
+ child,
1677
+ direction,
1678
+ mainAxis,
1679
+ availableInnerMainDim,
1680
+ availableInnerWidth,
1681
+ &childMainSizingMode,
1682
+ &childMainSize);
1683
+ constrainMaxSizeForMode(
1684
+ child,
1685
+ direction,
1686
+ crossAxis,
1687
+ availableInnerCrossDim,
1688
+ availableInnerWidth,
1689
+ &childCrossSizingMode,
1690
+ &childCrossSize);
1691
+
1692
+ const float childWidth =
1693
+ isMainAxisRow ? childMainSize : childCrossSize;
1694
+ const float childHeight =
1695
+ !isMainAxisRow ? childMainSize : childCrossSize;
1696
+
1697
+ auto alignContent = node->style().alignContent();
1698
+ auto crossAxisDoesNotGrow =
1699
+ alignContent != Align::Stretch && isNodeFlexWrap;
1700
+ const SizingMode childWidthSizingMode =
1701
+ yoga::isUndefined(childWidth) ||
1702
+ (!isMainAxisRow && crossAxisDoesNotGrow)
1703
+ ? SizingMode::MaxContent
1704
+ : SizingMode::StretchFit;
1705
+ const SizingMode childHeightSizingMode =
1706
+ yoga::isUndefined(childHeight) ||
1707
+ (isMainAxisRow && crossAxisDoesNotGrow)
1708
+ ? SizingMode::MaxContent
1709
+ : SizingMode::StretchFit;
1710
+
1711
+ calculateLayoutInternal(
1712
+ child,
1713
+ childWidth,
1714
+ childHeight,
1715
+ direction,
1716
+ childWidthSizingMode,
1717
+ childHeightSizingMode,
1718
+ availableInnerWidth,
1719
+ availableInnerHeight,
1720
+ true,
1721
+ LayoutPassReason::kStretch,
1722
+ layoutMarkerData,
1723
+ depth,
1724
+ generationCount);
1654
1725
  }
1655
1726
  } else {
1656
- float leadingCrossDim = leadingPaddingAndBorderCross;
1657
-
1658
- // For a relative children, we're either using alignItems (owner) or
1659
- // alignSelf (child) in order to determine the position in the cross
1660
- // axis
1661
- const Align alignItem = resolveChildAlignment(node, child);
1662
-
1663
- // If the child uses align stretch, we need to lay it out one more
1664
- // time, this time forcing the cross-axis size to be the computed
1665
- // cross size for the current line.
1666
- if (alignItem == Align::Stretch &&
1667
- !child->style().flexStartMarginIsAuto(crossAxis, direction) &&
1668
- !child->style().flexEndMarginIsAuto(crossAxis, direction)) {
1669
- // If the child defines a definite size for its cross axis, there's
1670
- // no need to stretch.
1671
- if (!child->hasDefiniteLength(
1672
- dimension(crossAxis), availableInnerCrossDim)) {
1673
- float childMainSize =
1674
- child->getLayout().measuredDimension(dimension(mainAxis));
1675
- const auto& childStyle = child->style();
1676
- float childCrossSize = childStyle.aspectRatio().isDefined()
1677
- ? child->style().computeMarginForAxis(
1678
- crossAxis, availableInnerWidth) +
1679
- (isMainAxisRow
1680
- ? childMainSize / childStyle.aspectRatio().unwrap()
1681
- : childMainSize * childStyle.aspectRatio().unwrap())
1682
- : flexLine.layout.crossDim;
1683
-
1684
- childMainSize += child->style().computeMarginForAxis(
1685
- mainAxis, availableInnerWidth);
1686
-
1687
- SizingMode childMainSizingMode = SizingMode::StretchFit;
1688
- SizingMode childCrossSizingMode = SizingMode::StretchFit;
1689
- constrainMaxSizeForMode(
1690
- child,
1691
- mainAxis,
1692
- availableInnerMainDim,
1693
- availableInnerWidth,
1694
- &childMainSizingMode,
1695
- &childMainSize);
1696
- constrainMaxSizeForMode(
1697
- child,
1698
- crossAxis,
1699
- availableInnerCrossDim,
1700
- availableInnerWidth,
1701
- &childCrossSizingMode,
1702
- &childCrossSize);
1703
-
1704
- const float childWidth =
1705
- isMainAxisRow ? childMainSize : childCrossSize;
1706
- const float childHeight =
1707
- !isMainAxisRow ? childMainSize : childCrossSize;
1708
-
1709
- auto alignContent = node->style().alignContent();
1710
- auto crossAxisDoesNotGrow =
1711
- alignContent != Align::Stretch && isNodeFlexWrap;
1712
- const SizingMode childWidthSizingMode =
1713
- yoga::isUndefined(childWidth) ||
1714
- (!isMainAxisRow && crossAxisDoesNotGrow)
1715
- ? SizingMode::MaxContent
1716
- : SizingMode::StretchFit;
1717
- const SizingMode childHeightSizingMode =
1718
- yoga::isUndefined(childHeight) ||
1719
- (isMainAxisRow && crossAxisDoesNotGrow)
1720
- ? SizingMode::MaxContent
1721
- : SizingMode::StretchFit;
1722
-
1723
- calculateLayoutInternal(
1724
- child,
1725
- childWidth,
1726
- childHeight,
1727
- direction,
1728
- childWidthSizingMode,
1729
- childHeightSizingMode,
1730
- availableInnerWidth,
1731
- availableInnerHeight,
1732
- true,
1733
- LayoutPassReason::kStretch,
1734
- layoutMarkerData,
1735
- depth,
1736
- generationCount);
1737
- }
1727
+ const float remainingCrossDim = containerCrossAxis -
1728
+ child->dimensionWithMargin(crossAxis, availableInnerWidth);
1729
+
1730
+ if (child->style().flexStartMarginIsAuto(crossAxis, direction) &&
1731
+ child->style().flexEndMarginIsAuto(crossAxis, direction)) {
1732
+ leadingCrossDim += yoga::maxOrDefined(0.0f, remainingCrossDim / 2);
1733
+ } else if (child->style().flexEndMarginIsAuto(crossAxis, direction)) {
1734
+ // No-Op
1735
+ } else if (child->style().flexStartMarginIsAuto(
1736
+ crossAxis, direction)) {
1737
+ leadingCrossDim += yoga::maxOrDefined(0.0f, remainingCrossDim);
1738
+ } else if (alignItem == Align::FlexStart) {
1739
+ // No-Op
1740
+ } else if (alignItem == Align::Center) {
1741
+ leadingCrossDim += remainingCrossDim / 2;
1738
1742
  } else {
1739
- const float remainingCrossDim = containerCrossAxis -
1740
- child->dimensionWithMargin(crossAxis, availableInnerWidth);
1741
-
1742
- if (child->style().flexStartMarginIsAuto(crossAxis, direction) &&
1743
- child->style().flexEndMarginIsAuto(crossAxis, direction)) {
1744
- leadingCrossDim +=
1745
- yoga::maxOrDefined(0.0f, remainingCrossDim / 2);
1746
- } else if (child->style().flexEndMarginIsAuto(
1747
- crossAxis, direction)) {
1748
- // No-Op
1749
- } else if (child->style().flexStartMarginIsAuto(
1750
- crossAxis, direction)) {
1751
- leadingCrossDim += yoga::maxOrDefined(0.0f, remainingCrossDim);
1752
- } else if (alignItem == Align::FlexStart) {
1753
- // No-Op
1754
- } else if (alignItem == Align::Center) {
1755
- leadingCrossDim += remainingCrossDim / 2;
1756
- } else {
1757
- leadingCrossDim += remainingCrossDim;
1758
- }
1743
+ leadingCrossDim += remainingCrossDim;
1759
1744
  }
1760
- // And we apply the position
1761
- child->setLayoutPosition(
1762
- child->getLayout().position(flexStartEdge(crossAxis)) +
1763
- totalLineCrossDim + leadingCrossDim,
1764
- flexStartEdge(crossAxis));
1765
1745
  }
1746
+ // And we apply the position
1747
+ child->setLayoutPosition(
1748
+ child->getLayout().position(flexStartEdge(crossAxis)) +
1749
+ totalLineCrossDim + leadingCrossDim,
1750
+ flexStartEdge(crossAxis));
1766
1751
  }
1767
1752
  }
1768
1753
 
@@ -1777,12 +1762,16 @@ static void calculateLayoutImpl(
1777
1762
  if (performLayout && (isNodeFlexWrap || isBaselineLayout(node))) {
1778
1763
  float leadPerLine = 0;
1779
1764
  float currentLead = leadingPaddingAndBorderCross;
1765
+ float extraSpacePerLine = 0;
1780
1766
 
1781
1767
  const float unclampedCrossDim = sizingModeCrossDim == SizingMode::StretchFit
1782
1768
  ? availableInnerCrossDim + paddingAndBorderAxisCross
1783
- : node->hasDefiniteLength(dimension(crossAxis), crossAxisownerSize)
1784
- ? node->getResolvedDimension(dimension(crossAxis))
1785
- .resolve(crossAxisownerSize)
1769
+ : node->hasDefiniteLength(dimension(crossAxis), crossAxisOwnerSize)
1770
+ ? node->getResolvedDimension(
1771
+ direction,
1772
+ dimension(crossAxis),
1773
+ crossAxisOwnerSize,
1774
+ ownerWidth)
1786
1775
  .unwrap()
1787
1776
  : totalLineCrossDim + paddingAndBorderAxisCross;
1788
1777
 
@@ -1809,7 +1798,8 @@ static void calculateLayoutImpl(
1809
1798
  currentLead += remainingAlignContentDim / 2;
1810
1799
  break;
1811
1800
  case Align::Stretch:
1812
- leadPerLine = remainingAlignContentDim / static_cast<float>(lineCount);
1801
+ extraSpacePerLine =
1802
+ remainingAlignContentDim / static_cast<float>(lineCount);
1813
1803
  break;
1814
1804
  case Align::SpaceAround:
1815
1805
  currentLead +=
@@ -1833,17 +1823,18 @@ static void calculateLayoutImpl(
1833
1823
  case Align::Baseline:
1834
1824
  break;
1835
1825
  }
1836
- size_t endIndex = 0;
1826
+ Node::LayoutableChildren::Iterator endIterator =
1827
+ node->getLayoutChildren().begin();
1837
1828
  for (size_t i = 0; i < lineCount; i++) {
1838
- const size_t startIndex = endIndex;
1839
- size_t ii = startIndex;
1829
+ const Node::LayoutableChildren::Iterator startIterator = endIterator;
1830
+ auto iterator = startIterator;
1840
1831
 
1841
1832
  // compute the line's height and find the endIndex
1842
1833
  float lineHeight = 0;
1843
1834
  float maxAscentForCurrentLine = 0;
1844
1835
  float maxDescentForCurrentLine = 0;
1845
- for (; ii < childCount; ii++) {
1846
- const auto child = node->getChild(ii);
1836
+ for (; iterator != node->getLayoutChildren().end(); iterator++) {
1837
+ const auto child = *iterator;
1847
1838
  if (child->style().display() == Display::None) {
1848
1839
  continue;
1849
1840
  }
@@ -1876,11 +1867,12 @@ static void calculateLayoutImpl(
1876
1867
  }
1877
1868
  }
1878
1869
  }
1879
- endIndex = ii;
1870
+ endIterator = iterator;
1880
1871
  currentLead += i != 0 ? crossAxisGap : 0;
1872
+ lineHeight += extraSpacePerLine;
1881
1873
 
1882
- for (ii = startIndex; ii < endIndex; ii++) {
1883
- const auto child = node->getChild(ii);
1874
+ for (iterator = startIterator; iterator != endIterator; iterator++) {
1875
+ const auto child = *iterator;
1884
1876
  if (child->style().display() == Display::None) {
1885
1877
  continue;
1886
1878
  }
@@ -2022,7 +2014,7 @@ static void calculateLayoutImpl(
2022
2014
  mainAxis,
2023
2015
  direction,
2024
2016
  maxLineMainDim,
2025
- mainAxisownerSize,
2017
+ mainAxisOwnerSize,
2026
2018
  ownerWidth),
2027
2019
  dimension(mainAxis));
2028
2020
 
@@ -2035,9 +2027,11 @@ static void calculateLayoutImpl(
2035
2027
  availableInnerMainDim + paddingAndBorderAxisMain,
2036
2028
  boundAxisWithinMinAndMax(
2037
2029
  node,
2030
+ direction,
2038
2031
  mainAxis,
2039
2032
  FloatOptional{maxLineMainDim},
2040
- mainAxisownerSize)
2033
+ mainAxisOwnerSize,
2034
+ ownerWidth)
2041
2035
  .unwrap()),
2042
2036
  paddingAndBorderAxisMain),
2043
2037
  dimension(mainAxis));
@@ -2054,7 +2048,7 @@ static void calculateLayoutImpl(
2054
2048
  crossAxis,
2055
2049
  direction,
2056
2050
  totalLineCrossDim + paddingAndBorderAxisCross,
2057
- crossAxisownerSize,
2051
+ crossAxisOwnerSize,
2058
2052
  ownerWidth),
2059
2053
  dimension(crossAxis));
2060
2054
 
@@ -2067,10 +2061,12 @@ static void calculateLayoutImpl(
2067
2061
  availableInnerCrossDim + paddingAndBorderAxisCross,
2068
2062
  boundAxisWithinMinAndMax(
2069
2063
  node,
2064
+ direction,
2070
2065
  crossAxis,
2071
2066
  FloatOptional{
2072
2067
  totalLineCrossDim + paddingAndBorderAxisCross},
2073
- crossAxisownerSize)
2068
+ crossAxisOwnerSize,
2069
+ ownerWidth)
2074
2070
  .unwrap()),
2075
2071
  paddingAndBorderAxisCross),
2076
2072
  dimension(crossAxis));
@@ -2079,8 +2075,7 @@ static void calculateLayoutImpl(
2079
2075
  // As we only wrapped in normal direction yet, we need to reverse the
2080
2076
  // positions on wrap-reverse.
2081
2077
  if (performLayout && node->style().flexWrap() == Wrap::WrapReverse) {
2082
- for (size_t i = 0; i < childCount; i++) {
2083
- const auto child = node->getChild(i);
2078
+ for (auto child : node->getLayoutChildren()) {
2084
2079
  if (child->style().positionType() != PositionType::Absolute) {
2085
2080
  child->setLayoutPosition(
2086
2081
  node->getLayout().measuredDimension(dimension(crossAxis)) -
@@ -2097,8 +2092,7 @@ static void calculateLayoutImpl(
2097
2092
  const bool needsCrossTrailingPos = needsTrailingPosition(crossAxis);
2098
2093
 
2099
2094
  if (needsMainTrailingPos || needsCrossTrailingPos) {
2100
- for (size_t i = 0; i < childCount; i++) {
2101
- const auto child = node->getChild(i);
2095
+ for (auto child : node->getLayoutChildren()) {
2102
2096
  // Absolute children will be handled by their containing block since we
2103
2097
  // cannot guarantee that their positions are set when their parents are
2104
2098
  // done with layout.
@@ -2354,21 +2348,29 @@ void calculateLayout(
2354
2348
  // visit all dirty nodes at least once. Subsequent visits will be skipped if
2355
2349
  // the input parameters don't change.
2356
2350
  gCurrentGenerationCount.fetch_add(1, std::memory_order_relaxed);
2357
- node->resolveDimension();
2351
+ node->processDimensions();
2352
+ const Direction direction = node->resolveDirection(ownerDirection);
2358
2353
  float width = YGUndefined;
2359
2354
  SizingMode widthSizingMode = SizingMode::MaxContent;
2360
2355
  const auto& style = node->style();
2361
2356
  if (node->hasDefiniteLength(Dimension::Width, ownerWidth)) {
2362
2357
  width =
2363
- (node->getResolvedDimension(dimension(FlexDirection::Row))
2364
- .resolve(ownerWidth)
2358
+ (node->getResolvedDimension(
2359
+ direction,
2360
+ dimension(FlexDirection::Row),
2361
+ ownerWidth,
2362
+ ownerWidth)
2365
2363
  .unwrap() +
2366
2364
  node->style().computeMarginForAxis(FlexDirection::Row, ownerWidth));
2367
2365
  widthSizingMode = SizingMode::StretchFit;
2368
- } else if (style.maxDimension(Dimension::Width)
2369
- .resolve(ownerWidth)
2366
+ } else if (style
2367
+ .resolvedMaxDimension(
2368
+ direction, Dimension::Width, ownerWidth, ownerWidth)
2370
2369
  .isDefined()) {
2371
- width = style.maxDimension(Dimension::Width).resolve(ownerWidth).unwrap();
2370
+ width = style
2371
+ .resolvedMaxDimension(
2372
+ direction, Dimension::Width, ownerWidth, ownerWidth)
2373
+ .unwrap();
2372
2374
  widthSizingMode = SizingMode::FitContent;
2373
2375
  } else {
2374
2376
  width = ownerWidth;
@@ -2380,16 +2382,22 @@ void calculateLayout(
2380
2382
  SizingMode heightSizingMode = SizingMode::MaxContent;
2381
2383
  if (node->hasDefiniteLength(Dimension::Height, ownerHeight)) {
2382
2384
  height =
2383
- (node->getResolvedDimension(dimension(FlexDirection::Column))
2384
- .resolve(ownerHeight)
2385
+ (node->getResolvedDimension(
2386
+ direction,
2387
+ dimension(FlexDirection::Column),
2388
+ ownerHeight,
2389
+ ownerWidth)
2385
2390
  .unwrap() +
2386
2391
  node->style().computeMarginForAxis(FlexDirection::Column, ownerWidth));
2387
2392
  heightSizingMode = SizingMode::StretchFit;
2388
- } else if (style.maxDimension(Dimension::Height)
2389
- .resolve(ownerHeight)
2393
+ } else if (style
2394
+ .resolvedMaxDimension(
2395
+ direction, Dimension::Height, ownerHeight, ownerWidth)
2390
2396
  .isDefined()) {
2391
- height =
2392
- style.maxDimension(Dimension::Height).resolve(ownerHeight).unwrap();
2397
+ height = style
2398
+ .resolvedMaxDimension(
2399
+ direction, Dimension::Height, ownerHeight, ownerWidth)
2400
+ .unwrap();
2393
2401
  heightSizingMode = SizingMode::FitContent;
2394
2402
  } else {
2395
2403
  height = ownerHeight;