react-native-windows 0.72.13 → 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 +20 -18
  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
@@ -11,6 +11,7 @@
11
11
  #include <react/renderer/components/text/ParagraphState.h>
12
12
  #include <unicode.h>
13
13
  #include <winrt/Microsoft.ReactNative.Composition.h>
14
+ #include "Composition/AutoDraw.h"
14
15
  #include "CompositionDynamicAutomationProvider.h"
15
16
  #include "CompositionHelpers.h"
16
17
 
@@ -54,6 +55,10 @@ void ParagraphComponentView::updateProps(
54
55
  updateTextAlignment(newViewProps.textAttributes.alignment);
55
56
  }
56
57
 
58
+ // update BaseComponentView props
59
+ updateAccessibilityProps(oldViewProps, newViewProps);
60
+ updateShadowProps(oldViewProps, newViewProps, m_visual);
61
+ updateTransformProps(oldViewProps, newViewProps, m_visual);
57
62
  updateBorderProps(oldViewProps, newViewProps);
58
63
 
59
64
  m_props = std::static_pointer_cast<facebook::react::ParagraphProps const>(props);
@@ -99,8 +104,10 @@ facebook::react::Props::Shared ParagraphComponentView::props() noexcept {
99
104
  return m_props;
100
105
  }
101
106
 
