react-native-tvos 0.77.1-0 → 0.78.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 (636) hide show
  1. package/Libraries/Animated/animations/Animation.js +22 -1
  2. package/Libraries/Animated/animations/DecayAnimation.js +1 -0
  3. package/Libraries/Animated/animations/SpringAnimation.js +1 -0
  4. package/Libraries/Animated/animations/TimingAnimation.js +1 -0
  5. package/Libraries/Animated/nodes/AnimatedAddition.js +9 -2
  6. package/Libraries/Animated/nodes/AnimatedColor.js +4 -1
  7. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +10 -2
  8. package/Libraries/Animated/nodes/AnimatedDivision.js +9 -2
  9. package/Libraries/Animated/nodes/AnimatedInterpolation.js +5 -1
  10. package/Libraries/Animated/nodes/AnimatedModulo.js +5 -2
  11. package/Libraries/Animated/nodes/AnimatedMultiplication.js +9 -2
  12. package/Libraries/Animated/nodes/AnimatedNode.js +25 -46
  13. package/Libraries/Animated/nodes/AnimatedObject.js +9 -2
  14. package/Libraries/Animated/nodes/AnimatedProps.js +5 -1
  15. package/Libraries/Animated/nodes/AnimatedStyle.js +5 -1
  16. package/Libraries/Animated/nodes/AnimatedSubtraction.js +9 -2
  17. package/Libraries/Animated/nodes/AnimatedTracking.js +5 -1
  18. package/Libraries/Animated/nodes/AnimatedTransform.js +5 -1
  19. package/Libraries/Animated/nodes/AnimatedValue.js +63 -4
  20. package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -1
  21. package/Libraries/Animated/useAnimatedProps.js +14 -56
  22. package/Libraries/AppDelegate/RCTAppDelegate.h +6 -48
  23. package/Libraries/AppDelegate/RCTAppDelegate.mm +5 -230
  24. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.h +21 -0
  25. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +123 -0
  26. package/Libraries/AppDelegate/RCTReactNativeFactory.h +98 -0
  27. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +266 -0
  28. package/Libraries/AppDelegate/RCTRootViewFactory.mm +1 -1
  29. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +0 -1
  30. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +1 -1
  31. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
  32. package/Libraries/Components/LayoutConformance/LayoutConformance.d.ts +21 -0
  33. package/Libraries/Components/LayoutConformance/LayoutConformance.js +59 -0
  34. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +29 -0
  35. package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
  36. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
  37. package/Libraries/Components/TextInput/TextInput.d.ts +5 -0
  38. package/Libraries/Components/TextInput/TextInput.flow.js +6 -0
  39. package/Libraries/Components/TextInput/TextInput.js +6 -0
  40. package/Libraries/Components/View/ViewPropTypes.d.ts +4 -5
  41. package/Libraries/Components/View/ViewPropTypes.js +0 -9
  42. package/Libraries/Core/ReactNativeVersion.js +2 -2
  43. package/Libraries/Core/setUpBatchedBridge.js +1 -16
  44. package/Libraries/EventEmitter/RCTEventEmitter.js +2 -6
  45. package/Libraries/Image/AssetSourceResolver.js +11 -0
  46. package/Libraries/Image/RCTImageView.mm +3 -3
  47. package/Libraries/Inspector/BorderBox.js +26 -14
  48. package/Libraries/Inspector/BoxInspector.js +60 -42
  49. package/Libraries/Inspector/ElementBox.js +55 -48
  50. package/Libraries/Inspector/StyleInspector.js +36 -30
  51. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  52. package/Libraries/Lists/FlatList.d.ts +1 -1
  53. package/Libraries/Modal/Modal.js +2 -0
  54. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm +1 -1
  55. package/Libraries/NativeComponent/BaseViewConfig.android.js +0 -2
  56. package/Libraries/NativeComponent/BaseViewConfig.ios.js +0 -2
  57. package/Libraries/Network/RCTNetworking.android.js +24 -16
  58. package/Libraries/Network/RCTNetworking.ios.js +1 -46
  59. package/Libraries/Network/RCTNetworking.js.flow +1 -46
  60. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +57 -0
  61. package/Libraries/ReactNative/UIManagerProperties.js +3 -1
  62. package/Libraries/Renderer/implementations/ReactFabric-dev.js +15829 -26461
  63. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3907 -2560
  64. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4399 -2878
  65. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +16103 -26908
  66. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +4034 -2695
  67. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4535 -3045
  68. package/Libraries/Renderer/shims/ReactNativeTypes.js +5 -6
  69. package/Libraries/StyleSheet/processTransform.js +6 -0
  70. package/Libraries/Text/Text/NSTextStorage+FontScaling.m +9 -0
  71. package/Libraries/Text/Text.d.ts +6 -1
  72. package/Libraries/Text/TextInput/Multiline/RCTUITextView.h +2 -0
  73. package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +26 -0
  74. package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +2 -0
  75. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +25 -0
  76. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +2 -0
  77. package/Libraries/Text/TextInput/Singleline/RCTUITextField.h +1 -0
  78. package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +26 -0
  79. package/Libraries/Text/TextProps.js +2 -2
  80. package/Libraries/Utilities/BackHandler.android.js +5 -4
  81. package/Libraries/Utilities/BackHandler.ios.js +3 -4
  82. package/README-core.md +2 -2
  83. package/React/Base/RCTVersion.m +2 -2
  84. package/React/CoreModules/RCTDevSettings.h +0 -1
  85. package/React/CoreModules/RCTDeviceInfo.mm +4 -0
  86. package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +3 -5
  87. package/React/DevSupport/RCTInspectorDevServerHelper.mm +1 -6
  88. package/React/DevSupport/RCTPausedInDebuggerOverlayController.mm +3 -5
  89. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +0 -24
  90. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +0 -28
  91. package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +90 -57
  92. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +241 -104
  93. package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryContentView.mm +0 -5
  94. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +39 -10
  95. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +3 -3
  96. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +22 -3
  97. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +5 -0
  98. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +1 -0
  99. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +7 -2
  100. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +3 -0
  101. package/React/Fabric/Mounting/RCTMountingManager.mm +6 -9
  102. package/React/Fabric/RCTScheduler.mm +1 -1
  103. package/React/I18n/strings/da.lproj/fbt_language_pack.bin +0 -0
  104. package/React/Modules/RCTUIManager.mm +1 -2
  105. package/React/React-RCTFBReactNativeSpec.podspec +1 -0
  106. package/React/React-RCTFabric.podspec +3 -2
  107. package/React/Tests/Text/RCTParagraphComponentViewTests.mm +12 -12
  108. package/React/Views/RCTComponentData.mm +1 -5
  109. package/React/Views/RCTLayout.m +3 -0
  110. package/React/Views/RCTShadowView.h +3 -3
  111. package/React/Views/RCTShadowView.m +52 -20
  112. package/React/Views/RCTView.m +6 -2
  113. package/React/Views/RCTViewManager.m +0 -7
  114. package/React/Views/ScrollView/RCTScrollView.m +46 -19
  115. package/React-Core.podspec +1 -1
  116. package/ReactAndroid/api/ReactAndroid.api +120 -227
  117. package/ReactAndroid/build.gradle.kts +8 -13
  118. package/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +2 -0
  119. package/ReactAndroid/external-artifacts/build.gradle.kts +5 -5
  120. package/ReactAndroid/gradle.properties +1 -1
  121. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesMemoryDumper.java → HermesMemoryDumper.kt} +5 -5
  122. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesSamplingProfiler.java → HermesSamplingProfiler.kt} +8 -10
  123. package/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java +12 -59
  124. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +12 -1
  125. package/ReactAndroid/src/main/java/com/facebook/react/{ReactPackageLogger.java → ReactPackageLogger.kt} +3 -3
  126. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +8 -8
  127. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -3
  128. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +6 -0
  129. package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.kt +5 -3
  130. package/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.kt +4 -8
  131. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +11 -5
  132. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHostDelegate.kt +0 -7
  133. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +1 -3
  134. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +6 -1
  135. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +11 -23
  136. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +3 -30
  137. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/HMRClient.java +4 -1
  138. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +2 -0
  139. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.java +4 -4
  140. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +21 -26
  141. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +1 -14
  142. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.java +2 -11
  143. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.kt +88 -0
  144. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +6 -6
  145. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +24 -0
  146. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/exceptionmanager/ReactJsExceptionHandler.kt +7 -7
  147. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +21 -21
  148. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +36 -36
  149. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +8 -8
  150. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +10 -10
  151. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +40 -40
  152. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +8 -8
  153. package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +3 -3
  154. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.kt +55 -0
  155. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.kt +185 -0
  156. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/{HeadlessJsTaskEventListener.java → HeadlessJsTaskEventListener.kt} +5 -6
  157. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.kt +20 -0
  158. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/LinearCountingRetryPolicy.kt +4 -4
  159. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/NoRetryPolicy.kt +7 -8
  160. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +8 -5
  161. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.kt +11 -17
  162. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.kt +1 -1
  163. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.kt +16 -0
  164. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.kt +107 -0
  165. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java +18 -19
  166. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.kt +48 -0
  167. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
  168. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +397 -0
  169. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostDelegate.kt +0 -10
  170. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +1 -1
  171. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +8 -8
  172. package/ReactAndroid/src/main/java/com/facebook/react/runtime/hermes/HermesInstance.kt +4 -10
  173. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +4 -0
  174. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +13 -12
  175. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt +15 -12
  176. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{ComponentNameResolver.java → ComponentNameResolver.kt} +4 -5
  177. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.kt +5 -2
  178. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +0 -5
  179. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.kt +21 -0
  180. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.kt +18 -0
  181. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{RootView.java → RootView.kt} +11 -12
  182. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewManager.kt +1 -1
  183. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{UIBlock.java → UIBlock.kt} +3 -3
  184. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +2 -5
  185. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +25 -0
  186. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.kt +1 -1
  187. package/{Libraries/AppDelegate/RCTAppDelegate+Protected.h → ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerWithGeneratedInterface.kt} +3 -8
  188. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +12 -5
  189. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundDrawable.kt +46 -80
  190. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BorderDrawable.kt +5 -5
  191. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CSSBackgroundDrawable.java +5 -5
  192. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CompositeBackgroundDrawable.kt +8 -9
  193. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/{BatchEventDispatchedListener.java → BatchEventDispatchedListener.kt} +3 -3
  194. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.kt +46 -0
  195. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.kt +40 -0
  196. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +2 -6
  197. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.kt +19 -0
  198. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.kt +23 -0
  199. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +241 -0
  200. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.kt +193 -0
  201. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.kt +44 -0
  202. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +37 -0
  203. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.kt +130 -0
  204. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.kt +1 -1
  205. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.kt +77 -0
  206. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +196 -0
  207. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +16 -17
  208. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +5 -0
  209. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +34 -1
  210. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.kt +11 -0
  211. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/{FpsListener.java → FpsListener.kt} +4 -4
  212. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +16 -0
  213. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +3 -3
  214. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.kt +136 -0
  215. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +2 -2
  216. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.kt +152 -0
  217. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchShadowNode.kt +52 -0
  218. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java +1 -7
  219. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +8 -13
  220. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.kt +50 -0
  221. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ShadowStyleSpan.kt +1 -1
  222. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +1 -9
  223. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.kt +111 -0
  224. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +90 -20
  225. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +2 -2
  226. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.java +22 -1
  227. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +43 -1
  228. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +86 -2
  229. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +44 -2
  230. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaUnit.java +7 -1
  231. package/ReactAndroid/src/main/jni/CMakeLists.txt +5 -6
  232. package/ReactAndroid/src/main/jni/first-party/yogajni/CMakeLists.txt +6 -1
  233. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +96 -11
  234. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.cpp +9 -0
  235. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +1 -0
  236. package/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt +0 -3
  237. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +3 -0
  238. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +41 -25
  239. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +0 -2
  240. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +63 -91
  241. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +1 -7
  242. package/ReactAndroid/src/main/jni/react/fabric/MountItem.cpp +9 -9
  243. package/ReactAndroid/src/main/jni/react/fabric/MountItem.h +6 -10
  244. package/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +0 -2
  245. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp +4 -0
  246. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +1 -0
  247. package/ReactAndroid/src/main/jni/react/featureflags/CMakeLists.txt +0 -1
  248. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +49 -49
  249. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +11 -11
  250. package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/OnLoad.cpp +1 -4
  251. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +0 -1
  252. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +0 -1
  253. package/ReactAndroid/src/main/jni/react/jni/JSLogging.cpp +4 -9
  254. package/ReactAndroid/src/main/jni/react/jni/JSLogging.h +0 -4
  255. package/ReactAndroid/src/main/jni/react/jni/JniJSModulesUnbundle.cpp +3 -4
  256. package/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp +3 -4
  257. package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.cpp +6 -0
  258. package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.h +1 -0
  259. package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.cpp +6 -0
  260. package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.h +1 -0
  261. package/ReactAndroid/src/main/jni/react/jscexecutor/OnLoad.cpp +3 -7
  262. package/ReactAndroid/src/main/jni/react/mapbuffer/CMakeLists.txt +0 -2
  263. package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +0 -1
  264. package/ReactAndroid/src/main/jni/react/reactperflogger/CMakeLists.txt +0 -1
  265. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.cpp +2 -8
  266. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.h +2 -8
  267. package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +0 -1
  268. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.cpp +18 -17
  269. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.h +1 -1
  270. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +1 -1
  271. package/ReactAndroid/src/main/jni/react/turbomodule/CMakeLists.txt +0 -2
  272. package/ReactAndroid/src/main/jni/react/uimanager/CMakeLists.txt +0 -1
  273. package/ReactAndroid/src/main/res/views/view/values/ids.xml +5 -0
  274. package/ReactCommon/React-Fabric.podspec +8 -0
  275. package/ReactCommon/React-FabricComponents.podspec +2 -2
  276. package/ReactCommon/React-FabricImage.podspec +4 -1
  277. package/ReactCommon/cxxreact/CxxNativeModule.cpp +3 -3
  278. package/ReactCommon/cxxreact/Instance.cpp +6 -6
  279. package/ReactCommon/cxxreact/JSBigString.cpp +1 -1
  280. package/ReactCommon/cxxreact/JSExecutor.cpp +4 -2
  281. package/ReactCommon/cxxreact/ModuleRegistry.cpp +6 -6
  282. package/ReactCommon/cxxreact/NativeToJsBridge.cpp +3 -3
  283. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  284. package/ReactCommon/cxxreact/SystraceSection.h +8 -141
  285. package/ReactCommon/cxxreact/TraceSection.h +181 -0
  286. package/ReactCommon/cxxreact/tests/jsbigstring.cpp +19 -0
  287. package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +2 -2
  288. package/ReactCommon/jsc/JSCRuntime.cpp +0 -2
  289. package/ReactCommon/jsc/React-jsc.podspec +1 -1
  290. package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +27 -19
  291. package/ReactCommon/jserrorhandler/JsErrorHandler.h +5 -3
  292. package/ReactCommon/jserrorhandler/StackTraceParser.cpp +16 -16
  293. package/ReactCommon/jserrorhandler/StackTraceParser.h +1 -1
  294. package/ReactCommon/jserrorhandler/tests/StackTraceParserTest.cpp +252 -246
  295. package/ReactCommon/jsi/jsi/CMakeLists.txt +0 -3
  296. package/ReactCommon/jsi/jsi/JSIDynamic.cpp +1 -1
  297. package/ReactCommon/jsi/jsi/JSIDynamic.h +1 -1
  298. package/ReactCommon/jsi/jsi/decorator.h +61 -0
  299. package/ReactCommon/jsi/jsi/jsi-inl.h +4 -0
  300. package/ReactCommon/jsi/jsi/jsi.cpp +37 -0
  301. package/ReactCommon/jsi/jsi/jsi.h +81 -0
  302. package/ReactCommon/jsi/jsi/test/testlib.cpp +88 -0
  303. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +9 -9
  304. package/ReactCommon/jsinspector-modern/CMakeLists.txt +1 -1
  305. package/ReactCommon/jsinspector-modern/HostAgent.cpp +3 -7
  306. package/ReactCommon/jsinspector-modern/HostTarget.cpp +22 -1
  307. package/ReactCommon/jsinspector-modern/HostTarget.h +1 -1
  308. package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +19 -4
  309. package/ReactCommon/jsinspector-modern/InspectorFlags.h +14 -0
  310. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +21 -10
  311. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +12 -11
  312. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +2 -16
  313. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +14 -14
  314. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.h +7 -13
  315. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestGenericEngineAdapter.cpp +1 -1
  316. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.cpp +1 -3
  317. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +3 -3
  318. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h +1 -1
  319. package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +26 -0
  320. package/ReactCommon/jsinspector-modern/tracing/CdpTracing.h +21 -0
  321. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +187 -0
  322. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +126 -0
  323. package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +56 -0
  324. package/ReactCommon/react/featureflags/CMakeLists.txt +3 -0
  325. package/ReactCommon/react/featureflags/React-featureflags.podspec +7 -0
  326. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +15 -15
  327. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +18 -18
  328. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +88 -88
  329. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +9 -9
  330. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +17 -17
  331. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +454 -0
  332. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +5 -5
  333. package/ReactCommon/react/featureflags/tests/ReactNativeFeatureFlagsDynamicProviderTest.cpp +78 -0
  334. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +2 -3
  335. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +3 -3
  336. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +1 -5
  337. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +13 -23
  338. package/ReactCommon/react/nativemodule/cputime/CPUTime.h +55 -0
  339. package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.cpp +35 -0
  340. package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.h +28 -0
  341. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +18 -18
  342. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +8 -8
  343. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -0
  344. package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.cpp +5 -8
  345. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +3 -3
  346. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +22 -43
  347. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.h +0 -15
  348. package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
  349. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +22 -2
  350. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +9 -4
  351. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
  352. package/ReactCommon/react/renderer/animations/CMakeLists.txt +0 -1
  353. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +1 -1
  354. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +25 -19
  355. package/ReactCommon/react/renderer/animations/primitives.h +1 -1
  356. package/ReactCommon/react/renderer/animations/utils.h +3 -4
  357. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +31 -9
  358. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +81 -31
  359. package/ReactCommon/react/renderer/componentregistry/CMakeLists.txt +0 -1
  360. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.cpp +4 -1
  361. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +2 -0
  362. package/ReactCommon/react/renderer/components/image/ImageEventEmitter.cpp +2 -2
  363. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +5 -5
  364. package/ReactCommon/react/renderer/components/image/ImageProps.h +1 -1
  365. package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +38 -10
  366. package/ReactCommon/react/renderer/components/image/ImageShadowNode.h +1 -1
  367. package/ReactCommon/react/renderer/components/image/ImageState.cpp +2 -3
  368. package/ReactCommon/react/renderer/components/image/ImageState.h +9 -6
  369. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -4
  370. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarShadowNode.h +7 -0
  371. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +2 -2
  372. package/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt +2 -2
  373. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.cpp +33 -0
  374. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h +17 -0
  375. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.cpp +3 -2
  376. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +2 -1
  377. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -4
  378. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchShadowNode.h +7 -0
  379. package/ReactCommon/react/renderer/{uimanager/bindingUtils.h → components/text/ParagraphComponentDescriptor.cpp} +2 -8
  380. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +10 -7
  381. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.cpp +23 -0
  382. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +8 -1
  383. package/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +243 -0
  384. package/ReactCommon/react/renderer/components/textinput/TextInputState.cpp +71 -0
  385. package/ReactCommon/react/renderer/components/textinput/{platform/ios/react/renderer/components/iostextinput/TextInputState.h → TextInputState.h} +27 -7
  386. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +6 -13
  387. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h +0 -2
  388. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +145 -144
  389. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +27 -29
  390. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h +4 -5
  391. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.cpp +0 -26
  392. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h +0 -6
  393. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.cpp +0 -147
  394. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h +5 -57
  395. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +60 -70
  396. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +3 -3
  397. package/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h +18 -0
  398. package/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h +36 -0
  399. package/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h +28 -0
  400. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +4 -0
  401. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +0 -1
  402. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +21 -22
  403. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
  404. package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +3 -1
  405. package/ReactCommon/react/renderer/components/view/conversions.h +117 -43
  406. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +3 -2
  407. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +3 -1
  408. package/ReactCommon/react/renderer/components/view/primitives.h +1 -1
  409. package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +12 -12
  410. package/ReactCommon/react/renderer/core/CMakeLists.txt +0 -1
  411. package/ReactCommon/react/renderer/core/ComponentDescriptor.cpp +4 -2
  412. package/ReactCommon/react/renderer/core/ComponentDescriptor.h +4 -2
  413. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +17 -2
  414. package/ReactCommon/react/renderer/core/DynamicPropsUtilities.cpp +26 -0
  415. package/ReactCommon/react/renderer/core/DynamicPropsUtilities.h +4 -0
  416. package/ReactCommon/react/renderer/core/EventEmitter.cpp +3 -3
  417. package/ReactCommon/react/renderer/core/Props.cpp +16 -5
  418. package/ReactCommon/react/renderer/core/Props.h +11 -4
  419. package/ReactCommon/react/renderer/core/RawProps.cpp +30 -5
  420. package/ReactCommon/react/renderer/core/RawProps.h +10 -1
  421. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +7 -2
  422. package/ReactCommon/react/renderer/core/RawPropsParser.h +7 -1
  423. package/ReactCommon/react/renderer/core/RawPropsPrimitives.h +1 -0
  424. package/ReactCommon/react/renderer/core/RawValue.h +315 -22
  425. package/ReactCommon/react/renderer/core/tests/DynamicPropsUtilitiesTest.cpp +95 -4
  426. package/ReactCommon/react/renderer/debug/debugStringConvertibleUtils.h +19 -4
  427. package/ReactCommon/react/renderer/graphics/CMakeLists.txt +7 -1
  428. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +7 -5
  429. package/ReactCommon/react/renderer/graphics/Transform.cpp +11 -2
  430. package/ReactCommon/react/renderer/graphics/Transform.h +2 -1
  431. package/ReactCommon/react/renderer/imagemanager/CMakeLists.txt +4 -2
  432. package/ReactCommon/react/renderer/imagemanager/ImageManager.h +7 -0
  433. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +43 -0
  434. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +36 -0
  435. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +43 -0
  436. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +94 -0
  437. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +101 -0
  438. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageManager.cpp +9 -1
  439. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequestParams.h +30 -0
  440. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageManager.mm +9 -0
  441. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequestParams.h +30 -0
  442. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImageManager.mm +2 -2
  443. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +187 -152
  444. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +4 -5
  445. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +10 -16
  446. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -12
  447. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +44 -14
  448. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +8 -4
  449. package/ReactCommon/react/renderer/mounting/stubs/stubs.cpp +1 -1
  450. package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +116 -193
  451. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +0 -3
  452. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +7 -4
  453. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.h +2 -1
  454. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +7 -8
  455. package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.cpp +6 -6
  456. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +3 -1
  457. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +2 -0
  458. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +11 -11
  459. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +14 -15
  460. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +4 -3
  461. package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +0 -1
  462. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +6 -37
  463. package/ReactCommon/react/renderer/scheduler/Scheduler.h +0 -3
  464. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +15 -11
  465. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +1 -0
  466. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +56 -2
  467. package/ReactCommon/react/renderer/scheduler/SurfaceManager.h +23 -3
  468. package/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt +1 -2
  469. package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManager.cpp +26 -0
  470. package/ReactCommon/react/renderer/textlayoutmanager/{platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h → TextLayoutManager.h} +18 -17
  471. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +77 -89
  472. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.cpp +6 -10
  473. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +6 -2
  474. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +23 -1
  475. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +11 -32
  476. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +9 -23
  477. package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.cpp +88 -0
  478. package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.h +50 -0
  479. package/ReactCommon/react/renderer/uimanager/CMakeLists.txt +0 -1
  480. package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.h +3 -40
  481. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +23 -18
  482. package/ReactCommon/react/renderer/uimanager/UIManager.h +2 -0
  483. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -31
  484. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +0 -4
  485. package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +10 -10
  486. package/ReactCommon/react/runtime/CMakeLists.txt +0 -1
  487. package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -2
  488. package/ReactCommon/react/runtime/ReactInstance.cpp +43 -57
  489. package/ReactCommon/react/runtime/TimerManager.cpp +4 -4
  490. package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +5 -1
  491. package/ReactCommon/react/runtime/hermes/HermesInstance.h +0 -2
  492. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.h +2 -6
  493. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.mm +6 -15
  494. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +3 -1
  495. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +15 -15
  496. package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +5 -4
  497. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +0 -3
  498. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.cpp +33 -17
  499. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.h +8 -2
  500. package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.cpp → ReactPerfettoLogger.cpp} +25 -24
  501. package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.h → ReactPerfettoLogger.h} +9 -9
  502. package/ReactCommon/yoga/yoga/YGEnums.cpp +6 -0
  503. package/ReactCommon/yoga/yoga/YGEnums.h +4 -1
  504. package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +124 -24
  505. package/ReactCommon/yoga/yoga/YGNodeStyle.h +22 -1
  506. package/ReactCommon/yoga/yoga/YGValue.h +3 -0
  507. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +6 -6
  508. package/ReactCommon/yoga/yoga/algorithm/FlexLine.cpp +2 -2
  509. package/ReactCommon/yoga/yoga/algorithm/FlexLine.h +1 -1
  510. package/ReactCommon/yoga/yoga/algorithm/PixelGrid.cpp +9 -6
  511. package/ReactCommon/yoga/yoga/enums/Unit.h +4 -1
  512. package/ReactCommon/yoga/yoga/node/Node.cpp +8 -8
  513. package/ReactCommon/yoga/yoga/node/Node.h +5 -5
  514. package/ReactCommon/yoga/yoga/style/Style.h +14 -12
  515. package/ReactCommon/yoga/yoga/style/StyleLength.h +14 -7
  516. package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +139 -0
  517. package/ReactCommon/yoga/yoga/style/StyleValueHandle.h +8 -0
  518. package/ReactCommon/yoga/yoga/style/StyleValuePool.h +60 -3
  519. package/gradle/libs.versions.toml +6 -2
  520. package/index.js +5 -0
  521. package/package.json +12 -13
  522. package/react-native.config.js +6 -0
  523. package/scripts/cocoapods/codegen_utils.rb +4 -4
  524. package/scripts/cocoapods/new_architecture.rb +3 -3
  525. package/scripts/cocoapods/utils.rb +4 -3
  526. package/scripts/codegen/generate-artifacts-executor.js +8 -4
  527. package/scripts/generate-codegen-artifacts.js +6 -1
  528. package/scripts/react-native-xcode.sh +1 -1
  529. package/scripts/react_native_pods.rb +3 -3
  530. package/scripts/xcode/ccache-clang++.sh +1 -1
  531. package/scripts/xcode/ccache-clang.sh +1 -1
  532. package/sdks/.hermesversion +1 -1
  533. package/sdks/hermes-engine/utils/build-hermes-xcode.sh +1 -1
  534. package/sdks/hermesc/linux64-bin/hermesc +0 -0
  535. package/sdks/hermesc/osx-bin/hermes +0 -0
  536. package/sdks/hermesc/osx-bin/hermesc +0 -0
  537. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  538. package/src/private/animated/NativeAnimatedValidation.js +1 -1
  539. package/src/private/featureflags/README.md +5 -0
  540. package/src/private/featureflags/ReactNativeFeatureFlags.js +33 -27
  541. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -5
  542. package/src/private/renderer/errorhandling/ErrorHandlers.js +12 -55
  543. package/src/private/specs/modules/{NativeJSCSamplingProfiler.js → NativeCPUTime.js} +7 -2
  544. package/src/private/specs/modules/NativeFantom.js +37 -0
  545. package/src/private/utilities/ensureInstance.js +21 -0
  546. package/src/private/webapis/dom/nodes/ReactNativeElement.js +49 -6
  547. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +17 -9
  548. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +11 -11
  549. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +1 -1
  550. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -1
  551. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  552. package/src/private/webapis/performance/Performance.js +0 -12
  553. package/src/private/webapis/performance/specs/NativePerformance.js +0 -11
  554. package/types/index.d.ts +1 -0
  555. package/types/public/ReactNativeTVTypes.d.ts +49 -51
  556. package/Libraries/HeapCapture/HeapCapture.js +0 -29
  557. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +0 -13
  558. package/Libraries/Performance/NativeJSCSamplingProfiler.js +0 -13
  559. package/Libraries/Performance/SamplingProfiler.js +0 -39
  560. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +0 -334
  561. package/React/Inspector/RCTInspectorPackagerConnection.m +0 -325
  562. package/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedResultAsyncTask.java +0 -50
  563. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorPackagerConnection.java +0 -314
  564. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/JSCHeapCapture.java +0 -76
  565. package/ReactAndroid/src/main/java/com/facebook/react/fabric/EmptyReactNativeConfig.kt +0 -36
  566. package/ReactAndroid/src/main/java/com/facebook/react/fabric/GuardedFrameCallback.kt +0 -33
  567. package/ReactAndroid/src/main/java/com/facebook/react/fabric/ReactNativeConfig.kt +0 -54
  568. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +0 -83
  569. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.java +0 -121
  570. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +0 -214
  571. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.java +0 -22
  572. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/XmlFormat.kt +0 -143
  573. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.java +0 -17
  574. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +0 -124
  575. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.java +0 -58
  576. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.java +0 -422
  577. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FabricViewStateManager.java +0 -98
  578. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +0 -25
  579. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.java +0 -20
  580. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +0 -45
  581. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.java +0 -37
  582. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.java +0 -19
  583. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.java +0 -24
  584. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java +0 -257
  585. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.java +0 -210
  586. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +0 -43
  587. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +0 -39
  588. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +0 -165
  589. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.java +0 -85
  590. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +0 -204
  591. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.java +0 -161
  592. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.java +0 -232
  593. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.java +0 -70
  594. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/LegacyLineHeightSpan.kt +0 -69
  595. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.java +0 -114
  596. package/ReactAndroid/src/main/jni/first-party/fb/CMakeLists.txt +0 -31
  597. package/ReactAndroid/src/main/jni/first-party/fb/assert.cpp +0 -39
  598. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ALog.h +0 -82
  599. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Build.h +0 -31
  600. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Countable.h +0 -45
  601. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Doxyfile +0 -18
  602. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Environment.h +0 -93
  603. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ProgramLocation.h +0 -58
  604. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/RefPtr.h +0 -266
  605. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/StaticInitialized.h +0 -37
  606. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ThreadLocal.h +0 -112
  607. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/assert.h +0 -43
  608. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/log.h +0 -350
  609. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/noncopyable.h +0 -20
  610. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/nonmovable.h +0 -20
  611. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/visibility.h +0 -10
  612. package/ReactAndroid/src/main/jni/first-party/fb/log.cpp +0 -102
  613. package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.cpp +0 -47
  614. package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.h +0 -38
  615. package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.cpp +0 -41
  616. package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.h +0 -35
  617. package/ReactAndroid/src/main/jni/react/perftests/OnLoad.cpp +0 -243
  618. package/ReactAndroid/src/main/jni/third-party/jsc/CMakeLists.txt +0 -15
  619. package/ReactCommon/React-nativeconfig.podspec +0 -36
  620. package/ReactCommon/cxxreact/tests/main.cpp +0 -15
  621. package/ReactCommon/react/config/CMakeLists.txt +0 -20
  622. package/ReactCommon/react/config/ReactNativeConfig.cpp +0 -28
  623. package/ReactCommon/react/config/ReactNativeConfig.h +0 -42
  624. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.cpp +0 -95
  625. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h +0 -80
  626. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputState.cpp +0 -10
  627. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.h +0 -78
  628. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.h +0 -69
  629. package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.cpp +0 -123
  630. package/ReactCommon/react/renderer/uimanager/bindingUtils.cpp +0 -79
  631. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +0 -413
  632. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +0 -181
  633. package/src/private/webapis/mutationobserver/specs/__mocks__/NativeMutationObserver.js +0 -327
  634. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewComponentDescriptor.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h} +0 -0
  635. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.cpp → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.cpp} +0 -0
  636. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h} +0 -0
