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
@@ -4,19 +4,22 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @flow
7
+ * @flow strict-local
8
8
  * @format
9
9
  */
10
10
 
11
- import type {ImageStyleProp} from '../StyleSheet/StyleSheet';
11
+ import type {ImageStyle, ImageStyleProp} from '../StyleSheet/StyleSheet';
12
12
  import type {RootTag} from '../Types/RootTagTypes';
13
- import type {ImageIOS} from './Image.flow';
14
- import type {ImageProps as ImagePropsType} from './ImageProps';
13
+ import type {AbstractImageIOS, ImageIOS} from './ImageTypes.flow';
15
14
 
15
+ import {createRootTag} from '../ReactNative/RootTag';
16
16
  import flattenStyle from '../StyleSheet/flattenStyle';
17
17
  import StyleSheet from '../StyleSheet/StyleSheet';
18
18
  import ImageAnalyticsTagContext from './ImageAnalyticsTagContext';
19
- import ImageInjection from './ImageInjection';
19
+ import {
20
+ unstable_getImageComponentDecorator,
21
+ useWrapRefWithImageAttachedCallbacks,
22
+ } from './ImageInjection';
20
23
  import {getImageSourcesFromImageProps} from './ImageSourceUtils';
21
24
  import {convertObjectFitToResizeMode} from './ImageUtils';
22
25
  import ImageViewNativeComponent from './ImageViewNativeComponent';
