react-native-windows 0.71.7 → 0.72.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 (620) hide show
  1. package/.flowconfig +13 -3
  2. package/Directory.Build.props +19 -19
  3. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +1 -1
  4. package/Libraries/Alert/Alert.d.ts +4 -4
  5. package/Libraries/Alert/Alert.windows.js +2 -0
  6. package/Libraries/Alert/NativeDialogManagerWindows.js +1 -0
  7. package/Libraries/Animated/Animated.d.ts +17 -6
  8. package/Libraries/Animated/NativeAnimatedHelper.js +18 -6
  9. package/Libraries/Animated/bezier.js +1 -1
  10. package/Libraries/Animated/components/AnimatedFlatList.js +8 -3
  11. package/Libraries/Animated/components/AnimatedScrollView.js +4 -1
  12. package/Libraries/Animated/components/AnimatedSectionList.js +12 -3
  13. package/Libraries/Animated/createAnimatedComponent.js +26 -239
  14. package/Libraries/Animated/nodes/AnimatedColor.js +47 -80
  15. package/Libraries/Animated/nodes/AnimatedInterpolation.js +167 -121
  16. package/Libraries/Animated/nodes/AnimatedNode.js +3 -5
  17. package/Libraries/Animated/nodes/AnimatedProps.js +7 -6
  18. package/Libraries/Animated/nodes/AnimatedStyle.js +42 -8
  19. package/Libraries/Animated/nodes/AnimatedTransform.js +1 -1
  20. package/Libraries/Animated/nodes/AnimatedValue.js +8 -12
  21. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  22. package/Libraries/Animated/useAnimatedProps.js +7 -10
  23. package/Libraries/AppTheme/AppTheme.js +1 -0
  24. package/Libraries/AppTheme/AppThemeTypes.d.ts +1 -1
  25. package/Libraries/BatchedBridge/MessageQueue.js +2 -1
  26. package/Libraries/BatchedBridge/NativeModules.d.ts +1 -1
  27. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  28. package/Libraries/Blob/Blob.js +4 -0
  29. package/Libraries/Blob/FileReader.js +30 -2
  30. package/Libraries/Blob/URL.js +3 -1
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +2 -2
  32. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -3
  33. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +2 -3
  34. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +6 -4
  35. package/Libraries/Components/Button.js +3 -2
  36. package/Libraries/Components/Button.windows.js +3 -2
  37. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  38. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
  39. package/Libraries/Components/Flyout/Flyout.d.ts +55 -19
  40. package/Libraries/Components/Flyout/Flyout.js +110 -51
  41. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +45 -0
  42. package/Libraries/Components/Glyph/Glyph.d.ts +29 -12
  43. package/Libraries/Components/Glyph/Glyph.js +43 -30
  44. package/Libraries/Components/Glyph/GlyphNativeComponent.js +31 -0
  45. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -0
  46. package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +2 -2
  47. package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
  48. package/Libraries/Components/Popup/Popup.d.ts +41 -19
  49. package/Libraries/Components/Popup/Popup.js +86 -52
  50. package/Libraries/Components/Popup/PopupNativeComponent.js +49 -0
  51. package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
  52. package/Libraries/Components/Pressable/Pressable.js +1 -1
  53. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -0
  54. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -0
  55. package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -2
  56. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +1 -2
  57. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +12 -6
  58. package/Libraries/Components/ScrollView/ScrollView.d.ts +2 -2
  59. package/Libraries/Components/ScrollView/ScrollView.js +149 -91
  60. package/Libraries/Components/ScrollView/ScrollView.windows.js +1939 -0
  61. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -6
  62. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +175 -0
  63. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -7
  64. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -1
  65. package/Libraries/Components/StatusBar/StatusBar.js +3 -0
  66. package/Libraries/Components/Switch/Switch.js +3 -1
  67. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +21 -11
  68. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +1 -1
  69. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +11 -5
  70. package/Libraries/Components/TextInput/TextInput.d.ts +15 -5
  71. package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
  72. package/Libraries/Components/TextInput/TextInput.js +130 -103
  73. package/Libraries/Components/TextInput/TextInput.windows.js +152 -115
  74. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
  75. package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
  76. package/Libraries/Components/Touchable/Touchable.flow.js +30 -4
  77. package/Libraries/Components/Touchable/Touchable.js +6 -3
  78. package/Libraries/Components/Touchable/Touchable.windows.js +6 -3
  79. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  80. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +2 -1
  81. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
  82. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -0
  83. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -0
  84. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +1 -1
  85. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
  86. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -2
  87. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +189 -0
  88. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
  89. package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
  90. package/Libraries/Components/View/View.js +71 -45
  91. package/Libraries/Components/View/View.windows.js +40 -16
  92. package/Libraries/Components/View/ViewAccessibility.d.ts +6 -6
  93. package/Libraries/Components/View/ViewAccessibility.js +10 -1
  94. package/Libraries/Components/View/ViewAccessibility.windows.js +9 -0
  95. package/Libraries/Components/View/ViewNativeComponent.js +32 -8
  96. package/Libraries/Components/View/ViewPropTypes.d.ts +1 -1
  97. package/Libraries/Components/View/ViewPropTypes.js +1 -1
  98. package/Libraries/Components/View/ViewPropTypes.windows.js +3 -1
  99. package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
  100. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
  101. package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
  102. package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
  103. package/Libraries/Core/ExceptionsManager.js +2 -2
  104. package/Libraries/Core/InitializeCore.js +2 -1
  105. package/Libraries/Core/ReactNativeVersion.js +3 -3
  106. package/Libraries/Core/ReactNativeVersionCheck.js +1 -9
  107. package/Libraries/Core/Timers/JSTimers.js +1 -1
  108. package/Libraries/Core/Timers/immediateShim.js +1 -0
  109. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  110. package/Libraries/Core/setUpAlert.js +1 -1
  111. package/Libraries/Core/setUpDOM.js +18 -0
  112. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  113. package/Libraries/Core/setUpGlobals.js +5 -2
  114. package/Libraries/Core/setUpNavigator.js +6 -5
  115. package/Libraries/Core/setUpPerformance.js +23 -13
  116. package/Libraries/Core/setUpReactDevTools.js +2 -0
  117. package/Libraries/Core/setUpSegmentFetcher.js +0 -41
  118. package/Libraries/Core/setUpTimers.js +2 -2
  119. package/Libraries/DOM/Geometry/DOMRect.js +82 -0
  120. package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
  121. package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
  122. package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
  123. package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
  124. package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
  125. package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
  126. package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
  127. package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
  128. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
  129. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
  130. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
  131. package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +35 -0
  132. package/Libraries/{Utilities/NativeDevSplitBundleLoader.js → DevToolsSettings/NativeDevToolsSettingsManager.js} +7 -2
  133. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
  134. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
  135. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
  136. package/Libraries/Events/EventPolyfill.js +1 -1
  137. package/Libraries/Image/AssetRegistry.js +1 -1
  138. package/Libraries/Image/AssetSourceResolver.js +3 -3
  139. package/Libraries/Image/Image.android.js +4 -1
  140. package/Libraries/Image/Image.d.ts +63 -2
  141. package/Libraries/Image/Image.ios.js +3 -0
  142. package/Libraries/Image/Image.windows.js +3 -0
  143. package/Libraries/Image/ImageBackground.js +1 -0
  144. package/Libraries/Image/ImageProps.js +1 -1
  145. package/Libraries/Image/ImageViewNativeComponent.js +4 -4
  146. package/Libraries/Image/RelativeImageStub.js +1 -1
  147. package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
  148. package/Libraries/Image/resolveAssetSource.js +1 -1
  149. package/Libraries/Inspector/DevtoolsOverlay.js +29 -19
  150. package/Libraries/Inspector/ElementBox.js +4 -1
  151. package/Libraries/Inspector/Inspector.js +5 -6
  152. package/Libraries/Inspector/InspectorOverlay.js +3 -3
  153. package/Libraries/Inspector/NetworkOverlay.js +1 -1
  154. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
  155. package/Libraries/Interaction/PanResponder.js +5 -6
  156. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
  157. package/Libraries/Linking/Linking.js +1 -4
  158. package/Libraries/Lists/FillRateHelper.js +4 -238
  159. package/Libraries/Lists/FlatList.d.ts +15 -22
  160. package/Libraries/Lists/FlatList.js +9 -6
  161. package/Libraries/Lists/SectionList.d.ts +10 -6
  162. package/Libraries/Lists/SectionList.js +5 -3
  163. package/Libraries/Lists/SectionListModern.js +3 -3
  164. package/Libraries/Lists/ViewabilityHelper.js +8 -344
  165. package/Libraries/Lists/VirtualizeUtils.js +4 -244
  166. package/Libraries/Lists/VirtualizedList.js +10 -1867
  167. package/Libraries/Lists/VirtualizedListContext.js +6 -104
  168. package/Libraries/Lists/VirtualizedSectionList.js +9 -602
  169. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
  170. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  171. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  172. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  173. package/Libraries/LogBox/LogBox.js +1 -1
  174. package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
  175. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +167 -0
  176. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +172 -0
  177. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +193 -0
  178. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
  179. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
  180. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +118 -0
  181. package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
  182. package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
  183. package/Libraries/Modal/Modal.js +2 -2
  184. package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
  185. package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
  186. package/Libraries/NativeComponent/BaseViewConfig.windows.js +77 -19
  187. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
  188. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  189. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
  190. package/Libraries/Network/RCTNetworking.android.js +2 -2
  191. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  192. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  193. package/Libraries/Network/XMLHttpRequest.js +1 -1
  194. package/Libraries/Pressability/Pressability.js +11 -5
  195. package/Libraries/Pressability/Pressability.windows.js +11 -4
  196. package/Libraries/ReactNative/AppContainer.js +7 -1
  197. package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
  198. package/Libraries/ReactNative/AppRegistry.js +10 -13
  199. package/Libraries/ReactNative/FabricUIManager.js +24 -8
  200. package/Libraries/ReactNative/NativeUIManager.js +5 -5
  201. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
  202. package/Libraries/ReactNative/UIManager.js +142 -1
  203. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
  204. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  205. package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
  206. package/Libraries/ReactNative/requireNativeComponent.js +1 -1
  207. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
  208. package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
  209. package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
  210. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
  211. package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
  212. package/Libraries/Renderer/shims/ReactNativeTypes.js +38 -20
  213. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
  214. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  215. package/Libraries/Share/Share.js +1 -1
  216. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  217. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  218. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
  219. package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
  220. package/Libraries/StyleSheet/flattenStyle.js +2 -0
  221. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  222. package/Libraries/StyleSheet/processColor.js +1 -1
  223. package/Libraries/Text/Text.d.ts +12 -2
  224. package/Libraries/Text/Text.js +50 -41
  225. package/Libraries/Text/Text.windows.js +48 -38
  226. package/Libraries/Text/TextProps.js +3 -4
  227. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
  228. package/Libraries/Types/CodegenTypes.js +1 -0
  229. package/Libraries/UTFSequence.js +3 -1
  230. package/Libraries/Utilities/Appearance.d.ts +10 -0
  231. package/Libraries/Utilities/Appearance.js +13 -0
  232. package/Libraries/Utilities/Dimensions.js +1 -1
  233. package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
  234. package/Libraries/Utilities/HMRClient.js +16 -10
  235. package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
  236. package/Libraries/Utilities/IPerformanceLogger.js +49 -0
  237. package/Libraries/Utilities/LoadingView.android.js +28 -11
  238. package/Libraries/Utilities/NativeAppearance.js +1 -0
  239. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
  240. package/Libraries/Utilities/PixelRatio.js +2 -2
  241. package/Libraries/Utilities/Platform.windows.js +1 -1
  242. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  243. package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
  244. package/Libraries/Utilities/codegenNativeCommands.js +2 -0
  245. package/Libraries/Utilities/createPerformanceLogger.js +55 -43
  246. package/Libraries/Utilities/stringifySafe.js +2 -7
  247. package/Libraries/Utilities/useColorScheme.js +1 -1
  248. package/Libraries/Utilities/useWindowDimensions.js +3 -3
  249. package/Libraries/WebPerformance/EventCounts.js +78 -0
  250. package/Libraries/WebPerformance/MemoryInfo.js +54 -0
  251. package/Libraries/WebPerformance/NativePerformance.js +38 -0
  252. package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
  253. package/Libraries/WebPerformance/Performance.js +312 -0
  254. package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
  255. package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
  256. package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
  257. package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
  258. package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
  259. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
  260. package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
  261. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  262. package/Libraries/platform-types.d.ts +3 -5
  263. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  264. package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
  265. package/Libraries/vendor/emitter/EventEmitter.js +9 -1
  266. package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +0 -15
  267. package/Microsoft.ReactNative/CompositionHwndHost.idl +6 -0
  268. package/Microsoft.ReactNative/CompositionRootView.idl +35 -0
  269. package/Microsoft.ReactNative/CompositionSwitcher.idl +19 -0
  270. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +174 -0
  271. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +91 -0
  272. package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +48 -0
  273. package/Microsoft.ReactNative/Fabric/AbiViewProps.h +48 -0
  274. package/Microsoft.ReactNative/Fabric/ComponentView.h +19 -2
  275. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +144 -0
  276. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +63 -0
  277. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +27 -6
  278. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +97 -0
  279. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +227 -0
  280. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +38 -0
  281. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +112 -95
  282. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +12 -8
  283. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +0 -2
  284. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +27 -6
  285. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +8 -0
  286. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +147 -0
  287. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +46 -0
  288. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +31 -4
  289. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +37 -0
  290. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +255 -50
  291. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +34 -15
  292. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +127 -47
  293. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +11 -7
  294. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +109 -39
  295. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +10 -7
  296. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +106 -0
  297. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +63 -0
  298. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +116 -0
  299. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +43 -0
  300. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +53 -38
  301. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +12 -8
  302. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +262 -0
  303. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +62 -0
  304. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +35 -30
  305. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +11 -9
  306. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +9 -0
  307. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -0
  308. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +2 -1
  309. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +72 -0
  310. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +16 -0
  311. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +168 -0
  312. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +49 -0
  313. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +19 -53
  314. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -3
  315. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +8 -9
  316. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +100 -0
  317. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.h +43 -0
  318. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +61 -0
  319. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +34 -0
  320. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +42 -0
  321. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +10 -0
  322. package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +248 -0
  323. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +5 -0
  324. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +135 -4
  325. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +18 -240
  326. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -17
  327. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +13 -2
  328. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +87 -0
  329. package/Microsoft.ReactNative/IReactContext.cpp +4 -0
  330. package/Microsoft.ReactNative/IReactContext.h +1 -0
  331. package/Microsoft.ReactNative/IReactContext.idl +5 -0
  332. package/Microsoft.ReactNative/IReactDispatcher.cpp +4 -0
  333. package/Microsoft.ReactNative/IReactDispatcher.h +1 -0
  334. package/Microsoft.ReactNative/IReactPackageBuilderFabric.idl +23 -0
  335. package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +23 -0
  336. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -118
  337. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -7
  338. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +2 -2
  339. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +1 -1
  340. package/Microsoft.ReactNative/Modules/AlertModule.cpp +100 -4
  341. package/Microsoft.ReactNative/Modules/AlertModule.h +4 -0
  342. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.cpp +9 -0
  343. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.h +2 -0
  344. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +7 -5
  345. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +17 -3
  346. package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.h +1 -0
  347. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +4 -0
  348. package/Microsoft.ReactNative/Modules/AppearanceModule.h +3 -0
  349. package/Microsoft.ReactNative/Modules/ClipboardModule.cpp +4 -4
  350. package/Microsoft.ReactNative/Modules/ClipboardModule.h +2 -2
  351. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +27 -7
  352. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.h +9 -5
  353. package/Microsoft.ReactNative/Modules/LinkingManagerModule.cpp +10 -12
  354. package/Microsoft.ReactNative/Modules/LinkingManagerModule.h +4 -4
  355. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -1
  356. package/Microsoft.ReactNative/QuirkSettings.cpp +17 -0
  357. package/Microsoft.ReactNative/QuirkSettings.h +5 -0
  358. package/Microsoft.ReactNative/QuirkSettings.idl +6 -0
  359. package/Microsoft.ReactNative/ReactApplication.cpp +8 -0
  360. package/Microsoft.ReactNative/ReactApplication.h +3 -0
  361. package/Microsoft.ReactNative/ReactApplication.idl +3 -0
  362. package/Microsoft.ReactNative/ReactCoreInjection.cpp +29 -0
  363. package/Microsoft.ReactNative/ReactCoreInjection.h +6 -0
  364. package/Microsoft.ReactNative/ReactCoreInjection.idl +13 -0
  365. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +7 -0
  366. package/Microsoft.ReactNative/ReactHost/MsoReactContext.h +1 -0
  367. package/Microsoft.ReactNative/ReactHost/React.h +2 -0
  368. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +57 -16
  369. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -0
  370. package/Microsoft.ReactNative/ReactInstanceSettings.h +12 -0
  371. package/Microsoft.ReactNative/ReactInstanceSettings.idl +6 -0
  372. package/Microsoft.ReactNative/ReactNativeHost.cpp +17 -0
  373. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +18 -0
  374. package/Microsoft.ReactNative/ReactPackageBuilder.h +24 -1
  375. package/Microsoft.ReactNative/ReactRootView.cpp +2 -2
  376. package/Microsoft.ReactNative/RedBox.cpp +2 -1
  377. package/Microsoft.ReactNative/Utils/Helpers.cpp +0 -32
  378. package/Microsoft.ReactNative/Utils/Helpers.h +0 -8
  379. package/Microsoft.ReactNative/Utils/ImageUtils.cpp +69 -6
  380. package/Microsoft.ReactNative/Utils/ImageUtils.h +3 -1
  381. package/Microsoft.ReactNative/Utils/KeyboardUtils.cpp +416 -0
  382. package/Microsoft.ReactNative/Utils/KeyboardUtils.h +15 -0
  383. package/Microsoft.ReactNative/Utils/TransformableText.h +1 -0
  384. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -9
  385. package/Microsoft.ReactNative/Utils/ValueUtils.h +0 -2
  386. package/Microsoft.ReactNative/ViewProps.idl +30 -0
  387. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +6 -2
  388. package/Microsoft.ReactNative/Views/DevMenu.cpp +369 -230
  389. package/Microsoft.ReactNative/Views/DevMenu.h +3 -15
  390. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +6 -3
  391. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +11 -3
  392. package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +5 -1
  393. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +29 -22
  394. package/Microsoft.ReactNative/Views/Image/ReactImage.h +2 -2
  395. package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +10 -405
  396. package/Microsoft.ReactNative/Views/KeyboardEventHandler.h +0 -3
  397. package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -0
  398. package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +2 -2
  399. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +7 -0
  400. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +3 -0
  401. package/Microsoft.ReactNative/Views/Text/TextHitTestUtils.cpp +6 -1
  402. package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +1 -0
  403. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +38 -2
  404. package/Microsoft.ReactNative/Views/TextViewManager.cpp +3 -0
  405. package/Microsoft.ReactNative/Views/TouchEventHandler.h +0 -4
  406. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +0 -8
  407. package/Microsoft.ReactNative/Views/ViewPanel.cpp +1 -1
  408. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +12 -3
  409. package/Microsoft.ReactNative/XamlHelper.cpp +36 -0
  410. package/Microsoft.ReactNative/XamlHelper.h +27 -0
  411. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +4 -4
  412. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +4 -4
  413. package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
  414. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +10 -8
  415. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +3 -3
  416. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +4 -1
  417. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +3 -0
  418. package/Microsoft.ReactNative.Cxx/NativeModules.h +16 -1
  419. package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +2 -0
  420. package/Microsoft.ReactNative.Managed/packages.lock.json +5 -5
  421. package/PropertySheets/External/Microsoft.ReactNative.Cpp.ProjectReferences.props +3 -0
  422. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  423. package/PropertySheets/JSEngine.props +2 -3
  424. package/PropertySheets/Warnings.props +1 -1
  425. package/ReactCommon/ReactCommon.vcxproj +2 -4
  426. package/ReactCommon/ReactCommon.vcxproj.filters +3 -0
  427. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +1 -1
  428. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.cpp +60 -0
  429. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.h +60 -0
  430. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +116 -0
  431. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +63 -0
  432. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -2
  433. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +237 -0
  434. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +59 -0
  435. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +159 -0
  436. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +94 -0
  437. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +465 -0
  438. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +116 -0
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +98 -0
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +362 -0
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +326 -0
  442. package/ReactCommon/Yoga.cpp +60 -127
  443. package/Scripts/OfficeReact.Win32.nuspec +1 -0
  444. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +1 -0
  445. package/Scripts/rnw-dependencies.ps1 +12 -4
  446. package/Shared/Composition/CompositionSwitcher.interop.h +1 -0
  447. package/Shared/DevServerHelper.h +11 -2
  448. package/Shared/DevSettings.h +1 -0
  449. package/Shared/DevSupportManager.cpp +11 -1
  450. package/Shared/DevSupportManager.h +1 -0
  451. package/Shared/HermesRuntimeHolder.cpp +53 -30
  452. package/Shared/HermesRuntimeHolder.h +26 -11
  453. package/Shared/HermesSamplingProfiler.cpp +61 -8
  454. package/Shared/HermesSamplingProfiler.h +6 -3
  455. package/Shared/HermesShim.cpp +86 -82
  456. package/Shared/HermesShim.h +28 -8
  457. package/Shared/JSI/ChakraRuntime.cpp +7 -4
  458. package/Shared/JSI/ChakraRuntime.h +4 -4
  459. package/Shared/JSI/NapiJsiV8RuntimeHolder.h +2 -0
  460. package/Shared/JSI/RuntimeHolder.h +2 -2
  461. package/Shared/Logging.cpp +1 -1
  462. package/Shared/Modules/BlobModule.cpp +3 -4
  463. package/Shared/Modules/BlobModule.h +0 -4
  464. package/Shared/Networking/OriginPolicyHttpFilter.cpp +13 -17
  465. package/Shared/Networking/OriginPolicyHttpFilter.h +11 -12
  466. package/Shared/Networking/WinRTWebSocketResource.cpp +59 -45
  467. package/Shared/OInstance.cpp +9 -2
  468. package/Shared/Shared.vcxitems +265 -58
  469. package/Shared/Shared.vcxitems.filters +312 -42
  470. package/Shared/V8JSIRuntimeHolder.cpp +1 -0
  471. package/Shared/V8JSIRuntimeHolder.h +7 -2
  472. package/codegen/NativeAppearanceSpec.g.h +9 -3
  473. package/codegen/NativeClipboardSpec.g.h +3 -3
  474. package/codegen/NativeDevToolsSettingsManagerSpec.g.h +51 -0
  475. package/codegen/NativeDialogManagerWindowsSpec.g.h +2 -0
  476. package/codegen/NativeFileReaderModuleSpec.g.h +6 -6
  477. package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +3 -3
  478. package/codegen/NativeImageLoaderAndroidSpec.g.h +25 -9
  479. package/codegen/NativeImageLoaderIOSSpec.g.h +20 -12
  480. package/codegen/NativeIntentAndroidSpec.g.h +15 -15
  481. package/codegen/NativeLinkingManagerSpec.g.h +12 -12
  482. package/codegen/NativePerformanceObserverSpec.g.h +48 -10
  483. package/codegen/NativePerformanceSpec.g.h +63 -0
  484. package/codegen/NativePermissionsAndroidSpec.g.h +9 -9
  485. package/codegen/NativePlatformConstantsWinSpec.g.h +1 -1
  486. package/codegen/NativePushNotificationManagerIOSSpec.g.h +6 -6
  487. package/codegen/NativeSampleTurboModuleSpec.g.h +25 -19
  488. package/codegen/NativeShareModuleSpec.g.h +9 -3
  489. package/codegen/NativeUIManagerSpec.g.h +12 -12
  490. package/codegen/react/components/rnwcore/ComponentDescriptors.h +1 -2
  491. package/codegen/react/components/rnwcore/EventEmitters.cpp +21 -29
  492. package/codegen/react/components/rnwcore/EventEmitters.h +30 -30
  493. package/codegen/react/components/rnwcore/Props.cpp +47 -48
  494. package/codegen/react/components/rnwcore/Props.h +59 -166
  495. package/codegen/react/components/rnwcore/ShadowNodes.cpp +1 -2
  496. package/codegen/react/components/rnwcore/ShadowNodes.h +11 -22
  497. package/codegen/react/components/rnwcore/States.h +15 -30
  498. package/codegen/rnwcoreJSI-generated.cpp +87 -25
  499. package/codegen/rnwcoreJSI.h +1077 -417
  500. package/generate.js +6 -1
  501. package/include/Include.vcxitems +0 -1
  502. package/include/Include.vcxitems.filters +0 -3
  503. package/index.js +56 -42
  504. package/index.windows.js +56 -42
  505. package/interface.js +1 -1
  506. package/jest/local-setup.js +33 -0
  507. package/jest/mockComponent.js +4 -2
  508. package/jest/mockNativeComponent.js +1 -1
  509. package/jest/mockScrollView.js +2 -1
  510. package/jest/react-native-env.js +1 -3
  511. package/jest/setup.js +11 -8
  512. package/just-task.js +12 -5
  513. package/package.json +32 -29
  514. package/rn-get-polyfills.js +1 -1
  515. package/template/metro.config.js +2 -0
  516. package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
  517. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
  518. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
  519. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
  520. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
  521. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
  522. package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
  523. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
  524. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
  525. package/Libraries/Components/DatePicker/DatePickerIOS.windows.js +0 -47
  526. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
  527. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
  528. package/Libraries/Components/Flyout/Flyout.js.map +0 -1
  529. package/Libraries/Components/Flyout/FlyoutProps.d.ts +0 -25
  530. package/Libraries/Components/Flyout/FlyoutProps.js +0 -3
  531. package/Libraries/Components/Flyout/FlyoutProps.js.map +0 -1
  532. package/Libraries/Components/Glyph/Glyph.js.map +0 -1
  533. package/Libraries/Components/Glyph/GlyphProps.d.ts +0 -16
  534. package/Libraries/Components/Glyph/GlyphProps.js +0 -8
  535. package/Libraries/Components/Glyph/GlyphProps.js.map +0 -1
  536. package/Libraries/Components/Popup/Popup.js.map +0 -1
  537. package/Libraries/Components/Popup/PopupProps.d.ts +0 -27
  538. package/Libraries/Components/Popup/PopupProps.js +0 -8
  539. package/Libraries/Components/Popup/PopupProps.js.map +0 -1
  540. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
  541. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
  542. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
  543. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.windows.js +0 -45
  544. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
  545. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
  546. package/Libraries/Components/Slider/Slider.d.ts +0 -132
  547. package/Libraries/Components/Slider/Slider.js +0 -282
  548. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
  549. package/Libraries/Interaction/Batchinator.js +0 -76
  550. package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
  551. package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
  552. package/Libraries/Interaction/PanResponder.flow.js +0 -257
  553. package/Libraries/Lists/CellRenderMask.js +0 -155
  554. package/Libraries/Lists/ChildListCollection.js +0 -72
  555. package/Libraries/Lists/StateSafePureComponent.js +0 -85
  556. package/Libraries/Lists/VirtualizedList.d.ts +0 -347
  557. package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
  558. package/Libraries/Lists/VirtualizedListProps.js +0 -279
  559. package/Libraries/Performance/PureComponentDebug.js +0 -74
  560. package/Libraries/Reliability/UserFlow.js +0 -158
  561. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
  562. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
  563. package/Libraries/Utilities/MatrixMath.js +0 -748
  564. package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
  565. package/Libraries/Utilities/clamp.js +0 -23
  566. package/Libraries/Utilities/deprecatedPropType.js +0 -36
  567. package/Libraries/Utilities/groupByEveryN.js +0 -51
  568. package/Libraries/Utilities/mergeIntoFast.js +0 -26
  569. package/Libraries/Utilities/setAndForwardRef.js +0 -71
  570. package/Libraries/Utilities/truncate.js +0 -51
  571. package/Microsoft.ReactNative/Fabric/platform/react/components/image/conversions.h +0 -5
  572. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ConcreteViewShadowNode.h +0 -5
  573. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewEventEmitter.h +0 -5
  574. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewProps.h +0 -5
  575. package/Microsoft.ReactNative/Fabric/platform/react/core/ConcreteComponentDescriptor.h +0 -5
  576. package/Microsoft.ReactNative/Fabric/platform/react/core/PropsParserContext.h +0 -5
  577. package/Microsoft.ReactNative/Fabric/platform/react/core/propsConversions.h +0 -5
  578. package/Microsoft.ReactNative/Fabric/platform/react/graphics/Color.h +0 -5
  579. package/Microsoft.ReactNative/Fabric/platform/react/imagemanager/primitives.h +0 -5
  580. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputEventEmitter.h +0 -5
  581. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputProps.h +0 -5
  582. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputShadowNode.h +0 -5
  583. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputState.h +0 -5
  584. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/conversions.h +0 -5
  585. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/primitives.h +0 -5
  586. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/propsConversions.h +0 -5
  587. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +0 -5
  588. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +0 -5
  589. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/States.h +0 -5
  590. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Float.h +0 -5
  591. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +0 -135
  592. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ConcreteComponentDescriptor.h +0 -217
  593. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/graphics/RectangleEdges.h +0 -100
  594. package/Shared/AsyncStorage/AsyncStorageManager.cpp +0 -149
  595. package/Shared/AsyncStorage/AsyncStorageManager.h +0 -71
  596. package/Shared/AsyncStorage/FollyDynamicConverter.cpp +0 -51
  597. package/Shared/AsyncStorage/FollyDynamicConverter.h +0 -24
  598. package/Shared/AsyncStorage/KeyValueStorage.cpp +0 -248
  599. package/Shared/AsyncStorage/KeyValueStorage.h +0 -50
  600. package/Shared/AsyncStorage/StorageFileIO.cpp +0 -160
  601. package/Shared/AsyncStorage/StorageFileIO.h +0 -40
  602. package/Shared/AsyncStorageModule.h +0 -25
  603. package/Shared/Modules/AsyncStorageModule.cpp +0 -87
  604. package/Shared/Modules/AsyncStorageModuleWin32.cpp +0 -496
  605. package/Shared/Modules/AsyncStorageModuleWin32.h +0 -75
  606. package/codegen/NativeDatePickerAndroidSpec.g.h +0 -33
  607. package/codegen/NativeDevSplitBundleLoaderSpec.g.h +0 -33
  608. package/include/Shared/AsyncStorageModuleWin32Config.h +0 -15
  609. package/types/index.d.ts +0 -216
  610. package/types/modules/BatchedBridge.d.ts +0 -32
  611. package/types/modules/Codegen.d.ts +0 -74
  612. package/types/modules/Devtools.d.ts +0 -31
  613. package/types/modules/LaunchScreen.d.ts +0 -18
  614. package/types/modules/globals.d.ts +0 -577
  615. package/types/private/TimerMixin.d.ts +0 -19
  616. package/types/private/Utilities.d.ts +0 -10
  617. package/types/public/DeprecatedPropertiesAlias.d.ts +0 -205
  618. package/types/public/Insets.d.ts +0 -15
  619. package/types/public/ReactNativeRenderer.d.ts +0 -149
  620. package/types/public/ReactNativeTypes.d.ts +0 -143