@@ -177,19 +177,34 @@ float YGNodeStyleGetFlexShrink(const YGNodeConstRef nodeRef) {
177
177
 
178
178
  void YGNodeStyleSetFlexBasis(const YGNodeRef node, const float flexBasis) {
179
179
  updateStyle<&Style::flexBasis, &Style::setFlexBasis>(
180
- node, StyleLength::points(flexBasis));
180
+ node, StyleSizeLength::points(flexBasis));
181
181
  }
182
182
 
183
183
  void YGNodeStyleSetFlexBasisPercent(
184
184
  const YGNodeRef node,
185
185
  const float flexBasisPercent) {
186
186
  updateStyle<&Style::flexBasis, &Style::setFlexBasis>(
187
- node, StyleLength::percent(flexBasisPercent));
187
+ node, StyleSizeLength::percent(flexBasisPercent));
188
188
  }
189
189
 
190
190
  void YGNodeStyleSetFlexBasisAuto(const YGNodeRef node) {
191
191
  updateStyle<&Style::flexBasis, &Style::setFlexBasis>(
192
- node, StyleLength::ofAuto());
192
+ node, StyleSizeLength::ofAuto());
193
+ }
194
+
195
+ void YGNodeStyleSetFlexBasisMaxContent(const YGNodeRef node) {
196
+ updateStyle<&Style::flexBasis, &Style::setFlexBasis>(
197
+ node, StyleSizeLength::ofMaxContent());
198
+ }
199
+
200
+ void YGNodeStyleSetFlexBasisFitContent(const YGNodeRef node) {
201
+ updateStyle<&Style::flexBasis, &Style::setFlexBasis>(
202
+ node, StyleSizeLength::ofFitContent());
203
+ }
204
+
205
+ void YGNodeStyleSetFlexBasisStretch(const YGNodeRef node) {
206
+ updateStyle<&Style::flexBasis, &Style::setFlexBasis>(
207
+ node, StyleSizeLength::ofStretch());
193
208
  }
