react-native-windows 0.80.1 → 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 (672) 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/TextInput/WindowsTextInputComponentDescriptor.h +3 -3
  370. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +6 -6
  371. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +21 -17
  372. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -4
  373. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +19 -0
  374. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +76 -0
  375. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -1
  376. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
  377. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +6 -0
  378. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +41 -37
  379. package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.cpp +75 -24
  380. package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.h +4 -25
  381. package/Microsoft.ReactNative/JsiApi.cpp +1 -1
  382. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -0
  383. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +3 -0
  384. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +0 -2
  385. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -1
  386. package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -3
  387. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +27 -11
  388. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +19 -2
  389. package/Microsoft.ReactNative/QuirkSettings.cpp +16 -0
  390. package/Microsoft.ReactNative/QuirkSettings.h +3 -0
  391. package/Microsoft.ReactNative/QuirkSettings.idl +5 -0
  392. package/Microsoft.ReactNative/ReactHost/DebuggerNotifications.h +54 -0
  393. package/Microsoft.ReactNative/ReactHost/React.h +11 -4
  394. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +166 -29
  395. package/Microsoft.ReactNative/ReactHost/ReactHost.h +22 -4
  396. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +68 -52
  397. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  398. package/Microsoft.ReactNative/ReactRootView.cpp +108 -0
  399. package/Microsoft.ReactNative/ReactRootView.h +6 -0
  400. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +1 -0
  401. package/Microsoft.ReactNative/Views/DevMenu.cpp +1 -1
  402. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +36 -8
  403. package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +6 -2
  404. package/Microsoft.ReactNative/Views/ViewManager.h +0 -1
  405. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +9 -1
  406. package/Microsoft.ReactNative.Cxx/JSI/decorator.h +41 -0
  407. package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +16 -0
  408. package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +125 -0
  409. package/Microsoft.ReactNative.Cxx/JSI/jsi.h +167 -1
  410. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +2 -2
  411. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +110 -38
  412. package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +5 -5
  413. package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +0 -2
  414. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.h +0 -19
  415. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Base.h +45 -34
  416. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +1 -1
  417. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +1 -0
  418. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +36 -33
  419. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Number.h +10 -10
  420. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +14 -8
  421. package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +44 -31
  422. package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +13 -14
  423. package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +19 -4
  424. package/Microsoft.ReactNative.Cxx/node-api/node_api.h +270 -0
  425. package/Microsoft.ReactNative.Cxx/node-api/node_api_types.h +52 -0
  426. package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +13 -4
  427. package/PropertySheets/External/Microsoft.ReactNative.Cpp.Dependencies.props +10 -0
  428. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  429. package/PropertySheets/JSEngine.props +1 -1
  430. package/PropertySheets/React.Cpp.props +6 -4
  431. package/README.md +1 -1
  432. package/ReactCommon/ReactCommon.vcxproj +29 -21
  433. package/ReactCommon/ReactCommon.vcxproj.filters +36 -13
  434. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +5 -0
  435. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +6 -2
  436. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +111 -7
  437. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +57 -4
  438. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +17 -1
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/network/HttpUtils.cpp +175 -0
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +1 -0
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.cpp +69 -56
  442. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.h +35 -18
  443. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +445 -0
  444. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +92 -0
  445. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +35 -0
  446. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityProps.cpp +37 -1
  447. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +250 -80
  448. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ShadowNode.cpp +528 -0
  449. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/css/CSSTokenizer.h +1 -2
  450. package/ReactCommon/TEMP_UntilReactCommonUpdate/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +9 -12
  451. package/ReactCommon/cgmanifest.json +1 -1
  452. package/Scripts/Analyze-Crash.ps1 +87 -3
  453. package/Scripts/OfficeReact.Win32.nuspec +0 -1
  454. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -0
  455. package/Scripts/Tfs/Start-TestServers.ps1 +2 -1
  456. package/Scripts/creaternwapp.cmd +10 -6
  457. package/Scripts/rnw-dependencies.ps1 +33 -4
  458. package/Shared/CreateModules.h +0 -35
  459. package/Shared/DevServerHelper.h +13 -3
  460. package/Shared/DevSettings.h +6 -5
  461. package/Shared/DevSupportManager.cpp +79 -20
  462. package/Shared/DevSupportManager.h +7 -19
  463. package/Shared/Hermes/HermesRuntimeAgentDelegate.cpp +99 -0
  464. package/Shared/Hermes/HermesRuntimeAgentDelegate.h +81 -0
  465. package/Shared/Hermes/HermesRuntimeTargetDelegate.cpp +274 -0
  466. package/Shared/Hermes/HermesRuntimeTargetDelegate.h +77 -0
  467. package/Shared/HermesRuntimeHolder.cpp +29 -111
  468. package/Shared/HermesRuntimeHolder.h +214 -32
  469. package/Shared/IDevSupportManager.h +5 -2
  470. package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.cpp +108 -0
  471. package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.h +19 -0
  472. package/Shared/Inspector/ReactInspectorThread.h +18 -0
  473. package/Shared/JSI/RuntimeHolder.h +5 -2
  474. package/Shared/Modules/BlobModule.cpp +0 -90
  475. package/Shared/Modules/BlobModule.h +0 -40
  476. package/Shared/Modules/FileReaderModule.cpp +0 -104
  477. package/Shared/Modules/FileReaderModule.h +0 -38
  478. package/Shared/Modules/HttpModule.cpp +0 -172
  479. package/Shared/Modules/HttpModule.h +0 -47
  480. package/Shared/Modules/WebSocketModule.cpp +0 -287
  481. package/Shared/Modules/WebSocketModule.h +1 -94
  482. package/Shared/OInstance.cpp +45 -139
  483. package/Shared/OInstance.h +0 -1
  484. package/Shared/Shared.vcxitems +33 -32
  485. package/Shared/Shared.vcxitems.filters +38 -51
  486. package/Shared/TurboModuleManager.cpp +0 -1
  487. package/codegen/NativeDOMSpec.g.h +6 -0
  488. package/codegen/NativeDeviceInfoSpec.g.h +2 -0
  489. package/codegen/NativeIntersectionObserverSpec.g.h +19 -5
  490. package/codegen/NativeMutationObserverSpec.g.h +4 -4
  491. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +159 -93
  492. package/codegen/react/components/rnwcore/EventEmitters.cpp +25 -0
  493. package/codegen/react/components/rnwcore/EventEmitters.h +25 -0
  494. package/codegen/react/components/rnwcore/ModalHostView.g.h +4 -0
  495. package/codegen/react/components/rnwcore/Props.cpp +535 -24
  496. package/codegen/react/components/rnwcore/Props.h +138 -0
  497. package/codegen/react/components/rnwcore/States.h +9 -78
  498. package/codegen/react/components/rnwcore/VirtualView.g.h +226 -0
  499. package/codegen/rnwcoreJSI-generated.cpp +101 -31
  500. package/codegen/rnwcoreJSI.h +169 -88
  501. package/include/Shared/II18nModule.h +0 -1
  502. package/index.js +22 -2
  503. package/index.windows.js +131 -221
  504. package/interface.js +1 -1
  505. package/jest/MockNativeMethods.js +9 -3
  506. package/jest/RefreshControlMock.js +32 -0
  507. package/jest/assetFileTransformer.js +1 -0
  508. package/jest/local-setup.js +4 -3
  509. package/jest/mock.js +39 -0
  510. package/jest/mockComponent.js +47 -17
  511. package/jest/mockNativeComponent.js +26 -15
  512. package/jest/mocks/AccessibilityInfo.js +62 -0
  513. package/jest/mocks/ActivityIndicator.js +23 -0
  514. package/jest/mocks/AppState.js +19 -0
  515. package/jest/mocks/Clipboard.js +16 -0
  516. package/jest/mocks/Image.js +23 -0
  517. package/jest/mocks/InitializeCore.js +9 -0
  518. package/jest/mocks/Linking.js +28 -0
  519. package/jest/mocks/Modal.js +33 -0
  520. package/jest/mocks/NativeComponentRegistry.js +30 -0
  521. package/jest/mocks/NativeModules.js +239 -0
  522. package/jest/mocks/RefreshControl.js +31 -0
  523. package/jest/mocks/RendererProxy.js +45 -0
  524. package/jest/mocks/ScrollView.js +58 -0
  525. package/jest/mocks/Text.js +27 -0
  526. package/jest/mocks/TextInput.js +32 -0
  527. package/jest/mocks/UIManager.js +60 -0
  528. package/jest/mocks/Vibration.js +16 -0
  529. package/jest/mocks/View.js +27 -0
  530. package/jest/mocks/ViewNativeComponent.js +23 -0
  531. package/jest/mocks/requireNativeComponent.js +22 -0
  532. package/{Libraries/Utilities/infoLog.js → jest/mocks/useColorScheme.js} +7 -9
  533. package/jest/react-native-env.js +1 -0
  534. package/jest/renderer.js +1 -2
  535. package/jest/resolver.js +1 -0
  536. package/jest/setup.js +64 -449
  537. package/package.json +24 -24
  538. package/src/private/animated/NativeAnimatedHelper.js +8 -1
  539. package/src/private/animated/createAnimatedPropsHook.js +14 -4
  540. package/src/private/animated/createAnimatedPropsMemoHook.js +2 -3
  541. package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
  542. package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
  543. package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
  544. package/src/private/components/virtualview/VirtualView.js +145 -0
  545. package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
  546. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +1 -1
  547. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +1 -1
  548. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +1 -1
  549. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  550. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +1 -1
  551. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +1 -1
  552. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -1
  553. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +1 -1
  554. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +1 -1
  555. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  556. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +1 -1
  557. package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +1 -1
  558. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  559. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +1 -1
  560. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
  561. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
  562. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
  563. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.windows.js +8 -9
  564. package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
  565. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
  566. package/src/private/featureflags/ReactNativeFeatureFlags.js +88 -8
  567. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -0
  568. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +15 -3
  569. package/src/private/renderer/errorhandling/ErrorHandlers.js +1 -1
  570. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
  571. package/src/private/setup/setUpPerformanceObserver.js +7 -0
  572. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +8 -5
  573. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +4 -4
  574. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +4 -4
  575. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +4 -4
  576. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +10 -7
  577. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +5 -4
  578. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +7 -4
  579. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +10 -7
  580. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +9 -6
  581. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +15 -6
  582. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +9 -6
  583. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +5 -5
  584. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +4 -4
  585. package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +1 -0
  586. package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
  587. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
  588. package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +1 -1
  589. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +9 -6
  590. package/src/private/styles/composeStyles.js +5 -12
  591. package/src/private/types/HostInstance.js +1 -1
  592. package/src/private/webapis/dom/events/Event.js +3 -0
  593. package/src/private/webapis/dom/events/EventTarget.js +3 -0
  594. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +1 -1
  595. package/src/private/webapis/dom/nodes/ReactNativeElement.js +7 -24
  596. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +1 -1
  597. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  598. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +4 -2
  599. package/src/private/webapis/dom/nodes/ReadOnlyText.js +1 -1
  600. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +1 -1
  601. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  602. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  603. package/src/private/webapis/dom/nodes/internals/Traversal.js +1 -1
  604. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
  605. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -1
  606. package/src/private/webapis/dom/oldstylecollections/NodeList.js +4 -1
  607. package/src/private/webapis/errors/DOMException.js +166 -0
  608. package/src/private/webapis/geometry/DOMRect.js +5 -0
  609. package/src/private/webapis/geometry/DOMRectList.js +4 -1
  610. package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
  611. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +4 -2
  612. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +15 -7
  613. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
  614. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +83 -18
  615. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +12 -0
  616. package/src/private/webapis/mutationobserver/MutationObserver.js +13 -38
  617. package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
  618. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +7 -29
  619. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +1 -4
  620. package/src/private/webapis/performance/EventTiming.js +1 -1
  621. package/src/private/webapis/performance/LongTasks.js +1 -1
  622. package/src/private/webapis/performance/MemoryInfo.js +4 -1
  623. package/src/private/webapis/performance/Performance.js +20 -9
  624. package/src/private/webapis/performance/PerformanceEntry.js +5 -1
  625. package/src/private/webapis/performance/PerformanceObserver.js +32 -28
  626. package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
  627. package/src/private/webapis/performance/ResourceTiming.js +108 -0
  628. package/src/private/webapis/performance/UserTiming.js +1 -1
  629. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +50 -33
  630. package/src/private/webapis/performance/internals/Utilities.js +1 -1
  631. package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
  632. package/src/private/webapis/structuredClone/structuredClone.js +233 -0
  633. package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
  634. package/src/private/webapis/webidl/PlatformObjects.js +59 -0
  635. package/templates/cpp-lib/example/metro.config.js +1 -1
  636. package/templates/cpp-lib/template.config.js +24 -0
  637. package/templates/cpp-lib/windows/MyLib/MyLib.h +20 -1
  638. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +0 -1
  639. package/types/modules/Devtools.d.ts +23 -9
  640. package/Libraries/BugReporting/BugReporting.js +0 -140
  641. package/Libraries/BugReporting/NativeBugReporting.js +0 -13
  642. package/Libraries/BugReporting/dumpReactTree.js +0 -151
  643. package/Libraries/BugReporting/getReactData.js +0 -187
  644. package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -88
  645. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +0 -78
  646. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +0 -196
  647. package/ReactCommon/TEMP_UntilReactCommonUpdate/jserrorhandler/JsErrorHandler.cpp +0 -429
  648. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.cpp +0 -45
  649. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.h +0 -91
  650. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/CullingContext.cpp +0 -49
  651. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.cpp +0 -191
  652. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +0 -670
  653. package/Shared/InspectorPackagerConnection.cpp +0 -232
  654. package/Shared/InspectorPackagerConnection.h +0 -61
  655. package/Shared/Modules/ExceptionsManagerModule.cpp +0 -209
  656. package/Shared/Modules/ExceptionsManagerModule.h +0 -32
  657. package/Shared/Modules/I18nModule.cpp +0 -36
  658. package/Shared/Modules/I18nModule.h +0 -28
  659. package/Shared/Modules/NetworkingModule.cpp +0 -432
  660. package/Shared/Modules/NetworkingModule.h +0 -34
  661. package/Shared/Modules/PlatformConstantsModule.cpp +0 -60
  662. package/Shared/Modules/PlatformConstantsModule.h +0 -23
  663. package/Shared/Modules/SourceCodeModule.cpp +0 -35
  664. package/Shared/Modules/SourceCodeModule.h +0 -27
  665. package/Shared/Modules/StatusBarManagerModule.cpp +0 -25
  666. package/Shared/Modules/StatusBarManagerModule.h +0 -19
  667. package/codegen/NativeBugReportingSpec.g.h +0 -41
  668. package/jest/mockModal.js +0 -32
  669. package/jest/mockScrollView.js +0 -35
  670. package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +0 -20
  671. /package/Shared/{HermesSamplingProfiler.cpp → Hermes/HermesSamplingProfiler.cpp} +0 -0
  672. /package/Shared/{HermesSamplingProfiler.h → Hermes/HermesSamplingProfiler.h} +0 -0
