react-native-windows 0.80.0 → 0.81.0-preview.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (675) hide show
  1. package/.flowconfig +10 -5
  2. package/Directory.Build.props +1 -1
  3. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  4. package/Libraries/Alert/Alert.js +3 -3
  5. package/Libraries/Alert/Alert.windows.js +5 -2
  6. package/Libraries/Alert/NativeAlertManager.js +1 -0
  7. package/Libraries/Alert/RCTAlertManager.android.js +19 -13
  8. package/Libraries/Alert/RCTAlertManager.ios.js +10 -12
  9. package/Libraries/Alert/RCTAlertManager.js +1 -3
  10. package/Libraries/Alert/RCTAlertManager.js.flow +5 -7
  11. package/Libraries/Animated/Animated.js +0 -1
  12. package/Libraries/Animated/Animated.js.flow +0 -1
  13. package/Libraries/Animated/AnimatedEvent.js +4 -3
  14. package/Libraries/Animated/AnimatedExports.js +0 -1
  15. package/Libraries/Animated/AnimatedExports.js.flow +5 -1
  16. package/Libraries/Animated/AnimatedImplementation.js +44 -44
  17. package/Libraries/Animated/AnimatedMock.js +2 -2
  18. package/Libraries/Animated/Easing.js +1 -1
  19. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  20. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  21. package/Libraries/Animated/SpringConfig.js +1 -1
  22. package/Libraries/Animated/animations/Animation.js +10 -2
  23. package/Libraries/Animated/components/AnimatedScrollView.js +58 -56
  24. package/Libraries/Animated/components/AnimatedText.js +2 -5
  25. package/Libraries/Animated/components/AnimatedView.js +2 -1
  26. package/Libraries/Animated/createAnimatedComponent.js +39 -37
  27. package/Libraries/Animated/nodes/AnimatedObject.js +2 -3
  28. package/Libraries/Animated/nodes/AnimatedProps.js +31 -4
  29. package/Libraries/Animated/nodes/AnimatedStyle.js +35 -34
  30. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +6 -1
  31. package/Libraries/AppState/NativeAppState.js +1 -0
  32. package/Libraries/AppTheme/AppTheme.js +1 -1
  33. package/Libraries/BatchedBridge/BatchedBridge.js +1 -1
  34. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  35. package/Libraries/Blob/BlobManager.js +4 -0
  36. package/Libraries/Blob/NativeBlobModule.js +1 -0
  37. package/Libraries/Blob/NativeFileReaderModule.js +1 -0
  38. package/Libraries/Blob/URL.js +1 -1
  39. package/Libraries/Blob/URLSearchParams.js +5 -1
  40. package/Libraries/Blob/URLSearchParams.js.flow +2 -1
  41. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -2
  42. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +1 -2
  43. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
  44. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
  45. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js.flow +1 -1
  46. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.windows.js +1 -1
  47. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +19 -19
  48. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
  49. package/Libraries/Components/Button.js +10 -7
  50. package/Libraries/Components/Button.windows.js +4 -4
  51. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  52. package/Libraries/Components/Clipboard/NativeClipboard.js +1 -2
  53. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -3
  54. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -4
  55. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +1 -1
  56. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -1
  57. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +1 -1
  58. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +1 -1
  59. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +1 -1
  60. package/Libraries/Components/Glyph/GlyphNativeComponent.js +1 -1
  61. package/Libraries/Components/Keyboard/Keyboard.js +1 -1
  62. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +3 -2
  63. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -2
  64. package/Libraries/Components/LayoutConformance/LayoutConformance.js +0 -1
  65. package/Libraries/Components/Popup/PopupNativeComponent.js +1 -1
  66. package/Libraries/Components/Pressable/Pressable.js +17 -8
  67. package/Libraries/Components/Pressable/Pressable.windows.js +17 -14
  68. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +14 -13
  69. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  70. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -3
  71. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -3
  72. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -1
  73. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  74. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -1
  75. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -3
  76. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +9 -0
  77. package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -2
  78. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -3
  79. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
  80. package/Libraries/Components/ScrollView/ScrollView.d.ts +33 -6
  81. package/Libraries/Components/ScrollView/ScrollView.js +25 -15
  82. package/Libraries/Components/ScrollView/ScrollView.windows.js +25 -14
  83. package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
  84. package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -1
  85. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -1
  86. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +19 -6
  87. package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
  88. package/Libraries/Components/Sound/NativeSoundManager.js +1 -2
  89. package/Libraries/Components/Sound/SoundManager.js +1 -1
  90. package/Libraries/Components/StaticRenderer.js +1 -1
  91. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -2
  92. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -2
  93. package/Libraries/Components/StatusBar/StatusBar.d.ts +4 -0
  94. package/Libraries/Components/StatusBar/StatusBar.js +6 -1
  95. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -3
  96. package/Libraries/Components/Switch/Switch.js +10 -3
  97. package/Libraries/Components/Switch/Switch.windows.js +10 -3
  98. package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -3
  99. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +9 -24
  100. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -3
  101. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -1
  102. package/Libraries/Components/TextInput/TextInput.d.ts +9 -3
  103. package/Libraries/Components/TextInput/TextInput.flow.js +13 -15
  104. package/Libraries/Components/TextInput/TextInput.flow.windows.js +12 -15
  105. package/Libraries/Components/TextInput/TextInput.js +42 -39
  106. package/Libraries/Components/TextInput/TextInput.windows.js +69 -38
  107. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  108. package/Libraries/Components/TextInput/TextInputState.windows.js +1 -1
  109. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -17
  110. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -2
  111. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
  112. package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +1 -1
  113. package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
  114. package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +1 -1
  115. package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +1 -1
  116. package/Libraries/Components/Touchable/BoundingDimensions.js +1 -1
  117. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  118. package/Libraries/Components/Touchable/Position.js +1 -1
  119. package/Libraries/Components/Touchable/Touchable.js +17 -3
  120. package/Libraries/Components/Touchable/Touchable.windows.js +17 -3
  121. package/Libraries/Components/Touchable/TouchableBounce.js +9 -3
  122. package/Libraries/Components/Touchable/TouchableBounce.windows.js +9 -3
  123. package/Libraries/Components/Touchable/TouchableHighlight.js +14 -5
  124. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +14 -5
  125. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +5 -3
  126. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +5 -3
  127. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +1 -0
  128. package/Libraries/Components/Touchable/TouchableOpacity.js +10 -5
  129. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +10 -5
  130. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
  131. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +3 -3
  132. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -3
  133. package/Libraries/Components/View/ReactNativeStyleAttributes.js +7 -16
  134. package/Libraries/Components/View/View.js +114 -29
  135. package/Libraries/Components/View/View.windows.js +261 -217
  136. package/Libraries/Components/View/ViewAccessibility.js +1 -8
  137. package/Libraries/Components/View/ViewAccessibility.windows.js +1 -8
  138. package/Libraries/Components/View/ViewPropTypes.d.ts +21 -1
  139. package/Libraries/Components/View/ViewPropTypes.js +9 -1
  140. package/Libraries/Components/View/ViewPropTypes.windows.js +9 -1
  141. package/Libraries/Core/Devtools/getDevServer.js +1 -1
  142. package/Libraries/Core/Devtools/loadBundleFromServer.js +49 -7
  143. package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +49 -7
  144. package/Libraries/Core/Devtools/openFileInEditor.js +1 -1
  145. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -1
  146. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  147. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  148. package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
  149. package/Libraries/Core/ExceptionsManager.js +27 -16
  150. package/Libraries/Core/InitializeCore.js +2 -23
  151. package/Libraries/Core/NativeExceptionsManager.js +1 -0
  152. package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
  153. package/Libraries/Core/ReactNativeVersion.js +3 -2
  154. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
  155. package/Libraries/Core/Timers/JSTimers.js +1 -1
  156. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  157. package/Libraries/Core/Timers/immediateShim.js +1 -1
  158. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  159. package/Libraries/Core/checkNativeVersion.js +1 -0
  160. package/Libraries/Core/setUpDeveloperTools.js +13 -11
  161. package/Libraries/Core/setUpReactDevTools.js +21 -4
  162. package/Libraries/Debugging/DebuggingOverlay.js +12 -14
  163. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -1
  164. package/Libraries/Debugging/DebuggingOverlayRegistry.js +0 -1
  165. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +0 -1
  166. package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
  167. package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
  168. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
  169. package/Libraries/Image/AssetRegistry.js +4 -10
  170. package/Libraries/Image/Image.android.js +113 -107
  171. package/Libraries/Image/Image.ios.js +10 -2
  172. package/Libraries/Image/Image.windows.js +30 -20
  173. package/Libraries/Image/ImageAnalyticsTagContext.js +2 -2
  174. package/Libraries/Image/ImageInjection.js +1 -1
  175. package/Libraries/Image/ImageSource.d.ts +5 -0
  176. package/Libraries/Image/ImageViewNativeComponent.js +3 -3
  177. package/Libraries/Image/NativeImageEditor.js +1 -0
  178. package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
  179. package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
  180. package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
  181. package/Libraries/Image/NativeImageStoreIOS.js +1 -0
  182. package/Libraries/Image/RelativeImageStub.js +2 -1
  183. package/Libraries/Image/TextInlineImageNativeComponent.js +4 -4
  184. package/Libraries/Image/resolveAssetSource.js +1 -1
  185. package/Libraries/Image/resolveAssetSource.windows.js +1 -1
  186. package/Libraries/Interaction/FrameRateLogger.js +1 -1
  187. package/Libraries/Interaction/InteractionManager.js +64 -54
  188. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
  189. package/Libraries/Interaction/TaskQueue.js +8 -9
  190. package/Libraries/Interaction/TouchHistoryMath.js +1 -1
  191. package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -8
  192. package/Libraries/Linking/Linking.js +1 -1
  193. package/Libraries/Linking/NativeIntentAndroid.js +1 -0
  194. package/Libraries/Linking/NativeLinkingManager.js +1 -0
  195. package/Libraries/Lists/FlatList.d.ts +9 -5
  196. package/Libraries/Lists/FlatList.js +6 -7
  197. package/Libraries/Lists/SectionList.js +4 -4
  198. package/Libraries/Lists/SectionListModern.js +9 -3
  199. package/Libraries/Lists/VirtualizedList.js +3 -2
  200. package/Libraries/LogBox/Data/LogBoxData.js +7 -4
  201. package/Libraries/LogBox/Data/parseLogBoxLog.js +2 -0
  202. package/Libraries/LogBox/LogBox.js +72 -99
  203. package/Libraries/LogBox/UI/LogBoxButton.js +2 -1
  204. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -1
  205. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +2 -1
  206. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -2
  207. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -1
  208. package/Libraries/Modal/Modal.d.ts +8 -2
  209. package/Libraries/Modal/Modal.js +24 -3
  210. package/Libraries/Modal/Modal.windows.js +24 -3
  211. package/Libraries/Modal/NativeModalManager.js +1 -0
  212. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -1
  213. package/Libraries/NativeComponent/BaseViewConfig.android.js +21 -18
  214. package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -17
  215. package/Libraries/NativeComponent/BaseViewConfig.js.flow +1 -1
  216. package/Libraries/NativeComponent/BaseViewConfig.windows.js +9 -18
  217. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -1
  218. package/Libraries/NativeComponent/ViewConfigIgnore.js +3 -3
  219. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
  220. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
  221. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
  222. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
  223. package/Libraries/NativeModules/specs/NativeDialogManagerWindows.js +1 -0
  224. package/Libraries/NativeModules/specs/NativeLogBox.js +1 -0
  225. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
  226. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
  227. package/Libraries/Network/FormData.js +1 -1
  228. package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
  229. package/Libraries/Network/NativeNetworkingIOS.js +1 -0
  230. package/Libraries/Network/RCTNetworking.android.js +2 -2
  231. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  232. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  233. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  234. package/Libraries/Network/XMLHttpRequest.js +3 -3
  235. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  236. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -3
  237. package/Libraries/Pressability/Pressability.js +1 -1
  238. package/Libraries/Pressability/Pressability.windows.js +1 -1
  239. package/Libraries/Promise.js +1 -1
  240. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  241. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +3 -2
  242. package/Libraries/ReactNative/AppContainer-dev.js +4 -4
  243. package/Libraries/ReactNative/AppContainer-prod.js +0 -1
  244. package/Libraries/ReactNative/AppContainer.js +1 -1
  245. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  246. package/Libraries/ReactNative/AppRegistryImpl.js +2 -13
  247. package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
  248. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
  249. package/Libraries/ReactNative/NativeI18nManager.js +1 -0
  250. package/Libraries/ReactNative/NativeUIManager.js +1 -0
  251. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +1 -1
  252. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
  253. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +1 -1
  254. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +81 -62
  255. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -1
  256. package/Libraries/ReactNative/RendererImplementation.js +1 -1
  257. package/Libraries/ReactNative/RendererProxy.js +1 -1
  258. package/Libraries/ReactNative/RootTag.js +2 -2
  259. package/Libraries/ReactNative/renderApplication.js +1 -1
  260. package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
  261. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -1
  262. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +3 -3
  263. package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -1
  264. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -1
  265. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -1
  266. package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -36
  267. package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +261 -0
  268. package/Libraries/Settings/NativeSettingsManager.js +1 -0
  269. package/Libraries/Settings/Settings.ios.js +1 -1
  270. package/Libraries/Settings/Settings.js +1 -1
  271. package/Libraries/Settings/SettingsFallback.js +1 -1
  272. package/Libraries/Share/NativeShareModule.js +1 -0
  273. package/Libraries/Share/Share.js +1 -1
  274. package/Libraries/StyleSheet/EdgeInsetsPropType.js +1 -1
  275. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  276. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  277. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +1 -1
  278. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
  279. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +1 -1
  280. package/Libraries/StyleSheet/PointPropType.js +1 -1
  281. package/Libraries/StyleSheet/Rect.js +1 -1
  282. package/Libraries/StyleSheet/StyleSheet.js +1 -0
  283. package/Libraries/StyleSheet/StyleSheetTypes.js +0 -1
  284. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  285. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  286. package/Libraries/StyleSheet/processBackgroundImage.js +1 -1
  287. package/Libraries/StyleSheet/processBoxShadow.js +0 -1
  288. package/Libraries/StyleSheet/processColor.js +1 -1
  289. package/Libraries/StyleSheet/processColorArray.js +1 -1
  290. package/Libraries/StyleSheet/processFilter.js +1 -2
  291. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  292. package/Libraries/StyleSheet/processTransform.js +1 -1
  293. package/Libraries/StyleSheet/processTransformOrigin.js +1 -1
  294. package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
  295. package/Libraries/Text/Text.d.ts +1 -2
  296. package/Libraries/Text/Text.js +255 -246
  297. package/Libraries/Text/Text.windows.js +282 -301
  298. package/Libraries/Text/TextAncestor.js +3 -9
  299. package/Libraries/Text/TextAncestorContext.js +23 -0
  300. package/Libraries/Text/TextNativeComponent.js +4 -0
  301. package/Libraries/Text/TextProps.js +2 -5
  302. package/Libraries/Text/TextProps.windows.js +2 -6
  303. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
  304. package/Libraries/Types/CodegenTypes.js +1 -1
  305. package/Libraries/Types/CodegenTypesNamespace.js +2 -1
  306. package/Libraries/Types/CoreEventTypes.d.ts +4 -0
  307. package/Libraries/Types/ReactDevToolsTypes.js +0 -1
  308. package/Libraries/Utilities/Appearance.js +1 -1
  309. package/Libraries/Utilities/BackHandler.js.flow +1 -1
  310. package/Libraries/Utilities/DevLoadingView.js +1 -1
  311. package/Libraries/Utilities/DeviceInfo.js +1 -1
  312. package/Libraries/Utilities/Dimensions.js +1 -1
  313. package/Libraries/Utilities/HMRClient.js +13 -3
  314. package/Libraries/Utilities/HMRClientProdShim.js +1 -1
  315. package/Libraries/Utilities/NativeAppearance.js +1 -0
  316. package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
  317. package/Libraries/Utilities/NativeDeviceInfo.js +1 -2
  318. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  319. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  320. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  321. package/Libraries/Utilities/PerformanceLoggerContext.js +2 -2
  322. package/Libraries/Utilities/PixelRatio.js +1 -1
  323. package/Libraries/Utilities/Platform.android.js +2 -5
  324. package/Libraries/Utilities/Platform.ios.js +2 -5
  325. package/Libraries/Utilities/Platform.js +1 -1
  326. package/Libraries/Utilities/Platform.js.flow +2 -2
  327. package/Libraries/Utilities/Platform.windows.js +2 -5
  328. package/Libraries/Utilities/PlatformTypes.js +2 -2
  329. package/Libraries/Utilities/RCTLog.js +1 -1
  330. package/Libraries/Utilities/SceneTracker.js +1 -1
  331. package/Libraries/Utilities/binaryToBase64.js +1 -1
  332. package/Libraries/Utilities/codegenNativeCommands.js +5 -3
  333. package/Libraries/Utilities/codegenNativeComponent.js +4 -4
  334. package/Libraries/Utilities/createPerformanceLogger.js +27 -20
  335. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -1
  336. package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
  337. package/Libraries/Utilities/differ/deepDiffer.js +1 -1
  338. package/Libraries/Utilities/differ/insetsDiffer.js +1 -1
  339. package/Libraries/Utilities/differ/matricesDiffer.js +1 -1
  340. package/Libraries/Utilities/differ/pointsDiffer.js +1 -1
  341. package/Libraries/Utilities/logError.js +1 -1
  342. package/Libraries/Utilities/mapWithSeparator.js +1 -1
  343. package/Libraries/Utilities/stringifySafe.js +1 -1
  344. package/Libraries/Utilities/stringifyViewConfig.js +1 -1
  345. package/Libraries/Utilities/useColorScheme.js +1 -1
  346. package/Libraries/Utilities/useWindowDimensions.js +1 -1
  347. package/Libraries/Utilities/warnOnce.js +1 -1
  348. package/Libraries/Vibration/NativeVibration.js +1 -0
  349. package/Libraries/Vibration/Vibration.js +1 -2
  350. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
  351. package/Libraries/WebSocket/WebSocket.js +1 -1
  352. package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
  353. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  354. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  355. package/Libraries/vendor/emitter/EventEmitter.js +6 -6
  356. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +3 -3
  357. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.h +3 -3
  358. package/Microsoft.ReactNative/Fabric/AbiShadowNode.cpp +2 -1
  359. package/Microsoft.ReactNative/Fabric/AbiShadowNode.h +2 -2
  360. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +3 -3
  361. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.cpp +2 -1
  362. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.h +1 -1
  363. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +18 -7
  364. package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.cpp +169 -0
  365. package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.h +42 -0
  366. package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +1 -1
  367. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +68 -1
  368. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +9 -0
  369. package/Microsoft.ReactNative/Fabric/Composition/TextDrawing.cpp +5 -37
  370. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +3 -3
  371. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +6 -6
  372. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +21 -17
  373. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -4
  374. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +19 -0
  375. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +76 -0
  376. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -1
  377. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
  378. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +6 -0
  379. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +0 -17
  380. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.h +0 -3
  381. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +41 -37
  382. package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.cpp +75 -24
  383. package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.h +4 -25
  384. package/Microsoft.ReactNative/JsiApi.cpp +1 -1
  385. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -0
  386. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +3 -0
  387. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +0 -2
  388. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -1
  389. package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -3
  390. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +27 -11
  391. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +19 -2
  392. package/Microsoft.ReactNative/QuirkSettings.cpp +16 -0
  393. package/Microsoft.ReactNative/QuirkSettings.h +3 -0
  394. package/Microsoft.ReactNative/QuirkSettings.idl +5 -0
  395. package/Microsoft.ReactNative/ReactHost/DebuggerNotifications.h +54 -0
  396. package/Microsoft.ReactNative/ReactHost/React.h +11 -4
  397. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +166 -29
  398. package/Microsoft.ReactNative/ReactHost/ReactHost.h +22 -4
  399. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +68 -52
  400. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  401. package/Microsoft.ReactNative/ReactRootView.cpp +108 -0
  402. package/Microsoft.ReactNative/ReactRootView.h +6 -0
  403. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +1 -0
  404. package/Microsoft.ReactNative/Views/DevMenu.cpp +1 -1
  405. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +36 -8
  406. package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +6 -2
  407. package/Microsoft.ReactNative/Views/ViewManager.h +0 -1
  408. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +9 -1
  409. package/Microsoft.ReactNative.Cxx/JSI/decorator.h +41 -0
  410. package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +16 -0
  411. package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +125 -0
  412. package/Microsoft.ReactNative.Cxx/JSI/jsi.h +167 -1
  413. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +2 -2
  414. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +110 -38
  415. package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +5 -5
  416. package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +0 -2
  417. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.h +0 -19
  418. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Base.h +45 -34
  419. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +1 -1
  420. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +1 -0
  421. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +36 -33
  422. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Number.h +10 -10
  423. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +14 -8
  424. package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +44 -31
  425. package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +13 -14
  426. package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +19 -4
  427. package/Microsoft.ReactNative.Cxx/node-api/node_api.h +270 -0
  428. package/Microsoft.ReactNative.Cxx/node-api/node_api_types.h +52 -0
  429. package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +13 -4
  430. package/PropertySheets/External/Microsoft.ReactNative.Cpp.Dependencies.props +10 -0
  431. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  432. package/PropertySheets/JSEngine.props +1 -1
  433. package/PropertySheets/React.Cpp.props +6 -4
  434. package/README.md +1 -1
  435. package/ReactCommon/ReactCommon.vcxproj +29 -21
  436. package/ReactCommon/ReactCommon.vcxproj.filters +36 -13
  437. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +5 -0
  438. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +6 -2
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +111 -7
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +57 -4
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +17 -1
  442. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/network/HttpUtils.cpp +175 -0
  443. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +1 -0
  444. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.cpp +69 -56
  445. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.h +35 -18
  446. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +445 -0
  447. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +92 -0
  448. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +35 -0
  449. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityProps.cpp +37 -1
  450. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +250 -80
  451. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ShadowNode.cpp +528 -0
  452. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/css/CSSTokenizer.h +1 -2
  453. package/ReactCommon/TEMP_UntilReactCommonUpdate/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +9 -12
  454. package/ReactCommon/cgmanifest.json +1 -1
  455. package/Scripts/Analyze-Crash.ps1 +87 -3
  456. package/Scripts/OfficeReact.Win32.nuspec +0 -1
  457. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -0
  458. package/Scripts/Tfs/Start-TestServers.ps1 +2 -1
  459. package/Scripts/creaternwapp.cmd +10 -6
  460. package/Scripts/rnw-dependencies.ps1 +33 -4
  461. package/Shared/CreateModules.h +0 -35
  462. package/Shared/DevServerHelper.h +13 -3
  463. package/Shared/DevSettings.h +6 -5
  464. package/Shared/DevSupportManager.cpp +79 -20
  465. package/Shared/DevSupportManager.h +7 -19
  466. package/Shared/Hermes/HermesRuntimeAgentDelegate.cpp +99 -0
  467. package/Shared/Hermes/HermesRuntimeAgentDelegate.h +81 -0
  468. package/Shared/Hermes/HermesRuntimeTargetDelegate.cpp +274 -0
  469. package/Shared/Hermes/HermesRuntimeTargetDelegate.h +77 -0
  470. package/Shared/HermesRuntimeHolder.cpp +29 -111
  471. package/Shared/HermesRuntimeHolder.h +214 -32
  472. package/Shared/IDevSupportManager.h +5 -2
  473. package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.cpp +108 -0
  474. package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.h +19 -0
  475. package/Shared/Inspector/ReactInspectorThread.h +18 -0
  476. package/Shared/JSI/RuntimeHolder.h +5 -2
  477. package/Shared/Modules/BlobModule.cpp +0 -90
  478. package/Shared/Modules/BlobModule.h +0 -40
  479. package/Shared/Modules/FileReaderModule.cpp +0 -104
  480. package/Shared/Modules/FileReaderModule.h +0 -38
  481. package/Shared/Modules/HttpModule.cpp +0 -172
  482. package/Shared/Modules/HttpModule.h +0 -47
  483. package/Shared/Modules/WebSocketModule.cpp +0 -287
  484. package/Shared/Modules/WebSocketModule.h +1 -94
  485. package/Shared/OInstance.cpp +45 -139
  486. package/Shared/OInstance.h +0 -1
  487. package/Shared/Shared.vcxitems +33 -32
  488. package/Shared/Shared.vcxitems.filters +38 -51
  489. package/Shared/TurboModuleManager.cpp +0 -1
  490. package/codegen/NativeDOMSpec.g.h +6 -0
  491. package/codegen/NativeDeviceInfoSpec.g.h +2 -0
  492. package/codegen/NativeIntersectionObserverSpec.g.h +19 -5
  493. package/codegen/NativeMutationObserverSpec.g.h +4 -4
  494. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +159 -93
  495. package/codegen/react/components/rnwcore/EventEmitters.cpp +25 -0
  496. package/codegen/react/components/rnwcore/EventEmitters.h +25 -0
  497. package/codegen/react/components/rnwcore/ModalHostView.g.h +4 -0
  498. package/codegen/react/components/rnwcore/Props.cpp +535 -24
  499. package/codegen/react/components/rnwcore/Props.h +138 -0
  500. package/codegen/react/components/rnwcore/States.h +9 -78
  501. package/codegen/react/components/rnwcore/VirtualView.g.h +226 -0
  502. package/codegen/rnwcoreJSI-generated.cpp +101 -31
  503. package/codegen/rnwcoreJSI.h +169 -88
  504. package/include/Shared/II18nModule.h +0 -1
  505. package/index.js +22 -2
  506. package/index.windows.js +131 -221
  507. package/interface.js +1 -1
  508. package/jest/MockNativeMethods.js +9 -3
  509. package/jest/RefreshControlMock.js +32 -0
  510. package/jest/assetFileTransformer.js +1 -0
  511. package/jest/local-setup.js +4 -3
  512. package/jest/mock.js +39 -0
  513. package/jest/mockComponent.js +47 -17
  514. package/jest/mockNativeComponent.js +26 -15
  515. package/jest/mocks/AccessibilityInfo.js +62 -0
  516. package/jest/mocks/ActivityIndicator.js +23 -0
  517. package/jest/mocks/AppState.js +19 -0
  518. package/jest/mocks/Clipboard.js +16 -0
  519. package/jest/mocks/Image.js +23 -0
  520. package/jest/mocks/InitializeCore.js +9 -0
  521. package/jest/mocks/Linking.js +28 -0
  522. package/jest/mocks/Modal.js +33 -0
  523. package/jest/mocks/NativeComponentRegistry.js +30 -0
  524. package/jest/mocks/NativeModules.js +239 -0
  525. package/jest/mocks/RefreshControl.js +31 -0
  526. package/jest/mocks/RendererProxy.js +45 -0
  527. package/jest/mocks/ScrollView.js +58 -0
  528. package/jest/mocks/Text.js +27 -0
  529. package/jest/mocks/TextInput.js +32 -0
  530. package/jest/mocks/UIManager.js +60 -0
  531. package/jest/mocks/Vibration.js +16 -0
  532. package/jest/mocks/View.js +27 -0
  533. package/jest/mocks/ViewNativeComponent.js +23 -0
  534. package/jest/mocks/requireNativeComponent.js +22 -0
  535. package/{Libraries/Utilities/infoLog.js → jest/mocks/useColorScheme.js} +7 -9
  536. package/jest/react-native-env.js +1 -0
  537. package/jest/renderer.js +1 -2
  538. package/jest/resolver.js +1 -0
  539. package/jest/setup.js +64 -449
  540. package/package.json +24 -24
  541. package/src/private/animated/NativeAnimatedHelper.js +8 -1
  542. package/src/private/animated/createAnimatedPropsHook.js +14 -4
  543. package/src/private/animated/createAnimatedPropsMemoHook.js +2 -3
  544. package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
  545. package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
  546. package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
  547. package/src/private/components/virtualview/VirtualView.js +145 -0
  548. package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
  549. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +1 -1
  550. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +1 -1
  551. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +1 -1
  552. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  553. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +1 -1
  554. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +1 -1
  555. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -1
  556. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +1 -1
  557. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +1 -1
  558. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  559. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +1 -1
  560. package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +1 -1
  561. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  562. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +1 -1
  563. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
  564. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
  565. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
  566. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.windows.js +8 -9
  567. package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
  568. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
  569. package/src/private/featureflags/ReactNativeFeatureFlags.js +88 -8
  570. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -0
  571. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +15 -3
  572. package/src/private/renderer/errorhandling/ErrorHandlers.js +1 -1
  573. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
  574. package/src/private/setup/setUpPerformanceObserver.js +7 -0
  575. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +8 -5
  576. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +4 -4
  577. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +4 -4
  578. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +4 -4
  579. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +10 -7
  580. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +5 -4
  581. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +7 -4
  582. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +10 -7
  583. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +9 -6
  584. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +15 -6
  585. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +9 -6
  586. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +5 -5
  587. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +4 -4
  588. package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +1 -0
  589. package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
  590. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
  591. package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +1 -1
  592. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +9 -6
  593. package/src/private/styles/composeStyles.js +5 -12
  594. package/src/private/types/HostInstance.js +1 -1
  595. package/src/private/webapis/dom/events/Event.js +3 -0
  596. package/src/private/webapis/dom/events/EventTarget.js +3 -0
  597. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +1 -1
  598. package/src/private/webapis/dom/nodes/ReactNativeElement.js +7 -24
  599. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +1 -1
  600. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  601. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +4 -2
  602. package/src/private/webapis/dom/nodes/ReadOnlyText.js +1 -1
  603. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +1 -1
  604. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  605. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  606. package/src/private/webapis/dom/nodes/internals/Traversal.js +1 -1
  607. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
  608. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -1
  609. package/src/private/webapis/dom/oldstylecollections/NodeList.js +4 -1
  610. package/src/private/webapis/errors/DOMException.js +166 -0
  611. package/src/private/webapis/geometry/DOMRect.js +5 -0
  612. package/src/private/webapis/geometry/DOMRectList.js +4 -1
  613. package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
  614. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +4 -2
  615. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +15 -7
  616. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
  617. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +83 -18
  618. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +12 -0
  619. package/src/private/webapis/mutationobserver/MutationObserver.js +13 -38
  620. package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
  621. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +7 -29
  622. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +1 -4
  623. package/src/private/webapis/performance/EventTiming.js +1 -1
  624. package/src/private/webapis/performance/LongTasks.js +1 -1
  625. package/src/private/webapis/performance/MemoryInfo.js +4 -1
  626. package/src/private/webapis/performance/Performance.js +20 -9
  627. package/src/private/webapis/performance/PerformanceEntry.js +5 -1
  628. package/src/private/webapis/performance/PerformanceObserver.js +32 -28
  629. package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
  630. package/src/private/webapis/performance/ResourceTiming.js +108 -0
  631. package/src/private/webapis/performance/UserTiming.js +1 -1
  632. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +50 -33
  633. package/src/private/webapis/performance/internals/Utilities.js +1 -1
  634. package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
  635. package/src/private/webapis/structuredClone/structuredClone.js +233 -0
  636. package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
  637. package/src/private/webapis/webidl/PlatformObjects.js +59 -0
  638. package/templates/cpp-lib/example/metro.config.js +1 -1
  639. package/templates/cpp-lib/template.config.js +24 -0
  640. package/templates/cpp-lib/windows/MyLib/MyLib.h +20 -1
  641. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +0 -1
  642. package/types/modules/Devtools.d.ts +23 -9
  643. package/Libraries/BugReporting/BugReporting.js +0 -140
  644. package/Libraries/BugReporting/NativeBugReporting.js +0 -13
  645. package/Libraries/BugReporting/dumpReactTree.js +0 -151
  646. package/Libraries/BugReporting/getReactData.js +0 -187
  647. package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -88
  648. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +0 -78
  649. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +0 -196
  650. package/ReactCommon/TEMP_UntilReactCommonUpdate/jserrorhandler/JsErrorHandler.cpp +0 -429
  651. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.cpp +0 -45
  652. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.h +0 -91
  653. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/CullingContext.cpp +0 -49
  654. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.cpp +0 -191
  655. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +0 -670
  656. package/Shared/InspectorPackagerConnection.cpp +0 -232
  657. package/Shared/InspectorPackagerConnection.h +0 -61
  658. package/Shared/Modules/ExceptionsManagerModule.cpp +0 -209
  659. package/Shared/Modules/ExceptionsManagerModule.h +0 -32
  660. package/Shared/Modules/I18nModule.cpp +0 -36
  661. package/Shared/Modules/I18nModule.h +0 -28
  662. package/Shared/Modules/NetworkingModule.cpp +0 -432
  663. package/Shared/Modules/NetworkingModule.h +0 -34
  664. package/Shared/Modules/PlatformConstantsModule.cpp +0 -60
  665. package/Shared/Modules/PlatformConstantsModule.h +0 -23
  666. package/Shared/Modules/SourceCodeModule.cpp +0 -35
  667. package/Shared/Modules/SourceCodeModule.h +0 -27
  668. package/Shared/Modules/StatusBarManagerModule.cpp +0 -25
  669. package/Shared/Modules/StatusBarManagerModule.h +0 -19
  670. package/codegen/NativeBugReportingSpec.g.h +0 -41
  671. package/jest/mockModal.js +0 -32
  672. package/jest/mockScrollView.js +0 -35
  673. package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +0 -20
  674. /package/Shared/{HermesSamplingProfiler.cpp → Hermes/HermesSamplingProfiler.cpp} +0 -0
  675. /package/Shared/{HermesSamplingProfiler.h → Hermes/HermesSamplingProfiler.h} +0 -0
