react-native-windows 0.73.10 → 0.74.0-preview.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (773) hide show
  1. package/.flowconfig +12 -7
  2. package/Chakra/ChakraUtils.cpp +5 -10
  3. package/Chakra/ChakraUtils.h +2 -2
  4. package/Common/packages.lock.json +3 -3
  5. package/Directory.Build.props +5 -5
  6. package/Folly/Folly.vcxproj +2 -2
  7. package/Folly/Folly.vcxproj.filters +7 -0
  8. package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +22 -1
  9. package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +4 -1
  10. package/Folly/cgmanifest.json +1 -1
  11. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +6 -0
  12. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +6 -0
  13. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +4 -45
  14. package/Libraries/Alert/Alert.windows.js +2 -3
  15. package/Libraries/Alert/NativeAlertManager.js +4 -26
  16. package/Libraries/Animated/Animated.js +2 -2
  17. package/Libraries/Animated/AnimatedPlatformConfig.js +1 -1
  18. package/Libraries/Animated/NativeAnimatedHelper.js +14 -11
  19. package/Libraries/Animated/NativeAnimatedModule.js +4 -68
  20. package/Libraries/Animated/NativeAnimatedTurboModule.js +4 -69
  21. package/Libraries/Animated/animations/Animation.js +6 -22
  22. package/Libraries/Animated/components/AnimatedFlatList.js +1 -16
  23. package/Libraries/Animated/components/AnimatedScrollView.js +36 -31
  24. package/Libraries/Animated/components/AnimatedSectionList.js +1 -20
  25. package/Libraries/Animated/createAnimatedComponent.js +45 -40
  26. package/Libraries/Animated/nodes/AnimatedStyle.js +1 -1
  27. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +1 -1
  28. package/Libraries/Animated/useAnimatedProps.js +21 -1
  29. package/Libraries/AppState/NativeAppState.js +4 -24
  30. package/Libraries/AppTheme/NativeAppTheme.js +4 -25
  31. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  32. package/Libraries/Blob/Blob.js +1 -4
  33. package/Libraries/Blob/BlobManager.js +6 -8
  34. package/Libraries/Blob/File.js +1 -1
  35. package/Libraries/Blob/NativeBlobModule.js +4 -50
  36. package/Libraries/Blob/NativeFileReaderModule.js +4 -13
  37. package/Libraries/BugReporting/NativeBugReporting.js +4 -12
  38. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +3 -23
  39. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +4 -57
  40. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +3 -2
  41. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.windows.js +3 -2
  42. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +9 -40
  43. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +3 -43
  44. package/Libraries/Components/Button.js +103 -107
  45. package/Libraries/Components/Button.windows.js +199 -206
  46. package/Libraries/Components/Clipboard/NativeClipboard.js +3 -11
  47. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +3 -114
  48. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -5
  49. package/Libraries/Components/Keyboard/KeyboardExt.d.ts +8 -8
  50. package/Libraries/Components/Keyboard/KeyboardExt.js +27 -27
  51. package/Libraries/Components/Keyboard/KeyboardExt.js.map +1 -1
  52. package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +17 -17
  53. package/Libraries/Components/Keyboard/KeyboardExtProps.js +7 -7
  54. package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
  55. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +3 -10
  56. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.android.js +69 -0
  57. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.d.ts +24 -0
  58. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.js +33 -0
  59. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroidNativeComponent.js +13 -0
  60. package/Libraries/Components/Pressable/Pressable.js +1 -1
  61. package/Libraries/Components/Pressable/Pressable.windows.js +1 -2
  62. package/Libraries/Components/Pressable/useAndroidRippleForView.js +5 -4
  63. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +4 -24
  64. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +3 -64
  65. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +3 -61
  66. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  67. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -1
  68. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +3 -15
  69. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +3 -16
  70. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
  71. package/Libraries/Components/ScrollView/ScrollView.d.ts +5 -6
  72. package/Libraries/Components/ScrollView/ScrollView.js +12 -38
  73. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -2
  74. package/Libraries/Components/Sound/NativeSoundManager.js +3 -12
  75. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +3 -58
  76. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +3 -79
  77. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +4 -53
  78. package/Libraries/Components/Switch/Switch.js +0 -2
  79. package/Libraries/Components/Switch/Switch.windows.js +0 -2
  80. package/Libraries/Components/Switch/SwitchNativeComponent.js +4 -52
  81. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -0
  82. package/Libraries/Components/TextInput/InputAccessoryView.js +18 -20
  83. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +4 -17
  84. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -6
  85. package/Libraries/Components/TextInput/TextInput.d.ts +16 -0
  86. package/Libraries/Components/TextInput/TextInput.flow.js +16 -0
  87. package/Libraries/Components/TextInput/TextInput.js +65 -32
  88. package/Libraries/Components/TextInput/TextInput.windows.js +87 -38
  89. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +773 -9
  90. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +3 -28
  91. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  92. package/Libraries/Components/Touchable/Touchable.js +2 -3
  93. package/Libraries/Components/Touchable/Touchable.windows.js +2 -3
  94. package/Libraries/Components/Touchable/TouchableHighlight.js +4 -4
  95. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +4 -4
  96. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
  97. package/Libraries/Components/Touchable/TouchableOpacity.js +5 -2
  98. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +5 -2
  99. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +3 -16
  100. package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -1
  101. package/Libraries/Components/View/View.js +0 -11
  102. package/Libraries/Components/View/View.windows.js +19 -18
  103. package/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
  104. package/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
  105. package/Libraries/Components/View/ViewPropTypes.js +36 -36
  106. package/Libraries/Components/View/ViewPropTypes.windows.js +36 -36
  107. package/Libraries/Core/InitializeCore.js +1 -1
  108. package/Libraries/Core/NativeExceptionsManager.js +3 -93
  109. package/Libraries/Core/ReactNativeVersion.js +12 -6
  110. package/Libraries/Core/ReactNativeVersionCheck.js +6 -6
  111. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +3 -18
  112. package/Libraries/Core/Timers/NativeTiming.js +3 -16
  113. package/Libraries/Core/registerCallableModule.js +42 -0
  114. package/Libraries/Core/setUpPerformance.js +2 -2
  115. package/Libraries/Core/setUpPerformanceObserver.js +3 -1
  116. package/Libraries/Debugging/DebuggingOverlay.js +111 -0
  117. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
  118. package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
  119. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
  120. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +3 -14
  121. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +3 -9
  122. package/Libraries/Image/AssetSourceResolver.js +5 -5
  123. package/Libraries/Image/AssetUtils.js +4 -5
  124. package/Libraries/Image/Image.android.js +146 -174
  125. package/Libraries/Image/Image.d.ts +1 -1
  126. package/Libraries/Image/Image.ios.js +53 -79
  127. package/Libraries/Image/Image.windows.js +53 -79
  128. package/Libraries/Image/ImageBackground.js +2 -2
  129. package/Libraries/Image/ImageInjection.js +76 -18
  130. package/Libraries/Image/ImageTypes.flow.js +71 -0
  131. package/Libraries/Image/ImageUtils.js +1 -1
  132. package/Libraries/Image/ImageViewNativeComponent.js +18 -0
  133. package/Libraries/Image/NativeImageEditor.js +3 -42
  134. package/Libraries/Image/NativeImageLoaderAndroid.js +4 -28
  135. package/Libraries/Image/NativeImageLoaderIOS.js +4 -28
  136. package/Libraries/Image/NativeImageStoreAndroid.js +3 -16
  137. package/Libraries/Image/NativeImageStoreIOS.js +3 -23
  138. package/Libraries/Image/resolveAssetSource.js +59 -26
  139. package/Libraries/Image/resolveAssetSource.windows.js +148 -0
  140. package/Libraries/Inspector/ElementProperties.js +26 -52
  141. package/Libraries/Inspector/Inspector.js +122 -186
  142. package/Libraries/Inspector/InspectorOverlay.js +21 -33
  143. package/Libraries/Inspector/InspectorPanel.js +3 -17
  144. package/Libraries/Inspector/ReactDevToolsOverlay.js +171 -0
  145. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +20 -8
  146. package/Libraries/Interaction/FrameRateLogger.js +8 -18
  147. package/Libraries/Interaction/NativeFrameRateLogger.js +4 -16
  148. package/Libraries/IntersectionObserver/IntersectionObserver.js +1 -1
  149. package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +20 -19
  150. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +84 -6
  151. package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +3 -31
  152. package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +12 -2
  153. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -2
  154. package/Libraries/Linking/NativeIntentAndroid.js +3 -20
  155. package/Libraries/Linking/NativeLinkingManager.js +3 -17
  156. package/Libraries/Lists/FillRateHelper.js +1 -1
  157. package/Libraries/Lists/FlatList.d.ts +2 -2
  158. package/Libraries/Lists/FlatList.js +6 -1
  159. package/Libraries/Lists/FlatList.windows.js +717 -0
  160. package/Libraries/Lists/SectionList.d.ts +6 -1
  161. package/Libraries/Lists/ViewabilityHelper.js +1 -1
  162. package/Libraries/Lists/VirtualizeUtils.js +1 -1
  163. package/Libraries/Lists/VirtualizedList.js +1 -1
  164. package/Libraries/Lists/VirtualizedListContext.js +1 -1
  165. package/Libraries/Lists/VirtualizedSectionList.js +1 -1
  166. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  167. package/Libraries/Modal/Modal.js +43 -11
  168. package/Libraries/Modal/NativeModalManager.js +3 -11
  169. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -129
  170. package/Libraries/MutationObserver/MutationObserver.js +1 -1
  171. package/Libraries/MutationObserver/MutationObserverManager.js +2 -2
  172. package/Libraries/MutationObserver/MutationRecord.js +12 -10
  173. package/Libraries/MutationObserver/NativeMutationObserver.js +3 -48
  174. package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +1 -1
  175. package/Libraries/NativeComponent/BaseViewConfig.android.js +1 -0
  176. package/Libraries/NativeComponent/BaseViewConfig.windows.js +3 -0
  177. package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
  178. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +3 -10
  179. package/Libraries/NativeModules/specs/NativeDevMenu.js +3 -13
  180. package/Libraries/NativeModules/specs/NativeDevSettings.js +3 -23
  181. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +3 -9
  182. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +3 -38
  183. package/Libraries/NativeModules/specs/NativeDialogManagerWindows.js +11 -0
  184. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -10
  185. package/Libraries/NativeModules/specs/NativeRedBox.js +4 -11
  186. package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -25
  187. package/Libraries/Network/FormData.js +3 -1
  188. package/Libraries/Network/NativeNetworkingAndroid.js +4 -28
  189. package/Libraries/Network/NativeNetworkingIOS.js +4 -28
  190. package/Libraries/NewAppScreen/components/DebugInstructions.windows.js +4 -2
  191. package/Libraries/NewAppScreen/components/ReloadInstructions.windows.js +3 -1
  192. package/Libraries/Performance/NativeJSCSamplingProfiler.js +3 -9
  193. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -68
  194. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  195. package/Libraries/Pressability/Pressability.js +12 -2
  196. package/Libraries/Pressability/Pressability.windows.js +13 -3
  197. package/Libraries/Pressability/usePressability.js +7 -0
  198. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +4 -70
  199. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +45 -39
  200. package/Libraries/ReactNative/AppContainer-dev.js +192 -0
  201. package/Libraries/ReactNative/AppContainer-prod.js +53 -0
  202. package/Libraries/ReactNative/AppContainer.js +6 -149
  203. package/Libraries/ReactNative/AppRegistry.js +3 -1
  204. package/Libraries/ReactNative/BridgelessUIManager.js +375 -128
  205. package/Libraries/ReactNative/FabricUIManager.js +6 -0
  206. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +3 -10
  207. package/Libraries/ReactNative/NativeI18nManager.js +3 -18
  208. package/Libraries/ReactNative/NativeUIManager.js +4 -112
  209. package/Libraries/ReactNative/PaperUIManager.js +8 -7
  210. package/Libraries/ReactNative/PaperUIManager.windows.js +29 -8
  211. package/Libraries/ReactNative/ReactFabricInternals.js +1 -1
  212. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +24 -5
  213. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -45
  214. package/Libraries/ReactNative/RendererImplementation.js +11 -0
  215. package/Libraries/ReactNative/UIManager.d.ts +11 -34
  216. package/Libraries/ReactNative/UIManager.js +2 -23
  217. package/Libraries/ReactNative/UIManagerProperties.js +0 -2
  218. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +23 -1
  219. package/Libraries/ReactNative/getNativeComponentAttributes.js +5 -1
  220. package/Libraries/ReactNative/renderApplication.js +9 -6
  221. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +6 -1
  222. package/Libraries/Renderer/implementations/ReactFabric-dev.js +24771 -21123
  223. package/Libraries/Renderer/implementations/ReactFabric-prod.js +4160 -3109
  224. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4384 -3322
  225. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +25194 -21398
  226. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3763 -2636
  227. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4027 -2867
  228. package/Libraries/Renderer/shims/ReactNativeTypes.js +8 -9
  229. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -12
  230. package/Libraries/Settings/NativeSettingsManager.js +4 -16
  231. package/Libraries/Share/NativeShareModule.js +3 -13
  232. package/Libraries/StyleSheet/PlatformColorValueTypes.windows.js +1 -1
  233. package/Libraries/StyleSheet/StyleSheet.d.ts +1 -20
  234. package/Libraries/StyleSheet/StyleSheet.js +5 -28
  235. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +47 -7
  236. package/Libraries/StyleSheet/StyleSheetTypes.js +16 -11
  237. package/Libraries/StyleSheet/flattenStyle.js +2 -2
  238. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  239. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  240. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  241. package/Libraries/Text/Text.js +0 -6
  242. package/Libraries/Text/Text.windows.js +0 -6
  243. package/Libraries/Text/TextAncestor.js +2 -3
  244. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +4 -41
  245. package/Libraries/Types/ReactDevToolsTypes.js +58 -0
  246. package/Libraries/Types/UIManagerJSInterface.js +16 -0
  247. package/Libraries/Utilities/DebugEnvironment.js +1 -4
  248. package/Libraries/Utilities/Dimensions.js +8 -16
  249. package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -2
  250. package/Libraries/Utilities/NativeAppearance.js +3 -26
  251. package/Libraries/Utilities/NativeDevLoadingView.js +3 -14
  252. package/Libraries/Utilities/NativeDeviceInfo.js +2 -47
  253. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +3 -34
  254. package/Libraries/Utilities/NativePlatformConstantsIOS.js +3 -26
  255. package/Libraries/Utilities/NativePlatformConstantsWin.js +3 -23
  256. package/Libraries/Utilities/PixelRatio.d.ts +4 -4
  257. package/Libraries/Utilities/Platform.android.js +4 -0
  258. package/Libraries/Utilities/Platform.d.ts +3 -0
  259. package/Libraries/Utilities/Platform.flow.js +7 -0
  260. package/Libraries/Utilities/Platform.flow.windows.js +9 -0
  261. package/Libraries/Utilities/Platform.ios.js +11 -0
  262. package/Libraries/Utilities/Platform.windows.js +6 -0
  263. package/Libraries/Utilities/binaryToBase64.js +1 -1
  264. package/Libraries/Utilities/codegenNativeComponent.js +4 -6
  265. package/Libraries/Utilities/createPerformanceLogger.js +2 -74
  266. package/Libraries/Utilities/useMergeRefs.js +5 -9
  267. package/Libraries/Vibration/NativeVibration.js +3 -14
  268. package/Libraries/WebSocket/NativeWebSocketModule.js +4 -25
  269. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  270. package/Libraries/vendor/emitter/EventEmitter.js +1 -0
  271. package/Microsoft.ReactNative/AsynchronousEventBeat.cpp +50 -0
  272. package/Microsoft.ReactNative/AsynchronousEventBeat.h +23 -0
  273. package/Microsoft.ReactNative/Base/CoreUIManagers.cpp +4 -0
  274. package/Microsoft.ReactNative/Base/CxxReactIncludes.h +1 -1
  275. package/Microsoft.ReactNative/Base/FollyIncludes.h +2 -2
  276. package/Microsoft.ReactNative/ComponentView.idl +106 -0
  277. package/Microsoft.ReactNative/Composition.Input.idl +16 -2
  278. package/Microsoft.ReactNative/CompositionComponentView.idl +117 -0
  279. package/Microsoft.ReactNative/CompositionContext.idl +1 -1
  280. package/Microsoft.ReactNative/CompositionRootView.idl +8 -0
  281. package/Microsoft.ReactNative/CompositionSwitcher.idl +25 -14
  282. package/Microsoft.ReactNative/DevMenuControl.idl +0 -3
  283. package/Microsoft.ReactNative/DevMenuControl.xaml +0 -15
  284. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +189 -0
  285. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.h +80 -0
  286. package/Microsoft.ReactNative/Fabric/AbiShadowNode.cpp +83 -0
  287. package/Microsoft.ReactNative/Fabric/AbiShadowNode.h +83 -0
  288. package/Microsoft.ReactNative/Fabric/AbiState.cpp +71 -0
  289. package/Microsoft.ReactNative/Fabric/AbiState.h +38 -0
  290. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +48 -19
  291. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +8 -16
  292. package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +97 -0
  293. package/Microsoft.ReactNative/Fabric/AbiViewProps.h +39 -0
  294. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.cpp +90 -0
  295. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.h +87 -0
  296. package/Microsoft.ReactNative/Fabric/ComponentView.cpp +340 -0
  297. package/Microsoft.ReactNative/Fabric/ComponentView.h +130 -64
  298. package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.cpp +48 -24
  299. package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.h +18 -14
  300. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +42 -27
  301. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.h +3 -1
  302. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +123 -28
  303. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +69 -13
  304. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +651 -284
  305. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +7 -7
  306. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +9 -9
  307. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +120 -31
  308. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +12 -2
  309. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +308 -129
  310. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +34 -6
  311. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +2 -1
  312. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +61 -54
  313. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +0 -9
  314. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +99 -30
  315. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +4 -3
  316. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +273 -28
  317. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +28 -3
  318. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView_emptyimpl.cpp +7 -3
  319. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService.cpp +4 -0
  320. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +479 -280
  321. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +133 -79
  322. package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +113 -0
  323. package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.h +39 -0
  324. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +61 -41
  325. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +19 -14
  326. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentDescriptor.h +39 -0
  327. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +343 -0
  328. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.h +67 -0
  329. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewShadowNode.cpp +18 -0
  330. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewShadowNode.h +39 -0
  331. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +53 -186
  332. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +20 -12
  333. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +59 -150
  334. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +27 -76
  335. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +81 -32
  336. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +27 -14
  337. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +707 -64
  338. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +47 -26
  339. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +225 -125
  340. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +34 -21
  341. package/Microsoft.ReactNative/Fabric/Composition/TextDrawing.cpp +179 -0
  342. package/Microsoft.ReactNative/Fabric/Composition/TextDrawing.h +25 -0
  343. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +110 -115
  344. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +228 -79
  345. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +43 -22
  346. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputEventEmitter.cpp +18 -0
  347. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputEventEmitter.h +12 -0
  348. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +5 -5
  349. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +5 -1
  350. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +1 -2
  351. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +4 -44
  352. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +11 -9
  353. package/Microsoft.ReactNative/Fabric/Composition/Theme.cpp +550 -0
  354. package/Microsoft.ReactNative/Fabric/Composition/Theme.h +73 -0
  355. package/Microsoft.ReactNative/Fabric/Composition/Theme_emptyimpl.cpp +85 -0
  356. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +48 -26
  357. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +6 -2
  358. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +30 -65
  359. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +16 -25
  360. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +72 -88
  361. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +5 -2
  362. package/Microsoft.ReactNative/Fabric/IComponentViewRegistry.h +3 -2
  363. package/Microsoft.ReactNative/Fabric/ReactNativeConfigProperties.cpp +6 -6
  364. package/Microsoft.ReactNative/Fabric/ReactNativeConfigProperties.h +2 -2
  365. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +12 -7
  366. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +28 -19
  367. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.h +5 -0
  368. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +0 -2
  369. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +5 -1
  370. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/WindowsViewEvents.h +2 -4
  371. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Float.h +20 -0
  372. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +86 -0
  373. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorParser.h +38 -0
  374. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/{Color.cpp → PlatformColorUtils.cpp} +7 -77
  375. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.h +12 -0
  376. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +1 -0
  377. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +2 -0
  378. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +6 -87
  379. package/Microsoft.ReactNative/IReactContext.idl +3 -0
  380. package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +71 -1
  381. package/Microsoft.ReactNative/JsiApi.cpp +17 -7
  382. package/Microsoft.ReactNative/JsiApi.h +2 -2
  383. package/Microsoft.ReactNative/JsiApi.idl +5 -4
  384. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +13 -22
  385. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +6 -2
  386. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +1 -1
  387. package/Microsoft.ReactNative/Modules/AlertModule.h +2 -2
  388. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +12 -8
  389. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.h +1 -1
  390. package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -2
  391. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +5 -3
  392. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.h +4 -4
  393. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +10 -1
  394. package/Microsoft.ReactNative/Modules/ClipboardModule.h +1 -1
  395. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +71 -38
  396. package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +5 -5
  397. package/Microsoft.ReactNative/Modules/ExceptionsManager.cpp +110 -0
  398. package/Microsoft.ReactNative/Modules/ExceptionsManager.h +54 -0
  399. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.h +11 -10
  400. package/Microsoft.ReactNative/Modules/LinkingManagerModule.h +8 -6
  401. package/Microsoft.ReactNative/Modules/LogBoxModule.h +3 -3
  402. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +5 -28
  403. package/Microsoft.ReactNative/Modules/NativeUIManager.h +1 -1
  404. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +8 -5
  405. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +3 -3
  406. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.cpp +49 -0
  407. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.h +18 -0
  408. package/Microsoft.ReactNative/Modules/SourceCode.cpp +31 -0
  409. package/Microsoft.ReactNative/Modules/SourceCode.h +28 -0
  410. package/Microsoft.ReactNative/Modules/StatusBarManager.h +12 -0
  411. package/Microsoft.ReactNative/Modules/Timing.cpp +325 -0
  412. package/Microsoft.ReactNative/Modules/Timing.h +121 -0
  413. package/Microsoft.ReactNative/QuirkSettings.cpp +32 -0
  414. package/Microsoft.ReactNative/QuirkSettings.h +9 -0
  415. package/Microsoft.ReactNative/QuirkSettings.idl +6 -0
  416. package/Microsoft.ReactNative/ReactCoreInjection.cpp +15 -0
  417. package/Microsoft.ReactNative/ReactCoreInjection.h +4 -0
  418. package/Microsoft.ReactNative/ReactCoreInjection.idl +8 -0
  419. package/Microsoft.ReactNative/ReactHost/IReactInstance.h +1 -1
  420. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +1 -1
  421. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +556 -234
  422. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +36 -9
  423. package/Microsoft.ReactNative/ReactInstanceSettings.idl +3 -0
  424. package/Microsoft.ReactNative/ReactPointerEventArgs.cpp +8 -0
  425. package/Microsoft.ReactNative/ReactPointerEventArgs.h +4 -0
  426. package/Microsoft.ReactNative/ReactPointerEventArgs.idl +12 -0
  427. package/Microsoft.ReactNative/SchedulerSettings.cpp +23 -0
  428. package/Microsoft.ReactNative/SchedulerSettings.h +9 -1
  429. package/Microsoft.ReactNative/SynchronousEventBeat.cpp +41 -0
  430. package/Microsoft.ReactNative/SynchronousEventBeat.h +29 -0
  431. package/Microsoft.ReactNative/Theme.idl +57 -0
  432. package/Microsoft.ReactNative/Timer.cpp +63 -0
  433. package/Microsoft.ReactNative/{CoreAppPage.h → Timer.h} +12 -5
  434. package/Microsoft.ReactNative/Timer.idl +34 -0
  435. package/Microsoft.ReactNative/TurboModulesProvider.cpp +4 -0
  436. package/Microsoft.ReactNative/Utils/ImageUtils.cpp +37 -3
  437. package/Microsoft.ReactNative/Utils/ImageUtils.h +0 -1
  438. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +11 -12
  439. package/Microsoft.ReactNative/Utils/LocalBundleReader.h +3 -3
  440. package/Microsoft.ReactNative/Utils/ThemeUtils.cpp +33 -0
  441. package/Microsoft.ReactNative/Utils/ThemeUtils.h +13 -0
  442. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +0 -5
  443. package/Microsoft.ReactNative/Utils/ValueUtils.h +0 -3
  444. package/Microsoft.ReactNative/ViewProps.idl +17 -0
  445. package/Microsoft.ReactNative/Views/ActivityIndicatorViewManager.cpp +1 -0
  446. package/Microsoft.ReactNative/Views/DebuggingOverlayViewManager.cpp +54 -0
  447. package/Microsoft.ReactNative/Views/DebuggingOverlayViewManager.h +30 -0
  448. package/Microsoft.ReactNative/Views/DevMenu.cpp +1 -20
  449. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +157 -0
  450. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.h +5 -0
  451. package/Microsoft.ReactNative/Views/DynamicAutomationProperties.cpp +20 -0
  452. package/Microsoft.ReactNative/Views/DynamicAutomationProperties.h +4 -0
  453. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +1 -5
  454. package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +137 -0
  455. package/Microsoft.ReactNative/Views/ICompositionRootView.h +0 -1
  456. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +0 -5
  457. package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -5
  458. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +11 -0
  459. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +3 -4
  460. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +0 -6
  461. package/Microsoft.ReactNative/Views/TextViewManager.cpp +0 -11
  462. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +1 -1
  463. package/Microsoft.ReactNative/Views/UnimplementedViewManager.cpp +79 -0
  464. package/Microsoft.ReactNative/Views/UnimplementedViewManager.h +27 -0
  465. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +46 -0
  466. package/Microsoft.ReactNative/Views/ViewManagerBase.h +1 -1
  467. package/Microsoft.ReactNative/Views/cppwinrt/DynamicAutomationPeer.idl +77 -2
  468. package/Microsoft.ReactNative/microsoft.reactnative.def +0 -3
  469. package/Microsoft.ReactNative/packages.lock.json +9 -6
  470. package/{Shared/Composition → Microsoft.ReactNative.Cxx}/AutoDraw.h +2 -0
  471. package/{Shared/Composition → Microsoft.ReactNative.Cxx}/CompositionSwitcher.interop.h +4 -10
  472. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +0 -5
  473. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +5 -0
  474. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +19 -10
  475. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +2 -0
  476. package/Microsoft.ReactNative.Cxx/JSValueComposition.h +22 -0
  477. package/Microsoft.ReactNative.Cxx/JSValueReader.h +19 -0
  478. package/Microsoft.ReactNative.Cxx/JSValueXaml.h +1 -1
  479. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +6 -4
  480. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +0 -1
  481. package/Microsoft.ReactNative.Cxx/NativeModules.h +15 -15
  482. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.cpp +1 -1
  483. package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +2 -0
  484. package/Microsoft.ReactNative.Managed/packages.lock.json +6 -3
  485. package/Microsoft.ReactNative.Managed.CodeGen/Microsoft.ReactNative.Managed.CodeGen.csproj +0 -1
  486. package/Mso/future/details/executor.h +1 -1
  487. package/Mso/src/debugAssertApi/debugAssertApi.cpp +1 -1
  488. package/PropertySheets/External/Microsoft.ReactNative.Composition.Common.props +8 -0
  489. package/PropertySheets/External/Microsoft.ReactNative.Composition.CppLib.props +24 -0
  490. package/PropertySheets/External/Microsoft.ReactNative.Composition.CppLib.targets +20 -0
  491. package/PropertySheets/External/Microsoft.ReactNative.Cpp.Dependencies.props +1 -1
  492. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +2 -0
  493. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  494. package/PropertySheets/JSEngine.props +0 -8
  495. package/PropertySheets/React.Cpp.props +14 -3
  496. package/PropertySheets/ReactCommunity.cpp.props +2 -2
  497. package/PropertySheets/Release.props +0 -1
  498. package/PropertySheets/WinUI.props +21 -1
  499. package/PropertySheets/x64.props +3 -0
  500. package/PropertySheets/x86.props +3 -0
  501. package/ReactCommon/ReactCommon.vcxproj +13 -8
  502. package/ReactCommon/ReactCommon.vcxproj.filters +12 -1
  503. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +114 -19
  504. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.cpp +66 -0
  505. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +114 -52
  506. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +13 -15
  507. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +535 -0
  508. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +437 -0
  509. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.cpp +39 -0
  510. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.h +31 -0
  511. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/YGEnums.h +19 -24
  512. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/algorithm/CalculateLayout.cpp +600 -980
  513. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/enums/ExperimentalFeature.h +5 -11
  514. package/ReactCommon/cgmanifest.json +1 -1
  515. package/Scripts/EnableInternalWinAppSDKFeed.ps1 +21 -0
  516. package/Scripts/IntegrationTests.ps1 +26 -15
  517. package/Scripts/Microsoft.ReactNative.targets +0 -6
  518. package/Scripts/OfficeReact.Win32.nuspec +1 -2
  519. package/Scripts/TestServers.ps1 +2 -28
  520. package/Scripts/Tfs/Start-TestServers.ps1 +1 -21
  521. package/Scripts/Tfs/Stop-TestServers.ps1 +0 -5
  522. package/Scripts/rnw-dependencies.ps1 +38 -67
  523. package/Shared/CreateInstance.h +25 -0
  524. package/Shared/DevServerHelper.h +0 -3
  525. package/Shared/DevSettings.h +9 -0
  526. package/Shared/HermesRuntimeHolder.cpp +17 -0
  527. package/Shared/HermesRuntimeHolder.h +17 -0
  528. package/Shared/HermesSamplingProfiler.cpp +12 -10
  529. package/Shared/HermesSamplingProfiler.h +5 -4
  530. package/Shared/IDevSupportManager.h +4 -2
  531. package/Shared/InstanceManager.cpp +13 -11
  532. package/Shared/InstanceManager.h +8 -18
  533. package/Shared/JSI/ChakraRuntime.cpp +66 -9
  534. package/Shared/JSI/ChakraRuntime.h +8 -0
  535. package/Shared/JSI/JSExecutorFactoryDelegate.h +12 -0
  536. package/Shared/JSI/JSExecutorFactorySettings.cpp +30 -0
  537. package/Shared/JSI/JSExecutorFactorySettings.h +21 -0
  538. package/Shared/Modules/BlobModule.h +1 -1
  539. package/Shared/Modules/FileReaderModule.h +1 -1
  540. package/Shared/Modules/HttpModule.h +1 -1
  541. package/Shared/Modules/WebSocketTurboModule.h +1 -1
  542. package/Shared/Networking/OriginPolicyHttpFilter.cpp +19 -23
  543. package/Shared/Networking/OriginPolicyHttpFilter.h +4 -7
  544. package/Shared/Networking/WinRTHttpResource.cpp +2 -4
  545. package/Shared/OInstance.cpp +212 -165
  546. package/Shared/OInstance.h +19 -0
  547. package/Shared/Shared.vcxitems +134 -50
  548. package/Shared/Shared.vcxitems.filters +81 -24
  549. package/Shared/Utils.cpp +12 -10
  550. package/Shared/Utils.h +2 -2
  551. package/Shared/WebSocketJSExecutorFactory.h +1 -0
  552. package/codegen/NativeBugReportingSpec.g.h +0 -6
  553. package/codegen/NativeFrameRateLoggerSpec.g.h +0 -2
  554. package/codegen/NativeImageLoaderAndroidSpec.g.h +10 -23
  555. package/codegen/NativePerformanceObserverSpec.g.h +6 -0
  556. package/codegen/NativePlatformConstantsIOSSpec.g.h +2 -0
  557. package/codegen/NativePlatformConstantsWinSpec.g.h +17 -0
  558. package/codegen/NativePushNotificationManagerIOSSpec.g.h +8 -6
  559. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +88 -0
  560. package/codegen/NativeUIManagerSpec.g.h +83 -95
  561. package/codegen/react/components/rnwcore/ComponentDescriptors.h +10 -7
  562. package/codegen/react/components/rnwcore/EventEmitters.cpp +40 -52
  563. package/codegen/react/components/rnwcore/EventEmitters.h +66 -84
  564. package/codegen/react/components/rnwcore/Props.cpp +60 -95
  565. package/codegen/react/components/rnwcore/Props.h +198 -239
  566. package/codegen/react/components/rnwcore/ShadowNodes.cpp +6 -7
  567. package/codegen/react/components/rnwcore/ShadowNodes.h +38 -29
  568. package/codegen/react/components/rnwcore/States.cpp +3 -5
  569. package/codegen/react/components/rnwcore/States.h +29 -16
  570. package/codegen/rnwcoreJSI-generated.cpp +1442 -1398
  571. package/codegen/rnwcoreJSI.h +6066 -3593
  572. package/index.js +66 -99
  573. package/index.windows.js +60 -102
  574. package/jest/assetFileTransformer.js +1 -1
  575. package/jest/local-setup.js +0 -5
  576. package/jest/mockModal.js +2 -1
  577. package/jest/mockScrollView.js +1 -2
  578. package/jest/renderer.js +1 -1
  579. package/jest/setup.js +6 -3
  580. package/just-task.js +1 -1
  581. package/package.json +30 -29
  582. package/{Libraries/Core → src/private/core}/setUpDOM.js +2 -2
  583. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +42 -0
  584. package/src/private/featureflags/ReactNativeFeatureFlags.js +140 -0
  585. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +84 -0
  586. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +92 -0
  587. package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
  588. package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
  589. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +26 -0
  590. package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
  591. package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
  592. package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
  593. package/src/private/specs/components/PopupMenuAndroidNativeComponent.js +47 -0
  594. package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
  595. package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
  596. package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
  597. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +139 -0
  598. package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
  599. package/src/private/specs/components/SwitchNativeComponent.js +61 -0
  600. package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
  601. package/src/private/specs/modules/NativeAccessibilityInfo.js +33 -0
  602. package/src/private/specs/modules/NativeAccessibilityManager.js +66 -0
  603. package/src/private/specs/modules/NativeActionSheetManager.js +54 -0
  604. package/src/private/specs/modules/NativeAlertManager.js +35 -0
  605. package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
  606. package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
  607. package/src/private/specs/modules/NativeAnimationsDebugModule.js +20 -0
  608. package/src/private/specs/modules/NativeAppState.js +33 -0
  609. package/src/private/specs/modules/NativeAppTheme.js +33 -0
  610. package/src/private/specs/modules/NativeAppearance.js +36 -0
  611. package/src/private/specs/modules/NativeBlobModule.js +59 -0
  612. package/src/private/specs/modules/NativeBugReporting.js +20 -0
  613. package/src/private/specs/modules/NativeClipboard.js +21 -0
  614. package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
  615. package/src/private/specs/modules/NativeDevMenu.js +23 -0
  616. package/src/private/specs/modules/NativeDevSettings.js +33 -0
  617. package/src/private/specs/modules/NativeDevToolsSettingsManager.js +24 -0
  618. package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
  619. package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
  620. package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
  621. package/{Libraries/Alert → src/private/specs/modules}/NativeDialogManagerWindows.js +5 -4
  622. package/src/private/specs/modules/NativeExceptionsManager.js +103 -0
  623. package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
  624. package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
  625. package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
  626. package/src/private/specs/modules/NativeI18nManager.js +28 -0
  627. package/src/private/specs/modules/NativeImageEditor.js +52 -0
  628. package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
  629. package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
  630. package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
  631. package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
  632. package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
  633. package/src/private/specs/modules/NativeIntersectionObserver.js +41 -0
  634. package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
  635. package/src/private/specs/modules/NativeJSCSamplingProfiler.js +19 -0
  636. package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
  637. package/src/private/specs/modules/NativeLinkingManager.js +27 -0
  638. package/src/private/specs/modules/NativeLogBox.js +20 -0
  639. package/src/private/specs/modules/NativeModalManager.js +21 -0
  640. package/src/private/specs/modules/NativeMutationObserver.js +58 -0
  641. package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
  642. package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
  643. package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
  644. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
  645. package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
  646. package/src/private/specs/modules/NativePlatformConstantsWin.js +38 -0
  647. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +107 -0
  648. package/src/private/specs/modules/NativeRedBox.js +20 -0
  649. package/src/private/specs/modules/NativeSampleTurboModule.js +53 -0
  650. package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
  651. package/src/private/specs/modules/NativeSettingsManager.js +25 -0
  652. package/src/private/specs/modules/NativeShareModule.js +23 -0
  653. package/src/private/specs/modules/NativeSoundManager.js +22 -0
  654. package/src/private/specs/modules/NativeSourceCode.js +36 -0
  655. package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
  656. package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
  657. package/src/private/specs/modules/NativeTiming.js +26 -0
  658. package/src/private/specs/modules/NativeToastAndroid.js +38 -0
  659. package/src/private/specs/modules/NativeUIManager.js +118 -0
  660. package/src/private/specs/modules/NativeVibration.js +24 -0
  661. package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
  662. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReactNativeElement.js +6 -6
  663. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyCharacterData.js +2 -2
  664. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyElement.js +5 -5
  665. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyNode.js +19 -10
  666. package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/DOMRectList.js +1 -1
  667. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +85 -0
  668. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +80 -0
  669. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +161 -0
  670. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.js +2 -2
  671. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.js +3 -2
  672. package/{Libraries/WebPerformance → src/private/webapis/performance}/Performance.js +2 -2
  673. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEventTiming.js +1 -1
  674. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceObserver.js +21 -2
  675. package/{Libraries/WebPerformance → src/private/webapis/performance}/RawPerformanceEntry.js +1 -1
  676. package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformanceObserver.js +9 -0
  677. package/src/private/webapis/performance/__tests__/EventCounts-test.js +116 -0
  678. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +82 -0
  679. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +108 -0
  680. package/src/private/webapis/performance/__tests__/Performance-test.js +117 -0
  681. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +208 -0
  682. package/template/cpp-app/src/App.cpp +2 -2
  683. package/template/cs-app/src/App.xaml.cs +2 -2
  684. package/templates/cpp-app/jest.config.windows.js +3 -0
  685. package/templates/cpp-app/metro.config.js +0 -2
  686. package/templates/cpp-app/template.config.js +24 -9
  687. package/templates/cpp-app/windows/ExperimentalFeatures.props +1 -1
  688. package/templates/cpp-app/windows/MyApp/AutolinkedNativeModules.g.cpp +13 -0
  689. package/templates/cpp-app/windows/MyApp/AutolinkedNativeModules.g.h +10 -0
  690. package/templates/cpp-app/windows/MyApp/MyApp.cpp +134 -249
  691. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +12 -11
  692. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj.filters +6 -3
  693. package/templates/cpp-app/windows/MyApp/pch.h +12 -9
  694. package/templates/cpp-app/windows/MyApp/resource.h +0 -1
  695. package/templates/cpp-app/windows/MyApp.sln +26 -26
  696. package/templates/cpp-lib/example/metro.config.js +74 -0
  697. package/templates/cpp-lib/template.config.js +235 -0
  698. package/templates/cpp-lib/windows/ExperimentalFeatures.props +11 -0
  699. package/templates/cpp-lib/windows/MyLib/MyLib.cpp +18 -0
  700. package/templates/cpp-lib/windows/MyLib/MyLib.def +3 -0
  701. package/templates/cpp-lib/windows/MyLib/MyLib.h +31 -0
  702. package/templates/cpp-lib/windows/MyLib/MyLib.rc +0 -0
  703. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +148 -0
  704. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj.filters +44 -0
  705. package/templates/cpp-lib/windows/MyLib/ReactPackageProvider.cpp +20 -0
  706. package/templates/cpp-lib/windows/MyLib/ReactPackageProvider.h +24 -0
  707. package/templates/cpp-lib/windows/MyLib/ReactPackageProvider.idl +9 -0
  708. package/templates/cpp-lib/windows/MyLib/pch.cpp +1 -0
  709. package/templates/cpp-lib/windows/MyLib/pch.h +30 -0
  710. package/templates/cpp-lib/windows/MyLib/resource.h +5 -0
  711. package/templates/cpp-lib/windows/MyLib/targetver.h +8 -0
  712. package/templates/cpp-lib/windows/MyLib.sln +156 -0
  713. package/templates/cpp-lib/windows/_gitignore +41 -0
  714. package/templates/templateUtils.js +137 -0
  715. package/types/modules/globals.d.ts +1 -0
  716. package/Folly/TEMP_UntilFollyUpdate/hash/Hash.h +0 -1016
  717. package/Libraries/Components/Button.flow.js +0 -265
  718. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.windows.js +0 -8
  719. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.windows.js +0 -14
  720. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +0 -34
  721. package/Libraries/Components/ScrollView/ScrollView.windows.js +0 -1941
  722. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -85
  723. package/Libraries/Components/ToastAndroid/ToastAndroid.windows.js +0 -45
  724. package/Libraries/Components/Touchable/Touchable.flow.js +0 -284
  725. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +0 -189
  726. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +0 -43
  727. package/Libraries/Image/Image.flow.js +0 -64
  728. package/Libraries/Inspector/DevtoolsOverlay.js +0 -223
  729. package/Libraries/Performance/QuickPerformanceLogger.js +0 -142
  730. package/Libraries/Settings/Settings.windows.js +0 -28
  731. package/Microsoft.ReactNative/CoreApp.cpp +0 -303
  732. package/Microsoft.ReactNative/CoreAppPage.cpp +0 -21
  733. package/Microsoft.ReactNative/CoreAppPage.idl +0 -12
  734. package/Microsoft.ReactNative/CoreAppPage.xaml +0 -14
  735. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +0 -197
  736. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +0 -84
  737. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rnwcore/EventEmitters.h +0 -5
  738. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rnwcore/Props.h +0 -5
  739. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rnwcore/ShadowNodes.h +0 -5
  740. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rnwcore/States.h +0 -5
  741. package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +0 -245
  742. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +0 -134
  743. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +0 -27
  744. package/Microsoft.ReactNative/Modules/TimingModule.cpp +0 -229
  745. package/Microsoft.ReactNative/Modules/TimingModule.h +0 -88
  746. package/Microsoft.ReactNative.Cxx/CoreApp.h +0 -60
  747. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.cpp +0 -60
  748. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.h +0 -60
  749. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +0 -63
  750. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaLayoutableShadowNode.cpp +0 -1038
  751. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +0 -503
  752. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +0 -895
  753. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBufferBuilder.cpp +0 -182
  754. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/ShadowTree.cpp +0 -543
  755. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManagerBinding.cpp +0 -1505
  756. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/bits/NumericBitfield.h +0 -67
  757. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +0 -93
  758. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +0 -88
  759. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +0 -606
  760. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.h +0 -344
  761. package/ReactCommon/Yoga.cpp +0 -961
  762. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRect.js +0 -0
  763. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRectReadOnly.js +0 -0
  764. /package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyText.js +0 -0
  765. /package/{Libraries/DOM/Nodes/Utilities → src/private/webapis/dom/nodes/utilities}/Traversal.js +0 -0
  766. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/ArrayLikeUtils.js +0 -0
  767. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/HTMLCollection.js +0 -0
  768. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/NodeList.js +0 -0
  769. /package/{Libraries/WebPerformance → src/private/webapis/performance}/EventCounts.js +0 -0
  770. /package/{Libraries/WebPerformance → src/private/webapis/performance}/MemoryInfo.js +0 -0
  771. /package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntry.js +0 -0
  772. /package/{Libraries/WebPerformance → src/private/webapis/performance}/ReactNativeStartupTiming.js +0 -0
  773. /package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformance.js +0 -0
