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
@@ -9,7 +9,6 @@
9
9
 
10
10
  #include <unordered_map>
11
11
 
12
- #include <folly/dynamic.h>
13
12
  #include <glog/logging.h>
14
13
  #include <react/debug/react_native_expect.h>
15
14
  #include <react/renderer/core/PropsParserContext.h>
@@ -18,7 +17,7 @@
18
17
 
19
18
  namespace facebook::react {
20
19
 
21
- inline void fromRawValue(const PropsParserContext &context, const RawValue &value, ImageSource &result)
20
+ inline void fromRawValue(const PropsParserContext & /* context */, const RawValue &value, ImageSource &result)
22
21
  {
23
22
  if (value.hasType<std::string>()) {
24
23
  result = {
@@ -117,7 +116,7 @@ inline std::string toString(const ImageSource &value)
117
116
  return "{uri: " + value.uri + "}";
118
117
  }
119
118
 
120
- inline void fromRawValue(const PropsParserContext &context, const RawValue &value, ImageResizeMode &result)
119
+ inline void fromRawValue(const PropsParserContext & /* context */, const RawValue &value, ImageResizeMode &result)
121
120
  {
122
121
  react_native_expect(value.hasType<std::string>());
123
122
  if (!value.hasType<std::string>()) {
@@ -9,7 +9,6 @@
9
9
 
10
10
  #include <memory>
11
11
 
12
- #include <folly/dynamic.h>
13
12
  #include <react/renderer/components/scrollview/ScrollEvent.h>
14
13
  #include <react/renderer/components/view/ViewEventEmitter.h>
15
14
  #include <react/renderer/core/EventEmitter.h>
@@ -7,7 +7,6 @@
7
7
 
8
8
  #pragma once
9
9
 
10
- #include <folly/dynamic.h>
11
10
  #include <react/renderer/components/scrollview/primitives.h>
12
11
  #include <react/renderer/core/PropsParserContext.h>
13
12
  #include <react/renderer/core/propsConversions.h>
@@ -7,7 +7,6 @@
7
7
 
8
8
  #pragma once
9
9
 
10
- #include <folly/dynamic.h>
11
10
  #include <react/renderer/attributedstring/conversions.h>
12
11
  #include <react/renderer/components/text/ParagraphState.h>
13
12
  #ifdef RN_SERIALIZABLE_STATE
@@ -15,6 +15,24 @@
15
15
 
16
16
  namespace facebook::react {
17
17
 
18
+ static AccessibilityLabelledBy parseCommaSeparatedList(const std::string& str) {
19
+ AccessibilityLabelledBy result;
20
+ size_t pos = 0;
21
+ while (pos < str.size()) {
22
+ auto commaPos = str.find(',', pos);
23
+ if (commaPos == std::string::npos) {
24
+ commaPos = str.size();
25
+ }
26
+ auto start = str.find_first_not_of(' ', pos);
27
+ if (start < commaPos) {
28
+ auto end = str.find_last_not_of(' ', commaPos - 1);
29
+ result.value.push_back(str.substr(start, end - start + 1));
30
+ }
31
+ pos = commaPos + 1;
32
+ }
33
+ return result;
34
+ }
35
+
18
36
  AccessibilityProps::AccessibilityProps(
19
37
  const PropsParserContext& context,
20
38
  const AccessibilityProps& sourceProps,
@@ -216,7 +234,14 @@ AccessibilityProps::AccessibilityProps(
216
234
  rawProps,
217
235
  "testID",
218
236
  sourceProps.testId,
219
- "")) {
237
+ "")),
238
+ canonicalAccessibilityLabel_(sourceProps.canonicalAccessibilityLabel_),
239
+ canonicalAccessibilityLiveRegion_(
240
+ sourceProps.canonicalAccessibilityLiveRegion_),
241
+ canonicalImportantForAccessibility_(
242
+ sourceProps.canonicalImportantForAccessibility_),
243
+ canonicalAccessibilityElementsHidden_(
244
+ sourceProps.canonicalAccessibilityElementsHidden_) {
220
245
  // It is a (severe!) perf deoptimization to request props out-of-order.
221
246
  // Thus, since we need to request the same prop twice here
222
247
  // (accessibilityRole) we "must" do them subsequently here to prevent
@@ -254,6 +279,244 @@ AccessibilityProps::AccessibilityProps(
254
279
  } else {
255
280
  fromRawValue(context, *precedentRoleValue, accessibilityTraits);
256
281
  }
282
+
283
+ if (ReactNativeFeatureFlags::enableNativeViewPropTransformations()) {
284
+ static auto defaults = AccessibilityProps{};
285
+
286
+ // Update canonical values from explicit props if present.
287
+ // These track the user-set accessibility* prop values separately
288
+ // from any aria-* override, so we can restore them when an
289
+ // aria-* alias is cleared.
290
+ auto* explicitLabel = rawProps.at("accessibilityLabel", nullptr, nullptr);
291
+ if (explicitLabel != nullptr) {
292
+ canonicalAccessibilityLabel_ = explicitLabel->hasValue()
293
+ ? accessibilityLabel
294
+ : defaults.accessibilityLabel;
295
+ }
296
+
297
+ auto* explicitLiveRegion =
298
+ rawProps.at("accessibilityLiveRegion", nullptr, nullptr);
299
+ if (explicitLiveRegion != nullptr) {
300
+ canonicalAccessibilityLiveRegion_ = explicitLiveRegion->hasValue()
301
+ ? accessibilityLiveRegion
302
+ : defaults.accessibilityLiveRegion;
303
+ }
304
+
305
+ auto* explicitIFA =
306
+ rawProps.at("importantForAccessibility", nullptr, nullptr);
307
+ if (explicitIFA != nullptr) {
308
+ canonicalImportantForAccessibility_ = explicitIFA->hasValue()
309
+ ? importantForAccessibility
310
+ : defaults.importantForAccessibility;
311
+ }
312
+
313
+ auto* explicitAEH =
314
+ rawProps.at("accessibilityElementsHidden", nullptr, nullptr);
315
+ if (explicitAEH != nullptr) {
316
+ canonicalAccessibilityElementsHidden_ = explicitAEH->hasValue()
317
+ ? accessibilityElementsHidden
318
+ : defaults.accessibilityElementsHidden;
319
+ }
320
+
321
+ // aria-label -> accessibilityLabel
322
+ auto* ariaLabel = rawProps.at("aria-label", nullptr, nullptr);
323
+ if (ariaLabel != nullptr) {
324
+ if (ariaLabel->hasValue()) {
325
+ fromRawValue(context, *ariaLabel, accessibilityLabel);
326
+ } else {
327
+ accessibilityLabel = canonicalAccessibilityLabel_;
328
+ }
329
+ }
330
+
331
+ // aria-labelledby -> accessibilityLabelledBy (comma-split string ->
332
+ // array)
333
+ auto* ariaLabelledBy = rawProps.at("aria-labelledby", nullptr, nullptr);
334
+ if (ariaLabelledBy != nullptr) {
335
+ if (ariaLabelledBy->hasValue()) {
336
+ if (ariaLabelledBy->hasType<std::string>()) {
337
+ accessibilityLabelledBy =
338
+ parseCommaSeparatedList((std::string)*ariaLabelledBy);
339
+ } else {
340
+ fromRawValue(context, *ariaLabelledBy, accessibilityLabelledBy);
341
+ }
342
+ } else {
343
+ accessibilityLabelledBy = defaults.accessibilityLabelledBy;
344
+ }
345
+ }
346
+
347
+ // aria-live -> accessibilityLiveRegion (map "off" -> None)
348
+ auto* ariaLive = rawProps.at("aria-live", nullptr, nullptr);
349
+ if (ariaLive != nullptr) {
350
+ if (ariaLive->hasValue()) {
351
+ if (ariaLive->hasType<std::string>()) {
352
+ auto str = (std::string)*ariaLive;
353
+ if (str == "off") {
354
+ accessibilityLiveRegion = AccessibilityLiveRegion::None;
355
+ } else {
356
+ fromRawValue(context, *ariaLive, accessibilityLiveRegion);
357
+ }
358
+ }
359
+ } else {
360
+ accessibilityLiveRegion = canonicalAccessibilityLiveRegion_;
361
+ }
362
+ }
363
+
364
+ // aria-hidden -> accessibilityElementsHidden +
365
+ // importantForAccessibility
366
+ auto* ariaHidden = rawProps.at("aria-hidden", nullptr, nullptr);
367
+ if (ariaHidden != nullptr) {
368
+ if (ariaHidden->hasValue()) {
369
+ fromRawValue(context, *ariaHidden, accessibilityElementsHidden);
370
+ if (accessibilityElementsHidden) {
371
+ importantForAccessibility =
372
+ ImportantForAccessibility::NoHideDescendants;
373
+ } else {
374
+ importantForAccessibility = canonicalImportantForAccessibility_;
375
+ }
376
+ } else {
377
+ accessibilityElementsHidden = canonicalAccessibilityElementsHidden_;
378
+ importantForAccessibility = canonicalImportantForAccessibility_;
379
+ }
380
+ }
381
+
382
+ // aria-busy -> accessibilityState.busy
383
+ auto* ariaBusy = rawProps.at("aria-busy", nullptr, nullptr);
384
+ if (ariaBusy != nullptr) {
385
+ if (ariaBusy->hasValue()) {
386
+ if (!accessibilityState.has_value()) {
387
+ accessibilityState = AccessibilityState{};
388
+ }
389
+ fromRawValue(context, *ariaBusy, accessibilityState->busy);
390
+ } else {
391
+ if (accessibilityState.has_value()) {
392
+ accessibilityState->busy = AccessibilityState{}.busy;
393
+ }
394
+ }
395
+ }
396
+
397
+ // aria-checked -> accessibilityState.checked
398
+ auto* ariaChecked = rawProps.at("aria-checked", nullptr, nullptr);
399
+ if (ariaChecked != nullptr) {
400
+ if (ariaChecked->hasValue()) {
401
+ if (!accessibilityState.has_value()) {
402
+ accessibilityState = AccessibilityState{};
403
+ }
404
+ if (ariaChecked->hasType<std::string>()) {
405
+ if ((std::string)*ariaChecked == "mixed") {
406
+ accessibilityState->checked = AccessibilityState::Mixed;
407
+ }
408
+ } else if (ariaChecked->hasType<bool>()) {
409
+ accessibilityState->checked = (bool)*ariaChecked
410
+ ? AccessibilityState::Checked
411
+ : AccessibilityState::Unchecked;
412
+ }
413
+ } else {
414
+ if (accessibilityState.has_value()) {
415
+ accessibilityState->checked = AccessibilityState{}.checked;
416
+ }
417
+ }
418
+ }
419
+
420
+ // aria-disabled -> accessibilityState.disabled
421
+ auto* ariaDisabled = rawProps.at("aria-disabled", nullptr, nullptr);
422
+ if (ariaDisabled != nullptr) {
423
+ if (ariaDisabled->hasValue()) {
424
+ if (!accessibilityState.has_value()) {
425
+ accessibilityState = AccessibilityState{};
426
+ }
427
+ fromRawValue(context, *ariaDisabled, accessibilityState->disabled);
428
+ } else {
429
+ if (accessibilityState.has_value()) {
430
+ accessibilityState->disabled = AccessibilityState{}.disabled;
431
+ }
432
+ }
433
+ }
434
+
435
+ // aria-expanded -> accessibilityState.expanded
436
+ auto* ariaExpanded = rawProps.at("aria-expanded", nullptr, nullptr);
437
+ if (ariaExpanded != nullptr) {
438
+ if (ariaExpanded->hasValue()) {
439
+ if (!accessibilityState.has_value()) {
440
+ accessibilityState = AccessibilityState{};
441
+ }
442
+ fromRawValue(context, *ariaExpanded, accessibilityState->expanded);
443
+ } else {
444
+ if (accessibilityState.has_value()) {
445
+ accessibilityState->expanded = AccessibilityState{}.expanded;
446
+ }
447
+ }
448
+ }
449
+
450
+ // aria-selected -> accessibilityState.selected
451
+ auto* ariaSelected = rawProps.at("aria-selected", nullptr, nullptr);
452
+ if (ariaSelected != nullptr) {
453
+ if (ariaSelected->hasValue()) {
454
+ if (!accessibilityState.has_value()) {
455
+ accessibilityState = AccessibilityState{};
456
+ }
457
+ fromRawValue(context, *ariaSelected, accessibilityState->selected);
458
+ } else {
459
+ if (accessibilityState.has_value()) {
460
+ accessibilityState->selected = AccessibilityState{}.selected;
461
+ }
462
+ }
463
+ }
464
+
465
+ // If all aria-state fields have been reset to defaults, clear the
466
+ // optional entirely so the view reports no accessibilityState.
467
+ if (accessibilityState.has_value() &&
468
+ *accessibilityState == AccessibilityState{}) {
469
+ accessibilityState = std::nullopt;
470
+ }
471
+
472
+ // aria-valuemax -> accessibilityValue.max
473
+ auto* ariaValueMax = rawProps.at("aria-valuemax", nullptr, nullptr);
474
+ if (ariaValueMax != nullptr) {
475
+ if (ariaValueMax->hasValue()) {
476
+ if (ariaValueMax->hasType<int>()) {
477
+ accessibilityValue.max = (int)*ariaValueMax;
478
+ }
479
+ } else {
480
+ accessibilityValue.max = std::nullopt;
481
+ }
482
+ }
483
+
484
+ // aria-valuemin -> accessibilityValue.min
485
+ auto* ariaValueMin = rawProps.at("aria-valuemin", nullptr, nullptr);
486
+ if (ariaValueMin != nullptr) {
487
+ if (ariaValueMin->hasValue()) {
488
+ if (ariaValueMin->hasType<int>()) {
489
+ accessibilityValue.min = (int)*ariaValueMin;
490
+ }
491
+ } else {
492
+ accessibilityValue.min = std::nullopt;
493
+ }
494
+ }
495
+
496
+ // aria-valuenow -> accessibilityValue.now
497
+ auto* ariaValueNow = rawProps.at("aria-valuenow", nullptr, nullptr);
498
+ if (ariaValueNow != nullptr) {
499
+ if (ariaValueNow->hasValue()) {
500
+ if (ariaValueNow->hasType<int>()) {
501
+ accessibilityValue.now = (int)*ariaValueNow;
502
+ }
503
+ } else {
504
+ accessibilityValue.now = std::nullopt;
505
+ }
506
+ }
507
+
508
+ // aria-valuetext -> accessibilityValue.text
509
+ auto* ariaValueText = rawProps.at("aria-valuetext", nullptr, nullptr);
510
+ if (ariaValueText != nullptr) {
511
+ if (ariaValueText->hasValue()) {
512
+ if (ariaValueText->hasType<std::string>()) {
513
+ accessibilityValue.text = (std::string)*ariaValueText;
514
+ }
515
+ } else {
516
+ accessibilityValue.text = std::nullopt;
517
+ }
518
+ }
519
+ }
257
520
  }
258
521
  }
259
522
 
@@ -267,26 +530,56 @@ void AccessibilityProps::setProp(
267
530
  switch (hash) {
268
531
  RAW_SET_PROP_SWITCH_CASE_BASIC(accessible);
269
532
  RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityState);
270
- RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityLabel);
271
- RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityOrder);
272
- RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityLabelledBy);
273
- RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityHint);
274
- RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityLanguage);
275
- RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityShowsLargeContentViewer);
276
- RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityLargeContentTitle);
277
- RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityValue);
278
- RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityActions);
279
- RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityViewIsModal);
280
- RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityElementsHidden);
281
- RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityIgnoresInvertColors);
282
- RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityRespondsToUserInteraction);
283
- RAW_SET_PROP_SWITCH_CASE_BASIC(onAccessibilityTap);
284
- RAW_SET_PROP_SWITCH_CASE_BASIC(onAccessibilityMagicTap);
285
- RAW_SET_PROP_SWITCH_CASE_BASIC(onAccessibilityEscape);
286
- RAW_SET_PROP_SWITCH_CASE_BASIC(onAccessibilityAction);
287
- RAW_SET_PROP_SWITCH_CASE_BASIC(importantForAccessibility);
288
- RAW_SET_PROP_SWITCH_CASE_BASIC(role);
289
- RAW_SET_PROP_SWITCH_CASE(testId, "testID");
533
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("accessibilityLabel"): {
534
+ fromRawValue(
535
+ context, value, accessibilityLabel, defaults.accessibilityLabel);
536
+ canonicalAccessibilityLabel_ = accessibilityLabel;
537
+ return;
538
+ }
539
+ RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityOrder);
540
+ RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityLabelledBy);
541
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("accessibilityLiveRegion"): {
542
+ fromRawValue(
543
+ context,
544
+ value,
545
+ accessibilityLiveRegion,
546
+ defaults.accessibilityLiveRegion);
547
+ canonicalAccessibilityLiveRegion_ = accessibilityLiveRegion;
548
+ return;
549
+ }
550
+ RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityHint);
551
+ RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityLanguage);
552
+ RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityShowsLargeContentViewer);
553
+ RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityLargeContentTitle);
554
+ RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityValue);
555
+ RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityActions);
556
+ RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityViewIsModal);
557
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("accessibilityElementsHidden"): {
558
+ fromRawValue(
559
+ context,
560
+ value,
561
+ accessibilityElementsHidden,
562
+ defaults.accessibilityElementsHidden);
563
+ canonicalAccessibilityElementsHidden_ = accessibilityElementsHidden;
564
+ return;
565
+ }
566
+ RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityIgnoresInvertColors);
567
+ RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityRespondsToUserInteraction);
568
+ RAW_SET_PROP_SWITCH_CASE_BASIC(onAccessibilityTap);
569
+ RAW_SET_PROP_SWITCH_CASE_BASIC(onAccessibilityMagicTap);
570
+ RAW_SET_PROP_SWITCH_CASE_BASIC(onAccessibilityEscape);
571
+ RAW_SET_PROP_SWITCH_CASE_BASIC(onAccessibilityAction);
572
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("importantForAccessibility"): {
573
+ fromRawValue(
574
+ context,
575
+ value,
576
+ importantForAccessibility,
577
+ defaults.importantForAccessibility);
578
+ canonicalImportantForAccessibility_ = importantForAccessibility;
579
+ return;
580
+ }
581
+ RAW_SET_PROP_SWITCH_CASE_BASIC(role);
582
+ RAW_SET_PROP_SWITCH_CASE(testId, "testID");
290
583
  case CONSTEXPR_RAW_PROPS_KEY_HASH("accessibilityRole"): {
291
584
  AccessibilityTraits traits = AccessibilityTraits::None;
292
585
  std::string roleString;
@@ -299,6 +592,223 @@ void AccessibilityProps::setProp(
299
592
  accessibilityRole = roleString;
300
593
  return;
301
594
  }
595
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("aria-label"): {
596
+ if (!ReactNativeFeatureFlags::enableNativeViewPropTransformations()) {
597
+ return;
598
+ }
599
+ if (value.hasValue()) {
600
+ fromRawValue(context, value, accessibilityLabel);
601
+ } else {
602
+ accessibilityLabel = canonicalAccessibilityLabel_;
603
+ }
604
+ return;
605
+ }
606
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("aria-labelledby"): {
607
+ if (!ReactNativeFeatureFlags::enableNativeViewPropTransformations()) {
608
+ return;
609
+ }
610
+ if (value.hasValue()) {
611
+ if (value.hasType<std::string>()) {
612
+ accessibilityLabelledBy = parseCommaSeparatedList((std::string)value);
613
+ } else {
614
+ fromRawValue(context, value, accessibilityLabelledBy);
615
+ }
616
+ } else {
617
+ accessibilityLabelledBy = defaults.accessibilityLabelledBy;
618
+ }
619
+ return;
620
+ }
621
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("aria-live"): {
622
+ if (!ReactNativeFeatureFlags::enableNativeViewPropTransformations()) {
623
+ return;
624
+ }
625
+ if (value.hasValue()) {
626
+ if (value.hasType<std::string>()) {
627
+ auto str = (std::string)value;
628
+ if (str == "off") {
629
+ accessibilityLiveRegion = AccessibilityLiveRegion::None;
630
+ } else {
631
+ fromRawValue(context, value, accessibilityLiveRegion);
632
+ }
633
+ }
634
+ } else {
635
+ accessibilityLiveRegion = canonicalAccessibilityLiveRegion_;
636
+ }
637
+ return;
638
+ }
639
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("aria-hidden"): {
640
+ if (!ReactNativeFeatureFlags::enableNativeViewPropTransformations()) {
641
+ return;
642
+ }
643
+ if (value.hasValue()) {
644
+ fromRawValue(context, value, accessibilityElementsHidden);
645
+ if (accessibilityElementsHidden) {
646
+ importantForAccessibility =
647
+ ImportantForAccessibility::NoHideDescendants;
648
+ } else {
649
+ importantForAccessibility = canonicalImportantForAccessibility_;
650
+ }
651
+ } else {
652
+ accessibilityElementsHidden = canonicalAccessibilityElementsHidden_;
653
+ importantForAccessibility = canonicalImportantForAccessibility_;
654
+ }
655
+ return;
656
+ }
657
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("aria-busy"): {
658
+ if (!ReactNativeFeatureFlags::enableNativeViewPropTransformations()) {
659
+ return;
660
+ }
661
+ if (value.hasValue()) {
662
+ if (!accessibilityState.has_value()) {
663
+ accessibilityState = AccessibilityState{};
664
+ }
665
+ fromRawValue(context, value, accessibilityState->busy);
666
+ } else {
667
+ if (accessibilityState.has_value()) {
668
+ accessibilityState->busy = AccessibilityState{}.busy;
669
+ if (*accessibilityState == AccessibilityState{}) {
670
+ accessibilityState = std::nullopt;
671
+ }
672
+ }
673
+ }
674
+ return;
675
+ }
676
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("aria-checked"): {
677
+ if (!ReactNativeFeatureFlags::enableNativeViewPropTransformations()) {
678
+ return;
679
+ }
680
+ if (value.hasValue()) {
681
+ if (!accessibilityState.has_value()) {
682
+ accessibilityState = AccessibilityState{};
683
+ }
684
+ if (value.hasType<std::string>()) {
685
+ if ((std::string)value == "mixed") {
686
+ accessibilityState->checked = AccessibilityState::Mixed;
687
+ }
688
+ } else if (value.hasType<bool>()) {
689
+ accessibilityState->checked = (bool)value
690
+ ? AccessibilityState::Checked
691
+ : AccessibilityState::Unchecked;
692
+ }
693
+ } else {
694
+ if (accessibilityState.has_value()) {
695
+ accessibilityState->checked = AccessibilityState{}.checked;
696
+ if (*accessibilityState == AccessibilityState{}) {
697
+ accessibilityState = std::nullopt;
698
+ }
699
+ }
700
+ }
701
+ return;
702
+ }
703
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("aria-disabled"): {
704
+ if (!ReactNativeFeatureFlags::enableNativeViewPropTransformations()) {
705
+ return;
706
+ }
707
+ if (value.hasValue()) {
708
+ if (!accessibilityState.has_value()) {
709
+ accessibilityState = AccessibilityState{};
710
+ }
711
+ fromRawValue(context, value, accessibilityState->disabled);
712
+ } else {
713
+ if (accessibilityState.has_value()) {
714
+ accessibilityState->disabled = AccessibilityState{}.disabled;
715
+ if (*accessibilityState == AccessibilityState{}) {
716
+ accessibilityState = std::nullopt;
717
+ }
718
+ }
719
+ }
720
+ return;
721
+ }
722
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("aria-expanded"): {
723
+ if (!ReactNativeFeatureFlags::enableNativeViewPropTransformations()) {
724
+ return;
725
+ }
726
+ if (value.hasValue()) {
727
+ if (!accessibilityState.has_value()) {
728
+ accessibilityState = AccessibilityState{};
729
+ }
730
+ fromRawValue(context, value, accessibilityState->expanded);
731
+ } else {
732
+ if (accessibilityState.has_value()) {
733
+ accessibilityState->expanded = AccessibilityState{}.expanded;
734
+ if (*accessibilityState == AccessibilityState{}) {
735
+ accessibilityState = std::nullopt;
736
+ }
737
+ }
738
+ }
739
+ return;
740
+ }
741
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("aria-selected"): {
742
+ if (!ReactNativeFeatureFlags::enableNativeViewPropTransformations()) {
743
+ return;
744
+ }
745
+ if (value.hasValue()) {
746
+ if (!accessibilityState.has_value()) {
747
+ accessibilityState = AccessibilityState{};
748
+ }
749
+ fromRawValue(context, value, accessibilityState->selected);
750
+ } else {
751
+ if (accessibilityState.has_value()) {
752
+ accessibilityState->selected = AccessibilityState{}.selected;
753
+ if (*accessibilityState == AccessibilityState{}) {
754
+ accessibilityState = std::nullopt;
755
+ }
756
+ }
757
+ }
758
+ return;
759
+ }
760
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("aria-valuemax"): {
761
+ if (!ReactNativeFeatureFlags::enableNativeViewPropTransformations()) {
762
+ return;
763
+ }
764
+ if (value.hasValue()) {
765
+ if (value.hasType<int>()) {
766
+ accessibilityValue.max = (int)value;
767
+ }
768
+ } else {
769
+ accessibilityValue.max = std::nullopt;
770
+ }
771
+ return;
772
+ }
773
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("aria-valuemin"): {
774
+ if (!ReactNativeFeatureFlags::enableNativeViewPropTransformations()) {
775
+ return;
776
+ }
777
+ if (value.hasValue()) {
778
+ if (value.hasType<int>()) {
779
+ accessibilityValue.min = (int)value;
780
+ }
781
+ } else {
782
+ accessibilityValue.min = std::nullopt;
783
+ }
784
+ return;
785
+ }
786
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("aria-valuenow"): {
787
+ if (!ReactNativeFeatureFlags::enableNativeViewPropTransformations()) {
788
+ return;
789
+ }
790
+ if (value.hasValue()) {
791
+ if (value.hasType<int>()) {
792
+ accessibilityValue.now = (int)value;
793
+ }
794
+ } else {
795
+ accessibilityValue.now = std::nullopt;
796
+ }
797
+ return;
798
+ }
799
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("aria-valuetext"): {
800
+ if (!ReactNativeFeatureFlags::enableNativeViewPropTransformations()) {
801
+ return;
802
+ }
803
+ if (value.hasValue()) {
804
+ if (value.hasType<std::string>()) {
805
+ accessibilityValue.text = (std::string)value;
806
+ }
807
+ } else {
808
+ accessibilityValue.text = std::nullopt;
809
+ }
810
+ return;
811
+ }
302
812
  }
