react-native-tvos 0.85.3-0 → 0.86.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 (675) hide show
  1. package/Libraries/Animated/AnimatedImplementation.js +6 -6
  2. package/Libraries/Animated/NativeAnimatedAllowlist.js +21 -0
  3. package/Libraries/Animated/components/AnimatedImage.js +3 -3
  4. package/Libraries/Animated/components/AnimatedText.js +3 -3
  5. package/Libraries/Animated/createAnimatedComponent.js +7 -7
  6. package/Libraries/Animated/nodes/AnimatedAddition.js +1 -1
  7. package/Libraries/Animated/nodes/AnimatedColor.js +7 -7
  8. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +1 -1
  9. package/Libraries/Animated/nodes/AnimatedDivision.js +1 -1
  10. package/Libraries/Animated/nodes/AnimatedInterpolation.js +22 -24
  11. package/Libraries/Animated/nodes/AnimatedModulo.js +1 -1
  12. package/Libraries/Animated/nodes/AnimatedMultiplication.js +1 -1
  13. package/Libraries/Animated/nodes/AnimatedStyle.js +2 -2
  14. package/Libraries/Animated/nodes/AnimatedSubtraction.js +1 -1
  15. package/Libraries/Animated/nodes/AnimatedTracking.js +1 -1
  16. package/Libraries/Animated/nodes/AnimatedValue.js +2 -2
  17. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +4 -0
  18. package/Libraries/AppDelegate/RCTRootViewFactory.h +5 -5
  19. package/Libraries/AppDelegate/RCTRootViewFactory.mm +2 -2
  20. package/Libraries/AppState/AppState.js +1 -1
  21. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  22. package/Libraries/Blob/RCTBlobCollector.h +1 -1
  23. package/Libraries/Blob/RCTBlobCollector.mm +14 -26
  24. package/Libraries/Blob/RCTBlobManager.mm +11 -3
  25. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +29 -23
  26. package/Libraries/Components/Keyboard/Keyboard.js +4 -2
  27. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
  28. package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -27
  29. package/Libraries/Components/Pressable/Pressable.d.ts +1 -0
  30. package/Libraries/Components/Pressable/Pressable.js +2 -2
  31. package/Libraries/Components/Pressable/useAndroidRippleForView.js +7 -8
  32. package/Libraries/Components/ScrollView/ScrollView.d.ts +1 -1
  33. package/Libraries/Components/ScrollView/ScrollView.js +4 -4
  34. package/Libraries/Components/ScrollView/ScrollViewCommands.js +2 -2
  35. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +2 -2
  36. package/Libraries/Components/Switch/Switch.js +1 -1
  37. package/Libraries/Components/TV/TVViewPropTypes.js +9 -0
  38. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +25 -1
  39. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +1 -1
  40. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +2 -2
  41. package/Libraries/Components/TextInput/TextInput.d.ts +24 -0
  42. package/Libraries/Components/TextInput/TextInput.flow.js +24 -0
  43. package/Libraries/Components/TextInput/TextInput.js +5 -5
  44. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +5 -5
  45. package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +5 -5
  46. package/Libraries/Components/Touchable/PooledClass.js +4 -4
  47. package/Libraries/Components/Touchable/Touchable.js +1 -1
  48. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +6 -10
  49. package/Libraries/Components/View/ReactNativeStyleAttributes.js +10 -2
  50. package/Libraries/Components/View/View.js +100 -91
  51. package/Libraries/Components/View/ViewPropTypes.js +3 -1
  52. package/Libraries/Core/Devtools/loadBundleFromServer.js +8 -0
  53. package/Libraries/Core/ExceptionsManager.js +2 -8
  54. package/Libraries/Core/InitializeCore.js +0 -13
  55. package/Libraries/Core/ReactFiberErrorDialog.js +3 -3
  56. package/Libraries/Core/ReactNativeVersion.js +2 -2
  57. package/Libraries/Core/ReactNativeVersionCheck.js +1 -1
  58. package/Libraries/Core/Timers/JSTimers.js +2 -2
  59. package/Libraries/Core/Timers/immediateShim.js +1 -1
  60. package/Libraries/Core/setUpBatchedBridge.js +1 -1
  61. package/Libraries/Core/setUpSegmentFetcher.js +1 -1
  62. package/Libraries/Debugging/DebuggingOverlayRegistry.js +1 -1
  63. package/Libraries/EventEmitter/NativeEventEmitter.js +9 -5
  64. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -2
  65. package/Libraries/Image/Image.android.js +15 -35
  66. package/Libraries/Image/RCTImageLoader.mm +4 -2
  67. package/Libraries/Image/RelativeImageStub.js +2 -2
  68. package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -12
  69. package/Libraries/Linking/Linking.js +1 -1
  70. package/Libraries/Lists/FlatList.js +1 -1
  71. package/Libraries/LogBox/LogBox.js +2 -2
  72. package/Libraries/LogBox/LogBoxInspectorContainer.js +24 -2
  73. package/Libraries/LogBox/LogBoxNotificationContainer.js +27 -4
  74. package/Libraries/LogBox/UI/LogBoxButton.js +47 -33
  75. package/Libraries/LogBox/UI/LogBoxInspector.js +61 -1
  76. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +6 -0
  77. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +3 -1
  78. package/Libraries/LogBox/UI/LogBoxNotification.js +2 -0
  79. package/Libraries/Modal/Modal.js +12 -7
  80. package/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.mm +0 -2
  81. package/Libraries/NativeComponent/BaseViewConfig.android.js +15 -0
  82. package/Libraries/NativeComponent/BaseViewConfig.ios.js +17 -0
  83. package/Libraries/NativeComponent/NativeComponentRegistry.js +2 -2
  84. package/Libraries/NativeComponent/TVViewConfig.js +1 -0
  85. package/Libraries/NativeComponent/ViewConfigIgnore.js +4 -2
  86. package/Libraries/Network/RCTNetworking.android.js +1 -1
  87. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  88. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  89. package/Libraries/Network/RCTNetworking.mm +1 -2
  90. package/Libraries/Network/XMLHttpRequest.js +29 -12
  91. package/Libraries/Pressability/Pressability.js +2 -2
  92. package/Libraries/ReactNative/AppContainer-dev.js +2 -3
  93. package/Libraries/ReactNative/AppContainer-prod.js +1 -2
  94. package/Libraries/ReactNative/AppContainer.js +0 -1
  95. package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
  96. package/Libraries/ReactNative/AppRegistry.flow.js +1 -2
  97. package/Libraries/ReactNative/AppRegistryImpl.js +16 -16
  98. package/Libraries/ReactNative/DeprecatedPerformanceLoggerStub.js +83 -0
  99. package/Libraries/ReactNative/FabricUIManager.js +6 -0
  100. package/Libraries/{Utilities → ReactNative}/IPerformanceLogger.d.ts +8 -5
  101. package/Libraries/{Utilities/IPerformanceLogger.js → ReactNative/IPerformanceLogger.flow.js} +12 -9
  102. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +14 -14
  103. package/Libraries/ReactNative/RendererImplementation.js +26 -143
  104. package/Libraries/ReactNative/RendererProxy.js +4 -15
  105. package/Libraries/ReactNative/renderApplication.js +33 -59
  106. package/Libraries/ReactNative/requireNativeComponent.js +3 -3
  107. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +5 -0
  108. package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -32
  109. package/Libraries/Settings/Settings.ios.js +1 -1
  110. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
  111. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +3 -3
  112. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  113. package/Libraries/StyleSheet/StyleSheet.js.flow +2 -2
  114. package/Libraries/StyleSheet/StyleSheetExports.js +1 -1
  115. package/Libraries/StyleSheet/StyleSheetExports.js.flow +1 -1
  116. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +6 -8
  117. package/Libraries/StyleSheet/StyleSheetTypes.js +11 -11
  118. package/Libraries/StyleSheet/flattenStyle.js +1 -1
  119. package/Libraries/StyleSheet/private/_TransformStyle.js +1 -1
  120. package/Libraries/StyleSheet/processBackgroundImage.js +19 -9
  121. package/Libraries/StyleSheet/processBackgroundSize.js +7 -12
  122. package/Libraries/StyleSheet/processBoxShadow.js +9 -47
  123. package/Libraries/StyleSheet/processFilter.js +16 -8
  124. package/Libraries/StyleSheet/processTransformOrigin.js +10 -3
  125. package/Libraries/Text/Text.js +4 -4
  126. package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm +16 -2
  127. package/Libraries/Text/TextNativeComponent.js +4 -4
  128. package/Libraries/TurboModule/RCTExport.js +1 -1
  129. package/Libraries/TurboModule/TurboModuleRegistry.js +3 -3
  130. package/Libraries/Types/CodegenTypes.js +7 -4
  131. package/Libraries/Types/ReactDevToolsTypes.js +1 -1
  132. package/Libraries/Utilities/BackHandler.android.js +11 -3
  133. package/Libraries/Utilities/BackHandler.d.ts +11 -1
  134. package/Libraries/Utilities/BackHandler.ios.js +3 -1
  135. package/Libraries/Utilities/BackHandler.js.flow +6 -1
  136. package/Libraries/Utilities/HardwareBackPressEvent.js +22 -0
  137. package/Libraries/Utilities/ReactNativeTestTools.js +4 -4
  138. package/Libraries/Utilities/binaryToBase64.js +1 -1
  139. package/Libraries/Utilities/codegenNativeCommands.js +2 -2
  140. package/Libraries/Utilities/codegenNativeComponent.js +4 -4
  141. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +2 -2
  142. package/Libraries/Utilities/stringifySafe.js +1 -1
  143. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  144. package/Libraries/vendor/core/ErrorUtils.js +4 -4
  145. package/Libraries/vendor/emitter/EventEmitter.js +27 -13
  146. package/README.md +13 -1
  147. package/React/Base/RCTBundleURLProvider.h +19 -1
  148. package/React/Base/RCTBundleURLProvider.mm +82 -0
  149. package/React/Base/RCTDefines.h +1 -1
  150. package/React/Base/RCTMultipartDataTask.h +1 -1
  151. package/React/Base/RCTMultipartDataTask.m +0 -3
  152. package/React/Base/RCTRootView.h +4 -0
  153. package/React/Base/RCTRootViewDelegate.h +5 -2
  154. package/React/Base/RCTVersion.m +2 -2
  155. package/React/Base/Surface/RCTSurface.h +3 -0
  156. package/React/Base/Surface/RCTSurfaceDelegate.h +7 -3
  157. package/React/Base/Surface/RCTSurfaceRootView.mm +1 -1
  158. package/React/Base/Surface/RCTSurfaceView.mm +2 -1
  159. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +2 -0
  160. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.h +0 -3
  161. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm +3 -1
  162. package/React/CoreModules/RCTDevMenuConfigurationDecorator.h +2 -2
  163. package/React/CoreModules/RCTRedBox2AnsiParser.mm +1 -1
  164. package/React/CoreModules/RCTWebSocketModule.mm +45 -6
  165. package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +0 -1
  166. package/React/DevSupport/RCTInspectorDevServerHelper.mm +4 -0
  167. package/React/DevSupport/RCTPackagerConnection.mm +13 -11
  168. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +108 -43
  169. package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.h +1 -0
  170. package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.mm +1 -0
  171. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.h +1 -1
  172. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +35 -15
  173. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +2 -2
  174. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +70 -8
  175. package/React/Fabric/RCTConversions.h +14 -0
  176. package/React/Fabric/RCTScheduler.mm +18 -0
  177. package/React/Fabric/RCTSurfacePointerHandler.mm +8 -2
  178. package/React/Fabric/RCTSurfaceTouchHandler.mm +1 -0
  179. package/React/Fabric/Surface/RCTFabricSurface.mm +3 -0
  180. package/React/I18n/strings/pt.lproj/fbt_language_pack.bin +0 -0
  181. package/React/Modules/RCTUIManager.mm +1 -1
  182. package/React/Profiler/RCTProfile.h +5 -0
  183. package/React/Profiler/RCTProfile.m +2 -1
  184. package/React/Profiler/RCTProfileTrampoline-arm.S +1 -1
  185. package/React/Profiler/RCTProfileTrampoline-arm64.S +1 -1
  186. package/React/Profiler/RCTProfileTrampoline-i386.S +1 -1
  187. package/React/Profiler/RCTProfileTrampoline-x86_64.S +1 -1
  188. package/React/Tests/Mounting/RCTViewComponentViewTests.mm +186 -0
  189. package/React/Tests/Text/RCTAttributedTextUtilsTest.mm +5 -5
  190. package/React/Views/RCTLayout.m +4 -3
  191. package/React/Views/ScrollView/RCTScrollView.h +6 -2
  192. package/ReactAndroid/api/ReactAndroid.api +37 -27
  193. package/ReactAndroid/build.gradle.kts +28 -21
  194. package/ReactAndroid/gradle.properties +1 -1
  195. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/HermesSamplingProfiler.kt +2 -0
  196. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +1 -3
  197. package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.kt +2 -0
  198. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +40 -110
  199. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +32 -87
  200. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +1 -0
  201. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.kt +9 -99
  202. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.kt +7 -28
  203. package/ReactAndroid/src/main/java/com/facebook/react/animated/PropsAnimatedNode.kt +2 -19
  204. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.kt +15 -23
  205. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +36 -0
  206. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNativeJNISoLoader.kt +2 -0
  207. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNativeJniCommonSoLoader.kt +2 -0
  208. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +4 -0
  209. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultSoLoader.kt +2 -0
  210. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/FpsView.kt +2 -2
  211. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +2 -0
  212. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.kt +15 -2
  213. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxDialogSurfaceDelegate.kt +1 -0
  214. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/DevSupportHttpClient.kt +9 -34
  215. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +9 -10
  216. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkRequestListener.kt +2 -0
  217. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +10 -10
  218. package/ReactAndroid/src/main/java/com/facebook/react/fabric/AnimationBackendChoreographer.kt +15 -13
  219. package/ReactAndroid/src/main/java/com/facebook/react/fabric/DevToolsReactPerfLogger.kt +4 -1
  220. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +139 -43
  221. package/ReactAndroid/src/main/java/com/facebook/react/fabric/ViewTransitionSnapshotManager.kt +223 -0
  222. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.kt +25 -8
  223. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +34 -1
  224. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.kt +104 -65
  225. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.kt +9 -1
  226. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt +172 -36
  227. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.kt +1 -1
  228. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/ExtraWindowEventListener.kt +29 -0
  229. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +41 -29
  230. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +71 -51
  231. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +15 -11
  232. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +16 -12
  233. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +79 -57
  234. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +3 -3
  235. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android.kt +1 -4
  236. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +15 -11
  237. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt +5 -9
  238. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/rewrite_feature_flag_defaults.py +76 -0
  239. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/tests/test_rewrite_feature_flag_defaults.py +63 -0
  240. package/ReactAndroid/src/main/java/com/facebook/react/internal/tracing/PerformanceTracer.kt +1 -1
  241. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +3 -0
  242. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobModule.kt +10 -5
  243. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobProvider.kt +1 -2
  244. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.kt +3 -0
  245. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/DeviceEventManagerModule.kt +2 -1
  246. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactChoreographer.kt +21 -20
  247. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.kt +63 -3
  248. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.kt +59 -62
  249. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +8 -0
  250. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.kt +45 -36
  251. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +2 -2
  252. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +5 -2
  253. package/ReactAndroid/src/main/java/com/facebook/react/runtime/CoreReactPackage.kt +4 -0
  254. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +18 -5
  255. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +8 -1
  256. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +21 -19
  257. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.kt +4 -0
  258. package/ReactAndroid/src/main/java/com/facebook/react/soloader/OpenSourceMergedSoMapping.kt +4 -0
  259. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +77 -72
  260. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +7 -16
  261. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BlendModeHelper.kt +3 -2
  262. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.kt +3 -0
  263. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FilterHelper.kt +3 -1
  264. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +25 -0
  265. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.kt +2 -2
  266. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactRootViewTagGenerator.kt +3 -2
  267. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewUtil.kt +17 -7
  268. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +18 -0
  269. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.kt +20 -12
  270. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +18 -24
  271. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIConstantsProviderBinding.kt +2 -0
  272. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +4 -0
  273. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.kt +11 -71
  274. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +10 -17
  275. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/ViewUtil.kt +29 -30
  276. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundImageDrawable.kt +5 -3
  277. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/InsetBoxShadowDrawable.kt +12 -13
  278. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +1 -0
  279. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +1 -0
  280. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +30 -0
  281. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/SynchronousEventReceiver.kt +28 -0
  282. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +9 -9
  283. package/ReactAndroid/src/main/java/com/facebook/react/util/AndroidVersion.kt +27 -3
  284. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +4 -0
  285. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/MaintainVisibleScrollPositionHelper.kt +1 -14
  286. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerViewManager.kt +1 -22
  287. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +32 -24
  288. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.java +20 -21
  289. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +33 -24
  290. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +60 -11
  291. package/ReactAndroid/src/main/java/com/facebook/react/views/text/FontMetricsUtil.kt +2 -3
  292. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +5 -162
  293. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt +1 -1
  294. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +71 -97
  295. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CustomStyleSpan.kt +1 -4
  296. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/DrawCommandSpan.kt +1 -1
  297. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +7 -13
  298. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +40 -2
  299. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.kt +59 -20
  300. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +85 -20
  301. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +46 -65
  302. package/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt +85 -13
  303. package/ReactAndroid/src/main/java/com/facebook/soloader/annotation/SoLoaderLibrary.kt +17 -0
  304. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaAlign.java +5 -1
  305. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIFinalizer.kt +30 -0
  306. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDisplay.java +3 -1
  307. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaExperimentalFeature.java +3 -1
  308. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGridTrackType.java +39 -0
  309. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaJustify.java +20 -12
  310. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +101 -0
  311. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.kt +33 -0
  312. package/ReactAndroid/src/main/jni/CMakeLists.txt +10 -1
  313. package/ReactAndroid/src/main/jni/react/fabric/ComponentFactory.cpp +0 -1
  314. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +0 -2
  315. package/ReactAndroid/src/main/jni/react/fabric/EventEmitterWrapper.cpp +26 -6
  316. package/ReactAndroid/src/main/jni/react/fabric/EventEmitterWrapper.h +3 -3
  317. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +47 -0
  318. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +20 -6
  319. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +24 -1
  320. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +6 -0
  321. package/ReactAndroid/src/main/jni/react/fabric/FocusOrderingHelper.cpp +0 -1
  322. package/ReactAndroid/src/main/jni/react/fabric/SurfaceHandlerBinding.cpp +1 -0
  323. package/ReactAndroid/src/main/jni/react/fabric/test_helper/FabricMountingManagerTestHelper.cpp +85 -0
  324. package/ReactAndroid/src/main/jni/react/fabric/test_helper/FabricMountingManagerTestHelper.h +46 -0
  325. package/ReactAndroid/src/main/jni/react/fabric/test_helper/OnLoad.cpp +16 -0
  326. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +97 -69
  327. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +21 -15
  328. package/ReactAndroid/src/main/jni/react/hermes/instrumentation/HermesSamplingProfiler.cpp +1 -1
  329. package/ReactAndroid/src/main/jni/react/jni/OnLoad-common.cpp +0 -2
  330. package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +2 -1
  331. package/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.cpp +37 -30
  332. package/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.h +11 -8
  333. package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +2 -1
  334. package/ReactAndroid/src/main/jni/react/reactnativeblob/OnLoad.cpp +1 -1
  335. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +10 -0
  336. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +7 -0
  337. package/ReactAndroid/src/main/jni/react/tracing/CMakeLists.txt +28 -0
  338. package/ReactCommon/React-Fabric.podspec +7 -0
  339. package/ReactCommon/React-FabricComponents.podspec +1 -1
  340. package/ReactCommon/cxxreact/ReactNativeVersion.h +4 -4
  341. package/ReactCommon/jsc/JSCRuntime.cpp +9 -0
  342. package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +1 -0
  343. package/ReactCommon/jserrorhandler/JsErrorHandler.h +1 -1
  344. package/ReactCommon/jsi/jsi/JSIDynamic.cpp +1 -0
  345. package/ReactCommon/jsi/jsi/decorator.h +93 -0
  346. package/ReactCommon/jsi/jsi/jsi-inl.h +97 -68
  347. package/ReactCommon/jsi/jsi/jsi.cpp +208 -27
  348. package/ReactCommon/jsi/jsi/jsi.h +553 -224
  349. package/ReactCommon/jsi/jsi/test/testlib.cpp +453 -0
  350. package/ReactCommon/jsiexecutor/jsireact/JSINativeModules.cpp +1 -1
  351. package/ReactCommon/jsinspector-modern/EmulationAgent.cpp +108 -0
  352. package/ReactCommon/jsinspector-modern/EmulationAgent.h +47 -0
  353. package/ReactCommon/jsinspector-modern/HostAgent.cpp +10 -1
  354. package/ReactCommon/jsinspector-modern/HostTarget.h +25 -0
  355. package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +6 -2
  356. package/ReactCommon/jsinspector-modern/InspectorFlags.h +5 -2
  357. package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +19 -2
  358. package/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +3 -0
  359. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +10 -0
  360. package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +0 -1
  361. package/ReactCommon/logger/react_native_log.cpp +0 -1
  362. package/ReactCommon/react/bridging/Array.h +1 -1
  363. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +29 -21
  364. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +35 -25
  365. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +168 -132
  366. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +18 -14
  367. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +28 -20
  368. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +61 -43
  369. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +3 -3
  370. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +9 -7
  371. package/ReactCommon/react/featureflags/rewrite_feature_flag_defaults.py +111 -0
  372. package/ReactCommon/react/featureflags/tests/test_rewrite_feature_flag_defaults.py +60 -0
  373. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.h +3 -9
  374. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +0 -1
  375. package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
  376. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
  377. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -0
  378. package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.cpp +2 -2
  379. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +35 -25
  380. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +15 -11
  381. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +3 -2
  382. package/ReactCommon/react/nativemodule/viewtransition/CMakeLists.txt +24 -0
  383. package/ReactCommon/react/nativemodule/viewtransition/NativeViewTransition.cpp +92 -0
  384. package/ReactCommon/react/nativemodule/viewtransition/NativeViewTransition.h +37 -0
  385. package/ReactCommon/react/nativemodule/viewtransition/React-viewtransitionnativemodule.podspec +58 -0
  386. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +10 -1
  387. package/ReactCommon/react/networking/NetworkReporter.h +0 -1
  388. package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.h +0 -1
  389. package/ReactCommon/react/performance/timeline/PerformanceEntry.h +1 -1
  390. package/ReactCommon/react/performance/timeline/tests/PerformanceEntryTest.cpp +62 -0
  391. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +24 -12
  392. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +1 -1
  393. package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +3 -0
  394. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +10 -3
  395. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +1 -0
  396. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +4 -0
  397. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +1 -1
  398. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +0 -1
  399. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +8 -3
  400. package/ReactCommon/react/renderer/animations/tests/MutationComparatorTest.cpp +273 -0
  401. package/ReactCommon/react/renderer/animations/utils.h +12 -1
  402. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +1 -1
  403. package/ReactCommon/react/renderer/attributedstring/conversions.h +104 -3
  404. package/ReactCommon/react/renderer/components/image/conversions.h +2 -3
  405. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +0 -1
  406. package/ReactCommon/react/renderer/components/scrollview/conversions.h +0 -1
  407. package/ReactCommon/react/renderer/components/text/stateConversions.h +0 -1
  408. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +531 -21
  409. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +9 -0
  410. package/ReactCommon/react/renderer/components/view/BaseTouch.cpp +3 -2
  411. package/ReactCommon/react/renderer/components/view/BaseTouch.h +7 -0
  412. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +15 -0
  413. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +1 -0
  414. package/ReactCommon/react/renderer/components/view/PointerEvent.cpp +2 -0
  415. package/ReactCommon/react/renderer/components/view/PointerEvent.h +5 -0
  416. package/ReactCommon/react/renderer/components/view/TouchEvent.h +0 -2
  417. package/ReactCommon/react/renderer/components/view/TouchEventEmitter.cpp +23 -5
  418. package/ReactCommon/react/renderer/components/view/TouchEventEmitter.h +1 -0
  419. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +5 -0
  420. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +33 -28
  421. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +0 -1
  422. package/ReactCommon/react/renderer/components/view/conversions.h +44 -28
  423. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +71 -5
  424. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +1 -0
  425. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/NativeDrawable.h +47 -16
  426. package/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +2 -2
  427. package/ReactCommon/react/renderer/{graphics/DoubleConversions.h → components/view/platform/tvos/react/renderer/components/view/HostPlatformTouch.h} +2 -4
  428. package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewEventEmitter.h +14 -0
  429. package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.cpp +38 -0
  430. package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.h +29 -0
  431. package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +30 -0
  432. package/ReactCommon/react/renderer/components/view/propsConversions.h +8 -2
  433. package/ReactCommon/react/renderer/components/view/tests/ConversionsTest.cpp +86 -0
  434. package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +34 -0
  435. package/ReactCommon/react/renderer/core/EventEmitter.cpp +67 -2
  436. package/ReactCommon/react/renderer/core/EventEmitter.h +25 -0
  437. package/ReactCommon/react/renderer/core/EventPipe.h +3 -1
  438. package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +18 -10
  439. package/ReactCommon/react/renderer/core/EventTarget.cpp +8 -5
  440. package/ReactCommon/react/renderer/core/LayoutContext.h +9 -2
  441. package/ReactCommon/react/renderer/core/LayoutMetrics.cpp +5 -3
  442. package/ReactCommon/react/renderer/core/LayoutPrimitives.h +1 -0
  443. package/ReactCommon/react/renderer/core/Props.cpp +20 -0
  444. package/ReactCommon/react/renderer/core/RawEvent.cpp +4 -2
  445. package/ReactCommon/react/renderer/core/RawEvent.h +6 -6
  446. package/ReactCommon/react/renderer/core/ShadowNode.h +2 -2
  447. package/ReactCommon/react/renderer/core/conversions.h +4 -0
  448. package/ReactCommon/react/renderer/core/graphicsConversions.h +4 -4
  449. package/ReactCommon/react/renderer/core/propsConversions.h +1 -1
  450. package/ReactCommon/react/renderer/core/tests/EventQueueProcessorTest.cpp +52 -3
  451. package/ReactCommon/react/renderer/core/tests/EventTargetTests.cpp +26 -0
  452. package/ReactCommon/react/renderer/css/tests/CSSValueParserTest.cpp +1 -1
  453. package/ReactCommon/react/renderer/debug/DebugStringConvertible.cpp +42 -26
  454. package/ReactCommon/react/renderer/debug/DebugStringConvertible.h +4 -2
  455. package/ReactCommon/react/renderer/debug/tests/DebugStringConvertibleTest.cpp +34 -3
  456. package/ReactCommon/react/renderer/graphics/BlendMode.h +5 -0
  457. package/ReactCommon/react/renderer/graphics/CMakeLists.txt +1 -0
  458. package/ReactCommon/react/renderer/graphics/ColorStop.h +3 -0
  459. package/ReactCommon/react/renderer/graphics/LinearGradient.h +3 -0
  460. package/ReactCommon/react/renderer/graphics/RadialGradient.h +4 -0
  461. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -0
  462. package/ReactCommon/react/renderer/graphics/ValueUnit.cpp +1 -1
  463. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +0 -5
  464. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +2 -2
  465. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h +0 -4
  466. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +5 -1
  467. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp +12 -4
  468. package/ReactCommon/react/renderer/mounting/CMakeLists.txt +1 -0
  469. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +307 -4
  470. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +27 -2
  471. package/ReactCommon/react/renderer/mounting/internal/LongestIncreasingSubsequence.h +95 -0
  472. package/ReactCommon/react/renderer/mounting/tests/DifferentiatorUnflattenTest.cpp +212 -0
  473. package/ReactCommon/react/renderer/mounting/tests/LongestIncreasingSubsequenceTest.cpp +154 -0
  474. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +314 -18
  475. package/ReactCommon/react/renderer/mounting/updateMountedFlag.cpp +38 -20
  476. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +20 -22
  477. package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +1 -0
  478. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +76 -3
  479. package/ReactCommon/react/renderer/scheduler/Scheduler.h +12 -0
  480. package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +5 -0
  481. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +0 -7
  482. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +2 -1
  483. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +16 -1
  484. package/ReactCommon/react/renderer/uimanager/UIManager.h +8 -0
  485. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +1 -0
  486. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +347 -5
  487. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +5 -3
  488. package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +5 -0
  489. package/ReactCommon/react/renderer/uimanager/UIManagerViewTransitionDelegate.h +82 -0
  490. package/ReactCommon/react/renderer/viewtransition/CMakeLists.txt +22 -0
  491. package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.cpp +520 -0
  492. package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.h +161 -0
  493. package/ReactCommon/react/runtime/TimerManager.cpp +4 -2
  494. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +37 -0
  495. package/ReactCommon/react/timing/PrivacyInfo.xcprivacy +21 -0
  496. package/ReactCommon/react/timing/React-timing.podspec +2 -0
  497. package/ReactCommon/react/timing/primitives.h +33 -1
  498. package/ReactCommon/yoga/yoga/YGEnums.cpp +32 -0
  499. package/ReactCommon/yoga/yoga/YGEnums.h +20 -4
  500. package/ReactCommon/yoga/yoga/YGMacros.h +2 -0
  501. package/ReactCommon/yoga/yoga/YGNode.h +1 -1
  502. package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +269 -0
  503. package/ReactCommon/yoga/yoga/YGNodeStyle.h +93 -1
  504. package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +40 -9
  505. package/ReactCommon/yoga/yoga/algorithm/Align.h +12 -1
  506. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +106 -14
  507. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.h +22 -0
  508. package/ReactCommon/yoga/yoga/enums/Align.h +3 -1
  509. package/ReactCommon/yoga/yoga/enums/Display.h +2 -1
  510. package/ReactCommon/yoga/yoga/enums/ExperimentalFeature.h +2 -1
  511. package/ReactCommon/yoga/yoga/enums/GridTrackType.h +43 -0
  512. package/ReactCommon/yoga/yoga/enums/Justify.h +5 -1
  513. package/ReactCommon/yoga/yoga/event/event.cpp +2 -0
  514. package/ReactCommon/yoga/yoga/event/event.h +1 -0
  515. package/ReactCommon/yoga/yoga/node/Node.cpp +6 -1
  516. package/ReactCommon/yoga/yoga/node/Node.h +4 -4
  517. package/ReactCommon/yoga/yoga/style/GridLine.h +53 -0
  518. package/ReactCommon/yoga/yoga/style/GridTrack.h +63 -0
  519. package/ReactCommon/yoga/yoga/style/Style.h +261 -71
  520. package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +7 -1
  521. package/ReactCommon/yoga/yoga/style/StyleValueHandle.h +8 -0
  522. package/ReactCommon/yoga/yoga/style/StyleValuePool.h +10 -0
  523. package/cli.js +1 -1
  524. package/flow/HermesInternalType.js +1 -1
  525. package/flow/bom.js.flow +95 -3
  526. package/flow/dom.js.flow +89 -89
  527. package/gradle/libs.versions.toml +3 -1
  528. package/index.js +30 -3
  529. package/index.js.flow +23 -1
  530. package/package.json +11 -11
  531. package/react-native.config.js +3 -3
  532. package/scripts/cocoapods/rncore.rb +65 -11
  533. package/scripts/cocoapods/rndependencies.rb +65 -11
  534. package/scripts/cocoapods/utils.rb +52 -0
  535. package/scripts/codegen/generate-artifacts-executor/generateCustomURLHandlers.js +1 -1
  536. package/scripts/codegen/generate-artifacts-executor/generateNativeCode.js +13 -4
  537. package/scripts/codegen/generate-artifacts-executor/generateRCTModuleProviders.js +1 -1
  538. package/scripts/codegen/generate-artifacts-executor/generateRCTThirdPartyComponents.js +1 -1
  539. package/scripts/codegen/generate-artifacts-executor/generateReactCodegenPodspec.js +17 -6
  540. package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +1 -1
  541. package/scripts/codegen/generate-artifacts-executor/generateUnstableModulesRequiringMainQueueSetupProvider.js +1 -1
  542. package/scripts/codegen/generate-artifacts-executor/index.js +2 -0
  543. package/scripts/codegen/generate-artifacts-executor/utils.js +1 -1
  544. package/scripts/codegen/generate-specs-cli-executor.js +1 -1
  545. package/scripts/generate-codegen-artifacts.js +20 -2
  546. package/scripts/generate-provider-cli.js +1 -1
  547. package/scripts/react_native_pods.rb +25 -2
  548. package/scripts/react_native_pods_utils/script_phases.rb +9 -3
  549. package/scripts/replace-rncore-version.js +20 -0
  550. package/scripts/xcode/with-environment.sh +7 -1
  551. package/sdks/.hermesv1version +1 -1
  552. package/sdks/.hermesversion +1 -1
  553. package/sdks/hermes-engine/hermes-utils.rb +92 -5
  554. package/sdks/hermes-engine/version.properties +2 -2
  555. package/src/private/animated/NativeAnimatedValidation.js +1 -1
  556. package/src/private/animated/createAnimatedPropsHook.js +2 -2
  557. package/src/private/components/virtualcollection/FlingConstants.js +21 -0
  558. package/src/private/components/virtualcollection/Virtual.js +62 -0
  559. package/src/private/components/virtualcollection/VirtualCollectionView.js +238 -0
  560. package/src/private/components/virtualcollection/column/VirtualColumn.js +43 -0
  561. package/src/private/components/virtualcollection/column/VirtualColumnGenerator.js +72 -0
  562. package/src/private/components/virtualcollection/debug/FlingItemOverlay.js +13 -0
  563. package/src/private/components/virtualcollection/dom/getScrollParent.js +43 -0
  564. package/src/private/components/virtualcollection/dom/isScrollableNode.js +22 -0
  565. package/src/private/components/virtualcollection/row/VirtualRow.js +43 -0
  566. package/src/private/components/virtualcollection/row/VirtualRowGenerator.js +72 -0
  567. package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +2 -2
  568. package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +1 -1
  569. package/src/private/devsupport/devmenu/specs/NativeDevMenu.js +1 -1
  570. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +2 -2
  571. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsSettingsManager.js +2 -2
  572. package/src/private/featureflags/ReactNativeFeatureFlags.js +41 -37
  573. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
  574. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +9 -7
  575. package/src/private/renderer/errorhandling/ErrorHandlers.js +3 -3
  576. package/src/private/renderer/events/LegacySyntheticEvent.js +90 -0
  577. package/src/private/renderer/events/ReactNativeEventTypeMapping.js +103 -0
  578. package/src/private/renderer/events/ReactNativeResponder.js +687 -0
  579. package/src/private/renderer/events/ResponderEvent.js +40 -0
  580. package/src/private/renderer/events/ResponderTouchHistoryStore.js +258 -0
  581. package/src/private/renderer/events/dispatchNativeEvent.js +83 -0
  582. package/src/private/setup/setUpDOM.js +20 -0
  583. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +2 -2
  584. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +2 -2
  585. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
  586. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  587. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
  588. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +2 -2
  589. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +2 -2
  590. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +2 -2
  591. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +2 -2
  592. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +2 -2
  593. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +2 -2
  594. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
  595. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +2 -2
  596. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityInfo.js +1 -1
  597. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
  598. package/src/private/specs_DEPRECATED/modules/NativeActionSheetManager.js +1 -1
  599. package/src/private/specs_DEPRECATED/modules/NativeAlertManager.js +1 -1
  600. package/src/private/specs_DEPRECATED/modules/NativeAppState.js +1 -1
  601. package/src/private/specs_DEPRECATED/modules/NativeAppearance.js +1 -1
  602. package/src/private/specs_DEPRECATED/modules/NativeBlobModule.js +1 -1
  603. package/src/private/specs_DEPRECATED/modules/NativeClipboard.js +1 -1
  604. package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -1
  605. package/src/private/specs_DEPRECATED/modules/NativeDevSettings.js +1 -1
  606. package/src/private/specs_DEPRECATED/modules/NativeDeviceEventManager.js +1 -1
  607. package/src/private/specs_DEPRECATED/modules/NativeDialogManagerAndroid.js +1 -1
  608. package/src/private/specs_DEPRECATED/modules/NativeFileReaderModule.js +2 -2
  609. package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
  610. package/src/private/specs_DEPRECATED/modules/NativeHeadlessJsTaskSupport.js +1 -1
  611. package/src/private/specs_DEPRECATED/modules/NativeI18nManager.js +1 -1
  612. package/src/private/specs_DEPRECATED/modules/NativeImageEditor.js +2 -2
  613. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderAndroid.js +1 -1
  614. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
  615. package/src/private/specs_DEPRECATED/modules/NativeImageStoreAndroid.js +2 -2
  616. package/src/private/specs_DEPRECATED/modules/NativeImageStoreIOS.js +2 -2
  617. package/src/private/specs_DEPRECATED/modules/NativeIntentAndroid.js +1 -1
  618. package/src/private/specs_DEPRECATED/modules/NativeJSCHeapCapture.js +1 -1
  619. package/src/private/specs_DEPRECATED/modules/NativeKeyboardObserver.js +1 -1
  620. package/src/private/specs_DEPRECATED/modules/NativeLinkingManager.js +1 -1
  621. package/src/private/specs_DEPRECATED/modules/NativeLogBox.js +1 -1
  622. package/src/private/specs_DEPRECATED/modules/NativeModalManager.js +1 -1
  623. package/src/private/specs_DEPRECATED/modules/NativeNetworkingAndroid.js +1 -1
  624. package/src/private/specs_DEPRECATED/modules/NativeNetworkingIOS.js +1 -1
  625. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
  626. package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsAndroid.js +2 -2
  627. package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsIOS.js +2 -2
  628. package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +2 -2
  629. package/src/private/specs_DEPRECATED/modules/NativeRedBox.js +1 -1
  630. package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +2 -2
  631. package/src/private/specs_DEPRECATED/modules/NativeSegmentFetcher.js +1 -1
  632. package/src/private/specs_DEPRECATED/modules/NativeSettingsManager.js +2 -2
  633. package/src/private/specs_DEPRECATED/modules/NativeShareModule.js +1 -1
  634. package/src/private/specs_DEPRECATED/modules/NativeSoundManager.js +1 -1
  635. package/src/private/specs_DEPRECATED/modules/NativeTiming.js +1 -1
  636. package/src/private/specs_DEPRECATED/modules/NativeToastAndroid.js +1 -1
  637. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +1 -1
  638. package/src/private/specs_DEPRECATED/modules/NativeVibration.js +1 -1
  639. package/src/private/specs_DEPRECATED/modules/NativeWebSocketModule.js +2 -2
  640. package/src/private/styles/composeStyles.js +1 -1
  641. package/src/private/types/HostComponent.js +1 -1
  642. package/src/private/utilities/toExtendedError.js +1 -1
  643. package/src/private/viewtransition/specs/NativeViewTransition.js +33 -0
  644. package/src/private/webapis/dom/events/Event.js +10 -1
  645. package/src/private/webapis/dom/events/EventTarget.js +60 -18
  646. package/src/private/webapis/dom/events/internals/EventInternals.js +18 -1
  647. package/src/private/webapis/dom/events/internals/EventTargetInternals.js +12 -0
  648. package/src/private/webapis/dom/nodes/ReactNativeElement.js +24 -0
  649. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +4 -6
  650. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +70 -1
  651. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +10 -0
  652. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +1 -1
  653. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +2 -2
  654. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +5 -9
  655. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +2 -2
  656. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +2 -2
  657. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +2 -2
  658. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +1 -1
  659. package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
  660. package/src/private/webapis/structuredClone/structuredClone.js +1 -1
  661. package/src/private/webapis/webidl/PlatformObjects.js +4 -4
  662. package/types/public/ReactNativeTVTypes.d.ts +9 -0
  663. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +0 -19669
  664. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +0 -11129
  665. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +0 -12930
  666. package/Libraries/Renderer/shims/ReactNative.js +0 -27
  667. package/Libraries/Utilities/GlobalPerformanceLogger.js +0 -24
  668. package/Libraries/Utilities/PerformanceLoggerContext.js +0 -33
  669. package/Libraries/Utilities/createPerformanceLogger.js +0 -329
  670. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +0 -442
  671. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobCollector.kt +0 -31
  672. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerLegacyView.kt +0 -47
  673. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIFinalizer.java +0 -31
  674. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.java +0 -35
  675. package/ReactCommon/react/renderer/graphics/DoubleConversions.cpp +0 -38
