react-native-windows 0.84.0-preview.9 → 0.85.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 (487) hide show
  1. package/.flowconfig +1 -5
  2. package/Common/unicode.cpp +36 -0
  3. package/Common/unicode.h +8 -0
  4. package/Directory.Build.props +1 -16
  5. package/Directory.Build.targets +12 -4
  6. package/Folly/ThreadNameStub.cpp +4 -6
  7. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
  8. package/Libraries/Animated/Animated.d.ts +8 -1
  9. package/Libraries/Animated/AnimatedEvent.js +4 -4
  10. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  11. package/Libraries/Animated/animations/Animation.js +3 -3
  12. package/Libraries/Animated/animations/DecayAnimation.js +4 -4
  13. package/Libraries/Animated/animations/SpringAnimation.js +5 -5
  14. package/Libraries/Animated/animations/TimingAnimation.js +5 -5
  15. package/Libraries/Animated/createAnimatedComponent.js +7 -7
  16. package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
  17. package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
  18. package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
  19. package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
  20. package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
  21. package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
  22. package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
  23. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  24. package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
  25. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  26. package/Libraries/Animated/useAnimatedColor.d.ts +15 -0
  27. package/Libraries/Animated/useAnimatedColor.js +25 -0
  28. package/Libraries/Animated/useAnimatedValueXY.d.ts +15 -0
  29. package/Libraries/Animated/useAnimatedValueXY.js +26 -0
  30. package/Libraries/AppState/AppState.js +1 -1
  31. package/Libraries/BatchedBridge/MessageQueue.js +3 -3
  32. package/Libraries/BatchedBridge/NativeModules.js +12 -10
  33. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
  34. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +34 -30
  35. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
  36. package/Libraries/Components/Button.js +2 -2
  37. package/Libraries/Components/Button.windows.js +2 -2
  38. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
  39. package/Libraries/Components/Keyboard/Keyboard.js +6 -6
  40. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
  41. package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
  42. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
  43. package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
  44. package/Libraries/Components/Pressable/Pressable.js +3 -3
  45. package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
  46. package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
  47. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  48. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
  49. package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
  50. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +5 -5
  51. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
  52. package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -0
  53. package/Libraries/Components/ScrollView/ScrollView.js +19 -9
  54. package/Libraries/Components/ScrollView/ScrollView.windows.js +19 -9
  55. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -18
  56. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +8 -18
  57. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
  58. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  59. package/Libraries/Components/StaticRenderer.js +1 -1
  60. package/Libraries/Components/StatusBar/StatusBar.js +8 -8
  61. package/Libraries/Components/Switch/Switch.js +3 -3
  62. package/Libraries/Components/Switch/Switch.windows.js +3 -3
  63. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
  64. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  65. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
  66. package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
  67. package/Libraries/Components/TextInput/TextInput.flow.windows.js +23 -22
  68. package/Libraries/Components/TextInput/TextInput.js +8 -4
  69. package/Libraries/Components/TextInput/TextInput.windows.js +3 -4
  70. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +33 -48
  71. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  72. package/Libraries/Components/Touchable/Touchable.js +2 -2
  73. package/Libraries/Components/Touchable/Touchable.windows.js +2 -2
  74. package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
  75. package/Libraries/Components/Touchable/TouchableBounce.windows.js +4 -4
  76. package/Libraries/Components/Touchable/TouchableHighlight.js +8 -8
  77. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +9 -9
  78. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
  79. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +7 -7
  80. package/Libraries/Components/Touchable/TouchableOpacity.js +4 -4
  81. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -4
  82. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
  83. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -1
  84. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  85. package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
  86. package/Libraries/Components/View/View.windows.js +1 -1
  87. package/Libraries/Components/View/ViewAccessibility.js +7 -7
  88. package/Libraries/Components/View/ViewAccessibility.windows.js +7 -7
  89. package/Libraries/Components/View/ViewPropTypes.js +14 -14
  90. package/Libraries/Components/View/ViewPropTypes.windows.js +18 -16
  91. package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
  92. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  93. package/Libraries/Core/ExceptionsManager.js +2 -2
  94. package/Libraries/Core/ExtendedError.js +3 -3
  95. package/Libraries/Core/RawEventEmitter.js +1 -1
  96. package/Libraries/Core/ReactNativeVersion.js +2 -2
  97. package/Libraries/Core/Timers/JSTimers.js +3 -2
  98. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  99. package/Libraries/Core/setUpErrorHandling.js +4 -2
  100. package/Libraries/Core/setUpReactDevTools.js +23 -6
  101. package/Libraries/Core/setUpSegmentFetcher.js +1 -1
  102. package/Libraries/Debugging/DebuggingOverlay.js +2 -2
  103. package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
  104. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
  105. package/Libraries/Image/AssetSourceResolver.js +1 -1
  106. package/Libraries/Image/AssetSourceResolver.windows.js +1 -1
  107. package/Libraries/Image/Image.android.js +172 -306
  108. package/Libraries/Image/ImageProps.js +9 -11
  109. package/Libraries/Image/ImageSource.js +2 -2
  110. package/Libraries/Image/ImageSourceUtils.js +8 -4
  111. package/Libraries/Image/ImageTypes.flow.js +2 -2
  112. package/Libraries/Image/ImageViewNativeComponent.js +7 -16
  113. package/Libraries/Image/nativeImageSource.js +1 -1
  114. package/Libraries/Interaction/InteractionManager.js +5 -4
  115. package/Libraries/Interaction/PanResponder.js +1 -1
  116. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  117. package/Libraries/Linking/Linking.js +1 -1
  118. package/Libraries/Lists/FlatList.js +3 -3
  119. package/Libraries/Lists/SectionList.js +1 -1
  120. package/Libraries/Lists/SectionListModern.js +2 -2
  121. package/Libraries/LogBox/Data/LogBoxData.js +38 -24
  122. package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
  123. package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
  124. package/Libraries/LogBox/LogBox.js +42 -19
  125. package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
  126. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  127. package/Libraries/LogBox/UI/LogBoxButton.js +14 -16
  128. package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
  129. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
  130. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -9
  131. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
  132. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
  133. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  134. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
  135. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
  136. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
  137. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
  138. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +15 -16
  139. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
  140. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
  141. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
  142. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +3 -5
  143. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
  144. package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
  145. package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
  146. package/Libraries/Modal/Modal.d.ts +4 -0
  147. package/Libraries/Modal/Modal.js +3 -3
  148. package/Libraries/Modal/Modal.windows.js +7 -3
  149. package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
  150. package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
  151. package/Libraries/NativeComponent/BaseViewConfig.windows.js +26 -17
  152. package/Libraries/Network/RCTNetworking.android.js +1 -1
  153. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  154. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  155. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  156. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
  157. package/Libraries/Network/XMLHttpRequest.js +1 -1
  158. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  159. package/Libraries/Pressability/Pressability.js +5 -5
  160. package/Libraries/Pressability/Pressability.windows.js +5 -5
  161. package/Libraries/Pressability/PressabilityDebug.js +1 -1
  162. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  163. package/Libraries/Pressability/usePressability.js +3 -14
  164. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
  165. package/Libraries/ReactNative/AppContainer-dev.js +18 -1
  166. package/Libraries/ReactNative/AppContainer.js +1 -1
  167. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  168. package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
  169. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  170. package/Libraries/ReactNative/RendererImplementation.js +4 -4
  171. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  172. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
  173. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
  174. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
  175. package/Libraries/Renderer/shims/ReactFabric.js +1 -3
  176. package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
  177. package/Libraries/Renderer/shims/ReactNative.js +3 -2
  178. package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
  179. package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +1 -3
  180. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
  181. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
  182. package/Libraries/StyleSheet/PointPropType.js +1 -1
  183. package/Libraries/StyleSheet/Rect.js +1 -1
  184. package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
  185. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  186. package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
  187. package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
  188. package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
  189. package/Libraries/StyleSheet/StyleSheetTypes.js +33 -35
  190. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
  191. package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
  192. package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
  193. package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
  194. package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
  195. package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
  196. package/Libraries/StyleSheet/processBoxShadow.js +44 -4
  197. package/Libraries/StyleSheet/processColorArray.js +2 -2
  198. package/Libraries/StyleSheet/processFilter.js +2 -2
  199. package/Libraries/Text/Text.js +295 -627
  200. package/Libraries/Text/Text.windows.js +342 -717
  201. package/Libraries/Text/TextNativeComponent.js +14 -7
  202. package/Libraries/Text/TextProps.js +4 -4
  203. package/Libraries/Text/TextProps.windows.js +4 -4
  204. package/Libraries/Types/CodegenTypes.js +1 -1
  205. package/Libraries/Types/CoreEventTypes.js +21 -21
  206. package/Libraries/Types/CoreEventTypes.windows.js +21 -21
  207. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  208. package/Libraries/Utilities/Appearance.js +6 -1
  209. package/Libraries/Utilities/Dimensions.js +1 -1
  210. package/Libraries/Utilities/HMRClient.js +32 -5
  211. package/Libraries/Utilities/IPerformanceLogger.js +4 -4
  212. package/Libraries/Utilities/codegenNativeCommands.js +4 -4
  213. package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
  214. package/Libraries/Utilities/codegenNativeComponent.js +2 -2
  215. package/Libraries/Utilities/logError.js +1 -1
  216. package/Libraries/Utilities/stringifySafe.js +3 -3
  217. package/Libraries/Utilities/useMergeRefs.js +2 -2
  218. package/Libraries/vendor/core/ErrorUtils.js +4 -4
  219. package/Libraries/vendor/emitter/EventEmitter.js +16 -20
  220. package/Microsoft.ReactNative/CallInvoker.cpp +14 -4
  221. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +1 -1
  222. package/Microsoft.ReactNative/Fabric/AbiPortalShadowNode.cpp +2 -2
  223. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +1 -1
  224. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.cpp +73 -97
  225. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.h +4 -1
  226. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +0 -1
  227. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +5 -0
  228. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +94 -26
  229. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +11 -0
  230. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +135 -18
  231. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +10 -0
  232. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +7 -2
  233. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +2 -0
  234. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +63 -15
  235. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +9 -5
  236. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +28 -6
  237. package/Microsoft.ReactNative/Fabric/Composition/TextDrawing.cpp +1 -1
  238. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1 -1
  239. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -1
  240. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +80 -0
  241. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.h +17 -0
  242. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -0
  243. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +1 -0
  244. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +3 -0
  245. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +0 -3
  246. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +3 -8
  247. package/Microsoft.ReactNative/IReactPackageBuilder.idl +6 -0
  248. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -63
  249. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -26
  250. package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -1
  251. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -17
  252. package/Microsoft.ReactNative/Modules/AppStateModule.h +0 -4
  253. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -2
  254. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +16 -15
  255. package/Microsoft.ReactNative/Modules/AppearanceModule.h +5 -1
  256. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +2 -7
  257. package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +0 -1
  258. package/Microsoft.ReactNative/Modules/I18nManagerModule.h +4 -4
  259. package/Microsoft.ReactNative/QuirkSettings.cpp +0 -133
  260. package/Microsoft.ReactNative/QuirkSettings.h +0 -43
  261. package/Microsoft.ReactNative/QuirkSettings.idl +0 -41
  262. package/Microsoft.ReactNative/ReactHost/CrashManager.cpp +0 -4
  263. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +0 -2
  264. package/Microsoft.ReactNative/ReactHost/React.h +0 -5
  265. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -1
  266. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +3 -26
  267. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +0 -5
  268. package/Microsoft.ReactNative/ReactHost/React_Win.h +0 -2
  269. package/Microsoft.ReactNative/ReactNativeAppBuilder.idl +3 -0
  270. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +7 -0
  271. package/Microsoft.ReactNative/ReactPackageBuilder.h +1 -0
  272. package/Microsoft.ReactNative/RedBox.cpp +0 -9
  273. package/Microsoft.ReactNative/RedBoxHandler.cpp +0 -4
  274. package/Microsoft.ReactNative/TurboModulesProvider.cpp +5 -10
  275. package/Microsoft.ReactNative/TurboModulesProvider.h +2 -0
  276. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +33 -25
  277. package/Microsoft.ReactNative/Utils/LocalBundleReader.h +5 -3
  278. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
  279. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +0 -7
  280. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +0 -22
  281. package/Microsoft.ReactNative.Cxx/ModuleRegistration.cpp +8 -2
  282. package/Microsoft.ReactNative.Cxx/ModuleRegistration.h +36 -20
  283. package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +0 -3
  284. package/Microsoft.ReactNative.Cxx/NativeModules.h +8 -2
  285. package/Microsoft.ReactNative.Cxx/XamlUtils.h +0 -9
  286. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +3 -3
  287. package/Microsoft.ReactNative.Managed/ReactContext.cs +0 -9
  288. package/Microsoft.ReactNative.Managed.CodeGen/Microsoft.ReactNative.Managed.CodeGen.csproj +10 -10
  289. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Debug.pubxml +1 -1
  290. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Release.pubxml +1 -1
  291. package/PropertySheets/Autolink.props +1 -1
  292. package/PropertySheets/Bundle.props +1 -1
  293. package/PropertySheets/Codegen.props +1 -1
  294. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  295. package/PropertySheets/JSEngine.props +1 -1
  296. package/PropertySheets/NuGet.LockFile.props +8 -0
  297. package/PropertySheets/React.Cpp.props +8 -7
  298. package/PropertySheets/ReactNativeArchitecture.props +6 -24
  299. package/PropertySheets/WinUI.props +2 -2
  300. package/ReactCommon/ReactCommon.vcxproj +5 -6
  301. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1 -1
  302. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +15 -4
  303. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +13 -0
  304. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/defaults/DefaultTurboModules.cpp +69 -0
  305. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/animationbackend/AnimatedPropSerializer.cpp +717 -0
  306. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +10 -10
  307. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +2 -21
  308. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +151 -0
  309. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +50 -0
  310. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBuffer.cpp +178 -0
  311. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +69 -39
  312. package/Scripts/JustMyXaml.ps1 +8 -8
  313. package/Scripts/OfficeReact.Win32.nuspec +0 -1
  314. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +4 -39
  315. package/Scripts/UnitTest.ps1 +3 -1
  316. package/Scripts/creaternwapp.cmd +1 -9
  317. package/Scripts/creaternwlib.cmd +4 -24
  318. package/Scripts/rnw-dependencies.ps1 +15 -16
  319. package/Shared/DevSettings.h +0 -3
  320. package/Shared/DevSupportManager.cpp +55 -48
  321. package/Shared/DevSupportManager.h +0 -1
  322. package/Shared/Modules/IWebSocketModuleContentHandler.h +15 -0
  323. package/Shared/Modules/WebSocketModule.cpp +8 -3
  324. package/Shared/Networking/DefaultBlobResource.cpp +37 -0
  325. package/Shared/Networking/DefaultBlobResource.h +12 -0
  326. package/Shared/Networking/WinRTWebSocketResource.cpp +23 -408
  327. package/Shared/Networking/WinRTWebSocketResource.h +8 -120
  328. package/Shared/Shared.vcxitems +63 -38
  329. package/Shared/Shared.vcxitems.filters +54 -0
  330. package/Shared/Utils.cpp +0 -88
  331. package/Shared/Utils.h +0 -14
  332. package/Shared/WebSocketResourceFactory.cpp +28 -0
  333. package/Shared/tracing/fbsystrace.h +1 -0
  334. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +172 -160
  335. package/codegen/react/components/rnwcore/ModalHostView.g.h +8 -0
  336. package/codegen/react/components/rnwcore/Props.cpp +17 -7
  337. package/codegen/react/components/rnwcore/Props.h +3 -1
  338. package/codegen/react/components/rnwcore/VirtualViewExperimental.g.h +4 -4
  339. package/codegen/rnwcoreJSI.h +93 -77
  340. package/index.js +9 -0
  341. package/index.windows.js +9 -0
  342. package/jest/RefreshControlMock.js +2 -2
  343. package/jest/assetFileTransformer.js +8 -3
  344. package/jest/mockComponent.js +3 -4
  345. package/jest/mockNativeComponent.js +1 -1
  346. package/jest/mocks/ActivityIndicator.js +2 -2
  347. package/jest/mocks/Image.js +2 -2
  348. package/jest/mocks/Modal.js +2 -2
  349. package/jest/mocks/RefreshControl.js +3 -3
  350. package/jest/mocks/RendererProxy.js +2 -2
  351. package/jest/mocks/ScrollView.js +5 -5
  352. package/jest/mocks/Text.js +2 -2
  353. package/jest/mocks/TextInput.js +2 -2
  354. package/jest/mocks/View.js +2 -2
  355. package/jest/mocks/ViewNativeComponent.js +1 -1
  356. package/jest/mocks/requireNativeComponent.js +1 -1
  357. package/jest/mocks/useColorScheme.js +1 -1
  358. package/jest/setup.js +68 -31
  359. package/just-task.js +13 -2
  360. package/package.json +25 -20
  361. package/src/private/animated/NativeAnimatedHelper.js +2 -2
  362. package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
  363. package/src/private/components/virtualview/VirtualView.js +14 -21
  364. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
  365. package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
  366. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
  367. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
  368. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
  369. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  370. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
  371. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
  372. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
  373. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
  374. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  375. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  376. package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
  377. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
  378. package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
  379. package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
  380. package/src/private/featureflags/ReactNativeFeatureFlags.js +71 -79
  381. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
  382. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -12
  383. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
  384. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
  385. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
  386. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
  387. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  388. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
  389. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
  390. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
  391. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
  392. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
  393. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +7 -3
  394. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
  395. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
  396. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
  397. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
  398. package/src/private/styles/composeStyles.js +1 -1
  399. package/src/private/utilities/toError.js +27 -0
  400. package/src/private/utilities/toExtendedError.js +30 -0
  401. package/src/private/webapis/dom/events/Event.js +1 -1
  402. package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
  403. package/src/private/webapis/dom/events/EventTarget.js +3 -3
  404. package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
  405. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  406. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
  407. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
  408. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
  409. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  410. package/src/private/webapis/geometry/DOMRectList.js +2 -2
  411. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
  412. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
  413. package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
  414. package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
  415. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
  416. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
  417. package/src/private/webapis/performance/LongTasks.js +3 -3
  418. package/src/private/webapis/performance/Performance.js +4 -4
  419. package/src/private/webapis/performance/PerformanceEntry.js +1 -1
  420. package/src/private/webapis/performance/PerformanceObserver.js +2 -2
  421. package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
  422. package/src/private/webapis/structuredClone/structuredClone.js +2 -2
  423. package/src/types/globals.d.ts +4 -4
  424. package/template/cpp-lib/proj/MyLib.sln +0 -33
  425. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  426. package/template/cs-lib/proj/MyLib.sln +0 -33
  427. package/template/metro.config.js +12 -2
  428. package/templates/cpp-app/metro.config.js +12 -2
  429. package/templates/cpp-app/windows/MyApp/MyApp.cpp +9 -6
  430. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +2 -2
  431. package/templates/cpp-app/windows/MyApp.sln +0 -33
  432. package/templates/cpp-lib/example/metro.config.js +12 -2
  433. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +2 -2
  434. package/templates/cpp-lib/windows/MyLib.sln +0 -33
  435. package/types/index.d.ts +2 -0
  436. package/Folly/.clang-format +0 -2
  437. package/Folly/Folly.natvis +0 -25
  438. package/Folly/Folly.vcxproj +0 -378
  439. package/Folly/Folly.vcxproj.filters +0 -558
  440. package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +0 -978
  441. package/Folly/TEMP_UntilFollyUpdate/Conv.cpp +0 -1205
  442. package/Folly/TEMP_UntilFollyUpdate/chrono/Hardware.h +0 -155
  443. package/Folly/TEMP_UntilFollyUpdate/concurrency/CacheLocality.cpp +0 -633
  444. package/Folly/TEMP_UntilFollyUpdate/json/dynamic-inl.h +0 -1438
  445. package/Folly/TEMP_UntilFollyUpdate/json/json.cpp +0 -1118
  446. package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +0 -188
  447. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +0 -348
  448. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +0 -182
  449. package/Folly/TEMP_UntilFollyUpdate/portability/Unistd.cpp +0 -33
  450. package/Folly/cgmanifest.json +0 -25
  451. package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
  452. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +0 -64
  453. package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
  454. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +0 -75
  455. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +0 -27
  456. package/Microsoft.ReactNative/Fabric/Composition/Theme_emptyimpl.cpp +0 -81
  457. package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -24
  458. package/Microsoft.ReactNative/ReactSupport.cpp +0 -221
  459. package/Microsoft.ReactNative/ReactSupport.h +0 -13
  460. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.cpp +0 -107
  461. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +0 -62
  462. package/Microsoft.ReactNative/Utils/UwpScriptStore.cpp +0 -56
  463. package/Microsoft.ReactNative/Utils/UwpScriptStore.h +0 -22
  464. package/Microsoft.ReactNative/XamlUIService.cpp +0 -68
  465. package/Microsoft.ReactNative/XamlUIService.h +0 -37
  466. package/Microsoft.ReactNative/XamlUIService.idl +0 -53
  467. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +0 -259
  468. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/Instance.cpp +0 -381
  469. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +0 -145
  470. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/MethodCall.cpp +0 -100
  471. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ModuleRegistry.cpp +0 -256
  472. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +0 -363
  473. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/RAMBundleRegistry.cpp +0 -93
  474. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +0 -148
  475. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +0 -190
  476. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSINativeModules.cpp +0 -123
  477. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleWithJSIBindings.cpp +0 -27
  478. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/webperformance/NativePerformance.cpp +0 -414
  479. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +0 -91
  480. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +0 -80
  481. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +0 -138
  482. package/fmt/.clang-format +0 -2
  483. package/fmt/cgmanifest.json +0 -15
  484. package/fmt/fmt.vcxproj +0 -153
  485. package/fmt/fmt.vcxproj.filters +0 -59
  486. package/fmt/pch.cpp +0 -4
  487. package/fmt/pch.h +0 -2
