react-native-windows 0.73.10 → 0.74.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 (773) hide show
  1. package/.flowconfig +12 -7
  2. package/Chakra/ChakraUtils.cpp +5 -10
  3. package/Chakra/ChakraUtils.h +2 -2
  4. package/Common/packages.lock.json +3 -3
  5. package/Directory.Build.props +5 -5
  6. package/Folly/Folly.vcxproj +2 -2
  7. package/Folly/Folly.vcxproj.filters +7 -0
  8. package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +22 -1
  9. package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +4 -1
  10. package/Folly/cgmanifest.json +1 -1
  11. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +6 -0
  12. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +6 -0
  13. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +4 -45
  14. package/Libraries/Alert/Alert.windows.js +2 -3
  15. package/Libraries/Alert/NativeAlertManager.js +4 -26
  16. package/Libraries/Animated/Animated.js +2 -2
  17. package/Libraries/Animated/AnimatedPlatformConfig.js +1 -1
  18. package/Libraries/Animated/NativeAnimatedHelper.js +14 -11
  19. package/Libraries/Animated/NativeAnimatedModule.js +4 -68
  20. package/Libraries/Animated/NativeAnimatedTurboModule.js +4 -69
  21. package/Libraries/Animated/animations/Animation.js +6 -22
  22. package/Libraries/Animated/components/AnimatedFlatList.js +1 -16
  23. package/Libraries/Animated/components/AnimatedScrollView.js +36 -31
  24. package/Libraries/Animated/components/AnimatedSectionList.js +1 -20
  25. package/Libraries/Animated/createAnimatedComponent.js +45 -40
  26. package/Libraries/Animated/nodes/AnimatedStyle.js +1 -1
  27. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +1 -1
  28. package/Libraries/Animated/useAnimatedProps.js +21 -1
  29. package/Libraries/AppState/NativeAppState.js +4 -24
  30. package/Libraries/AppTheme/NativeAppTheme.js +4 -25
  31. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  32. package/Libraries/Blob/Blob.js +1 -4
  33. package/Libraries/Blob/BlobManager.js +6 -8
  34. package/Libraries/Blob/File.js +1 -1
  35. package/Libraries/Blob/NativeBlobModule.js +4 -50
  36. package/Libraries/Blob/NativeFileReaderModule.js +4 -13
  37. package/Libraries/BugReporting/NativeBugReporting.js +4 -12
  38. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +3 -23
  39. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +4 -57
  40. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +3 -2
  41. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.windows.js +3 -2
  42. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +9 -40
  43. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +3 -43
  44. package/Libraries/Components/Button.js +103 -107
  45. package/Libraries/Components/Button.windows.js +199 -206
  46. package/Libraries/Components/Clipboard/NativeClipboard.js +3 -11
  47. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +3 -114
  48. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -5
  49. package/Libraries/Components/Keyboard/KeyboardExt.d.ts +8 -8
  50. package/Libraries/Components/Keyboard/KeyboardExt.js +27 -27
  51. package/Libraries/Components/Keyboard/KeyboardExt.js.map +1 -1
  52. package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +17 -17
  53. package/Libraries/Components/Keyboard/KeyboardExtProps.js +7 -7
  54. package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
  55. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +3 -10
  56. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.android.js +69 -0
  57. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.d.ts +24 -0
  58. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.js +33 -0
  59. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroidNativeComponent.js +13 -0
  60. package/Libraries/Components/Pressable/Pressable.js +1 -1
  61. package/Libraries/Components/Pressable/Pressable.windows.js +1 -2
  62. package/Libraries/Components/Pressable/useAndroidRippleForView.js +5 -4
  63. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +4 -24
  64. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +3 -64
  65. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +3 -61
  66. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  67. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -1
  68. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +3 -15
  69. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +3 -16
  70. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
  71. package/Libraries/Components/ScrollView/ScrollView.d.ts +5 -6
  72. package/Libraries/Components/ScrollView/ScrollView.js +12 -38
  73. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -2
  74. package/Libraries/Components/Sound/NativeSoundManager.js +3 -12
  75. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +3 -58
  76. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +3 -79
  77. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +4 -53
  78. package/Libraries/Components/Switch/Switch.js +0 -2
  79. package/Libraries/Components/Switch/Switch.windows.js +0 -2
  80. package/Libraries/Components/Switch/SwitchNativeComponent.js +4 -52
  81. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -0
  82. package/Libraries/Components/TextInput/InputAccessoryView.js +18 -20
  83. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +4 -17
  84. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -6
  85. package/Libraries/Components/TextInput/TextInput.d.ts +16 -0
  86. package/Libraries/Components/TextInput/TextInput.flow.js +16 -0
  87. package/Libraries/Components/TextInput/TextInput.js +65 -32
  88. package/Libraries/Components/TextInput/TextInput.windows.js +87 -38
  89. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +773 -9
  90. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +3 -28
  91. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  92. package/Libraries/Components/Touchable/Touchable.js +2 -3
  93. package/Libraries/Components/Touchable/Touchable.windows.js +2 -3
  94. package/Libraries/Components/Touchable/TouchableHighlight.js +4 -4
  95. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +4 -4
  96. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
  97. package/Libraries/Components/Touchable/TouchableOpacity.js +5 -2
  98. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +5 -2
  99. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +3 -16
  100. package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -1
  101. package/Libraries/Components/View/View.js +0 -11
  102. package/Libraries/Components/View/View.windows.js +19 -18
  103. package/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
  104. package/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
  105. package/Libraries/Components/View/ViewPropTypes.js +36 -36
  106. package/Libraries/Components/View/ViewPropTypes.windows.js +36 -36
  107. package/Libraries/Core/InitializeCore.js +1 -1
  108. package/Libraries/Core/NativeExceptionsManager.js +3 -93
  109. package/Libraries/Core/ReactNativeVersion.js +12 -6
  110. package/Libraries/Core/ReactNativeVersionCheck.js +6 -6
  111. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +3 -18
  112. package/Libraries/Core/Timers/NativeTiming.js +3 -16
  113. package/Libraries/Core/registerCallableModule.js +42 -0
  114. package/Libraries/Core/setUpPerformance.js +2 -2
  115. package/Libraries/Core/setUpPerformanceObserver.js +3 -1
  116. package/Libraries/Debugging/DebuggingOverlay.js +111 -0
  117. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
  118. package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
  119. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
  120. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +3 -14
  121. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +3 -9
  122. package/Libraries/Image/AssetSourceResolver.js +5 -5
  123. package/Libraries/Image/AssetUtils.js +4 -5
  124. package/Libraries/Image/Image.android.js +146 -174
  125. package/Libraries/Image/Image.d.ts +1 -1
  126. package/Libraries/Image/Image.ios.js +53 -79
  127. package/Libraries/Image/Image.windows.js +53 -79
  128. package/Libraries/Image/ImageBackground.js +2 -2
  129. package/Libraries/Image/ImageInjection.js +76 -18
  130. package/Libraries/Image/ImageTypes.flow.js +71 -0
  131. package/Libraries/Image/ImageUtils.js +1 -1
  132. package/Libraries/Image/ImageViewNativeComponent.js +18 -0
  133. package/Libraries/Image/NativeImageEditor.js +3 -42
  134. package/Libraries/Image/NativeImageLoaderAndroid.js +4 -28
  135. package/Libraries/Image/NativeImageLoaderIOS.js +4 -28
  136. package/Libraries/Image/NativeImageStoreAndroid.js +3 -16
  137. package/Libraries/Image/NativeImageStoreIOS.js +3 -23
  138. package/Libraries/Image/resolveAssetSource.js +59 -26
  139. package/Libraries/Image/resolveAssetSource.windows.js +148 -0
  140. package/Libraries/Inspector/ElementProperties.js +26 -52
  141. package/Libraries/Inspector/Inspector.js +122 -186
  142. package/Libraries/Inspector/InspectorOverlay.js +21 -33
  143. package/Libraries/Inspector/InspectorPanel.js +3 -17
  144. package/Libraries/Inspector/ReactDevToolsOverlay.js +171 -0
  145. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +20 -8
  146. package/Libraries/Interaction/FrameRateLogger.js +8 -18
  147. package/Libraries/Interaction/NativeFrameRateLogger.js +4 -16
  148. package/Libraries/IntersectionObserver/IntersectionObserver.js +1 -1
  149. package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +20 -19
  150. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +84 -6
  151. package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +3 -31
  152. package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +12 -2
  153. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -2
  154. package/Libraries/Linking/NativeIntentAndroid.js +3 -20
  155. package/Libraries/Linking/NativeLinkingManager.js +3 -17
  156. package/Libraries/Lists/FillRateHelper.js +1 -1
  157. package/Libraries/Lists/FlatList.d.ts +2 -2
  158. package/Libraries/Lists/FlatList.js +6 -1
  159. package/Libraries/Lists/FlatList.windows.js +717 -0
  160. package/Libraries/Lists/SectionList.d.ts +6 -1
  161. package/Libraries/Lists/ViewabilityHelper.js +1 -1
  162. package/Libraries/Lists/VirtualizeUtils.js +1 -1
  163. package/Libraries/Lists/VirtualizedList.js +1 -1
  164. package/Libraries/Lists/VirtualizedListContext.js +1 -1
  165. package/Libraries/Lists/VirtualizedSectionList.js +1 -1
  166. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  167. package/Libraries/Modal/Modal.js +43 -11
  168. package/Libraries/Modal/NativeModalManager.js +3 -11
  169. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -129
  170. package/Libraries/MutationObserver/MutationObserver.js +1 -1
  171. package/Libraries/MutationObserver/MutationObserverManager.js +2 -2
  172. package/Libraries/MutationObserver/MutationRecord.js +12 -10
  173. package/Libraries/MutationObserver/NativeMutationObserver.js +3 -48
  174. package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +1 -1
  175. package/Libraries/NativeComponent/BaseViewConfig.android.js +1 -0
  176. package/Libraries/NativeComponent/BaseViewConfig.windows.js +3 -0
  177. package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
  178. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +3 -10
  179. package/Libraries/NativeModules/specs/NativeDevMenu.js +3 -13
  180. package/Libraries/NativeModules/specs/NativeDevSettings.js +3 -23
  181. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +3 -9
  182. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +3 -38
  183. package/Libraries/NativeModules/specs/NativeDialogManagerWindows.js +11 -0
  184. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -10
  185. package/Libraries/NativeModules/specs/NativeRedBox.js +4 -11
  186. package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -25
  187. package/Libraries/Network/FormData.js +3 -1
  188. package/Libraries/Network/NativeNetworkingAndroid.js +4 -28
  189. package/Libraries/Network/NativeNetworkingIOS.js +4 -28
  190. package/Libraries/NewAppScreen/components/DebugInstructions.windows.js +4 -2
  191. package/Libraries/NewAppScreen/components/ReloadInstructions.windows.js +3 -1
  192. package/Libraries/Performance/NativeJSCSamplingProfiler.js +3 -9
  193. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -68
  194. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  195. package/Libraries/Pressability/Pressability.js +12 -2
  196. package/Libraries/Pressability/Pressability.windows.js +13 -3
  197. package/Libraries/Pressability/usePressability.js +7 -0
  198. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +4 -70
  199. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +45 -39
  200. package/Libraries/ReactNative/AppContainer-dev.js +192 -0
  201. package/Libraries/ReactNative/AppContainer-prod.js +53 -0
  202. package/Libraries/ReactNative/AppContainer.js +6 -149
  203. package/Libraries/ReactNative/AppRegistry.js +3 -1
  204. package/Libraries/ReactNative/BridgelessUIManager.js +375 -128
  205. package/Libraries/ReactNative/FabricUIManager.js +6 -0
  206. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +3 -10
  207. package/Libraries/ReactNative/NativeI18nManager.js +3 -18
  208. package/Libraries/ReactNative/NativeUIManager.js +4 -112
  209. package/Libraries/ReactNative/PaperUIManager.js +8 -7
  210. package/Libraries/ReactNative/PaperUIManager.windows.js +29 -8
  211. package/Libraries/ReactNative/ReactFabricInternals.js +1 -1
  212. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +24 -5
  213. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -45
  214. package/Libraries/ReactNative/RendererImplementation.js +11 -0
  215. package/Libraries/ReactNative/UIManager.d.ts +11 -34
  216. package/Libraries/ReactNative/UIManager.js +2 -23
  217. package/Libraries/ReactNative/UIManagerProperties.js +0 -2
  218. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +23 -1
  219. package/Libraries/ReactNative/getNativeComponentAttributes.js +5 -1
  220. package/Libraries/ReactNative/renderApplication.js +9 -6
  221. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +6 -1
  222. package/Libraries/Renderer/implementations/ReactFabric-dev.js +24771 -21123
  223. package/Libraries/Renderer/implementations/ReactFabric-prod.js +4160 -3109
  224. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4384 -3322
  225. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +25194 -21398
  226. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3763 -2636
  227. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4027 -2867
  228. package/Libraries/Renderer/shims/ReactNativeTypes.js +8 -9
  229. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -12
  230. package/Libraries/Settings/NativeSettingsManager.js +4 -16
  231. package/Libraries/Share/NativeShareModule.js +3 -13
  232. package/Libraries/StyleSheet/PlatformColorValueTypes.windows.js +1 -1
  233. package/Libraries/StyleSheet/StyleSheet.d.ts +1 -20
  234. package/Libraries/StyleSheet/StyleSheet.js +5 -28
  235. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +47 -7
  236. package/Libraries/StyleSheet/StyleSheetTypes.js +16 -11
  237. package/Libraries/StyleSheet/flattenStyle.js +2 -2
  238. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  239. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  240. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  241. package/Libraries/Text/Text.js +0 -6
  242. package/Libraries/Text/Text.windows.js +0 -6
  243. package/Libraries/Text/TextAncestor.js +2 -3
  244. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +4 -41
  245. package/Libraries/Types/ReactDevToolsTypes.js +58 -0
  246. package/Libraries/Types/UIManagerJSInterface.js +16 -0
  247. package/Libraries/Utilities/DebugEnvironment.js +1 -4
  248. package/Libraries/Utilities/Dimensions.js +8 -16
  249. package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -2
  250. package/Libraries/Utilities/NativeAppearance.js +3 -26
  251. package/Libraries/Utilities/NativeDevLoadingView.js +3 -14
  252. package/Libraries/Utilities/NativeDeviceInfo.js +2 -47
  253. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +3 -34
  254. package/Libraries/Utilities/NativePlatformConstantsIOS.js +3 -26
  255. package/Libraries/Utilities/NativePlatformConstantsWin.js +3 -23
  256. package/Libraries/Utilities/PixelRatio.d.ts +4 -4
  257. package/Libraries/Utilities/Platform.android.js +4 -0
  258. package/Libraries/Utilities/Platform.d.ts +3 -0
  259. package/Libraries/Utilities/Platform.flow.js +7 -0
  260. package/Libraries/Utilities/Platform.flow.windows.js +9 -0
  261. package/Libraries/Utilities/Platform.ios.js +11 -0
  262. package/Libraries/Utilities/Platform.windows.js +6 -0
  263. package/Libraries/Utilities/binaryToBase64.js +1 -1
  264. package/Libraries/Utilities/codegenNativeComponent.js +4 -6
  265. package/Libraries/Utilities/createPerformanceLogger.js +2 -74
  266. package/Libraries/Utilities/useMergeRefs.js +5 -9
  267. package/Libraries/Vibration/NativeVibration.js +3 -14
  268. package/Libraries/WebSocket/NativeWebSocketModule.js +4 -25
  269. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  270. package/Libraries/vendor/emitter/EventEmitter.js +1 -0
  271. package/Microsoft.ReactNative/AsynchronousEventBeat.cpp +50 -0
  272. package/Microsoft.ReactNative/AsynchronousEventBeat.h +23 -0
  273. package/Microsoft.ReactNative/Base/CoreUIManagers.cpp +4 -0
  274. package/Microsoft.ReactNative/Base/CxxReactIncludes.h +1 -1
  275. package/Microsoft.ReactNative/Base/FollyIncludes.h +2 -2
  276. package/Microsoft.ReactNative/ComponentView.idl +106 -0
  277. package/Microsoft.ReactNative/Composition.Input.idl +16 -2
  278. package/Microsoft.ReactNative/CompositionComponentView.idl +117 -0
  279. package/Microsoft.ReactNative/CompositionContext.idl +1 -1
  280. package/Microsoft.ReactNative/CompositionRootView.idl +8 -0
  281. package/Microsoft.ReactNative/CompositionSwitcher.idl +25 -14
  282. package/Microsoft.ReactNative/DevMenuControl.idl +0 -3
  283. package/Microsoft.ReactNative/DevMenuControl.xaml +0 -15
  284. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +189 -0
  285. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.h +80 -0
  286. package/Microsoft.ReactNative/Fabric/AbiShadowNode.cpp +83 -0
  287. package/Microsoft.ReactNative/Fabric/AbiShadowNode.h +83 -0
  288. package/Microsoft.ReactNative/Fabric/AbiState.cpp +71 -0
  289. package/Microsoft.ReactNative/Fabric/AbiState.h +38 -0
  290. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +48 -19
  291. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +8 -16
  292. package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +97 -0
  293. package/Microsoft.ReactNative/Fabric/AbiViewProps.h +39 -0
  294. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.cpp +90 -0
  295. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.h +87 -0
  296. package/Microsoft.ReactNative/Fabric/ComponentView.cpp +340 -0
  297. package/Microsoft.ReactNative/Fabric/ComponentView.h +130 -64
  298. package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.cpp +48 -24
  299. package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.h +18 -14
  300. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +42 -27
  301. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.h +3 -1
  302. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +123 -28
  303. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +69 -13
  304. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +651 -284
  305. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +7 -7
  306. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +9 -9
  307. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +120 -31
  308. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +12 -2
  309. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +308 -129
  310. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +34 -6
  311. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +2 -1
  312. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +61 -54
  313. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +0 -9
  314. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +99 -30
  315. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +4 -3
  316. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +273 -28
  317. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +28 -3
  318. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView_emptyimpl.cpp +7 -3
  319. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService.cpp +4 -0
  320. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +479 -280
  321. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +133 -79
  322. package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +113 -0
  323. package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.h +39 -0
  324. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +61 -41
  325. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +19 -14
  326. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentDescriptor.h +39 -0
  327. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +343 -0
  328. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.h +67 -0
  329. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewShadowNode.cpp +18 -0
  330. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewShadowNode.h +39 -0
  331. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +53 -186
  332. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +20 -12
  333. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +59 -150
  334. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +27 -76
  335. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +81 -32
  336. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +27 -14
  337. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +707 -64
  338. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +47 -26
  339. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +225 -125
  340. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +34 -21
  341. package/Microsoft.ReactNative/Fabric/Composition/TextDrawing.cpp +179 -0
  342. package/Microsoft.ReactNative/Fabric/Composition/TextDrawing.h +25 -0
  343. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +110 -115
  344. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +228 -79
  345. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +43 -22
  346. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputEventEmitter.cpp +18 -0
  347. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputEventEmitter.h +12 -0
  348. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +5 -5
  349. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +5 -1
  350. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +1 -2
  351. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +4 -44
  352. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +11 -9
  353. package/Microsoft.ReactNative/Fabric/Composition/Theme.cpp +550 -0
  354. package/Microsoft.ReactNative/Fabric/Composition/Theme.h +73 -0
  355. package/Microsoft.ReactNative/Fabric/Composition/Theme_emptyimpl.cpp +85 -0
  356. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +48 -26
  357. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +6 -2
  358. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +30 -65
  359. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +16 -25
  360. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +72 -88
  361. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +5 -2
  362. package/Microsoft.ReactNative/Fabric/IComponentViewRegistry.h +3 -2
  363. package/Microsoft.ReactNative/Fabric/ReactNativeConfigProperties.cpp +6 -6
  364. package/Microsoft.ReactNative/Fabric/ReactNativeConfigProperties.h +2 -2
  365. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +12 -7
  366. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +28 -19
  367. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.h +5 -0
  368. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +0 -2
  369. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +5 -1
  370. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/WindowsViewEvents.h +2 -4
  371. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Float.h +20 -0
  372. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +86 -0
  373. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorParser.h +38 -0
  374. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/{Color.cpp → PlatformColorUtils.cpp} +7 -77
  375. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.h +12 -0
  376. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +1 -0
  377. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +2 -0
  378. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +6 -87
  379. package/Microsoft.ReactNative/IReactContext.idl +3 -0
  380. package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +71 -1
  381. package/Microsoft.ReactNative/JsiApi.cpp +17 -7
  382. package/Microsoft.ReactNative/JsiApi.h +2 -2
  383. package/Microsoft.ReactNative/JsiApi.idl +5 -4
  384. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +13 -22
  385. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +6 -2
  386. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +1 -1
  387. package/Microsoft.ReactNative/Modules/AlertModule.h +2 -2
  388. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +12 -8
  389. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.h +1 -1
  390. package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -2
  391. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +5 -3
  392. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.h +4 -4
  393. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +10 -1
  394. package/Microsoft.ReactNative/Modules/ClipboardModule.h +1 -1
  395. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +71 -38
  396. package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +5 -5
  397. package/Microsoft.ReactNative/Modules/ExceptionsManager.cpp +110 -0
  398. package/Microsoft.ReactNative/Modules/ExceptionsManager.h +54 -0
  399. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.h +11 -10
  400. package/Microsoft.ReactNative/Modules/LinkingManagerModule.h +8 -6
  401. package/Microsoft.ReactNative/Modules/LogBoxModule.h +3 -3
  402. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +5 -28
  403. package/Microsoft.ReactNative/Modules/NativeUIManager.h +1 -1
  404. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +8 -5
  405. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +3 -3
  406. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.cpp +49 -0
  407. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.h +18 -0
  408. package/Microsoft.ReactNative/Modules/SourceCode.cpp +31 -0
  409. package/Microsoft.ReactNative/Modules/SourceCode.h +28 -0
  410. package/Microsoft.ReactNative/Modules/StatusBarManager.h +12 -0
  411. package/Microsoft.ReactNative/Modules/Timing.cpp +325 -0
  412. package/Microsoft.ReactNative/Modules/Timing.h +121 -0
  413. package/Microsoft.ReactNative/QuirkSettings.cpp +32 -0
  414. package/Microsoft.ReactNative/QuirkSettings.h +9 -0
  415. package/Microsoft.ReactNative/QuirkSettings.idl +6 -0
  416. package/Microsoft.ReactNative/ReactCoreInjection.cpp +15 -0
  417. package/Microsoft.ReactNative/ReactCoreInjection.h +4 -0
  418. package/Microsoft.ReactNative/ReactCoreInjection.idl +8 -0
  419. package/Microsoft.ReactNative/ReactHost/IReactInstance.h +1 -1
  420. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +1 -1
  421. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +556 -234
  422. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +36 -9
  423. package/Microsoft.ReactNative/ReactInstanceSettings.idl +3 -0
  424. package/Microsoft.ReactNative/ReactPointerEventArgs.cpp +8 -0
  425. package/Microsoft.ReactNative/ReactPointerEventArgs.h +4 -0
  426. package/Microsoft.ReactNative/ReactPointerEventArgs.idl +12 -0
  427. package/Microsoft.ReactNative/SchedulerSettings.cpp +23 -0
  428. package/Microsoft.ReactNative/SchedulerSettings.h +9 -1
  429. package/Microsoft.ReactNative/SynchronousEventBeat.cpp +41 -0
  430. package/Microsoft.ReactNative/SynchronousEventBeat.h +29 -0
  431. package/Microsoft.ReactNative/Theme.idl +57 -0
  432. package/Microsoft.ReactNative/Timer.cpp +63 -0
  433. package/Microsoft.ReactNative/{CoreAppPage.h → Timer.h} +12 -5
  434. package/Microsoft.ReactNative/Timer.idl +34 -0
  435. package/Microsoft.ReactNative/TurboModulesProvider.cpp +4 -0
  436. package/Microsoft.ReactNative/Utils/ImageUtils.cpp +37 -3
  437. package/Microsoft.ReactNative/Utils/ImageUtils.h +0 -1
  438. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +11 -12
  439. package/Microsoft.ReactNative/Utils/LocalBundleReader.h +3 -3
  440. package/Microsoft.ReactNative/Utils/ThemeUtils.cpp +33 -0
  441. package/Microsoft.ReactNative/Utils/ThemeUtils.h +13 -0
  442. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +0 -5
  443. package/Microsoft.ReactNative/Utils/ValueUtils.h +0 -3
  444. package/Microsoft.ReactNative/ViewProps.idl +17 -0
  445. package/Microsoft.ReactNative/Views/ActivityIndicatorViewManager.cpp +1 -0
  446. package/Microsoft.ReactNative/Views/DebuggingOverlayViewManager.cpp +54 -0
  447. package/Microsoft.ReactNative/Views/DebuggingOverlayViewManager.h +30 -0
  448. package/Microsoft.ReactNative/Views/DevMenu.cpp +1 -20
  449. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +157 -0
  450. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.h +5 -0
  451. package/Microsoft.ReactNative/Views/DynamicAutomationProperties.cpp +20 -0
  452. package/Microsoft.ReactNative/Views/DynamicAutomationProperties.h +4 -0
  453. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +1 -5
  454. package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +137 -0
  455. package/Microsoft.ReactNative/Views/ICompositionRootView.h +0 -1
  456. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +0 -5
  457. package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -5
  458. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +11 -0
  459. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +3 -4
  460. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +0 -6
  461. package/Microsoft.ReactNative/Views/TextViewManager.cpp +0 -11
  462. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +1 -1
  463. package/Microsoft.ReactNative/Views/UnimplementedViewManager.cpp +79 -0
  464. package/Microsoft.ReactNative/Views/UnimplementedViewManager.h +27 -0
  465. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +46 -0
  466. package/Microsoft.ReactNative/Views/ViewManagerBase.h +1 -1
  467. package/Microsoft.ReactNative/Views/cppwinrt/DynamicAutomationPeer.idl +77 -2
  468. package/Microsoft.ReactNative/microsoft.reactnative.def +0 -3
  469. package/Microsoft.ReactNative/packages.lock.json +9 -6
  470. package/{Shared/Composition → Microsoft.ReactNative.Cxx}/AutoDraw.h +2 -0
  471. package/{Shared/Composition → Microsoft.ReactNative.Cxx}/CompositionSwitcher.interop.h +4 -10
  472. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +0 -5
  473. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +5 -0
  474. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +19 -10
  475. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +2 -0
  476. package/Microsoft.ReactNative.Cxx/JSValueComposition.h +22 -0
  477. package/Microsoft.ReactNative.Cxx/JSValueReader.h +19 -0
  478. package/Microsoft.ReactNative.Cxx/JSValueXaml.h +1 -1
  479. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +6 -4
  480. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +0 -1
  481. package/Microsoft.ReactNative.Cxx/NativeModules.h +15 -15
  482. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.cpp +1 -1
  483. package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +2 -0
  484. package/Microsoft.ReactNative.Managed/packages.lock.json +6 -3
  485. package/Microsoft.ReactNative.Managed.CodeGen/Microsoft.ReactNative.Managed.CodeGen.csproj +0 -1
  486. package/Mso/future/details/executor.h +1 -1
  487. package/Mso/src/debugAssertApi/debugAssertApi.cpp +1 -1
  488. package/PropertySheets/External/Microsoft.ReactNative.Composition.Common.props +8 -0
  489. package/PropertySheets/External/Microsoft.ReactNative.Composition.CppLib.props +24 -0
  490. package/PropertySheets/External/Microsoft.ReactNative.Composition.CppLib.targets +20 -0
  491. package/PropertySheets/External/Microsoft.ReactNative.Cpp.Dependencies.props +1 -1
  492. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +2 -0
  493. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  494. package/PropertySheets/JSEngine.props +0 -8
  495. package/PropertySheets/React.Cpp.props +14 -3
  496. package/PropertySheets/ReactCommunity.cpp.props +2 -2
  497. package/PropertySheets/Release.props +0 -1
  498. package/PropertySheets/WinUI.props +21 -1
  499. package/PropertySheets/x64.props +3 -0
  500. package/PropertySheets/x86.props +3 -0
  501. package/ReactCommon/ReactCommon.vcxproj +13 -8
  502. package/ReactCommon/ReactCommon.vcxproj.filters +12 -1
  503. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +114 -19
  504. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.cpp +66 -0
  505. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +114 -52
  506. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +13 -15
  507. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +535 -0
  508. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +437 -0
  509. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.cpp +39 -0
  510. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.h +31 -0
  511. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/YGEnums.h +19 -24
  512. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/algorithm/CalculateLayout.cpp +600 -980
  513. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/enums/ExperimentalFeature.h +5 -11
  514. package/ReactCommon/cgmanifest.json +1 -1
  515. package/Scripts/EnableInternalWinAppSDKFeed.ps1 +21 -0
  516. package/Scripts/IntegrationTests.ps1 +26 -15
  517. package/Scripts/Microsoft.ReactNative.targets +0 -6
  518. package/Scripts/OfficeReact.Win32.nuspec +1 -2
  519. package/Scripts/TestServers.ps1 +2 -28
  520. package/Scripts/Tfs/Start-TestServers.ps1 +1 -21
  521. package/Scripts/Tfs/Stop-TestServers.ps1 +0 -5
  522. package/Scripts/rnw-dependencies.ps1 +38 -67
  523. package/Shared/CreateInstance.h +25 -0
  524. package/Shared/DevServerHelper.h +0 -3
  525. package/Shared/DevSettings.h +9 -0
  526. package/Shared/HermesRuntimeHolder.cpp +17 -0
  527. package/Shared/HermesRuntimeHolder.h +17 -0
  528. package/Shared/HermesSamplingProfiler.cpp +12 -10
  529. package/Shared/HermesSamplingProfiler.h +5 -4
  530. package/Shared/IDevSupportManager.h +4 -2
  531. package/Shared/InstanceManager.cpp +13 -11
  532. package/Shared/InstanceManager.h +8 -18
  533. package/Shared/JSI/ChakraRuntime.cpp +66 -9
  534. package/Shared/JSI/ChakraRuntime.h +8 -0
  535. package/Shared/JSI/JSExecutorFactoryDelegate.h +12 -0
  536. package/Shared/JSI/JSExecutorFactorySettings.cpp +30 -0
  537. package/Shared/JSI/JSExecutorFactorySettings.h +21 -0
  538. package/Shared/Modules/BlobModule.h +1 -1
  539. package/Shared/Modules/FileReaderModule.h +1 -1
  540. package/Shared/Modules/HttpModule.h +1 -1
  541. package/Shared/Modules/WebSocketTurboModule.h +1 -1
  542. package/Shared/Networking/OriginPolicyHttpFilter.cpp +19 -23
  543. package/Shared/Networking/OriginPolicyHttpFilter.h +4 -7
  544. package/Shared/Networking/WinRTHttpResource.cpp +2 -4
  545. package/Shared/OInstance.cpp +212 -165
  546. package/Shared/OInstance.h +19 -0
  547. package/Shared/Shared.vcxitems +134 -50
  548. package/Shared/Shared.vcxitems.filters +81 -24
  549. package/Shared/Utils.cpp +12 -10
  550. package/Shared/Utils.h +2 -2
  551. package/Shared/WebSocketJSExecutorFactory.h +1 -0
  552. package/codegen/NativeBugReportingSpec.g.h +0 -6
  553. package/codegen/NativeFrameRateLoggerSpec.g.h +0 -2
  554. package/codegen/NativeImageLoaderAndroidSpec.g.h +10 -23
  555. package/codegen/NativePerformanceObserverSpec.g.h +6 -0
  556. package/codegen/NativePlatformConstantsIOSSpec.g.h +2 -0
  557. package/codegen/NativePlatformConstantsWinSpec.g.h +17 -0
  558. package/codegen/NativePushNotificationManagerIOSSpec.g.h +8 -6
  559. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +88 -0
  560. package/codegen/NativeUIManagerSpec.g.h +83 -95
  561. package/codegen/react/components/rnwcore/ComponentDescriptors.h +10 -7
  562. package/codegen/react/components/rnwcore/EventEmitters.cpp +40 -52
  563. package/codegen/react/components/rnwcore/EventEmitters.h +66 -84
  564. package/codegen/react/components/rnwcore/Props.cpp +60 -95
  565. package/codegen/react/components/rnwcore/Props.h +198 -239
  566. package/codegen/react/components/rnwcore/ShadowNodes.cpp +6 -7
  567. package/codegen/react/components/rnwcore/ShadowNodes.h +38 -29
  568. package/codegen/react/components/rnwcore/States.cpp +3 -5
  569. package/codegen/react/components/rnwcore/States.h +29 -16
  570. package/codegen/rnwcoreJSI-generated.cpp +1442 -1398
  571. package/codegen/rnwcoreJSI.h +6066 -3593
  572. package/index.js +66 -99
  573. package/index.windows.js +60 -102
  574. package/jest/assetFileTransformer.js +1 -1
  575. package/jest/local-setup.js +0 -5
  576. package/jest/mockModal.js +2 -1
  577. package/jest/mockScrollView.js +1 -2
  578. package/jest/renderer.js +1 -1
  579. package/jest/setup.js +6 -3
  580. package/just-task.js +1 -1
  581. package/package.json +30 -29
  582. package/{Libraries/Core → src/private/core}/setUpDOM.js +2 -2
  583. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +42 -0
  584. package/src/private/featureflags/ReactNativeFeatureFlags.js +140 -0
  585. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +84 -0
  586. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +92 -0
  587. package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
  588. package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
  589. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +26 -0
  590. package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
  591. package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
  592. package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
  593. package/src/private/specs/components/PopupMenuAndroidNativeComponent.js +47 -0
  594. package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
  595. package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
  596. package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
  597. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +139 -0
  598. package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
  599. package/src/private/specs/components/SwitchNativeComponent.js +61 -0
  600. package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
  601. package/src/private/specs/modules/NativeAccessibilityInfo.js +33 -0
  602. package/src/private/specs/modules/NativeAccessibilityManager.js +66 -0
  603. package/src/private/specs/modules/NativeActionSheetManager.js +54 -0
  604. package/src/private/specs/modules/NativeAlertManager.js +35 -0
  605. package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
  606. package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
  607. package/src/private/specs/modules/NativeAnimationsDebugModule.js +20 -0
  608. package/src/private/specs/modules/NativeAppState.js +33 -0
  609. package/src/private/specs/modules/NativeAppTheme.js +33 -0
  610. package/src/private/specs/modules/NativeAppearance.js +36 -0
  611. package/src/private/specs/modules/NativeBlobModule.js +59 -0
  612. package/src/private/specs/modules/NativeBugReporting.js +20 -0
  613. package/src/private/specs/modules/NativeClipboard.js +21 -0
  614. package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
  615. package/src/private/specs/modules/NativeDevMenu.js +23 -0
  616. package/src/private/specs/modules/NativeDevSettings.js +33 -0
  617. package/src/private/specs/modules/NativeDevToolsSettingsManager.js +24 -0
  618. package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
  619. package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
  620. package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
  621. package/{Libraries/Alert → src/private/specs/modules}/NativeDialogManagerWindows.js +5 -4
  622. package/src/private/specs/modules/NativeExceptionsManager.js +103 -0
  623. package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
  624. package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
  625. package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
  626. package/src/private/specs/modules/NativeI18nManager.js +28 -0
  627. package/src/private/specs/modules/NativeImageEditor.js +52 -0
  628. package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
  629. package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
  630. package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
  631. package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
  632. package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
  633. package/src/private/specs/modules/NativeIntersectionObserver.js +41 -0
  634. package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
  635. package/src/private/specs/modules/NativeJSCSamplingProfiler.js +19 -0
  636. package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
  637. package/src/private/specs/modules/NativeLinkingManager.js +27 -0
  638. package/src/private/specs/modules/NativeLogBox.js +20 -0
  639. package/src/private/specs/modules/NativeModalManager.js +21 -0
  640. package/src/private/specs/modules/NativeMutationObserver.js +58 -0
  641. package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
  642. package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
  643. package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
  644. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
  645. package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
  646. package/src/private/specs/modules/NativePlatformConstantsWin.js +38 -0
  647. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +107 -0
  648. package/src/private/specs/modules/NativeRedBox.js +20 -0
  649. package/src/private/specs/modules/NativeSampleTurboModule.js +53 -0
  650. package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
  651. package/src/private/specs/modules/NativeSettingsManager.js +25 -0
  652. package/src/private/specs/modules/NativeShareModule.js +23 -0
  653. package/src/private/specs/modules/NativeSoundManager.js +22 -0
  654. package/src/private/specs/modules/NativeSourceCode.js +36 -0
  655. package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
  656. package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
  657. package/src/private/specs/modules/NativeTiming.js +26 -0
  658. package/src/private/specs/modules/NativeToastAndroid.js +38 -0
  659. package/src/private/specs/modules/NativeUIManager.js +118 -0
  660. package/src/private/specs/modules/NativeVibration.js +24 -0
  661. package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
  662. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReactNativeElement.js +6 -6
  663. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyCharacterData.js +2 -2
  664. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyElement.js +5 -5
  665. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyNode.js +19 -10
  666. package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/DOMRectList.js +1 -1
  667. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +85 -0
  668. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +80 -0
  669. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +161 -0
  670. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.js +2 -2
  671. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.js +3 -2
  672. package/{Libraries/WebPerformance → src/private/webapis/performance}/Performance.js +2 -2
  673. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEventTiming.js +1 -1
  674. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceObserver.js +21 -2
  675. package/{Libraries/WebPerformance → src/private/webapis/performance}/RawPerformanceEntry.js +1 -1
  676. package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformanceObserver.js +9 -0
  677. package/src/private/webapis/performance/__tests__/EventCounts-test.js +116 -0
  678. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +82 -0
  679. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +108 -0
  680. package/src/private/webapis/performance/__tests__/Performance-test.js +117 -0
  681. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +208 -0
  682. package/template/cpp-app/src/App.cpp +2 -2
  683. package/template/cs-app/src/App.xaml.cs +2 -2
  684. package/templates/cpp-app/jest.config.windows.js +3 -0
  685. package/templates/cpp-app/metro.config.js +0 -2
  686. package/templates/cpp-app/template.config.js +24 -9
  687. package/templates/cpp-app/windows/ExperimentalFeatures.props +1 -1
  688. package/templates/cpp-app/windows/MyApp/AutolinkedNativeModules.g.cpp +13 -0
  689. package/templates/cpp-app/windows/MyApp/AutolinkedNativeModules.g.h +10 -0
  690. package/templates/cpp-app/windows/MyApp/MyApp.cpp +134 -249
  691. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +12 -11
  692. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj.filters +6 -3
  693. package/templates/cpp-app/windows/MyApp/pch.h +12 -9
  694. package/templates/cpp-app/windows/MyApp/resource.h +0 -1
  695. package/templates/cpp-app/windows/MyApp.sln +26 -26
  696. package/templates/cpp-lib/example/metro.config.js +74 -0
  697. package/templates/cpp-lib/template.config.js +235 -0
  698. package/templates/cpp-lib/windows/ExperimentalFeatures.props +11 -0
  699. package/templates/cpp-lib/windows/MyLib/MyLib.cpp +18 -0
  700. package/templates/cpp-lib/windows/MyLib/MyLib.def +3 -0
  701. package/templates/cpp-lib/windows/MyLib/MyLib.h +31 -0
  702. package/templates/cpp-lib/windows/MyLib/MyLib.rc +0 -0
  703. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +148 -0
  704. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj.filters +44 -0
  705. package/templates/cpp-lib/windows/MyLib/ReactPackageProvider.cpp +20 -0
  706. package/templates/cpp-lib/windows/MyLib/ReactPackageProvider.h +24 -0
  707. package/templates/cpp-lib/windows/MyLib/ReactPackageProvider.idl +9 -0
  708. package/templates/cpp-lib/windows/MyLib/pch.cpp +1 -0
  709. package/templates/cpp-lib/windows/MyLib/pch.h +30 -0
  710. package/templates/cpp-lib/windows/MyLib/resource.h +5 -0
  711. package/templates/cpp-lib/windows/MyLib/targetver.h +8 -0
  712. package/templates/cpp-lib/windows/MyLib.sln +156 -0
  713. package/templates/cpp-lib/windows/_gitignore +41 -0
  714. package/templates/templateUtils.js +137 -0
  715. package/types/modules/globals.d.ts +1 -0
  716. package/Folly/TEMP_UntilFollyUpdate/hash/Hash.h +0 -1016
  717. package/Libraries/Components/Button.flow.js +0 -265
  718. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.windows.js +0 -8
  719. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.windows.js +0 -14
  720. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +0 -34
  721. package/Libraries/Components/ScrollView/ScrollView.windows.js +0 -1941
  722. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -85
  723. package/Libraries/Components/ToastAndroid/ToastAndroid.windows.js +0 -45
  724. package/Libraries/Components/Touchable/Touchable.flow.js +0 -284
  725. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +0 -189
  726. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +0 -43
  727. package/Libraries/Image/Image.flow.js +0 -64
  728. package/Libraries/Inspector/DevtoolsOverlay.js +0 -223
  729. package/Libraries/Performance/QuickPerformanceLogger.js +0 -142
  730. package/Libraries/Settings/Settings.windows.js +0 -28
  731. package/Microsoft.ReactNative/CoreApp.cpp +0 -303
  732. package/Microsoft.ReactNative/CoreAppPage.cpp +0 -21
  733. package/Microsoft.ReactNative/CoreAppPage.idl +0 -12
  734. package/Microsoft.ReactNative/CoreAppPage.xaml +0 -14
  735. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +0 -197
  736. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +0 -84
  737. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rnwcore/EventEmitters.h +0 -5
  738. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rnwcore/Props.h +0 -5
  739. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rnwcore/ShadowNodes.h +0 -5
  740. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rnwcore/States.h +0 -5
  741. package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +0 -245
  742. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +0 -134
  743. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +0 -27
  744. package/Microsoft.ReactNative/Modules/TimingModule.cpp +0 -229
  745. package/Microsoft.ReactNative/Modules/TimingModule.h +0 -88
  746. package/Microsoft.ReactNative.Cxx/CoreApp.h +0 -60
  747. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.cpp +0 -60
  748. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.h +0 -60
  749. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +0 -63
  750. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaLayoutableShadowNode.cpp +0 -1038
  751. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +0 -503
  752. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +0 -895
  753. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBufferBuilder.cpp +0 -182
  754. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/ShadowTree.cpp +0 -543
  755. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManagerBinding.cpp +0 -1505
  756. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/bits/NumericBitfield.h +0 -67
  757. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +0 -93
  758. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +0 -88
  759. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +0 -606
  760. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.h +0 -344
  761. package/ReactCommon/Yoga.cpp +0 -961
  762. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRect.js +0 -0
  763. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRectReadOnly.js +0 -0
  764. /package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyText.js +0 -0
  765. /package/{Libraries/DOM/Nodes/Utilities → src/private/webapis/dom/nodes/utilities}/Traversal.js +0 -0
  766. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/ArrayLikeUtils.js +0 -0
  767. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/HTMLCollection.js +0 -0
  768. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/NodeList.js +0 -0
  769. /package/{Libraries/WebPerformance → src/private/webapis/performance}/EventCounts.js +0 -0
  770. /package/{Libraries/WebPerformance → src/private/webapis/performance}/MemoryInfo.js +0 -0
  771. /package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntry.js +0 -0
  772. /package/{Libraries/WebPerformance → src/private/webapis/performance}/ReactNativeStartupTiming.js +0 -0
  773. /package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformance.js +0 -0
