react-native-windows 0.73.10 → 0.74.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 (773) hide show
  1. package/.flowconfig +12 -7
  2. package/Chakra/ChakraUtils.cpp +5 -10
  3. package/Chakra/ChakraUtils.h +2 -2
  4. package/Common/packages.lock.json +3 -3
  5. package/Directory.Build.props +5 -5
  6. package/Folly/Folly.vcxproj +2 -2
  7. package/Folly/Folly.vcxproj.filters +7 -0
  8. package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +22 -1
  9. package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +4 -1
  10. package/Folly/cgmanifest.json +1 -1
  11. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +6 -0
  12. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +6 -0
  13. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +4 -45
  14. package/Libraries/Alert/Alert.windows.js +2 -3
  15. package/Libraries/Alert/NativeAlertManager.js +4 -26
  16. package/Libraries/Animated/Animated.js +2 -2
  17. package/Libraries/Animated/AnimatedPlatformConfig.js +1 -1
  18. package/Libraries/Animated/NativeAnimatedHelper.js +14 -11
  19. package/Libraries/Animated/NativeAnimatedModule.js +4 -68
  20. package/Libraries/Animated/NativeAnimatedTurboModule.js +4 -69
  21. package/Libraries/Animated/animations/Animation.js +6 -22
  22. package/Libraries/Animated/components/AnimatedFlatList.js +1 -16
  23. package/Libraries/Animated/components/AnimatedScrollView.js +36 -31
  24. package/Libraries/Animated/components/AnimatedSectionList.js +1 -20
  25. package/Libraries/Animated/createAnimatedComponent.js +45 -40
  26. package/Libraries/Animated/nodes/AnimatedStyle.js +1 -1
  27. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +1 -1
  28. package/Libraries/Animated/useAnimatedProps.js +21 -1
  29. package/Libraries/AppState/NativeAppState.js +4 -24
  30. package/Libraries/AppTheme/NativeAppTheme.js +4 -25
  31. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  32. package/Libraries/Blob/Blob.js +1 -4
  33. package/Libraries/Blob/BlobManager.js +6 -8
  34. package/Libraries/Blob/File.js +1 -1
  35. package/Libraries/Blob/NativeBlobModule.js +4 -50
  36. package/Libraries/Blob/NativeFileReaderModule.js +4 -13
  37. package/Libraries/BugReporting/NativeBugReporting.js +4 -12
  38. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +3 -23
  39. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +4 -57
  40. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +3 -2
  41. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.windows.js +3 -2
  42. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +9 -40
  43. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +3 -43
  44. package/Libraries/Components/Button.js +103 -107
  45. package/Libraries/Components/Button.windows.js +199 -206
  46. package/Libraries/Components/Clipboard/NativeClipboard.js +3 -11
  47. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +3 -114
  48. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -5
  49. package/Libraries/Components/Keyboard/KeyboardExt.d.ts +8 -8
  50. package/Libraries/Components/Keyboard/KeyboardExt.js +27 -27
  51. package/Libraries/Components/Keyboard/KeyboardExt.js.map +1 -1
  52. package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +17 -17
  53. package/Libraries/Components/Keyboard/KeyboardExtProps.js +7 -7
  54. package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
  55. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +3 -10
  56. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.android.js +69 -0
  57. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.d.ts +24 -0
  58. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.js +33 -0
  59. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroidNativeComponent.js +13 -0
  60. package/Libraries/Components/Pressable/Pressable.js +1 -1
  61. package/Libraries/Components/Pressable/Pressable.windows.js +1 -2
  62. package/Libraries/Components/Pressable/useAndroidRippleForView.js +5 -4
  63. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +4 -24
  64. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +3 -64
  65. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +3 -61
  66. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  67. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -1
  68. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +3 -15
  69. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +3 -16
  70. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
  71. package/Libraries/Components/ScrollView/ScrollView.d.ts +5 -6
  72. package/Libraries/Components/ScrollView/ScrollView.js +12 -38
  73. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -2
  74. package/Libraries/Components/Sound/NativeSoundManager.js +3 -12
  75. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +3 -58
  76. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +3 -79
  77. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +4 -53
  78. package/Libraries/Components/Switch/Switch.js +0 -2
  79. package/Libraries/Components/Switch/Switch.windows.js +0 -2
  80. package/Libraries/Components/Switch/SwitchNativeComponent.js +4 -52
  81. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -0
  82. package/Libraries/Components/TextInput/InputAccessoryView.js +18 -20
  83. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +4 -17
  84. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -6
  85. package/Libraries/Components/TextInput/TextInput.d.ts +16 -0
  86. package/Libraries/Components/TextInput/TextInput.flow.js +16 -0
  87. package/Libraries/Components/TextInput/TextInput.js +65 -32
  88. package/Libraries/Components/TextInput/TextInput.windows.js +87 -38
  89. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +773 -9
  90. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +3 -28
  91. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  92. package/Libraries/Components/Touchable/Touchable.js +2 -3
  93. package/Libraries/Components/Touchable/Touchable.windows.js +2 -3
  94. package/Libraries/Components/Touchable/TouchableHighlight.js +4 -4
  95. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +4 -4
  96. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
  97. package/Libraries/Components/Touchable/TouchableOpacity.js +5 -2
  98. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +5 -2
  99. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +3 -16
  100. package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -1
  101. package/Libraries/Components/View/View.js +0 -11
  102. package/Libraries/Components/View/View.windows.js +19 -18
  103. package/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
  104. package/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
  105. package/Libraries/Components/View/ViewPropTypes.js +36 -36
  106. package/Libraries/Components/View/ViewPropTypes.windows.js +36 -36
  107. package/Libraries/Core/InitializeCore.js +1 -1
  108. package/Libraries/Core/NativeExceptionsManager.js +3 -93
  109. package/Libraries/Core/ReactNativeVersion.js +12 -6
  110. package/Libraries/Core/ReactNativeVersionCheck.js +6 -6
  111. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +3 -18
  112. package/Libraries/Core/Timers/NativeTiming.js +3 -16
  113. package/Libraries/Core/registerCallableModule.js +42 -0
  114. package/Libraries/Core/setUpPerformance.js +2 -2
  115. package/Libraries/Core/setUpPerformanceObserver.js +3 -1
  116. package/Libraries/Debugging/DebuggingOverlay.js +111 -0
  117. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
  118. package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
  119. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
  120. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +3 -14
  121. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +3 -9
  122. package/Libraries/Image/AssetSourceResolver.js +5 -5
  123. package/Libraries/Image/AssetUtils.js +4 -5
  124. package/Libraries/Image/Image.android.js +146 -174
  125. package/Libraries/Image/Image.d.ts +1 -1
  126. package/Libraries/Image/Image.ios.js +53 -79
  127. package/Libraries/Image/Image.windows.js +53 -79
  128. package/Libraries/Image/ImageBackground.js +2 -2
  129. package/Libraries/Image/ImageInjection.js +76 -18
  130. package/Libraries/Image/ImageTypes.flow.js +71 -0
  131. package/Libraries/Image/ImageUtils.js +1 -1
  132. package/Libraries/Image/ImageViewNativeComponent.js +18 -0
  133. package/Libraries/Image/NativeImageEditor.js +3 -42
  134. package/Libraries/Image/NativeImageLoaderAndroid.js +4 -28
  135. package/Libraries/Image/NativeImageLoaderIOS.js +4 -28
  136. package/Libraries/Image/NativeImageStoreAndroid.js +3 -16
  137. package/Libraries/Image/NativeImageStoreIOS.js +3 -23
  138. package/Libraries/Image/resolveAssetSource.js +59 -26
  139. package/Libraries/Image/resolveAssetSource.windows.js +148 -0
  140. package/Libraries/Inspector/ElementProperties.js +26 -52
  141. package/Libraries/Inspector/Inspector.js +122 -186
  142. package/Libraries/Inspector/InspectorOverlay.js +21 -33
  143. package/Libraries/Inspector/InspectorPanel.js +3 -17
  144. package/Libraries/Inspector/ReactDevToolsOverlay.js +171 -0
  145. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +20 -8
  146. package/Libraries/Interaction/FrameRateLogger.js +8 -18
  147. package/Libraries/Interaction/NativeFrameRateLogger.js +4 -16
  148. package/Libraries/IntersectionObserver/IntersectionObserver.js +1 -1
  149. package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +20 -19
  150. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +84 -6
  151. package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +3 -31
  152. package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +12 -2
  153. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -2
  154. package/Libraries/Linking/NativeIntentAndroid.js +3 -20
  155. package/Libraries/Linking/NativeLinkingManager.js +3 -17
  156. package/Libraries/Lists/FillRateHelper.js +1 -1
  157. package/Libraries/Lists/FlatList.d.ts +2 -2
  158. package/Libraries/Lists/FlatList.js +6 -1
  159. package/Libraries/Lists/FlatList.windows.js +717 -0
  160. package/Libraries/Lists/SectionList.d.ts +6 -1
  161. package/Libraries/Lists/ViewabilityHelper.js +1 -1
  162. package/Libraries/Lists/VirtualizeUtils.js +1 -1
  163. package/Libraries/Lists/VirtualizedList.js +1 -1
  164. package/Libraries/Lists/VirtualizedListContext.js +1 -1
  165. package/Libraries/Lists/VirtualizedSectionList.js +1 -1
  166. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  167. package/Libraries/Modal/Modal.js +43 -11
  168. package/Libraries/Modal/NativeModalManager.js +3 -11
  169. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -129
  170. package/Libraries/MutationObserver/MutationObserver.js +1 -1
  171. package/Libraries/MutationObserver/MutationObserverManager.js +2 -2
  172. package/Libraries/MutationObserver/MutationRecord.js +12 -10
  173. package/Libraries/MutationObserver/NativeMutationObserver.js +3 -48
  174. package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +1 -1
  175. package/Libraries/NativeComponent/BaseViewConfig.android.js +1 -0
  176. package/Libraries/NativeComponent/BaseViewConfig.windows.js +3 -0
  177. package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
  178. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +3 -10
  179. package/Libraries/NativeModules/specs/NativeDevMenu.js +3 -13
  180. package/Libraries/NativeModules/specs/NativeDevSettings.js +3 -23
  181. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +3 -9
  182. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +3 -38
  183. package/Libraries/NativeModules/specs/NativeDialogManagerWindows.js +11 -0
  184. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -10
  185. package/Libraries/NativeModules/specs/NativeRedBox.js +4 -11
  186. package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -25
  187. package/Libraries/Network/FormData.js +3 -1
  188. package/Libraries/Network/NativeNetworkingAndroid.js +4 -28
  189. package/Libraries/Network/NativeNetworkingIOS.js +4 -28
  190. package/Libraries/NewAppScreen/components/DebugInstructions.windows.js +4 -2
  191. package/Libraries/NewAppScreen/components/ReloadInstructions.windows.js +3 -1
  192. package/Libraries/Performance/NativeJSCSamplingProfiler.js +3 -9
  193. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -68
  194. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  195. package/Libraries/Pressability/Pressability.js +12 -2
  196. package/Libraries/Pressability/Pressability.windows.js +13 -3
  197. package/Libraries/Pressability/usePressability.js +7 -0
  198. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +4 -70
  199. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +45 -39
  200. package/Libraries/ReactNative/AppContainer-dev.js +192 -0
  201. package/Libraries/ReactNative/AppContainer-prod.js +53 -0
  202. package/Libraries/ReactNative/AppContainer.js +6 -149
  203. package/Libraries/ReactNative/AppRegistry.js +3 -1
  204. package/Libraries/ReactNative/BridgelessUIManager.js +375 -128
  205. package/Libraries/ReactNative/FabricUIManager.js +6 -0
  206. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +3 -10
  207. package/Libraries/ReactNative/NativeI18nManager.js +3 -18
  208. package/Libraries/ReactNative/NativeUIManager.js +4 -112
  209. package/Libraries/ReactNative/PaperUIManager.js +8 -7
  210. package/Libraries/ReactNative/PaperUIManager.windows.js +29 -8
  211. package/Libraries/ReactNative/ReactFabricInternals.js +1 -1
  212. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +24 -5
  213. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -45
  214. package/Libraries/ReactNative/RendererImplementation.js +11 -0
  215. package/Libraries/ReactNative/UIManager.d.ts +11 -34
  216. package/Libraries/ReactNative/UIManager.js +2 -23
  217. package/Libraries/ReactNative/UIManagerProperties.js +0 -2
  218. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +23 -1
  219. package/Libraries/ReactNative/getNativeComponentAttributes.js +5 -1
  220. package/Libraries/ReactNative/renderApplication.js +9 -6
  221. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +6 -1
  222. package/Libraries/Renderer/implementations/ReactFabric-dev.js +24771 -21123
  223. package/Libraries/Renderer/implementations/ReactFabric-prod.js +4160 -3109
  224. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4384 -3322
  225. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +25194 -21398
  226. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3763 -2636
  227. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4027 -2867
  228. package/Libraries/Renderer/shims/ReactNativeTypes.js +8 -9
  229. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -12
  230. package/Libraries/Settings/NativeSettingsManager.js +4 -16
  231. package/Libraries/Share/NativeShareModule.js +3 -13
  232. package/Libraries/StyleSheet/PlatformColorValueTypes.windows.js +1 -1
  233. package/Libraries/StyleSheet/StyleSheet.d.ts +1 -20
  234. package/Libraries/StyleSheet/StyleSheet.js +5 -28
  235. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +47 -7
  236. package/Libraries/StyleSheet/StyleSheetTypes.js +16 -11
  237. package/Libraries/StyleSheet/flattenStyle.js +2 -2
  238. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  239. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  240. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  241. package/Libraries/Text/Text.js +0 -6
  242. package/Libraries/Text/Text.windows.js +0 -6
  243. package/Libraries/Text/TextAncestor.js +2 -3
  244. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +4 -41
  245. package/Libraries/Types/ReactDevToolsTypes.js +58 -0
  246. package/Libraries/Types/UIManagerJSInterface.js +16 -0
  247. package/Libraries/Utilities/DebugEnvironment.js +1 -4
  248. package/Libraries/Utilities/Dimensions.js +8 -16
  249. package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -2
  250. package/Libraries/Utilities/NativeAppearance.js +3 -26
  251. package/Libraries/Utilities/NativeDevLoadingView.js +3 -14
  252. package/Libraries/Utilities/NativeDeviceInfo.js +2 -47
  253. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +3 -34
  254. package/Libraries/Utilities/NativePlatformConstantsIOS.js +3 -26
  255. package/Libraries/Utilities/NativePlatformConstantsWin.js +3 -23
  256. package/Libraries/Utilities/PixelRatio.d.ts +4 -4
  257. package/Libraries/Utilities/Platform.android.js +4 -0
  258. package/Libraries/Utilities/Platform.d.ts +3 -0
  259. package/Libraries/Utilities/Platform.flow.js +7 -0
  260. package/Libraries/Utilities/Platform.flow.windows.js +9 -0
  261. package/Libraries/Utilities/Platform.ios.js +11 -0
  262. package/Libraries/Utilities/Platform.windows.js +6 -0
  263. package/Libraries/Utilities/binaryToBase64.js +1 -1
  264. package/Libraries/Utilities/codegenNativeComponent.js +4 -6
  265. package/Libraries/Utilities/createPerformanceLogger.js +2 -74
  266. package/Libraries/Utilities/useMergeRefs.js +5 -9
  267. package/Libraries/Vibration/NativeVibration.js +3 -14
  268. package/Libraries/WebSocket/NativeWebSocketModule.js +4 -25
  269. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  270. package/Libraries/vendor/emitter/EventEmitter.js +1 -0
  271. package/Microsoft.ReactNative/AsynchronousEventBeat.cpp +50 -0
  272. package/Microsoft.ReactNative/AsynchronousEventBeat.h +23 -0
  273. package/Microsoft.ReactNative/Base/CoreUIManagers.cpp +4 -0
  274. package/Microsoft.ReactNative/Base/CxxReactIncludes.h +1 -1
  275. package/Microsoft.ReactNative/Base/FollyIncludes.h +2 -2
  276. package/Microsoft.ReactNative/ComponentView.idl +106 -0
  277. package/Microsoft.ReactNative/Composition.Input.idl +16 -2
  278. package/Microsoft.ReactNative/CompositionComponentView.idl +117 -0
  279. package/Microsoft.ReactNative/CompositionContext.idl +1 -1
  280. package/Microsoft.ReactNative/CompositionRootView.idl +8 -0
  281. package/Microsoft.ReactNative/CompositionSwitcher.idl +25 -14
  282. package/Microsoft.ReactNative/DevMenuControl.idl +0 -3
  283. package/Microsoft.ReactNative/DevMenuControl.xaml +0 -15
  284. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +189 -0
  285. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.h +80 -0
  286. package/Microsoft.ReactNative/Fabric/AbiShadowNode.cpp +83 -0
  287. package/Microsoft.ReactNative/Fabric/AbiShadowNode.h +83 -0
  288. package/Microsoft.ReactNative/Fabric/AbiState.cpp +71 -0
  289. package/Microsoft.ReactNative/Fabric/AbiState.h +38 -0
  290. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +48 -19
  291. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +8 -16
  292. package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +97 -0
  293. package/Microsoft.ReactNative/Fabric/AbiViewProps.h +39 -0
  294. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.cpp +90 -0
  295. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.h +87 -0
  296. package/Microsoft.ReactNative/Fabric/ComponentView.cpp +340 -0
  297. package/Microsoft.ReactNative/Fabric/ComponentView.h +130 -64
  298. package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.cpp +48 -24
  299. package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.h +18 -14
  300. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +42 -27
  301. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.h +3 -1
  302. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +123 -28
  303. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +69 -13
  304. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +651 -284
  305. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +7 -7
  306. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +9 -9
  307. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +120 -31
  308. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +12 -2
  309. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +308 -129
  310. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +34 -6
  311. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +2 -1
  312. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +61 -54
  313. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +0 -9
  314. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +99 -30
  315. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +4 -3
  316. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +273 -28
  317. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +28 -3
  318. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView_emptyimpl.cpp +7 -3
  319. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService.cpp +4 -0
  320. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +479 -280
  321. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +133 -79
  322. package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +113 -0
  323. package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.h +39 -0
  324. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +61 -41
  325. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +19 -14
  326. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentDescriptor.h +39 -0
  327. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +343 -0
  328. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.h +67 -0
  329. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewShadowNode.cpp +18 -0
  330. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewShadowNode.h +39 -0
  331. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +53 -186
  332. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +20 -12
  333. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +59 -150
  334. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +27 -76
  335. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +81 -32
  336. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +27 -14
  337. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +707 -64
  338. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +47 -26
  339. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +225 -125
  340. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +34 -21
  341. package/Microsoft.ReactNative/Fabric/Composition/TextDrawing.cpp +179 -0
  342. package/Microsoft.ReactNative/Fabric/Composition/TextDrawing.h +25 -0
  343. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +110 -115
  344. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +228 -79
  345. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +43 -22
  346. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputEventEmitter.cpp +18 -0
  347. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputEventEmitter.h +12 -0
  348. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +5 -5
  349. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +5 -1
  350. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +1 -2
  351. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +4 -44
  352. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +11 -9
  353. package/Microsoft.ReactNative/Fabric/Composition/Theme.cpp +550 -0
  354. package/Microsoft.ReactNative/Fabric/Composition/Theme.h +73 -0
  355. package/Microsoft.ReactNative/Fabric/Composition/Theme_emptyimpl.cpp +85 -0
  356. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +48 -26
  357. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +6 -2
  358. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +30 -65
  359. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +16 -25
  360. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +72 -88
  361. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +5 -2
  362. package/Microsoft.ReactNative/Fabric/IComponentViewRegistry.h +3 -2
  363. package/Microsoft.ReactNative/Fabric/ReactNativeConfigProperties.cpp +6 -6
  364. package/Microsoft.ReactNative/Fabric/ReactNativeConfigProperties.h +2 -2
  365. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +12 -7
  366. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +28 -19
  367. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.h +5 -0
  368. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +0 -2
  369. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +5 -1
  370. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/WindowsViewEvents.h +2 -4
  371. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Float.h +20 -0
  372. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +86 -0
  373. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorParser.h +38 -0
  374. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/{Color.cpp → PlatformColorUtils.cpp} +7 -77
  375. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.h +12 -0
  376. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +1 -0
  377. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +2 -0
  378. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +6 -87
  379. package/Microsoft.ReactNative/IReactContext.idl +3 -0
  380. package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +71 -1
  381. package/Microsoft.ReactNative/JsiApi.cpp +17 -7
  382. package/Microsoft.ReactNative/JsiApi.h +2 -2
  383. package/Microsoft.ReactNative/JsiApi.idl +5 -4
  384. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +13 -22
  385. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +6 -2
  386. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +1 -1
  387. package/Microsoft.ReactNative/Modules/AlertModule.h +2 -2
  388. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +12 -8
  389. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.h +1 -1
  390. package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -2
  391. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +5 -3
  392. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.h +4 -4
  393. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +10 -1
  394. package/Microsoft.ReactNative/Modules/ClipboardModule.h +1 -1
  395. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +71 -38
  396. package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +5 -5
  397. package/Microsoft.ReactNative/Modules/ExceptionsManager.cpp +110 -0
  398. package/Microsoft.ReactNative/Modules/ExceptionsManager.h +54 -0
  399. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.h +11 -10
  400. package/Microsoft.ReactNative/Modules/LinkingManagerModule.h +8 -6
  401. package/Microsoft.ReactNative/Modules/LogBoxModule.h +3 -3
  402. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +5 -28
  403. package/Microsoft.ReactNative/Modules/NativeUIManager.h +1 -1
  404. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +8 -5
  405. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +3 -3
  406. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.cpp +49 -0
  407. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.h +18 -0
  408. package/Microsoft.ReactNative/Modules/SourceCode.cpp +31 -0
  409. package/Microsoft.ReactNative/Modules/SourceCode.h +28 -0
  410. package/Microsoft.ReactNative/Modules/StatusBarManager.h +12 -0
  411. package/Microsoft.ReactNative/Modules/Timing.cpp +325 -0
  412. package/Microsoft.ReactNative/Modules/Timing.h +121 -0
  413. package/Microsoft.ReactNative/QuirkSettings.cpp +32 -0
  414. package/Microsoft.ReactNative/QuirkSettings.h +9 -0
  415. package/Microsoft.ReactNative/QuirkSettings.idl +6 -0
  416. package/Microsoft.ReactNative/ReactCoreInjection.cpp +15 -0
  417. package/Microsoft.ReactNative/ReactCoreInjection.h +4 -0
  418. package/Microsoft.ReactNative/ReactCoreInjection.idl +8 -0
  419. package/Microsoft.ReactNative/ReactHost/IReactInstance.h +1 -1
  420. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +1 -1
  421. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +556 -234
  422. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +36 -9
  423. package/Microsoft.ReactNative/ReactInstanceSettings.idl +3 -0
  424. package/Microsoft.ReactNative/ReactPointerEventArgs.cpp +8 -0
  425. package/Microsoft.ReactNative/ReactPointerEventArgs.h +4 -0
  426. package/Microsoft.ReactNative/ReactPointerEventArgs.idl +12 -0
  427. package/Microsoft.ReactNative/SchedulerSettings.cpp +23 -0
  428. package/Microsoft.ReactNative/SchedulerSettings.h +9 -1
  429. package/Microsoft.ReactNative/SynchronousEventBeat.cpp +41 -0
  430. package/Microsoft.ReactNative/SynchronousEventBeat.h +29 -0
  431. package/Microsoft.ReactNative/Theme.idl +57 -0
  432. package/Microsoft.ReactNative/Timer.cpp +63 -0
  433. package/Microsoft.ReactNative/{CoreAppPage.h → Timer.h} +12 -5
  434. package/Microsoft.ReactNative/Timer.idl +34 -0
  435. package/Microsoft.ReactNative/TurboModulesProvider.cpp +4 -0
  436. package/Microsoft.ReactNative/Utils/ImageUtils.cpp +37 -3
  437. package/Microsoft.ReactNative/Utils/ImageUtils.h +0 -1
  438. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +11 -12
  439. package/Microsoft.ReactNative/Utils/LocalBundleReader.h +3 -3
  440. package/Microsoft.ReactNative/Utils/ThemeUtils.cpp +33 -0
  441. package/Microsoft.ReactNative/Utils/ThemeUtils.h +13 -0
  442. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +0 -5
  443. package/Microsoft.ReactNative/Utils/ValueUtils.h +0 -3
  444. package/Microsoft.ReactNative/ViewProps.idl +17 -0
  445. package/Microsoft.ReactNative/Views/ActivityIndicatorViewManager.cpp +1 -0
  446. package/Microsoft.ReactNative/Views/DebuggingOverlayViewManager.cpp +54 -0
  447. package/Microsoft.ReactNative/Views/DebuggingOverlayViewManager.h +30 -0
  448. package/Microsoft.ReactNative/Views/DevMenu.cpp +1 -20
  449. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +157 -0
  450. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.h +5 -0
  451. package/Microsoft.ReactNative/Views/DynamicAutomationProperties.cpp +20 -0
  452. package/Microsoft.ReactNative/Views/DynamicAutomationProperties.h +4 -0
  453. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +1 -5
  454. package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +137 -0
  455. package/Microsoft.ReactNative/Views/ICompositionRootView.h +0 -1
  456. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +0 -5
  457. package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -5
  458. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +11 -0
  459. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +3 -4
  460. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +0 -6
  461. package/Microsoft.ReactNative/Views/TextViewManager.cpp +0 -11
  462. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +1 -1
  463. package/Microsoft.ReactNative/Views/UnimplementedViewManager.cpp +79 -0
  464. package/Microsoft.ReactNative/Views/UnimplementedViewManager.h +27 -0
  465. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +46 -0
  466. package/Microsoft.ReactNative/Views/ViewManagerBase.h +1 -1
  467. package/Microsoft.ReactNative/Views/cppwinrt/DynamicAutomationPeer.idl +77 -2
  468. package/Microsoft.ReactNative/microsoft.reactnative.def +0 -3
  469. package/Microsoft.ReactNative/packages.lock.json +9 -6
  470. package/{Shared/Composition → Microsoft.ReactNative.Cxx}/AutoDraw.h +2 -0
  471. package/{Shared/Composition → Microsoft.ReactNative.Cxx}/CompositionSwitcher.interop.h +4 -10
  472. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +0 -5
  473. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +5 -0
  474. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +19 -10
  475. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +2 -0
  476. package/Microsoft.ReactNative.Cxx/JSValueComposition.h +22 -0
  477. package/Microsoft.ReactNative.Cxx/JSValueReader.h +19 -0
  478. package/Microsoft.ReactNative.Cxx/JSValueXaml.h +1 -1
  479. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +6 -4
  480. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +0 -1
  481. package/Microsoft.ReactNative.Cxx/NativeModules.h +15 -15
  482. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.cpp +1 -1
  483. package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +2 -0
  484. package/Microsoft.ReactNative.Managed/packages.lock.json +6 -3
  485. package/Microsoft.ReactNative.Managed.CodeGen/Microsoft.ReactNative.Managed.CodeGen.csproj +0 -1
  486. package/Mso/future/details/executor.h +1 -1
  487. package/Mso/src/debugAssertApi/debugAssertApi.cpp +1 -1
  488. package/PropertySheets/External/Microsoft.ReactNative.Composition.Common.props +8 -0
  489. package/PropertySheets/External/Microsoft.ReactNative.Composition.CppLib.props +24 -0
  490. package/PropertySheets/External/Microsoft.ReactNative.Composition.CppLib.targets +20 -0
  491. package/PropertySheets/External/Microsoft.ReactNative.Cpp.Dependencies.props +1 -1
  492. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +2 -0
  493. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  494. package/PropertySheets/JSEngine.props +0 -8
  495. package/PropertySheets/React.Cpp.props +14 -3
  496. package/PropertySheets/ReactCommunity.cpp.props +2 -2
  497. package/PropertySheets/Release.props +0 -1
  498. package/PropertySheets/WinUI.props +21 -1
  499. package/PropertySheets/x64.props +3 -0
  500. package/PropertySheets/x86.props +3 -0
  501. package/ReactCommon/ReactCommon.vcxproj +13 -8
  502. package/ReactCommon/ReactCommon.vcxproj.filters +12 -1
  503. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +114 -19
  504. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.cpp +66 -0
  505. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +114 -52
  506. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +13 -15
  507. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +535 -0
  508. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +437 -0
  509. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.cpp +39 -0
  510. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.h +31 -0
  511. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/YGEnums.h +19 -24
  512. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/algorithm/CalculateLayout.cpp +600 -980
  513. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/enums/ExperimentalFeature.h +5 -11
  514. package/ReactCommon/cgmanifest.json +1 -1
  515. package/Scripts/EnableInternalWinAppSDKFeed.ps1 +21 -0
  516. package/Scripts/IntegrationTests.ps1 +26 -15
  517. package/Scripts/Microsoft.ReactNative.targets +0 -6
  518. package/Scripts/OfficeReact.Win32.nuspec +1 -2
  519. package/Scripts/TestServers.ps1 +2 -28
  520. package/Scripts/Tfs/Start-TestServers.ps1 +1 -21
  521. package/Scripts/Tfs/Stop-TestServers.ps1 +0 -5
  522. package/Scripts/rnw-dependencies.ps1 +38 -67
  523. package/Shared/CreateInstance.h +25 -0
  524. package/Shared/DevServerHelper.h +0 -3
  525. package/Shared/DevSettings.h +9 -0
  526. package/Shared/HermesRuntimeHolder.cpp +17 -0
  527. package/Shared/HermesRuntimeHolder.h +17 -0
  528. package/Shared/HermesSamplingProfiler.cpp +12 -10
  529. package/Shared/HermesSamplingProfiler.h +5 -4
  530. package/Shared/IDevSupportManager.h +4 -2
  531. package/Shared/InstanceManager.cpp +13 -11
  532. package/Shared/InstanceManager.h +8 -18
  533. package/Shared/JSI/ChakraRuntime.cpp +66 -9
  534. package/Shared/JSI/ChakraRuntime.h +8 -0
  535. package/Shared/JSI/JSExecutorFactoryDelegate.h +12 -0
  536. package/Shared/JSI/JSExecutorFactorySettings.cpp +30 -0
  537. package/Shared/JSI/JSExecutorFactorySettings.h +21 -0
  538. package/Shared/Modules/BlobModule.h +1 -1
  539. package/Shared/Modules/FileReaderModule.h +1 -1
  540. package/Shared/Modules/HttpModule.h +1 -1
  541. package/Shared/Modules/WebSocketTurboModule.h +1 -1
  542. package/Shared/Networking/OriginPolicyHttpFilter.cpp +19 -23
  543. package/Shared/Networking/OriginPolicyHttpFilter.h +4 -7
  544. package/Shared/Networking/WinRTHttpResource.cpp +2 -4
  545. package/Shared/OInstance.cpp +212 -165
  546. package/Shared/OInstance.h +19 -0
  547. package/Shared/Shared.vcxitems +134 -50
  548. package/Shared/Shared.vcxitems.filters +81 -24
  549. package/Shared/Utils.cpp +12 -10
  550. package/Shared/Utils.h +2 -2
  551. package/Shared/WebSocketJSExecutorFactory.h +1 -0
  552. package/codegen/NativeBugReportingSpec.g.h +0 -6
  553. package/codegen/NativeFrameRateLoggerSpec.g.h +0 -2
  554. package/codegen/NativeImageLoaderAndroidSpec.g.h +10 -23
  555. package/codegen/NativePerformanceObserverSpec.g.h +6 -0
  556. package/codegen/NativePlatformConstantsIOSSpec.g.h +2 -0
  557. package/codegen/NativePlatformConstantsWinSpec.g.h +17 -0
  558. package/codegen/NativePushNotificationManagerIOSSpec.g.h +8 -6
  559. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +88 -0
  560. package/codegen/NativeUIManagerSpec.g.h +83 -95
  561. package/codegen/react/components/rnwcore/ComponentDescriptors.h +10 -7
  562. package/codegen/react/components/rnwcore/EventEmitters.cpp +40 -52
  563. package/codegen/react/components/rnwcore/EventEmitters.h +66 -84
  564. package/codegen/react/components/rnwcore/Props.cpp +60 -95
  565. package/codegen/react/components/rnwcore/Props.h +198 -239
  566. package/codegen/react/components/rnwcore/ShadowNodes.cpp +6 -7
  567. package/codegen/react/components/rnwcore/ShadowNodes.h +38 -29
  568. package/codegen/react/components/rnwcore/States.cpp +3 -5
  569. package/codegen/react/components/rnwcore/States.h +29 -16
  570. package/codegen/rnwcoreJSI-generated.cpp +1442 -1398
  571. package/codegen/rnwcoreJSI.h +6066 -3593
  572. package/index.js +66 -99
  573. package/index.windows.js +60 -102
  574. package/jest/assetFileTransformer.js +1 -1
  575. package/jest/local-setup.js +0 -5
  576. package/jest/mockModal.js +2 -1
  577. package/jest/mockScrollView.js +1 -2
  578. package/jest/renderer.js +1 -1
  579. package/jest/setup.js +6 -3
  580. package/just-task.js +1 -1
  581. package/package.json +30 -29
  582. package/{Libraries/Core → src/private/core}/setUpDOM.js +2 -2
  583. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +42 -0
  584. package/src/private/featureflags/ReactNativeFeatureFlags.js +140 -0
  585. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +84 -0
  586. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +92 -0
  587. package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
  588. package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
  589. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +26 -0
  590. package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
  591. package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
  592. package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
  593. package/src/private/specs/components/PopupMenuAndroidNativeComponent.js +47 -0
  594. package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
  595. package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
  596. package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
  597. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +139 -0
  598. package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
  599. package/src/private/specs/components/SwitchNativeComponent.js +61 -0
  600. package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
  601. package/src/private/specs/modules/NativeAccessibilityInfo.js +33 -0
  602. package/src/private/specs/modules/NativeAccessibilityManager.js +66 -0
  603. package/src/private/specs/modules/NativeActionSheetManager.js +54 -0
  604. package/src/private/specs/modules/NativeAlertManager.js +35 -0
  605. package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
  606. package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
  607. package/src/private/specs/modules/NativeAnimationsDebugModule.js +20 -0
  608. package/src/private/specs/modules/NativeAppState.js +33 -0
  609. package/src/private/specs/modules/NativeAppTheme.js +33 -0
  610. package/src/private/specs/modules/NativeAppearance.js +36 -0
  611. package/src/private/specs/modules/NativeBlobModule.js +59 -0
  612. package/src/private/specs/modules/NativeBugReporting.js +20 -0
  613. package/src/private/specs/modules/NativeClipboard.js +21 -0
  614. package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
  615. package/src/private/specs/modules/NativeDevMenu.js +23 -0
  616. package/src/private/specs/modules/NativeDevSettings.js +33 -0
  617. package/src/private/specs/modules/NativeDevToolsSettingsManager.js +24 -0
  618. package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
  619. package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
  620. package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
  621. package/{Libraries/Alert → src/private/specs/modules}/NativeDialogManagerWindows.js +5 -4
  622. package/src/private/specs/modules/NativeExceptionsManager.js +103 -0
  623. package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
  624. package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
  625. package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
  626. package/src/private/specs/modules/NativeI18nManager.js +28 -0
  627. package/src/private/specs/modules/NativeImageEditor.js +52 -0
  628. package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
  629. package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
  630. package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
  631. package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
  632. package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
  633. package/src/private/specs/modules/NativeIntersectionObserver.js +41 -0
  634. package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
  635. package/src/private/specs/modules/NativeJSCSamplingProfiler.js +19 -0
  636. package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
  637. package/src/private/specs/modules/NativeLinkingManager.js +27 -0
  638. package/src/private/specs/modules/NativeLogBox.js +20 -0
  639. package/src/private/specs/modules/NativeModalManager.js +21 -0
  640. package/src/private/specs/modules/NativeMutationObserver.js +58 -0
  641. package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
  642. package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
  643. package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
  644. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
  645. package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
  646. package/src/private/specs/modules/NativePlatformConstantsWin.js +38 -0
  647. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +107 -0
  648. package/src/private/specs/modules/NativeRedBox.js +20 -0
  649. package/src/private/specs/modules/NativeSampleTurboModule.js +53 -0
  650. package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
  651. package/src/private/specs/modules/NativeSettingsManager.js +25 -0
  652. package/src/private/specs/modules/NativeShareModule.js +23 -0
  653. package/src/private/specs/modules/NativeSoundManager.js +22 -0
  654. package/src/private/specs/modules/NativeSourceCode.js +36 -0
  655. package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
  656. package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
  657. package/src/private/specs/modules/NativeTiming.js +26 -0
  658. package/src/private/specs/modules/NativeToastAndroid.js +38 -0
  659. package/src/private/specs/modules/NativeUIManager.js +118 -0
  660. package/src/private/specs/modules/NativeVibration.js +24 -0
  661. package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
  662. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReactNativeElement.js +6 -6
  663. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyCharacterData.js +2 -2
  664. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyElement.js +5 -5
  665. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyNode.js +19 -10
  666. package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/DOMRectList.js +1 -1
  667. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +85 -0
  668. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +80 -0
  669. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +161 -0
  670. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.js +2 -2
  671. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.js +3 -2
  672. package/{Libraries/WebPerformance → src/private/webapis/performance}/Performance.js +2 -2
  673. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEventTiming.js +1 -1
  674. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceObserver.js +21 -2
  675. package/{Libraries/WebPerformance → src/private/webapis/performance}/RawPerformanceEntry.js +1 -1
  676. package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformanceObserver.js +9 -0
  677. package/src/private/webapis/performance/__tests__/EventCounts-test.js +116 -0
  678. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +82 -0
  679. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +108 -0
  680. package/src/private/webapis/performance/__tests__/Performance-test.js +117 -0
  681. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +208 -0
  682. package/template/cpp-app/src/App.cpp +2 -2
  683. package/template/cs-app/src/App.xaml.cs +2 -2
  684. package/templates/cpp-app/jest.config.windows.js +3 -0
  685. package/templates/cpp-app/metro.config.js +0 -2
  686. package/templates/cpp-app/template.config.js +24 -9
  687. package/templates/cpp-app/windows/ExperimentalFeatures.props +1 -1
  688. package/templates/cpp-app/windows/MyApp/AutolinkedNativeModules.g.cpp +13 -0
  689. package/templates/cpp-app/windows/MyApp/AutolinkedNativeModules.g.h +10 -0
  690. package/templates/cpp-app/windows/MyApp/MyApp.cpp +134 -249
  691. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +12 -11
  692. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj.filters +6 -3
  693. package/templates/cpp-app/windows/MyApp/pch.h +12 -9
  694. package/templates/cpp-app/windows/MyApp/resource.h +0 -1
  695. package/templates/cpp-app/windows/MyApp.sln +26 -26
  696. package/templates/cpp-lib/example/metro.config.js +74 -0
  697. package/templates/cpp-lib/template.config.js +235 -0
  698. package/templates/cpp-lib/windows/ExperimentalFeatures.props +11 -0
  699. package/templates/cpp-lib/windows/MyLib/MyLib.cpp +18 -0
  700. package/templates/cpp-lib/windows/MyLib/MyLib.def +3 -0
  701. package/templates/cpp-lib/windows/MyLib/MyLib.h +31 -0
  702. package/templates/cpp-lib/windows/MyLib/MyLib.rc +0 -0
  703. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +148 -0
  704. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj.filters +44 -0
  705. package/templates/cpp-lib/windows/MyLib/ReactPackageProvider.cpp +20 -0
  706. package/templates/cpp-lib/windows/MyLib/ReactPackageProvider.h +24 -0
  707. package/templates/cpp-lib/windows/MyLib/ReactPackageProvider.idl +9 -0
  708. package/templates/cpp-lib/windows/MyLib/pch.cpp +1 -0
  709. package/templates/cpp-lib/windows/MyLib/pch.h +30 -0
  710. package/templates/cpp-lib/windows/MyLib/resource.h +5 -0
  711. package/templates/cpp-lib/windows/MyLib/targetver.h +8 -0
  712. package/templates/cpp-lib/windows/MyLib.sln +156 -0
  713. package/templates/cpp-lib/windows/_gitignore +41 -0
  714. package/templates/templateUtils.js +137 -0
  715. package/types/modules/globals.d.ts +1 -0
  716. package/Folly/TEMP_UntilFollyUpdate/hash/Hash.h +0 -1016
  717. package/Libraries/Components/Button.flow.js +0 -265
  718. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.windows.js +0 -8
  719. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.windows.js +0 -14
  720. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +0 -34
  721. package/Libraries/Components/ScrollView/ScrollView.windows.js +0 -1941
  722. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -85
  723. package/Libraries/Components/ToastAndroid/ToastAndroid.windows.js +0 -45
  724. package/Libraries/Components/Touchable/Touchable.flow.js +0 -284
  725. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +0 -189
  726. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +0 -43
  727. package/Libraries/Image/Image.flow.js +0 -64
  728. package/Libraries/Inspector/DevtoolsOverlay.js +0 -223
  729. package/Libraries/Performance/QuickPerformanceLogger.js +0 -142
  730. package/Libraries/Settings/Settings.windows.js +0 -28
  731. package/Microsoft.ReactNative/CoreApp.cpp +0 -303
  732. package/Microsoft.ReactNative/CoreAppPage.cpp +0 -21
  733. package/Microsoft.ReactNative/CoreAppPage.idl +0 -12
  734. package/Microsoft.ReactNative/CoreAppPage.xaml +0 -14
  735. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +0 -197
  736. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +0 -84
  737. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rnwcore/EventEmitters.h +0 -5
  738. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rnwcore/Props.h +0 -5
  739. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rnwcore/ShadowNodes.h +0 -5
  740. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rnwcore/States.h +0 -5
  741. package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +0 -245
  742. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +0 -134
  743. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +0 -27
  744. package/Microsoft.ReactNative/Modules/TimingModule.cpp +0 -229
  745. package/Microsoft.ReactNative/Modules/TimingModule.h +0 -88
  746. package/Microsoft.ReactNative.Cxx/CoreApp.h +0 -60
  747. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.cpp +0 -60
  748. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.h +0 -60
  749. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +0 -63
  750. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaLayoutableShadowNode.cpp +0 -1038
  751. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +0 -503
  752. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +0 -895
  753. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBufferBuilder.cpp +0 -182
  754. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/ShadowTree.cpp +0 -543
  755. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManagerBinding.cpp +0 -1505
  756. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/bits/NumericBitfield.h +0 -67
  757. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +0 -93
  758. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +0 -88
  759. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +0 -606
  760. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.h +0 -344
  761. package/ReactCommon/Yoga.cpp +0 -961
  762. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRect.js +0 -0
  763. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRectReadOnly.js +0 -0
  764. /package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyText.js +0 -0
  765. /package/{Libraries/DOM/Nodes/Utilities → src/private/webapis/dom/nodes/utilities}/Traversal.js +0 -0
  766. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/ArrayLikeUtils.js +0 -0
  767. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/HTMLCollection.js +0 -0
  768. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/NodeList.js +0 -0
  769. /package/{Libraries/WebPerformance → src/private/webapis/performance}/EventCounts.js +0 -0
  770. /package/{Libraries/WebPerformance → src/private/webapis/performance}/MemoryInfo.js +0 -0
  771. /package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntry.js +0 -0
  772. /package/{Libraries/WebPerformance → src/private/webapis/performance}/ReactNativeStartupTiming.js +0 -0
  773. /package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformance.js +0 -0
