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
@@ -0,0 +1,168 @@
1
+
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+
5
+ #pragma once
6
+
7
+ #include "UnimplementedNativeViewComponentView.h"
8
+
9
+ #include <Fabric/DWriteHelpers.h>
10
+ #include "CompositionDynamicAutomationProvider.h"
11
+ #include "Unicode.h"
12
+
13
+ namespace Microsoft::ReactNative {
14
+
15
+ UnimplementedNativeViewComponentView::UnimplementedNativeViewComponentView(
16
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
17
+ facebook::react::Tag tag)
18
+ : Super(compContext, tag) {
19
+ static auto const defaultProps = std::make_shared<facebook::react::UnimplementedNativeViewProps const>();
20
+ m_props = defaultProps;
21
+ m_visual = compContext.CreateSpriteVisual();
22
+ }
23
+
24
+ std::shared_ptr<UnimplementedNativeViewComponentView> UnimplementedNativeViewComponentView::Create(
25
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
26
+ facebook::react::Tag tag) noexcept {
27
+ return std::shared_ptr<UnimplementedNativeViewComponentView>(
28
+ new UnimplementedNativeViewComponentView(compContext, tag));
29
+ }
30
+
31
+ void UnimplementedNativeViewComponentView::mountChildComponentView(
32
+ IComponentView &childComponentView,
33
+ uint32_t index) noexcept {
34
+ assert(false);
35
+ }
36
+
37
+ void UnimplementedNativeViewComponentView::unmountChildComponentView(
38
+ IComponentView &childComponentView,
39
+ uint32_t index) noexcept {
40
+ assert(false);
41
+ }
42
+
43
+ void UnimplementedNativeViewComponentView::updateProps(
44
+ facebook::react::Props::Shared const &props,
45
+ facebook::react::Props::Shared const &oldProps) noexcept {
46
+ m_props = std::static_pointer_cast<facebook::react::UnimplementedNativeViewProps const>(props);
47
+ }
48
+
49
+ void UnimplementedNativeViewComponentView::updateLayoutMetrics(
50
+ facebook::react::LayoutMetrics const &layoutMetrics,
51
+ facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept {
52
+ if ((layoutMetrics.displayType != m_layoutMetrics.displayType)) {
53
+ OuterVisual().IsVisible(layoutMetrics.displayType != facebook::react::DisplayType::None);
54
+ }
55
+
56
+ if (m_layoutMetrics.frame.size != layoutMetrics.frame.size ||
57
+ m_layoutMetrics.pointScaleFactor != layoutMetrics.pointScaleFactor) {
58
+ // Always make visual a min size, so that even if its laid out at zero size, its clear an unimplemented view was
59
+ // rendered
60
+ float width = std::max(m_layoutMetrics.frame.size.width, 200.0f);
61
+ float height = std::max(m_layoutMetrics.frame.size.width, 50.0f);
62
+
63
+ winrt::Windows::Foundation::Size surfaceSize = {
64
+ width * m_layoutMetrics.pointScaleFactor, height * m_layoutMetrics.pointScaleFactor};
65
+ auto drawingSurface = m_compContext.CreateDrawingSurface(
66
+ surfaceSize,
67
+ winrt::Windows::Graphics::DirectX::DirectXPixelFormat::B8G8R8A8UIntNormalized,
68
+ winrt::Windows::Graphics::DirectX::DirectXAlphaMode::Premultiplied);
69
+
70
+ auto surfaceBrush = m_compContext.CreateSurfaceBrush(drawingSurface);
71
+ surfaceBrush.HorizontalAlignmentRatio(0.f);
72
+ surfaceBrush.VerticalAlignmentRatio(0.f);
73
+ surfaceBrush.Stretch(winrt::Microsoft::ReactNative::Composition::CompositionStretch::None);
74
+ m_visual.Brush(surfaceBrush);
75
+ m_visual.Size(surfaceSize);
76
+ m_visual.Offset({
77
+ layoutMetrics.frame.origin.x * layoutMetrics.pointScaleFactor,
78
+ layoutMetrics.frame.origin.y * layoutMetrics.pointScaleFactor,
79
+ 0.0f,
80
+ });
81
+
82
+ winrt::com_ptr<ID2D1DeviceContext> d2dDeviceContext;
83
+ POINT offset;
84
+
85
+ winrt::com_ptr<Composition::ICompositionDrawingSurfaceInterop> drawingSurfaceInterop;
86
+ drawingSurface.as(drawingSurfaceInterop);
87
+
88
+ if (CheckForDeviceRemoved(drawingSurfaceInterop->BeginDraw(d2dDeviceContext.put(), &offset))) {
89
+ d2dDeviceContext->Clear(D2D1::ColorF(D2D1::ColorF::Red, 0.3f));
90
+ assert(d2dDeviceContext->GetUnitMode() == D2D1_UNIT_MODE_DIPS);
91
+ const auto dpi = m_layoutMetrics.pointScaleFactor * 96.0f;
92
+ float oldDpiX, oldDpiY;
93
+ d2dDeviceContext->GetDpi(&oldDpiX, &oldDpiY);
94
+ d2dDeviceContext->SetDpi(dpi, dpi);
95
+
96
+ float offsetX = static_cast<float>(offset.x / m_layoutMetrics.pointScaleFactor);
97
+ float offsetY = static_cast<float>(offset.y / m_layoutMetrics.pointScaleFactor);
98
+
99
+ winrt::com_ptr<IDWriteTextFormat> spTextFormat;
100
+ winrt::check_hresult(Microsoft::ReactNative::DWriteFactory()->CreateTextFormat(
101
+ L"Segoe UI",
102
+ nullptr, // Font collection (nullptr sets it to use the system font collection).
103
+ DWRITE_FONT_WEIGHT_REGULAR,
104
+ DWRITE_FONT_STYLE_NORMAL,
105
+ DWRITE_FONT_STRETCH_NORMAL,
106
+ 12,
107
+ L"",
108
+ spTextFormat.put()));
109
+
110
+ winrt::com_ptr<ID2D1SolidColorBrush> textBrush;
111
+ winrt::check_hresult(d2dDeviceContext->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::White), textBrush.put()));
112
+
113
+ const D2D1_RECT_F rect = {
114
+ static_cast<float>(offset.x), static_cast<float>(offset.y), width + offset.x, height + offset.y};
115
+ // const D2D1_RECT_F rect = {0.f, 0.f, width, height};
116
+
117
+ auto label = Microsoft::Common::Unicode::Utf8ToUtf16(std::string("Unimplemented component: ") + m_props->name);
118
+ d2dDeviceContext->DrawText(
119
+ label.c_str(),
120
+ static_cast<UINT32>(label.length()),
121
+ spTextFormat.get(),
122
+ rect,
123
+ textBrush.get(),
124
+ D2D1_DRAW_TEXT_OPTIONS_NONE,
125
+ DWRITE_MEASURING_MODE_NATURAL);
126
+
127
+ winrt::check_hresult(drawingSurfaceInterop->EndDraw());
128
+ }
129
+ }
130
+ m_layoutMetrics = layoutMetrics;
131
+ }
132
+
133
+ void UnimplementedNativeViewComponentView::updateState(
134
+ facebook::react::State::Shared const &state,
135
+ facebook::react::State::Shared const &oldState) noexcept {}
136
+
137
+ void UnimplementedNativeViewComponentView::finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept {}
138
+
139
+ void UnimplementedNativeViewComponentView::prepareForRecycle() noexcept {}
140
+ facebook::react::Props::Shared UnimplementedNativeViewComponentView::props() noexcept {
141
+ return m_props;
142
+ }
143
+
144
+ winrt::Microsoft::ReactNative::Composition::IVisual UnimplementedNativeViewComponentView::Visual() const noexcept {
145
+ return m_visual;
146
+ }
147
+
148
+ winrt::Microsoft::ReactNative::Composition::IVisual UnimplementedNativeViewComponentView::OuterVisual() const noexcept {
149
+ return m_visual;
150
+ }
151
+
152
+ facebook::react::Tag UnimplementedNativeViewComponentView::hitTest(
153
+ facebook::react::Point pt,
154
+ facebook::react::Point &localPt) const noexcept {
155
+ facebook::react::Point ptLocal{pt.x - m_layoutMetrics.frame.origin.x, pt.y - m_layoutMetrics.frame.origin.y};
156
+
157
+ if ((m_props->pointerEvents == facebook::react::PointerEventsMode::Auto ||
158
+ m_props->pointerEvents == facebook::react::PointerEventsMode::BoxOnly) &&
159
+ ptLocal.x >= 0 && ptLocal.x <= m_layoutMetrics.frame.size.width && ptLocal.y >= 0 &&
160
+ ptLocal.y <= m_layoutMetrics.frame.size.height) {
161
+ localPt = ptLocal;
162
+ return tag();
163
+ }
164
+
165
+ return -1;
166
+ }
167
+
168
+ } // namespace Microsoft::ReactNative
@@ -0,0 +1,49 @@
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 UnimplementedNativeViewComponentView : CompositionBaseComponentView {
17
+ using Super = CompositionBaseComponentView;
18
+
19
+ [[nodiscard]] static std::shared_ptr<UnimplementedNativeViewComponentView> Create(
20
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
21
+ facebook::react::Tag tag) noexcept;
22
+
23
+ void mountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept override;
24
+ void unmountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept override;
25
+
26
+ void updateState(facebook::react::State::Shared const &state, facebook::react::State::Shared const &oldState) noexcept
27
+ override;
28
+
29
+ void updateProps(facebook::react::Props::Shared const &props, facebook::react::Props::Shared const &oldProps) noexcept
30
+ override;
31
+ void updateLayoutMetrics(
32
+ facebook::react::LayoutMetrics const &layoutMetrics,
33
+ facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept override;
34
+ void finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept override;
35
+ void prepareForRecycle() noexcept override;
36
+ facebook::react::Props::Shared props() noexcept override;
37
+ facebook::react::Tag hitTest(facebook::react::Point pt, facebook::react::Point &localPt) const noexcept override;
38
+ winrt::Microsoft::ReactNative::Composition::IVisual Visual() const noexcept override;
39
+ winrt::Microsoft::ReactNative::Composition::IVisual OuterVisual() const noexcept override;
40
+
41
+ private:
42
+ UnimplementedNativeViewComponentView(
43
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
44
+ facebook::react::Tag tag);
45
+ std::shared_ptr<facebook::react::UnimplementedNativeViewProps const> m_props;
46
+ winrt::Microsoft::ReactNative::Composition::SpriteVisual m_visual{nullptr};
47
+ };
48
+
49
+ } // namespace Microsoft::ReactNative
@@ -7,9 +7,9 @@
7
7
  #include <Fabric/ComponentView.h>
