react-native-windows 0.79.4 → 0.80.0-preview.2

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 (350) hide show
  1. package/.flowconfig +12 -3
  2. package/Directory.Build.props +5 -2
  3. package/Libraries/Alert/Alert.d.ts +4 -1
  4. package/Libraries/Alert/Alert.js +3 -0
  5. package/Libraries/Alert/Alert.windows.js +3 -0
  6. package/Libraries/Alert/RCTAlertManager.js +17 -0
  7. package/Libraries/Animated/Animated.js.flow +1 -3
  8. package/Libraries/Animated/AnimatedEvent.js +4 -3
  9. package/Libraries/Animated/AnimatedExports.js +2 -2
  10. package/Libraries/Animated/AnimatedExports.js.flow +140 -0
  11. package/Libraries/Animated/AnimatedImplementation.js +2 -123
  12. package/Libraries/Animated/Easing.js +13 -15
  13. package/Libraries/Animated/animations/Animation.js +8 -4
  14. package/Libraries/Animated/components/AnimatedFlatList.js +7 -6
  15. package/Libraries/Animated/components/AnimatedScrollView.js +48 -42
  16. package/Libraries/Animated/components/AnimatedSectionList.js +11 -7
  17. package/Libraries/Animated/createAnimatedComponent.js +105 -57
  18. package/Libraries/Animated/nodes/AnimatedNode.js +4 -3
  19. package/Libraries/Animated/nodes/AnimatedProps.js +46 -26
  20. package/Libraries/Animated/nodes/AnimatedValue.js +16 -7
  21. package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -1
  22. package/Libraries/AppState/AppState.js +7 -2
  23. package/Libraries/BatchedBridge/MessageQueue.js +2 -2
  24. package/Libraries/BatchedBridge/NativeModules.js +2 -0
  25. package/Libraries/Blob/BlobManager.js +1 -0
  26. package/Libraries/Blob/FileReader.js +219 -8
  27. package/Libraries/Blob/URL.js +37 -12
  28. package/Libraries/Blob/URLSearchParams.js +106 -31
  29. package/Libraries/Blob/URLSearchParams.js.flow +12 -7
  30. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +1 -1
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +1 -1
  32. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js +17 -0
  33. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +1 -0
  34. package/Libraries/Components/Button.d.ts +3 -0
  35. package/Libraries/Components/Button.js +1 -1
  36. package/Libraries/Components/Button.windows.js +27 -1
  37. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -3
  38. package/Libraries/{NewAppScreen/components/Colors.js → Components/DrawerAndroid/DrawerLayoutAndroid.ios.js} +6 -10
  39. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +6 -66
  40. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +18 -0
  41. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +71 -0
  42. package/Libraries/Components/Flyout/Flyout.js +11 -0
  43. package/Libraries/Components/Keyboard/Keyboard.js +5 -3
  44. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +6 -3
  45. package/Libraries/Components/Keyboard/KeyboardExt.js.map +1 -1
  46. package/Libraries/Components/Popup/Popup.js +11 -0
  47. package/Libraries/Components/Pressable/Pressable.js +20 -4
  48. package/Libraries/Components/Pressable/Pressable.windows.js +20 -4
  49. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +25 -3
  50. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +29 -20
  51. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  52. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -1
  53. package/Libraries/Components/ScrollView/ScrollView.d.ts +3 -3
  54. package/Libraries/Components/ScrollView/ScrollView.js +132 -122
  55. package/Libraries/Components/ScrollView/ScrollView.windows.js +131 -122
  56. package/Libraries/Components/StaticRenderer.js +1 -1
  57. package/Libraries/Components/Switch/Switch.d.ts +3 -0
  58. package/Libraries/Components/Switch/Switch.js +8 -4
  59. package/Libraries/Components/Switch/Switch.windows.js +17 -4
  60. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +2 -1
  61. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -4
  62. package/Libraries/Components/TextInput/TextInput.d.ts +70 -33
  63. package/Libraries/Components/TextInput/TextInput.flow.js +100 -51
  64. package/Libraries/Components/TextInput/TextInput.flow.windows.js +1246 -0
  65. package/Libraries/Components/TextInput/TextInput.js +88 -1027
  66. package/Libraries/Components/TextInput/TextInput.windows.js +104 -1092
  67. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  68. package/Libraries/Components/TextInput/TextInputState.windows.js +1 -1
  69. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +2 -1
  70. package/Libraries/{Modal/ModalInjection.js → Components/ToastAndroid/ToastAndroid.ios.js} +3 -5
  71. package/Libraries/Components/ToastAndroid/ToastAndroid.js +4 -32
  72. package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +109 -0
  73. package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +45 -0
  74. package/Libraries/Components/Touchable/Touchable.js +5 -5
  75. package/Libraries/Components/Touchable/Touchable.windows.js +5 -5
  76. package/Libraries/Components/Touchable/TouchableBounce.js +14 -7
  77. package/Libraries/Components/Touchable/TouchableBounce.windows.js +14 -7
  78. package/Libraries/Components/Touchable/TouchableHighlight.js +10 -7
  79. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +10 -7
  80. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +6 -6
  81. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +6 -6
  82. package/Libraries/Components/Touchable/TouchableOpacity.js +13 -6
  83. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +13 -6
  84. package/Libraries/Components/View/View.js +18 -21
  85. package/Libraries/Components/View/View.windows.js +39 -41
  86. package/Libraries/Components/View/ViewAccessibility.d.ts +8 -0
  87. package/Libraries/Components/View/ViewAccessibility.js +25 -1
  88. package/Libraries/Components/View/ViewAccessibility.windows.js +9 -1
  89. package/Libraries/Components/View/ViewPropTypes.js +49 -3
  90. package/Libraries/Components/View/ViewPropTypes.windows.js +50 -2
  91. package/Libraries/Core/ReactNativeVersion.js +1 -1
  92. package/Libraries/Core/setUpReactDevTools.js +5 -5
  93. package/Libraries/Debugging/DebuggingOverlayRegistry.js +3 -3
  94. package/Libraries/EventEmitter/NativeEventEmitter.js +9 -4
  95. package/Libraries/Image/AssetSourceResolver.js +17 -4
  96. package/Libraries/Image/AssetSourceResolver.windows.js +17 -4
  97. package/Libraries/Image/Image.d.ts +26 -10
  98. package/Libraries/Image/Image.js +17 -0
  99. package/Libraries/Image/Image.js.flow +5 -5
  100. package/Libraries/Image/Image.windows.js +13 -1
  101. package/Libraries/Image/ImageBackground.js +2 -0
  102. package/Libraries/Image/ImageInjection.js +1 -1
  103. package/Libraries/Image/ImageProps.js +22 -17
  104. package/Libraries/Image/ImageSource.js +3 -1
  105. package/Libraries/Image/ImageSourceUtils.js +4 -2
  106. package/Libraries/Image/ImageTypes.flow.js +1 -1
  107. package/Libraries/Interaction/InteractionManager.d.ts +13 -0
  108. package/Libraries/Interaction/InteractionManager.js +1 -1
  109. package/Libraries/Interaction/PanResponder.js +3 -3
  110. package/Libraries/Interaction/TaskQueue.js +1 -0
  111. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  112. package/Libraries/Linking/Linking.js +1 -1
  113. package/Libraries/Lists/FlatList.d.ts +2 -2
  114. package/Libraries/Lists/FlatList.js +8 -11
  115. package/Libraries/Lists/SectionList.js +39 -42
  116. package/Libraries/Lists/SectionListModern.js +25 -34
  117. package/Libraries/Lists/VirtualizedList.js +1 -0
  118. package/Libraries/Lists/VirtualizedSectionList.js +1 -0
  119. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  120. package/Libraries/LogBox/LogBoxNotificationContainer.js +1 -1
  121. package/Libraries/Modal/Modal.js +33 -7
  122. package/Libraries/Modal/Modal.windows.js +33 -10
  123. package/Libraries/NativeComponent/BaseViewConfig.android.js +2 -0
  124. package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -0
  125. package/Libraries/NativeComponent/BaseViewConfig.js +17 -0
  126. package/Libraries/NativeComponent/BaseViewConfig.windows.js +3 -0
  127. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +2 -2
  128. package/Libraries/NativeModules/specs/NativeDevMenu.js +2 -2
  129. package/Libraries/Network/RCTNetworking.android.js +1 -1
  130. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  131. package/Libraries/Network/RCTNetworking.js +17 -0
  132. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  133. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  134. package/Libraries/Network/XMLHttpRequest.js +781 -10
  135. package/Libraries/Performance/Systrace.js +7 -7
  136. package/Libraries/Pressability/Pressability.js +1 -1
  137. package/Libraries/Pressability/Pressability.windows.js +1 -1
  138. package/Libraries/ReactNative/AppContainer-dev.js +5 -4
  139. package/Libraries/ReactNative/AppRegistry.flow.js +49 -0
  140. package/Libraries/ReactNative/AppRegistry.js +2 -322
  141. package/Libraries/ReactNative/AppRegistry.js.flow +23 -0
  142. package/Libraries/ReactNative/AppRegistryImpl.js +316 -0
  143. package/Libraries/ReactNative/FabricUIManager.js +10 -0
  144. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -4
  145. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -4
  146. package/Libraries/ReactNative/RendererImplementation.js +10 -5
  147. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -0
  148. package/Libraries/ReactNative/renderApplication.js +9 -0
  149. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +3 -3
  150. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +51 -0
  151. package/Libraries/Renderer/implementations/ReactFabric-dev.js +4840 -4748
  152. package/Libraries/Renderer/implementations/ReactFabric-prod.js +4947 -4829
  153. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3998 -3888
  154. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5005 -4948
  155. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +2744 -2652
  156. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +5020 -4933
  157. package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -3
  158. package/Libraries/Settings/Settings.ios.js +1 -0
  159. package/Libraries/Settings/Settings.js +13 -19
  160. package/Libraries/Settings/SettingsFallback.js +33 -0
  161. package/Libraries/StyleSheet/PlatformColorValueTypes.js +15 -0
  162. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +6 -0
  163. package/Libraries/StyleSheet/Rect.js +1 -0
  164. package/Libraries/StyleSheet/StyleSheet.js +31 -200
  165. package/Libraries/StyleSheet/StyleSheet.js.flow +188 -0
  166. package/Libraries/StyleSheet/StyleSheetExports.js +210 -0
  167. package/Libraries/StyleSheet/StyleSheetExports.js.flow +112 -0
  168. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
  169. package/Libraries/StyleSheet/StyleSheetTypes.js +130 -52
  170. package/Libraries/StyleSheet/flattenStyle.js +14 -4
  171. package/Libraries/StyleSheet/private/_TransformStyle.js +49 -21
  172. package/Libraries/StyleSheet/processBackgroundImage.js +670 -214
  173. package/Libraries/Text/Text.d.ts +2 -5
  174. package/Libraries/Text/Text.js +3 -3
  175. package/Libraries/Text/Text.windows.js +3 -3
  176. package/Libraries/Text/TextNativeComponent.js +0 -4
  177. package/Libraries/Text/TextProps.js +5 -33
  178. package/Libraries/Text/TextProps.windows.js +5 -32
  179. package/Libraries/Types/CodegenTypesNamespace.d.ts +45 -0
  180. package/Libraries/{Blob/__mocks__/BlobModule.js → Types/CodegenTypesNamespace.js} +4 -6
  181. package/Libraries/Types/CoreEventTypes.d.ts +6 -1
  182. package/Libraries/Types/CoreEventTypes.js +1 -1
  183. package/Libraries/Types/CoreEventTypes.windows.js +1 -1
  184. package/Libraries/Utilities/Appearance.js +2 -0
  185. package/Libraries/Utilities/BackHandler.js +17 -0
  186. package/Libraries/Utilities/DeviceInfo.js +2 -0
  187. package/Libraries/Utilities/Dimensions.js +1 -1
  188. package/Libraries/Utilities/Platform.js +17 -0
  189. package/Libraries/Utilities/PlatformTypes.js +11 -3
  190. package/Libraries/Utilities/ReactNativeTestTools.js +2 -2
  191. package/Libraries/Utilities/codegenNativeCommands.d.ts +18 -0
  192. package/Libraries/Utilities/codegenNativeComponent.d.ts +26 -0
  193. package/Libraries/WebSocket/WebSocket.js +313 -8
  194. package/Libraries/vendor/core/ErrorUtils.js +28 -2
  195. package/Libraries/vendor/emitter/EventEmitter.js +6 -2
  196. package/Microsoft.ReactNative/CompositionSwitcher.idl +8 -0
  197. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +0 -6
  198. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +197 -1
  199. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +34 -4
  200. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +12 -0
  201. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +36 -33
  202. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +81 -0
  203. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +5 -0
  204. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +148 -14
  205. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +4 -0
  206. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputEventEmitter.cpp +29 -0
  207. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputEventEmitter.h +2 -0
  208. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +17 -34
  209. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +9 -3
  210. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
  211. package/Microsoft.ReactNative/Fabric/ImageManager.cpp +1 -1
  212. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +16 -0
  213. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.h +1 -0
  214. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +9 -0
  215. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +1 -0
  216. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +4 -0
  217. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +36 -96
  218. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.h +1 -1
  219. package/Microsoft.ReactNative/Modules/SampleTurboModule.cpp +4 -0
  220. package/Microsoft.ReactNative/Modules/SampleTurboModule.h +3 -0
  221. package/Microsoft.ReactNative/TurboModulesProvider.h +1 -1
  222. package/Microsoft.ReactNative.Cxx/JSI/JsiApiContext.h +1 -1
  223. package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
  224. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  225. package/PropertySheets/React.Cpp.props +4 -0
  226. package/README.md +2 -2
  227. package/ReactCommon/ReactCommon.vcxproj +9 -4
  228. package/ReactCommon/ReactCommon.vcxproj.filters +6 -0
  229. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +253 -0
  230. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +5 -2
  231. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +4 -8
  232. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +184 -0
  233. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +22 -0
  234. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +2 -4
  235. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleWithJSIBindings.cpp +27 -0
  236. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +3 -2
  237. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +1 -1
  238. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityProps.cpp +308 -0
  239. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/DynamicEventPayload.cpp +42 -0
  240. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/css/CSSTokenizer.h +7 -51
  241. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +10 -5
  242. package/Scripts/creaternwapp.cmd +9 -3
  243. package/Shared/Shared.vcxitems +3 -2
  244. package/Shared/Shared.vcxitems.filters +2 -1
  245. package/codegen/NativeAnimatedModuleSpec.g.h +2 -0
  246. package/codegen/NativeAnimatedTurboModuleSpec.g.h +2 -0
  247. package/codegen/NativePerformanceSpec.g.h +14 -0
  248. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +151 -127
  249. package/codegen/NativeSampleTurboModuleSpec.g.h +14 -8
  250. package/codegen/react/components/rnwcore/EventEmitters.cpp +48 -48
  251. package/codegen/rnwcoreJSI-generated.cpp +159 -129
  252. package/codegen/rnwcoreJSI.h +534 -408
  253. package/index.js +51 -331
  254. package/index.windows.js +70 -352
  255. package/interface.js +0 -4
  256. package/jest/resolver.js +31 -0
  257. package/jest/setup.js +6 -2
  258. package/package.json +29 -28
  259. package/src/private/animated/NativeAnimatedHelper.js +21 -8
  260. package/src/private/animated/createAnimatedPropsHook.js +11 -16
  261. package/src/private/animated/createAnimatedPropsMemoHook.js +1 -2
  262. package/src/private/components/{SafeAreaView_INTERNAL_DO_NOT_USE.js → safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js} +6 -6
  263. package/src/private/components/{HScrollViewNativeComponents.js → scrollview/HScrollViewNativeComponents.js} +8 -8
  264. package/src/private/components/scrollview/VScrollViewNativeComponents.js +25 -0
  265. package/src/private/{devmenu → devsupport/devmenu}/DevMenu.js +1 -1
  266. package/src/private/{inspector → devsupport/devmenu/elementinspector}/BorderBox.js +3 -3
  267. package/src/private/{inspector → devsupport/devmenu/elementinspector}/BoxInspector.js +6 -5
  268. package/src/private/{inspector → devsupport/devmenu/elementinspector}/ElementBox.js +8 -6
  269. package/src/private/{inspector → devsupport/devmenu/elementinspector}/ElementProperties.js +11 -10
  270. package/src/private/{inspector → devsupport/devmenu/elementinspector}/Inspector.js +14 -12
  271. package/src/private/{inspector → devsupport/devmenu/elementinspector}/InspectorOverlay.js +5 -4
  272. package/src/private/{inspector → devsupport/devmenu/elementinspector}/InspectorPanel.js +9 -8
  273. package/src/private/{inspector → devsupport/devmenu/elementinspector}/NetworkOverlay.js +10 -9
  274. package/src/private/{inspector → devsupport/devmenu/elementinspector}/ReactDevToolsOverlay.js +7 -7
  275. package/src/private/{inspector → devsupport/devmenu/elementinspector}/StyleInspector.js +7 -6
  276. package/src/private/{inspector → devsupport/devmenu/elementinspector}/XHRInterceptor.js +2 -2
  277. package/src/private/{inspector → devsupport/devmenu/elementinspector}/getInspectorDataForViewAtPoint.js +4 -4
  278. package/src/private/{inspector → devsupport/devmenu/elementinspector}/resolveBoxStyle.js +1 -1
  279. package/src/private/{inspector → devsupport/devmenu/perfmonitor}/PerformanceOverlay.js +6 -5
  280. package/src/private/{specs_DEPRECATED/modules → devsupport/devmenu/specs}/NativeDevMenu.js +2 -2
  281. package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.android.js +1 -1
  282. package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.ios.js +1 -1
  283. package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.windows.js +1 -1
  284. package/src/private/{debugging → devsupport/rndevtools}/setUpFuseboxReactDevToolsDispatcher.js +1 -1
  285. package/src/private/{fusebox → devsupport/rndevtools}/specs/NativeReactDevToolsRuntimeSettingsModule.js +2 -2
  286. package/src/private/{specs_DEPRECATED/modules → devsupport/rndevtools/specs}/NativeReactDevToolsSettingsManager.js +2 -2
  287. package/src/private/featureflags/ReactNativeFeatureFlags.js +82 -80
  288. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +12 -1
  289. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +17 -13
  290. package/src/private/renderer/errorhandling/ErrorHandlers.js +2 -2
  291. package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +1 -1
  292. package/src/private/specs_DEPRECATED/modules/NativeAnimatedTurboModule.js +1 -1
  293. package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +3 -0
  294. package/src/private/styles/composeStyles.js +12 -5
  295. package/src/private/types/HostComponent.js +1 -1
  296. package/src/private/types/HostInstance.js +67 -1
  297. package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -5
  298. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -18
  299. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +6 -0
  300. package/src/private/webapis/performance/Performance.js +1 -3
  301. package/src/private/webapis/performance/PerformanceEntry.js +6 -1
  302. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +3 -0
  303. package/src/private/webapis/performance/specs/NativePerformance.js +10 -1
  304. package/src/types/globals.d.ts +42 -0
  305. package/stubs/double-conversion/double-conversion.h +3 -1
  306. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +4 -0
  307. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +4 -0
  308. package/types/index.d.ts +6 -3
  309. package/types/public/ReactNativeTypes.d.ts +2 -2
  310. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestConfig.js +0 -38
  311. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestModule.js +0 -22
  312. package/Libraries/Blob/FileReader_new.js +0 -231
  313. package/Libraries/Blob/FileReader_old.js +0 -186
  314. package/Libraries/Blob/__mocks__/FileReaderModule.js +0 -20
  315. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +0 -32
  316. package/Libraries/Core/__mocks__/ErrorUtils.js +0 -33
  317. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -19
  318. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +0 -49
  319. package/Libraries/Events/CustomEvent.js +0 -32
  320. package/Libraries/Events/EventPolyfill.js +0 -239
  321. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +0 -118
  322. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +0 -134
  323. package/Libraries/Network/XMLHttpRequest_new.js +0 -794
  324. package/Libraries/Network/XMLHttpRequest_old.js +0 -701
  325. package/Libraries/NewAppScreen/components/DebugInstructions.js +0 -41
  326. package/Libraries/NewAppScreen/components/DebugInstructions.windows.js +0 -30
  327. package/Libraries/NewAppScreen/components/Header.js +0 -77
  328. package/Libraries/NewAppScreen/components/HermesBadge.js +0 -53
  329. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +0 -148
  330. package/Libraries/NewAppScreen/components/ReloadInstructions.js +0 -39
  331. package/Libraries/NewAppScreen/components/ReloadInstructions.windows.js +0 -31
  332. package/Libraries/NewAppScreen/components/logo.png +0 -0
  333. package/Libraries/NewAppScreen/index.js +0 -25
  334. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +0 -58
  335. package/Libraries/Utilities/__mocks__/BackHandler.js +0 -45
  336. package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +0 -16
  337. package/Libraries/Utilities/__mocks__/PixelRatio.js +0 -25
  338. package/Libraries/WebSocket/WebSocketEvent.js +0 -30
  339. package/Libraries/WebSocket/WebSocket_new.js +0 -325
  340. package/Libraries/WebSocket/WebSocket_old.js +0 -297
  341. package/Libraries/WebSocket/__mocks__/event-target-shim.js +0 -27
  342. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +0 -30
  343. package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +0 -81
  344. package/jest/__tests__/setup-test.js +0 -18
  345. package/src/private/components/VScrollViewNativeComponents.js +0 -25
  346. package/src/private/utilities/ensureInstance.js +0 -21
  347. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +0 -267
  348. package/types/modules/LaunchScreen.d.ts +0 -18
  349. /package/src/private/{devmenu → devsupport/devmenu}/DevMenu.d.ts +0 -0
  350. /package/src/private/{debugging → devsupport/rndevtools}/FuseboxSessionObserver.js +0 -0