@@ -167,6 +167,9 @@ void FabricUIManager::setProps(facebook::react::SurfaceId surfaceId, const folly
167
167
  }
168
168
 
169
169
  void FabricUIManager::stopSurface(facebook::react::SurfaceId surfaceId) noexcept {
170
+ if (surfaceId == -1) {
171
+ return;
172
+ }
170
173
  visit(surfaceId, [&](const facebook::react::SurfaceHandler &surfaceHandler) {
171
174
  surfaceHandler.stop();
172
175
  m_scheduler->unregisterSurface(surfaceHandler);
@@ -176,7 +179,9 @@ void FabricUIManager::stopSurface(facebook::react::SurfaceId surfaceId) noexcept
176
179
  std::unique_lock lock(m_handlerMutex);
177
180
 
178
181
  auto iterator = m_handlerRegistry.find(surfaceId);
179
- m_handlerRegistry.erase(iterator);
182
+ if (iterator != m_handlerRegistry.end()) {
183
+ m_handlerRegistry.erase(iterator);
184
+ }
180
185
  }
181
186
 
182
187
  auto &rootDescriptor = m_registry.componentViewDescriptorWithTag(surfaceId);
@@ -477,6 +482,12 @@ void FabricUIManager::schedulerDidSendAccessibilityEvent(
477
482
  assert(false);
478
483
  }
479
484
 
485
+ void FabricUIManager::schedulerDidUpdateShadowTree(
486
+ const std::unordered_map<facebook::react::Tag, folly::dynamic> &tagToProps) {
487
+ // TODO: Implement shadow tree update handling if needed
488
+ // This method is called when the scheduler updates shadow tree props
489
+ }
490
+
480
491
  void FabricUIManager::Initialize(winrt::Microsoft::ReactNative::ReactContext const &reactContext) noexcept {
481
492
  m_context = reactContext;
482
493
 
@@ -104,6 +104,8 @@ struct FabricUIManager final : public std::enable_shared_from_this<FabricUIManag
104
104
  virtual void schedulerDidSendAccessibilityEvent(
105
105
  const facebook::react::ShadowView &shadowView,
106
106
  std::string const &eventType) override;
107
+ virtual void schedulerDidUpdateShadowTree(
108
+ const std::unordered_map<facebook::react::Tag, folly::dynamic> &tagToProps) override;
107
109
  };
108
110
 
109
111
  } // namespace Microsoft::ReactNative
@@ -97,6 +97,12 @@ inline ColorComponents colorComponentsFromHostPlatformColor(Color color) {
97
97
  (float)windowsColor.A / ratio};
98
98
  }
