react-native-windows 0.74.10 → 0.75.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 (327) hide show
  1. package/.flowconfig +8 -2
  2. package/Common/Common.vcxproj +8 -0
  3. package/Common/Utilities.cpp +2 -2
  4. package/Directory.Build.targets +5 -0
  5. package/Folly/Folly.vcxproj +10 -2
  6. package/Folly/Folly.vcxproj.filters +0 -7
  7. package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +970 -0
  8. package/Folly/TEMP_UntilFollyUpdate/json.cpp +1110 -0
  9. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +4 -2
  10. package/Libraries/Animated/AnimatedImplementation.js +2 -0
  11. package/Libraries/Animated/NativeAnimatedHelper.js +4 -0
  12. package/Libraries/Animated/createAnimatedComponent.js +10 -4
  13. package/Libraries/Animated/useAnimatedProps.js +56 -28
  14. package/Libraries/BatchedBridge/MessageQueue.js +1 -0
  15. package/Libraries/Components/Button.js +10 -5
  16. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +11 -2
  17. package/Libraries/Components/Flyout/Flyout.js +10 -10
  18. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +8 -7
  19. package/Libraries/Components/Pressable/Pressable.js +13 -6
  20. package/Libraries/Components/Pressable/Pressable.windows.js +13 -6
  21. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +4 -0
  22. package/Libraries/Components/ScrollView/ScrollView.js +109 -29
  23. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +6 -0
  24. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +6 -0
  25. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +13 -1
  26. package/Libraries/Components/StatusBar/StatusBar.js +1 -21
  27. package/Libraries/Components/Switch/Switch.windows.js +2 -0
  28. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +0 -15
  29. package/Libraries/Components/TextInput/InputAccessoryView.js +10 -1
  30. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +0 -12
  31. package/Libraries/Components/TextInput/TextInput.d.ts +0 -19
  32. package/Libraries/Components/TextInput/TextInput.js +20 -73
  33. package/Libraries/Components/TextInput/TextInput.windows.js +21 -75
  34. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +27 -12
  35. package/Libraries/Components/Touchable/Touchable.js +2 -2
  36. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +4 -10
  37. package/Libraries/Components/Touchable/TouchableHighlight.js +3 -1
  38. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +3 -1
  39. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +4 -32
  40. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -1
  41. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +3 -1
  42. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +8 -0
  43. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +117 -111
  44. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +129 -110
  45. package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -0
  46. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  47. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
  48. package/Libraries/Components/View/View.js +0 -11
  49. package/Libraries/Components/View/View.windows.js +0 -11
  50. package/Libraries/Components/View/ViewAccessibility.js +4 -4
  51. package/Libraries/Components/View/ViewAccessibility.windows.js +4 -4
  52. package/Libraries/Components/View/ViewPropTypes.d.ts +21 -59
  53. package/Libraries/Components/View/ViewPropTypes.js +7 -0
  54. package/Libraries/Components/View/ViewPropTypes.windows.js +7 -0
  55. package/Libraries/Core/Devtools/loadBundleFromServer.js +3 -3
  56. package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +153 -0
  57. package/Libraries/Core/Devtools/parseErrorStack.js +5 -5
  58. package/Libraries/Core/Devtools/parseHermesStack.js +22 -16
  59. package/Libraries/Core/ErrorHandlers.js +116 -0
  60. package/Libraries/Core/ExceptionsManager.js +2 -2
  61. package/Libraries/Core/ReactNativeVersion.js +3 -3
  62. package/Libraries/Core/setUpDeveloperTools.js +3 -1
  63. package/Libraries/Core/setUpPerformance.js +6 -4
  64. package/Libraries/Core/setUpReactDevTools.js +70 -10
  65. package/Libraries/Core/setUpTimers.js +50 -31
  66. package/Libraries/Debugging/DebuggingOverlayRegistry.js +1 -1
  67. package/Libraries/Image/Image.android.js +23 -13
  68. package/Libraries/Image/Image.d.ts +14 -15
  69. package/Libraries/Image/Image.ios.js +21 -11
  70. package/Libraries/Image/Image.windows.js +21 -11
  71. package/Libraries/Image/ImageProps.js +16 -5
  72. package/Libraries/Image/ImageTypes.flow.js +7 -2
  73. package/Libraries/Image/ImageUtils.js +1 -0
  74. package/Libraries/Image/ImageViewNativeComponent.js +2 -1
  75. package/Libraries/Inspector/ElementBox.js +6 -3
  76. package/Libraries/Inspector/ElementProperties.js +1 -1
  77. package/Libraries/Interaction/TouchHistoryMath.js +4 -4
  78. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +6 -26
  79. package/Libraries/JSInspector/NetworkAgent.js +1 -1
  80. package/Libraries/LogBox/Data/LogBoxData.js +39 -29
  81. package/Libraries/LogBox/Data/LogBoxLog.js +114 -2
  82. package/Libraries/LogBox/Data/parseLogBoxLog.js +168 -53
  83. package/Libraries/LogBox/LogBox.js +29 -12
  84. package/Libraries/LogBox/LogBoxNotificationContainer.js +4 -0
  85. package/Libraries/LogBox/UI/LogBoxInspector.js +8 -70
  86. package/Libraries/LogBox/UI/LogBoxInspectorBody.js +87 -0
  87. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +6 -42
  88. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +58 -0
  89. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +5 -66
  90. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +5 -66
  91. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +76 -0
  92. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +8 -5
  93. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +8 -5
  94. package/Libraries/LogBox/UI/LogBoxNotification.js +13 -152
  95. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +63 -0
  96. package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +67 -0
  97. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +57 -0
  98. package/Libraries/NativeComponent/BaseViewConfig.android.js +5 -0
  99. package/Libraries/NativeComponent/BaseViewConfig.ios.js +5 -0
  100. package/Libraries/NativeComponent/BaseViewConfig.windows.js +5 -0
  101. package/Libraries/NativeComponent/NativeComponentRegistry.js +12 -5
  102. package/Libraries/NativeComponent/StaticViewConfigValidator.js +3 -0
  103. package/Libraries/Network/XMLHttpRequest.js +5 -1
  104. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +3 -3
  105. package/Libraries/Pressability/Pressability.js +3 -51
  106. package/Libraries/Pressability/Pressability.windows.js +3 -51
  107. package/Libraries/ReactNative/AppRegistry.d.ts +4 -0
  108. package/Libraries/ReactNative/AppRegistry.js +2 -4
  109. package/Libraries/ReactNative/BridgelessUIManager.js +1 -21
  110. package/Libraries/ReactNative/FabricUIManager.js +0 -51
  111. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -0
  112. package/Libraries/ReactNative/RendererImplementation.js +20 -2
  113. package/Libraries/ReactNative/UIManager.d.ts +0 -21
  114. package/Libraries/ReactNative/UIManagerProperties.js +0 -3
  115. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +5 -341
  116. package/Libraries/ReactNative/getNativeComponentAttributes.js +8 -8
  117. package/Libraries/Renderer/implementations/ReactFabric-dev.js +15682 -27088
  118. package/Libraries/Renderer/implementations/ReactFabric-prod.js +5082 -4381
  119. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3480 -2571
  120. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +15943 -27543
  121. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +5303 -4606
  122. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3450 -2572
  123. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  124. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  125. package/Libraries/Renderer/shims/ReactNative.js +2 -3
  126. package/Libraries/Renderer/shims/ReactNativeTypes.js +24 -3
  127. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -2
  128. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  129. package/Libraries/Share/Share.d.ts +16 -10
  130. package/Libraries/Share/Share.js +14 -15
  131. package/Libraries/StyleSheet/StyleSheet.d.ts +1 -1
  132. package/Libraries/StyleSheet/StyleSheet.js +3 -10
  133. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +21 -21
  134. package/Libraries/StyleSheet/StyleSheetTypes.js +24 -18
  135. package/Libraries/StyleSheet/flattenStyle.js +1 -0
  136. package/Libraries/StyleSheet/processFilter.js +132 -0
  137. package/Libraries/StyleSheet/processTransform.js +18 -3
  138. package/Libraries/Text/Text.js +151 -128
  139. package/Libraries/Text/Text.windows.js +144 -127
  140. package/Libraries/Text/TextNativeComponent.js +5 -4
  141. package/Libraries/Text/TextProps.js +6 -6
  142. package/Libraries/Text/TextProps.windows.js +6 -6
  143. package/Libraries/TurboModule/TurboModuleRegistry.js +2 -1
  144. package/Libraries/Types/CodegenTypes.js +3 -0
  145. package/Libraries/Utilities/{LoadingView.android.js → DevLoadingView.js} +33 -11
  146. package/Libraries/Utilities/Dimensions.js +1 -0
  147. package/Libraries/Utilities/HMRClient.js +36 -8
  148. package/Libraries/Utilities/HMRClientProdShim.js +1 -0
  149. package/Libraries/Utilities/NativePlatformConstantsWin.js +2 -2
  150. package/Libraries/Utilities/Platform.android.js +4 -4
  151. package/Libraries/Utilities/RCTLog.js +1 -0
  152. package/Libraries/Utilities/ReactNativeTestTools.js +12 -24
  153. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +11 -6
  154. package/Libraries/__tests__/ViewWindows-test.js +6 -6
  155. package/Libraries/promiseRejectionTrackingOptions.js +1 -0
  156. package/Microsoft.ReactNative/Base/FollyIncludes.h +1 -1
  157. package/Microsoft.ReactNative/ComponentView.idl +0 -17
  158. package/Microsoft.ReactNative/Fabric/AbiState.cpp +3 -45
  159. package/Microsoft.ReactNative/Fabric/AbiState.h +0 -6
  160. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +10 -6
  161. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +4 -4
  162. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +12 -3
  163. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +1 -1
  164. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +7 -12
  165. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +1 -2
  166. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.cpp +9 -3
  167. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.h +1 -1
  168. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -18
  169. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +3 -5
  170. package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +23 -11
  171. package/Microsoft.ReactNative/Fabric/WindowsImageManager.h +5 -2
  172. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +2 -10
  173. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -36
  174. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -12
  175. package/Microsoft.ReactNative/Modules/DevSettingsModule.cpp +4 -0
  176. package/Microsoft.ReactNative/Modules/DevSettingsModule.h +1 -0
  177. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +1 -2
  178. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -4
  179. package/Microsoft.ReactNative/Modules/NativeUIManager.h +1 -1
  180. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.cpp +2 -2
  181. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.h +3 -3
  182. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -17
  183. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  184. package/Microsoft.ReactNative/Timer.idl +1 -3
  185. package/Microsoft.ReactNative/Utils/BatchingEventEmitter.cpp +1 -1
  186. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +2 -3
  187. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
  188. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +2 -2
  189. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
  190. package/Microsoft.ReactNative/packages.lock.json +45 -72
  191. package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
  192. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -0
  193. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -0
  194. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.cpp +14 -6
  195. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.h +2 -2
  196. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +1 -1
  197. package/Microsoft.ReactNative.Managed/packages.lock.json +3 -3
  198. package/PropertySheets/ARM64EC.props +13 -0
  199. package/PropertySheets/Application/ARM64EC.props +13 -0
  200. package/PropertySheets/DynamicLibrary/ARM64EC.props +13 -0
  201. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +4 -4
  202. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  203. package/PropertySheets/JSEngine.props +2 -0
  204. package/PropertySheets/StaticLibrary/ARM64EC.props +13 -0
  205. package/README.md +21 -21
  206. package/ReactCommon/ReactCommon.vcxproj +11 -1
  207. package/ReactCommon/ReactCommon.vcxproj.filters +19 -12
  208. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +67 -0
  209. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +180 -0
  210. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +351 -0
  211. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +6 -3
  212. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Base.h +152 -0
  213. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +2 -1
  214. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +13 -15
  215. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/EventEmitter.h +137 -0
  216. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Function.h +283 -0
  217. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.cpp +7 -10
  218. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +162 -0
  219. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -4
  220. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +33 -8
  221. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.cpp +45 -0
  222. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.h +67 -0
  223. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +104 -74
  224. package/Scripts/StripAdditionalPlatformsFromNuspec.ps1 +1 -1
  225. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +10 -6
  226. package/Scripts/rnw-dependencies.ps1 +36 -23
  227. package/Shared/HermesRuntimeHolder.cpp +19 -1
  228. package/Shared/HermesRuntimeHolder.h +8 -1
  229. package/Shared/HermesSamplingProfiler.cpp +1 -2
  230. package/Shared/Networking/WinRTWebSocketResource.cpp +3 -3
  231. package/Shared/OInstance.cpp +1 -2
  232. package/Shared/Shared.vcxitems +21 -15
  233. package/Shared/Shared.vcxitems.filters +8 -3
  234. package/Shared/Threading/BatchingQueueThread.cpp +6 -2
  235. package/Shared/Threading/BatchingQueueThread.h +2 -2
  236. package/Shared/Utils/CppWinrtLessExceptions.h +2 -2
  237. package/codegen/NativeAppStateSpec.g.h +8 -8
  238. package/codegen/NativeBlobModuleSpec.g.h +0 -10
  239. package/codegen/NativeDOMSpec.g.h +136 -0
  240. package/codegen/NativeDevSettingsSpec.g.h +11 -5
  241. package/codegen/NativeIdleCallbacksSpec.g.h +64 -0
  242. package/codegen/NativeIntersectionObserverSpec.g.h +14 -14
  243. package/codegen/NativeMicrotasksSpec.g.h +34 -0
  244. package/codegen/NativePerformanceSpec.g.h +35 -7
  245. package/codegen/NativePlatformConstantsWindowsSpec.g.h +81 -0
  246. package/codegen/NativePushNotificationManagerIOSSpec.g.h +15 -19
  247. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +111 -39
  248. package/codegen/NativeUIManagerSpec.g.h +5 -17
  249. package/codegen/react/components/rnwcore/Props.cpp +1 -1
  250. package/codegen/react/components/rnwcore/Props.h +16 -12
  251. package/codegen/react/components/rnwcore/States.h +0 -26
  252. package/codegen/rnwcoreJSI-generated.cpp +688 -463
  253. package/codegen/rnwcoreJSI.h +1374 -2867
  254. package/fmt/TEMP_UntilFmtUpdate/core.h +2925 -0
  255. package/fmt/fmt.vcxproj +10 -2
  256. package/jest/mockComponent.js +7 -0
  257. package/jest/renderer.js +25 -14
  258. package/jest/setup.js +19 -13
  259. package/package.json +29 -27
  260. package/rn-get-polyfills.js +1 -0
  261. package/src/private/core/composeStyles.js +27 -0
  262. package/src/private/featureflags/ReactNativeFeatureFlags.js +93 -33
  263. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +23 -4
  264. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +56 -0
  265. package/src/private/fusebox/setUpFuseboxReactDevToolsDispatcher.js +108 -0
  266. package/src/private/specs/modules/NativeBlobModule.js +4 -2
  267. package/src/private/specs/modules/NativeDevSettings.js +1 -0
  268. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +0 -4
  269. package/src/private/specs/modules/NativeUIManager.js +0 -7
  270. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +24 -24
  271. package/src/private/webapis/dom/nodes/ReactNativeElement.js +11 -14
  272. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +2 -3
  273. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +24 -54
  274. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -13
  275. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +468 -0
  276. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +413 -0
  277. package/src/private/webapis/dom/oldstylecollections/DOMRectList.js +4 -4
  278. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -4
  279. package/src/private/webapis/dom/oldstylecollections/NodeList.js +5 -5
  280. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +34 -0
  281. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +21 -0
  282. package/src/private/webapis/performance/EventCounts.js +1 -1
  283. package/src/private/webapis/performance/MemoryInfo.js +9 -9
  284. package/src/private/webapis/performance/Performance.js +10 -56
  285. package/src/private/webapis/performance/PerformanceObserver.js +30 -22
  286. package/src/private/webapis/performance/RawPerformanceEntry.js +2 -7
  287. package/src/private/webapis/performance/ReactNativeStartupTiming.js +18 -18
  288. package/src/private/webapis/performance/UserTiming.js +63 -0
  289. package/src/private/webapis/performance/{NativePerformance.js → specs/NativePerformance.js} +3 -2
  290. package/src/private/webapis/performance/{NativePerformanceObserver.js → specs/NativePerformanceObserver.js} +2 -2
  291. package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformance.js +1 -1
  292. package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformanceObserver.js +3 -4
  293. package/stubs/glog/logging.h +1 -0
  294. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  295. package/template/cs-lib/proj/MyLib.csproj +1 -1
  296. package/template/metro.config.js +13 -2
  297. package/templates/cpp-app/template.config.js +1 -1
  298. package/templates/cpp-lib/example/metro.config.js +2 -2
  299. package/templates/cpp-lib/template.config.js +1 -1
  300. package/templates/old/generateWrapper.js +4 -1
  301. package/types/modules/globals.d.ts +4 -0
  302. package/Libraries/Lists/FlatList.windows.js +0 -717
  303. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -13
  304. package/Libraries/Utilities/LoadingView.ios.js +0 -50
  305. package/Libraries/Utilities/LoadingView.js +0 -16
  306. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +0 -178
  307. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.cpp +0 -39
  308. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.h +0 -31
  309. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/YGEnums.h +0 -137
  310. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/algorithm/CalculateLayout.cpp +0 -2375
  311. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/enums/ExperimentalFeature.h +0 -40
  312. package/codegen/NativeAnimationsDebugModuleSpec.g.h +0 -40
  313. package/codegen/NativePlatformConstantsWinSpec.g.h +0 -81
  314. package/jest/ReactNativeInternalFeatureFlagsMock.js +0 -13
  315. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +0 -44
  316. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +0 -92
  317. package/src/private/specs/modules/NativeAnimationsDebugModule.js +0 -20
  318. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +0 -85
  319. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +0 -80
  320. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +0 -161
  321. package/src/private/webapis/performance/__tests__/EventCounts-test.js +0 -116
  322. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +0 -82
  323. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +0 -108
  324. package/src/private/webapis/performance/__tests__/Performance-test.js +0 -117
  325. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +0 -208
  326. package/template/metro.devMode.config.js +0 -56
  327. /package/src/private/specs/modules/{NativePlatformConstantsWin.js → NativePlatformConstantsWindows.js} +0 -0
