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
@@ -130,6 +130,7 @@ void FrameworkElementViewManager::GetNativeProps(const winrt::Microsoft::ReactNa
130
130
  GetAccessibilityStateProps(writer);
131
131
  winrt::Microsoft::ReactNative::WriteProperty(writer, L"accessibilityHint", L"string");
132
132
  winrt::Microsoft::ReactNative::WriteProperty(writer, L"accessibilityLabel", L"string");
133
+ winrt::Microsoft::ReactNative::WriteProperty(writer, L"accessibilityLevel", L"number");
133
134
  winrt::Microsoft::ReactNative::WriteProperty(writer, L"accessibilityPosInSet", L"number");
134
135
  winrt::Microsoft::ReactNative::WriteProperty(writer, L"accessibilitySetSize", L"number");
135
136
  winrt::Microsoft::ReactNative::WriteProperty(writer, L"testID", L"string");
@@ -287,6 +288,15 @@ bool FrameworkElementViewManager::UpdateProperty(
287
288
  } else if (propertyValue.IsNull()) {
288
289
  element.ClearValue(xaml::Automation::AutomationProperties::AccessibilityViewProperty());
289
290
  }
291
+ } else if (propertyName == "accessibilityLevel") {
292
+ if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Double ||
293
+ propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Int64) {
294
+ auto value = static_cast<int>(propertyValue.AsDouble());
295
+ auto boxedValue = winrt::Windows::Foundation::PropertyValue::CreateInt32(value);
296
+ element.SetValue(xaml::Automation::AutomationProperties::LevelProperty(), boxedValue);
297
+ } else if (propertyValue.IsNull()) {
298
+ element.ClearValue(xaml::Automation::AutomationProperties::LevelProperty());
299
+ }
290
300
  } else if (propertyName == "accessibilityLiveRegion") {
291
301
  if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::String) {
292
302
  auto value = propertyValue.AsString();
@@ -424,107 +434,138 @@ bool FrameworkElementViewManager::UpdateProperty(
424
434
  element.ClearValue(DynamicAutomationProperties::AccessibilityRoleProperty());
425
435
  }
426
436
  } else if (propertyName == "accessibilityState") {
427
- bool states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::CountStates)] = {};
428
-
429
437
  if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Object) {
430
438
  for (const auto &pair : propertyValue.AsObject()) {
439
+ // States are provided with the name and either a valid value if the state is supported or null if the state
440
+ // isn't
431
441
  const std::string &innerName = pair.first;
432
442
  const auto &innerValue = pair.second;
433
443
 
434
- auto peer = xaml::Automation::Peers::FrameworkElementAutomationPeer::FromElement(element);
444
+ xaml::DependencyProperty targetDP = nullptr;
445
+ xaml::Automation::AutomationProperty targetAP = nullptr;
435
446
 
447
+ bool valueChanged = false;
448
+
449
+ winrt::IInspectable oldDPValue = xaml::DependencyProperty::UnsetValue();
450
+ winrt::IInspectable newDPValue = xaml::DependencyProperty::UnsetValue();
451
+
452
+ winrt::IInspectable oldAPValue = nullptr;
453
+ winrt::IInspectable newAPValue = nullptr;
454
+
455
+ // Determine which attached dependency property to update and which automation property to raise a changed
456
+ // event
436
457
  if (innerName == "selected") {
437
- states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Selected)] =
438
- innerValue.AsBoolean();
439
- const auto prevSelectedState = DynamicAutomationProperties::GetAccessibilityStateSelected(element);
440
- if (peer != nullptr && prevSelectedState != innerValue.AsBoolean()) {
441
- peer.RaisePropertyChangedEvent(
442
- winrt::SelectionItemPatternIdentifiers::IsSelectedProperty(),
443
- winrt::box_value(prevSelectedState),
444
- winrt::box_value(innerValue.AsBoolean()));
445
- }
458
+ targetDP = DynamicAutomationProperties::AccessibilityStateSelectedProperty();
459
+ targetAP = winrt::SelectionItemPatternIdentifiers::IsSelectedProperty();
446
460
  } else if (innerName == "disabled") {
447
- states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Disabled)] =
448
- innerValue.AsBoolean();
449
- const auto prevDisabledState = DynamicAutomationProperties::GetAccessibilityStateDisabled(element);
450
-
451
- if (peer != nullptr && prevDisabledState != innerValue.AsBoolean()) {
452
- peer.RaisePropertyChangedEvent(
453
- winrt::AutomationElementIdentifiers::IsEnabledProperty(),
454
- winrt::box_value(!prevDisabledState),
455
- winrt::box_value(!innerValue.AsBoolean()));
456
- }
461
+ targetDP = DynamicAutomationProperties::AccessibilityStateDisabledProperty();
462
+ targetAP = winrt::AutomationElementIdentifiers::IsEnabledProperty();
457
463
  } else if (innerName == "checked") {
458
- states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Checked)] =
459
- innerValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Boolean && innerValue.AsBoolean();
460
- states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Unchecked)] =
461
- innerValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Boolean && !innerValue.AsBoolean();
462
- // If the state is "mixed" we'll just set both Checked and Unchecked to false,
463
- // then later in the IToggleProvider implementation it will return the Intermediate state
464
- // due to both being set to false (see DynamicAutomationPeer::ToggleState()).
465
- const auto prevCheckedState = DynamicAutomationProperties::GetAccessibilityStateChecked(element);
466
- const auto prevUncheckedState = DynamicAutomationProperties::GetAccessibilityStateUnchecked(element);
467
-
468
- if (peer != nullptr) {
469
- if (prevCheckedState !=
470
- states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Checked)] ||
471
- prevUncheckedState !=
472
- states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Unchecked)]) {
473
- // Checking if either state has changed here to catch changes involving "mixed" state.
474
- const auto oldValue = prevCheckedState ? winrt::ToggleState::On : winrt::ToggleState::Off;
475
- if (innerValue.Type() != winrt::Microsoft::ReactNative::JSValueType::Boolean) {
476
- peer.RaisePropertyChangedEvent(
477
- winrt::TogglePatternIdentifiers::ToggleStateProperty(),
478
- winrt::box_value(oldValue),
479
- winrt::box_value(winrt::ToggleState::Indeterminate));
480
- } else {
481
- const auto newValue = innerValue.AsBoolean() ? winrt::ToggleState::On : winrt::ToggleState::Off;
482
- peer.RaisePropertyChangedEvent(
483
- winrt::TogglePatternIdentifiers::ToggleStateProperty(),
484
- winrt::box_value(oldValue),
485
- winrt::box_value(newValue));
486
- }
464
+ targetDP = DynamicAutomationProperties::AccessibilityStateCheckedProperty();
465
+ targetAP = winrt::TogglePatternIdentifiers::ToggleStateProperty();
466
+ } else if (innerName == "busy") {
467
+ targetDP = DynamicAutomationProperties::AccessibilityStateBusyProperty();
468
+ targetAP = winrt::AutomationElementIdentifiers::ItemStatusProperty();
469
+ } else if (innerName == "expanded") {
470
+ targetDP = DynamicAutomationProperties::AccessibilityStateExpandedProperty();
471
+ targetAP = winrt::ExpandCollapsePatternIdentifiers::ExpandCollapseStateProperty();
472
+ }
473
+
474
+ if (targetDP != nullptr) {
475
+ // Determine values for DP and AP
476
+
477
+ oldDPValue = element.ReadLocalValue(targetDP);
478
+
479
+ const bool hasOldValue = oldDPValue != xaml::DependencyProperty::UnsetValue();
480
+
481
+ if (innerName == "checked") {
482
+ // Checked is special and can support null, boolean true, boolean false, or the string "mixed"
483
+
484
+ auto oldValue = hasOldValue
485
+ ? winrt::unbox_value<winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue>(oldDPValue)
486
+ : winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue::Unchecked;
487
+
488
+ winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue newValue =
489
+ winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue::Unchecked;
490
+
491
+ const auto pRawBooleanNewValue = innerValue.TryGetBoolean();
492
+ const auto pRawStringNewValue = innerValue.TryGetString();
493
+
494
+ if (pRawBooleanNewValue != nullptr) {
495
+ // State value is a valid boolean
496
+ newValue = *pRawBooleanNewValue
497
+ ? winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue::Checked
498
+ : winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue::Unchecked;
499
+ newDPValue = winrt::box_value<winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue>(newValue);
500
+ valueChanged = !hasOldValue || (oldValue != newValue); // Value was unset before or set but different
501
+ } else if (pRawStringNewValue != nullptr && *pRawStringNewValue == "mixed") {
502
+ // State value is the valid string "mixed"
503
+ newValue = winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue::Mixed;
504
+ newDPValue = winrt::box_value<winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue>(newValue);
505
+ valueChanged = !hasOldValue || (oldValue != newValue); // Value was unset before or set but different
506
+ } else {
507
+ // State value is null or not valid
508
+ valueChanged = hasOldValue; // Value was set before
509
+ }
510
+
511
+ oldAPValue =
512
+ winrt::box_value(hasOldValue ? static_cast<winrt::ToggleState>(oldValue) : winrt::ToggleState::Off);
513
+ newAPValue = winrt::box_value(static_cast<winrt::ToggleState>(newValue));
514
+ } else {
515
+ // All other accessibility state values support null, boolean true or boolean false
516
+
517
+ auto oldValue = hasOldValue ? winrt::unbox_value<bool>(oldDPValue) : false;
518
+
519
+ const bool *pNewValue = innerValue.TryGetBoolean();
520
+
521
+ if (pNewValue != nullptr) {
522
+ // State value is a valid boolean
523
+ newDPValue = winrt::box_value<bool>(*pNewValue);
524
+ valueChanged = !hasOldValue || (oldValue != *pNewValue); // Value was unset before or set but different
525
+ } else {
526
+ // State value is null or not valid
527
+ valueChanged = hasOldValue; // Value was set before
528
+ }
529
+
530
+ if (innerName == "disabled") {
531
+ // Disabled maps to enabled, flip boolean
532
+ oldAPValue = winrt::box_value(!(hasOldValue ? oldValue : false));
533
+ newAPValue = winrt::box_value(!(pNewValue != nullptr ? *pNewValue : false));
534
+ } else if (innerName == "busy") {
535
+ oldAPValue = winrt::box_value(hasOldValue && oldValue ? L"Busy" : L"");
536
+ newAPValue = winrt::box_value(pNewValue != nullptr && *pNewValue ? L"Busy" : L"");
537
+ } else if (innerName == "expanded") {
538
+ oldAPValue = winrt::box_value(
539
+ hasOldValue && oldValue ? winrt::ExpandCollapseState::Expanded
540
+ : winrt::ExpandCollapseState::Collapsed);
541
+ newAPValue = winrt::box_value(
542
+ pNewValue != nullptr && *pNewValue ? winrt::ExpandCollapseState::Expanded
543
+ : winrt::ExpandCollapseState::Collapsed);
544
+ } else {
545
+ // Direct mapping of boolean
546
+ oldAPValue = winrt::box_value(hasOldValue ? oldValue : false);
547
+ newAPValue = winrt::box_value(pNewValue != nullptr ? *pNewValue : false);
487
548
  }
488
549
  }
489
- } else if (innerName == "busy")
490
- states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Busy)] =
491
- !innerValue.IsNull() && innerValue.AsBoolean();
492
- else if (innerName == "expanded") {
493
- states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Expanded)] =
494
- !innerValue.IsNull() && innerValue.AsBoolean();
495
- states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Collapsed)] =
496
- innerValue.IsNull() || !innerValue.AsBoolean();
497
-
498
- const auto prevExpandedState = DynamicAutomationProperties::GetAccessibilityStateExpanded(element);
499
-
500
- if (peer != nullptr && prevExpandedState != innerValue.AsBoolean()) {
501
- const auto newValue =
502
- innerValue.AsBoolean() ? winrt::ExpandCollapseState::Expanded : winrt::ExpandCollapseState::Collapsed;
503
- const auto oldValue =
504
- prevExpandedState ? winrt::ExpandCollapseState::Expanded : winrt::ExpandCollapseState::Collapsed;
505
- peer.RaisePropertyChangedEvent(
506
- winrt::ExpandCollapsePatternIdentifiers::ExpandCollapseStateProperty(),
507
- winrt::box_value(oldValue),
508
- winrt::box_value(newValue));
550
+
551
+ // Update attached dependency property for element
552
+ if (newDPValue != xaml::DependencyProperty::UnsetValue()) {
553
+ // State value was valid, so set
554
+ element.SetValue(targetDP, newDPValue);
555
+ } else {
556
+ // State value is null or not valid, so clear
557
+ element.ClearValue(targetDP);
558
+ }
559
+
560
+ // Raise automation property changed event if the value changed
561
+ if (valueChanged && targetAP != nullptr && oldAPValue != nullptr && newAPValue != nullptr) {
562
+ if (auto peer = xaml::Automation::Peers::FrameworkElementAutomationPeer::FromElement(element)) {
563
+ peer.RaisePropertyChangedEvent(targetAP, oldAPValue, newAPValue);
564
+ }
509
565
  }
510
566
  }
