react-native-windows 0.71.7 → 0.72.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 (620) hide show
  1. package/.flowconfig +13 -3
  2. package/Directory.Build.props +19 -19
  3. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +1 -1
  4. package/Libraries/Alert/Alert.d.ts +4 -4
  5. package/Libraries/Alert/Alert.windows.js +2 -0
  6. package/Libraries/Alert/NativeDialogManagerWindows.js +1 -0
  7. package/Libraries/Animated/Animated.d.ts +17 -6
  8. package/Libraries/Animated/NativeAnimatedHelper.js +18 -6
  9. package/Libraries/Animated/bezier.js +1 -1
  10. package/Libraries/Animated/components/AnimatedFlatList.js +8 -3
  11. package/Libraries/Animated/components/AnimatedScrollView.js +4 -1
  12. package/Libraries/Animated/components/AnimatedSectionList.js +12 -3
  13. package/Libraries/Animated/createAnimatedComponent.js +26 -239
  14. package/Libraries/Animated/nodes/AnimatedColor.js +47 -80
  15. package/Libraries/Animated/nodes/AnimatedInterpolation.js +167 -121
  16. package/Libraries/Animated/nodes/AnimatedNode.js +3 -5
  17. package/Libraries/Animated/nodes/AnimatedProps.js +7 -6
  18. package/Libraries/Animated/nodes/AnimatedStyle.js +42 -8
  19. package/Libraries/Animated/nodes/AnimatedTransform.js +1 -1
  20. package/Libraries/Animated/nodes/AnimatedValue.js +8 -12
  21. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  22. package/Libraries/Animated/useAnimatedProps.js +7 -10
  23. package/Libraries/AppTheme/AppTheme.js +1 -0
  24. package/Libraries/AppTheme/AppThemeTypes.d.ts +1 -1
  25. package/Libraries/BatchedBridge/MessageQueue.js +2 -1
  26. package/Libraries/BatchedBridge/NativeModules.d.ts +1 -1
  27. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  28. package/Libraries/Blob/Blob.js +4 -0
  29. package/Libraries/Blob/FileReader.js +30 -2
  30. package/Libraries/Blob/URL.js +3 -1
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +2 -2
  32. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -3
  33. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +2 -3
  34. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +6 -4
  35. package/Libraries/Components/Button.js +3 -2
  36. package/Libraries/Components/Button.windows.js +3 -2
  37. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  38. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
  39. package/Libraries/Components/Flyout/Flyout.d.ts +55 -19
  40. package/Libraries/Components/Flyout/Flyout.js +110 -51
  41. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +45 -0
  42. package/Libraries/Components/Glyph/Glyph.d.ts +29 -12
  43. package/Libraries/Components/Glyph/Glyph.js +43 -30
  44. package/Libraries/Components/Glyph/GlyphNativeComponent.js +31 -0
  45. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -0
  46. package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +2 -2
  47. package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
  48. package/Libraries/Components/Popup/Popup.d.ts +41 -19
  49. package/Libraries/Components/Popup/Popup.js +86 -52
  50. package/Libraries/Components/Popup/PopupNativeComponent.js +49 -0
  51. package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
  52. package/Libraries/Components/Pressable/Pressable.js +1 -1
  53. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -0
  54. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -0
  55. package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -2
  56. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +1 -2
  57. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +12 -6
  58. package/Libraries/Components/ScrollView/ScrollView.d.ts +2 -2
  59. package/Libraries/Components/ScrollView/ScrollView.js +149 -91
  60. package/Libraries/Components/ScrollView/ScrollView.windows.js +1939 -0
  61. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -6
  62. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +175 -0
  63. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -7
  64. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -1
  65. package/Libraries/Components/StatusBar/StatusBar.js +3 -0
  66. package/Libraries/Components/Switch/Switch.js +3 -1
  67. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +21 -11
  68. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +1 -1
  69. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +11 -5
  70. package/Libraries/Components/TextInput/TextInput.d.ts +15 -5
  71. package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
  72. package/Libraries/Components/TextInput/TextInput.js +130 -103
  73. package/Libraries/Components/TextInput/TextInput.windows.js +152 -115
  74. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
  75. package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
  76. package/Libraries/Components/Touchable/Touchable.flow.js +30 -4
  77. package/Libraries/Components/Touchable/Touchable.js +6 -3
  78. package/Libraries/Components/Touchable/Touchable.windows.js +6 -3
  79. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  80. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +2 -1
  81. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
  82. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -0
  83. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -0
  84. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +1 -1
  85. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
  86. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -2
  87. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +189 -0
  88. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
  89. package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
  90. package/Libraries/Components/View/View.js +71 -45
  91. package/Libraries/Components/View/View.windows.js +40 -16
  92. package/Libraries/Components/View/ViewAccessibility.d.ts +6 -6
  93. package/Libraries/Components/View/ViewAccessibility.js +10 -1
  94. package/Libraries/Components/View/ViewAccessibility.windows.js +9 -0
  95. package/Libraries/Components/View/ViewNativeComponent.js +32 -8
  96. package/Libraries/Components/View/ViewPropTypes.d.ts +1 -1
  97. package/Libraries/Components/View/ViewPropTypes.js +1 -1
  98. package/Libraries/Components/View/ViewPropTypes.windows.js +3 -1
  99. package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
  100. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
  101. package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
  102. package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
  103. package/Libraries/Core/ExceptionsManager.js +2 -2
  104. package/Libraries/Core/InitializeCore.js +2 -1
  105. package/Libraries/Core/ReactNativeVersion.js +3 -3
  106. package/Libraries/Core/ReactNativeVersionCheck.js +1 -9
  107. package/Libraries/Core/Timers/JSTimers.js +1 -1
  108. package/Libraries/Core/Timers/immediateShim.js +1 -0
  109. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  110. package/Libraries/Core/setUpAlert.js +1 -1
  111. package/Libraries/Core/setUpDOM.js +18 -0
  112. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  113. package/Libraries/Core/setUpGlobals.js +5 -2
  114. package/Libraries/Core/setUpNavigator.js +6 -5
  115. package/Libraries/Core/setUpPerformance.js +23 -13
  116. package/Libraries/Core/setUpReactDevTools.js +2 -0
  117. package/Libraries/Core/setUpSegmentFetcher.js +0 -41
  118. package/Libraries/Core/setUpTimers.js +2 -2
  119. package/Libraries/DOM/Geometry/DOMRect.js +82 -0
  120. package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
  121. package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
  122. package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
  123. package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
  124. package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
  125. package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
  126. package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
  127. package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
  128. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
  129. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
  130. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
  131. package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +35 -0
  132. package/Libraries/{Utilities/NativeDevSplitBundleLoader.js → DevToolsSettings/NativeDevToolsSettingsManager.js} +7 -2
  133. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
  134. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
  135. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
  136. package/Libraries/Events/EventPolyfill.js +1 -1
  137. package/Libraries/Image/AssetRegistry.js +1 -1
  138. package/Libraries/Image/AssetSourceResolver.js +3 -3
  139. package/Libraries/Image/Image.android.js +4 -1
  140. package/Libraries/Image/Image.d.ts +63 -2
  141. package/Libraries/Image/Image.ios.js +3 -0
  142. package/Libraries/Image/Image.windows.js +3 -0
  143. package/Libraries/Image/ImageBackground.js +1 -0
  144. package/Libraries/Image/ImageProps.js +1 -1
  145. package/Libraries/Image/ImageViewNativeComponent.js +4 -4
  146. package/Libraries/Image/RelativeImageStub.js +1 -1
  147. package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
  148. package/Libraries/Image/resolveAssetSource.js +1 -1
  149. package/Libraries/Inspector/DevtoolsOverlay.js +29 -19
  150. package/Libraries/Inspector/ElementBox.js +4 -1
  151. package/Libraries/Inspector/Inspector.js +5 -6
  152. package/Libraries/Inspector/InspectorOverlay.js +3 -3
  153. package/Libraries/Inspector/NetworkOverlay.js +1 -1
  154. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
  155. package/Libraries/Interaction/PanResponder.js +5 -6
  156. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
  157. package/Libraries/Linking/Linking.js +1 -4
  158. package/Libraries/Lists/FillRateHelper.js +4 -238
  159. package/Libraries/Lists/FlatList.d.ts +15 -22
  160. package/Libraries/Lists/FlatList.js +9 -6
  161. package/Libraries/Lists/SectionList.d.ts +10 -6
  162. package/Libraries/Lists/SectionList.js +5 -3
  163. package/Libraries/Lists/SectionListModern.js +3 -3
  164. package/Libraries/Lists/ViewabilityHelper.js +8 -344
  165. package/Libraries/Lists/VirtualizeUtils.js +4 -244
  166. package/Libraries/Lists/VirtualizedList.js +10 -1867
  167. package/Libraries/Lists/VirtualizedListContext.js +6 -104
  168. package/Libraries/Lists/VirtualizedSectionList.js +9 -602
  169. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
  170. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  171. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  172. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  173. package/Libraries/LogBox/LogBox.js +1 -1
  174. package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
  175. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +167 -0
  176. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +172 -0
  177. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +193 -0
  178. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
  179. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
  180. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +118 -0
  181. package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
  182. package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
  183. package/Libraries/Modal/Modal.js +2 -2
  184. package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
  185. package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
  186. package/Libraries/NativeComponent/BaseViewConfig.windows.js +77 -19
  187. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
  188. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  189. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
  190. package/Libraries/Network/RCTNetworking.android.js +2 -2
  191. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  192. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  193. package/Libraries/Network/XMLHttpRequest.js +1 -1
  194. package/Libraries/Pressability/Pressability.js +11 -5
  195. package/Libraries/Pressability/Pressability.windows.js +11 -4
  196. package/Libraries/ReactNative/AppContainer.js +7 -1
  197. package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
  198. package/Libraries/ReactNative/AppRegistry.js +10 -13
  199. package/Libraries/ReactNative/FabricUIManager.js +24 -8
  200. package/Libraries/ReactNative/NativeUIManager.js +5 -5
  201. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
  202. package/Libraries/ReactNative/UIManager.js +142 -1
  203. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
  204. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  205. package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
  206. package/Libraries/ReactNative/requireNativeComponent.js +1 -1
  207. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
  208. package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
  209. package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
  210. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
  211. package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
  212. package/Libraries/Renderer/shims/ReactNativeTypes.js +38 -20
  213. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
  214. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  215. package/Libraries/Share/Share.js +1 -1
  216. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  217. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  218. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
  219. package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
  220. package/Libraries/StyleSheet/flattenStyle.js +2 -0
  221. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  222. package/Libraries/StyleSheet/processColor.js +1 -1
  223. package/Libraries/Text/Text.d.ts +12 -2
  224. package/Libraries/Text/Text.js +50 -41
  225. package/Libraries/Text/Text.windows.js +48 -38
  226. package/Libraries/Text/TextProps.js +3 -4
  227. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
  228. package/Libraries/Types/CodegenTypes.js +1 -0
  229. package/Libraries/UTFSequence.js +3 -1
  230. package/Libraries/Utilities/Appearance.d.ts +10 -0
  231. package/Libraries/Utilities/Appearance.js +13 -0
  232. package/Libraries/Utilities/Dimensions.js +1 -1
  233. package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
  234. package/Libraries/Utilities/HMRClient.js +16 -10
  235. package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
  236. package/Libraries/Utilities/IPerformanceLogger.js +49 -0
  237. package/Libraries/Utilities/LoadingView.android.js +28 -11
  238. package/Libraries/Utilities/NativeAppearance.js +1 -0
  239. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
  240. package/Libraries/Utilities/PixelRatio.js +2 -2
  241. package/Libraries/Utilities/Platform.windows.js +1 -1
  242. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  243. package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
  244. package/Libraries/Utilities/codegenNativeCommands.js +2 -0
  245. package/Libraries/Utilities/createPerformanceLogger.js +55 -43
  246. package/Libraries/Utilities/stringifySafe.js +2 -7
  247. package/Libraries/Utilities/useColorScheme.js +1 -1
  248. package/Libraries/Utilities/useWindowDimensions.js +3 -3
  249. package/Libraries/WebPerformance/EventCounts.js +78 -0
  250. package/Libraries/WebPerformance/MemoryInfo.js +54 -0
  251. package/Libraries/WebPerformance/NativePerformance.js +38 -0
  252. package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
  253. package/Libraries/WebPerformance/Performance.js +312 -0
  254. package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
  255. package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
  256. package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
  257. package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
  258. package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
  259. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
  260. package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
  261. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  262. package/Libraries/platform-types.d.ts +3 -5
  263. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  264. package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
  265. package/Libraries/vendor/emitter/EventEmitter.js +9 -1
  266. package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +0 -15
  267. package/Microsoft.ReactNative/CompositionHwndHost.idl +6 -0
  268. package/Microsoft.ReactNative/CompositionRootView.idl +35 -0
  269. package/Microsoft.ReactNative/CompositionSwitcher.idl +19 -0
  270. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +174 -0
  271. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +91 -0
  272. package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +48 -0
  273. package/Microsoft.ReactNative/Fabric/AbiViewProps.h +48 -0
  274. package/Microsoft.ReactNative/Fabric/ComponentView.h +19 -2
  275. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +144 -0
  276. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +63 -0
  277. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +27 -6
  278. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +97 -0
  279. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +227 -0
  280. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +38 -0
  281. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +112 -95
  282. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +12 -8
  283. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +0 -2
  284. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +27 -6
  285. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +8 -0
  286. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +147 -0
  287. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +46 -0
  288. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +31 -4
  289. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +37 -0
  290. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +255 -50
  291. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +34 -15
  292. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +127 -47
  293. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +11 -7
  294. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +109 -39
  295. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +10 -7
  296. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +106 -0
  297. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +63 -0
  298. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +116 -0
  299. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +43 -0
  300. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +53 -38
  301. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +12 -8
  302. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +262 -0
  303. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +62 -0
  304. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +35 -30
  305. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +11 -9
  306. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +9 -0
  307. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -0
  308. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +2 -1
  309. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +72 -0
  310. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +16 -0
  311. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +168 -0
  312. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +49 -0
  313. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +19 -53
  314. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -3
  315. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +8 -9
  316. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +100 -0
  317. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.h +43 -0
  318. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +61 -0
  319. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +34 -0
  320. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +42 -0
  321. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +10 -0
  322. package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +248 -0
  323. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +5 -0
  324. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +135 -4
  325. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +18 -240
  326. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -17
  327. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +13 -2
  328. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +87 -0
  329. package/Microsoft.ReactNative/IReactContext.cpp +4 -0
  330. package/Microsoft.ReactNative/IReactContext.h +1 -0
  331. package/Microsoft.ReactNative/IReactContext.idl +5 -0
  332. package/Microsoft.ReactNative/IReactDispatcher.cpp +4 -0
  333. package/Microsoft.ReactNative/IReactDispatcher.h +1 -0
  334. package/Microsoft.ReactNative/IReactPackageBuilderFabric.idl +23 -0
  335. package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +23 -0
  336. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -118
  337. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -7
  338. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +2 -2
  339. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +1 -1
  340. package/Microsoft.ReactNative/Modules/AlertModule.cpp +100 -4
  341. package/Microsoft.ReactNative/Modules/AlertModule.h +4 -0
  342. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.cpp +9 -0
  343. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.h +2 -0
  344. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +7 -5
  345. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +17 -3
  346. package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.h +1 -0
  347. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +4 -0
  348. package/Microsoft.ReactNative/Modules/AppearanceModule.h +3 -0
  349. package/Microsoft.ReactNative/Modules/ClipboardModule.cpp +4 -4
  350. package/Microsoft.ReactNative/Modules/ClipboardModule.h +2 -2
  351. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +27 -7
  352. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.h +9 -5
  353. package/Microsoft.ReactNative/Modules/LinkingManagerModule.cpp +10 -12
  354. package/Microsoft.ReactNative/Modules/LinkingManagerModule.h +4 -4
  355. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -1
  356. package/Microsoft.ReactNative/QuirkSettings.cpp +17 -0
  357. package/Microsoft.ReactNative/QuirkSettings.h +5 -0
  358. package/Microsoft.ReactNative/QuirkSettings.idl +6 -0
  359. package/Microsoft.ReactNative/ReactApplication.cpp +8 -0
  360. package/Microsoft.ReactNative/ReactApplication.h +3 -0
  361. package/Microsoft.ReactNative/ReactApplication.idl +3 -0
  362. package/Microsoft.ReactNative/ReactCoreInjection.cpp +29 -0
  363. package/Microsoft.ReactNative/ReactCoreInjection.h +6 -0
  364. package/Microsoft.ReactNative/ReactCoreInjection.idl +13 -0
  365. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +7 -0
  366. package/Microsoft.ReactNative/ReactHost/MsoReactContext.h +1 -0
  367. package/Microsoft.ReactNative/ReactHost/React.h +2 -0
  368. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +57 -16
  369. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -0
  370. package/Microsoft.ReactNative/ReactInstanceSettings.h +12 -0
  371. package/Microsoft.ReactNative/ReactInstanceSettings.idl +6 -0
  372. package/Microsoft.ReactNative/ReactNativeHost.cpp +17 -0
  373. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +18 -0
  374. package/Microsoft.ReactNative/ReactPackageBuilder.h +24 -1
  375. package/Microsoft.ReactNative/ReactRootView.cpp +2 -2
  376. package/Microsoft.ReactNative/RedBox.cpp +2 -1
  377. package/Microsoft.ReactNative/Utils/Helpers.cpp +0 -32
  378. package/Microsoft.ReactNative/Utils/Helpers.h +0 -8
  379. package/Microsoft.ReactNative/Utils/ImageUtils.cpp +69 -6
  380. package/Microsoft.ReactNative/Utils/ImageUtils.h +3 -1
  381. package/Microsoft.ReactNative/Utils/KeyboardUtils.cpp +416 -0
  382. package/Microsoft.ReactNative/Utils/KeyboardUtils.h +15 -0
  383. package/Microsoft.ReactNative/Utils/TransformableText.h +1 -0
  384. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -9
  385. package/Microsoft.ReactNative/Utils/ValueUtils.h +0 -2
  386. package/Microsoft.ReactNative/ViewProps.idl +30 -0
  387. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +6 -2
  388. package/Microsoft.ReactNative/Views/DevMenu.cpp +369 -230
  389. package/Microsoft.ReactNative/Views/DevMenu.h +3 -15
  390. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +6 -3
  391. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +11 -3
  392. package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +5 -1
  393. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +29 -22
  394. package/Microsoft.ReactNative/Views/Image/ReactImage.h +2 -2
  395. package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +10 -405
  396. package/Microsoft.ReactNative/Views/KeyboardEventHandler.h +0 -3
  397. package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -0
  398. package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +2 -2
  399. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +7 -0
  400. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +3 -0
  401. package/Microsoft.ReactNative/Views/Text/TextHitTestUtils.cpp +6 -1
  402. package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +1 -0
  403. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +38 -2
  404. package/Microsoft.ReactNative/Views/TextViewManager.cpp +3 -0
  405. package/Microsoft.ReactNative/Views/TouchEventHandler.h +0 -4
  406. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +0 -8
  407. package/Microsoft.ReactNative/Views/ViewPanel.cpp +1 -1
  408. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +12 -3
  409. package/Microsoft.ReactNative/XamlHelper.cpp +36 -0
  410. package/Microsoft.ReactNative/XamlHelper.h +27 -0
  411. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +4 -4
  412. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +4 -4
  413. package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
  414. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +10 -8
  415. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +3 -3
  416. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +4 -1
  417. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +3 -0
  418. package/Microsoft.ReactNative.Cxx/NativeModules.h +16 -1
  419. package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +2 -0
  420. package/Microsoft.ReactNative.Managed/packages.lock.json +5 -5
  421. package/PropertySheets/External/Microsoft.ReactNative.Cpp.ProjectReferences.props +3 -0
  422. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  423. package/PropertySheets/JSEngine.props +2 -3
  424. package/PropertySheets/Warnings.props +1 -1
  425. package/ReactCommon/ReactCommon.vcxproj +2 -4
  426. package/ReactCommon/ReactCommon.vcxproj.filters +3 -0
  427. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +1 -1
  428. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.cpp +60 -0
  429. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.h +60 -0
  430. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +116 -0
  431. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +63 -0
  432. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -2
  433. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +237 -0
  434. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +59 -0
  435. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +159 -0
  436. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +94 -0
  437. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +465 -0
  438. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +116 -0
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +98 -0
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +362 -0
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +326 -0
  442. package/ReactCommon/Yoga.cpp +60 -127
  443. package/Scripts/OfficeReact.Win32.nuspec +1 -0
  444. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +1 -0
  445. package/Scripts/rnw-dependencies.ps1 +12 -4
  446. package/Shared/Composition/CompositionSwitcher.interop.h +1 -0
  447. package/Shared/DevServerHelper.h +11 -2
  448. package/Shared/DevSettings.h +1 -0
  449. package/Shared/DevSupportManager.cpp +11 -1
  450. package/Shared/DevSupportManager.h +1 -0
  451. package/Shared/HermesRuntimeHolder.cpp +53 -30
  452. package/Shared/HermesRuntimeHolder.h +26 -11
  453. package/Shared/HermesSamplingProfiler.cpp +61 -8
  454. package/Shared/HermesSamplingProfiler.h +6 -3
  455. package/Shared/HermesShim.cpp +86 -82
  456. package/Shared/HermesShim.h +28 -8
  457. package/Shared/JSI/ChakraRuntime.cpp +7 -4
  458. package/Shared/JSI/ChakraRuntime.h +4 -4
  459. package/Shared/JSI/NapiJsiV8RuntimeHolder.h +2 -0
  460. package/Shared/JSI/RuntimeHolder.h +2 -2
  461. package/Shared/Logging.cpp +1 -1
  462. package/Shared/Modules/BlobModule.cpp +3 -4
  463. package/Shared/Modules/BlobModule.h +0 -4
  464. package/Shared/Networking/OriginPolicyHttpFilter.cpp +13 -17
  465. package/Shared/Networking/OriginPolicyHttpFilter.h +11 -12
  466. package/Shared/Networking/WinRTWebSocketResource.cpp +59 -45
  467. package/Shared/OInstance.cpp +9 -2
  468. package/Shared/Shared.vcxitems +265 -58
  469. package/Shared/Shared.vcxitems.filters +312 -42
  470. package/Shared/V8JSIRuntimeHolder.cpp +1 -0
  471. package/Shared/V8JSIRuntimeHolder.h +7 -2
  472. package/codegen/NativeAppearanceSpec.g.h +9 -3
  473. package/codegen/NativeClipboardSpec.g.h +3 -3
  474. package/codegen/NativeDevToolsSettingsManagerSpec.g.h +51 -0
  475. package/codegen/NativeDialogManagerWindowsSpec.g.h +2 -0
  476. package/codegen/NativeFileReaderModuleSpec.g.h +6 -6
  477. package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +3 -3
  478. package/codegen/NativeImageLoaderAndroidSpec.g.h +25 -9
  479. package/codegen/NativeImageLoaderIOSSpec.g.h +20 -12
  480. package/codegen/NativeIntentAndroidSpec.g.h +15 -15
  481. package/codegen/NativeLinkingManagerSpec.g.h +12 -12
  482. package/codegen/NativePerformanceObserverSpec.g.h +48 -10
  483. package/codegen/NativePerformanceSpec.g.h +63 -0
  484. package/codegen/NativePermissionsAndroidSpec.g.h +9 -9
  485. package/codegen/NativePlatformConstantsWinSpec.g.h +1 -1
  486. package/codegen/NativePushNotificationManagerIOSSpec.g.h +6 -6
  487. package/codegen/NativeSampleTurboModuleSpec.g.h +25 -19
  488. package/codegen/NativeShareModuleSpec.g.h +9 -3
  489. package/codegen/NativeUIManagerSpec.g.h +12 -12
  490. package/codegen/react/components/rnwcore/ComponentDescriptors.h +1 -2
  491. package/codegen/react/components/rnwcore/EventEmitters.cpp +21 -29
  492. package/codegen/react/components/rnwcore/EventEmitters.h +30 -30
  493. package/codegen/react/components/rnwcore/Props.cpp +47 -48
  494. package/codegen/react/components/rnwcore/Props.h +59 -166
  495. package/codegen/react/components/rnwcore/ShadowNodes.cpp +1 -2
  496. package/codegen/react/components/rnwcore/ShadowNodes.h +11 -22
  497. package/codegen/react/components/rnwcore/States.h +15 -30
  498. package/codegen/rnwcoreJSI-generated.cpp +87 -25
  499. package/codegen/rnwcoreJSI.h +1077 -417
  500. package/generate.js +6 -1
  501. package/include/Include.vcxitems +0 -1
  502. package/include/Include.vcxitems.filters +0 -3
  503. package/index.js +56 -42
  504. package/index.windows.js +56 -42
  505. package/interface.js +1 -1
  506. package/jest/local-setup.js +33 -0
  507. package/jest/mockComponent.js +4 -2
  508. package/jest/mockNativeComponent.js +1 -1
  509. package/jest/mockScrollView.js +2 -1
  510. package/jest/react-native-env.js +1 -3
  511. package/jest/setup.js +11 -8
  512. package/just-task.js +12 -5
  513. package/package.json +32 -29
  514. package/rn-get-polyfills.js +1 -1
  515. package/template/metro.config.js +2 -0
  516. package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
  517. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
  518. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
  519. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
  520. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
  521. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
  522. package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
  523. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
  524. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
  525. package/Libraries/Components/DatePicker/DatePickerIOS.windows.js +0 -47
  526. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
  527. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
  528. package/Libraries/Components/Flyout/Flyout.js.map +0 -1
  529. package/Libraries/Components/Flyout/FlyoutProps.d.ts +0 -25
  530. package/Libraries/Components/Flyout/FlyoutProps.js +0 -3
  531. package/Libraries/Components/Flyout/FlyoutProps.js.map +0 -1
  532. package/Libraries/Components/Glyph/Glyph.js.map +0 -1
  533. package/Libraries/Components/Glyph/GlyphProps.d.ts +0 -16
  534. package/Libraries/Components/Glyph/GlyphProps.js +0 -8
  535. package/Libraries/Components/Glyph/GlyphProps.js.map +0 -1
  536. package/Libraries/Components/Popup/Popup.js.map +0 -1
  537. package/Libraries/Components/Popup/PopupProps.d.ts +0 -27
  538. package/Libraries/Components/Popup/PopupProps.js +0 -8
  539. package/Libraries/Components/Popup/PopupProps.js.map +0 -1
  540. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
  541. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
  542. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
  543. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.windows.js +0 -45
  544. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
  545. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
  546. package/Libraries/Components/Slider/Slider.d.ts +0 -132
  547. package/Libraries/Components/Slider/Slider.js +0 -282
  548. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
  549. package/Libraries/Interaction/Batchinator.js +0 -76
  550. package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
  551. package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
  552. package/Libraries/Interaction/PanResponder.flow.js +0 -257
  553. package/Libraries/Lists/CellRenderMask.js +0 -155
  554. package/Libraries/Lists/ChildListCollection.js +0 -72
  555. package/Libraries/Lists/StateSafePureComponent.js +0 -85
  556. package/Libraries/Lists/VirtualizedList.d.ts +0 -347
  557. package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
  558. package/Libraries/Lists/VirtualizedListProps.js +0 -279
  559. package/Libraries/Performance/PureComponentDebug.js +0 -74
  560. package/Libraries/Reliability/UserFlow.js +0 -158
  561. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
  562. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
  563. package/Libraries/Utilities/MatrixMath.js +0 -748
  564. package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
  565. package/Libraries/Utilities/clamp.js +0 -23
  566. package/Libraries/Utilities/deprecatedPropType.js +0 -36
  567. package/Libraries/Utilities/groupByEveryN.js +0 -51
  568. package/Libraries/Utilities/mergeIntoFast.js +0 -26
  569. package/Libraries/Utilities/setAndForwardRef.js +0 -71
  570. package/Libraries/Utilities/truncate.js +0 -51
  571. package/Microsoft.ReactNative/Fabric/platform/react/components/image/conversions.h +0 -5
  572. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ConcreteViewShadowNode.h +0 -5
  573. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewEventEmitter.h +0 -5
  574. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewProps.h +0 -5
  575. package/Microsoft.ReactNative/Fabric/platform/react/core/ConcreteComponentDescriptor.h +0 -5
  576. package/Microsoft.ReactNative/Fabric/platform/react/core/PropsParserContext.h +0 -5
  577. package/Microsoft.ReactNative/Fabric/platform/react/core/propsConversions.h +0 -5
  578. package/Microsoft.ReactNative/Fabric/platform/react/graphics/Color.h +0 -5
  579. package/Microsoft.ReactNative/Fabric/platform/react/imagemanager/primitives.h +0 -5
  580. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputEventEmitter.h +0 -5
  581. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputProps.h +0 -5
  582. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputShadowNode.h +0 -5
  583. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputState.h +0 -5
  584. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/conversions.h +0 -5
  585. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/primitives.h +0 -5
  586. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/propsConversions.h +0 -5
  587. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +0 -5
  588. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +0 -5
  589. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/States.h +0 -5
  590. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Float.h +0 -5
  591. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +0 -135
  592. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ConcreteComponentDescriptor.h +0 -217
  593. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/graphics/RectangleEdges.h +0 -100
  594. package/Shared/AsyncStorage/AsyncStorageManager.cpp +0 -149
  595. package/Shared/AsyncStorage/AsyncStorageManager.h +0 -71
  596. package/Shared/AsyncStorage/FollyDynamicConverter.cpp +0 -51
  597. package/Shared/AsyncStorage/FollyDynamicConverter.h +0 -24
  598. package/Shared/AsyncStorage/KeyValueStorage.cpp +0 -248
  599. package/Shared/AsyncStorage/KeyValueStorage.h +0 -50
  600. package/Shared/AsyncStorage/StorageFileIO.cpp +0 -160
  601. package/Shared/AsyncStorage/StorageFileIO.h +0 -40
  602. package/Shared/AsyncStorageModule.h +0 -25
  603. package/Shared/Modules/AsyncStorageModule.cpp +0 -87
  604. package/Shared/Modules/AsyncStorageModuleWin32.cpp +0 -496
  605. package/Shared/Modules/AsyncStorageModuleWin32.h +0 -75
  606. package/codegen/NativeDatePickerAndroidSpec.g.h +0 -33
  607. package/codegen/NativeDevSplitBundleLoaderSpec.g.h +0 -33
  608. package/include/Shared/AsyncStorageModuleWin32Config.h +0 -15
  609. package/types/index.d.ts +0 -216
  610. package/types/modules/BatchedBridge.d.ts +0 -32
  611. package/types/modules/Codegen.d.ts +0 -74
  612. package/types/modules/Devtools.d.ts +0 -31
  613. package/types/modules/LaunchScreen.d.ts +0 -18
  614. package/types/modules/globals.d.ts +0 -577
  615. package/types/private/TimerMixin.d.ts +0 -19
  616. package/types/private/Utilities.d.ts +0 -10
  617. package/types/public/DeprecatedPropertiesAlias.d.ts +0 -205
  618. package/types/public/Insets.d.ts +0 -15
  619. package/types/public/ReactNativeRenderer.d.ts +0 -149
  620. package/types/public/ReactNativeTypes.d.ts +0 -143