194
209
 
195
210
  YGValue YGNodeStyleGetFlexBasis(const YGNodeConstRef node) {
@@ -278,13 +293,8 @@ void YGNodeStyleSetGapPercent(YGNodeRef node, YGGutter gutter, float percent) {
278
293
  node, scopedEnum(gutter), StyleLength::percent(percent));
279
294
  }
280
295
 
281
- float YGNodeStyleGetGap(const YGNodeConstRef node, const YGGutter gutter) {
282
- auto gapLength = resolveRef(node)->style().gap(scopedEnum(gutter));
283
- if (gapLength.isUndefined() || gapLength.isAuto()) {
284
- return YGUndefined;
285
- }
286
-
287
- return static_cast<YGValue>(gapLength).value;
296
+ YGValue YGNodeStyleGetGap(const YGNodeConstRef node, const YGGutter gutter) {
297
+ return (YGValue)resolveRef(node)->style().gap(scopedEnum(gutter));
288
298
  }
289
299
 
290
300
  void YGNodeStyleSetAspectRatio(const YGNodeRef node, const float aspectRatio) {
@@ -308,17 +318,32 @@ YGBoxSizing YGNodeStyleGetBoxSizing(const YGNodeConstRef node) {
308
318
 
309
319
  void YGNodeStyleSetWidth(YGNodeRef node, float points) {
310
320
  updateStyle<&Style::dimension, &Style::setDimension>(
311
- node, Dimension::Width, StyleLength::points(points));
321
+ node, Dimension::Width, StyleSizeLength::points(points));
312
322
  }
313
323
 
314
324
  void YGNodeStyleSetWidthPercent(YGNodeRef node, float percent) {
315
325
  updateStyle<&Style::dimension, &Style::setDimension>(
316
- node, Dimension::Width, StyleLength::percent(percent));
326
+ node, Dimension::Width, StyleSizeLength::percent(percent));
317
327
  }
318
328
 
319
329
  void YGNodeStyleSetWidthAuto(YGNodeRef node) {
320
330
  updateStyle<&Style::dimension, &Style::setDimension>(
321
- node, Dimension::Width, StyleLength::ofAuto());
331
+ node, Dimension::Width, StyleSizeLength::ofAuto());
332
+ }
333
+
334
+ void YGNodeStyleSetWidthMaxContent(YGNodeRef node) {
335
+ updateStyle<&Style::dimension, &Style::setDimension>(
336
+ node, Dimension::Width, StyleSizeLength::ofMaxContent());
337
+ }
338
+
339
+ void YGNodeStyleSetWidthFitContent(YGNodeRef node) {
340
+ updateStyle<&Style::dimension, &Style::setDimension>(
341
+ node, Dimension::Width, StyleSizeLength::ofFitContent());
342
+ }
343
+
344
+ void YGNodeStyleSetWidthStretch(YGNodeRef node) {
345
+ updateStyle<&Style::dimension, &Style::setDimension>(
346
+ node, Dimension::Width, StyleSizeLength::ofStretch());
322
347
  }