99
99
 
100
+ // windows
101
+ inline bool hostPlatformColorIsColorMeaningful(Color color) noexcept {
102
+ auto windowsColor = color.AsWindowsColor();
103
+ return windowsColor.A > 0;
104
+ }
105
+
100
106
  } // namespace facebook::react
101
107
 
102
108
  namespace std {
@@ -189,21 +189,4 @@ SharedColor GetTextInputPlaceholderColor(bool isFocused, const winrt::Windows::U
189
189
  }
190
190
  }
191
191
 
192
- SharedColor GetDefaultTextColor() {
193
- // In high contrast mode, always use system WindowText for accessibility
194
- auto accessibilitySettings{winrt::Windows::UI::ViewManagement::AccessibilitySettings()};
195
- if (accessibilitySettings.HighContrast()) {
196
- auto uiSettings{winrt::Windows::UI::ViewManagement::UISettings()};
197
- auto windowText = uiSettings.UIElementColor(winrt::Windows::UI::ViewManagement::UIElementType::WindowText);
198
- return hostPlatformColorFromRGBA(windowText.R, windowText.G, windowText.B, windowText.A);
199
- }
200
-
201
- // Use Windows 11 design system semantic color TextFillColorPrimary
202
- // This automatically adapts to light/dark mode themes:
203
- // - Light mode: rgba(0, 0, 0, 0.894) - nearly black for good contrast
204
- // - Dark mode: rgba(255, 255, 255, 1.0) - white for readability
205
- auto color = ResolvePlatformColor({"TextFillColorPrimary"});
206
- return hostPlatformColorFromRGBA(color.R, color.G, color.B, color.A);
207
- }
208
-
209
192
  } // namespace facebook::react
