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