react-native-windows 0.80.1 → 0.81.0-preview.4

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 (679) 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/CompositionSwitcher.idl +163 -162
  357. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +3 -3
  358. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.h +3 -3
  359. package/Microsoft.ReactNative/Fabric/AbiShadowNode.cpp +2 -1
  360. package/Microsoft.ReactNative/Fabric/AbiShadowNode.h +2 -2
  361. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +3 -3
  362. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.cpp +2 -1
  363. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.h +1 -1
  364. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +104 -4
  365. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +18 -7
  366. package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.cpp +169 -0
  367. package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.h +42 -0
  368. package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +1 -1
  369. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +41 -33
  370. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +68 -1
  371. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +9 -0
  372. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +19 -0
  373. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +3 -3
  374. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +108 -24
  375. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +1 -0
  376. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +21 -17
  377. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -4
  378. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +19 -0
  379. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +76 -0
  380. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -1
  381. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
  382. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +6 -0
  383. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +62 -39
  384. package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.cpp +75 -24
  385. package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.h +4 -25
  386. package/Microsoft.ReactNative/JsiApi.cpp +1 -1
  387. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -0
  388. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +3 -0
  389. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +0 -2
  390. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -1
  391. package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -3
  392. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +27 -11
  393. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +19 -2
  394. package/Microsoft.ReactNative/QuirkSettings.cpp +16 -0
  395. package/Microsoft.ReactNative/QuirkSettings.h +3 -0
  396. package/Microsoft.ReactNative/QuirkSettings.idl +5 -0
  397. package/Microsoft.ReactNative/ReactHost/DebuggerNotifications.h +54 -0
  398. package/Microsoft.ReactNative/ReactHost/React.h +11 -4
  399. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +199 -29
  400. package/Microsoft.ReactNative/ReactHost/ReactHost.h +22 -4
  401. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +68 -52
  402. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  403. package/Microsoft.ReactNative/ReactRootView.cpp +108 -0
  404. package/Microsoft.ReactNative/ReactRootView.h +6 -0
  405. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +1 -0
  406. package/Microsoft.ReactNative/Views/DevMenu.cpp +1 -1
  407. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +36 -8
  408. package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +6 -2
  409. package/Microsoft.ReactNative/Views/ViewManager.h +0 -1
  410. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +9 -1
  411. package/Microsoft.ReactNative.Cxx/JSI/decorator.h +41 -0
  412. package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +16 -0
  413. package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +125 -0
  414. package/Microsoft.ReactNative.Cxx/JSI/jsi.h +167 -1
  415. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +2 -2
  416. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +110 -38
  417. package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +5 -5
  418. package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +0 -2
  419. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.h +0 -19
  420. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Base.h +45 -34
  421. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +1 -1
  422. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +1 -0
  423. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +36 -33
  424. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Number.h +10 -10
  425. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +14 -8
  426. package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +44 -31
  427. package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +13 -14
  428. package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +19 -4
  429. package/Microsoft.ReactNative.Cxx/node-api/node_api.h +270 -0
  430. package/Microsoft.ReactNative.Cxx/node-api/node_api_types.h +52 -0
  431. package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +13 -4
  432. package/PropertySheets/External/Microsoft.ReactNative.Cpp.Dependencies.props +10 -0
  433. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  434. package/PropertySheets/JSEngine.props +1 -1
  435. package/PropertySheets/React.Cpp.props +6 -4
  436. package/README.md +1 -1
  437. package/ReactCommon/ReactCommon.vcxproj +29 -21
  438. package/ReactCommon/ReactCommon.vcxproj.filters +36 -13
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +5 -0
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +6 -2
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +111 -7
  442. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +57 -4
  443. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +17 -1
  444. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/network/HttpUtils.cpp +175 -0
  445. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +1 -0
  446. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.cpp +69 -56
  447. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.h +35 -18
  448. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +445 -0
  449. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +92 -0
  450. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +35 -0
  451. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityProps.cpp +37 -1
  452. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +250 -80
  453. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ShadowNode.cpp +528 -0
  454. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/css/CSSTokenizer.h +1 -2
  455. package/ReactCommon/TEMP_UntilReactCommonUpdate/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +9 -12
  456. package/ReactCommon/cgmanifest.json +1 -1
  457. package/Scripts/Analyze-Crash.ps1 +87 -3
  458. package/Scripts/OfficeReact.Win32.nuspec +0 -1
  459. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -0
  460. package/Scripts/Tfs/Start-TestServers.ps1 +2 -1
  461. package/Scripts/creaternwapp.cmd +10 -6
  462. package/Scripts/rnw-dependencies.ps1 +33 -4
  463. package/Shared/CreateModules.h +0 -35
  464. package/Shared/DevServerHelper.h +13 -3
  465. package/Shared/DevSettings.h +6 -5
  466. package/Shared/DevSupportManager.cpp +79 -20
  467. package/Shared/DevSupportManager.h +7 -19
  468. package/Shared/Hermes/HermesRuntimeAgentDelegate.cpp +99 -0
  469. package/Shared/Hermes/HermesRuntimeAgentDelegate.h +81 -0
  470. package/Shared/Hermes/HermesRuntimeTargetDelegate.cpp +274 -0
  471. package/Shared/Hermes/HermesRuntimeTargetDelegate.h +77 -0
  472. package/Shared/HermesRuntimeHolder.cpp +29 -111
  473. package/Shared/HermesRuntimeHolder.h +214 -32
  474. package/Shared/IDevSupportManager.h +5 -2
  475. package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.cpp +108 -0
  476. package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.h +19 -0
  477. package/Shared/Inspector/ReactInspectorThread.h +18 -0
  478. package/Shared/JSI/RuntimeHolder.h +5 -2
  479. package/Shared/Modules/BlobModule.cpp +0 -90
  480. package/Shared/Modules/BlobModule.h +0 -40
  481. package/Shared/Modules/FileReaderModule.cpp +0 -104
  482. package/Shared/Modules/FileReaderModule.h +0 -38
  483. package/Shared/Modules/HttpModule.cpp +0 -172
  484. package/Shared/Modules/HttpModule.h +0 -47
  485. package/Shared/Modules/WebSocketModule.cpp +0 -287
  486. package/Shared/Modules/WebSocketModule.h +1 -94
  487. package/Shared/OInstance.cpp +45 -139
  488. package/Shared/OInstance.h +0 -1
  489. package/Shared/Shared.vcxitems +33 -32
  490. package/Shared/Shared.vcxitems.filters +38 -51
  491. package/Shared/TurboModuleManager.cpp +0 -1
  492. package/codegen/NativeDOMSpec.g.h +6 -0
  493. package/codegen/NativeDeviceInfoSpec.g.h +2 -0
  494. package/codegen/NativeIntersectionObserverSpec.g.h +19 -5
  495. package/codegen/NativeMutationObserverSpec.g.h +4 -4
  496. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +159 -93
  497. package/codegen/react/components/rnwcore/EventEmitters.cpp +25 -0
  498. package/codegen/react/components/rnwcore/EventEmitters.h +25 -0
  499. package/codegen/react/components/rnwcore/ModalHostView.g.h +4 -0
  500. package/codegen/react/components/rnwcore/Props.cpp +535 -24
  501. package/codegen/react/components/rnwcore/Props.h +138 -0
  502. package/codegen/react/components/rnwcore/States.h +9 -78
  503. package/codegen/react/components/rnwcore/VirtualView.g.h +226 -0
  504. package/codegen/rnwcoreJSI-generated.cpp +101 -31
  505. package/codegen/rnwcoreJSI.h +169 -88
  506. package/include/Shared/II18nModule.h +0 -1
  507. package/index.js +22 -2
  508. package/index.windows.js +131 -221
  509. package/interface.js +1 -1
  510. package/jest/MockNativeMethods.js +9 -3
  511. package/jest/RefreshControlMock.js +32 -0
  512. package/jest/assetFileTransformer.js +1 -0
  513. package/jest/local-setup.js +4 -3
  514. package/jest/mock.js +39 -0
  515. package/jest/mockComponent.js +47 -17
  516. package/jest/mockNativeComponent.js +26 -15
  517. package/jest/mocks/AccessibilityInfo.js +62 -0
  518. package/jest/mocks/ActivityIndicator.js +23 -0
  519. package/jest/mocks/AppState.js +19 -0
  520. package/jest/mocks/Clipboard.js +16 -0
  521. package/jest/mocks/Image.js +23 -0
  522. package/jest/mocks/InitializeCore.js +9 -0
  523. package/jest/mocks/Linking.js +28 -0
  524. package/jest/mocks/Modal.js +33 -0
  525. package/jest/mocks/NativeComponentRegistry.js +30 -0
  526. package/jest/mocks/NativeModules.js +239 -0
  527. package/jest/mocks/RefreshControl.js +31 -0
  528. package/jest/mocks/RendererProxy.js +45 -0
  529. package/jest/mocks/ScrollView.js +58 -0
  530. package/jest/mocks/Text.js +27 -0
  531. package/jest/mocks/TextInput.js +32 -0
  532. package/jest/mocks/UIManager.js +60 -0
  533. package/jest/mocks/Vibration.js +16 -0
  534. package/jest/mocks/View.js +27 -0
  535. package/jest/mocks/ViewNativeComponent.js +23 -0
  536. package/jest/mocks/requireNativeComponent.js +22 -0
  537. package/{Libraries/Utilities/infoLog.js → jest/mocks/useColorScheme.js} +7 -9
  538. package/jest/react-native-env.js +1 -0
  539. package/jest/renderer.js +1 -2
  540. package/jest/resolver.js +1 -0
  541. package/jest/setup.js +64 -449
  542. package/package.json +24 -24
  543. package/src/private/animated/NativeAnimatedHelper.js +8 -1
  544. package/src/private/animated/createAnimatedPropsHook.js +14 -4
  545. package/src/private/animated/createAnimatedPropsMemoHook.js +2 -3
  546. package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
  547. package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
  548. package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
  549. package/src/private/components/virtualview/VirtualView.js +145 -0
  550. package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
  551. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +1 -1
  552. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +1 -1
  553. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +1 -1
  554. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  555. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +1 -1
  556. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +1 -1
  557. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -1
  558. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +1 -1
  559. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +1 -1
  560. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  561. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +1 -1
  562. package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +1 -1
  563. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  564. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +1 -1
  565. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
  566. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
  567. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
  568. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.windows.js +8 -9
  569. package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
  570. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
  571. package/src/private/featureflags/ReactNativeFeatureFlags.js +88 -8
  572. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -0
  573. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +15 -3
  574. package/src/private/renderer/errorhandling/ErrorHandlers.js +1 -1
  575. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
  576. package/src/private/setup/setUpPerformanceObserver.js +7 -0
  577. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +8 -5
  578. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +4 -4
  579. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +4 -4
  580. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +4 -4
  581. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +10 -7
  582. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +5 -4
  583. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +7 -4
  584. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +10 -7
  585. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +9 -6
  586. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +15 -6
  587. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +9 -6
  588. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +5 -5
  589. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +4 -4
  590. package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +1 -0
  591. package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
  592. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
  593. package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +1 -1
  594. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +9 -6
  595. package/src/private/styles/composeStyles.js +5 -12
  596. package/src/private/types/HostInstance.js +1 -1
  597. package/src/private/webapis/dom/events/Event.js +3 -0
  598. package/src/private/webapis/dom/events/EventTarget.js +3 -0
  599. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +1 -1
  600. package/src/private/webapis/dom/nodes/ReactNativeElement.js +7 -24
  601. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +1 -1
  602. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  603. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +4 -2
  604. package/src/private/webapis/dom/nodes/ReadOnlyText.js +1 -1
  605. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +1 -1
  606. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  607. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  608. package/src/private/webapis/dom/nodes/internals/Traversal.js +1 -1
  609. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
  610. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -1
  611. package/src/private/webapis/dom/oldstylecollections/NodeList.js +4 -1
  612. package/src/private/webapis/errors/DOMException.js +166 -0
  613. package/src/private/webapis/geometry/DOMRect.js +5 -0
  614. package/src/private/webapis/geometry/DOMRectList.js +4 -1
  615. package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
  616. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +4 -2
  617. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +15 -7
  618. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
  619. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +83 -18
  620. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +12 -0
  621. package/src/private/webapis/mutationobserver/MutationObserver.js +13 -38
  622. package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
  623. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +7 -29
  624. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +1 -4
  625. package/src/private/webapis/performance/EventTiming.js +1 -1
  626. package/src/private/webapis/performance/LongTasks.js +1 -1
  627. package/src/private/webapis/performance/MemoryInfo.js +4 -1
  628. package/src/private/webapis/performance/Performance.js +20 -9
  629. package/src/private/webapis/performance/PerformanceEntry.js +5 -1
  630. package/src/private/webapis/performance/PerformanceObserver.js +32 -28
  631. package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
  632. package/src/private/webapis/performance/ResourceTiming.js +108 -0
  633. package/src/private/webapis/performance/UserTiming.js +1 -1
  634. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +50 -33
  635. package/src/private/webapis/performance/internals/Utilities.js +1 -1
  636. package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
  637. package/src/private/webapis/structuredClone/structuredClone.js +233 -0
  638. package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
  639. package/src/private/webapis/webidl/PlatformObjects.js +59 -0
  640. package/template/metro.config.js +2 -4
  641. package/templates/cpp-app/metro.config.js +2 -4
  642. package/templates/cpp-lib/example/metro.config.js +2 -3
  643. package/templates/cpp-lib/template.config.js +24 -0
  644. package/templates/cpp-lib/windows/MyLib/MyLib.h +20 -1
  645. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +0 -1
  646. package/types/modules/Devtools.d.ts +23 -9
  647. package/Libraries/BugReporting/BugReporting.js +0 -140
  648. package/Libraries/BugReporting/NativeBugReporting.js +0 -13
  649. package/Libraries/BugReporting/dumpReactTree.js +0 -151
  650. package/Libraries/BugReporting/getReactData.js +0 -187
  651. package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -88
  652. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +0 -78
  653. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +0 -196
  654. package/ReactCommon/TEMP_UntilReactCommonUpdate/jserrorhandler/JsErrorHandler.cpp +0 -429
  655. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.cpp +0 -45
  656. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.h +0 -91
  657. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/CullingContext.cpp +0 -49
  658. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.cpp +0 -191
  659. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +0 -670
  660. package/Shared/InspectorPackagerConnection.cpp +0 -232
  661. package/Shared/InspectorPackagerConnection.h +0 -61
  662. package/Shared/Modules/ExceptionsManagerModule.cpp +0 -209
  663. package/Shared/Modules/ExceptionsManagerModule.h +0 -32
  664. package/Shared/Modules/I18nModule.cpp +0 -36
  665. package/Shared/Modules/I18nModule.h +0 -28
  666. package/Shared/Modules/NetworkingModule.cpp +0 -432
  667. package/Shared/Modules/NetworkingModule.h +0 -34
  668. package/Shared/Modules/PlatformConstantsModule.cpp +0 -60
  669. package/Shared/Modules/PlatformConstantsModule.h +0 -23
  670. package/Shared/Modules/SourceCodeModule.cpp +0 -35
  671. package/Shared/Modules/SourceCodeModule.h +0 -27
  672. package/Shared/Modules/StatusBarManagerModule.cpp +0 -25
  673. package/Shared/Modules/StatusBarManagerModule.h +0 -19
  674. package/codegen/NativeBugReportingSpec.g.h +0 -41
  675. package/jest/mockModal.js +0 -32
  676. package/jest/mockScrollView.js +0 -35
  677. package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +0 -20
  678. /package/Shared/{HermesSamplingProfiler.cpp → Hermes/HermesSamplingProfiler.cpp} +0 -0
  679. /package/Shared/{HermesSamplingProfiler.h → Hermes/HermesSamplingProfiler.h} +0 -0