@@ -6,34 +6,44 @@
6
6
 
7
7
  #include "ParagraphComponentView.h"
8
8
 
9
+ #include <AutoDraw.h>
9
10
  #include <Utils/ValueUtils.h>
10
11
  #include <react/renderer/components/text/ParagraphShadowNode.h>
11
12
  #include <react/renderer/components/text/ParagraphState.h>
12
13
  #include <unicode.h>
13
14
  #include <winrt/Microsoft.ReactNative.Composition.h>
14
- #include "Composition/AutoDraw.h"
15
15
  #include "CompositionDynamicAutomationProvider.h"
16
16
  #include "CompositionHelpers.h"
17
+ #include "TextDrawing.h"
17
18
 
18
- namespace Microsoft::ReactNative {
19
+ namespace winrt::Microsoft::ReactNative::Composition::implementation {
19
20
 
20
21
  ParagraphComponentView::ParagraphComponentView(
21
22
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
22
- facebook::react::Tag tag)
23
- : Super(compContext, tag) {
23
+ facebook::react::Tag tag,
24
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext)
25
+ : Super(
26
+ compContext,
27
+ tag,
28
+ reactContext,
29
+ ComponentViewFeatures::Default & ~ComponentViewFeatures::Background,
30
+ false) {
24
31
  static auto const defaultProps = std::make_shared<facebook::react::ParagraphProps const>();
25
32
  m_props = defaultProps;
26
33
  }
27
34
 
28
- void ParagraphComponentView::mountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept {
29
- // auto v = static_cast<ParagraphComponentView &>(childComponentView);
35
+ void ParagraphComponentView::MountChildComponentView(
36
+ const winrt::Microsoft::ReactNative::ComponentView &childComponentView,
37
+ uint32_t index) noexcept {
30
38
  assert(false);
31
- // m_element.Children().InsertAt(index, v.Element());
39
+ base_type::MountChildComponentView(childComponentView, index);
32
40
  }
33
41
 
34
- void ParagraphComponentView::unmountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept {
42
+ void ParagraphComponentView::UnmountChildComponentView(
43
+ const winrt::Microsoft::ReactNative::ComponentView &childComponentView,
44
+ uint32_t index) noexcept {
35
45
  assert(false);
36
- // m_element.Children().RemoveAt(index);
46
+ base_type::UnmountChildComponentView(childComponentView, index);
37
47
  }
38
48
 
39
49
  void ParagraphComponentView::updateProps(
@@ -50,6 +60,9 @@ void ParagraphComponentView::updateProps(
50
60
  if (oldViewProps.textAttributes.opacity != newViewProps.textAttributes.opacity) {
51
61
  m_requireRedraw = true;
52
62
  }
63
+ if (oldViewProps.testId != newViewProps.testId) {
64
+ m_visual.Comment(winrt::to_hstring(newViewProps.testId));
65
+ }
53
66
 
54
67
  if (oldViewProps.textAttributes.alignment != newViewProps.textAttributes.alignment) {
55
68
  updateTextAlignment(newViewProps.textAttributes.alignment);
@@ -57,9 +70,8 @@ void ParagraphComponentView::updateProps(
57
70
 
58
71
  // update BaseComponentView props
59
72
  updateAccessibilityProps(oldViewProps, newViewProps);
60
- updateShadowProps(oldViewProps, newViewProps, m_visual);
61
73
  updateTransformProps(oldViewProps, newViewProps, m_visual);
62
- updateBorderProps(oldViewProps, newViewProps);
74
+ Super::updateProps(props, oldProps);
63
75
 
64
76
  m_props = std::static_pointer_cast<facebook::react::ParagraphProps const>(props);
65
77
  }
@@ -87,20 +99,20 @@ void ParagraphComponentView::updateLayoutMetrics(
87
99
  OuterVisual().IsVisible(layoutMetrics.displayType != facebook::react::DisplayType::None);
88
100
  }
89
101
 
90
- updateBorderLayoutMetrics(layoutMetrics, *m_props);
91
- m_layoutMetrics = layoutMetrics;
92
-
93
- UpdateCenterPropertySet();
102
+ Super::updateLayoutMetrics(layoutMetrics, oldLayoutMetrics);
94
103
  m_visual.Size(
95
104
  {layoutMetrics.frame.size.width * layoutMetrics.pointScaleFactor,
96
105
  layoutMetrics.frame.size.height * layoutMetrics.pointScaleFactor});
97
106
  }
98
- void ParagraphComponentView::finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept {
107
+ void ParagraphComponentView::FinalizeUpdates(
108
+ winrt::Microsoft::ReactNative::ComponentViewUpdateMask updateMask) noexcept {
99
109
  ensureVisual();
100
110
  updateVisualBrush();
111
+ Super::FinalizeUpdates(updateMask);
101
112
  }
102
113
  void ParagraphComponentView::prepareForRecycle() noexcept {}
103
- facebook::react::Props::Shared ParagraphComponentView::props() noexcept {
114
+
115
+ facebook::react::SharedViewProps ParagraphComponentView::viewProps() noexcept {
104
116
  return m_props;
105
117
  }
106
118
 
@@ -116,7 +128,7 @@ facebook::react::Tag ParagraphComponentView::hitTest(
116
128
  if ((m_props.pointerEvents == facebook::react::PointerEventsMode::Auto ||
117
129
  m_props.pointerEvents == facebook::react::PointerEventsMode::BoxNone) && std::any_of(m_children.rbegin(),
118
130
  m_children.rend(), [&targetTag, &ptLocal, &localPt](auto child) { targetTag = static_cast<const
119
- CompositionBaseComponentView
131
+ ComponentView
120
132
  *>(child)->hitTest(ptLocal, localPt); return targetTag != -1;
121
133
  }))
122
134
  return targetTag;
@@ -127,7 +139,7 @@ facebook::react::Tag ParagraphComponentView::hitTest(
127
139
  ptLocal.x >= 0 && ptLocal.x <= m_layoutMetrics.frame.size.width && ptLocal.y >= 0 &&
128
140
  ptLocal.y <= m_layoutMetrics.frame.size.height) {
129
141
  localPt = ptLocal;
130
- return tag();
142
+ return Tag();
131
143
  }
132
144
 
133
145
  return -1;
@@ -283,9 +295,14 @@ void ParagraphComponentView::updateVisualBrush() noexcept {
283
295
  }
284
296
  }
285
297
 
298
+ void ParagraphComponentView::onThemeChanged() noexcept {
299
+ DrawText();
300
+ Super::onThemeChanged();
301
+ }
302
+
286
303
  // Renders the text into our composition surface
287
304
  void ParagraphComponentView::DrawText() noexcept {
288
- if (!m_drawingSurface)
305
+ if (!m_drawingSurface || theme()->IsEmpty())
289
306
  return;
290
307
 
291
308
  if (m_layoutMetrics.frame.size.width == 0 || m_layoutMetrics.frame.size.height == 0) {
@@ -298,175 +315,24 @@ void ParagraphComponentView::DrawText() noexcept {
298
315
  ::Microsoft::ReactNative::Composition::AutoDrawDrawingSurface autoDraw(m_drawingSurface, &offset);
299
316
  if (auto d2dDeviceContext = autoDraw.GetRenderTarget()) {
300
317
  d2dDeviceContext->Clear(
301
- m_props->backgroundColor ? m_props->backgroundColor.AsD2DColor() : D2D1::ColorF(D2D1::ColorF::Black, 0.0f));
302
- assert(d2dDeviceContext->GetUnitMode() == D2D1_UNIT_MODE_DIPS);
303
- const auto dpi = m_layoutMetrics.pointScaleFactor * 96.0f;
304
- float oldDpiX, oldDpiY;
305
- d2dDeviceContext->GetDpi(&oldDpiX, &oldDpiY);
306
- d2dDeviceContext->SetDpi(dpi, dpi);
307
-
308
- float offsetX = static_cast<float>(offset.x / m_layoutMetrics.pointScaleFactor);
309
- float offsetY = static_cast<float>(offset.y / m_layoutMetrics.pointScaleFactor);
318
+ m_props->backgroundColor ? theme()->D2DColor(*m_props->backgroundColor)
319
+ : D2D1::ColorF(D2D1::ColorF::Black, 0.0f));
310
320
 
311
321
  const auto &paragraphProps = *std::static_pointer_cast<const facebook::react::ParagraphProps>(m_props);
312
322
 
313
- // Create a solid color brush for the text. A more sophisticated application might want
314
- // to cache and reuse a brush across all text elements instead, taking care to recreate
315
- // it in the event of device removed.
316
- winrt::com_ptr<ID2D1SolidColorBrush> brush;
317
- if (paragraphProps.textAttributes.foregroundColor) {
318
- auto color = paragraphProps.textAttributes.foregroundColor.AsD2DColor();
319
- winrt::check_hresult(d2dDeviceContext->CreateSolidColorBrush(color, brush.put()));
320
- } else {
321
- winrt::check_hresult(
322
- d2dDeviceContext->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::Black, 1.0f), brush.put()));
323
- }
324
-
325
- if (paragraphProps.textAttributes.textDecorationLineType) {
326
- DWRITE_TEXT_RANGE range = {0, std::numeric_limits<uint32_t>::max()};
327
- if (*(paragraphProps.textAttributes.textDecorationLineType) ==
328
- facebook::react::TextDecorationLineType::Underline ||
329
- *(paragraphProps.textAttributes.textDecorationLineType) ==
330
- facebook::react::TextDecorationLineType::UnderlineStrikethrough) {
331
- m_textLayout->SetUnderline(true, range);
332
- } else {
333
- m_textLayout->SetUnderline(false, range);
334
- }
335
- }
336
-
337
- if (paragraphProps.textAttributes.textDecorationLineType) {
338
- DWRITE_TEXT_RANGE range = {0, std::numeric_limits<uint32_t>::max()};
339
- if (*(paragraphProps.textAttributes.textDecorationLineType) ==
340
- facebook::react::TextDecorationLineType::Strikethrough ||
341
- *(paragraphProps.textAttributes.textDecorationLineType) ==
342
- facebook::react::TextDecorationLineType::UnderlineStrikethrough) {
343
- m_textLayout->SetStrikethrough(true, range);
344
- } else {
345
- m_textLayout->SetStrikethrough(false, range);
346
- }
347
- }
323
+ RenderText(
324
+ *d2dDeviceContext,
325
+ *m_textLayout,
326
+ m_attributedStringBox.getValue(),
327
+ paragraphProps.textAttributes,
328
+ {static_cast<float>(offset.x) + m_layoutMetrics.contentInsets.left,
329
+ static_cast<float>(offset.y) + m_layoutMetrics.contentInsets.top},
330
+ m_layoutMetrics.pointScaleFactor,
331
+ *theme());
348
332
 
349
333
  if (!isnan(paragraphProps.opacity)) {
350
334
  m_visual.Opacity(paragraphProps.opacity);
351
335
  }
352
-
353
- // Create color effects for individual text fragments.
354
- unsigned int position = 0;
355
- unsigned int length = 0;
356
- for (auto fragment : m_attributedStringBox.getValue().getFragments()) {
357
- length = static_cast<UINT32>(fragment.string.length());
358
- DWRITE_TEXT_RANGE range = {position, length};
359
- if (fragment.textAttributes.foregroundColor &&
360
- (fragment.textAttributes.foregroundColor != paragraphProps.textAttributes.foregroundColor) ||
361
- !isnan(fragment.textAttributes.opacity)) {
362
- winrt::com_ptr<ID2D1SolidColorBrush> fragmentBrush;
363
- if (fragment.textAttributes.foregroundColor) {
364
- auto color = fragment.textAttributes.foregroundColor.AsD2DColor();
365
- winrt::check_hresult(d2dDeviceContext->CreateSolidColorBrush(color, fragmentBrush.put()));
366
- } else {
367
- winrt::check_hresult(
368
- d2dDeviceContext->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::Black, 1.0f), fragmentBrush.put()));
369
- }
370
-
371
- if (fragment.textAttributes.textDecorationLineType) {
372
- if (*(fragment.textAttributes.textDecorationLineType) ==
373
- facebook::react::TextDecorationLineType::Underline ||
374
- *(fragment.textAttributes.textDecorationLineType) ==
375
- facebook::react::TextDecorationLineType::UnderlineStrikethrough) {
376
- m_textLayout->SetUnderline(true, range);
377
- } else {
378
- m_textLayout->SetUnderline(false, range);
379
- }
380
- }
381
-
382
- if (fragment.textAttributes.textDecorationLineType) {
383
- if (*(fragment.textAttributes.textDecorationLineType) ==
384
- facebook::react::TextDecorationLineType::Strikethrough ||
385
- *(fragment.textAttributes.textDecorationLineType) ==
386
- facebook::react::TextDecorationLineType::UnderlineStrikethrough) {
387
- m_textLayout->SetStrikethrough(true, range);
388
- } else {
389
- m_textLayout->SetStrikethrough(false, range);
390
- }
391
- }
392
-
393
- if (!isnan(fragment.textAttributes.opacity)) {
394
- fragmentBrush->SetOpacity(fragment.textAttributes.opacity);
395
- }
396
- m_textLayout->SetDrawingEffect(fragmentBrush.get(), range);
397
-
398
- // DWrite doesn't handle background highlight colors, so we manually draw the background color for ranges
399
- if (facebook::react::isColorMeaningful(fragment.textAttributes.backgroundColor)) {
400
- UINT32 actualHitTestCount = 0;
401
- if (range.length > 0) {
402
- m_textLayout->HitTestTextRange(
403
- range.startPosition,
404
- range.length,
405
- 0, // x
406
- 0, // y
407
- NULL,
408
- 0, // metrics count
409
- &actualHitTestCount);
410
- }
411
-
412
- // Allocate enough room to return all hit-test metrics.
413
- std::vector<DWRITE_HIT_TEST_METRICS> hitTestMetrics(actualHitTestCount);
414
- if (range.length > 0) {
415
- m_textLayout->HitTestTextRange(
416
- range.startPosition,
417
- range.length,
418
- 0, // x
419
- 0, // y
420
- &hitTestMetrics[0],
421
- static_cast<UINT32>(hitTestMetrics.size()),
422
- &actualHitTestCount);
423
- }
424
-
425
- // Draw the selection ranges behind the text.
426
- if (actualHitTestCount > 0) {
427
- // Note that an ideal layout will return fractional values,
428
- // so you may see slivers between the selection ranges due
429
- // to the per-primitive anti-aliasing of the edges unless
430
- // it is disabled (better for performance anyway).
431
- auto oldAliasMode = d2dDeviceContext->GetAntialiasMode();
432
- d2dDeviceContext->SetAntialiasMode(D2D1_ANTIALIAS_MODE_ALIASED);
433
-
434
- winrt::com_ptr<ID2D1SolidColorBrush> textHighlightBrush;
435
- winrt::check_hresult(d2dDeviceContext->CreateSolidColorBrush(
436
- fragment.textAttributes.backgroundColor.AsD2DColor(), textHighlightBrush.put()));
437
-
438
- for (size_t i = 0; i < actualHitTestCount; ++i) {
439
- const DWRITE_HIT_TEST_METRICS &htm = hitTestMetrics[i];
440
-
441
- const D2D1_RECT_F rect = {
442
- std::round(htm.left + offsetX),
443
- std::round(htm.top + offsetY),
444
- std::round(htm.left + htm.width + offsetX),
445
- std::round(htm.top + htm.height + offsetY)};
446
-
447
- d2dDeviceContext->FillRectangle(rect, textHighlightBrush.get());
448
- }
449
- d2dDeviceContext->SetAntialiasMode(oldAliasMode);
450
- }
451
- }
452
- }
453
-
454
- position += length;
455
- }
456
-
457
- // Draw the line of text at the specified offset, which corresponds to the top-left
458
- // corner of our drawing surface. Notice we don't call BeginDraw on the D2D device
459
- // context; this has already been done for us by the composition API.
460
- d2dDeviceContext->DrawTextLayout(
461
- D2D1::Point2F(
462
- static_cast<FLOAT>((offset.x + m_layoutMetrics.contentInsets.left) / m_layoutMetrics.pointScaleFactor),
463
- static_cast<FLOAT>((offset.y + m_layoutMetrics.contentInsets.top) / m_layoutMetrics.pointScaleFactor)),
464
- m_textLayout.get(),
465
- brush.get(),
466
- D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT);
467
-
468
- // restore dpi to old state
469
- d2dDeviceContext->SetDpi(oldDpiX, oldDpiY);
470
336
  }
471
337
  m_requireRedraw = false;
472
338
  }
@@ -484,10 +350,11 @@ winrt::Microsoft::ReactNative::Composition::IVisual ParagraphComponentView::Visu
484
350
  return m_visual;
485
351
  }
486
352
 
487
- std::shared_ptr<ParagraphComponentView> ParagraphComponentView::Create(
353
+ winrt::Microsoft::ReactNative::ComponentView ParagraphComponentView::Create(
488
354
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
489
- facebook::react::Tag tag) noexcept {
490
- return std::shared_ptr<ParagraphComponentView>(new ParagraphComponentView(compContext, tag));
355
+ facebook::react::Tag tag,
356
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext) noexcept {
357
+ return winrt::make<ParagraphComponentView>(compContext, tag, reactContext);
491
358
  }
492
359
 
493
- } // namespace Microsoft::ReactNative
360
+ } // namespace winrt::Microsoft::ReactNative::Composition::implementation
@@ -4,6 +4,7 @@
4
4
 
5
5
  #pragma once
6
6
 
7
+ #include "Composition.ParagraphComponentView.g.h"
7
8
  #include <Fabric/ComponentView.h>
8
9
  #include <d2d1_1.h>
9
10
  #include <dwrite.h>
@@ -14,17 +15,22 @@
14
15
  #include "CompositionHelpers.h"
15
16
  #include "CompositionViewComponentView.h"
16
17
 
17
- namespace Microsoft::ReactNative {
18
+ namespace winrt::Microsoft::ReactNative::Composition::implementation {
18
19
 
19
- struct ParagraphComponentView : CompositionBaseComponentView {
20
- using Super = CompositionBaseComponentView;
20
+ struct ParagraphComponentView : ParagraphComponentViewT<ParagraphComponentView, ComponentView> {
21
+ using Super = ParagraphComponentViewT<ParagraphComponentView, ComponentView>;
21
22
 
22
- [[nodiscard]] static std::shared_ptr<ParagraphComponentView> Create(
23
+ [[nodiscard]] static winrt::Microsoft::ReactNative::ComponentView Create(
23
24
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
24
- facebook::react::Tag tag) noexcept;
25
+ facebook::react::Tag tag,
26
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext) noexcept;
25
27
 
26
- void mountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept override;
27
- void unmountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept override;
28
+ void MountChildComponentView(
29
+ const winrt::Microsoft::ReactNative::ComponentView &childComponentView,
30
+ uint32_t index) noexcept override;
31
+ void UnmountChildComponentView(
32
+ const winrt::Microsoft::ReactNative::ComponentView &childComponentView,
33
+ uint32_t index) noexcept override;
28
34
  void updateProps(facebook::react::Props::Shared const &props, facebook::react::Props::Shared const &oldProps) noexcept
29
35
  override;
30
36
  void updateEventEmitter(facebook::react::EventEmitter::Shared const &eventEmitter) noexcept override;
@@ -33,23 +39,25 @@ struct ParagraphComponentView : CompositionBaseComponentView {
33
39
  void updateLayoutMetrics(
34
40
  facebook::react::LayoutMetrics const &layoutMetrics,
35
41
  facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept override;
36
- void finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept override;
42
+ void FinalizeUpdates(winrt::Microsoft::ReactNative::ComponentViewUpdateMask updateMask) noexcept override;
37
43
  void prepareForRecycle() noexcept override;
38
- facebook::react::Props::Shared props() noexcept override;
44
+ facebook::react::SharedViewProps viewProps() noexcept override;
39
45
  facebook::react::Tag hitTest(facebook::react::Point pt, facebook::react::Point &localPt, bool ignorePointerEvents)
40
46
  const noexcept override;
41
47
  void OnRenderingDeviceLost() noexcept override;
48
+ void onThemeChanged() noexcept override;
42
49
  facebook::react::SharedViewEventEmitter eventEmitterAtPoint(facebook::react::Point pt) noexcept override;
43
50
 
44
51
  winrt::Microsoft::ReactNative::Composition::IVisual Visual() const noexcept override;
45
52
  virtual std::string DefaultControlType() const noexcept override;
46
53
  virtual std::string DefaultAccessibleName() const noexcept override;
47
54
 
48
- private:
49
55
  ParagraphComponentView(
50
56
  const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
51
- facebook::react::Tag tag);
57
+ facebook::react::Tag tag,
58
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext);
52
59
 
60
+ private:
53
61
  void ensureVisual() noexcept;
54
62
  void updateVisualBrush() noexcept;
55
63
  void DrawText() noexcept;
@@ -65,4 +73,4 @@ struct ParagraphComponentView : CompositionBaseComponentView {
65
73
  winrt::Microsoft::ReactNative::Composition::IDrawingSurfaceBrush m_drawingSurface;
66
74
  };
67
75
 
68
- } // namespace Microsoft::ReactNative
76
+ } // namespace winrt::Microsoft::ReactNative::Composition::implementation
@@ -3,6 +3,7 @@
3
3
 
4
4
  #include "pch.h"
5
5
  #include "ReactCompositionViewComponentBuilder.h"
6
+ #include <Fabric/Composition/CompositionViewComponentView.h>
6
7
  #include <strsafe.h>
7
8
  #include "DynamicWriter.h"
8
9
  #include "ReactHost/MsoUtils.h"
@@ -23,183 +24,91 @@ IComponentProps ReactCompositionViewComponentBuilder::CreateProps(ViewProps prop
23
24
  return m_propsFactory(props);
24
25
  }
25
26
 
26
- void ReactCompositionViewComponentBuilder::SetCreateView(CompositionComponentFactory impl) noexcept {
27
- m_createView = impl;
28
- }
29
- // (Object handle, String commandName, Microsoft.ReactNative.IJSValueReader args) => bool
30
- void ReactCompositionViewComponentBuilder::SetCommandHandler(Composition::CommandHandler commandHandler) noexcept {
31
- m_commandHandler = commandHandler;
32
- }
33
- // (Object handle, Microsoft.ReactNative.IComponentProps props) => void
34
- void ReactCompositionViewComponentBuilder::SetPropsUpdater(PropsUpdater impl) noexcept {
35
- m_propsUpdater = impl;
36
- }
37
- // (Object handle, LayoutMetrics metrics) => void
38
- void ReactCompositionViewComponentBuilder::SetLayoutMetricsUpdater(LayoutMetricsUpdater impl) noexcept {
39
- m_layoutMetricsUpdater = impl;
40
- }
41
- // (Object handle) => void
42
- void ReactCompositionViewComponentBuilder::SetUpdateFinalizer(UpdateFinalizer impl) noexcept {
43
- m_finalizer = impl;
44
- }
45
- // (Object handle) => IVisual
46
- void ReactCompositionViewComponentBuilder::SetVisualCreator(Composition::VisualCreator impl) noexcept {
47
- m_visualCreator = impl;
48
- }
49
- // (Object handle, UInt32 Msg, UInt64 WParam, Int64 LParam) => Int64
50
- void ReactCompositionViewComponentBuilder::SetMessageHandler(MessageHandler impl) noexcept {
51
- m_messageHandler = impl;
52
- }
53
-
54
- void ReactCompositionViewComponentBuilder::SetKeyDownHandler(KeyHandler impl) noexcept {
55
- m_keyDown = impl;
56
- }
57
-
58
- void ReactCompositionViewComponentBuilder::SetKeyUpHandler(KeyHandler impl) noexcept {
59
- m_keyUp = impl;
60
- }
61
-
62
- void ReactCompositionViewComponentBuilder::SetPointerEnteredHandler(PointerHandler impl) noexcept {
63
- m_pointerEntered = impl;
64
- }
65
-
66
- void ReactCompositionViewComponentBuilder::SetPointerExitedHandler(PointerHandler impl) noexcept {
67
- m_pointerExited = impl;
68
- }
69
-
70
- void ReactCompositionViewComponentBuilder::SetPointerReleasedHandler(PointerHandler impl) noexcept {
71
- m_pointerReleased = impl;
72
- }
73
-
74
- void ReactCompositionViewComponentBuilder::SetPointerPressedHandler(PointerHandler impl) noexcept {
75
- m_pointerPressed = impl;
76
- }
77
-
78
- void ReactCompositionViewComponentBuilder::SetPointerMovedHandler(PointerHandler impl) noexcept {
79
- m_pointerMoved = impl;
80
- }
81
-
82
- void ReactCompositionViewComponentBuilder::SetPointerWheelChangedHandler(PointerHandler impl) noexcept {
83
- m_pointerWheelChanged = impl;
84
- }
85
-
86
- winrt::Windows::Foundation::IInspectable ReactCompositionViewComponentBuilder::CreateView(
87
- IReactContext reactContext,
88
- ICompositionContext context) noexcept {
89
- return m_createView(reactContext, context);
90
- }
91
-
92
- bool ReactCompositionViewComponentBuilder::HandleCommand(
93
- winrt::Windows::Foundation::IInspectable handle,
94
- winrt::hstring commandName,
95
- IJSValueReader args) noexcept {
96
- if (!m_commandHandler) {
97
- return false;
27
+ void ReactCompositionViewComponentBuilder::CreateShadowNode(ShadowNode shadowNode) noexcept {
28
+ if (m_shadowNodeFactory) {
29
+ return m_shadowNodeFactory(shadowNode);
98
30
  }
99
- return m_commandHandler(handle, commandName, args);
100
31
  }
101
32
 
102
- void ReactCompositionViewComponentBuilder::UpdateProps(
103
- winrt::Windows::Foundation::IInspectable handle,
104
- IComponentProps props) noexcept {
105
- if (m_propsUpdater) {
106
- m_propsUpdater(handle, props);
33
+ void ReactCompositionViewComponentBuilder::CloneShadowNode(
34
+ ShadowNode shadowNode,
35
+ ShadowNode sourceShadowNode) noexcept {
36
+ if (m_shadowNodeCloner) {
37
+ m_shadowNodeCloner(shadowNode, sourceShadowNode);
107
38
  }
108
39
  }
109
40
 
110
- void ReactCompositionViewComponentBuilder::UpdateLayoutMetrics(
111
- winrt::Windows::Foundation::IInspectable handle,
112
- Composition::LayoutMetrics metrics) noexcept {
113
- if (m_layoutMetricsUpdater) {
114
- m_layoutMetricsUpdater(handle, metrics);
115
- }
41
+ MeasureContentHandler ReactCompositionViewComponentBuilder::MeasureContentHandler() const noexcept {
42
+ return m_measureContent;
116
43
  }
117
44
 
118
- void ReactCompositionViewComponentBuilder::FinalizeUpdates(winrt::Windows::Foundation::IInspectable handle) noexcept {
119
- if (m_finalizer) {
120
- m_finalizer(handle);
121
- }
45
+ LayoutHandler ReactCompositionViewComponentBuilder::LayoutHandler() const noexcept {
46
+ return m_layoutHandler;
122
47
  }
123
48
 
124
- IVisual ReactCompositionViewComponentBuilder::CreateVisual(winrt::Windows::Foundation::IInspectable handle) noexcept {
125
- return m_visualCreator(handle);
49
+ void ReactCompositionViewComponentBuilder::SetCreateComponentView(ComponentViewFactory impl) noexcept {
50
+ m_createComponentView = impl;
51
+ assert(!m_createView); // Only SetCreateComponentView OR SetCreateViewComponentView should be called
126
52
  }
127
53
 
128
- int64_t ReactCompositionViewComponentBuilder::SendMessage(
129
- winrt::Windows::Foundation::IInspectable handle,
130
- uint32_t msg,
131
- uint64_t wparam,
132
- int64_t lparam) noexcept {
133
- if (!m_messageHandler) {
134
- return 0;
135
- }
136
- return m_messageHandler(handle, msg, wparam, lparam);
54
+ void ReactCompositionViewComponentBuilder::SetCreateViewComponentView(
55
+ CompositionViewComponentViewFactory impl) noexcept {
56
+ m_createView = impl;
57
+ assert(!m_createComponentView); // Only SetCreateComponentView OR SetCreateViewComponentView should be called
137
58
  }
138
-
139
- void ReactCompositionViewComponentBuilder::OnKeyDown(
140
- winrt::Windows::Foundation::IInspectable handle,
141
- const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
142
- const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept {
143
- if (m_keyDown) {
144
- m_keyDown(handle, source, args);
145
- }
59
+ // (Object handle, Microsoft.ReactNative.IComponentState state) => void
60
+ // void ReactCompositionViewComponentBuilder::SetStateUpdater(StateUpdater impl) noexcept {
61
+ // m_stateUpdater = impl;
62
+ // }
63
+ // () => Object
64
+ void ReactCompositionViewComponentBuilder::SetCreateShadowNode(ViewShadowNodeFactory impl) noexcept {
65
+ m_shadowNodeFactory = impl;
146
66
  }
147
-
148
- void ReactCompositionViewComponentBuilder::OnKeyUp(
149
- winrt::Windows::Foundation::IInspectable handle,
150
- const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
151
- const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept {
152
- if (m_keyUp) {
153
- m_keyUp(handle, source, args);
154
- }
67
+ // (Object handle) => Object
68
+ void ReactCompositionViewComponentBuilder::SetShadowNodeCloner(ViewShadowNodeCloner impl) noexcept {
69
+ m_shadowNodeCloner = impl;
155
70
  }
156
-
157
- void ReactCompositionViewComponentBuilder::OnPointerEntered(
158
- winrt::Windows::Foundation::IInspectable handle,
159
- const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
160
- if (m_pointerEntered) {
161
- m_pointerEntered(handle, args);
162
- }
71
+ // (ShadowNode shadowNode, LayoutContext layoutContext, LayoutConstraints layoutConstraints) -> Size
72
+ void ReactCompositionViewComponentBuilder::SetMeasureContentHandler(
73
+ winrt::Microsoft::ReactNative::MeasureContentHandler impl) noexcept {
74
+ m_measureContent = impl;
163
75
  }
164
76
 
165
- void ReactCompositionViewComponentBuilder::OnPointerExited(
166
- winrt::Windows::Foundation::IInspectable handle,
167
- const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
168
- if (m_pointerExited) {
169
- m_pointerExited(handle, args);
170
- }
77
+ void ReactCompositionViewComponentBuilder::SetInitialStateDataFactory(InitialStateDataFactory impl) noexcept {
78
+ m_initialStateDataFactory = impl;
171
79
  }
172
80
 
173
- void ReactCompositionViewComponentBuilder::OnPointerPressed(
174
- winrt::Windows::Foundation::IInspectable handle,
175
- const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
176
- if (m_pointerPressed) {
177
- m_pointerPressed(handle, args);
81
+ winrt::Windows::Foundation::IInspectable ReactCompositionViewComponentBuilder::InitialStateData(
82
+ winrt::Microsoft::ReactNative::IComponentProps props) noexcept {
83
+ if (m_initialStateDataFactory) {
84
+ return m_initialStateDataFactory(props);
178
85
  }
86
+
87
+ return nullptr;
179
88
  }
180
89
 
181
- void ReactCompositionViewComponentBuilder::OnPointerReleased(
182
- winrt::Windows::Foundation::IInspectable handle,
183
- const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
184
- if (m_pointerReleased) {
185
- m_pointerReleased(handle, args);
186
- }
90
+ // (ShadowNode shadowNode, LayoutContext layoutContext) => void
91
+ void ReactCompositionViewComponentBuilder::SetLayoutHandler(
92
+ winrt::Microsoft::ReactNative::LayoutHandler impl) noexcept {
93
+ m_layoutHandler = impl;
187
94
  }
188
95
 
189
- void ReactCompositionViewComponentBuilder::OnPointerMoved(
190
- winrt::Windows::Foundation::IInspectable handle,
191
- const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
192
- if (m_pointerMoved) {
193
- m_pointerMoved(handle, args);
96
+ winrt::Microsoft::ReactNative::ComponentView ReactCompositionViewComponentBuilder::CreateView(
97
+ const IReactContext &reactContext,
98
+ int32_t tag,
99
+ const ICompositionContext &context) noexcept {
100
+ if (m_createView) {
101
+ auto args = winrt::make<implementation::CreateCompositionComponentViewArgs>(reactContext, tag, context);
102
+ return m_createView(args);
103
+ } else {
104
+ assert(m_createComponentView);
105
+ auto args = winrt::make<winrt::Microsoft::ReactNative::implementation::CreateComponentViewArgs>(reactContext, tag);
106
+ return m_createComponentView(args);
194
107
  }
195
108
  }
196
109
 
197
- void ReactCompositionViewComponentBuilder::OnPointerWheelChanged(
198
- winrt::Windows::Foundation::IInspectable handle,
199
- const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
200
- if (m_pointerWheelChanged) {
201
- m_pointerWheelChanged(handle, args);
202
- }
110
+ bool ReactCompositionViewComponentBuilder::IsViewComponent() const noexcept {
111
+ return m_createView != nullptr;
203
112
  }
204
113
 
205
114
  } // namespace winrt::Microsoft::ReactNative::Composition