511
567
  }
512
568
  }
513
-
514
- DynamicAutomationProperties::SetAccessibilityStateSelected(
515
- element, states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Selected)]);
516
- DynamicAutomationProperties::SetAccessibilityStateDisabled(
517
- element, states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Disabled)]);
518
- DynamicAutomationProperties::SetAccessibilityStateChecked(
519
- element, states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Checked)]);
520
- DynamicAutomationProperties::SetAccessibilityStateUnchecked(
521
- element, states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Unchecked)]);
522
- DynamicAutomationProperties::SetAccessibilityStateBusy(
523
- element, states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Busy)]);
524
- DynamicAutomationProperties::SetAccessibilityStateExpanded(
525
- element, states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Expanded)]);
526
- DynamicAutomationProperties::SetAccessibilityStateCollapsed(
527
- element, states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Collapsed)]);
528
569
  } else if (propertyName == "accessibilityValue") {
529
570
  winrt::hstring textValue;
530
571
  const int numericValuesCount = 3;
@@ -13,7 +13,7 @@ namespace Microsoft::ReactNative {
13
13
 
14
14
  struct ICompositionRootView : public facebook::react::IReactRootView {
15
15
  virtual winrt::Microsoft::ReactNative::Composition::IVisual GetVisual() const noexcept = 0;
16
- virtual double ScaleFactor() noexcept = 0;
16
+ virtual float ScaleFactor() noexcept = 0;
17
17
  };
18
18
 
19
19
  } // namespace Microsoft::ReactNative
@@ -24,7 +24,7 @@ using namespace xaml::Controls;
24
24
  using namespace xaml::Automation::Peers;
25
25
  } // namespace winrt