@@ -101,14 +101,33 @@ void ImageLoader::Initialize(React::ReactContext const &reactContext) noexcept {
101
101
  m_context = reactContext;
102
102
  }
103
103
 
104
- void ImageLoader::getSize(std::string uri, React::ReactPromise<React::JSValue> &&result) noexcept {
105
- getSizeWithHeaders(std::move(uri), {}, std::move(result));
104
+ void ImageLoader::getSize(std::string uri, React::ReactPromise<std::vector<double>> &&result) noexcept {
105
+ m_context.UIDispatcher().Post(
106
+ [context = m_context, uri = std::move(uri), result = std::move(result)]() mutable noexcept {
107
+ GetImageSizeAsync(
108
+ std::move(uri),
109
+ {},
110
+ [result, context](double width, double height) noexcept {
111
+ context.JSDispatcher().Post([result = std::move(result), width, height]() noexcept {
112
+ result.Resolve(std::vector<double>{width, height});
113
+ });
114
+ },
115
+ [result, context]() noexcept {
116
+ context.JSDispatcher().Post([result = std::move(result)]() noexcept { result.Reject("Failed"); });
117
+ }
118
+ #ifdef USE_FABRIC
119
+ ,
120
+ IsFabricEnabled(context.Properties().Handle())
121
+ #endif // USE_FABRIC
122
+ );
123
+ });
106
124
  }
107
125
 
108
126
  void ImageLoader::getSizeWithHeaders(
109
127
  std::string uri,
110
128
  React::JSValue &&headers,
111
- React::ReactPromise<React::JSValue> &&result) noexcept {
129
+ React::ReactPromise<Microsoft::ReactNativeSpecs::ImageLoaderIOSSpec_getSizeWithHeaders_returnType>
130
+ &&result) noexcept {
112
131
  m_context.UIDispatcher().Post([context = m_context,
113
132
  uri = std::move(uri),
114
133
  headers = std::move(headers),
@@ -116,9 +135,10 @@ void ImageLoader::getSizeWithHeaders(
116
135
  GetImageSizeAsync(
117
136
  std::move(uri),
118
137
  std::move(headers),
119
- [result, context](int32_t width, int32_t height) noexcept {
138
+ [result, context](double width, double height) noexcept {
120
139
  context.JSDispatcher().Post([result = std::move(result), width, height]() noexcept {
121
- result.Resolve(React::JSValueArray{width, height});
140
+ result.Resolve(
141
+ Microsoft::ReactNativeSpecs::ImageLoaderIOSSpec_getSizeWithHeaders_returnType{width, height});
122
142
  });
123
143
  },
124
144
  [result, context]() noexcept {
@@ -132,7 +152,7 @@ void ImageLoader::getSizeWithHeaders(
132
152
  });
133
153
  }
134
154
 
135
- void ImageLoader::prefetchImage(std::string uri, React::ReactPromise<React::JSValue> &&result) noexcept {
155
+ void ImageLoader::prefetchImage(std::string uri, React::ReactPromise<bool> &&result) noexcept {
136
156
  // NYI
137
157
  result.Resolve(true);
138
158
  }
@@ -141,7 +161,7 @@ void ImageLoader::prefetchImageWithMetadata(
141
161
  std::string uri,
142
162
  std::string queryRootName,
143
163
  double rootTag,
144
- React::ReactPromise<React::JSValue> &&result) noexcept {
164
+ React::ReactPromise<bool> &&result) noexcept {
145
165
  // NYI
146
166
  result.Resolve(true);
147
167
  }
@@ -4,6 +4,7 @@
4
4
  #pragma once
5
5
 
6
6
  #include "codegen/NativeImageLoaderIOSSpec.g.h"
7
+ #include <NativeImageLoaderIOSSpec.g.h>
7
8
  #include <NativeModules.h>
8
9
  #include <winrt/Windows.ApplicationModel.h>
9
10
  #include <winrt/Windows.Foundation.h>
@@ -19,21 +20,24 @@ struct ImageLoader {
19
20
  void Initialize(React::ReactContext const &reactContext) noexcept;
20
21
 
21
22
  REACT_METHOD(getSize)
22
- void getSize(std::string uri, React::ReactPromise<React::JSValue> &&result) noexcept;
23
+ void getSize(std::string uri, React::ReactPromise<std::vector<double>> &&result) noexcept;
23
24
 
24
25
  REACT_METHOD(getSizeWithHeaders)
25
- void
26
- getSizeWithHeaders(std::string uri, React::JSValue &&headers, React::ReactPromise<React::JSValue> &&result) noexcept;
26
+ void getSizeWithHeaders(
27
+ std::string uri,
28
+ React::JSValue &&headers,
29
+ React::ReactPromise<Microsoft::ReactNativeSpecs::ImageLoaderIOSSpec_getSizeWithHeaders_returnType>
30
+ &&result) noexcept;
27
31
 
28
32
  REACT_METHOD(prefetchImage)
29
- void prefetchImage(std::string uri, React::ReactPromise<React::JSValue> &&result) noexcept;
33
+ void prefetchImage(std::string uri, React::ReactPromise<bool> &&result) noexcept;
30
34
 
31
35
  REACT_METHOD(prefetchImageWithMetadata)
32
36
  void prefetchImageWithMetadata(
33
37
  std::string uri,
34
38
  std::string queryRootName,
35
39
  double rootTag,
36
- React::ReactPromise<React::JSValue> &&result) noexcept;
40
+ React::ReactPromise<bool> &&result) noexcept;
37
41
 
38
42
  REACT_METHOD(queryCache)
39
43
  void queryCache(std::vector<std::string> const &uris, React::ReactPromise<React::JSValue> &&result) noexcept;
@@ -48,10 +48,8 @@ LinkingManager::~LinkingManager() noexcept {
48
48
  }
49
49
  }
50
50
 
51
- /*static*/ fire_and_forget LinkingManager::canOpenURL(
52
- std::string url,
53
- ::React::ReactPromise<::React::JSValue> result) noexcept {
54
- winrt::Windows::Foundation::Uri uri(Utf8ToUtf16(url));
51
+ /*static*/ fire_and_forget LinkingManager::canOpenURL(std::wstring url, ::React::ReactPromise<bool> result) noexcept {
52
+ winrt::Windows::Foundation::Uri uri(url);
55
53
  auto status = co_await Launcher::QueryUriSupportAsync(uri, LaunchQuerySupportType::Uri);
56
54
  if (status == LaunchQuerySupportStatus::Available) {
57
55
  result.Resolve(true);
@@ -60,21 +58,21 @@ LinkingManager::~LinkingManager() noexcept {
60
58
  }
61
59
  }
62
60
 
63
- fire_and_forget openUrlAsync(std::string url, ::React::ReactPromise<::React::JSValue> result) noexcept {
61
+ fire_and_forget openUrlAsync(std::wstring url, ::React::ReactPromise<void> result) noexcept {
64
62
  try {
65
- winrt::Windows::Foundation::Uri uri(Utf8ToUtf16(url));
63
+ winrt::Windows::Foundation::Uri uri(url);
66
64
 
67
65
  if (co_await Launcher::LaunchUriAsync(uri)) {
68
- result.Resolve({});
66
+ result.Resolve();
69
67
  } else {
70
- result.Reject(("Unable to open URL: " + url).c_str());
68
+ result.Reject(("Unable to open URL: " + Utf16ToUtf8(url)).c_str());
71
69
  }
72
70
  } catch (winrt::hresult_error &e) {
73
- result.Reject(("Unable to open URL: " + url + "error: " + winrt::to_string(e.message())).c_str());
71
+ result.Reject(("Unable to open URL: " + Utf16ToUtf8(url) + "error: " + winrt::to_string(e.message())).c_str());
74
72
  }
75
73
  }
76
74
 
77
- void LinkingManager::openURL(std::string &&url, ::React::ReactPromise<::React::JSValue> &&result) noexcept {
75
+ void LinkingManager::openURL(std::wstring &&url, ::React::ReactPromise<void> &&result) noexcept {
78
76
  m_context.UIDispatcher().Post(
79
77
  [url = std::move(url), result = std::move(result)]() { openUrlAsync(std::move(url), std::move(result)); });
80
78
  }
@@ -99,7 +97,7 @@ void LinkingManager::HandleOpenUri(winrt::hstring const &uri) noexcept {
99
97
  m_context.EmitJSEvent(L"RCTDeviceEventEmitter", L"url", React::JSValueObject{{"url", winrt::to_string(uri)}});
100
98
  }
101
99
 
102
- /*static*/ void LinkingManager::openSettings(::React::ReactPromise<::React::JSValue> &&result) noexcept {
100
+ /*static*/ void LinkingManager::openSettings(::React::ReactPromise<void> &&result) noexcept {
103
101
  result.Reject(L"Could not open settings. Not suported on this platform.");
104
102
  }
105
103
 
@@ -111,7 +109,7 @@ void LinkingManager::HandleOpenUri(winrt::hstring const &uri) noexcept {
111
109
  // no-op
112
110
  }
113
111
 
114
- /*static*/ void LinkingManager::getInitialURL(::React::ReactPromise<::React::JSValue> &&result) noexcept {
112
+ /*static*/ void LinkingManager::getInitialURL(::React::ReactPromise<std::string> &&result) noexcept {
115
113
  if (s_initialUri) {
116
114
  result.Resolve(to_string(s_initialUri.AbsoluteUri()));
117
115
  } else {
@@ -22,13 +22,13 @@ struct LinkingManager {
22
22
  void Initialize(React::ReactContext const &reactContext) noexcept;
23
23
 
24
24
  REACT_METHOD(canOpenURL)
25
- static winrt::fire_and_forget canOpenURL(std::string url, ::React::ReactPromise<::React::JSValue> result) noexcept;
25
+ static winrt::fire_and_forget canOpenURL(std::wstring url, ::React::ReactPromise<bool> result) noexcept;
26
26
 
27
27
  REACT_METHOD(openURL)
28
- void openURL(std::string &&url, ::React::ReactPromise<::React::JSValue> &&result) noexcept;
28
+ void openURL(std::wstring &&url, ::React::ReactPromise<void> &&result) noexcept;
29
29
 
30
30
  REACT_METHOD(openSettings)
31
- static void openSettings(::React::ReactPromise<::React::JSValue> &&result) noexcept;
31
+ static void openSettings(::React::ReactPromise<void> &&result) noexcept;
32
32
 
33
33
  REACT_METHOD(addListener)
34
34
  static void addListener(std::string eventName) noexcept;
@@ -37,7 +37,7 @@ struct LinkingManager {
37
37
  static void removeListeners(double count) noexcept;
38
38
 
39
39
  REACT_METHOD(getInitialURL)
40
- static void getInitialURL(::React::ReactPromise<::React::JSValue> &&result) noexcept;
40
+ static void getInitialURL(::React::ReactPromise<std::string> &&result) noexcept;
41
41
 
42
42
  static void OpenUri(winrt::Windows::Foundation::Uri const &uri) noexcept;
43
43
 
@@ -3,6 +3,7 @@
3
3
 
4
4
  #include "pch.h"
5
5
 
6
+ #include <QuirkSettings.h>
6
7
  #include <UI.Xaml.Controls.h>
7
8
  #include <UI.Xaml.Input.h>
8
9
  #include <UI.Xaml.Media.h>
@@ -1138,7 +1139,26 @@ void NativeUIManager::findSubviewIn(
1138
1139
 
1139
1140
  void NativeUIManager::focus(int64_t reactTag) {
1140
1141
  if (auto shadowNode = static_cast<ShadowNodeBase *>(m_host->FindShadowNodeForTag(reactTag))) {
1141
- xaml::Input::FocusManager::TryFocusAsync(shadowNode->GetView(), winrt::FocusState::Programmatic);
1142
+ const auto view = shadowNode->GetView();
1143
+
1144
+ // Only allow focus on an element with a XamlRoot that matches the current XamlRoot or that
1145
+ // has a different CoreDispatcher for the XamlRoot, otherwise focusing the element will steal
1146
+ // window focus, which is generally not desired behavior.
1147
+ const auto properties = React::ReactPropertyBag(m_context.Properties());
1148
+ if (winrt::Microsoft::ReactNative::implementation::QuirkSettings::GetSuppressWindowFocusOnViewFocus(properties)) {
1149
+ if (const auto uiElement = view.try_as<xaml::UIElement>()) {
1150
+ if (const auto activeXamlRoot = React::XamlUIService::GetXamlRoot(properties.Handle())) {
1151
+ const auto activeDispatcher = activeXamlRoot.Content() ? activeXamlRoot.Content().Dispatcher() : nullptr;
1152
+ if (uiElement.XamlRoot() != activeXamlRoot && uiElement.Dispatcher() == activeDispatcher) {
1153
+ const auto suppressedFocusMessage = L"Suppressed focus on view in XamlRoot not currently in focus.";
1154
+ m_context.CallJSFunction(L"RCTLog", L"logToConsole", L"warn", suppressedFocusMessage);
1155
+ return;
1156
+ }
1157
+ }
1158
+ }
1159
+ }
1160
+
1161
+ xaml::Input::FocusManager::TryFocusAsync(view, winrt::FocusState::Programmatic);
1142
1162
  }
1143
1163
  }
1144
1164
 
@@ -64,6 +64,13 @@ winrt::Microsoft::ReactNative::ReactPropertyId<bool> MapWindowDeactivatedToAppSt
64
64
  properties.Set(MapWindowDeactivatedToAppStateInactiveProperty(), value);
65
65
  }
66
66
 
67
+ winrt::Microsoft::ReactNative::ReactPropertyId<bool> SuppressWindowFocusOnViewFocusProperty() noexcept {
68
+ winrt::Microsoft::ReactNative::ReactPropertyId<bool> propId{
69
+ L"ReactNative.QuirkSettings", L"SuppressWindowFocusOnViewFocus"};
70
+
71
+ return propId;
72
+ }
73
+
67
74
  #pragma region IDL interface
68
75
 
69
76
  /*static*/ void QuirkSettings::SetMatchAndroidAndIOSStretchBehavior(
@@ -96,6 +103,12 @@ winrt::Microsoft::ReactNative::ReactPropertyId<bool> MapWindowDeactivatedToAppSt
96
103
  SetMapWindowDeactivatedToAppStateInactive(ReactPropertyBag(settings.Properties()), value);
97
104
  }
98
105
 
106
+ /*static*/ void QuirkSettings::SetSuppressWindowFocusOnViewFocus(
107
+ winrt::Microsoft::ReactNative::ReactInstanceSettings settings,
108
+ bool value) noexcept {
109
+ ReactPropertyBag(settings.Properties()).Set(SuppressWindowFocusOnViewFocusProperty(), value);
110
+ }
111
+
99
112
  #pragma endregion IDL interface
100
113
 
101
114
  /*static*/ bool QuirkSettings::GetMatchAndroidAndIOSStretchBehavior(ReactPropertyBag properties) noexcept {
@@ -120,4 +133,8 @@ winrt::Microsoft::ReactNative::ReactPropertyId<bool> MapWindowDeactivatedToAppSt
120
133
  return properties.Get(MapWindowDeactivatedToAppStateInactiveProperty()).value_or(false);
121
134
  }
122
135
 
136
+ /*static*/ bool QuirkSettings::GetSuppressWindowFocusOnViewFocus(ReactPropertyBag properties) noexcept {
137
+ return properties.Get(SuppressWindowFocusOnViewFocusProperty()).value_or(false);
138
+ }
139
+
123
140
  } // namespace winrt::Microsoft::ReactNative::implementation
@@ -28,6 +28,7 @@ struct QuirkSettings : QuirkSettingsT<QuirkSettings> {
28
28
  static bool GetAcceptSelfSigned(winrt::Microsoft::ReactNative::ReactPropertyBag properties) noexcept;
29
29
  static winrt::Microsoft::ReactNative::BackNavigationHandlerKind GetBackHandlerKind(
30
30
  winrt::Microsoft::ReactNative::ReactPropertyBag properties) noexcept;
31
+ static bool GetSuppressWindowFocusOnViewFocus(winrt::Microsoft::ReactNative::ReactPropertyBag properties) noexcept;
31
32
 
32
33
  static bool GetEnableFabric(winrt::Microsoft::ReactNative::ReactPropertyBag properties) noexcept;
33
34
 
@@ -54,6 +55,10 @@ struct QuirkSettings : QuirkSettingsT<QuirkSettings> {
54
55
  static void SetMapWindowDeactivatedToAppStateInactive(
55
56
  winrt::Microsoft::ReactNative::ReactInstanceSettings settings,
56
57
  bool value) noexcept;
58
+
59
+ static void SetSuppressWindowFocusOnViewFocus(
60
+ winrt::Microsoft::ReactNative::ReactInstanceSettings settings,
61
+ bool value) noexcept;
57
62
  #pragma endregion Public API - part of IDL interface
58
63
  };
59
64
 
@@ -53,5 +53,11 @@ namespace Microsoft.ReactNative
53
53
  "`inactive` tracks the [Window.Activated Event](https://docs.microsoft.com/uwp/api/windows.ui.core.corewindow.activated) when the window is deactivated.")
54
54
  DOC_DEFAULT("false")
55
55
  static void SetMapWindowDeactivatedToAppStateInactive(ReactInstanceSettings settings, Boolean value);
56
+
57
+ DOC_STRING(
58
+ "When running multiple windows from a single UI thread, focusing a native view causes the parent "
59
+ "window of that view to get focus as well. Set this setting to true to prevent focus of a blurred "
60
+ "window when a view in that window is programmatically focused.")
61
+ static void SetSuppressWindowFocusOnViewFocus(ReactInstanceSettings settings, Boolean value);
56
62
  }
57
63
  } // namespace Microsoft.ReactNative
@@ -97,6 +97,14 @@ void ReactApplication::JavaScriptBundleFile(hstring const &value) noexcept {
97
97
  InstanceSettings().JavaScriptBundleFile(value);
98
98
  }
99
99
 
100
+ hstring ReactApplication::BundleAppId() noexcept {
101
+ return InstanceSettings().BundleAppId();
102
+ }
103
+
104
+ void ReactApplication::BundleAppId(hstring const &value) noexcept {
105
+ InstanceSettings().BundleAppId(value);
106
+ }
107
+
100
108
  void ReactApplication::OnActivated(Windows::ApplicationModel::Activation::IActivatedEventArgs const &e) {
101
109
  if (e.Kind() == Windows::ApplicationModel::Activation::ActivationKind::Protocol) {
102
110
  auto protocolActivatedEventArgs{e.as<Windows::ApplicationModel::Activation::ProtocolActivatedEventArgs>()};
@@ -91,6 +91,9 @@ struct ReactApplication : NoDefaultCtorReactApplication_base<ReactApplication, x
91
91
  hstring JavaScriptBundleFile() noexcept;
92
92
  void JavaScriptBundleFile(hstring const &value) noexcept;
93
93
 
94
+ hstring BundleAppId() noexcept;
95
+ void BundleAppId(hstring const &value) noexcept;
96
+
94
97
  void OnActivated(Windows::ApplicationModel::Activation::IActivatedEventArgs const &e);
95
98
  void OnLaunched(activation::LaunchActivatedEventArgs const &e);
96
99
  void OnSuspending(IInspectable const &, Windows::ApplicationModel::SuspendingEventArgs const &);
@@ -41,5 +41,8 @@ namespace Microsoft.ReactNative
41
41
 
42
42
  DOC_STRING("See @ReactInstanceSettings.JavaScriptBundleFile.")
43
43
  String JavaScriptBundleFile { get; set; };
44
+
45
+ DOC_STRING("See @ReactInstanceSettings.BundleAppId.")
46
+ String BundleAppId { get; set; };
44
47
  }
45
48
  } // namespace Microsoft.ReactNative
@@ -41,6 +41,11 @@ Mso::React::ReactViewOptions ReactViewOptions::CreateViewOptions() noexcept {
41
41
 
42
42
  ReactCoreInjection::ReactCoreInjection() noexcept {}
43
43
 
44
+ static const ReactPropertyId<uint64_t> &TopLevelWindowIdPropertyId() noexcept {
45
+ static const ReactPropertyId<uint64_t> prop{L"ReactNative.Injection", L"TopLevelWindowId"};
46
+ return prop;
47
+ }
48
+
44
49
  /*static*/ ReactPropertyId<UIBatchCompleteCallback> ReactCoreInjection::UIBatchCompleteCallbackProperty() noexcept {
45
50
  static ReactPropertyId<UIBatchCompleteCallback> prop{L"ReactNative.Injection", L"UIBatchCompleteCallback"};
46
51
  return prop;
@@ -80,6 +85,30 @@ ReactCoreInjection::PostToUIBatchingQueueProperty() noexcept {
80
85
  postFn(callback);
81
86
  }
82
87
 
88
+ ReactPropertyId<winrt::hstring> PlatformNameOverrideProperty() noexcept {
89
+ static ReactPropertyId<winrt::hstring> prop{L"ReactNative.Injection", L"PlatformNameOverride"};
90
+ return prop;
91
+ }
92
+
93
+ /*static*/ void ReactCoreInjection::SetPlatformNameOverride(
94
+ IReactPropertyBag const &properties,
95
+ winrt::hstring const &platformName) noexcept {
96
+ ReactNative::ReactPropertyBag(properties).Set(PlatformNameOverrideProperty(), platformName);
97
+ }
98
+ /*static*/ std::string ReactCoreInjection::GetPlatformName(IReactPropertyBag const &properties) noexcept {
99
+ return winrt::to_string(ReactNative::ReactPropertyBag(properties)
100
+ .Get(PlatformNameOverrideProperty())
101
+ .value_or(winrt::to_hstring(STRING(RN_PLATFORM))));
102
+ }
103
+
104
+ uint64_t ReactCoreInjection::GetTopLevelWindowId(const IReactPropertyBag &properties) noexcept {
105
+ return ReactPropertyBag(properties).Get(TopLevelWindowIdPropertyId()).value_or(0);
106
+ }
107
+
108
+ void ReactCoreInjection::SetTopLevelWindowId(const IReactPropertyBag &properties, uint64_t windowId) noexcept {
109
+ ReactPropertyBag(properties).Set(TopLevelWindowIdPropertyId(), windowId);
110
+ }
111
+
83
112
  ReactViewHost::ReactViewHost(
84
113
  const ReactNative::ReactNativeHost &host,
85
114
  Mso::React::IReactViewHost &viewHost,
@@ -46,6 +46,12 @@ struct ReactCoreInjection : ReactCoreInjectionT<ReactCoreInjection> {
46
46
  static void PostToUIBatchingQueue(
47
47
  ReactNative::IReactContext context,
48
48
  ReactNative::ReactDispatcherCallback callback) noexcept;
49
+
50
+ static void SetPlatformNameOverride(IReactPropertyBag const &properties, winrt::hstring const &platformName) noexcept;
51
+ static std::string GetPlatformName(IReactPropertyBag const &properties) noexcept;
52
+
53
+ static uint64_t GetTopLevelWindowId(const IReactPropertyBag &properties) noexcept;
54
+ static void SetTopLevelWindowId(const IReactPropertyBag &properties, uint64_t windowId) noexcept;
49
55
  };
50
56
 
51
57
  struct ReactViewHost : public winrt::implements<ReactViewHost, IReactViewHost> {
@@ -89,6 +89,19 @@ DOC_STRING("Settings per each IReactViewHost associated with an IReactHost insta
89
89
 
90
90
  DOC_STRING("Post something to the main UI dispatcher using the batching queue")
91
91
  static void PostToUIBatchingQueue(IReactContext context, ReactDispatcherCallback callback);
92
+
93
+ DOC_STRING("Override platform name. This will change the platform used when requesting bundles from metro. Default: \"windows\"")
94
+ static void SetPlatformNameOverride(IReactPropertyBag properties, String platformName);
95
+
96
+ DOC_STRING(
97
+ "Gets the window handle HWND (as an UInt64) for the active top level application window.")
98
+ static UInt64 GetTopLevelWindowId(IReactPropertyBag properties);
99
+
100
+ DOC_STRING(
101
+ "Sets the window handle HWND (as an UInt64) for the active top level application window."
102
+ "This must be manually provided to the @ReactInstanceSettings object when using ReactNativeWindows"
103
+ "without XAML for certain APIs work correctly.")
104
+ static void SetTopLevelWindowId(IReactPropertyBag properties, UInt64 windowId);
92
105
  }
93
106
 
94
107
 
@@ -93,6 +93,13 @@ std::string ReactSettingsSnapshot::JavaScriptBundleFile() const noexcept {
93
93
  return {};
94
94
  }
95
95
 
96
+ std::string ReactSettingsSnapshot::BundleAppId() const noexcept {
97
+ if (auto instance = m_reactInstance.GetStrongPtr()) {
98
+ return instance->BundleAppId();
99
+ }
100
+ return {};
101
+ }
102
+
96
103
  JSIEngine ReactSettingsSnapshot::JsiEngine() const noexcept {
97
104
  if (auto instance = m_reactInstance.GetStrongPtr()) {
98
105
  return instance->JsiEngine();
@@ -29,6 +29,7 @@ class ReactSettingsSnapshot final : public Mso::UnknownObject<IReactSettingsSnap
29
29
  uint16_t SourceBundlePort() const noexcept override;
30
30
  bool RequestInlineSourceMap() const noexcept override;
31
31
  std::string JavaScriptBundleFile() const noexcept override;
32
+ std::string BundleAppId() const noexcept override;
32
33
  bool UseDeveloperSupport() const noexcept override;
33
34
  JSIEngine JsiEngine() const noexcept override;
34
35
 
@@ -104,6 +104,7 @@ struct IReactSettingsSnapshot : IUnknown {
104
104
  virtual uint16_t SourceBundlePort() const noexcept = 0;
105
105
  virtual bool RequestInlineSourceMap() const noexcept = 0;
106
106
  virtual std::string JavaScriptBundleFile() const noexcept = 0;
107
+ virtual std::string BundleAppId() const noexcept = 0;
107
108
  virtual bool UseDeveloperSupport() const noexcept = 0;
108
109
  virtual JSIEngine JsiEngine() const noexcept = 0;
109
110
  };
@@ -150,6 +151,7 @@ struct ReactDevOptions {
150
151
  bool RequestInlineSourceMap{true}; // Request the source map inline
151
152
  std::string SourceBundleName; // Bundle name without any extension (e.g. "index.win32"). Default: "index.{PLATFORM}"
152
153
  std::string SourceBundleExtension; // Bundle name extension. Default: ".bundle".
154
+ std::string BundleAppId; // Bundle app id. Default: "".
153
155
 
154
156
  //! Module name used for loading the debug bundle.
155
157
  //! e.g. The modules name registered in the jsbundle via AppRegistry.registerComponent('ModuleName', () =>
@@ -35,23 +35,31 @@
35
35
  #include "DynamicWriter.h"
36
36
  #ifndef CORE_ABI
37
37
  #include "ConfigureBundlerDlg.h"
38
- #include "DevMenu.h"
39
38
  #endif
39
+ #include "DevMenu.h"
40
40
  #include "IReactContext.h"
41
41
  #include "IReactDispatcher.h"
42
42
  #ifndef CORE_ABI
43
43
  #include "Modules/AccessibilityInfoModule.h"
44
44
  #include "Modules/AlertModule.h"
45
+ #endif
46
+ #if !defined(CORE_ABI) || defined(USE_FABRIC)
45
47
  #include "Modules/Animated/NativeAnimatedModule.h"
48
+ #endif
49
+ #ifndef CORE_ABI
46
50
  #include "Modules/AppStateModule.h"
47
51
  #include "Modules/AppThemeModuleUwp.h"
48
52
  #include "Modules/ClipboardModule.h"
49
53
  #endif
50
54
  #include "Modules/DevSettingsModule.h"
51
55
  #ifndef CORE_ABI
52
- #include <Modules/ImageViewManagerModule.h>
53
56
  #include "Modules/DeviceInfoModule.h"
54
57
  #include "Modules/I18nManagerModule.h"
58
+ #endif
59
+ #if !defined(CORE_ABI) || defined(USE_FABRIC)
60
+ #include <Modules/ImageViewManagerModule.h>
61
+ #endif
62
+ #ifndef CORE_ABI
55
63
  #include "Modules/LinkingManagerModule.h"
56
64
  #include "Modules/LogBoxModule.h"
57
65
  #include "Modules/NativeUIManager.h"
@@ -78,6 +86,7 @@
78
86
  #include <tuple>
79
87
  #include "ChakraRuntimeHolder.h"
80
88
 
89
+ #include <Utils/Helpers.h>
81
90
  #include "CrashManager.h"
82
91
  #include "JsiApi.h"
83
92
  #include "ReactCoreInjection.h"
@@ -246,6 +255,7 @@ ReactInstanceWin::ReactInstanceWin(
246
255
  onDestroyed = m_options.OnInstanceDestroyed,
247
256
  reactContext = m_reactContext]() noexcept {
248
257
  whenLoaded.TryCancel(); // It only has an effect if whenLoaded was not set before
258
+ facebook::react::HermesRuntimeHolder::storeTo(ReactPropertyBag(reactContext->Properties()), nullptr);
249
259
  if (onDestroyed) {
250
260
  onDestroyed.Get()->Invoke(reactContext);
251
261
  }
@@ -355,6 +365,17 @@ void ReactInstanceWin::LoadModules(
355
365
  registerTurboModule(
356
366
  L"NativeAnimatedModule",
357
367
  winrt::Microsoft::ReactNative::MakeModuleProvider<::Microsoft::ReactNative::NativeAnimatedModule>());
368
+
369
+ #elif defined(CORE_ABI) && defined(USE_FABRIC)
370
+ if (Microsoft::ReactNative::IsFabricEnabled(m_reactContext->Properties())) {
371
+ registerTurboModule(
372
+ L"ImageLoader",
373
+ winrt::Microsoft::ReactNative::MakeTurboModuleProvider<::Microsoft::ReactNative::ImageLoader>());
374
+
375
+ registerTurboModule(
376
+ L"NativeAnimatedModule",
377
+ winrt::Microsoft::ReactNative::MakeModuleProvider<::Microsoft::ReactNative::NativeAnimatedModule>());
378
+ }
358
379
  #endif
359
380
 
360
381
  registerTurboModule(
@@ -382,11 +403,13 @@ void ReactInstanceWin::Initialize() noexcept {
382
403
  #ifndef CORE_ABI
383
404
  // InitUIManager uses m_legacyReactInstance
384
405
  InitUIManager();
406
+ #endif
385
407
 
386
408
  Microsoft::ReactNative::DevMenuManager::InitDevMenu(m_reactContext, [weakReactHost = m_weakReactHost]() noexcept {
409
+ #ifndef CORE_ABI
387
410
  Microsoft::ReactNative::ShowConfigureBundlerDialog(weakReactHost);
411
+ #endif // CORE_ABI
388
412
  });
389
- #endif
390
413
 
391
414
  m_uiQueue->Post([this, weakThis = Mso::WeakPtr{this}]() noexcept {
392
415
  // Objects that must be created on the UI thread
@@ -421,20 +444,19 @@ void ReactInstanceWin::Initialize() noexcept {
421
444
  devSettings->useWebDebugger = m_useWebDebugger;
422
445
  devSettings->useFastRefresh = m_isFastReloadEnabled;
423
446
  devSettings->bundleRootPath = BundleRootPath();
424
-
447
+ devSettings->platformName =
448
+ winrt::Microsoft::ReactNative::implementation::ReactCoreInjection::GetPlatformName(
449
+ strongThis->m_reactContext->Properties());
425
450
  devSettings->waitingForDebuggerCallback = GetWaitingForDebuggerCallback();
426
451
  devSettings->debuggerAttachCallback = GetDebuggerAttachCallback();
427
452
  devSettings->enableDefaultCrashHandler = m_options.EnableDefaultCrashHandler();
428
-
429
- #ifndef CORE_ABI
453
+ devSettings->bundleAppId = BundleAppId();
430
454
  devSettings->showDevMenuCallback = [weakThis]() noexcept {
431
455
  if (auto strongThis = weakThis.GetStrongPtr()) {
432
- strongThis->m_uiQueue->Post([context = strongThis->m_reactContext]() {
433
- Microsoft::ReactNative::DevMenuManager::Show(context->Properties());
434
- });
456
+ strongThis->m_uiQueue->Post(
457
+ [context = strongThis->m_reactContext]() { Microsoft::ReactNative::DevMenuManager::Show(context); });
435
458
  }
436
459
  };
437
- #endif
438
460
 
439
461
  #ifdef CORE_ABI
440
462
  std::vector<facebook::react::NativeModuleDescription> cxxModules;
@@ -463,10 +485,14 @@ void ReactInstanceWin::Initialize() noexcept {
463
485
  std::unique_ptr<facebook::jsi::PreparedScriptStore> preparedScriptStore = nullptr;
464
486
 
465
487
  switch (m_options.JsiEngine()) {
466
- case JSIEngine::Hermes:
467
- devSettings->jsiRuntimeHolder =
488
+ case JSIEngine::Hermes: {
489
+ auto hermesRuntimeHolder =
468
490
  std::make_shared<facebook::react::HermesRuntimeHolder>(devSettings, m_jsMessageThread.Load());
491
+ facebook::react::HermesRuntimeHolder::storeTo(
492
+ ReactPropertyBag(m_reactContext->Properties()), hermesRuntimeHolder);
493
+ devSettings->jsiRuntimeHolder = hermesRuntimeHolder;
469
494
  break;
495
+ }
470
496
  case JSIEngine::V8:
471
497
  #if defined(USE_V8)
472
498
  {
@@ -480,10 +506,20 @@ void ReactInstanceWin::Initialize() noexcept {
480
506
  std::make_unique<facebook::react::BasePreparedScriptStoreImpl>(winrt::to_string(tempPath));
481
507
  }
482
508
  }
483
- }
509
+
510
+ bool enableMultiThreadSupport{false};
511
+ #ifdef USE_FABRIC
512
+ enableMultiThreadSupport = Microsoft::ReactNative::IsFabricEnabled(m_reactContext->Properties());
513
+ #endif // USE_FABRIC
514
+
484
515
  devSettings->jsiRuntimeHolder = std::make_shared<facebook::react::V8JSIRuntimeHolder>(
485
- devSettings, m_jsMessageThread.Load(), std::move(scriptStore), std::move(preparedScriptStore));
486
- break;
516
+ devSettings,
517
+ m_jsMessageThread.Load(),
518
+ std::move(scriptStore),
519
+ std::move(preparedScriptStore),
520
+ enableMultiThreadSupport);
521
+
522
+ } break;
487
523
  #endif // USE_V8
488
524
  case JSIEngine::Chakra:
489
525
  #ifndef CORE_ABI
@@ -542,7 +578,8 @@ void ReactInstanceWin::Initialize() noexcept {
542
578
 
543
579
  if (UseDeveloperSupport() && State() != ReactInstanceState::HasError) {
544
580
  folly::dynamic params = folly::dynamic::array(
545
- STRING(RN_PLATFORM),
581
+ winrt::Microsoft::ReactNative::implementation::ReactCoreInjection::GetPlatformName(
582
+ m_reactContext->Properties()),
546
583
  DebugBundlePath(),
547
584
  SourceBundleHost(),
548
585
  SourceBundlePort(),
@@ -1125,6 +1162,10 @@ std::string ReactInstanceWin::JavaScriptBundleFile() const noexcept {
1125
1162
  return m_options.Identity;
1126
1163
  }
1127
1164
 
1165
+ std::string ReactInstanceWin::BundleAppId() const noexcept {
1166
+ return m_options.DeveloperSettings.BundleAppId;
1167
+ }
1168
+
1128
1169
  bool ReactInstanceWin::UseDeveloperSupport() const noexcept {
1129
1170
  return m_options.UseDeveloperSupport();
1130
1171
  }
@@ -79,6 +79,7 @@ class ReactInstanceWin final : public Mso::ActiveObject<IReactInstanceInternal>
79
79
  uint16_t SourceBundlePort() const noexcept;
80
80
  bool RequestInlineSourceMap() const noexcept;
81
81
  std::string JavaScriptBundleFile() const noexcept;
82
+ std::string BundleAppId() const noexcept;
82
83
  bool UseDeveloperSupport() const noexcept;
83
84
  JSIEngine JsiEngine() const noexcept;
84
85