323
348
 
324
349
  YGValue YGNodeStyleGetWidth(YGNodeConstRef node) {
@@ -327,17 +352,32 @@ YGValue YGNodeStyleGetWidth(YGNodeConstRef node) {
327
352
 
328
353
  void YGNodeStyleSetHeight(YGNodeRef node, float points) {
329
354
  updateStyle<&Style::dimension, &Style::setDimension>(
330
- node, Dimension::Height, StyleLength::points(points));
355
+ node, Dimension::Height, StyleSizeLength::points(points));
331
356
  }
332
357
 
333
358
  void YGNodeStyleSetHeightPercent(YGNodeRef node, float percent) {
334
359
  updateStyle<&Style::dimension, &Style::setDimension>(
335
- node, Dimension::Height, StyleLength::percent(percent));
360
+ node, Dimension::Height, StyleSizeLength::percent(percent));
336
361
  }
337
362
 
338
363
  void YGNodeStyleSetHeightAuto(YGNodeRef node) {
339
364
  updateStyle<&Style::dimension, &Style::setDimension>(
340
- node, Dimension::Height, StyleLength::ofAuto());
365
+ node, Dimension::Height, StyleSizeLength::ofAuto());
366
+ }
367
+
368
+ void YGNodeStyleSetHeightMaxContent(YGNodeRef node) {
369
+ updateStyle<&Style::dimension, &Style::setDimension>(
370
+ node, Dimension::Height, StyleSizeLength::ofMaxContent());
371
+ }
372
+
373
+ void YGNodeStyleSetHeightFitContent(YGNodeRef node) {
374
+ updateStyle<&Style::dimension, &Style::setDimension>(
375
+ node, Dimension::Height, StyleSizeLength::ofFitContent());
376
+ }
377
+
378
+ void YGNodeStyleSetHeightStretch(YGNodeRef node) {
379
+ updateStyle<&Style::dimension, &Style::setDimension>(
380
+ node, Dimension::Height, StyleSizeLength::ofStretch());
341
381
  }
