react-native-windows 0.84.0 → 0.85.0-preview.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/.flowconfig +1 -5
  2. package/Directory.Build.props +1 -16
  3. package/Directory.Build.targets +12 -4
  4. package/Folly/ThreadNameStub.cpp +4 -6
  5. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
  6. package/Libraries/Animated/Animated.d.ts +8 -1
  7. package/Libraries/Animated/AnimatedEvent.js +4 -4
  8. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  9. package/Libraries/Animated/animations/Animation.js +3 -3
  10. package/Libraries/Animated/animations/DecayAnimation.js +4 -4
  11. package/Libraries/Animated/animations/SpringAnimation.js +5 -5
  12. package/Libraries/Animated/animations/TimingAnimation.js +5 -5
  13. package/Libraries/Animated/createAnimatedComponent.js +7 -7
  14. package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
  15. package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
  16. package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
  17. package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
  18. package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
  19. package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
  20. package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
  21. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  22. package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
  23. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  24. package/Libraries/Animated/useAnimatedColor.d.ts +15 -0
  25. package/Libraries/Animated/useAnimatedColor.js +25 -0
  26. package/Libraries/Animated/useAnimatedValueXY.d.ts +15 -0
  27. package/Libraries/Animated/useAnimatedValueXY.js +26 -0
  28. package/Libraries/AppState/AppState.js +1 -1
  29. package/Libraries/BatchedBridge/MessageQueue.js +3 -3
  30. package/Libraries/BatchedBridge/NativeModules.js +12 -10
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
  32. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +34 -30
  33. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
  34. package/Libraries/Components/Button.js +2 -2
  35. package/Libraries/Components/Button.windows.js +2 -2
  36. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
  37. package/Libraries/Components/Keyboard/Keyboard.js +6 -6
  38. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
  39. package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
  40. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
  41. package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
  42. package/Libraries/Components/Pressable/Pressable.js +3 -3
  43. package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
  44. package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
  45. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  46. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
  47. package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
  48. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +5 -5
  49. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
  50. package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -0
  51. package/Libraries/Components/ScrollView/ScrollView.js +19 -9
  52. package/Libraries/Components/ScrollView/ScrollView.windows.js +19 -9
  53. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -18
  54. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +8 -18
  55. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
  56. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  57. package/Libraries/Components/StaticRenderer.js +1 -1
  58. package/Libraries/Components/StatusBar/StatusBar.js +8 -8
  59. package/Libraries/Components/Switch/Switch.js +3 -3
  60. package/Libraries/Components/Switch/Switch.windows.js +3 -3
  61. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
  62. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  63. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
  64. package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
  65. package/Libraries/Components/TextInput/TextInput.flow.windows.js +23 -22
  66. package/Libraries/Components/TextInput/TextInput.js +8 -4
  67. package/Libraries/Components/TextInput/TextInput.windows.js +3 -4
  68. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +33 -48
  69. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  70. package/Libraries/Components/Touchable/Touchable.js +2 -2
  71. package/Libraries/Components/Touchable/Touchable.windows.js +2 -2
  72. package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
  73. package/Libraries/Components/Touchable/TouchableBounce.windows.js +4 -4
  74. package/Libraries/Components/Touchable/TouchableHighlight.js +8 -8
  75. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +9 -9
  76. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
  77. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +7 -7
  78. package/Libraries/Components/Touchable/TouchableOpacity.js +4 -4
  79. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -4
  80. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
  81. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -1
  82. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  83. package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
  84. package/Libraries/Components/View/View.windows.js +1 -1
  85. package/Libraries/Components/View/ViewAccessibility.js +7 -7
  86. package/Libraries/Components/View/ViewAccessibility.windows.js +7 -7
  87. package/Libraries/Components/View/ViewPropTypes.js +14 -14
  88. package/Libraries/Components/View/ViewPropTypes.windows.js +18 -16
  89. package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
  90. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  91. package/Libraries/Core/ExceptionsManager.js +2 -2
  92. package/Libraries/Core/ExtendedError.js +3 -3
  93. package/Libraries/Core/RawEventEmitter.js +1 -1
  94. package/Libraries/Core/ReactNativeVersion.js +2 -2
  95. package/Libraries/Core/Timers/JSTimers.js +3 -2
  96. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  97. package/Libraries/Core/setUpErrorHandling.js +4 -2
  98. package/Libraries/Core/setUpReactDevTools.js +23 -6
  99. package/Libraries/Core/setUpSegmentFetcher.js +1 -1
  100. package/Libraries/Debugging/DebuggingOverlay.js +2 -2
  101. package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
  102. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
  103. package/Libraries/Image/AssetSourceResolver.js +1 -1
  104. package/Libraries/Image/AssetSourceResolver.windows.js +1 -1
  105. package/Libraries/Image/Image.android.js +172 -306
  106. package/Libraries/Image/ImageProps.js +9 -11
  107. package/Libraries/Image/ImageSource.js +2 -2
  108. package/Libraries/Image/ImageSourceUtils.js +8 -4
  109. package/Libraries/Image/ImageTypes.flow.js +2 -2
  110. package/Libraries/Image/ImageViewNativeComponent.js +7 -16
  111. package/Libraries/Image/nativeImageSource.js +1 -1
  112. package/Libraries/Interaction/InteractionManager.js +5 -4
  113. package/Libraries/Interaction/PanResponder.js +1 -1
  114. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  115. package/Libraries/Linking/Linking.js +1 -1
  116. package/Libraries/Lists/FlatList.js +3 -3
  117. package/Libraries/Lists/SectionList.js +1 -1
  118. package/Libraries/Lists/SectionListModern.js +2 -2
  119. package/Libraries/LogBox/Data/LogBoxData.js +38 -24
  120. package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
  121. package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
  122. package/Libraries/LogBox/LogBox.js +42 -19
  123. package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
  124. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  125. package/Libraries/LogBox/UI/LogBoxButton.js +14 -16
  126. package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
  127. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
  128. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -9
  129. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
  130. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
  131. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  132. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
  133. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
  134. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
  135. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
  136. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +15 -16
  137. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
  138. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
  139. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
  140. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +3 -5
  141. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
  142. package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
  143. package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
  144. package/Libraries/Modal/Modal.d.ts +4 -0
  145. package/Libraries/Modal/Modal.js +3 -3
  146. package/Libraries/Modal/Modal.windows.js +7 -3
  147. package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
  148. package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
  149. package/Libraries/NativeComponent/BaseViewConfig.windows.js +26 -17
  150. package/Libraries/Network/RCTNetworking.android.js +1 -1
  151. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  152. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  153. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  154. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
  155. package/Libraries/Network/XMLHttpRequest.js +1 -1
  156. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  157. package/Libraries/Pressability/Pressability.js +5 -5
  158. package/Libraries/Pressability/Pressability.windows.js +5 -5
  159. package/Libraries/Pressability/PressabilityDebug.js +1 -1
  160. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  161. package/Libraries/Pressability/usePressability.js +3 -14
  162. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
  163. package/Libraries/ReactNative/AppContainer-dev.js +18 -1
  164. package/Libraries/ReactNative/AppContainer.js +1 -1
  165. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  166. package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
  167. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  168. package/Libraries/ReactNative/RendererImplementation.js +4 -4
  169. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  170. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
  171. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
  172. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
  173. package/Libraries/Renderer/shims/ReactFabric.js +1 -3
  174. package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
  175. package/Libraries/Renderer/shims/ReactNative.js +3 -2
  176. package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
  177. package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +1 -3
  178. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
  179. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
  180. package/Libraries/StyleSheet/PointPropType.js +1 -1
  181. package/Libraries/StyleSheet/Rect.js +1 -1
  182. package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
  183. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  184. package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
  185. package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
  186. package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
  187. package/Libraries/StyleSheet/StyleSheetTypes.js +33 -35
  188. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
  189. package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
  190. package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
  191. package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
  192. package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
  193. package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
  194. package/Libraries/StyleSheet/processBoxShadow.js +44 -4
  195. package/Libraries/StyleSheet/processColorArray.js +2 -2
  196. package/Libraries/StyleSheet/processFilter.js +2 -2
  197. package/Libraries/Text/Text.js +295 -627
  198. package/Libraries/Text/Text.windows.js +342 -717
  199. package/Libraries/Text/TextNativeComponent.js +14 -7
  200. package/Libraries/Text/TextProps.js +4 -4
  201. package/Libraries/Text/TextProps.windows.js +4 -4
  202. package/Libraries/Types/CodegenTypes.js +1 -1
  203. package/Libraries/Types/CoreEventTypes.js +21 -21
  204. package/Libraries/Types/CoreEventTypes.windows.js +21 -21
  205. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  206. package/Libraries/Utilities/Appearance.js +6 -1
  207. package/Libraries/Utilities/Dimensions.js +1 -1
  208. package/Libraries/Utilities/HMRClient.js +32 -5
  209. package/Libraries/Utilities/IPerformanceLogger.js +4 -4
  210. package/Libraries/Utilities/codegenNativeCommands.js +4 -4
  211. package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
  212. package/Libraries/Utilities/codegenNativeComponent.js +2 -2
  213. package/Libraries/Utilities/logError.js +1 -1
  214. package/Libraries/Utilities/stringifySafe.js +3 -3
  215. package/Libraries/Utilities/useMergeRefs.js +2 -2
  216. package/Libraries/vendor/core/ErrorUtils.js +4 -4
  217. package/Libraries/vendor/emitter/EventEmitter.js +16 -20
  218. package/Microsoft.ReactNative/CallInvoker.cpp +14 -4
  219. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +1 -1
  220. package/Microsoft.ReactNative/Fabric/AbiPortalShadowNode.cpp +2 -2
  221. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +1 -1
  222. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.cpp +73 -97
  223. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.h +4 -1
  224. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +0 -1
  225. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +4 -4
  226. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +135 -18
  227. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +10 -0
  228. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +7 -2
  229. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +2 -0
  230. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +63 -15
  231. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +3 -1
  232. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1 -1
  233. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -1
  234. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -0
  235. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +1 -0
  236. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +3 -0
  237. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +0 -3
  238. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +2 -7
  239. package/Microsoft.ReactNative/IReactPackageBuilder.idl +6 -0
  240. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -61
  241. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -26
  242. package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -1
  243. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -17
  244. package/Microsoft.ReactNative/Modules/AppStateModule.h +0 -4
  245. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -2
  246. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +16 -15
  247. package/Microsoft.ReactNative/Modules/AppearanceModule.h +5 -1
  248. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +2 -7
  249. package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +0 -1
  250. package/Microsoft.ReactNative/Modules/I18nManagerModule.h +4 -4
  251. package/Microsoft.ReactNative/QuirkSettings.cpp +0 -133
  252. package/Microsoft.ReactNative/QuirkSettings.h +0 -43
  253. package/Microsoft.ReactNative/QuirkSettings.idl +0 -41
  254. package/Microsoft.ReactNative/ReactHost/CrashManager.cpp +0 -4
  255. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +0 -2
  256. package/Microsoft.ReactNative/ReactHost/React.h +0 -5
  257. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -1
  258. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +3 -26
  259. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +0 -5
  260. package/Microsoft.ReactNative/ReactHost/React_Win.h +0 -2
  261. package/Microsoft.ReactNative/ReactNativeAppBuilder.idl +3 -0
  262. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +7 -0
  263. package/Microsoft.ReactNative/ReactPackageBuilder.h +1 -0
  264. package/Microsoft.ReactNative/RedBox.cpp +0 -9
  265. package/Microsoft.ReactNative/RedBoxHandler.cpp +0 -4
  266. package/Microsoft.ReactNative/TurboModulesProvider.cpp +5 -10
  267. package/Microsoft.ReactNative/TurboModulesProvider.h +2 -0
  268. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
  269. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +0 -7
  270. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +0 -22
  271. package/Microsoft.ReactNative.Cxx/ModuleRegistration.cpp +8 -2
  272. package/Microsoft.ReactNative.Cxx/ModuleRegistration.h +36 -20
  273. package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +0 -3
  274. package/Microsoft.ReactNative.Cxx/NativeModules.h +8 -2
  275. package/Microsoft.ReactNative.Cxx/XamlUtils.h +0 -9
  276. package/Microsoft.ReactNative.Managed/ReactContext.cs +0 -9
  277. package/PropertySheets/Autolink.props +1 -1
  278. package/PropertySheets/Bundle.props +1 -1
  279. package/PropertySheets/Codegen.props +1 -1
  280. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  281. package/PropertySheets/NuGet.LockFile.props +8 -0
  282. package/PropertySheets/React.Cpp.props +4 -4
  283. package/PropertySheets/ReactNativeArchitecture.props +6 -24
  284. package/ReactCommon/ReactCommon.vcxproj +5 -6
  285. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1 -1
  286. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +15 -4
  287. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +13 -0
  288. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/defaults/DefaultTurboModules.cpp +69 -0
  289. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/animationbackend/AnimatedPropSerializer.cpp +717 -0
  290. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +10 -10
  291. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +2 -21
  292. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +151 -0
  293. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +50 -0
  294. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBuffer.cpp +178 -0
  295. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +69 -39
  296. package/Scripts/OfficeReact.Win32.nuspec +0 -1
  297. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +4 -39
  298. package/Scripts/creaternwapp.cmd +1 -9
  299. package/Scripts/creaternwlib.cmd +4 -24
  300. package/Shared/DevSettings.h +0 -3
  301. package/Shared/Networking/WinRTWebSocketResource.cpp +23 -408
  302. package/Shared/Networking/WinRTWebSocketResource.h +3 -119
  303. package/Shared/Shared.vcxitems +63 -38
  304. package/Shared/Shared.vcxitems.filters +54 -0
  305. package/Shared/Utils.cpp +0 -88
  306. package/Shared/Utils.h +0 -14
  307. package/Shared/WebSocketResourceFactory.cpp +28 -0
  308. package/Shared/tracing/fbsystrace.h +1 -0
  309. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +172 -160
  310. package/codegen/react/components/rnwcore/ModalHostView.g.h +8 -0
  311. package/codegen/react/components/rnwcore/Props.cpp +17 -7
  312. package/codegen/react/components/rnwcore/Props.h +3 -1
  313. package/codegen/react/components/rnwcore/VirtualViewExperimental.g.h +4 -4
  314. package/codegen/rnwcoreJSI.h +93 -77
  315. package/index.js +9 -0
  316. package/index.windows.js +9 -0
  317. package/jest/RefreshControlMock.js +2 -2
  318. package/jest/assetFileTransformer.js +8 -3
  319. package/jest/mockComponent.js +3 -4
  320. package/jest/mockNativeComponent.js +1 -1
  321. package/jest/mocks/ActivityIndicator.js +2 -2
  322. package/jest/mocks/Image.js +2 -2
  323. package/jest/mocks/Modal.js +2 -2
  324. package/jest/mocks/RefreshControl.js +3 -3
  325. package/jest/mocks/RendererProxy.js +2 -2
  326. package/jest/mocks/ScrollView.js +5 -5
  327. package/jest/mocks/Text.js +2 -2
  328. package/jest/mocks/TextInput.js +2 -2
  329. package/jest/mocks/View.js +2 -2
  330. package/jest/mocks/ViewNativeComponent.js +1 -1
  331. package/jest/mocks/requireNativeComponent.js +1 -1
  332. package/jest/mocks/useColorScheme.js +1 -1
  333. package/jest/setup.js +68 -31
  334. package/package.json +27 -22
  335. package/src/private/animated/NativeAnimatedHelper.js +2 -2
  336. package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
  337. package/src/private/components/virtualview/VirtualView.js +14 -21
  338. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
  339. package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
  340. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
  341. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
  342. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
  343. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  344. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
  345. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
  346. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
  347. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
  348. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  349. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  350. package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
  351. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
  352. package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
  353. package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
  354. package/src/private/featureflags/ReactNativeFeatureFlags.js +71 -79
  355. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
  356. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -12
  357. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
  358. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
  359. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
  360. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
  361. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  362. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
  363. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
  364. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
  365. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
  366. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
  367. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +7 -3
  368. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
  369. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
  370. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
  371. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
  372. package/src/private/styles/composeStyles.js +1 -1
  373. package/src/private/utilities/toError.js +27 -0
  374. package/src/private/utilities/toExtendedError.js +30 -0
  375. package/src/private/webapis/dom/events/Event.js +1 -1
  376. package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
  377. package/src/private/webapis/dom/events/EventTarget.js +3 -3
  378. package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
  379. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  380. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
  381. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
  382. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
  383. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  384. package/src/private/webapis/geometry/DOMRectList.js +2 -2
  385. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
  386. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
  387. package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
  388. package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
  389. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
  390. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
  391. package/src/private/webapis/performance/LongTasks.js +3 -3
  392. package/src/private/webapis/performance/Performance.js +4 -4
  393. package/src/private/webapis/performance/PerformanceEntry.js +1 -1
  394. package/src/private/webapis/performance/PerformanceObserver.js +2 -2
  395. package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
  396. package/src/private/webapis/structuredClone/structuredClone.js +2 -2
  397. package/src/types/globals.d.ts +4 -4
  398. package/template/cpp-lib/proj/MyLib.sln +0 -33
  399. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  400. package/template/cs-lib/proj/MyLib.sln +0 -33
  401. package/template/metro.config.js +12 -2
  402. package/templates/cpp-app/metro.config.js +12 -2
  403. package/templates/cpp-app/windows/MyApp/MyApp.cpp +9 -6
  404. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +1 -1
  405. package/templates/cpp-app/windows/MyApp.sln +0 -33
  406. package/templates/cpp-lib/example/metro.config.js +12 -2
  407. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +1 -1
  408. package/templates/cpp-lib/windows/MyLib.sln +0 -33
  409. package/types/index.d.ts +2 -0
  410. package/Folly/.clang-format +0 -2
  411. package/Folly/Folly.natvis +0 -25
  412. package/Folly/Folly.vcxproj +0 -378
  413. package/Folly/Folly.vcxproj.filters +0 -558
  414. package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +0 -978
  415. package/Folly/TEMP_UntilFollyUpdate/Conv.cpp +0 -1205
  416. package/Folly/TEMP_UntilFollyUpdate/chrono/Hardware.h +0 -155
  417. package/Folly/TEMP_UntilFollyUpdate/concurrency/CacheLocality.cpp +0 -633
  418. package/Folly/TEMP_UntilFollyUpdate/json/dynamic-inl.h +0 -1438
  419. package/Folly/TEMP_UntilFollyUpdate/json/json.cpp +0 -1118
  420. package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +0 -188
  421. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +0 -348
  422. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +0 -182
  423. package/Folly/TEMP_UntilFollyUpdate/portability/Unistd.cpp +0 -33
  424. package/Folly/cgmanifest.json +0 -25
  425. package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
  426. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +0 -64
  427. package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
  428. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +0 -75
  429. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +0 -27
  430. package/Microsoft.ReactNative/Fabric/Composition/Theme_emptyimpl.cpp +0 -81
  431. package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -24
  432. package/Microsoft.ReactNative/ReactSupport.cpp +0 -221
  433. package/Microsoft.ReactNative/ReactSupport.h +0 -13
  434. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.cpp +0 -107
  435. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +0 -62
  436. package/Microsoft.ReactNative/Utils/UwpScriptStore.cpp +0 -56
  437. package/Microsoft.ReactNative/Utils/UwpScriptStore.h +0 -23
  438. package/Microsoft.ReactNative/XamlUIService.cpp +0 -68
  439. package/Microsoft.ReactNative/XamlUIService.h +0 -37
  440. package/Microsoft.ReactNative/XamlUIService.idl +0 -53
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +0 -259
  442. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/Instance.cpp +0 -381
  443. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +0 -145
  444. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/MethodCall.cpp +0 -100
  445. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ModuleRegistry.cpp +0 -256
  446. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +0 -363
  447. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/RAMBundleRegistry.cpp +0 -93
  448. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +0 -148
  449. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +0 -190
  450. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSINativeModules.cpp +0 -123
  451. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleWithJSIBindings.cpp +0 -27
  452. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/webperformance/NativePerformance.cpp +0 -414
  453. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +0 -91
  454. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +0 -80
  455. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +0 -138
  456. package/fmt/.clang-format +0 -2
  457. package/fmt/cgmanifest.json +0 -15
  458. package/fmt/fmt.vcxproj +0 -153
  459. package/fmt/fmt.vcxproj.filters +0 -59
  460. package/fmt/pch.cpp +0 -4
  461. package/fmt/pch.h +0 -2
