react-native-tvos 0.73.7-1 → 0.74.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 (1743) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +6 -0
  2. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +6 -0
  3. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +4 -45
  4. package/Libraries/Alert/NativeAlertManager.js +4 -26
  5. package/Libraries/Animated/Animated.js +2 -2
  6. package/Libraries/Animated/AnimatedPlatformConfig.js +1 -1
  7. package/Libraries/Animated/NativeAnimatedHelper.js +14 -11
  8. package/Libraries/Animated/NativeAnimatedModule.js +4 -68
  9. package/Libraries/Animated/NativeAnimatedTurboModule.js +4 -69
  10. package/Libraries/Animated/animations/Animation.js +6 -22
  11. package/Libraries/Animated/components/AnimatedFlatList.js +1 -16
  12. package/Libraries/Animated/components/AnimatedScrollView.js +36 -31
  13. package/Libraries/Animated/components/AnimatedSectionList.js +1 -20
  14. package/Libraries/Animated/createAnimatedComponent.js +45 -40
  15. package/Libraries/Animated/nodes/AnimatedStyle.js +1 -1
  16. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +1 -1
  17. package/Libraries/Animated/useAnimatedProps.js +21 -1
  18. package/Libraries/AppDelegate/RCTAppDelegate.h +35 -16
  19. package/Libraries/AppDelegate/RCTAppDelegate.mm +122 -177
  20. package/Libraries/AppDelegate/RCTAppSetupUtils.h +8 -17
  21. package/Libraries/AppDelegate/RCTAppSetupUtils.mm +55 -41
  22. package/Libraries/AppDelegate/RCTRootViewFactory.h +133 -0
  23. package/Libraries/AppDelegate/RCTRootViewFactory.mm +270 -0
  24. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +15 -38
  25. package/Libraries/AppState/NativeAppState.js +4 -24
  26. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  27. package/Libraries/Blob/Blob.js +1 -4
  28. package/Libraries/Blob/BlobManager.js +6 -8
  29. package/Libraries/Blob/File.js +1 -1
  30. package/Libraries/Blob/NativeBlobModule.js +4 -50
  31. package/Libraries/Blob/NativeFileReaderModule.js +4 -13
  32. package/Libraries/Blob/RCTBlobCollector.mm +1 -1
  33. package/Libraries/Blob/RCTBlobManager.h +4 -0
  34. package/Libraries/Blob/RCTBlobManager.mm +30 -4
  35. package/Libraries/Blob/RCTFileReaderModule.mm +2 -2
  36. package/Libraries/Blob/React-RCTBlob.podspec +9 -2
  37. package/Libraries/BugReporting/NativeBugReporting.js +4 -12
  38. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +3 -23
  39. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +4 -57
  40. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +3 -2
  41. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +9 -40
  42. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +3 -43
  43. package/Libraries/Components/Button.js +103 -107
  44. package/Libraries/Components/Clipboard/NativeClipboard.js +2 -24
  45. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +3 -114
  46. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -5
  47. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +3 -10
  48. package/Libraries/Components/Pressable/Pressable.js +1 -1
  49. package/Libraries/Components/Pressable/useAndroidRippleForView.js +5 -4
  50. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +4 -24
  51. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +3 -64
  52. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +3 -61
  53. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  54. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +3 -15
  55. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +3 -16
  56. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
  57. package/Libraries/Components/ScrollView/ScrollView.d.ts +5 -6
  58. package/Libraries/Components/ScrollView/ScrollView.js +12 -38
  59. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -2
  60. package/Libraries/Components/Sound/NativeSoundManager.js +3 -12
  61. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +3 -58
  62. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +3 -85
  63. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +4 -53
  64. package/Libraries/Components/Switch/Switch.js +0 -2
  65. package/Libraries/Components/Switch/SwitchNativeComponent.js +4 -52
  66. package/Libraries/Components/TV/TVEventHandler.js +1 -1
  67. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -0
  68. package/Libraries/Components/TextInput/InputAccessoryView.js +18 -20
  69. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +4 -17
  70. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -6
  71. package/Libraries/Components/TextInput/TextInput.d.ts +16 -0
  72. package/Libraries/Components/TextInput/TextInput.flow.js +16 -0
  73. package/Libraries/Components/TextInput/TextInput.js +65 -32
  74. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +3 -28
  75. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  76. package/Libraries/Components/Touchable/Touchable.js +2 -3
  77. package/Libraries/Components/Touchable/TouchableHighlight.js +4 -4
  78. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
  79. package/Libraries/Components/Touchable/TouchableOpacity.js +5 -2
  80. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +3 -16
  81. package/Libraries/Components/View/ReactNativeStyleAttributes.js +2 -1
  82. package/Libraries/Components/View/View.js +0 -11
  83. package/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
  84. package/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
  85. package/Libraries/Components/View/ViewPropTypes.js +36 -36
  86. package/Libraries/Core/InitializeCore.js +1 -1
  87. package/Libraries/Core/NativeExceptionsManager.js +3 -93
  88. package/Libraries/Core/ReactNativeVersion.js +12 -6
  89. package/Libraries/Core/ReactNativeVersionCheck.js +6 -6
  90. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +3 -18
  91. package/Libraries/Core/Timers/NativeTiming.js +3 -16
  92. package/Libraries/Core/registerCallableModule.d.ts +16 -0
  93. package/Libraries/Core/registerCallableModule.js +42 -0
  94. package/Libraries/Core/setUpPerformance.js +2 -2
  95. package/Libraries/Core/setUpPerformanceObserver.js +3 -1
  96. package/Libraries/Debugging/DebuggingOverlay.js +111 -0
  97. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
  98. package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
  99. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
  100. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +3 -14
  101. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +3 -9
  102. package/Libraries/Image/AssetSourceResolver.js +5 -5
  103. package/Libraries/Image/AssetUtils.js +4 -5
  104. package/Libraries/Image/Image.android.js +146 -174
  105. package/Libraries/Image/Image.d.ts +1 -1
  106. package/Libraries/Image/Image.ios.js +53 -79
  107. package/Libraries/Image/Image.js.flow +3 -30
  108. package/Libraries/Image/ImageBackground.js +2 -2
  109. package/Libraries/Image/ImageInjection.js +76 -18
  110. package/Libraries/Image/ImageTypes.flow.js +71 -0
  111. package/Libraries/Image/ImageUtils.js +1 -1
  112. package/Libraries/Image/ImageViewNativeComponent.js +18 -0
  113. package/Libraries/Image/NativeImageEditor.js +3 -42
  114. package/Libraries/Image/NativeImageLoaderAndroid.js +4 -28
  115. package/Libraries/Image/NativeImageLoaderIOS.js +4 -28
  116. package/Libraries/Image/NativeImageStoreAndroid.js +3 -16
  117. package/Libraries/Image/NativeImageStoreIOS.js +3 -23
  118. package/Libraries/Image/RCTImageLoader.mm +4 -11
  119. package/Libraries/Image/RCTImageStoreManager.h +2 -0
  120. package/Libraries/Image/RCTImageStoreManager.mm +37 -10
  121. package/Libraries/Image/RCTUIImageViewAnimated.mm +0 -5
  122. package/Libraries/Image/React-RCTImage.podspec +3 -2
  123. package/Libraries/Image/resolveAssetSource.js +59 -26
  124. package/Libraries/Inspector/ElementProperties.js +26 -52
  125. package/Libraries/Inspector/Inspector.js +122 -186
  126. package/Libraries/Inspector/InspectorOverlay.js +21 -33
  127. package/Libraries/Inspector/InspectorPanel.js +3 -17
  128. package/Libraries/Inspector/ReactDevToolsOverlay.js +171 -0
  129. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +20 -8
  130. package/Libraries/Interaction/FrameRateLogger.js +8 -18
  131. package/Libraries/Interaction/NativeFrameRateLogger.js +4 -16
  132. package/Libraries/IntersectionObserver/IntersectionObserver.js +1 -1
  133. package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +20 -19
  134. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +84 -6
  135. package/Libraries/IntersectionObserver/NativeIntersectionObserver.h +6 -24
  136. package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +3 -31
  137. package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +12 -2
  138. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -2
  139. package/Libraries/Linking/NativeIntentAndroid.js +3 -20
  140. package/Libraries/Linking/NativeLinkingManager.js +3 -17
  141. package/Libraries/LinkingIOS/React-RCTLinking.podspec +3 -2
  142. package/Libraries/Lists/FillRateHelper.js +1 -1
  143. package/Libraries/Lists/FlatList.d.ts +2 -2
  144. package/Libraries/Lists/FlatList.js +6 -2
  145. package/Libraries/Lists/SectionList.d.ts +6 -1
  146. package/Libraries/Lists/ViewabilityHelper.js +1 -1
  147. package/Libraries/Lists/VirtualizeUtils.js +1 -1
  148. package/Libraries/Lists/VirtualizedList.js +1 -1
  149. package/Libraries/Lists/VirtualizedListContext.js +1 -1
  150. package/Libraries/Lists/VirtualizedSectionList.js +1 -1
  151. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  152. package/Libraries/Modal/Modal.js +43 -11
  153. package/Libraries/Modal/NativeModalManager.js +3 -11
  154. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -129
  155. package/Libraries/MutationObserver/MutationObserver.js +1 -1
  156. package/Libraries/MutationObserver/MutationObserverManager.js +2 -2
  157. package/Libraries/MutationObserver/MutationRecord.js +12 -10
  158. package/Libraries/MutationObserver/NativeMutationObserver.cpp +2 -3
  159. package/Libraries/MutationObserver/NativeMutationObserver.h +8 -20
  160. package/Libraries/MutationObserver/NativeMutationObserver.js +3 -48
  161. package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +1 -1
  162. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +116 -85
  163. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +3 -2
  164. package/Libraries/NativeComponent/BaseViewConfig.android.js +4 -0
  165. package/Libraries/NativeComponent/BaseViewConfig.ios.js +3 -0
  166. package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
  167. package/Libraries/NativeComponent/TVViewConfig.js +17 -0
  168. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +3 -10
  169. package/Libraries/NativeModules/specs/NativeDevMenu.js +3 -13
  170. package/Libraries/NativeModules/specs/NativeDevSettings.js +3 -23
  171. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +3 -9
  172. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +3 -38
  173. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -10
  174. package/Libraries/NativeModules/specs/NativeRedBox.js +4 -11
  175. package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -25
  176. package/Libraries/Network/FormData.js +3 -1
  177. package/Libraries/Network/NativeNetworkingAndroid.js +4 -28
  178. package/Libraries/Network/NativeNetworkingIOS.js +4 -28
  179. package/Libraries/Network/RCTHTTPRequestHandler.mm +2 -2
  180. package/Libraries/Network/RCTNetworkTask.mm +15 -1
  181. package/Libraries/Network/RCTNetworking.h +6 -0
  182. package/Libraries/Network/RCTNetworking.mm +84 -44
  183. package/Libraries/Network/React-RCTNetwork.podspec +3 -2
  184. package/Libraries/Performance/NativeJSCSamplingProfiler.js +3 -9
  185. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -68
  186. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  187. package/Libraries/Pressability/Pressability.js +12 -2
  188. package/Libraries/Pressability/usePressability.js +7 -0
  189. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +4 -70
  190. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +45 -39
  191. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.h +34 -5
  192. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +283 -231
  193. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +3 -2
  194. package/Libraries/ReactNative/AppContainer-dev.js +217 -0
  195. package/Libraries/ReactNative/AppContainer-prod.js +53 -0
  196. package/Libraries/ReactNative/AppContainer.js +6 -149
  197. package/Libraries/ReactNative/AppRegistry.js +3 -1
  198. package/Libraries/ReactNative/BridgelessUIManager.js +375 -128
  199. package/Libraries/ReactNative/FabricUIManager.js +6 -0
  200. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +3 -10
  201. package/Libraries/ReactNative/NativeI18nManager.js +3 -18
  202. package/Libraries/ReactNative/NativeUIManager.js +4 -112
  203. package/Libraries/ReactNative/PaperUIManager.js +8 -7
  204. package/Libraries/ReactNative/ReactFabricInternals.js +1 -1
  205. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +24 -5
  206. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -45
  207. package/Libraries/ReactNative/RendererImplementation.js +11 -0
  208. package/Libraries/ReactNative/UIManager.d.ts +11 -34
  209. package/Libraries/ReactNative/UIManager.js +2 -23
  210. package/Libraries/ReactNative/UIManagerProperties.js +0 -2
  211. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +23 -1
  212. package/Libraries/ReactNative/getNativeComponentAttributes.js +5 -1
  213. package/Libraries/ReactNative/renderApplication.js +9 -6
  214. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +6 -1
  215. package/Libraries/Renderer/implementations/ReactFabric-dev.js +24771 -21123
  216. package/Libraries/Renderer/implementations/ReactFabric-prod.js +4160 -3109
  217. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4384 -3322
  218. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +25194 -21398
  219. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3763 -2636
  220. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4027 -2867
  221. package/Libraries/Renderer/shims/ReactNativeTypes.js +8 -9
  222. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -12
  223. package/Libraries/Settings/NativeSettingsManager.js +4 -16
  224. package/Libraries/Settings/React-RCTSettings.podspec +3 -2
  225. package/Libraries/Share/NativeShareModule.js +3 -13
  226. package/Libraries/StyleSheet/StyleSheet.d.ts +1 -20
  227. package/Libraries/StyleSheet/StyleSheet.js +5 -28
  228. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +51 -7
  229. package/Libraries/StyleSheet/StyleSheetTypes.js +19 -11
  230. package/Libraries/StyleSheet/flattenStyle.js +2 -2
  231. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  232. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  233. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  234. package/Libraries/Text/Text/RCTTextShadowView.mm +1 -1
  235. package/Libraries/Text/Text/RCTTextView.mm +35 -11
  236. package/Libraries/Text/Text.js +0 -6
  237. package/Libraries/Text/TextAncestor.js +2 -3
  238. package/Libraries/Text/TextInput/RCTBaseTextInputShadowView.mm +1 -1
  239. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +1 -1
  240. package/Libraries/Text/TextInput/RCTInputAccessoryViewManager.mm +0 -5
  241. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +4 -41
  242. package/Libraries/Types/ReactDevToolsTypes.js +58 -0
  243. package/Libraries/Types/UIManagerJSInterface.js +16 -0
  244. package/Libraries/Utilities/DebugEnvironment.js +1 -4
  245. package/Libraries/Utilities/Dimensions.js +8 -16
  246. package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -2
  247. package/Libraries/Utilities/NativeAppearance.js +3 -26
  248. package/Libraries/Utilities/NativeDevLoadingView.js +3 -14
  249. package/Libraries/Utilities/NativeDeviceInfo.js +2 -47
  250. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +3 -34
  251. package/Libraries/Utilities/NativePlatformConstantsIOS.js +3 -26
  252. package/Libraries/Utilities/PixelRatio.d.ts +4 -4
  253. package/Libraries/Utilities/Platform.android.js +4 -0
  254. package/Libraries/Utilities/Platform.d.ts +3 -0
  255. package/Libraries/Utilities/Platform.flow.js +7 -0
  256. package/Libraries/Utilities/Platform.ios.js +11 -0
  257. package/Libraries/Utilities/binaryToBase64.js +1 -1
  258. package/Libraries/Utilities/codegenNativeComponent.js +4 -6
  259. package/Libraries/Utilities/createPerformanceLogger.js +2 -74
  260. package/Libraries/Utilities/useMergeRefs.js +5 -9
  261. package/Libraries/Vibration/NativeVibration.js +2 -27
  262. package/Libraries/Vibration/React-RCTVibration.podspec +3 -2
  263. package/Libraries/Vibration/Vibration.js +8 -2
  264. package/Libraries/WebSocket/NativeWebSocketModule.js +4 -25
  265. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  266. package/Libraries/vendor/emitter/EventEmitter.js +1 -0
  267. package/README.md +31 -11
  268. package/React/Base/RCTAssert.m +4 -4
  269. package/React/Base/RCTBridge+Inspector.h +30 -0
  270. package/React/Base/RCTBridge+Private.h +0 -6
  271. package/React/Base/RCTBridge.h +32 -13
  272. package/React/Base/RCTBridge.mm +113 -2
  273. package/React/Base/RCTBridgeDelegate.h +5 -1
  274. package/React/Base/RCTBridgeModule.h +24 -32
  275. package/React/Base/RCTBridgeProxy+Cxx.h +20 -0
  276. package/React/Base/RCTBridgeProxy.h +9 -1
  277. package/React/Base/RCTBridgeProxy.mm +40 -15
  278. package/React/Base/RCTBundleURLProvider.h +35 -46
  279. package/React/Base/RCTBundleURLProvider.mm +0 -34
  280. package/React/Base/RCTConstants.h +0 -12
  281. package/React/Base/RCTConstants.m +0 -31
  282. package/React/Base/RCTConvert.h +5 -2
  283. package/React/Base/{RCTConvert.m → RCTConvert.mm} +18 -8
  284. package/React/Base/RCTDefines.h +3 -3
  285. package/React/Base/RCTKeyCommands.m +12 -1
  286. package/React/Base/RCTModuleData.mm +0 -14
  287. package/React/Base/RCTRuntimeExecutorModule.h +18 -0
  288. package/React/Base/RCTUtils.h +9 -0
  289. package/React/Base/RCTUtils.m +37 -10
  290. package/React/Base/RCTVersion.m +5 -5
  291. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +9 -0
  292. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +25 -0
  293. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.h +7 -0
  294. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm +17 -2
  295. package/React/CoreModules/RCTActionSheetManager.mm +140 -140
  296. package/React/CoreModules/RCTAlertController.mm +3 -26
  297. package/React/CoreModules/RCTAlertManager.mm +94 -93
  298. package/React/CoreModules/RCTAppState.mm +2 -6
  299. package/React/CoreModules/RCTAppearance.mm +1 -9
  300. package/React/CoreModules/RCTDevLoadingView.mm +6 -9
  301. package/React/CoreModules/RCTDevMenu.h +2 -0
  302. package/React/CoreModules/RCTDevMenu.mm +37 -19
  303. package/React/CoreModules/RCTDevSettings.mm +11 -5
  304. package/React/CoreModules/RCTDeviceInfo.mm +15 -16
  305. package/React/CoreModules/RCTPerfMonitor.mm +2 -14
  306. package/React/CoreModules/RCTPlatform.mm +19 -12
  307. package/React/CoreModules/RCTRedBox.mm +130 -111
  308. package/React/CoreModules/RCTStatusBarManager.mm +30 -22
  309. package/React/CoreModules/RCTTVNavigationEventEmitter.mm +1 -4
  310. package/React/CoreModules/RCTTiming.mm +18 -1
  311. package/React/CoreModules/React-CoreModules.podspec +10 -3
  312. package/React/CxxBridge/RCTCxxBridge.mm +24 -13
  313. package/React/DevSupport/RCTInspectorDevServerHelper.h +2 -1
  314. package/React/DevSupport/RCTInspectorDevServerHelper.mm +26 -5
  315. package/React/Fabric/Mounting/ComponentViews/ActivityIndicator/RCTActivityIndicatorViewComponentView.mm +1 -1
  316. package/React/Fabric/Mounting/ComponentViews/DebuggingOverlay/RCTDebuggingOverlayComponentView.h +16 -0
  317. package/React/Fabric/Mounting/ComponentViews/DebuggingOverlay/RCTDebuggingOverlayComponentView.mm +73 -0
  318. package/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm +8 -10
  319. package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryComponentView.mm +1 -2
  320. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.h +6 -0
  321. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +60 -14
  322. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropCoordinatorAdapter.mm +93 -3
  323. package/React/Fabric/Mounting/ComponentViews/Modal/RCTFabricModalHostViewController.mm +2 -2
  324. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +6 -4
  325. package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.h +1 -0
  326. package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.mm +1 -0
  327. package/React/Fabric/Mounting/ComponentViews/Root/RCTRootComponentView.mm +2 -5
  328. package/React/Fabric/Mounting/ComponentViews/SafeAreaView/RCTSafeAreaViewComponentView.mm +1 -2
  329. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +1 -2
  330. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +30 -8
  331. package/React/Fabric/Mounting/ComponentViews/Switch/RCTSwitchComponentView.mm +1 -2
  332. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +36 -14
  333. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +2 -3
  334. package/React/Fabric/Mounting/ComponentViews/UnimplementedComponent/RCTUnimplementedNativeComponentView.mm +1 -2
  335. package/React/Fabric/Mounting/ComponentViews/UnimplementedView/RCTUnimplementedViewComponentView.mm +1 -2
  336. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +72 -30
  337. package/React/Fabric/Mounting/RCTComponentViewClassDescriptor.h +5 -0
  338. package/React/Fabric/Mounting/RCTComponentViewDescriptor.h +1 -0
  339. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +9 -17
  340. package/React/Fabric/Mounting/RCTComponentViewProtocol.h +2 -2
  341. package/React/Fabric/Mounting/RCTComponentViewRegistry.mm +1 -1
  342. package/React/Fabric/Mounting/RCTMountingManager.mm +3 -4
  343. package/React/Fabric/RCTConversions.h +2 -18
  344. package/React/Fabric/RCTSurfacePointerHandler.mm +6 -107
  345. package/React/Fabric/RCTSurfacePresenter.mm +2 -21
  346. package/{Libraries/AppDelegate/RCTLegacyInteropComponents.h → React/Inspector/RCTCxxInspectorPackagerConnection.h} +5 -6
  347. package/React/Inspector/RCTCxxInspectorPackagerConnection.mm +69 -0
  348. package/React/Inspector/RCTCxxInspectorPackagerConnectionDelegate.h +47 -0
  349. package/React/Inspector/RCTCxxInspectorPackagerConnectionDelegate.mm +48 -0
  350. package/React/Inspector/RCTCxxInspectorWebSocketAdapter.h +23 -0
  351. package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +92 -0
  352. package/React/Inspector/RCTInspector.mm +2 -2
  353. package/React/Inspector/RCTInspectorPackagerConnection.h +4 -9
  354. package/React/Inspector/RCTInspectorPackagerConnection.m +2 -28
  355. package/React/Modules/RCTEventEmitter.h +0 -2
  356. package/React/Modules/RCTEventEmitter.m +0 -12
  357. package/React/Modules/RCTUIManager.h +32 -0
  358. package/React/Modules/RCTUIManager.m +87 -58
  359. package/React/React-RCTFabric.podspec +7 -5
  360. package/React/Tests/Text/RCTParagraphComponentViewTests.mm +24 -24
  361. package/React/UIUtils/RCTUIUtils.h +0 -4
  362. package/React/UIUtils/RCTUIUtils.m +1 -27
  363. package/React/Views/RCTComponentData.m +8 -9
  364. package/React/Views/RCTConvert+Transform.h +4 -1
  365. package/React/Views/RCTConvert+Transform.m +7 -0
  366. package/React/Views/{RCTTransformOrigin.h → RCTCursor.h} +4 -6
  367. package/React/Views/RCTDebuggingOverlay.h +27 -0
  368. package/React/Views/RCTDebuggingOverlay.m +122 -0
  369. package/{ReactCommon/hermes/executor/JSITracing.h → React/Views/RCTDebuggingOverlayManager.h} +3 -7
  370. package/React/Views/RCTDebuggingOverlayManager.m +64 -0
  371. package/React/Views/RCTModalHostViewController.m +2 -2
  372. package/React/Views/RCTModalHostViewManager.m +6 -1
  373. package/React/Views/RCTShadowView.m +7 -7
  374. package/React/Views/RCTView.h +3 -0
  375. package/React/Views/RCTView.m +31 -1
  376. package/React/Views/RCTViewManager.m +3 -9
  377. package/React/Views/RCTWrapperViewController.m +0 -1
  378. package/React/Views/ScrollView/RCTScrollView.m +3 -4
  379. package/React/Views/ScrollView/RCTScrollViewManager.m +2 -0
  380. package/React/Views/UIView+React.h +7 -1
  381. package/React/third-party.xcconfig +2 -2
  382. package/React-Core.podspec +11 -6
  383. package/ReactAndroid/api/ReactAndroid.api +7700 -0
  384. package/ReactAndroid/build.gradle.kts +815 -0
  385. package/ReactAndroid/cmake-utils/ReactNative-application.cmake +19 -1
  386. package/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +35 -7
  387. package/ReactAndroid/external-artifacts/build.gradle.kts +1 -1
  388. package/ReactAndroid/gradle.properties +21 -2
  389. package/ReactAndroid/hermes-engine/build.gradle.kts +322 -0
  390. package/ReactAndroid/proguard-rules.pro +8 -1
  391. package/ReactAndroid/publish.gradle +3 -8
  392. package/ReactAndroid/src/main/AndroidManifest.xml +1 -1
  393. package/ReactAndroid/src/main/java/com/facebook/annotationprocessors/common/ProcessorBase.java +24 -0
  394. package/ReactAndroid/src/main/java/com/facebook/react/BaseReactPackage.java +159 -0
  395. package/ReactAndroid/src/main/java/com/facebook/react/CompositeReactPackage.java +9 -4
  396. package/ReactAndroid/src/main/java/com/facebook/react/CompositeReactPackageTurboModuleManagerDelegate.java +4 -1
  397. package/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.java +2 -3
  398. package/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java +6 -8
  399. package/ReactAndroid/src/main/java/com/facebook/react/EagerModuleProvider.java +1 -1
  400. package/ReactAndroid/src/main/java/com/facebook/react/{JSEngineResolutionAlgorithm.java → JSEngineResolutionAlgorithm.kt} +5 -6
  401. package/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.java +3 -15
  402. package/ReactAndroid/src/main/java/com/facebook/react/MemoryPressureRouter.java +1 -1
  403. package/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.java +3 -6
  404. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +7 -2
  405. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +18 -43
  406. package/ReactAndroid/src/main/java/com/facebook/react/ReactApplication.kt +3 -6
  407. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +121 -19
  408. package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +2 -6
  409. package/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt +45 -18
  410. package/ReactAndroid/src/main/java/com/facebook/react/{ReactInstanceEventListener.java → ReactInstanceEventListener.kt} +4 -8
  411. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +61 -52
  412. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +38 -31
  413. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +19 -5
  414. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageHelper.java +6 -20
  415. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.java +44 -25
  416. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +11 -34
  417. package/ReactAndroid/src/main/java/com/facebook/react/TurboReactPackage.java +3 -148
  418. package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNode.java +3 -1
  419. package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNodeValueListener.java +1 -1
  420. package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNodeWithUpdateableConfig.java +1 -1
  421. package/ReactAndroid/src/main/java/com/facebook/react/animated/DecayAnimation.java +3 -1
  422. package/ReactAndroid/src/main/java/com/facebook/react/animated/DiffClampAnimatedNode.java +3 -1
  423. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.java +37 -9
  424. package/ReactAndroid/src/main/java/com/facebook/react/animated/ModulusAnimatedNode.java +3 -1
  425. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +1 -1
  426. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +27 -8
  427. package/ReactAndroid/src/main/java/com/facebook/react/animated/ObjectAnimatedNode.java +3 -1
  428. package/ReactAndroid/src/main/java/com/facebook/react/animated/SpringAnimation.java +3 -1
  429. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java +61 -5
  430. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +25 -6
  431. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +81 -94
  432. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapper.java +0 -9
  433. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.java +0 -3
  434. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromArray.java +1 -1
  435. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromMap.java +1 -1
  436. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSIModule.java +1 -1
  437. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSIModuleHolder.java +2 -2
  438. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSIModuleRegistry.java +3 -3
  439. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSInstance.java +1 -1
  440. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.java +1 -1
  441. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java +12 -15
  442. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.java +3 -3
  443. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArgumentsParseException.java +1 -1
  444. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModule.java +13 -16
  445. package/ReactAndroid/src/main/java/com/facebook/react/bridge/PerformanceCounter.java +1 -1
  446. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +31 -6
  447. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContextBaseJavaModule.java +9 -48
  448. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarkerConstants.java +0 -2
  449. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java +8 -3
  450. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{UIManagerListener.java → UIManagerListener.kt} +6 -6
  451. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManagerProvider.kt +22 -0
  452. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UiThreadUtil.java +22 -10
  453. package/ReactAndroid/src/main/java/com/facebook/react/bridge/interop/InteropModuleRegistry.java +1 -1
  454. package/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadHandler.java +0 -11
  455. package/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadImpl.java +1 -2
  456. package/ReactAndroid/src/main/java/com/facebook/react/common/DebugServerException.java +2 -0
  457. package/ReactAndroid/src/main/java/com/facebook/react/common/JavascriptException.java +3 -1
  458. package/ReactAndroid/src/main/java/com/facebook/react/common/LifecycleState.java +3 -0
  459. package/ReactAndroid/src/main/java/com/facebook/react/common/LongArray.java +3 -0
  460. package/ReactAndroid/src/main/java/com/facebook/react/common/MapBuilder.java +2 -0
  461. package/ReactAndroid/src/main/java/com/facebook/react/common/ReactConstants.java +11 -0
  462. package/ReactAndroid/src/main/java/com/facebook/react/common/ShakeDetector.java +2 -0
  463. package/ReactAndroid/src/main/java/com/facebook/react/common/SingleThreadAsserter.java +2 -0
  464. package/ReactAndroid/src/main/java/com/facebook/react/common/StandardCharsets.java +2 -0
  465. package/ReactAndroid/src/main/java/com/facebook/react/common/SystemClock.java +3 -0
  466. package/ReactAndroid/src/main/java/com/facebook/react/common/annotations/DeprecatedInNewArchitecture.kt +1 -1
  467. package/ReactAndroid/src/main/java/com/facebook/react/common/annotations/FrameworkAPI.kt +1 -1
  468. package/ReactAndroid/src/main/java/com/facebook/react/common/annotations/StableReactNativeAPI.kt +13 -0
  469. package/ReactAndroid/src/main/java/com/facebook/react/common/annotations/UnstableReactNativeAPI.kt +1 -1
  470. package/ReactAndroid/src/main/java/com/facebook/react/common/annotations/VisibleForTesting.kt +1 -1
  471. package/ReactAndroid/src/main/java/com/facebook/react/common/assets/ReactFontManager.java +6 -6
  472. package/ReactAndroid/src/main/java/com/facebook/react/common/futures/SimpleSettableFuture.java +2 -0
  473. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/MapBuffer.kt +25 -22
  474. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/MapBufferSoLoader.kt +4 -2
  475. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBuffer.kt +8 -6
  476. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/WritableMapBuffer.kt +9 -7
  477. package/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.java +2 -0
  478. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +30 -55
  479. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultComponentsRegistry.kt +11 -4
  480. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt +39 -31
  481. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactActivityDelegate.kt +5 -3
  482. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +5 -5
  483. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHostDelegate.kt +7 -8
  484. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +32 -5
  485. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultSoLoader.kt +26 -0
  486. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultTurboModuleManagerDelegate.kt +51 -7
  487. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +2 -1
  488. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.java +142 -0
  489. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DebugOverlayController.java +15 -27
  490. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +2 -0
  491. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevInternalSettings.java +2 -0
  492. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +10 -9
  493. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSettingsActivity.java +2 -0
  494. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +50 -27
  495. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportSoLoader.java +24 -0
  496. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DoubleTapReloadRecognizer.java +2 -0
  497. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/FpsView.java +1 -1
  498. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/IInspectorPackagerConnection.java +16 -0
  499. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.java +28 -0
  500. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorPackagerConnection.java +2 -26
  501. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/JSCHeapCapture.java +0 -4
  502. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialog.java +3 -1
  503. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.java +1 -1
  504. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.java +2 -0
  505. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/MultipartStreamReader.java +1 -1
  506. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.java +2 -0
  507. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PerftestDevSupportManager.java +2 -3
  508. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxDialogSurfaceDelegate.java +1 -1
  509. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ViewHierarchyUtil.java +1 -1
  510. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/WindowOverlayCompat.java +4 -7
  511. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/ErrorType.java +3 -0
  512. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +12 -15
  513. package/ReactAndroid/src/main/java/com/facebook/react/fabric/BindingImpl.java +2 -3
  514. package/ReactAndroid/src/main/java/com/facebook/react/fabric/ComponentFactory.java +2 -0
  515. package/ReactAndroid/src/main/java/com/facebook/react/fabric/CoreComponentsRegistry.java +2 -0
  516. package/ReactAndroid/src/main/java/com/facebook/react/fabric/DevToolsReactPerfLogger.java +23 -81
  517. package/ReactAndroid/src/main/java/com/facebook/react/fabric/EmptyReactNativeConfig.kt +36 -0
  518. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java +2 -0
  519. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricSoLoader.java +2 -0
  520. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +82 -64
  521. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.java +65 -0
  522. package/ReactAndroid/src/main/java/com/facebook/react/fabric/GuardedFrameCallback.java +4 -2
  523. package/ReactAndroid/src/main/java/com/facebook/react/fabric/LongStreamingStats.java +76 -0
  524. package/ReactAndroid/src/main/java/com/facebook/react/fabric/ReactNativeConfig.kt +7 -7
  525. package/ReactAndroid/src/main/java/com/facebook/react/fabric/StateWrapperImpl.java +16 -0
  526. package/ReactAndroid/src/main/java/com/facebook/react/fabric/SurfaceHandlerBinding.java +2 -0
  527. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventBeatManager.java +2 -0
  528. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +7 -3
  529. package/ReactAndroid/src/main/java/com/facebook/react/fabric/internal/interop/InteropUiBlockListener.kt +68 -0
  530. package/ReactAndroid/src/main/java/com/facebook/react/fabric/interop/UIBlock.kt +27 -0
  531. package/ReactAndroid/src/main/java/com/facebook/react/fabric/interop/UIBlockViewResolver.kt +29 -0
  532. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/LayoutMetricsConversions.java +2 -0
  533. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +32 -28
  534. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +4 -1
  535. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +77 -96
  536. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/DispatchCommandMountItem.java +2 -0
  537. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/DispatchIntCommandMountItem.java +2 -0
  538. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/DispatchStringCommandMountItem.java +2 -0
  539. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/FabricNameComponentMapping.java +2 -0
  540. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +9 -16
  541. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/MountItemFactory.java +4 -1
  542. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.java +5 -2
  543. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.java +3 -1
  544. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEventMountItem.java +2 -0
  545. package/ReactAndroid/src/main/java/com/facebook/react/flipper/ReactNativeFlipper.kt +34 -0
  546. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/TaskInterface.kt +8 -8
  547. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/exceptionmanager/ReactJsExceptionHandler.kt +2 -2
  548. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/fabric/ReactSurface.kt +11 -11
  549. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/fabric/SurfaceHandler.kt +10 -10
  550. package/ReactAndroid/src/main/java/com/facebook/react/internal/AndroidChoreographerProvider.java +41 -0
  551. package/ReactAndroid/src/main/java/com/facebook/react/internal/ChoreographerProvider.java +30 -0
  552. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +135 -0
  553. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsAccessor.kt +14 -0
  554. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +128 -0
  555. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +54 -0
  556. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +45 -0
  557. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsForTests.kt +14 -0
  558. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +151 -0
  559. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +45 -0
  560. package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEvent.kt +27 -0
  561. package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +55 -0
  562. package/ReactAndroid/src/main/java/com/facebook/react/{turbomodule → internal/turbomodule}/core/NativeModuleSoLoader.kt +1 -1
  563. package/ReactAndroid/src/main/java/com/facebook/react/{turbomodule → internal/turbomodule}/core/TurboModuleInteropUtils.java +1 -1
  564. package/ReactAndroid/src/main/java/com/facebook/react/{turbomodule → internal/turbomodule}/core/TurboModuleManager.java +13 -10
  565. package/ReactAndroid/src/main/java/com/facebook/react/{turbomodule → internal/turbomodule}/core/TurboModuleManagerDelegate.java +15 -1
  566. package/ReactAndroid/src/main/java/com/facebook/react/{turbomodule → internal/turbomodule}/core/TurboModulePerfLogger.java +3 -1
  567. package/ReactAndroid/src/main/java/com/facebook/react/{turbomodule → internal/turbomodule}/core/interfaces/TurboModuleRegistry.kt +12 -6
  568. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutor.kt +3 -3
  569. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutorFactory.kt +1 -1
  570. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/LinearCountingRetryPolicy.java +3 -0
  571. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/NoRetryPolicy.java +4 -1
  572. package/ReactAndroid/src/main/java/com/facebook/react/module/annotations/ReactModule.java +3 -3
  573. package/ReactAndroid/src/main/java/com/facebook/react/module/model/ReactModuleInfo.java +10 -0
  574. package/ReactAndroid/src/main/java/com/facebook/react/module/processing/ReactModuleSpecProcessor.java +3 -3
  575. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.java +2 -3
  576. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobProvider.java +4 -3
  577. package/ReactAndroid/src/main/java/com/facebook/react/modules/common/ModuleDataCleaner.java +7 -7
  578. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ChoreographerCompat.java +3 -98
  579. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +3 -2
  580. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactChoreographer.java +57 -71
  581. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/AnimationsDebugModule.java +3 -2
  582. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DidJSUpdateUiDuringFrameDetector.java +4 -4
  583. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/FpsDebugFrameCallback.java +37 -29
  584. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactNetworkImageRequest.java +1 -1
  585. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CountingOutputStream.java +1 -1
  586. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/HeaderUtil.java +1 -15
  587. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java +2 -2
  588. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ProgressRequestBody.java +1 -1
  589. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ProgressResponseBody.java +2 -2
  590. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ProgressiveStringDecoder.java +1 -1
  591. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.java +1 -1
  592. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/RequestBodyUtil.java +5 -22
  593. package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/PermissionsModule.java +8 -31
  594. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.java +1 -1
  595. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoHelpers.java +0 -9
  596. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +5 -5
  597. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/FileIoHandler.java +4 -2
  598. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/NotificationOnlyHandler.java +2 -0
  599. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.java +2 -4
  600. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/RequestOnlyHandler.java +2 -0
  601. package/ReactAndroid/src/main/java/com/facebook/react/processing/ReactPropertyProcessor.java +4 -4
  602. package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/NativeModulePerfLogger.java +2 -0
  603. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BindingsInstaller.kt +2 -2
  604. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +201 -0
  605. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessDevSupportManager.java +16 -3
  606. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.java +28 -15
  607. package/ReactAndroid/src/main/java/com/facebook/react/runtime/CoreReactPackage.java +15 -10
  608. package/ReactAndroid/src/main/java/com/facebook/react/runtime/JSCInstance.java +1 -1
  609. package/ReactAndroid/src/main/java/com/facebook/react/runtime/{JSEngineInstance.java → JSRuntimeFactory.java} +2 -2
  610. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostDelegate.kt +16 -14
  611. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +223 -349
  612. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +166 -126
  613. package/ReactAndroid/src/main/java/com/facebook/react/runtime/cxxreactpackage/CxxReactPackage.kt +31 -0
  614. package/ReactAndroid/src/main/java/com/facebook/react/runtime/hermes/HermesInstance.kt +8 -4
  615. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/AggregateException.java +1 -1
  616. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/CancellationTokenRegistration.java +1 -1
  617. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/Capture.java +1 -1
  618. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/ExecutorException.java +1 -1
  619. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/Task.java +2 -2
  620. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/UnobservedErrorNotifier.java +1 -1
  621. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/UnobservedTaskException.java +1 -1
  622. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainPackageConfig.java +1 -1
  623. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +5 -4
  624. package/ReactAndroid/src/main/java/com/facebook/react/touch/JSResponderHandler.kt +73 -0
  625. package/ReactAndroid/src/main/java/com/facebook/react/touch/{OnInterceptTouchEventListener.java → OnInterceptTouchEventListener.kt} +8 -8
  626. package/ReactAndroid/src/main/java/com/facebook/react/touch/ReactHitSlopView.kt +18 -0
  627. package/ReactAndroid/src/main/java/com/facebook/react/touch/ReactInterceptingViewGroup.kt +31 -0
  628. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/CallInvokerHolderImpl.java +5 -0
  629. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/NativeMethodCallInvokerHolderImpl.java +5 -0
  630. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/CallInvokerHolder.kt +1 -1
  631. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/NativeMethodCallInvokerHolder.kt +1 -1
  632. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModule.kt +3 -3
  633. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.java +2 -2
  634. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/IViewGroupManager.java +10 -0
  635. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +3 -2
  636. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +7 -7
  637. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +13 -1
  638. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NoSuchNativeViewException.java +1 -1
  639. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +0 -5
  640. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactCompoundViewGroup.java +4 -4
  641. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactRoot.java +1 -4
  642. package/ReactAndroid/src/main/java/com/facebook/react/{surface → uimanager}/ReactStage.java +1 -1
  643. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ShadowNodeRegistry.java +1 -1
  644. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.java +4 -5
  645. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIConstantsProviderManager.java +35 -3
  646. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +7 -21
  647. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java +2 -3
  648. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +24 -36
  649. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.java +7 -20
  650. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +29 -43
  651. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupManager.java +0 -8
  652. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewHierarchyDumper.java +1 -1
  653. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerRegistry.java +17 -1
  654. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/YogaNodePool.java +1 -1
  655. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactProp.java +2 -0
  656. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactPropGroup.java +2 -0
  657. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactPropertyHolder.java +2 -0
  658. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/UIManagerType.java +2 -0
  659. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/ViewUtil.java +3 -0
  660. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/debug/NotThreadSafeViewHierarchyUpdateDebugListener.java +2 -0
  661. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/BlackHoleEventDispatcher.java +2 -0
  662. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ContentSizeChangeEvent.java +8 -1
  663. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +14 -27
  664. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +10 -4
  665. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java +5 -3
  666. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/NativeGestureUtil.java +2 -0
  667. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.java +2 -0
  668. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +8 -3
  669. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +2 -0
  670. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +14 -15
  671. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +5 -0
  672. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.java +2 -0
  673. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventType.java +3 -0
  674. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +29 -23
  675. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/AnimatedPropertyType.java +4 -1
  676. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/BaseLayoutAnimation.java +3 -1
  677. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/InterpolatorType.java +3 -1
  678. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.java +3 -9
  679. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationType.java +4 -1
  680. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutCreateAnimation.java +4 -1
  681. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutDeleteAnimation.java +4 -1
  682. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutUpdateAnimation.java +3 -1
  683. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/OpacityAnimation.java +3 -1
  684. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/PositionAndSizeAnimation.java +3 -1
  685. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/SimpleSpringInterpolator.java +3 -1
  686. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/util/ReactFindViewUtil.java +3 -2
  687. package/ReactAndroid/src/main/java/com/facebook/react/util/JSStackTrace.java +2 -0
  688. package/ReactAndroid/src/main/java/com/facebook/react/util/RNLog.java +7 -3
  689. package/ReactAndroid/src/main/java/com/facebook/react/views/common/ContextUtils.java +2 -0
  690. package/ReactAndroid/src/main/java/com/facebook/react/views/common/ViewUtils.java +2 -0
  691. package/ReactAndroid/src/main/java/com/facebook/react/views/debuggingoverlay/DebuggingOverlay.java +97 -0
  692. package/ReactAndroid/src/main/java/com/facebook/react/views/debuggingoverlay/DebuggingOverlayManager.java +162 -0
  693. package/ReactAndroid/src/main/java/com/facebook/react/views/debuggingoverlay/TraceUpdate.java +37 -0
  694. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayout.java +3 -1
  695. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.java +2 -0
  696. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerClosedEvent.java +2 -0
  697. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerOpenedEvent.java +2 -0
  698. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerSlideEvent.java +2 -0
  699. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerStateChangedEvent.java +2 -0
  700. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ImageLoadEvent.java +2 -0
  701. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ImageResizeMethod.java +3 -0
  702. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ImageResizeMode.java +2 -0
  703. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageDownloadListener.java +3 -1
  704. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ScaleTypeStartInside.java +4 -2
  705. package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/MultiSourceHelper.java +2 -0
  706. package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ResourceDrawableIdHelper.java +2 -0
  707. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostHelper.java +3 -1
  708. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostShadowNode.java +2 -0
  709. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.java +28 -13
  710. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/RequestCloseEvent.java +3 -1
  711. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ShowEvent.java +3 -1
  712. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.java +4 -2
  713. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarShadowNode.java +2 -0
  714. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ReactProgressBarViewManager.java +2 -0
  715. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/MaintainVisibleScrollPositionHelper.java +3 -1
  716. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/OnScrollDispatchHelper.java +4 -2
  717. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerView.java +2 -0
  718. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerViewManager.java +2 -0
  719. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +15 -14
  720. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.java +3 -1
  721. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.java +2 -0
  722. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.java +2 -0
  723. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEventType.java +3 -0
  724. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VelocityHelper.java +3 -1
  725. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.java +2 -0
  726. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/RefreshEvent.java +3 -1
  727. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchEvent.java +3 -1
  728. package/ReactAndroid/src/main/java/com/facebook/react/views/text/BasicTextAttributeProvider.kt +48 -0
  729. package/ReactAndroid/src/main/java/com/facebook/react/views/text/EffectiveTextAttributeProvider.kt +22 -0
  730. package/ReactAndroid/src/main/java/com/facebook/react/views/text/HierarchicTextAttributeProvider.kt +63 -0
  731. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java +229 -31
  732. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +1 -6
  733. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +40 -52
  734. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextUpdate.java +5 -6
  735. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +24 -30
  736. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java +2 -0
  737. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.java +3 -2
  738. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +119 -22
  739. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributes.java +4 -2
  740. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +66 -54
  741. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +61 -54
  742. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutUtils.kt +379 -0
  743. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextTransform.java +2 -1
  744. package/ReactAndroid/src/main/java/com/facebook/react/views/text/fragments/BridgeTextFragment.kt +39 -0
  745. package/ReactAndroid/src/main/java/com/facebook/react/views/text/fragments/BridgeTextFragmentList.kt +18 -0
  746. package/ReactAndroid/src/main/java/com/facebook/react/views/text/fragments/MapBufferTextFragment.kt +42 -0
  747. package/ReactAndroid/src/main/java/com/facebook/react/views/text/fragments/MapBufferTextFragmentList.kt +19 -0
  748. package/ReactAndroid/src/main/java/com/facebook/react/views/text/fragments/TextFragment.kt +29 -0
  749. package/ReactAndroid/src/main/java/com/facebook/react/views/text/fragments/TextFragmentList.kt +15 -0
  750. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageShadowNode.java +3 -3
  751. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageSpan.java +2 -2
  752. package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactTextInlineImageShadowNode.java → internal/ReactTextInlineImageShadowNode.java} +2 -1
  753. package/ReactAndroid/src/main/java/com/facebook/react/views/text/{CustomLetterSpacingSpan.java → internal/span/CustomLetterSpacingSpan.java} +1 -1
  754. package/ReactAndroid/src/main/java/com/facebook/react/views/text/{CustomLineHeightSpan.java → internal/span/CustomLineHeightSpan.java} +9 -6
  755. package/ReactAndroid/src/main/java/com/facebook/react/views/text/{CustomStyleSpan.java → internal/span/CustomStyleSpan.java} +16 -17
  756. package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactAbsoluteSizeSpan.java → internal/span/ReactAbsoluteSizeSpan.java} +1 -1
  757. package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactBackgroundColorSpan.java → internal/span/ReactBackgroundColorSpan.java} +1 -1
  758. package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactClickableSpan.java → internal/span/ReactClickableSpan.java} +5 -3
  759. package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactForegroundColorSpan.java → internal/span/ReactForegroundColorSpan.java} +1 -1
  760. package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactSpan.java → internal/span/ReactSpan.java} +1 -1
  761. package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactStrikethroughSpan.java → internal/span/ReactStrikethroughSpan.java} +1 -1
  762. package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactTagSpan.java → internal/span/ReactTagSpan.java} +1 -1
  763. package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactUnderlineSpan.java → internal/span/ReactUnderlineSpan.java} +1 -1
  764. package/ReactAndroid/src/main/java/com/facebook/react/views/text/{SetSpanOperation.java → internal/span/SetSpanOperation.java} +9 -4
  765. package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ShadowStyleSpan.java → internal/span/ShadowStyleSpan.java} +1 -1
  766. package/ReactAndroid/src/main/java/com/facebook/react/views/text/{TextInlineImageSpan.java → internal/span/TextInlineImageSpan.java} +1 -1
  767. package/ReactAndroid/src/main/java/com/facebook/react/views/text/{TextInlineViewPlaceholderSpan.java → internal/span/TextInlineViewPlaceholderSpan.java} +1 -1
  768. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +38 -54
  769. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputKeyPressEvent.java +1 -1
  770. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputLocalData.java +2 -10
  771. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +174 -123
  772. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.java +5 -16
  773. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ScrollWatcher.java +1 -1
  774. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/SelectionWatcher.java +1 -1
  775. package/ReactAndroid/src/main/java/com/facebook/react/views/unimplementedview/ReactUnimplementedView.java +2 -0
  776. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +4 -1
  777. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ColorUtil.java +2 -0
  778. package/ReactAndroid/src/main/java/com/facebook/react/views/view/MeasureUtil.java +2 -0
  779. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactClippingViewManager.java +2 -0
  780. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.java +1 -4
  781. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +1 -3
  782. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundManager.java +3 -3
  783. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +11 -4
  784. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.java +0 -3
  785. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ViewGroupClickEvent.java +2 -0
  786. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaAlign.java +3 -1
  787. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfig.java +1 -3
  788. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIBase.java +1 -5
  789. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaErrata.java +4 -0
  790. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaExperimentalFeature.java +1 -3
  791. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.java +2 -4
  792. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +2 -2
  793. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +5 -12
  794. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.java +1 -1
  795. package/ReactAndroid/src/main/jni/CMakeLists.txt +4 -6
  796. package/ReactAndroid/src/main/jni/first-party/fb/CMakeLists.txt +1 -1
  797. package/ReactAndroid/src/main/jni/first-party/fbgloginit/CMakeLists.txt +1 -1
  798. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +16 -42
  799. package/ReactAndroid/src/main/jni/react/devsupport/CMakeLists.txt +19 -0
  800. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnection.cpp +55 -0
  801. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnection.h +62 -0
  802. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionDelegateImpl.cpp +72 -0
  803. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionDelegateImpl.h +69 -0
  804. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp +45 -0
  805. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.h +56 -0
  806. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocketDelegate.cpp +53 -0
  807. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocketDelegate.h +49 -0
  808. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.cpp +36 -0
  809. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +32 -0
  810. package/ReactAndroid/src/main/jni/react/devsupport/JOptional.cpp +29 -0
  811. package/ReactAndroid/src/main/jni/react/devsupport/JOptional.h +27 -0
  812. package/ReactAndroid/src/main/jni/react/devsupport/OnLoad.cpp +22 -0
  813. package/ReactAndroid/src/main/jni/react/fabric/Binding.cpp +2 -25
  814. package/ReactAndroid/src/main/jni/react/fabric/Binding.h +0 -2
  815. package/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt +1 -1
  816. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +8 -6
  817. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +4 -40
  818. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +0 -2
  819. package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.cpp +47 -0
  820. package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.h +38 -0
  821. package/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +2 -0
  822. package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.cpp +1 -1
  823. package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.h +1 -1
  824. package/ReactAndroid/src/main/jni/react/featureflags/CMakeLists.txt +34 -0
  825. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +206 -0
  826. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +73 -0
  827. package/ReactAndroid/src/main/jni/react/featureflags/OnLoad.cpp +16 -0
  828. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +1 -2
  829. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +18 -29
  830. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +3 -4
  831. package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapper.h +0 -10
  832. package/ReactAndroid/src/main/jni/react/jni/JCallback.h +0 -7
  833. package/ReactAndroid/src/main/jni/react/jni/JInspector.cpp +2 -5
  834. package/ReactAndroid/src/main/jni/react/jni/JInspector.h +0 -4
  835. package/ReactAndroid/src/main/jni/react/jni/JMessageQueueThread.cpp +3 -15
  836. package/ReactAndroid/src/main/jni/react/jni/JMessageQueueThread.h +0 -4
  837. package/ReactAndroid/src/main/jni/react/jni/MethodInvoker.cpp +3 -2
  838. package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +18 -19
  839. package/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp +0 -3
  840. package/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.h +0 -1
  841. package/ReactAndroid/src/main/jni/react/jni/ReadableNativeArray.cpp +2 -2
  842. package/ReactAndroid/src/main/jni/react/jni/ReadableNativeMap.cpp +2 -2
  843. package/ReactAndroid/src/main/jni/react/newarchdefaults/CMakeLists.txt +2 -0
  844. package/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.cpp +15 -7
  845. package/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultTurboModuleManagerDelegate.cpp +31 -2
  846. package/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultTurboModuleManagerDelegate.h +11 -1
  847. package/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.cpp +1 -1
  848. package/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.h +2 -4
  849. package/ReactAndroid/src/main/jni/react/runtime/cxxreactpackage/CMakeLists.txt +29 -0
  850. package/ReactAndroid/src/main/jni/react/runtime/cxxreactpackage/ReactCommon/CxxReactPackage.h +31 -0
  851. package/{ReactCommon/hermes/executor/JSITracing.cpp → ReactAndroid/src/main/jni/react/runtime/cxxreactpackage/ReactCommon/OnLoad.cpp} +5 -7
  852. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.cpp +11 -5
  853. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.h +13 -6
  854. package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +1 -0
  855. package/ReactAndroid/src/main/jni/react/runtime/jni/{JJSEngineInstance.h → JJSRuntimeFactory.h} +4 -4
  856. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +10 -4
  857. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.h +6 -4
  858. package/ReactAndroid/src/main/jni/react/runtime/jsc/jni/OnLoad.cpp +5 -5
  859. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/OnLoad.cpp +1 -1
  860. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +28 -10
  861. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +6 -3
  862. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManagerDelegate.h +1 -1
  863. package/ReactAndroid/src/main/jni/react/uimanager/UIConstantsProviderManager.cpp +44 -13
  864. package/ReactAndroid/src/main/jni/react/uimanager/UIConstantsProviderManager.h +72 -6
  865. package/ReactAndroid/src/main/jni/third-party/fmt/CMakeLists.txt +1 -1
  866. package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +21 -72
  867. package/ReactAndroid/src/main/res/devsupport/drawable/redbox_top_border_background.xml +2 -1
  868. package/ReactAndroid/src/main/res/devsupport/values/strings.xml +6 -7
  869. package/ReactAndroid/src/main/res/devsupport/values-af/strings.xml +0 -2
  870. package/ReactAndroid/src/main/res/devsupport/values-ar/strings.xml +0 -2
  871. package/ReactAndroid/src/main/res/devsupport/values-bg/strings.xml +0 -1
  872. package/ReactAndroid/src/main/res/devsupport/values-bn/strings.xml +0 -2
  873. package/ReactAndroid/src/main/res/devsupport/values-cs/strings.xml +0 -2
  874. package/ReactAndroid/src/main/res/devsupport/values-da/strings.xml +0 -1
  875. package/ReactAndroid/src/main/res/devsupport/values-el/strings.xml +0 -1
  876. package/ReactAndroid/src/main/res/devsupport/values-en-rGB/strings.xml +0 -1
  877. package/ReactAndroid/src/main/res/devsupport/values-es/strings.xml +0 -2
  878. package/ReactAndroid/src/main/res/devsupport/values-es-rES/strings.xml +0 -2
  879. package/ReactAndroid/src/main/res/devsupport/values-et/strings.xml +0 -2
  880. package/ReactAndroid/src/main/res/devsupport/values-fa/strings.xml +0 -2
  881. package/ReactAndroid/src/main/res/devsupport/values-fi/strings.xml +0 -2
  882. package/ReactAndroid/src/main/res/devsupport/values-fr/strings.xml +0 -1
  883. package/ReactAndroid/src/main/res/devsupport/values-fr-rCA/strings.xml +0 -1
  884. package/ReactAndroid/src/main/res/devsupport/values-gu/strings.xml +0 -2
  885. package/ReactAndroid/src/main/res/devsupport/values-hi/strings.xml +0 -2
  886. package/ReactAndroid/src/main/res/devsupport/values-hr/strings.xml +0 -2
  887. package/ReactAndroid/src/main/res/devsupport/values-hu/strings.xml +0 -2
  888. package/ReactAndroid/src/main/res/devsupport/values-it/strings.xml +0 -2
  889. package/ReactAndroid/src/main/res/devsupport/values-iw/strings.xml +0 -2
  890. package/ReactAndroid/src/main/res/devsupport/values-ja/strings.xml +0 -2
  891. package/ReactAndroid/src/main/res/devsupport/values-ka/strings.xml +0 -2
  892. package/ReactAndroid/src/main/res/devsupport/values-km/strings.xml +0 -2
  893. package/ReactAndroid/src/main/res/devsupport/values-kn/strings.xml +0 -2
  894. package/ReactAndroid/src/main/res/devsupport/values-ko/strings.xml +0 -2
  895. package/ReactAndroid/src/main/res/devsupport/values-lt/strings.xml +0 -2
  896. package/ReactAndroid/src/main/res/devsupport/values-lv/strings.xml +0 -2
  897. package/ReactAndroid/src/main/res/devsupport/values-mk/strings.xml +0 -2
  898. package/ReactAndroid/src/main/res/devsupport/values-ml/strings.xml +0 -2
  899. package/ReactAndroid/src/main/res/devsupport/values-mr/strings.xml +0 -2
  900. package/ReactAndroid/src/main/res/devsupport/values-ms/strings.xml +0 -2
  901. package/ReactAndroid/src/main/res/devsupport/values-my/strings.xml +0 -2
  902. package/ReactAndroid/src/main/res/devsupport/values-nl/strings.xml +0 -2
  903. package/ReactAndroid/src/main/res/devsupport/values-pa/strings.xml +0 -2
  904. package/ReactAndroid/src/main/res/devsupport/values-pl/strings.xml +0 -2
  905. package/ReactAndroid/src/main/res/devsupport/values-pt/strings.xml +0 -2
  906. package/ReactAndroid/src/main/res/devsupport/values-pt-rPT/strings.xml +0 -2
  907. package/ReactAndroid/src/main/res/devsupport/values-ro/strings.xml +0 -2
  908. package/ReactAndroid/src/main/res/devsupport/values-ru/strings.xml +0 -2
  909. package/ReactAndroid/src/main/res/devsupport/values-si/strings.xml +0 -2
  910. package/ReactAndroid/src/main/res/devsupport/values-sk/strings.xml +0 -2
  911. package/ReactAndroid/src/main/res/devsupport/values-sl/strings.xml +0 -1
  912. package/ReactAndroid/src/main/res/devsupport/values-sq/strings.xml +0 -2
  913. package/ReactAndroid/src/main/res/devsupport/values-sr/strings.xml +0 -2
  914. package/ReactAndroid/src/main/res/devsupport/values-sv/strings.xml +0 -1
  915. package/ReactAndroid/src/main/res/devsupport/values-sw/strings.xml +0 -1
  916. package/ReactAndroid/src/main/res/devsupport/values-ta/strings.xml +0 -2
  917. package/ReactAndroid/src/main/res/devsupport/values-te/strings.xml +0 -2
  918. package/ReactAndroid/src/main/res/devsupport/values-th/strings.xml +0 -2
  919. package/ReactAndroid/src/main/res/devsupport/values-tr/strings.xml +0 -1
  920. package/ReactAndroid/src/main/res/devsupport/values-uk/strings.xml +0 -2
  921. package/ReactAndroid/src/main/res/devsupport/values-ur/strings.xml +0 -2
  922. package/ReactAndroid/src/main/res/devsupport/values-vi/strings.xml +0 -2
  923. package/ReactAndroid/src/main/res/devsupport/values-zh-rCN/strings.xml +0 -2
  924. package/ReactAndroid/src/main/res/devsupport/values-zh-rHK/strings.xml +0 -2
  925. package/ReactAndroid/src/main/res/devsupport/values-zh-rTW/strings.xml +0 -2
  926. package/ReactAndroid/src/main/res/shell/values/styles.xml +2 -1
  927. package/ReactAndroid/src/main/res/views/uimanager/values-be/strings.xml +3 -0
  928. package/ReactAndroid/src/main/res/views/uimanager/values-kk/strings.xml +1 -0
  929. package/ReactAndroid/src/main/res/views/uimanager/values-ky/strings.xml +1 -0
  930. package/ReactAndroid/src/main/res/views/uimanager/values-mn/strings.xml +1 -0
  931. package/ReactApple/Libraries/RCTFoundation/RCTDeprecation/Exported/RCTDeprecation.h +16 -0
  932. package/ReactApple/Libraries/RCTFoundation/RCTDeprecation/RCTDeprecation.m +8 -0
  933. package/ReactApple/Libraries/RCTFoundation/RCTDeprecation/RCTDeprecation.podspec +25 -0
  934. package/ReactApple/Libraries/RCTFoundation/RCTDeprecation/README.md +1 -0
  935. package/ReactApple/Libraries/RCTFoundation/README.md +12 -0
  936. package/ReactApple/README.md +5 -0
  937. package/ReactCommon/.clang-tidy +7 -0
  938. package/ReactCommon/React-Fabric.podspec +24 -7
  939. package/ReactCommon/React-FabricImage.podspec +6 -4
  940. package/ReactCommon/React-rncore.podspec +0 -9
  941. package/ReactCommon/ReactCommon.podspec +9 -4
  942. package/ReactCommon/butter/CMakeLists.txt +1 -2
  943. package/ReactCommon/callinvoker/CMakeLists.txt +1 -2
  944. package/ReactCommon/callinvoker/React-callinvoker.podspec +4 -2
  945. package/ReactCommon/callinvoker/ReactCommon/CallInvoker.h +7 -3
  946. package/ReactCommon/cxxreact/Instance.cpp +44 -21
  947. package/ReactCommon/cxxreact/Instance.h +17 -5
  948. package/ReactCommon/cxxreact/JSBigString.cpp +2 -2
  949. package/ReactCommon/cxxreact/JSExecutor.cpp +13 -0
  950. package/ReactCommon/cxxreact/JSExecutor.h +18 -6
  951. package/ReactCommon/cxxreact/MoveWrapper.h +125 -0
  952. package/ReactCommon/cxxreact/NativeToJsBridge.cpp +12 -7
  953. package/ReactCommon/cxxreact/NativeToJsBridge.h +4 -1
  954. package/ReactCommon/cxxreact/React-cxxreact.podspec +5 -4
  955. package/ReactCommon/cxxreact/ReactMarker.cpp +15 -2
  956. package/ReactCommon/cxxreact/ReactMarker.h +1 -0
  957. package/ReactCommon/cxxreact/ReactNativeVersion.h +4 -4
  958. package/ReactCommon/cxxreact/tests/jsbigstring.cpp +0 -1
  959. package/ReactCommon/hermes/React-hermes.podspec +7 -8
  960. package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +49 -7
  961. package/ReactCommon/hermes/executor/HermesExecutorFactory.h +14 -2
  962. package/ReactCommon/hermes/inspector-modern/CMakeLists.txt +3 -6
  963. package/ReactCommon/hermes/inspector-modern/chrome/ConnectionDemux.cpp +3 -3
  964. package/ReactCommon/hermes/inspector-modern/chrome/ConnectionDemux.h +5 -5
  965. package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeAgentDelegate.cpp +228 -0
  966. package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeAgentDelegate.h +71 -0
  967. package/ReactCommon/hermes/inspector-modern/chrome/Registration.cpp +2 -2
  968. package/ReactCommon/hermes/inspector-modern/chrome/Registration.h +1 -1
  969. package/ReactCommon/hermes/inspector-modern/chrome/tests/ConnectionDemuxTests.cpp +5 -5
  970. package/ReactCommon/jsc/CMakeLists.txt +0 -4
  971. package/ReactCommon/jsc/JSCRuntime.cpp +107 -56
  972. package/ReactCommon/jsc/React-jsc.podspec +1 -1
  973. package/ReactCommon/jserrorhandler/CMakeLists.txt +1 -1
  974. package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +4 -3
  975. package/ReactCommon/jsi/React-jsi.podspec +4 -3
  976. package/ReactCommon/jsi/jsi/JSIDynamic.cpp +9 -2
  977. package/ReactCommon/jsi/jsi/JSIDynamic.h +2 -1
  978. package/ReactCommon/jsi/jsi/decorator.h +4 -0
  979. package/ReactCommon/jsi/jsi/jsi-inl.h +5 -0
  980. package/ReactCommon/jsi/jsi/jsi.h +15 -0
  981. package/ReactCommon/jsi/jsi/test/testlib.cpp +94 -2
  982. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +5 -3
  983. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +0 -30
  984. package/ReactCommon/jsinspector-modern/CMakeLists.txt +10 -0
  985. package/ReactCommon/jsinspector-modern/CONCEPTS.md +27 -0
  986. package/ReactCommon/jsinspector-modern/ExecutionContext.cpp +66 -0
  987. package/ReactCommon/jsinspector-modern/ExecutionContext.h +109 -0
  988. package/ReactCommon/jsinspector-modern/ExecutionContextManager.cpp +19 -0
  989. package/ReactCommon/jsinspector-modern/ExecutionContextManager.h +25 -0
  990. package/ReactCommon/jsinspector-modern/FallbackRuntimeAgentDelegate.cpp +70 -0
  991. package/ReactCommon/jsinspector-modern/FallbackRuntimeAgentDelegate.h +66 -0
  992. package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +58 -0
  993. package/ReactCommon/jsinspector-modern/InspectorFlags.h +46 -0
  994. package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +94 -17
  995. package/ReactCommon/jsinspector-modern/InspectorInterfaces.h +62 -7
  996. package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +365 -0
  997. package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.h +85 -0
  998. package/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +127 -0
  999. package/ReactCommon/jsinspector-modern/InspectorUtilities.cpp +39 -0
  1000. package/ReactCommon/jsinspector-modern/InspectorUtilities.h +52 -0
  1001. package/ReactCommon/jsinspector-modern/InstanceAgent.cpp +75 -0
  1002. package/ReactCommon/jsinspector-modern/InstanceAgent.h +66 -0
  1003. package/ReactCommon/jsinspector-modern/InstanceTarget.cpp +82 -0
  1004. package/ReactCommon/jsinspector-modern/InstanceTarget.h +97 -0
  1005. package/ReactCommon/jsinspector-modern/PageAgent.cpp +153 -0
  1006. package/ReactCommon/jsinspector-modern/PageAgent.h +89 -0
  1007. package/ReactCommon/jsinspector-modern/PageTarget.cpp +166 -0
  1008. package/ReactCommon/jsinspector-modern/PageTarget.h +190 -0
  1009. package/ReactCommon/jsinspector-modern/Parsing.cpp +32 -0
  1010. package/ReactCommon/jsinspector-modern/Parsing.h +69 -0
  1011. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +31 -2
  1012. package/ReactCommon/jsinspector-modern/ReactCdp.h +16 -0
  1013. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +138 -0
  1014. package/ReactCommon/jsinspector-modern/RuntimeAgent.h +93 -0
  1015. package/ReactCommon/jsinspector-modern/RuntimeAgentDelegate.h +51 -0
  1016. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +109 -0
  1017. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +162 -0
  1018. package/ReactCommon/jsinspector-modern/ScopedExecutor.h +97 -0
  1019. package/ReactCommon/jsinspector-modern/SessionState.h +51 -0
  1020. package/ReactCommon/jsinspector-modern/UniqueMonostate.h +54 -0
  1021. package/ReactCommon/jsinspector-modern/WeakList.h +79 -0
  1022. package/ReactCommon/jsinspector-modern/WebSocketInterfaces.h +62 -0
  1023. package/ReactCommon/jsinspector-modern/tests/FollyDynamicMatchers.cpp +50 -0
  1024. package/ReactCommon/jsinspector-modern/tests/FollyDynamicMatchers.h +80 -0
  1025. package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +163 -0
  1026. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp +1343 -0
  1027. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +576 -0
  1028. package/ReactCommon/jsinspector-modern/tests/PageTargetTest.cpp +517 -0
  1029. package/ReactCommon/jsinspector-modern/tests/UniquePtrFactory.h +110 -0
  1030. package/ReactCommon/jsinspector-modern/tests/UniquePtrFactoryTest.cpp +84 -0
  1031. package/ReactCommon/jsinspector-modern/tests/WeakListTest.cpp +91 -0
  1032. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestGenericEngineAdapter.cpp +48 -0
  1033. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestGenericEngineAdapter.h +44 -0
  1034. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.cpp +58 -0
  1035. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.h +44 -0
  1036. package/ReactCommon/logger/CMakeLists.txt +1 -1
  1037. package/ReactCommon/logger/React-logger.podspec +3 -3
  1038. package/ReactCommon/react/bridging/Array.h +26 -2
  1039. package/ReactCommon/react/bridging/CMakeLists.txt +0 -1
  1040. package/ReactCommon/react/bridging/CallbackWrapper.h +8 -5
  1041. package/ReactCommon/react/bridging/Function.h +63 -24
  1042. package/ReactCommon/react/bridging/LongLivedObject.h +8 -6
  1043. package/ReactCommon/react/bridging/tests/BridgingTest.cpp +51 -1
  1044. package/ReactCommon/react/bridging/tests/BridgingTest.h +1 -1
  1045. package/ReactCommon/react/config/CMakeLists.txt +1 -2
  1046. package/ReactCommon/react/config/ReactNativeConfig.cpp +3 -10
  1047. package/ReactCommon/react/config/ReactNativeConfig.h +4 -4
  1048. package/ReactCommon/react/debug/CMakeLists.txt +0 -1
  1049. package/ReactCommon/react/featureflags/CMakeLists.txt +20 -0
  1050. package/ReactCommon/react/featureflags/React-featureflags.podspec +44 -0
  1051. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +82 -0
  1052. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +126 -0
  1053. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +251 -0
  1054. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +68 -0
  1055. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +71 -0
  1056. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +40 -0
  1057. package/ReactCommon/react/featureflags/tests/ReactNativeFeatureFlagsTest.cpp +124 -0
  1058. package/ReactCommon/react/nativemodule/core/CMakeLists.txt +1 -1
  1059. package/ReactCommon/react/nativemodule/core/ReactCommon/CxxTurboModuleUtils.cpp +32 -0
  1060. package/ReactCommon/react/nativemodule/core/ReactCommon/CxxTurboModuleUtils.h +67 -0
  1061. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.cpp +25 -0
  1062. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +7 -0
  1063. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +28 -52
  1064. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +9 -2
  1065. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +1 -0
  1066. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +207 -157
  1067. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +2 -2
  1068. package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +5 -2
  1069. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.h +1 -1
  1070. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +4 -4
  1071. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTRuntimeExecutor.h +30 -0
  1072. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTRuntimeExecutor.mm +34 -0
  1073. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +12 -3
  1074. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +227 -199
  1075. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.h +11 -0
  1076. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +38 -18
  1077. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +88 -0
  1078. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +54 -0
  1079. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +5 -3
  1080. package/ReactCommon/react/nativemodule/samples/platform/android/CMakeLists.txt +0 -1
  1081. package/ReactCommon/react/nativemodule/samples/platform/android/SampleTurboModule.java +2 -1
  1082. package/ReactCommon/react/renderer/animations/CMakeLists.txt +1 -2
  1083. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +0 -39
  1084. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +0 -3
  1085. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +2 -0
  1086. package/ReactCommon/react/renderer/attributedstring/CMakeLists.txt +1 -2
  1087. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +9 -0
  1088. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +4 -3
  1089. package/ReactCommon/react/renderer/attributedstring/conversions.h +44 -37
  1090. package/ReactCommon/react/renderer/attributedstring/primitives.h +0 -86
  1091. package/ReactCommon/react/renderer/componentregistry/CMakeLists.txt +2 -1
  1092. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +16 -30
  1093. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.h +0 -7
  1094. package/ReactCommon/react/renderer/componentregistry/native/CMakeLists.txt +1 -2
  1095. package/ReactCommon/react/renderer/components/image/CMakeLists.txt +0 -1
  1096. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/CMakeLists.txt +0 -1
  1097. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.h +1 -6
  1098. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm +6 -34
  1099. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticComponentDescriptor.cpp +26 -0
  1100. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticComponentDescriptor.h +35 -0
  1101. package/{ReactAndroid/src/main/jni/react/jni/OnLoad.h → ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.cpp} +2 -5
  1102. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.h +22 -0
  1103. package/ReactCommon/react/renderer/components/modal/CMakeLists.txt +0 -1
  1104. package/ReactCommon/react/renderer/components/progressbar/CMakeLists.txt +0 -1
  1105. package/ReactCommon/react/renderer/components/root/CMakeLists.txt +1 -2
  1106. package/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt +1 -2
  1107. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.cpp +8 -0
  1108. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +1 -0
  1109. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +18 -0
  1110. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +2 -0
  1111. package/ReactCommon/react/renderer/components/switch/CMakeLists.txt +0 -1
  1112. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +8 -0
  1113. package/ReactCommon/react/renderer/components/text/BaseTextShadowNode.cpp +2 -3
  1114. package/ReactCommon/react/renderer/components/text/CMakeLists.txt +1 -2
  1115. package/ReactCommon/react/renderer/components/text/ParagraphLayoutManager.cpp +5 -2
  1116. package/ReactCommon/react/renderer/components/text/ParagraphLayoutManager.h +3 -1
  1117. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +25 -14
  1118. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h +0 -1
  1119. package/ReactCommon/react/renderer/components/text/RawTextShadowNode.h +0 -8
  1120. package/ReactCommon/react/renderer/components/text/TextShadowNode.h +0 -7
  1121. package/ReactCommon/react/renderer/components/textinput/CMakeLists.txt +3 -4
  1122. package/ReactCommon/react/renderer/components/textinput/{androidtextinput → platform/android}/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +22 -28
  1123. package/ReactCommon/react/renderer/components/textinput/{androidtextinput → platform/android}/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +18 -28
  1124. package/ReactCommon/react/renderer/components/textinput/{androidtextinput → platform/android}/react/renderer/components/androidtextinput/AndroidTextInputProps.h +1 -2
  1125. package/ReactCommon/react/renderer/components/textinput/{androidtextinput → platform/android}/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +5 -1
  1126. package/ReactCommon/react/renderer/components/textinput/{androidtextinput → platform/android}/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +0 -1
  1127. package/ReactCommon/react/renderer/components/textinput/{androidtextinput → platform/android}/react/renderer/components/androidtextinput/AndroidTextInputState.cpp +4 -7
  1128. package/ReactCommon/react/renderer/components/textinput/{androidtextinput → platform/android}/react/renderer/components/androidtextinput/AndroidTextInputState.h +2 -5
  1129. package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/TextInputProps.cpp +6 -0
  1130. package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/TextInputProps.h +1 -0
  1131. package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/TextInputShadowNode.cpp +9 -2
  1132. package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/TextInputShadowNode.h +0 -1
  1133. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputState.cpp +10 -0
  1134. package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/TextInputState.h +0 -16
  1135. package/ReactCommon/react/renderer/components/unimplementedview/CMakeLists.txt +1 -2
  1136. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +4 -4
  1137. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h +1 -1
  1138. package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +1 -17
  1139. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +1 -6
  1140. package/ReactCommon/react/renderer/components/view/BaseViewEventEmitter.cpp +31 -37
  1141. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +48 -21
  1142. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +2 -0
  1143. package/ReactCommon/react/renderer/components/view/CMakeLists.txt +0 -1
  1144. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +11 -3
  1145. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +0 -6
  1146. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +182 -198
  1147. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +4 -9
  1148. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +686 -309
  1149. package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +16 -26
  1150. package/ReactCommon/react/renderer/components/view/conversions.h +79 -144
  1151. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +0 -3
  1152. package/ReactCommon/react/renderer/components/view/primitives.h +2 -0
  1153. package/ReactCommon/react/renderer/components/view/propsConversions.h +0 -319
  1154. package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +26 -26
  1155. package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +4 -4
  1156. package/ReactCommon/react/renderer/core/CMakeLists.txt +2 -2
  1157. package/ReactCommon/react/renderer/core/ComponentDescriptor.h +2 -10
  1158. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +11 -13
  1159. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +3 -2
  1160. package/ReactCommon/react/renderer/core/ConcreteState.h +1 -6
  1161. package/ReactCommon/react/renderer/core/EventEmitter.h +0 -7
  1162. package/ReactCommon/react/renderer/core/EventLogger.h +2 -2
  1163. package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +4 -11
  1164. package/ReactCommon/react/renderer/core/LayoutMetrics.h +4 -21
  1165. package/ReactCommon/react/renderer/core/LayoutPrimitives.h +6 -17
  1166. package/ReactCommon/react/renderer/core/LayoutableShadowNode.cpp +8 -19
  1167. package/ReactCommon/react/renderer/core/LayoutableShadowNode.h +0 -3
  1168. package/ReactCommon/react/renderer/core/Props.cpp +0 -23
  1169. package/ReactCommon/react/renderer/core/Props.h +3 -4
  1170. package/ReactCommon/react/renderer/core/PropsMacros.h +4 -2
  1171. package/ReactCommon/react/renderer/core/PropsParserContext.h +0 -6
  1172. package/ReactCommon/react/renderer/core/RawProps.cpp +121 -5
  1173. package/ReactCommon/react/renderer/core/RawProps.h +30 -14
  1174. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +7 -8
  1175. package/ReactCommon/react/renderer/core/RawPropsParser.h +1 -1
  1176. package/ReactCommon/react/renderer/core/RawPropsPrimitives.h +0 -1
  1177. package/ReactCommon/react/renderer/core/ShadowNode.cpp +1 -1
  1178. package/ReactCommon/react/renderer/core/ShadowNodeFamily.cpp +2 -2
  1179. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +2 -4
  1180. package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +10 -31
  1181. package/ReactCommon/react/renderer/core/graphicsConversions.h +2 -23
  1182. package/ReactCommon/react/renderer/core/propsConversions.h +2 -4
  1183. package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +9 -6
  1184. package/ReactCommon/react/renderer/core/tests/EventTargetTests.cpp +43 -0
  1185. package/ReactCommon/react/renderer/core/tests/FindNodeAtPointTest.cpp +1 -1
  1186. package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +155 -26
  1187. package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +40 -64
  1188. package/ReactCommon/react/renderer/css/CSSDeclaredStyle.h +108 -0
  1189. package/ReactCommon/react/renderer/css/CSSKeywords.h +458 -0
  1190. package/ReactCommon/react/renderer/css/CSSLengthUnit.h +165 -0
  1191. package/ReactCommon/react/renderer/css/CSSParser.h +220 -0
  1192. package/ReactCommon/react/renderer/css/CSSProperties.h +1087 -0
  1193. package/ReactCommon/react/renderer/css/CSSTokenizer.h +263 -0
  1194. package/ReactCommon/react/renderer/css/CSSValue.h +277 -0
  1195. package/ReactCommon/react/renderer/css/tests/CSSDeclaredStyleTest.cpp +151 -0
  1196. package/ReactCommon/react/renderer/css/tests/CSSParserTest.cpp +317 -0
  1197. package/ReactCommon/react/renderer/css/tests/CSSTokenizerTest.cpp +154 -0
  1198. package/ReactCommon/react/renderer/debug/CMakeLists.txt +0 -1
  1199. package/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +4 -3
  1200. package/ReactCommon/react/renderer/debug/flags.h +0 -4
  1201. package/ReactCommon/react/renderer/element/CMakeLists.txt +0 -1
  1202. package/ReactCommon/react/renderer/graphics/CMakeLists.txt +0 -1
  1203. package/ReactCommon/react/renderer/graphics/Color.h +9 -7
  1204. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +10 -3
  1205. package/ReactCommon/react/renderer/graphics/fromRawValueShared.h +50 -0
  1206. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +18 -7
  1207. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h +16 -4
  1208. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.h +55 -15
  1209. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.mm +132 -0
  1210. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/PlatformColorParser.h +15 -17
  1211. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/PlatformColorParser.mm +73 -0
  1212. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/RCTPlatformColorUtils.h +8 -2
  1213. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/RCTPlatformColorUtils.mm +14 -3
  1214. package/ReactCommon/react/renderer/imagemanager/CMakeLists.txt +0 -1
  1215. package/ReactCommon/react/renderer/imagemanager/ImageManager.h +6 -4
  1216. package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +1 -1
  1217. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h +4 -3
  1218. package/ReactCommon/react/renderer/leakchecker/CMakeLists.txt +1 -2
  1219. package/ReactCommon/react/renderer/mapbuffer/CMakeLists.txt +0 -1
  1220. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp +4 -4
  1221. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h +2 -0
  1222. package/ReactCommon/react/renderer/mounting/CMakeLists.txt +1 -2
  1223. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +37 -27
  1224. package/ReactCommon/react/renderer/mounting/Differentiator.h +1 -1
  1225. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +4 -4
  1226. package/ReactCommon/react/renderer/mounting/ShadowView.cpp +1 -2
  1227. package/ReactCommon/react/renderer/mounting/stubs.cpp +2 -2
  1228. package/ReactCommon/react/renderer/mounting/tests/OrderIndexTest.cpp +244 -0
  1229. package/ReactCommon/react/renderer/mounting/tests/StackingContextTest.cpp +18 -16
  1230. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +1 -2
  1231. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +37 -21
  1232. package/ReactCommon/react/renderer/observers/mutation/MutationObserver.cpp +3 -3
  1233. package/ReactCommon/react/renderer/observers/mutation/MutationObserver.h +3 -3
  1234. package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.cpp +2 -2
  1235. package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.h +2 -2
  1236. package/ReactCommon/react/renderer/runtimescheduler/CMakeLists.txt +3 -2
  1237. package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +4 -2
  1238. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +37 -136
  1239. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +46 -60
  1240. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +2 -2
  1241. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +3 -2
  1242. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +215 -0
  1243. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.h +164 -0
  1244. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +342 -0
  1245. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.h +196 -0
  1246. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +1 -1
  1247. package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +2 -2
  1248. package/ReactCommon/react/renderer/runtimescheduler/Task.h +6 -4
  1249. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -20
  1250. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +435 -26
  1251. package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +1 -3
  1252. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +21 -79
  1253. package/ReactCommon/react/renderer/scheduler/Scheduler.h +0 -4
  1254. package/ReactCommon/react/renderer/telemetry/CMakeLists.txt +1 -2
  1255. package/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt +1 -2
  1256. package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutContext.h +40 -0
  1257. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +8 -11
  1258. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +19 -16
  1259. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h +2 -0
  1260. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.cpp +1 -0
  1261. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.h +7 -3
  1262. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +51 -36
  1263. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +1 -1
  1264. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextPrimitivesConversions.h +4 -19
  1265. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.h +2 -0
  1266. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +1 -0
  1267. package/ReactCommon/react/renderer/uimanager/CMakeLists.txt +1 -2
  1268. package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.cpp +191 -52
  1269. package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.h +34 -6
  1270. package/ReactCommon/react/renderer/uimanager/PointerHoverTracker.cpp +150 -0
  1271. package/ReactCommon/react/renderer/uimanager/PointerHoverTracker.h +71 -0
  1272. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +67 -20
  1273. package/ReactCommon/react/renderer/uimanager/UIManager.h +10 -7
  1274. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +0 -8
  1275. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +115 -92
  1276. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +1 -1
  1277. package/ReactCommon/react/renderer/uimanager/primitives.h +36 -56
  1278. package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +401 -0
  1279. package/ReactCommon/react/runtime/BridgelessJSCallInvoker.cpp +2 -1
  1280. package/ReactCommon/react/runtime/BridgelessJSCallInvoker.h +1 -1
  1281. package/ReactCommon/react/runtime/BridgelessNativeMethodCallInvoker.cpp +1 -1
  1282. package/ReactCommon/react/runtime/BridgelessNativeMethodCallInvoker.h +3 -2
  1283. package/ReactCommon/react/runtime/CMakeLists.txt +5 -0
  1284. package/ReactCommon/react/runtime/JSRuntimeFactory.cpp +33 -0
  1285. package/ReactCommon/react/runtime/JSRuntimeFactory.h +58 -0
  1286. package/ReactCommon/react/runtime/React-RuntimeCore.podspec +8 -3
  1287. package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +9 -4
  1288. package/ReactCommon/react/runtime/ReactInstance.cpp +39 -72
  1289. package/ReactCommon/react/runtime/ReactInstance.h +19 -4
  1290. package/ReactCommon/react/runtime/TimerManager.cpp +2 -1
  1291. package/ReactCommon/react/runtime/TimerManager.h +1 -1
  1292. package/ReactCommon/react/runtime/hermes/CMakeLists.txt +3 -0
  1293. package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +62 -10
  1294. package/ReactCommon/react/runtime/hermes/HermesInstance.h +2 -1
  1295. package/ReactCommon/react/runtime/iostests/RCTHostTests.mm +3 -2
  1296. package/ReactCommon/react/runtime/nativeviewconfig/LegacyUIManagerConstantsProviderBinding.cpp +34 -3
  1297. package/ReactCommon/react/runtime/nativeviewconfig/LegacyUIManagerConstantsProviderBinding.h +8 -1
  1298. package/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +4 -2
  1299. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.h +3 -3
  1300. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.mm +1 -1
  1301. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost+Internal.h +0 -2
  1302. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +18 -5
  1303. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +111 -17
  1304. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h +6 -3
  1305. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +81 -21
  1306. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTJscInstance.h +3 -3
  1307. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTJscInstance.mm +2 -3
  1308. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTLegacyUIManagerConstantsProvider.mm +1 -1
  1309. package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +3 -2
  1310. package/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.h +1 -1
  1311. package/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.mm +7 -3
  1312. package/ReactCommon/react/utils/CMakeLists.txt +1 -1
  1313. package/ReactCommon/react/utils/CoreFeatures.cpp +1 -7
  1314. package/ReactCommon/react/utils/CoreFeatures.h +4 -26
  1315. package/ReactCommon/react/utils/PackTraits.h +31 -0
  1316. package/ReactCommon/react/utils/React-utils.podspec +10 -2
  1317. package/ReactCommon/react/utils/fnv1a.h +41 -0
  1318. package/ReactCommon/react/utils/hash_combine.h +8 -6
  1319. package/ReactCommon/react/utils/jsi.cpp +39 -0
  1320. package/ReactCommon/react/utils/jsi.h +31 -0
  1321. package/ReactCommon/react/utils/tests/fnv1aTests.cpp +24 -0
  1322. package/ReactCommon/react/{renderer/components/view/platform/android/react/renderer/components/view/YogaStylablePropsMapBuffer.h → utils/to_underlying.h} +8 -8
  1323. package/ReactCommon/reactperflogger/CMakeLists.txt +1 -2
  1324. package/ReactCommon/reactperflogger/React-perflogger.podspec +3 -2
  1325. package/ReactCommon/runtimeexecutor/CMakeLists.txt +1 -2
  1326. package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +3 -2
  1327. package/ReactCommon/yoga/Yoga.podspec +4 -4
  1328. package/ReactCommon/yoga/cmake/project-defaults.cmake +1 -1
  1329. package/ReactCommon/yoga/yoga/YGConfig.cpp +92 -0
  1330. package/ReactCommon/yoga/yoga/YGConfig.h +158 -0
  1331. package/ReactCommon/yoga/yoga/YGEnums.cpp +6 -14
  1332. package/ReactCommon/yoga/yoga/YGEnums.h +20 -25
  1333. package/ReactCommon/yoga/yoga/YGMacros.h +4 -38
  1334. package/ReactCommon/yoga/yoga/YGNode.cpp +366 -0
  1335. package/ReactCommon/yoga/yoga/YGNode.h +304 -0
  1336. package/ReactCommon/yoga/yoga/YGNodeLayout.cpp +92 -0
  1337. package/ReactCommon/yoga/yoga/YGNodeLayout.h +35 -0
  1338. package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +385 -0
  1339. package/ReactCommon/yoga/yoga/YGNodeStyle.h +123 -0
  1340. package/ReactCommon/yoga/yoga/YGPixelGrid.cpp +22 -0
  1341. package/ReactCommon/yoga/yoga/YGPixelGrid.h +29 -0
  1342. package/ReactCommon/yoga/yoga/YGValue.cpp +8 -0
  1343. package/ReactCommon/yoga/yoga/YGValue.h +33 -8
  1344. package/ReactCommon/yoga/yoga/Yoga.h +8 -314
  1345. package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +598 -0
  1346. package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.h +40 -0
  1347. package/ReactCommon/yoga/yoga/algorithm/Align.h +4 -4
  1348. package/ReactCommon/yoga/yoga/algorithm/Baseline.cpp +9 -9
  1349. package/ReactCommon/yoga/yoga/algorithm/BoundAxis.h +11 -12
  1350. package/ReactCommon/yoga/yoga/algorithm/Cache.cpp +35 -35
  1351. package/ReactCommon/yoga/yoga/algorithm/Cache.h +5 -5
  1352. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +605 -986
  1353. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.h +17 -0
  1354. package/ReactCommon/yoga/yoga/algorithm/FlexDirection.h +41 -15
  1355. package/ReactCommon/yoga/yoga/algorithm/FlexLine.cpp +13 -7
  1356. package/ReactCommon/yoga/yoga/algorithm/PixelGrid.cpp +8 -8
  1357. package/ReactCommon/yoga/yoga/algorithm/SizingMode.h +73 -0
  1358. package/ReactCommon/yoga/yoga/algorithm/TrailingPosition.h +44 -0
  1359. package/ReactCommon/yoga/yoga/config/Config.cpp +0 -8
  1360. package/ReactCommon/yoga/yoga/config/Config.h +0 -4
  1361. package/ReactCommon/yoga/yoga/debug/AssertFatal.cpp +3 -0
  1362. package/ReactCommon/yoga/yoga/debug/AssertFatal.h +3 -2
  1363. package/ReactCommon/yoga/yoga/enums/Align.h +6 -10
  1364. package/ReactCommon/yoga/yoga/enums/Dimension.h +4 -9
  1365. package/ReactCommon/yoga/yoga/enums/Direction.h +4 -9
  1366. package/ReactCommon/yoga/yoga/enums/Display.h +4 -9
  1367. package/ReactCommon/yoga/yoga/enums/Edge.h +4 -9
  1368. package/ReactCommon/yoga/yoga/enums/Errata.h +4 -12
  1369. package/ReactCommon/yoga/yoga/enums/ExperimentalFeature.h +4 -10
  1370. package/ReactCommon/yoga/yoga/enums/FlexDirection.h +4 -9
  1371. package/ReactCommon/yoga/yoga/enums/Gutter.h +4 -9
  1372. package/ReactCommon/yoga/yoga/enums/Justify.h +4 -9
  1373. package/ReactCommon/yoga/yoga/enums/LogLevel.h +4 -9
  1374. package/ReactCommon/yoga/yoga/enums/MeasureMode.h +4 -9
  1375. package/ReactCommon/yoga/yoga/enums/NodeType.h +4 -9
  1376. package/ReactCommon/yoga/yoga/enums/Overflow.h +4 -9
  1377. package/ReactCommon/yoga/yoga/enums/PhysicalEdge.h +21 -0
  1378. package/ReactCommon/yoga/yoga/enums/PositionType.h +4 -9
  1379. package/ReactCommon/yoga/yoga/enums/Unit.h +4 -9
  1380. package/ReactCommon/yoga/yoga/enums/Wrap.h +4 -9
  1381. package/ReactCommon/yoga/yoga/enums/YogaEnums.h +69 -2
  1382. package/ReactCommon/yoga/yoga/module.modulemap +21 -0
  1383. package/ReactCommon/yoga/yoga/node/CachedMeasurement.h +5 -5
  1384. package/ReactCommon/yoga/yoga/node/LayoutResults.cpp +4 -4
  1385. package/ReactCommon/yoga/yoga/node/LayoutResults.h +55 -22
  1386. package/ReactCommon/yoga/yoga/node/Node.cpp +74 -318
  1387. package/ReactCommon/yoga/yoga/node/Node.h +64 -113
  1388. package/ReactCommon/yoga/yoga/numeric/Comparison.h +33 -43
  1389. package/ReactCommon/yoga/yoga/numeric/FloatOptional.h +30 -14
  1390. package/ReactCommon/yoga/yoga/style/SmallValueBuffer.h +133 -0
  1391. package/ReactCommon/yoga/yoga/style/Style.h +552 -207
  1392. package/ReactCommon/yoga/yoga/style/StyleLength.h +139 -0
  1393. package/ReactCommon/yoga/yoga/style/StyleValueHandle.h +98 -0
  1394. package/ReactCommon/yoga/yoga/style/StyleValuePool.h +127 -0
  1395. package/cli.js +17 -5
  1396. package/flow/jest.js +1 -1
  1397. package/flow/react.js +15 -0
  1398. package/gradle/libs.versions.toml +12 -11
  1399. package/index.js +61 -101
  1400. package/jest/assetFileTransformer.js +1 -1
  1401. package/jest/local-setup.js +0 -5
  1402. package/jest/mockModal.js +2 -1
  1403. package/jest/mockScrollView.js +1 -2
  1404. package/jest/renderer.js +1 -1
  1405. package/jest/setup.js +6 -3
  1406. package/package.json +30 -17
  1407. package/react-native.config.js +29 -1
  1408. package/scripts/cocoapods/codegen.rb +15 -64
  1409. package/scripts/cocoapods/codegen_utils.rb +13 -27
  1410. package/scripts/cocoapods/helpers.rb +11 -0
  1411. package/scripts/cocoapods/jsengine.rb +0 -1
  1412. package/scripts/cocoapods/new_architecture.rb +57 -74
  1413. package/scripts/cocoapods/utils.rb +137 -65
  1414. package/scripts/codegen/codegen-utils.js +14 -0
  1415. package/scripts/codegen/generate-artifacts-executor.js +465 -373
  1416. package/scripts/codegen/generate-specs-cli-executor.js +25 -24
  1417. package/scripts/codegen/templates/RCTModulesConformingToProtocolsProviderH.template +18 -0
  1418. package/scripts/codegen/templates/RCTModulesConformingToProtocolsProviderMM.template +33 -0
  1419. package/scripts/compose-source-maps.js +2 -2
  1420. package/scripts/generate-codegen-artifacts.js +9 -50
  1421. package/scripts/generate-provider-cli.js +2 -11
  1422. package/scripts/generate-specs-cli.js +1 -1
  1423. package/scripts/hermes/hermes-utils.js +32 -16
  1424. package/scripts/hermes/prepare-hermes-for-build.js +1 -1
  1425. package/scripts/react-native-xcode.sh +4 -4
  1426. package/scripts/react_native_pods.rb +30 -148
  1427. package/scripts/react_native_pods_utils/script_phases.rb +0 -2
  1428. package/scripts/react_native_pods_utils/script_phases.sh +2 -2
  1429. package/scripts/xcode/ccache-clang++.sh +14 -0
  1430. package/scripts/xcode/ccache-clang.sh +14 -0
  1431. package/scripts/xcode/ccache.conf +11 -0
  1432. package/sdks/.hermesversion +1 -1
  1433. package/sdks/hermes-engine/hermes-engine.podspec +0 -1
  1434. package/sdks/hermes-engine/utils/build-apple-framework.sh +1 -0
  1435. package/sdks/hermes-engine/utils/build-hermes-xcode.sh +25 -5
  1436. package/sdks/hermes-engine/utils/build-hermesc-xcode.sh +6 -18
  1437. package/sdks/hermes-engine/utils/build-ios-framework.sh +6 -1
  1438. package/sdks/hermes-engine/utils/build-mac-framework.sh +5 -0
  1439. package/sdks/hermes-engine/utils/create-dummy-hermes-xcframework.sh +6 -4
  1440. package/sdks/hermes-engine/utils/replace_hermes_version.js +2 -2
  1441. package/sdks/hermesc/linux64-bin/hermesc +0 -0
  1442. package/sdks/hermesc/osx-bin/hermes +0 -0
  1443. package/sdks/hermesc/osx-bin/hermesc +0 -0
  1444. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  1445. package/settings.gradle.kts +0 -7
  1446. package/{Libraries/Core → src/private/core}/setUpDOM.js +2 -2
  1447. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +42 -0
  1448. package/src/private/featureflags/ReactNativeFeatureFlags.js +140 -0
  1449. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +84 -0
  1450. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +92 -0
  1451. package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
  1452. package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
  1453. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +26 -0
  1454. package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
  1455. package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
  1456. package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
  1457. package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
  1458. package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
  1459. package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
  1460. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +139 -0
  1461. package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
  1462. package/src/private/specs/components/SwitchNativeComponent.js +61 -0
  1463. package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
  1464. package/src/private/specs/modules/NativeAccessibilityInfo.js +33 -0
  1465. package/src/private/specs/modules/NativeAccessibilityManager.js +66 -0
  1466. package/src/private/specs/modules/NativeActionSheetManager.js +54 -0
  1467. package/src/private/specs/modules/NativeAlertManager.js +35 -0
  1468. package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
  1469. package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
  1470. package/src/private/specs/modules/NativeAnimationsDebugModule.js +20 -0
  1471. package/src/private/specs/modules/NativeAppState.js +33 -0
  1472. package/src/private/specs/modules/NativeAppearance.js +36 -0
  1473. package/src/private/specs/modules/NativeBlobModule.js +59 -0
  1474. package/src/private/specs/modules/NativeBugReporting.js +20 -0
  1475. package/src/private/specs/modules/NativeClipboard.js +21 -0
  1476. package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
  1477. package/src/private/specs/modules/NativeDevMenu.js +23 -0
  1478. package/src/private/specs/modules/NativeDevSettings.js +33 -0
  1479. package/src/private/specs/modules/NativeDevToolsSettingsManager.js +24 -0
  1480. package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
  1481. package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
  1482. package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
  1483. package/src/private/specs/modules/NativeExceptionsManager.js +103 -0
  1484. package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
  1485. package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
  1486. package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
  1487. package/src/private/specs/modules/NativeI18nManager.js +28 -0
  1488. package/src/private/specs/modules/NativeImageEditor.js +52 -0
  1489. package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
  1490. package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
  1491. package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
  1492. package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
  1493. package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
  1494. package/src/private/specs/modules/NativeIntersectionObserver.js +41 -0
  1495. package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
  1496. package/src/private/specs/modules/NativeJSCSamplingProfiler.js +19 -0
  1497. package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
  1498. package/src/private/specs/modules/NativeLinkingManager.js +27 -0
  1499. package/src/private/specs/modules/NativeLogBox.js +20 -0
  1500. package/src/private/specs/modules/NativeModalManager.js +21 -0
  1501. package/src/private/specs/modules/NativeMutationObserver.js +58 -0
  1502. package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
  1503. package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
  1504. package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
  1505. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
  1506. package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
  1507. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +107 -0
  1508. package/src/private/specs/modules/NativeRedBox.js +20 -0
  1509. package/src/private/specs/modules/NativeSampleTurboModule.js +53 -0
  1510. package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
  1511. package/src/private/specs/modules/NativeSettingsManager.js +25 -0
  1512. package/src/private/specs/modules/NativeShareModule.js +23 -0
  1513. package/src/private/specs/modules/NativeSoundManager.js +22 -0
  1514. package/src/private/specs/modules/NativeSourceCode.js +36 -0
  1515. package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
  1516. package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
  1517. package/src/private/specs/modules/NativeTVNavigationEventEmitter.js +20 -0
  1518. package/src/private/specs/modules/NativeTiming.js +26 -0
  1519. package/src/private/specs/modules/NativeToastAndroid.js +38 -0
  1520. package/src/private/specs/modules/NativeUIManager.js +118 -0
  1521. package/src/private/specs/modules/NativeVibration.js +24 -0
  1522. package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
  1523. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReactNativeElement.js +6 -6
  1524. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyCharacterData.js +2 -2
  1525. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyElement.js +5 -5
  1526. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyNode.js +19 -10
  1527. package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/DOMRectList.js +1 -1
  1528. package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/DOMRectList.js.flow +1 -1
  1529. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +85 -0
  1530. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +80 -0
  1531. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +161 -0
  1532. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.js +2 -2
  1533. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.cpp +34 -4
  1534. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.h +12 -14
  1535. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.js +3 -2
  1536. package/{Libraries/WebPerformance → src/private/webapis/performance}/Performance.js +2 -2
  1537. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntryReporter.cpp +64 -27
  1538. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntryReporter.h +16 -5
  1539. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEventTiming.js +1 -1
  1540. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceObserver.js +21 -2
  1541. package/{Libraries/WebPerformance → src/private/webapis/performance}/RawPerformanceEntry.js +1 -1
  1542. package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformanceObserver.js +9 -0
  1543. package/src/private/webapis/performance/__tests__/BoundedConsumableBufferTest.cpp +201 -0
  1544. package/src/private/webapis/performance/__tests__/EventCounts-test.js +116 -0
  1545. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +82 -0
  1546. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +108 -0
  1547. package/src/private/webapis/performance/__tests__/Performance-test.js +117 -0
  1548. package/src/private/webapis/performance/__tests__/PerformanceEntryReporterTest.cpp +373 -0
  1549. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +208 -0
  1550. package/template/_gitignore +10 -2
  1551. package/template/android/app/build.gradle +0 -2
  1552. package/template/android/app/src/main/java/com/helloworld/MainApplication.kt +1 -1
  1553. package/template/android/app/src/main/res/drawable/rn_edit_text_material.xml +2 -1
  1554. package/template/android/build.gradle +3 -3
  1555. package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  1556. package/template/android/gradlew +7 -7
  1557. package/template/android/gradlew.bat +10 -10
  1558. package/template/ios/HelloWorld/AppDelegate.mm +2 -2
  1559. package/template/ios/HelloWorld/PrivacyInfo.xcprivacy +38 -0
  1560. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +18 -2
  1561. package/template/ios/Podfile +0 -15
  1562. package/template/metro.config.js +1 -1
  1563. package/template/package.json +6 -6
  1564. package/third-party-podspecs/DoubleConversion.podspec +4 -0
  1565. package/third-party-podspecs/RCT-Folly.podspec +12 -49
  1566. package/third-party-podspecs/fmt.podspec +21 -20
  1567. package/types/index.d.ts +1 -0
  1568. package/types/modules/globals.d.ts +1 -0
  1569. package/Libraries/AppDelegate/RCTLegacyInteropComponents.mm +0 -21
  1570. package/Libraries/Components/Button.flow.js +0 -265
  1571. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -86
  1572. package/Libraries/Components/TV/NativeTVNavigationEventEmitter.js +0 -24
  1573. package/Libraries/Components/Touchable/Touchable.flow.js +0 -284
  1574. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +0 -189
  1575. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +0 -43
  1576. package/Libraries/Image/Image.flow.js +0 -64
  1577. package/Libraries/Inspector/DevtoolsOverlay.js +0 -223
  1578. package/Libraries/Performance/QuickPerformanceLogger.js +0 -142
  1579. package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +0 -58
  1580. package/ReactAndroid/DevExperience.md +0 -23
  1581. package/ReactAndroid/build.gradle +0 -828
  1582. package/ReactAndroid/flipper-integration/build.gradle.kts +0 -64
  1583. package/ReactAndroid/flipper-integration/src/debug/java/com/facebook/react/flipper/ReactNativeFlipper.kt +0 -66
  1584. package/ReactAndroid/flipper-integration/src/release/java/com/facebook/react/flipper/ReactNativeFlipper.kt +0 -23
  1585. package/ReactAndroid/hermes-engine/build.gradle +0 -307
  1586. package/ReactAndroid/src/main/java/com/facebook/react/LazyTurboModuleManagerDelegate.java +0 -104
  1587. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstancePackage.java +0 -32
  1588. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSCJavaScriptExecutor.java +0 -31
  1589. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSCJavaScriptExecutorFactory.java +0 -46
  1590. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCallback.java +0 -22
  1591. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManagerProvider.java +0 -18
  1592. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultBindingsInstaller.kt +0 -18
  1593. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultJSIModulePackage.kt +0 -59
  1594. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/JSException.java +0 -34
  1595. package/ReactAndroid/src/main/java/com/facebook/react/fabric/EmptyReactNativeConfig.java +0 -35
  1596. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +0 -70
  1597. package/ReactAndroid/src/main/java/com/facebook/react/fabric/interop/InteropEvent.java +0 -41
  1598. package/ReactAndroid/src/main/java/com/facebook/react/fabric/interop/InteropEventEmitter.java +0 -65
  1599. package/ReactAndroid/src/main/java/com/facebook/react/runtime/.clang-format +0 -91
  1600. package/ReactAndroid/src/main/java/com/facebook/react/touch/JSResponderHandler.java +0 -73
  1601. package/ReactAndroid/src/main/java/com/facebook/react/touch/ReactHitSlopView.java +0 -26
  1602. package/ReactAndroid/src/main/java/com/facebook/react/touch/ReactInterceptingViewGroup.java +0 -32
  1603. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerAdapter.java +0 -111
  1604. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIConstantsProvider.java +0 -18
  1605. package/ReactAndroid/src/main/java/com/facebook/react/views/traceupdateoverlay/TraceUpdateOverlay.java +0 -70
  1606. package/ReactAndroid/src/main/java/com/facebook/react/views/traceupdateoverlay/TraceUpdateOverlayManager.java +0 -83
  1607. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactMapBufferPropSetter.kt +0 -526
  1608. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactMapBufferViewManager.kt +0 -76
  1609. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManagerWrapper.kt +0 -101
  1610. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaPrintOptions.java +0 -35
  1611. package/ReactAndroid/src/main/jni/react/fabric/viewPropConversions.h +0 -221
  1612. package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapper.cpp +0 -57
  1613. package/ReactAndroid/src/main/jni/third-party/libevent/CMakeLists.txt +0 -42
  1614. package/ReactAndroid/src/main/jni/third-party/libevent/evconfig-private.h +0 -49
  1615. package/ReactAndroid/src/main/jni/third-party/libevent/event-config.h +0 -340
  1616. package/ReactAndroid/src/main/res/devsupport/values-as/strings.xml +0 -6
  1617. package/ReactAndroid/src/main/res/devsupport/values-bs/strings.xml +0 -7
  1618. package/ReactAndroid/src/main/res/devsupport/values-ha/strings.xml +0 -8
  1619. package/ReactAndroid/src/main/res/devsupport/values-in/strings.xml +0 -8
  1620. package/ReactAndroid/src/main/res/devsupport/values-jv/strings.xml +0 -8
  1621. package/ReactAndroid/src/main/res/devsupport/values-ku/strings.xml +0 -6
  1622. package/ReactAndroid/src/main/res/devsupport/values-nb/strings.xml +0 -8
  1623. package/ReactAndroid/src/main/res/devsupport/values-ps/strings.xml +0 -6
  1624. package/ReactAndroid/src/main/res/devsupport/values-qz/strings.xml +0 -6
  1625. package/ReactAndroid/src/main/res/devsupport/values-sn/strings.xml +0 -6
  1626. package/ReactAndroid/src/main/res/devsupport/values-so/strings.xml +0 -6
  1627. package/ReactAndroid/src/main/res/devsupport/values-tg/strings.xml +0 -6
  1628. package/ReactAndroid/src/main/res/devsupport/values-tk/strings.xml +0 -6
  1629. package/ReactAndroid/src/main/res/devsupport/values-tl/strings.xml +0 -7
  1630. package/ReactAndroid/src/main/res/devsupport/values-uz/strings.xml +0 -6
  1631. package/ReactAndroid/src/main/res/devsupport/values-wo/strings.xml +0 -6
  1632. package/ReactAndroid/src/main/res/views/uimanager/values-as/strings.xml +0 -13
  1633. package/ReactAndroid/src/main/res/views/uimanager/values-bs/strings.xml +0 -31
  1634. package/ReactAndroid/src/main/res/views/uimanager/values-ha/strings.xml +0 -31
  1635. package/ReactAndroid/src/main/res/views/uimanager/values-in/strings.xml +0 -29
  1636. package/ReactAndroid/src/main/res/views/uimanager/values-jv/strings.xml +0 -28
  1637. package/ReactAndroid/src/main/res/views/uimanager/values-ku/strings.xml +0 -12
  1638. package/ReactAndroid/src/main/res/views/uimanager/values-nb/strings.xml +0 -31
  1639. package/ReactAndroid/src/main/res/views/uimanager/values-ps/strings.xml +0 -13
  1640. package/ReactAndroid/src/main/res/views/uimanager/values-qz/strings.xml +0 -6
  1641. package/ReactAndroid/src/main/res/views/uimanager/values-sn/strings.xml +0 -6
  1642. package/ReactAndroid/src/main/res/views/uimanager/values-so/strings.xml +0 -12
  1643. package/ReactAndroid/src/main/res/views/uimanager/values-tg/strings.xml +0 -12
  1644. package/ReactAndroid/src/main/res/views/uimanager/values-tk/strings.xml +0 -6
  1645. package/ReactAndroid/src/main/res/views/uimanager/values-tl/strings.xml +0 -14
  1646. package/ReactAndroid/src/main/res/views/uimanager/values-uz/strings.xml +0 -13
  1647. package/ReactAndroid/src/main/res/views/uimanager/values-wo/strings.xml +0 -6
  1648. package/ReactCommon/hermes/inspector-modern/.clang-format +0 -87
  1649. package/ReactCommon/hermes/inspector-modern/AsyncPauseState.h +0 -34
  1650. package/ReactCommon/hermes/inspector-modern/Exceptions.h +0 -60
  1651. package/ReactCommon/hermes/inspector-modern/Inspector.cpp +0 -745
  1652. package/ReactCommon/hermes/inspector-modern/Inspector.h +0 -384
  1653. package/ReactCommon/hermes/inspector-modern/InspectorState.cpp +0 -511
  1654. package/ReactCommon/hermes/inspector-modern/InspectorState.h +0 -412
  1655. package/ReactCommon/hermes/inspector-modern/README.md +0 -113
  1656. package/ReactCommon/hermes/inspector-modern/RuntimeAdapter.cpp +0 -30
  1657. package/ReactCommon/hermes/inspector-modern/RuntimeAdapter.h +0 -76
  1658. package/ReactCommon/hermes/inspector-modern/chrome/Connection.cpp +0 -1667
  1659. package/ReactCommon/hermes/inspector-modern/chrome/Connection.h +0 -68
  1660. package/ReactCommon/hermes/inspector-modern/chrome/MessageConverters.cpp +0 -378
  1661. package/ReactCommon/hermes/inspector-modern/chrome/MessageConverters.h +0 -136
  1662. package/ReactCommon/hermes/inspector-modern/chrome/MessageInterfaces.h +0 -74
  1663. package/ReactCommon/hermes/inspector-modern/chrome/MessageTypes.cpp +0 -1948
  1664. package/ReactCommon/hermes/inspector-modern/chrome/MessageTypes.h +0 -1129
  1665. package/ReactCommon/hermes/inspector-modern/chrome/MessageTypesInlines.h +0 -190
  1666. package/ReactCommon/hermes/inspector-modern/chrome/RemoteObjectsTable.cpp +0 -146
  1667. package/ReactCommon/hermes/inspector-modern/chrome/RemoteObjectsTable.h +0 -124
  1668. package/ReactCommon/hermes/inspector-modern/chrome/cli/main.cpp +0 -275
  1669. package/ReactCommon/hermes/inspector-modern/detail/CallbackOStream.cpp +0 -77
  1670. package/ReactCommon/hermes/inspector-modern/detail/CallbackOStream.h +0 -89
  1671. package/ReactCommon/hermes/inspector-modern/detail/SerialExecutor.cpp +0 -60
  1672. package/ReactCommon/hermes/inspector-modern/detail/SerialExecutor.h +0 -57
  1673. package/ReactCommon/hermes/inspector-modern/detail/Thread.cpp +0 -39
  1674. package/ReactCommon/hermes/inspector-modern/detail/Thread.h +0 -85
  1675. package/ReactCommon/hermes/inspector-modern/docs/GenerateInspectorFSM.sh +0 -7
  1676. package/ReactCommon/hermes/inspector-modern/docs/InspectorFSM.gv +0 -39
  1677. package/ReactCommon/hermes/inspector-modern/docs/InspectorFSM.pdf +0 -0
  1678. package/ReactCommon/hermes/inspector-modern/tools/format +0 -10
  1679. package/ReactCommon/hermes/inspector-modern/tools/message_types.txt +0 -41
  1680. package/ReactCommon/hermes/inspector-modern/tools/run_msggen +0 -32
  1681. package/ReactCommon/hermes/inspector-modern/tools/sandcastle/build_and_test.sh +0 -13
  1682. package/ReactCommon/hermes/inspector-modern/tools/sandcastle/setup.sh +0 -31
  1683. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTBlockGuard.h +0 -24
  1684. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTBlockGuard.mm +0 -28
  1685. package/ReactCommon/react/renderer/components/textinput/iostextinput/react/renderer/components/iostextinput/TextInputState.cpp +0 -32
  1686. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/AccessibilityPropsMapBuffer.cpp +0 -165
  1687. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/AccessibilityPropsMapBuffer.h +0 -35
  1688. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/ViewPropsMapBuffer.cpp +0 -191
  1689. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/ViewPropsMapBuffer.h +0 -51
  1690. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/YogaStylablePropsMapBuffer.cpp +0 -80
  1691. package/ReactCommon/react/renderer/components/view/viewPropConversions.h +0 -214
  1692. package/ReactCommon/react/renderer/core/EventHandler.h +0 -28
  1693. package/ReactCommon/react/renderer/core/PropsParserContext.cpp +0 -27
  1694. package/ReactCommon/react/renderer/core/TraitCast.h +0 -90
  1695. package/ReactCommon/react/renderer/core/tests/traitCastTest.cpp +0 -144
  1696. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequest.cpp +0 -36
  1697. package/ReactCommon/react/renderer/templateprocessor/CMakeLists.txt +0 -33
  1698. package/ReactCommon/react/renderer/templateprocessor/UITemplateProcessor.cpp +0 -153
  1699. package/ReactCommon/react/renderer/templateprocessor/UITemplateProcessor.h +0 -64
  1700. package/ReactCommon/react/renderer/templateprocessor/tests/UITemplateProcessorTest.cpp +0 -170
  1701. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/NSTextStorage+FontScaling.h +0 -20
  1702. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/NSTextStorage+FontScaling.m +0 -117
  1703. package/ReactCommon/react/runtime/JSEngineInstance.h +0 -27
  1704. package/ReactCommon/react/utils/CalledOnceMovableOnlyFunction.h +0 -87
  1705. package/ReactCommon/yoga/yoga/Yoga-internal.h +0 -22
  1706. package/ReactCommon/yoga/yoga/Yoga.cpp +0 -962
  1707. package/ReactCommon/yoga/yoga/algorithm/ResolveValue.h +0 -32
  1708. package/ReactCommon/yoga/yoga/bits/BitCast.h +0 -30
  1709. package/ReactCommon/yoga/yoga/bits/NumericBitfield.h +0 -67
  1710. package/ReactCommon/yoga/yoga/debug/NodeToString.cpp +0 -244
  1711. package/ReactCommon/yoga/yoga/debug/NodeToString.h +0 -29
  1712. package/ReactCommon/yoga/yoga/enums/PrintOptions.h +0 -48
  1713. package/ReactCommon/yoga/yoga/style/CompactValue.h +0 -184
  1714. package/scripts/cocoapods/flipper.rb +0 -107
  1715. package/scripts/codegen/generate-legacy-interop-components.js +0 -129
  1716. /package/Libraries/{RCTRequired/RCTRequired → Required}/RCTRequired.h +0 -0
  1717. /package/Libraries/{RCTRequired → Required}/RCTRequired.podspec +0 -0
  1718. /package/ReactAndroid/src/main/java/com/facebook/react/{turbomodule → internal/turbomodule}/.clang-tidy +0 -0
  1719. /package/ReactCommon/react/renderer/components/textinput/{androidtextinput → platform/android}/react/renderer/components/androidtextinput/AndroidTextInputEventEmitter.h +0 -0
  1720. /package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/TextInputComponentDescriptor.h +0 -0
  1721. /package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/TextInputEventEmitter.cpp +0 -0
  1722. /package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/TextInputEventEmitter.h +0 -0
  1723. /package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/conversions.h +0 -0
  1724. /package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/primitives.h +0 -0
  1725. /package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/propsConversions.h +0 -0
  1726. /package/ReactCommon/react/renderer/imagemanager/{platform/ios/react/renderer/imagemanager/ImageRequest.cpp → ImageRequest.cpp} +0 -0
  1727. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRect.js +0 -0
  1728. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRectReadOnly.js +0 -0
  1729. /package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyText.js +0 -0
  1730. /package/{Libraries/DOM/Nodes/Utilities → src/private/webapis/dom/nodes/utilities}/Traversal.js +0 -0
  1731. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/ArrayLikeUtils.js +0 -0
  1732. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/HTMLCollection.js +0 -0
  1733. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/HTMLCollection.js.flow +0 -0
  1734. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/NodeList.js +0 -0
  1735. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/NodeList.js.flow +0 -0
  1736. /package/{Libraries/WebPerformance → src/private/webapis/performance}/BoundedConsumableBuffer.h +0 -0
  1737. /package/{Libraries/WebPerformance → src/private/webapis/performance}/EventCounts.js +0 -0
  1738. /package/{Libraries/WebPerformance → src/private/webapis/performance}/MemoryInfo.js +0 -0
  1739. /package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.cpp +0 -0
  1740. /package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.h +0 -0
  1741. /package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntry.js +0 -0
  1742. /package/{Libraries/WebPerformance → src/private/webapis/performance}/ReactNativeStartupTiming.js +0 -0
  1743. /package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformance.js +0 -0