@@ -12,8 +12,10 @@
12
12
 
13
13
  import type {ScrollResponderType} from '../Components/ScrollView/ScrollView';
14
14
  import type {
15
+ ListRenderItemInfo,
15
16
  ScrollToLocationParamsType,
16
17
  SectionBase as _SectionBase,
18
+ SectionData,
17
19
  VirtualizedSectionListProps,
18
20
  } from '@react-native/virtualized-lists';
19
21
 
@@ -23,11 +25,21 @@ import * as React from 'react';
23
25
 
24
26
  const VirtualizedSectionList = VirtualizedLists.VirtualizedSectionList;
25
27
 
26
- type Item = any;
28
+ type DefaultSectionT = {
29
+ [key: string]: any,
30
+ };
31
+
32
+ export type SectionBase<
33
+ SectionItemT,
34
+ SectionT = DefaultSectionT,
35
+ > = _SectionBase<SectionItemT, SectionT>;
27
36
 
28
- export type SectionBase<SectionItemT> = _SectionBase<SectionItemT>;
37
+ export type {
38
+ SectionData as SectionListData,
39
+ ScrollToLocationParamsType as SectionListScrollParams,
40
+ };
29
41
 
30
- type RequiredProps<SectionT: SectionBase<any>> = {
42
+ type RequiredProps<ItemT, SectionT = DefaultSectionT> = {
31
43
  /**
32
44
  * The actual data to render, akin to the `data` prop in [`<FlatList>`](https://reactnative.dev/docs/flatlist).
33
45
  *
@@ -39,25 +51,24 @@ type RequiredProps<SectionT: SectionBase<any>> = {
39
51
  * ItemSeparatorComponent?: ?ReactClass<{highlighted: boolean, ...}>,
40
52
  * }>
41
53
  */
42
- sections: $ReadOnlyArray<SectionT>,
54
+ sections: $ReadOnlyArray<SectionData<ItemT, SectionT>>,
43
55
  };
44
56
 
45
- type OptionalProps<SectionT: SectionBase<any>> = {
57
+ export type SectionListRenderItemInfo<ItemT, SectionT = DefaultSectionT> = {
58
+ ...ListRenderItemInfo<ItemT>,
59
+ section: SectionData<ItemT, SectionT>,
60
+ ...
61
+ };
62
+
63
+ export type SectionListRenderItem<ItemT, SectionT = DefaultSectionT> = (
64
+ info: SectionListRenderItemInfo<ItemT, SectionT>,
65
+ ) => React.Node | null;
66
+
67
+ type OptionalProps<ItemT, SectionT = DefaultSectionT> = {
46
68
  /**
47
69
  * Default renderer for every item in every section. Can be over-ridden on a per-section basis.
48
70
  */
49
- renderItem?: (info: {
50
- item: Item,
51
- index: number,
52
- section: SectionT,
53
- separators: {
54
- highlight: () => void,
55
- unhighlight: () => void,
56
- updateProps: (select: 'leading' | 'trailing', newProps: Object) => void,
57
- ...
58
- },
59
- ...
60
- }) => null | React.Node,
71
+ renderItem?: SectionListRenderItem<ItemT, SectionT>,
61
72
  /**
62
73
  * A marker property for telling the list to re-render (since it implements `PureComponent`). If
63
74
  * any of your `renderItem`, Header, Footer, etc. functions depend on anything outside of the
@@ -80,7 +91,7 @@ type OptionalProps<SectionT: SectionBase<any>> = {
80
91
  * falls back to using the index, like react does. Note that this sets keys for each item, but
81
92
  * each overall section still needs its own key.
82
93
  */
83
- keyExtractor?: ?(item: Item, index: number) => string,
94
+ keyExtractor?: ?(item: ItemT, index: number) => string,
84
95
  /**
85
96
  * Called once when the scroll position gets within `onEndReachedThreshold` of the rendered
86
97
  * content.
@@ -94,28 +105,13 @@ type OptionalProps<SectionT: SectionBase<any>> = {
94
105
  removeClippedSubviews?: boolean,
95
106
  };
96
107
 
97
- export type Props<SectionT> = {
98
- ...$Diff<
99
- VirtualizedSectionListProps<SectionT>,
100
- {
101
- getItem: $PropertyType<VirtualizedSectionListProps<SectionT>, 'getItem'>,
102
- getItemCount: $PropertyType<
103
- VirtualizedSectionListProps<SectionT>,
104
- 'getItemCount',
105
- >,
106
- renderItem: $PropertyType<
107
- VirtualizedSectionListProps<SectionT>,
108
- 'renderItem',
109
- >,
110
- keyExtractor: $PropertyType<
111
- VirtualizedSectionListProps<SectionT>,
112
- 'keyExtractor',
113
- >,
114
- ...
115
- },
108
+ export type SectionListProps<ItemT, SectionT = DefaultSectionT> = {
109
+ ...Omit<
110
+ VirtualizedSectionListProps<ItemT, SectionT>,
111
+ 'getItem' | 'getItemCount' | 'renderItem' | 'keyExtractor',
116
112
  >,
117
- ...RequiredProps<SectionT>,
118
- ...OptionalProps<SectionT>,
113
+ ...RequiredProps<ItemT, SectionT>,
114
+ ...OptionalProps<ItemT, SectionT>,
119
115
  };
120
116
 
121
117
  /**
@@ -174,9 +170,10 @@ export type Props<SectionT> = {
174
170
  *
175
171
  */
176
172
  export default class SectionList<
177
- SectionT: SectionBase<any>,
178
- > extends React.PureComponent<Props<SectionT>, void> {
179
- props: Props<SectionT>;
173
+ ItemT = any,
174
+ SectionT = DefaultSectionT,
175
+ > extends React.PureComponent<SectionListProps<ItemT, SectionT>> {
176
+ props: SectionListProps<ItemT, SectionT>;
180
177
 
181
178
  /**
182
179
  * Scrolls to the item at the specified `sectionIndex` and `itemIndex` (within the section)
@@ -14,21 +14,27 @@ import type {ScrollResponderType} from '../Components/ScrollView/ScrollView';
14
14
  import type {
15
15
  ScrollToLocationParamsType,
16
16
  SectionBase as _SectionBase,
17
+ SectionData,
17
18
  VirtualizedSectionListProps,
18
19
  } from '@react-native/virtualized-lists';
19
- import type {ElementRef} from 'react';
20
20
 
21
21
  import Platform from '../Utilities/Platform';
22
22
  import VirtualizedLists from '@react-native/virtualized-lists';
23
- import React, {forwardRef, useImperativeHandle, useRef} from 'react';
23
+ import * as React from 'react';
24
+ import {forwardRef, useImperativeHandle, useRef} from 'react';
24
25
 
25
26
  const VirtualizedSectionList = VirtualizedLists.VirtualizedSectionList;
26
27
 
27
- type Item = any;
28
+ type DefaultSectionT = {
29
+ [key: string]: any,
30
+ };
28
31
 
29
- export type SectionBase<SectionItemT> = _SectionBase<SectionItemT>;
32
+ export type SectionBase<
33
+ SectionItemT,
34
+ SectionT = DefaultSectionT,
35
+ > = _SectionBase<SectionItemT, SectionT>;
30
36
 
31
- type RequiredProps<SectionT: SectionBase<any>> = {
37
+ type RequiredProps<ItemT, SectionT = DefaultSectionT> = {
32
38
  /**
33
39
  * The actual data to render, akin to the `data` prop in [`<FlatList>`](https://reactnative.dev/docs/flatlist).
34
40
  *
@@ -40,17 +46,17 @@ type RequiredProps<SectionT: SectionBase<any>> = {
40
46
  * ItemSeparatorComponent?: ?ReactClass<{highlighted: boolean, ...}>,
41
47
  * }>
42
48
  */
43
- sections: $ReadOnlyArray<SectionT>,
49
+ sections: $ReadOnlyArray<SectionData<ItemT, SectionT>>,
44
50
  };
45
51
 
46
- type OptionalProps<SectionT: SectionBase<any>> = {
52
+ type OptionalProps<ItemT, SectionT = DefaultSectionT> = {
47
53
  /**
48
54
  * Default renderer for every item in every section. Can be over-ridden on a per-section basis.
49
55
  */
50
56
  renderItem?: (info: {
51
- item: Item,
57
+ item: ItemT,
52
58
  index: number,
53
- section: SectionT,
59
+ section: SectionData<ItemT, SectionT>,
54
60
  separators: {
55
61
  highlight: () => void,
56
62
  unhighlight: () => void,
@@ -81,7 +87,7 @@ type OptionalProps<SectionT: SectionBase<any>> = {
81
87
  * falls back to using the index, like react does. Note that this sets keys for each item, but
82
88
  * each overall section still needs its own key.
83
89
  */
84
- keyExtractor?: ?(item: Item, index: number) => string,
90
+ keyExtractor?: ?(item: ItemT, index: number) => string,
85
91
  /**
86
92
  * Called once when the scroll position gets within `onEndReachedThreshold` of the rendered
87
93
  * content.
@@ -95,28 +101,13 @@ type OptionalProps<SectionT: SectionBase<any>> = {
95
101
  removeClippedSubviews?: boolean,
96
102
  };
97
103
 
98
- export type Props<SectionT: SectionBase<any>> = $ReadOnly<{
99
- ...$Diff<
100
- VirtualizedSectionListProps<SectionT>,
101
- {
102
- getItem: $PropertyType<VirtualizedSectionListProps<SectionT>, 'getItem'>,
103
- getItemCount: $PropertyType<
104
- VirtualizedSectionListProps<SectionT>,
105
- 'getItemCount',
106
- >,
107
- renderItem: $PropertyType<
108
- VirtualizedSectionListProps<SectionT>,
109
- 'renderItem',
110
- >,
111
- keyExtractor: $PropertyType<
112
- VirtualizedSectionListProps<SectionT>,
113
- 'keyExtractor',
114
- >,
115
- ...
116
- },
104
+ export type Props<ItemT, SectionT = DefaultSectionT> = $ReadOnly<{
105
+ ...Omit<
106
+ VirtualizedSectionListProps<ItemT, SectionT>,
107
+ 'getItem' | 'getItemCount' | 'renderItem' | 'keyExtractor',
117
108
  >,
118
- ...RequiredProps<SectionT>,
119
- ...OptionalProps<SectionT>,
109
+ ...RequiredProps<ItemT, SectionT>,
110
+ ...OptionalProps<ItemT, SectionT>,
120
111
  }>;
121
112
 
122
113
  /**
@@ -176,14 +167,14 @@ export type Props<SectionT: SectionBase<any>> = $ReadOnly<{
176
167
  */
177
168
  const SectionList: component(
178
169
  ref?: React.RefSetter<any>,
179
- ...Props<SectionBase<any>>
180
- ) = forwardRef<Props<SectionBase<any>>, any>((props, ref) => {
170
+ ...Props<any, DefaultSectionT>
171
+ ) = forwardRef<Props<any, DefaultSectionT>, any>((props, ref) => {
181
172
  const propsWithDefaults = {
182
173
  stickySectionHeadersEnabled: Platform.OS === 'ios',
183
174
  ...props,
184
175
  };
185
176
 
186
- const wrapperRef = useRef<?ElementRef<typeof VirtualizedSectionList>>();
177
+ const wrapperRef = useRef<?React.ElementRef<typeof VirtualizedSectionList>>();
187
178
 
188
179
  useImperativeHandle(
189
180
  ref,
@@ -19,5 +19,6 @@ export type {
19
19
  ListRenderItemInfo,
20
20
  ListRenderItem,
21
21
  Separators,
22
+ VirtualizedListProps,
22
23
  } from '@react-native/virtualized-lists';
23
24
  export default VirtualizedList;
@@ -20,5 +20,6 @@ const VirtualizedSectionList: VirtualizedSectionListType =
20
20
  export type {
21
21
  SectionBase,
22
22
  ScrollToLocationParamsType,
23
+ VirtualizedSectionListProps,
23
24
  } from '@react-native/virtualized-lists';
24
25
  export default VirtualizedSectionList;
@@ -18,7 +18,7 @@ import type {
18
18
  Message,
19
19
  } from './parseLogBoxLog';
20
20
 
21
- import DebuggerSessionObserver from '../../../src/private/debugging/FuseboxSessionObserver';
21
+ import DebuggerSessionObserver from '../../../src/private/devsupport/rndevtools/FuseboxSessionObserver';
22
22
  import parseErrorStack from '../../Core/Devtools/parseErrorStack';
23
23
  import NativeDevSettings from '../../NativeModules/specs/NativeDevSettings';
24
24
  import NativeLogBox from '../../NativeModules/specs/NativeLogBox';
@@ -8,7 +8,7 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import SafeAreaView from '../../src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE';
11
+ import SafeAreaView from '../../src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE';
12
12
  import View from '../Components/View/View';
13
13
  import StyleSheet from '../StyleSheet/StyleSheet';
14
14
  import * as LogBoxData from './Data/LogBoxData';
@@ -8,6 +8,7 @@
8
8
  * @flow strict-local
9
9
  */
10
10
 
11
+ import type {HostInstance} from '../../src/private/types/HostInstance';
11
12
  import type {ViewProps} from '../Components/View/ViewPropTypes';
12
13
  import type {RootTag} from '../ReactNative/RootTag';
13
14
  import type {DirectEventHandler} from '../Types/CodegenTypes';
@@ -15,11 +16,10 @@ import type {DirectEventHandler} from '../Types/CodegenTypes';
15
16
  import NativeEventEmitter from '../EventEmitter/NativeEventEmitter';
16
17
  import {type ColorValue} from '../StyleSheet/StyleSheet';
17
18
  import {type EventSubscription} from '../vendor/emitter/EventEmitter';
18
- import ModalInjection from './ModalInjection';
19
19
  import NativeModalManager from './NativeModalManager';
20
20
  import RCTModalHostView from './RCTModalHostViewNativeComponent';
21
21
  import VirtualizedLists from '@react-native/virtualized-lists';
22
- import React from 'react';
22
+ import * as React from 'react';
23
23
 
24
24
  const ScrollView = require('../Components/ScrollView/ScrollView').default;
25
25
  const View = require('../Components/View/View').default;
@@ -36,6 +36,8 @@ type ModalEventDefinitions = {
36
36
  modalDismissed: [{modalID: number}],
37
37
  };
38
38
 
39
+ export type PublicModalInstance = HostInstance;
40
+
39
41
  const ModalEventEmitter =
40
42
  Platform.OS === 'ios' && NativeModalManager != null
41
43
  ? new NativeEventEmitter<ModalEventDefinitions>(
@@ -101,6 +103,11 @@ export type ModalBaseProps = {
101
103
  * Defaults to `white` if not provided and transparent is `false`. Ignored if `transparent` is `true`.
102
104
  */
103
105
  backdropColor?: ColorValue,
106
+
107
+ /**
108
+ * A ref to the native Modal component.
109
+ */
110
+ modalRef?: React.RefSetter<PublicModalInstance>,
104
111
  };
105
112
 
106
113
  export type ModalPropsIOS = {
@@ -190,11 +197,11 @@ function confirmProps(props: ModalProps) {
190
197
 
191
198
  // Create a state to track whether the Modal is rendering or not.
192
199
  // This is the only prop that controls whether the modal is rendered or not.
193
- type State = {
200
+ type ModalState = {
194
201
  isRendered: boolean,
195
202
  };
196
203
 
197
- class Modal extends React.Component<ModalProps, State> {
204
+ class Modal extends React.Component<ModalProps, ModalState> {
198
205
  static defaultProps: {hardwareAccelerated: boolean, visible: boolean} = {
199
206
  visible: true,
200
207
  hardwareAccelerated: false,
@@ -308,6 +315,7 @@ class Modal extends React.Component<ModalProps, State> {
308
315
  onRequestClose={this.props.onRequestClose}
309
316
  onShow={this.props.onShow}
310
317
  onDismiss={onDismiss}
318
+ ref={this.props.modalRef}
311
319
  visible={this.props.visible}
312
320
  statusBarTranslucent={this.props.statusBarTranslucent}
313
321
  navigationBarTranslucent={this.props.navigationBarTranslucent}
@@ -354,7 +362,25 @@ const styles = StyleSheet.create({
354
362
  },
355
363
  });
356
364
 
357
- const ExportedModal: React.ComponentType<React.ElementConfig<typeof Modal>> =
358
- ModalInjection.unstable_Modal ?? Modal;
365
+ type ModalRefProps = $ReadOnly<{
366
+ ref?: React.RefSetter<PublicModalInstance>,
367
+ }>;
368
+
369
+ // NOTE: This wrapper component is necessary because `Modal` is a class
370
+ // component and we need to map `ref` to a differently named prop. This can be
371
+ // removed when `Modal` is a functional component.
372
+ function Wrapper({
373
+ ref,
374
+ ...props
375
+ }: {
376
+ ...ModalRefProps,
377
+ ...ModalProps,
378
+ }): React.Node {
379
+ return <Modal {...props} modalRef={ref} />;
380
+ }
381
+
382
+ Wrapper.displayName = 'Modal';
383
+ // $FlowExpectedError[prop-missing]
384
+ Wrapper.Context = VirtualizedListContextResetter;
359
385
 
360
- export default ExportedModal;
386
+ export default Wrapper;
@@ -8,6 +8,7 @@
8
8
  * @flow strict-local
9
9
  */
10
10
 
11
+ import type {HostInstance} from '../../src/private/types/HostInstance';
11
12
  import type {ViewProps} from '../Components/View/ViewPropTypes';
12
13
  import type {RootTag} from '../ReactNative/RootTag';
13
14
  import type {DirectEventHandler} from '../Types/CodegenTypes';
@@ -15,11 +16,10 @@ import type {DirectEventHandler} from '../Types/CodegenTypes';
15
16
  import NativeEventEmitter from '../EventEmitter/NativeEventEmitter';
16
17
  import {type ColorValue} from '../StyleSheet/StyleSheet';
17
18
  import {type EventSubscription} from '../vendor/emitter/EventEmitter';
18
- import ModalInjection from './ModalInjection';
19
19
  import NativeModalManager from './NativeModalManager';
20
20
  import RCTModalHostView from './RCTModalHostViewNativeComponent';
21
21
  import VirtualizedLists from '@react-native/virtualized-lists';
22
- import React from 'react';
22
+ import * as React from 'react';
23
23
 
24
24
  const ScrollView = require('../Components/ScrollView/ScrollView').default;
25
25
  const View = require('../Components/View/View').default;
@@ -36,6 +36,8 @@ type ModalEventDefinitions = {
36
36
  modalDismissed: [{modalID: number}],
37
37
  };
38
38
 
39
+ export type PublicModalInstance = HostInstance;
40
+
39
41
  const ModalEventEmitter =
40
42
  (Platform.OS === 'ios' || Platform.OS === 'windows') && // [Windows]
41
43
  NativeModalManager != null
@@ -104,6 +106,11 @@ export type ModalBaseProps = {
104
106
  * Defaults to `white` if not provided and transparent is `false`. Ignored if `transparent` is `true`.
105
107
  */
106
108
  backdropColor?: ColorValue,
109
+
110
+ /**
111
+ * A ref to the native Modal component.
112
+ */
113
+ modalRef?: React.RefSetter<PublicModalInstance>,
107
114
  };
108
115
 
109
116
  export type ModalPropsIOS = {
@@ -201,11 +208,11 @@ function confirmProps(props: ModalProps) {
201
208
 
202
209
  // Create a state to track whether the Modal is rendering or not.
203
210
  // This is the only prop that controls whether the modal is rendered or not.
204
- type State = {
211
+ type ModalState = {
205
212
  isRendered: boolean,
206
213
  };
207
214
 
208
- class Modal extends React.Component<ModalProps, State> {
215
+ class Modal extends React.Component<ModalProps, ModalState> {
209
216
  static defaultProps: {hardwareAccelerated: boolean, visible: boolean} = {
210
217
  visible: true,
211
218
  hardwareAccelerated: false,
@@ -321,6 +328,7 @@ class Modal extends React.Component<ModalProps, State> {
321
328
  onRequestClose={this.props.onRequestClose}
322
329
  onShow={this.props.onShow}
323
330
  onDismiss={onDismiss}
331
+ ref={this.props.modalRef}
324
332
  visible={this.props.visible}
325
333
  statusBarTranslucent={this.props.statusBarTranslucent}
326
334
  navigationBarTranslucent={this.props.navigationBarTranslucent}
@@ -368,10 +376,25 @@ const styles = StyleSheet.create({
368
376
  },
369
377
  });
370
378
 
371
- // $FlowFixMe[prop-missing]
372
- const ExportedModal: React.AbstractComponent<
373
- React.ElementConfig<typeof Modal>,
374
- // $FlowFixMe[incompatible-type-arg]
375
- > = ModalInjection.unstable_Modal ?? Modal;
379
+ type ModalRefProps = $ReadOnly<{
380
+ ref?: React.RefSetter<PublicModalInstance>,
381
+ }>;
382
+
383
+ // NOTE: This wrapper component is necessary because `Modal` is a class
384
+ // component and we need to map `ref` to a differently named prop. This can be
385
+ // removed when `Modal` is a functional component.
386
+ function Wrapper({
387
+ ref,
388
+ ...props
389
+ }: {
390
+ ...ModalRefProps,
391
+ ...ModalProps,
392
+ }): React.Node {
393
+ return <Modal {...props} modalRef={ref} />;
394
+ }
395
+
396
+ Wrapper.displayName = 'Modal';
397
+ // $FlowExpectedError[prop-missing]
398
+ Wrapper.Context = VirtualizedListContextResetter;
376
399
 
377
- export default ExportedModal;
400
+ export default Wrapper;
@@ -203,7 +203,9 @@ const validAttributesForNonEventProps = {
203
203
  accessibilityState: true,
204
204
  accessibilityActions: true,
205
205
  accessibilityValue: true,
206
+ experimental_accessibilityOrder: true,
206
207
  importantForAccessibility: true,
208
+ screenReaderFocusable: true,
207
209
  role: true,
208
210
  rotation: true,
209
211
  scaleX: true,
@@ -197,6 +197,8 @@ const validAttributesForNonEventProps = {
197
197
  accessibilityIgnoresInvertColors: true,
198
198
  accessibilityShowsLargeContentViewer: true,
199
199
  accessibilityLargeContentTitle: true,
200
+ experimental_accessibilityOrder: true,
201
+ accessibilityRespondsToUserInteraction: true,
200
202
  testID: true,
201
203
  backgroundColor: {process: require('../StyleSheet/processColor').default},
202
204
  backfaceVisibility: true,
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict-local
8
+ * @format
9
+ */
10
+
11
+ // NOTE: This file supports backwards compatibility of subpath (deep) imports
12
+ // from 'react-native' with platform-specific extensions. It can be deleted
13
+ // once we remove the "./*" mapping from package.json "exports".
14
+
15
+ import BaseViewConfig from './BaseViewConfig';
16
+
17
+ export default BaseViewConfig;
@@ -217,6 +217,7 @@ const validAttributesForNonEventProps = {
217
217
  accessibilityIgnoresInvertColors: true,
218
218
  accessibilityShowsLargeContentViewer: true,
219
219
  accessibilityLargeContentTitle: true,
220
+ experimental_accessibilityOrder: true,
220
221
  testID: true,
221
222
  backgroundColor: {process: require('../StyleSheet/processColor').default},
222
223
  backfaceVisibility: true,
@@ -384,6 +385,7 @@ const validAttributesForNonEventProps = {
384
385
  accessibilityAnnotation: true, // [Windows]
385
386
  accessibilityItemType: true, // [Windows]
386
387
  accessibilityAccessKey: true, // [Windows]
388
+ accessibilityDescription: true, // [Windows]
387
389
  disabled: true, // [Windows]
388
390
  focusable: true, // [Windows]
389
391
  keyDownEvents: true, // [Windows]
@@ -392,6 +394,7 @@ const validAttributesForNonEventProps = {
392
394
  tooltip: true, // [Windows]
393
395
  onClick: true, // [Windows]
394
396
  enableFocusRing: true, // [Windows]
397
+ importantForAccessibility: true, // [Windows]
395
398
 
396
399
  style: ReactNativeStyleAttributes,
397
400
  };
@@ -12,9 +12,9 @@ import type {PartialViewConfig} from '../Renderer/shims/ReactNativeTypes';
12
12
 
13
13
  import BaseViewConfig from './BaseViewConfig';
14
14
 
15
- export type PartialViewConfigWithoutName = $Rest<
15
+ export type PartialViewConfigWithoutName = Omit<
16
16
  PartialViewConfig,
17
- {uiViewClassName: string},
17
+ 'uiViewClassName',
18
18
  >;
19
19
 
20
20
  const PlatformBaseViewConfig: PartialViewConfigWithoutName = BaseViewConfig;
@@ -8,6 +8,6 @@
8
8
  * @format
9
9
  */
10
10
 
11
- export * from '../../../src/private/specs_DEPRECATED/modules/NativeDevMenu';
12
- import NativeDevMenu from '../../../src/private/specs_DEPRECATED/modules/NativeDevMenu';
11
+ export * from '../../../src/private/devsupport/devmenu/specs/NativeDevMenu';
12
+ import NativeDevMenu from '../../../src/private/devsupport/devmenu/specs/NativeDevMenu';
13
13
  export default NativeDevMenu;
@@ -50,7 +50,7 @@ const emitter = new NativeEventEmitter<$FlowFixMe>(
50
50
  const RCTNetworking = {
51
51
  addListener<K: $Keys<RCTNetworkingEventDefinitions>>(
52
52
  eventType: K,
53
- listener: (...$ElementType<RCTNetworkingEventDefinitions, K>) => mixed,
53
+ listener: (...RCTNetworkingEventDefinitions[K]) => mixed,
54
54
  context?: mixed,
55
55
  ): EventSubscription {
56
56
  // $FlowFixMe[incompatible-call]
@@ -20,7 +20,7 @@ import {type NativeResponseType} from './XMLHttpRequest';
20
20
  const RCTNetworking = {
21
21
  addListener<K: $Keys<RCTNetworkingEventDefinitions>>(
22
22
  eventType: K,
23
- listener: (...$ElementType<RCTNetworkingEventDefinitions, K>) => mixed,
23
+ listener: (...RCTNetworkingEventDefinitions[K]) => mixed,
24
24
  context?: mixed,
25
25
  ): EventSubscription {
26
26
  // $FlowFixMe[incompatible-call]
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict-local
8
+ * @format
9
+ */
10
+
11
+ // NOTE: This file supports backwards compatibility of subpath (deep) imports
12
+ // from 'react-native' with platform-specific extensions. It can be deleted
13
+ // once we remove the "./*" mapping from package.json "exports".
14
+
15
+ import RCTNetworking from './RCTNetworking';
16
+
17
+ export default RCTNetworking;
@@ -19,7 +19,7 @@ declare const RCTNetworking: interface {
19
19
  addListener<K: $Keys<RCTNetworkingEventDefinitions>>(
20
20
  eventType: K,
21
21
  // $FlowFixMe[invalid-computed-prop]
22
- listener: (...$ElementType<RCTNetworkingEventDefinitions, K>) => mixed,
22
+ listener: (...RCTNetworkingEventDefinitions[K]) => mixed,
23
23
  context?: mixed,
24
24
  ): EventSubscription,
25
25
 
@@ -20,7 +20,7 @@ import {type NativeResponseType} from './XMLHttpRequest';
20
20
  const RCTNetworking = {
21
21
  addListener<K: $Keys<RCTNetworkingEventDefinitions>>(
22
22
  eventType: K,
23
- listener: (...$ElementType<RCTNetworkingEventDefinitions, K>) => mixed,
23
+ listener: (...RCTNetworkingEventDefinitions[K]) => mixed,
24
24
  context?: mixed,
25
25
  ): EventSubscription {
26
26
  // $FlowFixMe[incompatible-call]