@@ -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
@@ -33,6 +33,10 @@
33
33
  #include <Fabric/Composition/UriImageManager.h>
34
34
  #endif
35
35
 
36
+ namespace facebook::react::jsinspector_modern {
37
+ class HostTarget;
38
+ } // namespace facebook::react::jsinspector_modern
39
+
36
40
  namespace Mso::React {
37
41
 
38
42
  // Forward declarations
@@ -216,9 +220,9 @@ struct ReactOptions {
216
220
  //! Base path of the SDX. The absolute path of the SDX can be constructed from this and the Identity.
217
221
  std::string BundleRootPath;
218
222
 
219
- //! Javascript Bundles
220
- //! This List includes both Platform and User Javascript Bundles
221
- //! Bundles are loaded into Javascript engine in the same order
223
+ //! JavaScript Bundles
224
+ //! This List includes both Platform and User JavaScript Bundles
225
+ //! Bundles are loaded into JavaScript engine in the same order
222
226
  //! as they are specified in this list.
223
227
  std::vector<Mso::CntPtr<IJSBundle>> JSBundles;
224
228
 
@@ -237,7 +241,7 @@ struct ReactOptions {
237
241
  //! during development to report JavaScript errors to users
238
242
  std::shared_ptr<Mso::React::IRedBoxHandler> RedBoxHandler;
239
243
 
240
- //! Flag to suggest sdx owner's preference on enabling Bytecode caching in Javascript Engine for corresponding SDX.
244
+ //! Flag to suggest sdx owner's preference on enabling Bytecode caching in JavaScript Engine for corresponding SDX.
241
245
  bool EnableBytecode{true};
242
246
 
243
247
  //! Flag controlling whether the JavaScript engine uses JIT compilation.
@@ -347,6 +351,9 @@ struct ReactOptions {
347
351
  //! The callback is called when IReactInstance is destroyed and must not be used anymore.
348
352
  //! It is called from the native queue.
349
353
  OnReactInstanceDestroyedCallback OnInstanceDestroyed;
354
+
355
+ //! The HostTarget instance for modern inspector integration.
356
+ facebook::react::jsinspector_modern::HostTarget *InspectorHostTarget;
350
357
  };
351
358
 
352
359
  //! IReactHost manages a ReactNative instance.