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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (620) hide show
  1. package/.flowconfig +13 -3
  2. package/Directory.Build.props +19 -19
  3. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +1 -1
  4. package/Libraries/Alert/Alert.d.ts +4 -4
  5. package/Libraries/Alert/Alert.windows.js +2 -0
  6. package/Libraries/Alert/NativeDialogManagerWindows.js +1 -0
  7. package/Libraries/Animated/Animated.d.ts +17 -6
  8. package/Libraries/Animated/NativeAnimatedHelper.js +18 -6
  9. package/Libraries/Animated/bezier.js +1 -1
  10. package/Libraries/Animated/components/AnimatedFlatList.js +8 -3
  11. package/Libraries/Animated/components/AnimatedScrollView.js +4 -1
  12. package/Libraries/Animated/components/AnimatedSectionList.js +12 -3
  13. package/Libraries/Animated/createAnimatedComponent.js +26 -239
  14. package/Libraries/Animated/nodes/AnimatedColor.js +47 -80
  15. package/Libraries/Animated/nodes/AnimatedInterpolation.js +167 -121
  16. package/Libraries/Animated/nodes/AnimatedNode.js +3 -5
  17. package/Libraries/Animated/nodes/AnimatedProps.js +7 -6
  18. package/Libraries/Animated/nodes/AnimatedStyle.js +42 -8
  19. package/Libraries/Animated/nodes/AnimatedTransform.js +1 -1
  20. package/Libraries/Animated/nodes/AnimatedValue.js +8 -12
  21. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  22. package/Libraries/Animated/useAnimatedProps.js +7 -10
  23. package/Libraries/AppTheme/AppTheme.js +1 -0
  24. package/Libraries/AppTheme/AppThemeTypes.d.ts +1 -1
  25. package/Libraries/BatchedBridge/MessageQueue.js +2 -1
  26. package/Libraries/BatchedBridge/NativeModules.d.ts +1 -1
  27. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  28. package/Libraries/Blob/Blob.js +4 -0
  29. package/Libraries/Blob/FileReader.js +30 -2
  30. package/Libraries/Blob/URL.js +3 -1
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +2 -2
  32. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -3
  33. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +2 -3
  34. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +6 -4
  35. package/Libraries/Components/Button.js +3 -2
  36. package/Libraries/Components/Button.windows.js +3 -2
  37. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  38. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
  39. package/Libraries/Components/Flyout/Flyout.d.ts +55 -19
  40. package/Libraries/Components/Flyout/Flyout.js +110 -51
  41. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +45 -0
  42. package/Libraries/Components/Glyph/Glyph.d.ts +29 -12
  43. package/Libraries/Components/Glyph/Glyph.js +43 -30
  44. package/Libraries/Components/Glyph/GlyphNativeComponent.js +31 -0
  45. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -0
  46. package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +2 -2
  47. package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
  48. package/Libraries/Components/Popup/Popup.d.ts +41 -19
  49. package/Libraries/Components/Popup/Popup.js +86 -52
  50. package/Libraries/Components/Popup/PopupNativeComponent.js +49 -0
  51. package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
  52. package/Libraries/Components/Pressable/Pressable.js +1 -1
  53. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -0
  54. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -0
  55. package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -2
  56. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +1 -2
  57. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +12 -6
  58. package/Libraries/Components/ScrollView/ScrollView.d.ts +2 -2
  59. package/Libraries/Components/ScrollView/ScrollView.js +149 -91
  60. package/Libraries/Components/ScrollView/ScrollView.windows.js +1939 -0
  61. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -6
  62. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +175 -0
  63. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -7
  64. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -1
  65. package/Libraries/Components/StatusBar/StatusBar.js +3 -0
  66. package/Libraries/Components/Switch/Switch.js +3 -1
  67. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +21 -11
  68. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +1 -1
  69. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +11 -5
  70. package/Libraries/Components/TextInput/TextInput.d.ts +15 -5
  71. package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
  72. package/Libraries/Components/TextInput/TextInput.js +130 -103
  73. package/Libraries/Components/TextInput/TextInput.windows.js +152 -115
  74. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
  75. package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
  76. package/Libraries/Components/Touchable/Touchable.flow.js +30 -4
  77. package/Libraries/Components/Touchable/Touchable.js +6 -3
  78. package/Libraries/Components/Touchable/Touchable.windows.js +6 -3
  79. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  80. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +2 -1
  81. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
  82. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -0
  83. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -0
  84. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +1 -1
  85. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
  86. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -2
  87. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +179 -0
  88. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
  89. package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
  90. package/Libraries/Components/View/View.js +35 -16
  91. package/Libraries/Components/View/View.windows.js +40 -16
  92. package/Libraries/Components/View/ViewAccessibility.d.ts +6 -6
  93. package/Libraries/Components/View/ViewAccessibility.js +10 -1
  94. package/Libraries/Components/View/ViewAccessibility.windows.js +9 -0
  95. package/Libraries/Components/View/ViewNativeComponent.js +32 -8
  96. package/Libraries/Components/View/ViewPropTypes.d.ts +1 -1
  97. package/Libraries/Components/View/ViewPropTypes.js +1 -1
  98. package/Libraries/Components/View/ViewPropTypes.windows.js +3 -1
  99. package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
  100. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
  101. package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
  102. package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
  103. package/Libraries/Core/ExceptionsManager.js +2 -2
  104. package/Libraries/Core/InitializeCore.js +2 -1
  105. package/Libraries/Core/ReactNativeVersion.js +3 -3
  106. package/Libraries/Core/ReactNativeVersionCheck.js +4 -8
  107. package/Libraries/Core/Timers/JSTimers.js +1 -1
  108. package/Libraries/Core/Timers/immediateShim.js +1 -0
  109. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  110. package/Libraries/Core/setUpAlert.js +1 -1
  111. package/Libraries/Core/setUpDOM.js +18 -0
  112. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  113. package/Libraries/Core/setUpGlobals.js +5 -2
  114. package/Libraries/Core/setUpNavigator.js +6 -5
  115. package/Libraries/Core/setUpPerformance.js +23 -13
  116. package/Libraries/Core/setUpReactDevTools.js +2 -0
  117. package/Libraries/Core/setUpSegmentFetcher.js +0 -41
  118. package/Libraries/Core/setUpTimers.js +2 -2
  119. package/Libraries/DOM/Geometry/DOMRect.js +82 -0
  120. package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
  121. package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
  122. package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
  123. package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
  124. package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
  125. package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
  126. package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
  127. package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
  128. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
  129. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
  130. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
  131. package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +35 -0
  132. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +24 -0
  133. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
  134. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
  135. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
  136. package/Libraries/Events/EventPolyfill.js +1 -1
  137. package/Libraries/Image/AssetRegistry.js +1 -1
  138. package/Libraries/Image/AssetSourceResolver.js +3 -3
  139. package/Libraries/Image/Image.android.js +4 -1
  140. package/Libraries/Image/Image.d.ts +63 -2
  141. package/Libraries/Image/Image.ios.js +3 -0
  142. package/Libraries/Image/Image.windows.js +3 -0
  143. package/Libraries/Image/ImageBackground.js +1 -0
  144. package/Libraries/Image/ImageProps.js +1 -1
  145. package/Libraries/Image/ImageViewNativeComponent.js +4 -4
  146. package/Libraries/Image/RelativeImageStub.js +1 -1
  147. package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
  148. package/Libraries/Image/resolveAssetSource.js +1 -1
  149. package/Libraries/Inspector/DevtoolsOverlay.js +26 -19
  150. package/Libraries/Inspector/ElementBox.js +4 -1
  151. package/Libraries/Inspector/Inspector.js +5 -6
  152. package/Libraries/Inspector/InspectorOverlay.js +3 -3
  153. package/Libraries/Inspector/NetworkOverlay.js +1 -1
  154. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
  155. package/Libraries/Interaction/PanResponder.js +5 -6
  156. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
  157. package/Libraries/Linking/Linking.js +1 -4
  158. package/Libraries/Lists/FillRateHelper.js +4 -238
  159. package/Libraries/Lists/FlatList.d.ts +15 -22
  160. package/Libraries/Lists/FlatList.js +9 -6
  161. package/Libraries/Lists/SectionList.d.ts +10 -6
  162. package/Libraries/Lists/SectionList.js +5 -3
  163. package/Libraries/Lists/SectionListModern.js +3 -3
  164. package/Libraries/Lists/ViewabilityHelper.js +8 -344
  165. package/Libraries/Lists/VirtualizeUtils.js +4 -244
  166. package/Libraries/Lists/VirtualizedList.js +10 -1867
  167. package/Libraries/Lists/VirtualizedListContext.js +6 -104
  168. package/Libraries/Lists/VirtualizedSectionList.js +9 -602
  169. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
  170. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  171. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  172. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  173. package/Libraries/LogBox/LogBox.js +1 -1
  174. package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
  175. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +167 -0
  176. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +172 -0
  177. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +193 -0
  178. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
  179. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
  180. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +118 -0
  181. package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
  182. package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
  183. package/Libraries/Modal/Modal.js +2 -2
  184. package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
  185. package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
  186. package/Libraries/NativeComponent/BaseViewConfig.windows.js +77 -19
  187. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
  188. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  189. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
  190. package/Libraries/Network/RCTNetworking.android.js +2 -2
  191. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  192. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  193. package/Libraries/Network/XMLHttpRequest.js +1 -1
  194. package/Libraries/Pressability/Pressability.js +10 -4
  195. package/Libraries/Pressability/Pressability.windows.js +11 -4
  196. package/Libraries/ReactNative/AppContainer.js +7 -1
  197. package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
  198. package/Libraries/ReactNative/AppRegistry.js +10 -13
  199. package/Libraries/ReactNative/FabricUIManager.js +24 -8
  200. package/Libraries/ReactNative/NativeUIManager.js +5 -5
  201. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
  202. package/Libraries/ReactNative/UIManager.js +168 -1
  203. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
  204. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  205. package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
  206. package/Libraries/ReactNative/requireNativeComponent.js +1 -1
  207. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
  208. package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
  209. package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
  210. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
  211. package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
  212. package/Libraries/Renderer/shims/ReactNativeTypes.js +6 -6
  213. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
  214. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  215. package/Libraries/Share/Share.js +1 -1
  216. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  217. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  218. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
  219. package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
  220. package/Libraries/StyleSheet/flattenStyle.js +2 -0
  221. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  222. package/Libraries/StyleSheet/processColor.js +1 -1
  223. package/Libraries/Text/Text.d.ts +12 -2
  224. package/Libraries/Text/Text.js +50 -41
  225. package/Libraries/Text/Text.windows.js +48 -38
  226. package/Libraries/Text/TextProps.js +3 -4
  227. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
  228. package/Libraries/Types/CodegenTypes.js +1 -0
  229. package/Libraries/UTFSequence.js +3 -1
  230. package/Libraries/Utilities/Appearance.d.ts +10 -0
  231. package/Libraries/Utilities/Appearance.js +13 -0
  232. package/Libraries/Utilities/Dimensions.js +1 -1
  233. package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
  234. package/Libraries/Utilities/HMRClient.js +16 -10
  235. package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
  236. package/Libraries/Utilities/IPerformanceLogger.js +49 -0
  237. package/Libraries/Utilities/LoadingView.android.js +28 -11
  238. package/Libraries/Utilities/NativeAppearance.js +1 -0
  239. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
  240. package/Libraries/Utilities/PixelRatio.js +2 -2
  241. package/Libraries/Utilities/Platform.windows.js +1 -1
  242. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  243. package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
  244. package/Libraries/Utilities/codegenNativeCommands.js +2 -0
  245. package/Libraries/Utilities/createPerformanceLogger.js +55 -43
  246. package/Libraries/Utilities/stringifySafe.js +2 -7
  247. package/Libraries/Utilities/useColorScheme.windows.js +26 -0
  248. package/Libraries/Utilities/useWindowDimensions.js +3 -3
  249. package/Libraries/WebPerformance/EventCounts.js +78 -0
  250. package/Libraries/WebPerformance/MemoryInfo.js +54 -0
  251. package/Libraries/WebPerformance/NativePerformance.js +38 -0
  252. package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
  253. package/Libraries/WebPerformance/Performance.js +312 -0
  254. package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
  255. package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
  256. package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
  257. package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
  258. package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
  259. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
  260. package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
  261. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  262. package/Libraries/platform-types.d.ts +3 -5
  263. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  264. package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
  265. package/Libraries/vendor/emitter/EventEmitter.js +9 -1
  266. package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +0 -15
  267. package/Microsoft.ReactNative/CompositionHwndHost.idl +6 -0
  268. package/Microsoft.ReactNative/CompositionRootView.idl +35 -0
  269. package/Microsoft.ReactNative/CompositionSwitcher.idl +19 -0
  270. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +174 -0
  271. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +91 -0
  272. package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +48 -0
  273. package/Microsoft.ReactNative/Fabric/AbiViewProps.h +48 -0
  274. package/Microsoft.ReactNative/Fabric/ComponentView.h +19 -2
  275. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +144 -0
  276. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +63 -0
  277. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +27 -6
  278. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +97 -0
  279. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +227 -0
  280. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +38 -0
  281. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +112 -95
  282. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +12 -8
  283. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +0 -2
  284. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +27 -6
  285. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +8 -0
  286. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +147 -0
  287. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +46 -0
  288. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +31 -4
  289. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +37 -0
  290. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +255 -50
  291. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +34 -15
  292. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +127 -47
  293. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +11 -7
  294. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +109 -39
  295. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +10 -7
  296. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +106 -0
  297. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +63 -0
  298. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +116 -0
  299. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +43 -0
  300. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +53 -38
  301. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +12 -8
  302. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +262 -0
  303. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +62 -0
  304. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +35 -30
  305. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +11 -9
  306. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +9 -0
  307. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -0
  308. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +2 -1
  309. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +72 -0
  310. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +16 -0
  311. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +168 -0
  312. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +49 -0
  313. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +19 -53
  314. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -3
  315. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +8 -9
  316. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +100 -0
  317. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.h +43 -0
  318. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +61 -0
  319. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +34 -0
  320. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +42 -0
  321. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +10 -0
  322. package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +248 -0
  323. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +5 -0
  324. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +135 -4
  325. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +18 -240
  326. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -17
  327. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +13 -2
  328. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +87 -0
  329. package/Microsoft.ReactNative/IReactContext.cpp +4 -0
  330. package/Microsoft.ReactNative/IReactContext.h +1 -0
  331. package/Microsoft.ReactNative/IReactContext.idl +5 -0
  332. package/Microsoft.ReactNative/IReactDispatcher.cpp +4 -0
  333. package/Microsoft.ReactNative/IReactDispatcher.h +1 -0
  334. package/Microsoft.ReactNative/IReactPackageBuilderFabric.idl +23 -0
  335. package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +23 -0
  336. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -118
  337. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -7
  338. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +2 -2
  339. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +1 -1
  340. package/Microsoft.ReactNative/Modules/AlertModule.cpp +100 -4
  341. package/Microsoft.ReactNative/Modules/AlertModule.h +4 -0
  342. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.cpp +9 -0
  343. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.h +2 -0
  344. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +7 -5
  345. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +17 -3
  346. package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.h +1 -0
  347. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +4 -0
  348. package/Microsoft.ReactNative/Modules/AppearanceModule.h +3 -0
  349. package/Microsoft.ReactNative/Modules/ClipboardModule.cpp +4 -4
  350. package/Microsoft.ReactNative/Modules/ClipboardModule.h +2 -2
  351. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +27 -7
  352. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.h +9 -5
  353. package/Microsoft.ReactNative/Modules/LinkingManagerModule.cpp +10 -12
  354. package/Microsoft.ReactNative/Modules/LinkingManagerModule.h +4 -4
  355. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -1
  356. package/Microsoft.ReactNative/QuirkSettings.cpp +17 -0
  357. package/Microsoft.ReactNative/QuirkSettings.h +5 -0
  358. package/Microsoft.ReactNative/QuirkSettings.idl +6 -0
  359. package/Microsoft.ReactNative/ReactApplication.cpp +8 -0
  360. package/Microsoft.ReactNative/ReactApplication.h +3 -0
  361. package/Microsoft.ReactNative/ReactApplication.idl +3 -0
  362. package/Microsoft.ReactNative/ReactCoreInjection.cpp +29 -0
  363. package/Microsoft.ReactNative/ReactCoreInjection.h +6 -0
  364. package/Microsoft.ReactNative/ReactCoreInjection.idl +13 -0
  365. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +7 -0
  366. package/Microsoft.ReactNative/ReactHost/MsoReactContext.h +1 -0
  367. package/Microsoft.ReactNative/ReactHost/React.h +2 -0
  368. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +57 -16
  369. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -0
  370. package/Microsoft.ReactNative/ReactInstanceSettings.h +12 -0
  371. package/Microsoft.ReactNative/ReactInstanceSettings.idl +6 -0
  372. package/Microsoft.ReactNative/ReactNativeHost.cpp +17 -0
  373. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +18 -0
  374. package/Microsoft.ReactNative/ReactPackageBuilder.h +24 -1
  375. package/Microsoft.ReactNative/ReactRootView.cpp +2 -2
  376. package/Microsoft.ReactNative/RedBox.cpp +2 -1
  377. package/Microsoft.ReactNative/Utils/Helpers.cpp +0 -32
  378. package/Microsoft.ReactNative/Utils/Helpers.h +0 -8
  379. package/Microsoft.ReactNative/Utils/ImageUtils.cpp +69 -6
  380. package/Microsoft.ReactNative/Utils/ImageUtils.h +3 -1
  381. package/Microsoft.ReactNative/Utils/KeyboardUtils.cpp +416 -0
  382. package/Microsoft.ReactNative/Utils/KeyboardUtils.h +15 -0
  383. package/Microsoft.ReactNative/Utils/TransformableText.h +1 -0
  384. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -9
  385. package/Microsoft.ReactNative/Utils/ValueUtils.h +0 -2
  386. package/Microsoft.ReactNative/ViewProps.idl +30 -0
  387. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +6 -2
  388. package/Microsoft.ReactNative/Views/DevMenu.cpp +369 -230
  389. package/Microsoft.ReactNative/Views/DevMenu.h +3 -15
  390. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +6 -3
  391. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +11 -3
  392. package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +5 -1
  393. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +29 -22
  394. package/Microsoft.ReactNative/Views/Image/ReactImage.h +2 -2
  395. package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +10 -405
  396. package/Microsoft.ReactNative/Views/KeyboardEventHandler.h +0 -3
  397. package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -0
  398. package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +2 -2
  399. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +7 -0
  400. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +3 -0
  401. package/Microsoft.ReactNative/Views/Text/TextHitTestUtils.cpp +6 -1
  402. package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +1 -0
  403. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +38 -2
  404. package/Microsoft.ReactNative/Views/TextViewManager.cpp +3 -0
  405. package/Microsoft.ReactNative/Views/TouchEventHandler.h +0 -4
  406. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +0 -8
  407. package/Microsoft.ReactNative/Views/ViewPanel.cpp +1 -1
  408. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +12 -3
  409. package/Microsoft.ReactNative/XamlHelper.cpp +36 -0
  410. package/Microsoft.ReactNative/XamlHelper.h +27 -0
  411. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +4 -4
  412. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +4 -4
  413. package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
  414. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +10 -8
  415. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +3 -3
  416. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +4 -1
  417. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +3 -0
  418. package/Microsoft.ReactNative.Cxx/NativeModules.h +16 -1
  419. package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +2 -0
  420. package/Microsoft.ReactNative.Managed/packages.lock.json +5 -5
  421. package/PropertySheets/External/Microsoft.ReactNative.Cpp.ProjectReferences.props +3 -0
  422. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  423. package/PropertySheets/JSEngine.props +1 -2
  424. package/PropertySheets/Warnings.props +1 -1
  425. package/ReactCommon/ReactCommon.vcxproj +2 -4
  426. package/ReactCommon/ReactCommon.vcxproj.filters +3 -0
  427. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +1 -1
  428. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.cpp +60 -0
  429. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.h +60 -0
  430. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +116 -0
  431. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +63 -0
  432. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -2
  433. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +237 -0
  434. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +59 -0
  435. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +159 -0
  436. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +94 -0
  437. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +465 -0
  438. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +116 -0
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +98 -0
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +362 -0
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +326 -0
  442. package/ReactCommon/Yoga.cpp +60 -127
  443. package/Scripts/OfficeReact.Win32.nuspec +1 -0
  444. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +1 -0
  445. package/Scripts/rnw-dependencies.ps1 +14 -6
  446. package/Shared/Composition/CompositionSwitcher.interop.h +1 -0
  447. package/Shared/DevServerHelper.h +11 -2
  448. package/Shared/DevSettings.h +1 -0
  449. package/Shared/DevSupportManager.cpp +11 -1
  450. package/Shared/DevSupportManager.h +1 -0
  451. package/Shared/HermesRuntimeHolder.cpp +53 -30
  452. package/Shared/HermesRuntimeHolder.h +26 -11
  453. package/Shared/HermesSamplingProfiler.cpp +61 -8
  454. package/Shared/HermesSamplingProfiler.h +6 -3
  455. package/Shared/HermesShim.cpp +86 -82
  456. package/Shared/HermesShim.h +28 -8
  457. package/Shared/JSI/ChakraRuntime.cpp +7 -4
  458. package/Shared/JSI/ChakraRuntime.h +4 -4
  459. package/Shared/JSI/NapiJsiV8RuntimeHolder.h +2 -0
  460. package/Shared/JSI/RuntimeHolder.h +2 -2
  461. package/Shared/Logging.cpp +1 -1
  462. package/Shared/Modules/BlobModule.cpp +3 -4
  463. package/Shared/Modules/BlobModule.h +0 -4
  464. package/Shared/Networking/OriginPolicyHttpFilter.cpp +13 -17
  465. package/Shared/Networking/OriginPolicyHttpFilter.h +11 -12
  466. package/Shared/Networking/WinRTWebSocketResource.cpp +59 -45
  467. package/Shared/OInstance.cpp +9 -2
  468. package/Shared/Shared.vcxitems +265 -58
  469. package/Shared/Shared.vcxitems.filters +312 -42
  470. package/Shared/V8JSIRuntimeHolder.cpp +1 -0
  471. package/Shared/V8JSIRuntimeHolder.h +7 -2
  472. package/codegen/NativeAppearanceSpec.g.h +9 -3
  473. package/codegen/NativeClipboardSpec.g.h +3 -3
  474. package/codegen/NativeDevSplitBundleLoaderSpec.g.h +3 -3
  475. package/codegen/NativeDevToolsSettingsManagerSpec.g.h +51 -0
  476. package/codegen/NativeDialogManagerWindowsSpec.g.h +2 -0
  477. package/codegen/NativeFileReaderModuleSpec.g.h +6 -6
  478. package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +3 -3
  479. package/codegen/NativeImageLoaderAndroidSpec.g.h +25 -9
  480. package/codegen/NativeImageLoaderIOSSpec.g.h +20 -12
  481. package/codegen/NativeIntentAndroidSpec.g.h +15 -15
  482. package/codegen/NativeLinkingManagerSpec.g.h +12 -12
  483. package/codegen/NativePerformanceObserverSpec.g.h +48 -10
  484. package/codegen/NativePerformanceSpec.g.h +63 -0
  485. package/codegen/NativePermissionsAndroidSpec.g.h +9 -9
  486. package/codegen/NativePlatformConstantsWinSpec.g.h +1 -1
  487. package/codegen/NativePushNotificationManagerIOSSpec.g.h +6 -6
  488. package/codegen/NativeSampleTurboModuleSpec.g.h +25 -19
  489. package/codegen/NativeShareModuleSpec.g.h +9 -3
  490. package/codegen/NativeUIManagerSpec.g.h +12 -12
  491. package/codegen/react/components/rnwcore/ComponentDescriptors.h +1 -2
  492. package/codegen/react/components/rnwcore/EventEmitters.cpp +21 -29
  493. package/codegen/react/components/rnwcore/EventEmitters.h +30 -30
  494. package/codegen/react/components/rnwcore/Props.cpp +47 -48
  495. package/codegen/react/components/rnwcore/Props.h +59 -166
  496. package/codegen/react/components/rnwcore/ShadowNodes.cpp +1 -2
  497. package/codegen/react/components/rnwcore/ShadowNodes.h +11 -22
  498. package/codegen/react/components/rnwcore/States.h +15 -30
  499. package/codegen/rnwcoreJSI-generated.cpp +87 -17
  500. package/codegen/rnwcoreJSI.h +1080 -376
  501. package/generate.js +6 -1
  502. package/include/Include.vcxitems +0 -1
  503. package/include/Include.vcxitems.filters +0 -3
  504. package/index.js +56 -42
  505. package/index.windows.js +56 -42
  506. package/interface.js +1 -1
  507. package/jest/local-setup.js +33 -0
  508. package/jest/mockComponent.js +4 -2
  509. package/jest/mockNativeComponent.js +1 -1
  510. package/jest/mockScrollView.js +2 -1
  511. package/jest/react-native-env.js +1 -3
  512. package/jest/setup.js +11 -8
  513. package/just-task.js +12 -5
  514. package/package.json +34 -31
  515. package/rn-get-polyfills.js +1 -1
  516. package/template/metro.config.js +2 -0
  517. package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
  518. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
  519. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
  520. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
  521. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
  522. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
  523. package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
  524. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
  525. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
  526. package/Libraries/Components/DatePicker/DatePickerIOS.windows.js +0 -47
  527. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
  528. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
  529. package/Libraries/Components/Flyout/Flyout.js.map +0 -1
  530. package/Libraries/Components/Flyout/FlyoutProps.d.ts +0 -25
  531. package/Libraries/Components/Flyout/FlyoutProps.js +0 -3
  532. package/Libraries/Components/Flyout/FlyoutProps.js.map +0 -1
  533. package/Libraries/Components/Glyph/Glyph.js.map +0 -1
  534. package/Libraries/Components/Glyph/GlyphProps.d.ts +0 -16
  535. package/Libraries/Components/Glyph/GlyphProps.js +0 -8
  536. package/Libraries/Components/Glyph/GlyphProps.js.map +0 -1
  537. package/Libraries/Components/Popup/Popup.js.map +0 -1
  538. package/Libraries/Components/Popup/PopupProps.d.ts +0 -27
  539. package/Libraries/Components/Popup/PopupProps.js +0 -8
  540. package/Libraries/Components/Popup/PopupProps.js.map +0 -1
  541. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
  542. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
  543. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
  544. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.windows.js +0 -45
  545. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
  546. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
  547. package/Libraries/Components/Slider/Slider.d.ts +0 -132
  548. package/Libraries/Components/Slider/Slider.js +0 -282
  549. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
  550. package/Libraries/Interaction/Batchinator.js +0 -76
  551. package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
  552. package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
  553. package/Libraries/Interaction/PanResponder.flow.js +0 -257
  554. package/Libraries/Lists/CellRenderMask.js +0 -155
  555. package/Libraries/Lists/ChildListCollection.js +0 -72
  556. package/Libraries/Lists/StateSafePureComponent.js +0 -85
  557. package/Libraries/Lists/VirtualizedList.d.ts +0 -347
  558. package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
  559. package/Libraries/Lists/VirtualizedListProps.js +0 -279
  560. package/Libraries/Performance/PureComponentDebug.js +0 -74
  561. package/Libraries/Reliability/UserFlow.js +0 -158
  562. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
  563. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
  564. package/Libraries/Utilities/MatrixMath.js +0 -748
  565. package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
  566. package/Libraries/Utilities/clamp.js +0 -23
  567. package/Libraries/Utilities/deprecatedPropType.js +0 -36
  568. package/Libraries/Utilities/groupByEveryN.js +0 -51
  569. package/Libraries/Utilities/mergeIntoFast.js +0 -26
  570. package/Libraries/Utilities/setAndForwardRef.js +0 -71
  571. package/Libraries/Utilities/truncate.js +0 -51
  572. package/Microsoft.ReactNative/Fabric/platform/react/components/image/conversions.h +0 -5
  573. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ConcreteViewShadowNode.h +0 -5
  574. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewEventEmitter.h +0 -5
  575. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewProps.h +0 -5
  576. package/Microsoft.ReactNative/Fabric/platform/react/core/ConcreteComponentDescriptor.h +0 -5
  577. package/Microsoft.ReactNative/Fabric/platform/react/core/PropsParserContext.h +0 -5
  578. package/Microsoft.ReactNative/Fabric/platform/react/core/propsConversions.h +0 -5
  579. package/Microsoft.ReactNative/Fabric/platform/react/graphics/Color.h +0 -5
  580. package/Microsoft.ReactNative/Fabric/platform/react/imagemanager/primitives.h +0 -5
  581. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputEventEmitter.h +0 -5
  582. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputProps.h +0 -5
  583. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputShadowNode.h +0 -5
  584. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputState.h +0 -5
  585. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/conversions.h +0 -5
  586. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/primitives.h +0 -5
  587. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/propsConversions.h +0 -5
  588. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +0 -5
  589. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +0 -5
  590. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/States.h +0 -5
  591. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Float.h +0 -5
  592. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +0 -135
  593. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ConcreteComponentDescriptor.h +0 -217
  594. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/graphics/RectangleEdges.h +0 -100
  595. package/Shared/AsyncStorage/AsyncStorageManager.cpp +0 -149
  596. package/Shared/AsyncStorage/AsyncStorageManager.h +0 -71
  597. package/Shared/AsyncStorage/FollyDynamicConverter.cpp +0 -51
  598. package/Shared/AsyncStorage/FollyDynamicConverter.h +0 -24
  599. package/Shared/AsyncStorage/KeyValueStorage.cpp +0 -248
  600. package/Shared/AsyncStorage/KeyValueStorage.h +0 -50
  601. package/Shared/AsyncStorage/StorageFileIO.cpp +0 -160
  602. package/Shared/AsyncStorage/StorageFileIO.h +0 -40
  603. package/Shared/AsyncStorageModule.h +0 -25
  604. package/Shared/Modules/AsyncStorageModule.cpp +0 -87
  605. package/Shared/Modules/AsyncStorageModuleWin32.cpp +0 -496
  606. package/Shared/Modules/AsyncStorageModuleWin32.h +0 -75
  607. package/codegen/NativeDatePickerAndroidSpec.g.h +0 -33
  608. package/include/Shared/AsyncStorageModuleWin32Config.h +0 -15
  609. package/types/index.d.ts +0 -216
  610. package/types/modules/BatchedBridge.d.ts +0 -32
  611. package/types/modules/Codegen.d.ts +0 -74
  612. package/types/modules/Devtools.d.ts +0 -31
  613. package/types/modules/LaunchScreen.d.ts +0 -18
  614. package/types/modules/globals.d.ts +0 -577
  615. package/types/private/TimerMixin.d.ts +0 -19
  616. package/types/private/Utilities.d.ts +0 -10
  617. package/types/public/DeprecatedPropertiesAlias.d.ts +0 -205
  618. package/types/public/Insets.d.ts +0 -15
  619. package/types/public/ReactNativeRenderer.d.ts +0 -149
  620. package/types/public/ReactNativeTypes.d.ts +0 -143