@@ -12,6 +12,7 @@ package com.facebook.react.views.view
12
12
  import android.annotation.SuppressLint
13
13
  import android.annotation.TargetApi
14
14
  import android.content.Context
15
+ import android.content.res.Configuration
15
16
  import android.graphics.BlendMode
16
17
  import android.graphics.Canvas
17
18
  import android.graphics.Paint
@@ -36,6 +37,7 @@ import com.facebook.react.bridge.ReactContext
36
37
  import com.facebook.react.bridge.ReactNoCrashSoftException
37
38
  import com.facebook.react.bridge.ReactSoftExceptionLogger
38
39
  import com.facebook.react.bridge.ReactSoftExceptionLogger.logSoftException
40
+ import com.facebook.react.bridge.ReadableMap
39
41
  import com.facebook.react.bridge.UiThreadUtil.assertOnUiThread
40
42
  import com.facebook.react.bridge.UiThreadUtil.runOnUiThread
41
43
  import com.facebook.react.common.ReactConstants.TAG
@@ -45,6 +47,7 @@ import com.facebook.react.touch.OnInterceptTouchEventListener
45
47
  import com.facebook.react.touch.ReactHitSlopView
46
48
  import com.facebook.react.touch.ReactInterceptingViewGroup
47
49
  import com.facebook.react.uimanager.BackgroundStyleApplicator.clipToPaddingBox
