react-native-windows 0.80.0 → 0.81.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 (675) hide show
  1. package/.flowconfig +10 -5
  2. package/Directory.Build.props +1 -1
  3. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  4. package/Libraries/Alert/Alert.js +3 -3
  5. package/Libraries/Alert/Alert.windows.js +5 -2
  6. package/Libraries/Alert/NativeAlertManager.js +1 -0
  7. package/Libraries/Alert/RCTAlertManager.android.js +19 -13
  8. package/Libraries/Alert/RCTAlertManager.ios.js +10 -12
  9. package/Libraries/Alert/RCTAlertManager.js +1 -3
  10. package/Libraries/Alert/RCTAlertManager.js.flow +5 -7
  11. package/Libraries/Animated/Animated.js +0 -1
  12. package/Libraries/Animated/Animated.js.flow +0 -1
  13. package/Libraries/Animated/AnimatedEvent.js +4 -3
  14. package/Libraries/Animated/AnimatedExports.js +0 -1
  15. package/Libraries/Animated/AnimatedExports.js.flow +5 -1
  16. package/Libraries/Animated/AnimatedImplementation.js +44 -44
  17. package/Libraries/Animated/AnimatedMock.js +2 -2
  18. package/Libraries/Animated/Easing.js +1 -1
  19. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  20. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  21. package/Libraries/Animated/SpringConfig.js +1 -1
  22. package/Libraries/Animated/animations/Animation.js +10 -2
  23. package/Libraries/Animated/components/AnimatedScrollView.js +58 -56
  24. package/Libraries/Animated/components/AnimatedText.js +2 -5
  25. package/Libraries/Animated/components/AnimatedView.js +2 -1
  26. package/Libraries/Animated/createAnimatedComponent.js +39 -37
  27. package/Libraries/Animated/nodes/AnimatedObject.js +2 -3
  28. package/Libraries/Animated/nodes/AnimatedProps.js +31 -4
  29. package/Libraries/Animated/nodes/AnimatedStyle.js +35 -34
  30. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +6 -1
  31. package/Libraries/AppState/NativeAppState.js +1 -0
  32. package/Libraries/AppTheme/AppTheme.js +1 -1
  33. package/Libraries/BatchedBridge/BatchedBridge.js +1 -1
  34. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  35. package/Libraries/Blob/BlobManager.js +4 -0
  36. package/Libraries/Blob/NativeBlobModule.js +1 -0
  37. package/Libraries/Blob/NativeFileReaderModule.js +1 -0
  38. package/Libraries/Blob/URL.js +1 -1
  39. package/Libraries/Blob/URLSearchParams.js +5 -1
  40. package/Libraries/Blob/URLSearchParams.js.flow +2 -1
  41. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -2
  42. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +1 -2
  43. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
  44. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
  45. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js.flow +1 -1
  46. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.windows.js +1 -1
  47. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +19 -19
  48. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
  49. package/Libraries/Components/Button.js +10 -7
  50. package/Libraries/Components/Button.windows.js +4 -4
  51. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  52. package/Libraries/Components/Clipboard/NativeClipboard.js +1 -2
  53. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -3
  54. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -4
  55. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +1 -1
  56. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -1
  57. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +1 -1
  58. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +1 -1
  59. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +1 -1
  60. package/Libraries/Components/Glyph/GlyphNativeComponent.js +1 -1
  61. package/Libraries/Components/Keyboard/Keyboard.js +1 -1
  62. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +3 -2
  63. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -2
  64. package/Libraries/Components/LayoutConformance/LayoutConformance.js +0 -1
  65. package/Libraries/Components/Popup/PopupNativeComponent.js +1 -1
  66. package/Libraries/Components/Pressable/Pressable.js +17 -8
  67. package/Libraries/Components/Pressable/Pressable.windows.js +17 -14
  68. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +14 -13
  69. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  70. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -3
  71. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -3
  72. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -1
  73. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  74. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -1
  75. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -3
  76. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +9 -0
  77. package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -2
  78. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -3
  79. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
  80. package/Libraries/Components/ScrollView/ScrollView.d.ts +33 -6
  81. package/Libraries/Components/ScrollView/ScrollView.js +25 -15
  82. package/Libraries/Components/ScrollView/ScrollView.windows.js +25 -14
  83. package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
  84. package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -1
  85. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -1
  86. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +19 -6
  87. package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
  88. package/Libraries/Components/Sound/NativeSoundManager.js +1 -2
  89. package/Libraries/Components/Sound/SoundManager.js +1 -1
  90. package/Libraries/Components/StaticRenderer.js +1 -1
  91. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -2
  92. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -2
  93. package/Libraries/Components/StatusBar/StatusBar.d.ts +4 -0
  94. package/Libraries/Components/StatusBar/StatusBar.js +6 -1
  95. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -3
  96. package/Libraries/Components/Switch/Switch.js +10 -3
  97. package/Libraries/Components/Switch/Switch.windows.js +10 -3
  98. package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -3
  99. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +9 -24
  100. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -3
  101. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -1
  102. package/Libraries/Components/TextInput/TextInput.d.ts +9 -3
  103. package/Libraries/Components/TextInput/TextInput.flow.js +13 -15
  104. package/Libraries/Components/TextInput/TextInput.flow.windows.js +12 -15
  105. package/Libraries/Components/TextInput/TextInput.js +42 -39
  106. package/Libraries/Components/TextInput/TextInput.windows.js +69 -38
  107. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  108. package/Libraries/Components/TextInput/TextInputState.windows.js +1 -1
  109. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -17
  110. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -2
  111. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
  112. package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +1 -1
  113. package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
  114. package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +1 -1
  115. package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +1 -1
  116. package/Libraries/Components/Touchable/BoundingDimensions.js +1 -1
  117. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  118. package/Libraries/Components/Touchable/Position.js +1 -1
  119. package/Libraries/Components/Touchable/Touchable.js +17 -3
  120. package/Libraries/Components/Touchable/Touchable.windows.js +17 -3
  121. package/Libraries/Components/Touchable/TouchableBounce.js +9 -3
  122. package/Libraries/Components/Touchable/TouchableBounce.windows.js +9 -3
  123. package/Libraries/Components/Touchable/TouchableHighlight.js +14 -5
  124. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +14 -5
  125. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +5 -3
  126. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +5 -3
  127. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +1 -0
  128. package/Libraries/Components/Touchable/TouchableOpacity.js +10 -5
  129. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +10 -5
  130. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
  131. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +3 -3
  132. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -3
  133. package/Libraries/Components/View/ReactNativeStyleAttributes.js +7 -16
  134. package/Libraries/Components/View/View.js +114 -29
  135. package/Libraries/Components/View/View.windows.js +261 -217
  136. package/Libraries/Components/View/ViewAccessibility.js +1 -8
  137. package/Libraries/Components/View/ViewAccessibility.windows.js +1 -8
  138. package/Libraries/Components/View/ViewPropTypes.d.ts +21 -1
  139. package/Libraries/Components/View/ViewPropTypes.js +9 -1
  140. package/Libraries/Components/View/ViewPropTypes.windows.js +9 -1
  141. package/Libraries/Core/Devtools/getDevServer.js +1 -1
  142. package/Libraries/Core/Devtools/loadBundleFromServer.js +49 -7
  143. package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +49 -7
  144. package/Libraries/Core/Devtools/openFileInEditor.js +1 -1
  145. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -1
  146. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  147. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  148. package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
  149. package/Libraries/Core/ExceptionsManager.js +27 -16
  150. package/Libraries/Core/InitializeCore.js +2 -23
  151. package/Libraries/Core/NativeExceptionsManager.js +1 -0
  152. package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
  153. package/Libraries/Core/ReactNativeVersion.js +3 -2
  154. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
  155. package/Libraries/Core/Timers/JSTimers.js +1 -1
  156. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  157. package/Libraries/Core/Timers/immediateShim.js +1 -1
  158. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  159. package/Libraries/Core/checkNativeVersion.js +1 -0
  160. package/Libraries/Core/setUpDeveloperTools.js +13 -11
  161. package/Libraries/Core/setUpReactDevTools.js +21 -4
  162. package/Libraries/Debugging/DebuggingOverlay.js +12 -14
  163. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -1
  164. package/Libraries/Debugging/DebuggingOverlayRegistry.js +0 -1
  165. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +0 -1
  166. package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
  167. package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
  168. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
  169. package/Libraries/Image/AssetRegistry.js +4 -10
  170. package/Libraries/Image/Image.android.js +113 -107
  171. package/Libraries/Image/Image.ios.js +10 -2
  172. package/Libraries/Image/Image.windows.js +30 -20
  173. package/Libraries/Image/ImageAnalyticsTagContext.js +2 -2
  174. package/Libraries/Image/ImageInjection.js +1 -1
  175. package/Libraries/Image/ImageSource.d.ts +5 -0
  176. package/Libraries/Image/ImageViewNativeComponent.js +3 -3
  177. package/Libraries/Image/NativeImageEditor.js +1 -0
  178. package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
  179. package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
  180. package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
  181. package/Libraries/Image/NativeImageStoreIOS.js +1 -0
  182. package/Libraries/Image/RelativeImageStub.js +2 -1
  183. package/Libraries/Image/TextInlineImageNativeComponent.js +4 -4
  184. package/Libraries/Image/resolveAssetSource.js +1 -1
  185. package/Libraries/Image/resolveAssetSource.windows.js +1 -1
  186. package/Libraries/Interaction/FrameRateLogger.js +1 -1
  187. package/Libraries/Interaction/InteractionManager.js +64 -54
  188. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
  189. package/Libraries/Interaction/TaskQueue.js +8 -9
  190. package/Libraries/Interaction/TouchHistoryMath.js +1 -1
  191. package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -8
  192. package/Libraries/Linking/Linking.js +1 -1
  193. package/Libraries/Linking/NativeIntentAndroid.js +1 -0
  194. package/Libraries/Linking/NativeLinkingManager.js +1 -0
  195. package/Libraries/Lists/FlatList.d.ts +9 -5
  196. package/Libraries/Lists/FlatList.js +6 -7
  197. package/Libraries/Lists/SectionList.js +4 -4
  198. package/Libraries/Lists/SectionListModern.js +9 -3
  199. package/Libraries/Lists/VirtualizedList.js +3 -2
  200. package/Libraries/LogBox/Data/LogBoxData.js +7 -4
  201. package/Libraries/LogBox/Data/parseLogBoxLog.js +2 -0
  202. package/Libraries/LogBox/LogBox.js +72 -99
  203. package/Libraries/LogBox/UI/LogBoxButton.js +2 -1
  204. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -1
  205. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +2 -1
  206. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -2
  207. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -1
  208. package/Libraries/Modal/Modal.d.ts +8 -2
  209. package/Libraries/Modal/Modal.js +24 -3
  210. package/Libraries/Modal/Modal.windows.js +24 -3
  211. package/Libraries/Modal/NativeModalManager.js +1 -0
  212. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -1
  213. package/Libraries/NativeComponent/BaseViewConfig.android.js +21 -18
  214. package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -17
  215. package/Libraries/NativeComponent/BaseViewConfig.js.flow +1 -1
  216. package/Libraries/NativeComponent/BaseViewConfig.windows.js +9 -18
  217. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -1
  218. package/Libraries/NativeComponent/ViewConfigIgnore.js +3 -3
  219. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
  220. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
  221. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
  222. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
  223. package/Libraries/NativeModules/specs/NativeDialogManagerWindows.js +1 -0
  224. package/Libraries/NativeModules/specs/NativeLogBox.js +1 -0
  225. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
  226. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
  227. package/Libraries/Network/FormData.js +1 -1
  228. package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
  229. package/Libraries/Network/NativeNetworkingIOS.js +1 -0
  230. package/Libraries/Network/RCTNetworking.android.js +2 -2
  231. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  232. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  233. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  234. package/Libraries/Network/XMLHttpRequest.js +3 -3
  235. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  236. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -3
  237. package/Libraries/Pressability/Pressability.js +1 -1
  238. package/Libraries/Pressability/Pressability.windows.js +1 -1
  239. package/Libraries/Promise.js +1 -1
  240. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  241. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +3 -2
  242. package/Libraries/ReactNative/AppContainer-dev.js +4 -4
  243. package/Libraries/ReactNative/AppContainer-prod.js +0 -1
  244. package/Libraries/ReactNative/AppContainer.js +1 -1
  245. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  246. package/Libraries/ReactNative/AppRegistryImpl.js +2 -13
  247. package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
  248. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
  249. package/Libraries/ReactNative/NativeI18nManager.js +1 -0
  250. package/Libraries/ReactNative/NativeUIManager.js +1 -0
  251. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +1 -1
  252. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
  253. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +1 -1
  254. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +81 -62
  255. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -1
  256. package/Libraries/ReactNative/RendererImplementation.js +1 -1
  257. package/Libraries/ReactNative/RendererProxy.js +1 -1
  258. package/Libraries/ReactNative/RootTag.js +2 -2
  259. package/Libraries/ReactNative/renderApplication.js +1 -1
  260. package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
  261. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -1
  262. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +3 -3
  263. package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -1
  264. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -1
  265. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -1
  266. package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -36
  267. package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +261 -0
  268. package/Libraries/Settings/NativeSettingsManager.js +1 -0
  269. package/Libraries/Settings/Settings.ios.js +1 -1
  270. package/Libraries/Settings/Settings.js +1 -1
  271. package/Libraries/Settings/SettingsFallback.js +1 -1
  272. package/Libraries/Share/NativeShareModule.js +1 -0
  273. package/Libraries/Share/Share.js +1 -1
  274. package/Libraries/StyleSheet/EdgeInsetsPropType.js +1 -1
  275. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  276. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  277. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +1 -1
  278. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
  279. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +1 -1
  280. package/Libraries/StyleSheet/PointPropType.js +1 -1
  281. package/Libraries/StyleSheet/Rect.js +1 -1
  282. package/Libraries/StyleSheet/StyleSheet.js +1 -0
  283. package/Libraries/StyleSheet/StyleSheetTypes.js +0 -1
  284. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  285. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  286. package/Libraries/StyleSheet/processBackgroundImage.js +1 -1
  287. package/Libraries/StyleSheet/processBoxShadow.js +0 -1
  288. package/Libraries/StyleSheet/processColor.js +1 -1
  289. package/Libraries/StyleSheet/processColorArray.js +1 -1
  290. package/Libraries/StyleSheet/processFilter.js +1 -2
  291. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  292. package/Libraries/StyleSheet/processTransform.js +1 -1
  293. package/Libraries/StyleSheet/processTransformOrigin.js +1 -1
  294. package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
  295. package/Libraries/Text/Text.d.ts +1 -2
  296. package/Libraries/Text/Text.js +255 -246
  297. package/Libraries/Text/Text.windows.js +282 -301
  298. package/Libraries/Text/TextAncestor.js +3 -9
  299. package/Libraries/Text/TextAncestorContext.js +23 -0
  300. package/Libraries/Text/TextNativeComponent.js +4 -0
  301. package/Libraries/Text/TextProps.js +2 -5
  302. package/Libraries/Text/TextProps.windows.js +2 -6
  303. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
  304. package/Libraries/Types/CodegenTypes.js +1 -1
  305. package/Libraries/Types/CodegenTypesNamespace.js +2 -1
  306. package/Libraries/Types/CoreEventTypes.d.ts +4 -0
  307. package/Libraries/Types/ReactDevToolsTypes.js +0 -1
  308. package/Libraries/Utilities/Appearance.js +1 -1
  309. package/Libraries/Utilities/BackHandler.js.flow +1 -1
  310. package/Libraries/Utilities/DevLoadingView.js +1 -1
  311. package/Libraries/Utilities/DeviceInfo.js +1 -1
  312. package/Libraries/Utilities/Dimensions.js +1 -1
  313. package/Libraries/Utilities/HMRClient.js +13 -3
  314. package/Libraries/Utilities/HMRClientProdShim.js +1 -1
  315. package/Libraries/Utilities/NativeAppearance.js +1 -0
  316. package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
  317. package/Libraries/Utilities/NativeDeviceInfo.js +1 -2
  318. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  319. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  320. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  321. package/Libraries/Utilities/PerformanceLoggerContext.js +2 -2
  322. package/Libraries/Utilities/PixelRatio.js +1 -1
  323. package/Libraries/Utilities/Platform.android.js +2 -5
  324. package/Libraries/Utilities/Platform.ios.js +2 -5
  325. package/Libraries/Utilities/Platform.js +1 -1
  326. package/Libraries/Utilities/Platform.js.flow +2 -2
  327. package/Libraries/Utilities/Platform.windows.js +2 -5
  328. package/Libraries/Utilities/PlatformTypes.js +2 -2
  329. package/Libraries/Utilities/RCTLog.js +1 -1
  330. package/Libraries/Utilities/SceneTracker.js +1 -1
  331. package/Libraries/Utilities/binaryToBase64.js +1 -1
  332. package/Libraries/Utilities/codegenNativeCommands.js +5 -3
  333. package/Libraries/Utilities/codegenNativeComponent.js +4 -4
  334. package/Libraries/Utilities/createPerformanceLogger.js +27 -20
  335. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -1
  336. package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
  337. package/Libraries/Utilities/differ/deepDiffer.js +1 -1
  338. package/Libraries/Utilities/differ/insetsDiffer.js +1 -1
  339. package/Libraries/Utilities/differ/matricesDiffer.js +1 -1
  340. package/Libraries/Utilities/differ/pointsDiffer.js +1 -1
  341. package/Libraries/Utilities/logError.js +1 -1
  342. package/Libraries/Utilities/mapWithSeparator.js +1 -1
  343. package/Libraries/Utilities/stringifySafe.js +1 -1
  344. package/Libraries/Utilities/stringifyViewConfig.js +1 -1
  345. package/Libraries/Utilities/useColorScheme.js +1 -1
  346. package/Libraries/Utilities/useWindowDimensions.js +1 -1
  347. package/Libraries/Utilities/warnOnce.js +1 -1
  348. package/Libraries/Vibration/NativeVibration.js +1 -0
  349. package/Libraries/Vibration/Vibration.js +1 -2
  350. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
  351. package/Libraries/WebSocket/WebSocket.js +1 -1
  352. package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
  353. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  354. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  355. package/Libraries/vendor/emitter/EventEmitter.js +6 -6
  356. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +3 -3
  357. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.h +3 -3
  358. package/Microsoft.ReactNative/Fabric/AbiShadowNode.cpp +2 -1
  359. package/Microsoft.ReactNative/Fabric/AbiShadowNode.h +2 -2
  360. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +3 -3
  361. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.cpp +2 -1
  362. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.h +1 -1
  363. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +18 -7
  364. package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.cpp +169 -0
  365. package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.h +42 -0
  366. package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +1 -1
  367. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +68 -1
  368. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +9 -0
  369. package/Microsoft.ReactNative/Fabric/Composition/TextDrawing.cpp +5 -37
  370. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +3 -3
  371. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +6 -6
  372. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +21 -17
  373. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -4
  374. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +19 -0
  375. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +76 -0
  376. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -1
  377. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
  378. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +6 -0
  379. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +0 -17
  380. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.h +0 -3
  381. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +41 -37
  382. package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.cpp +75 -24
  383. package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.h +4 -25
  384. package/Microsoft.ReactNative/JsiApi.cpp +1 -1
  385. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -0
  386. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +3 -0
  387. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +0 -2
  388. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -1
  389. package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -3
  390. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +27 -11
  391. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +19 -2
  392. package/Microsoft.ReactNative/QuirkSettings.cpp +16 -0
  393. package/Microsoft.ReactNative/QuirkSettings.h +3 -0
  394. package/Microsoft.ReactNative/QuirkSettings.idl +5 -0
  395. package/Microsoft.ReactNative/ReactHost/DebuggerNotifications.h +54 -0
  396. package/Microsoft.ReactNative/ReactHost/React.h +11 -4
  397. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +166 -29
  398. package/Microsoft.ReactNative/ReactHost/ReactHost.h +22 -4
  399. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +68 -52
  400. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  401. package/Microsoft.ReactNative/ReactRootView.cpp +108 -0
  402. package/Microsoft.ReactNative/ReactRootView.h +6 -0
  403. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +1 -0
  404. package/Microsoft.ReactNative/Views/DevMenu.cpp +1 -1
  405. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +36 -8
  406. package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +6 -2
  407. package/Microsoft.ReactNative/Views/ViewManager.h +0 -1
  408. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +9 -1
  409. package/Microsoft.ReactNative.Cxx/JSI/decorator.h +41 -0
  410. package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +16 -0
  411. package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +125 -0
  412. package/Microsoft.ReactNative.Cxx/JSI/jsi.h +167 -1
  413. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +2 -2
  414. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +110 -38
  415. package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +5 -5
  416. package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +0 -2
  417. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.h +0 -19
  418. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Base.h +45 -34
  419. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +1 -1
  420. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +1 -0
  421. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +36 -33
  422. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Number.h +10 -10
  423. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +14 -8
  424. package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +44 -31
  425. package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +13 -14
  426. package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +19 -4
  427. package/Microsoft.ReactNative.Cxx/node-api/node_api.h +270 -0
  428. package/Microsoft.ReactNative.Cxx/node-api/node_api_types.h +52 -0
  429. package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +13 -4
  430. package/PropertySheets/External/Microsoft.ReactNative.Cpp.Dependencies.props +10 -0
  431. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  432. package/PropertySheets/JSEngine.props +1 -1
  433. package/PropertySheets/React.Cpp.props +6 -4
  434. package/README.md +1 -1
  435. package/ReactCommon/ReactCommon.vcxproj +29 -21
  436. package/ReactCommon/ReactCommon.vcxproj.filters +36 -13
  437. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +5 -0
  438. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +6 -2
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +111 -7
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +57 -4
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +17 -1
  442. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/network/HttpUtils.cpp +175 -0
  443. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +1 -0
  444. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.cpp +69 -56
  445. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.h +35 -18
  446. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +445 -0
  447. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +92 -0
  448. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +35 -0
  449. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityProps.cpp +37 -1
  450. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +250 -80
  451. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ShadowNode.cpp +528 -0
  452. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/css/CSSTokenizer.h +1 -2
  453. package/ReactCommon/TEMP_UntilReactCommonUpdate/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +9 -12
  454. package/ReactCommon/cgmanifest.json +1 -1
  455. package/Scripts/Analyze-Crash.ps1 +87 -3
  456. package/Scripts/OfficeReact.Win32.nuspec +0 -1
  457. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -0
  458. package/Scripts/Tfs/Start-TestServers.ps1 +2 -1
  459. package/Scripts/creaternwapp.cmd +10 -6
  460. package/Scripts/rnw-dependencies.ps1 +33 -4
  461. package/Shared/CreateModules.h +0 -35
  462. package/Shared/DevServerHelper.h +13 -3
  463. package/Shared/DevSettings.h +6 -5
  464. package/Shared/DevSupportManager.cpp +79 -20
  465. package/Shared/DevSupportManager.h +7 -19
  466. package/Shared/Hermes/HermesRuntimeAgentDelegate.cpp +99 -0
  467. package/Shared/Hermes/HermesRuntimeAgentDelegate.h +81 -0
  468. package/Shared/Hermes/HermesRuntimeTargetDelegate.cpp +274 -0
  469. package/Shared/Hermes/HermesRuntimeTargetDelegate.h +77 -0
  470. package/Shared/HermesRuntimeHolder.cpp +29 -111
  471. package/Shared/HermesRuntimeHolder.h +214 -32
  472. package/Shared/IDevSupportManager.h +5 -2
  473. package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.cpp +108 -0
  474. package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.h +19 -0
  475. package/Shared/Inspector/ReactInspectorThread.h +18 -0
  476. package/Shared/JSI/RuntimeHolder.h +5 -2
  477. package/Shared/Modules/BlobModule.cpp +0 -90
  478. package/Shared/Modules/BlobModule.h +0 -40
  479. package/Shared/Modules/FileReaderModule.cpp +0 -104
  480. package/Shared/Modules/FileReaderModule.h +0 -38
  481. package/Shared/Modules/HttpModule.cpp +0 -172
  482. package/Shared/Modules/HttpModule.h +0 -47
  483. package/Shared/Modules/WebSocketModule.cpp +0 -287
  484. package/Shared/Modules/WebSocketModule.h +1 -94
  485. package/Shared/OInstance.cpp +45 -139
  486. package/Shared/OInstance.h +0 -1
  487. package/Shared/Shared.vcxitems +33 -32
  488. package/Shared/Shared.vcxitems.filters +38 -51
  489. package/Shared/TurboModuleManager.cpp +0 -1
  490. package/codegen/NativeDOMSpec.g.h +6 -0
  491. package/codegen/NativeDeviceInfoSpec.g.h +2 -0
  492. package/codegen/NativeIntersectionObserverSpec.g.h +19 -5
  493. package/codegen/NativeMutationObserverSpec.g.h +4 -4
  494. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +159 -93
  495. package/codegen/react/components/rnwcore/EventEmitters.cpp +25 -0
  496. package/codegen/react/components/rnwcore/EventEmitters.h +25 -0
  497. package/codegen/react/components/rnwcore/ModalHostView.g.h +4 -0
  498. package/codegen/react/components/rnwcore/Props.cpp +535 -24
  499. package/codegen/react/components/rnwcore/Props.h +138 -0
  500. package/codegen/react/components/rnwcore/States.h +9 -78
  501. package/codegen/react/components/rnwcore/VirtualView.g.h +226 -0
  502. package/codegen/rnwcoreJSI-generated.cpp +101 -31
  503. package/codegen/rnwcoreJSI.h +169 -88
  504. package/include/Shared/II18nModule.h +0 -1
  505. package/index.js +22 -2
  506. package/index.windows.js +131 -221
  507. package/interface.js +1 -1
  508. package/jest/MockNativeMethods.js +9 -3
  509. package/jest/RefreshControlMock.js +32 -0
  510. package/jest/assetFileTransformer.js +1 -0
  511. package/jest/local-setup.js +4 -3
  512. package/jest/mock.js +39 -0
  513. package/jest/mockComponent.js +47 -17
  514. package/jest/mockNativeComponent.js +26 -15
  515. package/jest/mocks/AccessibilityInfo.js +62 -0
  516. package/jest/mocks/ActivityIndicator.js +23 -0
  517. package/jest/mocks/AppState.js +19 -0
  518. package/jest/mocks/Clipboard.js +16 -0
  519. package/jest/mocks/Image.js +23 -0
  520. package/jest/mocks/InitializeCore.js +9 -0
  521. package/jest/mocks/Linking.js +28 -0
  522. package/jest/mocks/Modal.js +33 -0
  523. package/jest/mocks/NativeComponentRegistry.js +30 -0
  524. package/jest/mocks/NativeModules.js +239 -0
  525. package/jest/mocks/RefreshControl.js +31 -0
  526. package/jest/mocks/RendererProxy.js +45 -0
  527. package/jest/mocks/ScrollView.js +58 -0
  528. package/jest/mocks/Text.js +27 -0
  529. package/jest/mocks/TextInput.js +32 -0
  530. package/jest/mocks/UIManager.js +60 -0
  531. package/jest/mocks/Vibration.js +16 -0
  532. package/jest/mocks/View.js +27 -0
  533. package/jest/mocks/ViewNativeComponent.js +23 -0
  534. package/jest/mocks/requireNativeComponent.js +22 -0
  535. package/{Libraries/Utilities/infoLog.js → jest/mocks/useColorScheme.js} +7 -9
  536. package/jest/react-native-env.js +1 -0
  537. package/jest/renderer.js +1 -2
  538. package/jest/resolver.js +1 -0
  539. package/jest/setup.js +64 -449
  540. package/package.json +24 -24
  541. package/src/private/animated/NativeAnimatedHelper.js +8 -1
  542. package/src/private/animated/createAnimatedPropsHook.js +14 -4
  543. package/src/private/animated/createAnimatedPropsMemoHook.js +2 -3
  544. package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
  545. package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
  546. package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
  547. package/src/private/components/virtualview/VirtualView.js +145 -0
  548. package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
  549. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +1 -1
  550. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +1 -1
  551. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +1 -1
  552. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  553. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +1 -1
  554. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +1 -1
  555. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -1
  556. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +1 -1
  557. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +1 -1
  558. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  559. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +1 -1
  560. package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +1 -1
  561. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  562. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +1 -1
  563. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
  564. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
  565. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
  566. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.windows.js +8 -9
  567. package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
  568. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
  569. package/src/private/featureflags/ReactNativeFeatureFlags.js +88 -8
  570. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -0
  571. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +15 -3
  572. package/src/private/renderer/errorhandling/ErrorHandlers.js +1 -1
  573. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
  574. package/src/private/setup/setUpPerformanceObserver.js +7 -0
  575. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +8 -5
  576. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +4 -4
  577. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +4 -4
  578. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +4 -4
  579. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +10 -7
  580. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +5 -4
  581. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +7 -4
  582. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +10 -7
  583. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +9 -6
  584. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +15 -6
  585. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +9 -6
  586. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +5 -5
  587. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +4 -4
  588. package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +1 -0
  589. package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
  590. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
  591. package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +1 -1
  592. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +9 -6
  593. package/src/private/styles/composeStyles.js +5 -12
  594. package/src/private/types/HostInstance.js +1 -1
  595. package/src/private/webapis/dom/events/Event.js +3 -0
  596. package/src/private/webapis/dom/events/EventTarget.js +3 -0
  597. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +1 -1
  598. package/src/private/webapis/dom/nodes/ReactNativeElement.js +7 -24
  599. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +1 -1
  600. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  601. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +4 -2
  602. package/src/private/webapis/dom/nodes/ReadOnlyText.js +1 -1
  603. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +1 -1
  604. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  605. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  606. package/src/private/webapis/dom/nodes/internals/Traversal.js +1 -1
  607. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
  608. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -1
  609. package/src/private/webapis/dom/oldstylecollections/NodeList.js +4 -1
  610. package/src/private/webapis/errors/DOMException.js +166 -0
  611. package/src/private/webapis/geometry/DOMRect.js +5 -0
  612. package/src/private/webapis/geometry/DOMRectList.js +4 -1
  613. package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
  614. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +4 -2
  615. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +15 -7
  616. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
  617. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +83 -18
  618. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +12 -0
  619. package/src/private/webapis/mutationobserver/MutationObserver.js +13 -38
  620. package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
  621. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +7 -29
  622. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +1 -4
  623. package/src/private/webapis/performance/EventTiming.js +1 -1
  624. package/src/private/webapis/performance/LongTasks.js +1 -1
  625. package/src/private/webapis/performance/MemoryInfo.js +4 -1
  626. package/src/private/webapis/performance/Performance.js +20 -9
  627. package/src/private/webapis/performance/PerformanceEntry.js +5 -1
  628. package/src/private/webapis/performance/PerformanceObserver.js +32 -28
  629. package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
  630. package/src/private/webapis/performance/ResourceTiming.js +108 -0
  631. package/src/private/webapis/performance/UserTiming.js +1 -1
  632. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +50 -33
  633. package/src/private/webapis/performance/internals/Utilities.js +1 -1
  634. package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
  635. package/src/private/webapis/structuredClone/structuredClone.js +233 -0
  636. package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
  637. package/src/private/webapis/webidl/PlatformObjects.js +59 -0
  638. package/templates/cpp-lib/example/metro.config.js +1 -1
  639. package/templates/cpp-lib/template.config.js +24 -0
  640. package/templates/cpp-lib/windows/MyLib/MyLib.h +20 -1
  641. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +0 -1
  642. package/types/modules/Devtools.d.ts +23 -9
  643. package/Libraries/BugReporting/BugReporting.js +0 -140
  644. package/Libraries/BugReporting/NativeBugReporting.js +0 -13
  645. package/Libraries/BugReporting/dumpReactTree.js +0 -151
  646. package/Libraries/BugReporting/getReactData.js +0 -187
  647. package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -88
  648. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +0 -78
  649. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +0 -196
  650. package/ReactCommon/TEMP_UntilReactCommonUpdate/jserrorhandler/JsErrorHandler.cpp +0 -429
  651. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.cpp +0 -45
  652. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.h +0 -91
  653. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/CullingContext.cpp +0 -49
  654. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.cpp +0 -191
  655. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +0 -670
  656. package/Shared/InspectorPackagerConnection.cpp +0 -232
  657. package/Shared/InspectorPackagerConnection.h +0 -61
  658. package/Shared/Modules/ExceptionsManagerModule.cpp +0 -209
  659. package/Shared/Modules/ExceptionsManagerModule.h +0 -32
  660. package/Shared/Modules/I18nModule.cpp +0 -36
  661. package/Shared/Modules/I18nModule.h +0 -28
  662. package/Shared/Modules/NetworkingModule.cpp +0 -432
  663. package/Shared/Modules/NetworkingModule.h +0 -34
  664. package/Shared/Modules/PlatformConstantsModule.cpp +0 -60
  665. package/Shared/Modules/PlatformConstantsModule.h +0 -23
  666. package/Shared/Modules/SourceCodeModule.cpp +0 -35
  667. package/Shared/Modules/SourceCodeModule.h +0 -27
  668. package/Shared/Modules/StatusBarManagerModule.cpp +0 -25
  669. package/Shared/Modules/StatusBarManagerModule.h +0 -19
  670. package/codegen/NativeBugReportingSpec.g.h +0 -41
  671. package/jest/mockModal.js +0 -32
  672. package/jest/mockScrollView.js +0 -35
  673. package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +0 -20
  674. /package/Shared/{HermesSamplingProfiler.cpp → Hermes/HermesSamplingProfiler.cpp} +0 -0
  675. /package/Shared/{HermesSamplingProfiler.h → Hermes/HermesSamplingProfiler.h} +0 -0