@@ -0,0 +1,169 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ #include "pch.h"
4
+ #include "DebuggerUIIsland.h"
5
+
6
+ #include <AutoDraw.h>
7
+ #include <react/renderer/attributedstring/AttributedStringBox.h>
8
+ #include <react/renderer/textlayoutmanager/WindowsTextLayoutManager.h>
9
+ #include <winrt/Microsoft.UI.Composition.h>
10
+ #include <winrt/Microsoft.UI.Content.h>
11
+ #include <winrt/Microsoft.UI.Input.h>
12
+ #include "CompositionContextHelper.h"
13
+ #include "TextDrawing.h"
14
+
15
+ namespace winrt::Microsoft::ReactNative::implementation {
16
+
17
+ constexpr float debuggerUIFontSize = 10.0f;
18
+ constexpr float debuggerTextMargin = 4.0f;
19
+
20
+ DebuggerUIIsland::DebuggerUIIsland(
21
+ const winrt::Microsoft::UI::Composition::Compositor &compositor,
22
+ winrt::Microsoft::ReactNative::Composition::Experimental::ICompositionContext &compContext,
23
+ winrt::Microsoft::ReactNative::Composition::Theme theme) noexcept
24
+ : m_compositor(compositor), m_compContext(compContext), m_theme(theme) {
25
+ m_backgroundVisual = m_compositor.CreateSpriteVisual();
26
+ m_backgroundVisual.RelativeSizeAdjustment({1.0f, 1.0f});
27
+
28
+ auto backgroundBrush = m_compositor.CreateColorBrush({100, 0, 0, 0});
29
+ m_backgroundVisual.Brush(backgroundBrush);
30
+
31
+ m_TextVisual = m_compositor.CreateSpriteVisual();
32
+ m_TextVisual.IsPixelSnappingEnabled(true);
33
+
34
+ m_backgroundVisual.Children().InsertAtTop(m_TextVisual);
35
+ }
36
+
37
+ DebuggerUIIsland::~DebuggerUIIsland() noexcept {
38
+ m_island.StateChanged(m_islandStateChangedToken);
39
+ }
40
+
41
+ void DebuggerUIIsland::Redraw() noexcept {
42
+ if (!m_island)
43
+ return;
44
+
45
+ if (m_island.ActualSize().x == 0 || m_island.ActualSize().y == 0)
46
+ return;
47
+
48
+ auto scaleFactor = m_island.Environment().DisplayScale();
49
+
50
+ auto attributedString = facebook::react::AttributedString{};
51
+ auto fragment = facebook::react::AttributedString::Fragment{};
52
+ fragment.string = m_message;
53
+ fragment.textAttributes.fontSize = debuggerUIFontSize;
54
+ attributedString.appendFragment(std::move(fragment));
55
+
56
+ // Resume Icon
57
+ auto iconFragment = facebook::react::AttributedString::Fragment{};
58
+ iconFragment.string = " \uF08F";
59
+ iconFragment.textAttributes.fontFamily = "Segoe Fluent Icons";
60
+ iconFragment.textAttributes.fontSize = debuggerUIFontSize;
61
+ attributedString.appendFragment(std::move(iconFragment));
62
+
63
+ auto attributedStringBox = facebook::react::AttributedStringBox{attributedString};
64
+
65
+ facebook::react::LayoutConstraints constraints;
66
+ constraints.maximumSize.width = std::max(0.0f, m_island.ActualSize().x - debuggerTextMargin * 2 * scaleFactor);
67
+ constraints.maximumSize.height = std::max(0.0f, m_island.ActualSize().y - debuggerTextMargin * 2 * scaleFactor);
68
+
69
+ auto textAttributes = facebook::react::TextAttributes{};
70
+ textAttributes.foregroundColor = facebook::react::blackColor();
71
+
72
+ winrt::com_ptr<::IDWriteTextLayout> textLayout;
73
+ facebook::react::WindowsTextLayoutManager::GetTextLayout(attributedStringBox, {}, constraints, textLayout);
74
+
75
+ DWRITE_TEXT_METRICS tm;
76
+ textLayout->GetMetrics(&tm);
77
+
78
+ winrt::Windows::Foundation::Size surfaceSize = {
79
+ std::ceilf(std::min(constraints.maximumSize.width, tm.width + debuggerTextMargin * 2 * scaleFactor)),
80
+ std::ceilf(std::min(constraints.maximumSize.height, tm.height + debuggerTextMargin * 2 * scaleFactor))};
81
+ auto drawingSurface = m_compContext.CreateDrawingSurfaceBrush(
82
+ surfaceSize,
83
+ winrt::Windows::Graphics::DirectX::DirectXPixelFormat::B8G8R8A8UIntNormalized,
84
+ winrt::Windows::Graphics::DirectX::DirectXAlphaMode::Premultiplied);
85
+
86
+ POINT offset;
87
+ {
88
+ ::Microsoft::ReactNative::Composition::AutoDrawDrawingSurface autoDraw(drawingSurface, scaleFactor, &offset);
89
+ if (auto d2dDeviceContext = autoDraw.GetRenderTarget()) {
90
+ d2dDeviceContext->Clear(D2D1::ColorF{1.0f, 1.0f, 0.76f, 1.0f});
91
+
92
+ auto theme = winrt::get_self<winrt::Microsoft::ReactNative::Composition::implementation::Theme>(m_theme);
93
+
94
+ Composition::RenderText(
95
+ *d2dDeviceContext,
96
+ *textLayout,
97
+ attributedStringBox.getValue(),
98
+ textAttributes,
99
+ {static_cast<float>(offset.x + std::floorf(debuggerTextMargin * scaleFactor)),
100
+ static_cast<float>(offset.y + std::floorf(debuggerTextMargin * scaleFactor))},
101
+ scaleFactor,
102
+ *theme);
103
+ }
104
+
105
+ drawingSurface.HorizontalAlignmentRatio(0.0f);
106
+ drawingSurface.Stretch(winrt::Microsoft::ReactNative::Composition::Experimental::CompositionStretch::None);
107
+
108
+ m_TextVisual.Brush(winrt::Microsoft::ReactNative::Composition::Experimental::implementation::
109
+ MicrosoftCompositionContextHelper::InnerBrush(drawingSurface));
110
+ m_TextVisual.Size({surfaceSize.Width, surfaceSize.Height});
111
+
112
+ m_debuggerHitRect = {
113
+ m_island.ActualSize().x / 2 - tm.width / 2 + debuggerTextMargin * scaleFactor,
114
+ debuggerTextMargin * scaleFactor,
115
+ surfaceSize.Width,
116
+ surfaceSize.Height};
117
+
118
+ m_TextVisual.Offset({m_debuggerHitRect.X, m_debuggerHitRect.Y, 0.0f});
119
+ }
120
+ }
121
+
122
+ void DebuggerUIIsland::Message(std::string &&value) noexcept {
123
+ m_message = value;
124
+ Redraw();
125
+ }
126
+
127
+ winrt::Microsoft::UI::Content::ContentIsland DebuggerUIIsland::Island() noexcept {
128
+ if (!m_island) {
129
+ m_island = winrt::Microsoft::UI::Content::ContentIsland::Create(m_backgroundVisual);
130
+
131
+ m_islandStateChangedToken =
132
+ m_island.StateChanged([weakThis = weak_from_this()](
133
+ winrt::Microsoft::UI::Content::ContentIsland const &island,
134
+ winrt::Microsoft::UI::Content::ContentIslandStateChangedEventArgs const &args) {
135
+ if (auto pThis = weakThis.lock()) {
136
+ if (args.DidRasterizationScaleChange() || args.DidActualSizeChange()) {
137
+ pThis->Redraw();
138
+ }
139
+ }
140
+ });
141
+
142
+ auto pointerSource = winrt::Microsoft::UI::Input::InputPointerSource::GetForIsland(m_island);
143
+
144
+ m_islandPointerUpToken =
145
+ pointerSource.PointerReleased([weakThis = weak_from_this()](
146
+ winrt::Microsoft::UI::Input::InputPointerSource const &,
147
+ winrt::Microsoft::UI::Input::PointerEventArgs const &args) {
148
+ if (auto pThis = weakThis.lock()) {
149
+ auto position = args.CurrentPoint().Position();
150
+ if (position.X >= pThis->m_debuggerHitRect.X && position.Y >= pThis->m_debuggerHitRect.Y &&
151
+ position.X <= pThis->m_debuggerHitRect.X + pThis->m_debuggerHitRect.Width &&
152
+ position.Y <= pThis->m_debuggerHitRect.Y + pThis->m_debuggerHitRect.Height) {
153
+ pThis->m_resumedEvent(nullptr, nullptr);
154
+ }
155
+ }
156
+ });
157
+ }
158
+ return m_island;
159
+ }
160
+
161
+ winrt::event_token DebuggerUIIsland::Resumed(
162
+ winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const &handler) noexcept {
163
+ return m_resumedEvent.add(handler);
164
+ }
165
+ void DebuggerUIIsland::Resumed(winrt::event_token const &token) noexcept {
166
+ m_resumedEvent.remove(token);
167
+ }
168
+
169
+ } // namespace winrt::Microsoft::ReactNative::implementation
@@ -0,0 +1,42 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ #pragma once
4
+
5
+ #include <winrt/Microsoft.ReactNative.Composition.Experimental.h>
6
+ #include <winrt/Microsoft.ReactNative.Composition.h>
7
+
8
+ namespace winrt::Microsoft::ReactNative::implementation {
9
+
10
+ struct DebuggerUIIsland : std::enable_shared_from_this<DebuggerUIIsland> {
11
+ DebuggerUIIsland(
12
+ const winrt::Microsoft::UI::Composition::Compositor &compositor,
13
+ winrt::Microsoft::ReactNative::Composition::Experimental::ICompositionContext &compContext,
14
+ winrt::Microsoft::ReactNative::Composition::Theme theme) noexcept;
15
+ ~DebuggerUIIsland() noexcept;
16
+ winrt::Microsoft::UI::Content::ContentIsland Island() noexcept;
17
+
18
+ void Message(std::string &&value) noexcept;
19
+
20
+ winrt::event_token Resumed(
21
+ winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const &handler) noexcept;
22
+ void Resumed(winrt::event_token const &token) noexcept;
23
+
24
+ private:
25
+ void Redraw() noexcept;
26
+
27
+ winrt::event_token m_islandStateChangedToken;
28
+ winrt::event_token m_islandPointerUpToken;
29
+
30
+ winrt::Microsoft::UI::Composition::SpriteVisual m_backgroundVisual{nullptr};
31
+ winrt::Microsoft::UI::Composition::SpriteVisual m_TextVisual{nullptr};
32
+ winrt::Windows::Foundation::Rect m_debuggerHitRect{0, 0, 0, 0};
33
+ winrt::Microsoft::ReactNative::Composition::Theme m_theme{nullptr};
34
+ std::string m_message;
35
+
36
+ winrt::event<winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable>> m_resumedEvent;
37
+ winrt::Microsoft::UI::Composition::Compositor m_compositor{nullptr};
38
+ winrt::Microsoft::ReactNative::Composition::Experimental::ICompositionContext m_compContext{nullptr};
39
+ winrt::Microsoft::UI::Content::ContentIsland m_island{nullptr};
40
+ };
41
+
42
+ } // namespace winrt::Microsoft::ReactNative::implementation
@@ -103,9 +103,9 @@ void DebuggingOverlayComponentView::HandleCommand(
103
103
  auto rootVisual = root->OuterVisual();
104
104
 
105
105
  while (m_activeOverlays != 0) {
106
+ --m_activeOverlays;
106
107
  auto visual = rootVisual.GetAt(root->overlayIndex() + m_activeOverlays);
107
108
  rootVisual.Remove(visual);
108
- --m_activeOverlays;
109
109
  }
110
110
  }