@@ -18,7 +18,6 @@ import type {AbstractImageAndroid, ImageAndroid} from './ImageTypes.flow';
18
18
  import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
19
19
  import flattenStyle from '../StyleSheet/flattenStyle';
20
20
  import StyleSheet from '../StyleSheet/StyleSheet';
21
- import TextAncestorContext from '../Text/TextAncestorContext';
22
21
  import ImageAnalyticsTagContext from './ImageAnalyticsTagContext';
23
22
  import {
24
23
  unstable_getImageComponentDecorator,
@@ -31,7 +30,6 @@ import NativeImageLoaderAndroid, {
31
30
  type ImageSize,
32
31
  } from './NativeImageLoaderAndroid';
33
32
  import resolveAssetSource from './resolveAssetSource';
34
- import TextInlineImageNativeComponent from './TextInlineImageNativeComponent';
35
33
  import * as React from 'react';
36
34
  import {use} from 'react';
37
35
 
@@ -137,336 +135,204 @@ const EMPTY_IMAGE_SOURCE = {
137
135
  *
138
136
  * See https://reactnative.dev/docs/image
139
137
  */
140
- let _BaseImage;
141
- if (ReactNativeFeatureFlags.reduceDefaultPropsInImage()) {
142
- let BaseImage: AbstractImageAndroid = ({
143
- ref: forwardedRef,
144
- alt,
145
- accessible,
146
- 'aria-labelledby': ariaLabelledBy,
147
- 'aria-busy': ariaBusy,
148
- 'aria-checked': ariaChecked,
149
- 'aria-disabled': ariaDisabled,
150
- 'aria-expanded': ariaExpanded,
151
- 'aria-hidden': ariaHidden,
152
- 'aria-label': ariaLabel,
153
- 'aria-selected': ariaSelected,
154
- accessibilityLabel,
155
- accessibilityLabelledBy,
156
- accessibilityState,
157
- defaultSource,
158
- loadingIndicatorSource,
159
- children,
160
- source,
161
- src,
162
- style,
163
- crossOrigin,
164
- referrerPolicy,
165
- srcSet,
166
- onLoadStart,
167
- onLoad,
168
- onLoadEnd,
169
- onError,
170
- width,
171
- height,
172
- resizeMode,
173
- ...restProps
174
- }: {
175
- ref?: React.RefSetter<HostInstance>,
176
- ...ImageProps,
177
- }) => {
178
- let source_ =
179
- getImageSourcesFromImageProps({
180
- crossOrigin,
181
- referrerPolicy,
182
- src,
183
- srcSet,
184
- width,
185
- height,
186
- source,
187
- }) || EMPTY_IMAGE_SOURCE;
188
- const defaultSource_ = resolveAssetSource(defaultSource);
189
- const loadingIndicatorSource_ = resolveAssetSource(loadingIndicatorSource);
190
-
191
- if (children != null) {
192
- throw new Error(
193
- 'The <Image> component cannot contain children. If you want to render content on top of the image, consider using the <ImageBackground> component or absolute positioning.',
194
- );
195
- }
138
+ let BaseImage: AbstractImageAndroid = ({
139
+ ref: forwardedRef,
140
+ alt,
141
+ accessible,
142
+ 'aria-labelledby': ariaLabelledBy,
143
+ 'aria-busy': ariaBusy,
144
+ 'aria-checked': ariaChecked,
145
+ 'aria-disabled': ariaDisabled,
146
+ 'aria-expanded': ariaExpanded,
147
+ 'aria-hidden': ariaHidden,
148
+ 'aria-label': ariaLabel,
149
+ 'aria-selected': ariaSelected,
150
+ accessibilityLabel,
151
+ accessibilityLabelledBy,
152
+ accessibilityState,
153
+ defaultSource,
154
+ loadingIndicatorSource,
155
+ children,
156
+ source,
157
+ src,
158
+ style,
159
+ crossOrigin,
160
+ referrerPolicy,
161
+ srcSet,
162
+ onLoadStart,
163
+ onLoad,
164
+ onLoadEnd,
165
+ onError,
166
+ width,
167
+ height,
168
+ resizeMode,
169
+ ...restProps
170
+ }: {
171
+ ref?: React.RefSetter<HostInstance>,
172
+ ...ImageProps,
173
+ }) => {
174
+ let source_ =
175
+ getImageSourcesFromImageProps({
176
+ crossOrigin,
177
+ referrerPolicy,
178
+ src,
179
+ srcSet,
180
+ width,
181
+ height,
182
+ source,
183
+ }) || EMPTY_IMAGE_SOURCE;
184
+ const defaultSource_ = resolveAssetSource(defaultSource);
185
+ const loadingIndicatorSource_ = resolveAssetSource(loadingIndicatorSource);
186
+
187
+ if (children != null) {
188
+ throw new Error(
189
+ 'The <Image> component cannot contain children. If you want to render content on top of the image, consider using the <ImageBackground> component or absolute positioning.',
190
+ );
191
+ }
196
192
 
197
- if (defaultSource != null && loadingIndicatorSource != null) {
198
- throw new Error(
199
- 'The <Image> component cannot have defaultSource and loadingIndicatorSource at the same time. Please use either defaultSource or loadingIndicatorSource.',
200
- );
201
- }
193
+ if (defaultSource != null && loadingIndicatorSource != null) {
194
+ throw new Error(
195
+ 'The <Image> component cannot have defaultSource and loadingIndicatorSource at the same time. Please use either defaultSource or loadingIndicatorSource.',
196
+ );
197
+ }
202
198
 
203
- let style_: ImageStyleProp;
204
- let sources_;
205
- let headers_: ?ImageSourceHeaders;
206
- if (Array.isArray(source_)) {
207
- style_ = [styles.base, style];
208
- sources_ = source_;
209
- headers_ = sources_[0].headers;
199
+ let style_: ImageStyleProp;
200
+ let sources_;
201
+ let headers_: ?ImageSourceHeaders;
202
+ if (Array.isArray(source_)) {
203
+ const {
204
+ headers: sourceHeaders,
205
+ width: sourceWidth,
206
+ height: sourceHeight,
207
+ } = source_[0];
208
+ headers_ = sourceHeaders;
209
+ // Default to the first source's width and height if only one is provided
210
+ if (ReactNativeFeatureFlags.fixImageSrcDimensionPropagation()) {
211
+ style_ = [
212
+ source_.length === 1 && {width: sourceWidth, height: sourceHeight},
213
+ styles.base,
214
+ style,
215
+ ];
210
216
  } else {
211
- const {uri} = source_;
212
- if (uri === '') {
213
- console.warn('source.uri should not be an empty string');
214
- }
215
- const width_ = source_.width ?? width;
216
- const height_ = source_.height ?? height;
217
- style_ = [{width: width_, height: height_}, styles.base, style];
218
- sources_ = [source_];
219
- }
220
-
221
- const nativeProps = restProps as {
222
- ...React.PropsOf<ImageViewNativeComponent>,
223
- };
224
-
225
- // Both iOS and C++ sides expect to have "source" prop, whereas on Android it's "src"
226
- // (for historical reasons). So in the latter case we populate both "src" and "source",
227
- // in order to have a better alignment between platforms in the future.
228
- // TODO: `src` should be eventually removed from the API on Android.
229
- nativeProps.src = sources_;
230
- nativeProps.source = sources_;
231
-
232
- nativeProps.style = style_;
233
-
234
- if (headers_ != null) {
235
- nativeProps.headers = headers_;
236
- }
237
-
238
- if (onLoadStart != null) {
239
- nativeProps.shouldNotifyLoadEvents = true;
240
- nativeProps.onLoadStart = onLoadStart;
217
+ style_ = [styles.base, style];
241
218
  }
242
-
243
- if (onLoad != null) {
244
- nativeProps.shouldNotifyLoadEvents = true;
245
- nativeProps.onLoad = onLoad;
219
+ sources_ = source_;
220
+ } else {
221
+ const {uri, width: sourceWidth, height: sourceHeight} = source_;
222
+ if (uri === '') {
223
+ console.warn('source.uri should not be an empty string');
246
224
  }
225
+ style_ = [
226
+ {width: sourceWidth ?? width, height: sourceHeight ?? height},
227
+ styles.base,
228
+ style,
229
+ ];
230
+ sources_ = [source_];
231
+ }
247
232
 
248
- if (onLoadEnd != null) {
249
- nativeProps.shouldNotifyLoadEvents = true;
250
- nativeProps.onLoadEnd = onLoadEnd;
251
- }
233
+ const nativeProps = restProps as {
234
+ ...React.PropsOf<ImageViewNativeComponent>,
235
+ };
252
236
 
253
- if (onError != null) {
254
- nativeProps.shouldNotifyLoadEvents = true;
255
- nativeProps.onError = onError;
256
- }
237
+ // Both iOS and C++ sides expect to have "source" prop, whereas on Android it's "src"
238
+ // (for historical reasons). So in the latter case we populate both "src" and "source",
239
+ // in order to have a better alignment between platforms in the future.
240
+ // TODO: `src` should be eventually removed from the API on Android.
241
+ nativeProps.src = sources_;
242
+ nativeProps.source = sources_;
257
243
 
258
- if (defaultSource_ != null && defaultSource_.uri != null) {
259
- nativeProps.defaultSource = defaultSource_.uri;
260
- }
244
+ nativeProps.style = style_;
261
245
 
262
- if (
263
- loadingIndicatorSource_ != null &&
264
- loadingIndicatorSource_.uri != null
265
- ) {
266
- nativeProps.loadingIndicatorSrc = loadingIndicatorSource_.uri;
267
- }
246
+ if (headers_ != null) {
247
+ nativeProps.headers = headers_;
248
+ }
268
249
 
269
- if (ariaLabel != null) {
270
- nativeProps.accessibilityLabel = ariaLabel;
271
- } else if (accessibilityLabel != null) {
272
- nativeProps.accessibilityLabel = accessibilityLabel;
273
- } else if (alt != null) {
274
- nativeProps.accessibilityLabel = alt;
275
- }
250
+ if (onLoadStart != null) {
251
+ nativeProps.shouldNotifyLoadEvents = true;
252
+ nativeProps.onLoadStart = onLoadStart;
253
+ }
276
254
 
277
- if (ariaLabelledBy != null) {
278
- nativeProps.accessibilityLabelledBy = ariaLabelledBy;
279
- } else if (accessibilityLabelledBy != null) {
280
- nativeProps.accessibilityLabelledBy = accessibilityLabelledBy;
281
- }
255
+ if (onLoad != null) {
256
+ nativeProps.shouldNotifyLoadEvents = true;
257
+ nativeProps.onLoad = onLoad;
258
+ }
282
259
 
283
- if (alt != null) {
284
- nativeProps.accessible = true;
285
- } else if (accessible != null) {
286
- nativeProps.accessible = accessible;
287
- }
260
+ if (onLoadEnd != null) {
261
+ nativeProps.shouldNotifyLoadEvents = true;
262
+ nativeProps.onLoadEnd = onLoadEnd;
263
+ }
288
264
 
289
- if (
290
- accessibilityState != null ||
291
- ariaBusy != null ||
292
- ariaChecked != null ||
293
- ariaDisabled != null ||
294
- ariaExpanded != null ||
295
- ariaSelected != null
296
- ) {
297
- nativeProps.accessibilityState = {
298
- busy: ariaBusy ?? accessibilityState?.busy,
299
- checked: ariaChecked ?? accessibilityState?.checked,
300
- disabled: ariaDisabled ?? accessibilityState?.disabled,
301
- expanded: ariaExpanded ?? accessibilityState?.expanded,
302
- selected: ariaSelected ?? accessibilityState?.selected,
303
- };
304
- }
265
+ if (onError != null) {
266
+ nativeProps.shouldNotifyLoadEvents = true;
267
+ nativeProps.onError = onError;
268
+ }
305
269
 
306
- if (ariaHidden === true) {
307
- nativeProps.importantForAccessibility = 'no-hide-descendants';
308
- }
270
+ if (defaultSource_ != null && defaultSource_.uri != null) {
271
+ nativeProps.defaultSource = defaultSource_.uri;
272
+ }
309
273
 
310
- const flattenedStyle_ = flattenStyle<ImageStyleProp>(style);
311
- const objectFit_ = convertObjectFitToResizeMode(flattenedStyle_?.objectFit);
312
- const resizeMode_ =
313
- objectFit_ || resizeMode || flattenedStyle_?.resizeMode || 'cover';
314
- nativeProps.resizeMode = resizeMode_;
274
+ if (loadingIndicatorSource_ != null && loadingIndicatorSource_.uri != null) {
275
+ nativeProps.loadingIndicatorSrc = loadingIndicatorSource_.uri;
276
+ }
315
277
 
316
- const actualRef = useWrapRefWithImageAttachedCallbacks(forwardedRef);
278
+ if (ariaLabel != null) {
279
+ nativeProps.accessibilityLabel = ariaLabel;
280
+ } else if (accessibilityLabel != null) {
281
+ nativeProps.accessibilityLabel = accessibilityLabel;
282
+ } else if (alt != null) {
283
+ nativeProps.accessibilityLabel = alt;
284
+ }
317
285
 
318
- const hasTextAncestor = use(TextAncestorContext);
319
- const analyticTag = use(ImageAnalyticsTagContext);
320
- if (analyticTag !== null) {
321
- nativeProps.internal_analyticTag = analyticTag;
322
- }
286
+ if (ariaLabelledBy != null) {
287
+ nativeProps.accessibilityLabelledBy = ariaLabelledBy;
288
+ } else if (accessibilityLabelledBy != null) {
289
+ nativeProps.accessibilityLabelledBy = accessibilityLabelledBy;
290
+ }
323
291
 
324
- return hasTextAncestor ? (
325
- <TextInlineImageNativeComponent
326
- // $FlowFixMe[incompatible-type]
327
- style={style_}
328
- resizeMode={resizeMode_}
329
- headers={headers_}
330
- src={sources_}
331
- ref={actualRef}
332
- />
333
- ) : (
334
- <ImageViewNativeComponent {...nativeProps} ref={actualRef} />
335
- );
336
- };
292
+ if (alt != null) {
293
+ nativeProps.accessible = true;
294
+ } else if (accessible != null) {
295
+ nativeProps.accessible = accessible;
296
+ }
337
297
 
338
- _BaseImage = BaseImage;
339
- } else {
340
- let BaseImage: AbstractImageAndroid = ({
341
- ref: forwardedRef,
342
- ...props
343
- }: {
344
- ref?: React.RefSetter<HostInstance>,
345
- ...ImageProps,
346
- }) => {
347
- let source = getImageSourcesFromImageProps(props) || {
348
- uri: undefined,
349
- width: undefined,
350
- height: undefined,
298
+ if (
299
+ accessibilityState != null ||
300
+ ariaBusy != null ||
301
+ ariaChecked != null ||
302
+ ariaDisabled != null ||
303
+ ariaExpanded != null ||
304
+ ariaSelected != null
305
+ ) {
306
+ nativeProps.accessibilityState = {
307
+ busy: ariaBusy ?? accessibilityState?.busy,
308
+ checked: ariaChecked ?? accessibilityState?.checked,
309
+ disabled: ariaDisabled ?? accessibilityState?.disabled,
310
+ expanded: ariaExpanded ?? accessibilityState?.expanded,
311
+ selected: ariaSelected ?? accessibilityState?.selected,
351
312
  };
352
- const defaultSource = resolveAssetSource(props.defaultSource);
353
- const loadingIndicatorSource = resolveAssetSource(
354
- props.loadingIndicatorSource,
355
- );
313
+ }
356
314
 
357
- if (props.children != null) {
358
- throw new Error(
359
- 'The <Image> component cannot contain children. If you want to render content on top of the image, consider using the <ImageBackground> component or absolute positioning.',
360
- );
361
- }
315
+ if (ariaHidden === true) {
316
+ nativeProps.importantForAccessibility = 'no-hide-descendants';
317
+ }
362
318
 
363
- if (props.defaultSource != null && props.loadingIndicatorSource != null) {
364
- throw new Error(
365
- 'The <Image> component cannot have defaultSource and loadingIndicatorSource at the same time. Please use either defaultSource or loadingIndicatorSource.',
366
- );
367
- }
319
+ const flattenedStyle_ = flattenStyle<ImageStyleProp>(style);
320
+ const objectFit_ = convertObjectFitToResizeMode(flattenedStyle_?.objectFit);
321
+ const resizeMode_ =
322
+ objectFit_ || resizeMode || flattenedStyle_?.resizeMode || 'cover';
323
+ nativeProps.resizeMode = resizeMode_;
368
324
 
369
- let style: ImageStyleProp;
370
- let sources;
371
- if (Array.isArray(source)) {
372
- style = [styles.base, props.style];
373
- sources = source;
374
- } else {
375
- const {uri} = source;
376
- if (uri === '') {
377
- console.warn('source.uri should not be an empty string');
378
- }
379
- const width = source.width ?? props.width;
380
- const height = source.height ?? props.height;
381
- style = [{width, height}, styles.base, props.style];
382
- sources = [source];
383
- }
325
+ const actualRef = useWrapRefWithImageAttachedCallbacks(forwardedRef);
384
326
 
385
- const {onLoadStart, onLoad, onLoadEnd, onError} = props;
386
- const nativeProps = {
387
- ...props,
388
- style,
389
- shouldNotifyLoadEvents: !!(onLoadStart || onLoad || onLoadEnd || onError),
390
- // Both iOS and C++ sides expect to have "source" prop, whereas on Android it's "src"
391
- // (for historical reasons). So in the latter case we populate both "src" and "source",
392
- // in order to have a better alignment between platforms in the future.
393
- src: sources,
394
- source: sources,
395
- /* $FlowFixMe[prop-missing](>=0.78.0 site=react_native_android_fb) This issue was found
396
- * when making Flow check .android.js files. */
397
- headers: (source?.[0]?.headers || source?.headers: ?{[string]: string}),
398
- defaultSource: defaultSource ? defaultSource.uri : null,
399
- loadingIndicatorSrc: loadingIndicatorSource
400
- ? loadingIndicatorSource.uri
401
- : null,
402
- accessibilityLabel:
403
- props['aria-label'] ?? props.accessibilityLabel ?? props.alt,
404
- accessibilityLabelledBy:
405
- props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy,
406
- accessible: props.alt !== undefined ? true : props.accessible,
407
- accessibilityState: {
408
- busy: props['aria-busy'] ?? props.accessibilityState?.busy,
409
- checked: props['aria-checked'] ?? props.accessibilityState?.checked,
410
- disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled,
411
- expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded,
412
- selected: props['aria-selected'] ?? props.accessibilityState?.selected,
413
- },
414
- importantForAccessibility:
415
- props['aria-hidden'] === true
416
- ? ('no-hide-descendants' as const)
417
- : props.importantForAccessibility,
418
- };
327
+ const analyticTag = use(ImageAnalyticsTagContext);
328
+ if (analyticTag !== null) {
329
+ nativeProps.internal_analyticTag = analyticTag;
330
+ }
419
331
 
420
- const flattenedStyle = flattenStyle<ImageStyleProp>(style);
421
- const objectFit = convertObjectFitToResizeMode(flattenedStyle?.objectFit);
422
- const resizeMode =
423
- objectFit || props.resizeMode || flattenedStyle?.resizeMode || 'cover';
424
-
425
- const actualRef = useWrapRefWithImageAttachedCallbacks(forwardedRef);
426
-
427
- return (
428
- <ImageAnalyticsTagContext.Consumer>
429
- {analyticTag => {
430
- const nativePropsWithAnalytics =
431
- analyticTag !== null
432
- ? {
433
- ...nativeProps,
434
- internal_analyticTag: analyticTag,
435
- }
436
- : nativeProps;
437
- return (
438
- <TextAncestorContext.Consumer>
439
- {hasTextAncestor => {
440
- if (hasTextAncestor) {
441
- return (
442
- <TextInlineImageNativeComponent
443
- // $FlowFixMe[incompatible-type]
444
- style={style}
445
- resizeMode={resizeMode}
446
- headers={nativeProps.headers}
447
- src={sources}
448
- ref={actualRef}
449
- />
450
- );
451
- }
452
-
453
- return (
454
- <ImageViewNativeComponent
455
- {...nativePropsWithAnalytics}
456
- resizeMode={resizeMode}
457
- ref={actualRef}
458
- />
459
- );
460
- }}
461
- </TextAncestorContext.Consumer>
462
- );
463
- }}
464
- </ImageAnalyticsTagContext.Consumer>
465
- );
466
- };
332
+ return <ImageViewNativeComponent {...nativeProps} ref={actualRef} />;
333
+ };
467
334
 
468
- _BaseImage = BaseImage;
469
- }
335
+ let _BaseImage = BaseImage;
470
336
 
471
337
  const imageComponentDecorator = unstable_getImageComponentDecorator();
472
338
  if (imageComponentDecorator != null) {
@@ -38,7 +38,7 @@ type ImageProgressEventDataIOS = {
38
38
  * @see ImagePropsIOS.onProgress
39
39
  */
40
40
  export type ImageProgressEventIOS = NativeSyntheticEvent<
41
- $ReadOnly<ImageProgressEventDataIOS>,
41
+ Readonly<ImageProgressEventDataIOS>,
42
42
  >;
43
43
 
44
44
  type ImageErrorEventData = {
@@ -46,7 +46,7 @@ type ImageErrorEventData = {
46
46
  };
47
47
 
48
48
  export type ImageErrorEvent = NativeSyntheticEvent<
49
- $ReadOnly<ImageErrorEventData>,
49
+ Readonly<ImageErrorEventData>,
50
50
  >;
51
51
 
52
52
  type ImageLoadEventData = {
@@ -57,11 +57,9 @@ type ImageLoadEventData = {
57
57
  },
58
58
  };
59
59
 
60
- export type ImageLoadEvent = NativeSyntheticEvent<
61
- $ReadOnly<ImageLoadEventData>,
62
- >;
60
+ export type ImageLoadEvent = NativeSyntheticEvent<Readonly<ImageLoadEventData>>;
63
61
 
64
- export type ImagePropsIOS = $ReadOnly<{
62
+ export type ImagePropsIOS = Readonly<{
65
63
  /**
66
64
  * A static image to display while loading the image source.
67
65
  *
@@ -82,13 +80,13 @@ export type ImagePropsIOS = $ReadOnly<{
82
80
  onProgress?: ?(event: ImageProgressEventIOS) => void,
83
81
  }>;
84
82
 
85
- export type ImagePropsAndroid = $ReadOnly<{
83
+ export type ImagePropsAndroid = Readonly<{
86
84
  /**
87
85
  * similarly to `source`, this property represents the resource used to render
88
86
  * the loading indicator for the image, displayed until image is ready to be
89
87
  * displayed, typically after when it got downloaded from network.
90
88
  */
91
- loadingIndicatorSource?: ?(number | $ReadOnly<ImageURISource>),
89
+ loadingIndicatorSource?: ?(number | Readonly<ImageURISource>),
92
90
  progressiveRenderingEnabled?: ?boolean,
93
91
  fadeDuration?: ?number,
94
92
 
@@ -127,7 +125,7 @@ export type ImagePropsAndroid = $ReadOnly<{
127
125
  resizeMultiplier?: ?number,
128
126
  }>;
129
127
 
130
- export type ImagePropsBase = $ReadOnly<{
128
+ export type ImagePropsBase = Readonly<{
131
129
  ...Omit<ViewProps, 'style'>,
132
130
  /**
133
131
  * When true, indicates the image is an accessibility element.
@@ -333,7 +331,7 @@ export type ImagePropsBase = $ReadOnly<{
333
331
  children?: empty,
334
332
  }>;
335
333
 
336
- export type ImageProps = $ReadOnly<{
334
+ export type ImageProps = Readonly<{
337
335
  ...ImagePropsIOS,
338
336
  ...ImagePropsAndroid,
339
337
  ...ImagePropsBase,
@@ -344,7 +342,7 @@ export type ImageProps = $ReadOnly<{
344
342
  style?: ?ImageStyleProp,
345
343
  }>;
346
344
 
347
- export type ImageBackgroundProps = $ReadOnly<{
345
+ export type ImageBackgroundProps = Readonly<{
348
346
  ...ImageProps,
349
347
  children?: React.Node,
350
348
 
@@ -87,7 +87,7 @@ export type ImageRequireSource = number;
87
87
  export type ImageSource =
88
88
  | ImageRequireSource
89
89
  | ImageURISource
90
- | $ReadOnlyArray<ImageURISource>;
90
+ | ReadonlyArray<ImageURISource>;
91
91
 
92
92
  type ImageSourceProperties = {
93
93
  body?: ?string,
@@ -104,7 +104,7 @@ type ImageSourceProperties = {
104
104
 
105
105
  export function getImageSourceProperties(
106
106
  imageSource: ImageURISource,
107
- ): $ReadOnly<ImageSourceProperties> {
107
+ ): Readonly<ImageSourceProperties> {
108
108
  const object: ImageSourceProperties = {};
109
109
  if (imageSource.body != null) {
110
110
  object.body = imageSource.body;
@@ -23,11 +23,15 @@ export type ImageSourceHeaders = {
23
23
  * A function which returns the appropriate value for image source
24
24
  * by resolving the `source`, `src` and `srcSet` props.
25
25
  */
26
- export function getImageSourcesFromImageProps(
27
- imageProps: ImageProps,
28
- ):
26
+ export function getImageSourcesFromImageProps(imageProps: ImageProps):
29
27
  | ?ResolvedAssetSource
30
- | $ReadOnlyArray<{uri: string, headers: ImageSourceHeaders, ...}> {
28
+ | ReadonlyArray<{
29
+ +uri: string,
30
+ +headers: ImageSourceHeaders,
31
+ +width: ?number,
32
+ +height: ?number,
33
+ ...
34
+ }> {
31
35
  let source = resolveAssetSource(imageProps.source);
32
36
 
33
37
  let sources;
@@ -23,7 +23,7 @@ export type ImageSize = {
23
23
 
24
24
  export type ImageResolvedAssetSource = ResolvedAssetSource;
25
25
 
26
- type ImageComponentStaticsIOS = $ReadOnly<{
26
+ type ImageComponentStaticsIOS = Readonly<{
27
27
  getSize(uri: string): Promise<ImageSize>,
28
28
  getSize(
29
29
  uri: string,
@@ -60,7 +60,7 @@ type ImageComponentStaticsIOS = $ReadOnly<{
60
60
  resolveAssetSource(source: ImageSource): ?ImageResolvedAssetSource,
61
61
  }>;
62
62
 
63
- type ImageComponentStaticsAndroid = $ReadOnly<{
63
+ type ImageComponentStaticsAndroid = Readonly<{
64
64
  ...ImageComponentStaticsIOS,
65
65
  abortPrefetch(requestId: number): void,
66
66
  }>;