8
8
  #include <Fabric/Composition/CompositionUIService.h>
9
9
  #include <Fabric/Composition/CompositionViewComponentView.h>
10
- #include <Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h>
11
10
  #include <Fabric/FabricUIManagerModule.h>
12
11
  #include <Fabric/ReactNativeConfigProperties.h>
12
+ #include <Fabric/WindowsComponentDescriptorRegistry.h>
13
13
  #include <ICompositionRootView.h>
14
14
  #include <IReactContext.h>
15
15
  #include <IReactRootView.h>
@@ -18,11 +18,8 @@
18
18
  #include <UI.Xaml.Controls.h>
19
19
  #include <react/components/rnwcore/ComponentDescriptors.h>
20
20
  #include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
21
- #include <react/renderer/components/image/ImageComponentDescriptor.h>
22
- #include <react/renderer/components/text/ParagraphComponentDescriptor.h>
23
- #include <react/renderer/components/text/RawTextComponentDescriptor.h>
24
- #include <react/renderer/components/text/TextComponentDescriptor.h>
25
- #include <react/renderer/components/view/ViewComponentDescriptor.h>
21
+ #include <react/renderer/core/CoreFeatures.h>
22
+ #include <react/renderer/core/DynamicPropsUtilities.h>
26
23
  #include <react/renderer/core/EventBeat.h>