111
111
  return;
@@ -284,6 +284,7 @@ void ReactNativeIsland::UpdateRootVisualSize() noexcept {
284
284
  m_rootVisual.Size({m_size.Width * m_scaleFactor, m_size.Height * m_scaleFactor});
285
285
 
286
286
  UpdateLoadingVisualSize();
287
+ UpdateDebuggerVisualSize();
287
288
  }
288
289
 
289
290
  void ReactNativeIsland::UpdateLoadingVisualSize() noexcept {
@@ -300,6 +301,13 @@ void ReactNativeIsland::UpdateLoadingVisualSize() noexcept {
300
301
  }
301
302
  }
302
303
 
304
+ void ReactNativeIsland::UpdateDebuggerVisualSize() noexcept {
305
+ if (!m_debuggerChildSiteLink)
306
+ return;
307
+
308
+ m_debuggerChildSiteLink.ActualSize(m_size);
309
+ }
310
+
303
311
  float ReactNativeIsland::ScaleFactor() noexcept {
304
312
  return m_scaleFactor;
305
313
  }
@@ -484,6 +492,20 @@ void ReactNativeIsland::InitRootView(
484
492
  m_CompositionEventHandler = std::make_shared<::Microsoft::ReactNative::CompositionEventHandler>(m_context, *this);
485
493
  m_CompositionEventHandler->Initialize();
486
494
 
495
+ ::Microsoft::ReactNative::DebuggerNotifications::SubscribeShowDebuggerPausedOverlay(
496
+ m_context.Notifications().Handle(),
497
+ m_context.UIDispatcher().Handle(),
498
+ [weakThis = get_weak()](std::string message, std::function<void()> onResume) {
499
+ if (auto strongThis = weakThis.get()) {
500
+ strongThis->ShowDebuggerUI(message, onResume);
501
+ }
502
+ },
503
+ [weakThis = get_weak()]() {
504
+ if (auto strongThis = weakThis.get()) {
505
+ strongThis->HideDebuggerUI();
506
+ }
507
+ });
508
+
487
509
  UpdateRootViewInternal();
488
510
 
489
511
  m_isInitialized = true;
@@ -746,7 +768,10 @@ void ReactNativeIsland::ShowInstanceLoading() noexcept {
746
768
  NotifySizeChanged();
747
769
  UpdateLoadingVisualSize();
748
770
 
749
- InternalRootVisual().InsertAt(m_loadingVisual, m_hasRenderedVisual ? 1 : 0);
771
+ // ShowDebuggerUI(); // TEMP
772
+
773
+ InternalRootVisual().InsertAt(
774
+ m_loadingVisual, m_hasRenderedVisual ? (m_debuggerVisual ? 2 : 1) : (m_debuggerVisual ? 1 : 0));
750
775
  }
751
776
 
752
777
  void ReactNativeIsland::InitTextScaleMultiplier() noexcept {
@@ -767,6 +792,48 @@ void ReactNativeIsland::InitTextScaleMultiplier() noexcept {
767
792
  });
768
793
  }
