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
@@ -42,7 +42,7 @@ facebook::react::ShadowNode::Shared AbiViewComponentDescriptor::createShadowNode
42
42
  facebook::react::ShadowNodeFamily::Shared const &family) const {
43
43
  auto shadowNode = std::make_shared<ShadowNodeT>(fragment, family, getTraits());
44
44
 
45
- adopt(shadowNode);
45
+ adopt(*shadowNode);
46
46
 
47
47
  return shadowNode;
48
48
  }
@@ -52,7 +52,7 @@ facebook::react::ShadowNode::Unshared AbiViewComponentDescriptor::cloneShadowNod
52
52
  const facebook::react::ShadowNodeFragment &fragment) const {
53
53
  auto shadowNode = std::make_shared<ShadowNodeT>(sourceShadowNode, fragment);
54
54
 
55
- adopt(shadowNode);
55
+ adopt(*shadowNode);
56
56
  return shadowNode;
57
57
  }
58
58
 
@@ -101,22 +101,8 @@ facebook::react::Props::Shared AbiViewComponentDescriptor::cloneProps(
101
101
  return shadowNodeProps;
102
102
  };
103
103
 
104
- facebook::react::Props::Shared AbiViewComponentDescriptor::interpolateProps(
105
- const facebook::react::PropsParserContext &context,
106
- facebook::react::Float animationProgress,
107
- const facebook::react::Props::Shared &props,
108
- const facebook::react::Props::Shared &newProps) const {
109
- facebook::react::Props::Shared interpolatedPropsShared = cloneProps(context, newProps, {});
110
-
111
- if (ConcreteShadowNode::BaseTraits().check(facebook::react::ShadowNodeTraits::Trait::ViewKind)) {
112
- facebook::react::interpolateViewProps(animationProgress, props, newProps, interpolatedPropsShared);
113
- }
114
-
115
- return interpolatedPropsShared;
116
- };
117
-
118
104
  facebook::react::State::Shared AbiViewComponentDescriptor::createInitialState(
119
- facebook::react::ShadowNodeFragment const &fragment,
105
+ facebook::react::Props::Shared const &props,
120
106
  facebook::react::ShadowNodeFamily::Shared const &family) const {
121
107
  if (std::is_same<ConcreteStateData, facebook::react::StateData>::value) {
122
108
  // Default case: Returning `null` for nodes that don't use `State`.
@@ -124,9 +110,7 @@ facebook::react::State::Shared AbiViewComponentDescriptor::createInitialState(
124
110
  }
125
111
 
126
112
  return std::make_shared<ConcreteState>(
127
- std::make_shared<ConcreteStateData const>(ConcreteShadowNode::initialStateData(
128
- fragment, facebook::react::ShadowNodeFamilyFragment::build(*family), *this)),
129
- family);
113
+ std::make_shared<ConcreteStateData const>(ConcreteShadowNode::initialStateData(props, family, *this)), family);
130
114
  }
131
115
 