@@ -0,0 +1,144 @@
1
+
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+
5
+ #pragma once
6
+
7
+ #include "AbiCompositionViewComponentView.h"
8
+
9
+ #include <Fabric/DWriteHelpers.h>
10
+ #include "CompositionDynamicAutomationProvider.h"
11
+ #include "Unicode.h"
12
+
13
+ namespace Microsoft::ReactNative {
14
+
15
+ AbiCompositionViewComponentView::AbiCompositionViewComponentView(
16
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
17
+ facebook::react::Tag tag,
18
+ winrt::Microsoft::ReactNative::IReactViewComponentBuilder builder)
19
+ : Super(compContext, tag), m_builder(builder) {
20
+ static auto const defaultProps = std::make_shared<AbiViewProps const>();
21
+ m_props = defaultProps;
22
+ m_handle = Builder().CreateView(compContext);
23
+ m_visual = Builder().CreateVisual(m_handle);
24
+ OuterVisual().InsertAt(m_visual, 0);
25
+ }
26
+
27
+ std::shared_ptr<AbiCompositionViewComponentView> AbiCompositionViewComponentView::Create(
28
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
29
+ facebook::react::Tag tag,
30
+ winrt::Microsoft::ReactNative::IReactViewComponentBuilder builder) noexcept {
31
+ return std::shared_ptr<AbiCompositionViewComponentView>(
32
+ new AbiCompositionViewComponentView(compContext, tag, builder));
33
+ }
34
+
35
+ winrt::Microsoft::ReactNative::Composition::ReactCompositionViewComponentBuilder &
36
+ AbiCompositionViewComponentView::Builder() noexcept {
37
+ return *winrt::get_self<winrt::Microsoft::ReactNative::Composition::ReactCompositionViewComponentBuilder>(m_builder);
38
+ }
39
+
40
+ void AbiCompositionViewComponentView::mountChildComponentView(
41
+ IComponentView &childComponentView,
42
+ uint32_t index) noexcept {
43
+ assert(false);
44
+ }
45
+
46
+ void AbiCompositionViewComponentView::unmountChildComponentView(
47
+ IComponentView &childComponentView,
48
+ uint32_t index) noexcept {
49
+ assert(false);
50
+ }
51
+
52
+ void AbiCompositionViewComponentView::updateProps(
53
+ facebook::react::Props::Shared const &props,
54
+ facebook::react::Props::Shared const &oldProps) noexcept {
55
+ const auto &oldViewProps = *std::static_pointer_cast<const AbiViewProps>(m_props);
56
+ const auto &newViewProps = *std::static_pointer_cast<const AbiViewProps>(props);
57
+
58
+ updateBorderProps(oldViewProps, newViewProps);
59
+ Builder().UpdateProps(m_handle, newViewProps.UserProps());
60
+
61
+ m_props = std::static_pointer_cast<AbiViewProps const>(props);
62
+ }
63
+
64
+ void AbiCompositionViewComponentView::updateLayoutMetrics(
65
+ facebook::react::LayoutMetrics const &layoutMetrics,
66
+ facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept {
67
+ if ((layoutMetrics.displayType != m_layoutMetrics.displayType)) {
68
+ OuterVisual().IsVisible(layoutMetrics.displayType != facebook::react::DisplayType::None);
69
+ }
70
+
71
+ updateBorderLayoutMetrics(layoutMetrics, *m_props);
72
+
73
+ winrt::Microsoft::ReactNative::Composition::LayoutMetrics lm;
74
+ Builder().UpdateLayoutMetrics(
75
+ m_handle,
76
+ {{layoutMetrics.frame.origin.x,
77
+ layoutMetrics.frame.origin.y,
78
+ layoutMetrics.frame.size.width,
79
+ layoutMetrics.frame.size.height},
80
+ layoutMetrics.pointScaleFactor});
81
+
82
+ m_layoutMetrics = layoutMetrics;
83
+ }
84
+
85
+ void AbiCompositionViewComponentView::updateState(
86
+ facebook::react::State::Shared const &state,
87
+ facebook::react::State::Shared const &oldState) noexcept {}
88
+
89
+ void AbiCompositionViewComponentView::finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept {
90
+ Builder().FinalizeUpdates(m_handle);
91
+
92
+ if (m_needsBorderUpdate) {
93
+ m_needsBorderUpdate = false;
94
+ UpdateSpecialBorderLayers(m_layoutMetrics, *m_props);
95
+ }
96
+ }
97
+
98
+ bool AbiCompositionViewComponentView::focusable() const noexcept {
99
+ return m_props->focusable;
100
+ }
101
+
102
+ int64_t AbiCompositionViewComponentView::sendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept {
103
+ return Builder().SendMessage(m_handle, msg, wParam, lParam);
104
+ }
105
+
106
+ std::vector<facebook::react::ComponentDescriptorProvider>
107
+ AbiCompositionViewComponentView::supplementalComponentDescriptorProviders() noexcept {
108
+ return {};
109
+ }
110
+
111
+ void AbiCompositionViewComponentView::prepareForRecycle() noexcept {}
112
+ facebook::react::Props::Shared AbiCompositionViewComponentView::props() noexcept {
113
+ return m_props;
114
+ }
115
+
116
+ winrt::Microsoft::ReactNative::Composition::IVisual AbiCompositionViewComponentView::Visual() const noexcept {
117
+ return m_visual;
118
+ }
119
+
120
+ facebook::react::Tag AbiCompositionViewComponentView::hitTest(
121
+ facebook::react::Point pt,
122
+ facebook::react::Point &localPt) const noexcept {
123
+ facebook::react::Point ptLocal{pt.x - m_layoutMetrics.frame.origin.x, pt.y - m_layoutMetrics.frame.origin.y};
124
+
125
+ if ((m_props->pointerEvents == facebook::react::PointerEventsMode::Auto ||
126
+ m_props->pointerEvents == facebook::react::PointerEventsMode::BoxOnly) &&
127
+ ptLocal.x >= 0 && ptLocal.x <= m_layoutMetrics.frame.size.width && ptLocal.y >= 0 &&
128
+ ptLocal.y <= m_layoutMetrics.frame.size.height) {
129
+ localPt = ptLocal;
130
+ return tag();
131
+ }
132
+
133
+ return -1;
134
+ }
135
+
136
+ winrt::IInspectable AbiCompositionViewComponentView::EnsureUiaProvider() noexcept {
137
+ if (m_uiaProvider == nullptr) {
138
+ m_uiaProvider = winrt::make<winrt::Microsoft::ReactNative::implementation::CompositionDynamicAutomationProvider>(
139
+ shared_from_this());
140
+ }
141
+ return m_uiaProvider;
142
+ }
143
+
144
+ } // namespace Microsoft::ReactNative
@@ -0,0 +1,63 @@
1
+
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+
5
+ #pragma once
6
+
7
+ #include <Fabric/AbiViewProps.h>
8
+ #include <Fabric/ComponentView.h>
9
+ #include <Microsoft.ReactNative.Cxx/ReactContext.h>
10
+ #include "CompositionViewComponentView.h"
11
+
12
+ #include <Fabric/Composition/ReactCompositionViewComponentBuilder.h>
13
+
14
+ #include <react/components/rnwcore/ShadowNodes.h>
15
+
16
+ namespace Microsoft::ReactNative {
17
+
18
+ struct AbiCompositionViewComponentView : CompositionBaseComponentView {
19
+ using Super = CompositionBaseComponentView;
20
+
21
+ [[nodiscard]] static std::shared_ptr<AbiCompositionViewComponentView> Create(
22
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
23
+ facebook::react::Tag tag,
24
+ winrt::Microsoft::ReactNative::IReactViewComponentBuilder builder) noexcept;
25
+
26
+ winrt::IInspectable EnsureUiaProvider() noexcept override;
27
+
28
+ void mountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept override;
29
+ void unmountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept override;
30
+
31
+ void updateState(facebook::react::State::Shared const &state, facebook::react::State::Shared const &oldState) noexcept
32
+ override;
33
+
34
+ void updateProps(facebook::react::Props::Shared const &props, facebook::react::Props::Shared const &oldProps) noexcept
35
+ override;
36
+ void updateLayoutMetrics(
37
+ facebook::react::LayoutMetrics const &layoutMetrics,
38
+ facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept override;
39
+ void finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept override;
40
+ void prepareForRecycle() noexcept override;
41
+ bool focusable() const noexcept override;
42
+ int64_t sendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept override;
43
+ std::vector<facebook::react::ComponentDescriptorProvider> supplementalComponentDescriptorProviders() noexcept
44
+ override;
45
+ facebook::react::Props::Shared props() noexcept override;
46
+ facebook::react::Tag hitTest(facebook::react::Point pt, facebook::react::Point &localPt) const noexcept override;
47
+ winrt::Microsoft::ReactNative::Composition::IVisual Visual() const noexcept override;
48
+
49
+ private:
50
+ AbiCompositionViewComponentView(
51
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
52
+ facebook::react::Tag tag,
53
+ winrt::Microsoft::ReactNative::IReactViewComponentBuilder builder);
54
+
55
+ winrt::Microsoft::ReactNative::Composition::ReactCompositionViewComponentBuilder &Builder() noexcept;
56
+
57
+ winrt::IInspectable m_handle;
58
+ winrt::Microsoft::ReactNative::IReactViewComponentBuilder m_builder;
59
+ std::shared_ptr<AbiViewProps const> m_props;
60
+ winrt::Microsoft::ReactNative::Composition::IVisual m_visual{nullptr};
61
+ };
62
+
63
+ } // namespace Microsoft::ReactNative
@@ -19,12 +19,17 @@
19
19
  #include <react/renderer/components/text/TextShadowNode.h>
20
20
  #include <react/renderer/components/view/ViewShadowNode.h>
21
21
 
22
+ #include <Fabric/Composition/AbiCompositionViewComponentView.h>
22
23
  #include <Fabric/Composition/CompositionHelpers.h>
23
24
  #include <Fabric/Composition/CompositionViewComponentView.h>
24
25
  #include <Fabric/Composition/ImageComponentView.h>
25
26
  #include <Fabric/Composition/ParagraphComponentView.h>
27
+ #include <Fabric/Composition/RootComponentView.h>
26
28
  #include <Fabric/Composition/ScrollViewComponentView.h>
29
+ #include <Fabric/Composition/SwitchComponentView.h>
27
30
  #include <Fabric/Composition/TextInput/WindowsTextInputComponentView.h>
31
+ #include <Fabric/Composition/UnimplementedNativeViewComponentView.h>
32
+ #include <Fabric/WindowsComponentDescriptorRegistry.h>
28
33
 
29
34
  namespace Microsoft::ReactNative {
30
35
 
@@ -40,16 +45,32 @@ ComponentViewDescriptor const &ComponentViewRegistry::dequeueComponentViewWithCo
40
45
 
41
46
  std::shared_ptr<CompositionBaseComponentView> view;
42
47
 
43
- if (componentHandle == facebook::react::ParagraphShadowNode::Handle()) {
44
- view = std::make_shared<ParagraphComponentView>(compContext, tag);
48
+ if (componentHandle == facebook::react::ViewShadowNode::Handle()) {
49
+ view = CompositionViewComponentView::Create(compContext, tag);
50
+ } else if (componentHandle == facebook::react::ParagraphShadowNode::Handle()) {
51
+ view = ParagraphComponentView::Create(compContext, tag);
45
52
  } else if (componentHandle == facebook::react::ScrollViewShadowNode::Handle()) {
46
- view = std::make_shared<ScrollViewComponentView>(compContext, tag);
53
+ view = ScrollViewComponentView::Create(compContext, tag);
47
54
  } else if (componentHandle == facebook::react::ImageShadowNode::Handle()) {
48
- view = std::make_shared<ImageComponentView>(compContext, tag, m_context);
55
+ view = ImageComponentView::Create(compContext, tag, m_context);
49
56
  } else if (componentHandle == facebook::react::WindowsTextInputShadowNode::Handle()) {
50
- view = std::make_shared<WindowsTextInputComponentView>(compContext, tag, m_context);
57
+ view = WindowsTextInputComponentView::Create(compContext, tag, m_context);
58
+ } else if (componentHandle == facebook::react::SwitchShadowNode::Handle()) {
59
+ view = SwitchComponentView::Create(compContext, tag, m_context);
60
+ } else if (componentHandle == facebook::react::RootShadowNode::Handle()) {
61
+ view = RootComponentView::Create(compContext, tag);
62
+ } else if (
63
+ componentHandle == facebook::react::RawTextShadowNode::Handle() ||
64
+ componentHandle == facebook::react::TextShadowNode::Handle()) {
65
+ // Review - Why do we get asked for ComponentViews for Text/RawText... do these get used?
66
+ view = CompositionViewComponentView::Create(compContext, tag);
67
+ } else if (componentHandle == facebook::react::UnimplementedNativeViewShadowNode::Handle()) {
68
+ view = UnimplementedNativeViewComponentView::Create(compContext, tag);
51
69
  } else {
52
- view = std::make_shared<CompositionViewComponentView>(compContext, tag);
70
+ auto descriptor =
71
+ WindowsComponentDescriptorRegistry::FromProperties(m_context.Properties())->GetDescriptor(componentHandle);
72
+ view = AbiCompositionViewComponentView::Create(
73
+ compContext, tag, descriptor.as<winrt::Microsoft::ReactNative::IReactViewComponentBuilder>());
53
74
  }
54
75
 
55
76
  auto it = m_registry.insert({tag, ComponentViewDescriptor{view}});
@@ -192,6 +192,10 @@ struct CompVisual : public winrt::implements<
192
192
  }
193
193
 
194
194
  void SetClippingPath(ID2D1Geometry *clippingPath) noexcept {
195
+ if (!clippingPath) {
196
+ m_visual.Clip(nullptr);
197
+ return;
198
+ }
195
199
  auto geometry = winrt::make<GeometrySource>(clippingPath);
196
200
  auto path = winrt::Windows::UI::Composition::CompositionPath(geometry);
197
201
  auto pathgeo = m_visual.Compositor().CreatePathGeometry(path);
@@ -241,6 +245,14 @@ struct CompVisual : public winrt::implements<
241
245
  m_visual.RelativeSizeAdjustment(relativeSizeAdjustment);
242
246
  }
243
247
 
248
+ winrt::Microsoft::ReactNative::Composition::BackfaceVisibility BackfaceVisibility() {
249
+ return static_cast<winrt::Microsoft::ReactNative::Composition::BackfaceVisibility>(m_visual.BackfaceVisibility());
250
+ }
251
+
252
+ void BackfaceVisibility(winrt::Microsoft::ReactNative::Composition::BackfaceVisibility value) {
253
+ m_visual.BackfaceVisibility(static_cast<winrt::Windows::UI::Composition::CompositionBackfaceVisibility>(value));
254
+ }
255
+
244
256
  private:
245
257
  winrt::Windows::UI::Composition::Visual m_visual;
246
258
  };
@@ -327,6 +339,14 @@ struct CompSpriteVisual : winrt::Microsoft::ReactNative::Composition::implementa
327
339
  m_visual.RelativeSizeAdjustment(relativeSizeAdjustment);
328
340
  }
329
341
 
342
+ winrt::Microsoft::ReactNative::Composition::BackfaceVisibility BackfaceVisibility() {
343
+ return static_cast<winrt::Microsoft::ReactNative::Composition::BackfaceVisibility>(m_visual.BackfaceVisibility());
344
+ }
345
+
346
+ void BackfaceVisibility(winrt::Microsoft::ReactNative::Composition::BackfaceVisibility value) {
347
+ m_visual.BackfaceVisibility(static_cast<winrt::Windows::UI::Composition::CompositionBackfaceVisibility>(value));
348
+ }
349
+
330
350
  void SetClippingPath(ID2D1Geometry *clippingPath) noexcept {
331
351
  if (!clippingPath) {
332
352
  m_visual.Clip(nullptr);
@@ -511,7 +531,19 @@ struct CompScrollerVisual : winrt::Microsoft::ReactNative::Composition::implemen
511
531
  m_visual.RelativeSizeAdjustment(relativeSizeAdjustment);
512
532
  }
513
533
 
534
+ winrt::Microsoft::ReactNative::Composition::BackfaceVisibility BackfaceVisibility() {
535
+ return static_cast<winrt::Microsoft::ReactNative::Composition::BackfaceVisibility>(m_visual.BackfaceVisibility());
536
+ }
537
+
538
+ void BackfaceVisibility(winrt::Microsoft::ReactNative::Composition::BackfaceVisibility value) {
539
+ m_visual.BackfaceVisibility(static_cast<winrt::Windows::UI::Composition::CompositionBackfaceVisibility>(value));
540
+ }
541
+
514
542
  void SetClippingPath(ID2D1Geometry *clippingPath) noexcept {
543
+ if (!clippingPath) {
544
+ m_visual.Clip(nullptr);
545
+ return;
546
+ }
515
547
  auto geometry = winrt::make<GeometrySource>(clippingPath);
516
548
  auto path = winrt::Windows::UI::Composition::CompositionPath(geometry);
517
549
  auto pathgeo = m_visual.Compositor().CreatePathGeometry(path);
@@ -547,6 +579,19 @@ struct CompScrollerVisual : winrt::Microsoft::ReactNative::Composition::implemen
547
579
  m_interactionTracker.TryUpdatePositionBy(offset);
548
580
  };
549
581
 
582
+ void TryUpdatePosition(winrt::Windows::Foundation::Numerics::float3 const &position, bool animate) noexcept {
583
+ if (animate) {
584
+ auto compositor = m_visual.Compositor();
585
+ auto cubicBezier = compositor.CreateCubicBezierEasingFunction({0.17f, 0.67f}, {1.0f, 1.0f});
586
+ auto kfa = compositor.CreateVector3KeyFrameAnimation();
587
+ kfa.Duration(std::chrono::seconds{1});
588
+ kfa.InsertKeyFrame(1.0f, position, cubicBezier);
589
+ m_interactionTracker.TryUpdatePositionWithAnimation(kfa);
590
+ } else {
591
+ m_interactionTracker.TryUpdatePosition(position);
592
+ }
593
+ }
594
+
550
595
  private:
551
596
  void FireScrollPositionChanged(winrt::Windows::Foundation::Numerics::float2 position) {
552
597
  m_scrollPositionChangedEvent(*this, winrt::make<CompScrollPositionChangedArgs>(position));
@@ -628,6 +673,54 @@ struct CompCaretVisual : winrt::implements<CompCaretVisual, winrt::Microsoft::Re
628
673
  winrt::Windows::UI::Composition::Compositor m_compositor{nullptr};
629
674
  };
630
675
 
676
+ struct CompFocusVisual : winrt::implements<CompFocusVisual, winrt::Microsoft::ReactNative::Composition::IFocusVisual> {
677
+ CompFocusVisual(winrt::Windows::UI::Composition::Compositor const &compositor)
678
+ : m_compVisual(compositor.CreateSpriteVisual()), m_brush(compositor.CreateNineGridBrush()) {
679
+ m_visual = winrt::make<Composition::CompSpriteVisual>(m_compVisual);
680
+
681
+ m_compVisual.Opacity(1.0f);
682
+ m_compVisual.RelativeSizeAdjustment({1, 1});
683
+
684
+ m_brush.Source(compositor.CreateColorBrush(winrt::Windows::UI::Colors::Black()));
685
+ m_brush.IsCenterHollow(true);
686
+ }
687
+
688
+ winrt::Microsoft::ReactNative::Composition::IVisual InnerVisual() const noexcept {
689
+ return m_visual;
690
+ }
691
+
692
+ bool IsFocused() const noexcept {
693
+ return m_compVisual.Brush() != nullptr;
694
+ }
695
+
696
+ void IsFocused(bool value) noexcept {
697
+ if (value) {
698
+ m_compVisual.Brush(m_brush);
699
+ } else {
700
+ m_compVisual.Brush(nullptr);
701
+ }
702
+ }
703
+
704
+ float ScaleFactor() const noexcept {
705
+ return m_scaleFactor;
706
+ }
707
+
708
+ void ScaleFactor(float scaleFactor) noexcept {
709
+ if (m_scaleFactor == scaleFactor) {
710
+ return;
711
+ }
712
+ m_scaleFactor = scaleFactor;
713
+ auto inset = 2 * scaleFactor;
714
+ m_brush.SetInsets(inset, inset, inset, inset);
715
+ }
716
+
717
+ private:
718
+ float m_scaleFactor{0};
719
+ const winrt::Windows::UI::Composition::CompositionNineGridBrush m_brush;
720
+ const winrt::Windows::UI::Composition::SpriteVisual m_compVisual;
721
+ winrt::Microsoft::ReactNative::Composition::IVisual m_visual{nullptr};
722
+ };
723
+
631
724
  struct CompContext : winrt::implements<
632
725
  CompContext,
633
726
  winrt::Microsoft::ReactNative::Composition::ICompositionContext,
@@ -736,6 +829,10 @@ struct CompContext : winrt::implements<
736
829
  return winrt::make<Composition::CompCaretVisual>(m_compositor);
737
830
  }
738
831
 
832
+ winrt::Microsoft::ReactNative::Composition::IFocusVisual CreateFocusVisual() noexcept {
833
+ return winrt::make<Composition::CompFocusVisual>(m_compositor);
834
+ }
835
+
739
836
  winrt::Windows::UI::Composition::CompositionGraphicsDevice CompositionGraphicsDevice() noexcept {
740
837
  if (!m_compositionGraphicsDevice) {
741
838
  // To create a composition graphics device, we need to QI for another interface
@@ -0,0 +1,227 @@
1
+ #include "pch.h"
2
+ #include "CompositionDynamicAutomationProvider.h"
3
+ #include <Fabric/ComponentView.h>
4
+ #pragma warning(push)
5
+ #pragma warning(disable : 4229)
6
+ #define IN
7
+ #define OUT
8
+ #include <atlsafe.h>
9
+ #pragma warning(pop)
10
+ #include "RootComponentView.h"
11
+ #include "UiaHelpers.h"
12
+
13
+ namespace winrt::Microsoft::ReactNative::implementation {
14
+
15
+ CompositionDynamicAutomationProvider::CompositionDynamicAutomationProvider(
16
+ const std::shared_ptr<::Microsoft::ReactNative::CompositionBaseComponentView> &componentView) noexcept
17
+ : m_view{std::static_pointer_cast<::Microsoft::ReactNative::IComponentView>(componentView)} {}
18
+
19
+ HRESULT __stdcall CompositionDynamicAutomationProvider::Navigate(
20
+ NavigateDirection direction,
21
+ IRawElementProviderFragment **pRetVal) {
22
+ if (pRetVal == nullptr)
23
+ return E_POINTER;
24
+
25
+ return UiaNavigateHelper(m_view, direction, *pRetVal);
26
+ }
27
+
28
+ // Implementations should return NULL for a top-level element that is hosted in a window. Other elements should return
29
+ // an array that contains UiaAppendRuntimeId (defined in Uiautomationcoreapi.h), followed by a value that is unique
30
+ // within an instance of the fragment.
31
+ //
32
+ // We'll use the react tag as our identifier for those situations
33
+ HRESULT __stdcall CompositionDynamicAutomationProvider::GetRuntimeId(SAFEARRAY **pRetVal) {
34
+ if (pRetVal == nullptr)
35
+ return E_POINTER;
36
+
37
+ *pRetVal = nullptr;
38
+
39
+ auto strongView = m_view.view();
40
+
41
+ if (!strongView)
42
+ return UIA_E_ELEMENTNOTAVAILABLE;
43
+
44
+ CComSafeArray<int32_t> runtimeId;
45
+ auto hr = runtimeId.Create(2);
46
+
47
+ if (FAILED(hr))
48
+ return hr;
49
+
50
+ runtimeId[0] = UiaAppendRuntimeId;
51
+ runtimeId[1] = strongView->tag();
52
+
53
+ *pRetVal = runtimeId.Detach();
54
+
55
+ return S_OK;
56
+ }
57
+
58
+ HRESULT __stdcall CompositionDynamicAutomationProvider::get_BoundingRectangle(UiaRect *pRetVal) {
59
+ if (pRetVal == nullptr)
60
+ return E_POINTER;
61
+
62
+ return S_OK;
63
+ }
64
+
65
+ HRESULT __stdcall CompositionDynamicAutomationProvider::GetEmbeddedFragmentRoots(SAFEARRAY **pRetVal) {
66
+ if (pRetVal == nullptr)
67
+ return E_POINTER;
68
+
69
+ *pRetVal = nullptr;
70
+
71
+ return S_OK;
72
+ }
73
+
74
+ HRESULT __stdcall CompositionDynamicAutomationProvider::SetFocus(void) {
75
+ return S_OK;
76
+ }
77
+
78
+ HRESULT __stdcall CompositionDynamicAutomationProvider::get_FragmentRoot(IRawElementProviderFragmentRoot **pRetVal) {
79
+ if (pRetVal == nullptr)
80
+ return E_POINTER;
81
+
82
+ auto strongView = m_view.view();
83
+
84
+ if (!strongView)
85
+ return UIA_E_ELEMENTNOTAVAILABLE;
86
+
87
+ auto rootCV = strongView->rootComponentView();
88
+ if (rootCV == nullptr)
89
+ return UIA_E_ELEMENTNOTAVAILABLE;
90
+
91
+ auto uiaProvider = rootCV->EnsureUiaProvider();
92
+ if (uiaProvider != nullptr) {
93
+ winrt::com_ptr<IRawElementProviderFragmentRoot> spReps;
94
+ uiaProvider.as(spReps);
95
+ *pRetVal = spReps.detach();
96
+ }
97
+
98
+ return S_OK;
99
+ }
100
+
101
+ HRESULT __stdcall CompositionDynamicAutomationProvider::get_ProviderOptions(ProviderOptions *pRetVal) {
102
+ if (pRetVal == nullptr)
103
+ return E_POINTER;
104
+
105
+ *pRetVal = ProviderOptions_ServerSideProvider | ProviderOptions_UseComThreading;
106
+ return S_OK;
107
+ }
108
+
109
+ HRESULT __stdcall CompositionDynamicAutomationProvider::GetPatternProvider(PATTERNID patternId, IUnknown **pRetVal) {
110
+ if (pRetVal == nullptr)
111
+ return E_POINTER;
112
+
113
+ *pRetVal = nullptr;
114
+
115
+ return S_OK;
116
+ }
117
+
118
+ long GetControlType(const std::string &role) noexcept {
119
+ if (role == "adjustable") {
120
+ return UIA_SliderControlTypeId;
121
+ } else if (role == "group" || role == "search" || role == "radiogroup" || role == "timer" || role.empty()) {
122
+ return UIA_GroupControlTypeId;
123
+ } else if (role == "button" || role == "imagebutton" || role == "switch" || role == "togglebutton") {
124
+ return UIA_ButtonControlTypeId;
125
+ } else if (role == "checkbox") {
126
+ return UIA_CheckBoxControlTypeId;
127
+ } else if (role == "combobox") {
128
+ return UIA_ComboBoxControlTypeId;
129
+ } else if (role == "alert" || role == "header" || role == "summary" || role == "text") {
130
+ return UIA_TextControlTypeId;
131
+ } else if (role == "image") {
132
+ return UIA_ImageControlTypeId;
133
+ } else if (role == "keyboardkey") {
134
+ return UIA_CustomControlTypeId;
135
+ } else if (role == "link") {
136
+ return UIA_HyperlinkControlTypeId;
137
+ }
138
+ // list and listitem were added by RNW to better support UIA Control Types
139
+ else if (role == "list") {
140
+ return UIA_ListControlTypeId;
141
+ } else if (role == "listitem") {
142
+ return UIA_ListItemControlTypeId;
143
+ } else if (role == "menu") {
144
+ return UIA_MenuControlTypeId;
145
+ } else if (role == "menubar") {
146
+ return UIA_MenuBarControlTypeId;
147
+ } else if (role == "menuitem") {
148
+ return UIA_MenuItemControlTypeId;
149
+ }
150
+ // If role is "none", remove the element from the control tree
151
+ // and expose it as a plain element would in the raw tree.
152
+ else if (role == "none") {
153
+ return UIA_GroupControlTypeId;
154
+ } else if (role == "progressbar") {
155
+ return UIA_ProgressBarControlTypeId;
156
+ } else if (role == "radio") {
157
+ return UIA_RadioButtonControlTypeId;
158
+ } else if (role == "scrollbar") {
159
+ return UIA_ScrollBarControlTypeId;
160
+ } else if (role == "spinbutton") {
161
+ return UIA_SpinnerControlTypeId;
162
+ } else if (role == "splitbutton") {
163
+ return UIA_SplitButtonControlTypeId;
164
+ } else if (role == "tab") {
165
+ return UIA_TabItemControlTypeId;
166
+ } else if (role == "tablist") {
167
+ return UIA_TabControlTypeId;
168
+ } else if (role == "toolbar") {
169
+ return UIA_ToolBarControlTypeId;
170
+ } else if (role == "tree") {
171
+ return UIA_TreeControlTypeId;
172
+ } else if (role == "treeitem") {
173
+ return UIA_TreeItemControlTypeId;
174
+ }
175
+ assert(false);
176
+ return UIA_GroupControlTypeId;
177
+ }
178
+
179
+ HRESULT __stdcall CompositionDynamicAutomationProvider::GetPropertyValue(PROPERTYID propertyId, VARIANT *pRetVal) {
180
+ if (pRetVal == nullptr)
181
+ return E_POINTER;
182
+
183
+ auto strongView = m_view.view();
184
+ if (strongView == nullptr)
185
+ return UIA_E_ELEMENTNOTAVAILABLE;
186
+
187
+ auto props = std::static_pointer_cast<const facebook::react::ViewProps>(strongView->props());
188
+ if (props == nullptr)
189
+ return UIA_E_ELEMENTNOTAVAILABLE;
190
+
191
+ switch (propertyId) {
192
+ case UIA_ControlTypePropertyId: {
193
+ pRetVal->vt = VT_I4;
194
+ auto role = props->accessibilityRole;
195
+ pRetVal->lVal = GetControlType(role);
196
+ break;
197
+ }
198
+ case UIA_AutomationIdPropertyId: {
199
+ pRetVal->vt = VT_BSTR;
200
+ auto testId = props->testId;
201
+ CComBSTR temp(testId.c_str());
202
+ pRetVal->bstrVal = temp.Detach();
203
+ break;
204
+ }
205
+ case UIA_NamePropertyId: {
206
+ pRetVal->vt = VT_BSTR;
207
+ auto name = props->accessibilityLabel;
208
+ CComBSTR temp(name.c_str());
209
+ pRetVal->bstrVal = temp.Detach();
210
+ break;
211
+ }
212
+ }
213
+
214
+ return S_OK;
215
+ }
216
+
217
+ HRESULT __stdcall CompositionDynamicAutomationProvider::get_HostRawElementProvider(
218
+ IRawElementProviderSimple **pRetVal) {
219
+ if (pRetVal == nullptr)
220
+ return E_POINTER;
221
+
222
+ *pRetVal = nullptr;
223
+
224
+ return S_OK;
225
+ }
226
+
227
+ } // namespace winrt::Microsoft::ReactNative::implementation
@@ -0,0 +1,38 @@
1
+ #pragma once
2
+
3
+ #include <Fabric/Composition/CompositionViewComponentView.h>
4
+ #include <Fabric/ReactTaggedView.h>
5
+ #include <UIAutomation.h>
6
+ #include <inspectable.h>
7
+
8
+ namespace winrt::Microsoft::ReactNative::implementation {
9
+
10
+ class CompositionDynamicAutomationProvider : public winrt::implements<
11
+ CompositionDynamicAutomationProvider,
12
+ IInspectable,
13
+ IRawElementProviderFragment,
14
+ IRawElementProviderSimple> {
15
+ public:
16
+ CompositionDynamicAutomationProvider(
17
+ const std::shared_ptr<::Microsoft::ReactNative::CompositionBaseComponentView> &componentView) noexcept;
18
+
19
+ // inherited via IRawElementProviderFragment
20
+ virtual HRESULT __stdcall Navigate(NavigateDirection direction, IRawElementProviderFragment **pRetVal) override;
21
+ virtual HRESULT __stdcall GetRuntimeId(SAFEARRAY **pRetVal) override;
22
+ virtual HRESULT __stdcall get_BoundingRectangle(UiaRect *pRetVal) override;
23
+ virtual HRESULT __stdcall GetEmbeddedFragmentRoots(SAFEARRAY **pRetVal) override;
24
+ virtual HRESULT __stdcall SetFocus(void) override;
25
+ virtual HRESULT __stdcall get_FragmentRoot(IRawElementProviderFragmentRoot **pRetVal) override;
26
+
27
+ // inherited via IRawElementProviderSimple2
28
+ virtual HRESULT __stdcall get_ProviderOptions(ProviderOptions *pRetVal) override;
29
+ virtual HRESULT __stdcall GetPatternProvider(PATTERNID patternId, IUnknown **pRetVal) override;
30
+ virtual HRESULT __stdcall GetPropertyValue(PROPERTYID propertyId, VARIANT *pRetVal) override;
31
+ virtual HRESULT __stdcall get_HostRawElementProvider(IRawElementProviderSimple **pRetVal) override;
32
+ // virtual HRESULT __stdcall ShowContextMenu() noexcept override;
33
+
34
+ private:
35
+ ::Microsoft::ReactNative::ReactTaggedView m_view;
36
+ };
37
+
38
+ } // namespace winrt::Microsoft::ReactNative::implementation