303
813
  }
304
814
 
@@ -62,6 +62,15 @@ class AccessibilityProps {
62
62
  #if RN_DEBUG_STRING_CONVERTIBLE
63
63
  SharedDebugStringConvertibleList getDebugProps() const;
64
64
  #endif
65
+
66
+ private:
67
+ // Canonical prop values for overlap detection between aria-* and
68
+ // accessibility* props. These track the values from the explicit
69
+ // accessibility* props, separate from any aria-* override.
70
+ std::string canonicalAccessibilityLabel_;
71
+ AccessibilityLiveRegion canonicalAccessibilityLiveRegion_{AccessibilityLiveRegion::None};
72
+ ImportantForAccessibility canonicalImportantForAccessibility_{ImportantForAccessibility::Auto};
73
+ bool canonicalAccessibilityElementsHidden_{false};
65
74
  };
66
75
 
67
76
  } // namespace facebook::react
@@ -21,7 +21,8 @@ void setTouchPayloadOnObject(
21
21
  object.setProperty(runtime, "screenY", touch.screenPoint.y);
22
22
  object.setProperty(runtime, "identifier", touch.identifier);
23
23
  object.setProperty(runtime, "target", touch.target);
24
- object.setProperty(runtime, "timestamp", touch.timestamp * 1000);
24
+ object.setProperty(
25
+ runtime, "timestamp", touch.timeStamp.toDOMHighResTimeStamp());
25
26
  object.setProperty(runtime, "force", touch.force);
26
27
  }
27
28
 
@@ -41,7 +42,7 @@ std::vector<DebugStringConvertibleObject> getDebugProps(
41
42
  {"identifier", getDebugDescription(touch.identifier, options)},
42
43
  {"target", getDebugDescription(touch.target, options)},
43
44
  {"force", getDebugDescription(touch.force, options)},
44
- {"timestamp", getDebugDescription(touch.timestamp, options)},
45
+ {"timeStamp", getDebugDescription(touch.timeStamp, options)},
45
46
  };
46
47
  }
47
48