342
382
 
343
383
  YGValue YGNodeStyleGetHeight(YGNodeConstRef node) {
@@ -346,12 +386,27 @@ YGValue YGNodeStyleGetHeight(YGNodeConstRef node) {
346
386
 
347
387
  void YGNodeStyleSetMinWidth(const YGNodeRef node, const float minWidth) {
348
388
  updateStyle<&Style::minDimension, &Style::setMinDimension>(
349
- node, Dimension::Width, StyleLength::points(minWidth));
389
+ node, Dimension::Width, StyleSizeLength::points(minWidth));
350
390
  }
351
391
 
352
392
  void YGNodeStyleSetMinWidthPercent(const YGNodeRef node, const float minWidth) {
353
393
  updateStyle<&Style::minDimension, &Style::setMinDimension>(
354
- node, Dimension::Width, StyleLength::percent(minWidth));
394
+ node, Dimension::Width, StyleSizeLength::percent(minWidth));
395
+ }
396
+
397
+ void YGNodeStyleSetMinWidthMaxContent(const YGNodeRef node) {
398
+ updateStyle<&Style::minDimension, &Style::setMinDimension>(
399
+ node, Dimension::Width, StyleSizeLength::ofMaxContent());
400
+ }
401
+
402
+ void YGNodeStyleSetMinWidthFitContent(const YGNodeRef node) {
403
+ updateStyle<&Style::minDimension, &Style::setMinDimension>(
404
+ node, Dimension::Width, StyleSizeLength::ofFitContent());
405
+ }
406
+
407
+ void YGNodeStyleSetMinWidthStretch(const YGNodeRef node) {
408
+ updateStyle<&Style::minDimension, &Style::setMinDimension>(
409
+ node, Dimension::Width, StyleSizeLength::ofStretch());
355
410
  }
356
411
 
357
412
  YGValue YGNodeStyleGetMinWidth(const YGNodeConstRef node) {
@@ -360,14 +415,29 @@ YGValue YGNodeStyleGetMinWidth(const YGNodeConstRef node) {
360
415
 
361
416
  void YGNodeStyleSetMinHeight(const YGNodeRef node, const float minHeight) {
362
417
  updateStyle<&Style::minDimension, &Style::setMinDimension>(
363
- node, Dimension::Height, StyleLength::points(minHeight));
418
+ node, Dimension::Height, StyleSizeLength::points(minHeight));
364
419
  }
365
420
 
366
421
  void YGNodeStyleSetMinHeightPercent(
367
422
  const YGNodeRef node,
368
423
  const float minHeight) {
369
424
  updateStyle<&Style::minDimension, &Style::setMinDimension>(
370
- node, Dimension::Height, StyleLength::percent(minHeight));
425
+ node, Dimension::Height, StyleSizeLength::percent(minHeight));
426
+ }
427
+
428
+ void YGNodeStyleSetMinHeightMaxContent(const YGNodeRef node) {
429
+ updateStyle<&Style::minDimension, &Style::setMinDimension>(
430
+ node, Dimension::Height, StyleSizeLength::ofMaxContent());
431
+ }
432
+
433
+ void YGNodeStyleSetMinHeightFitContent(const YGNodeRef node) {
434
+ updateStyle<&Style::minDimension, &Style::setMinDimension>(
435
+ node, Dimension::Height, StyleSizeLength::ofFitContent());
436
+ }
437
+
438
+ void YGNodeStyleSetMinHeightStretch(const YGNodeRef node) {
439
+ updateStyle<&Style::minDimension, &Style::setMinDimension>(
440
+ node, Dimension::Height, StyleSizeLength::ofStretch());
371
441
  }
372
442
 
