@office-iss/react-native-win32 0.70.2 → 0.71.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 (559) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +2 -0
  3. package/.flowconfig +3 -6
  4. package/CHANGELOG.json +281 -43
  5. package/CHANGELOG.md +105 -24
  6. package/IntegrationTests/AccessibilityManagerTest.js +1 -1
  7. package/IntegrationTests/AppEventsTest.js +0 -1
  8. package/IntegrationTests/BUCK +0 -1
  9. package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +1 -1
  10. package/IntegrationTests/ImageSnapshotTest.js +1 -1
  11. package/IntegrationTests/IntegrationTestsApp.js +2 -3
  12. package/IntegrationTests/SimpleSnapshotTest.js +1 -1
  13. package/IntegrationTests/SyncMethodTest.js +1 -1
  14. package/IntegrationTests/TimersTest.js +4 -4
  15. package/IntegrationTests/WebSocketTest.js +3 -3
  16. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +80 -0
  17. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +4 -3
  18. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  19. package/Libraries/Alert/Alert.d.ts +90 -0
  20. package/Libraries/Alert/Alert.js +7 -1
  21. package/Libraries/Alert/Alert.win32.js +1 -0
  22. package/Libraries/Alert/NativeAlertManager.js +2 -0
  23. package/Libraries/Alert/RCTAlertManager.ios.js +2 -1
  24. package/Libraries/Animated/Animated.d.ts +587 -0
  25. package/Libraries/Animated/Animated.js +13 -11
  26. package/Libraries/Animated/AnimatedEvent.js +12 -17
  27. package/Libraries/Animated/AnimatedImplementation.js +21 -23
  28. package/Libraries/Animated/AnimatedMock.js +11 -13
  29. package/Libraries/Animated/AnimatedWeb.js +2 -2
  30. package/Libraries/Animated/Easing.d.ts +37 -0
  31. package/Libraries/Animated/Easing.js +2 -2
  32. package/Libraries/Animated/NativeAnimatedHelper.js +32 -22
  33. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  34. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  35. package/Libraries/Animated/SpringConfig.js +2 -7
  36. package/Libraries/Animated/animations/Animation.js +3 -4
  37. package/Libraries/Animated/animations/DecayAnimation.js +5 -8
  38. package/Libraries/Animated/animations/SpringAnimation.js +9 -14
  39. package/Libraries/Animated/animations/TimingAnimation.js +9 -13
  40. package/Libraries/Animated/bezier.js +2 -2
  41. package/Libraries/Animated/components/AnimatedFlatList.js +5 -6
  42. package/Libraries/Animated/components/AnimatedImage.js +5 -6
  43. package/Libraries/Animated/components/AnimatedScrollView.js +110 -14
  44. package/Libraries/Animated/components/AnimatedSectionList.js +4 -5
  45. package/Libraries/Animated/components/AnimatedText.js +5 -6
  46. package/Libraries/Animated/components/AnimatedView.js +5 -6
  47. package/Libraries/Animated/createAnimatedComponent.js +13 -20
  48. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +2 -2
  49. package/Libraries/Animated/nodes/AnimatedAddition.js +6 -8
  50. package/Libraries/Animated/nodes/AnimatedColor.js +7 -7
  51. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +6 -8
  52. package/Libraries/Animated/nodes/AnimatedDivision.js +7 -9
  53. package/Libraries/Animated/nodes/AnimatedInterpolation.js +7 -10
  54. package/Libraries/Animated/nodes/AnimatedModulo.js +6 -8
  55. package/Libraries/Animated/nodes/AnimatedMultiplication.js +7 -9
  56. package/Libraries/Animated/nodes/AnimatedNode.js +10 -8
  57. package/Libraries/Animated/nodes/AnimatedProps.js +12 -30
  58. package/Libraries/Animated/nodes/AnimatedStyle.js +12 -22
  59. package/Libraries/Animated/nodes/AnimatedSubtraction.js +7 -9
  60. package/Libraries/Animated/nodes/AnimatedTracking.js +8 -12
  61. package/Libraries/Animated/nodes/AnimatedTransform.js +38 -31
  62. package/Libraries/Animated/nodes/AnimatedValue.js +9 -10
  63. package/Libraries/Animated/nodes/AnimatedValueXY.js +4 -7
  64. package/Libraries/Animated/nodes/AnimatedWithChildren.js +4 -5
  65. package/Libraries/Animated/useAnimatedProps.js +8 -16
  66. package/Libraries/Animated/useAnimatedValue.d.ts +15 -0
  67. package/Libraries/Animated/useAnimatedValue.js +25 -0
  68. package/Libraries/AppState/AppState.d.ts +58 -0
  69. package/Libraries/AppState/AppState.js +3 -7
  70. package/Libraries/AppState/NativeAppState.js +1 -0
  71. package/Libraries/BatchedBridge/MessageQueue.js +9 -5
  72. package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
  73. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  74. package/Libraries/Blob/BlobManager.js +5 -3
  75. package/Libraries/Blob/File.js +2 -3
  76. package/Libraries/Blob/FileReader.js +6 -5
  77. package/Libraries/Blob/NativeBlobModule.js +1 -0
  78. package/Libraries/Blob/NativeFileReaderModule.js +1 -0
  79. package/Libraries/Blob/URL.js +11 -9
  80. package/Libraries/BugReporting/NativeBugReporting.js +1 -0
  81. package/Libraries/BugReporting/getReactData.js +1 -1
  82. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +128 -0
  83. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +208 -0
  84. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +40 -8
  85. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +40 -8
  86. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -0
  87. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +5 -0
  88. package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
  89. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +58 -0
  90. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +7 -8
  91. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
  92. package/Libraries/Components/Button.d.ts +42 -0
  93. package/Libraries/Components/Button.flow.js +265 -0
  94. package/Libraries/Components/Button.js +62 -18
  95. package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
  96. package/Libraries/Components/Clipboard/NativeClipboard.js +1 -0
  97. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +4 -2
  98. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +92 -0
  99. package/Libraries/Components/{MaskedView/MaskedViewIOS.android.js → DatePicker/DatePickerIOS.flow.android.js} +3 -2
  100. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +113 -0
  101. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +8 -7
  102. package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +4 -2
  103. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +7 -6
  104. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +1 -0
  105. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +9 -8
  106. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +13 -14
  107. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
  108. package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
  109. package/Libraries/Components/Keyboard/Keyboard.js +35 -8
  110. package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
  111. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +35 -15
  112. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -0
  113. package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
  114. package/Libraries/Components/Pressable/Pressable.js +73 -15
  115. package/Libraries/Components/Pressable/Pressable.win32.js +77 -19
  116. package/Libraries/Components/Pressable/useAndroidRippleForView.js +6 -3
  117. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +3 -3
  118. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
  119. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
  120. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +1 -1
  121. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +62 -0
  122. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +4 -4
  123. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +1 -1
  124. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +2 -2
  125. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +5 -6
  126. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +4 -4
  127. package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
  128. package/Libraries/Components/RefreshControl/RefreshControl.js +4 -3
  129. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +2 -3
  130. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -1
  131. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +24 -0
  132. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +19 -0
  133. package/Libraries/Components/SafeAreaView/SafeAreaView.js +5 -4
  134. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +5 -4
  135. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -1
  136. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +2 -1
  137. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +2 -1
  138. package/Libraries/Components/ScrollView/ScrollView.d.ts +911 -0
  139. package/Libraries/Components/ScrollView/ScrollView.js +87 -52
  140. package/Libraries/Components/ScrollView/ScrollViewCommands.js +3 -3
  141. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +2 -1
  142. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +3 -3
  143. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +243 -269
  144. package/Libraries/Components/Slider/Slider.d.ts +132 -0
  145. package/Libraries/Components/Slider/Slider.js +9 -9
  146. package/Libraries/Components/Slider/SliderNativeComponent.js +4 -5
  147. package/Libraries/Components/Sound/NativeSoundManager.js +1 -0
  148. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -0
  149. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -0
  150. package/Libraries/Components/StatusBar/StatusBar.d.ts +138 -0
  151. package/Libraries/Components/StatusBar/StatusBar.js +7 -7
  152. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +10 -10
  153. package/Libraries/Components/Switch/Switch.d.ts +115 -0
  154. package/Libraries/Components/Switch/Switch.js +7 -7
  155. package/Libraries/Components/Switch/SwitchNativeComponent.js +9 -4
  156. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +40 -12
  157. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
  158. package/Libraries/Components/TextInput/InputAccessoryView.js +3 -4
  159. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -1
  160. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +3 -2
  161. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +3 -2
  162. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -1
  163. package/Libraries/Components/TextInput/TextInput.d.ts +840 -0
  164. package/Libraries/Components/TextInput/TextInput.flow.js +1057 -0
  165. package/Libraries/Components/TextInput/TextInput.js +344 -38
  166. package/Libraries/Components/TextInput/TextInput.win32.d.ts +1 -1
  167. package/Libraries/Components/TextInput/TextInput.win32.js +1 -1
  168. package/Libraries/Components/TextInput/TextInput.win32.js.map +1 -1
  169. package/Libraries/Components/TextInput/TextInputNativeCommands.js +2 -2
  170. package/Libraries/Components/TextInput/TextInputState.js +22 -5
  171. package/Libraries/Components/TextInput/TextInputState.win32.js +24 -5
  172. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -0
  173. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +47 -0
  174. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
  175. package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
  176. package/Libraries/Components/Touchable/Touchable.flow.js +258 -0
  177. package/Libraries/Components/Touchable/Touchable.js +12 -12
  178. package/Libraries/Components/Touchable/Touchable.win32.js +12 -12
  179. package/Libraries/Components/Touchable/TouchableBounce.js +44 -10
  180. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +68 -0
  181. package/Libraries/Components/Touchable/TouchableHighlight.js +32 -9
  182. package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +114 -0
  183. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +54 -20
  184. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +109 -0
  185. package/Libraries/Components/Touchable/TouchableOpacity.js +54 -16
  186. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +2 -1
  187. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
  188. package/Libraries/Components/Touchable/TouchableWin32.js +0 -1
  189. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
  190. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +143 -0
  191. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +64 -10
  192. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -1
  193. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  194. package/Libraries/Components/View/ReactNativeStyleAttributes.js +13 -2
  195. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -0
  196. package/Libraries/Components/View/View.d.ts +29 -0
  197. package/Libraries/Components/View/View.js +91 -8
  198. package/Libraries/Components/View/View.win32.js +176 -89
  199. package/Libraries/Components/View/ViewAccessibility.d.ts +360 -0
  200. package/Libraries/Components/View/ViewAccessibility.js +70 -1
  201. package/Libraries/Components/View/ViewNativeComponent.js +3 -3
  202. package/Libraries/Components/View/ViewPropTypes.d.ts +245 -0
  203. package/Libraries/Components/View/ViewPropTypes.js +105 -13
  204. package/Libraries/Components/View/ViewPropTypes.win32.js +105 -13
  205. package/Libraries/Components/View/ViewWin32.Props.d.ts +6 -1
  206. package/Libraries/Components/View/ViewWin32.Props.js.map +1 -1
  207. package/Libraries/Core/Devtools/openFileInEditor.js +3 -0
  208. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  209. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  210. package/Libraries/Core/ExceptionsManager.js +8 -0
  211. package/Libraries/Core/ExtendedError.js +11 -8
  212. package/Libraries/Core/InitializeCore.js +2 -1
  213. package/Libraries/Core/NativeExceptionsManager.js +3 -4
  214. package/Libraries/Core/RawEventEmitter.js +2 -1
  215. package/Libraries/Core/ReactFiberErrorDialog.js +2 -2
  216. package/Libraries/Core/ReactNativeVersion.js +2 -2
  217. package/Libraries/Core/ReactNativeVersionCheck.js +1 -0
  218. package/Libraries/Core/ReactNativeVersionCheck.win32.js +1 -0
  219. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
  220. package/Libraries/Core/Timers/JSTimers.js +13 -11
  221. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  222. package/Libraries/Core/setUpBatchedBridge.js +1 -5
  223. package/Libraries/Core/setUpDeveloperTools.js +4 -6
  224. package/Libraries/Core/setUpReactDevTools.js +4 -1
  225. package/Libraries/Core/setUpRegeneratorRuntime.js +1 -1
  226. package/Libraries/Core/setUpTimers.js +1 -1
  227. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +70 -0
  228. package/Libraries/EventEmitter/NativeEventEmitter.js +1 -0
  229. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +30 -0
  230. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  231. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
  232. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +1 -0
  233. package/Libraries/Events/EventPolyfill.js +1 -1
  234. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +1 -0
  235. package/Libraries/Image/AssetSourceResolver.js +4 -6
  236. package/Libraries/Image/Image.android.js +63 -45
  237. package/Libraries/Image/Image.d.ts +322 -0
  238. package/Libraries/Image/Image.flow.js +64 -0
  239. package/Libraries/Image/Image.ios.js +55 -28
  240. package/Libraries/Image/Image.win32.js +54 -25
  241. package/Libraries/Image/ImageBackground.js +18 -7
  242. package/Libraries/Image/ImageInjection.js +2 -1
  243. package/Libraries/Image/ImageProps.js +88 -5
  244. package/Libraries/Image/ImageResizeMode.d.ts +49 -0
  245. package/Libraries/Image/ImageSource.d.ts +76 -0
  246. package/Libraries/Image/ImageSourceUtils.js +80 -0
  247. package/Libraries/Image/ImageUtils.js +21 -0
  248. package/Libraries/Image/ImageViewNativeComponent.js +8 -5
  249. package/Libraries/Image/NativeImageEditor.js +1 -0
  250. package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
  251. package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
  252. package/Libraries/Image/NativeImageLoaderWin32.js +1 -0
  253. package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
  254. package/Libraries/Image/NativeImageStoreIOS.js +1 -0
  255. package/Libraries/Image/TextInlineImageNativeComponent.js +4 -3
  256. package/Libraries/Image/nativeImageSource.js +2 -2
  257. package/Libraries/Image/resolveAssetSource.js +5 -5
  258. package/Libraries/Inspector/BorderBox.js +1 -1
  259. package/Libraries/Inspector/BoxInspector.js +3 -4
  260. package/Libraries/Inspector/DevtoolsOverlay.js +213 -0
  261. package/Libraries/Inspector/ElementBox.js +4 -5
  262. package/Libraries/Inspector/ElementProperties.js +10 -11
  263. package/Libraries/Inspector/Inspector.js +22 -108
  264. package/Libraries/Inspector/Inspector.win32.js +23 -109
  265. package/Libraries/Inspector/InspectorOverlay.js +5 -5
  266. package/Libraries/Inspector/InspectorOverlay.win32.js +5 -5
  267. package/Libraries/Inspector/InspectorPanel.js +12 -10
  268. package/Libraries/Inspector/NetworkOverlay.js +7 -3
  269. package/Libraries/Inspector/PerformanceOverlay.js +3 -3
  270. package/Libraries/Inspector/StyleInspector.js +2 -2
  271. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +71 -0
  272. package/Libraries/Interaction/BridgeSpyStallHandler.js +1 -1
  273. package/Libraries/Interaction/InteractionManager.d.ts +74 -0
  274. package/Libraries/Interaction/InteractionManager.js +8 -8
  275. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
  276. package/Libraries/Interaction/PanResponder.d.ts +202 -0
  277. package/Libraries/Interaction/PanResponder.flow.js +257 -0
  278. package/Libraries/Interaction/PanResponder.js +4 -3
  279. package/Libraries/JSInspector/JSInspector.js +0 -3
  280. package/Libraries/JSInspector/NetworkAgent.js +3 -3
  281. package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
  282. package/Libraries/LayoutAnimation/LayoutAnimation.js +4 -3
  283. package/Libraries/Linking/Linking.d.ts +61 -0
  284. package/Libraries/Linking/Linking.js +3 -2
  285. package/Libraries/Linking/NativeIntentAndroid.js +1 -0
  286. package/Libraries/Linking/NativeLinkingManager.js +1 -0
  287. package/Libraries/Lists/CellRenderMask.js +13 -3
  288. package/Libraries/Lists/ChildListCollection.js +72 -0
  289. package/Libraries/Lists/FillRateHelper.js +28 -17
  290. package/Libraries/Lists/FlatList.d.ts +292 -0
  291. package/Libraries/Lists/FlatList.js +70 -70
  292. package/Libraries/Lists/SectionList.d.ts +300 -0
  293. package/Libraries/Lists/SectionList.js +5 -5
  294. package/Libraries/Lists/SectionListModern.js +6 -6
  295. package/Libraries/Lists/StateSafePureComponent.js +85 -0
  296. package/Libraries/Lists/ViewabilityHelper.js +33 -12
  297. package/Libraries/Lists/VirtualizeUtils.js +17 -13
  298. package/Libraries/Lists/VirtualizedList.d.ts +317 -0
  299. package/Libraries/Lists/VirtualizedList.js +548 -890
  300. package/Libraries/Lists/VirtualizedListCellRenderer.js +259 -0
  301. package/Libraries/Lists/VirtualizedListContext.js +7 -48
  302. package/Libraries/Lists/VirtualizedListProps.js +279 -0
  303. package/Libraries/Lists/VirtualizedSectionList.js +6 -3
  304. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  305. package/Libraries/LogBox/Data/LogBoxData.js +9 -8
  306. package/Libraries/LogBox/Data/LogBoxLog.js +5 -5
  307. package/Libraries/LogBox/Data/LogBoxSymbolication.js +4 -4
  308. package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -3
  309. package/Libraries/LogBox/LogBox.d.ts +28 -0
  310. package/Libraries/LogBox/LogBox.js +11 -11
  311. package/Libraries/LogBox/LogBoxInspectorContainer.js +5 -3
  312. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  313. package/Libraries/LogBox/UI/AnsiHighlight.js +5 -3
  314. package/Libraries/LogBox/UI/LogBoxButton.js +6 -5
  315. package/Libraries/LogBox/UI/LogBoxInspector.js +6 -6
  316. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +9 -8
  317. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +3 -3
  318. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +7 -6
  319. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +6 -5
  320. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +6 -5
  321. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +7 -6
  322. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
  323. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -3
  324. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +5 -5
  325. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +5 -5
  326. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +5 -5
  327. package/Libraries/LogBox/UI/LogBoxMessage.js +3 -3
  328. package/Libraries/LogBox/UI/LogBoxNotification.js +6 -5
  329. package/Libraries/Modal/Modal.d.ts +104 -0
  330. package/Libraries/Modal/Modal.js +14 -14
  331. package/Libraries/Modal/NativeModalManager.js +1 -0
  332. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -3
  333. package/Libraries/NativeComponent/BaseViewConfig.android.js +27 -2
  334. package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -3
  335. package/Libraries/NativeComponent/BaseViewConfig.win32.js +8 -3
  336. package/Libraries/NativeComponent/NativeComponentRegistry.js +5 -4
  337. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -0
  338. package/Libraries/NativeComponent/StaticViewConfigValidator.js +1 -1
  339. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  340. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +1 -0
  341. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
  342. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
  343. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
  344. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
  345. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -2
  346. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
  347. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
  348. package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
  349. package/Libraries/Network/NativeNetworkingIOS.js +1 -0
  350. package/Libraries/Network/RCTNetworking.android.js +4 -3
  351. package/Libraries/Network/RCTNetworking.ios.js +3 -2
  352. package/Libraries/Network/RCTNetworking.win32.js +1 -0
  353. package/Libraries/Network/convertRequestBody.js +1 -2
  354. package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -1
  355. package/Libraries/NewAppScreen/components/Header.js +6 -2
  356. package/Libraries/NewAppScreen/components/HermesBadge.js +6 -2
  357. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +8 -9
  358. package/Libraries/NewAppScreen/components/ReloadInstructions.js +4 -1
  359. package/Libraries/NewAppScreen/index.js +1 -1
  360. package/Libraries/Performance/NativeJSCSamplingProfiler.js +1 -0
  361. package/Libraries/Performance/QuickPerformanceLogger.js +34 -10
  362. package/Libraries/Performance/Systrace.d.ts +66 -0
  363. package/Libraries/Performance/Systrace.js +110 -195
  364. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  365. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +115 -0
  366. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +5 -4
  367. package/Libraries/Pressability/Pressability.js +12 -10
  368. package/Libraries/Pressability/Pressability.win32.js +9 -7
  369. package/Libraries/Pressability/PressabilityDebug.js +2 -2
  370. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  371. package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +275 -0
  372. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +19 -14
  373. package/Libraries/ReactNative/AppContainer.js +17 -7
  374. package/Libraries/ReactNative/AppRegistry.d.ts +68 -0
  375. package/Libraries/ReactNative/AppRegistry.js +11 -14
  376. package/Libraries/ReactNative/BridgelessUIManager.js +4 -3
  377. package/Libraries/ReactNative/FabricUIManager.js +3 -3
  378. package/Libraries/ReactNative/I18nManager.d.ts +25 -0
  379. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
  380. package/Libraries/ReactNative/NativeI18nManager.js +1 -0
  381. package/Libraries/ReactNative/NativeUIManager.js +1 -0
  382. package/Libraries/ReactNative/PaperUIManager.js +2 -2
  383. package/Libraries/ReactNative/PaperUIManager.win32.js +1 -1
  384. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +9 -0
  385. package/Libraries/ReactNative/RendererImplementation.js +112 -0
  386. package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
  387. package/Libraries/ReactNative/RendererProxy.js +26 -0
  388. package/Libraries/ReactNative/RootTag.js +0 -1
  389. package/Libraries/ReactNative/UIManager.d.ts +157 -0
  390. package/Libraries/ReactNative/UIManager.js +1 -1
  391. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -0
  392. package/Libraries/ReactNative/renderApplication.js +38 -20
  393. package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
  394. package/Libraries/ReactNative/requireNativeComponent.js +2 -2
  395. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +10 -9
  396. package/Libraries/Renderer/implementations/ReactFabric-dev.js +312 -217
  397. package/Libraries/Renderer/implementations/ReactFabric-prod.js +212 -177
  398. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +248 -213
  399. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +311 -218
  400. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +226 -196
  401. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +262 -232
  402. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +149 -0
  403. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  404. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  405. package/Libraries/Renderer/shims/ReactNative.js +2 -2
  406. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +141 -0
  407. package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -22
  408. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +8 -8
  409. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  410. package/Libraries/Settings/NativeSettingsManager.js +1 -0
  411. package/Libraries/Settings/Settings.d.ts +18 -0
  412. package/Libraries/Share/NativeShareModule.js +1 -0
  413. package/Libraries/Share/Share.d.ts +80 -0
  414. package/Libraries/Share/Share.js +7 -5
  415. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  416. package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
  417. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  418. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
  419. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -0
  420. package/Libraries/StyleSheet/StyleSheet.d.ts +156 -0
  421. package/Libraries/StyleSheet/StyleSheet.js +15 -11
  422. package/Libraries/StyleSheet/StyleSheet.win32.js +16 -12
  423. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +332 -0
  424. package/Libraries/StyleSheet/StyleSheetTypes.js +101 -24
  425. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +2 -2
  426. package/Libraries/StyleSheet/normalizeColor.js +3 -3
  427. package/Libraries/StyleSheet/private/_TransformStyle.js +26 -24
  428. package/Libraries/StyleSheet/processAspectRatio.js +53 -0
  429. package/Libraries/StyleSheet/processColor.d.ts +16 -0
  430. package/Libraries/StyleSheet/processColor.js +3 -4
  431. package/Libraries/StyleSheet/processColorArray.js +1 -0
  432. package/Libraries/StyleSheet/processFontVariant.js +30 -0
  433. package/Libraries/StyleSheet/processTransform.js +114 -105
  434. package/Libraries/StyleSheet/splitLayoutProps.js +5 -0
  435. package/Libraries/Text/Text.d.ts +209 -0
  436. package/Libraries/Text/Text.js +94 -12
  437. package/Libraries/Text/TextNativeComponent.js +49 -41
  438. package/Libraries/Text/TextNativeComponent.win32.js +67 -48
  439. package/Libraries/Text/TextProps.js +64 -7
  440. package/Libraries/{Components/MaskedView/MaskedViewIOS.win32.js → TurboModule/RCTExport.d.ts} +3 -4
  441. package/Libraries/TurboModule/TurboModuleRegistry.d.ts +15 -0
  442. package/Libraries/TurboModule/TurboModuleRegistry.js +3 -1
  443. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
  444. package/Libraries/Types/CoreEventTypes.d.ts +263 -0
  445. package/Libraries/Types/CoreEventTypes.js +2 -1
  446. package/Libraries/Types/CoreEventTypes.win32.js +2 -1
  447. package/Libraries/Utilities/AcessibilityMapping.js +154 -0
  448. package/Libraries/Utilities/Appearance.d.ts +43 -0
  449. package/Libraries/Utilities/Appearance.js +3 -3
  450. package/Libraries/Utilities/BackHandler.android.js +3 -5
  451. package/Libraries/Utilities/BackHandler.d.ts +38 -0
  452. package/Libraries/Utilities/BackHandler.win32.js +3 -5
  453. package/Libraries/Utilities/DevSettings.d.ts +32 -0
  454. package/Libraries/Utilities/DevSettings.js +4 -2
  455. package/Libraries/Utilities/Dimensions.d.ts +79 -0
  456. package/Libraries/Utilities/Dimensions.js +2 -2
  457. package/Libraries/Utilities/Dimensions.win32.js +2 -2
  458. package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -1
  459. package/Libraries/Utilities/HMRClient.js +23 -8
  460. package/Libraries/Utilities/LoadingView.ios.js +1 -1
  461. package/Libraries/Utilities/NativeAppearance.js +1 -0
  462. package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
  463. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +1 -0
  464. package/Libraries/Utilities/NativeDeviceInfo.js +1 -0
  465. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  466. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  467. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  468. package/Libraries/Utilities/PerformanceLoggerContext.js +3 -2
  469. package/Libraries/Utilities/PixelRatio.d.ts +64 -0
  470. package/Libraries/Utilities/Platform.android.js +11 -5
  471. package/Libraries/Utilities/Platform.d.ts +102 -0
  472. package/Libraries/Utilities/Platform.ios.js +12 -5
  473. package/Libraries/Utilities/Platform.win32.js +11 -5
  474. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  475. package/Libraries/Utilities/ReactNativeTestTools.js +9 -15
  476. package/Libraries/Utilities/codegenNativeCommands.js +1 -10
  477. package/Libraries/Utilities/codegenNativeComponent.js +4 -1
  478. package/Libraries/Utilities/createPerformanceLogger.js +7 -8
  479. package/Libraries/Utilities/differ/deepDiffer.js +1 -1
  480. package/Libraries/Utilities/groupByEveryN.js +1 -1
  481. package/Libraries/Utilities/stringifySafe.js +3 -1
  482. package/Libraries/Utilities/useColorScheme.js +3 -2
  483. package/Libraries/Utilities/useRefEffect.js +1 -1
  484. package/Libraries/Vibration/NativeVibration.js +1 -0
  485. package/Libraries/Vibration/Vibration.d.ts +43 -0
  486. package/Libraries/Vibration/Vibration.js +1 -0
  487. package/Libraries/WebPerformance/NativePerformanceObserver.js +41 -0
  488. package/Libraries/WebPerformance/PerformanceObserver.js +223 -0
  489. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
  490. package/Libraries/WebSocket/WebSocket.js +11 -3
  491. package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
  492. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
  493. package/Libraries/YellowBox/YellowBoxDeprecated.js +2 -3
  494. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +2 -1
  495. package/Libraries/__tests__/ButtonWin32-test.js +16 -0
  496. package/Libraries/platform-types.d.ts +25 -0
  497. package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
  498. package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
  499. package/babel.config.js +3 -0
  500. package/flow/jest.js +2 -2
  501. package/flow-typed/npm/{react-dom_v16.x.x.js → react-dom_v17.x.x.js} +58 -31
  502. package/flow-typed/npm/yargs_v17.x.x.js +341 -0
  503. package/index.js +89 -55
  504. package/index.win32.js +89 -55
  505. package/interface.js +8 -0
  506. package/jest/react-native-env.js +18 -0
  507. package/jest/renderer.js +2 -2
  508. package/jest/setup.js +7 -9
  509. package/jest.config.js +9 -2
  510. package/overrides.json +40 -101
  511. package/package.json +34 -33
  512. package/src/Libraries/Components/TextInput/TextInput.win32.tsx +2 -1
  513. package/src/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +2 -2
  514. package/src/Libraries/Components/Touchable/TouchableWin32.Props.tsx +2 -1
  515. package/src/Libraries/Components/Touchable/TouchableWin32.tsx +1 -1
  516. package/src/Libraries/Components/View/ViewWin32.Props.ts +10 -1
  517. package/src/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +22 -0
  518. package/src/Libraries/platform-types.d.ts +25 -0
  519. package/types/index.d.ts +215 -0
  520. package/IntegrationTests/AsyncStorageTest.js +0 -261
  521. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +0 -93
  522. package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +0 -21
  523. package/Libraries/Core/setUpSystrace.js +0 -21
  524. package/Libraries/Image/ImagePickerIOS.js +0 -103
  525. package/Libraries/Image/NativeImagePickerIOS.js +0 -38
  526. package/Libraries/Lists/VirtualizedList.win32.js +0 -9
  527. package/Libraries/Lists/__tests__/CellRenderMask-test.js +0 -179
  528. package/Libraries/Lists/__tests__/FillRateHelper-test.js +0 -120
  529. package/Libraries/Lists/__tests__/FlatList-test.js +0 -155
  530. package/Libraries/Lists/__tests__/SectionList-test.js +0 -109
  531. package/Libraries/Lists/__tests__/ViewabilityHelper-test.js +0 -440
  532. package/Libraries/Lists/__tests__/VirtualizeUtils-test.js +0 -91
  533. package/Libraries/Lists/__tests__/VirtualizedList-test.js +0 -1587
  534. package/Libraries/Lists/__tests__/VirtualizedSectionList-test.js +0 -269
  535. package/Libraries/Storage/AsyncStorage.js +0 -385
  536. package/Libraries/Storage/NativeAsyncLocalStorage.js +0 -44
  537. package/Libraries/Storage/NativeAsyncSQLiteDBStorage.js +0 -44
  538. package/Libraries/Utilities/JSDevSupportModule.js +0 -37
  539. package/Libraries/Utilities/NativeJSDevSupport.js +0 -23
  540. package/rntypes/BatchedBridge.d.ts +0 -23
  541. package/rntypes/Devtools.d.ts +0 -20
  542. package/rntypes/LaunchScreen.d.ts +0 -9
  543. package/rntypes/globals.d.ts +0 -497
  544. package/rntypes/index.d.ts +0 -9754
  545. package/rntypes/legacy-properties.d.ts +0 -238
  546. package/src/Libraries/Lists/__tests__/__snapshots__/FlatList-test.js.snap +0 -427
  547. package/src/Libraries/Lists/__tests__/__snapshots__/SectionList-test.js.snap +0 -391
  548. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap +0 -4565
  549. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedSectionList-test.js.snap +0 -1153
  550. package/src/rntypes/BatchedBridge.d.ts +0 -23
  551. package/src/rntypes/Devtools.d.ts +0 -20
  552. package/src/rntypes/LaunchScreen.d.ts +0 -9
  553. package/src/rntypes/globals.d.ts +0 -497
  554. package/src/rntypes/index.d.ts +0 -9754
  555. package/src/rntypes/legacy-properties.d.ts +0 -238
  556. package/src/typings-index.ts +0 -37
  557. package/typings-index.d.ts +0 -23
  558. package/typings-index.js +0 -47
  559. package/typings-index.js.map +0 -1
