react-native-windows 0.71.8 → 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 +1 -2
  424. package/PropertySheets/Warnings.props +1 -1
  425. package/ReactCommon/ReactCommon.vcxproj +2 -4
  426. package/ReactCommon/ReactCommon.vcxproj.filters +3 -0
  427. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +1 -1
  428. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.cpp +60 -0
  429. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.h +60 -0
  430. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +116 -0
  431. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +63 -0
  432. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -2
  433. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +237 -0
  434. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +59 -0
  435. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +159 -0
  436. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +94 -0
  437. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +465 -0
  438. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +116 -0
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +98 -0
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +362 -0
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +326 -0
  442. package/ReactCommon/Yoga.cpp +60 -127
  443. package/Scripts/OfficeReact.Win32.nuspec +1 -0
  444. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +1 -0
  445. package/Scripts/rnw-dependencies.ps1 +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
@@ -5,11 +5,9 @@
5
5
  * need to also be added to index.windows.js
6
6
  */
7
7
 
8
- export * from './Components/Flyout/FlyoutProps';
9
- export * from './Components/Flyout/Flyout';
10
- export * from './Components/Glyph/Glyph';
11
- export * from './Components/Popup/PopupProps';
12
- export * from './Components/Popup/Popup';
8
+ export {Flyout, IFlyoutProps, Placement, ShowMode} from './Components/Flyout/Flyout';
9
+ export {Glyph, GlyphProps, GlyphStyle} from './Components/Glyph/Glyph';
10
+ export {IPopupProps, Popup} from './Components/Popup/Popup';
13
11
  export * from './Components/Keyboard/KeyboardExt';
14
12
  export * from './Components/Keyboard/KeyboardExtProps';
15
13
  export * from './Components/View/ViewWindowsProps';
@@ -8,7 +8,7 @@
8
8
  * @flow strict
9
9
  */
10
10
 
11
- import type {ErrorUtilsT} from '@react-native/polyfills/error-guard';
11
+ import type {ErrorUtilsT} from '@react-native/js-polyfills/error-guard';
12
12
 
13
13
  /**
14
14
  * The particular require runtime that we are using looks for a global
@@ -48,7 +48,7 @@ declare class EventSubscriptionVendor {
48
48
  * Removes a bulk set of the subscriptions.
49
49
  *
50
50
  * @param eventType - Optional name of the event type whose
51
- * registered supscriptions to remove, if null remove all subscriptions.
51
+ * registered subscriptions to remove, if null remove all subscriptions.
52
52
  */
53
53
  removeAllSubscriptions(eventType?: string): void;
54
54
 
@@ -104,7 +104,7 @@ interface EmitterSubscription extends EventSubscription {
104
104
  remove(): void;
105
105
  }
106
106
 
