react-native-windows 0.68.3 → 0.69.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 (378) hide show
  1. package/.flowconfig +1 -3
  2. package/Chakra/ChakraHelpers.cpp +0 -1
  3. package/Directory.Build.props +3 -0
  4. package/Directory.Build.targets +1 -1
  5. package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1411 -0
  6. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +336 -0
  7. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +182 -0
  8. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -0
  9. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  10. package/Libraries/Alert/Alert.windows.js +2 -2
  11. package/Libraries/Animated/AnimatedImplementation.js +1 -1
  12. package/Libraries/Animated/NativeAnimatedHelper.js +55 -9
  13. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  14. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  15. package/Libraries/Animated/animations/TimingAnimation.js +6 -11
  16. package/Libraries/Animated/createAnimatedComponent.js +2 -2
  17. package/Libraries/Animated/nodes/AnimatedColor.js +95 -29
  18. package/Libraries/Animated/nodes/AnimatedInterpolation.js +19 -22
  19. package/Libraries/Animated/nodes/AnimatedNode.js +2 -2
  20. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  21. package/Libraries/AppState/AppState.js +1 -1
  22. package/Libraries/Blob/URL.js +7 -1
  23. package/Libraries/Components/Button.js +3 -0
  24. package/Libraries/Components/Button.windows.js +4 -0
  25. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +5 -0
  26. package/Libraries/Components/Pressable/Pressable.js +3 -3
  27. package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
  28. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +47 -38
  29. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +15 -7
  30. package/Libraries/Components/ScrollView/ScrollView.js +1 -1
  31. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -3
  32. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -1
  33. package/Libraries/Components/Slider/Slider.js +0 -2
  34. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -1
  35. package/Libraries/Components/StatusBar/StatusBar.js +6 -1
  36. package/Libraries/Components/Switch/Switch.js +11 -1
  37. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +114 -109
  38. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +17 -9
  39. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +13 -5
  40. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +10 -0
  41. package/Libraries/Components/TextInput/TextInput.js +1 -8
  42. package/Libraries/Components/TextInput/TextInput.windows.js +4 -9
  43. package/Libraries/Components/TextInput/TextInputState.js +10 -2
  44. package/Libraries/Components/TextInput/TextInputState.windows.js +10 -3
  45. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
  46. package/Libraries/Components/Touchable/TouchableBounce.js +1 -0
  47. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -0
  48. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +6 -5
  49. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -0
  50. package/Libraries/Components/Touchable/TouchableOpacity.js +7 -1
  51. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
  52. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -0
  53. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -0
  54. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  55. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
  56. package/Libraries/Components/View/View.windows.js +33 -1
  57. package/Libraries/Components/View/ViewNativeComponent.js +68 -8
  58. package/Libraries/Components/View/ViewPropTypes.js +36 -4
  59. package/Libraries/Components/View/ViewPropTypes.windows.js +36 -4
  60. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  61. package/Libraries/Core/ExceptionsManager.js +1 -1
  62. package/Libraries/Core/RawEventEmitter.js +38 -0
  63. package/Libraries/Core/ReactNativeVersion.js +2 -2
  64. package/Libraries/Core/polyfillPromise.js +32 -0
  65. package/Libraries/Core/setUpReactDevTools.js +3 -2
  66. package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
  67. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  68. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -3
  69. package/Libraries/Events/CustomEvent.js +32 -0
  70. package/Libraries/Events/EventPolyfill.js +239 -0
  71. package/Libraries/Image/Image.android.js +0 -6
  72. package/Libraries/Image/Image.ios.js +0 -6
  73. package/Libraries/Image/Image.windows.js +2 -8
  74. package/Libraries/Image/ImageViewNativeComponent.js +18 -3
  75. package/Libraries/Image/TextInlineImageNativeComponent.js +23 -15
  76. package/Libraries/Inspector/Inspector.js +2 -4
  77. package/Libraries/Interaction/BridgeSpyStallHandler.js +4 -3
  78. package/Libraries/Interaction/InteractionManager.js +1 -12
  79. package/Libraries/Interaction/TaskQueue.js +5 -4
  80. package/Libraries/LayoutAnimation/LayoutAnimation.js +13 -0
  81. package/Libraries/Linking/Linking.js +1 -1
  82. package/Libraries/Lists/FlatList.js +27 -6
  83. package/Libraries/Lists/VirtualizedList.js +71 -55
  84. package/Libraries/Lists/VirtualizedListContext.js +7 -3
  85. package/Libraries/Lists/VirtualizedSectionList.js +2 -2
  86. package/Libraries/Lists/__tests__/{FillRateHelper-test.windows.js → FillRateHelper-test.js} +2 -2
  87. package/Libraries/Lists/__tests__/{FlatList-test.windows.js → FlatList-test.js} +2 -2
  88. package/Libraries/Lists/__tests__/{SectionList-test.windows.js → SectionList-test.js} +14 -14
  89. package/Libraries/Lists/__tests__/{VirtualizeUtils-test.windows.js → VirtualizeUtils-test.js} +3 -3
  90. package/Libraries/Lists/__tests__/{VirtualizedList-test.windows.js → VirtualizedList-test.js} +91 -42
  91. package/Libraries/Lists/__tests__/{VirtualizedSectionList-test.windows.js → VirtualizedSectionList-test.js} +13 -13
  92. package/Libraries/LogBox/Data/LogBoxData.js +2 -2
  93. package/Libraries/LogBox/Data/LogBoxLog.js +1 -1
  94. package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
  95. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  96. package/Libraries/LogBox/LogBox.js +2 -21
  97. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -0
  98. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +2 -1
  99. package/Libraries/NativeComponent/BaseViewConfig.android.js +295 -0
  100. package/Libraries/NativeComponent/BaseViewConfig.ios.js +333 -0
  101. package/Libraries/NativeComponent/BaseViewConfig.windows.js +334 -0
  102. package/Libraries/NativeComponent/NativeComponentRegistry.js +0 -2
  103. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +24 -0
  104. package/Libraries/NativeComponent/StaticViewConfigValidator.js +7 -42
  105. package/Libraries/NativeComponent/ViewConfig.js +4 -4
  106. package/Libraries/NativeComponent/ViewConfigIgnore.js +54 -0
  107. package/Libraries/Network/FormData.js +7 -1
  108. package/Libraries/Pressability/Pressability.js +115 -46
  109. package/Libraries/Pressability/Pressability.windows.js +190 -74
  110. package/Libraries/Pressability/PressabilityDebug.js +5 -9
  111. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  112. package/Libraries/ReactNative/AppContainer.js +1 -1
  113. package/Libraries/ReactNative/{DummyUIManager.js → BridgelessUIManager.js} +62 -40
  114. package/Libraries/ReactNative/PaperUIManager.windows.js +5 -5
  115. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +39 -0
  116. package/Libraries/ReactNative/UIManager.js +2 -3
  117. package/Libraries/ReactNative/renderApplication.js +4 -0
  118. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +8 -0
  119. package/Libraries/Renderer/implementations/ReactFabric-dev.js +5908 -4906
  120. package/Libraries/Renderer/implementations/ReactFabric-prod.js +2100 -1918
  121. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +2567 -2352
  122. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5610 -4844
  123. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1710 -1556
  124. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1830 -1639
  125. package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
  126. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -1
  127. package/Libraries/StyleSheet/EdgeInsetsPropType.js +4 -1
  128. package/Libraries/StyleSheet/StyleSheetTypes.js +59 -66
  129. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  130. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
  131. package/Libraries/StyleSheet/private/_TransformStyle.js +53 -0
  132. package/Libraries/StyleSheet/processTransform.windows.js +272 -0
  133. package/Libraries/Text/Text.js +13 -7
  134. package/Libraries/Text/Text.windows.js +16 -7
  135. package/Libraries/Text/TextNativeComponent.js +2 -0
  136. package/Libraries/Text/TextProps.js +10 -0
  137. package/Libraries/Types/CoreEventTypes.js +13 -1
  138. package/Libraries/Types/CoreEventTypes.windows.js +26 -1
  139. package/Libraries/Utilities/Appearance.js +0 -8
  140. package/Libraries/Utilities/HMRClient.js +1 -1
  141. package/Libraries/Utilities/ReactNativeTestTools.js +1 -0
  142. package/Libraries/Utilities/codegenNativeComponent.js +17 -6
  143. package/Libraries/Utilities/stringifySafe.js +4 -1
  144. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +3 -3
  145. package/Libraries/WebSocket/WebSocket.js +1 -1
  146. package/Libraries/vendor/emitter/_EmitterSubscription.js +1 -1
  147. package/Libraries/vendor/emitter/_EventEmitter.js +1 -1
  148. package/Libraries/vendor/emitter/_EventSubscription.js +1 -1
  149. package/Microsoft.ReactNative/DynamicReader.cpp +3 -3
  150. package/Microsoft.ReactNative/Fabric/ComponentView.h +1 -0
  151. package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.cpp +36 -2
  152. package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.h +1 -0
  153. package/Microsoft.ReactNative/Fabric/DWriteHelpers.cpp +19 -0
  154. package/Microsoft.ReactNative/Fabric/DWriteHelpers.h +13 -0
  155. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +65 -19
  156. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
  157. package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +36 -10
  158. package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +2 -0
  159. package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +107 -0
  160. package/Microsoft.ReactNative/Fabric/SliderComponentView.h +51 -0
  161. package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +109 -0
  162. package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +52 -0
  163. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentDescriptor.h +197 -0
  164. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +308 -0
  165. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +52 -0
  166. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.cpp +31 -0
  167. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.h +33 -0
  168. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.cpp +81 -0
  169. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.h +132 -0
  170. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.cpp +193 -0
  171. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.h +85 -0
  172. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.cpp +76 -0
  173. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.h +99 -0
  174. package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +35 -3
  175. package/Microsoft.ReactNative/Fabric/ViewComponentView.h +1 -0
  176. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +5 -0
  177. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +5 -0
  178. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.cpp +46 -0
  179. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.h +30 -0
  180. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +2 -0
  181. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +1 -9
  182. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +3 -1
  183. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +119 -57
  184. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -1
  185. package/Microsoft.ReactNative/IViewManager.idl +3 -3
  186. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +13 -107
  187. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +2 -2
  188. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -0
  189. package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -0
  190. package/Microsoft.ReactNative/Modules/CreateModules.cpp +3 -3
  191. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -5
  192. package/Microsoft.ReactNative/Modules/TimingModule.cpp +2 -2
  193. package/Microsoft.ReactNative/Modules/TimingModule.h +2 -2
  194. package/Microsoft.ReactNative/ReactHost/{ReactContext.cpp → MsoReactContext.cpp} +1 -1
  195. package/Microsoft.ReactNative/ReactHost/{ReactContext.h → MsoReactContext.h} +0 -0
  196. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +14 -1
  197. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  198. package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +1 -1
  199. package/Microsoft.ReactNative/ReactRootView.cpp +2 -1
  200. package/Microsoft.ReactNative/RedBox.cpp +3 -2
  201. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +3 -2
  202. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +32 -0
  203. package/Microsoft.ReactNative/Views/ControlViewManager.h +11 -0
  204. package/Microsoft.ReactNative/Views/DevMenu.cpp +2 -2
  205. package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +13 -2
  206. package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +149 -22
  207. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
  208. package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +5 -11
  209. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +2 -1
  210. package/Microsoft.ReactNative/Views/SliderViewManager.cpp +12 -4
  211. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
  212. package/Microsoft.ReactNative/Views/TextViewManager.cpp +2 -2
  213. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +163 -37
  214. package/Microsoft.ReactNative/Views/TouchEventHandler.h +11 -4
  215. package/Microsoft.ReactNative/Views/ViewPanel.cpp +3 -23
  216. package/Microsoft.ReactNative/Views/ViewPanel.h +2 -3
  217. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +21 -0
  218. package/Microsoft.ReactNative/XamlUIService.cpp +1 -1
  219. package/Microsoft.ReactNative/XamlView.h +8 -3
  220. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +3 -5
  221. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +1 -1
  222. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +11 -2
  223. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -0
  224. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +10 -1
  225. package/Microsoft.ReactNative.Cxx/JSValueReader.h +2 -2
  226. package/Microsoft.ReactNative.Cxx/JSValueWriter.h +5 -5
  227. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -1
  228. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +2 -3
  229. package/Microsoft.ReactNative.Cxx/NativeModules.h +1 -1
  230. package/Microsoft.ReactNative.Cxx/ReactContext.h +3 -3
  231. package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +3 -3
  232. package/Microsoft.ReactNative.Cxx/XamlUtils.h +44 -5
  233. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +0 -6
  234. package/Mso/activeObject/activeObject.h +2 -2
  235. package/Mso/compilerAdapters/cppMacros.h +3 -5
  236. package/Mso/errorCode/errorProvider.h +2 -2
  237. package/Mso/errorCode/maybe.h +4 -4
  238. package/Mso/functional/functor.h +6 -6
  239. package/Mso/functional/functorRef.h +2 -2
  240. package/Mso/future/details/executor.h +2 -2
  241. package/Mso/future/details/futureFuncInl.h +4 -4
  242. package/Mso/future/details/ifuture.h +3 -3
  243. package/Mso/future/details/maybeInvoker.h +6 -6
  244. package/Mso/future/details/promiseGroupInl.h +4 -4
  245. package/Mso/future/details/promiseInl.h +4 -4
  246. package/Mso/future/details/resultTraits.h +4 -4
  247. package/Mso/future/details/whenAllInl.h +1 -1
  248. package/Mso/future/future.h +13 -13
  249. package/Mso/guid/msoGuidDetails.h +1 -1
  250. package/Mso/memoryApi/memoryApi.h +13 -7
  251. package/Mso/motifCpp/gTestAdapter.h +1 -1
  252. package/Mso/motifCpp/testInfo.h +7 -9
  253. package/Mso/object/make.h +8 -8
  254. package/Mso/object/objectRefCount.h +3 -5
  255. package/Mso/object/objectWithWeakRef.h +10 -14
  256. package/Mso/object/queryCast.h +4 -4
  257. package/Mso/object/refCountedObject.h +4 -4
  258. package/Mso/object/unknownObject.h +7 -7
  259. package/Mso/platformAdapters/windowsFirst.h +1 -1
  260. package/Mso/smartPtr/cntPtr.h +8 -8
  261. package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +2 -2
  262. package/Mso/src/future/futureImpl.h +1 -1
  263. package/Mso/src/memoryApi/memoryApi.cpp +4 -4
  264. package/PropertySheets/CppAppConsumeCSharpModule.props +3 -0
  265. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.props +26 -0
  266. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.Common.props +12 -0
  267. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  268. package/PropertySheets/React.Cpp.props +13 -0
  269. package/PropertySheets/WinUI.props +3 -6
  270. package/ReactCommon/ReactCommon.vcxproj +2 -4
  271. package/ReactCommon/ReactCommon.vcxproj.filters +4 -1
  272. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/JSCRuntime.cpp +1480 -0
  273. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/decorator.h +753 -0
  274. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/jsi.h +1331 -0
  275. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1431 -0
  276. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +103 -0
  277. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +87 -0
  278. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +61 -0
  279. package/ReactCommon/Yoga.cpp +1 -1
  280. package/Scripts/{Microsoft.ReactNative.ProjectReunion.nuspec → Microsoft.ReactNative.WindowsAppSDK.nuspec} +7 -9
  281. package/Scripts/OfficeReact.Win32.nuspec +1 -3
  282. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -1
  283. package/Scripts/copyRNLibraries.js +8 -8
  284. package/Scripts/just.js +1 -1
  285. package/Scripts/rnw-dependencies.ps1 +41 -10
  286. package/Scripts/run-desktop-integration-tests.js +6 -6
  287. package/Shared/AbiSafe.h +3 -3
  288. package/Shared/BaseScriptStoreImpl.cpp +1 -1
  289. package/Shared/CppRuntimeOptions.h +50 -0
  290. package/Shared/DevSupportManager.cpp +32 -36
  291. package/Shared/DevSupportManager.h +1 -2
  292. package/Shared/HermesRuntimeHolder.cpp +23 -14
  293. package/Shared/HermesRuntimeHolder.h +8 -2
  294. package/Shared/IDevSupportManager.h +1 -2
  295. package/Shared/InspectorPackagerConnection.cpp +7 -5
  296. package/Shared/InspectorPackagerConnection.h +2 -2
  297. package/Shared/JSI/ChakraApi.cpp +0 -1
  298. package/Shared/JSI/ChakraRuntime.cpp +1 -2
  299. package/Shared/JSI/RuntimeHolder.h +2 -0
  300. package/Shared/Modules/HttpModule.cpp +1 -1
  301. package/Shared/Modules/HttpModule.h +2 -2
  302. package/Shared/Modules/WebSocketModule.cpp +1 -1
  303. package/Shared/Modules/WebSocketModule.h +8 -5
  304. package/Shared/{IHttpResource.h → Networking/IHttpResource.h} +4 -4
  305. package/Shared/{IWebSocketResource.h → Networking/IWebSocketResource.h} +2 -2
  306. package/Shared/Networking/OriginPolicy.h +15 -0
  307. package/Shared/Networking/OriginPolicyHttpFilter.cpp +746 -0
  308. package/Shared/Networking/OriginPolicyHttpFilter.h +112 -0
  309. package/Shared/{WinRTHttpResource.cpp → Networking/WinRTHttpResource.cpp} +129 -99
  310. package/Shared/{WinRTHttpResource.h → Networking/WinRTHttpResource.h} +8 -12
  311. package/Shared/Networking/WinRTTypes.h +30 -0
  312. package/Shared/{WinRTWebSocketResource.cpp → Networking/WinRTWebSocketResource.cpp} +2 -2
  313. package/Shared/{WinRTWebSocketResource.h → Networking/WinRTWebSocketResource.h} +3 -3
  314. package/Shared/OInstance.cpp +5 -5
  315. package/Shared/RuntimeOptions.cpp +93 -15
  316. package/Shared/RuntimeOptions.h +22 -9
  317. package/Shared/Shared.vcxitems +122 -7
  318. package/Shared/Shared.vcxitems.filters +40 -21
  319. package/Shared/Threading/BatchingQueueThread.cpp +1 -1
  320. package/Shared/tracing/fbsystrace.h +2 -2
  321. package/codegen/NativeActionSheetManagerSpec.g.h +6 -0
  322. package/codegen/NativeAnimatedModuleSpec.g.h +43 -37
  323. package/codegen/NativeAnimatedTurboModuleSpec.g.h +43 -37
  324. package/codegen/NativePushNotificationManagerIOSSpec.g.h +2 -0
  325. package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
  326. package/codegen/react/components/rnwcore/EventEmitters.cpp +133 -0
  327. package/codegen/react/components/rnwcore/EventEmitters.h +0 -18
  328. package/codegen/react/components/rnwcore/Props.cpp +0 -13
  329. package/codegen/react/components/rnwcore/Props.h +0 -16
  330. package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
  331. package/codegen/react/components/rnwcore/ShadowNodes.h +0 -10
  332. package/include/Shared/cdebug.h +9 -9
  333. package/index.js +30 -25
  334. package/index.windows.js +30 -25
  335. package/jest/preprocessor.js +24 -107
  336. package/jest/preprocessor_DO_NOT_USE.js +122 -0
  337. package/metro.config.js +3 -70
  338. package/package.json +29 -28
  339. package/react-native.config.js +40 -6
  340. package/rntypes/index.d.ts +19 -7
  341. package/stubs/glog/logging.h +1 -1
  342. package/template/cpp-app/src/App.h +0 -4
  343. package/template/cs-app/src/App.xaml.cs +0 -5
  344. package/template/cs-app/src/MainPage.xaml.cs +1 -10
  345. package/template/cs-app-WinAppSDK/MyApp/App.xaml +16 -0
  346. package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +70 -0
  347. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +14 -0
  348. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +38 -0
  349. package/template/cs-app-WinAppSDK/MyApp/Package.appxmanifest +48 -0
  350. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +19 -0
  351. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +19 -0
  352. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +19 -0
  353. package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +10 -0
  354. package/template/cs-app-WinAppSDK/MyApp/app.manifest +15 -0
  355. package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +23 -0
  356. package/template/cs-app-WinAppSDK/proj/MyApp.csproj +49 -0
  357. package/template/cs-app-WinAppSDK/proj/MyApp.sln +43 -0
  358. package/template/cs-app-WinAppSDK/proj/NuGet.Config +17 -0
  359. package/template/metro.devMode.config.js +2 -51
  360. package/typings-index.js +5 -1
  361. package/typings-index.js.map +1 -1
  362. package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -44
  363. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -45
  364. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
  365. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.windows.js +0 -45
  366. package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -360
  367. package/Libraries/Components/View/ReactNativeViewViewConfig.windows.js +0 -390
  368. package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -83
  369. package/Libraries/ReactNative/UIManagerInjection.js +0 -15
  370. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -24527
  371. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -8309
  372. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -8961
  373. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -24948
  374. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -8400
  375. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -9049
  376. package/PropertySheets/CppEnablePackageReferences.props +0 -13
  377. package/Shared/cdebug.cpp +0 -6
  378. package/include/Shared/ViewManager.h +0 -34
