react-native-windows 0.71.10 → 0.72.0-preview.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (620) hide show
  1. package/.flowconfig +13 -3
  2. package/Directory.Build.props +19 -19
  3. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +1 -1
  4. package/Libraries/Alert/Alert.d.ts +4 -4
  5. package/Libraries/Alert/Alert.windows.js +2 -0
  6. package/Libraries/Alert/NativeDialogManagerWindows.js +1 -0
  7. package/Libraries/Animated/Animated.d.ts +17 -6
  8. package/Libraries/Animated/NativeAnimatedHelper.js +18 -6
  9. package/Libraries/Animated/bezier.js +1 -1
  10. package/Libraries/Animated/components/AnimatedFlatList.js +8 -3
  11. package/Libraries/Animated/components/AnimatedScrollView.js +4 -1
  12. package/Libraries/Animated/components/AnimatedSectionList.js +12 -3
  13. package/Libraries/Animated/createAnimatedComponent.js +26 -239
  14. package/Libraries/Animated/nodes/AnimatedColor.js +47 -80
  15. package/Libraries/Animated/nodes/AnimatedInterpolation.js +167 -121
  16. package/Libraries/Animated/nodes/AnimatedNode.js +3 -5
  17. package/Libraries/Animated/nodes/AnimatedProps.js +7 -6
  18. package/Libraries/Animated/nodes/AnimatedStyle.js +42 -8
  19. package/Libraries/Animated/nodes/AnimatedTransform.js +1 -1
  20. package/Libraries/Animated/nodes/AnimatedValue.js +8 -12
  21. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  22. package/Libraries/Animated/useAnimatedProps.js +7 -10
  23. package/Libraries/AppTheme/AppTheme.js +1 -0
  24. package/Libraries/AppTheme/AppThemeTypes.d.ts +1 -1
  25. package/Libraries/BatchedBridge/MessageQueue.js +2 -1
  26. package/Libraries/BatchedBridge/NativeModules.d.ts +1 -1
  27. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  28. package/Libraries/Blob/Blob.js +4 -0
  29. package/Libraries/Blob/FileReader.js +30 -2
  30. package/Libraries/Blob/URL.js +3 -1
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +2 -2
  32. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -3
  33. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +2 -3
  34. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +6 -4
  35. package/Libraries/Components/Button.js +3 -2
  36. package/Libraries/Components/Button.windows.js +3 -2
  37. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  38. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
  39. package/Libraries/Components/Flyout/Flyout.d.ts +55 -19
  40. package/Libraries/Components/Flyout/Flyout.js +110 -51
  41. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +45 -0
  42. package/Libraries/Components/Glyph/Glyph.d.ts +29 -12
  43. package/Libraries/Components/Glyph/Glyph.js +43 -30
  44. package/Libraries/Components/Glyph/GlyphNativeComponent.js +31 -0
  45. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -0
  46. package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +2 -2
  47. package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
  48. package/Libraries/Components/Popup/Popup.d.ts +41 -19
  49. package/Libraries/Components/Popup/Popup.js +86 -52
  50. package/Libraries/Components/Popup/PopupNativeComponent.js +49 -0
  51. package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
  52. package/Libraries/Components/Pressable/Pressable.js +1 -1
  53. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -0
  54. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -0
  55. package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -2
  56. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +1 -2
  57. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +12 -6
  58. package/Libraries/Components/ScrollView/ScrollView.d.ts +2 -2
  59. package/Libraries/Components/ScrollView/ScrollView.js +149 -91
  60. package/Libraries/Components/ScrollView/ScrollView.windows.js +1939 -0
  61. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -6
  62. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +175 -0
  63. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -7
  64. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -1
  65. package/Libraries/Components/StatusBar/StatusBar.js +3 -0
  66. package/Libraries/Components/Switch/Switch.js +3 -1
  67. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +21 -11
  68. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +1 -1
  69. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +11 -5
  70. package/Libraries/Components/TextInput/TextInput.d.ts +15 -5
  71. package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
  72. package/Libraries/Components/TextInput/TextInput.js +130 -103
  73. package/Libraries/Components/TextInput/TextInput.windows.js +152 -115
  74. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
  75. package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
  76. package/Libraries/Components/Touchable/Touchable.flow.js +30 -4
  77. package/Libraries/Components/Touchable/Touchable.js +6 -3
  78. package/Libraries/Components/Touchable/Touchable.windows.js +6 -3
  79. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  80. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +2 -1
  81. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
  82. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -0
  83. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -0
  84. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +1 -1
  85. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
  86. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -2
  87. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +179 -0
  88. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
  89. package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
  90. package/Libraries/Components/View/View.js +35 -16
  91. package/Libraries/Components/View/View.windows.js +40 -16
  92. package/Libraries/Components/View/ViewAccessibility.d.ts +6 -6
  93. package/Libraries/Components/View/ViewAccessibility.js +10 -1
  94. package/Libraries/Components/View/ViewAccessibility.windows.js +9 -0
  95. package/Libraries/Components/View/ViewNativeComponent.js +32 -8
  96. package/Libraries/Components/View/ViewPropTypes.d.ts +1 -1
  97. package/Libraries/Components/View/ViewPropTypes.js +1 -1
  98. package/Libraries/Components/View/ViewPropTypes.windows.js +3 -1
  99. package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
  100. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
  101. package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
  102. package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
  103. package/Libraries/Core/ExceptionsManager.js +2 -2
  104. package/Libraries/Core/InitializeCore.js +2 -1
  105. package/Libraries/Core/ReactNativeVersion.js +3 -3
  106. package/Libraries/Core/ReactNativeVersionCheck.js +4 -8
  107. package/Libraries/Core/Timers/JSTimers.js +1 -1
  108. package/Libraries/Core/Timers/immediateShim.js +1 -0
  109. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  110. package/Libraries/Core/setUpAlert.js +1 -1
  111. package/Libraries/Core/setUpDOM.js +18 -0
  112. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  113. package/Libraries/Core/setUpGlobals.js +5 -2
  114. package/Libraries/Core/setUpNavigator.js +6 -5
  115. package/Libraries/Core/setUpPerformance.js +23 -13
  116. package/Libraries/Core/setUpReactDevTools.js +2 -0
  117. package/Libraries/Core/setUpSegmentFetcher.js +0 -41
  118. package/Libraries/Core/setUpTimers.js +2 -2
  119. package/Libraries/DOM/Geometry/DOMRect.js +82 -0
  120. package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
  121. package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
  122. package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
  123. package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
  124. package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
  125. package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
  126. package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
  127. package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
  128. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
  129. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
  130. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
  131. package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +35 -0
  132. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +24 -0
  133. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
  134. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
  135. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
  136. package/Libraries/Events/EventPolyfill.js +1 -1
  137. package/Libraries/Image/AssetRegistry.js +1 -1
  138. package/Libraries/Image/AssetSourceResolver.js +3 -3
  139. package/Libraries/Image/Image.android.js +4 -1
  140. package/Libraries/Image/Image.d.ts +63 -2
  141. package/Libraries/Image/Image.ios.js +3 -0
  142. package/Libraries/Image/Image.windows.js +3 -0
  143. package/Libraries/Image/ImageBackground.js +1 -0
  144. package/Libraries/Image/ImageProps.js +1 -1
  145. package/Libraries/Image/ImageViewNativeComponent.js +4 -4
  146. package/Libraries/Image/RelativeImageStub.js +1 -1
  147. package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
  148. package/Libraries/Image/resolveAssetSource.js +1 -1
  149. package/Libraries/Inspector/DevtoolsOverlay.js +26 -19
  150. package/Libraries/Inspector/ElementBox.js +4 -1
  151. package/Libraries/Inspector/Inspector.js +5 -6
  152. package/Libraries/Inspector/InspectorOverlay.js +3 -3
  153. package/Libraries/Inspector/NetworkOverlay.js +1 -1
  154. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
  155. package/Libraries/Interaction/PanResponder.js +5 -6
  156. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
  157. package/Libraries/Linking/Linking.js +1 -4
  158. package/Libraries/Lists/FillRateHelper.js +4 -238
  159. package/Libraries/Lists/FlatList.d.ts +15 -22
  160. package/Libraries/Lists/FlatList.js +9 -6
  161. package/Libraries/Lists/SectionList.d.ts +10 -6
  162. package/Libraries/Lists/SectionList.js +5 -3
  163. package/Libraries/Lists/SectionListModern.js +3 -3
  164. package/Libraries/Lists/ViewabilityHelper.js +8 -344
  165. package/Libraries/Lists/VirtualizeUtils.js +4 -244
  166. package/Libraries/Lists/VirtualizedList.js +10 -1867
  167. package/Libraries/Lists/VirtualizedListContext.js +6 -104
  168. package/Libraries/Lists/VirtualizedSectionList.js +9 -602
  169. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
  170. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  171. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  172. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  173. package/Libraries/LogBox/LogBox.js +1 -1
  174. package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
  175. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +167 -0
  176. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +172 -0
  177. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +193 -0
  178. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
  179. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
  180. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +118 -0
  181. package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
  182. package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
  183. package/Libraries/Modal/Modal.js +2 -2
  184. package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
  185. package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
  186. package/Libraries/NativeComponent/BaseViewConfig.windows.js +77 -19
  187. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
  188. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  189. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
  190. package/Libraries/Network/RCTNetworking.android.js +2 -2
  191. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  192. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  193. package/Libraries/Network/XMLHttpRequest.js +1 -1
  194. package/Libraries/Pressability/Pressability.js +10 -4
  195. package/Libraries/Pressability/Pressability.windows.js +11 -4
  196. package/Libraries/ReactNative/AppContainer.js +7 -1
  197. package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
  198. package/Libraries/ReactNative/AppRegistry.js +10 -13
  199. package/Libraries/ReactNative/FabricUIManager.js +24 -8
  200. package/Libraries/ReactNative/NativeUIManager.js +5 -5
  201. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
  202. package/Libraries/ReactNative/UIManager.js +168 -1
  203. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
  204. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  205. package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
  206. package/Libraries/ReactNative/requireNativeComponent.js +1 -1
  207. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
  208. package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
  209. package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
  210. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
  211. package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
  212. package/Libraries/Renderer/shims/ReactNativeTypes.js +6 -6
  213. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
  214. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  215. package/Libraries/Share/Share.js +1 -1
  216. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  217. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  218. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
  219. package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
  220. package/Libraries/StyleSheet/flattenStyle.js +2 -0
  221. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  222. package/Libraries/StyleSheet/processColor.js +1 -1
  223. package/Libraries/Text/Text.d.ts +12 -2
  224. package/Libraries/Text/Text.js +50 -41
  225. package/Libraries/Text/Text.windows.js +48 -38
  226. package/Libraries/Text/TextProps.js +3 -4
  227. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
  228. package/Libraries/Types/CodegenTypes.js +1 -0
  229. package/Libraries/UTFSequence.js +3 -1
  230. package/Libraries/Utilities/Appearance.d.ts +10 -0
  231. package/Libraries/Utilities/Appearance.js +13 -0
  232. package/Libraries/Utilities/Dimensions.js +1 -1
  233. package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
  234. package/Libraries/Utilities/HMRClient.js +16 -10
  235. package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
  236. package/Libraries/Utilities/IPerformanceLogger.js +49 -0
  237. package/Libraries/Utilities/LoadingView.android.js +28 -11
  238. package/Libraries/Utilities/NativeAppearance.js +1 -0
  239. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
  240. package/Libraries/Utilities/PixelRatio.js +2 -2
  241. package/Libraries/Utilities/Platform.windows.js +1 -1
  242. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  243. package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
  244. package/Libraries/Utilities/codegenNativeCommands.js +2 -0
  245. package/Libraries/Utilities/createPerformanceLogger.js +55 -43
  246. package/Libraries/Utilities/stringifySafe.js +2 -7
  247. package/Libraries/Utilities/useColorScheme.windows.js +26 -0
  248. package/Libraries/Utilities/useWindowDimensions.js +3 -3
  249. package/Libraries/WebPerformance/EventCounts.js +78 -0
  250. package/Libraries/WebPerformance/MemoryInfo.js +54 -0
  251. package/Libraries/WebPerformance/NativePerformance.js +38 -0
  252. package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
  253. package/Libraries/WebPerformance/Performance.js +312 -0
  254. package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
  255. package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
  256. package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
  257. package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
  258. package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
  259. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
  260. package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
  261. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  262. package/Libraries/platform-types.d.ts +3 -5
  263. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  264. package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
  265. package/Libraries/vendor/emitter/EventEmitter.js +9 -1
  266. package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +0 -15
  267. package/Microsoft.ReactNative/CompositionHwndHost.idl +6 -0
  268. package/Microsoft.ReactNative/CompositionRootView.idl +35 -0
  269. package/Microsoft.ReactNative/CompositionSwitcher.idl +19 -0
  270. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +174 -0
  271. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +91 -0
  272. package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +48 -0
  273. package/Microsoft.ReactNative/Fabric/AbiViewProps.h +48 -0
  274. package/Microsoft.ReactNative/Fabric/ComponentView.h +19 -2
  275. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +144 -0
  276. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +63 -0
  277. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +27 -6
  278. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +97 -0
  279. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +227 -0
  280. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +38 -0
  281. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +112 -95
  282. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +12 -8
  283. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +0 -2
  284. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +27 -6
  285. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +8 -0
  286. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +147 -0
  287. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +46 -0
  288. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +31 -4
  289. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +37 -0
  290. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +255 -50
  291. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +34 -15
  292. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +127 -47
  293. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +11 -7
  294. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +109 -39
  295. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +10 -7
  296. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +106 -0
  297. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +63 -0
  298. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +116 -0
  299. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +43 -0
  300. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +53 -38
  301. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +12 -8
  302. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +262 -0
  303. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +62 -0
  304. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +35 -30
  305. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +11 -9
  306. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +9 -0
  307. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -0
  308. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +2 -1
  309. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +72 -0
  310. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +16 -0
  311. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +168 -0
  312. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +49 -0
  313. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +19 -53
  314. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -3
  315. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +8 -9
  316. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +100 -0
  317. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.h +43 -0
  318. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +61 -0
  319. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +34 -0
  320. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +42 -0
  321. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +10 -0
  322. package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +248 -0
  323. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +5 -0
  324. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +135 -4
  325. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +18 -240
  326. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -17
  327. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +13 -2
  328. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +87 -0
  329. package/Microsoft.ReactNative/IReactContext.cpp +4 -0
  330. package/Microsoft.ReactNative/IReactContext.h +1 -0
  331. package/Microsoft.ReactNative/IReactContext.idl +5 -0
  332. package/Microsoft.ReactNative/IReactDispatcher.cpp +4 -0
  333. package/Microsoft.ReactNative/IReactDispatcher.h +1 -0
  334. package/Microsoft.ReactNative/IReactPackageBuilderFabric.idl +23 -0
  335. package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +23 -0
  336. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -118
  337. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -7
  338. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +2 -2
  339. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +1 -1
  340. package/Microsoft.ReactNative/Modules/AlertModule.cpp +100 -4
  341. package/Microsoft.ReactNative/Modules/AlertModule.h +4 -0
  342. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.cpp +9 -0
  343. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.h +2 -0
  344. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +7 -5
  345. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +17 -3
  346. package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.h +1 -0
  347. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +4 -0
  348. package/Microsoft.ReactNative/Modules/AppearanceModule.h +3 -0
  349. package/Microsoft.ReactNative/Modules/ClipboardModule.cpp +4 -4
  350. package/Microsoft.ReactNative/Modules/ClipboardModule.h +2 -2
  351. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +27 -7
  352. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.h +9 -5
  353. package/Microsoft.ReactNative/Modules/LinkingManagerModule.cpp +10 -12
  354. package/Microsoft.ReactNative/Modules/LinkingManagerModule.h +4 -4
  355. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -1
  356. package/Microsoft.ReactNative/QuirkSettings.cpp +17 -0
  357. package/Microsoft.ReactNative/QuirkSettings.h +5 -0
  358. package/Microsoft.ReactNative/QuirkSettings.idl +6 -0
  359. package/Microsoft.ReactNative/ReactApplication.cpp +8 -0
  360. package/Microsoft.ReactNative/ReactApplication.h +3 -0
  361. package/Microsoft.ReactNative/ReactApplication.idl +3 -0
  362. package/Microsoft.ReactNative/ReactCoreInjection.cpp +29 -0
  363. package/Microsoft.ReactNative/ReactCoreInjection.h +6 -0
  364. package/Microsoft.ReactNative/ReactCoreInjection.idl +13 -0
  365. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +7 -0
  366. package/Microsoft.ReactNative/ReactHost/MsoReactContext.h +1 -0
  367. package/Microsoft.ReactNative/ReactHost/React.h +2 -0
  368. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +57 -16
  369. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -0
  370. package/Microsoft.ReactNative/ReactInstanceSettings.h +12 -0
  371. package/Microsoft.ReactNative/ReactInstanceSettings.idl +6 -0
  372. package/Microsoft.ReactNative/ReactNativeHost.cpp +17 -0
  373. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +18 -0
  374. package/Microsoft.ReactNative/ReactPackageBuilder.h +24 -1
  375. package/Microsoft.ReactNative/ReactRootView.cpp +2 -2
  376. package/Microsoft.ReactNative/RedBox.cpp +2 -1
  377. package/Microsoft.ReactNative/Utils/Helpers.cpp +0 -32
  378. package/Microsoft.ReactNative/Utils/Helpers.h +0 -8
  379. package/Microsoft.ReactNative/Utils/ImageUtils.cpp +69 -6
  380. package/Microsoft.ReactNative/Utils/ImageUtils.h +3 -1
  381. package/Microsoft.ReactNative/Utils/KeyboardUtils.cpp +416 -0
  382. package/Microsoft.ReactNative/Utils/KeyboardUtils.h +15 -0
  383. package/Microsoft.ReactNative/Utils/TransformableText.h +1 -0
  384. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -9
  385. package/Microsoft.ReactNative/Utils/ValueUtils.h +0 -2
  386. package/Microsoft.ReactNative/ViewProps.idl +30 -0
  387. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +6 -2
  388. package/Microsoft.ReactNative/Views/DevMenu.cpp +369 -230
  389. package/Microsoft.ReactNative/Views/DevMenu.h +3 -15
  390. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +6 -3
  391. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +11 -3
  392. package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +5 -1
  393. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +29 -22
  394. package/Microsoft.ReactNative/Views/Image/ReactImage.h +2 -2
  395. package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +10 -405
  396. package/Microsoft.ReactNative/Views/KeyboardEventHandler.h +0 -3
  397. package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -0
  398. package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +2 -2
  399. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +7 -0
  400. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +3 -0
  401. package/Microsoft.ReactNative/Views/Text/TextHitTestUtils.cpp +6 -1
  402. package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +1 -0
  403. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +38 -2
  404. package/Microsoft.ReactNative/Views/TextViewManager.cpp +3 -0
  405. package/Microsoft.ReactNative/Views/TouchEventHandler.h +0 -4
  406. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +0 -8
  407. package/Microsoft.ReactNative/Views/ViewPanel.cpp +1 -1
  408. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +12 -3
  409. package/Microsoft.ReactNative/XamlHelper.cpp +36 -0
  410. package/Microsoft.ReactNative/XamlHelper.h +27 -0
  411. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +4 -4
  412. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +4 -4
  413. package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
  414. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +10 -8
  415. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +3 -3
  416. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +4 -1
  417. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +3 -0
  418. package/Microsoft.ReactNative.Cxx/NativeModules.h +16 -1
  419. package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +2 -0
  420. package/Microsoft.ReactNative.Managed/packages.lock.json +5 -5
  421. package/PropertySheets/External/Microsoft.ReactNative.Cpp.ProjectReferences.props +3 -0
  422. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  423. package/PropertySheets/JSEngine.props +1 -2
  424. package/PropertySheets/Warnings.props +1 -1
  425. package/ReactCommon/ReactCommon.vcxproj +2 -4
  426. package/ReactCommon/ReactCommon.vcxproj.filters +3 -0
  427. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +1 -1
  428. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.cpp +60 -0
  429. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.h +60 -0
  430. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +116 -0
  431. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +63 -0
  432. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -2
  433. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +237 -0
  434. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +59 -0
  435. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +159 -0
  436. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +94 -0
  437. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +465 -0
  438. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +116 -0
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +98 -0
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +362 -0
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +326 -0
  442. package/ReactCommon/Yoga.cpp +60 -127
  443. package/Scripts/OfficeReact.Win32.nuspec +1 -0
  444. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +1 -0
  445. package/Scripts/rnw-dependencies.ps1 +14 -6
  446. package/Shared/Composition/CompositionSwitcher.interop.h +1 -0
  447. package/Shared/DevServerHelper.h +11 -2
  448. package/Shared/DevSettings.h +1 -0
  449. package/Shared/DevSupportManager.cpp +11 -1
  450. package/Shared/DevSupportManager.h +1 -0
  451. package/Shared/HermesRuntimeHolder.cpp +53 -30
  452. package/Shared/HermesRuntimeHolder.h +26 -11
  453. package/Shared/HermesSamplingProfiler.cpp +61 -8
  454. package/Shared/HermesSamplingProfiler.h +6 -3
  455. package/Shared/HermesShim.cpp +86 -82
  456. package/Shared/HermesShim.h +28 -8
  457. package/Shared/JSI/ChakraRuntime.cpp +7 -4
  458. package/Shared/JSI/ChakraRuntime.h +4 -4
  459. package/Shared/JSI/NapiJsiV8RuntimeHolder.h +2 -0
  460. package/Shared/JSI/RuntimeHolder.h +2 -2
  461. package/Shared/Logging.cpp +1 -1
  462. package/Shared/Modules/BlobModule.cpp +3 -4
  463. package/Shared/Modules/BlobModule.h +0 -4
  464. package/Shared/Networking/OriginPolicyHttpFilter.cpp +13 -17
  465. package/Shared/Networking/OriginPolicyHttpFilter.h +11 -12
  466. package/Shared/Networking/WinRTWebSocketResource.cpp +59 -45
  467. package/Shared/OInstance.cpp +9 -2
  468. package/Shared/Shared.vcxitems +265 -58
  469. package/Shared/Shared.vcxitems.filters +312 -42
  470. package/Shared/V8JSIRuntimeHolder.cpp +1 -0
  471. package/Shared/V8JSIRuntimeHolder.h +7 -2
  472. package/codegen/NativeAppearanceSpec.g.h +9 -3
  473. package/codegen/NativeClipboardSpec.g.h +3 -3
  474. package/codegen/NativeDevSplitBundleLoaderSpec.g.h +3 -3
  475. package/codegen/NativeDevToolsSettingsManagerSpec.g.h +51 -0
  476. package/codegen/NativeDialogManagerWindowsSpec.g.h +2 -0
  477. package/codegen/NativeFileReaderModuleSpec.g.h +6 -6
  478. package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +3 -3
  479. package/codegen/NativeImageLoaderAndroidSpec.g.h +25 -9
  480. package/codegen/NativeImageLoaderIOSSpec.g.h +20 -12
  481. package/codegen/NativeIntentAndroidSpec.g.h +15 -15
  482. package/codegen/NativeLinkingManagerSpec.g.h +12 -12
  483. package/codegen/NativePerformanceObserverSpec.g.h +48 -10
  484. package/codegen/NativePerformanceSpec.g.h +63 -0
  485. package/codegen/NativePermissionsAndroidSpec.g.h +9 -9
  486. package/codegen/NativePlatformConstantsWinSpec.g.h +1 -1
  487. package/codegen/NativePushNotificationManagerIOSSpec.g.h +6 -6
  488. package/codegen/NativeSampleTurboModuleSpec.g.h +25 -19
  489. package/codegen/NativeShareModuleSpec.g.h +9 -3
  490. package/codegen/NativeUIManagerSpec.g.h +12 -12
  491. package/codegen/react/components/rnwcore/ComponentDescriptors.h +1 -2
  492. package/codegen/react/components/rnwcore/EventEmitters.cpp +21 -29
  493. package/codegen/react/components/rnwcore/EventEmitters.h +30 -30
  494. package/codegen/react/components/rnwcore/Props.cpp +47 -48
  495. package/codegen/react/components/rnwcore/Props.h +59 -166
  496. package/codegen/react/components/rnwcore/ShadowNodes.cpp +1 -2
  497. package/codegen/react/components/rnwcore/ShadowNodes.h +11 -22
  498. package/codegen/react/components/rnwcore/States.h +15 -30
  499. package/codegen/rnwcoreJSI-generated.cpp +87 -17
  500. package/codegen/rnwcoreJSI.h +1080 -376
  501. package/generate.js +6 -1
  502. package/include/Include.vcxitems +0 -1
  503. package/include/Include.vcxitems.filters +0 -3
  504. package/index.js +56 -42
  505. package/index.windows.js +56 -42
  506. package/interface.js +1 -1
  507. package/jest/local-setup.js +33 -0
  508. package/jest/mockComponent.js +4 -2
  509. package/jest/mockNativeComponent.js +1 -1
  510. package/jest/mockScrollView.js +2 -1
  511. package/jest/react-native-env.js +1 -3
  512. package/jest/setup.js +11 -8
  513. package/just-task.js +12 -5
  514. package/package.json +34 -31
  515. package/rn-get-polyfills.js +1 -1
  516. package/template/metro.config.js +2 -0
  517. package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
  518. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
  519. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
  520. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
  521. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
  522. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
  523. package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
  524. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
  525. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
  526. package/Libraries/Components/DatePicker/DatePickerIOS.windows.js +0 -47
  527. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
  528. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
  529. package/Libraries/Components/Flyout/Flyout.js.map +0 -1
  530. package/Libraries/Components/Flyout/FlyoutProps.d.ts +0 -25
  531. package/Libraries/Components/Flyout/FlyoutProps.js +0 -3
  532. package/Libraries/Components/Flyout/FlyoutProps.js.map +0 -1
  533. package/Libraries/Components/Glyph/Glyph.js.map +0 -1
  534. package/Libraries/Components/Glyph/GlyphProps.d.ts +0 -16
  535. package/Libraries/Components/Glyph/GlyphProps.js +0 -8
  536. package/Libraries/Components/Glyph/GlyphProps.js.map +0 -1
  537. package/Libraries/Components/Popup/Popup.js.map +0 -1
  538. package/Libraries/Components/Popup/PopupProps.d.ts +0 -27
  539. package/Libraries/Components/Popup/PopupProps.js +0 -8
  540. package/Libraries/Components/Popup/PopupProps.js.map +0 -1
  541. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
  542. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
  543. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
  544. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.windows.js +0 -45
  545. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
  546. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
  547. package/Libraries/Components/Slider/Slider.d.ts +0 -132
  548. package/Libraries/Components/Slider/Slider.js +0 -282
  549. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
  550. package/Libraries/Interaction/Batchinator.js +0 -76
  551. package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
  552. package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
  553. package/Libraries/Interaction/PanResponder.flow.js +0 -257
  554. package/Libraries/Lists/CellRenderMask.js +0 -155
  555. package/Libraries/Lists/ChildListCollection.js +0 -72
  556. package/Libraries/Lists/StateSafePureComponent.js +0 -85
  557. package/Libraries/Lists/VirtualizedList.d.ts +0 -347
  558. package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
  559. package/Libraries/Lists/VirtualizedListProps.js +0 -279
  560. package/Libraries/Performance/PureComponentDebug.js +0 -74
  561. package/Libraries/Reliability/UserFlow.js +0 -158
  562. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
  563. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
  564. package/Libraries/Utilities/MatrixMath.js +0 -748
  565. package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
  566. package/Libraries/Utilities/clamp.js +0 -23
  567. package/Libraries/Utilities/deprecatedPropType.js +0 -36
  568. package/Libraries/Utilities/groupByEveryN.js +0 -51
  569. package/Libraries/Utilities/mergeIntoFast.js +0 -26
  570. package/Libraries/Utilities/setAndForwardRef.js +0 -71
  571. package/Libraries/Utilities/truncate.js +0 -51
  572. package/Microsoft.ReactNative/Fabric/platform/react/components/image/conversions.h +0 -5
  573. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ConcreteViewShadowNode.h +0 -5
  574. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewEventEmitter.h +0 -5
  575. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewProps.h +0 -5
  576. package/Microsoft.ReactNative/Fabric/platform/react/core/ConcreteComponentDescriptor.h +0 -5
  577. package/Microsoft.ReactNative/Fabric/platform/react/core/PropsParserContext.h +0 -5
  578. package/Microsoft.ReactNative/Fabric/platform/react/core/propsConversions.h +0 -5
  579. package/Microsoft.ReactNative/Fabric/platform/react/graphics/Color.h +0 -5
  580. package/Microsoft.ReactNative/Fabric/platform/react/imagemanager/primitives.h +0 -5
  581. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputEventEmitter.h +0 -5
  582. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputProps.h +0 -5
  583. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputShadowNode.h +0 -5
  584. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputState.h +0 -5
  585. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/conversions.h +0 -5
  586. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/primitives.h +0 -5
  587. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/propsConversions.h +0 -5
  588. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +0 -5
  589. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +0 -5
  590. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/States.h +0 -5
  591. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Float.h +0 -5
  592. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +0 -135
  593. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ConcreteComponentDescriptor.h +0 -217
  594. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/graphics/RectangleEdges.h +0 -100
  595. package/Shared/AsyncStorage/AsyncStorageManager.cpp +0 -149
  596. package/Shared/AsyncStorage/AsyncStorageManager.h +0 -71
  597. package/Shared/AsyncStorage/FollyDynamicConverter.cpp +0 -51
  598. package/Shared/AsyncStorage/FollyDynamicConverter.h +0 -24
  599. package/Shared/AsyncStorage/KeyValueStorage.cpp +0 -248
  600. package/Shared/AsyncStorage/KeyValueStorage.h +0 -50
  601. package/Shared/AsyncStorage/StorageFileIO.cpp +0 -160
  602. package/Shared/AsyncStorage/StorageFileIO.h +0 -40
  603. package/Shared/AsyncStorageModule.h +0 -25
  604. package/Shared/Modules/AsyncStorageModule.cpp +0 -87
  605. package/Shared/Modules/AsyncStorageModuleWin32.cpp +0 -496
  606. package/Shared/Modules/AsyncStorageModuleWin32.h +0 -75
  607. package/codegen/NativeDatePickerAndroidSpec.g.h +0 -33
  608. package/include/Shared/AsyncStorageModuleWin32Config.h +0 -15
  609. package/types/index.d.ts +0 -216
  610. package/types/modules/BatchedBridge.d.ts +0 -32
  611. package/types/modules/Codegen.d.ts +0 -74
  612. package/types/modules/Devtools.d.ts +0 -31
  613. package/types/modules/LaunchScreen.d.ts +0 -18
  614. package/types/modules/globals.d.ts +0 -577
  615. package/types/private/TimerMixin.d.ts +0 -19
  616. package/types/private/Utilities.d.ts +0 -10
  617. package/types/public/DeprecatedPropertiesAlias.d.ts +0 -205
  618. package/types/public/Insets.d.ts +0 -15
  619. package/types/public/ReactNativeRenderer.d.ts +0 -149
  620. package/types/public/ReactNativeTypes.d.ts +0 -143