50
+ import com.facebook.react.uimanager.BackgroundStyleApplicator.getPaddingBoxRect
48
51
  import com.facebook.react.uimanager.BackgroundStyleApplicator.setBackgroundColor
49
52
  import com.facebook.react.uimanager.BackgroundStyleApplicator.setBorderColor
50
53
  import com.facebook.react.uimanager.BackgroundStyleApplicator.setBorderRadius
@@ -68,8 +71,6 @@ import com.facebook.react.uimanager.ReactOverflowViewWithInset
68
71
  import com.facebook.react.uimanager.ReactPointerEventsView
69
72
  import com.facebook.react.uimanager.ReactZIndexedViewGroup
70
73
  import com.facebook.react.uimanager.UIManagerHelper
71
- import com.facebook.react.uimanager.common.UIManagerType
72
- import com.facebook.react.uimanager.common.ViewUtil.getUIManagerType
73
74
  import com.facebook.react.uimanager.events.EventDispatcher
74
75
  import com.facebook.react.uimanager.events.PressInEvent
75
76
  import com.facebook.react.uimanager.events.PressOutEvent
@@ -174,6 +175,7 @@ public open class ReactViewGroup public constructor(context: Context?) :
174
175
  private var onInterceptTouchEventListener: OnInterceptTouchEventListener? = null