26
26
 
27
- // Such code is better to move to a seperate parser layer
27
+ // Such code is better to move to a separate parser layer
28
28
  template <>
29
29
  struct json_type_traits<Microsoft::ReactNative::ReactImageSource> {
30
30
  static Microsoft::ReactNative::ReactImageSource parseJson(const winrt::Microsoft::ReactNative::JSValue &json) {
@@ -95,7 +95,7 @@ class EffectBase : public winrt::implements<EffectBase, abi::IGraphicsEffectD2D1
95
95
  return winrt::PropertyValue::CreateSingleArray(reinterpret_cast<std::array<float, ComponentCount> &>(values));
96
96
  }
97
97
 
98
- // Helpers to implement GetNamedPropertyMapping more succintly
98
+ // Helpers to implement GetNamedPropertyMapping more succinctly
99
99
  struct NamedProperty {
100
100
  const wchar_t *Name; // Compile-time constant
101
101
  UINT Index; // Property index
@@ -128,7 +128,7 @@ class EffectBase : public winrt::implements<EffectBase, abi::IGraphicsEffectD2D1
128
128
  };
129
129
 
130
130
  //-----------------------------------------------------------------------------------------------------------------
131
- // Helper macros to make implementation more succint
131
+ // Helper macros to make implementation more succinct
132
132
  //-----------------------------------------------------------------------------------------------------------------
133
133
 
134
134
  #pragma push_macro("DECLARE_D2D_GUID")
@@ -34,7 +34,7 @@ namespace Microsoft::ReactNative {
34
34
 
35
35
  /*static*/ winrt::com_ptr<ReactImage> ReactImage::Create() {
36
36
  auto reactImage = winrt::make_self<ReactImage>();
37
- // Grid inheirts the layout direction from parent and mirrors the background image in RTL mode.
37
+ // Grid inherits the layout direction from parent and mirrors the background image in RTL mode.
38
38
  // Forcing the container to LTR mode to avoid the unexpected mirroring behavior.
39
39
  reactImage->FlowDirection(xaml::FlowDirection::LeftToRight);
40
40
  return reactImage;
@@ -19,7 +19,7 @@ using namespace xaml::Media;
19
19
  namespace Microsoft::ReactNative {
20
20
 
21
21
  SIPEventHandler::SIPEventHandler(const Mso::React::IReactContext &context)
22
- : m_context(&context), m_fireKeyboradEvents(false), m_finalRect(winrt::RectHelper::Empty()){};
22
+ : m_context(&context), m_fireKeyboardEvents(false), m_finalRect(winrt::RectHelper::Empty()){};
23
23
 
24
24
  SIPEventHandler::~SIPEventHandler() {
25
25
  m_occlusionsChanged_revoker = {};
@@ -29,7 +29,7 @@ SIPEventHandler::~SIPEventHandler() {
29
29
  // TryShow and TryHide works on >= RS5
30
30
 
31
31
  void SIPEventHandler::AttachView(XamlView xamlView, bool fireKeyboardEvents) {
32
- m_fireKeyboradEvents = fireKeyboardEvents;
32
+ m_fireKeyboardEvents = fireKeyboardEvents;
33
33
  // hookup CoreInputView only after element is in the tree
34
34
  m_view = winrt::make_weak(xamlView);
35
35
  if (winrt::VisualTreeHelper::GetParent(xamlView)) {
@@ -66,7 +66,7 @@ void SIPEventHandler::InitializeCoreInputView() {
66
66
  if (!e.Handled()) {
67
67
  bool wasShowing = m_isShowing;
68
68
  m_isShowing = !IsOcclusionsEmpty(e.Occlusions());
69
- if (wasShowing != m_isShowing && m_fireKeyboradEvents) {
69
+ if (wasShowing != m_isShowing && m_fireKeyboardEvents) {
70
70
  if (!m_isShowing) {
71
71
  folly::dynamic params = folly::dynamic::object("screenY", 0)("screenX", 0)("width", 0)("height", 0);
72
72
  SendEvent("keyboardDidHide", std::move(params));
@@ -85,14 +85,14 @@ void SIPEventHandler::InitializeCoreInputView() {
85
85
  }
86
86
  /*
87
87
  void SIPEventHandler::TryShow() {
88
- if (IsRS5OrHigher() && m_coreInputView && !m_isShowing) { // CoreInputView.TryShow is only avaliable after RS5
88
+ if (IsRS5OrHigher() && m_coreInputView && !m_isShowing) { // CoreInputView.TryShow is only available after RS5
89
89
  m_coreInputView.TryShow();
90
90
  }
91
91
  }
92
92
  */
93
93
 
94
94
  void SIPEventHandler::TryHide() {
95
- if (IsRS5OrHigher() && m_coreInputView && m_isShowing) { // CoreInputView.TryHide is only avaliable after RS5
95
+ if (IsRS5OrHigher() && m_coreInputView && m_isShowing) { // CoreInputView.TryHide is only available after RS5
96
96
  m_coreInputView.TryHide();
97
97
  }
98
98
  }
@@ -37,7 +37,7 @@ class SIPEventHandler {
37
37
  winrt::weak_ref<XamlView> m_view{};
38
38
  xaml::FrameworkElement::Loaded_revoker m_loadedRevoker{};
39
39
  bool m_isShowing{false};
40
- bool m_fireKeyboradEvents;
40
+ bool m_fireKeyboardEvents;
41
41
 
42
42
  void InitializeCoreInputView();
43
43
  };
@@ -45,10 +45,10 @@ enum class ShadowCorners : uint8_t {
45
45
  };
46
46
 
47
47
  struct ShadowNodeLayout {
48
- float Left;
49
- float Top;
50
- float Width;
51
- float Height;
48
+ float Left{0.f};
49
+ float Top{0.f};
50
+ float Width{0.f};
51
+ float Height{0.f};
52
52
  };
53
53
 
54
54
  extern const DECLSPEC_SELECTANY double c_UndefinedEdge = -1;
@@ -146,11 +146,14 @@ struct REACTWINDOWS_EXPORT ShadowNodeBase : public ShadowNode {
146
146
  bool m_onMouseEnterRegistered = false;
147
147
  bool m_onMouseLeaveRegistered = false;
148
148
 
149
+ // Overflow
150
+ bool m_overflowHidden = false;
151
+
149
152
  // Pointer events
150
153
  PointerEventsKind m_pointerEvents = PointerEventsKind::Auto;
151
154
 
152
155
  // Layout
153
- ShadowNodeLayout m_layout;
156
+ ShadowNodeLayout m_layout{};
154
157
 
155
158
  // Support Keyboard
156
159
  public:
@@ -46,7 +46,7 @@ class SwitchShadowNode : public ShadowNodeBase {
46
46
  // sets the resources to Empty SolidColorBrushes if the user sets the color before runtime, this lets the user change
47
47
  // the color of the SolidColorBrush at runtime and keeps the toggleswitches who did not change colors on the default
48
48
  // ThemeResource
49
- void setEmptyResouceBrushes(
49
+ void setEmptyResourceBrushes(
50
50
  const winrt::Microsoft::ReactNative::JSValueObject &props,
51
51
  const xaml::Controls::ToggleSwitch toggleSwitch) {
52
52
  auto brush = xaml::Media::SolidColorBrush();
@@ -83,7 +83,7 @@ void SwitchShadowNode::createView(const winrt::Microsoft::ReactNative::JSValueOb
83
83
  Super::createView(props);
84
84
  auto toggleSwitch = GetView().as<winrt::ToggleSwitch>();
85
85
 
86
- setEmptyResouceBrushes(props, toggleSwitch);
86
+ setEmptyResourceBrushes(props, toggleSwitch);
87
87
 
88
88
  m_toggleSwitchToggledRevoker = toggleSwitch.Toggled(winrt::auto_revoke, [=](auto &&, auto &&) {
89
89
  if (m_offTrackColor)
@@ -52,7 +52,7 @@ void TextTransformVisitor::VisitVirtualText(ShadowNodeBase *node) {
52
52
  }
53
53
 
54
54
  bool TextTransformVisitor::ShouldApplyTransform(TextTransform transform) {
55
- // If the visitor is applied in the context of a textTransfrom prop value
55
+ // If the visitor is applied in the context of a textTransform prop value
56
56
  // change, the m_forceUpdate flag is set to true.
57
57
  if (m_forceUpdate) {
58
58
  // When the textTransform prop changes, only recurse if at the root node
@@ -41,7 +41,7 @@ struct Selection {
41
41
  };
42
42
  } // namespace Microsoft::ReactNative
43
43
 
44
- // Such code is better to move to a seperate parser layer
44
+ // Such code is better to move to a separate parser layer
45
45
  template <>
46
46
  struct json_type_traits<Microsoft::ReactNative::Selection> {
47
47
  static Microsoft::ReactNative::Selection parseJson(const winrt::Microsoft::ReactNative::JSValue &json) {
@@ -127,7 +127,7 @@ class TextInputShadowNode : public ShadowNodeBase {
127
127
  void dispatchTextInputChangeEvent(winrt::hstring newText);
128
128
  void registerEvents();
129
129
  void registerPreviewKeyDown();
130
- void HideCaretIfNeeded();
130
+ void UpdateCaretColorOrHideIfNeeded();
131
131
  void setPasswordBoxPlaceholderForeground(
132
132
  xaml::Controls::PasswordBox passwordBox,
133
133
  const winrt::Microsoft::ReactNative::JSValue &color);
@@ -144,6 +144,8 @@ class TextInputShadowNode : public ShadowNodeBase {
144
144
  bool m_hideCaret = false;
145
145
  bool m_shouldClearTextOnSubmit = false;
146
146
 
147
+ winrt::Microsoft::ReactNative::JSValue m_cursorColor;
148
+
147
149
  winrt::Microsoft::ReactNative::JSValue m_placeholderTextColor;
148
150
  std::vector<HandledKeyboardEvent> m_submitKeyEvents{};
149
151
 
@@ -260,7 +262,7 @@ void TextInputShadowNode::registerEvents() {
260
262
  control.as<xaml::Controls::PasswordBox>().SelectAll();
261
263
  }
262
264
  }
263
- HideCaretIfNeeded();
265
+ UpdateCaretColorOrHideIfNeeded();
264
266
 
265
267
  folly::dynamic eventData = folly::dynamic::object("target", tag);
266
268
  if (!m_updating)
@@ -330,7 +332,7 @@ void TextInputShadowNode::registerEvents() {
330
332
  }
331
333
  });
332
334
  }
333
- HideCaretIfNeeded();
335
+ UpdateCaretColorOrHideIfNeeded();
334
336
  });
335
337
 
336
338
  if (control.try_as<xaml::IUIElement7>()) {
@@ -448,14 +450,24 @@ bool TextInputShadowNode::IsTextBox() {
448
450
  return !!GetView().try_as<xaml::Controls::TextBox>();
449
451
  }
450
452
 
451
- // hacking solution to hide the caret
452
- void TextInputShadowNode::HideCaretIfNeeded() {
453
+ // hacking solution to hide the caret or change its color
454
+ void TextInputShadowNode::UpdateCaretColorOrHideIfNeeded() {
455
+ bool updateRequired = false;
456
+ xaml::Media::SolidColorBrush color;
457
+
453
458
  if (m_hideCaret) {
459
+ updateRequired = true;
460
+ color = xaml::Media::SolidColorBrush(winrt::Colors::Transparent());
461
+ } else if (!m_cursorColor.IsNull()) {
462
+ updateRequired = true;
463
+ color = SolidColorBrushFrom(m_cursorColor);
464
+ }
465
+
466
+ if (updateRequired) {
454
467
  auto control = GetView().as<xaml::Controls::Control>();
455
468
  if (auto caret = FindCaret(control)) {
456
469
  caret.CompositeMode(xaml::Media::ElementCompositeMode::Inherit);
457
- xaml::Media::SolidColorBrush transparentColor(winrt::Colors::Transparent());
458
- caret.Fill(transparentColor);
470
+ caret.Fill(color);
459
471
  }
460
472
  }
461
473
  }
@@ -520,7 +532,7 @@ void TextInputShadowNode::updateProperties(winrt::Microsoft::ReactNative::JSValu
520
532
  } else if (propertyName == "caretHidden") {
521
533
  if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Boolean) {
522
534
  m_hideCaret = propertyValue.AsBoolean();
523
- HideCaretIfNeeded();
535
+ UpdateCaretColorOrHideIfNeeded();
524
536
  }
525
537
  } else if (propertyName == "focusable") {
526
538
  // parent class also sets isTabStop
@@ -581,6 +593,11 @@ void TextInputShadowNode::updateProperties(winrt::Microsoft::ReactNative::JSValu
581
593
  isTextBox ? xaml::Controls::TextBox::PlaceholderTextProperty()
582
594
  : xaml::Controls::PasswordBox::PlaceholderTextProperty());
583
595
  }
596
+ } else if (propertyName == "cursorColor") {
597
+ m_cursorColor = nullptr;
598
+ if (IsValidColorValue(propertyValue)) {
599
+ m_cursorColor = propertyValue.Copy();
600
+ }
584
601
  } else if (propertyName == "selectionColor") {
585
602
  if (IsValidColorValue(propertyValue)) {
586
603
  control.SetValue(
@@ -593,9 +610,9 @@ void TextInputShadowNode::updateProperties(winrt::Microsoft::ReactNative::JSValu
593
610
  : xaml::Controls::PasswordBox::SelectionHighlightColorProperty());
594
611
  } else if (propertyName == "keyboardType") {
595
612
  if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::String) {
596
- auto inputScopeNameVaue = parseKeyboardType(propertyValue, isTextBox);
613
+ auto inputScopeNameValue = parseKeyboardType(propertyValue, isTextBox);
597
614
  auto scope = xaml::Input::InputScope();
598
- auto scopeName = xaml::Input::InputScopeName(inputScopeNameVaue);
615
+ auto scopeName = xaml::Input::InputScopeName(inputScopeNameValue);
599
616
  auto names = scope.Names();
600
617
  names.Append(scopeName);
601
618
  control.SetValue(
@@ -676,7 +693,7 @@ void TextInputShadowNode::updateProperties(winrt::Microsoft::ReactNative::JSValu
676
693
  if (propertyValue.AsString() == "characters") {
677
694
  textBox.CharacterCasing(xaml::Controls::CharacterCasing::Upper);
678
695
  } else { // anything else turns off autoCap (should be "None" but
679
- // we don't support "words"/"senetences" yet)
696
+ // we don't support "words"/"sentences" yet)
680
697
  textBox.CharacterCasing(xaml::Controls::CharacterCasing::Normal);
681
698
  }
682
699
  } else if (propertyValue.IsNull())
@@ -822,6 +839,7 @@ void TextInputViewManager::GetNativeProps(const winrt::Microsoft::ReactNative::I
822
839
  React::WriteProperty(writer, L"placeholder", L"string");
823
840
  React::WriteProperty(writer, L"placeholderTextColor", L"Color");
824
841
  React::WriteProperty(writer, L"scrollEnabled", L"boolean");
842
+ React::WriteProperty(writer, L"cursorColor", L"Color");
825
843
  React::WriteProperty(writer, L"selection", L"Map");
826
844
  React::WriteProperty(writer, L"selectionColor", L"Color");
827
845
  React::WriteProperty(writer, L"selectTextOnFocus", L"boolean");
@@ -946,7 +964,7 @@ void TextInputViewManager::TransferProperties(const XamlView &oldView, const Xam
946
964
  xaml::Controls::TextBox::SelectionHighlightColorProperty(),
947
965
  xaml::Controls::PasswordBox::SelectionHighlightColorProperty());
948
966
  newView.as<xaml::Controls::PasswordBox>().Password(oldView.as<xaml::Controls::TextBox>().Text());
949
- // Since both focasable/editable affect isEnabled for PasswordBox, if the oldView is enabled we still need to
967
+ // Since both focusable/editable affect isEnabled for PasswordBox, if the oldView is enabled we still need to
950
968
  // check isReadOnly
951
969
  if (oldView.as<xaml::Controls::TextBox>().IsEnabled()) {
952
970
  newView.as<xaml::Controls::PasswordBox>().IsEnabled(!oldView.as<xaml::Controls::TextBox>().IsReadOnly());
@@ -970,7 +988,7 @@ void TextInputViewManager::TransferProperties(const XamlView &oldView, const Xam
970
988
  xaml::Controls::PasswordBox::SelectionHighlightColorProperty(),
971
989
  xaml::Controls::TextBox::SelectionHighlightColorProperty());
972
990
  newView.as<xaml::Controls::TextBox>().Text(oldView.as<xaml::Controls::PasswordBox>().Password());
973
- // Since both focasable/editable affect isEnabled for PasswordBox, if the oldView is enabled we still need to
991
+ // Since both focusable/editable affect isEnabled for PasswordBox, if the oldView is enabled we still need to
974
992
  // check isReadOnly
975
993
  if (oldView.as<xaml::Controls::PasswordBox>().IsEnabled()) {
976
994
  newView.as<xaml::Controls::TextBox>().IsReadOnly(!oldView.as<xaml::Controls::PasswordBox>().IsEnabled());
@@ -585,7 +585,7 @@ bool TouchEventHandler::PropagatePointerEventAndFindReactSourceBranch(
585
585
  }
586
586
 
587
587
  //
588
- // Retreives the path of nodes from an element to the root.
588
+ // Retrieves the path of nodes from an element to the root.
589
589
  // The order of the returned list is from child to parent.
590
590
  //
591
591
  std::vector<int64_t> GetTagsForBranch(INativeUIManagerHost *host, int64_t tag, int64_t rootTag) {
@@ -46,7 +46,7 @@ float GetConstrainedResult(float constrainTo, float measuredSize, YGMeasureMode
46
46
  }
47
47
 
48
48
  YGSize DefaultYogaSelfMeasureFunc(
49
- YGNodeRef node,
49
+ YGNodeConstRef node,
50
50
  float width,
51
51
  YGMeasureMode widthMode,
52
52
  float height,
@@ -221,7 +221,7 @@ XamlView ViewManagerBase::CreateView(int64_t tag, const winrt::Microsoft::ReactN
221
221
  // Set the tag if the element type supports it
222
222
  SetTag(view, tag);
223
223
 
224
- // In Debug, set the element name to the tag for convienent
224
+ // In Debug, set the element name to the tag for convenient
225
225
  // searching within VisualStudio's Live Visual Tree pane
226
226
  #ifdef DEBUG
227
227
  auto element = view.try_as<xaml::FrameworkElement>();
@@ -295,6 +295,8 @@ bool ViewManagerBase::UpdateProperty(
295
295
  }
296
296
  }
297
297
  } else if (TryUpdateMouseEvents(nodeToUpdate, propertyName, propertyValue)) {
298
+ } else if (propertyName == "overflow") {
299
+ nodeToUpdate->m_overflowHidden = propertyValue.AsString() == "hidden";
298
300
  } else {
299
301
  return false;
300
302
  }
@@ -374,6 +376,16 @@ void ViewManagerBase::SetLayoutProps(
374
376
 
375
377
  fe.Width(width);
376
378
  fe.Height(height);
379
+
380
+ // Modifying the `overflow` prop will always result in the Yoga node setting
381
+ // `YGNodeHasNewLayout`, so we can reliably update the Clip from this method.
382
+ if (nodeToUpdate.m_overflowHidden) {
383
+ winrt::RectangleGeometry clipGeometry;
384
+ clipGeometry.Rect(winrt::Rect(0, 0, width, height));
385
+ fe.Clip(clipGeometry);
386
+ } else {
387
+ fe.ClearValue(xaml::UIElement::ClipProperty());
388
+ }
377
389
  }
378
390
 
379
391
  YGMeasureFunc ViewManagerBase::GetYogaCustomMeasureFunc() const {
@@ -25,7 +25,7 @@ struct YogaContext {
25
25
  };
26
26
 
27
27
  REACTWINDOWS_EXPORT YGSize DefaultYogaSelfMeasureFunc(
28
- YGNodeRef node,
28
+ YGNodeConstRef node,
29
29
  float width,
30
30
  YGMeasureMode widthMode,
31
31
  float height,