@@ -9,39 +9,45 @@
9
9
  #include <Windows.UI.Composition.h>
10
10
  #include <Windows.h>
11
11
  #include "CompositionContextHelper.h"
12
+ #include "RootComponentView.h"
12
13
 
13
- namespace Microsoft::ReactNative {
14
+ namespace winrt::Microsoft::ReactNative::Composition::implementation {
14
15
 
15
- std::shared_ptr<ActivityIndicatorComponentView> ActivityIndicatorComponentView::Create(
16
+ winrt::Microsoft::ReactNative::ComponentView ActivityIndicatorComponentView::Create(
16
17
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
17
18
  facebook::react::Tag tag,
18
19
  winrt::Microsoft::ReactNative::ReactContext const &reactContext) noexcept {
19
- return std::shared_ptr<ActivityIndicatorComponentView>(
20
- new ActivityIndicatorComponentView(compContext, tag, reactContext));
20
+ return winrt::make<ActivityIndicatorComponentView>(compContext, tag, reactContext);
21
21
  }
22
22
 
23
23
  ActivityIndicatorComponentView::ActivityIndicatorComponentView(
24
24
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
25
25
  facebook::react::Tag tag,
26
26
  winrt::Microsoft::ReactNative::ReactContext const &reactContext)
27
- : Super(compContext, tag), m_context(reactContext) {
27
+ : Super(compContext, tag, reactContext, ComponentViewFeatures::Default, false) {
28
28
  m_props = std::make_shared<facebook::react::ActivityIndicatorViewProps const>();
29
29
  }
30
30
 
31
- void ActivityIndicatorComponentView::mountChildComponentView(
32
- IComponentView &childComponentView,
31
+ void ActivityIndicatorComponentView::MountChildComponentView(
32
+ const winrt::Microsoft::ReactNative::ComponentView &childComponentView,
33
33
  uint32_t index) noexcept {
34
34
  assert(false);
35
+ base_type::MountChildComponentView(childComponentView, index);
35
36
  }
36
37
 
37
- void ActivityIndicatorComponentView::unmountChildComponentView(
38
- IComponentView &childComponentView,
38
+ void ActivityIndicatorComponentView::UnmountChildComponentView(
39
+ const winrt::Microsoft::ReactNative::ComponentView &childComponentView,
39
40
  uint32_t index) noexcept {
40
41
  assert(false);
42
+ base_type::UnmountChildComponentView(childComponentView, index);
41
43
  }
42
44
 
43
- void ActivityIndicatorComponentView::handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept {
44
- Super::handleCommand(commandName, arg);
45
+ void ActivityIndicatorComponentView::updateProgressColor(const facebook::react::SharedColor &color) noexcept {
46
+ if (color) {
47
+ m_ActivityIndicatorVisual.Brush(theme()->Brush(*color));
48
+ } else {
49
+ m_ActivityIndicatorVisual.Brush(theme()->PlatformBrush("ProgressRingForegroundTheme"));
50
+ }
45
51
  }
46
52
 
47
53
  void ActivityIndicatorComponentView::updateProps(
@@ -52,19 +58,37 @@ void ActivityIndicatorComponentView::updateProps(
52
58
 
53
59
  ensureVisual();
54
60
 
61
+ if (newViewProps->testId != oldViewProps->testId) {
62
+ m_visual.Comment(winrt::to_hstring(newViewProps->testId));
63
+ }
64
+
55
65
  // update color if needed
56
- if (newViewProps->color && (!oldProps || newViewProps->color != oldViewProps->color)) {
57
- m_ActivityIndicatorVisual.Color(newViewProps->color.AsWindowsColor());
66
+ if (!oldProps || newViewProps->color != oldViewProps->color) {
67
+ updateProgressColor(newViewProps->color);
58
68
  }
59
69
 
60
70
  if (newViewProps->animating != oldViewProps->animating) {
61
71
  m_ActivityIndicatorVisual.IsVisible(newViewProps->animating);
62
72
  }
63
73
 
64
- updateBorderProps(*oldViewProps, *newViewProps);
74
+ Super::updateProps(props, oldProps);
75
+
65
76
  m_props = std::static_pointer_cast<facebook::react::ViewProps const>(props);
66
77
  }
67
78
 
79
+ void ActivityIndicatorComponentView::FinalizeUpdates(
80
+ winrt::Microsoft::ReactNative::ComponentViewUpdateMask updateMask) noexcept {
81
+ static constexpr float radiusSmall = 10.0f;
82
+ static constexpr float radiusLarge = 18.0f;
83
+
84
+ if (std::static_pointer_cast<const facebook::react::ActivityIndicatorViewProps>(m_props)->size ==
85
+ facebook::react::ActivityIndicatorViewSize::Small) {
86
+ m_ActivityIndicatorVisual.Size(radiusSmall * m_layoutMetrics.pointScaleFactor);
87
+ } else {
88
+ m_ActivityIndicatorVisual.Size(radiusLarge * m_layoutMetrics.pointScaleFactor);
89
+ }
90
+ }
91
+
68
92
  void ActivityIndicatorComponentView::updateState(
69
93
  facebook::react::State::Shared const &state,
70
94
  facebook::react::State::Shared const &oldState) noexcept {}
@@ -79,27 +103,22 @@ void ActivityIndicatorComponentView::updateLayoutMetrics(
79
103
  OuterVisual().IsVisible(layoutMetrics.displayType != facebook::react::DisplayType::None);
80
104
  }
81
105
 
82
- updateBorderLayoutMetrics(layoutMetrics, *m_props);
83
- m_layoutMetrics = layoutMetrics;
84
-
85
- UpdateCenterPropertySet();
106
+ Super::updateLayoutMetrics(layoutMetrics, oldLayoutMetrics);
86
107
  m_visual.Size(
87
108
  {layoutMetrics.frame.size.width * layoutMetrics.pointScaleFactor,
88
109
  layoutMetrics.frame.size.height * layoutMetrics.pointScaleFactor});
89
110
  }
90
111
 
91
- void ActivityIndicatorComponentView::finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept {}
92
-
93
112
  void ActivityIndicatorComponentView::prepareForRecycle() noexcept {}
94
113
 
95
- facebook::react::Props::Shared ActivityIndicatorComponentView::props() noexcept {
114
+ facebook::react::SharedViewProps ActivityIndicatorComponentView::viewProps() noexcept {
96
115
  return m_props;
97
116
  }
98
117
 
99
118
  void ActivityIndicatorComponentView::ensureVisual() noexcept {
100
119
  if (!m_visual) {
101
120
  m_visual = m_compContext.CreateSpriteVisual();
102
- m_ActivityIndicatorVisual = m_compContext.CreateActivityVisual(); // creates COM control
121
+ m_ActivityIndicatorVisual = m_compContext.CreateActivityVisual();
103
122
 
104
123
  OuterVisual().InsertAt(m_ActivityIndicatorVisual, 0);
105
124
  OuterVisual().InsertAt(m_visual, 0);
@@ -117,7 +136,7 @@ facebook::react::Tag ActivityIndicatorComponentView::hitTest(
117
136
  ptLocal.x >= 0 && ptLocal.x <= m_layoutMetrics.frame.size.width && ptLocal.y >= 0 &&
118
137
  ptLocal.y <= m_layoutMetrics.frame.size.height) {
119
138
  localPt = ptLocal;
120
- return tag();
139
+ return Tag();
121
140
  }
122
141
  return -1;
123
142
  }
@@ -126,6 +145,11 @@ winrt::Microsoft::ReactNative::Composition::IVisual ActivityIndicatorComponentVi
126
145
  return m_visual;
127
146
  }
128
147
 
148
+ void ActivityIndicatorComponentView::onThemeChanged() noexcept {
149
+ updateProgressColor(std::static_pointer_cast<const facebook::react::ActivityIndicatorViewProps>(m_props)->color);
150
+ Super::onThemeChanged();
151
+ }
152
+
129
153
  bool ActivityIndicatorComponentView::focusable() const noexcept {
130
154
  return false;
131
155
  }
@@ -134,4 +158,4 @@ std::string ActivityIndicatorComponentView::DefaultControlType() const noexcept
134
158
  return "progressbar";
135
159
  }
136
160
 
137
- } // namespace Microsoft::ReactNative
161
+ } // namespace winrt::Microsoft::ReactNative::Composition::implementation
@@ -8,23 +8,25 @@
8
8
 
9
9
  #include "CompositionViewComponentView.h"
10
10
 
11
+ #include "Composition.ActivityIndicatorComponentView.g.h"
11
12
  #include <react/components/rnwcore/ShadowNodes.h>
12
13
 
13
- namespace Microsoft::ReactNative {
14
+ namespace winrt::Microsoft::ReactNative::Composition::implementation {
14
15
 
15
- struct ActivityIndicatorComponentView;
16
+ struct ActivityIndicatorComponentView : ActivityIndicatorComponentViewT<ActivityIndicatorComponentView, ComponentView> {
17
+ using Super = ActivityIndicatorComponentViewT<ActivityIndicatorComponentView, ComponentView>;
16
18
 
17
- struct ActivityIndicatorComponentView : CompositionBaseComponentView {
18
- using Super = CompositionBaseComponentView;
19
-
20
- [[nodiscard]] static std::shared_ptr<ActivityIndicatorComponentView> Create(
19
+ [[nodiscard]] static winrt::Microsoft::ReactNative::ComponentView Create(
21
20
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
22
21
  facebook::react::Tag tag,
23
22
  winrt::Microsoft::ReactNative::ReactContext const &reactContext) noexcept;
24
23
 
25
- void mountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept override;
26
- void unmountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept override;
27
- void handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept override;
24
+ void MountChildComponentView(
25
+ const winrt::Microsoft::ReactNative::ComponentView &childComponentView,
26
+ uint32_t index) noexcept override;
27
+ void UnmountChildComponentView(
28
+ const winrt::Microsoft::ReactNative::ComponentView &childComponentView,
29
+ uint32_t index) noexcept override;
28
30
  void updateProps(facebook::react::Props::Shared const &props, facebook::react::Props::Shared const &oldProps) noexcept
29
31
  override;
30
32
  void updateState(facebook::react::State::Shared const &state, facebook::react::State::Shared const &oldState) noexcept
@@ -32,28 +34,30 @@ struct ActivityIndicatorComponentView : CompositionBaseComponentView {
32
34
  void updateLayoutMetrics(
33
35
  facebook::react::LayoutMetrics const &layoutMetrics,
34
36
  facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept override;
35
- void finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept override;
37
+ void FinalizeUpdates(winrt::Microsoft::ReactNative::ComponentViewUpdateMask updateMask) noexcept override;
36
38
  void prepareForRecycle() noexcept override;
37
- facebook::react::Props::Shared props() noexcept override;
39
+ facebook::react::SharedViewProps viewProps() noexcept override;
38
40
  bool focusable() const noexcept override;
41
+ void onThemeChanged() noexcept override;
39
42
 
40
43
  facebook::react::Tag hitTest(facebook::react::Point pt, facebook::react::Point &localPt, bool ignorePointerEvents)
41
44
  const noexcept override;
42
45
  winrt::Microsoft::ReactNative::Composition::IVisual Visual() const noexcept override;
43
46
  virtual std::string DefaultControlType() const noexcept;
44
47
 
45
- private:
46
48
  ActivityIndicatorComponentView(
47
49
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
48
50
  facebook::react::Tag tag,
49
51
  winrt::Microsoft::ReactNative::ReactContext const &reactContext);
50
52
 
53
+ private:
51
54
  void ensureVisual() noexcept;
55
+ void updateVisualSize() noexcept;
56
+ void updateProgressColor(const facebook::react::SharedColor &color) noexcept;
52
57
 
53
58
  winrt::Microsoft::ReactNative::Composition::ISpriteVisual m_visual{nullptr};
54
59
  winrt::Microsoft::ReactNative::Composition::IActivityVisual m_ActivityIndicatorVisual{nullptr};
55
- winrt::Microsoft::ReactNative::ReactContext m_context;
56
60
  facebook::react::SharedViewProps m_props;
57
61
  };
58
62
 
59
- } // namespace Microsoft::ReactNative
63
+ } // namespace winrt::Microsoft::ReactNative::Composition::implementation
@@ -10,27 +10,28 @@
10
10
  #include <react/renderer/components/scrollview/ScrollViewShadowNode.h>
11
11
  #pragma warning(pop)
12
12
 
13
- #include <Fabric/Composition/TextInput/WindowsTextInputShadowNode.h>
14
- #include <react/components/rnwcore/ShadowNodes.h>
15
- #include <react/renderer/components/image/ImageShadowNode.h>
16
- #include <react/renderer/components/root/RootShadowNode.h>
17
- #include <react/renderer/components/text/ParagraphShadowNode.h>
18
- #include <react/renderer/components/text/RawTextShadowNode.h>
19
- #include <react/renderer/components/text/TextShadowNode.h>
20
- #include <react/renderer/components/view/ViewShadowNode.h>
21
-
22
- #include <Fabric/Composition/AbiCompositionViewComponentView.h>
23
13
  #include <Fabric/Composition/ActivityIndicatorComponentView.h>
24
14
  #include <Fabric/Composition/CompositionHelpers.h>
25
15
  #include <Fabric/Composition/CompositionViewComponentView.h>
16
+ #include <Fabric/Composition/DebuggingOverlayComponentView.h>
26
17
  #include <Fabric/Composition/ImageComponentView.h>
18
+ #include <Fabric/Composition/Modal/WindowsModalHostViewComponentView.h>
19
+ #include <Fabric/Composition/Modal/WindowsModalHostViewShadowNode.h>
27
20
  #include <Fabric/Composition/ParagraphComponentView.h>
28
21
  #include <Fabric/Composition/RootComponentView.h>
29
22
  #include <Fabric/Composition/ScrollViewComponentView.h>
30
23
  #include <Fabric/Composition/SwitchComponentView.h>
31
24
  #include <Fabric/Composition/TextInput/WindowsTextInputComponentView.h>
25
+ #include <Fabric/Composition/TextInput/WindowsTextInputShadowNode.h>
32
26
  #include <Fabric/Composition/UnimplementedNativeViewComponentView.h>
33
27
  #include <Fabric/WindowsComponentDescriptorRegistry.h>
28
+ #include <react/components/rnwcore/ShadowNodes.h>
29
+ #include <react/renderer/components/image/ImageShadowNode.h>
30
+ #include <react/renderer/components/root/RootShadowNode.h>
31
+ #include <react/renderer/components/text/ParagraphShadowNode.h>
32
+ #include <react/renderer/components/text/RawTextShadowNode.h>
33
+ #include <react/renderer/components/text/TextShadowNode.h>
34
+ #include <react/renderer/components/view/ViewShadowNode.h>
34
35
 
35
36
  namespace Microsoft::ReactNative {
36
37
 
@@ -44,39 +45,53 @@ ComponentViewDescriptor const &ComponentViewRegistry::dequeueComponentViewWithCo
44
45
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext) noexcept {
45
46
  // TODO implement recycled components like core does
46
47
 
47
- std::shared_ptr<CompositionBaseComponentView> view;
48
+ winrt::Microsoft::ReactNative::ComponentView view{nullptr};
48
49
 
49
50
  if (componentHandle == facebook::react::ViewShadowNode::Handle()) {
50
- view = CompositionViewComponentView::Create(compContext, tag);
51
+ view = winrt::Microsoft::ReactNative::Composition::implementation::ViewComponentView::Create(
52
+ compContext, tag, m_context);
51
53
  } else if (componentHandle == facebook::react::ParagraphShadowNode::Handle()) {
52
- view = ParagraphComponentView::Create(compContext, tag);
54
+ view = winrt::Microsoft::ReactNative::Composition::implementation::ParagraphComponentView::Create(
55
+ compContext, tag, m_context);
53
56
  } else if (componentHandle == facebook::react::ScrollViewShadowNode::Handle()) {
54
- view = ScrollViewComponentView::Create(compContext, tag);
57
+ view = winrt::Microsoft::ReactNative::Composition::implementation::ScrollViewComponentView::Create(
58
+ compContext, tag, m_context);
55
59
  } else if (componentHandle == facebook::react::ImageShadowNode::Handle()) {
56
- view = ImageComponentView::Create(compContext, tag, m_context);
60
+ view = winrt::Microsoft::ReactNative::Composition::implementation::ImageComponentView::Create(
61
+ compContext, tag, m_context);
62
+ } else if (componentHandle == facebook::react::WindowsModalHostViewShadowNode::Handle()) {
63
+ view = winrt::Microsoft::ReactNative::Composition::implementation::WindowsModalHostComponentView::Create(
64
+ compContext, tag, m_context);
57
65
  } else if (componentHandle == facebook::react::WindowsTextInputShadowNode::Handle()) {
58
- view = WindowsTextInputComponentView::Create(compContext, tag, m_context);
66
+ view = winrt::Microsoft::ReactNative::Composition::implementation::WindowsTextInputComponentView::Create(
67
+ compContext, tag, m_context);
59
68
  } else if (componentHandle == facebook::react::SwitchShadowNode::Handle()) {
60
- view = SwitchComponentView::Create(compContext, tag, m_context);
69
+ view = winrt::Microsoft::ReactNative::Composition::implementation::SwitchComponentView::Create(
70
+ compContext, tag, m_context);
61
71
  } else if (componentHandle == facebook::react::ActivityIndicatorViewShadowNode::Handle()) {
62
- view = ActivityIndicatorComponentView::Create(compContext, tag, m_context);
72
+ view = winrt::Microsoft::ReactNative::Composition::implementation::ActivityIndicatorComponentView::Create(
73
+ compContext, tag, m_context);
63
74
  } else if (componentHandle == facebook::react::RootShadowNode::Handle()) {
64
- view = RootComponentView::Create(compContext, tag, m_context);
75
+ view = winrt::Microsoft::ReactNative::Composition::implementation::RootComponentView::Create(
76
+ compContext, tag, m_context);
65
77
  } else if (
66
78
  componentHandle == facebook::react::RawTextShadowNode::Handle() ||
67
79
  componentHandle == facebook::react::TextShadowNode::Handle()) {
68
80
  // Review - Why do we get asked for ComponentViews for Text/RawText... do these get used?
69
- view = CompositionViewComponentView::Create(compContext, tag);
81
+ view = winrt::Microsoft::ReactNative::Composition::implementation::ViewComponentView::Create(
82
+ compContext, tag, m_context);
70
83
  } else if (componentHandle == facebook::react::UnimplementedNativeViewShadowNode::Handle()) {
71
- view = UnimplementedNativeViewComponentView::Create(compContext, tag);
84
+ view = winrt::Microsoft::ReactNative::Composition::implementation::UnimplementedNativeViewComponentView::Create(
85
+ compContext, tag, m_context);
86
+ } else if (componentHandle == facebook::react::DebuggingOverlayShadowNode::Handle()) {
87
+ view = winrt::Microsoft::ReactNative::Composition::implementation::DebuggingOverlayComponentView::Create(
88
+ compContext, tag, m_context);
72
89
  } else {
73
90
  auto descriptor =
74
91
  WindowsComponentDescriptorRegistry::FromProperties(m_context.Properties())->GetDescriptor(componentHandle);
75
- view = AbiCompositionViewComponentView::Create(
76
- m_context.Handle(),
77
- compContext,
78
- tag,
79
- descriptor.as<winrt::Microsoft::ReactNative::IReactViewComponentBuilder>());
92
+ view = winrt::get_self<winrt::Microsoft::ReactNative::Composition::ReactCompositionViewComponentBuilder>(
93
+ descriptor.as<winrt::Microsoft::ReactNative::Composition::IReactCompositionViewComponentBuilder>())
94
+ ->CreateView(m_context.Handle(), tag, compContext);
80
95
  }
81
96
 
82
97
  auto it = m_registry.insert({tag, ComponentViewDescriptor{view}});
@@ -90,7 +105,7 @@ ComponentViewDescriptor const &ComponentViewRegistry::componentViewDescriptorWit
90
105
  return iterator->second;
91
106
  }
92
107
 
93
- std::shared_ptr<IComponentView> ComponentViewRegistry::findComponentViewWithTag(
108
+ winrt::Microsoft::ReactNative::ComponentView ComponentViewRegistry::findComponentViewWithTag(
94
109
  facebook::react::Tag tag) const noexcept {
95
110
  auto iterator = m_registry.find(tag);
96
111
  if (iterator == m_registry.end()) {
@@ -7,6 +7,7 @@
7
7
  #include <Fabric/IComponentViewRegistry.h>
8
8
 
9
9
  #include <Fabric/Composition/CompositionHelpers.h>
10
+ #include <winrt/Microsoft.ReactNative.h>
10
11
 
11
12
  namespace Microsoft::ReactNative {
12
13
 
@@ -20,7 +21,8 @@ class ComponentViewRegistry final : public IComponentViewRegistry {
20
21
  facebook::react::Tag tag,
21
22
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext) noexcept override;
22
23
  ComponentViewDescriptor const &componentViewDescriptorWithTag(facebook::react::Tag tag) const noexcept override;
23
- std::shared_ptr<IComponentView> findComponentViewWithTag(facebook::react::Tag tag) const noexcept override;
24
+ winrt::Microsoft::ReactNative::ComponentView findComponentViewWithTag(
25
+ facebook::react::Tag tag) const noexcept override;
24
26
  void enqueueComponentViewWithComponentHandle(
25
27
  facebook::react::ComponentHandle componentHandle,
26
28
  facebook::react::Tag tag,
@@ -3,6 +3,7 @@
3
3
 
4
4
  #pragma once
5
5
  #include "Composition.Input.h"
6
+ #include <Fabric/FabricUIManagerModule.h>
6
7
  #include <windowsx.h>
7
8
  #include <winrt/Windows.Devices.Input.h>
8
9
  #include <winrt/Windows.UI.Input.h>
@@ -75,6 +76,63 @@ winrt::Windows::System::VirtualKey KeyRoutedEventArgs::OriginalKey() noexcept {
75
76
  return m_key;
76
77
  }
77
78
 
79
+ CharacterReceivedRoutedEventArgs::CharacterReceivedRoutedEventArgs(
80
+ facebook::react::Tag tag,
81
+ uint32_t msg,
82
+ uint64_t wParam,
83
+ int64_t lParam) {
84
+ m_keycode = static_cast<int32_t>(wParam);
85
+ m_keyStatus.RepeatCount = (lParam & 0x0000FFFF); // bits 0-15
86
+ m_keyStatus.ScanCode = (lParam & 0x00FF0000) >> 16; // bits 16-23
87
+ m_keyStatus.IsExtendedKey = (lParam & 0x01000000) >> 24; // bit 24
88
+ m_keyStatus.IsMenuKeyDown = (lParam & 0x20000000) >> 29; // bit 29
89
+ m_keyStatus.WasKeyDown = (lParam & 0x40000000) >> 30; // bit 30
90
+ m_keyStatus.IsKeyReleased = (lParam & 0x80000000) >> 31; // bit 31
91
+ }
92
+
93
+ #ifdef USE_WINUI3
94
+ CharacterReceivedRoutedEventArgs::CharacterReceivedRoutedEventArgs(
95
+ facebook::react::Tag tag,
96
+ winrt::Microsoft::UI::Input::CharacterReceivedEventArgs const &args)
97
+ : m_tag(tag) {
98
+ auto keyStatus = args.KeyStatus();
99
+ m_keyStatus.RepeatCount = keyStatus.RepeatCount;
100
+ m_keyStatus.ScanCode = keyStatus.ScanCode;
101
+ m_keyStatus.IsExtendedKey = keyStatus.IsExtendedKey;
102
+ m_keyStatus.IsMenuKeyDown = keyStatus.IsMenuKeyDown;
103
+ m_keyStatus.WasKeyDown = keyStatus.WasKeyDown;
104
+ m_keyStatus.IsKeyReleased = keyStatus.IsKeyReleased;
105
+ m_keycode = args.KeyCode();
106
+ }
107
+ #endif
108
+
109
+ int32_t CharacterReceivedRoutedEventArgs::OriginalSource() noexcept {
110
+ return m_tag;
111
+ }
112
+ bool CharacterReceivedRoutedEventArgs::Handled() noexcept {
113
+ return m_handled;
114
+ }
115
+ void CharacterReceivedRoutedEventArgs::Handled(bool value) noexcept {
116
+ m_handled = value;
117
+ }
118
+ int32_t CharacterReceivedRoutedEventArgs::KeyCode() noexcept {
119
+ return m_keycode;
120
+ }
121
+ winrt::Windows::UI::Core::CorePhysicalKeyStatus CharacterReceivedRoutedEventArgs::KeyStatus() noexcept {
122
+ return m_keyStatus;
123
+ }
124
+
125
+ Pointer::Pointer(winrt::Microsoft::ReactNative::Composition::Input::PointerDeviceType type, uint32_t id)
126
+ : m_type(type), m_id(id) {}
127
+
128
+ winrt::Microsoft::ReactNative::Composition::Input::PointerDeviceType Pointer::PointerDeviceType() const noexcept {
129
+ return m_type;
130
+ }
131
+
132
+ uint32_t Pointer::PointerId() const noexcept {
133
+ return m_id;
134
+ }
135
+
78
136
  #ifdef USE_WINUI3
79
137
  PointerPointProperties::PointerPointProperties(const winrt::Microsoft::UI::Input::PointerPointProperties &ppp)
80
138
  : m_sysPointerPointProps(ppp) {}
@@ -313,14 +371,24 @@ float PointerPointProperties::YTilt() noexcept {
313
371
  }
314
372
 
315
373
  #ifdef USE_WINUI3
316
- PointerPoint::PointerPoint(const winrt::Microsoft::UI::Input::PointerPoint &pp) : m_sysPointerPoint(pp) {}
374
+ PointerPoint::PointerPoint(const winrt::Microsoft::UI::Input::PointerPoint &pp, float scaleFactor)
375
+ : m_sysPointerPoint(pp), m_scaleFactor(scaleFactor), m_offset({0, 0}) {}
376
+
377
+ PointerPoint::PointerPoint(
378
+ const winrt::Microsoft::UI::Input::PointerPoint &pp,
379
+ float scaleFactor,
380
+ const winrt::Windows::Foundation::Point &offset)
381
+ : m_sysPointerPoint(pp), m_scaleFactor(scaleFactor), m_offset(offset) {}
317
382
  #endif
318
383
 
319
- PointerPoint::PointerPoint(uint32_t msg, uint64_t wParam, int64_t lParam, float scaleFactor) {
320
- m_msg = msg;
321
- m_wParam = wParam;
322
- m_lParam = lParam;
323
- m_scaleFactor = scaleFactor;
384
+ PointerPoint::PointerPoint(
385
+ HWND hwnd,
386
+ uint32_t msg,
387
+ uint64_t wParam,
388
+ int64_t lParam,
389
+ float scaleFactor,
390
+ const winrt::Windows::Foundation::Point &offset)
391
+ : m_offset(offset), m_hwnd(hwnd), m_msg(msg), m_wParam(wParam), m_lParam(lParam), m_scaleFactor(scaleFactor) {
324
392
  if (IsPointerMessage(msg)) {
325
393
  const unsigned int pointerId = GET_POINTERID_WPARAM(wParam);
326
394
  bool result = ::GetPointerInfo(pointerId, &m_pi);
@@ -328,7 +396,10 @@ PointerPoint::PointerPoint(uint32_t msg, uint64_t wParam, int64_t lParam, float
328
396
  }
329
397
  }
330
398
 
331
- uint32_t PointerPoint::FrameId() noexcept {
399
+ PointerPoint::PointerPoint(HWND hwnd, uint32_t msg, uint64_t wParam, int64_t lParam, float scaleFactor)
400
+ : PointerPoint(hwnd, msg, wParam, lParam, scaleFactor, {0, 0}) {}
401
+
402
+ uint32_t PointerPoint::FrameId() const noexcept {
332
403
  #ifdef USE_WINUI3
333
404
  if (m_sysPointerPoint) {
334
405
  return m_sysPointerPoint.FrameId();
@@ -337,7 +408,7 @@ uint32_t PointerPoint::FrameId() noexcept {
337
408
  return m_pi.frameId;
338
409
  }
339
410
 
340
- bool PointerPoint::IsInContact() noexcept {
411
+ bool PointerPoint::IsInContact() const noexcept {
341
412
  #ifdef USE_WINUI3
342
413
  if (m_sysPointerPoint) {
343
414
  return m_sysPointerPoint.IsInContact();
@@ -346,7 +417,7 @@ bool PointerPoint::IsInContact() noexcept {
346
417
  return ((m_pi.pointerFlags & POINTER_FLAG_INCONTACT) == POINTER_FLAG_INCONTACT);
347
418
  }
348
419
 
349
- winrt::Microsoft::ReactNative::Composition::Input::PointerDeviceType PointerPoint::PointerDeviceType() noexcept {
420
+ winrt::Microsoft::ReactNative::Composition::Input::PointerDeviceType PointerPoint::PointerDeviceType() const noexcept {
350
421
  #ifdef USE_WINUI3
351
422
  if (m_sysPointerPoint) {
352
423
  return static_cast<winrt::Microsoft::ReactNative::Composition::Input::PointerDeviceType>(
@@ -372,7 +443,7 @@ winrt::Microsoft::ReactNative::Composition::Input::PointerDeviceType PointerPoin
372
443
  return winrt::Microsoft::ReactNative::Composition::Input::PointerDeviceType::Mouse;
373
444
  }
374
445
 
375
- uint32_t PointerPoint::PointerId() noexcept {
446
+ uint32_t PointerPoint::PointerId() const noexcept {
376
447
  #ifdef USE_WINUI3
377
448
  if (m_sysPointerPoint) {
378
449
  return m_sysPointerPoint.PointerId();
@@ -381,21 +452,27 @@ uint32_t PointerPoint::PointerId() noexcept {
381
452
  return (m_pi.pointerId ? m_pi.pointerId : 1 /* MOUSE */);
382
453
  }
383
454
 
384
- winrt::Windows::Foundation::Point PointerPoint::Position() noexcept {
455
+ winrt::Windows::Foundation::Point PointerPoint::Position() const noexcept {
385
456
  #ifdef USE_WINUI3
386
457
  if (m_sysPointerPoint) {
387
- return m_sysPointerPoint.Position();
458
+ auto pos = m_sysPointerPoint.Position();
459
+ return {pos.X - (m_offset.X / m_scaleFactor), pos.Y - (m_offset.Y / m_scaleFactor)};
388
460
  }
389
461
  #endif
390
- return m_pi.pointerId
391
- ? winrt::Windows::Foundation::
392
- Point{static_cast<float>(m_pi.ptPixelLocation.x / m_scaleFactor), static_cast<float>(m_pi.ptPixelLocation.y / m_scaleFactor)}
393
- : winrt::Windows::Foundation::Point{
394
- static_cast<float>(GET_X_LPARAM(m_lParam) / m_scaleFactor),
395
- static_cast<float>(GET_Y_LPARAM(m_lParam) / m_scaleFactor)};
462
+
463
+ assert(m_hwnd);
464
+ POINT clientPoint{
465
+ m_pi.pointerId ? m_pi.ptPixelLocation.x : GET_X_LPARAM(m_lParam),
466
+ m_pi.pointerId ? m_pi.ptPixelLocation.y : GET_Y_LPARAM(m_lParam)};
467
+ if (m_pi.pointerId || m_msg == WM_MOUSEWHEEL || m_msg == WM_MOUSEHWHEEL) {
468
+ ScreenToClient(m_hwnd, &clientPoint);
469
+ }
470
+ return winrt::Windows::Foundation::Point{
471
+ static_cast<float>(clientPoint.x / m_scaleFactor) - (m_offset.X / m_scaleFactor),
472
+ static_cast<float>(clientPoint.y / m_scaleFactor) - (m_offset.Y / m_scaleFactor)};
396
473
  }
397
474
 
398
- winrt::Microsoft::ReactNative::Composition::Input::PointerPointProperties PointerPoint::Properties() noexcept {
475
+ winrt::Microsoft::ReactNative::Composition::Input::PointerPointProperties PointerPoint::Properties() const noexcept {
399
476
  #ifdef USE_WINUI3
400
477
  if (m_sysPointerPoint) {
401
478
  return winrt::make<PointerPointProperties>(m_sysPointerPoint.Properties());
@@ -517,7 +594,7 @@ winrt::Microsoft::ReactNative::Composition::Input::PointerPointProperties Pointe
517
594
  );
518
595
  }
519
596
 
520
- uint64_t PointerPoint::Timestamp() noexcept {
597
+ uint64_t PointerPoint::Timestamp() const noexcept {
521
598
  #ifdef USE_WINUI3
522
599
  if (m_sysPointerPoint) {
523
600
  return m_sysPointerPoint.Timestamp();
@@ -526,27 +603,28 @@ uint64_t PointerPoint::Timestamp() noexcept {
526
603
  return m_pi.dwTime;
527
604
  }
528
605
 
529
- winrt::Microsoft::ReactNative::Composition::Input::PointerPoint PointerPoint::GetTransformedPoint(
530
- const IPointerPointTransform &transform) noexcept {
606
+ winrt::Microsoft::ReactNative::Composition::Input::PointerPoint PointerPoint::GetOffsetPoint(
607
+ const winrt::Windows::Foundation::Point &offset) const noexcept {
531
608
  #ifdef USE_WINUI3
532
609
  if (m_sysPointerPoint) {
533
- return winrt::make<PointerPoint>(m_sysPointerPoint);
610
+ return winrt::make<PointerPoint>(m_sysPointerPoint, m_scaleFactor, offset);
534
611
  }
535
612
  #endif
536
- return winrt::make<PointerPoint>(m_msg, m_wParam, m_lParam, m_scaleFactor);
613
+ return winrt::make<PointerPoint>(m_hwnd, m_msg, m_wParam, m_lParam, m_scaleFactor, offset);
537
614
  }
538
615
 
539
- bool PointerPoint::IsPointerMessage(uint32_t message) noexcept {
616
+ bool PointerPoint::IsPointerMessage(uint32_t message) const noexcept {
540
617
  constexpr uint32_t WM_POINTERFIRST = 0x0245;
541
618
  constexpr uint32_t WM_POINTERLAST = 0x0257;
542
619
  return (message >= WM_POINTERFIRST && message <= WM_POINTERLAST);
543
620
  }
544
621
 
545
622
  PointerRoutedEventArgs::PointerRoutedEventArgs(
623
+ const winrt::Microsoft::ReactNative::ReactContext &context,
546
624
  facebook::react::Tag tag,
547
625
  const winrt::Microsoft::ReactNative::Composition::Input::PointerPoint &pp,
548
626
  const winrt::Windows::System::VirtualKeyModifiers &virtualKeyModifiers)
549
- : m_tag(tag), m_virtualKeyModifiers(virtualKeyModifiers) {
627
+ : m_context(context), m_tag(tag), m_virtualKeyModifiers(virtualKeyModifiers) {
550
628
  m_pointerPoint = pp;
551
629
  }
552
630
 
@@ -556,8 +634,25 @@ int32_t PointerRoutedEventArgs::OriginalSource() noexcept {
556
634
 
557
635
  winrt::Microsoft::ReactNative::Composition::Input::PointerPoint PointerRoutedEventArgs::GetCurrentPoint(
558
636
  int32_t tag) noexcept {
559
- assert(tag == -1); // TODO: Non-null tags need to apply a transform
560
- return m_pointerPoint;
637
+ if (tag == -1) {
638
+ return m_pointerPoint;
639
+ }
640
+
641
+ auto fabricuiManager = ::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties());
642
+
643
+ const auto &viewRegistry = fabricuiManager->GetViewRegistry();
644
+ auto targetComponentViewDescriptor = viewRegistry.componentViewDescriptorWithTag(tag);
645
+
646
+ auto clientRect =
647
+ winrt::get_self<winrt::Microsoft::ReactNative::implementation::ComponentView>(targetComponentViewDescriptor.view)
648
+ ->getClientRect();
649
+
650
+ return m_pointerPoint.GetOffsetPoint({static_cast<float>(clientRect.left), static_cast<float>(clientRect.top)});
651
+ }
652
+
653
+ winrt::Microsoft::ReactNative::Composition::Input::Pointer PointerRoutedEventArgs::Pointer() const noexcept {
654
+ return winrt::make<winrt::Microsoft::ReactNative::Composition::Input::implementation::Pointer>(
655
+ m_pointerPoint.PointerDeviceType(), m_pointerPoint.PointerId());
561
656
  }
562
657
 
563
658
  bool PointerRoutedEventArgs::Handled() noexcept {