175
176
  private var needsOffscreenAlphaCompositing = false
176
177
  public var scrollSnapAlign: String? = null
178
+ public var scrollSnapOffset: Int? = null
177
179
  private var backfaceOpacity = 0f
178
180
  private var backfaceVisible = false
179
181
  private var childrenRemovedWhileTransitioning: MutableSet<Int>? = null
@@ -182,6 +184,9 @@ public open class ReactViewGroup public constructor(context: Context?) :
182
184
  null
183
185
  private var focusOnAttach = false
184
186
 
187
+ internal var nativeBackgroundMap: ReadableMap? = null
188
+ internal var nativeForegroundMap: ReadableMap? = null
189
+
185
190
  init {
186
191
  initView()
187
192
  }
@@ -193,9 +198,6 @@ public open class ReactViewGroup public constructor(context: Context?) :
193
198
  */
194
199
  private fun initView() {
195
200
  clipChildren = false
196
- if (ReactNativeFeatureFlags.syncAndroidClipToPaddingWithOverflow()) {
197
- clipToPadding = false
198
- }
199
201
 
200
202
  _removeClippedSubviews = false
201
203
  inSubviewClippingLoop = false
@@ -212,6 +214,8 @@ public open class ReactViewGroup public constructor(context: Context?) :
212
214
  backfaceOpacity = 1f
213
215
  backfaceVisible = true
214
216
  childrenRemovedWhileTransitioning = null
217
+ nativeBackgroundMap = null
218
+ nativeForegroundMap = null
215
219
  }