102
- facebook::react::Tag ParagraphComponentView::hitTest(facebook::react::Point pt, facebook::react::Point &localPt)
103
- const noexcept {
107
+ facebook::react::Tag ParagraphComponentView::hitTest(
108
+ facebook::react::Point pt,
109
+ facebook::react::Point &localPt,
110
+ bool ignorePointerEvents) const noexcept {
104
111
  facebook::react::Point ptLocal{pt.x - m_layoutMetrics.frame.origin.x, pt.y - m_layoutMetrics.frame.origin.y};
105
112
 
106
113
  facebook::react::Tag targetTag;
@@ -115,7 +122,7 @@ facebook::react::Tag ParagraphComponentView::hitTest(facebook::react::Point pt,
115
122
  return targetTag;
116
123
  */
117
124
 
118
- if ((m_props->pointerEvents == facebook::react::PointerEventsMode::Auto ||
125
+ if ((ignorePointerEvents || m_props->pointerEvents == facebook::react::PointerEventsMode::Auto ||
119
126
  m_props->pointerEvents == facebook::react::PointerEventsMode::BoxOnly) &&
120
127
  ptLocal.x >= 0 && ptLocal.x <= m_layoutMetrics.frame.size.width && ptLocal.y >= 0 &&
121
128
  ptLocal.y <= m_layoutMetrics.frame.size.height) {
@@ -126,7 +133,7 @@ facebook::react::Tag ParagraphComponentView::hitTest(facebook::react::Point pt,
126
133
  return -1;
127
134
  }
128
135
 
129
- facebook::react::SharedTouchEventEmitter ParagraphComponentView::touchEventEmitterAtPoint(
136
+ facebook::react::SharedViewEventEmitter ParagraphComponentView::eventEmitterAtPoint(
130
137
  facebook::react::Point pt) noexcept {
131
138
  if (m_attributedStringBox.getValue().getFragments().size()) {
132
139
  BOOL isTrailingHit = false;
@@ -138,7 +145,7 @@ facebook::react::SharedTouchEventEmitter ParagraphComponentView::touchEventEmitt
138
145
 
139
146
  for (auto fragment : m_attributedStringBox.getValue().getFragments()) {
140
147
  if (textPosition < fragment.string.length()) {
141
- return std::static_pointer_cast<const facebook::react::TouchEventEmitter>(
148
+ return std::static_pointer_cast<const facebook::react::ViewEventEmitter>(
142
149
  fragment.parentShadowView.eventEmitter);
143
150
  }
144
151
  textPosition -= static_cast<uint32_t>(fragment.string.length());
@@ -200,13 +207,13 @@ void ParagraphComponentView::updateVisualBrush() noexcept {
200
207
  // updateTextAlignment(paragraphProps.textAttributes.alignment);
201
208
 
202
209
  if (!m_textLayout) {
203
- facebook::react::LayoutConstraints contraints;
204
- contraints.maximumSize.width =
210
+ facebook::react::LayoutConstraints constraints;
211
+ constraints.maximumSize.width =
205
212
  m_layoutMetrics.frame.size.width - m_layoutMetrics.contentInsets.left - m_layoutMetrics.contentInsets.right;
206
- contraints.maximumSize.height =
213
+ constraints.maximumSize.height =
207
214
  m_layoutMetrics.frame.size.height - m_layoutMetrics.contentInsets.top - m_layoutMetrics.contentInsets.bottom;
208
215
 
209
- facebook::react::TextLayoutManager::GetTextLayout(m_attributedStringBox, {} /*TODO*/, contraints, m_textLayout);
216
+ facebook::react::TextLayoutManager::GetTextLayout(m_attributedStringBox, {} /*TODO*/, constraints, m_textLayout);
210
217
  requireNewBrush = true;
211
218
  }
212
219
 
@@ -226,7 +233,7 @@ void ParagraphComponentView::updateVisualBrush() noexcept {
226
233
  winrt::Windows::Foundation::Size surfaceSize = {
227
234
  m_layoutMetrics.frame.size.width * m_layoutMetrics.pointScaleFactor,
228
235
  m_layoutMetrics.frame.size.height * m_layoutMetrics.pointScaleFactor};
229
- m_drawingSurface = m_compContext.CreateDrawingSurface(
236
+ m_drawingSurface = m_compContext.CreateDrawingSurfaceBrush(
230
237
  surfaceSize,
231
238
  winrt::Windows::Graphics::DirectX::DirectXPixelFormat::B8G8R8A8UIntNormalized,
232
239
  winrt::Windows::Graphics::DirectX::DirectXAlphaMode::Premultiplied);
@@ -234,8 +241,6 @@ void ParagraphComponentView::updateVisualBrush() noexcept {
234
241
 
235
242
  DrawText();
236
243
 
237
- auto surfaceBrush = m_compContext.CreateSurfaceBrush(m_drawingSurface);
238
-
239
244
  // The surfaceBrush's size is based on the size the text takes up, which maybe smaller than the total visual
240
245
  // So we need to align the brush within the visual to match the text alignment.
241
246
  const auto &paragraphProps = *std::static_pointer_cast<const facebook::react::ParagraphProps>(m_props);
@@ -264,11 +269,13 @@ void ParagraphComponentView::updateVisualBrush() noexcept {
264
269
  }
265
270
  }
266
271
  */
267
- // TODO Using brush alignment to align the text makes it blury...
268
- surfaceBrush.HorizontalAlignmentRatio(horizAlignment);
269
- surfaceBrush.VerticalAlignmentRatio(0.f);
270
- surfaceBrush.Stretch(winrt::Microsoft::ReactNative::Composition::CompositionStretch::None);
271
- m_visual.Brush(surfaceBrush);
272
+ // TODO Using brush alignment to align the text makes it blurry...
273
+ if (m_drawingSurface) {
274
+ m_drawingSurface.HorizontalAlignmentRatio(horizAlignment);
275
+ m_drawingSurface.VerticalAlignmentRatio(0.f);
276
+ m_drawingSurface.Stretch(winrt::Microsoft::ReactNative::Composition::CompositionStretch::None);
277
+ }
278
+ m_visual.Brush(m_drawingSurface);
272
279
  }
273
280
 
274
281
  if (m_requireRedraw) {
@@ -286,192 +293,193 @@ void ParagraphComponentView::DrawText() noexcept {
286
293
  return;
287
294
  }
288
295
 
289
- // Begin our update of the surface pixels. If this is our first update, we are required
290
- // to specify the entire surface, which nullptr is shorthand for (but, as it works out,
291
- // any time we make an update we touch the entire surface, so we always pass nullptr).
292
- winrt::com_ptr<ID2D1DeviceContext> d2dDeviceContext;
293
296
  POINT offset;
294
-
295
- winrt::com_ptr<Composition::ICompositionDrawingSurfaceInterop> drawingSurfaceInterop;
296
- m_drawingSurface.as(drawingSurfaceInterop);
297
-
298
- if (CheckForDeviceRemoved(drawingSurfaceInterop->BeginDraw(d2dDeviceContext.put(), &offset))) {
299
- d2dDeviceContext->Clear(
300
- m_props->backgroundColor ? m_props->backgroundColor.AsD2DColor() : D2D1::ColorF(D2D1::ColorF::Black, 0.0f));
301
- assert(d2dDeviceContext->GetUnitMode() == D2D1_UNIT_MODE_DIPS);
302
- const auto dpi = m_layoutMetrics.pointScaleFactor * 96.0f;
303
- float oldDpiX, oldDpiY;
304
- d2dDeviceContext->GetDpi(&oldDpiX, &oldDpiY);
305
- d2dDeviceContext->SetDpi(dpi, dpi);
306
-
307
- float offsetX = static_cast<float>(offset.x / m_layoutMetrics.pointScaleFactor);
308
- float offsetY = static_cast<float>(offset.y / m_layoutMetrics.pointScaleFactor);
309
-
310
- const auto &paragraphProps = *std::static_pointer_cast<const facebook::react::ParagraphProps>(m_props);
311
-
312
- // Create a solid color brush for the text. A more sophisticated application might want
313
- // to cache and reuse a brush across all text elements instead, taking care to recreate
314
- // it in the event of device removed.
315
- winrt::com_ptr<ID2D1SolidColorBrush> brush;
316
- if (paragraphProps.textAttributes.foregroundColor) {
317
- auto color = paragraphProps.textAttributes.foregroundColor.AsD2DColor();
318
- winrt::check_hresult(d2dDeviceContext->CreateSolidColorBrush(color, brush.put()));
319
- } else {
320
- winrt::check_hresult(
321
- d2dDeviceContext->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::Black, 1.0f), brush.put()));
322
- }
323
-
324
- if (paragraphProps.textAttributes.textDecorationLineType) {
325
- DWRITE_TEXT_RANGE range = {0, std::numeric_limits<uint32_t>::max()};
326
- if (*(paragraphProps.textAttributes.textDecorationLineType) ==
327
- facebook::react::TextDecorationLineType::Underline ||
328
- *(paragraphProps.textAttributes.textDecorationLineType) ==
329
- facebook::react::TextDecorationLineType::UnderlineStrikethrough) {
330
- m_textLayout->SetUnderline(true, range);
297
+ {
298
+ ::Microsoft::ReactNative::Composition::AutoDrawDrawingSurface autoDraw(m_drawingSurface, &offset);
299
+ if (auto d2dDeviceContext = autoDraw.GetRenderTarget()) {
300
+ d2dDeviceContext->Clear(
301
+ m_props->backgroundColor ? m_props->backgroundColor.AsD2DColor() : D2D1::ColorF(D2D1::ColorF::Black, 0.0f));
302
+ assert(d2dDeviceContext->GetUnitMode() == D2D1_UNIT_MODE_DIPS);
303
+ const auto dpi = m_layoutMetrics.pointScaleFactor * 96.0f;
304
+ float oldDpiX, oldDpiY;
305
+ d2dDeviceContext->GetDpi(&oldDpiX, &oldDpiY);
306
+ d2dDeviceContext->SetDpi(dpi, dpi);
307
+
308
+ float offsetX = static_cast<float>(offset.x / m_layoutMetrics.pointScaleFactor);
309
+ float offsetY = static_cast<float>(offset.y / m_layoutMetrics.pointScaleFactor);
310
+
311
+ const auto &paragraphProps = *std::static_pointer_cast<const facebook::react::ParagraphProps>(m_props);
312
+
313
+ // Create a solid color brush for the text. A more sophisticated application might want
314
+ // to cache and reuse a brush across all text elements instead, taking care to recreate
315
+ // it in the event of device removed.
316
+ winrt::com_ptr<ID2D1SolidColorBrush> brush;
317
+ if (paragraphProps.textAttributes.foregroundColor) {
318
+ auto color = paragraphProps.textAttributes.foregroundColor.AsD2DColor();
319
+ winrt::check_hresult(d2dDeviceContext->CreateSolidColorBrush(color, brush.put()));
331
320
  } else {
332
- m_textLayout->SetUnderline(false, range);
321
+ winrt::check_hresult(
322
+ d2dDeviceContext->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::Black, 1.0f), brush.put()));
333
323
  }
334
- }
335
324
 
336
- if (paragraphProps.textAttributes.textDecorationLineType) {
337
- DWRITE_TEXT_RANGE range = {0, std::numeric_limits<uint32_t>::max()};
338
- if (*(paragraphProps.textAttributes.textDecorationLineType) ==
339
- facebook::react::TextDecorationLineType::Strikethrough ||
340
- *(paragraphProps.textAttributes.textDecorationLineType) ==
341
- facebook::react::TextDecorationLineType::UnderlineStrikethrough) {
342
- m_textLayout->SetStrikethrough(true, range);
343
- } else {
344
- m_textLayout->SetStrikethrough(false, range);
325
+ if (paragraphProps.textAttributes.textDecorationLineType) {
326
+ DWRITE_TEXT_RANGE range = {0, std::numeric_limits<uint32_t>::max()};
327
+ if (*(paragraphProps.textAttributes.textDecorationLineType) ==
328
+ facebook::react::TextDecorationLineType::Underline ||
329
+ *(paragraphProps.textAttributes.textDecorationLineType) ==
330
+ facebook::react::TextDecorationLineType::UnderlineStrikethrough) {
331
+ m_textLayout->SetUnderline(true, range);
332
+ } else {
333
+ m_textLayout->SetUnderline(false, range);
334
+ }
345
335
  }
346
- }
347
-
348
- if (!isnan(paragraphProps.opacity)) {
349
- m_visual.Opacity(paragraphProps.opacity);
350
- }
351
336
 
352
- // Create color effects for individual text fragments.
353
- unsigned int position = 0;
354
- unsigned int length = 0;
355
- for (auto fragment : m_attributedStringBox.getValue().getFragments()) {
356
- length = static_cast<UINT32>(fragment.string.length());
357
- DWRITE_TEXT_RANGE range = {position, length};
358
- if (fragment.textAttributes.foregroundColor &&
359
- (fragment.textAttributes.foregroundColor != paragraphProps.textAttributes.foregroundColor) ||
360
- !isnan(fragment.textAttributes.opacity)) {
361
- winrt::com_ptr<ID2D1SolidColorBrush> fragmentBrush;
362
- if (fragment.textAttributes.foregroundColor) {
363
- auto color = fragment.textAttributes.foregroundColor.AsD2DColor();
364
- winrt::check_hresult(d2dDeviceContext->CreateSolidColorBrush(color, fragmentBrush.put()));
337
+ if (paragraphProps.textAttributes.textDecorationLineType) {
338
+ DWRITE_TEXT_RANGE range = {0, std::numeric_limits<uint32_t>::max()};
339
+ if (*(paragraphProps.textAttributes.textDecorationLineType) ==
340
+ facebook::react::TextDecorationLineType::Strikethrough ||
341
+ *(paragraphProps.textAttributes.textDecorationLineType) ==
342
+ facebook::react::TextDecorationLineType::UnderlineStrikethrough) {
343
+ m_textLayout->SetStrikethrough(true, range);
365
344
  } else {
366
- winrt::check_hresult(
367
- d2dDeviceContext->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::Black, 1.0f), fragmentBrush.put()));
345
+ m_textLayout->SetStrikethrough(false, range);
368
346
  }
347
+ }
369
348
 
370
- if (fragment.textAttributes.textDecorationLineType) {
371
- if (*(fragment.textAttributes.textDecorationLineType) == facebook::react::TextDecorationLineType::Underline ||
372
- *(fragment.textAttributes.textDecorationLineType) ==
373
- facebook::react::TextDecorationLineType::UnderlineStrikethrough) {
374
- m_textLayout->SetUnderline(true, range);
349
+ if (!isnan(paragraphProps.opacity)) {
350
+ m_visual.Opacity(paragraphProps.opacity);
351
+ }
352
+
353
+ // Create color effects for individual text fragments.
354
+ unsigned int position = 0;
355
+ unsigned int length = 0;
356
+ for (auto fragment : m_attributedStringBox.getValue().getFragments()) {
357
+ length = static_cast<UINT32>(fragment.string.length());
358
+ DWRITE_TEXT_RANGE range = {position, length};
359
+ if (fragment.textAttributes.foregroundColor &&
360
+ (fragment.textAttributes.foregroundColor != paragraphProps.textAttributes.foregroundColor) ||
361
+ !isnan(fragment.textAttributes.opacity)) {
362
+ winrt::com_ptr<ID2D1SolidColorBrush> fragmentBrush;
363
+ if (fragment.textAttributes.foregroundColor) {
364
+ auto color = fragment.textAttributes.foregroundColor.AsD2DColor();
365
+ winrt::check_hresult(d2dDeviceContext->CreateSolidColorBrush(color, fragmentBrush.put()));
375
366
  } else {
376
- m_textLayout->SetUnderline(false, range);
367
+ winrt::check_hresult(
368
+ d2dDeviceContext->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::Black, 1.0f), fragmentBrush.put()));
377
369
  }
378
- }
379
370
 
380
- if (fragment.textAttributes.textDecorationLineType) {
381
- if (*(fragment.textAttributes.textDecorationLineType) ==
382
- facebook::react::TextDecorationLineType::Strikethrough ||
383
- *(fragment.textAttributes.textDecorationLineType) ==
384
- facebook::react::TextDecorationLineType::UnderlineStrikethrough) {
385
- m_textLayout->SetStrikethrough(true, range);
386
- } else {
387
- m_textLayout->SetStrikethrough(false, range);
371
+ if (fragment.textAttributes.textDecorationLineType) {
372
+ if (*(fragment.textAttributes.textDecorationLineType) ==
373
+ facebook::react::TextDecorationLineType::Underline ||
374
+ *(fragment.textAttributes.textDecorationLineType) ==
375
+ facebook::react::TextDecorationLineType::UnderlineStrikethrough) {
376
+ m_textLayout->SetUnderline(true, range);
377
+ } else {
378
+ m_textLayout->SetUnderline(false, range);
379
+ }
388
380
  }
389
- }
390
381
 
391
- if (!isnan(fragment.textAttributes.opacity)) {
392
- fragmentBrush->SetOpacity(fragment.textAttributes.opacity);
393
- }
394
- m_textLayout->SetDrawingEffect(fragmentBrush.get(), range);
395
-
396
- // DWrite doesn't handle background hightlight colors, so we manually draw the background color for ranges
397
- if (facebook::react::isColorMeaningful(fragment.textAttributes.backgroundColor)) {
398
- UINT32 actualHitTestCount = 0;
399
- if (range.length > 0) {
400
- m_textLayout->HitTestTextRange(
401
- range.startPosition,
402
- range.length,
403
- 0, // x
404
- 0, // y
405
- NULL,
406
- 0, // metrics count
407
- &actualHitTestCount);
382
+ if (fragment.textAttributes.textDecorationLineType) {
383
+ if (*(fragment.textAttributes.textDecorationLineType) ==
384
+ facebook::react::TextDecorationLineType::Strikethrough ||
385
+ *(fragment.textAttributes.textDecorationLineType) ==
386
+ facebook::react::TextDecorationLineType::UnderlineStrikethrough) {
387
+ m_textLayout->SetStrikethrough(true, range);
388
+ } else {
389
+ m_textLayout->SetStrikethrough(false, range);
390
+ }
408
391
  }
409
392
 
410
- // Allocate enough room to return all hit-test metrics.
411
- std::vector<DWRITE_HIT_TEST_METRICS> hitTestMetrics(actualHitTestCount);
412
- if (range.length > 0) {
413
- m_textLayout->HitTestTextRange(
414
- range.startPosition,
415
- range.length,
416
- 0, // x
417
- 0, // y
418
- &hitTestMetrics[0],
419
- static_cast<UINT32>(hitTestMetrics.size()),
420
- &actualHitTestCount);
393
+ if (!isnan(fragment.textAttributes.opacity)) {
394
+ fragmentBrush->SetOpacity(fragment.textAttributes.opacity);
421
395
  }
396
+ m_textLayout->SetDrawingEffect(fragmentBrush.get(), range);
397
+
398
+ // DWrite doesn't handle background highlight colors, so we manually draw the background color for ranges
399
+ if (facebook::react::isColorMeaningful(fragment.textAttributes.backgroundColor)) {
400
+ UINT32 actualHitTestCount = 0;
401
+ if (range.length > 0) {
402
+ m_textLayout->HitTestTextRange(
403
+ range.startPosition,
404
+ range.length,
405
+ 0, // x
406
+ 0, // y
407
+ NULL,
408
+ 0, // metrics count
409
+ &actualHitTestCount);
410
+ }
411
+
412
+ // Allocate enough room to return all hit-test metrics.
413
+ std::vector<DWRITE_HIT_TEST_METRICS> hitTestMetrics(actualHitTestCount);
414
+ if (range.length > 0) {
415
+ m_textLayout->HitTestTextRange(
416
+ range.startPosition,
417
+ range.length,
418
+ 0, // x
419
+ 0, // y
420
+ &hitTestMetrics[0],
421
+ static_cast<UINT32>(hitTestMetrics.size()),
422
+ &actualHitTestCount);
423
+ }
422
424
 
423
- // Draw the selection ranges behind the text.
424
- if (actualHitTestCount > 0) {
425
- // Note that an ideal layout will return fractional values,
426
- // so you may see slivers between the selection ranges due
427
- // to the per-primitive antialiasing of the edges unless
428
- // it is disabled (better for performance anyway).
429
- auto oldAliasMode = d2dDeviceContext->GetAntialiasMode();
430
- d2dDeviceContext->SetAntialiasMode(D2D1_ANTIALIAS_MODE_ALIASED);
431
-
432
- winrt::com_ptr<ID2D1SolidColorBrush> textHighlightBrush;
433
- winrt::check_hresult(d2dDeviceContext->CreateSolidColorBrush(
434
- fragment.textAttributes.backgroundColor.AsD2DColor(), textHighlightBrush.put()));
435
-
436
- for (size_t i = 0; i < actualHitTestCount; ++i) {
437
- const DWRITE_HIT_TEST_METRICS &htm = hitTestMetrics[i];
438
-
439
- const D2D1_RECT_F rect = {
440
- std::round(htm.left + offsetX),
441
- std::round(htm.top + offsetY),
442
- std::round(htm.left + htm.width + offsetX),
443
- std::round(htm.top + htm.height + offsetY)};
444
-
445
- d2dDeviceContext->FillRectangle(rect, textHighlightBrush.get());
425
+ // Draw the selection ranges behind the text.
426
+ if (actualHitTestCount > 0) {
427
+ // Note that an ideal layout will return fractional values,
428
+ // so you may see slivers between the selection ranges due
429
+ // to the per-primitive anti-aliasing of the edges unless
430
+ // it is disabled (better for performance anyway).
431
+ auto oldAliasMode = d2dDeviceContext->GetAntialiasMode();
432
+ d2dDeviceContext->SetAntialiasMode(D2D1_ANTIALIAS_MODE_ALIASED);
433
+
434
+ winrt::com_ptr<ID2D1SolidColorBrush> textHighlightBrush;
435
+ winrt::check_hresult(d2dDeviceContext->CreateSolidColorBrush(
436
+ fragment.textAttributes.backgroundColor.AsD2DColor(), textHighlightBrush.put()));
437
+
438
+ for (size_t i = 0; i < actualHitTestCount; ++i) {
439
+ const DWRITE_HIT_TEST_METRICS &htm = hitTestMetrics[i];
440
+
441
+ const D2D1_RECT_F rect = {
442
+ std::round(htm.left + offsetX),
443
+ std::round(htm.top + offsetY),
444
+ std::round(htm.left + htm.width + offsetX),
445
+ std::round(htm.top + htm.height + offsetY)};
446
+
447
+ d2dDeviceContext->FillRectangle(rect, textHighlightBrush.get());
448
+ }
449
+ d2dDeviceContext->SetAntialiasMode(oldAliasMode);
446
450
  }
447
- d2dDeviceContext->SetAntialiasMode(oldAliasMode);
448
451
  }
449
452
  }
453
+
454
+ position += length;
450
455
  }
451
456
 
452
- position += length;
457
+ // Draw the line of text at the specified offset, which corresponds to the top-left
458
+ // corner of our drawing surface. Notice we don't call BeginDraw on the D2D device
459
+ // context; this has already been done for us by the composition API.
460
+ d2dDeviceContext->DrawTextLayout(
461
+ D2D1::Point2F(
462
+ static_cast<FLOAT>((offset.x + m_layoutMetrics.contentInsets.left) / m_layoutMetrics.pointScaleFactor),
463
+ static_cast<FLOAT>((offset.y + m_layoutMetrics.contentInsets.top) / m_layoutMetrics.pointScaleFactor)),
464
+ m_textLayout.get(),
465
+ brush.get(),
466
+ D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT);
467
+
468
+ // restore dpi to old state
469
+ d2dDeviceContext->SetDpi(oldDpiX, oldDpiY);
453
470
  }
454
-
455
- // Draw the line of text at the specified offset, which corresponds to the top-left
456
- // corner of our drawing surface. Notice we don't call BeginDraw on the D2D device
457
- // context; this has already been done for us by the composition API.
458
- d2dDeviceContext->DrawTextLayout(
459
- D2D1::Point2F(
460
- static_cast<FLOAT>((offset.x + m_layoutMetrics.contentInsets.left) / m_layoutMetrics.pointScaleFactor),
461
- static_cast<FLOAT>((offset.y + m_layoutMetrics.contentInsets.top) / m_layoutMetrics.pointScaleFactor)),
462
- m_textLayout.get(),
463
- brush.get());
464
-
465
- // restore dpi to old state
466
- d2dDeviceContext->SetDpi(oldDpiX, oldDpiY);
467
-
468
- // Our update is done. EndDraw never indicates rendering device removed, so any
469
- // failure here is unexpected and, therefore, fatal.
470
- winrt::check_hresult(drawingSurfaceInterop->EndDraw());
471
471
  m_requireRedraw = false;
472
472
  }
473
473
  }
474
474
 
475
+ std::string ParagraphComponentView::DefaultControlType() const noexcept {
476
+ return "text";
477
+ }
478
+
479
+ std::string ParagraphComponentView::DefaultAccessibleName() const noexcept {
480
+ return m_attributedStringBox.getValue().getString();
481
+ }
482
+
475
483
  winrt::Microsoft::ReactNative::Composition::IVisual ParagraphComponentView::Visual() const noexcept {
476
484
  return m_visual;
477
485
  }
@@ -36,11 +36,14 @@ struct ParagraphComponentView : CompositionBaseComponentView {
36
36
  void finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept override;
37
37
  void prepareForRecycle() noexcept override;
38
38
  facebook::react::Props::Shared props() noexcept override;
39
- facebook::react::Tag hitTest(facebook::react::Point pt, facebook::react::Point &localPt) const noexcept override;
39
+ facebook::react::Tag hitTest(facebook::react::Point pt, facebook::react::Point &localPt, bool ignorePointerEvents)
40
+ const noexcept override;
40
41
  void OnRenderingDeviceLost() noexcept override;
41
- facebook::react::SharedTouchEventEmitter touchEventEmitterAtPoint(facebook::react::Point pt) noexcept override;
42
+ facebook::react::SharedViewEventEmitter eventEmitterAtPoint(facebook::react::Point pt) noexcept override;
42
43
 
43
44
  winrt::Microsoft::ReactNative::Composition::IVisual Visual() const noexcept override;
45
+ virtual std::string DefaultControlType() const noexcept override;
46
+ virtual std::string DefaultAccessibleName() const noexcept override;
44
47
 
45
48
  private:
46
49
  ParagraphComponentView(
@@ -53,13 +56,13 @@ struct ParagraphComponentView : CompositionBaseComponentView {
53
56
  void updateTextAlignment(const std::optional<facebook::react::TextAlignment> &fbAlignment) noexcept;
54
57
 
55
58
  std::shared_ptr<facebook::react::ParagraphProps const> m_props;
56
- winrt::Microsoft::ReactNative::Composition::SpriteVisual m_visual{nullptr};
59
+ winrt::Microsoft::ReactNative::Composition::ISpriteVisual m_visual{nullptr};
57
60
  winrt::com_ptr<::IDWriteTextLayout> m_textLayout;
58
61
  facebook::react::AttributedStringBox m_attributedStringBox;
59
62
  facebook::react::ParagraphAttributes m_paragraphAttributes;
60
63
 
61
64
  bool m_requireRedraw{true};
62
- winrt::Microsoft::ReactNative::Composition::ICompositionDrawingSurface m_drawingSurface;
65
+ winrt::Microsoft::ReactNative::Composition::IDrawingSurfaceBrush m_drawingSurface;
63
66
  };
64
67
 
65
68
  } // namespace Microsoft::ReactNative
@@ -51,12 +51,45 @@ void ReactCompositionViewComponentBuilder::SetMessageHandler(MessageHandler impl
51
51
  m_messageHandler = impl;
52
52
  }
53
53
 
54
+ void ReactCompositionViewComponentBuilder::SetKeyDownHandler(KeyHandler impl) noexcept {
55
+ m_keyDown = impl;
56
+ }
57
+
58
+ void ReactCompositionViewComponentBuilder::SetKeyUpHandler(KeyHandler impl) noexcept {
59
+ m_keyUp = impl;
60
+ }
61
+
62
+ void ReactCompositionViewComponentBuilder::SetPointerEnteredHandler(PointerHandler impl) noexcept {
63
+ m_pointerEntered = impl;
64
+ }
65
+
66
+ void ReactCompositionViewComponentBuilder::SetPointerExitedHandler(PointerHandler impl) noexcept {
67
+ m_pointerExited = impl;
68
+ }
69
+
70
+ void ReactCompositionViewComponentBuilder::SetPointerReleasedHandler(PointerHandler impl) noexcept {
71
+ m_pointerReleased = impl;
72
+ }
73
+
74
+ void ReactCompositionViewComponentBuilder::SetPointerPressedHandler(PointerHandler impl) noexcept {
75
+ m_pointerPressed = impl;
76
+ }
77
+
78
+ void ReactCompositionViewComponentBuilder::SetPointerMovedHandler(PointerHandler impl) noexcept {
79
+ m_pointerMoved = impl;
80
+ }
81
+
82
+ void ReactCompositionViewComponentBuilder::SetPointerWheelChangedHandler(PointerHandler impl) noexcept {
83
+ m_pointerWheelChanged = impl;
84
+ }
85
+
54
86
  winrt::Windows::Foundation::IInspectable ReactCompositionViewComponentBuilder::CreateView(
87
+ IReactContext reactContext,
55
88
  ICompositionContext context) noexcept {
56
- return m_createView(context);
89
+ return m_createView(reactContext, context);
57
90
  }
58
91
 
59
- bool ReactCompositionViewComponentBuilder::HandeCommand(
92
+ bool ReactCompositionViewComponentBuilder::HandleCommand(
60
93
  winrt::Windows::Foundation::IInspectable handle,
61
94
  winrt::hstring commandName,
62
95
  IJSValueReader args) noexcept {
@@ -103,4 +136,70 @@ int64_t ReactCompositionViewComponentBuilder::SendMessage(
103
136
  return m_messageHandler(handle, msg, wparam, lparam);
104
137
  }
105
138
 
139
+ void ReactCompositionViewComponentBuilder::OnKeyDown(
140
+ winrt::Windows::Foundation::IInspectable handle,
141
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
142
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept {
143
+ if (m_keyDown) {
144
+ m_keyDown(handle, source, args);
145
+ }
146
+ }
147
+
148
+ void ReactCompositionViewComponentBuilder::OnKeyUp(
149
+ winrt::Windows::Foundation::IInspectable handle,
150
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
151
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept {
152
+ if (m_keyUp) {
153
+ m_keyUp(handle, source, args);
154
+ }
155
+ }
156
+
157
+ void ReactCompositionViewComponentBuilder::OnPointerEntered(
158
+ winrt::Windows::Foundation::IInspectable handle,
159
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
160
+ if (m_pointerEntered) {
161
+ m_pointerEntered(handle, args);
162
+ }
163
+ }
164
+
165
+ void ReactCompositionViewComponentBuilder::OnPointerExited(
166
+ winrt::Windows::Foundation::IInspectable handle,
167
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
168
+ if (m_pointerExited) {
169
+ m_pointerExited(handle, args);
170
+ }
171
+ }
172
+
173
+ void ReactCompositionViewComponentBuilder::OnPointerPressed(
174
+ winrt::Windows::Foundation::IInspectable handle,
175
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
176
+ if (m_pointerPressed) {
177
+ m_pointerPressed(handle, args);
178
+ }
179
+ }
180
+
181
+ void ReactCompositionViewComponentBuilder::OnPointerReleased(
182
+ winrt::Windows::Foundation::IInspectable handle,
183
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
184
+ if (m_pointerReleased) {
185
+ m_pointerReleased(handle, args);
186
+ }
187
+ }
188
+
189
+ void ReactCompositionViewComponentBuilder::OnPointerMoved(
190
+ winrt::Windows::Foundation::IInspectable handle,
191
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
192
+ if (m_pointerMoved) {
193
+ m_pointerMoved(handle, args);
194
+ }
195
+ }
196
+
197
+ void ReactCompositionViewComponentBuilder::OnPointerWheelChanged(
198
+ winrt::Windows::Foundation::IInspectable handle,
199
+ const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
200
+ if (m_pointerWheelChanged) {
201
+ m_pointerWheelChanged(handle, args);
202
+ }
203
+ }
204
+
106
205
  } // namespace winrt::Microsoft::ReactNative::Composition