react-native-windows 0.72.14 → 0.73.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 (587) hide show
  1. package/.flowconfig +16 -5
  2. package/Chakra/ChakraHelpers.cpp +1 -1
  3. package/Chakra/ChakraUtils.cpp +1 -1
  4. package/Chakra/ChakraValue.h +1 -1
  5. package/Common/packages.lock.json +13 -0
  6. package/Directory.Build.props +6 -2
  7. package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1 -10
  8. package/Folly/TEMP_UntilFollyUpdate/hash/Hash.h +1016 -0
  9. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +1 -1
  10. package/Folly/cgmanifest.json +1 -1
  11. package/Folly/packages.lock.json +23 -0
  12. package/Libraries/Animated/Animated.js +1 -1
  13. package/Libraries/Animated/AnimatedImplementation.js +1 -1
  14. package/Libraries/Animated/NativeAnimatedHelper.js +14 -10
  15. package/Libraries/Animated/NativeAnimatedModule.js +6 -2
  16. package/Libraries/Animated/NativeAnimatedTurboModule.js +7 -4
  17. package/Libraries/Animated/animations/Animation.js +57 -3
  18. package/Libraries/Animated/animations/DecayAnimation.js +9 -0
  19. package/Libraries/Animated/animations/SpringAnimation.js +8 -0
  20. package/Libraries/Animated/animations/TimingAnimation.js +8 -0
  21. package/Libraries/Animated/components/AnimatedFlatList.js +2 -1
  22. package/Libraries/Animated/components/AnimatedScrollView.js +2 -0
  23. package/Libraries/Animated/components/AnimatedSectionList.js +2 -1
  24. package/Libraries/Animated/createAnimatedComponent.js +1 -0
  25. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  26. package/Libraries/Animated/nodes/AnimatedObject.js +146 -0
  27. package/Libraries/Animated/nodes/AnimatedProps.js +19 -7
  28. package/Libraries/Animated/nodes/AnimatedStyle.js +29 -55
  29. package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -17
  30. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +17 -0
  31. package/Libraries/Animated/useAnimatedProps.js +9 -10
  32. package/Libraries/AppState/AppState.d.ts +1 -1
  33. package/Libraries/AppState/NativeAppState.js +8 -4
  34. package/Libraries/AppTheme/AppTheme.js +5 -5
  35. package/Libraries/BatchedBridge/MessageQueue.js +45 -36
  36. package/Libraries/Blob/Blob.js +6 -2
  37. package/Libraries/Blob/BlobManager.js +9 -10
  38. package/Libraries/Blob/BlobRegistry.js +14 -9
  39. package/Libraries/Blob/File.js +1 -1
  40. package/Libraries/Blob/FileReader.js +1 -2
  41. package/Libraries/Components/Clipboard/Clipboard.d.ts +4 -4
  42. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -1
  43. package/Libraries/Components/Glyph/Glyph.js +1 -1
  44. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +26 -6
  45. package/Libraries/Components/Keyboard/KeyboardExt.d.ts +4 -1
  46. package/Libraries/Components/Keyboard/KeyboardExt.js +3 -0
  47. package/Libraries/Components/Keyboard/KeyboardExt.js.map +1 -1
  48. package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +4 -29
  49. package/Libraries/Components/Keyboard/KeyboardExtProps.js +0 -17
  50. package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
  51. package/Libraries/Components/Pressable/Pressable.js +3 -2
  52. package/Libraries/Components/Pressable/Pressable.windows.js +4 -3
  53. package/Libraries/Components/Pressable/useAndroidRippleForView.js +1 -1
  54. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +20 -0
  55. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.windows.js +7 -1
  56. package/Libraries/Components/SafeAreaView/SafeAreaView.js +7 -7
  57. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +7 -10
  58. package/Libraries/Components/ScrollView/ScrollView.js +3 -1
  59. package/Libraries/Components/ScrollView/ScrollView.windows.js +3 -1
  60. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +39 -46
  61. package/Libraries/Components/Switch/Switch.js +1 -0
  62. package/Libraries/Components/Switch/Switch.windows.js +259 -0
  63. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
  64. package/Libraries/Components/TextInput/TextInput.d.ts +49 -7
  65. package/Libraries/Components/TextInput/TextInput.flow.js +43 -10
  66. package/Libraries/Components/TextInput/TextInput.js +62 -10
  67. package/Libraries/Components/TextInput/TextInput.windows.js +100 -14
  68. package/Libraries/Components/ToastAndroid/{ToastAndroid.ios.js → ToastAndroid.js} +9 -1
  69. package/Libraries/Components/ToastAndroid/ToastAndroid.windows.js +9 -1
  70. package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
  71. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  72. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +1 -1
  73. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  74. package/Libraries/Components/Touchable/TouchableOpacity.js +4 -1
  75. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -1
  76. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -0
  77. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -0
  78. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +16 -6
  79. package/Libraries/Components/View/ReactNativeStyleAttributes.js +9 -0
  80. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  81. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
  82. package/Libraries/Components/View/View.js +46 -32
  83. package/Libraries/Components/View/View.windows.js +23 -7
  84. package/Libraries/Components/View/ViewAccessibility.d.ts +27 -1
  85. package/Libraries/Components/View/ViewAccessibility.windows.js +3 -0
  86. package/Libraries/Components/View/ViewNativeComponent.js +1 -0
  87. package/Libraries/Components/View/ViewPropTypes.d.ts +104 -1
  88. package/Libraries/Components/View/ViewPropTypes.js +18 -3
  89. package/Libraries/Components/View/ViewPropTypes.windows.js +33 -3
  90. package/Libraries/Core/Devtools/loadBundleFromServer.js +152 -0
  91. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -1
  92. package/Libraries/Core/ExceptionsManager.js +16 -7
  93. package/Libraries/Core/ExtendedError.js +12 -0
  94. package/Libraries/Core/ReactNativeVersion.js +3 -3
  95. package/Libraries/Core/ReactNativeVersionCheck.js +0 -2
  96. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +20 -0
  97. package/Libraries/Core/setUpDeveloperTools.js +5 -1
  98. package/Libraries/Core/setUpIntersectionObserver.js +16 -0
  99. package/Libraries/Core/setUpMutationObserver.js +16 -0
  100. package/Libraries/Core/setUpPerformance.js +6 -13
  101. package/Libraries/Core/setUpPerformanceObserver.js +16 -0
  102. package/Libraries/Core/setUpRegeneratorRuntime.js +4 -2
  103. package/Libraries/DOM/Nodes/ReactNativeElement.js +135 -18
  104. package/Libraries/DOM/Nodes/ReadOnlyCharacterData.js +72 -0
  105. package/Libraries/DOM/Nodes/ReadOnlyElement.js +209 -21
  106. package/Libraries/DOM/Nodes/ReadOnlyNode.js +206 -17
  107. package/Libraries/DOM/Nodes/ReadOnlyText.js +30 -0
  108. package/Libraries/DOM/Nodes/Utilities/Traversal.js +54 -0
  109. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +0 -6
  110. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +15 -4
  111. package/Libraries/Image/Image.android.js +8 -2
  112. package/Libraries/Image/Image.d.ts +1 -1
  113. package/Libraries/Image/Image.ios.js +4 -1
  114. package/Libraries/Image/Image.windows.js +6 -3
  115. package/Libraries/Image/ImageBackground.js +3 -0
  116. package/Libraries/Inspector/DevtoolsOverlay.js +6 -3
  117. package/Libraries/Inspector/NetworkOverlay.js +2 -2
  118. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -5
  119. package/Libraries/Interaction/PanResponder.js +1 -4
  120. package/Libraries/IntersectionObserver/IntersectionObserver.js +252 -0
  121. package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +140 -0
  122. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +221 -0
  123. package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +41 -0
  124. package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +162 -0
  125. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
  126. package/Libraries/Lists/FlatList.d.ts +2 -1
  127. package/Libraries/Lists/FlatList.js +15 -5
  128. package/Libraries/Lists/SectionList.js +4 -0
  129. package/Libraries/LogBox/Data/LogBoxLog.js +4 -1
  130. package/Libraries/LogBox/Data/LogBoxSymbolication.js +5 -2
  131. package/Libraries/LogBox/Data/parseLogBoxLog.js +57 -20
  132. package/Libraries/LogBox/UI/AnsiHighlight.js +1 -1
  133. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +24 -31
  134. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  135. package/Libraries/LogBox/UI/LogBoxMessage.js +4 -7
  136. package/Libraries/MutationObserver/MutationObserver.js +184 -0
  137. package/Libraries/MutationObserver/MutationObserverManager.js +218 -0
  138. package/Libraries/MutationObserver/MutationRecord.js +82 -0
  139. package/Libraries/MutationObserver/NativeMutationObserver.js +58 -0
  140. package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +327 -0
  141. package/Libraries/NativeComponent/BaseViewConfig.android.js +18 -3
  142. package/Libraries/NativeComponent/BaseViewConfig.ios.js +33 -0
  143. package/Libraries/NativeComponent/BaseViewConfig.windows.js +34 -4
  144. package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -5
  145. package/Libraries/NativeModules/specs/NativeSourceCode.js +6 -6
  146. package/Libraries/Network/RCTNetworking.android.js +2 -1
  147. package/Libraries/Network/XMLHttpRequest.js +1 -1
  148. package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -4
  149. package/Libraries/NewAppScreen/components/DebugInstructions.windows.js +2 -2
  150. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +9 -2
  151. package/Libraries/Performance/QuickPerformanceLogger.js +1 -1
  152. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  153. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +1 -0
  154. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -1
  155. package/Libraries/Pressability/Pressability.js +28 -3
  156. package/Libraries/Pressability/Pressability.windows.js +30 -5
  157. package/Libraries/ReactNative/AppContainer.js +2 -3
  158. package/Libraries/ReactNative/AppRegistry.d.ts +0 -5
  159. package/Libraries/ReactNative/AppRegistry.js +66 -53
  160. package/Libraries/ReactNative/BridgelessUIManager.js +38 -9
  161. package/Libraries/ReactNative/FabricUIManager.js +143 -34
  162. package/Libraries/ReactNative/I18nManager.js +5 -11
  163. package/Libraries/ReactNative/NativeI18nManager.js +7 -5
  164. package/Libraries/ReactNative/PaperUIManager.windows.js +2 -2
  165. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +151 -0
  166. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +81 -0
  167. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +492 -0
  168. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +32 -0
  169. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +19 -3
  170. package/Libraries/ReactNative/UIManager.js +8 -0
  171. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +648 -0
  172. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +38 -2
  173. package/Libraries/Renderer/implementations/ReactFabric-dev.js +27 -27
  174. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
  175. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
  176. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +27 -27
  177. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -3
  178. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -3
  179. package/Libraries/Renderer/shims/ReactFabric.js +5 -6
  180. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -3
  181. package/Libraries/Renderer/shims/ReactNative.js +2 -3
  182. package/Libraries/Renderer/shims/ReactNativeTypes.js +35 -17
  183. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -3
  184. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -3
  185. package/Libraries/Settings/{Settings.android.js → Settings.js} +4 -4
  186. package/Libraries/Share/Share.d.ts +3 -9
  187. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +9 -4
  188. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +28 -13
  189. package/Libraries/StyleSheet/PlatformColorValueTypes.windows.js +10 -6
  190. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
  191. package/Libraries/StyleSheet/StyleSheet.d.ts +10 -1
  192. package/Libraries/StyleSheet/StyleSheet.js +3 -0
  193. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +31 -17
  194. package/Libraries/StyleSheet/StyleSheetTypes.js +90 -6
  195. package/Libraries/StyleSheet/flattenStyle.js +4 -0
  196. package/Libraries/StyleSheet/private/_TransformStyle.js +16 -2
  197. package/Libraries/StyleSheet/processColor.js +1 -2
  198. package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
  199. package/Libraries/StyleSheet/splitLayoutProps.js +1 -0
  200. package/Libraries/Text/Text.d.ts +5 -5
  201. package/Libraries/Text/Text.js +17 -10
  202. package/Libraries/Text/Text.windows.js +53 -20
  203. package/Libraries/Text/TextProps.windows.js +275 -0
  204. package/Libraries/TurboModule/TurboModuleRegistry.js +47 -7
  205. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
  206. package/Libraries/Types/CoreEventTypes.d.ts +5 -2
  207. package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -12
  208. package/Libraries/Utilities/NativeDeviceInfo.js +8 -9
  209. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +23 -18
  210. package/Libraries/Utilities/NativePlatformConstantsIOS.js +16 -13
  211. package/Libraries/Utilities/NativePlatformConstantsWin.js +13 -10
  212. package/Libraries/Utilities/PerformanceLoggerContext.js +1 -1
  213. package/Libraries/Utilities/Platform.android.js +12 -8
  214. package/Libraries/Utilities/Platform.d.ts +1 -0
  215. package/Libraries/Utilities/Platform.flow.js +84 -0
  216. package/Libraries/Utilities/Platform.flow.windows.js +111 -0
  217. package/Libraries/Utilities/Platform.ios.js +12 -8
  218. package/Libraries/Utilities/Platform.windows.js +12 -8
  219. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  220. package/Libraries/Utilities/ReactNativeTestTools.js +1 -2
  221. package/Libraries/Utilities/SceneTracker.js +1 -1
  222. package/Libraries/Utilities/createPerformanceLogger.js +63 -32
  223. package/Libraries/Utilities/useColorScheme.js +7 -8
  224. package/Libraries/WebPerformance/MemoryInfo.js +1 -1
  225. package/Libraries/WebPerformance/NativePerformance.js +3 -8
  226. package/Libraries/WebPerformance/NativePerformanceObserver.js +4 -0
  227. package/Libraries/WebPerformance/Performance.js +42 -15
  228. package/Libraries/WebPerformance/PerformanceEntry.js +14 -6
  229. package/Libraries/WebPerformance/PerformanceEventTiming.js +18 -1
  230. package/Libraries/WebPerformance/ReactNativeStartupTiming.js +40 -14
  231. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +4 -2
  232. package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +21 -3
  233. package/Libraries/__tests__/ViewWindows-test.js +3 -3
  234. package/Libraries/platform-types.d.ts +6 -2
  235. package/Libraries/promiseRejectionTrackingOptions.js +1 -3
  236. package/Libraries/vendor/emitter/EventEmitter.js +17 -17
  237. package/Microsoft.ReactNative/Composition.Input.idl +103 -0
  238. package/Microsoft.ReactNative/CompositionContext.idl +31 -8
  239. package/Microsoft.ReactNative/CompositionRootView.idl +8 -4
  240. package/Microsoft.ReactNative/CompositionSwitcher.idl +28 -17
  241. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +15 -28
  242. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +7 -10
  243. package/Microsoft.ReactNative/Fabric/ComponentView.h +42 -4
  244. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +57 -4
  245. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +22 -1
  246. package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.cpp +137 -0
  247. package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.h +59 -0
  248. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +8 -2
  249. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +575 -0
  250. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +170 -0
  251. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +890 -226
  252. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +38 -6
  253. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +79 -0
  254. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +130 -27
  255. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +6 -1
  256. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +382 -228
  257. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +35 -8
  258. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +46 -8
  259. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +5 -21
  260. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +1 -1
  261. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +232 -4
  262. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +36 -1
  263. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +51 -14
  264. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +15 -6
  265. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView_emptyimpl.cpp +123 -0
  266. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +18 -0
  267. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +333 -137
  268. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +52 -8
  269. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +32 -26
  270. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +5 -3
  271. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +183 -175
  272. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +7 -4
  273. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +101 -2
  274. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +46 -2
  275. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +36 -9
  276. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +8 -2
  277. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +247 -42
  278. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +25 -8
  279. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +78 -50
  280. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +12 -4
  281. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +26 -28
  282. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +429 -89
  283. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +24 -3
  284. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +1 -0
  285. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -2
  286. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +5 -7
  287. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -6
  288. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -7
  289. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +1 -17
  290. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +74 -3
  291. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +12 -0
  292. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +53 -59
  293. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +3 -2
  294. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +5 -4
  295. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -1
  296. package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +1 -1
  297. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +1 -1
  298. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +3 -4
  299. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformTouch.h +10 -0
  300. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +59 -0
  301. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.h +31 -0
  302. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +69 -0
  303. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +25 -2
  304. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +23 -0
  305. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/KeyEvent.h +113 -0
  306. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/WindowsViewEvents.h +75 -0
  307. package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +18 -21
  308. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +158 -7
  309. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +15 -17
  310. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +1 -1
  311. package/Microsoft.ReactNative/GlyphViewManager.cpp +1 -1
  312. package/Microsoft.ReactNative/IJSValueReader.idl +2 -2
  313. package/Microsoft.ReactNative/IJSValueWriter.idl +2 -2
  314. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +23 -1
  315. package/Microsoft.ReactNative/IReactContext.cpp +1 -1
  316. package/Microsoft.ReactNative/IReactNotificationService.cpp +4 -3
  317. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -4
  318. package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -2
  319. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +1 -2
  320. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +1 -1
  321. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +3 -4
  322. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +1 -1
  323. package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -2
  324. package/Microsoft.ReactNative/Modules/AppearanceModule.h +1 -1
  325. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +4 -2
  326. package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +1 -1
  327. package/Microsoft.ReactNative/Modules/I18nManagerModule.cpp +2 -2
  328. package/Microsoft.ReactNative/Modules/I18nManagerModule.h +1 -1
  329. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -15
  330. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +10 -6
  331. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +4 -1
  332. package/Microsoft.ReactNative/QuirkSettings.idl +1 -1
  333. package/Microsoft.ReactNative/ReactApplication.cpp +13 -11
  334. package/Microsoft.ReactNative/ReactApplication.h +4 -4
  335. package/Microsoft.ReactNative/ReactCoreInjection.h +6 -5
  336. package/Microsoft.ReactNative/ReactHost/JSCallInvokerScheduler.cpp +2 -2
  337. package/Microsoft.ReactNative/ReactHost/MsoUtils.cpp +1 -1
  338. package/Microsoft.ReactNative/ReactHost/React.h +3 -6
  339. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -16
  340. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +8 -16
  341. package/Microsoft.ReactNative/ReactInstanceSettings.cpp +6 -5
  342. package/Microsoft.ReactNative/ReactInstanceSettings.h +7 -7
  343. package/Microsoft.ReactNative/ReactNativeHost.h +4 -4
  344. package/Microsoft.ReactNative/ReactRootView.cpp +5 -4
  345. package/Microsoft.ReactNative/ReactRootView.h +2 -2
  346. package/Microsoft.ReactNative/ReactSupport.h +1 -1
  347. package/Microsoft.ReactNative/RedBox.cpp +1 -1
  348. package/Microsoft.ReactNative/RedBoxHandler.idl +1 -1
  349. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +1 -1
  350. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +49 -21
  351. package/Microsoft.ReactNative/Utils/ValueUtils.h +2 -1
  352. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +31 -59
  353. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.h +3 -4
  354. package/Microsoft.ReactNative/Views/DynamicAutomationProperties.cpp +15 -46
  355. package/Microsoft.ReactNative/Views/DynamicAutomationProperties.h +5 -13
  356. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +4 -4
  357. package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +2 -8
  358. package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +127 -86
  359. package/Microsoft.ReactNative/Views/ICompositionRootView.h +1 -1
  360. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
  361. package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +2 -2
  362. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +1 -1
  363. package/Microsoft.ReactNative/Views/SIPEventHandler.cpp +5 -5
  364. package/Microsoft.ReactNative/Views/SIPEventHandler.h +1 -1
  365. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +8 -5
  366. package/Microsoft.ReactNative/Views/SwitchViewManager.cpp +2 -2
  367. package/Microsoft.ReactNative/Views/Text/TextTransformVisitor.cpp +1 -1
  368. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +32 -14
  369. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +1 -1
  370. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +14 -2
  371. package/Microsoft.ReactNative/Views/ViewManagerBase.h +1 -1
  372. package/Microsoft.ReactNative/Views/ViewPanel.cpp +20 -219
  373. package/Microsoft.ReactNative/Views/ViewPanel.h +0 -30
  374. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +17 -158
  375. package/Microsoft.ReactNative/Views/cppwinrt/DynamicAutomationPeer.idl +9 -12
  376. package/Microsoft.ReactNative/Views/cppwinrt/ViewPanel.idl +1 -9
  377. package/Microsoft.ReactNative/XamlHelper.cpp +1 -1
  378. package/Microsoft.ReactNative/XamlHelper.h +1 -1
  379. package/Microsoft.ReactNative/packages.lock.json +128 -0
  380. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +1 -1
  381. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -1
  382. package/Microsoft.ReactNative.Cxx/JSI/JsiApiContext.cpp +2 -2
  383. package/Microsoft.ReactNative.Cxx/JSValue.h +2 -2
  384. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +0 -1
  385. package/Microsoft.ReactNative.Cxx/NativeModules.h +4 -4
  386. package/Microsoft.ReactNative.Cxx/ReactHandleHelper.h +1 -1
  387. package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +2 -2
  388. package/Microsoft.ReactNative.Cxx/ReactNotificationService.h +10 -9
  389. package/Microsoft.ReactNative.Cxx/ReactPropertyBag.h +13 -12
  390. package/Microsoft.ReactNative.Managed/JSValueReaderGenerator.cs +5 -5
  391. package/Microsoft.ReactNative.Managed/JSValueWriterGenerator.cs +5 -5
  392. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +8 -2
  393. package/Microsoft.ReactNative.Managed/ReactPackageBuilderExtensions.cs +1 -1
  394. package/Microsoft.ReactNative.Managed/ReflectionReactPackageProvider.cs +1 -1
  395. package/Microsoft.ReactNative.Managed/packages.lock.json +9 -9
  396. package/Microsoft.ReactNative.Managed.CodeGen/CodeAnalyzer.cs +2 -0
  397. package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Module.cs +4 -2
  398. package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.ViewManager.cs +1 -1
  399. package/Microsoft.ReactNative.Managed.CodeGen/DiagnosticDescriptors.cs +1 -1
  400. package/Microsoft.ReactNative.Managed.CodeGen/packages.lock.json +3197 -0
  401. package/Mso/compilerAdapters/compilerFeatures.h +1 -1
  402. package/Mso/compilerAdapters/functionDecorations.h +6 -6
  403. package/Mso/debugAssertApi/debugAssertDetails.h +1 -1
  404. package/Mso/dispatchQueue/dispatchQueue.h +3 -3
  405. package/Mso/motifCpp/motifCppTest.h +1 -1
  406. package/Mso/motifCpp/testCheck.h +1 -1
  407. package/Mso/oacr/oacr.h +1 -1
  408. package/Mso/smartPtr/smartPointerBase.h +1 -1
  409. package/Mso/src/dispatchQueue/looperScheduler.cpp +2 -2
  410. package/Mso/src/dispatchQueue/queueService.cpp +1 -1
  411. package/Mso/src/dispatchQueue/taskQueue.h +1 -1
  412. package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +2 -2
  413. package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +122 -45
  414. package/Mso/src/eventWaitHandle/eventWaitHandleImpl_win.cpp +2 -2
  415. package/Mso/src/future/futureImpl.cpp +5 -5
  416. package/Mso/src/future/futureImpl.h +1 -1
  417. package/PropertySheets/External/Microsoft.ReactNative.Common.props +3 -0
  418. package/PropertySheets/External/{Microsoft.ReactNative.WinAppSDK.Common.props → Microsoft.ReactNative.Composition.Common.props} +2 -2
  419. package/PropertySheets/External/{Microsoft.ReactNative.WinAppSDK.CSharpApp.props → Microsoft.ReactNative.Composition.CppApp.props} +7 -10
  420. package/PropertySheets/External/Microsoft.ReactNative.Composition.CppApp.targets +19 -0
  421. package/PropertySheets/External/Microsoft.ReactNative.Composition.Package.props +14 -0
  422. package/PropertySheets/External/Microsoft.ReactNative.Composition.Package.targets +18 -0
  423. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +1 -1
  424. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  425. package/PropertySheets/HybridCRT.props +34 -0
  426. package/PropertySheets/JSEngine.props +1 -2
  427. package/PropertySheets/React.Cpp.props +0 -1
  428. package/PropertySheets/Warnings.props +1 -1
  429. package/PropertySheets/WinUI.props +1 -1
  430. package/ReactCommon/ReactCommon.vcxproj +15 -9
  431. package/ReactCommon/ReactCommon.vcxproj.filters +0 -3
  432. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +32 -5
  433. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +20 -0
  434. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaLayoutableShadowNode.cpp +1038 -0
  435. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +228 -38
  436. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +895 -0
  437. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/ShadowTree.cpp +543 -0
  438. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManagerBinding.cpp +1509 -0
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/bits/NumericBitfield.h +67 -0
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +93 -0
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +88 -0
  442. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +606 -0
  443. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.h +344 -0
  444. package/ReactCommon/Yoga.cpp +497 -3895
  445. package/ReactCommon/packages.lock.json +30 -0
  446. package/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1 +22 -0
  447. package/Scripts/OfficeReact.Win32.nuspec +1 -0
  448. package/Scripts/rnw-dependencies.ps1 +79 -26
  449. package/Shared/BaseScriptStoreImpl.cpp +42 -13
  450. package/Shared/BaseScriptStoreImpl.h +1 -1
  451. package/Shared/Composition/AutoDraw.h +36 -0
  452. package/Shared/CxxMessageQueue.cpp +1 -1
  453. package/Shared/DevSettings.h +3 -0
  454. package/Shared/DevSupportManager.h +1 -1
  455. package/Shared/Hasher.cpp +64 -0
  456. package/Shared/Hasher.h +24 -0
  457. package/Shared/HermesRuntimeHolder.cpp +6 -6
  458. package/Shared/IDevSupportManager.h +1 -1
  459. package/Shared/JSI/ChakraApi.cpp +1 -1
  460. package/Shared/JSI/ChakraRuntime.cpp +10 -10
  461. package/Shared/JSI/ChakraRuntime.h +6 -6
  462. package/Shared/JSI/V8RuntimeHolder.cpp +1 -1
  463. package/Shared/Modules/IRequestBodyHandler.h +1 -1
  464. package/Shared/Modules/IUriHandler.h +1 -1
  465. package/Shared/Modules/PlatformConstantsModule.cpp +1 -1
  466. package/Shared/Modules/WebSocketModule.cpp +1 -1
  467. package/Shared/Networking/DefaultBlobResource.cpp +2 -2
  468. package/Shared/Networking/OriginPolicyHttpFilter.cpp +22 -16
  469. package/Shared/Networking/OriginPolicyHttpFilter.h +12 -11
  470. package/Shared/OInstance.cpp +9 -23
  471. package/Shared/OInstance.h +1 -1
  472. package/Shared/PackagerConnection.h +1 -1
  473. package/Shared/SafeLoadLibrary.cpp +8 -44
  474. package/Shared/SafeLoadLibrary.h +1 -5
  475. package/Shared/Shared.vcxitems +50 -20
  476. package/Shared/Shared.vcxitems.filters +26 -17
  477. package/Shared/Threading/BatchingQueueThread.cpp +5 -5
  478. package/Shared/Threading/BatchingQueueThread.h +4 -4
  479. package/Shared/TurboModuleManager.cpp +1 -1
  480. package/Shared/Utils.cpp +1 -1
  481. package/Shared/tracing/fbsystrace.h +1 -1
  482. package/codegen/NativeAnimatedModuleSpec.g.h +2 -0
  483. package/codegen/NativeAnimatedTurboModuleSpec.g.h +2 -0
  484. package/codegen/NativeAppStateSpec.g.h +11 -21
  485. package/codegen/NativeDeviceInfoSpec.g.h +4 -14
  486. package/codegen/NativeI18nManagerSpec.g.h +6 -16
  487. package/codegen/NativeIntersectionObserverSpec.g.h +96 -0
  488. package/codegen/NativeMutationObserverSpec.g.h +90 -0
  489. package/codegen/NativePerformanceObserverSpec.g.h +19 -13
  490. package/codegen/NativePerformanceSpec.g.h +6 -23
  491. package/codegen/NativePlatformConstantsAndroidSpec.g.h +22 -30
  492. package/codegen/NativePlatformConstantsIOSSpec.g.h +17 -25
  493. package/codegen/NativePlatformConstantsWinSpec.g.h +14 -22
  494. package/codegen/NativeSampleTurboModuleSpec.g.h +36 -0
  495. package/codegen/NativeSourceCodeSpec.g.h +3 -13
  496. package/codegen/react/components/rnwcore/EventEmitters.cpp +85 -58
  497. package/codegen/react/components/rnwcore/EventEmitters.h +17 -35
  498. package/codegen/react/components/rnwcore/Props.h +16 -17
  499. package/codegen/rnwcoreJSI-generated.cpp +1462 -319
  500. package/codegen/rnwcoreJSI.h +1609 -462
  501. package/fmt/packages.lock.json +13 -0
  502. package/index.windows.js +3 -3
  503. package/{Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js → jest/ReactNativeInternalFeatureFlagsMock.js} +2 -1
  504. package/jest/__tests__/setup-test.js +18 -0
  505. package/jest/mockModal.js +6 -4
  506. package/jest/setup.js +61 -30
  507. package/just-task.js +1 -0
  508. package/package.json +37 -42
  509. package/template/cs-app/proj/MyApp.csproj +0 -1
  510. package/template/cs-lib/proj/MyLib.csproj +0 -1
  511. package/templates/.clang-format +4 -0
  512. package/templates/cpp-app/metro.config.js +51 -0
  513. package/templates/cpp-app/template.config.js +119 -0
  514. package/templates/cpp-app/windows/ExperimentalFeatures.props +12 -0
  515. package/templates/cpp-app/windows/MyApp/MyApp.cpp +284 -0
  516. package/templates/cpp-app/windows/MyApp/MyApp.h +3 -0
  517. package/templates/cpp-app/windows/MyApp/MyApp.ico +0 -0
  518. package/templates/cpp-app/windows/MyApp/MyApp.rc +0 -0
  519. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +142 -0
  520. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj.filters +55 -0
  521. package/templates/cpp-app/windows/MyApp/_gitignore +1 -0
  522. package/templates/cpp-app/windows/MyApp/pch.cpp +1 -0
  523. package/templates/cpp-app/windows/MyApp/pch.h +35 -0
  524. package/templates/cpp-app/windows/MyApp/resource.h +18 -0
  525. package/templates/cpp-app/windows/MyApp/small.ico +0 -0
  526. package/templates/cpp-app/windows/MyApp/targetver.h +8 -0
  527. package/templates/cpp-app/windows/MyApp.Package/Images/LockScreenLogo.scale-200.png +0 -0
  528. package/templates/cpp-app/windows/MyApp.Package/Images/SplashScreen.scale-200.png +0 -0
  529. package/templates/cpp-app/windows/MyApp.Package/Images/Square150x150Logo.scale-200.png +0 -0
  530. package/templates/cpp-app/windows/MyApp.Package/Images/Square44x44Logo.scale-200.png +0 -0
  531. package/templates/cpp-app/windows/MyApp.Package/Images/Square44x44Logo.targetsize-24_altform-unplated.png +0 -0
  532. package/templates/cpp-app/windows/MyApp.Package/Images/StoreLogo.png +0 -0
  533. package/templates/cpp-app/windows/MyApp.Package/Images/Wide310x150Logo.scale-200.png +0 -0
  534. package/templates/cpp-app/windows/MyApp.Package/MyApp.Package.wapproj +78 -0
  535. package/{template/cs-app-WinAppSDK/MyApp → templates/cpp-app/windows/MyApp.Package}/Package.appxmanifest +9 -8
  536. package/templates/cpp-app/windows/MyApp.sln +176 -0
  537. package/templates/cpp-app/windows/_gitignore +41 -0
  538. package/templates/old/generateWrapper.js +67 -0
  539. package/templates/old/uwp-cpp-app/template.config.js +15 -0
  540. package/templates/old/uwp-cpp-lib/template.config.js +15 -0
  541. package/templates/old/uwp-cs-app/template.config.js +15 -0
  542. package/templates/old/uwp-cs-lib/template.config.js +15 -0
  543. package/types/experimental.d.ts +44 -0
  544. package/types/index.d.ts +2 -1
  545. package/types/modules/Devtools.d.ts +1 -0
  546. package/types/modules/globals.d.ts +16 -1
  547. package/Libraries/Components/View/ViewWindows.d.ts +0 -19
  548. package/Libraries/Components/View/ViewWindows.js +0 -22
  549. package/Libraries/Components/View/ViewWindows.js.map +0 -1
  550. package/Libraries/Components/View/ViewWindowsProps.d.ts +0 -69
  551. package/Libraries/Components/View/ViewWindowsProps.js +0 -8
  552. package/Libraries/Components/View/ViewWindowsProps.js.map +0 -1
  553. package/Libraries/Utilities/AcessibilityMapping.js +0 -154
  554. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +0 -19
  555. package/Libraries/Utilities/useColorScheme.windows.js +0 -26
  556. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +0 -61
  557. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +0 -34
  558. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +0 -42
  559. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharp.PackageReferences.props +0 -11
  560. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.targets +0 -51
  561. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +0 -237
  562. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +0 -59
  563. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +0 -159
  564. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +0 -94
  565. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +0 -465
  566. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +0 -116
  567. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +0 -98
  568. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +0 -326
  569. package/Scripts/Microsoft.ReactNative.WindowsAppSDK.nuspec +0 -30
  570. package/Shared/V8JSIRuntimeHolder.cpp +0 -71
  571. package/Shared/V8JSIRuntimeHolder.h +0 -56
  572. package/codegen/NativeDevSplitBundleLoaderSpec.g.h +0 -34
  573. package/template/cs-app-WinAppSDK/MyApp/App.xaml +0 -16
  574. package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +0 -70
  575. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +0 -14
  576. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +0 -38
  577. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +0 -19
  578. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +0 -19
  579. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +0 -19
  580. package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +0 -10
  581. package/template/cs-app-WinAppSDK/MyApp/app.manifest +0 -15
  582. package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +0 -24
  583. package/template/cs-app-WinAppSDK/proj/MyApp.csproj +0 -53
  584. package/template/cs-app-WinAppSDK/proj/MyApp.sln +0 -43
  585. package/template/cs-app-WinAppSDK/proj/NuGet_Config +0 -19
  586. /package/Libraries/Components/DrawerAndroid/{DrawerLayoutAndroid.ios.js → DrawerLayoutAndroid.js} +0 -0
  587. /package/Libraries/{Renderer/public → ReactNative/ReactFabricPublicInstance}/ReactFabricPublicInstanceUtils.js +0 -0