@@ -18,7 +18,7 @@ import type {HostComponent} from '../../types/HostComponent';
18
18
 
19
19
  import codegenNativeComponent from '../../../../Libraries/Utilities/codegenNativeComponent';
20
20
 
21
- export type NativeModeChangeEvent = $ReadOnly<{
21
+ export type NativeModeChangeEvent = Readonly<{
22
22
  /**
23
23
  * Virtualization mode of the target view.
24
24
  *
@@ -34,7 +34,7 @@ export type NativeModeChangeEvent = $ReadOnly<{
34
34
  /**
35
35
  * Rect of the target view, relative to the nearest ancestor scroll container.
36
36
  */
37
- targetRect: $ReadOnly<{
37
+ targetRect: Readonly<{
38
38
  x: Double,
39
39
  y: Double,
40
40
  width: Double,
@@ -51,7 +51,7 @@ export type NativeModeChangeEvent = $ReadOnly<{
51
51
  *
52
52
  * This can be used to determine whether and how much new content to render.
53
53
  */
54
- thresholdRect: $ReadOnly<{
54
+ thresholdRect: Readonly<{
55
55
  x: Double,
56
56
  y: Double,
57
57
  width: Double,
@@ -59,7 +59,7 @@ export type NativeModeChangeEvent = $ReadOnly<{
59
59
  }>,
60
60
  }>;
61
61
 
62
- type VirtualViewNativeProps = $ReadOnly<{
62
+ type VirtualViewNativeProps = Readonly<{
63
63
  ...ViewProps,
64
64
 
65
65
  /**
@@ -16,9 +16,9 @@ import * as React from 'react';
16
16
 
17
17
  const View = require('../../../../../Libraries/Components/View/View').default;
18
18
 
19
- type Props = $ReadOnly<{
19
+ type Props = Readonly<{
20
20
  children: React.Node,
21
- box?: ?$ReadOnly<{
21
+ box?: ?Readonly<{
22
22
  top: number,
23
23
  right: number,
24
24
  bottom: number,
@@ -31,7 +31,7 @@ const blank = {
31
31
  bottom: 0,
32
32
  };
33
33
 
34
- type BoxInspectorProps = $ReadOnly<{
34
+ type BoxInspectorProps = Readonly<{
35
35
  style: ViewStyleProp,
36
36
  frame: ?InspectedElementFrame,
37
37
  }>;
@@ -57,10 +57,10 @@ function BoxInspector({style, frame}: BoxInspectorProps): React.Node {
57
57
  );
58
58
  }
59
59
 
60
- type BoxContainerProps = $ReadOnly<{
60
+ type BoxContainerProps = Readonly<{
61
61
  title: string,
62
62
  titleStyle?: TextStyleProp,
63
- box: $ReadOnly<{
63
+ box: Readonly<{
64
64
  top: number,
65
65
  left: number,
66
66
  right: number,
@@ -25,15 +25,15 @@ const Dimensions =
25
25
  const BorderBox = require('./BorderBox').default;
26
26
  const resolveBoxStyle = require('./resolveBoxStyle').default;
27
27
 
28
- type Props = $ReadOnly<{
28
+ type Props = Readonly<{
29
29
  frame: InspectedElementFrame,
30
30
  style?: ?ViewStyleProp,
31
31
  }>;
32
32
 
33
33
  function ElementBox({frame, style}: Props): React.Node {
34
34
  const flattenedStyle = flattenStyle(style) || {};
35
- let margin: ?$ReadOnly<Style> = resolveBoxStyle('margin', flattenedStyle);
36
- let padding: ?$ReadOnly<Style> = resolveBoxStyle('padding', flattenedStyle);
35
+ let margin: ?Readonly<Style> = resolveBoxStyle('margin', flattenedStyle);
36
+ let padding: ?Readonly<Style> = resolveBoxStyle('padding', flattenedStyle);
37
37
 
38
38
  const frameStyle = {...frame};
39
39
  const contentStyle: {width: number, height: number} = {
@@ -110,7 +110,7 @@ type Style = {
110
110
  * @param style the style to resolve
111
111
  * @return a modified copy
112
112
  */
113
- function resolveRelativeSizes(style: $ReadOnly<Style>): Style {
113
+ function resolveRelativeSizes(style: Readonly<Style>): Style {
114
114
  let resolvedStyle = {...style};
115
115
  resolveSizeInPlace(resolvedStyle, 'top', 'height');
116
116
  resolveSizeInPlace(resolvedStyle, 'right', 'width');
@@ -30,7 +30,7 @@ const mapWithSeparator =
30
30
  const BoxInspector = require('./BoxInspector').default;
31
31
  const StyleInspector = require('./StyleInspector').default;
32
32
 
33
- type Props = $ReadOnly<{
33
+ type Props = Readonly<{
34
34
  hierarchy: ?InspectorData['hierarchy'],
35
35
  style?: ?ViewStyleProp,
36
36
  frame?: ?Object,
@@ -41,24 +41,35 @@ const {useState} = React;
41
41
  type PanelPosition = 'top' | 'bottom';
42
42
 
43
43
  export type InspectedElementFrame = TouchedViewDataAtPoint['frame'];
44
- export type InspectedElement = $ReadOnly<{
44
+ export type InspectedElement = Readonly<{
45
45
  frame: InspectedElementFrame,
46
46
  style?: ViewStyleProp,
47
47
  }>;
48
48
  export type ElementsHierarchy = InspectorData['hierarchy'];
49
49
 
50
+ type ExternalInspection = {
51
+ externalInspectingEnabled: boolean,
52
+ +reportToExternalInspection: (viewData: TouchedViewDataAtPoint) => void,
53
+ };
54
+
50
55
  type Props = {
51
56
  inspectedViewRef: InspectedViewRef,
52
57
  onRequestRerenderApp: () => void,
53
58
  reactDevToolsAgent?: ReactDevToolsAgent,
59
+ devMenuInspectorOpen: boolean,
60
+ externalInspection: ExternalInspection,
54
61
  };
55
62
 
56
63
  function Inspector({
57
64
  inspectedViewRef,
58
65
  onRequestRerenderApp,
59
66
  reactDevToolsAgent,
67
+ devMenuInspectorOpen,
68
+ externalInspection,
60
69
  }: Props): React.Node {
61
- const [inspecting, setInspecting] = useState<boolean>(true);
70
+ const [inspectingEnabled, setInspectingEnabled] = useState<boolean>(true);
71
+ const {externalInspectingEnabled, reportToExternalInspection} =
72
+ externalInspection;
62
73
 
63
74
  const [panelPosition, setPanelPosition] = useState<PanelPosition>('bottom');
64
75
  const [inspectedElement, setInspectedElement] =
@@ -67,6 +78,9 @@ function Inspector({
67
78
  const [elementsHierarchy, setElementsHierarchy] =
68
79
  useState<?ElementsHierarchy>(null);
69
80
 
81
+ // Derive inspecting state: external inspection forces it on, otherwise use local state
82
+ const isInspecting = externalInspectingEnabled || inspectingEnabled;
83
+
70
84
  const setSelection = (i: number) => {
71
85
  const hierarchyItem = elementsHierarchy?.[i];
72
86
  if (hierarchyItem == null) {
@@ -99,6 +113,11 @@ function Inspector({
99
113
  closestInstance,
100
114
  } = viewData;
101
115
 
116
+ // Report to external inspection if in external inspection mode
117
+ if (externalInspectingEnabled) {
118
+ reportToExternalInspection(viewData);
119
+ }
120
+
102
121
  // Sync the touched view with React DevTools.
103
122
  // Note: This is Paper only. To support Fabric,
104
123
  // DevTools needs to be updated to not rely on view tags.
@@ -133,7 +152,7 @@ function Inspector({
133
152
  };
134
153
 
135
154
  const handleSetInspecting = (enabled: boolean) => {
136
- setInspecting(enabled);
155
+ setInspectingEnabled(enabled);
137
156
  setInspectedElement(null);
138
157
  };
139
158
 
@@ -149,26 +168,29 @@ function Inspector({
149
168
 
150
169
  return (
151
170
  <View style={styles.container} pointerEvents="box-none">
152
- {inspecting && (
171
+ {isInspecting && (
153
172
  <InspectorOverlay
154
173
  inspected={inspectedElement}
155
174
  onTouchPoint={onTouchPoint}
175
+ externalInspectionActive={externalInspectingEnabled}
156
176
  />
157
177
  )}
158
178
 
159
- <SafeAreaView style={[styles.panelContainer, panelContainerStyle]}>
160
- <InspectorPanel
161
- devtoolsIsOpen={!!reactDevToolsAgent}
162
- inspecting={inspecting}
163
- setInspecting={handleSetInspecting}
164
- inspected={inspectedElement}
165
- hierarchy={elementsHierarchy}
166
- selection={selectionIndex}
167
- setSelection={setSelection}
168
- touchTargeting={PressabilityDebug.isEnabled()}
169
- setTouchTargeting={setTouchTargeting}
170
- />
171
- </SafeAreaView>
179
+ {!externalInspectingEnabled && (
180
+ <SafeAreaView style={[styles.panelContainer, panelContainerStyle]}>
181
+ <InspectorPanel
182
+ devtoolsIsOpen={!!reactDevToolsAgent}
183
+ inspecting={inspectingEnabled}
184
+ setInspecting={handleSetInspecting}
185
+ inspected={inspectedElement}
186
+ hierarchy={elementsHierarchy}
187
+ selection={selectionIndex}
188
+ setSelection={setSelection}
189
+ touchTargeting={PressabilityDebug.isEnabled()}
190
+ setTouchTargeting={setTouchTargeting}
191
+ />
192
+ </SafeAreaView>
193
+ )}
172
194
  </View>
173
195
  );
174
196
  }
@@ -20,12 +20,17 @@ const StyleSheet =
20
20
  require('../../../../../Libraries/StyleSheet/StyleSheet').default;
21
21
  const ElementBox = require('./ElementBox').default;
22
22
 
23
- type Props = $ReadOnly<{
23
+ type Props = Readonly<{
24
24
  inspected?: ?InspectedElement,
25
25
  onTouchPoint: (locationX: number, locationY: number) => void,
26
+ externalInspectionActive?: boolean,
26
27
  }>;
27
28
 
28
- function InspectorOverlay({inspected, onTouchPoint}: Props): React.Node {
29
+ function InspectorOverlay({
30
+ inspected,
31
+ onTouchPoint,
32
+ externalInspectionActive,
33
+ }: Props): React.Node {
29
34
  const findViewForTouchEvent = (e: GestureResponderEvent) => {
30
35
  const {locationX, locationY} = e.nativeEvent.touches[0];
31
36
 
@@ -47,7 +52,10 @@ function InspectorOverlay({inspected, onTouchPoint}: Props): React.Node {
47
52
  onStartShouldSetResponder={handleStartShouldSetResponder}
48
53
  onResponderMove={findViewForTouchEvent}
49
54
  nativeID="inspectorOverlay" /* TODO: T68258846. */
50
- style={styles.inspector}>
55
+ style={[
56
+ styles.inspector,
57
+ externalInspectionActive === true && styles.externalInspectionIndicator,
58
+ ]}>
51
59
  {content}
52
60
  </View>
53
61
  );
@@ -62,6 +70,10 @@ const styles = StyleSheet.create({
62
70
  right: 0,
63
71
  bottom: 0,
64
72
  },
73
+ externalInspectionIndicator: {
74
+ borderWidth: 4,
75
+ borderColor: 'rgba(255, 0, 0, 0.8)',
76
+ },
65
77
  });
66
78
 
67
79
  export default InspectorOverlay;
@@ -25,7 +25,7 @@ const StyleSheet =
25
25
  const Text = require('../../../../../Libraries/Text/Text').default;
26
26
  const ElementProperties = require('./ElementProperties').default;
27
27
 
28
- type Props = $ReadOnly<{
28
+ type Props = Readonly<{
29
29
  devtoolsIsOpen: boolean,
30
30
  inspecting: boolean,
31
31
  setInspecting: (val: boolean) => void,
@@ -84,7 +84,7 @@ class InspectorPanel extends React.Component<Props> {
84
84
  }
85
85
  }
86
86
 
87
- type InspectorPanelButtonProps = $ReadOnly<{
87
+ type InspectorPanelButtonProps = Readonly<{
88
88
  onClick: (val: boolean) => void,
89
89
  pressed: boolean,
90
90
  title: string,
@@ -52,10 +52,12 @@ export default function ReactDevToolsOverlay({
52
52
 
53
53
  function onStartInspectingNative() {
54
54
  setIsInspecting(true);
55
+ setInspected(null);
55
56
  }
56
57
 
57
58
  function onStopInspectingNative() {
58
59
  setIsInspecting(false);
60
+ setInspected(null);
59
61
  }
60
62
 
61
63
  reactDevToolsAgent.addListener('shutdown', cleanup);
@@ -93,12 +95,6 @@ export default function ReactDevToolsOverlay({
93
95
  [inspectedViewRef, reactDevToolsAgent],
94
96
  );
95
97
 
96
- const stopInspecting = useCallback(() => {
97
- reactDevToolsAgent.stopInspectingNative(true);
98
- setIsInspecting(false);
99
- setInspected(null);
100
- }, [reactDevToolsAgent]);
101
-
102
98
  const onPointerMove = useCallback(
103
99
  (e: PointerEvent) => {
104
100
  findViewForLocation(e.nativeEvent.x, e.nativeEvent.y);
@@ -133,12 +129,10 @@ export default function ReactDevToolsOverlay({
133
129
  ? {
134
130
  onPointerMove,
135
131
  onPointerDown: onPointerMove,
136
- onPointerUp: stopInspecting,
137
132
  }
138
133
  : {
139
134
  onStartShouldSetResponder: shouldSetResponder,
140
135
  onResponderMove: onResponderMove,
141
- onResponderRelease: stopInspecting,
142
136
  };
143
137
 
144
138
  return (
@@ -20,7 +20,7 @@ const StyleSheet =
20
20
  require('../../../../../Libraries/StyleSheet/StyleSheet').default;
21
21
  const Text = require('../../../../../Libraries/Text/Text').default;
22
22
 
23
- type Props = $ReadOnly<{
23
+ type Props = Readonly<{
24
24
  style?: ?____FlattenStyleProp_Internal<ViewStyleProp>,
25
25
  }>;
26
26
 
@@ -26,7 +26,7 @@ const I18nManager =
26
26
  function resolveBoxStyle(
27
27
  prefix: string,
28
28
  style: Object,
29
- ): ?$ReadOnly<{
29
+ ): ?Readonly<{
30
30
  bottom: number,
31
31
  left: number,
32
32
  right: number,
@@ -0,0 +1,102 @@
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
+ 'use strict';
12
+
13
+ import type {TouchedViewDataAtPoint} from '../../../../../Libraries/Renderer/shims/ReactNativeTypes';
14
+
15
+ import * as ReactNativeFeatureFlags from '../../../../../src/private/featureflags/ReactNativeFeatureFlags';
16
+ import {useCallback, useEffect, useState} from 'react';
17
+
18
+ type ExternalInspectionAPI = {
19
+ enable: () => void,
20
+ disable: () => void,
21
+ };
22
+
23
+ declare var __EXTERNAL_INSPECTION__: ?ExternalInspectionAPI;
24
+ declare var __EXTERNAL_INSPECTION_SELECT__: ?(payload: string) => void;
25
+
26
+ type UseExternalInspectionResult = {
27
+ externalInspectingEnabled: boolean,
28
+ reportToExternalInspection: (viewData: TouchedViewDataAtPoint) => void,
29
+ };
30
+
31
+ /**
32
+ * Initializes the __EXTERNAL_INSPECTION__ API on the device.
33
+ */
34
+ function ensureExternalInspectionAPI(
35
+ onEnable: () => void,
36
+ onDisable: () => void,
37
+ ): ExternalInspectionAPI {
38
+ if (
39
+ typeof __EXTERNAL_INSPECTION__ === 'undefined' ||
40
+ __EXTERNAL_INSPECTION__ == null
41
+ ) {
42
+ const api: ExternalInspectionAPI = {
43
+ enable: onEnable,
44
+ disable: onDisable,
45
+ };
46
+ // $FlowFixMe[prop-missing] Initializing global API for DevTools communication
47
+ (global: $FlowFixMe).__EXTERNAL_INSPECTION__ = api;
48
+ return api;
49
+ }
50
+ __EXTERNAL_INSPECTION__.enable = onEnable;
51
+ __EXTERNAL_INSPECTION__.disable = onDisable;
52
+ return __EXTERNAL_INSPECTION__;
53
+ }
54
+
55
+ export default function useExternalInspection(): UseExternalInspectionResult {
56
+ const [externalInspectingEnabled, setExternalInspectingEnabled] =
57
+ useState<boolean>(false);
58
+
59
+ useEffect(() => {
60
+ if (!ReactNativeFeatureFlags.externalElementInspectionEnabled()) {
61
+ return;
62
+ }
63
+
64
+ const handleEnable = () => {
65
+ setExternalInspectingEnabled(true);
66
+ };
67
+
68
+ const handleDisable = () => {
69
+ setExternalInspectingEnabled(false);
70
+ };
71
+
72
+ ensureExternalInspectionAPI(handleEnable, handleDisable);
73
+ }, []);
74
+
75
+ const reportToExternalInspection = useCallback(
76
+ (viewData: TouchedViewDataAtPoint) => {
77
+ if (
78
+ typeof __EXTERNAL_INSPECTION_SELECT__ === 'undefined' ||
79
+ __EXTERNAL_INSPECTION_SELECT__ === null ||
80
+ !externalInspectingEnabled
81
+ ) {
82
+ return;
83
+ }
84
+
85
+ __EXTERNAL_INSPECTION_SELECT__(
86
+ JSON.stringify({
87
+ frame: viewData.frame,
88
+ hierarchy: viewData.hierarchy.map(item => ({
89
+ name: item.name,
90
+ })),
91
+ touchedViewTag: viewData.touchedViewTag,
92
+ }),
93
+ );
94
+ },
95
+ [externalInspectingEnabled],
96
+ );
97
+
98
+ return {
99
+ externalInspectingEnabled,
100
+ reportToExternalInspection,
101
+ };
102
+ }
@@ -8,34 +8,21 @@
8
8
  * @format
9
9
  */
10
10
 
11
- class FuseboxSessionObserver {
12
- #hasNativeSupport: boolean;
11
+ import GlobalStateObserver from './GlobalStateObserver';
13
12
 
14
- constructor() {
15
- this.#hasNativeSupport = global.hasOwnProperty(
16
- '__DEBUGGER_SESSION_OBSERVER__',
17
- );
18
- }
13
+ const observer = new GlobalStateObserver(
14
+ '__DEBUGGER_SESSION_OBSERVER__',
15
+ 'hasActiveSession',
16
+ );
19
17
 
18
+ const FuseboxSessionObserver = {
20
19
  hasActiveSession(): boolean {
21
- if (!this.#hasNativeSupport) {
22
- return false;
23
- }
24
-
25
- return global.__DEBUGGER_SESSION_OBSERVER__.hasActiveSession;
26
- }
20
+ return observer.getStatus();
21
+ },
27
22
 
28
23
  subscribe(callback: (status: boolean) => void): () => void {
29
- if (!this.#hasNativeSupport) {
30
- return () => {};
31
- }
32
-
33
- global.__DEBUGGER_SESSION_OBSERVER__.subscribers.add(callback);
34
- return () => {
35
- global.__DEBUGGER_SESSION_OBSERVER__.subscribers.delete(callback);
36
- };
37
- }
38
- }
24
+ return observer.subscribe(callback);
25
+ },
26
+ };
39
27
 
40
- const observerInstance: FuseboxSessionObserver = new FuseboxSessionObserver();
41
- export default observerInstance;
28
+ export default FuseboxSessionObserver;
@@ -0,0 +1,56 @@
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
8
+ * @format
9
+ */
10
+
11
+ /**
12
+ * Generic observer for a boolean state exposed via a native global object.
13
+ *
14
+ * Native code installs a global object with the following shape:
15
+ * global[globalName] = {
16
+ * [statusProperty]: boolean,
17
+ * subscribers: Set<(status: boolean) => void>,
18
+ * [callbackName]: (status: boolean) => void,
19
+ * }
20
+ *
21
+ * This class provides a JS-friendly API over that global object.
22
+ */
23
+ class GlobalStateObserver {
24
+ #globalName: string;
25
+ #statusProperty: string;
26
+
27
+ constructor(globalName: string, statusProperty: string) {
28
+ this.#globalName = globalName;
29
+ this.#statusProperty = statusProperty;
30
+ }
31
+
32
+ #hasNativeSupport(): boolean {
33
+ return global.hasOwnProperty(this.#globalName);
34
+ }
35
+
36
+ getStatus(): boolean {
37
+ if (!this.#hasNativeSupport()) {
38
+ return false;
39
+ }
40
+
41
+ return global[this.#globalName][this.#statusProperty];
42
+ }
43
+
44
+ subscribe(callback: (status: boolean) => void): () => void {
45
+ if (!this.#hasNativeSupport()) {
46
+ return () => {};
47
+ }
48
+
49
+ global[this.#globalName].subscribers.add(callback);
50
+ return () => {
51
+ global[this.#globalName].subscribers.delete(callback);
52
+ };
53
+ }
54
+ }
55
+
56
+ export default GlobalStateObserver;
@@ -0,0 +1,28 @@
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
8
+ * @format
9
+ */
10
+
11
+ import GlobalStateObserver from './GlobalStateObserver';
12
+
13
+ const observer = new GlobalStateObserver(
14
+ '__TRACING_STATE_OBSERVER__',
15
+ 'isTracing',
16
+ );
17
+
18
+ const TracingStateObserver = {
19
+ isTracing(): boolean {
20
+ return observer.getStatus();
21
+ },
22
+
23
+ subscribe(callback: (isTracing: boolean) => void): () => void {
24
+ return observer.subscribe(callback);
25
+ },
26
+ };
27
+
28
+ export default TracingStateObserver;