@@ -0,0 +1,213 @@
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
+ * @format
8
+ * @flow
9
+ */
10
+
11
+ import type {PressEvent} from '../Types/CoreEventTypes';
12
+ import type {HostRef} from './getInspectorDataForViewAtPoint';
13
+
14
+ import View from '../Components/View/View';
15
+ import ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';
16
+ import StyleSheet from '../StyleSheet/StyleSheet';
17
+ import Dimensions from '../Utilities/Dimensions';
18
+ import ElementBox from './ElementBox';
19
+ import * as React from 'react';
20
+
21
+ const {findNodeHandle} = require('../ReactNative/RendererProxy');
22
+ const getInspectorDataForViewAtPoint = require('./getInspectorDataForViewAtPoint');
23
+
24
+ const {useEffect, useState, useCallback, useRef} = React;
25
+
26
+ const hook = window.__REACT_DEVTOOLS_GLOBAL_HOOK__;
27
+
28
+ export default function DevtoolsOverlay({
29
+ inspectedView,
30
+ }: {
31
+ inspectedView: ?HostRef,
32
+ }): React.Node {
33
+ const [inspected, setInspected] = useState<null | {
34
+ frame: {+height: any, +left: any, +top: any, +width: any},
35
+ }>(null);
36
+ const [isInspecting, setIsInspecting] = useState(false);
37
+ const devToolsAgentRef = useRef(null);
38
+
39
+ useEffect(() => {
40
+ let devToolsAgent = null;
41
+ let hideTimeoutId = null;
42
+
43
+ function onAgentHideNativeHighlight() {
44
+ // we wait to actually hide in order to avoid flicker
45
+ clearTimeout(hideTimeoutId);
46
+ hideTimeoutId = setTimeout(() => {
47
+ setInspected(null);
48
+ }, 100);
49
+ }
50
+
51
+ function onAgentShowNativeHighlight(node: any) {
52
+ clearTimeout(hideTimeoutId);
53
+ // Shape of `node` is different in Fabric.
54
+ const component = node.canonical ?? node;
55
+ if (!component || !component.measure) {
56
+ return;
57
+ }
58
+
59
+ component.measure((x, y, width, height, left, top) => {
60
+ setInspected({
61
+ frame: {left, top, width, height},
62
+ });
63
+ });
64
+ }
65
+
66
+ function cleanup() {
67
+ const currentAgent = devToolsAgent;
68
+ if (currentAgent != null) {
69
+ currentAgent.removeListener(
70
+ 'hideNativeHighlight',
71
+ onAgentHideNativeHighlight,
72
+ );
73
+ currentAgent.removeListener(
74
+ 'showNativeHighlight',
75
+ onAgentShowNativeHighlight,
76
+ );
77
+ currentAgent.removeListener('shutdown', cleanup);
78
+ currentAgent.removeListener(
79
+ 'startInspectingNative',
80
+ onStartInspectingNative,
81
+ );
82
+ currentAgent.removeListener(
83
+ 'stopInspectingNative',
84
+ onStopInspectingNative,
85
+ );
86
+ devToolsAgent = null;
87
+ }
88
+ devToolsAgentRef.current = null;
89
+ }
90
+
91
+ function onStartInspectingNative() {
92
+ setIsInspecting(true);
93
+ }
94
+
95
+ function onStopInspectingNative() {
96
+ setIsInspecting(false);
97
+ }
98
+
99
+ function _attachToDevtools(agent: Object) {
100
+ devToolsAgent = agent;
101
+ devToolsAgentRef.current = agent;
102
+ agent.addListener('hideNativeHighlight', onAgentHideNativeHighlight);
103
+ agent.addListener('showNativeHighlight', onAgentShowNativeHighlight);
104
+ agent.addListener('shutdown', cleanup);
105
+ agent.addListener('startInspectingNative', onStartInspectingNative);
106
+ agent.addListener('stopInspectingNative', onStopInspectingNative);
107
+ }
108
+
109
+ hook.on('react-devtools', _attachToDevtools);
110
+ if (hook.reactDevtoolsAgent) {
111
+ _attachToDevtools(hook.reactDevtoolsAgent);
112
+ }
113
+ return () => {
114
+ hook.off('react-devtools', _attachToDevtools);
115
+ cleanup();
116
+ };
117
+ }, []);
118
+
119
+ const findViewForLocation = useCallback(
120
+ (x: number, y: number) => {
121
+ const agent = devToolsAgentRef.current;
122
+ if (agent == null) {
123
+ return;
124
+ }
125
+ getInspectorDataForViewAtPoint(inspectedView, x, y, viewData => {
126
+ const {touchedViewTag, closestInstance, frame} = viewData;
127
+ if (closestInstance != null || touchedViewTag != null) {
128
+ if (closestInstance != null) {
129
+ // Fabric
130
+ agent.selectNode(closestInstance);
131
+ } else {
132
+ agent.selectNode(findNodeHandle(touchedViewTag));
133
+ }
134
+ setInspected({
135
+ frame,
136
+ });
137
+ return true;
138
+ }
139
+ return false;
140
+ });
141
+ },
142
+ [inspectedView],
143
+ );
144
+
145
+ const stopInspecting = useCallback(() => {
146
+ const agent = devToolsAgentRef.current;
147
+ if (agent == null) {
148
+ return;
149
+ }
150
+ agent.stopInspectingNative(true);
151
+ setIsInspecting(false);
152
+ setInspected(null);
153
+ }, []);
154
+
155
+ const onPointerMove = useCallback(
156
+ e => {
157
+ findViewForLocation(e.nativeEvent.x, e.nativeEvent.y);
158
+ },
159
+ [findViewForLocation],
160
+ );
161
+
162
+ const onResponderMove = useCallback(
163
+ e => {
164
+ findViewForLocation(
165
+ e.nativeEvent.touches[0].locationX,
166
+ e.nativeEvent.touches[0].locationY,
167
+ );
168
+ },
169
+ [findViewForLocation],
170
+ );
171
+
172
+ const shouldSetResponser = useCallback(
173
+ (e: PressEvent): boolean => {
174
+ onResponderMove(e);
175
+ return true;
176
+ },
177
+ [onResponderMove],
178
+ );
179
+
180
+ let highlight = inspected ? <ElementBox frame={inspected.frame} /> : null;
181
+ if (isInspecting) {
182
+ const events = ReactNativeFeatureFlags.shouldEmitW3CPointerEvents
183
+ ? {
184
+ onPointerMove,
185
+ onPointerDown: onPointerMove,
186
+ onPointerUp: stopInspecting,
187
+ }
188
+ : {
189
+ onStartShouldSetResponder: shouldSetResponser,
190
+ onResponderMove: onResponderMove,
191
+ onResponderRelease: stopInspecting,
192
+ };
193
+ return (
194
+ <View
195
+ nativeID="devToolsInspectorOverlay"
196
+ style={[styles.inspector, {height: Dimensions.get('window').height}]}
197
+ {...events}>
198
+ {highlight}
199
+ </View>
200
+ );
201
+ }
202
+ return highlight;
203
+ }
204
+
205
+ const styles = StyleSheet.create({
206
+ inspector: {
207
+ backgroundColor: 'transparent',
208
+ position: 'absolute',
209
+ left: 0,
210
+ top: 0,
211
+ right: 0,
212
+ },
213
+ });
@@ -10,14 +10,13 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const BorderBox = require('./BorderBox');
14
- const Dimensions = require('../Utilities/Dimensions');
15
- const React = require('react');
16
- const StyleSheet = require('../StyleSheet/StyleSheet');
17
13
  const View = require('../Components/View/View');