@@ -25,11 +25,11 @@ import type {
25
25
  } from '../../Types/CoreEventTypes';
26
26
 
27
27
  import View from '../../Components/View/View';
28
- import Pressability, {
29
- type PressabilityConfig,
30
- } from '../../Pressability/Pressability';
31
28
  import {PressabilityDebugView} from '../../Pressability/PressabilityDebug';
29
+ import usePressability from '../../Pressability/usePressability';
32
30
  import * as React from 'react';
31
+ import {useMemo} from 'react';
32
+ import Animated from '../../Animated/Animated'; // Windows
33
33
 
34
34
  type Props = $ReadOnly<{|
35
35
  accessibilityActions?: ?$ReadOnlyArray<AccessibilityActionInfo>,
@@ -91,10 +91,7 @@ type Props = $ReadOnly<{|
91
91
  onMouseLeave?: ?(event: MouseEvent) => void, // [Windows]
92
92
  tabIndex?: ?number, // [Windows]
93
93
  tooltip?: ?Stringish, // [Windows]
94
- |}>;
95
-
96
- type State = $ReadOnly<{|
97
- pressability: Pressability,
94
+ hostRef?: ?React.Ref<typeof Animated.View>, // [Windows]
98
95
  |}>;
99
96
 
100
97
  const PASSTHROUGH_PROPS = [
@@ -130,117 +127,139 @@ const PASSTHROUGH_PROPS = [
130
127
  'tooltip', // [Windows]
131
128
  ];
132
129
 
133
- class TouchableWithoutFeedback extends React.Component<Props, State> {
134
- state: State = {
135
- pressability: new Pressability(createPressabilityConfig(this.props)),
136
- };
130
+ // Modify the function to accept the ref prop and forward it
131
+ const TouchableWithoutFeedback: React.AbstractComponent<
132
+ Props,
133
+ React.ElementRef<typeof Animated.View>,
134
+ > = React.forwardRef(function TouchableWithoutFeedback(props: Props, ref): React.Node {
135
+ const {
136
+ disabled,
137
+ rejectResponderTermination,
138
+ 'aria-disabled': ariaDisabled,
139
+ accessibilityState,
140
+ hitSlop,
141
+ delayLongPress,
142
+ delayPressIn,
143
+ delayPressOut,
144
+ pressRetentionOffset,
145
+ touchSoundDisabled,
146
+ onBlur: _onBlur,
147
+ onFocus: _onFocus,
148
+ onLongPress,
149
+ onPress,
150
+ onPressIn,
151
+ onPressOut,
152
+ onMouseEnter, // [Windows]
153
+ onMouseLeave, // [Windows]
154
+ } = props;
137
155
 
138
- render(): React.Node {
139
- const element = React.Children.only<$FlowFixMe>(this.props.children);
140
- const children: Array<React.Node> = [element.props.children];
141
- const ariaLive = this.props['aria-live'];
142
-
143
- if (__DEV__) {
144
- if (element.type === View) {
145
- children.push(
146
- <PressabilityDebugView color="red" hitSlop={this.props.hitSlop} />,
147
- );
148
- }
149
- }
150
156
 
151
- let _accessibilityState = {
152
- busy: this.props['aria-busy'] ?? this.props.accessibilityState?.busy,
153
- checked:
154
- this.props['aria-checked'] ?? this.props.accessibilityState?.checked,
157
+ const pressabilityConfig = useMemo(
158
+ () => ({
159
+ cancelable: !rejectResponderTermination,
155
160
  disabled:
156
- this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled,
157
- expanded:
158
- this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,
159
- selected:
160
- this.props['aria-selected'] ?? this.props.accessibilityState?.selected,
161
- };
162
-
163
- // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before
164
- // adopting `Pressability`, so preserve that behavior.
165
- const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =
166
- this.state.pressability.getEventHandlers();
167
-
168
- const elementProps: {[string]: mixed, ...} = {
169
- ...eventHandlersWithoutBlurAndFocus,
170
- accessible: this.props.accessible !== false,
171
- accessibilityState:
172
- this.props.disabled != null
173
- ? {
174
- ..._accessibilityState,
175
- disabled: this.props.disabled,
176
- }
177
- : _accessibilityState,
178
- focusable:
179
- this.props.focusable !== false && this.props.onPress !== undefined,
180
-
181
- accessibilityElementsHidden:
182
- this.props['aria-hidden'] ?? this.props.accessibilityElementsHidden,
183
- importantForAccessibility:
184
- this.props['aria-hidden'] === true
185
- ? 'no-hide-descendants'
186
- : this.props.importantForAccessibility,
187
- accessibilityLiveRegion:
188
- ariaLive === 'off'
189
- ? 'none'
190
- : ariaLive ?? this.props.accessibilityLiveRegion,
191
- nativeID: this.props.id ?? this.props.nativeID,
192
- };
193
- for (const prop of PASSTHROUGH_PROPS) {
194
- if (this.props[prop] !== undefined) {
195
- elementProps[prop] = this.props[prop];
196
- }
197
- }
161
+ disabled !== null
162
+ ? disabled
163
+ : ariaDisabled ?? accessibilityState?.disabled,
164
+ hitSlop: hitSlop,
165
+ delayLongPress: delayLongPress,
166
+ delayPressIn: delayPressIn,
167
+ delayPressOut: delayPressOut,
168
+ minPressDuration: 0,
169
+ pressRectOffset: pressRetentionOffset,
170
+ android_disableSound: touchSoundDisabled,
171
+ onBlur: _onBlur,
172
+ onFocus: _onFocus,
173
+ onLongPress: onLongPress,
174
+ onPress: onPress,
175
+ onPressIn: onPressIn,
176
+ onPressOut: onPressOut,
177
+ onMouseEnter: onMouseEnter, // [Windows]
178
+ onMouseLeave: onMouseLeave, // [Windows]
179
+ }),
180
+ [
181
+ rejectResponderTermination,
182
+ disabled,
183
+ ariaDisabled,
184
+ accessibilityState?.disabled,
185
+ hitSlop,
186
+ delayLongPress,
187
+ delayPressIn,
188
+ delayPressOut,
189
+ pressRetentionOffset,
190
+ touchSoundDisabled,
191
+ _onBlur,
192
+ _onFocus,
193
+ onLongPress,
194
+ onPress,
195
+ onPressIn,
196
+ onPressOut,
197
+ onMouseEnter, // [Windows]
198
+ onMouseLeave, // [Windows]
199
+ ],
200
+ );
198
201
 
199
- // $FlowFixMe[incompatible-call]
200
- return React.cloneElement(element, elementProps, ...children);
201
- }
202
+ const eventHandlers = usePressability(pressabilityConfig);
202
203
 
203
- componentDidUpdate(): void {
204
- this.state.pressability.configure(createPressabilityConfig(this.props));
205
- }
204
+ const element = React.Children.only<$FlowFixMe>(props.children);
205
+ const children: Array<React.Node> = [element.props.children];
206
+ const ariaLive = props['aria-live'];
206
207
 
207
- componentDidMount(): mixed {
208
- this.state.pressability.configure(createPressabilityConfig(this.props));
208
+ if (__DEV__) {
209
+ if (element.type === View) {
210
+ children.push(
211
+ <PressabilityDebugView color="red" hitSlop={props.hitSlop} />,
212
+ );
213
+ }
209
214
  }
210
215
 
211
- componentWillUnmount(): void {
212
- this.state.pressability.reset();
213
- }
214
- }
215
-
216
- function createPressabilityConfig({
217
- 'aria-disabled': ariaDisabled,
218
- ...props
219
- }: Props): PressabilityConfig {
220
- const accessibilityStateDisabled =
221
- ariaDisabled ?? props.accessibilityState?.disabled;
222
- return {
223
- cancelable: !props.rejectResponderTermination,
224
- disabled:
225
- props.disabled !== null ? props.disabled : accessibilityStateDisabled,
226
- hitSlop: props.hitSlop,
227
- delayLongPress: props.delayLongPress,
228
- delayPressIn: props.delayPressIn,
229
- delayPressOut: props.delayPressOut,
230
- minPressDuration: 0,
231
- pressRectOffset: props.pressRetentionOffset,
232
- android_disableSound: props.touchSoundDisabled,
233
- onBlur: props.onBlur,
234
- onFocus: props.onFocus,
235
- onLongPress: props.onLongPress,
236
- onPress: props.onPress,
237
- onPressIn: props.onPressIn,
238
- onPressOut: props.onPressOut,
239
- onMouseEnter: props.onMouseEnter, // [Windows]
240
- onMouseLeave: props.onMouseLeave, // [Windows]
216
+ let _accessibilityState = {
217
+ busy: props['aria-busy'] ?? props.accessibilityState?.busy,
218
+ checked: props['aria-checked'] ?? props.accessibilityState?.checked,
219
+ disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled,
220
+ expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded,
221
+ selected: props['aria-selected'] ?? props.accessibilityState?.selected,
222
+ };
223
+
224
+ // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before
225
+ // adopting `Pressability`, so preserve that behavior.
226
+ const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =
227
+ eventHandlers || {};
228
+
229
+ const elementProps: {[string]: mixed, ...} = {
230
+ ...eventHandlersWithoutBlurAndFocus,
231
+ accessible: props.accessible !== false,
232
+ accessibilityState:
233
+ props.disabled != null
234
+ ? {
235
+ ..._accessibilityState,
236
+ disabled: props.disabled,
237
+ }
238
+ : _accessibilityState,
239
+ focusable:
240
+ props.focusable !== false &&
241
+ props.onPress !== undefined &&
242
+ !props.disabled,
243
+
244
+ accessibilityElementsHidden:
245
+ props['aria-hidden'] ?? props.accessibilityElementsHidden,
246
+ importantForAccessibility:
247
+ props['aria-hidden'] === true
248
+ ? 'no-hide-descendants'
249
+ : props.importantForAccessibility,
250
+ accessibilityLiveRegion:
251
+ ariaLive === 'off' ? 'none' : ariaLive ?? props.accessibilityLiveRegion,
252
+ nativeID: props.id ?? props.nativeID,
241
253
  };
242
- }
243
254
 
244
- TouchableWithoutFeedback.displayName = 'TouchableWithoutFeedback';
255
+ for (const prop of PASSTHROUGH_PROPS) {
256
+ if (props[prop] !== undefined) {
257
+ elementProps[prop] = props[prop];
258
+ }
259
+ }
260
+
261
+ // $FlowFixMe[incompatible-call]
262
+ return React.cloneElement(element, {...elementProps, ref}, ...children);
263
+ });
245
264
 
246
- module.exports = TouchableWithoutFeedback;
265
+ module.exports = TouchableWithoutFeedback;
@@ -12,6 +12,7 @@ import type {AnyAttributeType} from '../../Renderer/shims/ReactNativeTypes';
12
12
 
13
13
  import processAspectRatio from '../../StyleSheet/processAspectRatio';
14
14
  import processColor from '../../StyleSheet/processColor';
15
+ import processFilter from '../../StyleSheet/processFilter';
15
16
  import processFontVariant from '../../StyleSheet/processFontVariant';
16
17
  import processTransform from '../../StyleSheet/processTransform';
17
18
  import processTransformOrigin from '../../StyleSheet/processTransformOrigin';
@@ -114,6 +115,11 @@ const ReactNativeStyleAttributes: {[string]: AnyAttributeType, ...} = {
114
115
  transform: {process: processTransform},
115
116
  transformOrigin: {process: processTransformOrigin},
116
117
 
118
+ /**
119
+ * Filter
120
+ */
121
+ experimental_filter: {process: processFilter},
122
+
117
123
  /**
118
124
  * View
119
125
  */
@@ -33,6 +33,7 @@ const UIView = {
33
33
  onMagicTap: true,
34
34
  onAccessibilityEscape: true,
35
35
  collapsable: true,
36
+ collapsableChildren: true,
36
37
  needsOffscreenAlphaCompositing: true,
37
38
  style: ReactNativeStyleAttributes,
38
39
  role: true,
@@ -33,6 +33,7 @@ const UIView = {
33
33
  onMagicTap: true,
34
34
  onAccessibilityEscape: true,
35
35
  collapsable: true,
36
+ collapsableChildren: true,
36
37
  needsOffscreenAlphaCompositing: true,
37
38
  style: ReactNativeStyleAttributes,
38
39
  role: true,
@@ -10,7 +10,6 @@
10
10
 
11
11
  import type {ViewProps} from './ViewPropTypes';
12
12
 
13
- import flattenStyle from '../../StyleSheet/flattenStyle';
14
13
  import TextAncestor from '../../Text/TextAncestor';
15
14
  import ViewNativeComponent from './ViewNativeComponent';
16
15
  import * as React from 'react';
@@ -53,7 +52,6 @@ const View: React.AbstractComponent<
53
52
  id,
54
53
  importantForAccessibility,
55
54
  nativeID,
56
- pointerEvents,
57
55
  tabIndex,
58
56
  ...otherProps
59
57
  }: ViewProps,
@@ -96,12 +94,6 @@ const View: React.AbstractComponent<
96
94
  };
97
95
  }
98
96
 
99
- // $FlowFixMe[underconstrained-implicit-instantiation]
100
- let style = flattenStyle(otherProps.style);
101
-
102
- // $FlowFixMe[sketchy-null-mixed]
103
- const newPointerEvents = style?.pointerEvents || pointerEvents;
104
-
105
97
  const actualView = (
106
98
  <ViewNativeComponent
107
99
  {...otherProps}
@@ -120,9 +112,6 @@ const View: React.AbstractComponent<
120
112
  : importantForAccessibility
121
113
  }
122
114
  nativeID={id ?? nativeID}
123
- style={style}
124
- // $FlowFixMe[incompatible-type]
125
- pointerEvents={newPointerEvents}
126
115
  ref={forwardedRef}
127
116
  />
128
117
  );
@@ -10,7 +10,6 @@
10
10
 
11
11
  import type {ViewProps} from './ViewPropTypes';
12
12
 
13
- import flattenStyle from '../../StyleSheet/flattenStyle';
14
13
  import TextAncestor from '../../Text/TextAncestor';
15
14
  import ViewNativeComponent from './ViewNativeComponent';
16
15
  import * as React from 'react';
@@ -64,7 +63,6 @@ const View: React.AbstractComponent<
64
63
  id,
65
64
  importantForAccessibility,
66
65
  nativeID,
67
- pointerEvents,
68
66
  tabIndex,
69
67
  ...otherProps
70
68
  }: ViewProps,
@@ -106,12 +104,6 @@ const View: React.AbstractComponent<
106
104
  };
107
105
  }