@@ -5,22 +5,28 @@
5
5
 
6
6
  #include "CompositionEventHandler.h"
7
7
 
8
- #include <Fabric/Composition/CompositionViewComponentView.h>
9
8
  #include <Fabric/FabricUIManagerModule.h>
9
+ #include <IReactContext.h>
10
+ #include <Views/DevMenu.h>
10
11
  #include <Views/ShadowNodeBase.h>
11
12
  #include <windows.h>
12
13
  #include <windowsx.h>
14
+ #include "CompositionRootView.h"
15
+ #include "CompositionViewComponentView.h"
16
+ #include "RootComponentView.h"
13
17
 
14
18
  namespace Microsoft::ReactNative {
15
19
 
16
20
  const PointerId MOUSE_POINTER_ID = 1; // TODO ensure this is something that does not conflict with pointer point IDs.
17
21
 
22
+ bool IsMousePointerEvent(const facebook::react::PointerEvent &pointerEvent) {
23
+ return pointerEvent.pointerId == MOUSE_POINTER_ID;
24
+ }
25
+
18
26
  bool IsViewListeningToEvent(IComponentView *view, facebook::react::ViewEvents::Offset eventType) {
19
27
  if (view) {
20
28
  auto const &viewProps = *std::static_pointer_cast<facebook::react::ViewProps const>(view->props());
21
- return true;
22
- // TODO why arn't the events bits being set?
23
- // return viewProps.events[eventType];
29
+ return viewProps.events[eventType];
24
30
  }
25
31
  return false;
26
32
  }
@@ -78,6 +84,18 @@ CompositionEventHandler::CompositionEventHandler(
78
84
 
79
85
  CompositionEventHandler::~CompositionEventHandler() {}
80
86
 
87
+ facebook::react::SurfaceId CompositionEventHandler::SurfaceId() noexcept {
88
+ return static_cast<facebook::react::SurfaceId>(
89
+ winrt::get_self<winrt::Microsoft::ReactNative::implementation::CompositionRootView>(m_compRootView)->GetTag());
90
+ }
91
+
92
+ ::Microsoft::ReactNative::RootComponentView &CompositionEventHandler::RootComponentView() noexcept {
93
+ auto rootComponentViewDescriptor = (::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties()))
94
+ ->GetViewRegistry()
95
+ .componentViewDescriptorWithTag(SurfaceId());
96
+ return static_cast<::Microsoft::ReactNative::RootComponentView &>(*(rootComponentViewDescriptor.view));
97
+ }
98
+
81
99
  // For DM
82
100
  /*
83
101
  void CompositionEventHandler::PointerDown(facebook::react::SurfaceId surfaceId, uint32_t pointerId) {
@@ -90,8 +108,7 @@ void CompositionEventHandler::PointerDown(facebook::react::SurfaceId surfaceId,
90
108
 
91
109
 
92
110
  auto rootComponentViewDescriptor = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(surfaceId);
93
- auto tag = static_cast<CompositionBaseComponentView &>(*rootComponentViewDescriptor.view)
94
- .hitTest({pp.Position().X, pp.Position().Y}, ptLocal);
111
+ auto tag = rootComponentViewDescriptor.view->hitTest({pp.Position().X, pp.Position().Y}, ptLocal);
95
112
 
96
113
  if (tag != -1) {
97
114
  auto hitComponentViewDescriptor = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(tag);
@@ -105,61 +122,84 @@ void CompositionEventHandler::PointerDown(facebook::react::SurfaceId surfaceId,
105
122
  }
106
123
  */
107
124
 
108
- void CompositionEventHandler::ScrollWheel(
109
- facebook::react::SurfaceId surfaceId,
110
- facebook::react::Point pt,
111
- uint32_t delta) {
125
+ void CompositionEventHandler::ScrollWheel(facebook::react::Point pt, uint32_t delta) {
112
126
  if (std::shared_ptr<FabricUIManager> fabricuiManager =
113
127
  ::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties())) {
114
128
  facebook::react::Point ptLocal;
115
129
 
116
- auto rootComponentViewDescriptor = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(surfaceId);
117
-
118
- static_cast<CompositionBaseComponentView &>(*rootComponentViewDescriptor.view)
119
- .ScrollWheel(
120
- {static_cast<float>(pt.x / m_compRootView.ScaleFactor()),
121
- static_cast<float>(pt.y / m_compRootView.ScaleFactor())},
122
- delta);
130
+ RootComponentView().ScrollWheel(
131
+ {static_cast<float>(pt.x / m_compRootView.ScaleFactor()),
132
+ static_cast<float>(pt.y / m_compRootView.ScaleFactor())},
133
+ delta);
123
134
  }
124
135
  }
125
136
 
126
- int64_t CompositionEventHandler::SendMessage(
127
- facebook::react::SurfaceId surfaceId,
128
- uint32_t msg,
129
- uint64_t wParam,
130
- int64_t lParam) noexcept {
137
+ int64_t CompositionEventHandler::SendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept {
131
138
  switch (msg) {
132
139
  case WM_LBUTTONDOWN: {
133
- ButtonDown(surfaceId, msg, wParam, lParam);
140
+ ButtonDown(msg, wParam, lParam);
134
141
  return 0;
135
142
  }
136
143
  case WM_POINTERDOWN: {
137
- PointerPressed(surfaceId, msg, wParam, lParam);
144
+ PointerPressed(msg, wParam, lParam);
138
145
  return 0;
139
146
  }
140
147
  case WM_LBUTTONUP: {
141
- ButtonUp(surfaceId, msg, wParam, lParam);
148
+ ButtonUp(msg, wParam, lParam);
142
149
  return 0;
143
150
  }
144
151
  case WM_POINTERUP: {
145
- PointerUp(surfaceId, msg, wParam, lParam);
152
+ PointerUp(msg, wParam, lParam);
146
153
  return 0;
147
154
  }
148
155
  case WM_MOUSEMOVE: {
149
- MouseMove(surfaceId, msg, wParam, lParam);
156
+ MouseMove(msg, wParam, lParam);
150
157
  return 0;
151
158
  }
159
+ case WM_CHAR:
160
+ case WM_SYSCHAR: {
161
+ // TODO full bubbling of events
162
+ if (auto focusedComponent = RootComponentView().GetFocusedComponent()) {
163
+ auto result = focusedComponent->sendMessage(msg, wParam, lParam);
164
+ if (result)
165
+ return result;
166
+ }
167
+ }
152
168
  case WM_KEYDOWN:
153
169
  case WM_KEYUP:
154
- case WM_CHAR:
155
- case WM_SYSCHAR:
156
170
  case WM_SYSKEYDOWN:
157
171
  case WM_SYSKEYUP: {
158
- if (auto focusedComponent = GetFocusedComponent()) {
159
- auto result = focusedComponent->SendMessage(msg, wParam, lParam);
172
+ // TODO full bubbling of events
173
+ if (auto focusedComponent = RootComponentView().GetFocusedComponent()) {
174
+ auto result = focusedComponent->sendMessage(msg, wParam, lParam);
160
175
  if (result)
161
176
  return result;
162
177
  }
178
+
179
+ BYTE bKeys[256];
180
+ if (GetKeyboardState(bKeys)) {
181
+ bool fShift = false;
182
+ if (bKeys[VK_LSHIFT] & 0x80)
183
+ fShift = true;
184
+ if (bKeys[VK_RSHIFT] & 0x80)
185
+ fShift = true;
186
+ bool fCtrl = false;
187
+ if (bKeys[VK_LCONTROL] & 0x80)
188
+ fCtrl = true;
189
+ if (bKeys[VK_RCONTROL] & 0x80)
190
+ fCtrl = true;
191
+ if (msg == WM_KEYDOWN && wParam == VkKeyScanA('d') && fShift && fCtrl) {
192
+ auto contextSelf = winrt::get_self<React::implementation::ReactContext>(m_context.Handle());
193
+ Microsoft::ReactNative::DevMenuManager::Show(
194
+ Mso::CntPtr<Mso::React::IReactContext>(&contextSelf->GetInner()));
195
+ }
196
+ if (!fCtrl && msg == WM_KEYDOWN && wParam == VK_TAB) {
197
+ if (!RootComponentView().TryMoveFocus(!fShift)) {
198
+ // TODO notify rootview that host should move focus
199
+ }
200
+ return 1;
201
+ }
202
+ }
163
203
  return 0;
164
204
  }
165
205
  }
@@ -197,7 +237,7 @@ void CompositionEventHandler::HandleIncomingPointerEvent(
197
237
  auto itCurrentlyHoveredViews = m_currentlyHoveredViewsPerPointer.find(pointerId);
198
238
  if (itCurrentlyHoveredViews != m_currentlyHoveredViewsPerPointer.end()) {
199
239
  for (auto &taggedView : itCurrentlyHoveredViews->second) {
200
- if (auto &view = taggedView.view()) {
240
+ if (auto view = taggedView.view()) {
201
241
  currentlyHoveredViews.push_back(view.get());
202
242
  }
203
243
  }
@@ -213,7 +253,7 @@ void CompositionEventHandler::HandleIncomingPointerEvent(
213
253
  if (targetView != nullptr && previousTargetTag != targetView->tag()) {
214
254
  bool shouldEmitOverEvent =
215
255
  IsAnyViewInPathListeningToEvent(eventPathViews, facebook::react::ViewEvents::Offset::PointerOver);
216
- facebook::react::SharedTouchEventEmitter eventEmitter = targetView->touchEventEmitter();
256
+ facebook::react::SharedTouchEventEmitter eventEmitter = targetView->touchEventEmitterAtPoint(event.offsetPoint);
217
257
  if (shouldEmitOverEvent && eventEmitter != nullptr) {
218
258
  eventEmitter->onPointerOver(event);
219
259
  }
@@ -224,8 +264,8 @@ void CompositionEventHandler::HandleIncomingPointerEvent(
224
264
  // We only want to emit events to JS if there is a view that is currently listening to said event
225
265
  // so we only send those event to the JS side if the element which has been entered is itself listening,
226
266
  // or if one of its parents is listening in case those listeners care about the capturing phase. Adding the ability
227
- // for native to distingusih between capturing listeners and not could be an optimization to futher reduce the number
228
- // of events we send to JS
267
+ // for native to distingusih between capturing listeners and not could be an optimization to futher reduce the
268
+ // number of events we send to JS
229
269
  bool hasParentEnterListener = false;
230
270
 
231
271
  for (auto itComponentView = eventPathViews.rbegin(); itComponentView != eventPathViews.rend();
@@ -234,7 +274,8 @@ void CompositionEventHandler::HandleIncomingPointerEvent(
234
274
  auto componentView = *itComponentView;
235
275
  bool shouldEmitEvent = componentView != nullptr &&
236
276
  (hasParentEnterListener ||
237
- IsViewListeningToEvent(componentView, facebook::react::ViewEvents::Offset::PointerEnter));
277
+ IsViewListeningToEvent(componentView, facebook::react::ViewEvents::Offset::PointerEnter) ||
278
+ IsViewListeningToEvent(componentView, facebook::react::ViewEvents::Offset::MouseEnter));
238
279
 
239
280
  if (shouldEmitEvent &&
240
281
  std::find(currentlyHoveredViews.begin(), currentlyHoveredViews.end(), componentView) ==
@@ -242,6 +283,9 @@ void CompositionEventHandler::HandleIncomingPointerEvent(
242
283
  facebook::react::SharedTouchEventEmitter eventEmitter = componentView->touchEventEmitter();
243
284
  if (eventEmitter) {
244
285
  eventEmitter->onPointerEnter(event);
286
+ if (IsMousePointerEvent(event)) {
287
+ eventEmitter->onMouseEnter(event);
288
+ }
245
289
  }
246
290
  }
247
291
 
@@ -274,13 +318,15 @@ void CompositionEventHandler::HandleIncomingPointerEvent(
274
318
 
275
319
  bool hasParentLeaveListener = false;
276
320
  for (auto itComponentView = currentlyHoveredViews.rbegin(); itComponentView != currentlyHoveredViews.rend();
277
- itComponentView++) { // for (RCTReactTaggedView *taggedView in [currentlyHoveredViews reverseObjectEnumerator])
321
+ itComponentView++) { // for (RCTReactTaggedView *taggedView in [currentlyHoveredViews
322
+ // reverseObjectEnumerator])
278
323
  // {
279
324
  auto componentView = *itComponentView;
280
325
 
281
326
  bool shouldEmitEvent = componentView != nullptr &&
282
327
  (hasParentLeaveListener ||
283
- IsViewListeningToEvent(componentView, facebook::react::ViewEvents::Offset::PointerLeave));
328
+ IsViewListeningToEvent(componentView, facebook::react::ViewEvents::Offset::PointerLeave) ||
329
+ IsViewListeningToEvent(componentView, facebook::react::ViewEvents::Offset::MouseLeave));
284
330
 
285
331
  if (shouldEmitEvent &&
286
332
  std::find(eventPathViews.begin(), eventPathViews.end(), componentView) == eventPathViews.end()) {
@@ -299,6 +345,9 @@ void CompositionEventHandler::HandleIncomingPointerEvent(
299
345
  facebook::react::SharedTouchEventEmitter eventEmitter = componentView->touchEventEmitter();
300
346
  if (eventEmitter) {
301
347
  eventEmitter->onPointerLeave(event);
348
+ if (IsMousePointerEvent(event)) {
349
+ eventEmitter->onMouseLeave(event);
350
+ }
302
351
  }
303
352
  }
304
353
 
@@ -351,7 +400,7 @@ facebook::react::PointerEvent CreatePointerEventFromIncompleteHoverData(
351
400
 
352
401
  pointerEvent.clientPoint = ptScaled;
353
402
  pointerEvent.screenPoint = ptScaled;
354
- // pointerEvent.offsetPoint = ptLocal;
403
+ pointerEvent.offsetPoint = ptLocal;
355
404
  pointerEvent.width = 1.0;
356
405
  pointerEvent.height = 1.0;
357
406
  pointerEvent.tiltX = 0;
@@ -367,11 +416,7 @@ facebook::react::PointerEvent CreatePointerEventFromIncompleteHoverData(
367
416
  return pointerEvent;
368
417
  }
369
418
 
370
- void CompositionEventHandler::MouseMove(
371
- facebook::react::SurfaceId surfaceId,
372
- uint32_t msg,
373
- uint64_t wParam,
374
- int64_t lParam) {
419
+ void CompositionEventHandler::MouseMove(uint32_t msg, uint64_t wParam, int64_t lParam) {
375
420
  int pointerId = MOUSE_POINTER_ID; // TODO pointerId
376
421
 
377
422
  auto x = GET_X_LPARAM(lParam);
@@ -381,11 +426,9 @@ void CompositionEventHandler::MouseMove(
381
426
  ::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties())) {
382
427
  facebook::react::Point ptLocal;
383
428
 
384
- auto rootComponentViewDescriptor = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(surfaceId);
385
429
  facebook::react::Point ptScaled = {
386
430
  static_cast<float>(x / m_compRootView.ScaleFactor()), static_cast<float>(y / m_compRootView.ScaleFactor())};
387
- auto tag =
388
- static_cast<CompositionBaseComponentView &>(*rootComponentViewDescriptor.view).hitTest(ptScaled, ptLocal);
431
+ auto tag = RootComponentView().hitTest(ptScaled, ptLocal);
389
432
 
390
433
  if (tag == -1)
391
434
  return;
@@ -396,7 +439,8 @@ void CompositionEventHandler::MouseMove(
396
439
  facebook::react::PointerEvent pointerEvent = CreatePointerEventFromIncompleteHoverData(ptScaled, ptLocal);
397
440
 
398
441
  auto handler = [targetView, &pointerEvent](std::vector<IComponentView *> &eventPathViews) {
399
- facebook::react::SharedTouchEventEmitter eventEmitter = targetView ? targetView->touchEventEmitter() : nullptr;
442
+ facebook::react::SharedTouchEventEmitter eventEmitter =
443
+ targetView ? targetView->touchEventEmitterAtPoint(pointerEvent.offsetPoint) : nullptr;
400
444
  bool hasMoveEventListeners =
401
445
  IsAnyViewInPathListeningToEvent(eventPathViews, facebook::react::ViewEvents::Offset::PointerMove) ||
402
446
  IsAnyViewInPathListeningToEvent(eventPathViews, facebook::react::ViewEvents::Offset::PointerMoveCapture);
@@ -409,11 +453,7 @@ void CompositionEventHandler::MouseMove(
409
453
  }
410
454
  }
411
455
 
412
- void CompositionEventHandler::PointerPressed(
413
- facebook::react::SurfaceId surfaceId,
414
- uint32_t msg,
415
- uint64_t wParam,
416
- int64_t lParam) {
456
+ void CompositionEventHandler::PointerPressed(uint32_t msg, uint64_t wParam, int64_t lParam) {
417
457
  POINTER_INFO pi;
418
458
  PointerId pointerId = GET_POINTERID_WPARAM(wParam);
419
459
  GetPointerInfo(pointerId, &pi);
@@ -436,19 +476,17 @@ void CompositionEventHandler::PointerPressed(
436
476
  ::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties())) {
437
477
  facebook::react::Point ptLocal;
438
478
 
439
- auto rootComponentViewDescriptor = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(surfaceId);
440
479
  facebook::react::Point ptScaled = {
441
480
  static_cast<float>(pt.x / m_compRootView.ScaleFactor()),
442
481
  static_cast<float>(pt.y / m_compRootView.ScaleFactor())};
443
- auto tag =
444
- static_cast<CompositionBaseComponentView &>(*rootComponentViewDescriptor.view).hitTest(ptScaled, ptLocal);
482
+ auto tag = RootComponentView().hitTest(ptScaled, ptLocal);
445
483
 
446
484
  if (tag == -1)
447
485
  return;
448
486
 
449
487
  IComponentView *targetComponentView =
450
488
  fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(tag).view.get();
451
- static_cast<CompositionBaseComponentView *>(targetComponentView)->SendMessage(msg, wParam, lParam);
489
+ static_cast<CompositionBaseComponentView *>(targetComponentView)->sendMessage(msg, wParam, lParam);
452
490
 
453
491
  ActiveTouch activeTouch{0};
454
492
  switch (pi.pointerType) {
@@ -490,15 +528,11 @@ void CompositionEventHandler::PointerPressed(
490
528
 
491
529
  m_activeTouches.emplace(pointerId, activeTouch);
492
530
 
493
- DispatchTouchEvent(surfaceId, eventType, pointerId);
531
+ DispatchTouchEvent(eventType, pointerId);
494
532
  }
495
533
  }
496
534
 
497
- void CompositionEventHandler::ButtonDown(
498
- facebook::react::SurfaceId surfaceId,
499
- uint32_t msg,
500
- uint64_t wParam,
501
- int64_t lParam) {
535
+ void CompositionEventHandler::ButtonDown(uint32_t msg, uint64_t wParam, int64_t lParam) {
502
536
  PointerId pointerId = MOUSE_POINTER_ID;
503
537
 
504
538
  auto staleTouch = std::find_if(m_activeTouches.begin(), m_activeTouches.end(), [pointerId](const auto &pair) {
@@ -519,24 +553,23 @@ void CompositionEventHandler::ButtonDown(
519
553
  ::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties())) {
520
554
  facebook::react::Point ptLocal;
521
555
 
522
- auto rootComponentViewDescriptor = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(surfaceId);
523
556
  facebook::react::Point ptScaled = {
524
557
  static_cast<float>(x / m_compRootView.ScaleFactor()), static_cast<float>(y / m_compRootView.ScaleFactor())};
525
- auto tag = rootComponentViewDescriptor.view->hitTest(ptScaled, ptLocal);
558
+ auto tag = RootComponentView().hitTest(ptScaled, ptLocal);
526
559
 
527
560
  if (tag == -1)
528
561
  return;
529
562
 
530
563
  IComponentView *targetComponentView =
531
564
  fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(tag).view.get();
532
- static_cast<CompositionBaseComponentView *>(targetComponentView)->SendMessage(msg, wParam, lParam);
565
+ static_cast<CompositionBaseComponentView *>(targetComponentView)->sendMessage(msg, wParam, lParam);
533
566
 
534
567
  ActiveTouch activeTouch{0};
535
568
  activeTouch.touchType = UITouchType::Mouse;
536
569
 
537
570
  auto componentView = targetComponentView;
538
571
  while (componentView) {
539
- if (auto eventEmitter = componentView->touchEventEmitter()) {
572
+ if (auto eventEmitter = componentView->touchEventEmitterAtPoint(ptLocal)) {
540
573
  activeTouch.eventEmitter = eventEmitter;
541
574
  activeTouch.touch.target = componentView->tag();
542
575
  // activeTouch.componentView = componentView;
@@ -559,15 +592,11 @@ void CompositionEventHandler::ButtonDown(
559
592
 
560
593
  m_activeTouches.emplace(pointerId, activeTouch);
561
594
 
562
- DispatchTouchEvent(surfaceId, eventType, pointerId);
595
+ DispatchTouchEvent(eventType, pointerId);
563
596
  }
564
597
  }
565
598
 
566
- void CompositionEventHandler::PointerUp(
567
- facebook::react::SurfaceId surfaceId,
568
- uint32_t msg,
569
- uint64_t wParam,
570
- int64_t lParam) {
599
+ void CompositionEventHandler::PointerUp(uint32_t msg, uint64_t wParam, int64_t lParam) {
571
600
  POINTER_INFO pi;
572
601
  PointerId pointerId = GET_POINTERID_WPARAM(wParam);
573
602
  GetPointerInfo(pointerId, &pi);
@@ -588,30 +617,24 @@ void CompositionEventHandler::PointerUp(
588
617
  ::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties())) {
589
618
  facebook::react::Point ptLocal;
590
619
 
591
- auto rootComponentViewDescriptor = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(surfaceId);
592
620
  facebook::react::Point ptScaled = {
593
621
  static_cast<float>(pt.x / m_compRootView.ScaleFactor()),
594
622
  static_cast<float>(pt.y / m_compRootView.ScaleFactor())};
595
- auto tag =
596
- static_cast<CompositionBaseComponentView &>(*rootComponentViewDescriptor.view).hitTest(ptScaled, ptLocal);
623
+ auto tag = RootComponentView().hitTest(ptScaled, ptLocal);
597
624
 
598
625
  if (tag == -1)
599
626
  return;
600
627
 
601
628
  auto targetComponentView = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(tag).view;
602
- std::static_pointer_cast<CompositionBaseComponentView>(targetComponentView)->SendMessage(msg, wParam, lParam);
629
+ std::static_pointer_cast<CompositionBaseComponentView>(targetComponentView)->sendMessage(msg, wParam, lParam);
603
630
 
604
631
  UpdateActiveTouch(activeTouch->second, ptScaled, ptLocal);
605
- DispatchTouchEvent(surfaceId, TouchEventType::End, pointerId);
632
+ DispatchTouchEvent(TouchEventType::End, pointerId);
606
633
  m_activeTouches.erase(pointerId);
607
634
  }
608
635
  }
609
636
 
610
- void CompositionEventHandler::ButtonUp(
611
- facebook::react::SurfaceId surfaceId,
612
- uint32_t msg,
613
- uint64_t wParam,
614
- int64_t lParam) {
637
+ void CompositionEventHandler::ButtonUp(uint32_t msg, uint64_t wParam, int64_t lParam) {
615
638
  int pointerId = MOUSE_POINTER_ID;
616
639
 
617
640
  auto activeTouch = std::find_if(m_activeTouches.begin(), m_activeTouches.end(), [pointerId](const auto &pair) {
@@ -629,20 +652,18 @@ void CompositionEventHandler::ButtonUp(
629
652
  ::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties())) {
630
653
  facebook::react::Point ptLocal;
631
654
 
632
- auto rootComponentViewDescriptor = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(surfaceId);
633
655
  facebook::react::Point ptScaled = {
634
656
  static_cast<float>(x / m_compRootView.ScaleFactor()), static_cast<float>(y / m_compRootView.ScaleFactor())};
635
- auto tag =
636
- static_cast<CompositionBaseComponentView &>(*rootComponentViewDescriptor.view).hitTest(ptScaled, ptLocal);
657
+ auto tag = RootComponentView().hitTest(ptScaled, ptLocal);
637
658
 
638
659
  if (tag == -1)
639
660
  return;
640
661
 
641
662
  auto targetComponentView = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(tag).view;
642
- std::static_pointer_cast<CompositionBaseComponentView>(targetComponentView)->SendMessage(msg, wParam, lParam);
663
+ std::static_pointer_cast<CompositionBaseComponentView>(targetComponentView)->sendMessage(msg, wParam, lParam);
643
664
 
644
665
  UpdateActiveTouch(activeTouch->second, ptScaled, ptLocal);
645
- DispatchTouchEvent(surfaceId, TouchEventType::End, pointerId);
666
+ DispatchTouchEvent(TouchEventType::End, pointerId);
646
667
  m_activeTouches.erase(pointerId);
647
668
  }
648
669
  }
@@ -685,7 +706,7 @@ facebook::react::PointerEvent CompositionEventHandler::CreatePointerEventFromAct
685
706
  event.pointerType = PointerTypeCStringFromUITouchType(activeTouch.touchType);
686
707
  event.clientPoint = touch.pagePoint;
687
708
  event.screenPoint = touch.screenPoint;
688
- // event.offsetPoint = touch.offsetPoint;
709
+ event.offsetPoint = touch.offsetPoint;
689
710
 
690
711
  event.pressure = touch.force;
691
712
  if (activeTouch.touchType == UITouchType::Mouse) {
@@ -723,10 +744,7 @@ facebook::react::PointerEvent CompositionEventHandler::CreatePointerEventFromAct
723
744
  }
724
745
 
725
746
  // If we have events that include multiple pointer updates, we should change arg from pointerId to vector<pointerId>
726
- void CompositionEventHandler::DispatchTouchEvent(
727
- facebook::react::SurfaceId surfaceId,
728
- TouchEventType eventType,
729
- PointerId pointerId) {
747
+ void CompositionEventHandler::DispatchTouchEvent(TouchEventType eventType, PointerId pointerId) {
730
748
  auto fabricuiManager = ::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties());
731
749
 
732
750
  if (!fabricuiManager)
@@ -757,9 +775,8 @@ void CompositionEventHandler::DispatchTouchEvent(
757
775
  eventType == TouchEventType::Cancel;
758
776
  if (!shouldLeave) {
759
777
  const auto &viewRegistry = fabricuiManager->GetViewRegistry();
760
- auto rootComponentViewDescriptor = viewRegistry.componentViewDescriptorWithTag(surfaceId);
761
778
  facebook::react::Point ptLocal;
762
- auto targetTag = rootComponentViewDescriptor.view->hitTest(pointerEvent.clientPoint, ptLocal);
779
+ auto targetTag = RootComponentView().hitTest(pointerEvent.clientPoint, ptLocal);
763
780
  auto targetComponentViewDescriptor = viewRegistry.componentViewDescriptorWithTag(targetTag);
764
781
  targetView = FindClosestFabricManagedTouchableView(targetComponentViewDescriptor.view.get());
765
782
  }
@@ -2,6 +2,7 @@
2
2
  // Licensed under the MIT License.
3
3
 
4
4
  #pragma once
5
+ #include <Fabric/Composition/RootComponentView.h>
5
6
  #include <Fabric/ReactTaggedView.h>
6
7
  #include <IReactInstance.h>
7
8
  #include <JSValue.h>
@@ -33,16 +34,19 @@ class CompositionEventHandler {
33
34
  const winrt::Microsoft::ReactNative::CompositionRootView &CompositionRootView);
34
35
  virtual ~CompositionEventHandler();
35
36
 
36
- int64_t SendMessage(facebook::react::SurfaceId surfaceId, uint32_t msg, uint64_t wParam, int64_t lParam) noexcept;
37
- void ScrollWheel(facebook::react::SurfaceId surfaceId, facebook::react::Point pt, uint32_t delta);
37
+ int64_t SendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept;
38
+ void ScrollWheel(facebook::react::Point pt, uint32_t delta);
38
39
  void RemoveTouchHandlers();
39
40
 
40
41
  private:
41
- void ButtonDown(facebook::react::SurfaceId surfaceId, uint32_t msg, uint64_t wParam, int64_t lParam);
42
- void PointerPressed(facebook::react::SurfaceId surfaceId, uint32_t msg, uint64_t wParam, int64_t lParam);
43
- void ButtonUp(facebook::react::SurfaceId surfaceId, uint32_t msg, uint64_t wParam, int64_t lParam);
44
- void PointerUp(facebook::react::SurfaceId surfaceId, uint32_t msg, uint64_t wParam, int64_t lParam);
45
- void MouseMove(facebook::react::SurfaceId surfaceId, uint32_t msg, uint64_t wParam, int64_t lParam);
42
+ void ButtonDown(uint32_t msg, uint64_t wParam, int64_t lParam);
43
+ void PointerPressed(uint32_t msg, uint64_t wParam, int64_t lParam);
44
+ void ButtonUp(uint32_t msg, uint64_t wParam, int64_t lParam);
45
+ void PointerUp(uint32_t msg, uint64_t wParam, int64_t lParam);
46
+ void MouseMove(uint32_t msg, uint64_t wParam, int64_t lParam);
47
+
48
+ facebook::react::SurfaceId SurfaceId() noexcept;
49
+ RootComponentView &RootComponentView() noexcept;
46
50
 
47
51
  enum class UITouchType {
48
52
  Mouse,
@@ -50,7 +54,7 @@ class CompositionEventHandler {
50
54
  Touch,
51
55
  };
52
56
  enum class TouchEventType { Start = 0, End, Move, Cancel, CaptureLost, PointerEntered, PointerExited, PointerMove };
53
- void DispatchTouchEvent(facebook::react::SurfaceId surfaceId, TouchEventType eventType, PointerId pointerId);
57
+ void DispatchTouchEvent(TouchEventType eventType, PointerId pointerId);
54
58
  void HandleIncomingPointerEvent(
55
59
  facebook::react::PointerEvent &pe,
56
60
  IComponentView *targetView,
@@ -5,8 +5,6 @@
5
5
  #pragma once
6
6
 
7
7
  #include <Composition/CompositionSwitcher.interop.h>
8
- #include <guid/msoGuid.h>
9
-
10
8
  #include <winrt/Windows.UI.Composition.h>
11
9
 
12
10
  namespace Microsoft::ReactNative {
@@ -14,6 +14,9 @@
14
14
  #include "CompositionContextHelper.h"
15
15
  #include "ReactNativeHost.h"
16
16
 
17
+ #include "CompositionRootAutomationProvider.h"
18
+ #include "CompositionRootView.h"
19
+
17
20
  WINUSERAPI UINT WINAPI GetDpiForWindow(_In_ HWND hwnd);
18
21
 
19
22
  namespace winrt::Microsoft::ReactNative::implementation {
@@ -70,12 +73,15 @@ double CompositionHwndHost::ScaleFactor() noexcept {
70
73
  void CompositionHwndHost::UpdateSize() noexcept {
71
74
  RECT rc;
72
75
  if (GetClientRect(m_hwnd, &rc)) {
73
- winrt::Windows::Foundation::Size size{
74
- static_cast<float>((rc.right - rc.left) / ScaleFactor()),
75
- static_cast<float>((rc.bottom - rc.top) / ScaleFactor())};
76
- m_compRootView.Size(size);
77
- m_compRootView.Measure(size);
78
- m_compRootView.Arrange(size);
76
+ if (m_height != (rc.bottom - rc.top) || m_width != (rc.right - rc.left)) {
77
+ m_height = rc.bottom - rc.top;
78
+ m_width = rc.right - rc.left;
79
+ winrt::Windows::Foundation::Size size{
80
+ static_cast<float>(m_width / ScaleFactor()), static_cast<float>(m_height / ScaleFactor())};
81
+ m_compRootView.Size(size);
82
+ m_compRootView.Measure(size);
83
+ m_compRootView.Arrange(size);
84
+ }
79
85
  }
80
86
  }
81
87
 
@@ -121,6 +127,11 @@ LRESULT CompositionHwndHost::TranslateMessage(int msg, uint64_t wParam, int64_t
121
127
  return 0;
122
128
  }
123
129
 
130
+ winrt::Microsoft::ReactNative::FocusNavigationResult CompositionHwndHost::NavigateFocus(
131
+ const winrt::Microsoft::ReactNative::FocusNavigationRequest &request) noexcept {
132
+ return m_compRootView.NavigateFocus(request);
133
+ }
134
+
124
135
  ReactNative::IReactViewHost CompositionHwndHost::ReactViewHost() const noexcept {
125
136
  return m_reactViewHost ? m_reactViewHost : m_compRootView.ReactViewHost();
126
137
  }
@@ -142,4 +153,14 @@ winrt::Windows::UI::Composition::Compositor CompositionHwndHost::Compositor() co
142
153
  compositionContext);
143
154
  }
144
155
 
156
+ IInspectable CompositionHwndHost::UiaProvider() noexcept {
157
+ auto compRootView = winrt::get_self<implementation::CompositionRootView>(m_compRootView);
158
+ auto provider = compRootView->GetUiaProvider();
159
+ auto pRootProvider = static_cast<CompositionRootAutomationProvider *>(provider.as<IRawElementProviderSimple>().get());
160
+ if (pRootProvider != nullptr) {
161
+ pRootProvider->SetHwnd(m_hwnd);
162
+ }
163
+ return provider;
164
+ }
165
+
145
166
  } // namespace winrt::Microsoft::ReactNative::implementation
@@ -20,8 +20,14 @@ struct CompositionHwndHost : CompositionHwndHostT<CompositionHwndHost> {
20
20
  winrt::Microsoft::ReactNative::IReactViewHost ReactViewHost() const noexcept;
21
21
  void ReactViewHost(winrt::Microsoft::ReactNative::IReactViewHost const &value) noexcept;
22
22
 
23
+ // property UiaProvider
24
+ IInspectable UiaProvider() noexcept;
25
+
23
26
  winrt::Windows::UI::Composition::Visual RootVisual() const noexcept;
24
27
 
28
+ winrt::Microsoft::ReactNative::FocusNavigationResult NavigateFocus(
29
+ const winrt::Microsoft::ReactNative::FocusNavigationRequest &request) noexcept;
30
+
25
31
  LRESULT TranslateMessage(int msg, uint64_t wParam, int64_t lParam) noexcept;
26
32
 
27
33
  private:
@@ -37,6 +43,8 @@ struct CompositionHwndHost : CompositionHwndHostT<CompositionHwndHost> {
37
43
  HWND m_hwnd;
38
44
  winrt::Microsoft::ReactNative::CompositionRootView m_compRootView{nullptr};
39
45
  winrt::Windows::UI::Composition::Desktop::DesktopWindowTarget m_target{nullptr};
46
+ LONG m_height{0};
47
+ LONG m_width{0};
40
48
 
41
49
  // Store locally if set before we have a rootview
42
50
  ReactNative::IReactViewHost m_reactViewHost{nullptr};