769
794
 
795
+ void ReactNativeIsland::ShowDebuggerUI(std::string message, const std::function<void()> &onResume) noexcept {
796
+ if (!m_debuggerVisual) {
797
+ auto compContext =
798
+ winrt::Microsoft::ReactNative::Composition::implementation::CompositionUIService::GetCompositionContext(
799
+ m_context.Properties().Handle());
800
+ m_debuggerVisual = compContext.CreateSpriteVisual();
801
+
802
+ m_debuggerChildSiteLink = winrt::Microsoft::UI::Content::ChildSiteLink::Create(
803
+ Island(),
804
+ winrt::Microsoft::ReactNative::Composition::Experimental::MicrosoftCompositionContextHelper::InnerVisual(
805
+ m_debuggerVisual)
806
+ .as<winrt::Microsoft::UI::Composition::ContainerVisual>());
807
+
808
+ m_debuggerUIIsland = std::make_shared<DebuggerUIIsland>(m_compositor, compContext, Theme());
809
+ m_debuggerUIIsland->Message(std::string(message));
810
+ m_debuggerVisual.RelativeSizeWithOffset({0.0f, 0.0f}, {1.0f, 1.0f});
811
+
812
+ m_debuggerUIIsland->Resumed(
813
+ [wkThis = get_weak(), onResume](
814
+ const winrt::Windows::Foundation::IInspectable &, const winrt::Windows::Foundation::IInspectable &) {
815
+ if (auto pThis = wkThis.get()) {
816
+ // pThis->HideDebuggerUI();
817
+ onResume();
818
+ }
819
+ });
820
+
821
+ InternalRootVisual().InsertAt(m_debuggerVisual, m_hasRenderedVisual ? 1 : 0);
822
+ m_debuggerUIIsland->Island().IsHitTestVisibleWhenTransparent(false);
823
+ m_debuggerChildSiteLink.Connect(m_debuggerUIIsland->Island());
824
+ }
825
+
826
+ m_debuggerVisual.IsVisible(true);
827
+
828
+ UpdateRootVisualSize();
829
+ }
830
+
831
+ void ReactNativeIsland::HideDebuggerUI() noexcept {
832
+ if (m_debuggerVisual) {
833
+ m_debuggerVisual.IsVisible(false);
834
+ }
835
+ }
836
+
770
837
  winrt::Windows::Foundation::Size ReactNativeIsland::Measure(
771
838
  const winrt::Microsoft::ReactNative::LayoutConstraints &layoutConstraints,
772
839
  const winrt::Windows::Foundation::Point &viewportOffset) const {
@@ -7,11 +7,14 @@
7
7
  #include <FocusNavigationResult.g.h>
8
8
 
9
9
  #include <ReactContext.h>
10
+ #include <ReactHost/DebuggerNotifications.h>
10
11
  #include <react/renderer/core/LayoutConstraints.h>
11
12
  #include <winrt/Microsoft.ReactNative.Composition.Experimental.h>
12
13
  #include <winrt/Microsoft.ReactNative.h>
14
+ #include <winrt/Microsoft.UI.Content.h>
13
15
  #include <winrt/Windows.UI.ViewManagement.h>
14
16
  #include "CompositionEventHandler.h"
17
+ #include "DebuggerUIIsland.h"
15
18
  #include "PortalComponentView.h"
16
19
  #include "ReactHost/React.h"
17
20
 
@@ -181,6 +184,9 @@ struct ReactNativeIsland
181
184
  std::shared_ptr<::Microsoft::ReactNative::CompositionEventHandler> m_CompositionEventHandler;
182
185
  winrt::Microsoft::ReactNative::Composition::Experimental::IVisual m_rootVisual{nullptr};
183
186
  winrt::Microsoft::ReactNative::Composition::Experimental::ISpriteVisual m_loadingVisual{nullptr};
187
+ winrt::Microsoft::UI::Content::ChildSiteLink m_debuggerChildSiteLink{nullptr};
188
+ std::shared_ptr<DebuggerUIIsland> m_debuggerUIIsland;
189
+ winrt::Microsoft::ReactNative::Composition::Experimental::ISpriteVisual m_debuggerVisual{nullptr};
184
190
  winrt::Microsoft::ReactNative::Composition::Experimental::IActivityVisual m_loadingActivityVisual{nullptr};
185
191
  winrt::Microsoft::ReactNative::Composition::ICustomResourceLoader m_resources{nullptr};
186
192
  winrt::Microsoft::ReactNative::Composition::Theme m_theme{nullptr};
@@ -196,8 +202,11 @@ struct ReactNativeIsland
196
202
  void ShowInstanceLoaded() noexcept;
197
203
  void ShowInstanceError() noexcept;
198
204
  void ShowInstanceLoading() noexcept;
205
+ void ShowDebuggerUI(std::string message, const std::function<void()> &onResume) noexcept;
206
+ void HideDebuggerUI() noexcept;
199
207
  void UpdateRootVisualSize() noexcept;
200
208
  void UpdateLoadingVisualSize() noexcept;
209
+ void UpdateDebuggerVisualSize() noexcept;
201
210
  Composition::Experimental::IDrawingSurfaceBrush CreateLoadingVisualBrush() noexcept;
202
211
  void ApplyConstraints(
203
212
  const winrt::Microsoft::ReactNative::LayoutConstraints &layoutConstraintsIn,
@@ -48,7 +48,7 @@ virtual State::Shared createInitialState(
48
48
  if (getThemeData(
49
49
  fabricUIManager, surfaceId, defaultTextInputPaddingArray)) {
50
50
  jfloat* defaultTextInputPadding =
51
- env->GetFloatArrayElements(defaultTextInputPaddingArray, 0);
51
+ env->GetFloatArrayElements(defaultTextInputPaddingArray, nullptr);
52
52
  theme.start = defaultTextInputPadding[0];
53
53
  theme.end = defaultTextInputPadding[1];
54
54
  theme.top = defaultTextInputPadding[2];
@@ -59,8 +59,8 @@ virtual State::Shared createInitialState(
59
59
  }
60
60
 
61
61
  return std::make_shared<AndroidTextInputShadowNode::ConcreteState>(
62
- std::make_shared<const AndroidTextInputState>(AndroidTextInputState(
63
- 0, {}, {}, {}, theme.start, theme.end, theme.top, theme.bottom)),
62
+ std::make_shared<const AndroidTextInputState>(
63
+ AndroidTextInputState({}, {}, {}, 0)),
64
64
  family);
65
65
  }
66
66
  */
@@ -19,6 +19,7 @@
19
19
  #include <winrt/Microsoft.UI.Input.h>
20
20
  #include <winrt/Windows.System.h>
21
21
  #include <winrt/Windows.UI.h>
22
+ #include "../Composition.Input.h"
22
23
  #include "../CompositionHelpers.h"
23
24
  #include "../RootComponentView.h"
24
25
  #include "JSValueReader.h"
@@ -216,15 +217,14 @@ struct CompTextHost : public winrt::implements<CompTextHost, ITextHost> {
216
217
 
217
218
  //@cmember Get mouse capture
218
219
  void TxSetCapture(BOOL fCapture) override {
219
- // assert(false);
220
- // TODO capture?
221
- /*
220
+ auto mousePointer = winrt::make<winrt::Microsoft::ReactNative::Composition::Input::implementation::Pointer>(
221
+ winrt::Microsoft::ReactNative::Composition::Input::PointerDeviceType::Mouse, 1 /* 1 is Mouse PointerId*/);
222
+
222
223
  if (fCapture) {
223
- ::SetCapture(m_hwndHost);
224
+ m_outer->CapturePointer(mousePointer);
224
225
  } else {
225
- ::ReleaseCapture();
226
+ m_outer->ReleasePointerCapture(mousePointer);
226
227
  }
227
- */
228
228
  }
229
229
 
230
230
  //@cmember Set the focus to the text window
@@ -125,8 +125,8 @@ void WindowsTextInputShadowNode::updateStateIfNeeded(const LayoutContext &layout
125
125
  // so no changes are applied There's no way to prevent a state update from
126
126
  // flowing to Java, so we just ensure it's a noop in those cases.
127
127
 
128
- setStateData(facebook::react::TextInputState{
129
- AttributedStringBox(newAttributedString), reactTreeAttributedString, {}, newEventCount});
128
+ setStateData(
129
+ WindowsTextInputState{AttributedStringBox(newAttributedString), reactTreeAttributedString, {}, newEventCount});
130
130
  }
131
131
 
132
132
  AttributedString WindowsTextInputShadowNode::getAttributedString(const LayoutContext &layoutContext) const {
@@ -181,24 +181,28 @@ AttributedString WindowsTextInputShadowNode::getMostRecentAttributedString(const
181
181
  return (!treeAttributedStringChanged ? state.attributedStringBox.getValue() : reactTreeAttributedString);
182
182
  }
183
183
 
184
- // For measurement purposes, we want to make sure that there's at least a
185
- // single character in the string so that the measured height is greater
186
- // than zero. Otherwise, empty TextInputs with no placeholder don't
187
- // display at all.
188
- // TODO T67606511: We will redefine the measurement of empty strings as part
189
- // of T67606511
190
184
  AttributedString WindowsTextInputShadowNode::getPlaceholderAttributedString(const LayoutContext &layoutContext) const {
191
- const auto &props = BaseShadowNode::getConcreteProps();
185
+ const auto &props = getConcreteProps();
192
186
 
193
187
  AttributedString attributedString;
194
- auto placeholderString = !props.placeholder.empty() ? props.placeholder : BaseTextShadowNode::getEmptyPlaceholder();
195
- auto textAttributes = TextAttributes::defaultTextAttributes();
196
- textAttributes.fontSizeMultiplier = layoutContext.fontSizeMultiplier;
197
- textAttributes.apply(props.textAttributes);
198
- attributedString.appendFragment(
199
- {.string = std::move(placeholderString),
200
- .textAttributes = textAttributes,
201
- .parentShadowView = ShadowView(*this)});
188
+ //[windows
189
+ if (!props.placeholder.empty()) {
190
+ auto textAttributes = TextAttributes::defaultTextAttributes();
191
+ textAttributes.fontSizeMultiplier = layoutContext.fontSizeMultiplier;
192
+ textAttributes.apply(props.textAttributes);
193
+
194
+ /*
195
+ * These props are applied to `View`, therefore they must not be a part of
196
+ * base text attributes.
197
+ */
198
+ textAttributes.backgroundColor = clearColor();
199
+ textAttributes.opacity = 1;
200
+
201
+ attributedString.appendFragment(
202
+ {.string = props.placeholder, .textAttributes = textAttributes, .parentShadowView = ShadowView(*this)});
203
+ }
204
+ // windows]
205
+
202
206
  return attributedString;
203
207
  }
204
208
 
@@ -4,14 +4,14 @@
4
4
  #pragma once
5
5
 
6
6
  #include <react/renderer/textlayoutmanager/WindowsTextLayoutManager.h>
7
+ #include "WindowsTextInputEventEmitter.h"
8
+ #include "WindowsTextInputProps.h"
9
+ #include "WindowsTextInputState.h"
7
10
 
8
11
  #include <react/components/rnwcore/EventEmitters.h>
9
12
  #include <unordered_map>
10
- #include "WindowsTextInputEventEmitter.h"
11
- #include "WindowsTextInputProps.h"
12
13
 
13
14
  #include <react/renderer/attributedstring/AttributedString.h>
14
- #include <react/renderer/components/textinput/TextInputState.h>
15
15
  #include <react/renderer/components/view/ConcreteViewShadowNode.h>
16
16
  #include <react/utils/ContextContainer.h>
17
17
 
@@ -26,7 +26,7 @@ class WindowsTextInputShadowNode final : public ConcreteViewShadowNode<
26
26
  WindowsTextInputComponentName,
27
27
  WindowsTextInputProps,
28
28
  WindowsTextInputEventEmitter,
29
- TextInputState> {
29
+ WindowsTextInputState> {
30
30
  public:
31
31
  using ConcreteViewShadowNode::ConcreteViewShadowNode;
32
32
 
@@ -0,0 +1,19 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #include "WindowsTextInputState.h"
9
+
10
+ #include <react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h> // [windows]
11
+
12
+ namespace facebook::react {
13
+
14
+ folly::dynamic WindowsTextInputState::getDynamic() const {
15
+ LOG(FATAL) << "TextInputState state should only be read using MapBuffer";
16
+ return folly::dynamic::object(); // windows
17
+ }
18
+
19
+ } // namespace facebook::react
@@ -0,0 +1,76 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <react/renderer/attributedstring/AttributedStringBox.h>
11
+ #include <react/renderer/attributedstring/ParagraphAttributes.h>
12
+ #include <react/renderer/textlayoutmanager/TextLayoutManager.h>
13
+
14
+ #include <folly/dynamic.h>
15
+ #include <react/renderer/mapbuffer/MapBuffer.h>
16
+ #include <react/renderer/mapbuffer/MapBufferBuilder.h> // [windows]
17
+
18
+ namespace facebook::react {
19
+
20
+ /*
21
+ * State for <TextInput> component.
22
+ */
23
+ class WindowsTextInputState final {
24
+ public:
25
+ WindowsTextInputState() = default;
26
+
27
+ WindowsTextInputState(
28
+ AttributedStringBox attributedStringBox,
29
+ AttributedString reactTreeAttributedString,
30
+ ParagraphAttributes paragraphAttributes,
31
+ int64_t mostRecentEventCount)
32
+ : attributedStringBox(std::move(attributedStringBox)),
33
+ reactTreeAttributedString(std::move(reactTreeAttributedString)),
34
+ paragraphAttributes(std::move(paragraphAttributes)),
35
+ mostRecentEventCount(mostRecentEventCount) {}
36
+
37
+ WindowsTextInputState(const WindowsTextInputState &previousState, const folly::dynamic &data)
38
+ : attributedStringBox(previousState.attributedStringBox),
39
+ reactTreeAttributedString(previousState.reactTreeAttributedString),
40
+ paragraphAttributes(previousState.paragraphAttributes),
41
+ mostRecentEventCount(data.getDefault("mostRecentEventCount", previousState.mostRecentEventCount).getInt()),
42
+ cachedAttributedStringId(data.getDefault("opaqueCacheId", previousState.cachedAttributedStringId).getInt()) {}
43
+
44
+ folly::dynamic getDynamic() const;
45
+ MapBuffer getMapBuffer() const;
46
+
47
+ /*
48
+ * All content of <TextInput> component.
49
+ */
50
+ AttributedStringBox attributedStringBox;
51
+
52
+ /*
53
+ * All content of <TextInput> component represented as an `AttributedString`.
54
+ * This stores the previous computed *from the React tree*. This usually
55
+ * doesn't change as the TextInput contents are being updated. If it does
56
+ * change, we need to wipe out current contents of the TextInput and replace
57
+ * with the new value from the tree.
58
+ */
59
+ AttributedString reactTreeAttributedString{};
60
+
61
+ /*
62
+ * Represents all visual attributes of a paragraph of text represented as
63
+ * a ParagraphAttributes.
64
+ */
65
+ ParagraphAttributes paragraphAttributes;
66
+
67
+ int64_t mostRecentEventCount{0};
68
+
69
+ /**
70
+ * Stores an opaque cache ID used on the Java side to refer to a specific
71
+ * AttributedString for measurement purposes only.
72
+ */
73
+ int64_t cachedAttributedStringId{0};
74
+ };
75
+
76
+ } // namespace facebook::react
@@ -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 {