132
116
  facebook::react::State::Shared AbiViewComponentDescriptor::createState(
@@ -144,18 +128,21 @@ facebook::react::State::Shared AbiViewComponentDescriptor::createState(
144
128
  }
145
129
 
146
130
  facebook::react::ShadowNodeFamily::Shared AbiViewComponentDescriptor::createFamily(
147
- facebook::react::ShadowNodeFamilyFragment const &fragment,
148
- facebook::react::SharedEventTarget eventTarget) const {
149
- auto eventEmitter =
150
- std::make_shared<ConcreteEventEmitter const>(std::move(eventTarget), fragment.tag, eventDispatcher_);
131
+ facebook::react::ShadowNodeFamilyFragment const &fragment) const {
151
132
  return std::make_shared<facebook::react::ShadowNodeFamily>(
152
- facebook::react::ShadowNodeFamilyFragment{fragment.tag, fragment.surfaceId, eventEmitter},
133
+ facebook::react::ShadowNodeFamilyFragment{fragment.tag, fragment.surfaceId, fragment.instanceHandle},
153
134
  eventDispatcher_,
154
135
  *this);
155
136
  }
156
137
 
138
+ facebook::react::SharedEventEmitter AbiViewComponentDescriptor::createEventEmitter(
139
+ facebook::react::InstanceHandle::Shared const &instanceHandle) const {
140
+ return std::make_shared<ConcreteEventEmitter const>(
141
+ std::make_shared<facebook::react::EventTarget>(instanceHandle), eventDispatcher_);
142
+ }
143
+
157
144
  /*
158
- * Called immediatelly after `ShadowNode` is created or cloned.
145
+ * Called immediately after `ShadowNode` is created or cloned.
159
146
  *
160
147
  * Override this method to pass information from custom `ComponentDescriptor`
161
148
  * to new instance of `ShadowNode`.
@@ -166,9 +153,9 @@ facebook::react::ShadowNodeFamily::Shared AbiViewComponentDescriptor::createFami
166
153
  * - Set `ShadowNode`'s size from state in
167
154
  * `ModalHostViewComponentDescriptor`.
168
155
  */
169
- void AbiViewComponentDescriptor::adopt(facebook::react::ShadowNode::Unshared const &shadowNode) const {
156
+ void AbiViewComponentDescriptor::adopt(facebook::react::ShadowNode &shadowNode) const {
170
157
  // Default implementation does nothing.
171
- react_native_assert(shadowNode->getComponentHandle() == getComponentHandle());
158
+ react_native_assert(shadowNode.getComponentHandle() == getComponentHandle());
172
159
  }
173
160
 
174
161
  } // namespace Microsoft::ReactNative
@@ -53,25 +53,22 @@ class AbiViewComponentDescriptor : public facebook::react::ComponentDescriptor {
53
53
  const facebook::react::PropsParserContext &context,
54
54
  const facebook::react::Props::Shared &props,
55
55
  const facebook::react::RawProps &rawProps) const override;
56
- facebook::react::Props::Shared interpolateProps(
57
- const facebook::react::PropsParserContext &context,
58
- facebook::react::Float animationProgress,
59
- const facebook::react::Props::Shared &props,
60
- const facebook::react::Props::Shared &newProps) const override;
61
56
  virtual facebook::react::State::Shared createInitialState(
62
- facebook::react::ShadowNodeFragment const &fragment,
57
+ facebook::react::Props::Shared const &props,
63
58
  facebook::react::ShadowNodeFamily::Shared const &family) const override;
64
59
  virtual facebook::react::State::Shared createState(
65
60
  facebook::react::ShadowNodeFamily const &family,
66
61
  facebook::react::StateData::Shared const &data) const override;
67
62
 
68
63
  facebook::react::ShadowNodeFamily::Shared createFamily(
69
- facebook::react::ShadowNodeFamilyFragment const &fragment,
70
- facebook::react::SharedEventTarget eventTarget) const override;
64
+ facebook::react::ShadowNodeFamilyFragment const &fragment) const override;
65
+
66
+ facebook::react::SharedEventEmitter createEventEmitter(
67
+ facebook::react::InstanceHandle::Shared const &instanceHandle) const override;
71
68
 
72
69
  protected:
73
70
  /*
74
- * Called immediatelly after `ShadowNode` is created or cloned.
71
+ * Called immediately after `ShadowNode` is created or cloned.
75
72
  *
76
73
  * Override this method to pass information from custom `ComponentDescriptor`
77
74
  * to new instance of `ShadowNode`.
@@ -82,7 +79,7 @@ class AbiViewComponentDescriptor : public facebook::react::ComponentDescriptor {
82
79
  * - Set `ShadowNode`'s size from state in
83
80
  * `ModalHostViewComponentDescriptor`.
84
81
  */
85
- virtual void adopt(facebook::react::ShadowNode::Unshared const &shadowNode) const;
82
+ virtual void adopt(facebook::react::ShadowNode &shadowNode) const;
86
83
 
87
84
  private:
88
85
  winrt::Microsoft::ReactNative::IReactViewComponentBuilder m_builder;
@@ -7,10 +7,12 @@
7
7
  #include <functional/functor.h>
8
8
  #include <inspectable.h>
9
9
  #include <react/renderer/componentregistry/ComponentDescriptorProvider.h>
10
- #include <react/renderer/components/view/TouchEventEmitter.h>
10
+ #include <react/renderer/components/view/ViewEventEmitter.h>
11
11
  #include <react/renderer/components/view/ViewProps.h>
12
12
  #include <react/renderer/core/LayoutMetrics.h>
13
13
 