@@ -17,6 +17,23 @@
17
17
 
18
18
  namespace facebook::react {
19
19
 
20
+ class VirtualViewProps final : public ViewProps {
21
+ public:
22
+ VirtualViewProps() = default;
23
+ VirtualViewProps(const PropsParserContext& context, const VirtualViewProps &sourceProps, const RawProps &rawProps);
24
+
25
+ #pragma mark - Props
26
+
27
+ bool initialHidden{false};
28
+ int renderState{0};
29
+
30
+ #ifdef RN_SERIALIZABLE_STATE
31
+ ComponentName getDiffPropsImplementationTarget() const override;
32
+
33
+ folly::dynamic getDiffProps(const Props* prevProps) const override;
34
+ #endif
35
+ };
36
+
20
37
  enum class ActivityIndicatorViewSize { Small, Large };
21
38
 
22
39
  static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ActivityIndicatorViewSize &result) {
@@ -33,6 +50,12 @@ static inline std::string toString(const ActivityIndicatorViewSize &value) {
33
50
  }
34
51
  }
35
52
 
53
+ #ifdef RN_SERIALIZABLE_STATE
54
+ static inline folly::dynamic toDynamic(const ActivityIndicatorViewSize &value) {
55
+ return toString(value);
56
+ }
57
+ #endif
58
+
36
59
  class ActivityIndicatorViewProps final : public ViewProps {
37
60
  public:
38
61
  ActivityIndicatorViewProps() = default;
@@ -44,6 +67,12 @@ class ActivityIndicatorViewProps final : public ViewProps {
44
67
  bool animating{true};
45
68
  SharedColor color{};
46
69
  ActivityIndicatorViewSize size{ActivityIndicatorViewSize::Small};
70
+
71
+ #ifdef RN_SERIALIZABLE_STATE
72
+ ComponentName getDiffPropsImplementationTarget() const override;
73
+
74
+ folly::dynamic getDiffProps(const Props* prevProps) const override;
75
+ #endif
47
76
  };
48
77
 
49
78
  enum class AndroidDrawerLayoutKeyboardDismissMode { None, OnDrag };
@@ -61,6 +90,12 @@ static inline std::string toString(const AndroidDrawerLayoutKeyboardDismissMode
61
90
  case AndroidDrawerLayoutKeyboardDismissMode::OnDrag: return "on-drag";
62
91
  }
63
92
  }