@@ -33,11 +33,21 @@ struct ReactCompositionViewComponentBuilder : winrt::implements<
33
33
  // (Object handle, UInt32 Msg, UInt64 WParam, Int64 LParam) => Int64
34
34
  void SetMessageHandler(MessageHandler impl) noexcept;
35
35
 
36
+ void SetKeyDownHandler(KeyHandler impl) noexcept;
37
+ void SetKeyUpHandler(KeyHandler impl) noexcept;
38
+
39
+ void SetPointerEnteredHandler(PointerHandler impl) noexcept;
40
+ void SetPointerExitedHandler(PointerHandler impl) noexcept;
41
+ void SetPointerReleasedHandler(PointerHandler impl) noexcept;
42
+ void SetPointerPressedHandler(PointerHandler impl) noexcept;
43
+ void SetPointerMovedHandler(PointerHandler impl) noexcept;
44
+ void SetPointerWheelChangedHandler(PointerHandler impl) noexcept;
45
+
36
46
  public:
37
47
  IComponentProps CreateProps(ViewProps props) noexcept;
38
48
 
39
- winrt::Windows::Foundation::IInspectable CreateView(ICompositionContext context) noexcept;
40
- bool HandeCommand(
49
+ winrt::Windows::Foundation::IInspectable CreateView(IReactContext reactContext, ICompositionContext context) noexcept;
50
+ bool HandleCommand(
41
51
  winrt::Windows::Foundation::IInspectable handle,
42
52
  winrt::hstring commandName,
43
53
  IJSValueReader args) noexcept;
@@ -47,6 +57,32 @@ struct ReactCompositionViewComponentBuilder : winrt::implements<
47
57
  IVisual CreateVisual(winrt::Windows::Foundation::IInspectable handle) noexcept;
48
58
  int64_t
49
59
  SendMessage(winrt::Windows::Foundation::IInspectable handle, uint32_t Msg, uint64_t WParam, int64_t LParam) noexcept;
60
+ void OnKeyDown(
61
+ winrt::Windows::Foundation::IInspectable handle,
62
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
63
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept;
64
+ void OnKeyUp(
65
+ winrt::Windows::Foundation::IInspectable handle,
66
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
67
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept;
68
+ void OnPointerEntered(
69
+ winrt::Windows::Foundation::IInspectable handle,
70
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept;
71
+ void OnPointerExited(
72
+ winrt::Windows::Foundation::IInspectable handle,
73
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept;
74
+ void OnPointerPressed(
75
+ winrt::Windows::Foundation::IInspectable handle,
76
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept;
77
+ void OnPointerReleased(
78
+ winrt::Windows::Foundation::IInspectable handle,
79
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept;
80
+ void OnPointerMoved(
81
+ winrt::Windows::Foundation::IInspectable handle,
82
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept;
83
+ void OnPointerWheelChanged(
84
+ winrt::Windows::Foundation::IInspectable handle,
85
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept;
50
86
 
51
87
  private:
52
88
  ViewPropsFactory m_propsFactory;
@@ -58,6 +94,14 @@ struct ReactCompositionViewComponentBuilder : winrt::implements<
58
94
  UpdateFinalizer m_finalizer;
59
95
  VisualCreator m_visualCreator;
60
96
  MessageHandler m_messageHandler;
97
+ KeyHandler m_keyUp;
98
+ KeyHandler m_keyDown;
99
+ PointerHandler m_pointerEntered;
100
+ PointerHandler m_pointerExited;
101
+ PointerHandler m_pointerReleased;
102
+ PointerHandler m_pointerPressed;
103
+ PointerHandler m_pointerMoved;
104
+ PointerHandler m_pointerWheelChanged;
61
105
  };
62
106
 
63
107
  } // namespace winrt::Microsoft::ReactNative::Composition
@@ -6,6 +6,7 @@
6
6
 
7
7
  #include "RootComponentView.h"
8
8
 
9
+ #include <Fabric/FabricUIManagerModule.h>
9
10
  #include "CompositionRootAutomationProvider.h"
10
11
  #include "CompositionRootView.h"
11
12
 
@@ -13,13 +14,15 @@ namespace Microsoft::ReactNative {
13
14
 
14
15
  RootComponentView::RootComponentView(
15
16
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
16
- facebook::react::Tag tag)
17
- : Super(compContext, tag) {}
17
+ facebook::react::Tag tag,
18
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext)
19
+ : Super(compContext, tag), m_context(reactContext) {}
18
20
 
19
21
  std::shared_ptr<RootComponentView> RootComponentView::Create(
20
22
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
21
- facebook::react::Tag tag) noexcept {
22
- return std::shared_ptr<RootComponentView>(new RootComponentView(compContext, tag));
23
+ facebook::react::Tag tag,
24
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext) noexcept {
25
+ return std::shared_ptr<RootComponentView>(new RootComponentView(compContext, tag, reactContext));
23
26
  }
24
27
 
25
28
  RootComponentView *RootComponentView::rootComponentView() noexcept {
@@ -81,6 +84,14 @@ bool RootComponentView::NavigateFocus(const winrt::Microsoft::ReactNative::Focus
81
84
  return view != nullptr;
82
85
  }
83
86
 
87
+ bool RootComponentView::TrySetFocusedComponent(IComponentView &view) noexcept {
88
+ if (view.focusable()) {
89
+ view.rootComponentView()->SetFocusedComponent(&view);
90
+ return true;
91
+ }
92
+ return false;
93
+ }
94
+
84
95
  bool RootComponentView::TryMoveFocus(bool next) noexcept {
85
96
  if (!m_focusedComponent) {
86
97
  return NavigateFocus(winrt::Microsoft::ReactNative::FocusNavigationRequest(
@@ -91,11 +102,8 @@ bool RootComponentView::TryMoveFocus(bool next) noexcept {
91
102
  Mso::Functor<bool(IComponentView &)> fn = [currentlyFocused = m_focusedComponent](IComponentView &view) noexcept {
92
103
  if (&view == currentlyFocused)
93
104
  return false;
94
- if (view.focusable()) {
95
- view.rootComponentView()->SetFocusedComponent(&view);
96
- return true;
97
- }
98
- return false;
105
+
106
+ return view.rootComponentView()->TrySetFocusedComponent(view);
99
107
  };
100
108
 
101
109
  return walkTree(*m_focusedComponent, next, fn);
@@ -113,4 +121,23 @@ std::shared_ptr<RootComponentView> RootComponentView::getPtr() {
113
121
  return std::static_pointer_cast<RootComponentView>(shared_from_this());
114
122
  }
115
123
 
124
+ winrt::IInspectable RootComponentView::UiaProviderFromPoint(const POINT &ptPixels) noexcept {
125
+ facebook::react::Point ptDips{
126
+ static_cast<facebook::react::Float>(ptPixels.x) / m_layoutMetrics.pointScaleFactor,
127
+ static_cast<facebook::react::Float>(ptPixels.y) / m_layoutMetrics.pointScaleFactor};
128
+
129
+ facebook::react::Point localPt;
130
+ auto tag = hitTest(ptDips, localPt, true);
131
+
132
+ auto uiManager = ::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties());
133
+ if (uiManager == nullptr)
134
+ return nullptr;
135
+
136
+ auto view = uiManager->GetViewRegistry().findComponentViewWithTag(tag);
137
+ if (view == nullptr)
138
+ return nullptr;
139
+
140
+ return view->EnsureUiaProvider();
141
+ }
142
+
116
143
  } // namespace Microsoft::ReactNative
@@ -18,12 +18,14 @@ struct RootComponentView : CompositionViewComponentView {
18
18
 
19
19
  [[nodiscard]] static std::shared_ptr<RootComponentView> Create(
20
20
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
21
- facebook::react::Tag tag) noexcept;
21
+ facebook::react::Tag tag,
22
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext) noexcept;
22
23
 
23
24
  std::shared_ptr<RootComponentView> getPtr();
24
25
 
25
26
  ::Microsoft::ReactNative::IComponentView *GetFocusedComponent() noexcept;
26
27
  void SetFocusedComponent(::Microsoft::ReactNative::IComponentView *value) noexcept;
28
+ bool TrySetFocusedComponent(::Microsoft::ReactNative::IComponentView &view) noexcept;
27
29
 
28
30
  bool NavigateFocus(const winrt::Microsoft::ReactNative::FocusNavigationRequest &request) noexcept;
29
31
 
@@ -33,11 +35,15 @@ struct RootComponentView : CompositionViewComponentView {
33
35
 
34
36
  winrt::IInspectable EnsureUiaProvider() noexcept override;
35
37
 
38
+ winrt::IInspectable UiaProviderFromPoint(const POINT &ptPixels) noexcept;
39
+
36
40
  private:
37
41
  RootComponentView(
38
42
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
39
- facebook::react::Tag tag);
43
+ facebook::react::Tag tag,
44
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext);
40
45
  ::Microsoft::ReactNative::IComponentView *m_focusedComponent = nullptr;
46
+ winrt::Microsoft::ReactNative::ReactContext m_context;
41
47
  };
42
48
 
43
49
  } // namespace Microsoft::ReactNative
@@ -21,6 +21,8 @@
21
21
 
22
22
  namespace Microsoft::ReactNative {
23
23
 
24
+ constexpr float c_scrollerLineDelta = 16.0f;
25
+
24
26
  std::shared_ptr<ScrollViewComponentView> ScrollViewComponentView::Create(
25
27
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
26
28
  facebook::react::Tag tag) noexcept {
@@ -149,32 +151,20 @@ void ScrollViewComponentView::updateProps(
149
151
 
150
152
  if (!oldProps || oldViewProps.backgroundColor != newViewProps.backgroundColor) {
151
153
  if (newViewProps.backgroundColor) {
152
- m_scrollVisual.Brush(m_compContext.CreateColorBrush((*newViewProps.backgroundColor).m_color));
154
+ m_scrollVisual.Brush(m_compContext.CreateColorBrush(newViewProps.backgroundColor.AsWindowsColor()));
153
155
  } else {
154
156
  m_scrollVisual.Brush(m_compContext.CreateColorBrush({0, 0, 0, 0}));
155
157
  }
156
158
  }
157
159
 
158
- /*
159
- if (oldViewProps.borderColors != newViewProps.borderColors) {
160
- if (newViewProps.borderColors.all) {
161
- m_element.BorderBrush(SolidColorBrushFrom(*newViewProps.borderColors.all));
162
- } else {
163
- m_element.ClearValue(winrt::Microsoft::ReactNative::ViewPanel::BorderBrushProperty());
164
- }
165
- }
166
-
167
- if (oldViewProps.borderStyles != newViewProps.borderStyles) {
168
- m_needsBorderUpdate = true;
169
- }
170
- */
171
-
160
+ // update BaseComponentView props
161
+ updateShadowProps(oldViewProps, newViewProps, m_visual);
162
+ updateTransformProps(oldViewProps, newViewProps, m_visual);
172
163
  updateBorderProps(oldViewProps, newViewProps);
164
+
173
165
  m_props = std::static_pointer_cast<facebook::react::ViewProps const>(props);
174
166
  }
175
167
 
176
- void ScrollViewComponentView::updateEventEmitter(facebook::react::EventEmitter::Shared const &eventEmitter) noexcept {}
177
-
178
168
  void ScrollViewComponentView::updateState(
179
169
  facebook::react::State::Shared const &state,
180
170
  facebook::react::State::Shared const &oldState) noexcept {
@@ -219,8 +209,7 @@ void ScrollViewComponentView::finalizeUpdates(RNComponentViewUpdateMask updateMa
219
209
  }
220
210
  void ScrollViewComponentView::prepareForRecycle() noexcept {}
221
211
  facebook::react::Props::Shared ScrollViewComponentView::props() noexcept {
222
- assert(false);
223
- return {};
212
+ return static_cast<facebook::react::Props::Shared>(m_props);
224
213
  }
225
214
 
226
215
  /*
@@ -268,38 +257,156 @@ void ScrollViewComponentView::OnPointerDown(const winrt::Windows::UI::Input::Poi
268
257
  }
269
258
  */
270
259
 
271
- bool ScrollViewComponentView::ScrollWheel(facebook::react::Point pt, int32_t delta) noexcept {
272
- facebook::react::Point ptViewport{pt.x - m_layoutMetrics.frame.origin.x, pt.y - m_layoutMetrics.frame.origin.y};
260
+ void ScrollViewComponentView::onPointerWheelChanged(
261
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
262
+ auto ppp = args.GetCurrentPoint(-1).Properties();
263
+ auto delta = static_cast<float>(ppp.MouseWheelDelta());
264
+ if (ppp.IsHorizontalMouseWheel()) {
265
+ if (delta > 0) {
266
+ if (scrollLeft(delta * m_layoutMetrics.pointScaleFactor, true)) {
267
+ args.Handled(true);
268
+ }
269
+ } else if (delta < 0) {
270
+ if (scrollRight(-delta * m_layoutMetrics.pointScaleFactor, true)) {
271
+ args.Handled(true);
272
+ }
273
+ }
274
+ } else {
275
+ if (delta > 0) {
276
+ if (scrollUp(delta * m_layoutMetrics.pointScaleFactor, true)) {
277
+ args.Handled(true);
278
+ }
279
+ } else if (delta < 0) {
280
+ if (scrollDown(-delta * m_layoutMetrics.pointScaleFactor, true)) {
281
+ args.Handled(true);
282
+ }
283
+ }
284
+ }
285
+ }
273
286
 
274
- facebook::react::Point ptContent{
275
- ptViewport.x + m_scrollVisual.ScrollPosition().x / m_layoutMetrics.pointScaleFactor,
276
- ptViewport.y + m_scrollVisual.ScrollPosition().y / m_layoutMetrics.pointScaleFactor};
287
+ void ScrollViewComponentView::onKeyDown(
288
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
289
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept {
290
+ switch (args.Key()) {
291
+ case winrt::Windows::System::VirtualKey::End:
292
+ args.Handled(scrollToEnd(true));
293
+ break;
294
+ case winrt::Windows::System::VirtualKey::Home:
295
+ args.Handled(scrollToStart(true));
296
+ break;
297
+ case winrt::Windows::System::VirtualKey::PageDown:
298
+ args.Handled(pageDown(true));
299
+ break;
300
+ case winrt::Windows::System::VirtualKey::PageUp:
301
+ args.Handled(pageUp(true));
302
+ break;
303
+ case winrt::Windows::System::VirtualKey::Up:
304
+ args.Handled(lineUp(true));
305
+ break;
306
+ case winrt::Windows::System::VirtualKey::Down:
307
+ args.Handled(lineDown(true));
308
+ break;
309
+ case winrt::Windows::System::VirtualKey::Left:
310
+ args.Handled(lineLeft(true));
311
+ break;
312
+ case winrt::Windows::System::VirtualKey::Right:
313
+ args.Handled(lineRight(true));
314
+ break;
315
+ }
316
+ }
277
317
 
278
- if (std::any_of(m_children.rbegin(), m_children.rend(), [ptContent, delta](auto child) {
279
- return const_cast<CompositionBaseComponentView *>(static_cast<const CompositionBaseComponentView *>(child))
280
- ->ScrollWheel(ptContent, delta);
281
- }))
282
- return true;
318
+ bool ScrollViewComponentView::scrollToEnd(bool animate) noexcept {
319
+ if ((((m_contentSize.height - m_layoutMetrics.frame.size.height) * m_layoutMetrics.pointScaleFactor) -
320
+ m_scrollVisual.ScrollPosition().y) < 1.0f) {
321
+ return false;
322
+ }
283
323
 
284
- if (ptViewport.x >= 0 && ptViewport.x <= m_layoutMetrics.frame.size.width && ptViewport.y >= 0 &&
285
- ptViewport.y <= m_layoutMetrics.frame.size.height) {
286
- m_scrollVisual.ScrollBy({0, static_cast<float>(-delta), 0});
287
- return true;
324
+ auto x = (m_contentSize.width - m_layoutMetrics.frame.size.width) * m_layoutMetrics.pointScaleFactor;
325
+ auto y = (m_contentSize.height - m_layoutMetrics.frame.size.height) * m_layoutMetrics.pointScaleFactor;
326
+ m_scrollVisual.TryUpdatePosition({static_cast<float>(x), static_cast<float>(y), 0.0f}, animate);
327
+ return true;
328
+ }
329
+
330
+ bool ScrollViewComponentView::scrollToStart(bool animate) noexcept {
331
+ m_scrollVisual.TryUpdatePosition({0.0f, 0.0f, 0.0f}, animate);
332
+ return true;
333
+ }
334
+
335
+ bool ScrollViewComponentView::pageUp(bool animate) noexcept {
336
+ return scrollUp(m_layoutMetrics.frame.size.height * m_layoutMetrics.pointScaleFactor, animate);
337
+ }
338
+
339
+ bool ScrollViewComponentView::pageDown(bool animate) noexcept {
340
+ return scrollDown(m_layoutMetrics.frame.size.height * m_layoutMetrics.pointScaleFactor, animate);
341
+ }
342
+
343
+ bool ScrollViewComponentView::lineUp(bool animate) noexcept {
344
+ return scrollUp(c_scrollerLineDelta * m_layoutMetrics.pointScaleFactor, animate);
345
+ }
346
+
347
+ bool ScrollViewComponentView::lineDown(bool animate) noexcept {
348
+ return scrollDown(c_scrollerLineDelta * m_layoutMetrics.pointScaleFactor, animate);
349
+ }
350
+
351
+ bool ScrollViewComponentView::lineLeft(bool animate) noexcept {
352
+ return scrollLeft(c_scrollerLineDelta * m_layoutMetrics.pointScaleFactor, animate);
353
+ }
354
+
355
+ bool ScrollViewComponentView::lineRight(bool animate) noexcept {
356
+ return scrollRight(c_scrollerLineDelta * m_layoutMetrics.pointScaleFactor, animate);
357
+ }
358
+
359
+ bool ScrollViewComponentView::scrollDown(float delta, bool animate) noexcept {
360
+ if (((m_contentSize.height - m_layoutMetrics.frame.size.height) * m_layoutMetrics.pointScaleFactor) -
361
+ m_scrollVisual.ScrollPosition().y <
362
+ 1.0f) {
363
+ return false;
364
+ }
365
+
366
+ m_scrollVisual.ScrollBy({0, delta, 0}, animate);
367
+ return true;
368
+ }
369
+
370
+ bool ScrollViewComponentView::scrollUp(float delta, bool animate) noexcept {
371
+ if (m_scrollVisual.ScrollPosition().y <= 0.0f) {
372
+ return false;
373
+ }
374
+
375
+ m_scrollVisual.ScrollBy({0, -delta, 0}, animate);
376
+ return true;
377
+ }
378
+
379
+ bool ScrollViewComponentView::scrollLeft(float delta, bool animate) noexcept {
380
+ if (m_scrollVisual.ScrollPosition().x <= 0.0f) {
381
+ return false;
288
382
  }
289
383
 
290
- return false;
384
+ m_scrollVisual.ScrollBy({delta, 0, 0}, animate);
385
+ return true;
386
+ }
387
+
388
+ bool ScrollViewComponentView::scrollRight(float delta, bool animate) noexcept {
389
+ if (((m_contentSize.width - m_layoutMetrics.frame.size.width) * m_layoutMetrics.pointScaleFactor) -
390
+ m_scrollVisual.ScrollPosition().x <
391
+ 1.0f) {
392
+ return false;
393
+ }
394
+
395
+ m_scrollVisual.ScrollBy({delta, 0, 0}, animate);
396
+ return true;
291
397
  }
292
398
 
293
399
  void ScrollViewComponentView::handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept {
294
400
  if (commandName == "scrollTo") {
295
- auto x = arg[0].asDouble();
296
- auto y = arg[1].asDouble();
401
+ auto x = arg[0].asDouble() * m_layoutMetrics.pointScaleFactor;
402
+ auto y = arg[1].asDouble() * m_layoutMetrics.pointScaleFactor;
297
403
  auto animate = arg[2].asBool();
298
404
  m_scrollVisual.TryUpdatePosition({static_cast<float>(x), static_cast<float>(y), 0.0f}, animate);
299
405
  } else if (commandName == "flashScrollIndicators") {
300
406
  // No-op for now
301
407
  } else if (commandName == "scrollToEnd") {
302
- // No-op for now
408
+ auto animate = arg[0].asBool();
409
+ scrollToEnd(animate);
303
410
  } else if (commandName == "zoomToRect") {
304
411
  // No-op for now
305
412
  } else {
@@ -307,6 +414,98 @@ void ScrollViewComponentView::handleCommand(std::string const &commandName, foll
307
414
  }
308
415
  }
309
416
 
417
+ void ScrollViewComponentView::StartBringIntoView(BringIntoViewOptions &&options) noexcept {
418
+ RECT rc{getClientRect()};
419
+
420
+ if (!options.TargetRect) {
421
+ Super::StartBringIntoView(std::move(options));
422
+ return;
423
+ }
424
+
425
+ bool needsScroll = false;
426
+ float scrollToVertical = m_scrollVisual.ScrollPosition().y;
427
+ float scrollToHorizontal = m_scrollVisual.ScrollPosition().x;
428
+ float viewerHeight = m_layoutMetrics.frame.size.height * m_layoutMetrics.pointScaleFactor;
429
+ float viewerWidth = m_layoutMetrics.frame.size.width * m_layoutMetrics.pointScaleFactor;
430
+ float targetBottom = options.TargetRect->origin.y + options.TargetRect->size.height;
431
+ float targetRight = options.TargetRect->origin.x + options.TargetRect->size.width;
432
+
433
+ if (isnan(options.VerticalAlignmentRatio)) {
434
+ // Scroll Down
435
+ if (targetBottom > (m_scrollVisual.ScrollPosition().y + viewerHeight) &&
436
+ options.TargetRect->origin.y > m_scrollVisual.ScrollPosition().y) {
437
+ needsScroll = true;
438
+ if (options.TargetRect->size.height > viewerHeight) {
439
+ scrollToVertical = options.TargetRect->origin.y + options.VerticalOffset;
440
+ } else {
441
+ scrollToVertical = (targetBottom - viewerHeight) + options.VerticalOffset;
442
+ }
443
+ // Scroll Up
444
+ } else if (
445
+ options.TargetRect->origin.y < m_scrollVisual.ScrollPosition().y &&
446
+ targetBottom < (m_scrollVisual.ScrollPosition().y + viewerHeight)) {
447
+ needsScroll = true;
448
+ if (options.TargetRect->size.height > viewerHeight) {
449
+ scrollToVertical = targetBottom - viewerHeight - options.VerticalOffset;
450
+ } else {
451
+ scrollToVertical = options.TargetRect->origin.y - options.VerticalOffset;
452
+ }
453
+ }
454
+ } else {
455
+ needsScroll = true;
456
+ scrollToVertical = options.TargetRect->getMidY() - (viewerHeight * options.VerticalAlignmentRatio);
457
+ }
458
+
459
+ if (isnan(options.HorizontalAlignmentRatio)) {
460
+ // Scroll Right
461
+ if (targetRight > (m_scrollVisual.ScrollPosition().x + viewerWidth) &&
462
+ options.TargetRect->origin.x > m_scrollVisual.ScrollPosition().x) {
463
+ needsScroll = true;
464
+ if (options.TargetRect->size.width > viewerWidth) {
465
+ scrollToHorizontal = options.TargetRect->origin.x + options.HorizontalOffset;
466
+ } else {
467
+ scrollToHorizontal = (targetRight - viewerWidth) + options.HorizontalOffset;
468
+ }
469
+ // Scroll Left
470
+ } else if (
471
+ options.TargetRect->origin.x < m_scrollVisual.ScrollPosition().x &&
472
+ targetRight < (m_scrollVisual.ScrollPosition().x + viewerWidth)) {
473
+ needsScroll = true;
474
+ if (options.TargetRect->size.width > viewerWidth) {
475
+ scrollToHorizontal = targetRight - viewerWidth - options.HorizontalOffset;
476
+ } else {
477
+ scrollToHorizontal = options.TargetRect->origin.x - options.HorizontalOffset;
478
+ }
479
+ }
480
+ } else {
481
+ needsScroll = true;
482
+ scrollToHorizontal = options.TargetRect->getMidX() - (viewerWidth * options.HorizontalAlignmentRatio);
483
+ }
484
+
485
+ if (needsScroll) {
486
+ m_scrollVisual.TryUpdatePosition(
487
+ {static_cast<float>(scrollToHorizontal), static_cast<float>(scrollToVertical), 0.0f}, options.AnimationDesired);
488
+ }
489
+
490
+ if (m_parent) {
491
+ options.TargetRect->origin.y += m_layoutMetrics.frame.origin.y * m_layoutMetrics.pointScaleFactor;
492
+ options.TargetRect->origin.x += m_layoutMetrics.frame.origin.x * m_layoutMetrics.pointScaleFactor;
493
+
494
+ options.TargetRect->origin.y -= m_scrollVisual.ScrollPosition().y;
495
+ options.TargetRect->origin.x -= m_scrollVisual.ScrollPosition().x;
496
+
497
+ facebook::react::Rect viewerRect = {
498
+ {m_layoutMetrics.frame.origin.x * m_layoutMetrics.pointScaleFactor,
499
+ m_layoutMetrics.frame.origin.y * m_layoutMetrics.pointScaleFactor},
500
+ {m_layoutMetrics.frame.size.width * m_layoutMetrics.pointScaleFactor,
501
+ m_layoutMetrics.frame.size.height * m_layoutMetrics.pointScaleFactor}};
502
+
503
+ options.TargetRect = facebook::react::Rect::intersect(viewerRect, options.TargetRect.value());
504
+
505
+ m_parent->StartBringIntoView(std::move(options));
506
+ }
507
+ }
508
+
310
509
  void ScrollViewComponentView::ensureVisual() noexcept {
311
510
  if (!m_visual) {
312
511
  m_visual = m_compContext.CreateSpriteVisual();
@@ -316,7 +515,7 @@ void ScrollViewComponentView::ensureVisual() noexcept {
316
515
  winrt::auto_revoke,
317
516
  [this](
318
517
  winrt::IInspectable const & /*sender*/,
319
- winrt::Microsoft::ReactNative::Composition::ScrollPositionChangedArgs const &args) {
518
+ winrt::Microsoft::ReactNative::Composition::IScrollPositionChangedArgs const &args) {
320
519
  auto eventEmitter = GetEventEmitter();
321
520
  if (eventEmitter) {
322
521
  facebook::react::ScrollViewMetrics scrollMetrics;
@@ -335,8 +534,10 @@ void ScrollViewComponentView::ensureVisual() noexcept {
335
534
  }
336
535
  }
337
536
 
338
- facebook::react::Tag ScrollViewComponentView::hitTest(facebook::react::Point pt, facebook::react::Point &localPt)
339
- const noexcept {
537
+ facebook::react::Tag ScrollViewComponentView::hitTest(
538
+ facebook::react::Point pt,
539
+ facebook::react::Point &localPt,
540
+ bool ignorePointerEvents) const noexcept {
340
541
  facebook::react::Point ptViewport{pt.x - m_layoutMetrics.frame.origin.x, pt.y - m_layoutMetrics.frame.origin.y};
341
542
 
342
543
  facebook::react::Point ptContent{
@@ -344,7 +545,7 @@ facebook::react::Tag ScrollViewComponentView::hitTest(facebook::react::Point pt,
344
545
  ptViewport.y + m_scrollVisual.ScrollPosition().y / m_layoutMetrics.pointScaleFactor};
345
546
 
346
547
  facebook::react::Tag targetTag;
347
- if ((m_props->pointerEvents == facebook::react::PointerEventsMode::Auto ||
548
+ if ((ignorePointerEvents || m_props->pointerEvents == facebook::react::PointerEventsMode::Auto ||
348
549
  m_props->pointerEvents == facebook::react::PointerEventsMode::BoxNone) &&
349
550
  std::any_of(m_children.rbegin(), m_children.rend(), [&targetTag, &ptContent, &localPt](auto child) {
350
551
  targetTag = static_cast<const CompositionBaseComponentView *>(child)->hitTest(ptContent, localPt);
@@ -352,7 +553,7 @@ facebook::react::Tag ScrollViewComponentView::hitTest(facebook::react::Point pt,
352
553
  }))
353
554
  return targetTag;
354
555
 
355
- if ((m_props->pointerEvents == facebook::react::PointerEventsMode::Auto ||
556
+ if ((ignorePointerEvents || m_props->pointerEvents == facebook::react::PointerEventsMode::Auto ||
356
557
  m_props->pointerEvents == facebook::react::PointerEventsMode::BoxOnly) &&
357
558
  ptViewport.x >= 0 && ptViewport.x <= m_layoutMetrics.frame.size.width && ptViewport.y >= 0 &&
358
559
  ptViewport.y <= m_layoutMetrics.frame.size.height) {
@@ -367,4 +568,8 @@ winrt::Microsoft::ReactNative::Composition::IVisual ScrollViewComponentView::Vis
367
568
  return m_visual;
368
569
  }
369
570
 
571
+ std::string ScrollViewComponentView::DefaultControlType() const noexcept {
572
+ return "scrollbar";
573
+ }
574
+
370
575
  } // namespace Microsoft::ReactNative
@@ -60,7 +60,6 @@ struct ScrollInteractionTrackerOwner : public winrt::implements<
60
60
  void unmountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept override;
61
61
  void updateProps(facebook::react::Props::Shared const &props, facebook::react::Props::Shared const &oldProps) noexcept
62
62
  override;
63
- void updateEventEmitter(facebook::react::EventEmitter::Shared const &eventEmitter) noexcept override;
64
63
  void updateState(facebook::react::State::Shared const &state, facebook::react::State::Shared const &oldState) noexcept
65
64
  override;
66
65
  void updateLayoutMetrics(
@@ -69,13 +68,20 @@ struct ScrollInteractionTrackerOwner : public winrt::implements<
69
68
  void finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept override;
70
69
  void prepareForRecycle() noexcept override;
71
70
  facebook::react::Props::Shared props() noexcept override;
71
+ void onKeyDown(
72
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
73
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept override;
72
74
 
73
75
  void handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept override;
74
- facebook::react::Tag hitTest(facebook::react::Point pt, facebook::react::Point &localPt) const noexcept override;
76
+ facebook::react::Tag hitTest(facebook::react::Point pt, facebook::react::Point &localPt, bool ignorePointerEvents)
77
+ const noexcept override;
75
78
  winrt::Microsoft::ReactNative::Composition::IVisual Visual() const noexcept override;
76
79
 
77
- // void OnPointerDown(const winrt::Windows::UI::Input::PointerPoint &pp) noexcept override;
78
- bool ScrollWheel(facebook::react::Point pt, int32_t delta) noexcept override;
80
+ void onPointerWheelChanged(
81
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept override;
82
+
83
+ void StartBringIntoView(BringIntoViewOptions &&args) noexcept override;
84
+ virtual std::string DefaultControlType() const noexcept;
79
85
 
80
86
  private:
81
87
  ScrollViewComponentView(
@@ -84,11 +90,23 @@ struct ScrollInteractionTrackerOwner : public winrt::implements<
84
90
 
85
91
  void ensureVisual() noexcept;
86
92
  void updateContentVisualSize() noexcept;
93
+ bool scrollToEnd(bool animate) noexcept;
94
+ bool scrollToStart(bool animate) noexcept;
95
+ bool pageUp(bool animate) noexcept;
96
+ bool pageDown(bool animate) noexcept;
97
+ bool lineUp(bool animate) noexcept;
98
+ bool lineDown(bool animate) noexcept;
99
+ bool lineLeft(bool animate) noexcept;
100
+ bool lineRight(bool animate) noexcept;
101
+ bool scrollDown(float delta, bool animate) noexcept;
102
+ bool scrollUp(float delta, bool animate) noexcept;
103
+ bool scrollLeft(float delta, bool aniamte) noexcept;
104
+ bool scrollRight(float delta, bool animate) noexcept;
87
105
 
88
106
  facebook::react::Size m_contentSize;
89
- winrt::Microsoft::ReactNative::Composition::IVisual m_visual{nullptr};
90
- winrt::Microsoft::ReactNative::Composition::ScrollVisual m_scrollVisual{nullptr};
91
- winrt::Microsoft::ReactNative::Composition::ScrollVisual::ScrollPositionChanged_revoker
107
+ winrt::Microsoft::ReactNative::Composition::ISpriteVisual m_visual{nullptr};
108
+ winrt::Microsoft::ReactNative::Composition::IScrollVisual m_scrollVisual{nullptr};
109
+ winrt::Microsoft::ReactNative::Composition::IScrollVisual::ScrollPositionChanged_revoker
92
110
  m_scrollPositionChangedRevoker{};
93
111
 
94
112
  facebook::react::SharedViewProps m_props;
@@ -96,7 +114,6 @@ struct ScrollInteractionTrackerOwner : public winrt::implements<
96
114
  bool m_isScrollingFromInertia = false;
97
115
  bool m_isScrolling = false;
98
116
  bool m_isHorizontal = false;
99
- bool m_isScrollingEnabled = true;
100
117
  bool m_changeViewAfterLoaded = false;
101
118
  bool m_dismissKeyboardOnDrag = false;
102
119