@@ -5,7 +5,9 @@
5
5
 
6
6
  #include "WindowsTextInputComponentView.h"
7
7
 
8
+ #include <AutoDraw.h>
8
9
  #include <Fabric/Composition/CompositionDynamicAutomationProvider.h>
10
+ #include <Fabric/Composition/UiaHelpers.h>
9
11
  #include <Utils/ValueUtils.h>
10
12
  #include <tom.h>
11
13
  #include <unicode.h>
@@ -13,11 +15,13 @@
13
15
  #include <winrt/Windows.UI.h>
14
16
  #include "../CompositionHelpers.h"
15
17
  #include "../RootComponentView.h"
16
- #include "Composition/AutoDraw.h"
18
+ #include "JSValueReader.h"
17
19
  #include "WindowsTextInputShadowNode.h"
18
20
  #include "WindowsTextInputState.h"
19
21
  #include "guid/msoGuid.h"
20
22
 
23
+ #include <unicode.h>
24
+
21
25
  // convert a BSTR to a std::string.
22
26
  std::string &BstrToStdString(const BSTR bstr, std::string &dst, int cp = CP_UTF8) {
23
27
  if (!bstr) {
@@ -50,7 +54,7 @@ MSO_CLASS_GUID(ITextHost, "13E670F4-1A5A-11cf-ABEB-00AA00B65EA1") // IID_ITextHo
50
54
  MSO_CLASS_GUID(ITextServices, "8D33F740-CF58-11CE-A89D-00AA006CADC5") // IID_ITextServices
51
55
  MSO_CLASS_GUID(ITextServices2, "8D33F741-CF58-11CE-A89D-00AA006CADC5") // IID_ITextServices2
52
56
 
53
- namespace Microsoft::ReactNative {
57
+ namespace winrt::Microsoft::ReactNative::Composition::implementation {
54
58
 
55
59
  // RichEdit doesn't handle us calling Draw during the middle of a TxTranslateMessage call.
56
60
  WindowsTextInputComponentView::DrawBlock::DrawBlock(WindowsTextInputComponentView &view) : m_view(view) {
@@ -160,7 +164,7 @@ struct CompTextHost : public winrt::implements<CompTextHost, ITextHost> {
160
164
 
161
165
  //@cmember Show the caret
162
166
  BOOL TxShowCaret(BOOL fShow) override {
163
- m_outer->ShowCaret(fShow);
167
+ m_outer->ShowCaret(m_outer->m_props->caretHidden ? false : fShow);
164
168
  return true;
165
169
  }
166
170
 
@@ -217,7 +221,10 @@ struct CompTextHost : public winrt::implements<CompTextHost, ITextHost> {
217
221
 
218
222
  //@cmember Set the focus to the text window
219
223
  void TxSetFocus() override {
220
- m_outer->rootComponentView()->SetFocusedComponent(m_outer);
224
+ winrt::Microsoft::ReactNative::ComponentView view{nullptr};
225
+ winrt::check_hresult(
226
+ m_outer->QueryInterface(winrt::guid_of<winrt::Microsoft::ReactNative::ComponentView>(), winrt::put_abi(view)));
227
+ m_outer->rootComponentView()->SetFocusedComponent(view);
221
228
  // assert(false);
222
229
  // TODO focus
223
230
  }
@@ -298,13 +305,13 @@ struct CompTextHost : public winrt::implements<CompTextHost, ITextHost> {
298
305
  switch (nIndex) {
299
306
  case COLOR_WINDOWTEXT:
300
307
  if (m_outer->m_props->textAttributes.foregroundColor)
301
- return m_outer->m_props->textAttributes.foregroundColor.AsColorRefNoAlpha();
308
+ return (*m_outer->m_props->textAttributes.foregroundColor).AsColorRefNoAlpha();
302
309
  // cr = 0x000000FF;
303
310
  break;
304
311
 
305
312
  case COLOR_WINDOW:
306
313
  if (m_outer->m_props->backgroundColor)
307
- return m_outer->m_props->backgroundColor.AsColorRefNoAlpha();
314
+ return (*m_outer->m_props->backgroundColor).AsColorRefNoAlpha();
308
315
  break;
309
316
  // case COLOR_HIGHLIGHT:
310
317
  // cr = RGB(0, 0, 255);
@@ -478,7 +485,12 @@ WindowsTextInputComponentView::WindowsTextInputComponentView(
478
485
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
479
486
  facebook::react::Tag tag,
480
487
  winrt::Microsoft::ReactNative::ReactContext const &reactContext)
481
- : Super(compContext, tag), m_context(reactContext) {
488
+ : Super(
489
+ compContext,
490
+ tag,
491
+ reactContext,
492
+ ComponentViewFeatures::Default & ~ComponentViewFeatures::Background,
493
+ false) {
482
494
  static auto const defaultProps = std::make_shared<facebook::react::WindowsTextInputProps const>();
483
495
  m_props = defaultProps;
484
496
 
@@ -511,16 +523,17 @@ WindowsTextInputComponentView::WindowsTextInputComponentView(
511
523
  */
512
524
  }
513
525
 
514
- void WindowsTextInputComponentView::handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept {
515
- if (commandName == "setTextAndSelection") {
516
- auto eventCount = arg[0].asInt();
526
+ void WindowsTextInputComponentView::HandleCommand(
527
+ winrt::hstring commandName,
528
+ const winrt::Microsoft::ReactNative::IJSValueReader &args) noexcept {
529
+ if (commandName == L"setTextAndSelection") {
530
+ int eventCount, begin, end;
531
+ winrt::hstring text;
517
532
 
533
+ winrt::Microsoft::ReactNative::ReadArgs(args, eventCount, text, begin, end);
518
534
  if (eventCount >= m_nativeEventCount) {
519
- auto text = arg[1].asString();
520
- auto begin = arg[2].asInt();
521
- auto end = arg[3].asInt();
522
535
  m_comingFromJS = true;
523
- UpdateText(text);
536
+ UpdateText(winrt::to_string(text));
524
537
 
525
538
  SELCHANGE sc;
526
539
  memset(&sc, 0, sizeof(sc));
@@ -539,32 +552,8 @@ void WindowsTextInputComponentView::handleCommand(std::string const &commandName
539
552
  m_comingFromJS = false;
540
553
  }
541
554
  } else {
542
- Super::handleCommand(commandName, arg);
543
- }
544
- }
545
-
546
- int64_t WindowsTextInputComponentView::sendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept {
547
- // Do not forward tab keys into the TextInput, since we want that to do the tab loop instead. This aligns with WinUI
548
- // behavior We do forward Ctrl+Tab to the textinput.
549
- if ((msg == WM_CHAR && wParam == '\t')) {
550
- BYTE bKeys[256];
551
- if (GetKeyboardState(bKeys)) {
552
- bool fCtrl = false;
553
- if (!(bKeys[VK_LCONTROL] & 0x80 || bKeys[VK_RCONTROL] & 0x80)) {
554
- return 0;
555
- }
556
- }
555
+ Super::HandleCommand(commandName, args);
557
556
  }
558
-
559
- if (m_textServices) {
560
- LRESULT lresult;
561
- DrawBlock db(*this);
562
- auto hr = m_textServices->TxSendMessage(msg, static_cast<WPARAM>(wParam), static_cast<LPARAM>(lParam), &lresult);
563
- if (hr >= 0 && lresult) {
564
- return lresult;
565
- }
566
- }
567
- return Super::sendMessage(msg, wParam, lParam);
568
557
  }
569
558
 
570
559
  WPARAM PointerPointToPointerWParam(const winrt::Microsoft::ReactNative::Composition::Input::PointerPoint &pp) noexcept {
@@ -638,7 +627,7 @@ WPARAM PointerRoutedEventArgsToMouseWParam(
638
627
  return wParam;
639
628
  }
640
629
 
641
- void WindowsTextInputComponentView::onPointerPressed(
630
+ void WindowsTextInputComponentView::OnPointerPressed(
642
631
  const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
643
632
  UINT msg = 0;
644
633
  LPARAM lParam = 0;
@@ -683,7 +672,7 @@ void WindowsTextInputComponentView::onPointerPressed(
683
672
  }
684
673
  }
685
674
 
686
- void WindowsTextInputComponentView::onPointerReleased(
675
+ void WindowsTextInputComponentView::OnPointerReleased(
687
676
  const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
688
677
  UINT msg = 0;
689
678
  LPARAM lParam = 0;
@@ -728,7 +717,7 @@ void WindowsTextInputComponentView::onPointerReleased(
728
717
  }
729
718
  }
730
719
 
731
- void WindowsTextInputComponentView::onPointerMoved(
720
+ void WindowsTextInputComponentView::OnPointerMoved(
732
721
  const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
733
722
  UINT msg = 0;
734
723
  LPARAM lParam = 0;
@@ -755,7 +744,7 @@ void WindowsTextInputComponentView::onPointerMoved(
755
744
  }
756
745
  }
757
746
 
758
- void WindowsTextInputComponentView::onKeyDown(
747
+ void WindowsTextInputComponentView::OnKeyDown(
759
748
  const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
760
749
  const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept {
761
750
  // Do not forward tab keys into the TextInput, since we want that to do the tab loop instead. This aligns with WinUI
@@ -782,10 +771,10 @@ void WindowsTextInputComponentView::onKeyDown(
782
771
  }
783
772
  }
784
773
 
785
- Super::onKeyDown(source, args);
774
+ Super::OnKeyDown(source, args);
786
775
  }
787
776
 
788
- void WindowsTextInputComponentView::onKeyUp(
777
+ void WindowsTextInputComponentView::OnKeyUp(
789
778
  const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
790
779
  const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept {
791
780
  // Do not forward tab keys into the TextInput, since we want that to do the tab loop instead. This aligns with WinUI
@@ -813,32 +802,146 @@ void WindowsTextInputComponentView::onKeyUp(
813
802
  }
814
803
  }
815
804
 
816
- Super::onKeyDown(source, args);
805
+ Super::OnKeyDown(source, args);
817
806
  }
818
807
 
819
- void WindowsTextInputComponentView::mountChildComponentView(
820
- IComponentView &childComponentView,
808
+ bool WindowsTextInputComponentView::ShouldSubmit(
809
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
810
+ const winrt::Microsoft::ReactNative::Composition::Input::CharacterReceivedRoutedEventArgs &args) noexcept {
811
+ bool shouldSubmit = true;
812
+
813
+ if (shouldSubmit) {
814
+ if (!m_multiline && m_submitKeyEvents.size() == 0) {
815
+ // If no 'submitKeyEvents' are supplied, use the default behavior for single-line TextInput
816
+ shouldSubmit = args.KeyCode() == '\r';
817
+ } else if (m_submitKeyEvents.size() > 0) {
818
+ auto submitKeyEvent = m_submitKeyEvents.at(0);
819
+ // If 'submitKeyEvents' are supplied, use them to determine whether to emit onSubmitEditing' for either
820
+ // single-line or multi-line TextInput
821
+ if (args.KeyCode() == '\r') {
822
+ bool shiftDown = source.GetKeyState(winrt::Windows::System::VirtualKey::Shift) ==
823
+ winrt::Windows::UI::Core::CoreVirtualKeyStates::Down;
824
+ bool ctrlDown = source.GetKeyState(winrt::Windows::System::VirtualKey::Control) ==
825
+ winrt::Windows::UI::Core::CoreVirtualKeyStates::Down;
826
+ bool altDown = source.GetKeyState(winrt::Windows::System::VirtualKey::Control) ==
827
+ winrt::Windows::UI::Core::CoreVirtualKeyStates::Down;
828
+ bool metaDown = source.GetKeyState(winrt::Windows::System::VirtualKey::LeftWindows) ==
829
+ winrt::Windows::UI::Core::CoreVirtualKeyStates::Down ||
830
+ source.GetKeyState(winrt::Windows::System::VirtualKey::RightWindows) ==
831
+ winrt::Windows::UI::Core::CoreVirtualKeyStates::Down;
832
+ return (submitKeyEvent.shiftKey && shiftDown) || (submitKeyEvent.ctrlKey && ctrlDown) ||
833
+ (submitKeyEvent.altKey && altDown) || (submitKeyEvent.metaKey && metaDown) ||
834
+ (!submitKeyEvent.shiftKey && !submitKeyEvent.altKey && !submitKeyEvent.metaKey && !submitKeyEvent.altKey &&
835
+ !shiftDown && !ctrlDown && !altDown && !metaDown);
836
+ } else {
837
+ shouldSubmit = false;
838
+ }
839
+ } else {
840
+ shouldSubmit = false;
841
+ }
842
+ }
843
+ return shouldSubmit;
844
+ }
845
+
846
+ void WindowsTextInputComponentView::OnCharacterReceived(
847
+ const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
848
+ const winrt::Microsoft::ReactNative::Composition::Input::CharacterReceivedRoutedEventArgs &args) noexcept {
849
+ // Do not forward tab keys into the TextInput, since we want that to do the tab loop instead. This aligns with WinUI
850
+ // behavior We do forward Ctrl+Tab to the textinput.
851
+ if ((args.KeyCode() == '\t') &&
852
+ (source.GetKeyState(winrt::Windows::System::VirtualKey::Control) !=
853
+ winrt::Windows::UI::Core::CoreVirtualKeyStates::Down)) {
854
+ return;
855
+ }
856
+
857
+ // Logic for submit events
858
+ if (ShouldSubmit(source, args)) {
859
+ // call onSubmitEditing event
860
+ if (m_eventEmitter && !m_comingFromJS) {
861
+ auto emitter = std::static_pointer_cast<const facebook::react::WindowsTextInputEventEmitter>(m_eventEmitter);
862
+ facebook::react::WindowsTextInputEventEmitter::OnSubmitEditing onSubmitEditingArgs;
863
+ onSubmitEditingArgs.text = GetTextFromRichEdit();
864
+ onSubmitEditingArgs.eventCount = ++m_nativeEventCount;
865
+ emitter->onSubmitEditing(onSubmitEditingArgs);
866
+ }
867
+
868
+ if (m_clearTextOnSubmit) {
869
+ // clear text from RichEdit
870
+ m_textServices->TxSetText(L"");
871
+ }
872
+ return;
873
+ }
874
+
875
+ // convert keyCode to std::string
876
+ wchar_t key[2] = L" ";
877
+ key[0] = static_cast<wchar_t>(args.KeyCode());
878
+ std::string keyString = ::Microsoft::Common::Unicode::Utf16ToUtf8(key, 1);
879
+ // Call onKeyPress event
880
+ auto emitter = std::static_pointer_cast<const facebook::react::WindowsTextInputEventEmitter>(m_eventEmitter);
881
+ facebook::react::WindowsTextInputEventEmitter::OnKeyPress onKeyPressArgs;
882
+ if (keyString.compare("\r") == 0) {
883
+ onKeyPressArgs.key = "Enter";
884
+ } else if (keyString.compare("\b") == 0) {
885
+ onKeyPressArgs.key = "Backspace";
886
+ } else {
887
+ onKeyPressArgs.key = keyString;
888
+ }
889
+ emitter->onKeyPress(onKeyPressArgs);
890
+
891
+ WPARAM wParam = static_cast<WPARAM>(args.KeyCode());
892
+ LPARAM lParam = 0;
893
+ lParam = args.KeyStatus().RepeatCount; // bits 0-15
894
+ lParam |= args.KeyStatus().ScanCode << 16; // bits 16-23
895
+ if (args.KeyStatus().IsExtendedKey)
896
+ lParam |= 0x01000000; // bit 24
897
+ // bit 25-28 reserved.
898
+ if (args.KeyStatus().IsMenuKeyDown)
899
+ lParam |= 0x20000000; // bit 29
900
+ // if sysKey - bit 29 = 1, otherwise 0
901
+ if (args.KeyStatus().WasKeyDown)
902
+ lParam |= 0x40000000; // bit 30
903
+ if (args.KeyStatus().IsKeyReleased)
904
+ lParam |= 0x80000000; // bit 31
905
+
906
+ LRESULT lresult;
907
+ DrawBlock db(*this);
908
+ auto hr = m_textServices->TxSendMessage(WM_CHAR, wParam, lParam, &lresult);
909
+ if (hr >= 0 && lresult) {
910
+ args.Handled(true);
911
+ }
912
+ }
913
+
914
+ void WindowsTextInputComponentView::MountChildComponentView(
915
+ const winrt::Microsoft::ReactNative::ComponentView &childComponentView,
821
916
  uint32_t index) noexcept {
822
917
  assert(false);
823
- // m_element.Children().InsertAt(index, v.Element());
918
+ base_type::MountChildComponentView(childComponentView, index);
824
919
  }
825
920
 
826
- void WindowsTextInputComponentView::unmountChildComponentView(
827
- IComponentView &childComponentView,
921
+ void WindowsTextInputComponentView::UnmountChildComponentView(
922
+ const winrt::Microsoft::ReactNative::ComponentView &childComponentView,
828
923
  uint32_t index) noexcept {
829
924
  assert(false);
830
- // m_element.Children().RemoveAt(index);
925
+ base_type::UnmountChildComponentView(childComponentView, index);
831
926
  }
832
927
 
833
928
  void WindowsTextInputComponentView::onFocusLost() noexcept {
834
929
  Super::onFocusLost();
835
- sendMessage(WM_KILLFOCUS, 0, 0);
930
+ if (m_textServices) {
931
+ LRESULT lresult;
932
+ DrawBlock db(*this);
933
+ m_textServices->TxSendMessage(WM_KILLFOCUS, 0, 0, &lresult);
934
+ }
836
935
  m_caretVisual.IsVisible(false);
837
936
  }
838
937
 
839
938
  void WindowsTextInputComponentView::onFocusGained() noexcept {
840
939
  Super::onFocusGained();
841
- sendMessage(WM_SETFOCUS, 0, 0);
940
+ if (m_textServices) {
941
+ LRESULT lresult;
942
+ DrawBlock db(*this);
943
+ m_textServices->TxSendMessage(WM_SETFOCUS, 0, 0, &lresult);
944
+ }
842
945
  }
843
946
 
844
947
  bool WindowsTextInputComponentView::focusable() const noexcept {
@@ -857,6 +960,18 @@ std::string WindowsTextInputComponentView::DefaultHelpText() const noexcept {
857
960
  return m_props->placeholder;
858
961
  }
859
962
 
963
+ void WindowsTextInputComponentView::updateCursorColor(
964
+ const facebook::react::SharedColor &cursorColor,
965
+ const facebook::react::SharedColor &foregroundColor) noexcept {
966
+ if (cursorColor) {
967
+ m_caretVisual.Brush(theme()->Brush(*cursorColor));
968
+ } else if (foregroundColor) {
969
+ m_caretVisual.Brush(theme()->Brush(*foregroundColor));
970
+ } else {
971
+ m_caretVisual.Brush(theme()->PlatformBrush("TextControlForeground"));
972
+ }
973
+ }
974
+
860
975
  void WindowsTextInputComponentView::updateProps(
861
976
  facebook::react::Props::Shared const &props,
862
977
  facebook::react::Props::Shared const &oldProps) noexcept {
@@ -868,10 +983,12 @@ void WindowsTextInputComponentView::updateProps(
868
983
 
869
984
  ensureVisual();
870
985
 
986
+ if (oldTextInputProps.testId != newTextInputProps.testId) {
987
+ m_visual.Comment(winrt::to_hstring(newTextInputProps.testId));
988
+ }
871
989
  // update BaseComponentView props
872
- updateShadowProps(oldTextInputProps, newTextInputProps, m_visual);
873
990
  updateTransformProps(oldTextInputProps, newTextInputProps, m_visual);
874
- updateBorderProps(oldTextInputProps, newTextInputProps);
991
+ Super::updateProps(props, oldProps);
875
992
 
876
993
  if (!facebook::react::floatEquality(
877
994
  oldTextInputProps.textAttributes.fontSize, newTextInputProps.textAttributes.fontSize) ||
@@ -888,6 +1005,7 @@ void WindowsTextInputComponentView::updateProps(
888
1005
  }
889
1006
 
890
1007
  if (oldTextInputProps.multiline != newTextInputProps.multiline) {
1008
+ m_multiline = newTextInputProps.multiline;
891
1009
  propBitsMask |= TXTBIT_MULTILINE | TXTBIT_WORDWRAP;
892
1010
  if (newTextInputProps.multiline) {
893
1011
  propBits |= TXTBIT_MULTILINE | TXTBIT_WORDWRAP;
@@ -911,7 +1029,17 @@ void WindowsTextInputComponentView::updateProps(
911
1029
  }
912
1030
 
913
1031
  if (oldTextInputProps.cursorColor != newTextInputProps.cursorColor) {
914
- m_caretVisual.Color(newTextInputProps.cursorColor.AsWindowsColor());
1032
+ updateCursorColor(newTextInputProps.cursorColor, newTextInputProps.textAttributes.foregroundColor);
1033
+ }
1034
+
1035
+ if (oldTextInputProps.clearTextOnSubmit != newTextInputProps.clearTextOnSubmit) {
1036
+ m_clearTextOnSubmit = newTextInputProps.clearTextOnSubmit;
1037
+ }
1038
+
1039
+ if ((!newTextInputProps.submitKeyEvents.empty())) {
1040
+ m_submitKeyEvents = newTextInputProps.submitKeyEvents;
1041
+ } else {
1042
+ m_submitKeyEvents.clear();
915
1043
  }
916
1044
 
917
1045
  /*
@@ -1051,9 +1179,7 @@ void WindowsTextInputComponentView::updateLayoutMetrics(
1051
1179
  &res));
1052
1180
  }
1053
1181
 
1054
- updateBorderLayoutMetrics(layoutMetrics, *m_props);
1055
-
1056
- m_layoutMetrics = layoutMetrics;
1182
+ Super::updateLayoutMetrics(layoutMetrics, oldLayoutMetrics);
1057
1183
 
1058
1184
  // TODO should ceil?
1059
1185
  unsigned int newWidth = static_cast<unsigned int>(layoutMetrics.frame.size.width * layoutMetrics.pointScaleFactor);
@@ -1066,7 +1192,6 @@ void WindowsTextInputComponentView::updateLayoutMetrics(
1066
1192
  m_imgWidth = newWidth;
1067
1193
  m_imgHeight = newHeight;
1068
1194
 
1069
- UpdateCenterPropertySet();
1070
1195
  m_visual.Size(
1071
1196
  {layoutMetrics.frame.size.width * layoutMetrics.pointScaleFactor,
1072
1197
  layoutMetrics.frame.size.height * layoutMetrics.pointScaleFactor});
@@ -1084,12 +1209,19 @@ void WindowsTextInputComponentView::OnTextUpdated() noexcept {
1084
1209
  m_state->updateState(std::move(data));
1085
1210
 
1086
1211
  if (m_eventEmitter && !m_comingFromJS) {
1212
+ // call onChange event
1087
1213
  auto emitter = std::static_pointer_cast<const facebook::react::WindowsTextInputEventEmitter>(m_eventEmitter);
1088
1214
  facebook::react::WindowsTextInputEventEmitter::OnChange onChangeArgs;
1089
1215
  onChangeArgs.text = GetTextFromRichEdit();
1090
1216
  onChangeArgs.eventCount = ++m_nativeEventCount;
1091
1217
  emitter->onChange(onChangeArgs);
1092
1218
  }
1219
+
1220
+ if (m_uiaProvider) {
1221
+ auto text = GetTextFromRichEdit();
1222
+ winrt::Microsoft::ReactNative::implementation::UpdateUiaProperty(
1223
+ m_uiaProvider, UIA_ValueValuePropertyId, text, text);
1224
+ }
1093
1225
  }
1094
1226
 
1095
1227
  void WindowsTextInputComponentView::OnSelectionChanged(LONG start, LONG end) noexcept {
@@ -1121,19 +1253,30 @@ std::string WindowsTextInputComponentView::GetTextFromRichEdit() const noexcept
1121
1253
  return str;
1122
1254
  }
1123
1255
 
1124
- void WindowsTextInputComponentView::finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept {
1125
- if (m_needsBorderUpdate) {
1126
- m_needsBorderUpdate = false;
1127
- UpdateSpecialBorderLayers(m_layoutMetrics, *m_props);
1128
- }
1256
+ void WindowsTextInputComponentView::FinalizeUpdates(
1257
+ winrt::Microsoft::ReactNative::ComponentViewUpdateMask updateMask) noexcept {
1258
+ Super::FinalizeUpdates(updateMask);
1129
1259
  ensureDrawingSurface();
1130
1260
  if (m_needsRedraw) {
1131
1261
  DrawText();
1132
1262
  }
1133
1263
  }
1134
1264
 
1265
+ std::optional<std::string> WindowsTextInputComponentView::getAcccessiblityValue() noexcept {
1266
+ return GetTextFromRichEdit();
1267
+ }
1268
+
1269
+ void WindowsTextInputComponentView::setAcccessiblityValue(std::string &&value) noexcept {
1270
+ UpdateText(value);
1271
+ }
1272
+
1273
+ bool WindowsTextInputComponentView::getAcccessiblityIsReadOnly() noexcept {
1274
+ return !m_props->editable;
1275
+ }
1276
+
1135
1277
  void WindowsTextInputComponentView::prepareForRecycle() noexcept {}
1136
- facebook::react::Props::Shared WindowsTextInputComponentView::props() noexcept {
1278
+
1279
+ facebook::react::SharedViewProps WindowsTextInputComponentView::viewProps() noexcept {
1137
1280
  return m_props;
1138
1281
  }
1139
1282
 
@@ -1218,7 +1361,7 @@ void WindowsTextInputComponentView::OnRenderingDeviceLost() noexcept {
1218
1361
  }
1219
1362
 
1220
1363
  void WindowsTextInputComponentView::ensureDrawingSurface() noexcept {
1221
- assert(m_context.UIDispatcher().HasThreadAccess());
1364
+ assert(m_reactContext.UIDispatcher().HasThreadAccess());
1222
1365
 
1223
1366
  if (!m_drawingSurface) {
1224
1367
  m_drawingSurface = m_compContext.CreateDrawingSurfaceBrush(
@@ -1272,7 +1415,7 @@ winrt::com_ptr<::IDWriteTextLayout> WindowsTextInputComponentView::CreatePlaceho
1272
1415
 
1273
1416
  void WindowsTextInputComponentView::DrawText() noexcept {
1274
1417
  m_needsRedraw = true;
1275
- if (m_cDrawBlock) {
1418
+ if (m_cDrawBlock || theme()->IsEmpty()) {
1276
1419
  return;
1277
1420
  }
1278
1421
 
@@ -1283,7 +1426,7 @@ void WindowsTextInputComponentView::DrawText() noexcept {
1283
1426
 
1284
1427
  POINT offset;
1285
1428
 
1286
- assert(m_context.UIDispatcher().HasThreadAccess());
1429
+ assert(m_reactContext.UIDispatcher().HasThreadAccess());
1287
1430
 
1288
1431
  m_drawing = true;
1289
1432
  {
@@ -1311,7 +1454,7 @@ void WindowsTextInputComponentView::DrawText() noexcept {
1311
1454
  winrt::check_hresult(m_textServices->OnTxInPlaceActivate(&rcClient));
1312
1455
 
1313
1456
  if (facebook::react::isColorMeaningful(m_props->backgroundColor)) {
1314
- auto backgroundColor = m_props->backgroundColor.AsD2DColor();
1457
+ auto backgroundColor = theme()->D2DColor(*m_props->backgroundColor);
1315
1458
  winrt::com_ptr<ID2D1SolidColorBrush> backgroundBrush;
1316
1459
  winrt::check_hresult(d2dDeviceContext->CreateSolidColorBrush(backgroundColor, backgroundBrush.put()));
1317
1460
  const D2D1_RECT_F fillRect = {
@@ -1331,7 +1474,7 @@ void WindowsTextInputComponentView::DrawText() noexcept {
1331
1474
  // set brush color
1332
1475
  winrt::com_ptr<ID2D1SolidColorBrush> brush;
1333
1476
  if (m_props->placeholderTextColor) {
1334
- auto color = m_props->placeholderTextColor.AsD2DColor();
1477
+ auto color = theme()->D2DColor(*m_props->placeholderTextColor);
1335
1478
  winrt::check_hresult(d2dDeviceContext->CreateSolidColorBrush(color, brush.put()));
1336
1479
  } else {
1337
1480
  winrt::check_hresult(
@@ -1371,7 +1514,7 @@ facebook::react::Tag WindowsTextInputComponentView::hitTest(
1371
1514
  if ((m_props.pointerEvents == facebook::react::PointerEventsMode::Auto ||
1372
1515
  m_props.pointerEvents == facebook::react::PointerEventsMode::BoxNone) && std::any_of(m_children.rbegin(),
1373
1516
  m_children.rend(), [&targetTag, &ptLocal, &localPt](auto child) { targetTag = static_cast<const
1374
- CompositionBaseComponentView
1517
+ ComponentView
1375
1518
  *>(child)->hitTest(ptLocal, localPt); return targetTag != -1;
1376
1519
  }))
1377
1520
  return targetTag;
@@ -1382,7 +1525,7 @@ facebook::react::Tag WindowsTextInputComponentView::hitTest(
1382
1525
  ptLocal.x >= 0 && ptLocal.x <= m_layoutMetrics.frame.size.width && ptLocal.y >= 0 &&
1383
1526
  ptLocal.y <= m_layoutMetrics.frame.size.height) {
1384
1527
  localPt = ptLocal;
1385
- return tag();
1528
+ return Tag();
1386
1529
  }
1387
1530
 
1388
1531
  return -1;
@@ -1393,7 +1536,7 @@ void WindowsTextInputComponentView::ensureVisual() noexcept {
1393
1536
  HrEnsureRichEd20Loaded();
1394
1537
  m_visual = m_compContext.CreateSpriteVisual();
1395
1538
  m_textHost = winrt::make<CompTextHost>(this);
1396
- winrt::com_ptr<IUnknown> spUnk;
1539
+ winrt::com_ptr<::IUnknown> spUnk;
1397
1540
  winrt::check_hresult(g_pfnCreateTextServices(nullptr, m_textHost.get(), spUnk.put()));
1398
1541
  spUnk.as(m_textServices);
1399
1542
  OuterVisual().InsertAt(m_visual, 0);
@@ -1406,16 +1549,22 @@ void WindowsTextInputComponentView::ensureVisual() noexcept {
1406
1549
  }
1407
1550
  }
1408
1551
 
1552
+ void WindowsTextInputComponentView::onThemeChanged() noexcept {
1553
+ auto props = std::static_pointer_cast<const facebook::react::WindowsTextInputProps>(m_props);
1554
+ updateCursorColor(props->cursorColor, props->textAttributes.foregroundColor);
1555
+ DrawText();
1556
+ base_type::onThemeChanged();
1557
+ }
1558
+
1409
1559
  winrt::Microsoft::ReactNative::Composition::IVisual WindowsTextInputComponentView::Visual() const noexcept {
1410
1560
  return m_visual;
1411
1561
  }
1412
1562
 
1413
- std::shared_ptr<WindowsTextInputComponentView> WindowsTextInputComponentView::Create(
1563
+ winrt::Microsoft::ReactNative::ComponentView WindowsTextInputComponentView::Create(
1414
1564
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
1415
1565
  facebook::react::Tag tag,
1416
1566
  winrt::Microsoft::ReactNative::ReactContext const &reactContext) noexcept {
1417
- return std::shared_ptr<WindowsTextInputComponentView>(
1418
- new WindowsTextInputComponentView(compContext, tag, reactContext));
1567
+ return winrt::make<WindowsTextInputComponentView>(compContext, tag, reactContext);
1419
1568
  }
1420
1569
 
1421
- } // namespace Microsoft::ReactNative
1570
+ } // namespace winrt::Microsoft::ReactNative::Composition::implementation