108
106
 
109
- // $FlowFixMe[underconstrained-implicit-instantiation]
110
- let style = flattenStyle(otherProps.style);
111
-
112
- // $FlowFixMe[sketchy-null-mixed]
113
- const newPointerEvents = style?.pointerEvents || pointerEvents;
114
-
115
107
  const _keyDown = (event: KeyEvent) => {
116
108
  if (otherProps.keyDownEvents && event.isPropagationStopped() !== true) {
117
109
  // $FlowFixMe - keyDownEvents was already checked to not be undefined
@@ -254,9 +246,6 @@ const View: React.AbstractComponent<
254
246
  : importantForAccessibility
255
247
  }
256
248
  nativeID={id ?? nativeID}
257
- style={style}
258
- // $FlowFixMe[incompatible-type]
259
- pointerEvents={newPointerEvents}
260
249
  ref={forwardedRef}
261
250
  onKeyDown={_keyDown}
262
251
  onKeyDownCapture={_keyDownCapture}
@@ -136,11 +136,11 @@ export type AccessibilityActionEvent = SyntheticEvent<
136
136
  >;
137
137
 
138
138
  export type AccessibilityState = {
139
- disabled?: boolean,
140
- selected?: boolean,
139
+ disabled?: ?boolean,
140
+ selected?: ?boolean,
141
141
  checked?: ?boolean | 'mixed',
142
- busy?: boolean,
143
- expanded?: boolean,
142
+ busy?: ?boolean,
143
+ expanded?: ?boolean,
144
144
  ...
145
145
  };
146
146
 
@@ -176,11 +176,11 @@ export type AccessibilityActionEvent = SyntheticEvent<
176
176
  >;
177
177
 
178
178
  export type AccessibilityState = {
179
- disabled?: boolean,
180
- selected?: boolean,
179
+ disabled?: ?boolean,
180
+ selected?: ?boolean,
181
181
  checked?: ?boolean | 'mixed',
182
- busy?: boolean,
183
- expanded?: boolean,
182
+ busy?: ?boolean,
183
+ expanded?: ?boolean,
184
184
  ...
185
185
  };
186
186
 
@@ -23,48 +23,6 @@ import {IKeyboardProps} from '../Keyboard/KeyboardExtProps'; // Windows
23
23
  import {Touchable} from '../Touchable/Touchable';
24
24
  import {AccessibilityProps} from './ViewAccessibility';
25
25
 
26
- export type TVParallaxProperties = {
27
- /**
28
- * If true, parallax effects are enabled. Defaults to true.
29
- */
30
- enabled?: boolean | undefined;
31
-
32
- /**
33
- * Defaults to 2.0.
34
- */
35
- shiftDistanceX?: number | undefined;
36
-
37
- /**
38
- * Defaults to 2.0.
39
- */
40
- shiftDistanceY?: number | undefined;
41
-
42
- /**
43
- * Defaults to 0.05.
44
- */
45
- tiltAngle?: number | undefined;
46
-
47
- /**
48
- * Defaults to 1.0
49
- */
50
- magnification?: number | undefined;
51
-
52
- /**
53
- * Defaults to 1.0
54
- */
55
- pressMagnification?: number | undefined;
56
-
57
- /**
58
- * Defaults to 0.3
59
- */
60
- pressDuration?: number | undefined;
61
-
62
- /**
63
- * Defaults to 0.3
64
- */
65
- pressDelay?: number | undefined;
66
- };
67
-
68
26
  export interface TVViewPropsIOS {
69
27
  /**
70
28
  * *(Apple TV only)* When set to true, this view will be focusable
@@ -81,13 +39,6 @@ export interface TVViewPropsIOS {
81
39
  */
82
40
  hasTVPreferredFocus?: boolean | undefined;
83
41
 
84
- /**
85
- * *(Apple TV only)* Object with properties to control Apple TV parallax effects.
86
- *
87
- * @platform ios
88
- */
89
- tvParallaxProperties?: TVParallaxProperties | undefined;
90
-
91
42
  /**
92
43
  * *(Apple TV only)* May be used to change the appearance of the Apple TV parallax effect when this view goes in or out of focus. Defaults to 2.0.
93
44
  *
@@ -139,6 +90,13 @@ export interface ViewPropsAndroid {
139
90
  */
140
91
  collapsable?: boolean | undefined;
141
92
 
93
+ /**
94
+ * Setting to false prevents direct children of the view from being removed
95
+ * from the native view hierarchy, similar to the effect of setting
96
+ * `collapsable={false}` on each child.
97
+ */
98
+ collapsableChildren?: boolean | undefined;
99
+
142
100
  /**
143
101
  * Whether this view should render itself (and all of its children) into a single hardware texture on the GPU.
144
102
  *
@@ -167,16 +125,16 @@ export interface ViewPropsAndroid {
167
125
 
168
126
  // [Windows
169
127
 
170
- export enum EventPhase {
171
- None = 0,
172
- Capturing,
173
- AtTarget,
174
- Bubbling,
128
+ export namespace EventPhase {
129
+ export const None = 0;
130
+ export const Capturing = 1;
131
+ export const AtTarget = 2;
132
+ export const Bubbling = 3;
175
133
  }
176
134
 
177
- export enum HandledEventPhase {
178
- Capturing = EventPhase.Capturing,
179
- Bubbling = EventPhase.Bubbling,
135
+ export namespace HandledEventPhase {
136
+ const Capturing = EventPhase.Capturing;
137
+ const Bubbling = EventPhase.Bubbling;
180
138
  }
181
139
 
182
140
  export interface INativeKeyboardEvent {
@@ -186,7 +144,11 @@ export interface INativeKeyboardEvent {
186
144
  shiftKey: boolean;
187
145
  key: string;
188
146
  code: string;
189
- eventPhase: EventPhase;
147
+ eventPhase:
148
+ | EventPhase.None
149
+ | EventPhase.Capturing
150
+ | EventPhase.AtTarget
151
+ | EventPhase.Bubbling;
190
152
  }
191
153
 
192
154
  export interface IHandledKeyboardEvent {
@@ -195,7 +157,7 @@ export interface IHandledKeyboardEvent {
195
157
  metaKey?: boolean;
196
158
  shiftKey?: boolean;
197
159
  code: string;
198
- handledEventPhase?: HandledEventPhase;
160
+ handledEventPhase?: EventPhase.Capturing | EventPhase.Bubbling;
199
161
  }
200
162
 
201
163
  export type IKeyboardEvent = NativeSyntheticEvent<INativeKeyboardEvent>;
@@ -560,6 +560,13 @@ export type ViewProps = $ReadOnly<{|
560
560
  */
561
561
  collapsable?: ?boolean,
562
562
 
563
+ /**
564
+ * Setting to false prevents direct children of the view from being removed
565
+ * from the native view hierarchy, similar to the effect of setting
566
+ * `collapsable={false}` on each child.
567
+ */
568
+ collapsableChildren?: ?boolean,
569
+
563
570
  /**
564
571
  * Contols whether this view, and its transitive children, are laid in a way
565
572
  * consistent with web browsers ('strict'), or consistent with existing
@@ -626,6 +626,13 @@ export type ViewProps = $ReadOnly<{|
626
626
  */
627
627
  collapsable?: ?boolean,
628
628
 
629
+ /**
630
+ * Setting to false prevents direct children of the view from being removed
631
+ * from the native view hierarchy, similar to the effect of setting
632
+ * `collapsable={false}` on each child.
633
+ */
634
+ collapsableChildren?: ?boolean,
635
+
629
636
  /**
630
637
  * Contols whether this view, and its transitive children, are laid in a way
631
638
  * consistent with web browsers ('strict'), or consistent with existing
@@ -10,8 +10,8 @@
10
10
  */
11
11
 
12
12
  import Networking from '../../Network/RCTNetworking';
13
+ import DevLoadingView from '../../Utilities/DevLoadingView';
13
14
  import HMRClient from '../../Utilities/HMRClient';
14
- import LoadingView from '../../Utilities/LoadingView';
15
15
  import getDevServer from './getDevServer';
16
16
 
17
17
  declare var global: {globalEvalWithSourceUrl?: (string, string) => mixed, ...};
@@ -110,7 +110,7 @@ module.exports = function (bundlePathAndQuery: string): Promise<void> {
110
110
  if (loadPromise) {
111
111
  return loadPromise;
112
112
  }
113
- LoadingView.showMessage('Downloading...', 'load');
113
+ DevLoadingView.showMessage('Downloading...', 'load');
114
114
  ++pendingRequests;
115
115
 
116
116
  loadPromise = asyncRequest(requestUrl)
@@ -143,7 +143,7 @@ module.exports = function (bundlePathAndQuery: string): Promise<void> {
143
143
  })
144
144
  .finally(() => {
145
145
  if (!--pendingRequests) {
146
- LoadingView.hide();
146
+ DevLoadingView.hide();
147
147
  }
148
148
  });
149
149