27
24
  #include <react/renderer/scheduler/Scheduler.h>
28
25
  #include <react/renderer/scheduler/SchedulerToolbox.h>
@@ -32,11 +29,6 @@
32
29
  #include <winrt/Windows.UI.Composition.Desktop.h>
33
30
  #include "Unicode.h"
34
31
 
35
- #pragma warning(push)
36
- #pragma warning(disable : 4305)
37
- #include <react/renderer/components/scrollview/ScrollViewComponentDescriptor.h>
38
- #pragma warning(pop)
39
-
40
32
  namespace Microsoft::ReactNative {
41
33
 
42
34
  winrt::Microsoft::ReactNative::ReactPropertyId<
@@ -53,7 +45,9 @@ FabicUIManagerProperty() noexcept {
53
45
  return props.Get(FabicUIManagerProperty()).Value();
54
46
  }
55
47
 
56
- FabricUIManager::FabricUIManager() {}
48
+ FabricUIManager::FabricUIManager() {
49
+ facebook::react::CoreFeatures::enablePropIteratorSetter = true;
50
+ }
57
51
 
58
52
  FabricUIManager::~FabricUIManager() {}
59
53
 
@@ -73,7 +67,7 @@ class AsyncEventBeat final : public facebook::react::EventBeat {
73
67
  isRequested_ = false;
74
68
  m_isBeatCallbackScheduled = true;
75
69
 
76
- m_runtimeExecutor([this, ownerBox = ownerBox_](jsi::Runtime &runtime) {
70
+ m_runtimeExecutor([this, ownerBox = ownerBox_](facebook::jsi::Runtime &runtime) {
77
71
  auto owner = ownerBox->owner.lock();
78
72
  if (!owner) {
79
73
  return;
@@ -106,33 +100,6 @@ class AsyncEventBeat final : public facebook::react::EventBeat {
106
100
  facebook::react::RuntimeExecutor m_runtimeExecutor;
107
101
  };
108
102
 
109
- std::shared_ptr<facebook::react::ComponentDescriptorProviderRegistry const> sharedProviderRegistry() {
110
- static auto providerRegistry = []() -> std::shared_ptr<facebook::react::ComponentDescriptorProviderRegistry> {
111
- auto providerRegistry = std::make_shared<facebook::react::ComponentDescriptorProviderRegistry>();
112
- providerRegistry->add(facebook::react::concreteComponentDescriptorProvider<
113
- facebook::react::ActivityIndicatorViewComponentDescriptor>());
114
- providerRegistry->add(
115
- facebook::react::concreteComponentDescriptorProvider<facebook::react::ImageComponentDescriptor>());
116
- providerRegistry->add(
117
- facebook::react::concreteComponentDescriptorProvider<facebook::react::ParagraphComponentDescriptor>());
118
- providerRegistry->add(
119
- facebook::react::concreteComponentDescriptorProvider<facebook::react::RawTextComponentDescriptor>());
120
- providerRegistry->add(
121
- facebook::react::concreteComponentDescriptorProvider<facebook::react::ScrollViewComponentDescriptor>());
122
- providerRegistry->add(
123
- facebook::react::concreteComponentDescriptorProvider<facebook::react::SwitchComponentDescriptor>());
124
- providerRegistry->add(
125
- facebook::react::concreteComponentDescriptorProvider<facebook::react::TextComponentDescriptor>());
126
- providerRegistry->add(
127
- facebook::react::concreteComponentDescriptorProvider<facebook::react::ViewComponentDescriptor>());
128
- providerRegistry->add(
129
- facebook::react::concreteComponentDescriptorProvider<facebook::react::WindowsTextInputComponentDescriptor>());
130
- return providerRegistry;
131
- }();
132
-
133
- return providerRegistry;
134
- }
135
-
136
103
  void FabricUIManager::installFabricUIManager() noexcept {
137
104
  std::shared_ptr<const facebook::react::ReactNativeConfig> config =
138
105
  std::make_shared<const ReactNativeConfigProperties>(m_context);
@@ -163,7 +130,13 @@ void FabricUIManager::installFabricUIManager() noexcept {
163
130
  toolbox.componentRegistryFactory = [](facebook::react::EventDispatcher::Weak const &eventDispatcher,
164
131
  facebook::react::ContextContainer::Shared const &contextContainer)
165
132
  -> facebook::react::ComponentDescriptorRegistry::Shared {
166
- auto registry = sharedProviderRegistry()->createComponentDescriptorRegistry({eventDispatcher, contextContainer});
133
+ auto providerRegistry =
134
+ WindowsComponentDescriptorRegistry::FromProperties(
135
+ contextContainer->at<winrt::Microsoft::ReactNative::ReactContext>("MSRN.ReactContext").Properties())
136
+ ->GetProviderRegistry();
137
+
138
+ auto registry = providerRegistry->createComponentDescriptorRegistry({eventDispatcher, contextContainer});
139
+
167
140
  auto mutableRegistry = std::const_pointer_cast<facebook::react::ComponentDescriptorRegistry>(registry);
168
141
  mutableRegistry->setFallbackComponentDescriptor(
169
142
  std::make_shared<facebook::react::UnimplementedNativeViewComponentDescriptor>(
@@ -205,7 +178,7 @@ void FabricUIManager::startSurface(
205
178
  facebook::react::RootShadowNode::Handle(), surfaceId, self->m_compContext);
206
179
 
207
180
  self->m_surfaceRegistry.at(surfaceId).rootVisual.InsertAt(
208
- static_cast<const CompositionBaseComponentView &>(*rootComponentViewDescriptor.view).Visual(), 0);
181
+ static_cast<const CompositionBaseComponentView &>(*rootComponentViewDescriptor.view).OuterVisual(), 0);
209
182
  });
210
183
 
211
184
  facebook::react::LayoutContext context;
@@ -247,14 +220,6 @@ void FabricUIManager::constraintSurfaceLayout(
247
220
 
248
221
  void FabricUIManager::didMountComponentsWithRootTag(facebook::react::SurfaceId surfaceId) noexcept {}
249
222
 
250
- struct RemoveDeleteMetadata {
251
- facebook::react::Tag tag;
252
- facebook::react::Tag parentTag;
253
- int index;
254
- bool shouldRemove;
255
- bool shouldDelete;
256
- };
257
-
258
223
  void FabricUIManager::RCTPerformMountInstructions(
259
224
  facebook::react::ShadowViewMutationList const &mutations,
260
225
  // facebook::react::RCTComponentViewRegistry* registry,
@@ -368,7 +333,7 @@ void FabricUIManager::performTransaction(facebook::react::MountingCoordinator::S
368
333
  });
369
334
  }
370
335
 
371
- void FabricUIManager::initiateTransaction(facebook::react::MountingCoordinator::Shared const &mountingCoordinator) {
336
+ void FabricUIManager::initiateTransaction(facebook::react::MountingCoordinator::Shared mountingCoordinator) {
372
337
  if (m_transactionInFlight) {
373
338
  m_followUpTransactionRequired = true;
374
339
  return;
@@ -382,8 +347,7 @@ void FabricUIManager::initiateTransaction(facebook::react::MountingCoordinator::
382
347
  } while (m_followUpTransactionRequired);
383
348
  }
384
349
 
385
- void FabricUIManager::schedulerDidFinishTransaction(
386
- facebook::react::MountingCoordinator::Shared const &mountingCoordinator) {
350
+ void FabricUIManager::schedulerDidFinishTransaction(facebook::react::MountingCoordinator::Shared mountingCoordinator) {
387
351
  // Should cache this locally
388
352
 
389
353
  if (m_context.UIDispatcher().HasThreadAccess()) {
@@ -401,6 +365,7 @@ void FabricUIManager::schedulerDidRequestPreliminaryViewAllocation(
401
365
  // the Java boundary.
402
366
  // TODO: We should do some perf tests to see if this is worth doing.
403
367
 
368
+ /* -- No sense doing this until we recycle views... since this just throws away the view currently
404
369
  if (m_context.UIDispatcher().HasThreadAccess()) {
405
370
  m_registry.dequeueComponentViewWithComponentHandle(shadowView.getComponentHandle(), surfaceId, m_compContext);
406
371
  } else {
@@ -409,6 +374,7 @@ void FabricUIManager::schedulerDidRequestPreliminaryViewAllocation(
409
374
  self->m_registry.dequeueComponentViewWithComponentHandle(componentHandle, surfaceId, self->m_compContext);
410
375
  });
411
376
  }
377
+ */
412
378
  }
413
379
 
414
380
  void FabricUIManager::schedulerDidDispatchCommand(
@@ -50,7 +50,7 @@ struct FabricUIManager final : public std::enable_shared_from_this<FabricUIManag
50
50
 
51
51
  private:
52
52
  void installFabricUIManager() noexcept;
53
- void initiateTransaction(facebook::react::MountingCoordinator::Shared const &mountingCoordinator);
53
+ void initiateTransaction(facebook::react::MountingCoordinator::Shared mountingCoordinator);
54
54
  void performTransaction(facebook::react::MountingCoordinator::Shared const &mountingCoordinator);
55
55
  void RCTPerformMountInstructions(
56
56
  facebook::react::ShadowViewMutationList const &mutations,
@@ -75,8 +75,7 @@ struct FabricUIManager final : public std::enable_shared_from_this<FabricUIManag
75
75
  std::unordered_map<facebook::react::SurfaceId, SurfaceInfo> m_surfaceRegistry;
76
76
 
77
77
  // Inherited via SchedulerDelegate
78
- virtual void schedulerDidFinishTransaction(
79
- facebook::react::MountingCoordinator::Shared const &mountingCoordinator) override;
78
+ virtual void schedulerDidFinishTransaction(facebook::react::MountingCoordinator::Shared mountingCoordinator) override;
80
79
  virtual void schedulerDidRequestPreliminaryViewAllocation(
81
80
  facebook::react::SurfaceId surfaceId,
82
81
  const facebook::react::ShadowNode &shadowView) override;
@@ -15,21 +15,20 @@ namespace Microsoft::ReactNative {
15
15
  * changed from the one provided at initalization time (i.e. recycled).
16
16
  */
17
17
  struct ReactTaggedView {
18
- ReactTaggedView(std::shared_ptr<IComponentView> componentView) {
19
- m_view = std::move(componentView);
20
- m_tag = m_view->tag();
21
- }
18
+ ReactTaggedView(const std::shared_ptr<IComponentView> &componentView)
19
+ : m_view(componentView), m_tag(componentView->tag()) {}
22
20
 
23
- std::shared_ptr<IComponentView> &view() noexcept {
24
- if (m_view && m_view->tag() != m_tag) {
25
- m_view = nullptr;
21
+ std::shared_ptr<IComponentView> view() noexcept {
22
+ auto strongView = m_view.lock();
23
+ if (!m_view.expired() && strongView->tag() != m_tag) {
24
+ m_view.reset();
26
25
  }
27
- return m_view;
26
+ return strongView;
28
27
  }
29
28
 
30
29
  private:
31
30
  facebook::react::Tag m_tag;
32
- std::shared_ptr<IComponentView> m_view;
31
+ std::weak_ptr<IComponentView> m_view;
33
32
  };
34
33
 
35
34
  } // namespace Microsoft::ReactNative
@@ -0,0 +1,100 @@
1
+
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+
5
+ #include "WindowsComponentDescriptorRegistry.h"
6
+
7
+ #include <Fabric/AbiViewComponentDescriptor.h>
8
+ #include <Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h>
9
+ #include <react/components/rnwcore/ComponentDescriptors.h>
10
+ #include <react/renderer/components/image/ImageComponentDescriptor.h>
11
+ #include <react/renderer/components/text/ParagraphComponentDescriptor.h>
12
+ #include <react/renderer/components/text/RawTextComponentDescriptor.h>
13
+ #include <react/renderer/components/text/TextComponentDescriptor.h>
14
+ #include <react/renderer/components/view/ViewComponentDescriptor.h>
15
+
16
+ #pragma warning(push)
17
+ #pragma warning(disable : 4305)
18
+ #include <react/renderer/components/scrollview/ScrollViewComponentDescriptor.h>
19
+ #pragma warning(pop)
20
+
21
+ namespace Microsoft::ReactNative {
22
+
23
+ winrt::Microsoft::ReactNative::ReactPropertyId<
24
+ winrt::Microsoft::ReactNative::ReactNonAbiValue<std::shared_ptr<WindowsComponentDescriptorRegistry>>>
25
+ WindowsComponentDescriptorRegistryProperty() noexcept {
26
+ winrt::Microsoft::ReactNative::ReactPropertyId<
27
+ winrt::Microsoft::ReactNative::ReactNonAbiValue<std::shared_ptr<WindowsComponentDescriptorRegistry>>>
28
+ propId{L"ReactNative.Fabric", L"WindowsComponentDescriptorRegistry"};
29
+ return propId;
30
+ }
31
+
32
+ WindowsComponentDescriptorRegistry::WindowsComponentDescriptorRegistry()
33
+ : m_componentDescriptorRegistry(std::make_shared<facebook::react::ComponentDescriptorProviderRegistry>()) {
34
+ /*
35
+ m_componentDescriptorRegistry->add(facebook::react::concreteComponentDescriptorProvider<
36
+ facebook::react::ActivityIndicatorViewComponentDescriptor>());
37
+ */
38
+ m_componentDescriptorRegistry->add(
39
+ facebook::react::concreteComponentDescriptorProvider<facebook::react::ImageComponentDescriptor>());
40
+ m_componentDescriptorRegistry->add(
41
+ facebook::react::concreteComponentDescriptorProvider<facebook::react::ParagraphComponentDescriptor>());
42
+ m_componentDescriptorRegistry->add(
43
+ facebook::react::concreteComponentDescriptorProvider<facebook::react::RawTextComponentDescriptor>());
44
+ m_componentDescriptorRegistry->add(
45
+ facebook::react::concreteComponentDescriptorProvider<facebook::react::ScrollViewComponentDescriptor>());
46
+ m_componentDescriptorRegistry->add(
47
+ facebook::react::concreteComponentDescriptorProvider<facebook::react::SwitchComponentDescriptor>());
48
+ m_componentDescriptorRegistry->add(
49
+ facebook::react::concreteComponentDescriptorProvider<facebook::react::TextComponentDescriptor>());
50
+ m_componentDescriptorRegistry->add(
51
+ facebook::react::concreteComponentDescriptorProvider<facebook::react::ViewComponentDescriptor>());
52
+ m_componentDescriptorRegistry->add(
53
+ facebook::react::concreteComponentDescriptorProvider<facebook::react::WindowsTextInputComponentDescriptor>());
54
+ }
55
+
56
+ void WindowsComponentDescriptorRegistry::Add(
57
+ winrt::hstring componentName,
58
+ winrt::Microsoft::ReactNative::ReactViewComponentProvider const &provider) noexcept {
59
+ auto builder = winrt::make<winrt::Microsoft::ReactNative::Composition::ReactCompositionViewComponentBuilder>();
60
+ provider(builder);
61
+
62
+ m_descriptorFlavors.emplace_back(std::make_shared<std::string>(winrt::to_string(componentName)));
63
+ auto handle = reinterpret_cast<facebook::react::ComponentHandle>(
64
+ facebook::react::ComponentName(m_descriptorFlavors.back()->c_str()));
65
+ m_builderByName.emplace(m_descriptorFlavors.back(), builder);
66
+ m_builderByHandle.emplace(handle, builder);
67
+ m_componentDescriptorRegistry->add(
68
+ {handle,
69
+ m_descriptorFlavors.back()->c_str(),
70
+ std::static_pointer_cast<void const>(m_descriptorFlavors.back()),
71
+ &facebook::react::concreteComponentDescriptorConstructor<AbiViewComponentDescriptor>});
72
+ }
73
+
74
+ winrt::Microsoft::ReactNative::IReactViewComponentBuilder WindowsComponentDescriptorRegistry::GetDescriptor(
75
+ std::shared_ptr<std::string const> &flavor) const noexcept {
76
+ return m_builderByName.at(flavor);
77
+ }
78
+
79
+ winrt::Microsoft::ReactNative::IReactViewComponentBuilder WindowsComponentDescriptorRegistry::GetDescriptor(
80
+ facebook::react::ComponentHandle handle) const noexcept {
81
+ return m_builderByHandle.at(handle);
82
+ }
83
+
84
+ std::shared_ptr<facebook::react::ComponentDescriptorProviderRegistry>
85
+ WindowsComponentDescriptorRegistry::GetProviderRegistry() const noexcept {
86
+ return m_componentDescriptorRegistry;
87
+ }
88
+
89
+ /*static*/ void WindowsComponentDescriptorRegistry::AddToProperties(
90
+ const winrt::Microsoft::ReactNative::ReactPropertyBag &props,
91
+ std::shared_ptr<WindowsComponentDescriptorRegistry> &registry) noexcept {
92
+ props.Set(WindowsComponentDescriptorRegistryProperty(), registry);
93
+ }
94
+
95
+ /*static*/ std::shared_ptr<WindowsComponentDescriptorRegistry> WindowsComponentDescriptorRegistry::FromProperties(
96
+ const winrt::Microsoft::ReactNative::ReactPropertyBag &props) noexcept {
97
+ return props.Get(WindowsComponentDescriptorRegistryProperty()).Value();
98
+ }
99
+
100
+ } // namespace Microsoft::ReactNative
@@ -0,0 +1,43 @@
1
+
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+
5
+ #pragma once
6
+
7
+ #include <Fabric/Composition/ReactCompositionViewComponentBuilder.h>
8
+ #include <ReactPropertyBag.h>
9
+ #include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
10
+
11
+ namespace Microsoft::ReactNative {
12
+
13
+ struct WindowsComponentDescriptorRegistry {
14
+ WindowsComponentDescriptorRegistry();
15
+
16
+ void Add(
17
+ winrt::hstring componentName,
18
+ winrt::Microsoft::ReactNative::ReactViewComponentProvider const &provider) noexcept;
19
+ std::shared_ptr<facebook::react::ComponentDescriptorProviderRegistry> GetProviderRegistry() const noexcept;
20
+
21
+ winrt::Microsoft::ReactNative::IReactViewComponentBuilder GetDescriptor(
22
+ std::shared_ptr<std::string const> &flavor) const noexcept;
23
+
24
+ winrt::Microsoft::ReactNative::IReactViewComponentBuilder GetDescriptor(
25
+ facebook::react::ComponentHandle handle) const noexcept;
26
+
27
+ static void AddToProperties(
28
+ const winrt::Microsoft::ReactNative::ReactPropertyBag &props,
29
+ std::shared_ptr<WindowsComponentDescriptorRegistry> &registry) noexcept;
30
+ static std::shared_ptr<WindowsComponentDescriptorRegistry> FromProperties(
31
+ const winrt::Microsoft::ReactNative::ReactPropertyBag &props) noexcept;
32
+
33
+ private:
34
+ std::vector<std::shared_ptr<const std::string>> m_descriptorFlavors;
35
+ std::shared_ptr<facebook::react::ComponentDescriptorProviderRegistry> m_componentDescriptorRegistry;
36
+
37
+ std::map<std::shared_ptr<const std::string>, winrt::Microsoft::ReactNative::IReactViewComponentBuilder const>
38
+ m_builderByName;
39
+ std::map<facebook::react::ComponentHandle, winrt::Microsoft::ReactNative::IReactViewComponentBuilder const>
40
+ m_builderByHandle;
41
+ };
42
+
43
+ } // namespace Microsoft::ReactNative
@@ -0,0 +1,61 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #include "WindowsViewProps.h"
9
+
10
+ #include <react/renderer/core/CoreFeatures.h>
11
+ #include <react/renderer/core/propsConversions.h>
12
+
13
+ namespace facebook::react {
14
+
15
+ WindowsViewProps::WindowsViewProps(
16
+ const PropsParserContext &context,
17
+ const WindowsViewProps &sourceProps,
18
+ const RawProps &rawProps,
19
+ bool shouldSetRawProps)
20
+ : windowsEvents(sourceProps.windowsEvents),
21
+ focusable(sourceProps.focusable),
22
+ enableFocusRing(sourceProps.enableFocusRing) {}
23
+
24
+ #define WINDOWS_VIEW_EVENT_CASE(eventType) \
25
+ case CONSTEXPR_RAW_PROPS_KEY_HASH("on" #eventType): { \
26
+ const auto offset = WindowsViewEvents::Offset::eventType; \
27
+ WindowsViewEvents defaultViewEvents{}; \
28
+ bool res = defaultViewEvents[offset]; \
29
+ if (value.hasValue()) { \
30
+ fromRawValue(context, value, res); \
31
+ } \
32
+ windowsEvents[offset] = res; \
33
+ return; \
34
+ }
35
+
36
+ void WindowsViewProps::setProp(
37
+ const PropsParserContext &context,
38
+ RawPropsPropNameHash hash,
39
+ const char *propName,
40
+ RawValue const &value) {
41
+ static auto defaults = WindowsViewProps{};
42
+
43
+ switch (hash) {
44
+ WINDOWS_VIEW_EVENT_CASE(Focus);
45
+ WINDOWS_VIEW_EVENT_CASE(Blur);
46
+ WINDOWS_VIEW_EVENT_CASE(KeyUp);
47
+ WINDOWS_VIEW_EVENT_CASE(KeyDown);
48
+ RAW_SET_PROP_SWITCH_CASE_BASIC(focusable);
49
+ RAW_SET_PROP_SWITCH_CASE_BASIC(enableFocusRing);
50
+ }
51
+ }
52
+
53
+ /*static*/ bool WindowsViewProps::requiresFormsStackingContext(const WindowsViewProps &props) noexcept {
54
+ return props.windowsEvents.bits.any();
55
+ }
56
+
57
+ /*static*/ bool WindowsViewProps::requiresFormsView(const WindowsViewProps &props) noexcept {
58
+ return props.focusable;
59
+ }
60
+
61
+ } // namespace facebook::react
@@ -0,0 +1,34 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #pragma once
5
+
6
+ #include <react/components/view/windows/primitives.h>
7
+ #include <react/renderer/core/Props.h>
8
+ #include <react/renderer/core/PropsParserContext.h>
9
+
10
+ namespace facebook::react {
11
+ class WindowsViewProps {
12
+ public:
13
+ WindowsViewProps() = default;
14
+ WindowsViewProps(
15
+ const PropsParserContext &context,
16
+ const WindowsViewProps &sourceProps,
17
+ const RawProps &rawProps,
18
+ bool shouldSetRawProps = true);
19
+
20
+ void
21
+ setProp(const PropsParserContext &context, RawPropsPropNameHash hash, const char *propName, RawValue const &value);
22
+
23
+ static bool requiresFormsStackingContext(const WindowsViewProps &props) noexcept;
24
+ static bool requiresFormsView(const WindowsViewProps &props) noexcept;
25
+
26
+ WindowsViewEvents windowsEvents{};
27
+ bool enableFocusRing{true};
28
+ bool focusable{false};
29
+ // std::optional<std::string> overflowAnchor{};
30
+ // std::optional<std::string> tooltip{};
31
+ // std::vector<HandledKeyEvent> keyDownEvents{};
32
+ // std::vector<HandledKeyEvent> keyUpEvents{};
33
+ };
34
+ } // namespace facebook::react