18
-
19
14
  const flattenStyle = require('../StyleSheet/flattenStyle');
15
+ const StyleSheet = require('../StyleSheet/StyleSheet');
16
+ const Dimensions = require('../Utilities/Dimensions');
17
+ const BorderBox = require('./BorderBox');
20
18
  const resolveBoxStyle = require('./resolveBoxStyle');
19
+ const React = require('react');
21
20
 
22
21
  class ElementBox extends React.Component<$FlowFixMeProps> {
23
22
  render(): React.Node {
@@ -10,20 +10,19 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const BoxInspector = require('./BoxInspector');
14
- const React = require('react');
15
- const StyleInspector = require('./StyleInspector');
16
- const StyleSheet = require('../StyleSheet/StyleSheet');
17
- const Text = require('../Text/Text');
13
+ import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
14
+
18
15
  const TouchableHighlight = require('../Components/Touchable/TouchableHighlight');
19
16
  const TouchableWithoutFeedback = require('../Components/Touchable/TouchableWithoutFeedback');
20
17
  const View = require('../Components/View/View');
21
-
18
+ const openFileInEditor = require('../Core/Devtools/openFileInEditor');
22
19
  const flattenStyle = require('../StyleSheet/flattenStyle');
20
+ const StyleSheet = require('../StyleSheet/StyleSheet');
21
+ const Text = require('../Text/Text');
23
22
  const mapWithSeparator = require('../Utilities/mapWithSeparator');
24
- const openFileInEditor = require('../Core/Devtools/openFileInEditor');
25
-
26
- import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
23
+ const BoxInspector = require('./BoxInspector');
24
+ const StyleInspector = require('./StyleInspector');
25
+ const React = require('react');
27
26
 
28
27
  type Props = $ReadOnly<{|
29
28
  hierarchy: Array<{|name: string|}>,
@@ -66,7 +65,7 @@ class ElementProperties extends React.Component<Props> {
66
65
  <View style={styles.breadcrumb}>
67
66
  {mapWithSeparator(
68
67
  this.props.hierarchy,
69
- (hierarchyItem, i) => (
68
+ (hierarchyItem, i): React.MixedElement => (
70
69
  <TouchableHighlight
71
70
  key={'item-' + i}
72
71
  style={[styles.breadItem, i === selection && styles.selected]}
@@ -75,7 +74,7 @@ class ElementProperties extends React.Component<Props> {
75
74
  <Text style={styles.breadItemText}>{hierarchyItem.name}</Text>
76
75
  </TouchableHighlight>
77
76
  ),
78
- i => (
77
+ (i): React.MixedElement => (
79
78
  <Text key={'sep-' + i} style={styles.breadSep}>
80
79
  &#9656;
81
80
  </Text>
@@ -10,80 +10,28 @@
10
10
 
11
11
  'use strict';
12
12
 
13
+ import type {TouchedViewDataAtPoint} from '../Renderer/shims/ReactNativeTypes';
14
+ import type {HostRef} from './getInspectorDataForViewAtPoint';
15
+
16
+ const ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes');
17
+ const View = require('../Components/View/View');
18
+ const PressabilityDebug = require('../Pressability/PressabilityDebug');
19
+ const {findNodeHandle} = require('../ReactNative/RendererProxy');
20
+ const StyleSheet = require('../StyleSheet/StyleSheet');
13
21
  const Dimensions = require('../Utilities/Dimensions');
22
+ const Platform = require('../Utilities/Platform');
23
+ const getInspectorDataForViewAtPoint = require('./getInspectorDataForViewAtPoint');
14
24
  const InspectorOverlay = require('./InspectorOverlay');
15
25
  const InspectorPanel = require('./InspectorPanel');
16
- const Platform = require('../Utilities/Platform');
17
- const PressabilityDebug = require('../Pressability/PressabilityDebug');
18
26
  const React = require('react');
19
- const ReactNative = require('../Renderer/shims/ReactNative');
20
- const StyleSheet = require('../StyleSheet/StyleSheet');
21
- const View = require('../Components/View/View');
22
- const ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes');
23
-
24
- const invariant = require('invariant');
25
-
26
- import type {
27
- HostComponent,
28
- TouchedViewDataAtPoint,
29
- } from '../Renderer/shims/ReactNativeTypes';
30
-
31
- type HostRef = React.ElementRef<HostComponent<mixed>>;
32
-
33
- export type ReactRenderer = {
34
- rendererConfig: {
35
- getInspectorDataForViewAtPoint: (
36
- inspectedView: ?HostRef,
37
- locationX: number,
38
- locationY: number,
39
- callback: Function,
40
- ) => void,
41
- ...
42
- },
43
- };
44
27
 
45
28
  const hook = window.__REACT_DEVTOOLS_GLOBAL_HOOK__;
46
- const renderers = findRenderers();
47
29
 
48
30
  // Required for React DevTools to view/edit React Native styles in Flipper.
49
31
  // Flipper doesn't inject these values when initializing DevTools.
50
32
  hook.resolveRNStyle = require('../StyleSheet/flattenStyle');
51
33
  hook.nativeStyleEditorValidAttributes = Object.keys(ReactNativeStyleAttributes);
52
34
 
53
- function findRenderers(): $ReadOnlyArray<ReactRenderer> {
54
- const allRenderers = Array.from(hook.renderers.values());
55
- invariant(
56
- allRenderers.length >= 1,
57
- 'Expected to find at least one React Native renderer on DevTools hook.',
58
- );
59
- return allRenderers;
60
- }
61
-
62
- function getInspectorDataForViewAtPoint(
63
- inspectedView: ?HostRef,
64
- locationX: number,
65
- locationY: number,
66
- callback: (viewData: TouchedViewDataAtPoint) => void,
67
- ) {
68
- // Check all renderers for inspector data.
69
- for (let i = 0; i < renderers.length; i++) {
70
- const renderer = renderers[i];
71
- if (renderer?.rendererConfig?.getInspectorDataForViewAtPoint != null) {
72
- renderer.rendererConfig.getInspectorDataForViewAtPoint(
73
- inspectedView,
74
- locationX,
75
- locationY,
76
- viewData => {
77
- // Only return with non-empty view data since only one renderer will have this view.
78
- if (viewData && viewData.hierarchy.length > 0) {
79
- callback(viewData);
80
- }
81
- },
82
- );
83
- }
84
- }
85
- }
86
-
87
35
  class Inspector extends React.Component<
88
36
  {
89
37
  inspectedView: ?HostRef,
@@ -144,8 +92,6 @@ class Inspector extends React.Component<
144
92
  }
145
93
 
146
94
  _attachToDevtools = (agent: Object) => {
147
- agent.addListener('hideNativeHighlight', this._onAgentHideNativeHighlight);
148
- agent.addListener('showNativeHighlight', this._onAgentShowNativeHighlight);
149
95
  agent.addListener('shutdown', this._onAgentShutdown);
150
96
 
151
97
  this.setState({
@@ -153,45 +99,9 @@ class Inspector extends React.Component<
153
99
  });
154
100
  };
155
101
 
156
- _onAgentHideNativeHighlight = () => {
157
- if (this.state.inspected === null) {
158
- return;
159
- }
160
- // we wait to actually hide in order to avoid flicker
161
- this._hideTimeoutID = setTimeout(() => {
162
- this.setState({
163
- inspected: null,
164
- });
165
- }, 100);
166
- };
167
-
168
- _onAgentShowNativeHighlight = (node: any) => {
169
- clearTimeout(this._hideTimeoutID);
170
-
171
- // Shape of `node` is different in Fabric.
172
- const component = node.canonical ?? node;
173
-
174
- component.measure((x, y, width, height, left, top) => {
175
- this.setState({
176
- hierarchy: [],
177
- inspected: {
178
- frame: {left, top, width, height},
179
- },
180
- });
181
- });
182
- };
183
-
184
102
  _onAgentShutdown = () => {
185
103
  const agent = this.state.devtoolsAgent;
186
104
  if (agent != null) {
187
- agent.removeListener(
188
- 'hideNativeHighlight',
189
- this._onAgentHideNativeHighlight,
190
- );
191
- agent.removeListener(
192
- 'showNativeHighlight',
193
- this._onAgentShowNativeHighlight,
194
- );
195
105
  agent.removeListener('shutdown', this._onAgentShutdown);
196
106
 
197
107
  this.setState({devtoolsAgent: null});
@@ -200,10 +110,9 @@ class Inspector extends React.Component<
200
110
 
201
111
  setSelection(i: number) {
202
112
  const hierarchyItem = this.state.hierarchy[i];
203
- // we pass in ReactNative.findNodeHandle as the method is injected
204
- const {measure, props, source} = hierarchyItem.getInspectorData(
205
- ReactNative.findNodeHandle,
206
- );
113
+ // we pass in findNodeHandle as the method is injected
114
+ const {measure, props, source} =
115
+ hierarchyItem.getInspectorData(findNodeHandle);
207
116
 
208
117
  measure((x, y, width, height, left, top) => {
209
118
  this.setState({
@@ -227,15 +136,19 @@ class Inspector extends React.Component<
227
136
  frame,
228
137
  pointerY,
229
138
  touchedViewTag,
139
+ closestInstance,
230
140
  } = viewData;
231
141
 
232
142
  // Sync the touched view with React DevTools.
233
143
  // Note: This is Paper only. To support Fabric,
234
144
  // DevTools needs to be updated to not rely on view tags.
235
- if (this.state.devtoolsAgent && touchedViewTag) {
236
- this.state.devtoolsAgent.selectNode(
237
- ReactNative.findNodeHandle(touchedViewTag),
238
- );
145
+ if (this.state.devtoolsAgent) {
146
+ if (closestInstance != null) {
147
+ // Fabric
148
+ this.state.devtoolsAgent.selectNode(closestInstance);
149
+ } else if (touchedViewTag != null) {
150
+ this.state.devtoolsAgent.selectNode(findNodeHandle(touchedViewTag));
151
+ }
239
152
  }
240
153
 
241
154
  this.setState({
@@ -259,6 +172,7 @@ class Inspector extends React.Component<
259
172
  this._setTouchedViewData(viewData);
260
173
  this._setTouchedViewData = null;
261
174
  }
175
+ return false;
262
176
  },
263
177
  );
264
178
  }
@@ -10,81 +10,29 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- // const Dimensions = require('../Utilities/Dimensions'); [Win32]
14
- const InspectorOverlay = require('./InspectorOverlay');
15
- const InspectorPanel = require('./InspectorPanel');
16
- const Platform = require('../Utilities/Platform');
13
+ import type {TouchedViewDataAtPoint} from '../Renderer/shims/ReactNativeTypes';
14
+ import type {HostRef} from './getInspectorDataForViewAtPoint';
15
+ const ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes');
17
16
  const PressabilityDebug = require('../Pressability/PressabilityDebug');
18
- const React = require('react');
19
17
  const ReactNative = require('../Renderer/shims/ReactNative');
18
+ const {findNodeHandle} = require('../ReactNative/RendererProxy');
20
19
  const StyleSheet = require('../StyleSheet/StyleSheet');
20
+ //const Dimensions = require('../Utilities/Dimensions');
21
+ const Platform = require('../Utilities/Platform');
21
22
  const View = require('../Components/View/View');
22
- const ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes');
23
-
24
- const invariant = require('invariant');
25
-
26
- import type {
27
- HostComponent,
28
- TouchedViewDataAtPoint,
29
- } from '../Renderer/shims/ReactNativeTypes';
30
-
31
- type HostRef = React.ElementRef<HostComponent<mixed>>;
32
-
33
- const UIManager = require('../ReactNative/UIManager'); // [Win32]
34
-
35
- export type ReactRenderer = {
36
- rendererConfig: {
37
- getInspectorDataForViewAtPoint: (
38
- inspectedView: ?HostRef,
39
- locationX: number,
40
- locationY: number,
41
- callback: Function,
42
- ) => void,
43
- ...
44
- },
45
- };
23
+ const getInspectorDataForViewAtPoint = require('./getInspectorDataForViewAtPoint');
24
+ const InspectorOverlay = require('./InspectorOverlay');
25
+ const InspectorPanel = require('./InspectorPanel');
26
+ const React = require('react');
46
27
 
47
28
  const hook = window.__REACT_DEVTOOLS_GLOBAL_HOOK__;
48
- const renderers = findRenderers();
49
29
 
50
30
  // Required for React DevTools to view/edit React Native styles in Flipper.
51
31
  // Flipper doesn't inject these values when initializing DevTools.
52
32
  hook.resolveRNStyle = require('../StyleSheet/flattenStyle');
53
33
  hook.nativeStyleEditorValidAttributes = Object.keys(ReactNativeStyleAttributes);
54
34
 
55
- function findRenderers(): $ReadOnlyArray<ReactRenderer> {
56
- const allRenderers = Array.from(hook.renderers.values());
57
- invariant(
58
- allRenderers.length >= 1,
59
- 'Expected to find at least one React Native renderer on DevTools hook.',
60
- );
61
- return allRenderers;
62
- }
63
-
64
- function getInspectorDataForViewAtPoint(
65
- inspectedView: ?HostRef,
66
- locationX: number,
67
- locationY: number,
68
- callback: (viewData: TouchedViewDataAtPoint) => void,
69
- ) {
70
- // Check all renderers for inspector data.
71
- for (let i = 0; i < renderers.length; i++) {
72
- const renderer = renderers[i];
73
- if (renderer?.rendererConfig?.getInspectorDataForViewAtPoint != null) {
74
- renderer.rendererConfig.getInspectorDataForViewAtPoint(
75
- inspectedView,
76
- locationX,
77
- locationY,
78
- viewData => {
79
- // Only return with non-empty view data since only one renderer will have this view.
80
- if (viewData && viewData.hierarchy.length > 0) {
81
- callback(viewData);
82
- }
83
- },
84
- );
85
- }
86
- }
87
- }
35
+ const UIManager = require('../ReactNative/UIManager'); // [Win32]
88
36
 
89
37
  class Inspector extends React.Component<
90
38
  {
@@ -146,8 +94,6 @@ class Inspector extends React.Component<
146
94
  }
147
95
 
148
96
  _attachToDevtools = (agent: Object) => {
149
- agent.addListener('hideNativeHighlight', this._onAgentHideNativeHighlight);
150
- agent.addListener('showNativeHighlight', this._onAgentShowNativeHighlight);
151
97
  agent.addListener('shutdown', this._onAgentShutdown);
152
98
 
153
99
  this.setState({
@@ -155,45 +101,9 @@ class Inspector extends React.Component<
155
101
  });
156
102
  };
157
103
 
158
- _onAgentHideNativeHighlight = () => {
159
- if (this.state.inspected === null) {
160
- return;
161
- }
162
- // we wait to actually hide in order to avoid flicker
163
- this._hideTimeoutID = setTimeout(() => {
164
- this.setState({
165
- inspected: null,
166
- });
167
- }, 100);
168
- };
169
-
170
- _onAgentShowNativeHighlight = (node: any) => {
171
- clearTimeout(this._hideTimeoutID);
172
-
173
- // Shape of `node` is different in Fabric.
174
- const component = node.canonical ?? node;
175
-
176
- component.measure((x, y, width, height, left, top) => {
177
- this.setState({
178
- hierarchy: [],
179
- inspected: {
180
- frame: {left, top, width, height},
181
- },
182
- });
183
- });
184
- };
185
-
186
104
  _onAgentShutdown = () => {
187
105
  const agent = this.state.devtoolsAgent;
188
106
  if (agent != null) {
189
- agent.removeListener(
190
- 'hideNativeHighlight',
191
- this._onAgentHideNativeHighlight,
192
- );
193
- agent.removeListener(
194
- 'showNativeHighlight',
195
- this._onAgentShowNativeHighlight,
196
- );
197
107
  agent.removeListener('shutdown', this._onAgentShutdown);
198
108
 
199
109
  this.setState({devtoolsAgent: null});
@@ -202,10 +112,9 @@ class Inspector extends React.Component<
202
112
 
203
113
  setSelection(i: number) {
204
114
  const hierarchyItem = this.state.hierarchy[i];
205
- // we pass in ReactNative.findNodeHandle as the method is injected
206
- const {measure, props, source} = hierarchyItem.getInspectorData(
207
- ReactNative.findNodeHandle,
208
- );
115
+ // we pass in findNodeHandle as the method is injected
116
+ const {measure, props, source} =
117
+ hierarchyItem.getInspectorData(findNodeHandle);
209
118
 
210
119
  measure((x, y, width, height, left, top) => {
211
120
  this.setState({
@@ -229,15 +138,19 @@ class Inspector extends React.Component<
229
138
  frame,
230
139
  pointerY,
231
140
  touchedViewTag,
141
+ closestInstance,
232
142
  } = viewData;
233
143
 
234
144
  // Sync the touched view with React DevTools.
235
145
  // Note: This is Paper only. To support Fabric,
236
146
  // DevTools needs to be updated to not rely on view tags.
237
- if (this.state.devtoolsAgent && touchedViewTag) {
238
- this.state.devtoolsAgent.selectNode(
239
- ReactNative.findNodeHandle(touchedViewTag),
240
- );
147
+ if (this.state.devtoolsAgent) {
148
+ if (closestInstance != null) {
149
+ // Fabric
150
+ this.state.devtoolsAgent.selectNode(closestInstance);
151
+ } else if (touchedViewTag != null) {
152
+ this.state.devtoolsAgent.selectNode(findNodeHandle(touchedViewTag));
153
+ }
241
154
  }
242
155
 
243
156
  // [Win32 Avoid Dimensions call
@@ -266,6 +179,7 @@ class Inspector extends React.Component<
266
179
  this._setTouchedViewData(viewData);
267
180
  this._setTouchedViewData = null;
268
181
  }
182
+ return false;
269
183
  },
270
184
  );
271
185
  }
@@ -10,14 +10,14 @@
10
10
 
11
11
  'use strict';
12
12
 
13
+ import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
14
+ import type {PressEvent} from '../Types/CoreEventTypes';
15
+
16
+ const View = require('../Components/View/View');
17
+ const StyleSheet = require('../StyleSheet/StyleSheet');
13
18
  const Dimensions = require('../Utilities/Dimensions');
14
19
  const ElementBox = require('./ElementBox');
15
20
  const React = require('react');
16
- const StyleSheet = require('../StyleSheet/StyleSheet');
17
- const View = require('../Components/View/View');
18
-
19
- import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
20
- import type {PressEvent} from '../Types/CoreEventTypes';
21
21
 
22
22
  type Inspected = $ReadOnly<{|
23
23
  frame?: Object,