@@ -13,6 +13,7 @@
13
13
 
14
14
  #include <yoga/Yoga.h>
15
15
 
16
+ #include <yoga/algorithm/AbsoluteLayout.h>
16
17
  #include <yoga/algorithm/Align.h>
17
18
  #include <yoga/algorithm/Baseline.h>
18
19
  #include <yoga/algorithm/BoundAxis.h>
@@ -21,10 +22,10 @@
21
22
  #include <yoga/algorithm/FlexDirection.h>
22
23
  #include <yoga/algorithm/FlexLine.h>
23
24
  #include <yoga/algorithm/PixelGrid.h>
24
- #include <yoga/algorithm/ResolveValue.h>
25
+ #include <yoga/algorithm/SizingMode.h>
26
+ #include <yoga/algorithm/TrailingPosition.h>
25
27
  #include <yoga/debug/AssertFatal.h>
26
28
  #include <yoga/debug/Log.h>
27
- #include <yoga/debug/NodeToString.h>
28
29
  #include <yoga/event/event.h>
29
30
  #include <yoga/node/Node.h>
30
31
  #include <yoga/numeric/Comparison.h>
@@ -34,87 +35,26 @@ namespace facebook::yoga {
34
35
 
35
36
  std::atomic<uint32_t> gCurrentGenerationCount(0);
36
37
 
37
- bool calculateLayoutInternal(
38
- yoga::Node* const node,
39
- const float availableWidth,
40
- const float availableHeight,
41
- const Direction ownerDirection,
42
- const MeasureMode widthMeasureMode,
43
- const MeasureMode heightMeasureMode,
44
- const float ownerWidth,
45
- const float ownerHeight,
46
- const bool performLayout,
47
- const LayoutPassReason reason,
48
- LayoutData& layoutMarkerData,
49
- const uint32_t depth,
50
- const uint32_t generationCount);
51
-
52
- static inline float dimensionWithMargin(
53
- const yoga::Node* const node,
54
- const FlexDirection axis,
55
- const float widthSize) {
56
- return node->getLayout().measuredDimension(dimension(axis)) +
57
- (node->getLeadingMargin(axis, widthSize) +
58
- node->getTrailingMargin(axis, widthSize))
59
- .unwrap();
60
- }
61
-
62
- static inline bool styleDefinesDimension(
63
- const yoga::Node* const node,
64
- const FlexDirection axis,
65
- const float ownerSize) {
66
- bool isUndefined =
67
- yoga::isUndefined(node->getResolvedDimension(dimension(axis)).value);
68
-
69
- auto resolvedDimension = node->getResolvedDimension(dimension(axis));
70
- return !(
71
- resolvedDimension.unit == YGUnitAuto ||
72
- resolvedDimension.unit == YGUnitUndefined ||
73
- (resolvedDimension.unit == YGUnitPoint && !isUndefined &&
74
- resolvedDimension.value < 0.0f) ||
75
- (resolvedDimension.unit == YGUnitPercent && !isUndefined &&
76
- (resolvedDimension.value < 0.0f || yoga::isUndefined(ownerSize))));
77
- }
78
-
79
- static inline bool isLayoutDimensionDefined(
80
- const yoga::Node* const node,
81
- const FlexDirection axis) {
82
- const float value = node->getLayout().measuredDimension(dimension(axis));
83
- return !yoga::isUndefined(value) && value >= 0.0f;
84
- }
85
-
86
- static void setChildTrailingPosition(
87
- const yoga::Node* const node,
88
- yoga::Node* const child,
89
- const FlexDirection axis) {
90
- const float size = child->getLayout().measuredDimension(dimension(axis));
91
- child->setLayoutPosition(
92
- node->getLayout().measuredDimension(dimension(axis)) - size -
93
- child->getLayout().position[leadingEdge(axis)],
94
- trailingEdge(axis));
95
- }
96
-
97
38
  static void constrainMaxSizeForMode(
98
- const yoga::Node* const node,
99
- const enum FlexDirection axis,
100
- const float ownerAxisSize,
101
- const float ownerWidth,
102
- MeasureMode* mode,
103
- float* size) {
39
+ const yoga::Node* node,
40
+ FlexDirection axis,
41
+ float ownerAxisSize,
42
+ float ownerWidth,
43
+ /*in_out*/ SizingMode* mode,
44
+ /*in_out*/ float* size) {
104
45
  const FloatOptional maxSize =
105
- yoga::resolveValue(
106
- node->getStyle().maxDimension(dimension(axis)), ownerAxisSize) +
107
- FloatOptional(node->getMarginForAxis(axis, ownerWidth));
46
+ node->style().maxDimension(dimension(axis)).resolve(ownerAxisSize) +
47
+ FloatOptional(node->style().computeMarginForAxis(axis, ownerWidth));
108
48
  switch (*mode) {
109
- case MeasureMode::Exactly:
110
- case MeasureMode::AtMost:
49
+ case SizingMode::StretchFit:
50
+ case SizingMode::FitContent:
111
51
  *size = (maxSize.isUndefined() || *size < maxSize.unwrap())
112
52
  ? *size
113
53
  : maxSize.unwrap();
114
54
  break;
115
- case MeasureMode::Undefined:
116
- if (!maxSize.isUndefined()) {
117
- *mode = MeasureMode::AtMost;
55
+ case SizingMode::MaxContent:
56
+ if (maxSize.isDefined()) {
57
+ *mode = SizingMode::FitContent;
118
58
  *size = maxSize.unwrap();
119
59
  }
120
60
  break;
@@ -125,34 +65,34 @@ static void computeFlexBasisForChild(
125
65
  const yoga::Node* const node,
126
66
  yoga::Node* const child,
127
67
  const float width,
128
- const MeasureMode widthMode,
68
+ const SizingMode widthMode,
129
69
  const float height,
130
70
  const float ownerWidth,
131
71
  const float ownerHeight,
132
- const MeasureMode heightMode,
72
+ const SizingMode heightMode,
133
73
  const Direction direction,
134
74
  LayoutData& layoutMarkerData,
135
75
  const uint32_t depth,
136
76
  const uint32_t generationCount) {
137
77
  const FlexDirection mainAxis =
138
- resolveDirection(node->getStyle().flexDirection(), direction);
78
+ resolveDirection(node->style().flexDirection(), direction);
139
79
  const bool isMainAxisRow = isRow(mainAxis);
140
80
  const float mainAxisSize = isMainAxisRow ? width : height;
141
81
  const float mainAxisownerSize = isMainAxisRow ? ownerWidth : ownerHeight;
142
82
 
143
83
  float childWidth;
144
84
  float childHeight;
145
- MeasureMode childWidthMeasureMode;
146
- MeasureMode childHeightMeasureMode;
85
+ SizingMode childWidthSizingMode;
86
+ SizingMode childHeightSizingMode;
147
87
 
148
88
  const FloatOptional resolvedFlexBasis =
149
- yoga::resolveValue(child->resolveFlexBasisPtr(), mainAxisownerSize);
89
+ child->resolveFlexBasisPtr().resolve(mainAxisownerSize);
150
90
  const bool isRowStyleDimDefined =
151
- styleDefinesDimension(child, FlexDirection::Row, ownerWidth);
91
+ child->hasDefiniteLength(Dimension::Width, ownerWidth);
152
92
  const bool isColumnStyleDimDefined =
153
- styleDefinesDimension(child, FlexDirection::Column, ownerHeight);
93
+ child->hasDefiniteLength(Dimension::Height, ownerHeight);
154
94
 
155
- if (!resolvedFlexBasis.isUndefined() && !yoga::isUndefined(mainAxisSize)) {
95
+ if (resolvedFlexBasis.isDefined() && yoga::isDefined(mainAxisSize)) {
156
96
  if (child->getLayout().computedFlexBasis.isUndefined() ||
157
97
  (child->getConfig()->isExperimentalFeatureEnabled(
158
98
  ExperimentalFeature::WebFlexBasis) &&
@@ -168,76 +108,72 @@ static void computeFlexBasisForChild(
168
108
  paddingAndBorderForAxis(child, FlexDirection::Row, ownerWidth));
169
109
 
170
110
  child->setLayoutComputedFlexBasis(yoga::maxOrDefined(
171
- yoga::resolveValue(
172
- child->getResolvedDimension(YGDimensionWidth), ownerWidth),
111
+ child->getResolvedDimension(Dimension::Width).resolve(ownerWidth),
173
112
  paddingAndBorder));
174
113
  } else if (!isMainAxisRow && isColumnStyleDimDefined) {
175
114
  // The height is definite, so use that as the flex basis.
176
115
  const FloatOptional paddingAndBorder = FloatOptional(
177
116
  paddingAndBorderForAxis(child, FlexDirection::Column, ownerWidth));
178
117
  child->setLayoutComputedFlexBasis(yoga::maxOrDefined(
179
- yoga::resolveValue(
180
- child->getResolvedDimension(YGDimensionHeight), ownerHeight),
118
+ child->getResolvedDimension(Dimension::Height).resolve(ownerHeight),
181
119
  paddingAndBorder));
182
120
  } else {
183
121
  // Compute the flex basis and hypothetical main size (i.e. the clamped flex
184
122
  // basis).
185
123
  childWidth = YGUndefined;
186
124
  childHeight = YGUndefined;
187
- childWidthMeasureMode = MeasureMode::Undefined;
188
- childHeightMeasureMode = MeasureMode::Undefined;
125
+ childWidthSizingMode = SizingMode::MaxContent;
126
+ childHeightSizingMode = SizingMode::MaxContent;
189
127
 
190
128
  auto marginRow =
191
- child->getMarginForAxis(FlexDirection::Row, ownerWidth).unwrap();
129
+ child->style().computeMarginForAxis(FlexDirection::Row, ownerWidth);
192
130
  auto marginColumn =
193
- child->getMarginForAxis(FlexDirection::Column, ownerWidth).unwrap();
131
+ child->style().computeMarginForAxis(FlexDirection::Column, ownerWidth);
194
132
 
195
133
  if (isRowStyleDimDefined) {
196
- childWidth =
197
- yoga::resolveValue(
198
- child->getResolvedDimension(YGDimensionWidth), ownerWidth)
199
- .unwrap() +
134
+ childWidth = child->getResolvedDimension(Dimension::Width)
135
+ .resolve(ownerWidth)
136
+ .unwrap() +
200
137
  marginRow;
201
- childWidthMeasureMode = MeasureMode::Exactly;
138
+ childWidthSizingMode = SizingMode::StretchFit;
202
139
  }
203
140
  if (isColumnStyleDimDefined) {
204
- childHeight =
205
- yoga::resolveValue(
206
- child->getResolvedDimension(YGDimensionHeight), ownerHeight)
207
- .unwrap() +
141
+ childHeight = child->getResolvedDimension(Dimension::Height)
142
+ .resolve(ownerHeight)
143
+ .unwrap() +
208
144
  marginColumn;
209
- childHeightMeasureMode = MeasureMode::Exactly;
145
+ childHeightSizingMode = SizingMode::StretchFit;
210
146
  }
211
147
 
212
148
  // The W3C spec doesn't say anything about the 'overflow' property, but all
213
149
  // major browsers appear to implement the following logic.
214
- if ((!isMainAxisRow && node->getStyle().overflow() == Overflow::Scroll) ||
215
- node->getStyle().overflow() != Overflow::Scroll) {
216
- if (yoga::isUndefined(childWidth) && !yoga::isUndefined(width)) {
150
+ if ((!isMainAxisRow && node->style().overflow() == Overflow::Scroll) ||
151
+ node->style().overflow() != Overflow::Scroll) {
152
+ if (yoga::isUndefined(childWidth) && yoga::isDefined(width)) {
217
153
  childWidth = width;
218
- childWidthMeasureMode = MeasureMode::AtMost;
154
+ childWidthSizingMode = SizingMode::FitContent;
219
155
  }
220
156
  }
221
157
 
222
- if ((isMainAxisRow && node->getStyle().overflow() == Overflow::Scroll) ||
223
- node->getStyle().overflow() != Overflow::Scroll) {
224
- if (yoga::isUndefined(childHeight) && !yoga::isUndefined(height)) {
158
+ if ((isMainAxisRow && node->style().overflow() == Overflow::Scroll) ||
159
+ node->style().overflow() != Overflow::Scroll) {
160
+ if (yoga::isUndefined(childHeight) && yoga::isDefined(height)) {
225
161
  childHeight = height;
226
- childHeightMeasureMode = MeasureMode::AtMost;
162
+ childHeightSizingMode = SizingMode::FitContent;
227
163
  }
228
164
  }
229
165
 
230
- const auto& childStyle = child->getStyle();
231
- if (!childStyle.aspectRatio().isUndefined()) {
232
- if (!isMainAxisRow && childWidthMeasureMode == MeasureMode::Exactly) {
166
+ const auto& childStyle = child->style();
167
+ if (childStyle.aspectRatio().isDefined()) {
168
+ if (!isMainAxisRow && childWidthSizingMode == SizingMode::StretchFit) {
233
169
  childHeight = marginColumn +
234
170
  (childWidth - marginRow) / childStyle.aspectRatio().unwrap();
235
- childHeightMeasureMode = MeasureMode::Exactly;
171
+ childHeightSizingMode = SizingMode::StretchFit;
236
172
  } else if (
237
- isMainAxisRow && childHeightMeasureMode == MeasureMode::Exactly) {
173
+ isMainAxisRow && childHeightSizingMode == SizingMode::StretchFit) {
238
174
  childWidth = marginRow +
239
175
  (childHeight - marginColumn) * childStyle.aspectRatio().unwrap();
240
- childWidthMeasureMode = MeasureMode::Exactly;
176
+ childWidthSizingMode = SizingMode::StretchFit;
241
177
  }
242
178
  }
243
179
 
@@ -245,35 +181,35 @@ static void computeFlexBasisForChild(
245
181
  // the cross axis to be measured exactly with the available inner width
246
182
 
247
183
  const bool hasExactWidth =
248
- !yoga::isUndefined(width) && widthMode == MeasureMode::Exactly;
184
+ yoga::isDefined(width) && widthMode == SizingMode::StretchFit;
249
185
  const bool childWidthStretch =
250
186
  resolveChildAlignment(node, child) == Align::Stretch &&
251
- childWidthMeasureMode != MeasureMode::Exactly;
187
+ childWidthSizingMode != SizingMode::StretchFit;
252
188
  if (!isMainAxisRow && !isRowStyleDimDefined && hasExactWidth &&
253
189
  childWidthStretch) {
254
190
  childWidth = width;
255
- childWidthMeasureMode = MeasureMode::Exactly;
256
- if (!childStyle.aspectRatio().isUndefined()) {
191
+ childWidthSizingMode = SizingMode::StretchFit;
192
+ if (childStyle.aspectRatio().isDefined()) {
257
193
  childHeight =
258
194
  (childWidth - marginRow) / childStyle.aspectRatio().unwrap();
259
- childHeightMeasureMode = MeasureMode::Exactly;
195
+ childHeightSizingMode = SizingMode::StretchFit;
260
196
  }
261
197
  }
262
198
 
263
199
  const bool hasExactHeight =
264
- !yoga::isUndefined(height) && heightMode == MeasureMode::Exactly;
200
+ yoga::isDefined(height) && heightMode == SizingMode::StretchFit;
265
201
  const bool childHeightStretch =
266
202
  resolveChildAlignment(node, child) == Align::Stretch &&
267
- childHeightMeasureMode != MeasureMode::Exactly;
203
+ childHeightSizingMode != SizingMode::StretchFit;
268
204
  if (isMainAxisRow && !isColumnStyleDimDefined && hasExactHeight &&
269
205
  childHeightStretch) {
270
206
  childHeight = height;
271
- childHeightMeasureMode = MeasureMode::Exactly;
207
+ childHeightSizingMode = SizingMode::StretchFit;
272
208
 
273
- if (!childStyle.aspectRatio().isUndefined()) {
209
+ if (childStyle.aspectRatio().isDefined()) {
274
210
  childWidth =
275
211
  (childHeight - marginColumn) * childStyle.aspectRatio().unwrap();
276
- childWidthMeasureMode = MeasureMode::Exactly;
212
+ childWidthSizingMode = SizingMode::StretchFit;
277
213
  }
278
214
  }
279
215
 
@@ -282,14 +218,14 @@ static void computeFlexBasisForChild(
282
218
  FlexDirection::Row,
283
219
  ownerWidth,
284
220
  ownerWidth,
285
- &childWidthMeasureMode,
221
+ &childWidthSizingMode,
286
222
  &childWidth);
287
223
  constrainMaxSizeForMode(
288
224
  child,
289
225
  FlexDirection::Column,
290
226
  ownerHeight,
291
227
  ownerWidth,
292
- &childHeightMeasureMode,
228
+ &childHeightSizingMode,
293
229
  &childHeight);
294
230
 
295
231
  // Measure the child
@@ -298,8 +234,8 @@ static void computeFlexBasisForChild(
298
234
  childWidth,
299
235
  childHeight,
300
236
  direction,
301
- childWidthMeasureMode,
302
- childHeightMeasureMode,
237
+ childWidthSizingMode,
238
+ childHeightSizingMode,
303
239
  ownerWidth,
304
240
  ownerHeight,
305
241
  false,
@@ -315,241 +251,12 @@ static void computeFlexBasisForChild(
315
251
  child->setLayoutComputedFlexBasisGeneration(generationCount);
316
252
  }
317
253
 
318
- static void layoutAbsoluteChild(
319
- const yoga::Node* const node,
320
- yoga::Node* const child,
321
- const float width,
322
- const MeasureMode widthMode,
323
- const float height,
324
- const Direction direction,
325
- LayoutData& layoutMarkerData,
326
- const uint32_t depth,
327
- const uint32_t generationCount) {
328
- const FlexDirection mainAxis =
329
- resolveDirection(node->getStyle().flexDirection(), direction);
330
- const FlexDirection crossAxis = resolveCrossDirection(mainAxis, direction);
331
- const bool isMainAxisRow = isRow(mainAxis);
332
-
333
- float childWidth = YGUndefined;
334
- float childHeight = YGUndefined;
335
- MeasureMode childWidthMeasureMode = MeasureMode::Undefined;
336
- MeasureMode childHeightMeasureMode = MeasureMode::Undefined;
337
-
338
- auto marginRow = child->getMarginForAxis(FlexDirection::Row, width).unwrap();
339
- auto marginColumn =
340
- child->getMarginForAxis(FlexDirection::Column, width).unwrap();
341
-
342
- if (styleDefinesDimension(child, FlexDirection::Row, width)) {
343
- childWidth =
344
- yoga::resolveValue(child->getResolvedDimension(YGDimensionWidth), width)
345
- .unwrap() +
346
- marginRow;
347
- } else {
348
- // If the child doesn't have a specified width, compute the width based on
349
- // the left/right offsets if they're defined.
350
- if (child->isLeadingPositionDefined(FlexDirection::Row) &&
351
- child->isTrailingPosDefined(FlexDirection::Row)) {
352
- childWidth = node->getLayout().measuredDimension(YGDimensionWidth) -
353
- (node->getLeadingBorder(FlexDirection::Row) +
354
- node->getTrailingBorder(FlexDirection::Row)) -
355
- (child->getLeadingPosition(FlexDirection::Row, width) +
356
- child->getTrailingPosition(FlexDirection::Row, width))
357
- .unwrap();
358
- childWidth =
359
- boundAxis(child, FlexDirection::Row, childWidth, width, width);
360
- }
361
- }
362
-
363
- if (styleDefinesDimension(child, FlexDirection::Column, height)) {
364
- childHeight = yoga::resolveValue(
365
- child->getResolvedDimension(YGDimensionHeight), height)
366
- .unwrap() +
367
- marginColumn;
368
- } else {
369
- // If the child doesn't have a specified height, compute the height based on
370
- // the top/bottom offsets if they're defined.
371
- if (child->isLeadingPositionDefined(FlexDirection::Column) &&
372
- child->isTrailingPosDefined(FlexDirection::Column)) {
373
- childHeight = node->getLayout().measuredDimension(YGDimensionHeight) -
374
- (node->getLeadingBorder(FlexDirection::Column) +
375
- node->getTrailingBorder(FlexDirection::Column)) -
376
- (child->getLeadingPosition(FlexDirection::Column, height) +
377
- child->getTrailingPosition(FlexDirection::Column, height))
378
- .unwrap();
379
- childHeight =
380
- boundAxis(child, FlexDirection::Column, childHeight, height, width);
381
- }
382
- }
383
-
384
- // Exactly one dimension needs to be defined for us to be able to do aspect
385
- // ratio calculation. One dimension being the anchor and the other being
386
- // flexible.
387
- const auto& childStyle = child->getStyle();
388
- if (yoga::isUndefined(childWidth) ^ yoga::isUndefined(childHeight)) {
389
- if (!childStyle.aspectRatio().isUndefined()) {
390
- if (yoga::isUndefined(childWidth)) {
391
- childWidth = marginRow +
392
- (childHeight - marginColumn) * childStyle.aspectRatio().unwrap();
393
- } else if (yoga::isUndefined(childHeight)) {
394
- childHeight = marginColumn +
395
- (childWidth - marginRow) / childStyle.aspectRatio().unwrap();
396
- }
397
- }
398
- }
399
-
400
- // If we're still missing one or the other dimension, measure the content.
401
- if (yoga::isUndefined(childWidth) || yoga::isUndefined(childHeight)) {
402
- childWidthMeasureMode = yoga::isUndefined(childWidth)
403
- ? MeasureMode::Undefined
404
- : MeasureMode::Exactly;
405
- childHeightMeasureMode = yoga::isUndefined(childHeight)
406
- ? MeasureMode::Undefined
407
- : MeasureMode::Exactly;
408
-
409
- // If the size of the owner is defined then try to constrain the absolute
410
- // child to that size as well. This allows text within the absolute child to
411
- // wrap to the size of its owner. This is the same behavior as many browsers
412
- // implement.
413
- if (!isMainAxisRow && yoga::isUndefined(childWidth) &&
414
- widthMode != MeasureMode::Undefined && !yoga::isUndefined(width) &&
415
- width > 0) {
416
- childWidth = width;
417
- childWidthMeasureMode = MeasureMode::AtMost;
418
- }
419
-
420
- calculateLayoutInternal(
421
- child,
422
- childWidth,
423
- childHeight,
424
- direction,
425
- childWidthMeasureMode,
426
- childHeightMeasureMode,
427
- childWidth,
428
- childHeight,
429
- false,
430
- LayoutPassReason::kAbsMeasureChild,
431
- layoutMarkerData,
432
- depth,
433
- generationCount);
434
- childWidth = child->getLayout().measuredDimension(YGDimensionWidth) +
435
- child->getMarginForAxis(FlexDirection::Row, width).unwrap();
436
- childHeight = child->getLayout().measuredDimension(YGDimensionHeight) +
437
- child->getMarginForAxis(FlexDirection::Column, width).unwrap();
438
- }
439
-
440
- calculateLayoutInternal(
441
- child,
442
- childWidth,
443
- childHeight,
444
- direction,
445
- MeasureMode::Exactly,
446
- MeasureMode::Exactly,
447
- childWidth,
448
- childHeight,
449
- true,
450
- LayoutPassReason::kAbsLayout,
451
- layoutMarkerData,
452
- depth,
453
- generationCount);
454
-
455
- if (child->isTrailingPosDefined(mainAxis) &&
456
- !child->isLeadingPositionDefined(mainAxis)) {
457
- child->setLayoutPosition(
458
- node->getLayout().measuredDimension(dimension(mainAxis)) -
459
- child->getLayout().measuredDimension(dimension(mainAxis)) -
460
- node->getTrailingBorder(mainAxis) -
461
- child->getTrailingMargin(mainAxis, isMainAxisRow ? width : height)
462
- .unwrap() -
463
- child->getTrailingPosition(mainAxis, isMainAxisRow ? width : height)
464
- .unwrap(),
465
- leadingEdge(mainAxis));
466
- } else if (
467
- !child->isLeadingPositionDefined(mainAxis) &&
468
- node->getStyle().justifyContent() == Justify::Center) {
469
- child->setLayoutPosition(
470
- (node->getLayout().measuredDimension(dimension(mainAxis)) -
471
- child->getLayout().measuredDimension(dimension(mainAxis))) /
472
- 2.0f,
473
- leadingEdge(mainAxis));
474
- } else if (
475
- !child->isLeadingPositionDefined(mainAxis) &&
476
- node->getStyle().justifyContent() == Justify::FlexEnd) {
477
- child->setLayoutPosition(
478
- (node->getLayout().measuredDimension(dimension(mainAxis)) -
479
- child->getLayout().measuredDimension(dimension(mainAxis))),
480
- leadingEdge(mainAxis));
481
- } else if (
482
- node->getConfig()->isExperimentalFeatureEnabled(
483
- ExperimentalFeature::AbsolutePercentageAgainstPaddingEdge) &&
484
- child->isLeadingPositionDefined(mainAxis)) {
485
- child->setLayoutPosition(
486
- child->getLeadingPosition(
487
- mainAxis,
488
- node->getLayout().measuredDimension(dimension(mainAxis)))
489
- .unwrap() +
490
- node->getLeadingBorder(mainAxis) +
491
- child
492
- ->getLeadingMargin(
493
- mainAxis,
494
- node->getLayout().measuredDimension(dimension(mainAxis)))
495
- .unwrap(),
496
- leadingEdge(mainAxis));
497
- }
498
-
499
- if (child->isTrailingPosDefined(crossAxis) &&
500
- !child->isLeadingPositionDefined(crossAxis)) {
501
- child->setLayoutPosition(
502
- node->getLayout().measuredDimension(dimension(crossAxis)) -
503
- child->getLayout().measuredDimension(dimension(crossAxis)) -
504
- node->getTrailingBorder(crossAxis) -
505
- child->getTrailingMargin(crossAxis, isMainAxisRow ? height : width)
506
- .unwrap() -
507
- child
508
- ->getTrailingPosition(crossAxis, isMainAxisRow ? height : width)
509
- .unwrap(),
510
- leadingEdge(crossAxis));
511
-
512
- } else if (
513
- !child->isLeadingPositionDefined(crossAxis) &&
514
- resolveChildAlignment(node, child) == Align::Center) {
515
- child->setLayoutPosition(
516
- (node->getLayout().measuredDimension(dimension(crossAxis)) -
517
- child->getLayout().measuredDimension(dimension(crossAxis))) /
518
- 2.0f,
519
- leadingEdge(crossAxis));
520
- } else if (
521
- !child->isLeadingPositionDefined(crossAxis) &&
522
- ((resolveChildAlignment(node, child) == Align::FlexEnd) ^
523
- (node->getStyle().flexWrap() == Wrap::WrapReverse))) {
524
- child->setLayoutPosition(
525
- (node->getLayout().measuredDimension(dimension(crossAxis)) -
526
- child->getLayout().measuredDimension(dimension(crossAxis))),
527
- leadingEdge(crossAxis));
528
- } else if (
529
- node->getConfig()->isExperimentalFeatureEnabled(
530
- ExperimentalFeature::AbsolutePercentageAgainstPaddingEdge) &&
531
- child->isLeadingPositionDefined(crossAxis)) {
532
- child->setLayoutPosition(
533
- child->getLeadingPosition(
534
- crossAxis,
535
- node->getLayout().measuredDimension(dimension(crossAxis)))
536
- .unwrap() +
537
- node->getLeadingBorder(crossAxis) +
538
- child
539
- ->getLeadingMargin(
540
- crossAxis,
541
- node->getLayout().measuredDimension(dimension(crossAxis)))
542
- .unwrap(),
543
- leadingEdge(crossAxis));
544
- }
545
- }
546
-
547
254
  static void measureNodeWithMeasureFunc(
548
255
  yoga::Node* const node,
549
256
  float availableWidth,
550
257
  float availableHeight,
551
- const MeasureMode widthMeasureMode,
552
- const MeasureMode heightMeasureMode,
258
+ const SizingMode widthSizingMode,
259
+ const SizingMode heightSizingMode,
553
260
  const float ownerWidth,
554
261
  const float ownerHeight,
555
262
  LayoutData& layoutMarkerData,
@@ -559,35 +266,36 @@ static void measureNodeWithMeasureFunc(
559
266
  node->hasMeasureFunc(),
560
267
  "Expected node to have custom measure function");
561
268
 
562
- if (widthMeasureMode == MeasureMode::Undefined) {
269
+ if (widthSizingMode == SizingMode::MaxContent) {
563
270
  availableWidth = YGUndefined;
564
271
  }
565
- if (heightMeasureMode == MeasureMode::Undefined) {
272
+ if (heightSizingMode == SizingMode::MaxContent) {
566
273
  availableHeight = YGUndefined;
567
274
  }
568
275
 
569
- const auto& padding = node->getLayout().padding;
570
- const auto& border = node->getLayout().border;
571
- const float paddingAndBorderAxisRow = padding[YGEdgeLeft] +
572
- padding[YGEdgeRight] + border[YGEdgeLeft] + border[YGEdgeRight];
573
- const float paddingAndBorderAxisColumn = padding[YGEdgeTop] +
574
- padding[YGEdgeBottom] + border[YGEdgeTop] + border[YGEdgeBottom];
276
+ const auto& layout = node->getLayout();
277
+ const float paddingAndBorderAxisRow = layout.padding(PhysicalEdge::Left) +
278
+ layout.padding(PhysicalEdge::Right) + layout.border(PhysicalEdge::Left) +
279
+ layout.border(PhysicalEdge::Right);
280
+ const float paddingAndBorderAxisColumn = layout.padding(PhysicalEdge::Top) +
281
+ layout.padding(PhysicalEdge::Bottom) + layout.border(PhysicalEdge::Top) +
282
+ layout.border(PhysicalEdge::Bottom);
575
283
 
576
284
  // We want to make sure we don't call measure with negative size
577
285
  const float innerWidth = yoga::isUndefined(availableWidth)
578
286
  ? availableWidth
579
- : yoga::maxOrDefined(0, availableWidth - paddingAndBorderAxisRow);
287
+ : yoga::maxOrDefined(0.0f, availableWidth - paddingAndBorderAxisRow);
580
288
  const float innerHeight = yoga::isUndefined(availableHeight)
581
289
  ? availableHeight
582
- : yoga::maxOrDefined(0, availableHeight - paddingAndBorderAxisColumn);
290
+ : yoga::maxOrDefined(0.0f, availableHeight - paddingAndBorderAxisColumn);
583
291
 
584
- if (widthMeasureMode == MeasureMode::Exactly &&
585
- heightMeasureMode == MeasureMode::Exactly) {
292
+ if (widthSizingMode == SizingMode::StretchFit &&
293
+ heightSizingMode == SizingMode::StretchFit) {
586
294
  // Don't bother sizing the text if both dimensions are already defined.
587
295
  node->setLayoutMeasuredDimension(
588
296
  boundAxis(
589
297
  node, FlexDirection::Row, availableWidth, ownerWidth, ownerWidth),
590
- YGDimensionWidth);
298
+ Dimension::Width);
591
299
  node->setLayoutMeasuredDimension(
592
300
  boundAxis(
593
301
  node,
@@ -595,13 +303,16 @@ static void measureNodeWithMeasureFunc(
595
303
  availableHeight,
596
304
  ownerHeight,
597
305
  ownerWidth),
598
- YGDimensionHeight);
306
+ Dimension::Height);
599
307
  } else {
600
308
  Event::publish<Event::MeasureCallbackStart>(node);
601
309
 
602
310
  // Measure the text under the current constraints.
603
311
  const YGSize measuredSize = node->measure(
604
- innerWidth, widthMeasureMode, innerHeight, heightMeasureMode);
312
+ innerWidth,
313
+ measureMode(widthSizingMode),
314
+ innerHeight,
315
+ measureMode(heightSizingMode));
605
316
 
606
317
  layoutMarkerData.measureCallbacks += 1;
607
318
  layoutMarkerData.measureCallbackReasonsCount[static_cast<size_t>(reason)] +=
@@ -610,9 +321,9 @@ static void measureNodeWithMeasureFunc(
610
321
  Event::publish<Event::MeasureCallbackEnd>(
611
322
  node,
612
323
  {innerWidth,
613
- unscopedEnum(widthMeasureMode),
324
+ unscopedEnum(measureMode(widthSizingMode)),
614
325
  innerHeight,
615
- unscopedEnum(heightMeasureMode),
326
+ unscopedEnum(measureMode(heightSizingMode)),
616
327
  measuredSize.width,
617
328
  measuredSize.height,
618
329
  reason});
@@ -621,25 +332,25 @@ static void measureNodeWithMeasureFunc(
621
332
  boundAxis(
622
333
  node,
623
334
  FlexDirection::Row,
624
- (widthMeasureMode == MeasureMode::Undefined ||
625
- widthMeasureMode == MeasureMode::AtMost)
335
+ (widthSizingMode == SizingMode::MaxContent ||
336
+ widthSizingMode == SizingMode::FitContent)
626
337
  ? measuredSize.width + paddingAndBorderAxisRow
627
338
  : availableWidth,
628
339
  ownerWidth,
629
340
  ownerWidth),
630
- YGDimensionWidth);
341
+ Dimension::Width);
631
342
 
632
343
  node->setLayoutMeasuredDimension(
633
344
  boundAxis(
634
345
  node,
635
346
  FlexDirection::Column,
636
- (heightMeasureMode == MeasureMode::Undefined ||
637
- heightMeasureMode == MeasureMode::AtMost)
347
+ (heightSizingMode == SizingMode::MaxContent ||
348
+ heightSizingMode == SizingMode::FitContent)
638
349
  ? measuredSize.height + paddingAndBorderAxisColumn
639
350
  : availableHeight,
640
351
  ownerHeight,
641
352
  ownerWidth),
642
- YGDimensionHeight);
353
+ Dimension::Height);
643
354
  }
644
355
  }
645
356
 
@@ -649,73 +360,74 @@ static void measureNodeWithoutChildren(
649
360
  yoga::Node* const node,
650
361
  const float availableWidth,
651
362
  const float availableHeight,
652
- const MeasureMode widthMeasureMode,
653
- const MeasureMode heightMeasureMode,
363
+ const SizingMode widthSizingMode,
364
+ const SizingMode heightSizingMode,
654
365
  const float ownerWidth,
655
366
  const float ownerHeight) {
656
- const auto& padding = node->getLayout().padding;
657
- const auto& border = node->getLayout().border;
367
+ const auto& layout = node->getLayout();
658
368
 
659
369
  float width = availableWidth;
660
- if (widthMeasureMode == MeasureMode::Undefined ||
661
- widthMeasureMode == MeasureMode::AtMost) {
662
- width = padding[YGEdgeLeft] + padding[YGEdgeRight] + border[YGEdgeLeft] +
663
- border[YGEdgeRight];
370
+ if (widthSizingMode == SizingMode::MaxContent ||
371
+ widthSizingMode == SizingMode::FitContent) {
372
+ width = layout.padding(PhysicalEdge::Left) +
373
+ layout.padding(PhysicalEdge::Right) +
374
+ layout.border(PhysicalEdge::Left) + layout.border(PhysicalEdge::Right);
664
375
  }
665
376
  node->setLayoutMeasuredDimension(
666
377
  boundAxis(node, FlexDirection::Row, width, ownerWidth, ownerWidth),
667
- YGDimensionWidth);
378
+ Dimension::Width);
668
379
 
669
380
  float height = availableHeight;
670
- if (heightMeasureMode == MeasureMode::Undefined ||
671
- heightMeasureMode == MeasureMode::AtMost) {
672
- height = padding[YGEdgeTop] + padding[YGEdgeBottom] + border[YGEdgeTop] +
673
- border[YGEdgeBottom];
381
+ if (heightSizingMode == SizingMode::MaxContent ||
382
+ heightSizingMode == SizingMode::FitContent) {
383
+ height = layout.padding(PhysicalEdge::Top) +
384
+ layout.padding(PhysicalEdge::Bottom) +
385
+ layout.border(PhysicalEdge::Top) + layout.border(PhysicalEdge::Bottom);
674
386
  }
675
387
  node->setLayoutMeasuredDimension(
676
388
  boundAxis(node, FlexDirection::Column, height, ownerHeight, ownerWidth),
677
- YGDimensionHeight);
389
+ Dimension::Height);
678
390
  }
679
391
 
680
392
  static bool measureNodeWithFixedSize(
681
393
  yoga::Node* const node,
682
394
  const float availableWidth,
683
395
  const float availableHeight,
684
- const MeasureMode widthMeasureMode,
685
- const MeasureMode heightMeasureMode,
396
+ const SizingMode widthSizingMode,
397
+ const SizingMode heightSizingMode,
686
398
  const float ownerWidth,
687
399
  const float ownerHeight) {
688
- if ((!yoga::isUndefined(availableWidth) &&
689
- widthMeasureMode == MeasureMode::AtMost && availableWidth <= 0.0f) ||
690
- (!yoga::isUndefined(availableHeight) &&
691
- heightMeasureMode == MeasureMode::AtMost && availableHeight <= 0.0f) ||
692
- (widthMeasureMode == MeasureMode::Exactly &&
693
- heightMeasureMode == MeasureMode::Exactly)) {
400
+ if ((yoga::isDefined(availableWidth) &&
401
+ widthSizingMode == SizingMode::FitContent && availableWidth <= 0.0f) ||
402
+ (yoga::isDefined(availableHeight) &&
403
+ heightSizingMode == SizingMode::FitContent && availableHeight <= 0.0f) ||
404
+ (widthSizingMode == SizingMode::StretchFit &&
405
+ heightSizingMode == SizingMode::StretchFit)) {
694
406
  node->setLayoutMeasuredDimension(
695
407
  boundAxis(
696
408
  node,
697
409
  FlexDirection::Row,
698
410
  yoga::isUndefined(availableWidth) ||
699
- (widthMeasureMode == MeasureMode::AtMost &&
411
+ (widthSizingMode == SizingMode::FitContent &&
700
412
  availableWidth < 0.0f)
701
413
  ? 0.0f
702
414
  : availableWidth,
703
415
  ownerWidth,
704
416
  ownerWidth),
705
- YGDimensionWidth);
417
+ Dimension::Width);
706
418
 
707
419
  node->setLayoutMeasuredDimension(
708
420
  boundAxis(
709
421
  node,
710
422
  FlexDirection::Column,
711
423
  yoga::isUndefined(availableHeight) ||
712
- (heightMeasureMode == MeasureMode::AtMost &&
424
+ (heightSizingMode == SizingMode::FitContent &&
713
425
  availableHeight < 0.0f)
714
426
  ? 0.0f
715
427
  : availableHeight,
716
428
  ownerHeight,
717
429
  ownerWidth),
718
- YGDimensionHeight);
430
+ Dimension::Height);
719
431
  return true;
720
432
  }
721
433
 
@@ -724,8 +436,8 @@ static bool measureNodeWithFixedSize(
724
436
 
725
437
  static void zeroOutLayoutRecursively(yoga::Node* const node) {
726
438
  node->getLayout() = {};
727
- node->setLayoutDimension(0, YGDimensionWidth);
728
- node->setLayoutDimension(0, YGDimensionHeight);
439
+ node->setLayoutDimension(0, Dimension::Width);
440
+ node->setLayoutDimension(0, Dimension::Height);
729
441
  node->setHasNewLayout(true);
730
442
 
731
443
  node->cloneChildrenIfNeeded();
@@ -736,24 +448,24 @@ static void zeroOutLayoutRecursively(yoga::Node* const node) {
736
448
 
737
449
  static float calculateAvailableInnerDimension(
738
450
  const yoga::Node* const node,
739
- const YGDimension dimension,
451
+ const Dimension dimension,
740
452
  const float availableDim,
741
453
  const float paddingAndBorder,
742
454
  const float ownerDim) {
743
455
  float availableInnerDim = availableDim - paddingAndBorder;
744
456
  // Max dimension overrides predefined dimension value; Min dimension in turn
745
457
  // overrides both of the above
746
- if (!yoga::isUndefined(availableInnerDim)) {
458
+ if (yoga::isDefined(availableInnerDim)) {
747
459
  // We want to make sure our available height does not violate min and max
748
460
  // constraints
749
461
  const FloatOptional minDimensionOptional =
750
- yoga::resolveValue(node->getStyle().minDimension(dimension), ownerDim);
462
+ node->style().minDimension(dimension).resolve(ownerDim);
751
463
  const float minInnerDim = minDimensionOptional.isUndefined()
752
464
  ? 0.0f
753
465
  : minDimensionOptional.unwrap() - paddingAndBorder;
754
466
 
755
467
  const FloatOptional maxDimensionOptional =
756
- yoga::resolveValue(node->getStyle().maxDimension(dimension), ownerDim);
468
+ node->style().maxDimension(dimension).resolve(ownerDim);
757
469
 
758
470
  const float maxInnerDim = maxDimensionOptional.isUndefined()
759
471
  ? FLT_MAX
@@ -769,8 +481,8 @@ static float computeFlexBasisForChildren(
769
481
  yoga::Node* const node,
770
482
  const float availableInnerWidth,
771
483
  const float availableInnerHeight,
772
- MeasureMode widthMeasureMode,
773
- MeasureMode heightMeasureMode,
484
+ SizingMode widthSizingMode,
485
+ SizingMode heightSizingMode,
774
486
  Direction direction,
775
487
  FlexDirection mainAxis,
776
488
  bool performLayout,
@@ -780,12 +492,12 @@ static float computeFlexBasisForChildren(
780
492
  float totalOuterFlexBasis = 0.0f;
781
493
  YGNodeRef singleFlexChild = nullptr;
782
494
  const auto& children = node->getChildren();
783
- MeasureMode measureModeMainDim =
784
- isRow(mainAxis) ? widthMeasureMode : heightMeasureMode;
495
+ SizingMode sizingModeMainDim =
496
+ isRow(mainAxis) ? widthSizingMode : heightSizingMode;
785
497
  // If there is only one child with flexGrow + flexShrink it means we can set
786
498
  // the computedFlexBasis to 0 instead of measuring and shrinking / flexing the
787
499
  // child to exactly match the remaining space
788
- if (measureModeMainDim == MeasureMode::Exactly) {
500
+ if (sizingModeMainDim == SizingMode::StretchFit) {
789
501
  for (auto child : children) {
790
502
  if (child->isNodeFlexible()) {
791
503
  if (singleFlexChild != nullptr ||
@@ -804,7 +516,7 @@ static float computeFlexBasisForChildren(
804
516
 
805
517
  for (auto child : children) {
806
518
  child->resolveDimension();
807
- if (child->getStyle().display() == Display::None) {
519
+ if (child->style().display() == Display::None) {
808
520
  zeroOutLayoutRecursively(child);
809
521
  child->setHasNewLayout(true);
810
522
  child->setDirty(false);
@@ -821,7 +533,7 @@ static float computeFlexBasisForChildren(
821
533
  childDirection, mainDim, crossDim, availableInnerWidth);
822
534
  }
823
535
 
824
- if (child->getStyle().positionType() == PositionType::Absolute) {
536
+ if (child->style().positionType() == PositionType::Absolute) {
825
537
  continue;
826
538
  }
827
539
  if (child == singleFlexChild) {
@@ -832,11 +544,11 @@ static float computeFlexBasisForChildren(
832
544
  node,
833
545
  child,
834
546
  availableInnerWidth,
835
- widthMeasureMode,
547
+ widthSizingMode,
836
548
  availableInnerHeight,
837
549
  availableInnerWidth,
838
550
  availableInnerHeight,
839
- heightMeasureMode,
551
+ heightSizingMode,
840
552
  direction,
841
553
  layoutMarkerData,
842
554
  depth,
@@ -844,9 +556,8 @@ static float computeFlexBasisForChildren(
844
556
  }
845
557
 
846
558
  totalOuterFlexBasis +=
847
- (child->getLayout().computedFlexBasis +
848
- child->getMarginForAxis(mainAxis, availableInnerWidth))
849
- .unwrap();
559
+ (child->getLayout().computedFlexBasis.unwrap() +
560
+ child->style().computeMarginForAxis(mainAxis, availableInnerWidth));
850
561
  }
851
562
 
852
563
  return totalOuterFlexBasis;
@@ -861,13 +572,14 @@ static float distributeFreeSpaceSecondPass(
861
572
  yoga::Node* const node,
862
573
  const FlexDirection mainAxis,
863
574
  const FlexDirection crossAxis,
575
+ const Direction direction,
864
576
  const float mainAxisownerSize,
865
577
  const float availableInnerMainDim,
866
578
  const float availableInnerCrossDim,
867
579
  const float availableInnerWidth,
868
580
  const float availableInnerHeight,
869
581
  const bool mainAxisOverflows,
870
- const MeasureMode measureModeCrossDim,
582
+ const SizingMode sizingModeCrossDim,
871
583
  const bool performLayout,
872
584
  LayoutData& layoutMarkerData,
873
585
  const uint32_t depth,
@@ -877,7 +589,7 @@ static float distributeFreeSpaceSecondPass(
877
589
  float flexGrowFactor = 0;
878
590
  float deltaFreeSpace = 0;
879
591
  const bool isMainAxisRow = isRow(mainAxis);
880
- const bool isNodeFlexWrap = node->getStyle().flexWrap() != Wrap::NoWrap;
592
+ const bool isNodeFlexWrap = node->style().flexWrap() != Wrap::NoWrap;
881
593
 
882
594
  for (auto currentLineChild : flexLine.itemsInFlow) {
883
595
  childFlexBasis = boundAxisWithinMinAndMax(
@@ -888,7 +600,7 @@ static float distributeFreeSpaceSecondPass(
888
600
  .unwrap();
889
601
  float updatedMainSize = childFlexBasis;
890
602
 
891
- if (!yoga::isUndefined(flexLine.layout.remainingFreeSpace) &&
603
+ if (yoga::isDefined(flexLine.layout.remainingFreeSpace) &&
892
604
  flexLine.layout.remainingFreeSpace < 0) {
893
605
  flexShrinkScaledFactor =
894
606
  -currentLineChild->resolveFlexShrink() * childFlexBasis;
@@ -896,7 +608,7 @@ static float distributeFreeSpaceSecondPass(
896
608
  if (flexShrinkScaledFactor != 0) {
897
609
  float childSize;
898
610
 
899
- if (!yoga::isUndefined(flexLine.layout.totalFlexShrinkScaledFactors) &&
611
+ if (yoga::isDefined(flexLine.layout.totalFlexShrinkScaledFactors) &&
900
612
  flexLine.layout.totalFlexShrinkScaledFactors == 0) {
901
613
  childSize = childFlexBasis + flexShrinkScaledFactor;
902
614
  } else {
@@ -914,7 +626,7 @@ static float distributeFreeSpaceSecondPass(
914
626
  availableInnerWidth);
915
627
  }
916
628
  } else if (
917
- !yoga::isUndefined(flexLine.layout.remainingFreeSpace) &&
629
+ yoga::isDefined(flexLine.layout.remainingFreeSpace) &&
918
630
  flexLine.layout.remainingFreeSpace > 0) {
919
631
  flexGrowFactor = currentLineChild->resolveFlexGrow();
920
632
 
@@ -933,58 +645,56 @@ static float distributeFreeSpaceSecondPass(
933
645
 
934
646
  deltaFreeSpace += updatedMainSize - childFlexBasis;
935
647
 
936
- const float marginMain =
937
- currentLineChild->getMarginForAxis(mainAxis, availableInnerWidth)
938
- .unwrap();
939
- const float marginCross =
940
- currentLineChild->getMarginForAxis(crossAxis, availableInnerWidth)
941
- .unwrap();
648
+ const float marginMain = currentLineChild->style().computeMarginForAxis(
649
+ mainAxis, availableInnerWidth);
650
+ const float marginCross = currentLineChild->style().computeMarginForAxis(
651
+ crossAxis, availableInnerWidth);
942
652
 
943
653
  float childCrossSize;
944
654
  float childMainSize = updatedMainSize + marginMain;
945
- MeasureMode childCrossMeasureMode;
946
- MeasureMode childMainMeasureMode = MeasureMode::Exactly;
655
+ SizingMode childCrossSizingMode;
656
+ SizingMode childMainSizingMode = SizingMode::StretchFit;
947
657
 
948
- const auto& childStyle = currentLineChild->getStyle();
949
- if (!childStyle.aspectRatio().isUndefined()) {
658
+ const auto& childStyle = currentLineChild->style();
659
+ if (childStyle.aspectRatio().isDefined()) {
950
660
  childCrossSize = isMainAxisRow
951
661
  ? (childMainSize - marginMain) / childStyle.aspectRatio().unwrap()
952
662
  : (childMainSize - marginMain) * childStyle.aspectRatio().unwrap();
953
- childCrossMeasureMode = MeasureMode::Exactly;
663
+ childCrossSizingMode = SizingMode::StretchFit;
954
664
 
955
665
  childCrossSize += marginCross;
956
666
  } else if (
957
667
  !std::isnan(availableInnerCrossDim) &&
958
- !styleDefinesDimension(
959
- currentLineChild, crossAxis, availableInnerCrossDim) &&
960
- measureModeCrossDim == MeasureMode::Exactly &&
668
+ !currentLineChild->hasDefiniteLength(
669
+ dimension(crossAxis), availableInnerCrossDim) &&
670
+ sizingModeCrossDim == SizingMode::StretchFit &&
961
671
  !(isNodeFlexWrap && mainAxisOverflows) &&
962
672
  resolveChildAlignment(node, currentLineChild) == Align::Stretch &&
963
- currentLineChild->marginLeadingValue(crossAxis).unit != YGUnitAuto &&
964
- currentLineChild->marginTrailingValue(crossAxis).unit != YGUnitAuto) {
673
+ !currentLineChild->style().flexStartMarginIsAuto(
674
+ crossAxis, direction) &&
675
+ !currentLineChild->style().flexEndMarginIsAuto(crossAxis, direction)) {
965
676
  childCrossSize = availableInnerCrossDim;
966
- childCrossMeasureMode = MeasureMode::Exactly;
967
- } else if (!styleDefinesDimension(
968
- currentLineChild, crossAxis, availableInnerCrossDim)) {
677
+ childCrossSizingMode = SizingMode::StretchFit;
678
+ } else if (!currentLineChild->hasDefiniteLength(
679
+ dimension(crossAxis), availableInnerCrossDim)) {
969
680
  childCrossSize = availableInnerCrossDim;
970
- childCrossMeasureMode = yoga::isUndefined(childCrossSize)
971
- ? MeasureMode::Undefined
972
- : MeasureMode::AtMost;
681
+ childCrossSizingMode = yoga::isUndefined(childCrossSize)
682
+ ? SizingMode::MaxContent
683
+ : SizingMode::FitContent;
973
684
  } else {
974
685
  childCrossSize =
975
- yoga::resolveValue(
976
- currentLineChild->getResolvedDimension(dimension(crossAxis)),
977
- availableInnerCrossDim)
686
+ currentLineChild->getResolvedDimension(dimension(crossAxis))
687
+ .resolve(availableInnerCrossDim)
978
688
  .unwrap() +
979
689
  marginCross;
980
690
  const bool isLoosePercentageMeasurement =
981
- currentLineChild->getResolvedDimension(dimension(crossAxis)).unit ==
982
- YGUnitPercent &&
983
- measureModeCrossDim != MeasureMode::Exactly;
984
- childCrossMeasureMode =
691
+ currentLineChild->getResolvedDimension(dimension(crossAxis)).unit() ==
692
+ Unit::Percent &&
693
+ sizingModeCrossDim != SizingMode::StretchFit;
694
+ childCrossSizingMode =
985
695
  yoga::isUndefined(childCrossSize) || isLoosePercentageMeasurement
986
- ? MeasureMode::Undefined
987
- : MeasureMode::Exactly;
696
+ ? SizingMode::MaxContent
697
+ : SizingMode::StretchFit;
988
698
  }
989
699
 
990
700
  constrainMaxSizeForMode(
@@ -992,30 +702,31 @@ static float distributeFreeSpaceSecondPass(
992
702
  mainAxis,
993
703
  availableInnerMainDim,
994
704
  availableInnerWidth,
995
- &childMainMeasureMode,
705
+ &childMainSizingMode,
996
706
  &childMainSize);
997
707
  constrainMaxSizeForMode(
998
708
  currentLineChild,
999
709
  crossAxis,
1000
710
  availableInnerCrossDim,
1001
711
  availableInnerWidth,
1002
- &childCrossMeasureMode,
712
+ &childCrossSizingMode,
1003
713
  &childCrossSize);
1004
714
 
1005
715
  const bool requiresStretchLayout =
1006
- !styleDefinesDimension(
1007
- currentLineChild, crossAxis, availableInnerCrossDim) &&
716
+ !currentLineChild->hasDefiniteLength(
717
+ dimension(crossAxis), availableInnerCrossDim) &&
1008
718
  resolveChildAlignment(node, currentLineChild) == Align::Stretch &&
1009
- currentLineChild->marginLeadingValue(crossAxis).unit != YGUnitAuto &&
1010
- currentLineChild->marginTrailingValue(crossAxis).unit != YGUnitAuto;
719
+ !currentLineChild->style().flexStartMarginIsAuto(
720
+ crossAxis, direction) &&
721
+ !currentLineChild->style().flexEndMarginIsAuto(crossAxis, direction);
1011
722
 
1012
723
  const float childWidth = isMainAxisRow ? childMainSize : childCrossSize;
1013
724
  const float childHeight = !isMainAxisRow ? childMainSize : childCrossSize;
1014
725
 
1015
- const MeasureMode childWidthMeasureMode =
1016
- isMainAxisRow ? childMainMeasureMode : childCrossMeasureMode;
1017
- const MeasureMode childHeightMeasureMode =
1018
- !isMainAxisRow ? childMainMeasureMode : childCrossMeasureMode;
726
+ const SizingMode childWidthSizingMode =
727
+ isMainAxisRow ? childMainSizingMode : childCrossSizingMode;
728
+ const SizingMode childHeightSizingMode =
729
+ !isMainAxisRow ? childMainSizingMode : childCrossSizingMode;
1019
730
 
1020
731
  const bool isLayoutPass = performLayout && !requiresStretchLayout;
1021
732
  // Recursively call the layout algorithm for this child with the updated
@@ -1025,8 +736,8 @@ static float distributeFreeSpaceSecondPass(
1025
736
  childWidth,
1026
737
  childHeight,
1027
738
  node->getLayout().direction(),
1028
- childWidthMeasureMode,
1029
- childHeightMeasureMode,
739
+ childWidthSizingMode,
740
+ childHeightSizingMode,
1030
741
  availableInnerWidth,
1031
742
  availableInnerHeight,
1032
743
  isLayoutPass,
@@ -1070,7 +781,7 @@ static void distributeFreeSpaceFirstPass(
1070
781
  -currentLineChild->resolveFlexShrink() * childFlexBasis;
1071
782
 
1072
783
  // Is this child able to shrink?
1073
- if (!yoga::isUndefined(flexShrinkScaledFactor) &&
784
+ if (yoga::isDefined(flexShrinkScaledFactor) &&
1074
785
  flexShrinkScaledFactor != 0) {
1075
786
  baseMainSize = childFlexBasis +
1076
787
  flexLine.layout.remainingFreeSpace /
@@ -1082,8 +793,7 @@ static void distributeFreeSpaceFirstPass(
1082
793
  baseMainSize,
1083
794
  availableInnerMainDim,
1084
795
  availableInnerWidth);
1085
- if (!yoga::isUndefined(baseMainSize) &&
1086
- !yoga::isUndefined(boundMainSize) &&
796
+ if (yoga::isDefined(baseMainSize) && yoga::isDefined(boundMainSize) &&
1087
797
  baseMainSize != boundMainSize) {
1088
798
  // By excluding this item's size and flex factor from remaining, this
1089
799
  // item's min/max constraints should also trigger in the second pass
@@ -1096,12 +806,12 @@ static void distributeFreeSpaceFirstPass(
1096
806
  }
1097
807
  }
1098
808
  } else if (
1099
- !yoga::isUndefined(flexLine.layout.remainingFreeSpace) &&
809
+ yoga::isDefined(flexLine.layout.remainingFreeSpace) &&
1100
810
  flexLine.layout.remainingFreeSpace > 0) {
1101
811
  flexGrowFactor = currentLineChild->resolveFlexGrow();
1102
812
 
1103
813
  // Is this child able to grow?
1104
- if (!yoga::isUndefined(flexGrowFactor) && flexGrowFactor != 0) {
814
+ if (yoga::isDefined(flexGrowFactor) && flexGrowFactor != 0) {
1105
815
  baseMainSize = childFlexBasis +
1106
816
  flexLine.layout.remainingFreeSpace /
1107
817
  flexLine.layout.totalFlexGrowFactors * flexGrowFactor;
@@ -1112,8 +822,7 @@ static void distributeFreeSpaceFirstPass(
1112
822
  availableInnerMainDim,
1113
823
  availableInnerWidth);
1114
824
 
1115
- if (!yoga::isUndefined(baseMainSize) &&
1116
- !yoga::isUndefined(boundMainSize) &&
825
+ if (yoga::isDefined(baseMainSize) && yoga::isDefined(boundMainSize) &&
1117
826
  baseMainSize != boundMainSize) {
1118
827
  // By excluding this item's size and flex factor from remaining, this
1119
828
  // item's min/max constraints should also trigger in the second pass
@@ -1155,13 +864,14 @@ static void resolveFlexibleLength(
1155
864
  FlexLine& flexLine,
1156
865
  const FlexDirection mainAxis,
1157
866
  const FlexDirection crossAxis,
867
+ const Direction direction,
1158
868
  const float mainAxisownerSize,
1159
869
  const float availableInnerMainDim,
1160
870
  const float availableInnerCrossDim,
1161
871
  const float availableInnerWidth,
1162
872
  const float availableInnerHeight,
1163
873
  const bool mainAxisOverflows,
1164
- const MeasureMode measureModeCrossDim,
874
+ const SizingMode sizingModeCrossDim,
1165
875
  const bool performLayout,
1166
876
  LayoutData& layoutMarkerData,
1167
877
  const uint32_t depth,
@@ -1181,13 +891,14 @@ static void resolveFlexibleLength(
1181
891
  node,
1182
892
  mainAxis,
1183
893
  crossAxis,
894
+ direction,
1184
895
  mainAxisownerSize,
1185
896
  availableInnerMainDim,
1186
897
  availableInnerCrossDim,
1187
898
  availableInnerWidth,
1188
899
  availableInnerHeight,
1189
900
  mainAxisOverflows,
1190
- measureModeCrossDim,
901
+ sizingModeCrossDim,
1191
902
  performLayout,
1192
903
  layoutMarkerData,
1193
904
  depth,
@@ -1202,28 +913,33 @@ static void justifyMainAxis(
1202
913
  const size_t startOfLineIndex,
1203
914
  const FlexDirection mainAxis,
1204
915
  const FlexDirection crossAxis,
1205
- const MeasureMode measureModeMainDim,
1206
- const MeasureMode measureModeCrossDim,
916
+ const Direction direction,
917
+ const SizingMode sizingModeMainDim,
918
+ const SizingMode sizingModeCrossDim,
1207
919
  const float mainAxisownerSize,
1208
920
  const float ownerWidth,
1209
921
  const float availableInnerMainDim,
1210
922
  const float availableInnerCrossDim,
1211
923
  const float availableInnerWidth,
1212
924
  const bool performLayout) {
1213
- const auto& style = node->getStyle();
925
+ const auto& style = node->style();
926
+
1214
927
  const float leadingPaddingAndBorderMain =
1215
- node->getLeadingPaddingAndBorder(mainAxis, ownerWidth).unwrap();
928
+ node->style().computeFlexStartPaddingAndBorder(
929
+ mainAxis, direction, ownerWidth);
1216
930
  const float trailingPaddingAndBorderMain =
1217
- node->getTrailingPaddingAndBorder(mainAxis, ownerWidth).unwrap();
1218
- const float gap = node->getGapForAxis(mainAxis, ownerWidth).unwrap();
931
+ node->style().computeFlexEndPaddingAndBorder(
932
+ mainAxis, direction, ownerWidth);
933
+
934
+ const float gap = node->style().computeGapForAxis(mainAxis);
1219
935
  // If we are using "at most" rules in the main axis, make sure that
1220
936
  // remainingFreeSpace is 0 when min main dimension is not given
1221
- if (measureModeMainDim == MeasureMode::AtMost &&
937
+ if (sizingModeMainDim == SizingMode::FitContent &&
1222
938
  flexLine.layout.remainingFreeSpace > 0) {
1223
- if (!style.minDimension(dimension(mainAxis)).isUndefined() &&
1224
- !yoga::resolveValue(
1225
- style.minDimension(dimension(mainAxis)), mainAxisownerSize)
1226
- .isUndefined()) {
939
+ if (style.minDimension(dimension(mainAxis)).isDefined() &&
940
+ style.minDimension(dimension(mainAxis))
941
+ .resolve(mainAxisownerSize)
942
+ .isDefined()) {
1227
943
  // This condition makes sure that if the size of main dimension(after
1228
944
  // considering child nodes main dim, leading and trailing padding etc)
1229
945
  // falls below min dimension, then the remainingFreeSpace is reassigned
@@ -1231,15 +947,14 @@ static void justifyMainAxis(
1231
947
 
1232
948
  // `minAvailableMainDim` denotes minimum available space in which child
1233
949
  // can be laid out, it will exclude space consumed by padding and border.
1234
- const float minAvailableMainDim =
1235
- yoga::resolveValue(
1236
- style.minDimension(dimension(mainAxis)), mainAxisownerSize)
1237
- .unwrap() -
950
+ const float minAvailableMainDim = style.minDimension(dimension(mainAxis))
951
+ .resolve(mainAxisownerSize)
952
+ .unwrap() -
1238
953
  leadingPaddingAndBorderMain - trailingPaddingAndBorderMain;
1239
954
  const float occupiedSpaceByChildNodes =
1240
955
  availableInnerMainDim - flexLine.layout.remainingFreeSpace;
1241
956
  flexLine.layout.remainingFreeSpace = yoga::maxOrDefined(
1242
- 0, minAvailableMainDim - occupiedSpaceByChildNodes);
957
+ 0.0f, minAvailableMainDim - occupiedSpaceByChildNodes);
1243
958
  } else {
1244
959
  flexLine.layout.remainingFreeSpace = 0;
1245
960
  }
@@ -1248,11 +963,11 @@ static void justifyMainAxis(
1248
963
  int numberOfAutoMarginsOnCurrentLine = 0;
1249
964
  for (size_t i = startOfLineIndex; i < flexLine.endOfLineIndex; i++) {
1250
965
  auto child = node->getChild(i);
1251
- if (child->getStyle().positionType() != PositionType::Absolute) {
1252
- if (child->marginLeadingValue(mainAxis).unit == YGUnitAuto) {
966
+ if (child->style().positionType() != PositionType::Absolute) {
967
+ if (child->style().flexStartMarginIsAuto(mainAxis, direction)) {
1253
968
  numberOfAutoMarginsOnCurrentLine++;
1254
969
  }
1255
- if (child->marginTrailingValue(mainAxis).unit == YGUnitAuto) {
970
+ if (child->style().flexEndMarginIsAuto(mainAxis, direction)) {
1256
971
  numberOfAutoMarginsOnCurrentLine++;
1257
972
  }
1258
973
  }
@@ -1263,7 +978,7 @@ static void justifyMainAxis(
1263
978
  // each two elements.
1264
979
  float leadingMainDim = 0;
1265
980
  float betweenMainDim = gap;
1266
- const Justify justifyContent = node->getStyle().justifyContent();
981
+ const Justify justifyContent = node->style().justifyContent();
1267
982
 
1268
983
  if (numberOfAutoMarginsOnCurrentLine == 0) {
1269
984
  switch (justifyContent) {
@@ -1276,7 +991,7 @@ static void justifyMainAxis(
1276
991
  case Justify::SpaceBetween:
1277
992
  if (flexLine.itemsInFlow.size() > 1) {
1278
993
  betweenMainDim +=
1279
- yoga::maxOrDefined(flexLine.layout.remainingFreeSpace, 0) /
994
+ yoga::maxOrDefined(flexLine.layout.remainingFreeSpace, 0.0f) /
1280
995
  static_cast<float>(flexLine.itemsInFlow.size() - 1);
1281
996
  }
1282
997
  break;
@@ -1305,79 +1020,76 @@ static void justifyMainAxis(
1305
1020
  bool isNodeBaselineLayout = isBaselineLayout(node);
1306
1021
  for (size_t i = startOfLineIndex; i < flexLine.endOfLineIndex; i++) {
1307
1022
  const auto child = node->getChild(i);
1308
- const Style& childStyle = child->getStyle();
1023
+ const Style& childStyle = child->style();
1309
1024
  const LayoutResults& childLayout = child->getLayout();
1310
1025
  if (childStyle.display() == Display::None) {
1311
1026
  continue;
1312
1027
  }
1313
1028
  if (childStyle.positionType() == PositionType::Absolute &&
1314
- child->isLeadingPositionDefined(mainAxis)) {
1029
+ child->style().isFlexStartPositionDefined(mainAxis, direction)) {
1315
1030
  if (performLayout) {
1316
1031
  // In case the child is position absolute and has left/top being
1317
1032
  // defined, we override the position to whatever the user said (and
1318
1033
  // margin/border).
1319
1034
  child->setLayoutPosition(
1320
- child->getLeadingPosition(mainAxis, availableInnerMainDim)
1321
- .unwrap() +
1322
- node->getLeadingBorder(mainAxis) +
1323
- child->getLeadingMargin(mainAxis, availableInnerWidth).unwrap(),
1324
- leadingEdge(mainAxis));
1035
+ child->style().computeFlexStartPosition(
1036
+ mainAxis, direction, availableInnerMainDim) +
1037
+ node->style().computeFlexStartBorder(mainAxis, direction) +
1038
+ child->style().computeFlexStartMargin(
1039
+ mainAxis, direction, availableInnerWidth),
1040
+ flexStartEdge(mainAxis));
1325
1041
  }
1326
1042
  } else {
1327
1043
  // Now that we placed the element, we need to update the variables.
1328
1044
  // We need to do that only for relative elements. Absolute elements do not
1329
1045
  // take part in that phase.
1330
1046
  if (childStyle.positionType() != PositionType::Absolute) {
1331
- if (child->marginLeadingValue(mainAxis).unit == YGUnitAuto) {
1047
+ if (child->style().flexStartMarginIsAuto(mainAxis, direction)) {
1332
1048
  flexLine.layout.mainDim += flexLine.layout.remainingFreeSpace /
1333
1049
  static_cast<float>(numberOfAutoMarginsOnCurrentLine);
1334
1050
  }
1335
1051
 
1336
1052
  if (performLayout) {
1337
1053
  child->setLayoutPosition(
1338
- childLayout.position[leadingEdge(mainAxis)] +
1054
+ childLayout.position(flexStartEdge(mainAxis)) +
1339
1055
  flexLine.layout.mainDim,
1340
- leadingEdge(mainAxis));
1056
+ flexStartEdge(mainAxis));
1341
1057
  }
1342
1058
 
1343
1059
  if (child != flexLine.itemsInFlow.back()) {
1344
1060
  flexLine.layout.mainDim += betweenMainDim;
1345
1061
  }
1346
1062
 
1347
- if (child->marginTrailingValue(mainAxis).unit == YGUnitAuto) {
1063
+ if (child->style().flexEndMarginIsAuto(mainAxis, direction)) {
1348
1064
  flexLine.layout.mainDim += flexLine.layout.remainingFreeSpace /
1349
1065
  static_cast<float>(numberOfAutoMarginsOnCurrentLine);
1350
1066
  }
1351
1067
  bool canSkipFlex =
1352
- !performLayout && measureModeCrossDim == MeasureMode::Exactly;
1068
+ !performLayout && sizingModeCrossDim == SizingMode::StretchFit;
1353
1069
  if (canSkipFlex) {
1354
1070
  // If we skipped the flex step, then we can't rely on the measuredDims
1355
1071
  // because they weren't computed. This means we can't call
1356
1072
  // dimensionWithMargin.
1357
- flexLine.layout.mainDim +=
1358
- child->getMarginForAxis(mainAxis, availableInnerWidth).unwrap() +
1073
+ flexLine.layout.mainDim += child->style().computeMarginForAxis(
1074
+ mainAxis, availableInnerWidth) +
1359
1075
  childLayout.computedFlexBasis.unwrap();
1360
1076
  flexLine.layout.crossDim = availableInnerCrossDim;
1361
1077
  } else {
1362
1078
  // The main dimension is the sum of all the elements dimension plus
1363
1079
  // the spacing.
1364
1080
  flexLine.layout.mainDim +=
1365
- dimensionWithMargin(child, mainAxis, availableInnerWidth);
1081
+ child->dimensionWithMargin(mainAxis, availableInnerWidth);
1366
1082
 
1367
1083
  if (isNodeBaselineLayout) {
1368
1084
  // If the child is baseline aligned then the cross dimension is
1369
1085
  // calculated by adding maxAscent and maxDescent from the baseline.
1370
1086
  const float ascent = calculateBaseline(child) +
1371
- child
1372
- ->getLeadingMargin(
1373
- FlexDirection::Column, availableInnerWidth)
1374
- .unwrap();
1087
+ child->style().computeFlexStartMargin(
1088
+ FlexDirection::Column, direction, availableInnerWidth);
1375
1089
  const float descent =
1376
- child->getLayout().measuredDimension(YGDimensionHeight) +
1377
- child
1378
- ->getMarginForAxis(
1379
- FlexDirection::Column, availableInnerWidth)
1380
- .unwrap() -
1090
+ child->getLayout().measuredDimension(Dimension::Height) +
1091
+ child->style().computeMarginForAxis(
1092
+ FlexDirection::Column, availableInnerWidth) -
1381
1093
  ascent;
1382
1094
 
1383
1095
  maxAscentForCurrentLine =
@@ -1390,14 +1102,15 @@ static void justifyMainAxis(
1390
1102
  // when the items are not baseline aligned
1391
1103
  flexLine.layout.crossDim = yoga::maxOrDefined(
1392
1104
  flexLine.layout.crossDim,
1393
- dimensionWithMargin(child, crossAxis, availableInnerWidth));
1105
+ child->dimensionWithMargin(crossAxis, availableInnerWidth));
1394
1106
  }
1395
1107
  }
1396
1108
  } else if (performLayout) {
1397
1109
  child->setLayoutPosition(
1398
- childLayout.position[leadingEdge(mainAxis)] +
1399
- node->getLeadingBorder(mainAxis) + leadingMainDim,
1400
- leadingEdge(mainAxis));
1110
+ childLayout.position(flexStartEdge(mainAxis)) +
1111
+ node->style().computeFlexStartBorder(mainAxis, direction) +
1112
+ leadingMainDim,
1113
+ flexStartEdge(mainAxis));
1401
1114
  }
1402
1115
  }
1403
1116
  }
@@ -1444,9 +1157,9 @@ static void justifyMainAxis(
1444
1157
  // depends on layout flags
1445
1158
  // - ownerDirection: the inline (text) direction within the owner
1446
1159
  // (left-to-right or right-to-left)
1447
- // - widthMeasureMode: indicates the sizing rules for the width (see below
1160
+ // - widthSizingMode: indicates the sizing rules for the width (see below
1448
1161
  // for explanation)
1449
- // - heightMeasureMode: indicates the sizing rules for the height (see below
1162
+ // - heightSizingMode: indicates the sizing rules for the height (see below
1450
1163
  // for explanation)
1451
1164
  // - performLayout: specifies whether the caller is interested in just the
1452
1165
  // dimensions of the node or it requires the entire node and its subtree to
@@ -1461,26 +1174,17 @@ static void justifyMainAxis(
1461
1174
  // layout.measuredDimensions field includes any border or padding for the
1462
1175
  // node but does not include margins.
1463
1176
  //
1464
- // The spec describes four different layout modes: "fill available", "max
1465
- // content", "min content", and "fit content". Of these, we don't use "min
1466
- // content" because we don't support default minimum main sizes (see above
1467
- // for details). Each of our measure modes maps to a layout mode from the
1468
- // spec (https://www.w3.org/TR/CSS3-sizing/#terms):
1469
- // - MeasureMode::Undefined: max content
1470
- // - MeasureMode::Exactly: fill available
1471
- // - MeasureMode::AtMost: fit content
1472
- //
1473
1177
  // When calling calculateLayoutImpl and calculateLayoutInternal, if the
1474
1178
  // caller passes an available size of undefined then it must also pass a
1475
- // measure mode of MeasureMode::Undefined in that dimension.
1179
+ // measure mode of SizingMode::MaxContent in that dimension.
1476
1180
  //
1477
1181
  static void calculateLayoutImpl(
1478
1182
  yoga::Node* const node,
1479
1183
  const float availableWidth,
1480
1184
  const float availableHeight,
1481
1185
  const Direction ownerDirection,
1482
- const MeasureMode widthMeasureMode,
1483
- const MeasureMode heightMeasureMode,
1186
+ const SizingMode widthSizingMode,
1187
+ const SizingMode heightSizingMode,
1484
1188
  const float ownerWidth,
1485
1189
  const float ownerHeight,
1486
1190
  const bool performLayout,
@@ -1491,17 +1195,17 @@ static void calculateLayoutImpl(
1491
1195
  yoga::assertFatalWithNode(
1492
1196
  node,
1493
1197
  yoga::isUndefined(availableWidth)
1494
- ? widthMeasureMode == MeasureMode::Undefined
1198
+ ? widthSizingMode == SizingMode::MaxContent
1495
1199
  : true,
1496
- "availableWidth is indefinite so widthMeasureMode must be "
1497
- "MeasureMode::Undefined");
1200
+ "availableWidth is indefinite so widthSizingMode must be "
1201
+ "SizingMode::MaxContent");
1498
1202
  yoga::assertFatalWithNode(
1499
1203
  node,
1500
1204
  yoga::isUndefined(availableHeight)
1501
- ? heightMeasureMode == MeasureMode::Undefined
1205
+ ? heightSizingMode == SizingMode::MaxContent
1502
1206
  : true,
1503
- "availableHeight is indefinite so heightMeasureMode must be "
1504
- "MeasureMode::Undefined");
1207
+ "availableHeight is indefinite so heightSizingMode must be "
1208
+ "SizingMode::MaxContent");
1505
1209
 
1506
1210
  (performLayout ? layoutMarkerData.layouts : layoutMarkerData.measures) += 1;
1507
1211
 
@@ -1514,51 +1218,64 @@ static void calculateLayoutImpl(
1514
1218
  const FlexDirection flexColumnDirection =
1515
1219
  resolveDirection(FlexDirection::Column, direction);
1516
1220
 
1517
- const YGEdge startEdge =
1518
- direction == Direction::LTR ? YGEdgeLeft : YGEdgeRight;
1519
- const YGEdge endEdge = direction == Direction::LTR ? YGEdgeRight : YGEdgeLeft;
1221
+ const auto startEdge =
1222
+ direction == Direction::LTR ? PhysicalEdge::Left : PhysicalEdge::Right;
1223
+ const auto endEdge =
1224
+ direction == Direction::LTR ? PhysicalEdge::Right : PhysicalEdge::Left;
1520
1225
 
1521
- const float marginRowLeading =
1522
- node->getLeadingMargin(flexRowDirection, ownerWidth).unwrap();
1226
+ const float marginRowLeading = node->style().computeInlineStartMargin(
1227
+ flexRowDirection, direction, ownerWidth);
1523
1228
  node->setLayoutMargin(marginRowLeading, startEdge);
1524
- const float marginRowTrailing =
1525
- node->getTrailingMargin(flexRowDirection, ownerWidth).unwrap();
1229
+ const float marginRowTrailing = node->style().computeInlineEndMargin(
1230
+ flexRowDirection, direction, ownerWidth);
1526
1231
  node->setLayoutMargin(marginRowTrailing, endEdge);
1527
- const float marginColumnLeading =
1528
- node->getLeadingMargin(flexColumnDirection, ownerWidth).unwrap();
1529
- node->setLayoutMargin(marginColumnLeading, YGEdgeTop);
1530
- const float marginColumnTrailing =
1531
- node->getTrailingMargin(flexColumnDirection, ownerWidth).unwrap();
1532
- node->setLayoutMargin(marginColumnTrailing, YGEdgeBottom);
1232
+ const float marginColumnLeading = node->style().computeInlineStartMargin(
1233
+ flexColumnDirection, direction, ownerWidth);
1234
+ node->setLayoutMargin(marginColumnLeading, PhysicalEdge::Top);
1235
+ const float marginColumnTrailing = node->style().computeInlineEndMargin(
1236
+ flexColumnDirection, direction, ownerWidth);
1237
+ node->setLayoutMargin(marginColumnTrailing, PhysicalEdge::Bottom);
1533
1238
 
1534
1239
  const float marginAxisRow = marginRowLeading + marginRowTrailing;
1535
1240
  const float marginAxisColumn = marginColumnLeading + marginColumnTrailing;
1536
1241
 
1537
- node->setLayoutBorder(node->getLeadingBorder(flexRowDirection), startEdge);
1538
- node->setLayoutBorder(node->getTrailingBorder(flexRowDirection), endEdge);
1539
- node->setLayoutBorder(node->getLeadingBorder(flexColumnDirection), YGEdgeTop);
1540
1242
  node->setLayoutBorder(
1541
- node->getTrailingBorder(flexColumnDirection), YGEdgeBottom);
1243
+ node->style().computeInlineStartBorder(flexRowDirection, direction),
1244
+ startEdge);
1245
+ node->setLayoutBorder(
1246
+ node->style().computeInlineEndBorder(flexRowDirection, direction),
1247
+ endEdge);
1248
+ node->setLayoutBorder(
1249
+ node->style().computeInlineStartBorder(flexColumnDirection, direction),
1250
+ PhysicalEdge::Top);
1251
+ node->setLayoutBorder(
1252
+ node->style().computeInlineEndBorder(flexColumnDirection, direction),
1253
+ PhysicalEdge::Bottom);
1542
1254
 
1543
1255
  node->setLayoutPadding(
1544
- node->getLeadingPadding(flexRowDirection, ownerWidth).unwrap(),
1256
+ node->style().computeInlineStartPadding(
1257
+ flexRowDirection, direction, ownerWidth),
1545
1258
  startEdge);
1546
1259
  node->setLayoutPadding(
1547
- node->getTrailingPadding(flexRowDirection, ownerWidth).unwrap(), endEdge);
1260
+ node->style().computeInlineEndPadding(
1261
+ flexRowDirection, direction, ownerWidth),
1262
+ endEdge);
1548
1263
  node->setLayoutPadding(
1549
- node->getLeadingPadding(flexColumnDirection, ownerWidth).unwrap(),
1550
- YGEdgeTop);
1264
+ node->style().computeInlineStartPadding(
1265
+ flexColumnDirection, direction, ownerWidth),
1266
+ PhysicalEdge::Top);
1551
1267
  node->setLayoutPadding(
1552
- node->getTrailingPadding(flexColumnDirection, ownerWidth).unwrap(),
1553
- YGEdgeBottom);
1268
+ node->style().computeInlineEndPadding(
1269
+ flexColumnDirection, direction, ownerWidth),
1270
+ PhysicalEdge::Bottom);
1554
1271
 
1555
1272
  if (node->hasMeasureFunc()) {
1556
1273
  measureNodeWithMeasureFunc(
1557
1274
  node,
1558
1275
  availableWidth - marginAxisRow,
1559
1276
  availableHeight - marginAxisColumn,
1560
- widthMeasureMode,
1561
- heightMeasureMode,
1277
+ widthSizingMode,
1278
+ heightSizingMode,
1562
1279
  ownerWidth,
1563
1280
  ownerHeight,
1564
1281
  layoutMarkerData,
@@ -1572,8 +1289,8 @@ static void calculateLayoutImpl(
1572
1289
  node,
1573
1290
  availableWidth - marginAxisRow,
1574
1291
  availableHeight - marginAxisColumn,
1575
- widthMeasureMode,
1576
- heightMeasureMode,
1292
+ widthSizingMode,
1293
+ heightSizingMode,
1577
1294
  ownerWidth,
1578
1295
  ownerHeight);
1579
1296
  return;
@@ -1586,8 +1303,8 @@ static void calculateLayoutImpl(
1586
1303
  node,
1587
1304
  availableWidth - marginAxisRow,
1588
1305
  availableHeight - marginAxisColumn,
1589
- widthMeasureMode,
1590
- heightMeasureMode,
1306
+ widthSizingMode,
1307
+ heightSizingMode,
1591
1308
  ownerWidth,
1592
1309
  ownerHeight)) {
1593
1310
  return;
@@ -1601,27 +1318,26 @@ static void calculateLayoutImpl(
1601
1318
 
1602
1319
  // STEP 1: CALCULATE VALUES FOR REMAINDER OF ALGORITHM
1603
1320
  const FlexDirection mainAxis =
1604
- resolveDirection(node->getStyle().flexDirection(), direction);
1321
+ resolveDirection(node->style().flexDirection(), direction);
1605
1322
  const FlexDirection crossAxis = resolveCrossDirection(mainAxis, direction);
1606
1323
  const bool isMainAxisRow = isRow(mainAxis);
1607
- const bool isNodeFlexWrap = node->getStyle().flexWrap() != Wrap::NoWrap;
1324
+ const bool isNodeFlexWrap = node->style().flexWrap() != Wrap::NoWrap;
1608
1325
 
1609
1326
  const float mainAxisownerSize = isMainAxisRow ? ownerWidth : ownerHeight;
1610
1327
  const float crossAxisownerSize = isMainAxisRow ? ownerHeight : ownerWidth;
1611
1328
 
1612
1329
  const float paddingAndBorderAxisMain =
1613
1330
  paddingAndBorderForAxis(node, mainAxis, ownerWidth);
1614
- const float leadingPaddingAndBorderCross =
1615
- node->getLeadingPaddingAndBorder(crossAxis, ownerWidth).unwrap();
1616
- const float trailingPaddingAndBorderCross =
1617
- node->getTrailingPaddingAndBorder(crossAxis, ownerWidth).unwrap();
1618
1331
  const float paddingAndBorderAxisCross =
1619
- leadingPaddingAndBorderCross + trailingPaddingAndBorderCross;
1332
+ paddingAndBorderForAxis(node, crossAxis, ownerWidth);
1333
+ const float leadingPaddingAndBorderCross =
1334
+ node->style().computeFlexStartPaddingAndBorder(
1335
+ crossAxis, direction, ownerWidth);
1620
1336
 
1621
- MeasureMode measureModeMainDim =
1622
- isMainAxisRow ? widthMeasureMode : heightMeasureMode;
1623
- MeasureMode measureModeCrossDim =
1624
- isMainAxisRow ? heightMeasureMode : widthMeasureMode;
1337
+ SizingMode sizingModeMainDim =
1338
+ isMainAxisRow ? widthSizingMode : heightSizingMode;
1339
+ SizingMode sizingModeCrossDim =
1340
+ isMainAxisRow ? heightSizingMode : widthSizingMode;
1625
1341
 
1626
1342
  const float paddingAndBorderAxisRow =
1627
1343
  isMainAxisRow ? paddingAndBorderAxisMain : paddingAndBorderAxisCross;
@@ -1632,13 +1348,13 @@ static void calculateLayoutImpl(
1632
1348
 
1633
1349
  float availableInnerWidth = calculateAvailableInnerDimension(
1634
1350
  node,
1635
- YGDimensionWidth,
1351
+ Dimension::Width,
1636
1352
  availableWidth - marginAxisRow,
1637
1353
  paddingAndBorderAxisRow,
1638
1354
  ownerWidth);
1639
1355
  float availableInnerHeight = calculateAvailableInnerDimension(
1640
1356
  node,
1641
- YGDimensionHeight,
1357
+ Dimension::Height,
1642
1358
  availableHeight - marginAxisColumn,
1643
1359
  paddingAndBorderAxisColumn,
1644
1360
  ownerHeight);
@@ -1656,8 +1372,8 @@ static void calculateLayoutImpl(
1656
1372
  node,
1657
1373
  availableInnerWidth,
1658
1374
  availableInnerHeight,
1659
- widthMeasureMode,
1660
- heightMeasureMode,
1375
+ widthSizingMode,
1376
+ heightSizingMode,
1661
1377
  direction,
1662
1378
  mainAxis,
1663
1379
  performLayout,
@@ -1666,18 +1382,17 @@ static void calculateLayoutImpl(
1666
1382
  generationCount);
1667
1383
 
1668
1384
  if (childCount > 1) {
1669
- totalMainDim +=
1670
- node->getGapForAxis(mainAxis, availableInnerCrossDim).unwrap() *
1385
+ totalMainDim += node->style().computeGapForAxis(mainAxis) *
1671
1386
  static_cast<float>(childCount - 1);
1672
1387
  }
1673
1388
 
1674
1389
  const bool mainAxisOverflows =
1675
- (measureModeMainDim != MeasureMode::Undefined) &&
1390
+ (sizingModeMainDim != SizingMode::MaxContent) &&
1676
1391
  totalMainDim > availableInnerMainDim;
1677
1392
 
1678
1393
  if (isNodeFlexWrap && mainAxisOverflows &&
1679
- measureModeMainDim == MeasureMode::AtMost) {
1680
- measureModeMainDim = MeasureMode::Exactly;
1394
+ sizingModeMainDim == SizingMode::FitContent) {
1395
+ sizingModeMainDim = SizingMode::StretchFit;
1681
1396
  }
1682
1397
  // STEP 4: COLLECT FLEX ITEMS INTO FLEX LINES
1683
1398
 
@@ -1691,8 +1406,7 @@ static void calculateLayoutImpl(
1691
1406
  // Accumulated cross dimensions of all lines so far.
1692
1407
  float totalLineCrossDim = 0;
1693
1408
 
1694
- const float crossAxisGap =
1695
- node->getGapForAxis(crossAxis, availableInnerCrossDim).unwrap();
1409
+ const float crossAxisGap = node->style().computeGapForAxis(crossAxis);
1696
1410
 
1697
1411
  // Max main dimension of all the lines.
1698
1412
  float maxLineMainDim = 0;
@@ -1712,7 +1426,7 @@ static void calculateLayoutImpl(
1712
1426
  // If we don't need to measure the cross axis, we can skip the entire flex
1713
1427
  // step.
1714
1428
  const bool canSkipFlex =
1715
- !performLayout && measureModeCrossDim == MeasureMode::Exactly;
1429
+ !performLayout && sizingModeCrossDim == SizingMode::StretchFit;
1716
1430
 
1717
1431
  // STEP 5: RESOLVING FLEXIBLE LENGTHS ON MAIN AXIS
1718
1432
  // Calculate the remaining available space that needs to be allocated. If
@@ -1722,23 +1436,19 @@ static void calculateLayoutImpl(
1722
1436
  bool sizeBasedOnContent = false;
1723
1437
  // If we don't measure with exact main dimension we want to ensure we don't
1724
1438
  // violate min and max
1725
- if (measureModeMainDim != MeasureMode::Exactly) {
1726
- const auto& style = node->getStyle();
1439
+ if (sizingModeMainDim != SizingMode::StretchFit) {
1440
+ const auto& style = node->style();
1727
1441
  const float minInnerWidth =
1728
- yoga::resolveValue(style.minDimension(YGDimensionWidth), ownerWidth)
1729
- .unwrap() -
1442
+ style.minDimension(Dimension::Width).resolve(ownerWidth).unwrap() -
1730
1443
  paddingAndBorderAxisRow;
1731
1444
  const float maxInnerWidth =
1732
- yoga::resolveValue(style.maxDimension(YGDimensionWidth), ownerWidth)
1733
- .unwrap() -
1445
+ style.maxDimension(Dimension::Width).resolve(ownerWidth).unwrap() -
1734
1446
  paddingAndBorderAxisRow;
1735
1447
  const float minInnerHeight =
1736
- yoga::resolveValue(style.minDimension(YGDimensionHeight), ownerHeight)
1737
- .unwrap() -
1448
+ style.minDimension(Dimension::Height).resolve(ownerHeight).unwrap() -
1738
1449
  paddingAndBorderAxisColumn;
1739
1450
  const float maxInnerHeight =
1740
- yoga::resolveValue(style.maxDimension(YGDimensionHeight), ownerHeight)
1741
- .unwrap() -
1451
+ style.maxDimension(Dimension::Height).resolve(ownerHeight).unwrap() -
1742
1452
  paddingAndBorderAxisColumn;
1743
1453
 
1744
1454
  const float minInnerMainDim =
@@ -1746,11 +1456,11 @@ static void calculateLayoutImpl(
1746
1456
  const float maxInnerMainDim =
1747
1457
  isMainAxisRow ? maxInnerWidth : maxInnerHeight;
1748
1458
 
1749
- if (!yoga::isUndefined(minInnerMainDim) &&
1459
+ if (yoga::isDefined(minInnerMainDim) &&
1750
1460
  flexLine.sizeConsumed < minInnerMainDim) {
1751
1461
  availableInnerMainDim = minInnerMainDim;
1752
1462
  } else if (
1753
- !yoga::isUndefined(maxInnerMainDim) &&
1463
+ yoga::isDefined(maxInnerMainDim) &&
1754
1464
  flexLine.sizeConsumed > maxInnerMainDim) {
1755
1465
  availableInnerMainDim = maxInnerMainDim;
1756
1466
  } else {
@@ -1758,9 +1468,9 @@ static void calculateLayoutImpl(
1758
1468
  node->hasErrata(Errata::StretchFlexBasis);
1759
1469
 
1760
1470
  if (!useLegacyStretchBehaviour &&
1761
- ((!yoga::isUndefined(flexLine.layout.totalFlexGrowFactors) &&
1471
+ ((yoga::isDefined(flexLine.layout.totalFlexGrowFactors) &&
1762
1472
  flexLine.layout.totalFlexGrowFactors == 0) ||
1763
- (!yoga::isUndefined(node->resolveFlexGrow()) &&
1473
+ (yoga::isDefined(node->resolveFlexGrow()) &&
1764
1474
  node->resolveFlexGrow() == 0))) {
1765
1475
  // If we don't have any children to flex or we can't flex the node
1766
1476
  // itself, space we've used is all space we need. Root node also
@@ -1772,7 +1482,7 @@ static void calculateLayoutImpl(
1772
1482
  }
1773
1483
  }
1774
1484
 
1775
- if (!sizeBasedOnContent && !yoga::isUndefined(availableInnerMainDim)) {
1485
+ if (!sizeBasedOnContent && yoga::isDefined(availableInnerMainDim)) {
1776
1486
  flexLine.layout.remainingFreeSpace =
1777
1487
  availableInnerMainDim - flexLine.sizeConsumed;
1778
1488
  } else if (flexLine.sizeConsumed < 0) {
@@ -1789,13 +1499,14 @@ static void calculateLayoutImpl(
1789
1499
  flexLine,
1790
1500
  mainAxis,
1791
1501
  crossAxis,
1502
+ direction,
1792
1503
  mainAxisownerSize,
1793
1504
  availableInnerMainDim,
1794
1505
  availableInnerCrossDim,
1795
1506
  availableInnerWidth,
1796
1507
  availableInnerHeight,
1797
1508
  mainAxisOverflows,
1798
- measureModeCrossDim,
1509
+ sizingModeCrossDim,
1799
1510
  performLayout,
1800
1511
  layoutMarkerData,
1801
1512
  depth,
@@ -1803,7 +1514,7 @@ static void calculateLayoutImpl(
1803
1514
  }
1804
1515
 
1805
1516
  node->setLayoutHadOverflow(
1806
- node->getLayout().hadOverflow() |
1517
+ node->getLayout().hadOverflow() ||
1807
1518
  (flexLine.layout.remainingFreeSpace < 0));
1808
1519
 
1809
1520
  // STEP 6: MAIN-AXIS JUSTIFICATION & CROSS-AXIS SIZE DETERMINATION
@@ -1819,8 +1530,9 @@ static void calculateLayoutImpl(
1819
1530
  startOfLineIndex,
1820
1531
  mainAxis,
1821
1532
  crossAxis,
1822
- measureModeMainDim,
1823
- measureModeCrossDim,
1533
+ direction,
1534
+ sizingModeMainDim,
1535
+ sizingModeCrossDim,
1824
1536
  mainAxisownerSize,
1825
1537
  ownerWidth,
1826
1538
  availableInnerMainDim,
@@ -1829,8 +1541,8 @@ static void calculateLayoutImpl(
1829
1541
  performLayout);
1830
1542
 
1831
1543
  float containerCrossAxis = availableInnerCrossDim;
1832
- if (measureModeCrossDim == MeasureMode::Undefined ||
1833
- measureModeCrossDim == MeasureMode::AtMost) {
1544
+ if (sizingModeCrossDim == SizingMode::MaxContent ||
1545
+ sizingModeCrossDim == SizingMode::FitContent) {
1834
1546
  // Compute the cross axis from the max cross dimension of the children.
1835
1547
  containerCrossAxis =
1836
1548
  boundAxis(
@@ -1843,53 +1555,58 @@ static void calculateLayoutImpl(
1843
1555
  }
1844
1556
 
1845
1557
  // If there's no flex wrap, the cross dimension is defined by the container.
1846
- if (!isNodeFlexWrap && measureModeCrossDim == MeasureMode::Exactly) {
1558
+ if (!isNodeFlexWrap && sizingModeCrossDim == SizingMode::StretchFit) {
1847
1559
  flexLine.layout.crossDim = availableInnerCrossDim;
1848
1560
  }
1849
1561
 
1850
- // Clamp to the min/max size specified on the container.
1851
- flexLine.layout.crossDim =
1852
- boundAxis(
1853
- node,
1854
- crossAxis,
1855
- flexLine.layout.crossDim + paddingAndBorderAxisCross,
1856
- crossAxisownerSize,
1857
- ownerWidth) -
1858
- paddingAndBorderAxisCross;
1562
+ // As-per https://www.w3.org/TR/css-flexbox-1/#cross-sizing, the
1563
+ // cross-size of the line within a single-line container should be bound to
1564
+ // min/max constraints before alignment within the line. In a multi-line
1565
+ // container, affecting alignment between the lines.
1566
+ if (!isNodeFlexWrap) {
1567
+ flexLine.layout.crossDim =
1568
+ boundAxis(
1569
+ node,
1570
+ crossAxis,
1571
+ flexLine.layout.crossDim + paddingAndBorderAxisCross,
1572
+ crossAxisownerSize,
1573
+ ownerWidth) -
1574
+ paddingAndBorderAxisCross;
1575
+ }
1859
1576
 
1860
1577
  // STEP 7: CROSS-AXIS ALIGNMENT
1861
1578
  // We can skip child alignment if we're just measuring the container.
1862
1579
  if (performLayout) {
1863
1580
  for (size_t i = startOfLineIndex; i < endOfLineIndex; i++) {
1864
1581
  const auto child = node->getChild(i);
1865
- if (child->getStyle().display() == Display::None) {
1582
+ if (child->style().display() == Display::None) {
1866
1583
  continue;
1867
1584
  }
1868
- if (child->getStyle().positionType() == PositionType::Absolute) {
1585
+ if (child->style().positionType() == PositionType::Absolute) {
1869
1586
  // If the child is absolutely positioned and has a
1870
1587
  // top/left/bottom/right set, override all the previously computed
1871
1588
  // positions to set it correctly.
1872
1589
  const bool isChildLeadingPosDefined =
1873
- child->isLeadingPositionDefined(crossAxis);
1590
+ child->style().isFlexStartPositionDefined(crossAxis, direction);
1874
1591
  if (isChildLeadingPosDefined) {
1875
1592
  child->setLayoutPosition(
1876
- child->getLeadingPosition(crossAxis, availableInnerCrossDim)
1877
- .unwrap() +
1878
- node->getLeadingBorder(crossAxis) +
1879
- child->getLeadingMargin(crossAxis, availableInnerWidth)
1880
- .unwrap(),
1881
- leadingEdge(crossAxis));
1593
+ child->style().computeFlexStartPosition(
1594
+ crossAxis, direction, availableInnerCrossDim) +
1595
+ node->style().computeFlexStartBorder(crossAxis, direction) +
1596
+ child->style().computeFlexStartMargin(
1597
+ crossAxis, direction, availableInnerWidth),
1598
+ flexStartEdge(crossAxis));
1882
1599
  }
1883
1600
  // If leading position is not defined or calculations result in Nan,
1884
1601
  // default to border + margin
1885
1602
  if (!isChildLeadingPosDefined ||
1886
1603
  yoga::isUndefined(
1887
- child->getLayout().position[leadingEdge(crossAxis)])) {
1604
+ child->getLayout().position(flexStartEdge(crossAxis)))) {
1888
1605
  child->setLayoutPosition(
1889
- node->getLeadingBorder(crossAxis) +
1890
- child->getLeadingMargin(crossAxis, availableInnerWidth)
1891
- .unwrap(),
1892
- leadingEdge(crossAxis));
1606
+ node->style().computeFlexStartBorder(crossAxis, direction) +
1607
+ child->style().computeFlexStartMargin(
1608
+ crossAxis, direction, availableInnerWidth),
1609
+ flexStartEdge(crossAxis));
1893
1610
  }
1894
1611
  } else {
1895
1612
  float leadingCrossDim = leadingPaddingAndBorderCross;
@@ -1903,42 +1620,41 @@ static void calculateLayoutImpl(
1903
1620
  // time, this time forcing the cross-axis size to be the computed
1904
1621
  // cross size for the current line.
1905
1622
  if (alignItem == Align::Stretch &&
1906
- child->marginLeadingValue(crossAxis).unit != YGUnitAuto &&
1907
- child->marginTrailingValue(crossAxis).unit != YGUnitAuto) {
1623
+ !child->style().flexStartMarginIsAuto(crossAxis, direction) &&
1624
+ !child->style().flexEndMarginIsAuto(crossAxis, direction)) {
1908
1625
  // If the child defines a definite size for its cross axis, there's
1909
1626
  // no need to stretch.
1910
- if (!styleDefinesDimension(
1911
- child, crossAxis, availableInnerCrossDim)) {
1627
+ if (!child->hasDefiniteLength(
1628
+ dimension(crossAxis), availableInnerCrossDim)) {
1912
1629
  float childMainSize =
1913
1630
  child->getLayout().measuredDimension(dimension(mainAxis));
1914
- const auto& childStyle = child->getStyle();
1915
- float childCrossSize = !childStyle.aspectRatio().isUndefined()
1916
- ? child->getMarginForAxis(crossAxis, availableInnerWidth)
1917
- .unwrap() +
1631
+ const auto& childStyle = child->style();
1632
+ float childCrossSize = childStyle.aspectRatio().isDefined()
1633
+ ? child->style().computeMarginForAxis(
1634
+ crossAxis, availableInnerWidth) +
1918
1635
  (isMainAxisRow
1919
1636
  ? childMainSize / childStyle.aspectRatio().unwrap()
1920
1637
  : childMainSize * childStyle.aspectRatio().unwrap())
1921
1638
  : flexLine.layout.crossDim;
1922
1639
 
1923
- childMainSize +=
1924
- child->getMarginForAxis(mainAxis, availableInnerWidth)
1925
- .unwrap();
1640
+ childMainSize += child->style().computeMarginForAxis(
1641
+ mainAxis, availableInnerWidth);
1926
1642
 
1927
- MeasureMode childMainMeasureMode = MeasureMode::Exactly;
1928
- MeasureMode childCrossMeasureMode = MeasureMode::Exactly;
1643
+ SizingMode childMainSizingMode = SizingMode::StretchFit;
1644
+ SizingMode childCrossSizingMode = SizingMode::StretchFit;
1929
1645
  constrainMaxSizeForMode(
1930
1646
  child,
1931
1647
  mainAxis,
1932
1648
  availableInnerMainDim,
1933
1649
  availableInnerWidth,
1934
- &childMainMeasureMode,
1650
+ &childMainSizingMode,
1935
1651
  &childMainSize);
1936
1652
  constrainMaxSizeForMode(
1937
1653
  child,
1938
1654
  crossAxis,
1939
1655
  availableInnerCrossDim,
1940
1656
  availableInnerWidth,
1941
- &childCrossMeasureMode,
1657
+ &childCrossSizingMode,
1942
1658
  &childCrossSize);
1943
1659
 
1944
1660
  const float childWidth =
@@ -1946,27 +1662,27 @@ static void calculateLayoutImpl(
1946
1662
  const float childHeight =
1947
1663
  !isMainAxisRow ? childMainSize : childCrossSize;
1948
1664
 
1949
- auto alignContent = node->getStyle().alignContent();
1665
+ auto alignContent = node->style().alignContent();
1950
1666
  auto crossAxisDoesNotGrow =
1951
1667
  alignContent != Align::Stretch && isNodeFlexWrap;
1952
- const MeasureMode childWidthMeasureMode =
1668
+ const SizingMode childWidthSizingMode =
1953
1669
  yoga::isUndefined(childWidth) ||
1954
1670
  (!isMainAxisRow && crossAxisDoesNotGrow)
1955
- ? MeasureMode::Undefined
1956
- : MeasureMode::Exactly;
1957
- const MeasureMode childHeightMeasureMode =
1671
+ ? SizingMode::MaxContent
1672
+ : SizingMode::StretchFit;
1673
+ const SizingMode childHeightSizingMode =
1958
1674
  yoga::isUndefined(childHeight) ||
1959
1675
  (isMainAxisRow && crossAxisDoesNotGrow)
1960
- ? MeasureMode::Undefined
1961
- : MeasureMode::Exactly;
1676
+ ? SizingMode::MaxContent
1677
+ : SizingMode::StretchFit;
1962
1678
 
1963
1679
  calculateLayoutInternal(
1964
1680
  child,
1965
1681
  childWidth,
1966
1682
  childHeight,
1967
1683
  direction,
1968
- childWidthMeasureMode,
1969
- childHeightMeasureMode,
1684
+ childWidthSizingMode,
1685
+ childHeightSizingMode,
1970
1686
  availableInnerWidth,
1971
1687
  availableInnerHeight,
1972
1688
  true,
@@ -1977,17 +1693,17 @@ static void calculateLayoutImpl(
1977
1693
  }
1978
1694
  } else {
1979
1695
  const float remainingCrossDim = containerCrossAxis -
1980
- dimensionWithMargin(child, crossAxis, availableInnerWidth);
1696
+ child->dimensionWithMargin(crossAxis, availableInnerWidth);
1981
1697
 
1982
- if (child->marginLeadingValue(crossAxis).unit == YGUnitAuto &&
1983
- child->marginTrailingValue(crossAxis).unit == YGUnitAuto) {
1698
+ if (child->style().flexStartMarginIsAuto(crossAxis, direction) &&
1699
+ child->style().flexEndMarginIsAuto(crossAxis, direction)) {
1984
1700
  leadingCrossDim +=
1985
1701
  yoga::maxOrDefined(0.0f, remainingCrossDim / 2);
1986
- } else if (
1987
- child->marginTrailingValue(crossAxis).unit == YGUnitAuto) {
1702
+ } else if (child->style().flexEndMarginIsAuto(
1703
+ crossAxis, direction)) {
1988
1704
  // No-Op
1989
- } else if (
1990
- child->marginLeadingValue(crossAxis).unit == YGUnitAuto) {
1705
+ } else if (child->style().flexStartMarginIsAuto(
1706
+ crossAxis, direction)) {
1991
1707
  leadingCrossDim += yoga::maxOrDefined(0.0f, remainingCrossDim);
1992
1708
  } else if (alignItem == Align::FlexStart) {
1993
1709
  // No-Op
@@ -1999,9 +1715,9 @@ static void calculateLayoutImpl(
1999
1715
  }
2000
1716
  // And we apply the position
2001
1717
  child->setLayoutPosition(
2002
- child->getLayout().position[leadingEdge(crossAxis)] +
1718
+ child->getLayout().position(flexStartEdge(crossAxis)) +
2003
1719
  totalLineCrossDim + leadingCrossDim,
2004
- leadingEdge(crossAxis));
1720
+ flexStartEdge(crossAxis));
2005
1721
  }
2006
1722
  }
2007
1723
  }
@@ -2015,47 +1731,65 @@ static void calculateLayoutImpl(
2015
1731
  // STEP 8: MULTI-LINE CONTENT ALIGNMENT
2016
1732
  // currentLead stores the size of the cross dim
2017
1733
  if (performLayout && (isNodeFlexWrap || isBaselineLayout(node))) {
2018
- float crossDimLead = 0;
1734
+ float leadPerLine = 0;
2019
1735
  float currentLead = leadingPaddingAndBorderCross;
2020
- if (!yoga::isUndefined(availableInnerCrossDim)) {
2021
- const float remainingAlignContentDim =
2022
- availableInnerCrossDim - totalLineCrossDim;
2023
- switch (node->getStyle().alignContent()) {
2024
- case Align::FlexEnd:
2025
- currentLead += remainingAlignContentDim;
2026
- break;
2027
- case Align::Center:
1736
+
1737
+ const float unclampedCrossDim = sizingModeCrossDim == SizingMode::StretchFit
1738
+ ? availableInnerCrossDim + paddingAndBorderAxisCross
1739
+ : node->hasDefiniteLength(dimension(crossAxis), crossAxisownerSize)
1740
+ ? node->getResolvedDimension(dimension(crossAxis))
1741
+ .resolve(crossAxisownerSize)
1742
+ .unwrap()
1743
+ : totalLineCrossDim + paddingAndBorderAxisCross;
1744
+
1745
+ const float innerCrossDim =
1746
+ boundAxis(node, crossAxis, unclampedCrossDim, ownerHeight, ownerWidth) -
1747
+ paddingAndBorderAxisCross;
1748
+
1749
+ const float remainingAlignContentDim = innerCrossDim - totalLineCrossDim;
1750
+ switch (node->style().alignContent()) {
1751
+ case Align::FlexEnd:
1752
+ currentLead += remainingAlignContentDim;
1753
+ break;
1754
+ case Align::Center:
1755
+ currentLead += remainingAlignContentDim / 2;
1756
+ break;
1757
+ case Align::Stretch:
1758
+ if (innerCrossDim > totalLineCrossDim) {
1759
+ leadPerLine =
1760
+ remainingAlignContentDim / static_cast<float>(lineCount);
1761
+ }
1762
+ break;
1763
+ case Align::SpaceAround:
1764
+ if (innerCrossDim > totalLineCrossDim) {
1765
+ currentLead +=
1766
+ remainingAlignContentDim / (2 * static_cast<float>(lineCount));
1767
+ leadPerLine =
1768
+ remainingAlignContentDim / static_cast<float>(lineCount);
1769
+ } else {
2028
1770
  currentLead += remainingAlignContentDim / 2;
2029
- break;
2030
- case Align::Stretch:
2031
- if (availableInnerCrossDim > totalLineCrossDim) {
2032
- crossDimLead =
2033
- remainingAlignContentDim / static_cast<float>(lineCount);
2034
- }
2035
- break;
2036
- case Align::SpaceAround:
2037
- if (availableInnerCrossDim > totalLineCrossDim) {
2038
- currentLead +=
2039
- remainingAlignContentDim / (2 * static_cast<float>(lineCount));
2040
- if (lineCount > 1) {
2041
- crossDimLead =
2042
- remainingAlignContentDim / static_cast<float>(lineCount);
2043
- }
2044
- } else {
2045
- currentLead += remainingAlignContentDim / 2;
2046
- }
2047
- break;
2048
- case Align::SpaceBetween:
2049
- if (availableInnerCrossDim > totalLineCrossDim && lineCount > 1) {
2050
- crossDimLead =
2051
- remainingAlignContentDim / static_cast<float>(lineCount - 1);
2052
- }
2053
- break;
2054
- case Align::Auto:
2055
- case Align::FlexStart:
2056
- case Align::Baseline:
2057
- break;
2058
- }
1771
+ }
1772
+ break;
1773
+ case Align::SpaceEvenly:
1774
+ if (innerCrossDim > totalLineCrossDim) {
1775
+ currentLead +=
1776
+ remainingAlignContentDim / static_cast<float>(lineCount + 1);
1777
+ leadPerLine =
1778
+ remainingAlignContentDim / static_cast<float>(lineCount + 1);
1779
+ } else {
1780
+ currentLead += remainingAlignContentDim / 2;
1781
+ }
1782
+ break;
1783
+ case Align::SpaceBetween:
1784
+ if (innerCrossDim > totalLineCrossDim && lineCount > 1) {
1785
+ leadPerLine =
1786
+ remainingAlignContentDim / static_cast<float>(lineCount - 1);
1787
+ }
1788
+ break;
1789
+ case Align::Auto:
1790
+ case Align::FlexStart:
1791
+ case Align::Baseline:
1792
+ break;
2059
1793
  }
2060
1794
  size_t endIndex = 0;
2061
1795
  for (size_t i = 0; i < lineCount; i++) {
@@ -2068,32 +1802,28 @@ static void calculateLayoutImpl(
2068
1802
  float maxDescentForCurrentLine = 0;
2069
1803
  for (ii = startIndex; ii < childCount; ii++) {
2070
1804
  const auto child = node->getChild(ii);
2071
- if (child->getStyle().display() == Display::None) {
1805
+ if (child->style().display() == Display::None) {
2072
1806
  continue;
2073
1807
  }
2074
- if (child->getStyle().positionType() != PositionType::Absolute) {
1808
+ if (child->style().positionType() != PositionType::Absolute) {
2075
1809
  if (child->getLineIndex() != i) {
2076
1810
  break;
2077
1811
  }
2078
- if (isLayoutDimensionDefined(child, crossAxis)) {
1812
+ if (child->isLayoutDimensionDefined(crossAxis)) {
2079
1813
  lineHeight = yoga::maxOrDefined(
2080
1814
  lineHeight,
2081
1815
  child->getLayout().measuredDimension(dimension(crossAxis)) +
2082
- child->getMarginForAxis(crossAxis, availableInnerWidth)
2083
- .unwrap());
1816
+ child->style().computeMarginForAxis(
1817
+ crossAxis, availableInnerWidth));
2084
1818
  }
2085
1819
  if (resolveChildAlignment(node, child) == Align::Baseline) {
2086
1820
  const float ascent = calculateBaseline(child) +
2087
- child
2088
- ->getLeadingMargin(
2089
- FlexDirection::Column, availableInnerWidth)
2090
- .unwrap();
1821
+ child->style().computeFlexStartMargin(
1822
+ FlexDirection::Column, direction, availableInnerWidth);
2091
1823
  const float descent =
2092
- child->getLayout().measuredDimension(YGDimensionHeight) +
2093
- child
2094
- ->getMarginForAxis(
2095
- FlexDirection::Column, availableInnerWidth)
2096
- .unwrap() -
1824
+ child->getLayout().measuredDimension(Dimension::Height) +
1825
+ child->style().computeMarginForAxis(
1826
+ FlexDirection::Column, availableInnerWidth) -
2097
1827
  ascent;
2098
1828
  maxAscentForCurrentLine =
2099
1829
  yoga::maxOrDefined(maxAscentForCurrentLine, ascent);
@@ -2105,33 +1835,32 @@ static void calculateLayoutImpl(
2105
1835
  }
2106
1836
  }
2107
1837
  endIndex = ii;
2108
- lineHeight += crossDimLead;
2109
1838
  currentLead += i != 0 ? crossAxisGap : 0;
2110
1839
 
2111
1840
  if (performLayout) {
2112
1841
  for (ii = startIndex; ii < endIndex; ii++) {
2113
1842
  const auto child = node->getChild(ii);
2114
- if (child->getStyle().display() == Display::None) {
1843
+ if (child->style().display() == Display::None) {
2115
1844
  continue;
2116
1845
  }
2117
- if (child->getStyle().positionType() != PositionType::Absolute) {
1846
+ if (child->style().positionType() != PositionType::Absolute) {
2118
1847
  switch (resolveChildAlignment(node, child)) {
2119
1848
  case Align::FlexStart: {
2120
1849
  child->setLayoutPosition(
2121
1850
  currentLead +
2122
- child->getLeadingMargin(crossAxis, availableInnerWidth)
2123
- .unwrap(),
2124
- leadingEdge(crossAxis));
1851
+ child->style().computeFlexStartPosition(
1852
+ crossAxis, direction, availableInnerWidth),
1853
+ flexStartEdge(crossAxis));
2125
1854
  break;
2126
1855
  }
2127
1856
  case Align::FlexEnd: {
2128
1857
  child->setLayoutPosition(
2129
1858
  currentLead + lineHeight -
2130
- child->getTrailingMargin(crossAxis, availableInnerWidth)
2131
- .unwrap() -
1859
+ child->style().computeFlexEndMargin(
1860
+ crossAxis, direction, availableInnerWidth) -
2132
1861
  child->getLayout().measuredDimension(
2133
1862
  dimension(crossAxis)),
2134
- leadingEdge(crossAxis));
1863
+ flexStartEdge(crossAxis));
2135
1864
  break;
2136
1865
  }
2137
1866
  case Align::Center: {
@@ -2140,49 +1869,49 @@ static void calculateLayoutImpl(
2140
1869
 
2141
1870
  child->setLayoutPosition(
2142
1871
  currentLead + (lineHeight - childHeight) / 2,
2143
- leadingEdge(crossAxis));
1872
+ flexStartEdge(crossAxis));
2144
1873
  break;
2145
1874
  }
2146
1875
  case Align::Stretch: {
2147
1876
  child->setLayoutPosition(
2148
1877
  currentLead +
2149
- child->getLeadingMargin(crossAxis, availableInnerWidth)
2150
- .unwrap(),
2151
- leadingEdge(crossAxis));
1878
+ child->style().computeFlexStartMargin(
1879
+ crossAxis, direction, availableInnerWidth),
1880
+ flexStartEdge(crossAxis));
2152
1881
 
2153
1882
  // Remeasure child with the line height as it as been only
2154
1883
  // measured with the owners height yet.
2155
- if (!styleDefinesDimension(
2156
- child, crossAxis, availableInnerCrossDim)) {
1884
+ if (!child->hasDefiniteLength(
1885
+ dimension(crossAxis), availableInnerCrossDim)) {
2157
1886
  const float childWidth = isMainAxisRow
2158
1887
  ? (child->getLayout().measuredDimension(
2159
- YGDimensionWidth) +
2160
- child->getMarginForAxis(mainAxis, availableInnerWidth)
2161
- .unwrap())
2162
- : lineHeight;
1888
+ Dimension::Width) +
1889
+ child->style().computeMarginForAxis(
1890
+ mainAxis, availableInnerWidth))
1891
+ : leadPerLine + lineHeight;
2163
1892
 
2164
1893
  const float childHeight = !isMainAxisRow
2165
1894
  ? (child->getLayout().measuredDimension(
2166
- YGDimensionHeight) +
2167
- child->getMarginForAxis(crossAxis, availableInnerWidth)
2168
- .unwrap())
2169
- : lineHeight;
1895
+ Dimension::Height) +
1896
+ child->style().computeMarginForAxis(
1897
+ crossAxis, availableInnerWidth))
1898
+ : leadPerLine + lineHeight;
2170
1899
 
2171
1900
  if (!(yoga::inexactEquals(
2172
1901
  childWidth,
2173
1902
  child->getLayout().measuredDimension(
2174
- YGDimensionWidth)) &&
1903
+ Dimension::Width)) &&
2175
1904
  yoga::inexactEquals(
2176
1905
  childHeight,
2177
1906
  child->getLayout().measuredDimension(
2178
- YGDimensionHeight)))) {
1907
+ Dimension::Height)))) {
2179
1908
  calculateLayoutInternal(
2180
1909
  child,
2181
1910
  childWidth,
2182
1911
  childHeight,
2183
1912
  direction,
2184
- MeasureMode::Exactly,
2185
- MeasureMode::Exactly,
1913
+ SizingMode::StretchFit,
1914
+ SizingMode::StretchFit,
2186
1915
  availableInnerWidth,
2187
1916
  availableInnerHeight,
2188
1917
  true,
@@ -2198,23 +1927,24 @@ static void calculateLayoutImpl(
2198
1927
  child->setLayoutPosition(
2199
1928
  currentLead + maxAscentForCurrentLine -
2200
1929
  calculateBaseline(child) +
2201
- child
2202
- ->getLeadingPosition(
2203
- FlexDirection::Column, availableInnerCrossDim)
2204
- .unwrap(),
2205
- YGEdgeTop);
1930
+ child->style().computeFlexStartPosition(
1931
+ FlexDirection::Column,
1932
+ direction,
1933
+ availableInnerCrossDim),
1934
+ PhysicalEdge::Top);
2206
1935
 
2207
1936
  break;
2208
1937
  }
2209
1938
  case Align::Auto:
2210
1939
  case Align::SpaceBetween:
2211
1940
  case Align::SpaceAround:
1941
+ case Align::SpaceEvenly:
2212
1942
  break;
2213
1943
  }
2214
1944
  }
2215
1945
  }
2216
1946
  }
2217
- currentLead += lineHeight;
1947
+ currentLead = currentLead + leadPerLine + lineHeight;
2218
1948
  }
2219
1949
  }
2220
1950
 
@@ -2227,7 +1957,7 @@ static void calculateLayoutImpl(
2227
1957
  availableWidth - marginAxisRow,
2228
1958
  ownerWidth,
2229
1959
  ownerWidth),
2230
- YGDimensionWidth);
1960
+ Dimension::Width);
2231
1961
 
2232
1962
  node->setLayoutMeasuredDimension(
2233
1963
  boundAxis(
@@ -2236,13 +1966,13 @@ static void calculateLayoutImpl(
2236
1966
  availableHeight - marginAxisColumn,
2237
1967
  ownerHeight,
2238
1968
  ownerWidth),
2239
- YGDimensionHeight);
1969
+ Dimension::Height);
2240
1970
 
2241
1971
  // If the user didn't specify a width or height for the node, set the
2242
1972
  // dimensions based on the children.
2243
- if (measureModeMainDim == MeasureMode::Undefined ||
2244
- (node->getStyle().overflow() != Overflow::Scroll &&
2245
- measureModeMainDim == MeasureMode::AtMost)) {
1973
+ if (sizingModeMainDim == SizingMode::MaxContent ||
1974
+ (node->style().overflow() != Overflow::Scroll &&
1975
+ sizingModeMainDim == SizingMode::FitContent)) {
2246
1976
  // Clamp the size to the min/max size, if specified, and make sure it
2247
1977
  // doesn't go below the padding and border amount.
2248
1978
  node->setLayoutMeasuredDimension(
@@ -2251,8 +1981,8 @@ static void calculateLayoutImpl(
2251
1981
  dimension(mainAxis));
2252
1982
 
2253
1983
  } else if (
2254
- measureModeMainDim == MeasureMode::AtMost &&
2255
- node->getStyle().overflow() == Overflow::Scroll) {
1984
+ sizingModeMainDim == SizingMode::FitContent &&
1985
+ node->style().overflow() == Overflow::Scroll) {
2256
1986
  node->setLayoutMeasuredDimension(
2257
1987
  yoga::maxOrDefined(
2258
1988
  yoga::minOrDefined(
@@ -2267,9 +1997,9 @@ static void calculateLayoutImpl(
2267
1997
  dimension(mainAxis));
2268
1998
  }
2269
1999
 
2270
- if (measureModeCrossDim == MeasureMode::Undefined ||
2271
- (node->getStyle().overflow() != Overflow::Scroll &&
2272
- measureModeCrossDim == MeasureMode::AtMost)) {
2000
+ if (sizingModeCrossDim == SizingMode::MaxContent ||
2001
+ (node->style().overflow() != Overflow::Scroll &&
2002
+ sizingModeCrossDim == SizingMode::FitContent)) {
2273
2003
  // Clamp the size to the min/max size, if specified, and make sure it
2274
2004
  // doesn't go below the padding and border amount.
2275
2005
  node->setLayoutMeasuredDimension(
@@ -2282,8 +2012,8 @@ static void calculateLayoutImpl(
2282
2012
  dimension(crossAxis));
2283
2013
 
2284
2014
  } else if (
2285
- measureModeCrossDim == MeasureMode::AtMost &&
2286
- node->getStyle().overflow() == Overflow::Scroll) {
2015
+ sizingModeCrossDim == SizingMode::FitContent &&
2016
+ node->style().overflow() == Overflow::Scroll) {
2287
2017
  node->setLayoutMeasuredDimension(
2288
2018
  yoga::maxOrDefined(
2289
2019
  yoga::minOrDefined(
@@ -2301,57 +2031,32 @@ static void calculateLayoutImpl(
2301
2031
 
2302
2032
  // As we only wrapped in normal direction yet, we need to reverse the
2303
2033
  // positions on wrap-reverse.
2304
- if (performLayout && node->getStyle().flexWrap() == Wrap::WrapReverse) {
2034
+ if (performLayout && node->style().flexWrap() == Wrap::WrapReverse) {
2305
2035
  for (size_t i = 0; i < childCount; i++) {
2306
2036
  const auto child = node->getChild(i);
2307
- if (child->getStyle().positionType() != PositionType::Absolute) {
2037
+ if (child->style().positionType() != PositionType::Absolute) {
2308
2038
  child->setLayoutPosition(
2309
2039
  node->getLayout().measuredDimension(dimension(crossAxis)) -
2310
- child->getLayout().position[leadingEdge(crossAxis)] -
2040
+ child->getLayout().position(flexStartEdge(crossAxis)) -
2311
2041
  child->getLayout().measuredDimension(dimension(crossAxis)),
2312
- leadingEdge(crossAxis));
2042
+ flexStartEdge(crossAxis));
2313
2043
  }
2314
2044
  }
2315
2045
  }
2316
2046
 
2317
2047
  if (performLayout) {
2318
- // STEP 10: SIZING AND POSITIONING ABSOLUTE CHILDREN
2319
- for (auto child : node->getChildren()) {
2320
- if (child->getStyle().display() == Display::None ||
2321
- child->getStyle().positionType() != PositionType::Absolute) {
2322
- continue;
2323
- }
2324
- const bool absolutePercentageAgainstPaddingEdge =
2325
- node->getConfig()->isExperimentalFeatureEnabled(
2326
- ExperimentalFeature::AbsolutePercentageAgainstPaddingEdge);
2048
+ // STEP 10: SETTING TRAILING POSITIONS FOR CHILDREN
2049
+ const bool needsMainTrailingPos = needsTrailingPosition(mainAxis);
2050
+ const bool needsCrossTrailingPos = needsTrailingPosition(crossAxis);
2327
2051
 
2328
- layoutAbsoluteChild(
2329
- node,
2330
- child,
2331
- absolutePercentageAgainstPaddingEdge
2332
- ? node->getLayout().measuredDimension(YGDimensionWidth)
2333
- : availableInnerWidth,
2334
- isMainAxisRow ? measureModeMainDim : measureModeCrossDim,
2335
- absolutePercentageAgainstPaddingEdge
2336
- ? node->getLayout().measuredDimension(YGDimensionHeight)
2337
- : availableInnerHeight,
2338
- direction,
2339
- layoutMarkerData,
2340
- depth,
2341
- generationCount);
2342
- }
2343
-
2344
- // STEP 11: SETTING TRAILING POSITIONS FOR CHILDREN
2345
- const bool needsMainTrailingPos = mainAxis == FlexDirection::RowReverse ||
2346
- mainAxis == FlexDirection::ColumnReverse;
2347
- const bool needsCrossTrailingPos = crossAxis == FlexDirection::RowReverse ||
2348
- crossAxis == FlexDirection::ColumnReverse;
2349
-
2350
- // Set trailing position if necessary.
2351
2052
  if (needsMainTrailingPos || needsCrossTrailingPos) {
2352
2053
  for (size_t i = 0; i < childCount; i++) {
2353
2054
  const auto child = node->getChild(i);
2354
- if (child->getStyle().display() == Display::None) {
2055
+ // Absolute children will be handled by their containing block since we
2056
+ // cannot guarantee that their positions are set when their parents are
2057
+ // done with layout.
2058
+ if (child->style().display() == Display::None ||
2059
+ child->style().positionType() == PositionType::Absolute) {
2355
2060
  continue;
2356
2061
  }
2357
2062
  if (needsMainTrailingPos) {
@@ -2363,36 +2068,25 @@ static void calculateLayoutImpl(
2363
2068
  }
2364
2069
  }
2365
2070
  }
2366
- }
2367
- }
2368
-
2369
- bool gPrintChanges = false;
2370
- bool gPrintSkips = false;
2371
-
2372
- static const char* spacer =
2373
- " ";
2374
2071
 
2375
- static const char* spacerWithLength(const unsigned long level) {
2376
- const size_t spacerLen = strlen(spacer);
2377
- if (level > spacerLen) {
2378
- return &spacer[0];
2379
- } else {
2380
- return &spacer[spacerLen - level];
2381
- }
2382
- }
2383
-
2384
- static const char* measureModeName(
2385
- const MeasureMode mode,
2386
- const bool performLayout) {
2387
- switch (mode) {
2388
- case MeasureMode::Undefined:
2389
- return performLayout ? "LAY_UNDEFINED" : "UNDEFINED";
2390
- case MeasureMode::Exactly:
2391
- return performLayout ? "LAY_EXACTLY" : "EXACTLY";
2392
- case MeasureMode::AtMost:
2393
- return performLayout ? "LAY_AT_MOST" : "AT_MOST";
2072
+ // STEP 11: SIZING AND POSITIONING ABSOLUTE CHILDREN
2073
+ // Let the containing block layout its absolute descendants.
2074
+ if (node->style().positionType() != PositionType::Static ||
2075
+ node->alwaysFormsContainingBlock() || depth == 1) {
2076
+ layoutAbsoluteDescendants(
2077
+ node,
2078
+ node,
2079
+ isMainAxisRow ? sizingModeMainDim : sizingModeCrossDim,
2080
+ direction,
2081
+ layoutMarkerData,
2082
+ depth,
2083
+ generationCount,
2084
+ 0.0f,
2085
+ 0.0f,
2086
+ availableInnerWidth,
2087
+ availableInnerHeight);
2088
+ }
2394
2089
  }
2395
- return "";
2396
2090
  }
2397
2091
 
2398
2092
  //
@@ -2408,8 +2102,8 @@ bool calculateLayoutInternal(
2408
2102
  const float availableWidth,
2409
2103
  const float availableHeight,
2410
2104
  const Direction ownerDirection,
2411
- const MeasureMode widthMeasureMode,
2412
- const MeasureMode heightMeasureMode,
2105
+ const SizingMode widthSizingMode,
2106
+ const SizingMode heightSizingMode,
2413
2107
  const float ownerWidth,
2414
2108
  const float ownerHeight,
2415
2109
  const bool performLayout,
@@ -2430,8 +2124,8 @@ bool calculateLayoutInternal(
2430
2124
  layout->nextCachedMeasurementsIndex = 0;
2431
2125
  layout->cachedLayout.availableWidth = -1;
2432
2126
  layout->cachedLayout.availableHeight = -1;
2433
- layout->cachedLayout.widthMeasureMode = MeasureMode::Undefined;
2434
- layout->cachedLayout.heightMeasureMode = MeasureMode::Undefined;
2127
+ layout->cachedLayout.widthSizingMode = SizingMode::MaxContent;
2128
+ layout->cachedLayout.heightSizingMode = SizingMode::MaxContent;
2435
2129
  layout->cachedLayout.computedWidth = -1;
2436
2130
  layout->cachedLayout.computedHeight = -1;
2437
2131
  }
@@ -2448,19 +2142,19 @@ bool calculateLayoutInternal(
2448
2142
  // measurements if at all possible.
2449
2143
  if (node->hasMeasureFunc()) {
2450
2144
  const float marginAxisRow =
2451
- node->getMarginForAxis(FlexDirection::Row, ownerWidth).unwrap();
2145
+ node->style().computeMarginForAxis(FlexDirection::Row, ownerWidth);
2452
2146
  const float marginAxisColumn =
2453
- node->getMarginForAxis(FlexDirection::Column, ownerWidth).unwrap();
2147
+ node->style().computeMarginForAxis(FlexDirection::Column, ownerWidth);
2454
2148
 
2455
2149
  // First, try to use the layout cache.
2456
2150
  if (canUseCachedMeasurement(
2457
- widthMeasureMode,
2151
+ widthSizingMode,
2458
2152
  availableWidth,
2459
- heightMeasureMode,
2153
+ heightSizingMode,
2460
2154
  availableHeight,
2461
- layout->cachedLayout.widthMeasureMode,
2155
+ layout->cachedLayout.widthSizingMode,
2462
2156
  layout->cachedLayout.availableWidth,
2463
- layout->cachedLayout.heightMeasureMode,
2157
+ layout->cachedLayout.heightSizingMode,
2464
2158
  layout->cachedLayout.availableHeight,
2465
2159
  layout->cachedLayout.computedWidth,
2466
2160
  layout->cachedLayout.computedHeight,
@@ -2472,13 +2166,13 @@ bool calculateLayoutInternal(
2472
2166
  // Try to use the measurement cache.
2473
2167
  for (size_t i = 0; i < layout->nextCachedMeasurementsIndex; i++) {
2474
2168
  if (canUseCachedMeasurement(
2475
- widthMeasureMode,
2169
+ widthSizingMode,
2476
2170
  availableWidth,
2477
- heightMeasureMode,
2171
+ heightSizingMode,
2478
2172
  availableHeight,
2479
- layout->cachedMeasurements[i].widthMeasureMode,
2173
+ layout->cachedMeasurements[i].widthSizingMode,
2480
2174
  layout->cachedMeasurements[i].availableWidth,
2481
- layout->cachedMeasurements[i].heightMeasureMode,
2175
+ layout->cachedMeasurements[i].heightSizingMode,
2482
2176
  layout->cachedMeasurements[i].availableHeight,
2483
2177
  layout->cachedMeasurements[i].computedWidth,
2484
2178
  layout->cachedMeasurements[i].computedHeight,
@@ -2495,8 +2189,8 @@ bool calculateLayoutInternal(
2495
2189
  layout->cachedLayout.availableWidth, availableWidth) &&
2496
2190
  yoga::inexactEquals(
2497
2191
  layout->cachedLayout.availableHeight, availableHeight) &&
2498
- layout->cachedLayout.widthMeasureMode == widthMeasureMode &&
2499
- layout->cachedLayout.heightMeasureMode == heightMeasureMode) {
2192
+ layout->cachedLayout.widthSizingMode == widthSizingMode &&
2193
+ layout->cachedLayout.heightSizingMode == heightSizingMode) {
2500
2194
  cachedResults = &layout->cachedLayout;
2501
2195
  }
2502
2196
  } else {
@@ -2505,9 +2199,8 @@ bool calculateLayoutInternal(
2505
2199
  layout->cachedMeasurements[i].availableWidth, availableWidth) &&
2506
2200
  yoga::inexactEquals(
2507
2201
  layout->cachedMeasurements[i].availableHeight, availableHeight) &&
2508
- layout->cachedMeasurements[i].widthMeasureMode == widthMeasureMode &&
2509
- layout->cachedMeasurements[i].heightMeasureMode ==
2510
- heightMeasureMode) {
2202
+ layout->cachedMeasurements[i].widthSizingMode == widthSizingMode &&
2203
+ layout->cachedMeasurements[i].heightSizingMode == heightSizingMode) {
2511
2204
  cachedResults = &layout->cachedMeasurements[i];
2512
2205
  break;
2513
2206
  }
@@ -2516,61 +2209,20 @@ bool calculateLayoutInternal(
2516
2209
 
2517
2210
  if (!needToVisitNode && cachedResults != nullptr) {
2518
2211
  layout->setMeasuredDimension(
2519
- YGDimensionWidth, cachedResults->computedWidth);
2212
+ Dimension::Width, cachedResults->computedWidth);
2520
2213
  layout->setMeasuredDimension(
2521
- YGDimensionHeight, cachedResults->computedHeight);
2214
+ Dimension::Height, cachedResults->computedHeight);
2522
2215
 
2523
2216
  (performLayout ? layoutMarkerData.cachedLayouts
2524
2217
  : layoutMarkerData.cachedMeasures) += 1;
2525
-
2526
- if (gPrintChanges && gPrintSkips) {
2527
- yoga::log(
2528
- node,
2529
- LogLevel::Verbose,
2530
- "%s%d.{[skipped] ",
2531
- spacerWithLength(depth),
2532
- depth);
2533
- node->print();
2534
- yoga::log(
2535
- node,
2536
- LogLevel::Verbose,
2537
- "wm: %s, hm: %s, aw: %f ah: %f => d: (%f, %f) %s\n",
2538
- measureModeName(widthMeasureMode, performLayout),
2539
- measureModeName(heightMeasureMode, performLayout),
2540
- availableWidth,
2541
- availableHeight,
2542
- cachedResults->computedWidth,
2543
- cachedResults->computedHeight,
2544
- LayoutPassReasonToString(reason));
2545
- }
2546
2218
  } else {
2547
- if (gPrintChanges) {
2548
- yoga::log(
2549
- node,
2550
- LogLevel::Verbose,
2551
- "%s%d.{%s",
2552
- spacerWithLength(depth),
2553
- depth,
2554
- needToVisitNode ? "*" : "");
2555
- node->print();
2556
- yoga::log(
2557
- node,
2558
- LogLevel::Verbose,
2559
- "wm: %s, hm: %s, aw: %f ah: %f %s\n",
2560
- measureModeName(widthMeasureMode, performLayout),
2561
- measureModeName(heightMeasureMode, performLayout),
2562
- availableWidth,
2563
- availableHeight,
2564
- LayoutPassReasonToString(reason));
2565
- }
2566
-
2567
2219
  calculateLayoutImpl(
2568
2220
  node,
2569
2221
  availableWidth,
2570
2222
  availableHeight,
2571
2223
  ownerDirection,
2572
- widthMeasureMode,
2573
- heightMeasureMode,
2224
+ widthSizingMode,
2225
+ heightSizingMode,
2574
2226
  ownerWidth,
2575
2227
  ownerHeight,
2576
2228
  performLayout,
@@ -2579,26 +2231,6 @@ bool calculateLayoutInternal(
2579
2231
  generationCount,
2580
2232
  reason);
2581
2233
 
2582
- if (gPrintChanges) {
2583
- yoga::log(
2584
- node,
2585
- LogLevel::Verbose,
2586
- "%s%d.}%s",
2587
- spacerWithLength(depth),
2588
- depth,
2589
- needToVisitNode ? "*" : "");
2590
- node->print();
2591
- yoga::log(
2592
- node,
2593
- LogLevel::Verbose,
2594
- "wm: %s, hm: %s, d: (%f, %f) %s\n",
2595
- measureModeName(widthMeasureMode, performLayout),
2596
- measureModeName(heightMeasureMode, performLayout),
2597
- layout->measuredDimension(YGDimensionWidth),
2598
- layout->measuredDimension(YGDimensionHeight),
2599
- LayoutPassReasonToString(reason));
2600
- }
2601
-
2602
2234
  layout->lastOwnerDirection = ownerDirection;
2603
2235
 
2604
2236
  if (cachedResults == nullptr) {
@@ -2608,9 +2240,6 @@ bool calculateLayoutInternal(
2608
2240
 
2609
2241
  if (layout->nextCachedMeasurementsIndex ==
2610
2242
  LayoutResults::MaxCachedMeasurements) {
2611
- if (gPrintChanges) {
2612
- yoga::log(node, LogLevel::Verbose, "Out of cache entries!\n");
2613
- }
2614
2243
  layout->nextCachedMeasurementsIndex = 0;
2615
2244
  }
2616
2245
 
@@ -2627,22 +2256,22 @@ bool calculateLayoutInternal(
2627
2256
 
2628
2257
  newCacheEntry->availableWidth = availableWidth;
2629
2258
  newCacheEntry->availableHeight = availableHeight;
2630
- newCacheEntry->widthMeasureMode = widthMeasureMode;
2631
- newCacheEntry->heightMeasureMode = heightMeasureMode;
2259
+ newCacheEntry->widthSizingMode = widthSizingMode;
2260
+ newCacheEntry->heightSizingMode = heightSizingMode;
2632
2261
  newCacheEntry->computedWidth =
2633
- layout->measuredDimension(YGDimensionWidth);
2262
+ layout->measuredDimension(Dimension::Width);
2634
2263
  newCacheEntry->computedHeight =
2635
- layout->measuredDimension(YGDimensionHeight);
2264
+ layout->measuredDimension(Dimension::Height);
2636
2265
  }
2637
2266
  }
2638
2267
 
2639
2268
  if (performLayout) {
2640
2269
  node->setLayoutDimension(
2641
- node->getLayout().measuredDimension(YGDimensionWidth),
2642
- YGDimensionWidth);
2270
+ node->getLayout().measuredDimension(Dimension::Width),
2271
+ Dimension::Width);
2643
2272
  node->setLayoutDimension(
2644
- node->getLayout().measuredDimension(YGDimensionHeight),
2645
- YGDimensionHeight);
2273
+ node->getLayout().measuredDimension(Dimension::Height),
2274
+ Dimension::Height);
2646
2275
 
2647
2276
  node->setHasNewLayout(true);
2648
2277
  node->setDirty(false);
@@ -2678,55 +2307,53 @@ void calculateLayout(
2678
2307
  gCurrentGenerationCount.fetch_add(1, std::memory_order_relaxed);
2679
2308
  node->resolveDimension();
2680
2309
  float width = YGUndefined;
2681
- MeasureMode widthMeasureMode = MeasureMode::Undefined;
2682
- const auto& style = node->getStyle();
2683
- if (styleDefinesDimension(node, FlexDirection::Row, ownerWidth)) {
2684
- width = (yoga::resolveValue(
2685
- node->getResolvedDimension(dimension(FlexDirection::Row)),
2686
- ownerWidth) +
2687
- node->getMarginForAxis(FlexDirection::Row, ownerWidth))
2688
- .unwrap();
2689
- widthMeasureMode = MeasureMode::Exactly;
2690
- } else if (!yoga::resolveValue(
2691
- style.maxDimension(YGDimensionWidth), ownerWidth)
2692
- .isUndefined()) {
2693
- width = yoga::resolveValue(style.maxDimension(YGDimensionWidth), ownerWidth)
2694
- .unwrap();
2695
- widthMeasureMode = MeasureMode::AtMost;
2310
+ SizingMode widthSizingMode = SizingMode::MaxContent;
2311
+ const auto& style = node->style();
2312
+ if (node->hasDefiniteLength(Dimension::Width, ownerWidth)) {
2313
+ width =
2314
+ (node->getResolvedDimension(dimension(FlexDirection::Row))
2315
+ .resolve(ownerWidth)
2316
+ .unwrap() +
2317
+ node->style().computeMarginForAxis(FlexDirection::Row, ownerWidth));
2318
+ widthSizingMode = SizingMode::StretchFit;
2319
+ } else if (style.maxDimension(Dimension::Width)
2320
+ .resolve(ownerWidth)
2321
+ .isDefined()) {
2322
+ width = style.maxDimension(Dimension::Width).resolve(ownerWidth).unwrap();
2323
+ widthSizingMode = SizingMode::FitContent;
2696
2324
  } else {
2697
2325
  width = ownerWidth;
2698
- widthMeasureMode = yoga::isUndefined(width) ? MeasureMode::Undefined
2699
- : MeasureMode::Exactly;
2326
+ widthSizingMode = yoga::isUndefined(width) ? SizingMode::MaxContent
2327
+ : SizingMode::StretchFit;
2700
2328
  }
2701
2329
 
2702
2330
  float height = YGUndefined;
2703
- MeasureMode heightMeasureMode = MeasureMode::Undefined;
2704
- if (styleDefinesDimension(node, FlexDirection::Column, ownerHeight)) {
2705
- height = (yoga::resolveValue(
2706
- node->getResolvedDimension(dimension(FlexDirection::Column)),
2707
- ownerHeight) +
2708
- node->getMarginForAxis(FlexDirection::Column, ownerWidth))
2709
- .unwrap();
2710
- heightMeasureMode = MeasureMode::Exactly;
2711
- } else if (!yoga::resolveValue(
2712
- style.maxDimension(YGDimensionHeight), ownerHeight)
2713
- .isUndefined()) {
2331
+ SizingMode heightSizingMode = SizingMode::MaxContent;
2332
+ if (node->hasDefiniteLength(Dimension::Height, ownerHeight)) {
2333
+ height =
2334
+ (node->getResolvedDimension(dimension(FlexDirection::Column))
2335
+ .resolve(ownerHeight)
2336
+ .unwrap() +
2337
+ node->style().computeMarginForAxis(FlexDirection::Column, ownerWidth));
2338
+ heightSizingMode = SizingMode::StretchFit;
2339
+ } else if (style.maxDimension(Dimension::Height)
2340
+ .resolve(ownerHeight)
2341
+ .isDefined()) {
2714
2342
  height =
2715
- yoga::resolveValue(style.maxDimension(YGDimensionHeight), ownerHeight)
2716
- .unwrap();
2717
- heightMeasureMode = MeasureMode::AtMost;
2343
+ style.maxDimension(Dimension::Height).resolve(ownerHeight).unwrap();
2344
+ heightSizingMode = SizingMode::FitContent;
2718
2345
  } else {
2719
2346
  height = ownerHeight;
2720
- heightMeasureMode = yoga::isUndefined(height) ? MeasureMode::Undefined
2721
- : MeasureMode::Exactly;
2347
+ heightSizingMode = yoga::isUndefined(height) ? SizingMode::MaxContent
2348
+ : SizingMode::StretchFit;
2722
2349
  }
2723
2350
  if (calculateLayoutInternal(
2724
2351
  node,
2725
2352
  width,
2726
2353
  height,
2727
2354
  ownerDirection,
2728
- widthMeasureMode,
2729
- heightMeasureMode,
2355
+ widthSizingMode,
2356
+ heightSizingMode,
2730
2357
  ownerWidth,
2731
2358
  ownerHeight,
2732
2359
  true,
@@ -2737,14 +2364,6 @@ void calculateLayout(
2737
2364
  node->setPosition(
2738
2365
  node->getLayout().direction(), ownerWidth, ownerHeight, ownerWidth);
2739
2366
  roundLayoutResultsToPixelGrid(node, 0.0f, 0.0f);
2740
-
2741
- #ifdef DEBUG
2742
- if (node->getConfig()->shouldPrintTree()) {
2743
- yoga::print(
2744
- node,
2745
- PrintOptions::Layout | PrintOptions::Children | PrintOptions::Style);
2746
- }
2747
- #endif
2748
2367
  }
2749
2368
 
2750
2369
  Event::publish<Event::LayoutPassEnd>(node, {&markerData});