@@ -50,6 +50,12 @@ class TouchEventHandler {
50
50
  winrt::IInspectable m_exitedHandler;
51
51
  winrt::IInspectable m_movedHandler;
52
52
 
53
+ #ifdef USE_WINUI3
54
+ using PointerDeviceType = winrt::Microsoft::UI::Input::PointerDeviceType;
55
+ #else
56
+ using PointerDeviceType = winrt::Windows::Devices::Input::PointerDeviceType;
57
+ #endif
58
+
53
59
  struct ReactPointer {
54
60
  int64_t target = 0;
55
61
  int64_t identifier = 0;
@@ -57,8 +63,7 @@ class TouchEventHandler {
57
63
  uint64_t timestamp = 0;
58
64
  winrt::Point positionRoot = {0, 0};
59
65
  winrt::Point positionView = {0, 0};
60
- winrt::Windows::Devices::Input::PointerDeviceType deviceType{
61
- winrt::Windows::Devices::Input::PointerDeviceType::Mouse};
66
+ PointerDeviceType deviceType{PointerDeviceType::Mouse};
62
67
  float pressure = 0;
63
68
  bool isLeftButton = false;
64
69
  bool isRightButton = false;
@@ -80,14 +85,16 @@ class TouchEventHandler {
80
85
  xaml::UIElement sourceElement,
81
86
  std::vector<int64_t> &&newViews);
82
87
 
88
+ enum class TouchEventType { Start = 0, End, Move, Cancel, CaptureLost, PointerEntered, PointerExited, PointerMove };
83
89
  #ifdef USE_FABRIC
84
90
  facebook::react::Touch TouchForPointer(const ReactPointer &pointer) noexcept;
91
+ static bool IsEndishEventType(TouchEventType eventType) noexcept;
85
92
  #endif
86
- enum class TouchEventType { Start = 0, End, Move, Cancel, CaptureLost, PointerEntered, PointerExited, PointerMove };
87
93
  void OnPointerConcluded(TouchEventType eventType, const winrt::PointerRoutedEventArgs &args);
88
94
  void DispatchTouchEvent(TouchEventType eventType, size_t pointerIndex);
89
95
  bool DispatchBackEvent();
90
- const char *GetPointerDeviceTypeName(winrt::Windows::Devices::Input::PointerDeviceType deviceType) noexcept;
96
+ const char *GetPointerDeviceTypeName(PointerDeviceType deviceType) noexcept;
97
+
91
98
  winrt::Microsoft::ReactNative::PointerEventKind GetPointerEventKind(TouchEventType eventType) noexcept;
92
99
  const wchar_t *GetTouchEventTypeName(TouchEventType eventType) noexcept;
93
100
 
@@ -47,14 +47,6 @@ winrt::AutomationPeer ViewPanel::OnCreateAutomationPeer() {
47
47
  panel->m_propertiesChanged = true;
48
48
  }
49
49
 
50
- /*static*/ void ViewPanel::PositionPropertyChanged(
51
- xaml::DependencyObject sender,
52
- xaml::DependencyPropertyChangedEventArgs e) {
53
- auto element{sender.as<xaml::UIElement>()};
54
- if (element != nullptr)
55
- InvalidateForArrange(element);
56
- }
57
-
58
50
  /*static*/ xaml::DependencyProperty ViewPanel::ViewBackgroundProperty() {
59
51
  static xaml::DependencyProperty s_viewBackgroundProperty = xaml::DependencyProperty::Register(
60
52
  L"ViewBackground",
@@ -96,23 +88,11 @@ winrt::AutomationPeer ViewPanel::OnCreateAutomationPeer() {
96
88
  }
97
89
 
98
90
  /*static*/ xaml::DependencyProperty ViewPanel::TopProperty() {
99
- static xaml::DependencyProperty s_topProperty = xaml::DependencyProperty::RegisterAttached(
100
- L"Top",
101
- winrt::xaml_typename<double>(),
102
- viewPanelTypeName,
103
- winrt::PropertyMetadata(winrt::box_value((double)0), ViewPanel::PositionPropertyChanged));
104
-
105
- return s_topProperty;
91
+ return xaml::Controls::Canvas::TopProperty();
106
92
  }
107
93
 
108
94
  /*static*/ xaml::DependencyProperty ViewPanel::LeftProperty() {
109
- static xaml::DependencyProperty s_LeftProperty = xaml::DependencyProperty::RegisterAttached(
110
- L"Left",
111
- winrt::xaml_typename<double>(),
112
- viewPanelTypeName,
113
- winrt::PropertyMetadata(winrt::box_value((double)0), ViewPanel::PositionPropertyChanged));
114
-
115
- return s_LeftProperty;
95
+ return xaml::Controls::Canvas::LeftProperty();
116
96
  }
117
97
 
118
98
  /*static*/ xaml::DependencyProperty ViewPanel::ClipChildrenProperty() {
@@ -135,7 +115,7 @@ winrt::AutomationPeer ViewPanel::OnCreateAutomationPeer() {
135
115
  InvalidateForArrange(element);
136
116
  }
137
117
 
138
- void ViewPanel::InvalidateForArrange(xaml::UIElement element) {
118
+ void ViewPanel::InvalidateForArrange(const xaml::DependencyObject &element) {
139
119
  // If the element's position has changed, we must invalidate the parent for arrange,
140
120
  // as it's the parent's responsibility to arrange its children.
141
121
  if (auto parent = VisualTreeHelper::GetParent(element)) {
@@ -77,13 +77,13 @@ struct ViewPanel : ViewPanelT<ViewPanel> {
77
77
  return winrt::unbox_value<double>(element.GetValue(LeftProperty()));
78
78
  }
79
79
 
80
+ static void InvalidateForArrange(const xaml::DependencyObject &element);
81
+
80
82
  private:
81
83
  void Remove(xaml::UIElement element) const;
82
84
 
83
85
  void UpdateClip(winrt::Windows::Foundation::Size &finalSize);
84
86
 
85
- static void InvalidateForArrange(xaml::UIElement element);
86
-
87
87
  private:
88
88
  bool m_propertiesChanged{false};
89
89
 
@@ -93,7 +93,6 @@ struct ViewPanel : ViewPanelT<ViewPanel> {
93
93
 
94
94
  private:
95
95
  static void VisualPropertyChanged(xaml::DependencyObject sender, xaml::DependencyPropertyChangedEventArgs e);
96
- static void PositionPropertyChanged(xaml::DependencyObject sender, xaml::DependencyPropertyChangedEventArgs e);
97
96
  };
98
97
 
99
98
  } // namespace winrt::Microsoft::ReactNative::implementation
@@ -7,6 +7,7 @@
7
7
 
8
8
  #include "ViewControl.h"
9
9
 
10
+ #include <UI.Xaml.Automation.Peers.h>
10
11
  #include "DynamicAutomationProperties.h"
11
12
 
12
13
  #include <JSValueWriter.h>
@@ -127,6 +128,14 @@ class ViewShadowNode : public ShadowNodeBase {
127
128
  GetControl().IsTabStop(m_isFocusable);
128
129
  }
129
130
 
131
+ bool IsAccessible() const {
132
+ return m_isAccessible;
133
+ }
134
+
135
+ void IsAccessible(bool isAccessible) {
136
+ m_isAccessible = isAccessible;
137
+ }
138
+
130
139
  bool IsHitTestBrushRequired() const {
131
140
  return IsRegisteredForMouseEvents();
132
141
  }
@@ -251,6 +260,7 @@ class ViewShadowNode : public ShadowNodeBase {
251
260
  bool m_enableFocusRing = true;
252
261
  bool m_onClick = false;
253
262
  bool m_isFocusable = false;
263
+ bool m_isAccessible = false;
254
264
  int32_t m_tabIndex = std::numeric_limits<std::int32_t>::max();
255
265
 
256
266
  xaml::Controls::ContentControl::GotFocus_revoker m_contentControlGotFocusRevoker{};
@@ -420,6 +430,11 @@ bool ViewViewManager::UpdateProperty(
420
430
  pViewShadowNode->TabIndex(std::numeric_limits<std::int32_t>::max());
421
431
  }
422
432
  } else {
433
+ if (propertyName == "accessible") {
434
+ if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Boolean) {
435
+ pViewShadowNode->IsAccessible(propertyValue.AsBoolean());
436
+ }
437
+ }
423
438
  ret = Super::UpdateProperty(nodeToUpdate, propertyName, propertyValue);
424
439
  }
425
440
  }
@@ -563,6 +578,12 @@ void ViewViewManager::TryUpdateView(
563
578
 
564
579
  if (useControl)
565
580
  pViewShadowNode->GetControl().Content(visualRoot);
581
+
582
+ if (useControl && pViewShadowNode->IsAccessible() != pViewShadowNode->IsFocusable()) {
583
+ pViewShadowNode->GetControl().IsTabStop(false);
584
+ xaml::Automation::AutomationProperties::SetAccessibilityView(
585
+ pViewShadowNode->GetControl(), xaml::Automation::Peers::AccessibilityView::Raw);
586
+ }
566
587
  }
567
588
 
568
589
  void ViewViewManager::SetLayoutProps(
@@ -37,7 +37,7 @@ void XamlUIService::DispatchEvent(
37
37
  JSValueArgWriter const &eventDataArgWriter) noexcept {
38
38
  auto paramsWriter = winrt::make_self<DynamicWriter>();
39
39
  paramsWriter->WriteArrayBegin();
40
- paramsWriter->WriteInt64(unbox_value<int64_t>(view.Tag()));
40
+ paramsWriter->WriteInt64(::Microsoft::ReactNative::GetTag(view));
41
41
  paramsWriter->WriteString(eventName);
42
42
  if (eventDataArgWriter) {
43
43
  eventDataArgWriter(*paramsWriter);
@@ -8,14 +8,19 @@
8
8
  namespace Microsoft::ReactNative {
9
9
 
10
10
  using XamlView = xaml::DependencyObject;
11
+ constexpr int64_t InvalidTag = -1;
11
12
 
12
13
  inline int64_t GetTag(XamlView view) {
13
14
  auto tagValue = view.ReadLocalValue(xaml::FrameworkElement::TagProperty());
14
15
  if (tagValue != xaml::DependencyProperty::UnsetValue()) {
15
- return tagValue.as<winrt::IPropertyValue>().GetInt64();
16
- } else {
17
- return -1;
16
+ if (auto tagValueInt = tagValue.try_as<winrt::IPropertyValue>()) {
17
+ if (tagValueInt.Type() == winrt::PropertyType::Int64) {
18
+ return tagValueInt.GetInt64();
19
+ }
20
+ }
18
21
  }
22
+
23
+ return InvalidTag;
19
24
  }
20
25
 
21
26
  inline void SetTag(XamlView view, int64_t tag) {
@@ -17,13 +17,12 @@ namespace xaml = winrt::Windows::UI::Xaml;
17
17
  namespace comp = winrt::Windows::UI::Composition;
18
18
  namespace ui = winrt::Windows::UI;
19
19
  namespace winrt {
20
- namespace system = winrt::Windows::System;
21
- using ColorHelper = winrt::Windows::UI::ColorHelper;
20
+ namespace dispatching = winrt::Windows::System;
22
21
  using Colors = winrt::Windows::UI::Colors;
23
22
  } // namespace winrt
24
23
  #else
25
24
 
26
- #include <winrt/Microsoft.System.h>
25
+ #include <winrt/Microsoft.UI.Dispatching.h>
27
26
  #include <winrt/Microsoft.UI.Xaml.h>
28
27
 
29
28
  #define XAML_CPPWINRT_NAMESPACE winrt::Microsoft::UI::Xaml
@@ -31,8 +30,7 @@ namespace xaml = winrt::Microsoft::UI::Xaml;
31
30
  namespace comp = winrt::Microsoft::UI::Composition;
32
31
  namespace ui = winrt::Microsoft::UI;
33
32
  namespace winrt {
34
- namespace system = winrt::Microsoft::System;
35
- using ColorHelper = winrt::Microsoft::UI::ColorHelper;
33
+ namespace dispatching = winrt::Microsoft::UI::Dispatching;
36
34
  using Colors = winrt::Microsoft::UI::Colors;
37
35
  } // namespace winrt
38
36
 
@@ -92,7 +92,7 @@ __declspec(selectany) std::unordered_map<std::wstring, IndirectLibrary> indirect
92
92
  } // namespace details
93
93
 
94
94
  template <typename TFn, typename... TArgs>
95
- auto CallIndirect(const wchar_t *dllName, const char *fnName, TArgs &&... args) noexcept {
95
+ auto CallIndirect(const wchar_t *dllName, const char *fnName, TArgs &&...args) noexcept {
96
96
  if (details::indirectLibraries.count(dllName) == 0) {
97
97
  details::indirectLibraries.emplace(dllName, WINRT_IMPL_LoadLibraryW(dllName));
98
98
  }
@@ -306,6 +306,15 @@ PropNameID JsiAbiRuntime::createPropNameIDFromString(const String &str) try {
306
306
  throw;
307
307
  }
308
308
 
309
+ PropNameID JsiAbiRuntime::createPropNameIDFromSymbol(const Symbol &sym) {
310
+ // TODO: Support for symbols through the native API in JSC is very limited.
311
+ // While we could construct a PropNameID here, we would not be able to get a
312
+ // symbol property through the C++ API.
313
+ UNREFERENCED_PARAMETER(sym);
314
+ RethrowJsiError();
315
+ throw;
316
+ }
317
+
309
318
  std::string JsiAbiRuntime::utf8(const PropNameID &propertyId) try {
310
319
  std::string dataResult;
311
320
  m_runtime.PropertyIdToUtf8(AsJsiPropertyIdRef(propertyId), [&dataResult](array_view<uint8_t const> utf8) {
@@ -994,7 +1003,7 @@ size_t JsiAbiRuntime::ValueRefArray::Size() const noexcept {
994
1003
  //===========================================================================
995
1004
 
996
1005
  JsiAbiRuntime::PropNameIDRef::PropNameIDRef(JsiPropertyIdRef const &data) noexcept
997
- : m_propertyId{make<PropNameID>(new (std::addressof(m_pointerStore)) DataPointerValue(data.Data))} {}
1006
+ : m_propertyId{make<PropNameID>(new(std::addressof(m_pointerStore)) DataPointerValue(data.Data))} {}
998
1007
 
999
1008
  JsiAbiRuntime::PropNameIDRef::~PropNameIDRef() noexcept {}
1000
1009
 
@@ -1004,4 +1013,4 @@ JsiAbiRuntime::PropNameIDRef::operator facebook::jsi::PropNameID const &() const
1004
1013
 
1005
1014
  } // namespace winrt::Microsoft::ReactNative
1006
1015
 
1007
- #pragma warning(pop)
1016
+ #pragma warning(pop)
@@ -99,6 +99,7 @@ struct JsiAbiRuntime : facebook::jsi::Runtime {
99
99
  facebook::jsi::PropNameID createPropNameIDFromAscii(const char *str, size_t length) override;
100
100
  facebook::jsi::PropNameID createPropNameIDFromUtf8(const uint8_t *utf8, size_t length) override;
101
101
  facebook::jsi::PropNameID createPropNameIDFromString(const facebook::jsi::String &str) override;
102
+ facebook::jsi::PropNameID createPropNameIDFromSymbol(const facebook::jsi::Symbol &sym);
102
103
  std::string utf8(const facebook::jsi::PropNameID &propertyNameId) override;
103
104
  bool compare(const facebook::jsi::PropNameID &left, const facebook::jsi::PropNameID &right) override;
104
105
 
@@ -137,6 +137,7 @@ struct NapiJsiRuntime : facebook::jsi::Runtime {
137
137
  facebook::jsi::PropNameID createPropNameIDFromAscii(const char *str, size_t length) override;
138
138
  facebook::jsi::PropNameID createPropNameIDFromUtf8(const uint8_t *utf8, size_t length) override;
139
139
  facebook::jsi::PropNameID createPropNameIDFromString(const facebook::jsi::String &str) override;
140
+ facebook::jsi::PropNameID createPropNameIDFromSymbol(const facebook::jsi::Symbol &sym);
140
141
  std::string utf8(const facebook::jsi::PropNameID &id) override;
141
142
  bool compare(const facebook::jsi::PropNameID &lhs, const facebook::jsi::PropNameID &rhs) override;
142
143
 
@@ -711,6 +712,14 @@ PropNameID NapiJsiRuntime::createPropNameIDFromString(const String &str) {
711
712
  return MakePointer<PropNameID>(uniqueStr);
712
713
  }
713
714
 
715
+ PropNameID NapiJsiRuntime::createPropNameIDFromSymbol(const Symbol &sym) {
716
+ // TODO: Support for symbols through the native API in JSC is very limited.
717
+ // While we could construct a PropNameID here, we would not be able to get a
718
+ // symbol property through the C++ API.
719
+ UNREFERENCED_PARAMETER(sym);
720
+ throw;
721
+ }
722
+
714
723
  string NapiJsiRuntime::utf8(const PropNameID &id) {
715
724
  EnvScope scope{m_env};
716
725
 
@@ -1245,7 +1254,7 @@ size_t NapiJsiRuntime::JsiValueViewArgs::Size() const noexcept {
1245
1254
  #pragma region PropNameIDView
1246
1255
 
1247
1256
  NapiJsiRuntime::PropNameIDView::PropNameIDView(NapiJsiRuntime *runtime, napi_value propertyId) noexcept
1248
- : m_propertyId{make<PropNameID>(new (std::addressof(m_pointerStore)) NapiPointerValueView{runtime, propertyId})} {}
1257
+ : m_propertyId{make<PropNameID>(new(std::addressof(m_pointerStore)) NapiPointerValueView{runtime, propertyId})} {}
1249
1258
 
1250
1259
  NapiJsiRuntime::PropNameIDView::operator PropNameID const &() const noexcept {
1251
1260
  return m_propertyId;
@@ -90,7 +90,7 @@ void ReadValue(IJSValueReader const &reader, /*out*/ T &value) noexcept;
90
90
 
91
91
  bool SkipArrayToEnd(IJSValueReader const &reader) noexcept;
92
92
  template <class... TArgs>
93
- void ReadArgs(IJSValueReader const &reader, /*out*/ TArgs &... args) noexcept;
93
+ void ReadArgs(IJSValueReader const &reader, /*out*/ TArgs &...args) noexcept;
94
94
 
95
95
  //===========================================================================
96
96
  // IJSValueReader extensions implementation
@@ -432,7 +432,7 @@ inline bool SkipArrayToEnd(IJSValueReader const &reader) noexcept {
432
432
  }
433
433
 
434
434
  template <class... TArgs>
435
- inline void ReadArgs(IJSValueReader const &reader, /*out*/ TArgs &... args) noexcept {
435
+ inline void ReadArgs(IJSValueReader const &reader, /*out*/ TArgs &...args) noexcept {
436
436
  // Read as many arguments as we can or return default values.
437
437
  bool success = reader.ValueType() == JSValueType::Array;
438
438
  ((success = success && reader.GetNextArrayItem(), args = success ? ReadValue<TArgs>(reader) : TArgs{}), ...);
@@ -64,10 +64,10 @@ template <class T>
64
64
  void WriteProperties(IJSValueWriter const &writer, T const &value) noexcept;
65
65
 
66
66
  template <class... TArgs>
67
- void WriteArgs(IJSValueWriter const &writer, TArgs const &... args) noexcept;
67
+ void WriteArgs(IJSValueWriter const &writer, TArgs const &...args) noexcept;
68
68
 
69
69
  template <class... TArgs>
70
- JSValueArgWriter MakeJSValueArgWriter(TArgs &&... args) noexcept;
70
+ JSValueArgWriter MakeJSValueArgWriter(TArgs &&...args) noexcept;
71
71
 
72
72
  IJSValueWriter MakeJSValueTreeWriter() noexcept;
73
73
 
@@ -264,7 +264,7 @@ inline void WriteProperties(IJSValueWriter const &writer, T const &value) noexce
264
264
  }
265
265
 
266
266
  template <class... TArgs>
267
- inline void WriteArgs(IJSValueWriter const &writer, TArgs const &... args) noexcept {
267
+ inline void WriteArgs(IJSValueWriter const &writer, TArgs const &...args) noexcept {
268
268
  writer.WriteArrayBegin();
269
269
  (WriteValue(writer, args), ...);
270
270
  writer.WriteArrayEnd();
@@ -276,7 +276,7 @@ inline JSValueArgWriter MakeJSValueArgWriter(T &&argWriter) noexcept {
276
276
  }
277
277
 
278
278
  template <class... TArgs>
279
- inline JSValueArgWriter MakeJSValueArgWriter(TArgs &&... args) noexcept {
279
+ inline JSValueArgWriter MakeJSValueArgWriter(TArgs &&...args) noexcept {
280
280
  return [&args...](IJSValueWriter const &writer) noexcept { WriteArgs(writer, args...); };
281
281
  }
282
282
 
@@ -286,7 +286,7 @@ inline JSValueArgWriter MakeJSValueWriter(T &&argWriter) noexcept {
286
286
  }
287
287
 
288
288
  template <class... TArgs>
289
- inline JSValueArgWriter MakeJSValueWriter(TArgs &&... args) noexcept {
289
+ inline JSValueArgWriter MakeJSValueWriter(TArgs &&...args) noexcept {
290
290
  return [&args...](IJSValueWriter const &[[maybe_unused]] writer) noexcept { (WriteValue(writer, args), ...); };
291
291
  }
292
292
 
@@ -12,6 +12,8 @@
12
12
  <CallInvoker_SourcePath Condition="'$(CallInvoker_SourcePath)' == '' AND Exists('$(MSBuildThisFileDirectory)ReactCommon\CallInvoker.h')">$(MSBuildThisFileDirectory)</CallInvoker_SourcePath>
13
13
  <TurboModule_SourcePath Condition="'$(TurboModule_SourcePath)' == '' AND '$(ReactNativeDir)' != ''">$(ReactNativeDir)\ReactCommon\react\nativemodule\core</TurboModule_SourcePath>
14
14
  <TurboModule_SourcePath Condition="'$(TurboModule_SourcePath)' == '' AND Exists('$(MSBuildThisFileDirectory)ReactCommon\TurboModule.h')">$(MSBuildThisFileDirectory)</TurboModule_SourcePath>
15
+ <Bridging_SourcePath Condition="'$(Bridging_SourcePath)' == '' AND '$(ReactNativeDir)' != ''">$(ReactNativeDir)\ReactCommon\react\bridging</Bridging_SourcePath>
16
+ <Bridging_SourcePath Condition="'$(Bridging_SourcePath)' == '' AND Exists('$(MSBuildThisFileDirectory)ReactCommon\TurboModule.h')">$(MSBuildThisFileDirectory)</Bridging_SourcePath>
15
17
  </PropertyGroup>
16
18
  <ItemDefinitionGroup>
17
19
  <ClCompile>
@@ -20,6 +22,7 @@
20
22
  $(JSI_SourcePath);
21
23
  $(CallInvoker_SourcePath);
22
24
  $(TurboModule_SourcePath);
25
+ $(Bridging_SourcePath);
23
26
  %(AdditionalIncludeDirectories)
24
27
  </AdditionalIncludeDirectories>
25
28
  </ClCompile>
@@ -40,6 +43,7 @@
40
43
  <ClInclude Include="$(CallInvoker_SourcePath)\ReactCommon\CallInvoker.h" />
41
44
  <ClInclude Include="$(MSBuildThisFileDirectory)XamlUtils.h" />
42
45
  <ClInclude Include="$(TurboModule_SourcePath)\ReactCommon\LongLivedObject.h" />
46
+ <ClInclude Include="$(Bridging_SourcePath)\CallbackWrapper.h" />
43
47
  <ClInclude Include="$(TurboModule_SourcePath)\ReactCommon\TurboModule.h" />
44
48
  <ClInclude Include="$(TurboModule_SourcePath)\ReactCommon\TurboModuleUtils.h" />
45
49
  <ClInclude Include="$(MSBuildThisFileDirectory)CppWinRTIncludes.h" />
@@ -104,7 +108,7 @@
104
108
  <PrecompiledHeader>NotUsing</PrecompiledHeader>
105
109
  <DisableSpecificWarnings>%(DisableSpecificWarnings);4100</DisableSpecificWarnings>
106
110
  </ClCompile>
107
- <ClCompile Include="$(TurboModule_SourcePath)\ReactCommon\LongLivedObject.cpp">
111
+ <ClCompile Include="$(TurboModule_SourcePath)\..\..\bridging\LongLivedObject.cpp">
108
112
  <PrecompiledHeader>NotUsing</PrecompiledHeader>
109
113
  <DisableSpecificWarnings>%(DisableSpecificWarnings);4100</DisableSpecificWarnings>
110
114
  </ClCompile>
@@ -18,9 +18,6 @@
18
18
  <ClCompile Include="$(TurboModule_SourcePath)\ReactCommon\TurboModule.cpp">
19
19
  <Filter>TurboModule</Filter>
20
20
  </ClCompile>
21
- <ClCompile Include="$(TurboModule_SourcePath)\ReactCommon\LongLivedObject.cpp">
22
- <Filter>TurboModule</Filter>
23
- </ClCompile>
24
21
  <ClCompile Include="$(TurboModule_SourcePath)\ReactCommon\TurboModuleUtils.cpp">
25
22
  <Filter>TurboModule</Filter>
26
23
  </ClCompile>
@@ -30,6 +27,7 @@
30
27
  <ClCompile Include="$(MSBuildThisFileDirectory)JSI\NodeApiJsiRuntime.cpp">
31
28
  <Filter>JSI</Filter>
32
29
  </ClCompile>
30
+ <ClCompile Include="$(TurboModule_SourcePath)\..\..\bridging\LongLivedObject.cpp" />
33
31
  </ItemGroup>
34
32
  <ItemGroup>
35
33
  <ClInclude Include="$(MSBuildThisFileDirectory)Crash.h" />
@@ -152,6 +150,7 @@
152
150
  <ClInclude Include="$(MSBuildThisFileDirectory)JSI\NodeApiJsiRuntime.h">
153
151
  <Filter>JSI</Filter>
154
152
  </ClInclude>
153
+ <ClInclude Include="$(Bridging_SourcePath)\CallbackWrapper.h" />
155
154
  </ItemGroup>
156
155
  <ItemGroup>
157
156
  <Filter Include="JSI">
@@ -280,7 +280,7 @@ struct IsPromise<ReactPromise<T>> : std::true_type {};
280
280
  template <class TArgsTuple>
281
281
  constexpr size_t GetPromiseCount() noexcept {
282
282
  if constexpr (
283
- std::tuple_size_v<TArgsTuple> > 0 &&
283
+ std::tuple_size_v < TArgsTuple >> 0 &&
284
284
  IsPromise<TupleElementOrVoid<std::tuple_size_v<TArgsTuple> - 1, TArgsTuple>>::value) {
285
285
  return 1;
286
286
  } else {
@@ -53,7 +53,7 @@ struct ReactContext {
53
53
  // Call methodName JS function of module with moduleName.
54
54
  // args are either function arguments or a single lambda with 'IJSValueWriter const&' argument.
55
55
  template <class... TArgs>
56
- void CallJSFunction(std::wstring_view moduleName, std::wstring_view methodName, TArgs &&... args) const noexcept {
56
+ void CallJSFunction(std::wstring_view moduleName, std::wstring_view methodName, TArgs &&...args) const noexcept {
57
57
  m_handle.CallJSFunction(moduleName, methodName, MakeJSValueArgWriter(std::forward<TArgs>(args)...));
58
58
  }
59
59
 
@@ -61,7 +61,7 @@ struct ReactContext {
61
61
  // Call eventName JS event of module with eventEmitterName.
62
62
  // args are either function arguments or a single lambda with 'IJSValueWriter const&' argument.
63
63
  template <class... TArgs>
64
- void EmitJSEvent(std::wstring_view eventEmitterName, std::wstring_view eventName, TArgs &&... args) const noexcept {
64
+ void EmitJSEvent(std::wstring_view eventEmitterName, std::wstring_view eventName, TArgs &&...args) const noexcept {
65
65
  m_handle.EmitJSEvent(eventEmitterName, eventName, MakeJSValueWriter(std::forward<TArgs>(args)...));
66
66
  }
67
67
 
@@ -69,7 +69,7 @@ struct ReactContext {
69
69
  // Dispatch eventName event to the view.
70
70
  // args are either function arguments or a single lambda with 'IJSValueWriter const&' argument.
71
71
  template <class... TArgs>
72
- void DispatchEvent(xaml::FrameworkElement const &view, std::wstring_view eventName, TArgs &&... args) const noexcept {
72
+ void DispatchEvent(xaml::FrameworkElement const &view, std::wstring_view eventName, TArgs &&...args) const noexcept {
73
73
  XamlUIService::FromContext(m_handle).DispatchEvent(
74
74
  view, eventName, MakeJSValueWriter(std::forward<TArgs>(args)...));
75
75
  }
@@ -22,7 +22,7 @@ template <class T>
22
22
  struct ReactNonAbiValue : implements<ReactNonAbiValue<T>, IReactNonAbiValue> {
23
23
  // Create ReactNonAbiValue and construct the wrapped value.
24
24
  template <class... TArgs>
25
- ReactNonAbiValue(TArgs &&... args) noexcept : m_value{std::forward<TArgs>(args)...} {}
25
+ ReactNonAbiValue(TArgs &&...args) noexcept : m_value{std::forward<TArgs>(args)...} {}
26
26
 
27
27
  // Get a pointer to the wrapped value.
28
28
  int64_t GetPtr() const noexcept {
@@ -47,7 +47,7 @@ template <class T>
47
47
  struct ReactNonAbiValue : Windows::Foundation::IInspectable {
48
48
  // Create a new instance of implementation::ReactNonAbiValue with args and keep a ref-counted pointer to it.
49
49
  template <class... TArgs>
50
- ReactNonAbiValue(std::in_place_t, TArgs &&... args) noexcept
50
+ ReactNonAbiValue(std::in_place_t, TArgs &&...args) noexcept
51
51
  : IInspectable{make<implementation::ReactNonAbiValue<T>>(std::forward<TArgs>(args)...)} {}
52
52
 
53
53
  // Create an empty ReactNonAbiValue.
@@ -100,7 +100,7 @@ struct ReactNonAbiValue : Windows::Foundation::IInspectable {
100
100
  // Call the call operator() for the stored value.
101
101
  // Crash the app if ReactNonAbiValue is empty.
102
102
  template <class... TArgs>
103
- auto operator()(TArgs &&... args) const {
103
+ auto operator()(TArgs &&...args) const {
104
104
  return (*GetPtr())(std::forward<TArgs>(args)...);
105
105
  }
106
106
  };
@@ -8,16 +8,55 @@
8
8
 
9
9
  #include "CppWinRTIncludes.h"
10
10
 
11
+ extern "C" {
12
+ HMODULE
13
+ WINAPI
14
+ WINRT_IMPL_GetModuleHandleW(_In_opt_ LPCWSTR lpModuleName);
15
+ }
16
+
17
+ #ifndef WINRT_IMPL_LINK
18
+ #ifdef _M_HYBRID
19
+ #define WINRT_IMPL_LINK(function, count) \
20
+ __pragma(comment(linker, "/alternatename:#WINRT_IMPL_" #function "@" #count "=#" #function "@" #count))
21
+ #elif _M_ARM64EC
22
+ #define WINRT_IMPL_LINK(function, count) \
23
+ __pragma(comment(linker, "/alternatename:#WINRT_IMPL_" #function "=#" #function))
24
+ #elif _M_IX86
25
+ #define WINRT_IMPL_LINK(function, count) \
26
+ __pragma(comment(linker, "/alternatename:_WINRT_IMPL_" #function "@" #count "=_" #function "@" #count))
27
+ #else
28
+ #define WINRT_IMPL_LINK(function, count) __pragma(comment(linker, "/alternatename:WINRT_IMPL_" #function "=" #function))
29
+ #endif
30
+ #endif
31
+ WINRT_IMPL_LINK(GetModuleHandleW, 4);
32
+ #undef WINRT_IMPL_LINK
33
+
11
34
  namespace XAML_CPPWINRT_NAMESPACE {
12
35
 
13
36
  // Return Application::Current() when it is present or nullptr otherwise.
14
37
  // It does not throw exception as Application::Current() does.
15
38
  inline Application TryGetCurrentApplication() noexcept {
16
- auto applicationStatics = get_activation_factory<IApplicationStatics>(name_of<Application>());
17
- auto abiApplicationStatics = static_cast<impl::abi_t<IApplicationStatics> *>(get_abi(applicationStatics));
18
- void *value{};
19
- abiApplicationStatics->get_Current(&value);
20
- return Application{value, take_ownership_from_abi};
39
+ #ifndef USE_WINUI3
40
+ constexpr auto xamlDll = L"Windows.UI.Xaml.dll";
41
+ #else
42
+ constexpr auto xamlDll = L"Microsoft.UI.Xaml.dll";
43
+ #endif
44
+
45
+ if (auto xamlIsLoaded = WINRT_IMPL_GetModuleHandleW(xamlDll)) {
46
+ auto applicationStatics = get_activation_factory<IApplicationStatics>(name_of<Application>());
47
+ auto abiApplicationStatics = static_cast<impl::abi_t<IApplicationStatics> *>(get_abi(applicationStatics));
48
+ void *value{};
49
+ abiApplicationStatics->get_Current(&value);
50
+ return Application{value, take_ownership_from_abi};
51
+ } else {
52
+ // If we don't have XAML loaded, we are not a XAML app
53
+ return nullptr;
54
+ }
21
55
  }
22
56
 
57
+ // Using Windows::UI::ColorHelper causes the process to load Windows.UI.Xaml.dll which is not needed just to fill a
58
+ // Color struct
59
+ inline winrt::Windows::UI::Color FromArgb(uint8_t a, uint8_t r, uint8_t g, uint8_t b) {
60
+ return winrt::Windows::UI::Color{a, r, g, b};
61
+ }
23
62
  } // namespace XAML_CPPWINRT_NAMESPACE
@@ -31,7 +31,6 @@
31
31
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
32
32
  <PlatformTarget>x86</PlatformTarget>
33
33
  <DebugSymbols>true</DebugSymbols>
34
- <OutputPath>bin\x86\Debug\</OutputPath>
35
34
  <DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
36
35
  <DebugType>full</DebugType>
37
36
  <UseVSHostingProcess>false</UseVSHostingProcess>
@@ -39,7 +38,6 @@
39
38
  </PropertyGroup>
40
39
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
41
40
  <PlatformTarget>x86</PlatformTarget>
42
- <OutputPath>bin\x86\Release\</OutputPath>
43
41
  <DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
44
42
  <Optimize>true</Optimize>
45
43
  <DebugType>pdbonly</DebugType>
@@ -49,7 +47,6 @@
49
47
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM64'">
50
48
  <PlatformTarget>ARM64</PlatformTarget>
51
49
  <DebugSymbols>true</DebugSymbols>
52
- <OutputPath>bin\ARM64\Debug\</OutputPath>
53
50
  <DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
54
51
  <DebugType>full</DebugType>
55
52
  <UseVSHostingProcess>false</UseVSHostingProcess>
@@ -57,7 +54,6 @@
57
54
  </PropertyGroup>
58
55
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM64'">
59
56
  <PlatformTarget>ARM64</PlatformTarget>
60
- <OutputPath>bin\ARM64\Release\</OutputPath>
61
57
  <DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
62
58
  <Optimize>true</Optimize>
63
59
  <DebugType>pdbonly</DebugType>
@@ -67,7 +63,6 @@
67
63
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
68
64
  <PlatformTarget>x64</PlatformTarget>
69
65
  <DebugSymbols>true</DebugSymbols>
70
- <OutputPath>bin\x64\Debug\</OutputPath>
71
66
  <DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
72
67
  <DebugType>full</DebugType>
73
68
  <UseVSHostingProcess>false</UseVSHostingProcess>
@@ -75,7 +70,6 @@
75
70
  </PropertyGroup>
76
71
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
77
72
  <PlatformTarget>x64</PlatformTarget>
78
- <OutputPath>bin\x64\Release\</OutputPath>
79
73
  <DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
80
74
  <Optimize>true</Optimize>
81
75
  <DebugType>pdbonly</DebugType>
@@ -56,7 +56,7 @@ struct ActiveObjectMakePolicy {
56
56
  static const bool IsNoExcept{true};
57
57
 
58
58
  template <typename T, typename TMemoryGuard, typename... TArgs>
59
- static void Make(TMemoryGuard &memoryGuard, TArgs &&... args) noexcept;
59
+ static void Make(TMemoryGuard &memoryGuard, TArgs &&...args) noexcept;
60
60
  };
61
61
 
62
62
  //! Custom deleter to call Finalize() or FinalizeSync() from the associated queue.
@@ -159,7 +159,7 @@ struct ActiveObjectBase : IUnknown {
159
159
  //=============================================================================================
160
160
 
161
161
  template <typename T, typename TMemoryGuard, typename... TArgs>
162
- /*static*/ void ActiveObjectMakePolicy::Make(TMemoryGuard &memoryGuard, TArgs &&... args) noexcept {
162
+ /*static*/ void ActiveObjectMakePolicy::Make(TMemoryGuard &memoryGuard, TArgs &&...args) noexcept {
163
163
  memoryGuard.Obj = ::new (memoryGuard.ObjMemory) T{std::forward<TArgs>(args)...};
164
164
  memoryGuard.ObjMemory = nullptr; // Memory is now controlled by the object. Set to null to avoid memory destruction.
165
165
 
@@ -29,11 +29,9 @@
29
29
  Make the macro act like a statement.
30
30
  */
31
31
  #ifndef __GNUC__
32
- #define Statement(x) \
33
- __pragma(warning(push)) __pragma(warning(disable : 4127 25037)) do { \
34
- x; \
35
- } \
36
- while (0) \
32
+ #define Statement(x) \
33
+ __pragma(warning(push)) __pragma(warning(disable : 4127 25037)) do { x; } \
34
+ while (0) \
37
35
  __pragma(warning(pop))
38
36
  #else
39
37
  #define Statement(x) \