216
220
 
217
221
  internal open fun recycleView() {
@@ -751,6 +755,29 @@ public open class ReactViewGroup public constructor(context: Context?) :
751
755
  }
752
756
  }
753
757
 
758
+ override fun onConfigurationChanged(newConfig: Configuration) {
759
+ super.onConfigurationChanged(newConfig)
760
+ if (nativeBackgroundMap != null) {
761
+ applyNativeBackground(nativeBackgroundMap)
762
+ }
763
+ if (nativeForegroundMap != null) {
764
+ applyNativeForeground(nativeForegroundMap)
765
+ }
766
+ }
767
+
768
+ internal fun applyNativeBackground(map: ReadableMap?) {
769
+ nativeBackgroundMap = map
770
+ setFeedbackUnderlay(
771
+ this,
772
+ map?.let { ReactDrawableHelper.createDrawableFromJSDescription(context, it) },
773
+ )
774
+ }
775
+
776
+ internal fun applyNativeForeground(map: ReadableMap?) {
777
+ nativeForegroundMap = map
778
+ foreground = map?.let { ReactDrawableHelper.createDrawableFromJSDescription(context, it) }
779
+ }
780
+
754
781
  override fun onViewAdded(child: View) {
755
782
  assertOnUiThread()
756
783
  checkViewClippingTag(child, false)
@@ -994,12 +1021,42 @@ public open class ReactViewGroup public constructor(context: Context?) :
994
1021
  } else {
995
1022
  Overflow.fromString(overflow)
996
1023
  }