373
443
  YGValue YGNodeStyleGetMinHeight(const YGNodeConstRef node) {
@@ -376,12 +446,27 @@ YGValue YGNodeStyleGetMinHeight(const YGNodeConstRef node) {
376
446
 
377
447
  void YGNodeStyleSetMaxWidth(const YGNodeRef node, const float maxWidth) {
378
448
  updateStyle<&Style::maxDimension, &Style::setMaxDimension>(
379
- node, Dimension::Width, StyleLength::points(maxWidth));
449
+ node, Dimension::Width, StyleSizeLength::points(maxWidth));
380
450
  }
381
451
 
382
452
  void YGNodeStyleSetMaxWidthPercent(const YGNodeRef node, const float maxWidth) {
383
453
  updateStyle<&Style::maxDimension, &Style::setMaxDimension>(
384
- node, Dimension::Width, StyleLength::percent(maxWidth));
454
+ node, Dimension::Width, StyleSizeLength::percent(maxWidth));
455
+ }
456
+
457
+ void YGNodeStyleSetMaxWidthMaxContent(const YGNodeRef node) {
458
+ updateStyle<&Style::maxDimension, &Style::setMaxDimension>(
459
+ node, Dimension::Width, StyleSizeLength::ofMaxContent());
460
+ }
461
+
462
+ void YGNodeStyleSetMaxWidthFitContent(const YGNodeRef node) {
463
+ updateStyle<&Style::maxDimension, &Style::setMaxDimension>(
464
+ node, Dimension::Width, StyleSizeLength::ofFitContent());
465
+ }
466
+
467
+ void YGNodeStyleSetMaxWidthStretch(const YGNodeRef node) {
468
+ updateStyle<&Style::maxDimension, &Style::setMaxDimension>(
469
+ node, Dimension::Width, StyleSizeLength::ofStretch());
385
470
  }
386
471
 
387
472
  YGValue YGNodeStyleGetMaxWidth(const YGNodeConstRef node) {
@@ -390,14 +475,29 @@ YGValue YGNodeStyleGetMaxWidth(const YGNodeConstRef node) {
390
475
 
391
476
  void YGNodeStyleSetMaxHeight(const YGNodeRef node, const float maxHeight) {
392
477
  updateStyle<&Style::maxDimension, &Style::setMaxDimension>(
393
- node, Dimension::Height, StyleLength::points(maxHeight));
478
+ node, Dimension::Height, StyleSizeLength::points(maxHeight));
394
479
  }
395
480
 
396
481
  void YGNodeStyleSetMaxHeightPercent(
397
482
  const YGNodeRef node,
398
483
  const float maxHeight) {
399
484
  updateStyle<&Style::maxDimension, &Style::setMaxDimension>(
400
- node, Dimension::Height, StyleLength::percent(maxHeight));
485
+ node, Dimension::Height, StyleSizeLength::percent(maxHeight));
486
+ }
487
+
488
+ void YGNodeStyleSetMaxHeightMaxContent(const YGNodeRef node) {
489
+ updateStyle<&Style::maxDimension, &Style::setMaxDimension>(
490
+ node, Dimension::Height, StyleSizeLength::ofMaxContent());
491
+ }
492
+
493
+ void YGNodeStyleSetMaxHeightFitContent(const YGNodeRef node) {
494
+ updateStyle<&Style::maxDimension, &Style::setMaxDimension>(
495
+ node, Dimension::Height, StyleSizeLength::ofFitContent());
496
+ }
497
+
498
+ void YGNodeStyleSetMaxHeightStretch(const YGNodeRef node) {
499
+ updateStyle<&Style::maxDimension, &Style::setMaxDimension>(
500
+ node, Dimension::Height, StyleSizeLength::ofStretch());
401
501
  }
402
502
 