@@ -0,0 +1,262 @@
1
+
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+
5
+ #pragma once
6
+
7
+ #include "SwitchComponentView.h"
8
+ #include "CompositionDynamicAutomationProvider.h"
9
+
10
+ namespace Microsoft::ReactNative {
11
+
12
+ SwitchComponentView::SwitchComponentView(
13
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
14
+ facebook::react::Tag tag,
15
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext)
16
+ : Super(compContext, tag), m_context(reactContext) {
17
+ m_props = std::make_shared<facebook::react::SwitchProps const>();
18
+ }
19
+
20
+ std::shared_ptr<SwitchComponentView> SwitchComponentView::Create(
21
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
22
+ facebook::react::Tag tag,
23
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext) noexcept {
24
+ return std::shared_ptr<SwitchComponentView>(new SwitchComponentView(compContext, tag, reactContext));
25
+ }
26
+
27
+ void SwitchComponentView::mountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept {
28
+ assert(false);
29
+ }
30
+
31
+ void SwitchComponentView::unmountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept {
32
+ assert(false);
33
+ }
34
+
35
+ void SwitchComponentView::handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept {
36
+ if (commandName == "setValue") {
37
+ // TODO - Current implementation always aligns with JS value
38
+ // This will be needed when we move to using WinUI controls
39
+ } else {
40
+ Super::handleCommand(commandName, arg);
41
+ }
42
+ }
43
+
44
+ void SwitchComponentView::updateProps(
45
+ facebook::react::Props::Shared const &props,
46
+ facebook::react::Props::Shared const &oldProps) noexcept {
47
+ const auto &oldViewProps = *std::static_pointer_cast<const facebook::react::SwitchProps>(m_props);
48
+ const auto &newViewProps = *std::static_pointer_cast<const facebook::react::SwitchProps>(props);
49
+
50
+ ensureVisual();
51
+
52
+ if (oldViewProps.backgroundColor != newViewProps.backgroundColor ||
53
+ oldViewProps.thumbTintColor != newViewProps.thumbTintColor || oldViewProps.value != newViewProps.value ||
54
+ oldViewProps.disabled != newViewProps.disabled) {
55
+ m_drawingSurface = nullptr;
56
+ }
57
+
58
+ updateBorderProps(oldViewProps, newViewProps);
59
+ m_props = std::static_pointer_cast<facebook::react::ViewProps const>(props);
60
+ }
61
+
62
+ void SwitchComponentView::updateState(
63
+ facebook::react::State::Shared const &state,
64
+ facebook::react::State::Shared const &oldState) noexcept {}
65
+
66
+ void SwitchComponentView::updateLayoutMetrics(
67
+ facebook::react::LayoutMetrics const &layoutMetrics,
68
+ facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept {
69
+ // Set Position & Size Properties
70
+ ensureVisual();
71
+
72
+ if ((layoutMetrics.displayType != m_layoutMetrics.displayType)) {
73
+ OuterVisual().IsVisible(layoutMetrics.displayType != facebook::react::DisplayType::None);
74
+ }
75
+
76
+ updateBorderLayoutMetrics(layoutMetrics, *m_props);
77
+ m_layoutMetrics = layoutMetrics;
78
+
79
+ UpdateCenterPropertySet();
80
+ m_visual.Size(
81
+ {layoutMetrics.frame.size.width * layoutMetrics.pointScaleFactor,
82
+ layoutMetrics.frame.size.height * layoutMetrics.pointScaleFactor});
83
+ }
84
+
85
+ void SwitchComponentView::finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept {
86
+ ensureDrawingSurface();
87
+ }
88
+
89
+ void SwitchComponentView::Draw() noexcept {
90
+ // Begin our update of the surface pixels. If this is our first update, we are required
91
+ // to specify the entire surface, which nullptr is shorthand for (but, as it works out,
92
+ // any time we make an update we touch the entire surface, so we always pass nullptr).
93
+ winrt::com_ptr<ID2D1DeviceContext> d2dDeviceContext;
94
+ POINT offset;
95
+
96
+ winrt::com_ptr<Composition::ICompositionDrawingSurfaceInterop> drawingSurfaceInterop;
97
+ m_drawingSurface.as(drawingSurfaceInterop);
98
+
99
+ if (CheckForDeviceRemoved(drawingSurfaceInterop->BeginDraw(d2dDeviceContext.put(), &offset))) {
100
+ const auto switchProps = std::static_pointer_cast<const facebook::react::SwitchProps>(m_props);
101
+
102
+ d2dDeviceContext->Clear(D2D1::ColorF(D2D1::ColorF::Black, 0.0f));
103
+ if (m_props->backgroundColor) {
104
+ d2dDeviceContext->Clear(m_props->backgroundColor.AsD2DColor());
105
+ }
106
+
107
+ float offsetX = static_cast<float>(offset.x / m_layoutMetrics.pointScaleFactor);
108
+ float offsetY = static_cast<float>(offset.y / m_layoutMetrics.pointScaleFactor);
109
+
110
+ // https://github.com/microsoft/microsoft-ui-xaml/blob/main/dev/CommonStyles/ToggleSwitch_themeresources.xaml
111
+ constexpr float thumbMargin = 3.0f;
112
+ constexpr float thumbRadius = 7.0f;
113
+ constexpr float trackWidth = 40.0f;
114
+ constexpr float trackHeight = 20.0f;
115
+ constexpr float trackCornerRadius = 10.0f;
116
+
117
+ auto frame{m_layoutMetrics.frame.size};
118
+ float trackMarginX = (frame.width - trackWidth) / 2;
119
+ float trackMarginY = (frame.height - trackHeight) / 2;
120
+
121
+ D2D1_RECT_F trackRect = D2D1::RectF(
122
+ offsetX + trackMarginX,
123
+ offsetY + trackMarginY,
124
+ offsetX + trackMarginX + trackWidth,
125
+ offsetY + trackMarginY + trackHeight);
126
+
127
+ // switchProps->value = false
128
+ float thumbX = trackRect.left + thumbMargin + thumbRadius;
129
+
130
+ if (switchProps->value) {
131
+ thumbX = trackRect.right - thumbMargin - thumbRadius;
132
+ }
133
+
134
+ winrt::com_ptr<ID2D1SolidColorBrush> defaultBrush;
135
+
136
+ D2D1_COLOR_F defaultColor =
137
+ switchProps->disabled ? facebook::react::greyColor().AsD2DColor() : facebook::react::blackColor().AsD2DColor();
138
+
139
+ winrt::check_hresult(d2dDeviceContext->CreateSolidColorBrush(defaultColor, defaultBrush.put()));
140
+
141
+ winrt::com_ptr<ID2D1SolidColorBrush> thumbBrush;
142
+ if (!switchProps->disabled && switchProps->thumbTintColor) {
143
+ winrt::check_hresult(
144
+ d2dDeviceContext->CreateSolidColorBrush(switchProps->thumbTintColor.AsD2DColor(), thumbBrush.put()));
145
+ } else {
146
+ thumbBrush = defaultBrush;
147
+ }
148
+
149
+ const auto dpi = m_layoutMetrics.pointScaleFactor * 96.0f;
150
+ float oldDpiX, oldDpiY;
151
+ d2dDeviceContext->GetDpi(&oldDpiX, &oldDpiY);
152
+ d2dDeviceContext->SetDpi(dpi, dpi);
153
+
154
+ // switch track - outline
155
+ D2D1_ROUNDED_RECT track = D2D1::RoundedRect(trackRect, trackCornerRadius, trackCornerRadius);
156
+ if ((!switchProps->onTintColor && switchProps->value) || (!switchProps->tintColor && !switchProps->value)) {
157
+ d2dDeviceContext->DrawRoundedRectangle(track, defaultBrush.get());
158
+ }
159
+
160
+ // switch track - fill
161
+ winrt::com_ptr<ID2D1SolidColorBrush> trackBrush;
162
+ if (!switchProps->disabled && switchProps->onTintColor && switchProps->value) {
163
+ winrt::check_hresult(
164
+ d2dDeviceContext->CreateSolidColorBrush(switchProps->onTintColor.AsD2DColor(), trackBrush.put()));
165
+ d2dDeviceContext->FillRoundedRectangle(track, trackBrush.get());
166
+ } else if (!switchProps->disabled && switchProps->tintColor && !switchProps->value) {
167
+ winrt::check_hresult(
168
+ d2dDeviceContext->CreateSolidColorBrush(switchProps->tintColor.AsD2DColor(), trackBrush.put()));
169
+ d2dDeviceContext->FillRoundedRectangle(track, trackBrush.get());
170
+ }
171
+
172
+ // switch thumb
173
+ D2D1_POINT_2F thumbCenter = D2D1 ::Point2F(thumbX, (trackRect.top + trackRect.bottom) / 2);
174
+ D2D1_ELLIPSE thumb = D2D1::Ellipse(thumbCenter, thumbRadius, thumbRadius);
175
+ d2dDeviceContext->FillEllipse(thumb, thumbBrush.get());
176
+
177
+ // Restore old dpi setting
178
+ d2dDeviceContext->SetDpi(oldDpiX, oldDpiY);
179
+
180
+ // Our update is done. EndDraw never indicates rendering device removed, so any
181
+ // failure here is unexpected and, therefore, fatal.
182
+ winrt::check_hresult(drawingSurfaceInterop->EndDraw());
183
+ }
184
+ }
185
+
186
+ void SwitchComponentView::prepareForRecycle() noexcept {}
187
+
188
+ facebook::react::Props::Shared SwitchComponentView::props() noexcept {
189
+ return m_props;
190
+ }
191
+
192
+ void SwitchComponentView::ensureVisual() noexcept {
193
+ if (!m_visual) {
194
+ m_visual = m_compContext.CreateSpriteVisual();
195
+ OuterVisual().InsertAt(m_visual, 0);
196
+ }
197
+ }
198
+
199
+ void SwitchComponentView::ensureDrawingSurface() noexcept {
200
+ if (!m_drawingSurface) {
201
+ winrt::Windows::Foundation::Size surfaceSize = {
202
+ m_layoutMetrics.frame.size.width * m_layoutMetrics.pointScaleFactor,
203
+ m_layoutMetrics.frame.size.height * m_layoutMetrics.pointScaleFactor};
204
+ m_drawingSurface = m_compContext.CreateDrawingSurface(
205
+ surfaceSize,
206
+ winrt::Windows::Graphics::DirectX::DirectXPixelFormat::B8G8R8A8UIntNormalized,
207
+ winrt::Windows::Graphics::DirectX::DirectXAlphaMode::Premultiplied);
208
+
209
+ Draw();
210
+
211
+ auto surfaceBrush = m_compContext.CreateSurfaceBrush(m_drawingSurface);
212
+
213
+ m_visual.Brush(surfaceBrush);
214
+ }
215
+ }
216
+
217
+ facebook::react::Tag SwitchComponentView::hitTest(facebook::react::Point pt, facebook::react::Point &localPt)
218
+ const noexcept {
219
+ facebook::react::Point ptLocal{pt.x - m_layoutMetrics.frame.origin.x, pt.y - m_layoutMetrics.frame.origin.y};
220
+
221
+ if ((m_props->pointerEvents == facebook::react::PointerEventsMode::Auto ||
222
+ m_props->pointerEvents == facebook::react::PointerEventsMode::BoxOnly) &&
223
+ ptLocal.x >= 0 && ptLocal.x <= m_layoutMetrics.frame.size.width && ptLocal.y >= 0 &&
224
+ ptLocal.y <= m_layoutMetrics.frame.size.height) {
225
+ localPt = ptLocal;
226
+ return tag();
227
+ }
228
+
229
+ return -1;
230
+ }
231
+
232
+ winrt::Microsoft::ReactNative::Composition::IVisual SwitchComponentView::Visual() const noexcept {
233
+ return m_visual;
234
+ }
235
+
236
+ int64_t SwitchComponentView::sendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept {
237
+ switch (msg) {
238
+ case WM_LBUTTONDOWN:
239
+ case WM_POINTERDOWN: {
240
+ const auto switchProps = std::static_pointer_cast<const facebook::react::SwitchProps>(m_props);
241
+
242
+ if (!switchProps->disabled && m_eventEmitter) {
243
+ auto switchEventEmitter = std::static_pointer_cast<facebook::react::SwitchEventEmitter const>(m_eventEmitter);
244
+
245
+ facebook::react::SwitchEventEmitter::OnChange args;
246
+ args.value = !(switchProps->value);
247
+ args.target = tag();
248
+
249
+ switchEventEmitter->onChange(args);
250
+ }
251
+ break;
252
+ }
253
+ }
254
+
255
+ return 0;
256
+ }
257
+
258
+ bool SwitchComponentView::focusable() const noexcept {
259
+ return m_props->focusable;
260
+ }
261
+
262
+ } // namespace Microsoft::ReactNative
@@ -0,0 +1,62 @@
1
+
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+
5
+ #pragma once
6
+
7
+ #include <Fabric/ComponentView.h>
8
+ #include <Microsoft.ReactNative.Cxx/ReactContext.h>
9
+
10
+ #include "CompositionViewComponentView.h"
11
+
12
+ #include <react/components/rnwcore/ShadowNodes.h>
13
+
14
+ namespace Microsoft::ReactNative {
15
+
16
+ struct SwitchComponentView;
17
+
18
+ struct SwitchComponentView : CompositionBaseComponentView {
19
+ using Super = CompositionBaseComponentView;
20
+
21
+ [[nodiscard]] static std::shared_ptr<SwitchComponentView> Create(
22
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
23
+ facebook::react::Tag tag,
24
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext) noexcept;
25
+
26
+ void mountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept override;
27
+ void unmountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept override;
28
+ void handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept override;
29
+ void updateProps(facebook::react::Props::Shared const &props, facebook::react::Props::Shared const &oldProps) noexcept
30
+ override;
31
+ void updateState(facebook::react::State::Shared const &state, facebook::react::State::Shared const &oldState) noexcept
32
+ override;
33
+ void updateLayoutMetrics(
34
+ facebook::react::LayoutMetrics const &layoutMetrics,
35
+ facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept override;
36
+ void finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept override;
37
+ void prepareForRecycle() noexcept override;
38
+ facebook::react::Props::Shared props() noexcept override;
39
+ bool focusable() const noexcept override;
40
+
41
+ facebook::react::Tag hitTest(facebook::react::Point pt, facebook::react::Point &localPt) const noexcept override;
42
+ winrt::Microsoft::ReactNative::Composition::IVisual Visual() const noexcept override;
43
+ int64_t sendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept override;
44
+
45
+ private:
46
+ SwitchComponentView(
47
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
48
+ facebook::react::Tag tag,
49
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext);
50
+
51
+ void ensureVisual() noexcept;
52
+ void Draw() noexcept;
53
+ void ensureDrawingSurface() noexcept;
54
+
55
+ facebook::react::Size m_contentSize;
56
+ winrt::Microsoft::ReactNative::Composition::SpriteVisual m_visual{nullptr};
57
+ winrt::Microsoft::ReactNative::ReactContext m_context;
58
+ facebook::react::SharedViewProps m_props;
59
+ winrt::Microsoft::ReactNative::Composition::ICompositionDrawingSurface m_drawingSurface;
60
+ };
61
+
62
+ } // namespace Microsoft::ReactNative
@@ -6,11 +6,13 @@
6
6
 
7
7
  #include "WindowsTextInputComponentView.h"
8
8
 
9
+ #include <Fabric/Composition/CompositionDynamicAutomationProvider.h>
9
10
  #include <Utils/ValueUtils.h>
10
11
  #include <tom.h>
11
12
  #include <unicode.h>
12
13
  #include <winrt/Windows.UI.h>
13
14
  #include "../CompositionHelpers.h"
15
+ #include "../RootComponentView.h"
14
16
  #include "WindowsTextInputShadowNode.h"
15
17
  #include "WindowsTextInputState.h"
16
18
  #include "guid/msoGuid.h"
@@ -214,7 +216,7 @@ struct CompTextHost : public winrt::implements<CompTextHost, ITextHost> {
214
216
 
215
217
  //@cmember Set the focus to the text window
216
218
  void TxSetFocus() override {
217
- SetFocusedComponent(m_outer);
219
+ m_outer->rootComponentView()->SetFocusedComponent(m_outer);
218
220
  // assert(false);
219
221
  // TODO focus
220
222
  }
@@ -540,7 +542,19 @@ void WindowsTextInputComponentView::handleCommand(std::string const &commandName
540
542
  }
541
543
  }
542
544
 
543
- int64_t WindowsTextInputComponentView::SendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept {
545
+ int64_t WindowsTextInputComponentView::sendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept {
546
+ // Do not forward tab keys into the TextInput, since we want that to do the tab loop instead. This aligns with WinUI
547
+ // behavior We do forward Ctrl+Tab to the textinput.
548
+ if (((msg == WM_KEYDOWN || msg == WM_KEYUP) && wParam == VK_TAB) || (msg == WM_CHAR && wParam == '\t')) {
549
+ BYTE bKeys[256];
550
+ if (GetKeyboardState(bKeys)) {
551
+ bool fCtrl = false;
552
+ if (!(bKeys[VK_LCONTROL] & 0x80 || bKeys[VK_RCONTROL] & 0x80)) {
553
+ return 0;
554
+ }
555
+ }
556
+ }
557
+
544
558
  if (m_textServices) {
545
559
  LRESULT lresult;
546
560
  DrawBlock db(*this);
@@ -549,31 +563,18 @@ int64_t WindowsTextInputComponentView::SendMessage(uint32_t msg, uint64_t wParam
549
563
  return lresult;
550
564
  }
551
565
  }
552
- return Super::SendMessage(msg, wParam, lParam);
553
- }
554
-
555
- std::vector<facebook::react::ComponentDescriptorProvider>
556
- WindowsTextInputComponentView::supplementalComponentDescriptorProviders() noexcept {
557
- return {};
558
- }
559
-
560
- void WindowsTextInputComponentView::parent(IComponentView *parent) noexcept {
561
- Super::parent(parent);
562
-
563
- if (!parent && GetFocusedComponent() == this) {
564
- SetFocusedComponent(nullptr); // TODO need move focus logic - where should focus go?
565
- }
566
+ return Super::sendMessage(msg, wParam, lParam);
566
567
  }
567
568
 
568
569
  void WindowsTextInputComponentView::mountChildComponentView(
569
- const IComponentView &childComponentView,
570
+ IComponentView &childComponentView,
570
571
  uint32_t index) noexcept {
571
572
  assert(false);
572
573
  // m_element.Children().InsertAt(index, v.Element());
573
574
  }
574
575
 
575
576
  void WindowsTextInputComponentView::unmountChildComponentView(
576
- const IComponentView &childComponentView,
577
+ IComponentView &childComponentView,
577
578
  uint32_t index) noexcept {
578
579
  assert(false);
579
580
  // m_element.Children().RemoveAt(index);
@@ -581,12 +582,16 @@ void WindowsTextInputComponentView::unmountChildComponentView(
581
582
 
582
583
  void WindowsTextInputComponentView::onFocusLost() noexcept {
583
584
  Super::onFocusLost();
584
- SendMessage(WM_KILLFOCUS, 0, 0);
585
+ sendMessage(WM_KILLFOCUS, 0, 0);
585
586
  }
586
587
 
587
588
  void WindowsTextInputComponentView::onFocusGained() noexcept {
588
589
  Super::onFocusGained();
589
- SendMessage(WM_SETFOCUS, 0, 0);
590
+ sendMessage(WM_SETFOCUS, 0, 0);
591
+ }
592
+
593
+ bool WindowsTextInputComponentView::focusable() const noexcept {
594
+ return m_props->focusable;
590
595
  }
591
596
 
592
597
  void WindowsTextInputComponentView::updateProps(
@@ -755,7 +760,7 @@ void WindowsTextInputComponentView::updateLayoutMetrics(
755
760
  // Set Position & Size Properties
756
761
 
757
762
  if ((layoutMetrics.displayType != m_layoutMetrics.displayType)) {
758
- m_visual.IsVisible(layoutMetrics.displayType != facebook::react::DisplayType::None);
763
+ OuterVisual().IsVisible(layoutMetrics.displayType != facebook::react::DisplayType::None);
759
764
  }
760
765
 
761
766
  if ((layoutMetrics.pointScaleFactor != m_layoutMetrics.pointScaleFactor)) {
@@ -786,11 +791,6 @@ void WindowsTextInputComponentView::updateLayoutMetrics(
786
791
  m_visual.Size(
787
792
  {layoutMetrics.frame.size.width * layoutMetrics.pointScaleFactor,
788
793
  layoutMetrics.frame.size.height * layoutMetrics.pointScaleFactor});
789
- m_visual.Offset({
790
- layoutMetrics.frame.origin.x * layoutMetrics.pointScaleFactor,
791
- layoutMetrics.frame.origin.y * layoutMetrics.pointScaleFactor,
792
- 0.0f,
793
- });
794
794
  }
795
795
 
796
796
  // When we are notified by RichEdit that the text changed, we need to notify JS
@@ -1048,10 +1048,6 @@ facebook::react::Tag WindowsTextInputComponentView::hitTest(facebook::react::Poi
1048
1048
  return -1;
1049
1049
  }
1050
1050
 
1051
- facebook::react::SharedTouchEventEmitter WindowsTextInputComponentView::touchEventEmitter() noexcept {
1052
- return m_eventEmitter;
1053
- }
1054
-
1055
1051
  void WindowsTextInputComponentView::ensureVisual() noexcept {
1056
1052
  if (!m_visual) {
1057
1053
  HrEnsureRichEd20Loaded();
@@ -1060,6 +1056,7 @@ void WindowsTextInputComponentView::ensureVisual() noexcept {
1060
1056
  winrt::com_ptr<IUnknown> spUnk;
1061
1057
  winrt::check_hresult(g_pfnCreateTextServices(nullptr, m_textHost.get(), spUnk.put()));
1062
1058
  spUnk.as(m_textServices);
1059
+ OuterVisual().InsertAt(m_visual, 0);
1063
1060
  }
1064
1061
 
1065
1062
  if (!m_caretVisual) {
@@ -1073,4 +1070,12 @@ winrt::Microsoft::ReactNative::Composition::IVisual WindowsTextInputComponentVie
1073
1070
  return m_visual;
1074
1071
  }
1075
1072
 
1073
+ std::shared_ptr<WindowsTextInputComponentView> WindowsTextInputComponentView::Create(
1074
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
1075
+ facebook::react::Tag tag,
1076
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext) noexcept {
1077
+ return std::shared_ptr<WindowsTextInputComponentView>(
1078
+ new WindowsTextInputComponentView(compContext, tag, reactContext));
1079
+ }
1080
+
1076
1081
  } // namespace Microsoft::ReactNative
@@ -24,15 +24,13 @@ struct WindowsTextInputComponentView : CompositionBaseComponentView {
24
24
  friend CompTextHost;
25
25
 
26
26
  using Super = CompositionBaseComponentView;
27
- WindowsTextInputComponentView(
27
+ [[nodiscard]] static std::shared_ptr<WindowsTextInputComponentView> Create(
28
28
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
29
29
  facebook::react::Tag tag,
30
- winrt::Microsoft::ReactNative::ReactContext const &reactContext);
30
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext) noexcept;
31
31
 
32
- std::vector<facebook::react::ComponentDescriptorProvider> supplementalComponentDescriptorProviders() noexcept
33
- override;
34
- void mountChildComponentView(const IComponentView &childComponentView, uint32_t index) noexcept override;
35
- void unmountChildComponentView(const IComponentView &childComponentView, uint32_t index) noexcept override;
32
+ void mountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept override;
33
+ void unmountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept override;
36
34
  void updateProps(facebook::react::Props::Shared const &props, facebook::react::Props::Shared const &oldProps) noexcept
37
35
  override;
38
36
  void updateState(facebook::react::State::Shared const &state, facebook::react::State::Shared const &oldState) noexcept
@@ -44,16 +42,20 @@ struct WindowsTextInputComponentView : CompositionBaseComponentView {
44
42
  void prepareForRecycle() noexcept override;
45
43
  facebook::react::Props::Shared props() noexcept override;
46
44
  void handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept override;
47
- int64_t SendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept override;
45
+ int64_t sendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept override;
48
46
  facebook::react::Tag hitTest(facebook::react::Point pt, facebook::react::Point &localPt) const noexcept override;
49
- void parent(IComponentView *parent) noexcept override;
50
47
  void OnRenderingDeviceLost() noexcept override;
51
48
  winrt::Microsoft::ReactNative::Composition::IVisual Visual() const noexcept override;
52
49
  void onFocusLost() noexcept override;
53
50
  void onFocusGained() noexcept override;
54
- facebook::react::SharedTouchEventEmitter touchEventEmitter() noexcept override;
51
+ bool focusable() const noexcept override;
55
52
 
56
53
  private:
54
+ WindowsTextInputComponentView(
55
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
56
+ facebook::react::Tag tag,
57
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext);
58
+
57
59
  struct DrawBlock {
58
60
  DrawBlock(WindowsTextInputComponentView &view);
59
61
  ~DrawBlock();
@@ -48,4 +48,13 @@ WindowsTextInputProps::WindowsTextInputProps(
48
48
  submitKeyEvents(convertRawProp(context, rawProps, "submitKeyEvents", sourceProps.submitKeyEvents, {})),
49
49
  autoFocus(convertRawProp(context, rawProps, "autoFocus", sourceProps.autoFocus, {false})) {}
50
50
 
51
+ void WindowsTextInputProps::setProp(
52
+ const PropsParserContext &context,
53
+ RawPropsPropNameHash hash,
54
+ const char *propName,
55
+ RawValue const &value) {
56
+ BaseTextProps::setProp(context, hash, propName, value);
57
+ ViewProps::setProp(context, hash, propName, value);
58
+ }
59
+
51
60
  } // namespace facebook::react
@@ -92,6 +92,9 @@ class WindowsTextInputProps final : public ViewProps, public BaseTextProps {
92
92
  const WindowsTextInputProps &sourceProps,
93
93
  const RawProps &rawProps);
94
94
 
95
+ void
96
+ setProp(const PropsParserContext &context, RawPropsPropNameHash hash, const char *propName, RawValue const &value);
97
+
95
98
  bool allowFontScaling{true};
96
99
  bool clearTextOnFocus{false};
97
100
  bool editable{true};
@@ -183,7 +183,8 @@ Size WindowsTextInputShadowNode::measureContent(
183
183
  ->measure(
184
184
  AttributedStringBox{attributedString},
185
185
  {}, // TODO getConcreteProps().paragraphAttributes,
186
- layoutConstraints)
186
+ layoutConstraints,
187
+ nullptr)
187
188
  .size;
188
189
  }
189
190
 
@@ -0,0 +1,72 @@
1
+ #include "pch.h"
2
+ #include "UiaHelpers.h"
3
+ #include <Fabric/Composition/CompositionViewComponentView.h>
4
+ #include <inspectable.h>
5
+
6
+ namespace winrt::Microsoft::ReactNative::implementation {
7
+
8
+ HRESULT UiaNavigateHelper(
9
+ ::Microsoft::ReactNative::ReactTaggedView &view,
10
+ NavigateDirection direction,
11
+ IRawElementProviderFragment *&retVal) noexcept {
12
+ retVal = nullptr;
13
+
14
+ auto spComponentView = view.view();
15
+
16
+ if (!spComponentView)
17
+ return UIA_E_ELEMENTNOTAVAILABLE;
18
+
19
+ winrt::IInspectable uiaProvider{nullptr};
20
+
21
+ switch (direction) {
22
+ case NavigateDirection_Parent: {
23
+ auto pParentCV = static_cast<::Microsoft::ReactNative::CompositionBaseComponentView *>(spComponentView->parent());
24
+ if (pParentCV != nullptr) {
25
+ uiaProvider = pParentCV->EnsureUiaProvider();
26
+ }
27
+ } break;
28
+
29
+ case NavigateDirection_LastChild:
30
+ __fallthrough;
31
+
32
+ case NavigateDirection_FirstChild: {
33
+ auto children = spComponentView->children();
34
+ auto index = direction == NavigateDirection_FirstChild ? 0 : children.size() - 1;
35
+ if (!children.empty()) {
36
+ uiaProvider =
37
+ static_cast<::Microsoft::ReactNative::CompositionBaseComponentView *>(children[index])->EnsureUiaProvider();
38
+ }
39
+ } break;
40
+
41
+ case NavigateDirection_NextSibling: {
42
+ auto pParentCV = static_cast<::Microsoft::ReactNative::CompositionBaseComponentView *>(spComponentView->parent());
43
+ if (pParentCV != nullptr) {
44
+ auto children = pParentCV->children();
45
+ auto it = std::find(children.begin(), children.end(), spComponentView.get());
46
+ if (++it != children.end()) {
47
+ uiaProvider = static_cast<::Microsoft::ReactNative::CompositionBaseComponentView *>(*it)->EnsureUiaProvider();
48
+ }
49
+ }
50
+ } break;
51
+
52
+ case NavigateDirection_PreviousSibling: {
53
+ auto pParentCV = static_cast<::Microsoft::ReactNative::CompositionBaseComponentView *>(spComponentView->parent());
54
+ if (pParentCV != nullptr) {
55
+ auto children = pParentCV->children();
56
+ auto it = std::find(children.rbegin(), children.rend(), spComponentView.get());
57
+ if (++it != children.rend()) {
58
+ uiaProvider = static_cast<::Microsoft::ReactNative::CompositionBaseComponentView *>(*it)->EnsureUiaProvider();
59
+ }
60
+ }
61
+ } break;
62
+ }
63
+
64
+ if (uiaProvider != nullptr) {
65
+ winrt::com_ptr<IRawElementProviderFragment> spFragment;
66
+ uiaProvider.as(spFragment);
67
+ retVal = spFragment.detach();
68
+ }
69
+ return S_OK;
70
+ }
71
+
72
+ } // namespace winrt::Microsoft::ReactNative::implementation
@@ -0,0 +1,16 @@
1
+ #pragma once
2
+
3
+ #include <Fabric/ComponentView.h>
4
+ #include <Fabric/ReactTaggedView.h>
5
+ #include <UIAutomation.h>
6
+
7
+ namespace winrt::Microsoft::ReactNative::implementation {
8
+
9
+ // Returns an AddRef'd neighbor of the provided IComponentView in the direction given
10
+ HRESULT
11
+ UiaNavigateHelper(
12
+ ::Microsoft::ReactNative::ReactTaggedView &view,
13
+ NavigateDirection direction,
14
+ IRawElementProviderFragment *&retVal) noexcept;
15
+
16
+ } // namespace winrt::Microsoft::ReactNative::implementation