107
- export declare class EventEmitter {
107
+ export default class EventEmitter {
108
108
  /**
109
109
  *
110
110
  * @param subscriber - Optional subscriber instance
@@ -74,7 +74,15 @@ export default class EventEmitter<TEventToArgsMap: {...}>
74
74
  listener: (...args: $ElementType<TEventToArgsMap, TEvent>) => mixed,
75
75
  context: mixed,
76
76
  ): EventSubscription {
77
- const registrations = allocate(this._registry, eventType);
77
+ if (typeof listener !== 'function') {
78
+ throw new TypeError(
79
+ 'EventEmitter.addListener(...): 2nd argument must be a function.',
80
+ );
81
+ }
82
+ const registrations = allocate<_, _, TEventToArgsMap[TEvent]>(
83
+ this._registry,
84
+ eventType,
85
+ );
78
86
  const registration: Registration<$ElementType<TEventToArgsMap, TEvent>> = {
79
87
  context,
80
88
  listener,
@@ -6,8 +6,6 @@
6
6
 
7
7
  // Modules
8
8
  #include <AppModelHelpers.h>
9
- #include <AsyncStorageModule.h>
10
- #include <Modules/AsyncStorageModuleWin32.h>
11
9
  #include <Modules/ClipboardModule.h>
12
10
  #include <Modules/NativeUIManager.h>
13
11
  #include <Modules/PaperUIManagerModule.h>
@@ -40,19 +38,6 @@ std::vector<facebook::react::NativeModuleDescription> GetCoreModules(
40
38
  [props = context->Properties()]() { return Microsoft::React::CreateFileReaderModule(props); },
41
39
  batchingUIMessageQueue);
42
40
 
43
- // AsyncStorageModule doesn't work without package identity (it indirectly depends on
44
- // Windows.Storage.StorageFile), so check for package identity before adding it.
45
- modules.emplace_back(
46
- "AsyncLocalStorage",
47
- []() -> std::unique_ptr<facebook::xplat::module::CxxModule> {
48
- if (HasPackageIdentity()) {
49
- return std::make_unique<facebook::react::AsyncStorageModule>(L"asyncStorage");
50
- } else {
51
- return std::make_unique<facebook::react::AsyncStorageModuleWin32>();
52
- }
53
- },
54
- jsMessageQueue);
55
-
56
41
  return modules;
57
42
  }
58
43
 
@@ -4,6 +4,7 @@
4
4
  import "IJSValueWriter.idl";
5
5
  import "ReactCoreInjection.idl";
6
6
  import "ReactNativeHost.idl";
7
+ import "CompositionRootView.idl";
7
8
  #include "NamespaceRedirect.h"
8
9
  #include "DocString.h"
9
10
 
@@ -27,7 +28,12 @@ namespace Microsoft.ReactNative
27
28
  "It must be set to show any React UI elements.")
28
29
  IReactViewHost ReactViewHost { get; set; };
29
30
 
31
+ DOC_STRING("Move focus to this @CompositionHwndHost")
32
+ FocusNavigationResult NavigateFocus(FocusNavigationRequest request);
33
+
30
34
  Int64 TranslateMessage(UInt32 msg, UInt64 wParam, Int64 lParam);
35
+
36
+ Object UiaProvider { get; };
31
37
  }
32
38
 
33
39
  } // namespace Microsoft.ReactNative
@@ -10,6 +10,36 @@ import "ReactNativeHost.idl";
10
10
 
11
11
  namespace Microsoft.ReactNative
12
12
  {
13
+ [experimental]
14
+ DOC_STRING("sdf")
15
+ enum FocusNavigationReason
16
+ {
17
+ Restore,
18
+ First,
19
+ Last,
20
+ };
21
+
22
+ [default_interface]
23
+ [webhosthidden]
24
+ [experimental]
25
+ DOC_STRING("Argument type for @CompositionRootView.NavigateFocus.")
26
+ runtimeclass FocusNavigationRequest {
27
+ DOC_STRING("Creates new instance of @FocusNavigationRequest")
28
+ FocusNavigationRequest(FocusNavigationReason reason);
29
+
30
+ DOC_STRING("The reason the @CompositionRootView is getting focus.")
31
+ FocusNavigationReason Reason {get;set;};
32
+ };
33
+
34
+ [default_interface]
35
+ [webhosthidden]
36
+ [experimental]
37
+ DOC_STRING("Provides result from a @CompositionRootView.NavigateFocus method call.")
38
+ runtimeclass FocusNavigationResult {
39
+ DOC_STRING("Gets a value that indicates whether the focus successfully moved.")
40
+ Boolean WasFocusMoved {get;};
41
+ };
42
+
13
43
  [default_interface]
14
44
  [webhosthidden]
15
45
  [experimental]
@@ -32,11 +62,16 @@ namespace Microsoft.ReactNative
32
62
  DOC_STRING("ScaleFactor for this windows (DPI/96)")
33
63
  Double ScaleFactor {get; set;};
34
64
 
65
+ DOC_STRING("Move focus to this @CompositionRootView")
66
+ FocusNavigationResult NavigateFocus(FocusNavigationRequest request);
67
+
35
68
  Windows.Foundation.Size Measure(Windows.Foundation.Size availableSize);
36
69
  Windows.Foundation.Size Arrange(Windows.Foundation.Size availableSize);
37
70
 
38
71
  Int64 SendMessage(UInt32 Msg, UInt64 WParam, Int64 LParam);
39
72
 
73
+ Object GetUiaProvider();
74
+
40
75
  //void OnPointerPressed(PointerPressedArgs args);
41
76
  //void OnMouseUp(Windows.Foundation.Point point);
42
77
  void OnScrollWheel(Windows.Foundation.Point point, Int32 delta);
@@ -14,6 +14,13 @@ namespace Microsoft.ReactNative.Composition
14
14
  UniformToFill,
15
15
  };
16
16
 
17
+ enum BackfaceVisibility
18
+ {
19
+ Inherit,
20
+ Visible,
21
+ Hidden
22
+ };
23
+
17
24
  [webhosthidden]
18
25
  [uuid("172def51-9e1a-4e3c-841a-e5a470065acc")] // uuid needed for empty interfaces
19
26
  [version(1)]
@@ -55,6 +62,7 @@ namespace Microsoft.ReactNative.Composition
55
62
  void Offset(Windows.Foundation.Numerics.Vector3 offset);
56
63
  void Offset(Windows.Foundation.Numerics.Vector3 offset, Windows.Foundation.Numerics.Vector3 relativeAdjustment);
57
64
  void RelativeSizeWithOffset(Windows.Foundation.Numerics.Vector2 size, Windows.Foundation.Numerics.Vector2 relativeSizeAdjustment);
65
+ BackfaceVisibility BackfaceVisibility{ get; set; };
58
66
  }
59
67
 
60
68
  [webhosthidden]
@@ -81,6 +89,7 @@ namespace Microsoft.ReactNative.Composition
81
89
  void ContentSize(Windows.Foundation.Numerics.Vector2 size);
82
90
  Windows.Foundation.Numerics.Vector3 ScrollPosition { get; };
83
91
  void ScrollBy(Windows.Foundation.Numerics.Vector3 offset);
92
+ void TryUpdatePosition(Windows.Foundation.Numerics.Vector3 position, Boolean animate);
84
93
  }
85
94
 
86
95
  [webhosthidden]
@@ -101,6 +110,15 @@ namespace Microsoft.ReactNative.Composition
101
110
  Boolean IsVisible { get; set; };
102
111
  }
103
112
 
113
+ [webhosthidden]
114
+ [experimental]
115
+ interface IFocusVisual
116
+ {
117
+ IVisual InnerVisual { get; };
118
+ Boolean IsFocused { get; set; };
119
+ Single ScaleFactor { get; set; };
120
+ }
121
+
104
122
  [webhosthidden]
105
123
  [experimental]
106
124
  interface ICompositionContext
@@ -112,6 +130,7 @@ namespace Microsoft.ReactNative.Composition
112
130
  SpriteVisual CreateSpriteVisual();
113
131
  ScrollVisual CreateScrollerVisual();
114
132
  ICaretVisual CreateCaretVisual();
133
+ IFocusVisual CreateFocusVisual();
115
134
  IDropShadow CreateDropShadow();
116
135
  IBrush CreateColorBrush(Windows.UI.Color color);
117
136
  SurfaceBrush CreateSurfaceBrush(ICompositionDrawingSurface surface);
@@ -0,0 +1,174 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #include "pch.h"
5
+
6
+ #include "AbiViewComponentDescriptor.h"
7
+
8
+ #include <Fabric/WindowsComponentDescriptorRegistry.h>
9
+ #include <ReactContext.h>
10
+ #include <react/renderer/components/view/ViewPropsInterpolation.h>
11
+ #include "DynamicReader.h"
12
+
13
+ namespace Microsoft::ReactNative {
14
+
15
+ extern const char AbiViewComponentName[] = "AbiView";
16
+
17
+ AbiViewComponentDescriptor::AbiViewComponentDescriptor(facebook::react::ComponentDescriptorParameters const &parameters)
18
+ : ComponentDescriptor(parameters) {
19
+ auto flavor = std::static_pointer_cast<std::string const>(this->flavor_);
20
+ m_builder = WindowsComponentDescriptorRegistry::FromProperties(
21
+ parameters.contextContainer->at<winrt::Microsoft::ReactNative::ReactContext>("MSRN.ReactContext")
22
+ .Properties())
23
+ ->GetDescriptor(flavor);
24
+
25
+ rawPropsParser_.prepare<ConcreteProps>();
26
+ }
27
+
28
+ facebook::react::ComponentHandle AbiViewComponentDescriptor::getComponentHandle() const {
29
+ return reinterpret_cast<facebook::react::ComponentHandle>(getComponentName());
30
+ }
31
+
32
+ facebook::react::ComponentName AbiViewComponentDescriptor::getComponentName() const {
33
+ return std::static_pointer_cast<std::string const>(this->flavor_)->c_str();
34
+ }
35
+
36
+ facebook::react::ShadowNodeTraits AbiViewComponentDescriptor::getTraits() const {
37
+ return ShadowNodeT::BaseTraits();
38
+ }
39
+
40
+ facebook::react::ShadowNode::Shared AbiViewComponentDescriptor::createShadowNode(
41
+ const facebook::react::ShadowNodeFragment &fragment,
42
+ facebook::react::ShadowNodeFamily::Shared const &family) const {
43
+ auto shadowNode = std::make_shared<ShadowNodeT>(fragment, family, getTraits());
44
+
45
+ adopt(shadowNode);
46
+
47
+ return shadowNode;
48
+ }
49
+
50
+ facebook::react::ShadowNode::Unshared AbiViewComponentDescriptor::cloneShadowNode(
51
+ const facebook::react::ShadowNode &sourceShadowNode,
52
+ const facebook::react::ShadowNodeFragment &fragment) const {
53
+ auto shadowNode = std::make_shared<ShadowNodeT>(sourceShadowNode, fragment);
54
+
55
+ adopt(shadowNode);
56
+ return shadowNode;
57
+ }
58
+
59
+ void AbiViewComponentDescriptor::appendChild(
60
+ const facebook::react::ShadowNode::Shared &parentShadowNode,
61
+ const facebook::react::ShadowNode::Shared &childShadowNode) const {
62
+ auto concreteParentShadowNode = std::static_pointer_cast<const ShadowNodeT>(parentShadowNode);
63
+ auto concreteNonConstParentShadowNode = std::const_pointer_cast<ShadowNodeT>(concreteParentShadowNode);
64
+ concreteNonConstParentShadowNode->appendChild(childShadowNode);
65
+ }
66
+
67
+ facebook::react::Props::Shared AbiViewComponentDescriptor::cloneProps(
68
+ const facebook::react::PropsParserContext &context,
69
+ const facebook::react::Props::Shared &props,
70
+ const facebook::react::RawProps &rawProps) const {
71
+ // Optimization:
72
+ // Quite often nodes are constructed with default/empty props: the base
73
+ // `props` object is `null` (there no base because it's not cloning) and the
74
+ // `rawProps` is empty. In this case, we can return the default props object
75
+ // of a concrete type entirely bypassing parsing.
76
+ if (!props && rawProps.isEmpty()) {
77
+ return ShadowNodeT::defaultSharedProps();
78
+ }
79
+
80
+ rawProps.parse(rawPropsParser_, context);
81
+
82
+ // Call old-style constructor
83
+ // auto shadowNodeProps = std::make_shared<ShadowNodeT::Props>(context, rawProps, props);
84
+ auto shadowNodeProps = std::make_shared<AbiViewProps>(
85
+ context, props ? static_cast<AbiViewProps const &>(*props) : AbiViewProps(), rawProps);
86
+ auto viewProps = winrt::make<winrt::Microsoft::ReactNative::implementation::UserViewProps>(shadowNodeProps);
87
+ auto userProps =
88
+ winrt::get_self<winrt::Microsoft::ReactNative::Composition::ReactCompositionViewComponentBuilder>(m_builder)
89
+ ->CreateProps(viewProps);
90
+ shadowNodeProps->SetUserProps(userProps, viewProps);
91
+
92
+ rawProps.iterateOverValues(
93
+ [&](facebook::react::RawPropsPropNameHash hash, const char *propName, facebook::react::RawValue const &fn) {
94
+ shadowNodeProps.get()->setProp(context, hash, propName, fn);
95
+ userProps.SetProp(
96
+ hash,
97
+ winrt::to_hstring(propName),
98
+ winrt::make<winrt::Microsoft::ReactNative::DynamicReader>(folly::dynamic(fn)));
99
+ });
100
+
101
+ return shadowNodeProps;
102
+ };
103
+
104
+ facebook::react::Props::Shared AbiViewComponentDescriptor::interpolateProps(
105
+ const facebook::react::PropsParserContext &context,
106
+ facebook::react::Float animationProgress,
107
+ const facebook::react::Props::Shared &props,
108
+ const facebook::react::Props::Shared &newProps) const {
109
+ facebook::react::Props::Shared interpolatedPropsShared = cloneProps(context, newProps, {});
110
+
111
+ if (ConcreteShadowNode::BaseTraits().check(facebook::react::ShadowNodeTraits::Trait::ViewKind)) {
112
+ facebook::react::interpolateViewProps(animationProgress, props, newProps, interpolatedPropsShared);
113
+ }
114
+
115
+ return interpolatedPropsShared;
116
+ };
117
+
118
+ facebook::react::State::Shared AbiViewComponentDescriptor::createInitialState(
119
+ facebook::react::ShadowNodeFragment const &fragment,
120
+ facebook::react::ShadowNodeFamily::Shared const &family) const {
121
+ if (std::is_same<ConcreteStateData, facebook::react::StateData>::value) {
122
+ // Default case: Returning `null` for nodes that don't use `State`.
123
+ return nullptr;
124
+ }
125
+
126
+ return std::make_shared<ConcreteState>(
127
+ std::make_shared<ConcreteStateData const>(ConcreteShadowNode::initialStateData(
128
+ fragment, facebook::react::ShadowNodeFamilyFragment::build(*family), *this)),
129
+ family);
130
+ }
131
+
132
+ facebook::react::State::Shared AbiViewComponentDescriptor::createState(
133
+ facebook::react::ShadowNodeFamily const &family,
134
+ facebook::react::StateData::Shared const &data) const {
135
+ if (std::is_same<ConcreteStateData, facebook::react::StateData>::value) {
136
+ // Default case: Returning `null` for nodes that don't use `State`.
137
+ return nullptr;
138
+ }
139
+
140
+ react_native_assert(data && "Provided `data` is nullptr.");
141
+
142
+ return std::make_shared<ConcreteState const>(
143
+ std::static_pointer_cast<ConcreteStateData const>(data), *family.getMostRecentState());
144
+ }
145
+
146
+ facebook::react::ShadowNodeFamily::Shared AbiViewComponentDescriptor::createFamily(
147
+ facebook::react::ShadowNodeFamilyFragment const &fragment,
148
+ facebook::react::SharedEventTarget eventTarget) const {
149
+ auto eventEmitter =
150
+ std::make_shared<ConcreteEventEmitter const>(std::move(eventTarget), fragment.tag, eventDispatcher_);
151
+ return std::make_shared<facebook::react::ShadowNodeFamily>(
152
+ facebook::react::ShadowNodeFamilyFragment{fragment.tag, fragment.surfaceId, eventEmitter},
153
+ eventDispatcher_,
154
+ *this);
155
+ }
156
+
157
+ /*
158
+ * Called immediatelly after `ShadowNode` is created or cloned.
159
+ *
160
+ * Override this method to pass information from custom `ComponentDescriptor`
161
+ * to new instance of `ShadowNode`.
162
+ *
163
+ * Example usages:
164
+ * - Inject image manager to `ImageShadowNode` in
165
+ * `ImageComponentDescriptor`.
166
+ * - Set `ShadowNode`'s size from state in
167
+ * `ModalHostViewComponentDescriptor`.
168
+ */
169
+ void AbiViewComponentDescriptor::adopt(facebook::react::ShadowNode::Unshared const &shadowNode) const {
170
+ // Default implementation does nothing.
171
+ react_native_assert(shadowNode->getComponentHandle() == getComponentHandle());
172
+ }
173
+
174
+ } // namespace Microsoft::ReactNative
@@ -0,0 +1,91 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #pragma once
5
+
6
+ #include <react/renderer/components/view/ConcreteViewShadowNode.h>
7
+ #include <react/renderer/core/ComponentDescriptor.h>
8
+ #include "AbiViewProps.h"
9
+ #include "winrt/Microsoft.ReactNative.h"
10
+
11
+ namespace Microsoft::ReactNative {
12
+
13
+ extern const char AbiViewComponentName[];
14
+
15
+ class AbiViewState {
16
+ public:
17
+ AbiViewState() = default;
18
+ };
19
+
20
+ // Need to replace ConcreteShadowNode template usage with a specific impl that can have a different name per type
21
+ using AbiViewShadowNode = facebook::react::
22
+ ConcreteViewShadowNode<AbiViewComponentName, AbiViewProps, facebook::react::ViewEventEmitter, AbiViewState>;
23
+
24
+ class AbiViewComponentDescriptor : public facebook::react::ComponentDescriptor {
25
+ using ShadowNodeT = AbiViewShadowNode;
26
+ using SharedShadowNodeT = std::shared_ptr<const ShadowNodeT>;
27
+
28
+ public:
29
+ using ConcreteShadowNode = ShadowNodeT;
30
+ using ConcreteProps = typename ShadowNodeT::ConcreteProps;
31
+ using SharedConcreteProps = typename ShadowNodeT::SharedConcreteProps;
32
+ using ConcreteEventEmitter = typename ShadowNodeT::ConcreteEventEmitter;
33
+ using SharedConcreteEventEmitter = typename ShadowNodeT::SharedConcreteEventEmitter;
34
+ using ConcreteState = typename ShadowNodeT::ConcreteState;
35
+ using ConcreteStateData = typename ShadowNodeT::ConcreteState::Data;
36
+
37
+ AbiViewComponentDescriptor(facebook::react::ComponentDescriptorParameters const &parameters);
38
+
39
+ facebook::react::ComponentHandle getComponentHandle() const override;
40
+ facebook::react::ComponentName getComponentName() const override;
41
+ facebook::react::ShadowNodeTraits getTraits() const override;
42
+ facebook::react::ShadowNode::Shared createShadowNode(
43
+ const facebook::react::ShadowNodeFragment &fragment,
44
+ facebook::react::ShadowNodeFamily::Shared const &family) const override;
45
+ facebook::react::ShadowNode::Unshared cloneShadowNode(
46
+ const facebook::react::ShadowNode &sourceShadowNode,
47
+ const facebook::react::ShadowNodeFragment &fragment) const override;
48
+
49
+ void appendChild(
50
+ const facebook::react::ShadowNode::Shared &parentShadowNode,
51
+ const facebook::react::ShadowNode::Shared &childShadowNode) const override;
52
+ virtual facebook::react::Props::Shared cloneProps(
53
+ const facebook::react::PropsParserContext &context,
54
+ const facebook::react::Props::Shared &props,
55
+ const facebook::react::RawProps &rawProps) const override;
56
+ facebook::react::Props::Shared interpolateProps(
57
+ const facebook::react::PropsParserContext &context,
58
+ facebook::react::Float animationProgress,
59
+ const facebook::react::Props::Shared &props,
60
+ const facebook::react::Props::Shared &newProps) const override;
61
+ virtual facebook::react::State::Shared createInitialState(
62
+ facebook::react::ShadowNodeFragment const &fragment,
63
+ facebook::react::ShadowNodeFamily::Shared const &family) const override;
64
+ virtual facebook::react::State::Shared createState(
65
+ facebook::react::ShadowNodeFamily const &family,
66
+ facebook::react::StateData::Shared const &data) const override;
67
+
68
+ facebook::react::ShadowNodeFamily::Shared createFamily(
69
+ facebook::react::ShadowNodeFamilyFragment const &fragment,
70
+ facebook::react::SharedEventTarget eventTarget) const override;
71
+
72
+ protected:
73
+ /*
74
+ * Called immediatelly after `ShadowNode` is created or cloned.
75
+ *
76
+ * Override this method to pass information from custom `ComponentDescriptor`
77
+ * to new instance of `ShadowNode`.
78
+ *
79
+ * Example usages:
80
+ * - Inject image manager to `ImageShadowNode` in
81
+ * `ImageComponentDescriptor`.
82
+ * - Set `ShadowNode`'s size from state in
83
+ * `ModalHostViewComponentDescriptor`.
84
+ */
85
+ virtual void adopt(facebook::react::ShadowNode::Unshared const &shadowNode) const;
86
+
87
+ private:
88
+ winrt::Microsoft::ReactNative::IReactViewComponentBuilder m_builder;
89
+ };
90
+
91
+ } // namespace Microsoft::ReactNative
@@ -0,0 +1,48 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #include "pch.h"
5
+
6
+ #include "AbiViewProps.h"
7
+
8
+ namespace Microsoft::ReactNative {
9
+
10
+ AbiViewProps::AbiViewProps(
11
+ const facebook::react::PropsParserContext &context,
12
+ const AbiViewProps &sourceProps,
13
+ const facebook::react::RawProps &rawProps)
14
+ : facebook::react::ViewProps(context, sourceProps, rawProps) {}
15
+
16
+ AbiViewProps::~AbiViewProps() {
17
+ if (m_userProps) {
18
+ winrt::get_self<winrt::Microsoft::ReactNative::implementation::UserViewProps>(m_userProps)->Disconnect();
19
+ }
20
+ }
21
+
22
+ void AbiViewProps::SetUserProps(
23
+ winrt::Microsoft::ReactNative::IComponentProps componentProps,
24
+ winrt::Microsoft::ReactNative::ViewProps userProps) noexcept {
25
+ m_componentProps = componentProps;
26
+ m_userProps = userProps;
27
+ }
28
+
29
+ winrt::Microsoft::ReactNative::IComponentProps AbiViewProps::UserProps() const noexcept {
30
+ return m_componentProps;
31
+ }
32
+
33
+ } // namespace Microsoft::ReactNative
34
+
35
+ namespace winrt::Microsoft::ReactNative::implementation {
36
+
37
+ UserViewProps::UserViewProps(std::shared_ptr<::Microsoft::ReactNative::AbiViewProps const> viewProps) noexcept
38
+ : m_viewProps(viewProps.get()) {}
39
+
40
+ void UserViewProps::Disconnect() noexcept {
41
+ m_viewProps = nullptr;
42
+ }
43
+
44
+ float UserViewProps::Opacity() noexcept {
45
+ return m_viewProps ? m_viewProps->opacity : 1.0f;
46
+ }
47
+
48
+ } // namespace winrt::Microsoft::ReactNative::implementation
@@ -0,0 +1,48 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #pragma once
5
+
6
+ #include "ViewProps.g.h"
7
+
8
+ #include <react/renderer/components/view/ViewProps.h>
9
+ #include "winrt/Microsoft.ReactNative.h"
10
+
11
+ namespace Microsoft::ReactNative {
12
+
13
+ class AbiViewProps final : public facebook::react::ViewProps {
14
+ public:
15
+ AbiViewProps() = default;
16
+ AbiViewProps(
17
+ const facebook::react::PropsParserContext &context,
18
+ const AbiViewProps &sourceProps,
19
+ const facebook::react::RawProps &rawProps);
20
+ ~AbiViewProps();
21
+
22
+ void SetUserProps(
23
+ winrt::Microsoft::ReactNative::IComponentProps componentProps,
24
+ winrt::Microsoft::ReactNative::ViewProps userProps) noexcept;
25
+ winrt::Microsoft::ReactNative::IComponentProps UserProps() const noexcept;
26
+
27
+ private:
28
+ winrt::Microsoft::ReactNative::IComponentProps m_componentProps{nullptr};
29
+ winrt::Microsoft::ReactNative::ViewProps m_userProps{nullptr};
30
+ };
31
+
32
+ } // namespace Microsoft::ReactNative
33
+
34
+ namespace winrt::Microsoft::ReactNative::implementation {
35
+
36
+ struct UserViewProps : ViewPropsT<UserViewProps> {
37
+ UserViewProps(std::shared_ptr<::Microsoft::ReactNative::AbiViewProps const> viewProps) noexcept;
38
+
39
+ float Opacity() noexcept;
40
+
41
+ void Disconnect() noexcept;
42
+
43
+ private:
44
+ // Use a raw pointer here to avoid a ref cycle with AbiViewProps. ~AbiViewProps will clear this pointer
45
+ ::Microsoft::ReactNative::AbiViewProps const *m_viewProps{nullptr};
46
+ };
47
+
48
+ } // namespace winrt::Microsoft::ReactNative::implementation
@@ -4,6 +4,8 @@
4
4
 
5
5
  #pragma once
6
6
 
7
+ #include <functional/functor.h>
8
+ #include <inspectable.h>
7
9
  #include <react/renderer/componentregistry/ComponentDescriptorProvider.h>
8
10
  #include <react/renderer/components/view/TouchEventEmitter.h>
9
11
  #include <react/renderer/components/view/ViewProps.h>
@@ -23,11 +25,13 @@ enum class RNComponentViewUpdateMask : std::uint_fast8_t {
23
25
 
24
26
  DEFINE_ENUM_FLAG_OPERATORS(RNComponentViewUpdateMask);
25
27
 
28
+ struct RootComponentView;
29
+
26
30
  struct IComponentView {
27
31
  virtual std::vector<facebook::react::ComponentDescriptorProvider>
28
32
  supplementalComponentDescriptorProviders() noexcept = 0;
29
- virtual void mountChildComponentView(const IComponentView &childComponentView, uint32_t index) noexcept = 0;
30
- virtual void unmountChildComponentView(const IComponentView &childComponentView, uint32_t index) noexcept = 0;
33
+ virtual void mountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept = 0;
34
+ virtual void unmountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept = 0;
31
35
  virtual void updateProps(
32
36
  facebook::react::Props::Shared const &props,
33
37
  facebook::react::Props::Shared const &oldProps) noexcept = 0;
@@ -42,14 +46,27 @@ struct IComponentView {
42
46
  virtual void prepareForRecycle() noexcept = 0;
43
47
  virtual facebook::react::Props::Shared props() noexcept = 0;
44
48
  virtual void handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept = 0;
49
+ virtual RootComponentView *rootComponentView() noexcept = 0;
45
50
  virtual void parent(IComponentView *parent) noexcept = 0;
46
51
  virtual IComponentView *parent() const noexcept = 0;
52
+ virtual const std::vector<IComponentView *> &children() const noexcept = 0;
53
+ // Run fn on all children of this node until fn returns true
54
+ // returns true if the fn ever returned true
55
+ virtual bool runOnChildren(bool forward, Mso::Functor<bool(IComponentView &)> &fn) noexcept = 0;
47
56
  virtual RECT getClientRect() const noexcept = 0;
48
57
  virtual void onFocusLost() noexcept = 0;
49
58
  virtual void onFocusGained() noexcept = 0;
59
+ virtual bool focusable() const noexcept = 0;
60
+ virtual facebook::react::SharedTouchEventEmitter touchEventEmitterAtPoint(facebook::react::Point pt) noexcept = 0;
50
61
  virtual facebook::react::SharedTouchEventEmitter touchEventEmitter() noexcept = 0;
51
62
  virtual facebook::react::Tag tag() const noexcept = 0;
52
63
  virtual facebook::react::Tag hitTest(facebook::react::Point pt, facebook::react::Point &localPt) const noexcept = 0;
64
+ virtual int64_t sendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept = 0;
65
+ virtual winrt::IInspectable EnsureUiaProvider() noexcept = 0;
53
66
  };
54
67
 
68
+ // Run fn on all nodes of the component view tree starting from this one until fn returns true
69
+ // returns true if the fn ever returned true
70
+ bool walkTree(IComponentView &view, bool forward, Mso::Functor<bool(IComponentView &)> &fn) noexcept;
71
+
55
72
  } // namespace Microsoft::ReactNative