997
- if (ReactNativeFeatureFlags.syncAndroidClipToPaddingWithOverflow()) {
998
- clipToPadding = _overflow != Overflow.VISIBLE
999
- }
1000
1024
  invalidate()
1001
1025
  }
1002
1026
 
1027
+ /**
1028
+ * Returns the clip bounds for this view based on the overflow property.
1029
+ *
1030
+ * When overflow is hidden or scroll, returns the padding box rect (the area inside the borders)
1031
+ * so that systems querying [View.getClipBounds] can determine the view's clipping region. Returns
1032
+ * null when overflow is visible (no clipping).
1033
+ */
1034
+ override fun getClipBounds(): Rect? {
1035
+ if (
1036
+ ReactNativeFeatureFlags.syncAndroidClipBoundsWithOverflow() &&
1037
+ _overflow != null &&
1038
+ _overflow != Overflow.VISIBLE
1039
+ ) {
1040
+ val rect = Rect()
1041
+ getPaddingBoxRect(this, rect)
1042
+ return rect
1043
+ }
1044
+ return super.getClipBounds()
1045
+ }
1046
+
1047
+ /** See [getClipBounds]. */
1048
+ override fun getClipBounds(outRect: Rect): Boolean {
1049
+ if (
1050
+ ReactNativeFeatureFlags.syncAndroidClipBoundsWithOverflow() &&
1051
+ _overflow != null &&
1052
+ _overflow != Overflow.VISIBLE
1053
+ ) {
1054
+ getPaddingBoxRect(this, outRect)
1055
+ return true
1056
+ }
1057
+ return super.getClipBounds(outRect)
1058
+ }
1059
+
1003
1060
  override fun setOverflowInset(left: Int, top: Int, right: Int, bottom: Int) {
1004
1061
  if (
1005
1062
  needsIsolatedLayer(this) &&
@@ -1023,11 +1080,7 @@ public open class ReactViewGroup public constructor(context: Context?) :
1023
1080
  }
1024
1081
 
1025
1082
  override fun draw(canvas: Canvas) {
1026
- if (
1027
- Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q &&
1028
- getUIManagerType(this) == UIManagerType.FABRIC &&
1029
- needsIsolatedLayer(this)
1030
- ) {
1083
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && needsIsolatedLayer(this)) {
1031
1084
  // Check if the view is a stacking context and has children, if it does, do the rendering
1032
1085
  // offscreen and then composite back. This follows the idea of group isolation on blending
1033
1086
  // https://www.w3.org/TR/compositing-1/#isolationblending
@@ -1062,11 +1115,7 @@ public open class ReactViewGroup public constructor(context: Context?) :
1062
1115
  }
1063
1116
 
1064
1117
  var mixBlendMode: BlendMode? = null
1065
- if (
1066
- Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q &&
1067
- getUIManagerType(this) == UIManagerType.FABRIC &&
1068
- needsIsolatedLayer(this)
1069
- ) {
1118
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && needsIsolatedLayer(this)) {
1070
1119
  mixBlendMode = child.getTag(R.id.mix_blend_mode) as? BlendMode
1071
1120
  if (mixBlendMode != null) {
1072
1121
  val p = Paint()
@@ -1545,12 +1594,12 @@ public open class ReactViewGroup public constructor(context: Context?) :
1545
1594
  } else if (axOrderParentOrderList != null) {
1546
1595
  // view is a container so add its children normally
1547
1596
  if (!isFocusable) {
1548
- super.addChildrenForAccessibility(outChildren)
1597
+ safeAddChildrenForAccessibility(outChildren)
1549
1598
  return
1550
1599
 
1551
1600
  // If this view can coopt, turn the focusability off its children but add them to the tree
1552
1601
  } else if (isFocusable && (contentDescription == null || contentDescription == "")) {
1553
- super.addChildrenForAccessibility(outChildren)
1602
+ safeAddChildrenForAccessibility(outChildren)
1554
1603
  for (i in 0..<childCount) {
1555
1604
  ReactAxOrderHelper.disableFocusForSubtree(getChildAt(i), axOrderParentOrderList)
1556
1605
  }
@@ -1560,7 +1609,23 @@ public open class ReactViewGroup public constructor(context: Context?) :
1560
1609
  return
1561
1610
  }
1562
1611
  } else {
1612
+ safeAddChildrenForAccessibility(outChildren)
1613
+ }
1614
+ }
1615
+
1616
+ private fun safeAddChildrenForAccessibility(outChildren: ArrayList<View>) {
1617
+ try {
1563
1618
  super.addChildrenForAccessibility(outChildren)
1619
+ } catch (error: IllegalArgumentException) {
1620
+ // Android 16 can race while building accessibility child lists during fast re-parenting.
1621
+ if (error.message?.contains("descendant of this view") == true) {
1622
+ logSoftException(
1623
+ ReactSoftExceptionLogger.Categories.RVG_ADD_CHILDREN_FOR_ACCESSIBILITY,
1624
+ error,
1625
+ )
1626
+ } else {
1627
+ throw error
1628
+ }
1564
1629
  }
1565
1630
  }
1566
1631
 
@@ -28,7 +28,6 @@ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
28
28
  import com.facebook.react.module.annotations.ReactModule
29
29
  import com.facebook.react.uimanager.BackgroundStyleApplicator
30
30
  import com.facebook.react.uimanager.LengthPercentage
31
- import com.facebook.react.uimanager.LengthPercentageType
32
31
  import com.facebook.react.uimanager.PixelUtil.dpToPx
33
32
  import com.facebook.react.uimanager.PointerEvents
34
33
  import com.facebook.react.uimanager.ReactAxOrderHelper
@@ -38,8 +37,6 @@ import com.facebook.react.uimanager.UIManagerHelper
38
37
  import com.facebook.react.uimanager.ViewProps
39
38
  import com.facebook.react.uimanager.annotations.ReactProp
40
39
  import com.facebook.react.uimanager.annotations.ReactPropGroup
41
- import com.facebook.react.uimanager.common.UIManagerType
42
- import com.facebook.react.uimanager.common.ViewUtil
43
40
  import com.facebook.react.uimanager.style.BackgroundImageLayer
44
41
  import com.facebook.react.uimanager.style.BackgroundPosition
45
42
  import com.facebook.react.uimanager.style.BackgroundRepeat
@@ -195,39 +192,40 @@ public open class ReactViewManager : ReactClippingViewManager<ReactViewGroup>()
195
192
  view.scrollSnapAlign = value
196
193
  }
197
194
 
195
+ @ReactProp(name = "scrollSnapOffset", defaultFloat = Float.NaN)
196
+ public open fun setScrollSnapOffset(view: ReactViewGroup, value: Float) {
197
+ view.scrollSnapOffset = if (value.isNaN()) null else value.dpToPx().toInt()
198
+ }
199
+
198
200
  @ReactProp(name = ViewProps.BACKGROUND_IMAGE, customType = "BackgroundImage")
199
201
  public open fun setBackgroundImage(view: ReactViewGroup, backgroundImage: ReadableArray?) {
200
- if (ViewUtil.getUIManagerType(view) == UIManagerType.FABRIC) {
201
- if (backgroundImage != null && backgroundImage.size() > 0) {
202
- val backgroundImageLayers = ArrayList<BackgroundImageLayer>(backgroundImage.size())
203
- for (i in 0 until backgroundImage.size()) {
204
- val backgroundImageMap = backgroundImage.getMap(i)
205
- val layer = BackgroundImageLayer.parse(backgroundImageMap, view.context)
206
- if (layer != null) {
207
- backgroundImageLayers.add(layer)
208
- }
202
+ if (backgroundImage != null && backgroundImage.size() > 0) {
203
+ val backgroundImageLayers = ArrayList<BackgroundImageLayer>(backgroundImage.size())
204
+ for (i in 0 until backgroundImage.size()) {
205
+ val backgroundImageMap = backgroundImage.getMap(i)
206
+ val layer = BackgroundImageLayer.parse(backgroundImageMap, view.context)
207
+ if (layer != null) {
208
+ backgroundImageLayers.add(layer)
209
209
  }
210
- BackgroundStyleApplicator.setBackgroundImage(view, backgroundImageLayers)
211
- } else {
212
- BackgroundStyleApplicator.setBackgroundImage(view, null)
213
210
  }
211
+ BackgroundStyleApplicator.setBackgroundImage(view, backgroundImageLayers)
212
+ } else {
213
+ BackgroundStyleApplicator.setBackgroundImage(view, null)
214
214
  }
215
215
  }
216
216
 
217
217
  @ReactProp(name = ViewProps.BACKGROUND_SIZE, customType = "BackgroundSize")
218
218
  public open fun setBackgroundSize(view: ReactViewGroup, backgroundSize: ReadableArray?) {
219
- if (ViewUtil.getUIManagerType(view) == UIManagerType.FABRIC) {
220
- if (backgroundSize != null && backgroundSize.size() > 0) {
221
- val backgroundSizes = ArrayList<BackgroundSize>(backgroundSize.size())
222
- for (i in 0 until backgroundSize.size()) {
223
- val backgroundSizeValue = backgroundSize.getDynamic(i)
224
- val parsedBackgroundSize = BackgroundSize.parse(backgroundSizeValue)
225
- if (parsedBackgroundSize != null) {
226
- backgroundSizes.add(parsedBackgroundSize)
227
- }
219
+ if (backgroundSize != null && backgroundSize.size() > 0) {
220
+ val backgroundSizes = ArrayList<BackgroundSize>(backgroundSize.size())
221
+ for (i in 0 until backgroundSize.size()) {
222
+ val backgroundSizeValue = backgroundSize.getDynamic(i)
223
+ val parsedBackgroundSize = BackgroundSize.parse(backgroundSizeValue)
224
+ if (parsedBackgroundSize != null) {
225
+ backgroundSizes.add(parsedBackgroundSize)
228
226
  }
229
- BackgroundStyleApplicator.setBackgroundSize(view, backgroundSizes)
230
227
  }
228
+ BackgroundStyleApplicator.setBackgroundSize(view, backgroundSizes.ifEmpty { null })
231
229
  } else {
232
230
  BackgroundStyleApplicator.setBackgroundSize(view, null)
233
231
  }
@@ -235,39 +233,35 @@ public open class ReactViewManager : ReactClippingViewManager<ReactViewGroup>()
235
233
 
236
234
  @ReactProp(name = ViewProps.BACKGROUND_POSITION, customType = "BackgroundPosition")
237
235
  public open fun setBackgroundPosition(view: ReactViewGroup, backgroundPosition: ReadableArray?) {
238
- if (ViewUtil.getUIManagerType(view) == UIManagerType.FABRIC) {
239
- if (backgroundPosition != null && backgroundPosition.size() > 0) {
240
- val backgroundPositions = ArrayList<BackgroundPosition>(backgroundPosition.size())
241
- for (i in 0 until backgroundPosition.size()) {
242
- val backgroundPositionMap = backgroundPosition.getMap(i)
243
- val parsedBackgroundPosition = BackgroundPosition.parse(backgroundPositionMap)
244
- if (parsedBackgroundPosition != null) {
245
- backgroundPositions.add(parsedBackgroundPosition)
246
- }
236
+ if (backgroundPosition != null && backgroundPosition.size() > 0) {
237
+ val backgroundPositions = ArrayList<BackgroundPosition>(backgroundPosition.size())
238
+ for (i in 0 until backgroundPosition.size()) {
239
+ val backgroundPositionMap = backgroundPosition.getMap(i)
240
+ val parsedBackgroundPosition = BackgroundPosition.parse(backgroundPositionMap)
241
+ if (parsedBackgroundPosition != null) {
242
+ backgroundPositions.add(parsedBackgroundPosition)
247
243
  }
248
- BackgroundStyleApplicator.setBackgroundPosition(view, backgroundPositions)
249
- } else {
250
- BackgroundStyleApplicator.setBackgroundPosition(view, null)
251
244
  }
245
+ BackgroundStyleApplicator.setBackgroundPosition(view, backgroundPositions.ifEmpty { null })
246
+ } else {
247
+ BackgroundStyleApplicator.setBackgroundPosition(view, null)
252
248
  }
253
249
  }
254
250
 
255
251
  @ReactProp(name = ViewProps.BACKGROUND_REPEAT, customType = "BackgroundRepeat")
256
252
  public open fun setBackgroundRepeat(view: ReactViewGroup, backgroundRepeat: ReadableArray?) {
257
- if (ViewUtil.getUIManagerType(view) == UIManagerType.FABRIC) {
258
- if (backgroundRepeat != null && backgroundRepeat.size() > 0) {
259
- val backgroundRepeats = ArrayList<BackgroundRepeat>(backgroundRepeat.size())
260
- for (i in 0 until backgroundRepeat.size()) {
261
- val backgroundRepeatMap = backgroundRepeat.getMap(i)
262
- val parsedBackgroundRepeat = BackgroundRepeat.parse(backgroundRepeatMap)
263
- if (parsedBackgroundRepeat != null) {
264
- backgroundRepeats.add(parsedBackgroundRepeat)
265
- }
253
+ if (backgroundRepeat != null && backgroundRepeat.size() > 0) {
254
+ val backgroundRepeats = ArrayList<BackgroundRepeat>(backgroundRepeat.size())
255
+ for (i in 0 until backgroundRepeat.size()) {
256
+ val backgroundRepeatMap = backgroundRepeat.getMap(i)
257
+ val parsedBackgroundRepeat = BackgroundRepeat.parse(backgroundRepeatMap)
258
+ if (parsedBackgroundRepeat != null) {
259
+ backgroundRepeats.add(parsedBackgroundRepeat)
266
260
  }
267
- BackgroundStyleApplicator.setBackgroundRepeat(view, backgroundRepeats)
268
- } else {
269
- BackgroundStyleApplicator.setBackgroundRepeat(view, null)
270
261
  }
262
+ BackgroundStyleApplicator.setBackgroundRepeat(view, backgroundRepeats.ifEmpty { null })
263
+ } else {
264
+ BackgroundStyleApplicator.setBackgroundRepeat(view, null)
271
265
  }
272
266
  }
273
267
 
@@ -315,17 +309,7 @@ public open class ReactViewManager : ReactClippingViewManager<ReactViewGroup>()
315
309
  ]
316
310
  )
317
311
  public open fun setBorderRadius(view: ReactViewGroup, index: Int, rawBorderRadius: Dynamic) {
318
- var borderRadius = LengthPercentage.setFromDynamic(rawBorderRadius)
319
-
320
- // We do not support percentage border radii on Paper in order to be consistent with iOS (to
321
- // avoid developer surprise if it works on one platform but not another).
322
- if (
323
- ViewUtil.getUIManagerType(view) != UIManagerType.FABRIC &&
324
- borderRadius != null &&
325
- borderRadius.type == LengthPercentageType.PERCENT
326
- ) {
327
- borderRadius = null
328
- }
312
+ val borderRadius = LengthPercentage.setFromDynamic(rawBorderRadius)
329
313
 
330
314
  BackgroundStyleApplicator.setBorderRadius(view, BorderRadiusProp.values()[index], borderRadius)
331
315
  }
@@ -385,15 +369,12 @@ public open class ReactViewManager : ReactClippingViewManager<ReactViewGroup>()
385
369
 
386
370
  @ReactProp(name = "nativeBackgroundAndroid")
387
371
  public open fun setNativeBackground(view: ReactViewGroup, background: ReadableMap?) {
388
- val bg =
389
- background?.let { ReactDrawableHelper.createDrawableFromJSDescription(view.context, it) }
390
- BackgroundStyleApplicator.setFeedbackUnderlay(view, bg)
372
+ view.applyNativeBackground(background)
391
373
  }
392
374
 
393
375
  @ReactProp(name = "nativeForegroundAndroid")
394
376
  public open fun setNativeForeground(view: ReactViewGroup, foreground: ReadableMap?) {
395
- view.foreground =
396
- foreground?.let { ReactDrawableHelper.createDrawableFromJSDescription(view.context, it) }
377
+ view.applyNativeForeground(foreground)
397
378
  }
398
379
 
399
380
  @ReactProp(name = ViewProps.NEEDS_OFFSCREEN_ALPHA_COMPOSITING)
@@ -7,14 +7,19 @@
7
7
 
8
8
  package com.facebook.react.views.view
9
9
 
10
+ import android.app.Activity
10
11
  import android.graphics.Color
11
12
  import android.os.Build
13
+ import android.view.View
12
14
  import android.view.Window
15
+ import android.view.WindowInsetsController
13
16
  import android.view.WindowManager
17
+ import androidx.annotation.VisibleForTesting
14
18
  import androidx.core.view.ViewCompat
15
19
  import androidx.core.view.WindowCompat
16
20
  import androidx.core.view.WindowInsetsCompat
17
21
  import androidx.core.view.WindowInsetsControllerCompat
22
+ import com.facebook.react.util.AndroidVersion
18
23
  import com.facebook.react.views.common.UiModeUtils
19
24
 
20
25
  // The light scrim color used in the platform API 29+
@@ -31,12 +36,38 @@ internal val DarkNavigationBarColor = Color.argb(0x80, 0x1b, 0x1b, 0x1b)
31
36
  * as enabled elsewhere in the application.
32
37
  */
33
38
  public var isEdgeToEdgeFeatureFlagOn: Boolean = false
34
- private set
39
+ @VisibleForTesting internal set
35
40
 
36
41
  public fun setEdgeToEdgeFeatureFlagOn() {
37
42
  isEdgeToEdgeFeatureFlagOn = true
38
43
  }
39
44
 
45
+ internal fun updateEdgeToEdgeFeatureFlag(activity: Activity) {
46
+ // When the app targets SDK 35+, edge-to-edge may be enforced by the OS even if the
47
+ // feature flag wasn't explicitly set. In that case, turn the flag on to match.
48
+ if (AndroidVersion.isAtLeastTargetSdk35(activity)) {
49
+ if (Build.VERSION.SDK_INT >= AndroidVersion.VERSION_CODE_BAKLAVA) {
50
+ // The device is running Android 16+ (where edge-to-edge is always enforced)
51
+ isEdgeToEdgeFeatureFlagOn = true
52
+ } else {
53
+ val attributes = intArrayOf(AndroidVersion.ATTR_WINDOW_OPT_OUT_EDGE_TO_EDGE_ENFORCEMENT)
54
+ val typedArray = activity.theme.obtainStyledAttributes(attributes)
55
+
56
+ // The device is running Android 15 with / without opting out
57
+ isEdgeToEdgeFeatureFlagOn =
58
+ try {
59
+ !typedArray.getBoolean(0, false)
60
+ } finally {
61
+ typedArray.recycle()
62
+ }
63
+ }
64
+ }
65
+
66
+ if (isEdgeToEdgeFeatureFlagOn) {
67
+ activity.window.enableEdgeToEdge()
68
+ }
69
+ }
70
+
40
71
  @Suppress("DEPRECATION")
41
72
  internal fun Window.setStatusBarTranslucency(isTranslucent: Boolean) {
42
73
  // If the status bar is translucent hook into the window insets calculations
@@ -65,6 +96,33 @@ internal fun Window.setStatusBarVisibility(isHidden: Boolean) {
65
96
  }
66
97
  }
67
98
 
99
+ @Suppress("DEPRECATION")
100
+ internal fun Window.setStatusBarStyle(style: String?) {
101
+ if (Build.VERSION.SDK_INT > Build.VERSION_CODES.R) {
102
+ if ("dark-content" == style) {
103
+ // dark-content means dark icons on a light status bar
104
+ insetsController?.setSystemBarsAppearance(
105
+ WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS,
106
+ WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS,
107
+ )
108
+ } else {
109
+ insetsController?.setSystemBarsAppearance(
110
+ 0,
111
+ WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS,
112
+ )
113
+ }
114
+ } else {
115
+ var systemUiVisibilityFlags = decorView.systemUiVisibility
116
+ systemUiVisibilityFlags =
117
+ if ("dark-content" == style) {
118
+ systemUiVisibilityFlags or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
119
+ } else {
120
+ systemUiVisibilityFlags and View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR.inv()
121
+ }
122
+ decorView.systemUiVisibility = systemUiVisibilityFlags
123
+ }
124
+ }
125
+
68
126
  @Suppress("DEPRECATION")
69
127
  private fun Window.statusBarHide() {
70
128
  if (isEdgeToEdgeFeatureFlagOn) {
@@ -106,23 +164,37 @@ private fun Window.statusBarShow() {
106
164
  internal fun Window.enableEdgeToEdge() {
107
165
  WindowCompat.setDecorFitsSystemWindows(this, false)
108
166
 
167
+ val insetsController = WindowInsetsControllerCompat(this, decorView)
109
168
  val isDarkMode = UiModeUtils.isDarkMode(context)
110
169
 
170
+ statusBarColor = Color.TRANSPARENT
171
+
111
172
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
173
+ navigationBarColor = Color.TRANSPARENT
174
+
175
+ val attributes = intArrayOf(android.R.attr.enforceNavigationBarContrast)
176
+ val typedArray = context.theme.obtainStyledAttributes(attributes)
177
+
178
+ val enforceNavigationBarContrast =
179
+ try {
180
+ typedArray.getBoolean(0, true)
181
+ } finally {
182
+ typedArray.recycle()
183
+ }
184
+
112
185
  isStatusBarContrastEnforced = false
113
- isNavigationBarContrastEnforced = true
114
- }
186
+ isNavigationBarContrastEnforced = enforceNavigationBarContrast
115
187
 
116
- statusBarColor = Color.TRANSPARENT
117
- navigationBarColor =
118
- when {
119
- Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q -> Color.TRANSPARENT
120
- Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && !isDarkMode -> LightNavigationBarColor
121
- else -> DarkNavigationBarColor
122
- }
123
-
124
- WindowInsetsControllerCompat(this, decorView).run {
125
- isAppearanceLightNavigationBars = !isDarkMode
188
+ if (enforceNavigationBarContrast) {
189
+ insetsController.isAppearanceLightNavigationBars = !isDarkMode
190
+ }
191
+ } else {
192
+ val isAppearanceLightNavigationBars =
193
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && !isDarkMode
194
+
195
+ navigationBarColor =
196
+ if (isAppearanceLightNavigationBars) LightNavigationBarColor else DarkNavigationBarColor
197
+ insetsController.isAppearanceLightNavigationBars = isAppearanceLightNavigationBars
126
198
  }
127
199
 
128
200
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
@@ -0,0 +1,17 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ package com.facebook.soloader.annotation
9
+
10
+ /**
11
+ * Stub annotation for open-source Gradle builds. The real implementation lives in
12
+ * fbandroid/java/com/facebook/soloader/annotation/ and is used by the internal Buck build for
13
+ * compile-time validation of native library merging.
14
+ */
15
+ @Retention(AnnotationRetention.SOURCE)
16
+ @Target(AnnotationTarget.CLASS)
17
+ internal annotation class SoLoaderLibrary(vararg val value: String)
@@ -18,7 +18,9 @@ public enum YogaAlign {
18
18
  BASELINE(5),
19
19
  SPACE_BETWEEN(6),
20
20
  SPACE_AROUND(7),
21
- SPACE_EVENLY(8);
21
+ SPACE_EVENLY(8),
22
+ START(9),
23
+ END(10);
22
24
 
23
25
  private final int mIntValue;
24
26
 
@@ -41,6 +43,8 @@ public enum YogaAlign {
41
43
  case 6: return SPACE_BETWEEN;
42
44
  case 7: return SPACE_AROUND;
43
45
  case 8: return SPACE_EVENLY;
46
+ case 9: return START;
47
+ case 10: return END;
44
48
  default: throw new IllegalArgumentException("Unknown enum value: " + value);
45
49
  }
46
50
  }
@@ -0,0 +1,30 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ package com.facebook.yoga
9
+
10
+ public class YogaConfigJNIFinalizer public constructor() : YogaConfigJNIBase() {
11
+
12
+ /*
13
+ * This is a valid use of finalize. No other mechanism is appropriate.
14
+ * YogaConfigJNIFinalizer exists specifically to release JNI-allocated native
15
+ * memory (via jni_YGConfigFreeJNI) when the Java object is garbage collected.
16
+ * This is the established pattern for JNI prevented leak classes in Yoga.
17
+ */
18
+ @Throws(Throwable::class)
19
+ protected fun finalize() {
20
+ freeNatives()
21
+ }
22
+
23
+ public fun freeNatives() {
24
+ if (nativePointer != 0L) {
25
+ val pointer = nativePointer
26
+ nativePointer = 0
27
+ YogaNative.jni_YGConfigFreeJNI(pointer)
28
+ }
29
+ }
30
+ }
@@ -12,7 +12,8 @@ package com.facebook.yoga;
12
12
  public enum YogaDisplay {
13
13
  FLEX(0),
14
14
  NONE(1),
15
- CONTENTS(2);
15
+ CONTENTS(2),
16
+ GRID(3);
16
17
 
17
18
  private final int mIntValue;
18
19
 
@@ -29,6 +30,7 @@ public enum YogaDisplay {
29
30
  case 0: return FLEX;
30
31
  case 1: return NONE;
31
32
  case 2: return CONTENTS;
33
+ case 3: return GRID;
32
34
  default: throw new IllegalArgumentException("Unknown enum value: " + value);
33
35
  }
34
36
  }
@@ -10,7 +10,8 @@
10
10
  package com.facebook.yoga;
11
11
 
12
12
  public enum YogaExperimentalFeature {
13
- WEB_FLEX_BASIS(0);
13
+ WEB_FLEX_BASIS(0),
14
+ FIX_FLEX_BASIS_FIT_CONTENT(1);
14
15
 
15
16
  private final int mIntValue;
16
17
 
@@ -25,6 +26,7 @@ public enum YogaExperimentalFeature {
25
26
  public static YogaExperimentalFeature fromInt(int value) {
26
27
  switch (value) {
27
28
  case 0: return WEB_FLEX_BASIS;
29
+ case 1: return FIX_FLEX_BASIS_FIT_CONTENT;
28
30
  default: throw new IllegalArgumentException("Unknown enum value: " + value);
29
31
  }
30
32
  }
@@ -0,0 +1,39 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ // @generated by enums.py
9
+
10
+ package com.facebook.yoga;
11
+
12
+ public enum YogaGridTrackType {
13
+ AUTO(0),
14
+ POINTS(1),
15
+ PERCENT(2),
16
+ FR(3),
17
+ MINMAX(4);
18
+
19
+ private final int mIntValue;
20
+
21
+ YogaGridTrackType(int intValue) {
22
+ mIntValue = intValue;
23
+ }
24
+
25
+ public int intValue() {
26
+ return mIntValue;
27
+ }
28
+
29
+ public static YogaGridTrackType fromInt(int value) {
30
+ switch (value) {
31
+ case 0: return AUTO;
32
+ case 1: return POINTS;
33
+ case 2: return PERCENT;
34
+ case 3: return FR;
35
+ case 4: return MINMAX;
36
+ default: throw new IllegalArgumentException("Unknown enum value: " + value);
37
+ }
38
+ }
39
+ }