403
503
  YGValue YGNodeStyleGetMaxHeight(const YGNodeConstRef node) {
@@ -64,6 +64,9 @@ YG_EXPORT float YGNodeStyleGetFlexShrink(YGNodeConstRef node);
64
64
  YG_EXPORT void YGNodeStyleSetFlexBasis(YGNodeRef node, float flexBasis);
65
65
  YG_EXPORT void YGNodeStyleSetFlexBasisPercent(YGNodeRef node, float flexBasis);
66
66
  YG_EXPORT void YGNodeStyleSetFlexBasisAuto(YGNodeRef node);
67
+ YG_EXPORT void YGNodeStyleSetFlexBasisMaxContent(YGNodeRef node);
68
+ YG_EXPORT void YGNodeStyleSetFlexBasisFitContent(YGNodeRef node);
69
+ YG_EXPORT void YGNodeStyleSetFlexBasisStretch(YGNodeRef node);
67
70
  YG_EXPORT YGValue YGNodeStyleGetFlexBasis(YGNodeConstRef node);
68
71
 
69
72
  YG_EXPORT void
@@ -93,7 +96,7 @@ YG_EXPORT void
93
96
  YGNodeStyleSetGap(YGNodeRef node, YGGutter gutter, float gapLength);
94
97
  YG_EXPORT void
95
98
  YGNodeStyleSetGapPercent(YGNodeRef node, YGGutter gutter, float gapLength);
96
- YG_EXPORT float YGNodeStyleGetGap(YGNodeConstRef node, YGGutter gutter);
99
+ YG_EXPORT YGValue YGNodeStyleGetGap(YGNodeConstRef node, YGGutter gutter);
97
100
 
98
101
  YG_EXPORT void YGNodeStyleSetBoxSizing(YGNodeRef node, YGBoxSizing boxSizing);
99
102
  YG_EXPORT YGBoxSizing YGNodeStyleGetBoxSizing(YGNodeConstRef node);
@@ -101,27 +104,45 @@ YG_EXPORT YGBoxSizing YGNodeStyleGetBoxSizing(YGNodeConstRef node);
101
104
  YG_EXPORT void YGNodeStyleSetWidth(YGNodeRef node, float width);
102
105
  YG_EXPORT void YGNodeStyleSetWidthPercent(YGNodeRef node, float width);
103
106
  YG_EXPORT void YGNodeStyleSetWidthAuto(YGNodeRef node);
107
+ YG_EXPORT void YGNodeStyleSetWidthMaxContent(YGNodeRef node);
108
+ YG_EXPORT void YGNodeStyleSetWidthFitContent(YGNodeRef node);
109
+ YG_EXPORT void YGNodeStyleSetWidthStretch(YGNodeRef node);
104
110
  YG_EXPORT YGValue YGNodeStyleGetWidth(YGNodeConstRef node);
105
111
 
106
112
  YG_EXPORT void YGNodeStyleSetHeight(YGNodeRef node, float height);
107
113
  YG_EXPORT void YGNodeStyleSetHeightPercent(YGNodeRef node, float height);
108
114
  YG_EXPORT void YGNodeStyleSetHeightAuto(YGNodeRef node);
115
+ YG_EXPORT void YGNodeStyleSetHeightMaxContent(YGNodeRef node);
116
+ YG_EXPORT void YGNodeStyleSetHeightFitContent(YGNodeRef node);
117
+ YG_EXPORT void YGNodeStyleSetHeightStretch(YGNodeRef node);
109
118
  YG_EXPORT YGValue YGNodeStyleGetHeight(YGNodeConstRef node);
110
119
 
111
120
  YG_EXPORT void YGNodeStyleSetMinWidth(YGNodeRef node, float minWidth);
112
121
  YG_EXPORT void YGNodeStyleSetMinWidthPercent(YGNodeRef node, float minWidth);
122
+ YG_EXPORT void YGNodeStyleSetMinWidthMaxContent(YGNodeRef node);
123
+ YG_EXPORT void YGNodeStyleSetMinWidthFitContent(YGNodeRef node);
124
+ YG_EXPORT void YGNodeStyleSetMinWidthStretch(YGNodeRef node);
113
125
  YG_EXPORT YGValue YGNodeStyleGetMinWidth(YGNodeConstRef node);
114
126
 
115
127
  YG_EXPORT void YGNodeStyleSetMinHeight(YGNodeRef node, float minHeight);
116
128
  YG_EXPORT void YGNodeStyleSetMinHeightPercent(YGNodeRef node, float minHeight);
129
+ YG_EXPORT void YGNodeStyleSetMinHeightMaxContent(YGNodeRef node);
130
+ YG_EXPORT void YGNodeStyleSetMinHeightFitContent(YGNodeRef node);
131
+ YG_EXPORT void YGNodeStyleSetMinHeightStretch(YGNodeRef node);
117
132
  YG_EXPORT YGValue YGNodeStyleGetMinHeight(YGNodeConstRef node);
118
133
 
119
134
  YG_EXPORT void YGNodeStyleSetMaxWidth(YGNodeRef node, float maxWidth);
120
135
  YG_EXPORT void YGNodeStyleSetMaxWidthPercent(YGNodeRef node, float maxWidth);
136
+ YG_EXPORT void YGNodeStyleSetMaxWidthMaxContent(YGNodeRef node);
137
+ YG_EXPORT void YGNodeStyleSetMaxWidthFitContent(YGNodeRef node);
138
+ YG_EXPORT void YGNodeStyleSetMaxWidthStretch(YGNodeRef node);
121
139
  YG_EXPORT YGValue YGNodeStyleGetMaxWidth(YGNodeConstRef node);
122
140
 
123
141
  YG_EXPORT void YGNodeStyleSetMaxHeight(YGNodeRef node, float maxHeight);
124
142
  YG_EXPORT void YGNodeStyleSetMaxHeightPercent(YGNodeRef node, float maxHeight);
143
+ YG_EXPORT void YGNodeStyleSetMaxHeightMaxContent(YGNodeRef node);
144
+ YG_EXPORT void YGNodeStyleSetMaxHeightFitContent(YGNodeRef node);
145
+ YG_EXPORT void YGNodeStyleSetMaxHeightStretch(YGNodeRef node);
125
146
  YG_EXPORT YGValue YGNodeStyleGetMaxHeight(YGNodeConstRef node);
126
147
 
127
148
  YG_EXPORT void YGNodeStyleSetAspectRatio(YGNodeRef node, float aspectRatio);
@@ -65,6 +65,9 @@ inline bool operator==(const YGValue& lhs, const YGValue& rhs) {
65
65
  switch (lhs.unit) {
66
66
  case YGUnitUndefined:
67
67
  case YGUnitAuto:
68
+ case YGUnitFitContent:
69
+ case YGUnitMaxContent:
70
+ case YGUnitStretch:
68
71
  return true;
69
72
  case YGUnitPoint:
70
73
  case YGUnitPercent:
@@ -741,7 +741,7 @@ static float distributeFreeSpaceSecondPass(
741
741
  marginCross;
742
742
  const bool isLoosePercentageMeasurement =
743
743
  currentLineChild->getProcessedDimension(dimension(crossAxis))
744
- .unit() == Unit::Percent &&
744
+ .isPercent() &&
745
745
  sizingModeCrossDim != SizingMode::StretchFit;
746
746
  childCrossSizingMode =
747
747
  yoga::isUndefined(childCrossSize) || isLoosePercentageMeasurement
@@ -1213,10 +1213,10 @@ static void calculateLayoutImpl(
1213
1213
  const float ownerWidth,
1214
1214
  const float ownerHeight,
1215
1215
  const bool performLayout,
1216
+ const LayoutPassReason reason,
1216
1217
  LayoutData& layoutMarkerData,
1217
1218
  const uint32_t depth,
1218
- const uint32_t generationCount,
1219
- const LayoutPassReason reason) {
1219
+ const uint32_t generationCount) {
1220
1220
  yoga::assertFatalWithNode(
1221
1221
  node,
1222
1222
  yoga::isUndefined(availableWidth)
@@ -1780,7 +1780,7 @@ static void calculateLayoutImpl(
1780
1780
  crossAxis,
1781
1781
  direction,
1782
1782
  unclampedCrossDim,
1783
- ownerHeight,
1783
+ crossAxisOwnerSize,
1784
1784
  ownerWidth) -
1785
1785
  paddingAndBorderAxisCross;
1786
1786
 
@@ -2268,10 +2268,10 @@ bool calculateLayoutInternal(
2268
2268
  ownerWidth,
2269
2269
  ownerHeight,
2270
2270
  performLayout,
2271
+ reason,
2271
2272
  layoutMarkerData,
2272
2273
  depth,
2273
- generationCount,
2274
- reason);
2274
+ generationCount);
2275
2275
 
2276
2276
  layout->lastOwnerDirection = ownerDirection;
2277
2277
  layout->configVersion = node->getConfig()->getVersion();
@@ -17,7 +17,7 @@ FlexLine calculateFlexLine(
17
17
  yoga::Node* const node,
18
18
  const Direction ownerDirection,
19
19
  const float ownerWidth,
20
- const float mainAxisownerSize,
20
+ const float mainAxisOwnerSize,
21
21
  const float availableInnerWidth,
22
22
  const float availableInnerMainDim,
23
23
  Node::LayoutableChildren::Iterator& iterator,
@@ -70,7 +70,7 @@ FlexLine calculateFlexLine(
70
70
  direction,
71
71
  mainAxis,
72
72
  child->getLayout().computedFlexBasis,
73
- mainAxisownerSize,
73
+ mainAxisOwnerSize,
74
74
  ownerWidth)
75
75
  .unwrap();
76
76
 
@@ -66,7 +66,7 @@ FlexLine calculateFlexLine(
66
66
  yoga::Node* node,
67
67
  Direction ownerDirection,
68
68
  float ownerWidth,
69
- float mainAxisownerSize,
69
+ float mainAxisOwnerSize,
70
70
  float availableInnerWidth,
71
71
  float availableInnerMainDim,
72
72
  Node::LayoutableChildren::Iterator& iterator,
@@ -66,7 +66,8 @@ void roundLayoutResultsToPixelGrid(
66
66
  yoga::Node* const node,
67
67
  const double absoluteLeft,
68
68
  const double absoluteTop) {
69
- const auto pointScaleFactor = node->getConfig()->getPointScaleFactor();
69
+ const auto pointScaleFactor =
70
+ static_cast<double>(node->getConfig()->getPointScaleFactor());
70
71
 
71
72
  const double nodeLeft = node->getLayout().position(PhysicalEdge::Left);
72
73
  const double nodeTop = node->getLayout().position(PhysicalEdge::Top);
@@ -80,7 +81,7 @@ void roundLayoutResultsToPixelGrid(
80
81
  const double absoluteNodeRight = absoluteNodeLeft + nodeWidth;
81
82
  const double absoluteNodeBottom = absoluteNodeTop + nodeHeight;
82
83
 
83
- if (pointScaleFactor != 0.0f) {
84
+ if (pointScaleFactor != 0.0) {
84
85
  // If a node has a custom measure function we never want to round down its
85
86
  // size as this could lead to unwanted text truncation.
86
87
  const bool textRounding = node->getNodeType() == NodeType::Text;
@@ -96,12 +97,14 @@ void roundLayoutResultsToPixelGrid(
96
97
  // We multiply dimension by scale factor and if the result is close to the
97
98
  // whole number, we don't have any fraction To verify if the result is close
98
99
  // to whole number we want to check both floor and ceil numbers
100
+
101
+ const double scaledNodeWith = nodeWidth * pointScaleFactor;
99
102
  const bool hasFractionalWidth =
100
- !yoga::inexactEquals(fmod(nodeWidth * pointScaleFactor, 1.0), 0) &&
101
- !yoga::inexactEquals(fmod(nodeWidth * pointScaleFactor, 1.0), 1.0);
103
+ !yoga::inexactEquals(round(scaledNodeWith), scaledNodeWith);
104
+
105
+ const double scaledNodeHeight = nodeHeight * pointScaleFactor;
102
106
  const bool hasFractionalHeight =
103
- !yoga::inexactEquals(fmod(nodeHeight * pointScaleFactor, 1.0), 0) &&
104
- !yoga::inexactEquals(fmod(nodeHeight * pointScaleFactor, 1.0), 1.0);
107
+ !yoga::inexactEquals(round(scaledNodeHeight), scaledNodeHeight);
105
108
 
106
109
  node->setLayoutDimension(
107
110
  roundValueToPixelGrid(
@@ -20,11 +20,14 @@ enum class Unit : uint8_t {
20
20
  Point = YGUnitPoint,
21
21
  Percent = YGUnitPercent,
22
22
  Auto = YGUnitAuto,
23
+ MaxContent = YGUnitMaxContent,
24
+ FitContent = YGUnitFitContent,
25
+ Stretch = YGUnitStretch,
23
26
  };
24
27
 
25
28
  template <>
26
29
  constexpr int32_t ordinalCount<Unit>() {
27
- return 4;
30
+ return 7;
28
31
  }
29
32
 
30
33
  constexpr Unit scopedEnum(YGUnit unscoped) {
@@ -245,8 +245,8 @@ void Node::setLayoutHadOverflow(bool hadOverflow) {
245
245
  layout_.setHadOverflow(hadOverflow);
246
246
  }
247
247
 
248
- void Node::setLayoutDimension(float LengthValue, Dimension dimension) {
249
- layout_.setDimension(dimension, LengthValue);
248
+ void Node::setLayoutDimension(float lengthValue, Dimension dimension) {
249
+ layout_.setDimension(dimension, lengthValue);
250
250
  }
251
251
 
252
252
  // If both left and right are defined, then use left. Otherwise return +left or
@@ -314,16 +314,16 @@ void Node::setPosition(
314
314
  crossAxisTrailingEdge);
315
315
  }
316
316
 
317
- Style::Length Node::processFlexBasis() const {
318
- Style::Length flexBasis = style_.flexBasis();
319
- if (flexBasis.unit() != Unit::Auto && flexBasis.unit() != Unit::Undefined) {
317
+ Style::SizeLength Node::processFlexBasis() const {
318
+ Style::SizeLength flexBasis = style_.flexBasis();
319
+ if (!flexBasis.isAuto() && !flexBasis.isUndefined()) {
320
320
  return flexBasis;
321
321
  }
322
322
  if (style_.flex().isDefined() && style_.flex().unwrap() > 0.0f) {
323
- return config_->useWebDefaults() ? StyleLength::ofAuto()
324
- : StyleLength::points(0);
323
+ return config_->useWebDefaults() ? StyleSizeLength::ofAuto()
324
+ : StyleSizeLength::points(0);
325
325
  }
326
- return StyleLength::ofAuto();
326
+ return StyleSizeLength::ofAuto();
327
327
  }
328
328
 
329
329
  FloatOptional Node::resolveFlexBasis(
@@ -172,7 +172,7 @@ class YG_EXPORT Node : public ::YGNode {
172
172
  return isDirty_;
173
173
  }
174
174
 
175
- Style::Length getProcessedDimension(Dimension dimension) const {
175
+ Style::SizeLength getProcessedDimension(Dimension dimension) const {
176
176
  return processedDimensions_[static_cast<size_t>(dimension)];
177
177
  }
178
178
 
@@ -259,7 +259,7 @@ class YG_EXPORT Node : public ::YGNode {
259
259
  uint32_t computedFlexBasisGeneration);
260
260
  void setLayoutMeasuredDimension(float measuredDimension, Dimension dimension);
261
261
  void setLayoutHadOverflow(bool hadOverflow);
262
- void setLayoutDimension(float LengthValue, Dimension dimension);
262
+ void setLayoutDimension(float lengthValue, Dimension dimension);
263
263
  void setLayoutDirection(Direction direction);
264
264
  void setLayoutMargin(float margin, PhysicalEdge edge);
265
265
  void setLayoutBorder(float border, PhysicalEdge edge);
@@ -268,7 +268,7 @@ class YG_EXPORT Node : public ::YGNode {
268
268
  void setPosition(Direction direction, float ownerWidth, float ownerHeight);
269
269
 
270
270
  // Other methods
271
- Style::Length processFlexBasis() const;
271
+ Style::SizeLength processFlexBasis() const;
272
272
  FloatOptional resolveFlexBasis(
273
273
  Direction direction,
274
274
  FlexDirection flexDirection,
@@ -322,8 +322,8 @@ class YG_EXPORT Node : public ::YGNode {
322
322
  Node* owner_ = nullptr;
323
323
  std::vector<Node*> children_;
324
324
  const Config* config_;
325
- std::array<Style::Length, 2> processedDimensions_{
326
- {StyleLength::undefined(), StyleLength::undefined()}};
325
+ std::array<Style::SizeLength, 2> processedDimensions_{
326
+ {StyleSizeLength::undefined(), StyleSizeLength::undefined()}};
327
327
  };
328
328
 
329
329
  inline Node* resolveRef(const YGNodeRef ref) {
@@ -30,6 +30,7 @@
30
30
  #include <yoga/enums/Wrap.h>
31
31
  #include <yoga/numeric/FloatOptional.h>
32
32
  #include <yoga/style/StyleLength.h>
33
+ #include <yoga/style/StyleSizeLength.h>
33
34
  #include <yoga/style/StyleValuePool.h>
34
35
 
35
36
  namespace facebook::yoga {
@@ -37,6 +38,7 @@ namespace facebook::yoga {
37
38
  class YG_EXPORT Style {
38
39
  public:
39
40
  using Length = StyleLength;
41
+ using SizeLength = StyleSizeLength;
40
42
 
41
43
  static constexpr float DefaultFlexGrow = 0.0f;
42
44
  static constexpr float DefaultFlexShrink = 0.0f;
@@ -133,10 +135,10 @@ class YG_EXPORT Style {
133
135
  pool_.store(flexShrink_, value);
134
136
  }
135
137
 
136
- Style::Length flexBasis() const {
137
- return pool_.getLength(flexBasis_);
138
+ Style::SizeLength flexBasis() const {
139
+ return pool_.getSize(flexBasis_);
138
140
  }
139
- void setFlexBasis(Style::Length value) {
141
+ void setFlexBasis(Style::SizeLength value) {
140
142
  pool_.store(flexBasis_, value);
141
143
  }
142
144
 
@@ -175,17 +177,17 @@ class YG_EXPORT Style {
175
177
  pool_.store(gap_[yoga::to_underlying(gutter)], value);
176
178
  }
177
179
 
178
- Style::Length dimension(Dimension axis) const {
179
- return pool_.getLength(dimensions_[yoga::to_underlying(axis)]);
180
+ Style::SizeLength dimension(Dimension axis) const {
181
+ return pool_.getSize(dimensions_[yoga::to_underlying(axis)]);
180
182
  }
181
- void setDimension(Dimension axis, Style::Length value) {
183
+ void setDimension(Dimension axis, Style::SizeLength value) {
182
184
  pool_.store(dimensions_[yoga::to_underlying(axis)], value);
183
185
  }
184
186
 
185
- Style::Length minDimension(Dimension axis) const {
186
- return pool_.getLength(minDimensions_[yoga::to_underlying(axis)]);
187
+ Style::SizeLength minDimension(Dimension axis) const {
188
+ return pool_.getSize(minDimensions_[yoga::to_underlying(axis)]);
187
189
  }
188
- void setMinDimension(Dimension axis, Style::Length value) {
190
+ void setMinDimension(Dimension axis, Style::SizeLength value) {
189
191
  pool_.store(minDimensions_[yoga::to_underlying(axis)], value);
190
192
  }
191
193
 
@@ -207,10 +209,10 @@ class YG_EXPORT Style {
207
209
  : FloatOptional{0.0});
208
210
  }
209
211
 
210
- Style::Length maxDimension(Dimension axis) const {
211
- return pool_.getLength(maxDimensions_[yoga::to_underlying(axis)]);
212
+ Style::SizeLength maxDimension(Dimension axis) const {
213
+ return pool_.getSize(maxDimensions_[yoga::to_underlying(axis)]);
212
214
  }
213
- void setMaxDimension(Dimension axis, Style::Length value) {
215
+ void setMaxDimension(Dimension axis, Style::SizeLength value) {
214
216
  pool_.store(maxDimensions_[yoga::to_underlying(axis)], value);
215
217
  }
216
218
 
@@ -19,13 +19,11 @@ namespace facebook::yoga {
19
19
  * 3. A CSS <length-percentage> value:
20
20
  * a. <length> value (e.g. 10px)
21
21
  * b. <percentage> value of a reference <length>
22
- * 4. (soon) A math function which returns a <length-percentage> value
23
22
  *
24
23
  * References:
25
24
  * 1. https://www.w3.org/TR/css-values-4/#lengths
26
25
  * 2. https://www.w3.org/TR/css-values-4/#percentage-value
27
26
  * 3. https://www.w3.org/TR/css-values-4/#mixed-percentages
28
- * 4. https://www.w3.org/TR/css-values-4/#math
29
27
  */
30
28
  class StyleLength {
31
29
  public:
@@ -59,6 +57,14 @@ class StyleLength {
59
57
  return unit_ == Unit::Undefined;
60
58
  }
61
59
 
60
+ constexpr bool isPoints() const {
61
+ return unit_ == Unit::Point;
62
+ }
63
+
64
+ constexpr bool isPercent() const {
65
+ return unit_ == Unit::Percent;
66
+ }
67
+
62
68
  constexpr bool isDefined() const {
63
69
  return !isUndefined();
64
70
  }
@@ -67,10 +73,6 @@ class StyleLength {
67
73
  return value_;
68
74
  }
69
75
 
70
- constexpr Unit unit() const {
71
- return unit_;
72
- }
73
-
74
76
  constexpr FloatOptional resolve(float referenceLength) {
75
77
  switch (unit_) {
76
78
  case Unit::Point:
@@ -90,6 +92,11 @@ class StyleLength {
90
92
  return value_ == rhs.value_ && unit_ == rhs.unit_;
91
93
  }
92
94
 
95
+ constexpr bool inexactEquals(const StyleLength& other) const {
96
+ return unit_ == other.unit_ &&
97
+ facebook::yoga::inexactEquals(value_, other.value_);
98
+ }
99
+
93
100
  private:
94
101
  // We intentionally do not allow direct construction using value and unit, to
95
102
  // avoid invalid, or redundant combinations.
@@ -101,7 +108,7 @@ class StyleLength {
101
108
  };
102
109
 
103
110
  inline bool inexactEquals(const StyleLength& a, const StyleLength& b) {
104
- return a.unit() == b.unit() && inexactEquals(a.value(), b.value());
111
+ return a.inexactEquals(b);
105
112
  }
106
113
 
107
114
  } // namespace facebook::yoga