@@ -27,8 +30,8 @@ import * as React from 'react';
27
30
  function getSize(
28
31
  uri: string,
29
32
  success: (width: number, height: number) => void,
30
- failure?: (error: any) => void,
31
- ) {
33
+ failure?: (error: mixed) => void,
34
+ ): void {
32
35
  NativeImageLoaderIOS.getSize(uri)
33
36
  .then(([width, height]) => success(width, height))
34
37
  .catch(
@@ -43,9 +46,9 @@ function getSizeWithHeaders(
43
46
  uri: string,
44
47
  headers: {[string]: string, ...},
45
48
  success: (width: number, height: number) => void,
46
- failure?: (error: any) => void,
47
- ): any {
48
- return NativeImageLoaderIOS.getSizeWithHeaders(uri, headers)
49
+ failure?: (error: mixed) => void,
50
+ ): void {
51
+ NativeImageLoaderIOS.getSizeWithHeaders(uri, headers)
49
52
  .then(function (sizes) {
50
53
  success(sizes.width, sizes.height);
51
54
  })
@@ -61,41 +64,30 @@ function prefetchWithMetadata(
61
64
  url: string,
62
65
  queryRootName: string,
63
66
  rootTag?: ?RootTag,
64
- ): any {
67
+ ): Promise<boolean> {
65
68
  if (NativeImageLoaderIOS.prefetchImageWithMetadata) {
66
69
  // number params like rootTag cannot be nullable before TurboModules is available
67
70
  return NativeImageLoaderIOS.prefetchImageWithMetadata(
68
71
  url,
69
72
  queryRootName,
70
73
  // NOTE: RootTag type
71
- // $FlowFixMe[incompatible-call] RootTag: number is incompatible with RootTag
72
- rootTag ? rootTag : 0,
74
+ rootTag != null ? rootTag : createRootTag(0),
73
75
  );
74
76
  } else {
75
77
  return NativeImageLoaderIOS.prefetchImage(url);
76
78
  }
77
79
  }
78
80
 
79
- function prefetch(url: string): any {
81
+ function prefetch(url: string): Promise<boolean> {
80
82
  return NativeImageLoaderIOS.prefetchImage(url);
81
83
  }
82
84
 
83
85
  async function queryCache(
84
86
  urls: Array<string>,
85
87
  ): Promise<{[string]: 'memory' | 'disk' | 'disk/memory', ...}> {
86
- return await NativeImageLoaderIOS.queryCache(urls);
88
+ return NativeImageLoaderIOS.queryCache(urls);
87
89
  }
88
90
 
89
- export type ImageComponentStatics = $ReadOnly<{|
90
- getSize: typeof getSize,
91
- getSizeWithHeaders: typeof getSizeWithHeaders,
92
- prefetch: typeof prefetch,
93
- prefetchWithMetadata: typeof prefetchWithMetadata,
94
- abortPrefetch?: number => void,
95
- queryCache: typeof queryCache,
96
- resolveAssetSource: typeof resolveAssetSource,
97
- |}>;
98
-
99
91
  /**
100
92
  * A React component for displaying different types of images,
101
93
  * including network images, static resources, temporary local images, and
@@ -103,9 +95,7 @@ export type ImageComponentStatics = $ReadOnly<{|
103
95
  *
104
96
  * See https://reactnative.dev/docs/image
105
97
  */
106
- /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's
107
- * LTI update could not be added via codemod */
108
- const BaseImage = (props: ImagePropsType, forwardedRef) => {
98
+ let BaseImage: AbstractImageIOS = React.forwardRef((props, forwardedRef) => {
109
99
  const source = getImageSourcesFromImageProps(props) || {
110
100
  uri: undefined,
111
101
  width: undefined,
@@ -113,16 +103,23 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
113
103
  };
114
104
 
115
105
  let sources;
116
- let style: ImageStyleProp;
106
+ let style: ImageStyle;
107
+
117
108
  if (Array.isArray(source)) {
118
- // $FlowFixMe[underconstrained-implicit-instantiation]
119
- style = flattenStyle([styles.base, props.style]) || {};
109
+ style =
110
+ flattenStyle<ImageStyleProp>([styles.base, props.style]) ||
111
+ ({}: ImageStyle);
120
112
  sources = source;
121
113
  } else {
122
- // $FlowFixMe[incompatible-type]
123
- const {width = props.width, height = props.height, uri} = source;
124
- // $FlowFixMe[underconstrained-implicit-instantiation]
125
- style = flattenStyle([{width, height}, styles.base, props.style]) || {};
114
+ const {uri} = source;
115
+ const width = source.width ?? props.width;
116
+ const height = source.height ?? props.height;
117
+ style =
118
+ flattenStyle<ImageStyleProp>([
119
+ {width, height},
120
+ styles.base,
121
+ props.style,
122
+ ]) || ({}: ImageStyle);
126
123
  sources = [source];
127
124
 
128
125
  if (uri === '') {
@@ -131,16 +128,12 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
131
128
  }
132
129
 
133
130
  const objectFit =
134
- // $FlowFixMe[prop-missing]
135
- style && style.objectFit
136
- ? // $FlowFixMe[incompatible-call]
137
- convertObjectFitToResizeMode(style.objectFit)
131
+ style.objectFit != null
132
+ ? convertObjectFitToResizeMode(style.objectFit)
138
133
  : null;
139
134
  const resizeMode =
140
- // $FlowFixMe[prop-missing]
141
- objectFit || props.resizeMode || (style && style.resizeMode) || 'cover';
142
- // $FlowFixMe[prop-missing]
143
- const tintColor = props.tintColor || style.tintColor;
135
+ objectFit || props.resizeMode || style.resizeMode || 'cover';
136
+ const tintColor = props.tintColor ?? style.tintColor;
144
137
 
145
138
  if (props.children != null) {
146
139
  throw new Error(
@@ -168,6 +161,8 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
168
161
  };
169
162
  const accessibilityLabel = props['aria-label'] ?? props.accessibilityLabel;
170
163
 
164
+ const actualRef = useWrapRefWithImageAttachedCallbacks(forwardedRef);
165
+
171
166
  return (
172
167
  <ImageAnalyticsTagContext.Consumer>
173
168
  {analyticTag => {
@@ -177,9 +172,8 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
177
172
  {...restProps}
178
173
  accessible={props.alt !== undefined ? true : props.accessible}
179
174
  accessibilityLabel={accessibilityLabel ?? props.alt}
180
- ref={forwardedRef}
175
+ ref={actualRef}
181
176
  style={style}
182
- // $FlowFixMe[incompatible-type]
183
177
  resizeMode={resizeMode}
184
178
  tintColor={tintColor}
185
179
  source={sources}
@@ -189,18 +183,16 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
189
183
  }}
190
184
  </ImageAnalyticsTagContext.Consumer>
191
185
  );
192
- };
193
-
194
- const ImageForwardRef = React.forwardRef<
195
- ImagePropsType,
196
- React.ElementRef<typeof ImageViewNativeComponent>,
197
- >(BaseImage);
186
+ });
198
187
 
199
- let Image = ImageForwardRef;
200
- if (ImageInjection.unstable_createImageComponent != null) {
201
- Image = ImageInjection.unstable_createImageComponent(Image);
188
+ const imageComponentDecorator = unstable_getImageComponentDecorator();
189
+ if (imageComponentDecorator != null) {
190
+ BaseImage = imageComponentDecorator(BaseImage);
202
191
  }
203
192
 
193
+ // $FlowExpectedError[incompatible-type] Eventually we need to move these functions from statics of the component to exports in the module.
194
+ const Image: ImageIOS = BaseImage;
195
+
204
196
  Image.displayName = 'Image';
205
197
 
206
198
  /**
@@ -208,9 +200,7 @@ Image.displayName = 'Image';
208
200
  *
209
201
  * See https://reactnative.dev/docs/image#getsize
210
202
  */
211
- /* $FlowFixMe[prop-missing] (>=0.89.0 site=react_native_ios_fb) This comment
212
- * suppresses an error found when Flow v0.89 was deployed. To see the error,
213
- * delete this comment and run Flow. */
203
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
214
204
  Image.getSize = getSize;
215
205
 
216
206
  /**
@@ -219,9 +209,7 @@ Image.getSize = getSize;
219
209
  *
220
210
  * See https://reactnative.dev/docs/image#getsizewithheaders
221
211
  */
222
- /* $FlowFixMe[prop-missing] (>=0.89.0 site=react_native_ios_fb) This comment
223
- * suppresses an error found when Flow v0.89 was deployed. To see the error,
224
- * delete this comment and run Flow. */
212
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
225
213
  Image.getSizeWithHeaders = getSizeWithHeaders;
226
214
 
227
215
  /**
@@ -230,9 +218,7 @@ Image.getSizeWithHeaders = getSizeWithHeaders;
230
218
  *
231
219
  * See https://reactnative.dev/docs/image#prefetch
232
220
  */
233
- /* $FlowFixMe[prop-missing] (>=0.89.0 site=react_native_ios_fb) This comment
234
- * suppresses an error found when Flow v0.89 was deployed. To see the error,
235
- * delete this comment and run Flow. */
221
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
236
222
  Image.prefetch = prefetch;
237
223
 
238
224
  /**
@@ -241,9 +227,7 @@ Image.prefetch = prefetch;
241
227
  *
242
228
  * See https://reactnative.dev/docs/image#prefetch
243
229
  */
244
- /* $FlowFixMe[prop-missing] (>=0.89.0 site=react_native_ios_fb) This comment
245
- * suppresses an error found when Flow v0.89 was deployed. To see the error,
246
- * delete this comment and run Flow. */
230
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
247
231
  Image.prefetchWithMetadata = prefetchWithMetadata;
248
232
 
249
233
  /**
@@ -251,9 +235,7 @@ Image.prefetchWithMetadata = prefetchWithMetadata;
251
235
  *
252
236
  * See https://reactnative.dev/docs/image#querycache
253
237
  */
254
- /* $FlowFixMe[prop-missing] (>=0.89.0 site=react_native_ios_fb) This comment
255
- * suppresses an error found when Flow v0.89 was deployed. To see the error,
256
- * delete this comment and run Flow. */
238
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
257
239
  Image.queryCache = queryCache;
258
240
 
259
241
  /**
@@ -261,21 +243,13 @@ Image.queryCache = queryCache;
261
243
  *
262
244
  * See https://reactnative.dev/docs/image#resolveassetsource
263
245
  */
264
- /* $FlowFixMe[prop-missing] (>=0.89.0 site=react_native_ios_fb) This comment
265
- * suppresses an error found when Flow v0.89 was deployed. To see the error,
266
- * delete this comment and run Flow. */
246
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
267
247
  Image.resolveAssetSource = resolveAssetSource;
268
248
 
269
- /**
270
- * Switch to `deprecated-react-native-prop-types` for compatibility with future
271
- * releases. This is deprecated and will be removed in the future.
272
- */
273
- Image.propTypes = require('deprecated-react-native-prop-types').ImagePropTypes;
274
-
275
249
  const styles = StyleSheet.create({
276
250
  base: {
277
251
  overflow: 'hidden',
278
252
  },
279
253
  });
280
254
 
281
- module.exports = ((Image: any): ImageIOS);
255
+ module.exports = Image;
@@ -4,21 +4,24 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @flow
7
+ * @flow strict-local
8
8
  * @format
9
9
  */
10
10
 
11
- import type {ImageStyleProp} from '../StyleSheet/StyleSheet';
11
+ import type {ImageStyle, ImageStyleProp} from '../StyleSheet/StyleSheet';
12
12
  import type {RootTag} from '../Types/RootTagTypes';
13
- import type {ImageIOS} from './Image.flow';
14
- import type {ImageProps as ImagePropsType} from './ImageProps';
13
+ import type {AbstractImageIOS, ImageIOS} from './ImageTypes.flow';
15
14
 
15
+ import {createRootTag} from '../ReactNative/RootTag';
16
16
  import TextAncestor from '../Text/TextAncestor'; // [Windows]
17
17
  import invariant from 'invariant'; // [Windows]
18
18
  import flattenStyle from '../StyleSheet/flattenStyle';
19
19
  import StyleSheet from '../StyleSheet/StyleSheet';
20
20
  import ImageAnalyticsTagContext from './ImageAnalyticsTagContext';
21
- import ImageInjection from './ImageInjection';
21
+ import {
22
+ unstable_getImageComponentDecorator,
23
+ useWrapRefWithImageAttachedCallbacks,
24
+ } from './ImageInjection';
22
25
  import {getImageSourcesFromImageProps} from './ImageSourceUtils';
23
26
  import {convertObjectFitToResizeMode} from './ImageUtils';
24
27
  import ImageViewNativeComponent from './ImageViewNativeComponent';
@@ -29,8 +32,8 @@ import * as React from 'react';
29
32
  function getSize(
30
33
  uri: string,
31
34
  success: (width: number, height: number) => void,
32
- failure?: (error: any) => void,
33
- ) {
35
+ failure?: (error: mixed) => void,
36
+ ): void {
34
37
  NativeImageLoaderIOS.getSize(uri)
35
38
  .then(([width, height]) => success(width, height))
36
39
  .catch(
@@ -45,9 +48,9 @@ function getSizeWithHeaders(
45
48
  uri: string,
46
49
  headers: {[string]: string, ...},
47
50
  success: (width: number, height: number) => void,
48
- failure?: (error: any) => void,
49
- ): any {
50
- return NativeImageLoaderIOS.getSizeWithHeaders(uri, headers)
51
+ failure?: (error: mixed) => void,
52
+ ): void {
53
+ NativeImageLoaderIOS.getSizeWithHeaders(uri, headers)
51
54
  .then(function (sizes) {
52
55
  success(sizes.width, sizes.height);
53
56
  })
@@ -63,41 +66,30 @@ function prefetchWithMetadata(
63
66
  url: string,
64
67
  queryRootName: string,
65
68
  rootTag?: ?RootTag,
66
- ): any {
69
+ ): Promise<boolean> {
67
70
  if (NativeImageLoaderIOS.prefetchImageWithMetadata) {
68
71
  // number params like rootTag cannot be nullable before TurboModules is available
69
72
  return NativeImageLoaderIOS.prefetchImageWithMetadata(
70
73
  url,
71
74
  queryRootName,
72
75
  // NOTE: RootTag type
73
- // $FlowFixMe[incompatible-call] RootTag: number is incompatible with RootTag
74
- rootTag ? rootTag : 0,
76
+ rootTag != null ? rootTag : createRootTag(0),
75
77
  );
76
78
  } else {
77
79
  return NativeImageLoaderIOS.prefetchImage(url);
78
80
  }
79
81
  }
80
82
 
81
- function prefetch(url: string): any {
83
+ function prefetch(url: string): Promise<boolean> {
82
84
  return NativeImageLoaderIOS.prefetchImage(url);
83
85
  }
84
86
 
85
87
  async function queryCache(
86
88
  urls: Array<string>,
87
89
  ): Promise<{[string]: 'memory' | 'disk' | 'disk/memory', ...}> {
88
- return await NativeImageLoaderIOS.queryCache(urls);
90
+ return NativeImageLoaderIOS.queryCache(urls);
89
91
  }
90
92
 
91
- export type ImageComponentStatics = $ReadOnly<{|
92
- getSize: typeof getSize,
93
- getSizeWithHeaders: typeof getSizeWithHeaders,
94
- prefetch: typeof prefetch,
95
- prefetchWithMetadata: typeof prefetchWithMetadata,
96
- abortPrefetch?: number => void,
97
- queryCache: typeof queryCache,
98
- resolveAssetSource: typeof resolveAssetSource,
99
- |}>;
100
-
101
93
  /**
102
94
  * A React component for displaying different types of images,
103
95
  * including network images, static resources, temporary local images, and
@@ -105,9 +97,7 @@ export type ImageComponentStatics = $ReadOnly<{|
105
97
  *
106
98
  * See https://reactnative.dev/docs/image
107
99
  */
108
- /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's
109
- * LTI update could not be added via codemod */
110
- const BaseImage = (props: ImagePropsType, forwardedRef) => {
100
+ let BaseImage: AbstractImageIOS = React.forwardRef((props, forwardedRef) => {
111
101
  const source = getImageSourcesFromImageProps(props) || {
112
102
  uri: undefined,
113
103
  width: undefined,
@@ -115,16 +105,23 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
115
105
  };
116
106
 
117
107
  let sources;
118
- let style: ImageStyleProp;
108
+ let style: ImageStyle;
109
+
119
110
  if (Array.isArray(source)) {
120
- // $FlowFixMe[underconstrained-implicit-instantiation]
121
- style = flattenStyle([styles.base, props.style]) || {};
111
+ style =
112
+ flattenStyle<ImageStyleProp>([styles.base, props.style]) ||
113
+ ({}: ImageStyle);
122
114
  sources = source;
123
115
  } else {
124
- // $FlowFixMe[incompatible-type]
125
- const {width = props.width, height = props.height, uri} = source;
126
- // $FlowFixMe[underconstrained-implicit-instantiation]
127
- style = flattenStyle([{width, height}, styles.base, props.style]) || {};
116
+ const {uri} = source;
117
+ const width = source.width ?? props.width;
118
+ const height = source.height ?? props.height;
119
+ style =
120
+ flattenStyle<ImageStyleProp>([
121
+ {width, height},
122
+ styles.base,
123
+ props.style,
124
+ ]) || ({}: ImageStyle);
128
125
  sources = [source];
129
126
 
130
127
  if (uri === '') {
@@ -133,16 +130,12 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
133
130
  }
134
131
 
135
132
  const objectFit =
136
- // $FlowFixMe[prop-missing]
137
- style && style.objectFit
138
- ? // $FlowFixMe[incompatible-call]
139
- convertObjectFitToResizeMode(style.objectFit)
133
+ style.objectFit != null
134
+ ? convertObjectFitToResizeMode(style.objectFit)
140
135
  : null;
141
136
  const resizeMode =
142
- // $FlowFixMe[prop-missing]
143
- objectFit || props.resizeMode || (style && style.resizeMode) || 'cover';
144
- // $FlowFixMe[prop-missing]
145
- const tintColor = props.tintColor || style.tintColor;
137
+ objectFit || props.resizeMode || style.resizeMode || 'cover';
138
+ const tintColor = props.tintColor ?? style.tintColor;
146
139
 
147
140
  if (props.children != null) {
148
141
  throw new Error(
@@ -170,6 +163,8 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
170
163
  };
171
164
  const accessibilityLabel = props['aria-label'] ?? props.accessibilityLabel;
172
165
 
166
+ const actualRef = useWrapRefWithImageAttachedCallbacks(forwardedRef);
167
+
173
168
  return (
174
169
  // [Windows
175
170
  <TextAncestor.Consumer>
@@ -189,9 +184,8 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
189
184
  {...restProps}
190
185
  accessible={props.alt !== undefined ? true : props.accessible}
191
186
  accessibilityLabel={accessibilityLabel ?? props.alt}
192
- ref={forwardedRef}
187
+ ref={actualRef}
193
188
  style={style}
194
- // $FlowFixMe[incompatible-type]
195
189
  resizeMode={resizeMode}
196
190
  tintColor={tintColor}
197
191
  source={sources}
@@ -204,18 +198,16 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
204
198
  }}
205
199
  </TextAncestor.Consumer>
206
200
  );
207
- };
208
-
209
- const ImageForwardRef = React.forwardRef<
210
- ImagePropsType,
211
- React.ElementRef<typeof ImageViewNativeComponent>,
212
- >(BaseImage);
201
+ });
213
202
 
214
- let Image = ImageForwardRef;
215
- if (ImageInjection.unstable_createImageComponent != null) {
216
- Image = ImageInjection.unstable_createImageComponent(Image);
203
+ const imageComponentDecorator = unstable_getImageComponentDecorator();
204
+ if (imageComponentDecorator != null) {
205
+ BaseImage = imageComponentDecorator(BaseImage);
217
206
  }
218
207
 
208
+ // $FlowExpectedError[incompatible-type] Eventually we need to move these functions from statics of the component to exports in the module.
209
+ const Image: ImageIOS = BaseImage;
210
+
219
211
  Image.displayName = 'Image';
220
212
 
221
213
  /**
@@ -223,9 +215,7 @@ Image.displayName = 'Image';
223
215
  *
224
216
  * See https://reactnative.dev/docs/image#getsize
225
217
  */
226
- /* $FlowFixMe[prop-missing] (>=0.89.0 site=react_native_ios_fb) This comment
227
- * suppresses an error found when Flow v0.89 was deployed. To see the error,
228
- * delete this comment and run Flow. */
218
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
229
219
  Image.getSize = getSize;
230
220
 
231
221
  /**
@@ -234,9 +224,7 @@ Image.getSize = getSize;
234
224
  *
235
225
  * See https://reactnative.dev/docs/image#getsizewithheaders
236
226
  */
237
- /* $FlowFixMe[prop-missing] (>=0.89.0 site=react_native_ios_fb) This comment
238
- * suppresses an error found when Flow v0.89 was deployed. To see the error,
239
- * delete this comment and run Flow. */
227
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
240
228
  Image.getSizeWithHeaders = getSizeWithHeaders;
241
229
 
242
230
  /**
@@ -245,9 +233,7 @@ Image.getSizeWithHeaders = getSizeWithHeaders;
245
233
  *
246
234
  * See https://reactnative.dev/docs/image#prefetch
247
235
  */
248
- /* $FlowFixMe[prop-missing] (>=0.89.0 site=react_native_ios_fb) This comment
249
- * suppresses an error found when Flow v0.89 was deployed. To see the error,
250
- * delete this comment and run Flow. */
236
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
251
237
  Image.prefetch = prefetch;
252
238
 
253
239
  /**
@@ -256,9 +242,7 @@ Image.prefetch = prefetch;
256
242
  *
257
243
  * See https://reactnative.dev/docs/image#prefetch
258
244
  */
259
- /* $FlowFixMe[prop-missing] (>=0.89.0 site=react_native_ios_fb) This comment
260
- * suppresses an error found when Flow v0.89 was deployed. To see the error,
261
- * delete this comment and run Flow. */
245
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
262
246
  Image.prefetchWithMetadata = prefetchWithMetadata;
263
247
 
264
248
  /**
@@ -266,9 +250,7 @@ Image.prefetchWithMetadata = prefetchWithMetadata;
266
250
  *
267
251
  * See https://reactnative.dev/docs/image#querycache
268
252
  */
269
- /* $FlowFixMe[prop-missing] (>=0.89.0 site=react_native_ios_fb) This comment
270
- * suppresses an error found when Flow v0.89 was deployed. To see the error,
271
- * delete this comment and run Flow. */
253
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
272
254
  Image.queryCache = queryCache;
273
255
 
274
256
  /**
@@ -276,21 +258,13 @@ Image.queryCache = queryCache;
276
258
  *
277
259
  * See https://reactnative.dev/docs/image#resolveassetsource
278
260
  */
279
- /* $FlowFixMe[prop-missing] (>=0.89.0 site=react_native_ios_fb) This comment
280
- * suppresses an error found when Flow v0.89 was deployed. To see the error,
281
- * delete this comment and run Flow. */
261
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
282
262
  Image.resolveAssetSource = resolveAssetSource;
283
263
 
284
- /**
285
- * Switch to `deprecated-react-native-prop-types` for compatibility with future
286
- * releases. This is deprecated and will be removed in the future.
287
- */
288
- Image.propTypes = require('deprecated-react-native-prop-types').ImagePropTypes;
289
-
290
264
  const styles = StyleSheet.create({
291
265
  base: {
292
266
  overflow: 'hidden',
293
267
  },
294
268
  });
295
269
 
296
- module.exports = ((Image: any): ImageIOS);
270
+ module.exports = Image;
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @flow
7
+ * @flow strict-local
8
8
  * @format
9
9
  */
10
10
 
@@ -45,7 +45,7 @@ import * as React from 'react';
45
45
  * ```
46
46
  */
47
47
  class ImageBackground extends React.Component<ImageBackgroundProps> {
48
- setNativeProps(props: Object) {
48
+ setNativeProps(props: {...}) {
49
49
  // Work-around flow
50
50
  const viewRef = this._viewRef;
51
51
  if (viewRef) {