93
+
94
+ #ifdef RN_SERIALIZABLE_STATE
95
+ static inline folly::dynamic toDynamic(const AndroidDrawerLayoutKeyboardDismissMode &value) {
96
+ return toString(value);
97
+ }
98
+ #endif
64
99
  enum class AndroidDrawerLayoutDrawerPosition { Left, Right };
65
100
 
66
101
  static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, AndroidDrawerLayoutDrawerPosition &result) {
@@ -76,6 +111,12 @@ static inline std::string toString(const AndroidDrawerLayoutDrawerPosition &valu
76
111
  case AndroidDrawerLayoutDrawerPosition::Right: return "right";
77
112
  }
78
113
  }
114
+
115
+ #ifdef RN_SERIALIZABLE_STATE
116
+ static inline folly::dynamic toDynamic(const AndroidDrawerLayoutDrawerPosition &value) {
117
+ return toString(value);
118
+ }
119
+ #endif
79
120
  enum class AndroidDrawerLayoutDrawerLockMode { Unlocked, LockedClosed, LockedOpen };
80
121
 
81
122
  static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, AndroidDrawerLayoutDrawerLockMode &result) {
@@ -94,6 +135,12 @@ static inline std::string toString(const AndroidDrawerLayoutDrawerLockMode &valu
94
135
  }
95
136
  }