@@ -17,7 +17,4 @@ winrt::Windows::UI::Color ResolvePlatformColor(const std::vector<std::string> &s
17
17
  // Get appropriate placeholder text color for TextInput based on focus state and background
18
18
  SharedColor GetTextInputPlaceholderColor(bool isFocused, const winrt::Windows::UI::Color &backgroundColor = {});
19
19
 
20
- // Get default text foreground color for Text component (theme-aware)
21
- SharedColor GetDefaultTextColor();
22
-
23
20
  } // namespace facebook::react
@@ -80,6 +80,12 @@ void WindowsTextLayoutManager::GetTextLayout(
80
80
  TextMeasurement::Attachments &attachments) noexcept {
81
81
  const auto &attributedString = attributedStringBox.getValue();
82
82
  auto fragments = attributedString.getFragments();
83
+
84
+ // Check if fragments is empty to avoid out-of-bounds access
85
+ if (fragments.empty()) {
86
+ return;
87
+ }
88
+
83
89
  auto outerFragment = fragments[0];
84
90
 
85
91
  DWRITE_FONT_STYLE style = DWRITE_FONT_STYLE_NORMAL;
@@ -375,47 +381,45 @@ TextMeasurement TextLayoutManager::measure(
375
381
  TextMeasurement measurement{};
376
382
  auto &attributedString = attributedStringBox.getValue();
377
383
 
378
- measurement = textMeasureCache_.get(
379
- {attributedString, paragraphAttributes, layoutConstraints}, [&](TextMeasureCacheKey const &key) {
380
- auto telemetry = TransactionTelemetry::threadLocalTelemetry();
381
- if (telemetry) {
382
- telemetry->willMeasureText();
383
- }
384
+ measurement = textMeasureCache_.get({attributedString, paragraphAttributes, layoutConstraints}, [&]() {
385
+ auto telemetry = TransactionTelemetry::threadLocalTelemetry();
386
+ if (telemetry) {
387
+ telemetry->willMeasureText();
388
+ }
384
389
 
385
- winrt::com_ptr<IDWriteTextLayout> spTextLayout;
386
-
387
- TextMeasurement::Attachments attachments;
388
- WindowsTextLayoutManager::GetTextLayout(
389
- attributedStringBox, paragraphAttributes, layoutConstraints.maximumSize, spTextLayout, attachments);
390
-
391
- if (spTextLayout) {
392
- auto maxHeight = std::numeric_limits<float>().max();
393
- if (paragraphAttributes.maximumNumberOfLines > 0) {
394
- std::vector<DWRITE_LINE_METRICS> lineMetrics;
395
- uint32_t actualLineCount;
396
- spTextLayout->GetLineMetrics(nullptr, 0, &actualLineCount);
397
- lineMetrics.resize(static_cast<size_t>(actualLineCount));
398
- winrt::check_hresult(spTextLayout->GetLineMetrics(lineMetrics.data(), actualLineCount, &actualLineCount));
399
- maxHeight = 0;
400
- const auto count =
401
- std::min(static_cast<uint32_t>(paragraphAttributes.maximumNumberOfLines), actualLineCount);
402
- for (uint32_t i = 0; i < count; ++i) {
403
- maxHeight += lineMetrics[i].height;
404
- }
405
- }
406
-
407
- DWRITE_TEXT_METRICS dtm{};
408
- winrt::check_hresult(spTextLayout->GetMetrics(&dtm));
409
- measurement.size = {dtm.width, std::min(dtm.height, maxHeight)};
410
- measurement.attachments = attachments;
411
- }
390
+ winrt::com_ptr<IDWriteTextLayout> spTextLayout;
391
+
392
+ TextMeasurement::Attachments attachments;
393
+ WindowsTextLayoutManager::GetTextLayout(
394
+ attributedStringBox, paragraphAttributes, layoutConstraints.maximumSize, spTextLayout, attachments);
412
395
 
413
- if (telemetry) {
414
- telemetry->didMeasureText();
396
+ if (spTextLayout) {
397
+ auto maxHeight = std::numeric_limits<float>().max();
398
+ if (paragraphAttributes.maximumNumberOfLines > 0) {
399
+ std::vector<DWRITE_LINE_METRICS> lineMetrics;
400
+ uint32_t actualLineCount;
401
+ spTextLayout->GetLineMetrics(nullptr, 0, &actualLineCount);
402
+ lineMetrics.resize(static_cast<size_t>(actualLineCount));
403
+ winrt::check_hresult(spTextLayout->GetLineMetrics(lineMetrics.data(), actualLineCount, &actualLineCount));
404
+ maxHeight = 0;
405
+ const auto count = std::min(static_cast<uint32_t>(paragraphAttributes.maximumNumberOfLines), actualLineCount);
406
+ for (uint32_t i = 0; i < count; ++i) {
407
+ maxHeight += lineMetrics[i].height;
415
408
  }
409
+ }
410
+
411
+ DWRITE_TEXT_METRICS dtm{};
412
+ winrt::check_hresult(spTextLayout->GetMetrics(&dtm));
413
+ measurement.size = {dtm.width, std::min(dtm.height, maxHeight)};
414
+ measurement.attachments = attachments;
415
+ }
416
+
417
+ if (telemetry) {
418
+ telemetry->didMeasureText();
419
+ }
416
420
 
417
- return measurement;
418
- });
421
+ return measurement;
422
+ });
419
423
  return measurement;
420
424
  }
421
425
 
@@ -12,8 +12,11 @@
12
12
 
13
13
  #include <folly/portability/SysResource.h>
14
14
  #include <folly/system/ThreadName.h>
15
- #include <chrono>
15
+ #include <condition_variable>
16
16
  #include <future>
17
+ #include <mutex>
18
+ #include <queue>
19
+ #include <thread>
17
20
  #include <utility>
18
21
 
19
22
  #include <glog/logging.h>
@@ -25,40 +28,88 @@
25
28
 
26
29
  namespace facebook::react {
27
30
 
28
- TaskDispatchThread::TaskDispatchThread(std::string threadName, int priorityOffset) noexcept
29
- : threadName_(std::move(threadName)) {
30
- #ifdef ANDROID
31
- // Attaches the thread to JVM just in case anything calls out to Java
32
- thread_ = std::thread([&]() {
33
- facebook::jni::ThreadScope::WithClassLoader([&]() {
34
- int result = setpriority(PRIO_PROCESS, static_cast<pid_t>(::syscall(SYS_gettid)), priorityOffset);
31
+ class TaskDispatchThread::Impl : public std::enable_shared_from_this<TaskDispatchThread::Impl> {
32
+ public:
33
+ Impl(std::string &&threadName) noexcept;
34
+ ~Impl() noexcept;
35
+
36
+ void start() noexcept;
37
+ bool isOnThread() noexcept;
38
+ bool isRunning() noexcept;
39
+ void runAsync(TaskFn &&task, std::chrono::milliseconds delayMs = std::chrono::milliseconds::zero()) noexcept;
40
+ void runSync(TaskFn &&task) noexcept;
41
+ void quit() noexcept;
42
+ void loop() noexcept;
43
+
44
+ private:
45
+ struct Task {
46
+ TimePoint dispatchTime;
47
+ TaskFn fn;
48
+
49
+ Task(TimePoint dispatchTime, TaskFn &&fn) : dispatchTime(dispatchTime), fn(std::move(fn)) {}
50
+
51
+ bool operator<(const Task &other) const {
52
+ // Have the earliest tasks be at the front of the queue.
53
+ return dispatchTime > other.dispatchTime;
54
+ }
55
+ };
56
+
57
+ std::mutex queueLock_;
58
+ std::condition_variable loopCv_;
59
+ std::priority_queue<Task> queue_;
60
+ std::atomic<bool> running_{true};
61
+ std::string threadName_;
62
+ std::thread thread_;
63
+ };
64
+
65
+ TaskDispatchThread::TaskDispatchThread(std::string threadName, int /*priorityOffset*/) noexcept
66
+ : impl_(std::make_shared<Impl>(std::move(threadName))) {
67
+ impl_->start();
68
+ }
35
69
 
36
- if (result != 0) {
37
- LOG(INFO) << " setCurrentThreadPriority failed with pri errno: " << errno;
38
- }
70
+ TaskDispatchThread::~TaskDispatchThread() noexcept {
71
+ impl_->quit();
72
+ }
39
73
 
40
- loop();
41
- });
42
- });
74
+ bool TaskDispatchThread::isOnThread() noexcept {
75
+ return impl_->isOnThread();
76
+ }
43
77
 
44
- #else
45
- thread_ = std::thread(&TaskDispatchThread::loop, this);
46
- #endif
78
+ bool TaskDispatchThread::isRunning() noexcept {
79
+ return impl_->isRunning();
47
80
  }
48
81
 
49
- TaskDispatchThread::~TaskDispatchThread() noexcept {
82
+ void TaskDispatchThread::runAsync(TaskFn &&task, std::chrono::milliseconds delayMs) noexcept {
83
+ impl_->runAsync(std::move(task), delayMs);
84
+ }
85
+
86
+ void TaskDispatchThread::runSync(TaskFn &&task) noexcept {
87
+ impl_->runSync(std::move(task));
88
+ }
89
+
90
+ void TaskDispatchThread::quit() noexcept {
91
+ impl_->quit();
92
+ }
93
+
94
+ TaskDispatchThread::Impl::Impl(std::string &&threadName) noexcept : threadName_(std::move(threadName)) {}
95
+
96
+ TaskDispatchThread::Impl::~Impl() noexcept {
50
97
  quit();
51
98
  }
52
99
 
53
- bool TaskDispatchThread::isOnThread() noexcept {
100
+ void TaskDispatchThread::Impl::start() noexcept {
101
+ thread_ = std::thread([self = shared_from_this()]() { self->loop(); });
102
+ }
103
+
104
+ bool TaskDispatchThread::Impl::isOnThread() noexcept {
54
105
  return std::this_thread::get_id() == thread_.get_id();
55
106
  }
56
107
 
57
- bool TaskDispatchThread::isRunning() noexcept {
108
+ bool TaskDispatchThread::Impl::isRunning() noexcept {
58
109
  return running_;
59
110
  }
60
111
 
61
- void TaskDispatchThread::runAsync(TaskFn &&task, std::chrono::milliseconds delayMs) noexcept {
112
+ void TaskDispatchThread::Impl::runAsync(TaskFn &&task, std::chrono::milliseconds delayMs) noexcept {
62
113
  if (!running_) {
63
114
  return;
64
115
  }
@@ -68,7 +119,7 @@ void TaskDispatchThread::runAsync(TaskFn &&task, std::chrono::milliseconds delay
68
119
  loopCv_.notify_one();
69
120
  }
70
121
 
71
- void TaskDispatchThread::runSync(TaskFn &&task) noexcept {
122
+ void TaskDispatchThread::Impl::runSync(TaskFn &&task) noexcept {
72
123
  std::promise<void> promise;
73
124
  runAsync([&]() {
74
125
  if (running_) {
@@ -79,7 +130,7 @@ void TaskDispatchThread::runSync(TaskFn &&task) noexcept {
79
130
  promise.get_future().wait();
80
131
  }
81
132
 
82
- void TaskDispatchThread::quit() noexcept {
133
+ void TaskDispatchThread::Impl::quit() noexcept {
83
134
  if (!running_) {
84
135
  return;
85
136
  }
@@ -94,7 +145,7 @@ void TaskDispatchThread::quit() noexcept {
94
145
  }
95
146
  }
96
147
 
97
- void TaskDispatchThread::loop() noexcept {
148
+ void TaskDispatchThread::Impl::loop() noexcept {
98
149
  if (!threadName_.empty()) {
99
150
  folly::setThreadName(threadName_);
100
151
  }
@@ -11,11 +11,8 @@
11
11
  #pragma once
12
12
 
13
13
  #include <chrono>
14
- #include <condition_variable>
15
14
  #include <functional>
16
- #include <mutex>
17
- #include <queue>
18
- #include <thread>
15
+ #include <memory>
19
16
 
20
17
  namespace facebook::react {
21
18
 
@@ -47,27 +44,9 @@ class TaskDispatchThread {
47
44
  /** Shut down and clean up the thread. */
48
45
  void quit() noexcept;
49
46
 
50
- protected:
51
- struct Task {
52
- TimePoint dispatchTime;
53
- TaskFn fn;
54
-
55
- Task(TimePoint dispatchTime, TaskFn &&fn) : dispatchTime(dispatchTime), fn(std::move(fn)) {}
56
-
57
- bool operator<(const Task &other) const {
58
- // Have the earliest tasks be at the front of the queue.
59
- return dispatchTime > other.dispatchTime;
60
- }
61
- };
62
-
63
- void loop() noexcept;
64
-
65
- std::mutex queueLock_;
66
- std::condition_variable loopCv_;
67
- std::priority_queue<Task> queue_;
68
- std::atomic<bool> running_{true};
69
- std::string threadName_;
70
- std::thread thread_;
47
+ private:
48
+ class Impl;
49
+ std::shared_ptr<Impl> impl_;
71
50
  };
72
51
 
73
52
  } // namespace facebook::react
@@ -479,7 +479,7 @@ facebook::jsi::JSError const &jsError) { \
479
479
  }();
480
480
  )JS");
481
481
  // TODO: consider implementing this script as a resource file and loading it with the resource URL.
482
- jsiRuntime->evaluateJavaScript(jsiPalBuffer, "Form_JSI_API_not_a_real_file");
482
+ jsiRuntime->evaluateJavaScript(jsiPalBuffer, "jsi-internal://host-function-manager.js");
483
483
  ReactNative::JsiRuntime abiJsiResult{make<JsiRuntime>(Mso::Copy(jsiRuntimeHolder), Mso::Copy(jsiRuntime))};
484
484
  std::scoped_lock lock{s_mutex};
485
485
  auto it = s_jsiRuntimeMap.try_emplace(reinterpret_cast<uintptr_t>(jsiRuntime.get()), abiJsiResult);
@@ -268,6 +268,7 @@
268
268
  <SubType>Code</SubType>
269
269
  </ClInclude>
270
270
  <ClInclude Include="ReactHost\AsyncActionQueue.h" />
271
+ <ClInclude Include="ReactHost\DebuggerNotifications.h" />
271
272
  <ClInclude Include="ReactHost\InstanceFactory.h" />
272
273
  <ClInclude Include="ReactHost\IReactInstanceInternal.h" />
273
274
  <ClInclude Include="ReactHost\JSBundle.h" />
@@ -313,6 +313,9 @@
313
313
  <ClInclude Include="ReactHost\AsyncActionQueue.h">
314
314
  <Filter>ReactHost</Filter>
315
315
  </ClInclude>
316
+ <ClInclude Include="ReactHost\DebuggerNotifications.h">
317
+ <Filter>ReactHost</Filter>
318
+ </ClInclude>
316
319
  <ClInclude Include="ReactHost\InstanceFactory.h">
317
320
  <Filter>ReactHost</Filter>
318
321
  </ClInclude>
@@ -6,8 +6,6 @@
6
6
 
7
7
  #include <IReactInstance.h>
8
8
  #include <UI.Xaml.Media.h>
9
- #include <cxxreact/CxxModule.h>
10
- #include <folly/dynamic.h>
11
9
  #include "AnimatedNode.h"
12
10
  #include "AnimationDriver.h"
13
11
  #include "EventAnimationDriver.h"
@@ -13,7 +13,6 @@
13
13
  #include <Utils/ValueUtils.h>
14
14
  #include <XamlUIService.h>
15
15
  #include <XamlUtils.h>
16
- #include <cxxreact/CxxModule.h>
17
16
  #include <functional>
18
17
  #include <memory>
19
18
  #if _MSC_VER <= 1913
@@ -7,9 +7,6 @@
7
7
  #include <React.h>
8
8
  #include <ReactPropertyBag.h>
9
9
 
10
- // React Native
11
- #include <cxxreact/CxxModule.h>
12
-
13
10
  // Windows API
14
11
  #include <winrt/Windows.Security.Cryptography.Certificates.h>
15
12
 
@@ -931,8 +931,21 @@ void NativeUIManager::ApplyLayout(int64_t tag, float width, float height) {
931
931
  }
932
932
 
933
933
  void NativeUIManager::SetLayoutPropsRecursive(int64_t tag) {
934
- ShadowNodeBase &shadowNode = static_cast<ShadowNodeBase &>(m_host->GetShadowNodeForTag(tag));
934
+ if (!m_host) {
935
+ return;
936
+ }
937
+
938
+ auto *shadowNodePtr = m_host->FindShadowNodeForTag(tag);
939
+ if (!shadowNodePtr) {
940
+ return;
941
+ }
942
+
943
+ ShadowNodeBase &shadowNode = static_cast<ShadowNodeBase &>(*shadowNodePtr);
935
944
  auto *pViewManager = shadowNode.GetViewManager();
945
+ if (!pViewManager) {
946
+ return;
947
+ }
948
+
936
949
  if (!pViewManager->IsNativeControlWithSelfLayout()) {
937
950
  for (const auto child : shadowNode.m_children) {
938
951
  SetLayoutPropsRecursive(child);
@@ -951,18 +964,21 @@ void NativeUIManager::SetLayoutPropsRecursive(int64_t tag) {
951
964
  float height = YGNodeLayoutGetHeight(yogaNode);
952
965
  auto view = shadowNode.GetView();
953
966
  auto pViewManager = shadowNode.GetViewManager();
954
- pViewManager->SetLayoutProps(shadowNode, view, left, top, width, height);
955
- if (shadowNode.m_onLayoutRegistered) {
956
- const auto hasLayoutChanged = !YogaFloatEquals(left, shadowNode.m_layout.Left) ||
957
- !YogaFloatEquals(top, shadowNode.m_layout.Top) || !YogaFloatEquals(width, shadowNode.m_layout.Width) ||
958
- !YogaFloatEquals(height, shadowNode.m_layout.Height);
959
- if (hasLayoutChanged) {
960
- React::JSValueObject layout{{"x", left}, {"y", top}, {"height", height}, {"width", width}};
961
- React::JSValueObject eventData{{"target", tag}, {"layout", std::move(layout)}};
962
- pViewManager->DispatchCoalescingEvent(tag, L"topLayout", MakeJSValueWriter(std::move(eventData)));
967
+
968
+ if (pViewManager) {
969
+ pViewManager->SetLayoutProps(shadowNode, view, left, top, width, height);
970
+ if (shadowNode.m_onLayoutRegistered) {
971
+ const auto hasLayoutChanged = !YogaFloatEquals(left, shadowNode.m_layout.Left) ||
972
+ !YogaFloatEquals(top, shadowNode.m_layout.Top) || !YogaFloatEquals(width, shadowNode.m_layout.Width) ||
973
+ !YogaFloatEquals(height, shadowNode.m_layout.Height);
974
+ if (hasLayoutChanged) {
975
+ React::JSValueObject layout{{"x", left}, {"y", top}, {"height", height}, {"width", width}};
976
+ React::JSValueObject eventData{{"target", tag}, {"layout", std::move(layout)}};
977
+ pViewManager->DispatchCoalescingEvent(tag, L"topLayout", MakeJSValueWriter(std::move(eventData)));
978
+ }
963
979
  }
980
+ shadowNode.m_layout = {left, top, width, height};
964
981
  }
965
- shadowNode.m_layout = {left, top, width, height};
966
982
  }
967
983
  }
968
984
 
@@ -501,7 +501,15 @@ class UIManagerModule : public std::enable_shared_from_this<UIManagerModule>, pu
501
501
  }
502
502
 
503
503
  void DropView(int64_t tag, bool removeChildren = true, bool zombieView = false) {
504
+ // Prevent re-entry and double deletion which can cause memory corruption
505
+ if (m_nodesBeingDropped.find(tag) != m_nodesBeingDropped.end()) {
506
+ return;
507
+ }
508
+
504
509
  if (auto node = m_nodeRegistry.findNode(tag)) {
510
+ // Mark this node as being dropped
511
+ m_nodesBeingDropped.insert(tag);
512
+
505
513
  node->onDropViewInstance();
506
514
 
507
515
  m_nativeUIManager->RemoveView(*node, removeChildren);
@@ -509,14 +517,21 @@ class UIManagerModule : public std::enable_shared_from_this<UIManagerModule>, pu
509
517
  if (zombieView)
510
518
  node->m_zombie = true;
511
519
 
512
- for (auto childTag : node->m_children)
520
+ // Make a copy of children to avoid iterator invalidation
521
+ auto children = node->m_children;
522
+ for (auto childTag : children) {
513
523
  DropView(childTag, removeChildren, zombieView);
524
+ }
514
525
 
515
526
  if (removeChildren)
516
527
  node->removeAllChildren();
517
528
 
518
- if (!zombieView)
529
+ if (!zombieView) {
519
530
  m_nodeRegistry.removeNode(tag);
531
+ }
532
+
533
+ // Remove from tracking set
534
+ m_nodesBeingDropped.erase(tag);
520
535
  }
521
536
  }
522
537
 
@@ -525,6 +540,8 @@ class UIManagerModule : public std::enable_shared_from_this<UIManagerModule>, pu
525
540
  ShadowNodeRegistry m_nodeRegistry;
526
541
  std::shared_ptr<NativeUIManager> m_nativeUIManager;
527
542
  const React::JSValueObject accessibilityEventTypes = React::JSValueObject{{"typeViewFocused", 8}};
543
+ // Track nodes being dropped to prevent double-deletion and corruption
544
+ std::unordered_set<int64_t> m_nodesBeingDropped;
528
545
  };
529
546
 
530
547
  UIManager::UIManager() : m_module(std::make_shared<UIManagerModule>()) {}
@@ -77,6 +77,12 @@ winrt::Microsoft::ReactNative::ReactPropertyId<bool> UseRuntimeSchedulerProperty
77
77
  return propId;
78
78
  }
79
79
 
80
+ winrt::Microsoft::ReactNative::ReactPropertyId<bool> UseRunOnQueueSyncProperty() noexcept {
81
+ winrt::Microsoft::ReactNative::ReactPropertyId<bool> propId{L"ReactNative.QuirkSettings", L"UseRunOnQueueSync"};
82
+
83
+ return propId;
84
+ }
85
+
80
86
  #pragma region IDL interface
81
87
 
82
88
  /*static*/ void QuirkSettings::SetMatchAndroidAndIOSStretchBehavior(
@@ -121,6 +127,12 @@ winrt::Microsoft::ReactNative::ReactPropertyId<bool> UseRuntimeSchedulerProperty
121
127
  ReactPropertyBag(settings.Properties()).Set(UseRuntimeSchedulerProperty(), value);
122
128
  }
123
129
 
130
+ /*static*/ void QuirkSettings::SetUseRunOnQueueSync(
131
+ winrt::Microsoft::ReactNative::ReactInstanceSettings settings,
132
+ bool value) noexcept {
133
+ ReactPropertyBag(settings.Properties()).Set(UseRunOnQueueSyncProperty(), value);
134
+ }
135
+
124
136
  #pragma endregion IDL interface
125
137
 
126
138
  /*static*/ bool QuirkSettings::GetMatchAndroidAndIOSStretchBehavior(ReactPropertyBag properties) noexcept {
@@ -153,4 +165,8 @@ winrt::Microsoft::ReactNative::ReactPropertyId<bool> UseRuntimeSchedulerProperty
153
165
  return properties.Get(UseRuntimeSchedulerProperty()).value_or(true);
154
166
  }
155
167
 
168
+ /*static*/ bool QuirkSettings::GetUseRunOnQueueSync(ReactPropertyBag properties) noexcept {
169
+ return properties.Get(UseRunOnQueueSyncProperty()).value_or(false);
170
+ }
171
+
156
172
  } // namespace winrt::Microsoft::ReactNative::implementation
@@ -30,6 +30,7 @@ struct QuirkSettings : QuirkSettingsT<QuirkSettings> {
30
30
  winrt::Microsoft::ReactNative::ReactPropertyBag properties) noexcept;
31
31
  static bool GetSuppressWindowFocusOnViewFocus(winrt::Microsoft::ReactNative::ReactPropertyBag properties) noexcept;
32
32
  static bool GetUseRuntimeScheduler(winrt::Microsoft::ReactNative::ReactPropertyBag properties) noexcept;
33
+ static bool GetUseRunOnQueueSync(winrt::Microsoft::ReactNative::ReactPropertyBag properties) noexcept;
33
34
 
34
35
  static bool GetEnableFabric(winrt::Microsoft::ReactNative::ReactPropertyBag properties) noexcept;
35
36
 
@@ -65,6 +66,8 @@ struct QuirkSettings : QuirkSettingsT<QuirkSettings> {
65
66
  winrt::Microsoft::ReactNative::ReactInstanceSettings settings,
66
67
  bool value) noexcept;
67
68
 
69
+ static void SetUseRunOnQueueSync(winrt::Microsoft::ReactNative::ReactInstanceSettings settings, bool value) noexcept;
70
+
68
71
  #pragma endregion Public API - part of IDL interface
69
72
  };
70
73
 
@@ -64,6 +64,11 @@ namespace Microsoft.ReactNative
64
64
  "By default `react-native-windows` will use the new RuntimeScheduler."
65
65
  "Setting this to false will revert the behavior to previous scheduling logic.")
66
66
  static void SetUseRuntimeScheduler(ReactInstanceSettings settings, Boolean value);
67
+
68
+ DOC_STRING(
69
+ "By default `react-native-windows` will not call sync JS call: runOnQueueSync."
70
+ "Setting this to true will revert the behavior to previous logic and might result in hang.")
71
+ static void SetUseRunOnQueueSync(ReactInstanceSettings settings, Boolean value);
67
72
  }
68
73
 
69
74
  } // namespace Microsoft.ReactNative
@@ -0,0 +1,54 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #pragma once
5
+
6
+ #include <winrt/Microsoft.ReactNative.h>
7
+
8
+ namespace Microsoft::ReactNative {
9
+
10
+ struct DebuggerNotifications {
11
+ static winrt::Microsoft::ReactNative::IReactPropertyName ShowDebuggerPausedOverlayEventName() noexcept {
12
+ static winrt::Microsoft::ReactNative::IReactPropertyName propertyName{
13
+ winrt::Microsoft::ReactNative::ReactPropertyBagHelper::GetName(
14
+ winrt::Microsoft::ReactNative::ReactPropertyBagHelper::GetNamespace(L"ReactNative.Debugger"),
15
+ L"ShowDebuggerPausedOverlay")};
16
+ return propertyName;
17
+ }
18
+
19
+ static void OnShowDebuggerPausedOverlay(
20
+ winrt::Microsoft::ReactNative::IReactNotificationService const &service,
21
+ std::string message,
22
+ std::function<void()> onResume) {
23
+ const winrt::Microsoft::ReactNative::ReactNonAbiValue<std::tuple<std::string, std::function<void()>>> nonAbiValue{
24
+ std::in_place, std::tie(message, onResume)};
25
+ service.SendNotification(ShowDebuggerPausedOverlayEventName(), nullptr, nonAbiValue);
26
+ }
27
+
28
+ static void OnHideDebuggerPausedOverlay(winrt::Microsoft::ReactNative::IReactNotificationService const &service) {
29
+ service.SendNotification(ShowDebuggerPausedOverlayEventName(), nullptr, nullptr);
30
+ }
31
+
32
+ static winrt::Microsoft::ReactNative::IReactNotificationSubscription SubscribeShowDebuggerPausedOverlay(
33
+ winrt::Microsoft::ReactNative::IReactNotificationService const &service,
34
+ winrt::Microsoft::ReactNative::IReactDispatcher const &dispatcher,
35
+ std::function<void(std::string, std::function<void()>)> showCallback,
36
+ std::function<void()> hideCallback) {
37
+ return service.Subscribe(
38
+ ShowDebuggerPausedOverlayEventName(),
39
+ dispatcher,
40
+ [showCallback, hideCallback](auto &&, winrt::Microsoft::ReactNative::IReactNotificationArgs const &args) {
41
+ if (args.Data()) {
42
+ const auto [message, onResume] = args.Data()
43
+ .as<winrt::Microsoft::ReactNative::ReactNonAbiValue<
44
+ std::tuple<std::string, std::function<void()>>>>()
45
+ .Value();
46
+ showCallback(message, onResume);
47
+ } else {
48
+ hideCallback();
49
+ }
50
+ });
51
+ }
52
+ };
53
+
54
+ } // namespace Microsoft::ReactNative