14
+ #include <winrt/Microsoft.ReactNative.Composition.Input.h>
15
+
14
16
  namespace Microsoft::ReactNative {
15
17
 
16
18
  enum class RNComponentViewUpdateMask : std::uint_fast8_t {
@@ -27,6 +29,17 @@ DEFINE_ENUM_FLAG_OPERATORS(RNComponentViewUpdateMask);
27
29
 
28
30
  struct RootComponentView;
29
31
 
32
+ struct BringIntoViewOptions {
33
+ bool AnimationDesired{false};
34
+ // NaN will bring the element fully into view aligned to the nearest edge of the viewport
35
+ float HorizontalAlignmentRatio{std::numeric_limits<float>::quiet_NaN()};
36
+ float HorizontalOffset{0};
37
+ std::optional<facebook::react::Rect> TargetRect;
38
+ // NaN will bring the element fully into view aligned to the nearest edge of the viewport
39
+ float VerticalAlignmentRatio{std::numeric_limits<float>::quiet_NaN()};
40
+ float VerticalOffset{0};
41
+ };
42
+
30
43
  struct IComponentView {
31
44
  virtual std::vector<facebook::react::ComponentDescriptorProvider>
32
45
  supplementalComponentDescriptorProviders() noexcept = 0;
@@ -56,13 +69,38 @@ struct IComponentView {
56
69
  virtual RECT getClientRect() const noexcept = 0;
57
70
  virtual void onFocusLost() noexcept = 0;
58
71
  virtual void onFocusGained() noexcept = 0;
72
+ virtual void onPointerEntered(
73
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept = 0;
74
+ virtual void onPointerExited(
75
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept = 0;
76
+ virtual void onPointerPressed(
77
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept = 0;
78
+ virtual void onPointerReleased(
79
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept = 0;
80
+ virtual void onPointerMoved(
81
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept = 0;
82
+ virtual void onPointerWheelChanged(
83
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept = 0;
84
+ virtual void onKeyDown(
85
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
86
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept = 0;
87
+ virtual void onKeyUp(
88
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
89
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept = 0;
59
90
  virtual bool focusable() const noexcept = 0;
60
- virtual facebook::react::SharedTouchEventEmitter touchEventEmitterAtPoint(facebook::react::Point pt) noexcept = 0;
61
- virtual facebook::react::SharedTouchEventEmitter touchEventEmitter() noexcept = 0;
91
+ virtual facebook::react::SharedViewEventEmitter eventEmitterAtPoint(facebook::react::Point pt) noexcept = 0;
92
+ virtual facebook::react::SharedViewEventEmitter eventEmitter() noexcept = 0;
62
93
  virtual facebook::react::Tag tag() const noexcept = 0;
63
- virtual facebook::react::Tag hitTest(facebook::react::Point pt, facebook::react::Point &localPt) const noexcept = 0;
94
+ // By default, hitTests according the pointerEvents prop on the Component.
95
+ // If ignorePointerEvents = true, all Components are treated as valid targets
96
+ virtual facebook::react::Tag hitTest(
97
+ facebook::react::Point pt,
98
+ facebook::react::Point &localPt,
99
+ bool ignorePointerEvents = false) const noexcept = 0;
64
100
  virtual int64_t sendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept = 0;
65
101
  virtual winrt::IInspectable EnsureUiaProvider() noexcept = 0;
102
+ // Notify up the tree to bring the rect into view by scrolling as needed
103
+ virtual void StartBringIntoView(BringIntoViewOptions &&args) noexcept = 0;
66
104
  };
67
105
 
68
106
  // Run fn on all nodes of the component view tree starting from this one until fn returns true
@@ -13,23 +13,25 @@
13
13
  namespace Microsoft::ReactNative {
14
14
 
15
15
  AbiCompositionViewComponentView::AbiCompositionViewComponentView(
16
+ const winrt::Microsoft::ReactNative::IReactContext &reactContext,
16
17
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
17
18
  facebook::react::Tag tag,
18
19
  winrt::Microsoft::ReactNative::IReactViewComponentBuilder builder)
19
20
  : Super(compContext, tag), m_builder(builder) {
20
21
  static auto const defaultProps = std::make_shared<AbiViewProps const>();
21
22
  m_props = defaultProps;
22
- m_handle = Builder().CreateView(compContext);
23
+ m_handle = Builder().CreateView(reactContext, compContext);
23
24
  m_visual = Builder().CreateVisual(m_handle);
24
25
  OuterVisual().InsertAt(m_visual, 0);
25
26
  }
26
27
 
27
28
  std::shared_ptr<AbiCompositionViewComponentView> AbiCompositionViewComponentView::Create(
29
+ const winrt::Microsoft::ReactNative::IReactContext &reactContext,
28
30
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
29
31
  facebook::react::Tag tag,
30
32
  winrt::Microsoft::ReactNative::IReactViewComponentBuilder builder) noexcept {
31
33
  return std::shared_ptr<AbiCompositionViewComponentView>(
32
- new AbiCompositionViewComponentView(compContext, tag, builder));
34
+ new AbiCompositionViewComponentView(reactContext, compContext, tag, builder));
33
35
  }
34
36
 
35
37
  winrt::Microsoft::ReactNative::Composition::ReactCompositionViewComponentBuilder &
@@ -103,6 +105,56 @@ int64_t AbiCompositionViewComponentView::sendMessage(uint32_t msg, uint64_t wPar
103
105
  return Builder().SendMessage(m_handle, msg, wParam, lParam);
104
106
  }
105
107
 
108
+ void AbiCompositionViewComponentView::onKeyDown(
109
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
110
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept {
111
+ Builder().OnKeyDown(m_handle, source, args);
112
+ Super::onKeyDown(source, args);
113
+ }
114
+
115
+ void AbiCompositionViewComponentView::onKeyUp(
116
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
117
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept {
118
+ Builder().OnKeyUp(m_handle, source, args);
119
+ Super::onKeyUp(source, args);
120
+ }
121
+
122
+ void AbiCompositionViewComponentView::onPointerEntered(
123
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
124
+ Builder().OnPointerEntered(m_handle, args);
125
+ Super::onPointerEntered(args);
126
+ }
127
+
128
+ void AbiCompositionViewComponentView::onPointerExited(
129
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
130
+ Builder().OnPointerExited(m_handle, args);
131
+ Super::onPointerExited(args);
132
+ }
133
+
134
+ void AbiCompositionViewComponentView::onPointerPressed(
135
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
136
+ Builder().OnPointerPressed(m_handle, args);
137
+ Super::onPointerPressed(args);
138
+ }
139
+
140
+ void AbiCompositionViewComponentView::onPointerReleased(
141
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
142
+ Builder().OnPointerReleased(m_handle, args);
143
+ Super::onPointerReleased(args);
144
+ }
145
+
146
+ void AbiCompositionViewComponentView::onPointerMoved(
147
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
148
+ Builder().OnPointerMoved(m_handle, args);
149
+ Super::onPointerMoved(args);
150
+ }
151
+
152
+ void AbiCompositionViewComponentView::onPointerWheelChanged(
153
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
154
+ Builder().OnPointerWheelChanged(m_handle, args);
155
+ Super::onPointerWheelChanged(args);
156
+ }
157
+
106
158
  std::vector<facebook::react::ComponentDescriptorProvider>
107
159
  AbiCompositionViewComponentView::supplementalComponentDescriptorProviders() noexcept {
108
160
  return {};
@@ -119,10 +171,11 @@ winrt::Microsoft::ReactNative::Composition::IVisual AbiCompositionViewComponentV
119
171
 
120
172
  facebook::react::Tag AbiCompositionViewComponentView::hitTest(
121
173
  facebook::react::Point pt,
122
- facebook::react::Point &localPt) const noexcept {
174
+ facebook::react::Point &localPt,
175
+ bool ignorePointerEvents) const noexcept {
123
176
  facebook::react::Point ptLocal{pt.x - m_layoutMetrics.frame.origin.x, pt.y - m_layoutMetrics.frame.origin.y};
124
177
 
125
- if ((m_props->pointerEvents == facebook::react::PointerEventsMode::Auto ||
178
+ if ((ignorePointerEvents || m_props->pointerEvents == facebook::react::PointerEventsMode::Auto ||
126
179
  m_props->pointerEvents == facebook::react::PointerEventsMode::BoxOnly) &&
127
180
  ptLocal.x >= 0 && ptLocal.x <= m_layoutMetrics.frame.size.width && ptLocal.y >= 0 &&
128
181
  ptLocal.y <= m_layoutMetrics.frame.size.height) {
@@ -19,6 +19,7 @@ struct AbiCompositionViewComponentView : CompositionBaseComponentView {
19
19
  using Super = CompositionBaseComponentView;
20
20
 
21
21
  [[nodiscard]] static std::shared_ptr<AbiCompositionViewComponentView> Create(
22
+ const winrt::Microsoft::ReactNative::IReactContext &reactContext,
22
23
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
23
24
  facebook::react::Tag tag,
24
25
  winrt::Microsoft::ReactNative::IReactViewComponentBuilder builder) noexcept;
@@ -40,14 +41,34 @@ struct AbiCompositionViewComponentView : CompositionBaseComponentView {
40
41
  void prepareForRecycle() noexcept override;
41
42
  bool focusable() const noexcept override;
42
43
  int64_t sendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept override;
44
+ void onKeyDown(
45
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
46
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept override;
47
+ void onKeyUp(
48
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
49
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept override;
50
+ void onPointerEntered(
51
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept override;
52
+ void onPointerExited(
53
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept override;
54
+ void onPointerPressed(
55
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept override;
56
+ void onPointerReleased(
57
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept override;
58
+ void onPointerMoved(
59
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept override;
60
+ void onPointerWheelChanged(
61
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept override;
43
62
  std::vector<facebook::react::ComponentDescriptorProvider> supplementalComponentDescriptorProviders() noexcept
44
63
  override;
45
64
  facebook::react::Props::Shared props() noexcept override;
46
- facebook::react::Tag hitTest(facebook::react::Point pt, facebook::react::Point &localPt) const noexcept override;
65
+ facebook::react::Tag hitTest(facebook::react::Point pt, facebook::react::Point &localPt, bool ignorePointerEvents)
66
+ const noexcept override;
47
67
  winrt::Microsoft::ReactNative::Composition::IVisual Visual() const noexcept override;
48
68
 
49
69
  private:
50
70
  AbiCompositionViewComponentView(
71
+ const winrt::Microsoft::ReactNative::IReactContext &reactContext,
51
72
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
52
73
  facebook::react::Tag tag,
53
74
  winrt::Microsoft::ReactNative::IReactViewComponentBuilder builder);
@@ -0,0 +1,137 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #pragma once
5
+
6
+ #include "ActivityIndicatorComponentView.h"
7
+ #include "CompositionDynamicAutomationProvider.h"
8
+
9
+ #include <Windows.UI.Composition.h>
10
+ #include <Windows.h>
11
+ #include "CompositionContextHelper.h"
12
+
13
+ namespace Microsoft::ReactNative {
14
+
15
+ std::shared_ptr<ActivityIndicatorComponentView> ActivityIndicatorComponentView::Create(
16
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
17
+ facebook::react::Tag tag,
18
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext) noexcept {
19
+ return std::shared_ptr<ActivityIndicatorComponentView>(
20
+ new ActivityIndicatorComponentView(compContext, tag, reactContext));
21
+ }
22
+
23
+ ActivityIndicatorComponentView::ActivityIndicatorComponentView(
24
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
25
+ facebook::react::Tag tag,
26
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext)
27
+ : Super(compContext, tag), m_context(reactContext) {
28
+ m_props = std::make_shared<facebook::react::ActivityIndicatorViewProps const>();
29
+ }
30
+
31
+ void ActivityIndicatorComponentView::mountChildComponentView(
32
+ IComponentView &childComponentView,
33
+ uint32_t index) noexcept {
34
+ assert(false);
35
+ }
36
+
37
+ void ActivityIndicatorComponentView::unmountChildComponentView(
38
+ IComponentView &childComponentView,
39
+ uint32_t index) noexcept {
40
+ assert(false);
41
+ }
42
+
43
+ void ActivityIndicatorComponentView::handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept {
44
+ Super::handleCommand(commandName, arg);
45
+ }
46
+
47
+ void ActivityIndicatorComponentView::updateProps(
48
+ facebook::react::Props::Shared const &props,
49
+ facebook::react::Props::Shared const &oldProps) noexcept {
50
+ const auto oldViewProps = std::static_pointer_cast<const facebook::react::ActivityIndicatorViewProps>(m_props);
51
+ const auto newViewProps = std::static_pointer_cast<const facebook::react::ActivityIndicatorViewProps>(props);
52
+
53
+ ensureVisual();
54
+
55
+ // update color if needed
56
+ if (newViewProps->color && (!oldProps || newViewProps->color != oldViewProps->color)) {
57
+ m_ActivityIndicatorVisual.Color(newViewProps->color.AsWindowsColor());
58
+ }
59
+
60
+ if (newViewProps->animating != oldViewProps->animating) {
61
+ m_ActivityIndicatorVisual.IsVisible(newViewProps->animating);
62
+ }
63
+
64
+ updateBorderProps(*oldViewProps, *newViewProps);
65
+ m_props = std::static_pointer_cast<facebook::react::ViewProps const>(props);
66
+ }
67
+
68
+ void ActivityIndicatorComponentView::updateState(
69
+ facebook::react::State::Shared const &state,
70
+ facebook::react::State::Shared const &oldState) noexcept {}
71
+
72
+ void ActivityIndicatorComponentView::updateLayoutMetrics(
73
+ facebook::react::LayoutMetrics const &layoutMetrics,
74
+ facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept {
75
+ // Set Position & Size Properties
76
+ ensureVisual();
77
+
78
+ if ((layoutMetrics.displayType != m_layoutMetrics.displayType)) {
79
+ OuterVisual().IsVisible(layoutMetrics.displayType != facebook::react::DisplayType::None);
80
+ }
81
+
82
+ updateBorderLayoutMetrics(layoutMetrics, *m_props);
83
+ m_layoutMetrics = layoutMetrics;
84
+
85
+ UpdateCenterPropertySet();
86
+ m_visual.Size(
87
+ {layoutMetrics.frame.size.width * layoutMetrics.pointScaleFactor,
88
+ layoutMetrics.frame.size.height * layoutMetrics.pointScaleFactor});
89
+ }
90
+
91
+ void ActivityIndicatorComponentView::finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept {}
92
+
93
+ void ActivityIndicatorComponentView::prepareForRecycle() noexcept {}
94
+
95
+ facebook::react::Props::Shared ActivityIndicatorComponentView::props() noexcept {
96
+ return m_props;
97
+ }
98
+
99
+ void ActivityIndicatorComponentView::ensureVisual() noexcept {
100
+ if (!m_visual) {
101
+ m_visual = m_compContext.CreateSpriteVisual();
102
+ m_ActivityIndicatorVisual = m_compContext.CreateActivityVisual(); // creates COM control
103
+
104
+ OuterVisual().InsertAt(m_ActivityIndicatorVisual, 0);
105
+ OuterVisual().InsertAt(m_visual, 0);
106
+ }
107
+ }
108
+
109
+ facebook::react::Tag ActivityIndicatorComponentView::hitTest(
110
+ facebook::react::Point pt,
111
+ facebook::react::Point &localPt,
112
+ bool ignorePointerEvents) const noexcept {
113
+ facebook::react::Point ptLocal{pt.x - m_layoutMetrics.frame.origin.x, pt.y - m_layoutMetrics.frame.origin.y};
114
+
115
+ if ((ignorePointerEvents || m_props->pointerEvents == facebook::react::PointerEventsMode::Auto ||
116
+ m_props->pointerEvents == facebook::react::PointerEventsMode::BoxOnly) &&
117
+ ptLocal.x >= 0 && ptLocal.x <= m_layoutMetrics.frame.size.width && ptLocal.y >= 0 &&
118
+ ptLocal.y <= m_layoutMetrics.frame.size.height) {
119
+ localPt = ptLocal;
120
+ return tag();
121
+ }
122
+ return -1;
123
+ }
124
+
125
+ winrt::Microsoft::ReactNative::Composition::IVisual ActivityIndicatorComponentView::Visual() const noexcept {
126
+ return m_visual;
127
+ }
128
+
129
+ bool ActivityIndicatorComponentView::focusable() const noexcept {
130
+ return false;
131
+ }
132
+
133
+ std::string ActivityIndicatorComponentView::DefaultControlType() const noexcept {
134
+ return "progressbar";
135
+ }
136
+
137
+ } // namespace Microsoft::ReactNative
@@ -0,0 +1,59 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #pragma once
5
+
6
+ #include <Fabric/ComponentView.h>
7
+ #include <Microsoft.ReactNative.Cxx/ReactContext.h>
8
+
9
+ #include "CompositionViewComponentView.h"
10
+
11
+ #include <react/components/rnwcore/ShadowNodes.h>
12
+
13
+ namespace Microsoft::ReactNative {
14
+
15
+ struct ActivityIndicatorComponentView;
16
+
17
+ struct ActivityIndicatorComponentView : CompositionBaseComponentView {
18
+ using Super = CompositionBaseComponentView;
19
+
20
+ [[nodiscard]] static std::shared_ptr<ActivityIndicatorComponentView> Create(
21
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
22
+ facebook::react::Tag tag,
23
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext) noexcept;
24
+
25
+ void mountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept override;
26
+ void unmountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept override;
27
+ void handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept override;
28
+ void updateProps(facebook::react::Props::Shared const &props, facebook::react::Props::Shared const &oldProps) noexcept
29
+ override;
30
+ void updateState(facebook::react::State::Shared const &state, facebook::react::State::Shared const &oldState) noexcept
31
+ override;
32
+ void updateLayoutMetrics(
33
+ facebook::react::LayoutMetrics const &layoutMetrics,
34
+ facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept override;
35
+ void finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept override;
36
+ void prepareForRecycle() noexcept override;
37
+ facebook::react::Props::Shared props() noexcept override;
38
+ bool focusable() const noexcept override;
39
+
40
+ facebook::react::Tag hitTest(facebook::react::Point pt, facebook::react::Point &localPt, bool ignorePointerEvents)
41
+ const noexcept override;
42
+ winrt::Microsoft::ReactNative::Composition::IVisual Visual() const noexcept override;
43
+ virtual std::string DefaultControlType() const noexcept;
44
+
45
+ private:
46
+ ActivityIndicatorComponentView(
47
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
48
+ facebook::react::Tag tag,
49
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext);
50
+
51
+ void ensureVisual() noexcept;
52
+
53
+ winrt::Microsoft::ReactNative::Composition::ISpriteVisual m_visual{nullptr};
54
+ winrt::Microsoft::ReactNative::Composition::IActivityVisual m_ActivityIndicatorVisual{nullptr};
55
+ winrt::Microsoft::ReactNative::ReactContext m_context;
56
+ facebook::react::SharedViewProps m_props;
57
+ };
58
+
59
+ } // namespace Microsoft::ReactNative
@@ -20,6 +20,7 @@
20
20
  #include <react/renderer/components/view/ViewShadowNode.h>
21
21
 
22
22
  #include <Fabric/Composition/AbiCompositionViewComponentView.h>
23
+ #include <Fabric/Composition/ActivityIndicatorComponentView.h>
23
24
  #include <Fabric/Composition/CompositionHelpers.h>
24
25
  #include <Fabric/Composition/CompositionViewComponentView.h>
25
26
  #include <Fabric/Composition/ImageComponentView.h>
@@ -57,8 +58,10 @@ ComponentViewDescriptor const &ComponentViewRegistry::dequeueComponentViewWithCo
57
58
  view = WindowsTextInputComponentView::Create(compContext, tag, m_context);
58
59
  } else if (componentHandle == facebook::react::SwitchShadowNode::Handle()) {
59
60
  view = SwitchComponentView::Create(compContext, tag, m_context);
61
+ } else if (componentHandle == facebook::react::ActivityIndicatorViewShadowNode::Handle()) {
62
+ view = ActivityIndicatorComponentView::Create(compContext, tag, m_context);
60
63
  } else if (componentHandle == facebook::react::RootShadowNode::Handle()) {
61
- view = RootComponentView::Create(compContext, tag);
64
+ view = RootComponentView::Create(compContext, tag, m_context);
62
65
  } else if (
63
66
  componentHandle == facebook::react::RawTextShadowNode::Handle() ||
64
67
  componentHandle == facebook::react::TextShadowNode::Handle()) {
@@ -70,7 +73,10 @@ ComponentViewDescriptor const &ComponentViewRegistry::dequeueComponentViewWithCo
70
73
  auto descriptor =
71
74
  WindowsComponentDescriptorRegistry::FromProperties(m_context.Properties())->GetDescriptor(componentHandle);
72
75
  view = AbiCompositionViewComponentView::Create(
73
- compContext, tag, descriptor.as<winrt::Microsoft::ReactNative::IReactViewComponentBuilder>());
76
+ m_context.Handle(),
77
+ compContext,
78
+ tag,
79
+ descriptor.as<winrt::Microsoft::ReactNative::IReactViewComponentBuilder>());
74
80
  }
75
81
 
76
82
  auto it = m_registry.insert({tag, ComponentViewDescriptor{view}});