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
@@ -161,6 +161,7 @@ public class ReactViewGroup extends ViewGroup
161
161
  // {@link ViewGroup#getChildCount} so those methods may return views that are not attached.
162
162
  // This is risky but allows us to perform a correct cleanup in {@link NativeViewHierarchyManager}.
163
163
  private boolean mRemoveClippedSubviews;
164
+ private volatile boolean mInSubviewClippingLoop;
164
165
  private @Nullable View[] mAllChildren;
165
166
  private int mAllChildrenCount;
166
167
  private @Nullable Rect mClippingRect;
@@ -172,7 +173,7 @@ public class ReactViewGroup extends ViewGroup
172
173
  private boolean mNeedsOffscreenAlphaCompositing;
173
174
  private @Nullable ViewGroupDrawingOrderHelper mDrawingOrderHelper;
174
175
  private float mBackfaceOpacity;
175
- private String mBackfaceVisibility;
176
+ private boolean mBackfaceVisible;
176
177
  private @Nullable Set<Integer> mChildrenRemovedWhileTransitioning;
177
178
 
178
179
  /**
@@ -195,6 +196,7 @@ public class ReactViewGroup extends ViewGroup
195
196
  setClipChildren(false);
196
197
 
197
198
  mRemoveClippedSubviews = false;
199
+ mInSubviewClippingLoop = false;
198
200
  mAllChildren = null;
199
201
  mAllChildrenCount = 0;
200
202
  mClippingRect = null;
@@ -206,7 +208,7 @@ public class ReactViewGroup extends ViewGroup
206
208
  mNeedsOffscreenAlphaCompositing = false;
207
209
  mDrawingOrderHelper = null;
208
210
  mBackfaceOpacity = 1.f;
209
- mBackfaceVisibility = "visible";
211
+ mBackfaceVisible = true;
210
212
  mChildrenRemovedWhileTransitioning = null;
211
213
  }
212
214
 
@@ -404,6 +406,7 @@ public class ReactViewGroup extends ViewGroup
404
406
  View child = getChildAt(i);
405
407
  mAllChildren[i] = child;
406
408
  child.addOnLayoutChangeListener(mChildrenLayoutChangeListener);
409
+ setViewClipped(child, false);
407
410
  }
408
411
  updateClippingRect();
409
412
  } else {
@@ -468,11 +471,19 @@ public class ReactViewGroup extends ViewGroup
468
471
 
469
472
  private void updateClippingToRect(Rect clippingRect) {
470
473
  Assertions.assertNotNull(mAllChildren);
474
+ mInSubviewClippingLoop = true;
471
475
  int clippedSoFar = 0;
472
476
  for (int i = 0; i < mAllChildrenCount; i++) {
473
477
  try {
474
478
  updateSubviewClipStatus(clippingRect, i, clippedSoFar);
475
479
  } catch (IndexOutOfBoundsException e) {
480
+ int realClippedSoFar = 0;
481
+ Set<View> uniqueViews = new HashSet<>();
482
+ for (int j = 0; j < i; j++) {
483
+ realClippedSoFar += isViewClipped(mAllChildren[j], null) ? 1 : 0;
484
+ uniqueViews.add(mAllChildren[j]);
485
+ }
486
+
476
487
  throw new IllegalStateException(
477
488
  "Invalid clipping state. i="
478
489
  + i
@@ -483,13 +494,18 @@ public class ReactViewGroup extends ViewGroup
483
494
  + " allChildrenCount="
484
495
  + mAllChildrenCount
485
496
  + " recycleCount="
486
- + mRecycleCount,
497
+ + mRecycleCount
498
+ + " realClippedSoFar="
499
+ + realClippedSoFar
500
+ + " uniqueViewsCount="
501
+ + uniqueViews.size(),
487
502
  e);
488
503
  }
489
- if (isViewClipped(mAllChildren[i])) {
504
+ if (isViewClipped(mAllChildren[i], i)) {
490
505
  clippedSoFar++;
491
506
  }
492
507
  }
508
+ mInSubviewClippingLoop = false;
493
509
  }
494
510
 
495
511
  private void updateSubviewClipStatus(Rect clippingRect, int idx, int clippedSoFar) {
@@ -508,14 +524,18 @@ public class ReactViewGroup extends ViewGroup
508
524
  // it won't be size and located properly.
509
525
  Animation animation = child.getAnimation();
510
526
  boolean isAnimating = animation != null && !animation.hasEnded();
511
- if (!intersects && !isViewClipped(child) && !isAnimating) {
527
+ if (!intersects && !isViewClipped(child, idx) && !isAnimating) {
528
+ setViewClipped(child, true);
512
529
  recoverFocus(child);
513
530
  // We can try saving on invalidate call here as the view that we remove is out of visible area
514
531
  // therefore invalidation is not necessary.
515
532
  removeViewInLayout(child);
516
533
  needUpdateClippingRecursive = true;
517
- } else if (intersects && isViewClipped(child)) {
518
- addViewInLayout(child, idx - clippedSoFar, sDefaultLayoutParam, true);
534
+ } else if (intersects && isViewClipped(child, idx)) {
535
+ int adjustedIdx = idx - clippedSoFar;
536
+ Assertions.assertCondition(adjustedIdx >= 0);
537
+ setViewClipped(child, false);
538
+ addViewInLayout(child, adjustedIdx, sDefaultLayoutParam, true);
519
539
  invalidate();
520
540
  needUpdateClippingRecursive = true;
521
541
  } else if (intersects) {
@@ -546,19 +566,21 @@ public class ReactViewGroup extends ViewGroup
546
566
  subview.getLeft(), subview.getTop(), subview.getRight(), subview.getBottom());
547
567
 
548
568
  // If it was intersecting before, should be attached to the parent
549
- boolean oldIntersects = !isViewClipped(subview);
569
+ boolean oldIntersects = !isViewClipped(subview, null);
550
570
 
551
571
  if (intersects != oldIntersects) {
572
+ mInSubviewClippingLoop = true;
552
573
  int clippedSoFar = 0;
553
574
  for (int i = 0; i < mAllChildrenCount; i++) {
554
575
  if (mAllChildren[i] == subview) {
555
576
  updateSubviewClipStatus(mClippingRect, i, clippedSoFar);
556
577
  break;
557
578
  }
558
- if (isViewClipped(mAllChildren[i])) {
579
+ if (isViewClipped(mAllChildren[i], i)) {
559
580
  clippedSoFar++;
560
581
  }
561
582
  }
583
+ mInSubviewClippingLoop = false;
562
584
  }
563
585
  }
564
586
 
@@ -673,7 +695,7 @@ public class ReactViewGroup extends ViewGroup
673
695
  @Override
674
696
  public void onViewAdded(View child) {
675
697
  UiThreadUtil.assertOnUiThread();
676
-
698
+ checkViewClippingTag(child, Boolean.FALSE);
677
699
  if (!customDrawOrderDisabled()) {
678
700
  getDrawingOrderHelper().handleAddView(child);
679
701
  setChildrenDrawingOrderEnabled(getDrawingOrderHelper().shouldEnableCustomDrawingOrder());
@@ -686,7 +708,7 @@ public class ReactViewGroup extends ViewGroup
686
708
  @Override
687
709
  public void onViewRemoved(View child) {
688
710
  UiThreadUtil.assertOnUiThread();
689
-
711
+ checkViewClippingTag(child, Boolean.TRUE);
690
712
  if (!customDrawOrderDisabled()) {
691
713
  if (indexOfChild(child) == -1) {
692
714
  return;
@@ -705,6 +727,21 @@ public class ReactViewGroup extends ViewGroup
705
727
  super.onViewRemoved(child);
706
728
  }
707
729
 
730
+ private void checkViewClippingTag(View child, Boolean expectedTag) {
731
+ if (mInSubviewClippingLoop) {
732
+ Object tag = child.getTag(R.id.view_clipped);
733
+ if (!expectedTag.equals(tag)) {
734
+ ReactSoftExceptionLogger.logSoftException(
735
+ ReactSoftExceptionLogger.Categories.RVG_ON_VIEW_REMOVED,
736
+ new ReactNoCrashSoftException(
737
+ "View clipping tag mismatch: tag=" + tag + " expected=" + expectedTag));
738
+ }
739
+ }
740
+ if (mRemoveClippedSubviews) {
741
+ child.setTag(R.id.view_clipped, expectedTag);
742
+ }
743
+ }
744
+
708
745
  @Override
709
746
  protected int getChildDrawingOrder(int childCount, int index) {
710
747
  UiThreadUtil.assertOnUiThread();
@@ -776,19 +813,22 @@ public class ReactViewGroup extends ViewGroup
776
813
  /*package*/ void addViewWithSubviewClippingEnabled(
777
814
  final View child, int index, ViewGroup.LayoutParams params) {
778
815
  Assertions.assertCondition(mRemoveClippedSubviews);
816
+ setViewClipped(child, true); // the view has not been added, so it is "clipped"
779
817
  addInArray(child, index);
780
818
 
781
819
  // we add view as "clipped" and then run {@link #updateSubviewClipStatus} to conditionally
782
820
  // attach it
783
821
  Rect clippingRect = Assertions.assertNotNull(mClippingRect);
784
822
  View[] childArray = Assertions.assertNotNull(mAllChildren);
823
+ mInSubviewClippingLoop = true;
785
824
  int clippedSoFar = 0;
786
825
  for (int i = 0; i < index; i++) {
787
- if (isViewClipped(childArray[i])) {
826
+ if (isViewClipped(childArray[i], i)) {
788
827
  clippedSoFar++;
789
828
  }
790
829
  }
791
830
  updateSubviewClipStatus(clippingRect, index, clippedSoFar);
831
+ mInSubviewClippingLoop = false;
792
832
  child.addOnLayoutChangeListener(mChildrenLayoutChangeListener);
793
833
 
794
834
  if (child instanceof ReactClippingProhibitedView) {
@@ -823,10 +863,10 @@ public class ReactViewGroup extends ViewGroup
823
863
  View[] childArray = Assertions.assertNotNull(mAllChildren);
824
864
  view.removeOnLayoutChangeListener(mChildrenLayoutChangeListener);
825
865
  int index = indexOfChildInAllChildren(view);
826
- if (!isViewClipped(childArray[index])) {
866
+ if (!isViewClipped(childArray[index], index)) {
827
867
  int clippedSoFar = 0;
828
868
  for (int i = 0; i < index; i++) {
829
- if (isViewClipped(childArray[i])) {
869
+ if (isViewClipped(childArray[i], i)) {
830
870
  clippedSoFar++;
831
871
  }
832
872
  }
@@ -848,9 +888,40 @@ public class ReactViewGroup extends ViewGroup
848
888
 
849
889
  /**
850
890
  * @return {@code true} if the view has been removed from the ViewGroup.
891
+ * @param index For logging - index of the view in {@code mAllChildren}, or {@code null} to skip
892
+ * logging.
851
893
  */
852
- private boolean isViewClipped(View view) {
853
- return view.getParent() == null;
894
+ private boolean isViewClipped(View view, @Nullable Integer index) {
895
+ Object tag = view.getTag(R.id.view_clipped);
896
+ if (tag != null) {
897
+ return (boolean) tag;
898
+ }
899
+ ViewParent parent = view.getParent();
900
+ boolean transitioning = isChildRemovedWhileTransitioning(view);
901
+ if (index != null) {
902
+ ReactSoftExceptionLogger.logSoftException(
903
+ ReactSoftExceptionLogger.Categories.RVG_IS_VIEW_CLIPPED,
904
+ new ReactNoCrashSoftException(
905
+ "View missing clipping tag: index="
906
+ + index
907
+ + " parentNull="
908
+ + (parent == null)
909
+ + " parentThis="
910
+ + (parent == this)
911
+ + " transitioning="
912
+ + transitioning));
913
+ }
914
+ // fallback - should be transitioning or have no parent if the view was removed
915
+ if (parent == null || transitioning) {
916
+ return true;
917
+ } else {
918
+ Assertions.assertCondition(parent == this);
919
+ return false;
920
+ }
921
+ }
922
+
923
+ private static void setViewClipped(View view, boolean clipped) {
924
+ view.setTag(R.id.view_clipped, clipped);
854
925
  }
855
926
 
856
927
  private int indexOfChildInAllChildren(View child) {
@@ -1007,6 +1078,7 @@ public class ReactViewGroup extends ViewGroup
1007
1078
 
1008
1079
  BlendMode mixBlendMode = null;
1009
1080
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q
1081
+ && ViewUtil.getUIManagerType(this) == UIManagerType.FABRIC
1010
1082
  && BlendModeHelper.needsIsolatedLayer(this)) {
1011
1083
  mixBlendMode = (BlendMode) child.getTag(R.id.mix_blend_mode);
1012
1084
  if (mixBlendMode != null) {
@@ -1040,14 +1112,12 @@ public class ReactViewGroup extends ViewGroup
1040
1112
  }
1041
1113
 
1042
1114
  public void setBackfaceVisibility(String backfaceVisibility) {
1043
- mBackfaceVisibility = backfaceVisibility;
1115
+ mBackfaceVisible = "visible".equals(backfaceVisibility);
1044
1116
  setBackfaceVisibilityDependantOpacity();
1045
1117
  }
1046
1118
 
1047
1119
  public void setBackfaceVisibilityDependantOpacity() {
1048
- boolean isBackfaceVisible = mBackfaceVisibility.equals("visible");
1049
-
1050
- if (isBackfaceVisible) {
1120
+ if (mBackfaceVisible) {
1051
1121
  setAlpha(mBackfaceOpacity);
1052
1122
  return;
1053
1123
  }
@@ -271,7 +271,7 @@ public open class ReactViewManager : ReactClippingViewManager<ReactViewGroup>()
271
271
 
272
272
  @ReactProp(name = ViewProps.POINTER_EVENTS)
273
273
  public open fun setPointerEvents(view: ReactViewGroup, pointerEventsStr: String?) {
274
- view.pointerEvents = PointerEvents.parsePointerEvents(pointerEventsStr)
274
+ view.setPointerEvents(PointerEvents.parsePointerEvents(pointerEventsStr))
275
275
  }
276
276
 
277
277
  @ReactProp(name = "nativeBackgroundAndroid")
@@ -367,7 +367,7 @@ public open class ReactViewManager : ReactClippingViewManager<ReactViewGroup>()
367
367
 
368
368
  @ReactProp(name = ViewProps.OVERFLOW)
369
369
  public open fun setOverflow(view: ReactViewGroup, overflow: String?) {
370
- view.overflow = overflow
370
+ view.setOverflow(overflow)
371
371
  }
372
372
 
373
373
  @ReactProp(name = "backfaceVisibility")
@@ -74,6 +74,9 @@ public class YogaNative {
74
74
  static native void jni_YGNodeStyleSetFlexBasisJNI(long nativePointer, float flexBasis);
75
75
  static native void jni_YGNodeStyleSetFlexBasisPercentJNI(long nativePointer, float percent);
76
76
  static native void jni_YGNodeStyleSetFlexBasisAutoJNI(long nativePointer);
77
+ static native void jni_YGNodeStyleSetFlexBasisMaxContentJNI(long nativePointer);
78
+ static native void jni_YGNodeStyleSetFlexBasisFitContentJNI(long nativePointer);
79
+ static native void jni_YGNodeStyleSetFlexBasisStretchJNI(long nativePointer);
77
80
  static native long jni_YGNodeStyleGetMarginJNI(long nativePointer, int edge);
78
81
  static native void jni_YGNodeStyleSetMarginJNI(long nativePointer, int edge, float margin);
79
82
  static native void jni_YGNodeStyleSetMarginPercentJNI(long nativePointer, int edge, float percent);
@@ -91,25 +94,43 @@ public class YogaNative {
91
94
  static native void jni_YGNodeStyleSetWidthJNI(long nativePointer, float width);
92
95
  static native void jni_YGNodeStyleSetWidthPercentJNI(long nativePointer, float percent);
93
96
  static native void jni_YGNodeStyleSetWidthAutoJNI(long nativePointer);
97
+ static native void jni_YGNodeStyleSetWidthMaxContentJNI(long nativePointer);
98
+ static native void jni_YGNodeStyleSetWidthFitContentJNI(long nativePointer);
99
+ static native void jni_YGNodeStyleSetWidthStretchJNI(long nativePointer);
94
100
  static native long jni_YGNodeStyleGetHeightJNI(long nativePointer);
95
101
  static native void jni_YGNodeStyleSetHeightJNI(long nativePointer, float height);
96
102
  static native void jni_YGNodeStyleSetHeightPercentJNI(long nativePointer, float percent);
97
103
  static native void jni_YGNodeStyleSetHeightAutoJNI(long nativePointer);
104
+ static native void jni_YGNodeStyleSetHeightMaxContentJNI(long nativePointer);
105
+ static native void jni_YGNodeStyleSetHeightFitContentJNI(long nativePointer);
106
+ static native void jni_YGNodeStyleSetHeightStretchJNI(long nativePointer);
98
107
  static native long jni_YGNodeStyleGetMinWidthJNI(long nativePointer);
99
108
  static native void jni_YGNodeStyleSetMinWidthJNI(long nativePointer, float minWidth);
100
109
  static native void jni_YGNodeStyleSetMinWidthPercentJNI(long nativePointer, float percent);
110
+ static native void jni_YGNodeStyleSetMinWidthMaxContentJNI(long nativePointer);
111
+ static native void jni_YGNodeStyleSetMinWidthFitContentJNI(long nativePointer);
112
+ static native void jni_YGNodeStyleSetMinWidthStretchJNI(long nativePointer);
101
113
  static native long jni_YGNodeStyleGetMinHeightJNI(long nativePointer);
102
114
  static native void jni_YGNodeStyleSetMinHeightJNI(long nativePointer, float minHeight);
103
115
  static native void jni_YGNodeStyleSetMinHeightPercentJNI(long nativePointer, float percent);
116
+ static native void jni_YGNodeStyleSetMinHeightMaxContentJNI(long nativePointer);
117
+ static native void jni_YGNodeStyleSetMinHeightFitContentJNI(long nativePointer);
118
+ static native void jni_YGNodeStyleSetMinHeightStretchJNI(long nativePointer);
104
119
  static native long jni_YGNodeStyleGetMaxWidthJNI(long nativePointer);
105
120
  static native void jni_YGNodeStyleSetMaxWidthJNI(long nativePointer, float maxWidth);
106
121
  static native void jni_YGNodeStyleSetMaxWidthPercentJNI(long nativePointer, float percent);
122
+ static native void jni_YGNodeStyleSetMaxWidthMaxContentJNI(long nativePointer);
123
+ static native void jni_YGNodeStyleSetMaxWidthFitContentJNI(long nativePointer);
124
+ static native void jni_YGNodeStyleSetMaxWidthStretchJNI(long nativePointer);
107
125
  static native long jni_YGNodeStyleGetMaxHeightJNI(long nativePointer);
108
126
  static native void jni_YGNodeStyleSetMaxHeightJNI(long nativePointer, float maxheight);
109
127
  static native void jni_YGNodeStyleSetMaxHeightPercentJNI(long nativePointer, float percent);
128
+ static native void jni_YGNodeStyleSetMaxHeightMaxContentJNI(long nativePointer);
129
+ static native void jni_YGNodeStyleSetMaxHeightFitContentJNI(long nativePointer);
130
+ static native void jni_YGNodeStyleSetMaxHeightStretchJNI(long nativePointer);
110
131
  static native float jni_YGNodeStyleGetAspectRatioJNI(long nativePointer);
111
132
  static native void jni_YGNodeStyleSetAspectRatioJNI(long nativePointer, float aspectRatio);
112
- static native float jni_YGNodeStyleGetGapJNI(long nativePointer, int gutter);
133
+ static native long jni_YGNodeStyleGetGapJNI(long nativePointer, int gutter);
113
134
  static native void jni_YGNodeStyleSetGapJNI(long nativePointer, int gutter, float gapLength);
114
135
  static native void jni_YGNodeStyleSetGapPercentJNI(long nativePointer, int gutter, float gapLength);
115
136
  static native void jni_YGNodeSetHasMeasureFuncJNI(long nativePointer, boolean hasMeasureFunc);
@@ -124,6 +124,12 @@ public abstract class YogaNode implements YogaProps {
124
124
 
125
125
  public abstract void setFlexBasisAuto();
126
126
 
127
+ public abstract void setFlexBasisMaxContent();
128
+
129
+ public abstract void setFlexBasisFitContent();
130
+
131
+ public abstract void setFlexBasisStretch();
132
+
127
133
  public abstract YogaValue getMargin(YogaEdge edge);
128
134
 
129
135
  public abstract void setMargin(YogaEdge edge, float margin);
@@ -158,6 +164,12 @@ public abstract class YogaNode implements YogaProps {
158
164
 
159
165
  public abstract void setWidthAuto();
160
166
 
167
+ public abstract void setWidthMaxContent();
168
+
169
+ public abstract void setWidthFitContent();
170
+
171
+ public abstract void setWidthStretch();
172
+
161
173
  public abstract YogaValue getHeight();
162
174
 
163
175
  public abstract void setHeight(float height);
@@ -166,35 +178,65 @@ public abstract class YogaNode implements YogaProps {
166
178
 
167
179
  public abstract void setHeightAuto();
168
180
 
181
+ public abstract void setHeightMaxContent();
182
+
183
+ public abstract void setHeightFitContent();
184
+
185
+ public abstract void setHeightStretch();
186
+
169
187
  public abstract YogaValue getMinWidth();
170
188
 
171
189
  public abstract void setMinWidth(float minWidth);
172
190
 
173
191
  public abstract void setMinWidthPercent(float percent);
174
192
 
193
+ public abstract void setMinWidthMaxContent();
194
+
195
+ public abstract void setMinWidthFitContent();
196
+
197
+ public abstract void setMinWidthStretch();
198
+
175
199
  public abstract YogaValue getMinHeight();
176
200
 
177
201
  public abstract void setMinHeight(float minHeight);
178
202
 
179
203
  public abstract void setMinHeightPercent(float percent);
180
204
 
205
+ public abstract void setMinHeightMaxContent();
206
+
207
+ public abstract void setMinHeightFitContent();
208
+
209
+ public abstract void setMinHeightStretch();
210
+
181
211
  public abstract YogaValue getMaxWidth();
182
212
 
183
213
  public abstract void setMaxWidth(float maxWidth);
184
214
 
185
215
  public abstract void setMaxWidthPercent(float percent);
186
216
 
217
+ public abstract void setMaxWidthMaxContent();
218
+
219
+ public abstract void setMaxWidthFitContent();
220
+
221
+ public abstract void setMaxWidthStretch();
222
+
187
223
  public abstract YogaValue getMaxHeight();
188
224
 
189
225
  public abstract void setMaxHeight(float maxheight);
190
226
 
191
227
  public abstract void setMaxHeightPercent(float percent);
192
228
 
229
+ public abstract void setMaxHeightMaxContent();
230
+
231
+ public abstract void setMaxHeightFitContent();
232
+
233
+ public abstract void setMaxHeightStretch();
234
+
193
235
  public abstract float getAspectRatio();
194
236
 
195
237
  public abstract void setAspectRatio(float aspectRatio);
196
238
 
197
- public abstract float getGap(YogaGutter gutter);
239
+ public abstract YogaValue getGap(YogaGutter gutter);
198
240
 
199
241
  public abstract void setGap(YogaGutter gutter, float gapLength);
200
242
 
@@ -373,6 +373,18 @@ public abstract class YogaNodeJNIBase extends YogaNode implements Cloneable {
373
373
  YogaNative.jni_YGNodeStyleSetFlexBasisAutoJNI(mNativePointer);
374
374
  }
375
375
 
376
+ public void setFlexBasisMaxContent() {
377
+ YogaNative.jni_YGNodeStyleSetFlexBasisMaxContentJNI(mNativePointer);
378
+ }
379
+
380
+ public void setFlexBasisFitContent() {
381
+ YogaNative.jni_YGNodeStyleSetFlexBasisFitContentJNI(mNativePointer);
382
+ }
383
+
384
+ public void setFlexBasisStretch() {
385
+ YogaNative.jni_YGNodeStyleSetFlexBasisStretchJNI(mNativePointer);
386
+ }
387
+
376
388
  public YogaValue getMargin(YogaEdge edge) {
377
389
  return valueFromLong(YogaNative.jni_YGNodeStyleGetMarginJNI(mNativePointer, edge.intValue()));
378
390
  }
@@ -441,6 +453,18 @@ public abstract class YogaNodeJNIBase extends YogaNode implements Cloneable {
441
453
  YogaNative.jni_YGNodeStyleSetWidthAutoJNI(mNativePointer);
442
454
  }
443
455
 
456
+ public void setWidthMaxContent() {
457
+ YogaNative.jni_YGNodeStyleSetWidthMaxContentJNI(mNativePointer);
458
+ }
459
+
460
+ public void setWidthFitContent() {
461
+ YogaNative.jni_YGNodeStyleSetWidthFitContentJNI(mNativePointer);
462
+ }
463
+
464
+ public void setWidthStretch() {
465
+ YogaNative.jni_YGNodeStyleSetWidthStretchJNI(mNativePointer);
466
+ }
467
+
444
468
  public YogaValue getHeight() {
445
469
  return valueFromLong(YogaNative.jni_YGNodeStyleGetHeightJNI(mNativePointer));
446
470
  }
@@ -457,6 +481,18 @@ public abstract class YogaNodeJNIBase extends YogaNode implements Cloneable {
457
481
  YogaNative.jni_YGNodeStyleSetHeightAutoJNI(mNativePointer);
458
482
  }
459
483
 
484
+ public void setHeightMaxContent() {
485
+ YogaNative.jni_YGNodeStyleSetHeightMaxContentJNI(mNativePointer);
486
+ }
487
+
488
+ public void setHeightFitContent() {
489
+ YogaNative.jni_YGNodeStyleSetHeightFitContentJNI(mNativePointer);
490
+ }
491
+
492
+ public void setHeightStretch() {
493
+ YogaNative.jni_YGNodeStyleSetHeightStretchJNI(mNativePointer);
494
+ }
495
+
460
496
  public YogaValue getMinWidth() {
461
497
  return valueFromLong(YogaNative.jni_YGNodeStyleGetMinWidthJNI(mNativePointer));
462
498
  }
@@ -469,6 +505,18 @@ public abstract class YogaNodeJNIBase extends YogaNode implements Cloneable {
469
505
  YogaNative.jni_YGNodeStyleSetMinWidthPercentJNI(mNativePointer, percent);
470
506
  }
471
507
 
508
+ public void setMinWidthMaxContent() {
509
+ YogaNative.jni_YGNodeStyleSetMinWidthMaxContentJNI(mNativePointer);
510
+ }
511
+
512
+ public void setMinWidthFitContent() {
513
+ YogaNative.jni_YGNodeStyleSetMinWidthFitContentJNI(mNativePointer);
514
+ }
515
+
516
+ public void setMinWidthStretch() {
517
+ YogaNative.jni_YGNodeStyleSetMinWidthStretchJNI(mNativePointer);
518
+ }
519
+
472
520
  public YogaValue getMinHeight() {
473
521
  return valueFromLong(YogaNative.jni_YGNodeStyleGetMinHeightJNI(mNativePointer));
474
522
  }
@@ -481,6 +529,18 @@ public abstract class YogaNodeJNIBase extends YogaNode implements Cloneable {
481
529
  YogaNative.jni_YGNodeStyleSetMinHeightPercentJNI(mNativePointer, percent);
482
530
  }
483
531
 
532
+ public void setMinHeightMaxContent() {
533
+ YogaNative.jni_YGNodeStyleSetMinHeightMaxContentJNI(mNativePointer);
534
+ }
535
+
536
+ public void setMinHeightFitContent() {
537
+ YogaNative.jni_YGNodeStyleSetMinHeightFitContentJNI(mNativePointer);
538
+ }
539
+
540
+ public void setMinHeightStretch() {
541
+ YogaNative.jni_YGNodeStyleSetMinHeightStretchJNI(mNativePointer);
542
+ }
543
+
484
544
  public YogaValue getMaxWidth() {
485
545
  return valueFromLong(YogaNative.jni_YGNodeStyleGetMaxWidthJNI(mNativePointer));
486
546
  }
@@ -493,6 +553,18 @@ public abstract class YogaNodeJNIBase extends YogaNode implements Cloneable {
493
553
  YogaNative.jni_YGNodeStyleSetMaxWidthPercentJNI(mNativePointer, percent);
494
554
  }
495
555
 
556
+ public void setMaxWidthMaxContent() {
557
+ YogaNative.jni_YGNodeStyleSetMaxWidthMaxContentJNI(mNativePointer);
558
+ }
559
+
560
+ public void setMaxWidthFitContent() {
561
+ YogaNative.jni_YGNodeStyleSetMaxWidthFitContentJNI(mNativePointer);
562
+ }
563
+
564
+ public void setMaxWidthStretch() {
565
+ YogaNative.jni_YGNodeStyleSetMaxWidthStretchJNI(mNativePointer);
566
+ }
567
+
496
568
  public YogaValue getMaxHeight() {
497
569
  return valueFromLong(YogaNative.jni_YGNodeStyleGetMaxHeightJNI(mNativePointer));
498
570
  }
@@ -505,6 +577,18 @@ public abstract class YogaNodeJNIBase extends YogaNode implements Cloneable {
505
577
  YogaNative.jni_YGNodeStyleSetMaxHeightPercentJNI(mNativePointer, percent);
506
578
  }
507
579
 
580
+ public void setMaxHeightMaxContent() {
581
+ YogaNative.jni_YGNodeStyleSetMaxHeightMaxContentJNI(mNativePointer);
582
+ }
583
+
584
+ public void setMaxHeightFitContent() {
585
+ YogaNative.jni_YGNodeStyleSetMaxHeightFitContentJNI(mNativePointer);
586
+ }
587
+
588
+ public void setMaxHeightStretch() {
589
+ YogaNative.jni_YGNodeStyleSetMaxHeightStretchJNI(mNativePointer);
590
+ }
591
+
508
592
  public float getAspectRatio() {
509
593
  return YogaNative.jni_YGNodeStyleGetAspectRatioJNI(mNativePointer);
510
594
  }
@@ -727,8 +811,8 @@ public abstract class YogaNodeJNIBase extends YogaNode implements Cloneable {
727
811
  }
728
812
 
729
813
  @Override
730
- public float getGap(YogaGutter gutter) {
731
- return YogaNative.jni_YGNodeStyleGetGapJNI(mNativePointer, gutter.intValue());
814
+ public YogaValue getGap(YogaGutter gutter) {
815
+ return valueFromLong(YogaNative.jni_YGNodeStyleGetGapJNI(mNativePointer, gutter.intValue()));
732
816
  }
733
817
 
734
818
  @Override
@@ -15,15 +15,33 @@ public interface YogaProps {
15
15
 
16
16
  void setWidthPercent(float percent);
17
17
 
18
+ void setWidthAuto();
19
+
20
+ void setWidthMaxContent();
21
+
22
+ void setWidthFitContent();
23
+
24
+ void setWidthStretch();
25
+
18
26
  void setMinWidth(float minWidth);
19
27
 
20
28
  void setMinWidthPercent(float percent);
21
29
 
30
+ void setMinWidthMaxContent();
31
+
32
+ void setMinWidthFitContent();
33
+
34
+ void setMinWidthStretch();
35
+
22
36
  void setMaxWidth(float maxWidth);
23
37
 
24
38
  void setMaxWidthPercent(float percent);
25
39
 
26
- void setWidthAuto();
40
+ void setMaxWidthMaxContent();
41
+
42
+ void setMaxWidthFitContent();
43
+
44
+ void setMaxWidthStretch();
27
45
 
28
46
  /* Height properties */
29
47
 
@@ -31,15 +49,33 @@ public interface YogaProps {
31
49
 
32
50
  void setHeightPercent(float percent);
33
51
 
52
+ void setHeightAuto();
53
+
54
+ void setHeightMaxContent();
55
+
56
+ void setHeightFitContent();
57
+
58
+ void setHeightStretch();
59
+
34
60
  void setMinHeight(float minHeight);
35
61
 
36
62
  void setMinHeightPercent(float percent);
37
63
 
64
+ void setMinHeightMaxContent();
65
+
66
+ void setMinHeightFitContent();
67
+
68
+ void setMinHeightStretch();
69
+
38
70
  void setMaxHeight(float maxHeight);
39
71
 
40
72
  void setMaxHeightPercent(float percent);
41
73
 
42
- void setHeightAuto();
74
+ void setMaxHeightMaxContent();
75
+
76
+ void setMaxHeightFitContent();
77
+
78
+ void setMaxHeightStretch();
43
79
 
44
80
  /* Margin properties */
45
81
 
@@ -81,6 +117,12 @@ public interface YogaProps {
81
117
 
82
118
  void setFlexBasis(float flexBasis);
83
119
 
120
+ void setFlexBasisMaxContent();
121
+
122
+ void setFlexBasisFitContent();
123
+
124
+ void setFlexBasisStretch();
125
+
84
126
  void setFlexDirection(YogaFlexDirection direction);
85
127
 
86
128
  void setFlexGrow(float flexGrow);
@@ -13,7 +13,10 @@ public enum YogaUnit {
13
13
  UNDEFINED(0),
14
14
  POINT(1),
15
15
  PERCENT(2),
16
- AUTO(3);
16
+ AUTO(3),
17
+ MAX_CONTENT(4),
18
+ FIT_CONTENT(5),
19
+ STRETCH(6);
17
20
 
18
21
  private final int mIntValue;
19
22
 
@@ -31,6 +34,9 @@ public enum YogaUnit {
31
34
  case 1: return POINT;
32
35
  case 2: return PERCENT;
33
36
  case 3: return AUTO;
37
+ case 4: return MAX_CONTENT;
38
+ case 5: return FIT_CONTENT;
39
+ case 6: return STRETCH;
34
40
  default: throw new IllegalArgumentException("Unknown enum value: " + value);
35
41
  }
36
42
  }