96
137
 
138
+ #ifdef RN_SERIALIZABLE_STATE
139
+ static inline folly::dynamic toDynamic(const AndroidDrawerLayoutDrawerLockMode &value) {
140
+ return toString(value);
141
+ }
142
+ #endif
143
+
97
144
  class AndroidDrawerLayoutProps final : public ViewProps {
98
145
  public:
99
146
  AndroidDrawerLayoutProps() = default;
@@ -107,6 +154,12 @@ class AndroidDrawerLayoutProps final : public ViewProps {
107
154
  Float drawerWidth{};
108
155
  AndroidDrawerLayoutDrawerLockMode drawerLockMode{AndroidDrawerLayoutDrawerLockMode::Unlocked};
109
156
  SharedColor statusBarBackgroundColor{};
157
+
158
+ #ifdef RN_SERIALIZABLE_STATE
159
+ ComponentName getDiffPropsImplementationTarget() const override;
160
+
161
+ folly::dynamic getDiffProps(const Props* prevProps) const override;
162
+ #endif
110
163
  };
111
164
 
112
165
  class AndroidHorizontalScrollContentViewProps final : public ViewProps {
@@ -117,6 +170,12 @@ class AndroidHorizontalScrollContentViewProps final : public ViewProps {
117
170
  #pragma mark - Props
118
171
 
119
172
  bool removeClippedSubviews{false};
173
+
174
+ #ifdef RN_SERIALIZABLE_STATE
175
+ ComponentName getDiffPropsImplementationTarget() const override;
176
+
177
+ folly::dynamic getDiffProps(const Props* prevProps) const override;
178
+ #endif
120
179
  };
121
180
 
122
181
  enum class AndroidSwipeRefreshLayoutSize { Default, Large };
@@ -135,6 +194,12 @@ static inline std::string toString(const AndroidSwipeRefreshLayoutSize &value) {
135
194
  }
136
195
  }
137
196
 
197
+ #ifdef RN_SERIALIZABLE_STATE
198
+ static inline folly::dynamic toDynamic(const AndroidSwipeRefreshLayoutSize &value) {
199
+ return toString(value);
200
+ }
201
+ #endif
202
+
138
203
  class AndroidSwipeRefreshLayoutProps final : public ViewProps {
139
204
  public:
140
205
  AndroidSwipeRefreshLayoutProps() = default;
@@ -148,6 +213,12 @@ class AndroidSwipeRefreshLayoutProps final : public ViewProps {
148
213
  AndroidSwipeRefreshLayoutSize size{AndroidSwipeRefreshLayoutSize::Default};
149
214
  Float progressViewOffset{0.0};
150
215
  bool refreshing{false};
216
+
217
+ #ifdef RN_SERIALIZABLE_STATE
218
+ ComponentName getDiffPropsImplementationTarget() const override;
219
+
220
+ folly::dynamic getDiffProps(const Props* prevProps) const override;
221
+ #endif
151
222
  };
152
223
 
153
224
  class AndroidSwitchProps final : public ViewProps {
@@ -166,6 +237,12 @@ class AndroidSwitchProps final : public ViewProps {
166
237
  bool on{false};
167
238
  SharedColor thumbTintColor{};
168
239
  SharedColor trackTintColor{};
240
+
241
+ #ifdef RN_SERIALIZABLE_STATE
242
+ ComponentName getDiffPropsImplementationTarget() const override;
243
+
244
+ folly::dynamic getDiffProps(const Props* prevProps) const override;
245
+ #endif
169
246
  };
170
247
 
171
248
  class DebuggingOverlayProps final : public ViewProps {
@@ -176,6 +253,12 @@ class DebuggingOverlayProps final : public ViewProps {
176
253
  #pragma mark - Props
177
254
 
178
255
 
256
+
257
+ #ifdef RN_SERIALIZABLE_STATE
258
+ ComponentName getDiffPropsImplementationTarget() const override;
259
+
260
+ folly::dynamic getDiffProps(const Props* prevProps) const override;
261
+ #endif
179
262
  };
180
263
 
181
264
  class AndroidProgressBarProps final : public ViewProps {
@@ -192,6 +275,12 @@ class AndroidProgressBarProps final : public ViewProps {
192
275
  bool animating{true};
193
276
  SharedColor color{};
194
277
  std::string testID{""};
278
+
279
+ #ifdef RN_SERIALIZABLE_STATE
280
+ ComponentName getDiffPropsImplementationTarget() const override;
281
+
282
+ folly::dynamic getDiffProps(const Props* prevProps) const override;
283
+ #endif
195
284
  };
196
285
 
197
286
  class PullToRefreshViewProps final : public ViewProps {
@@ -206,6 +295,12 @@ class PullToRefreshViewProps final : public ViewProps {
206
295
  std::string title{};
207
296
  Float progressViewOffset{0.0};
208
297
  bool refreshing{false};
298
+
299
+ #ifdef RN_SERIALIZABLE_STATE
300
+ ComponentName getDiffPropsImplementationTarget() const override;
301
+
302
+ folly::dynamic getDiffProps(const Props* prevProps) const override;
303
+ #endif
209
304
  };
210
305
 
211
306
  class InputAccessoryProps final : public ViewProps {
@@ -216,6 +311,12 @@ class InputAccessoryProps final : public ViewProps {
216
311
  #pragma mark - Props
217
312
 
218
313
  SharedColor backgroundColor{};
314
+
315
+ #ifdef RN_SERIALIZABLE_STATE
316
+ ComponentName getDiffPropsImplementationTarget() const override;
317
+
318
+ folly::dynamic getDiffProps(const Props* prevProps) const override;
319
+ #endif
219
320
  };
220
321
 
221
322
  enum class ModalHostViewAnimationType { None, Slide, Fade };
@@ -235,6 +336,12 @@ static inline std::string toString(const ModalHostViewAnimationType &value) {
235
336
  case ModalHostViewAnimationType::Fade: return "fade";
236
337
  }
237
338
  }
339
+
340
+ #ifdef RN_SERIALIZABLE_STATE
341
+ static inline folly::dynamic toDynamic(const ModalHostViewAnimationType &value) {
342
+ return toString(value);
343
+ }
344
+ #endif
238
345
  enum class ModalHostViewPresentationStyle { FullScreen, PageSheet, FormSheet, OverFullScreen };
239
346
 
240
347
  static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ModalHostViewPresentationStyle &result) {
@@ -254,6 +361,12 @@ static inline std::string toString(const ModalHostViewPresentationStyle &value)
254
361
  case ModalHostViewPresentationStyle::OverFullScreen: return "overFullScreen";
255
362
  }
256
363
  }
364
+
365
+ #ifdef RN_SERIALIZABLE_STATE
366
+ static inline folly::dynamic toDynamic(const ModalHostViewPresentationStyle &value) {
367
+ return toString(value);
368
+ }
369
+ #endif
257
370
  using ModalHostViewSupportedOrientationsMask = uint32_t;
258
371
 
259
372
  struct ModalHostViewSupportedOrientationsMaskWrapped {
@@ -353,9 +466,16 @@ class ModalHostViewProps final : public ViewProps {
353
466
  bool hardwareAccelerated{false};
354
467
  bool visible{false};
355
468
  bool animated{false};
469
+ bool allowSwipeDismissal{false};
356
470
  ModalHostViewSupportedOrientationsMask supportedOrientations{static_cast<ModalHostViewSupportedOrientationsMask>(ModalHostViewSupportedOrientations::Portrait)};
357
471
  int identifier{0};
358
472
  std::string title{};
473
+
474
+ #ifdef RN_SERIALIZABLE_STATE
475
+ ComponentName getDiffPropsImplementationTarget() const override;
476
+
477
+ folly::dynamic getDiffProps(const Props* prevProps) const override;
478
+ #endif
359
479
  };
360
480
 
361
481
  class SafeAreaViewProps final : public ViewProps {
@@ -366,6 +486,12 @@ class SafeAreaViewProps final : public ViewProps {
366
486
  #pragma mark - Props
367
487
 
368
488
 
489
+
490
+ #ifdef RN_SERIALIZABLE_STATE
491
+ ComponentName getDiffPropsImplementationTarget() const override;
492
+
493
+ folly::dynamic getDiffProps(const Props* prevProps) const override;
494
+ #endif
369
495
  };
370
496
 
371
497
  class SwitchProps final : public ViewProps {
@@ -383,6 +509,12 @@ class SwitchProps final : public ViewProps {
383
509
  SharedColor thumbColor{};
384
510
  SharedColor trackColorForFalse{};
385
511
  SharedColor trackColorForTrue{};
512
+
513
+ #ifdef RN_SERIALIZABLE_STATE
514
+ ComponentName getDiffPropsImplementationTarget() const override;
515
+
516
+ folly::dynamic getDiffProps(const Props* prevProps) const override;
517
+ #endif
386
518
  };
387
519
 
388
520
  class UnimplementedNativeViewProps final : public ViewProps {
@@ -393,6 +525,12 @@ class UnimplementedNativeViewProps final : public ViewProps {
393
525
  #pragma mark - Props
394
526
 
395
527
  std::string name{""};
528
+
529
+ #ifdef RN_SERIALIZABLE_STATE
530
+ ComponentName getDiffPropsImplementationTarget() const override;
531
+
532
+ folly::dynamic getDiffProps(const Props* prevProps) const override;
533
+ #endif
396
534
  };
397
535
 
398
536
  } // namespace facebook::react
@@ -8,94 +8,25 @@
8
8
  */
9
9
  #pragma once
10
10
 
11
- #ifdef ANDROID
11
+ #include <react/renderer/core/StateData.h>
12
+ #ifdef RN_SERIALIZABLE_STATE
12
13
  #include <folly/dynamic.h>
13
14
  #endif
14
15
 
15
16
  namespace facebook::react {
16
17
 
17
- class ActivityIndicatorViewState {
18
- public:
19
- ActivityIndicatorViewState() = default;
18
+ using ActivityIndicatorViewState = StateData;
20
19
 
21
- #ifdef ANDROID
22
- ActivityIndicatorViewState(ActivityIndicatorViewState const &previousState, folly::dynamic data){};
23
- folly::dynamic getDynamic() const {
24
- return {};
25
- };
26
- #endif
27
- };
28
-
29
- class AndroidDrawerLayoutState {
30
- public:
31
- AndroidDrawerLayoutState() = default;
32
-
33
- #ifdef ANDROID
34
- AndroidDrawerLayoutState(AndroidDrawerLayoutState const &previousState, folly::dynamic data){};
35
- folly::dynamic getDynamic() const {
36
- return {};
37
- };
38
- #endif
39
- };
40
-
41
- class AndroidSwipeRefreshLayoutState {
42
- public:
43
- AndroidSwipeRefreshLayoutState() = default;
44
-
45
- #ifdef ANDROID
46
- AndroidSwipeRefreshLayoutState(AndroidSwipeRefreshLayoutState const &previousState, folly::dynamic data){};
47
- folly::dynamic getDynamic() const {
48
- return {};
49
- };
50
- #endif
51
- };
20
+ using AndroidDrawerLayoutState = StateData;
52
21
 
53
- class DebuggingOverlayState {
54
- public:
55
- DebuggingOverlayState() = default;
22
+ using AndroidSwipeRefreshLayoutState = StateData;
56
23
 
57
- #ifdef ANDROID
58
- DebuggingOverlayState(DebuggingOverlayState const &previousState, folly::dynamic data){};
59
- folly::dynamic getDynamic() const {
60
- return {};
61
- };
62
- #endif
63
- };
64
-
65
- class PullToRefreshViewState {
66
- public:
67
- PullToRefreshViewState() = default;
24
+ using DebuggingOverlayState = StateData;
68
25
 
69
- #ifdef ANDROID
70
- PullToRefreshViewState(PullToRefreshViewState const &previousState, folly::dynamic data){};
71
- folly::dynamic getDynamic() const {
72
- return {};
73
- };
74
- #endif
75
- };
26
+ using PullToRefreshViewState = StateData;
76
27
 
77
- class SwitchState {
78
- public:
79
- SwitchState() = default;
28
+ using SwitchState = StateData;
80
29
 
81
- #ifdef ANDROID
82
- SwitchState(SwitchState const &previousState, folly::dynamic data){};
83
- folly::dynamic getDynamic() const {
84
- return {};
85
- };
86
- #endif
87
- };
88
-
89
- class UnimplementedNativeViewState {
90
- public:
91
- UnimplementedNativeViewState() = default;
92
-
93
- #ifdef ANDROID
94
- UnimplementedNativeViewState(UnimplementedNativeViewState const &previousState, folly::dynamic data){};
95
- folly::dynamic getDynamic() const {
96
- return {};
97
- };
98
- #endif
99
- };
30
+ using UnimplementedNativeViewState = StateData;
100
31
 
101
32
  } // namespace facebook::react
@@ -0,0 +1,226 @@
1
+
2
+ /*
3
+ * This file is auto-generated from VirtualViewNativeComponent spec file in flow / TypeScript.
4
+ */
5
+ // clang-format off
6
+ #pragma once
7
+
8
+ #include <NativeModules.h>
9
+
10
+ #ifdef RNW_NEW_ARCH
11
+ #include <JSValueComposition.h>
12
+
13
+ #include <winrt/Microsoft.ReactNative.Composition.h>
14
+ #include <winrt/Microsoft.UI.Composition.h>
15
+ #endif // #ifdef RNW_NEW_ARCH
16
+
17
+ #ifdef RNW_NEW_ARCH
18
+
19
+ namespace Microsoft::ReactNativeSpecs {
20
+
21
+ REACT_STRUCT(VirtualViewProps)
22
+ struct VirtualViewProps : winrt::implements<VirtualViewProps, winrt::Microsoft::ReactNative::IComponentProps> {
23
+ VirtualViewProps(winrt::Microsoft::ReactNative::ViewProps props, const winrt::Microsoft::ReactNative::IComponentProps& cloneFrom)
24
+ : ViewProps(props)
25
+ {
26
+ if (cloneFrom) {
27
+ auto cloneFromProps = cloneFrom.as<VirtualViewProps>();
28
+ initialHidden = cloneFromProps->initialHidden;
29
+ renderState = cloneFromProps->renderState;
30
+ }
31
+ }
32
+
33
+ void SetProp(uint32_t hash, winrt::hstring propName, winrt::Microsoft::ReactNative::IJSValueReader value) noexcept {
34
+ winrt::Microsoft::ReactNative::ReadProp(hash, propName, value, *this);
35
+ }
36
+
37
+ REACT_FIELD(initialHidden)
38
+ std::optional<bool> initialHidden{};
39
+
40
+ REACT_FIELD(renderState)
41
+ int32_t renderState{};
42
+
43
+ const winrt::Microsoft::ReactNative::ViewProps ViewProps;
44
+ };
45
+
46
+ REACT_STRUCT(VirtualView_OnModeChange)
47
+ struct VirtualView_OnModeChange {
48
+ REACT_FIELD(mode)
49
+ int32_t mode{};
50
+
51
+ REACT_FIELD(targetRect)
52
+ VirtualViewSpec_onModeChange2 targetRect;
53
+
54
+ REACT_FIELD(thresholdRect)
55
+ VirtualViewSpec_onModeChange3 thresholdRect;
56
+ };
57
+
58
+ struct VirtualViewEventEmitter {
59
+ VirtualViewEventEmitter(const winrt::Microsoft::ReactNative::EventEmitter &eventEmitter)
60
+ : m_eventEmitter(eventEmitter) {}
61
+
62
+ using OnModeChange = VirtualView_OnModeChange;
63
+ using OnModeChange2 = VirtualView_OnModeChange2;
64
+ using OnModeChange3 = VirtualView_OnModeChange3;
65
+
66
+ void onModeChange(OnModeChange &value) const {
67
+ m_eventEmitter.DispatchEvent(L"modeChange", [value](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
68
+ winrt::Microsoft::ReactNative::WriteValue(writer, value);
69
+ });
70
+ }
71
+
72
+ private:
73
+ winrt::Microsoft::ReactNative::EventEmitter m_eventEmitter{nullptr};
74
+ };
75
+
76
+ template<typename TUserData>
77
+ struct BaseVirtualView {
78
+
79
+ virtual void UpdateProps(
80
+ const winrt::Microsoft::ReactNative::ComponentView &/*view*/,
81
+ const winrt::com_ptr<VirtualViewProps> &newProps,
82
+ const winrt::com_ptr<VirtualViewProps> &/*oldProps*/) noexcept {
83
+ m_props = newProps;
84
+ }
85
+
86
+ // UpdateLayoutMetrics will only be called if this method is overridden
87
+ virtual void UpdateLayoutMetrics(
88
+ const winrt::Microsoft::ReactNative::ComponentView &/*view*/,
89
+ const winrt::Microsoft::ReactNative::LayoutMetrics &/*newLayoutMetrics*/,
90
+ const winrt::Microsoft::ReactNative::LayoutMetrics &/*oldLayoutMetrics*/) noexcept {
91
+ }
92
+
93
+ // UpdateState will only be called if this method is overridden
94
+ virtual void UpdateState(
95
+ const winrt::Microsoft::ReactNative::ComponentView &/*view*/,
96
+ const winrt::Microsoft::ReactNative::IComponentState &/*newState*/) noexcept {
97
+ }
98
+
99
+ virtual void UpdateEventEmitter(const std::shared_ptr<VirtualViewEventEmitter> &eventEmitter) noexcept {
100
+ m_eventEmitter = eventEmitter;
101
+ }
102
+
103
+ // MountChildComponentView will only be called if this method is overridden
104
+ virtual void MountChildComponentView(const winrt::Microsoft::ReactNative::ComponentView &/*view*/,
105
+ const winrt::Microsoft::ReactNative::MountChildComponentViewArgs &/*args*/) noexcept {
106
+ }
107
+
108
+ // UnmountChildComponentView will only be called if this method is overridden
109
+ virtual void UnmountChildComponentView(const winrt::Microsoft::ReactNative::ComponentView &/*view*/,
110
+ const winrt::Microsoft::ReactNative::UnmountChildComponentViewArgs &/*args*/) noexcept {
111
+ }
112
+
113
+ // Initialize will only be called if this method is overridden
114
+ virtual void Initialize(const winrt::Microsoft::ReactNative::ComponentView &/*view*/) noexcept {
115
+ }
116
+
117
+ // CreateVisual will only be called if this method is overridden
118
+ virtual winrt::Microsoft::UI::Composition::Visual CreateVisual(const winrt::Microsoft::ReactNative::ComponentView &view) noexcept {
119
+ return view.as<winrt::Microsoft::ReactNative::Composition::ComponentView>().Compositor().CreateSpriteVisual();
120
+ }
121
+
122
+ // FinalizeUpdate will only be called if this method is overridden
123
+ virtual void FinalizeUpdate(const winrt::Microsoft::ReactNative::ComponentView &/*view*/,
124
+ winrt::Microsoft::ReactNative::ComponentViewUpdateMask /*mask*/) noexcept {
125
+ }
126
+
127
+
128
+
129
+ const std::shared_ptr<VirtualViewEventEmitter>& EventEmitter() const { return m_eventEmitter; }
130
+ const winrt::com_ptr<VirtualViewProps>& Props() const { return m_props; }
131
+
132
+ private:
133
+ winrt::com_ptr<VirtualViewProps> m_props;
134
+ std::shared_ptr<VirtualViewEventEmitter> m_eventEmitter;
135
+ };
136
+
137
+ template <typename TUserData>
138
+ void RegisterVirtualViewNativeComponent(
139
+ winrt::Microsoft::ReactNative::IReactPackageBuilder const &packageBuilder,
140
+ std::function<void(const winrt::Microsoft::ReactNative::Composition::IReactCompositionViewComponentBuilder&)> builderCallback) noexcept {
141
+ packageBuilder.as<winrt::Microsoft::ReactNative::IReactPackageBuilderFabric>().AddViewComponent(
142
+ L"VirtualView", [builderCallback](winrt::Microsoft::ReactNative::IReactViewComponentBuilder const &builder) noexcept {
143
+ auto compBuilder = builder.as<winrt::Microsoft::ReactNative::Composition::IReactCompositionViewComponentBuilder>();
144
+
145
+ builder.SetCreateProps([](winrt::Microsoft::ReactNative::ViewProps props,
146
+ const winrt::Microsoft::ReactNative::IComponentProps& cloneFrom) noexcept {
147
+ return winrt::make<VirtualViewProps>(props, cloneFrom);
148
+ });
149
+
150
+ builder.SetUpdatePropsHandler([](const winrt::Microsoft::ReactNative::ComponentView &view,
151
+ const winrt::Microsoft::ReactNative::IComponentProps &newProps,
152
+ const winrt::Microsoft::ReactNative::IComponentProps &oldProps) noexcept {
153
+ auto userData = view.UserData().as<TUserData>();
154
+ userData->UpdateProps(view, newProps ? newProps.as<VirtualViewProps>() : nullptr, oldProps ? oldProps.as<VirtualViewProps>() : nullptr);
155
+ });
156
+
157
+ compBuilder.SetUpdateLayoutMetricsHandler([](const winrt::Microsoft::ReactNative::ComponentView &view,
158
+ const winrt::Microsoft::ReactNative::LayoutMetrics &newLayoutMetrics,
159
+ const winrt::Microsoft::ReactNative::LayoutMetrics &oldLayoutMetrics) noexcept {
160
+ auto userData = view.UserData().as<TUserData>();
161
+ userData->UpdateLayoutMetrics(view, newLayoutMetrics, oldLayoutMetrics);
162
+ });
163
+
164
+ builder.SetUpdateEventEmitterHandler([](const winrt::Microsoft::ReactNative::ComponentView &view,
165
+ const winrt::Microsoft::ReactNative::EventEmitter &eventEmitter) noexcept {
166
+ auto userData = view.UserData().as<TUserData>();
167
+ userData->UpdateEventEmitter(std::make_shared<VirtualViewEventEmitter>(eventEmitter));
168
+ });
169
+
170
+ if CONSTEXPR_SUPPORTED_ON_VIRTUAL_FN_ADDRESS (&TUserData::FinalizeUpdate != &BaseVirtualView<TUserData>::FinalizeUpdate) {
171
+ builder.SetFinalizeUpdateHandler([](const winrt::Microsoft::ReactNative::ComponentView &view,
172
+ winrt::Microsoft::ReactNative::ComponentViewUpdateMask mask) noexcept {
173
+ auto userData = view.UserData().as<TUserData>();
174
+ userData->FinalizeUpdate(view, mask);
175
+ });
176
+ }
177
+
178
+ if CONSTEXPR_SUPPORTED_ON_VIRTUAL_FN_ADDRESS (&TUserData::UpdateState != &BaseVirtualView<TUserData>::UpdateState) {
179
+ builder.SetUpdateStateHandler([](const winrt::Microsoft::ReactNative::ComponentView &view,
180
+ const winrt::Microsoft::ReactNative::IComponentState &newState) noexcept {
181
+ auto userData = view.UserData().as<TUserData>();
182
+ userData->UpdateState(view, newState);
183
+ });
184
+ }
185
+
186
+ if CONSTEXPR_SUPPORTED_ON_VIRTUAL_FN_ADDRESS (&TUserData::MountChildComponentView != &BaseVirtualView<TUserData>::MountChildComponentView) {
187
+ builder.SetMountChildComponentViewHandler([](const winrt::Microsoft::ReactNative::ComponentView &view,
188
+ const winrt::Microsoft::ReactNative::MountChildComponentViewArgs &args) noexcept {
189
+ auto userData = view.UserData().as<TUserData>();
190
+ return userData->MountChildComponentView(view, args);
191
+ });
192
+ }
193
+
194
+ if CONSTEXPR_SUPPORTED_ON_VIRTUAL_FN_ADDRESS (&TUserData::UnmountChildComponentView != &BaseVirtualView<TUserData>::UnmountChildComponentView) {
195
+ builder.SetUnmountChildComponentViewHandler([](const winrt::Microsoft::ReactNative::ComponentView &view,
196
+ const winrt::Microsoft::ReactNative::UnmountChildComponentViewArgs &args) noexcept {
197
+ auto userData = view.UserData().as<TUserData>();
198
+ return userData->UnmountChildComponentView(view, args);
199
+ });
200
+ }
201
+
202
+ compBuilder.SetViewComponentViewInitializer([](const winrt::Microsoft::ReactNative::ComponentView &view) noexcept {
203
+ auto userData = winrt::make_self<TUserData>();
204
+ if CONSTEXPR_SUPPORTED_ON_VIRTUAL_FN_ADDRESS (&TUserData::Initialize != &BaseVirtualView<TUserData>::Initialize) {
205
+ userData->Initialize(view);
206
+ }
207
+ view.UserData(*userData);
208
+ });
209
+
210
+ if CONSTEXPR_SUPPORTED_ON_VIRTUAL_FN_ADDRESS (&TUserData::CreateVisual != &BaseVirtualView<TUserData>::CreateVisual) {
211
+ compBuilder.SetCreateVisualHandler([](const winrt::Microsoft::ReactNative::ComponentView &view) noexcept {
212
+ auto userData = view.UserData().as<TUserData>();
213
+ return userData->CreateVisual(view);
214
+ });
215
+ }
216
+
217
+ // Allow app to further customize the builder
218
+ if (builderCallback) {
219
+ builderCallback(compBuilder);
220
+ }
221
+ });
222
+ }
223
+
224
+ } // namespace Microsoft::ReactNativeSpecs
225
+
226
+ #endif // #ifdef RNW_NEW_ARCH