@office-iss/react-native-win32 0.67.0-preview.2 → 0.68.0-preview.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (619) hide show
  1. package/.eslintignore +2 -1
  2. package/.flowconfig +9 -2
  3. package/CHANGELOG.json +387 -17
  4. package/CHANGELOG.md +148 -12
  5. package/IntegrationTests/AccessibilityManagerTest.js +1 -1
  6. package/IntegrationTests/AppEventsTest.js +2 -1
  7. package/IntegrationTests/AsyncStorageTest.js +8 -6
  8. package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +1 -1
  9. package/IntegrationTests/ImageCachePolicyTest.js +1 -1
  10. package/IntegrationTests/ImageSnapshotTest.js +1 -1
  11. package/IntegrationTests/IntegrationTestHarnessTest.js +8 -6
  12. package/IntegrationTests/IntegrationTestsApp.js +3 -9
  13. package/IntegrationTests/LayoutEventsTest.js +1 -1
  14. package/IntegrationTests/LoggingTestModule.js +8 -8
  15. package/IntegrationTests/PromiseTest.js +1 -1
  16. package/IntegrationTests/PropertiesUpdateTest.js +1 -1
  17. package/IntegrationTests/RCTRootViewIntegrationTestApp.js +3 -9
  18. package/IntegrationTests/ReactContentSizeUpdateTest.js +1 -1
  19. package/IntegrationTests/SimpleSnapshotTest.js +1 -1
  20. package/IntegrationTests/SizeFlexibilityUpdateTest.js +1 -1
  21. package/IntegrationTests/SyncMethodTest.js +1 -1
  22. package/IntegrationTests/TimersTest.js +1 -1
  23. package/IntegrationTests/WebSocketTest.js +2 -2
  24. package/IntegrationTests/launchWebSocketServer.command +1 -1
  25. package/IntegrationTests/websocket_integration_test_server.js +1 -1
  26. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +4 -4
  27. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -1
  28. package/Libraries/Alert/Alert.js +4 -4
  29. package/Libraries/Alert/Alert.win32.js +3 -3
  30. package/Libraries/Alert/NativeAlertManager.js +1 -1
  31. package/Libraries/Alert/RCTAlertManager.android.js +2 -2
  32. package/Libraries/Alert/RCTAlertManager.ios.js +1 -1
  33. package/Libraries/Animated/Animated.js +1 -1
  34. package/Libraries/Animated/AnimatedEvent.js +11 -6
  35. package/Libraries/Animated/AnimatedImplementation.js +116 -85
  36. package/Libraries/Animated/AnimatedMock.js +65 -22
  37. package/Libraries/{Components/Touchable/__mocks__/ensureComponentIsNative.js → Animated/AnimatedPlatformConfig.js} +3 -2
  38. package/Libraries/Animated/AnimatedWeb.js +1 -1
  39. package/Libraries/Animated/Easing.js +38 -40
  40. package/Libraries/Animated/NativeAnimatedHelper.js +24 -21
  41. package/Libraries/Animated/NativeAnimatedModule.js +1 -1
  42. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -1
  43. package/Libraries/Animated/SpringConfig.js +11 -11
  44. package/Libraries/Animated/animations/Animation.js +6 -4
  45. package/Libraries/Animated/animations/DecayAnimation.js +6 -1
  46. package/Libraries/Animated/animations/SpringAnimation.js +16 -1
  47. package/Libraries/Animated/animations/TimingAnimation.js +15 -2
  48. package/Libraries/Animated/bezier.js +20 -9
  49. package/Libraries/Animated/components/AnimatedFlatList.js +1 -1
  50. package/Libraries/Animated/components/AnimatedImage.js +1 -1
  51. package/Libraries/Animated/components/AnimatedScrollView.js +1 -1
  52. package/Libraries/Animated/components/AnimatedSectionList.js +1 -1
  53. package/Libraries/Animated/components/AnimatedText.js +1 -1
  54. package/Libraries/Animated/components/AnimatedView.js +1 -1
  55. package/Libraries/Animated/createAnimatedComponent.js +4 -4
  56. package/Libraries/Animated/createAnimatedComponentInjection.js +1 -1
  57. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +1 -1
  58. package/Libraries/Animated/nodes/AnimatedAddition.js +6 -5
  59. package/Libraries/Animated/nodes/AnimatedColor.js +266 -0
  60. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +5 -4
  61. package/Libraries/Animated/nodes/AnimatedDivision.js +6 -5
  62. package/Libraries/Animated/nodes/AnimatedInterpolation.js +8 -6
  63. package/Libraries/Animated/nodes/AnimatedModulo.js +5 -4
  64. package/Libraries/Animated/nodes/AnimatedMultiplication.js +6 -5
  65. package/Libraries/Animated/nodes/AnimatedNode.js +31 -18
  66. package/Libraries/Animated/nodes/AnimatedProps.js +12 -4
  67. package/Libraries/Animated/nodes/AnimatedStyle.js +9 -7
  68. package/Libraries/Animated/nodes/AnimatedSubtraction.js +6 -5
  69. package/Libraries/Animated/nodes/AnimatedTracking.js +8 -6
  70. package/Libraries/Animated/nodes/AnimatedTransform.js +6 -4
  71. package/Libraries/Animated/nodes/AnimatedValue.js +21 -12
  72. package/Libraries/Animated/nodes/AnimatedValueXY.js +14 -14
  73. package/Libraries/Animated/nodes/AnimatedWithChildren.js +6 -5
  74. package/Libraries/Animated/useAnimatedProps.js +1 -1
  75. package/Libraries/AppState/AppState.js +9 -8
  76. package/Libraries/AppState/NativeAppState.js +1 -1
  77. package/Libraries/BatchedBridge/BatchedBridge.js +1 -1
  78. package/Libraries/BatchedBridge/MessageQueue.js +7 -9
  79. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  80. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestConfig.js +1 -1
  81. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestModule.js +3 -3
  82. package/Libraries/Blob/Blob.js +1 -1
  83. package/Libraries/Blob/BlobManager.js +1 -1
  84. package/Libraries/Blob/BlobRegistry.js +1 -1
  85. package/Libraries/Blob/BlobTypes.js +1 -1
  86. package/Libraries/Blob/File.js +1 -1
  87. package/Libraries/Blob/FileReader.js +1 -1
  88. package/Libraries/Blob/NativeBlobModule.js +1 -1
  89. package/Libraries/Blob/NativeFileReaderModule.js +1 -1
  90. package/Libraries/Blob/URL.js +26 -21
  91. package/Libraries/Blob/__mocks__/BlobModule.js +1 -1
  92. package/Libraries/Blob/__mocks__/FileReaderModule.js +1 -1
  93. package/Libraries/BugReporting/BugReporting.js +1 -1
  94. package/Libraries/BugReporting/NativeBugReporting.js +1 -1
  95. package/Libraries/BugReporting/dumpReactTree.js +1 -1
  96. package/Libraries/BugReporting/getReactData.js +15 -6
  97. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +89 -29
  98. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +95 -35
  99. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +4 -1
  100. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +5 -1
  101. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
  102. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
  103. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +1 -1
  104. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +1 -1
  105. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +5 -5
  106. package/Libraries/Components/Button.js +1 -1
  107. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  108. package/Libraries/Components/Clipboard/NativeClipboard.js +1 -1
  109. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +1 -1
  110. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +18 -2
  111. package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +1 -1
  112. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +1 -1
  113. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +1 -1
  114. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +3 -3
  115. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +5 -4
  116. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +1 -1
  117. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -1
  118. package/Libraries/Components/Keyboard/Keyboard.js +9 -8
  119. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +11 -6
  120. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -1
  121. package/Libraries/Components/MaskedView/MaskedViewIOS.android.js +1 -1
  122. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +1 -1
  123. package/Libraries/Components/MaskedView/MaskedViewIOS.win32.js +1 -1
  124. package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +1 -1
  125. package/Libraries/Components/Pressable/Pressable.js +38 -2
  126. package/Libraries/Components/Pressable/Pressable.win32.js +384 -0
  127. package/Libraries/Components/Pressable/useAndroidRippleForView.js +1 -1
  128. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +6 -5
  129. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js +1 -1
  130. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  131. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +1 -1
  132. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +1 -1
  133. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +3 -2
  134. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +1 -1
  135. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +1 -1
  136. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +1 -2
  137. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +1 -1
  138. package/Libraries/Components/RefreshControl/RefreshControl.js +3 -8
  139. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +3 -4
  140. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -1
  141. package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -3
  142. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +3 -3
  143. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +3 -1
  144. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +16 -6
  145. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +4 -6
  146. package/Libraries/Components/ScrollView/ScrollView.js +22 -15
  147. package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
  148. package/Libraries/Components/ScrollView/ScrollViewContext.js +1 -1
  149. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +135 -71
  150. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +2 -1
  151. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +2 -2
  152. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +2 -1
  153. package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
  154. package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +1 -1
  155. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +1 -1
  156. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +3 -9
  157. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.js +1 -1
  158. package/Libraries/Components/Slider/Slider.js +1 -1
  159. package/Libraries/Components/Slider/SliderNativeComponent.js +3 -3
  160. package/Libraries/Components/Sound/NativeSoundManager.js +1 -1
  161. package/Libraries/Components/Sound/SoundManager.js +2 -2
  162. package/Libraries/Components/StaticRenderer.js +1 -1
  163. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -1
  164. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -1
  165. package/Libraries/Components/StatusBar/StatusBar.js +1 -1
  166. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +1 -1
  167. package/Libraries/Components/Switch/Switch.js +1 -1
  168. package/Libraries/Components/Switch/SwitchNativeComponent.js +1 -1
  169. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +175 -14
  170. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  171. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -1
  172. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +10 -5
  173. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +6 -5
  174. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +32 -11
  175. package/Libraries/Components/TextInput/TextInput.js +131 -31
  176. package/Libraries/Components/TextInput/TextInputNativeCommands.js +1 -1
  177. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  178. package/Libraries/Components/TextInput/TextInputState.win32.js +1 -1
  179. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -1
  180. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +4 -4
  181. package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +4 -4
  182. package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +4 -4
  183. package/Libraries/Components/Touchable/BoundingDimensions.js +3 -3
  184. package/Libraries/Components/Touchable/PooledClass.js +12 -12
  185. package/Libraries/Components/Touchable/Position.js +2 -2
  186. package/Libraries/Components/Touchable/Touchable.js +27 -40
  187. package/Libraries/Components/Touchable/TouchableBounce.js +3 -6
  188. package/Libraries/Components/Touchable/TouchableHighlight.js +3 -6
  189. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +5 -12
  190. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -7
  191. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -6
  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 +1 -1
  195. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -1
  196. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -1
  197. package/Libraries/Components/View/ReactNativeViewViewConfig.js +13 -2
  198. package/Libraries/Components/View/ReactNativeViewViewConfig.win32.js +13 -2
  199. package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +1 -1
  200. package/Libraries/Components/View/View.js +1 -1
  201. package/Libraries/Components/View/View.win32.js +60 -4
  202. package/Libraries/Components/View/ViewAccessibility.js +1 -1
  203. package/Libraries/Components/View/ViewNativeComponent.js +4 -5
  204. package/Libraries/Components/View/ViewPropTypes.js +38 -31
  205. package/Libraries/Components/View/ViewPropTypes.win32.js +553 -0
  206. package/Libraries/Core/Devtools/getDevServer.js +1 -1
  207. package/Libraries/Core/Devtools/openFileInEditor.js +1 -1
  208. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -1
  209. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  210. package/Libraries/Core/Devtools/parseHermesStack.js +3 -2
  211. package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
  212. package/Libraries/Core/ExceptionsManager.js +3 -3
  213. package/Libraries/Core/ExtendedError.js +1 -1
  214. package/Libraries/Core/InitializeCore.js +1 -3
  215. package/Libraries/Core/NativeExceptionsManager.js +3 -4
  216. package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
  217. package/Libraries/Core/ReactNativeVersion.js +3 -3
  218. package/Libraries/Core/ReactNativeVersionCheck.js +12 -2
  219. package/Libraries/Core/ReactNativeVersionCheck.win32.js +12 -2
  220. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -1
  221. package/Libraries/Core/Timers/JSTimers.js +35 -42
  222. package/Libraries/Core/Timers/NativeTiming.js +1 -1
  223. package/Libraries/Core/Timers/immediateShim.js +1 -1
  224. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  225. package/Libraries/Core/__mocks__/ErrorUtils.js +1 -1
  226. package/Libraries/Core/checkNativeVersion.js +1 -1
  227. package/Libraries/Core/polyfillPromise.js +1 -1
  228. package/Libraries/Core/setUpAlert.js +2 -2
  229. package/Libraries/Core/setUpBatchedBridge.js +15 -3
  230. package/Libraries/Core/setUpDeveloperTools.js +2 -2
  231. package/Libraries/Core/setUpErrorHandling.js +2 -2
  232. package/Libraries/Core/setUpGlobals.js +1 -1
  233. package/Libraries/Core/setUpNavigator.js +1 -1
  234. package/Libraries/Core/setUpPerformance.js +2 -2
  235. package/Libraries/Core/setUpReactDevTools.js +1 -1
  236. package/Libraries/Core/setUpReactRefresh.js +1 -1
  237. package/Libraries/Core/setUpRegeneratorRuntime.js +2 -2
  238. package/Libraries/Core/setUpSegmentFetcher.js +5 -5
  239. package/Libraries/Core/setUpSystrace.js +1 -1
  240. package/Libraries/Core/setUpTimers.js +12 -2
  241. package/Libraries/Core/setUpXHR.js +1 -1
  242. package/Libraries/EventEmitter/NativeEventEmitter.js +3 -2
  243. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
  244. package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
  245. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
  246. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -2
  247. package/Libraries/HeapCapture/HeapCapture.js +2 -2
  248. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +1 -1
  249. package/Libraries/Image/AssetRegistry.js +1 -1
  250. package/Libraries/Image/AssetSourceResolver.js +3 -5
  251. package/Libraries/Image/AssetUtils.js +1 -1
  252. package/Libraries/Image/Image.android.js +38 -30
  253. package/Libraries/Image/Image.ios.js +17 -20
  254. package/Libraries/Image/Image.win32.js +19 -22
  255. package/Libraries/Image/ImageAnalyticsTagContext.js +3 -4
  256. package/Libraries/Image/ImageBackground.js +11 -2
  257. package/Libraries/Image/ImageInjection.js +1 -1
  258. package/Libraries/Image/ImagePickerIOS.js +7 -7
  259. package/Libraries/Image/ImageProps.js +18 -18
  260. package/Libraries/Image/ImageResizeMode.js +1 -1
  261. package/Libraries/Image/ImageSource.js +1 -1
  262. package/Libraries/Image/ImageViewNativeComponent.js +96 -61
  263. package/Libraries/Image/NativeImageEditor.js +1 -1
  264. package/Libraries/Image/NativeImageLoaderAndroid.js +2 -4
  265. package/Libraries/Image/NativeImageLoaderIOS.js +1 -1
  266. package/Libraries/Image/NativeImageLoaderWin32.js +1 -1
  267. package/Libraries/Image/NativeImagePickerIOS.js +1 -1
  268. package/Libraries/Image/NativeImageStoreAndroid.js +1 -1
  269. package/Libraries/Image/NativeImageStoreIOS.js +1 -1
  270. package/Libraries/Image/RelativeImageStub.js +1 -1
  271. package/Libraries/Image/TextInlineImageNativeComponent.js +14 -74
  272. package/Libraries/Image/nativeImageSource.js +3 -3
  273. package/Libraries/Image/resolveAssetSource.js +1 -1
  274. package/Libraries/Image/resolveAssetSource.win32.js +1 -1
  275. package/Libraries/Inspector/BorderBox.js +1 -1
  276. package/Libraries/Inspector/BoxInspector.js +1 -1
  277. package/Libraries/Inspector/ElementBox.js +1 -1
  278. package/Libraries/Inspector/ElementProperties.js +1 -1
  279. package/Libraries/Inspector/Inspector.js +2 -2
  280. package/Libraries/Inspector/Inspector.win32.js +7 -7
  281. package/Libraries/Inspector/InspectorOverlay.js +1 -1
  282. package/Libraries/Inspector/InspectorOverlay.win32.js +1 -1
  283. package/Libraries/Inspector/InspectorPanel.js +1 -1
  284. package/Libraries/Inspector/NetworkOverlay.js +3 -6
  285. package/Libraries/Inspector/PerformanceOverlay.js +1 -1
  286. package/Libraries/Inspector/StyleInspector.js +1 -1
  287. package/Libraries/Inspector/resolveBoxStyle.js +1 -1
  288. package/Libraries/Interaction/Batchinator.js +1 -1
  289. package/Libraries/Interaction/BridgeSpyStallHandler.js +2 -2
  290. package/Libraries/Interaction/FrameRateLogger.js +3 -3
  291. package/Libraries/Interaction/InteractionManager.js +3 -5
  292. package/Libraries/Interaction/InteractionStallDebugger.js +1 -1
  293. package/Libraries/Interaction/JSEventLoopWatchdog.js +5 -5
  294. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -1
  295. package/Libraries/Interaction/PanResponder.js +4 -5
  296. package/Libraries/Interaction/TaskQueue.js +1 -1
  297. package/Libraries/Interaction/TouchHistoryMath.js +8 -8
  298. package/Libraries/JSInspector/InspectorAgent.js +1 -1
  299. package/Libraries/JSInspector/JSInspector.js +1 -1
  300. package/Libraries/JSInspector/NetworkAgent.js +2 -7
  301. package/Libraries/LayoutAnimation/LayoutAnimation.js +4 -4
  302. package/Libraries/Linking/Linking.js +8 -8
  303. package/Libraries/Linking/NativeIntentAndroid.js +1 -1
  304. package/Libraries/Linking/NativeLinkingManager.js +1 -1
  305. package/Libraries/Lists/CellRenderMask.js +1 -1
  306. package/Libraries/Lists/FillRateHelper.js +5 -4
  307. package/Libraries/Lists/FlatList.js +4 -5
  308. package/Libraries/Lists/SectionList.js +4 -4
  309. package/Libraries/Lists/SectionListModern.js +4 -4
  310. package/Libraries/Lists/ViewabilityHelper.js +5 -11
  311. package/Libraries/Lists/VirtualizeUtils.js +3 -7
  312. package/Libraries/Lists/VirtualizedList.js +23 -33
  313. package/Libraries/Lists/VirtualizedListContext.js +3 -4
  314. package/Libraries/Lists/VirtualizedSectionList.js +54 -63
  315. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -1
  316. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  317. package/Libraries/Lists/__tests__/CellRenderMask-test.js +1 -1
  318. package/Libraries/Lists/__tests__/{FillRateHelper-test.js → FillRateHelper-test.windows.js} +8 -8
  319. package/Libraries/Lists/__tests__/{FlatList-test.js → FlatList-test.windows.js} +3 -3
  320. package/Libraries/Lists/__tests__/{SectionList-test.js → SectionList-test.windows.js} +15 -15
  321. package/Libraries/Lists/__tests__/ViewabilityHelper-test.js +15 -15
  322. package/Libraries/Lists/__tests__/{VirtualizeUtils-test.js → VirtualizeUtils-test.windows.js} +19 -22
  323. package/Libraries/Lists/__tests__/{VirtualizedList-test.js → VirtualizedList-test.windows.js} +32 -32
  324. package/Libraries/Lists/__tests__/{VirtualizedSectionList-test.js → VirtualizedSectionList-test.windows.js} +15 -15
  325. package/Libraries/LogBox/Data/LogBoxData.js +2 -2
  326. package/Libraries/LogBox/Data/LogBoxLog.js +1 -1
  327. package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
  328. package/Libraries/LogBox/Data/parseLogBoxLog.js +13 -24
  329. package/Libraries/LogBox/LogBox.js +4 -4
  330. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  331. package/Libraries/LogBox/LogBoxNotificationContainer.js +1 -1
  332. package/Libraries/LogBox/UI/AnsiHighlight.js +10 -5
  333. package/Libraries/LogBox/UI/LogBoxButton.js +1 -1
  334. package/Libraries/LogBox/UI/LogBoxInspector.js +4 -2
  335. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +1 -1
  336. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
  337. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  338. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +1 -1
  339. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +1 -1
  340. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -2
  341. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +1 -1
  342. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -2
  343. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
  344. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +2 -2
  345. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +4 -2
  346. package/Libraries/LogBox/UI/LogBoxMessage.js +7 -3
  347. package/Libraries/LogBox/UI/LogBoxNotification.js +7 -4
  348. package/Libraries/LogBox/UI/LogBoxStyle.js +1 -1
  349. package/Libraries/LogBox/UI/LogBoxStyle.win32.js +1 -1
  350. package/Libraries/Modal/Modal.js +15 -14
  351. package/Libraries/Modal/ModalInjection.js +1 -1
  352. package/Libraries/Modal/NativeModalManager.js +1 -1
  353. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +12 -12
  354. package/Libraries/NativeComponent/NativeComponentRegistry.js +30 -33
  355. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +27 -0
  356. package/Libraries/NativeComponent/StaticViewConfigValidator.js +198 -0
  357. package/Libraries/NativeComponent/ViewConfig.js +1 -1
  358. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +1 -1
  359. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -1
  360. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -1
  361. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -1
  362. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -1
  363. package/Libraries/NativeModules/specs/NativeLogBox.js +1 -1
  364. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -1
  365. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -1
  366. package/Libraries/Network/FormData.js +1 -1
  367. package/Libraries/Network/NativeNetworkingAndroid.js +1 -1
  368. package/Libraries/Network/NativeNetworkingIOS.js +1 -1
  369. package/Libraries/Network/RCTNetworking.android.js +1 -1
  370. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  371. package/Libraries/Network/RCTNetworking.win32.js +2 -2
  372. package/Libraries/Network/XHRInterceptor.js +6 -7
  373. package/Libraries/Network/XMLHttpRequest.js +44 -8
  374. package/Libraries/Network/convertRequestBody.js +1 -1
  375. package/Libraries/Network/fetch.js +1 -1
  376. package/Libraries/NewAppScreen/components/Colors.js +1 -1
  377. package/Libraries/NewAppScreen/components/DebugInstructions.js +1 -1
  378. package/Libraries/NewAppScreen/components/Header.js +1 -1
  379. package/Libraries/NewAppScreen/components/HermesBadge.js +1 -1
  380. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +1 -1
  381. package/Libraries/NewAppScreen/components/ReloadInstructions.js +1 -1
  382. package/Libraries/NewAppScreen/index.js +1 -1
  383. package/Libraries/Performance/NativeJSCSamplingProfiler.js +1 -1
  384. package/Libraries/Performance/PureComponentDebug.js +1 -1
  385. package/Libraries/Performance/QuickPerformanceLogger.js +18 -1
  386. package/Libraries/Performance/SamplingProfiler.js +4 -4
  387. package/Libraries/Performance/Systrace.js +9 -2
  388. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +7 -2
  389. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +20 -9
  390. package/Libraries/Pressability/HoverState.js +1 -1
  391. package/Libraries/Pressability/HoverState.win32.js +60 -0
  392. package/Libraries/Pressability/Pressability.js +3 -3
  393. package/Libraries/Pressability/Pressability.win32.js +962 -0
  394. package/Libraries/Pressability/PressabilityDebug.js +15 -12
  395. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +5 -3
  396. package/Libraries/Pressability/PressabilityTypes.js +1 -1
  397. package/Libraries/Pressability/usePressability.js +1 -1
  398. package/Libraries/Promise.js +1 -1
  399. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -1
  400. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +33 -32
  401. package/Libraries/ReactNative/AppContainer.js +3 -3
  402. package/Libraries/ReactNative/AppRegistry.js +15 -13
  403. package/Libraries/ReactNative/DisplayMode.js +1 -1
  404. package/Libraries/ReactNative/DummyUIManager.js +13 -6
  405. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  406. package/Libraries/ReactNative/HeadlessJsTaskError.js +1 -1
  407. package/Libraries/ReactNative/I18nManager.js +3 -6
  408. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -1
  409. package/Libraries/ReactNative/NativeI18nManager.js +1 -1
  410. package/Libraries/ReactNative/NativeUIManager.js +1 -1
  411. package/Libraries/ReactNative/PaperUIManager.js +3 -4
  412. package/Libraries/ReactNative/PaperUIManager.win32.js +8 -9
  413. package/Libraries/ReactNative/ReactFabricInternals.js +1 -1
  414. package/Libraries/ReactNative/RootTag.js +3 -4
  415. package/Libraries/ReactNative/UIManager.js +5 -7
  416. package/Libraries/ReactNative/UIManagerInjection.js +4 -2
  417. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  418. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +4 -2
  419. package/Libraries/ReactNative/getNativeComponentAttributes.js +21 -9
  420. package/Libraries/ReactNative/renderApplication.js +1 -1
  421. package/Libraries/ReactNative/requireNativeComponent.js +1 -1
  422. package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
  423. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -1
  424. package/Libraries/Reliability/UserFlow.js +1 -1
  425. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +1134 -426
  426. package/Libraries/Renderer/implementations/ReactFabric-dev.js +1 -1
  427. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +265 -236
  428. package/Libraries/Renderer/implementations/ReactFabric-prod.js +1 -1
  429. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +538 -302
  430. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +1 -1
  431. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +1084 -463
  432. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +1 -1
  433. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +251 -224
  434. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1 -1
  435. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +519 -281
  436. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1 -1
  437. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  438. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  439. package/Libraries/Renderer/shims/ReactNative.js +2 -2
  440. package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -2
  441. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -4
  442. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  443. package/Libraries/Settings/NativeSettingsManager.js +1 -1
  444. package/Libraries/Settings/Settings.android.js +1 -1
  445. package/Libraries/Settings/Settings.ios.js +1 -1
  446. package/Libraries/Share/NativeShareModule.js +1 -1
  447. package/Libraries/Share/Share.js +1 -1
  448. package/Libraries/Storage/AsyncStorage.js +34 -35
  449. package/Libraries/Storage/NativeAsyncLocalStorage.js +1 -1
  450. package/Libraries/Storage/NativeAsyncSQLiteDBStorage.js +1 -1
  451. package/Libraries/StyleSheet/EdgeInsetsPropType.js +1 -1
  452. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  453. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  454. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
  455. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +1 -1
  456. package/Libraries/StyleSheet/PointPropType.js +1 -1
  457. package/Libraries/StyleSheet/Rect.js +1 -1
  458. package/Libraries/StyleSheet/StyleSheet.js +3 -2
  459. package/Libraries/StyleSheet/StyleSheet.win32.js +3 -2
  460. package/Libraries/StyleSheet/StyleSheetTypes.js +2 -2
  461. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +1 -1
  462. package/Libraries/StyleSheet/flattenStyle.js +1 -1
  463. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  464. package/Libraries/StyleSheet/processColor.js +3 -3
  465. package/Libraries/StyleSheet/processColorArray.js +1 -1
  466. package/Libraries/StyleSheet/processTransform.js +21 -2
  467. package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
  468. package/Libraries/StyleSheet/splitLayoutProps.js +2 -4
  469. package/Libraries/Text/Text.js +11 -12
  470. package/Libraries/Text/TextAncestor.js +1 -1
  471. package/Libraries/Text/TextNativeComponent.js +10 -8
  472. package/Libraries/Text/TextNativeComponent.win32.js +9 -7
  473. package/Libraries/Text/TextProps.js +19 -19
  474. package/Libraries/TurboModule/RCTExport.js +1 -1
  475. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
  476. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -1
  477. package/Libraries/Types/CodegenTypes.js +1 -1
  478. package/Libraries/Types/CoreEventTypes.js +1 -1
  479. package/Libraries/Types/CoreEventTypes.win32.js +191 -0
  480. package/Libraries/Types/RootTagTypes.js +1 -1
  481. package/Libraries/UTFSequence.js +1 -1
  482. package/Libraries/Utilities/Appearance.js +7 -6
  483. package/Libraries/Utilities/BackHandler.android.js +5 -5
  484. package/Libraries/Utilities/BackHandler.ios.js +1 -1
  485. package/Libraries/Utilities/BackHandler.win32.js +5 -5
  486. package/Libraries/Utilities/DebugEnvironment.js +1 -1
  487. package/Libraries/Utilities/DevSettings.js +1 -1
  488. package/Libraries/Utilities/DeviceInfo.js +1 -1
  489. package/Libraries/Utilities/Dimensions.js +1 -1
  490. package/Libraries/Utilities/FeatureDetection.js +1 -1
  491. package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -1
  492. package/Libraries/Utilities/HMRClient.js +3 -3
  493. package/Libraries/Utilities/HMRClientProdShim.js +1 -1
  494. package/Libraries/Utilities/JSDevSupportModule.js +4 -5
  495. package/Libraries/Utilities/LoadingView.android.js +1 -1
  496. package/Libraries/Utilities/LoadingView.ios.js +1 -1
  497. package/Libraries/Utilities/LoadingView.js +1 -1
  498. package/Libraries/Utilities/MatrixMath.js +20 -20
  499. package/Libraries/Utilities/NativeAppearance.js +1 -1
  500. package/Libraries/Utilities/NativeDevLoadingView.js +1 -1
  501. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +1 -1
  502. package/Libraries/Utilities/NativeDeviceInfo.js +1 -1
  503. package/Libraries/Utilities/NativeJSDevSupport.js +1 -1
  504. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -1
  505. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -1
  506. package/Libraries/Utilities/PerformanceLoggerContext.js +3 -4
  507. package/Libraries/Utilities/PixelRatio.js +1 -1
  508. package/Libraries/Utilities/Platform.android.js +1 -1
  509. package/Libraries/Utilities/Platform.ios.js +1 -1
  510. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  511. package/Libraries/Utilities/RCTLog.js +1 -1
  512. package/Libraries/Utilities/ReactNativeTestTools.js +8 -12
  513. package/Libraries/Utilities/SceneTracker.js +5 -4
  514. package/Libraries/Utilities/__mocks__/BackHandler.js +4 -4
  515. package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +1 -1
  516. package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
  517. package/Libraries/Utilities/binaryToBase64.js +1 -1
  518. package/Libraries/Utilities/buildStyleInterpolator.js +10 -10
  519. package/Libraries/Utilities/clamp.js +1 -1
  520. package/Libraries/Utilities/codegenNativeCommands.js +1 -1
  521. package/Libraries/Utilities/codegenNativeComponent.js +4 -3
  522. package/Libraries/Utilities/createPerformanceLogger.js +1 -1
  523. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +3 -3
  524. package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
  525. package/Libraries/Utilities/deprecatedPropType.js +1 -1
  526. package/Libraries/Utilities/differ/deepDiffer.js +2 -2
  527. package/Libraries/Utilities/differ/insetsDiffer.js +2 -2
  528. package/Libraries/Utilities/differ/matricesDiffer.js +6 -2
  529. package/Libraries/Utilities/differ/pointsDiffer.js +2 -2
  530. package/Libraries/Utilities/differ/sizesDiffer.js +11 -5
  531. package/Libraries/Utilities/dismissKeyboard.js +1 -1
  532. package/Libraries/Utilities/groupByEveryN.js +1 -1
  533. package/Libraries/Utilities/infoLog.js +1 -1
  534. package/Libraries/Utilities/logError.js +2 -2
  535. package/Libraries/Utilities/mapWithSeparator.js +1 -1
  536. package/Libraries/Utilities/mergeIntoFast.js +2 -2
  537. package/Libraries/Utilities/setAndForwardRef.js +1 -1
  538. package/Libraries/Utilities/stringifySafe.js +1 -1
  539. package/Libraries/Utilities/truncate.js +2 -2
  540. package/Libraries/Utilities/useColorScheme.js +1 -1
  541. package/Libraries/Utilities/useMergeRefs.js +1 -1
  542. package/Libraries/Utilities/useRefEffect.js +1 -1
  543. package/Libraries/Utilities/useWindowDimensions.js +6 -2
  544. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +4 -2
  545. package/Libraries/Utilities/warnOnce.js +1 -1
  546. package/Libraries/Vibration/NativeVibration.js +1 -1
  547. package/Libraries/Vibration/Vibration.js +6 -6
  548. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -1
  549. package/Libraries/WebSocket/WebSocket.js +1 -1
  550. package/Libraries/WebSocket/WebSocketEvent.js +1 -1
  551. package/Libraries/WebSocket/WebSocketInterceptor.js +7 -7
  552. package/Libraries/WebSocket/__mocks__/event-target-shim.js +1 -1
  553. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  554. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +1 -1
  555. package/Libraries/promiseRejectionTrackingOptions.js +2 -2
  556. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  557. package/Libraries/vendor/emitter/EventEmitter.js +1 -1
  558. package/Libraries/vendor/emitter/EventSubscription.js +1 -1
  559. package/Libraries/vendor/emitter/_EmitterSubscription.js +3 -2
  560. package/Libraries/vendor/emitter/_EventEmitter.js +3 -2
  561. package/Libraries/vendor/emitter/_EventSubscription.js +3 -2
  562. package/Libraries/vendor/emitter/_EventSubscriptionVendor.js +2 -2
  563. package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +1 -1
  564. package/flow/HermesInternalType.js +1 -1
  565. package/flow/Position.js +1 -1
  566. package/flow/Promise.js +1 -1
  567. package/flow/Stringish.js +1 -1
  568. package/flow/console.js +1 -1
  569. package/flow/global.js +2 -6
  570. package/flow/jest.js +1 -1
  571. package/flow/use-subscription.js +1 -1
  572. package/flow-typed/npm/glob_v7.x.x.js +79 -0
  573. package/index.js +26 -17
  574. package/index.win32.js +26 -20
  575. package/interface.js +1 -1
  576. package/jest/MockNativeMethods.js +1 -1
  577. package/jest/assetFileTransformer.js +3 -3
  578. package/jest/mockComponent.js +1 -1
  579. package/jest/mockModal.js +3 -3
  580. package/jest/mockNativeComponent.js +5 -1
  581. package/jest/mockScrollView.js +1 -1
  582. package/jest/preprocessor.js +10 -78
  583. package/jest/renderer.js +1 -1
  584. package/jest/setup.js +5 -4
  585. package/overrides.json +98 -63
  586. package/package.json +24 -23
  587. package/rn-get-polyfills.js +1 -1
  588. package/rntypes/globals.d.ts +6 -5
  589. package/rntypes/index.d.ts +89 -312
  590. package/rntypes/legacy-properties.d.ts +0 -28
  591. package/src/rntypes/globals.d.ts +6 -5
  592. package/src/rntypes/index.d.ts +89 -312
  593. package/src/rntypes/legacy-properties.d.ts +0 -28
  594. package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +0 -116
  595. package/Libraries/DeprecatedPropTypes/DeprecatedColorPropType.js +0 -76
  596. package/Libraries/DeprecatedPropTypes/DeprecatedEdgeInsetsPropType.js +0 -28
  597. package/Libraries/DeprecatedPropTypes/DeprecatedImagePropType.android.js +0 -131
  598. package/Libraries/DeprecatedPropTypes/DeprecatedImagePropType.ios.js +0 -82
  599. package/Libraries/DeprecatedPropTypes/DeprecatedImagePropType.win32.js +0 -82
  600. package/Libraries/DeprecatedPropTypes/DeprecatedImageSourcePropType.js +0 -40
  601. package/Libraries/DeprecatedPropTypes/DeprecatedImageStylePropTypes.js +0 -76
  602. package/Libraries/DeprecatedPropTypes/DeprecatedLayoutPropTypes.js +0 -233
  603. package/Libraries/DeprecatedPropTypes/DeprecatedPointPropType.js +0 -24
  604. package/Libraries/DeprecatedPropTypes/DeprecatedShadowPropTypesIOS.js +0 -30
  605. package/Libraries/DeprecatedPropTypes/DeprecatedStyleSheetPropType.js +0 -32
  606. package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +0 -622
  607. package/Libraries/DeprecatedPropTypes/DeprecatedTextPropTypes.js +0 -158
  608. package/Libraries/DeprecatedPropTypes/DeprecatedTextStylePropTypes.js +0 -157
  609. package/Libraries/DeprecatedPropTypes/DeprecatedTransformPropTypes.js +0 -99
  610. package/Libraries/DeprecatedPropTypes/DeprecatedViewAccessibility.js +0 -46
  611. package/Libraries/DeprecatedPropTypes/DeprecatedViewPropTypes.js +0 -408
  612. package/Libraries/DeprecatedPropTypes/DeprecatedViewStylePropTypes.js +0 -68
  613. package/Libraries/DeprecatedPropTypes/deprecatedCreateStrictShapeTypeChecker.js +0 -86
  614. package/flow-typed/npm/prop-types_v15.x.x.js +0 -42
  615. package/src/Libraries/Lists/__tests__/__snapshots__/FlatList-test.js.snap +0 -427
  616. package/src/Libraries/Lists/__tests__/__snapshots__/SectionList-test.js.snap +0 -391
  617. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizeUtils-test.js.snap +0 -3
  618. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap +0 -4634
  619. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedSectionList-test.js.snap +0 -1153
@@ -0,0 +1,962 @@
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
+ import invariant from 'invariant';
12
+ import * as React from 'react';
13
+ import SoundManager from '../Components/Sound/SoundManager';
14
+ import UIManager from '../ReactNative/UIManager';
15
+ import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
16
+ import {normalizeRect, type RectOrSize} from '../StyleSheet/Rect';
17
+ import type {
18
+ BlurEvent,
19
+ FocusEvent,
20
+ KeyEvent,
21
+ MouseEvent,
22
+ PressEvent,
23
+ } from '../Types/CoreEventTypes';
24
+ import Platform from '../Utilities/Platform';
25
+ import {isHoverEnabled} from './HoverState';
26
+ import PressabilityPerformanceEventEmitter from './PressabilityPerformanceEventEmitter.js';
27
+ import {type PressabilityTouchSignal as TouchSignal} from './PressabilityTypes.js';
28
+
29
+ export type PressabilityConfig = $ReadOnly<{|
30
+ /**
31
+ * Whether a press gesture can be interrupted by a parent gesture such as a
32
+ * scroll event. Defaults to true.
33
+ */
34
+ cancelable?: ?boolean,
35
+
36
+ /**
37
+ * Whether to disable initialization of the press gesture.
38
+ */
39
+ disabled?: ?boolean,
40
+
41
+ /**
42
+ * Amount to extend the `VisualRect` by to create `HitRect`.
43
+ */
44
+ hitSlop?: ?RectOrSize,
45
+
46
+ /**
47
+ * Amount to extend the `HitRect` by to create `PressRect`.
48
+ */
49
+ pressRectOffset?: ?RectOrSize,
50
+
51
+ /**
52
+ * Whether to disable the systemm sound when `onPress` fires on Android.
53
+ **/
54
+ android_disableSound?: ?boolean,
55
+
56
+ /**
57
+ * Duration to wait after hover in before calling `onHoverIn`.
58
+ */
59
+ delayHoverIn?: ?number,
60
+
61
+ /**
62
+ * Duration to wait after hover out before calling `onHoverOut`.
63
+ */
64
+ delayHoverOut?: ?number,
65
+
66
+ /**
67
+ * Duration (in addition to `delayPressIn`) after which a press gesture is
68
+ * considered a long press gesture. Defaults to 500 (milliseconds).
69
+ */
70
+ delayLongPress?: ?number,
71
+
72
+ /**
73
+ * Duration to wait after press down before calling `onPressIn`.
74
+ */
75
+ delayPressIn?: ?number,
76
+
77
+ /**
78
+ * Duration to wait after letting up before calling `onPressOut`.
79
+ */
80
+ delayPressOut?: ?number,
81
+
82
+ /**
83
+ * Minimum duration to wait between calling `onPressIn` and `onPressOut`.
84
+ */
85
+ minPressDuration?: ?number,
86
+
87
+ /**
88
+ * Called after the element loses focus.
89
+ */
90
+ onBlur?: ?(event: BlurEvent) => mixed,
91
+
92
+ /**
93
+ * Called after the element is focused.
94
+ */
95
+ onFocus?: ?(event: FocusEvent) => mixed,
96
+
97
+ /*
98
+ * Called after a key down event is detected.
99
+ */
100
+ onKeyDown?: ?(event: KeyEvent) => mixed,
101
+
102
+ /*
103
+ * Called after a key up event is detected.
104
+ */
105
+ onKeyUp?: ?(event: KeyEvent) => mixed,
106
+
107
+ /**
108
+ * Called when the hover is activated to provide visual feedback.
109
+ */
110
+ onHoverIn?: ?(event: MouseEvent) => mixed,
111
+
112
+ /**
113
+ * Called when the hover is deactivated to undo visual feedback.
114
+ */
115
+ onHoverOut?: ?(event: MouseEvent) => mixed,
116
+
117
+ /**
118
+ * Called when a long press gesture has been triggered.
119
+ */
120
+ onLongPress?: ?(event: PressEvent) => mixed,
121
+
122
+ /**
123
+ * Called when a press gestute has been triggered.
124
+ */
125
+ onPress?: ?(event: PressEvent) => mixed,
126
+
127
+ /**
128
+ * Called when the press is activated to provide visual feedback.
129
+ */
130
+ onPressIn?: ?(event: PressEvent) => mixed,
131
+
132
+ /**
133
+ * Called when the press location moves. (This should rarely be used.)
134
+ */
135
+ onPressMove?: ?(event: PressEvent) => mixed,
136
+
137
+ /**
138
+ * Called when the press is deactivated to undo visual feedback.
139
+ */
140
+ onPressOut?: ?(event: PressEvent) => mixed,
141
+
142
+ /**
143
+ * Returns whether a long press gesture should cancel the press gesture.
144
+ * Defaults to true.
145
+ */
146
+ onLongPressShouldCancelPress_DEPRECATED?: ?() => boolean,
147
+
148
+ /**
149
+ * If `cancelable` is set, this will be ignored.
150
+ *
151
+ * Returns whether to yield to a lock termination request (e.g. if a native
152
+ * scroll gesture attempts to steal the responder lock).
153
+ */
154
+ onResponderTerminationRequest_DEPRECATED?: ?() => boolean,
155
+
156
+ /**
157
+ * If `disabled` is set, this will be ignored.
158
+ *
159
+ * Returns whether to start a press gesture.
160
+ *
161
+ * @deprecated
162
+ */
163
+ onStartShouldSetResponder_DEPRECATED?: ?() => boolean,
164
+
165
+ // [Windows
166
+ /**
167
+ * Raw handler for onMouseEnter that will be preferred if set over hover
168
+ * events. This is to preserve compatibility with pre-0.62 behavior which
169
+ * allowed attaching mouse event handlers to Touchables
170
+ */
171
+ onMouseEnter?: ?(event: MouseEvent) => mixed,
172
+
173
+ /**
174
+ * Raw handler for onMouseLeave that will be preferred if set over hover
175
+ * events. This is to preserve compatibility with pre-0.62 behavior which
176
+ * allowed attaching mouse event handlers to Touchables
177
+ */
178
+ onMouseLeave?: ?(event: MouseEvent) => mixed,
179
+ // Windows]
180
+ |}>;
181
+
182
+ export type EventHandlers = $ReadOnly<{|
183
+ onBlur: (event: BlurEvent) => void,
184
+ onClick: (event: PressEvent) => void,
185
+ onFocus: (event: FocusEvent) => void,
186
+ onMouseEnter?: (event: MouseEvent) => void,
187
+ onMouseLeave?: (event: MouseEvent) => void,
188
+ onResponderGrant: (event: PressEvent) => void,
189
+ onResponderMove: (event: PressEvent) => void,
190
+ onResponderRelease: (event: PressEvent) => void,
191
+ onResponderTerminate: (event: PressEvent) => void,
192
+ onResponderTerminationRequest: () => boolean,
193
+ onStartShouldSetResponder: () => boolean,
194
+ // [Windows
195
+ onKeyUp: (event: KeyEvent) => void,
196
+ onKeyDown: (event: KeyEvent) => void,
197
+ // Windows]
198
+ |}>;
199
+
200
+ type TouchState =
201
+ | 'NOT_RESPONDER'
202
+ | 'RESPONDER_INACTIVE_PRESS_IN'
203
+ | 'RESPONDER_INACTIVE_PRESS_OUT'
204
+ | 'RESPONDER_ACTIVE_PRESS_IN'
205
+ | 'RESPONDER_ACTIVE_PRESS_OUT'
206
+ | 'RESPONDER_ACTIVE_LONG_PRESS_IN'
207
+ | 'RESPONDER_ACTIVE_LONG_PRESS_OUT'
208
+ | 'ERROR';
209
+
210
+ const Transitions = Object.freeze({
211
+ NOT_RESPONDER: {
212
+ DELAY: 'ERROR',
213
+ RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',
214
+ RESPONDER_RELEASE: 'ERROR',
215
+ RESPONDER_TERMINATED: 'ERROR',
216
+ ENTER_PRESS_RECT: 'ERROR',
217
+ LEAVE_PRESS_RECT: 'ERROR',
218
+ LONG_PRESS_DETECTED: 'ERROR',
219
+ },
220
+ RESPONDER_INACTIVE_PRESS_IN: {
221
+ DELAY: 'RESPONDER_ACTIVE_PRESS_IN',
222
+ RESPONDER_GRANT: 'ERROR',
223
+ RESPONDER_RELEASE: 'NOT_RESPONDER',
224
+ RESPONDER_TERMINATED: 'NOT_RESPONDER',
225
+ ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',
226
+ LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',
227
+ LONG_PRESS_DETECTED: 'ERROR',
228
+ },
229
+ RESPONDER_INACTIVE_PRESS_OUT: {
230
+ DELAY: 'RESPONDER_ACTIVE_PRESS_OUT',
231
+ RESPONDER_GRANT: 'ERROR',
232
+ RESPONDER_RELEASE: 'NOT_RESPONDER',
233
+ RESPONDER_TERMINATED: 'NOT_RESPONDER',
234
+ ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',
235
+ LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',
236
+ LONG_PRESS_DETECTED: 'ERROR',
237
+ },
238
+ RESPONDER_ACTIVE_PRESS_IN: {
239
+ DELAY: 'ERROR',
240
+ RESPONDER_GRANT: 'ERROR',
241
+ RESPONDER_RELEASE: 'NOT_RESPONDER',
242
+ RESPONDER_TERMINATED: 'NOT_RESPONDER',
243
+ ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',
244
+ LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',
245
+ LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',
246
+ },
247
+ RESPONDER_ACTIVE_PRESS_OUT: {
248
+ DELAY: 'ERROR',
249
+ RESPONDER_GRANT: 'ERROR',
250
+ RESPONDER_RELEASE: 'NOT_RESPONDER',
251
+ RESPONDER_TERMINATED: 'NOT_RESPONDER',
252
+ ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',
253
+ LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',
254
+ LONG_PRESS_DETECTED: 'ERROR',
255
+ },
256
+ RESPONDER_ACTIVE_LONG_PRESS_IN: {
257
+ DELAY: 'ERROR',
258
+ RESPONDER_GRANT: 'ERROR',
259
+ RESPONDER_RELEASE: 'NOT_RESPONDER',
260
+ RESPONDER_TERMINATED: 'NOT_RESPONDER',
261
+ ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',
262
+ LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',
263
+ LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',
264
+ },
265
+ RESPONDER_ACTIVE_LONG_PRESS_OUT: {
266
+ DELAY: 'ERROR',
267
+ RESPONDER_GRANT: 'ERROR',
268
+ RESPONDER_RELEASE: 'NOT_RESPONDER',
269
+ RESPONDER_TERMINATED: 'NOT_RESPONDER',
270
+ ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',
271
+ LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',
272
+ LONG_PRESS_DETECTED: 'ERROR',
273
+ },
274
+ ERROR: {
275
+ DELAY: 'NOT_RESPONDER',
276
+ RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',
277
+ RESPONDER_RELEASE: 'NOT_RESPONDER',
278
+ RESPONDER_TERMINATED: 'NOT_RESPONDER',
279
+ ENTER_PRESS_RECT: 'NOT_RESPONDER',
280
+ LEAVE_PRESS_RECT: 'NOT_RESPONDER',
281
+ LONG_PRESS_DETECTED: 'NOT_RESPONDER',
282
+ },
283
+ });
284
+
285
+ const isActiveSignal = (signal) =>
286
+ signal === 'RESPONDER_ACTIVE_PRESS_IN' ||
287
+ signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';
288
+
289
+ const isActivationSignal = (signal) =>
290
+ signal === 'RESPONDER_ACTIVE_PRESS_OUT' ||
291
+ signal === 'RESPONDER_ACTIVE_PRESS_IN';
292
+
293
+ const isPressInSignal = (signal) =>
294
+ signal === 'RESPONDER_INACTIVE_PRESS_IN' ||
295
+ signal === 'RESPONDER_ACTIVE_PRESS_IN' ||
296
+ signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';
297
+
298
+ const isTerminalSignal = (signal) =>
299
+ signal === 'RESPONDER_TERMINATED' || signal === 'RESPONDER_RELEASE';
300
+
301
+ const DEFAULT_LONG_PRESS_DELAY_MS = 500;
302
+ const DEFAULT_PRESS_RECT_OFFSETS = {
303
+ bottom: 30,
304
+ left: 20,
305
+ right: 20,
306
+ top: 20,
307
+ };
308
+ const DEFAULT_MIN_PRESS_DURATION = 130;
309
+
310
+ /**
311
+ * Pressability implements press handling capabilities.
312
+ *
313
+ * =========================== Pressability Tutorial ===========================
314
+ *
315
+ * The `Pressability` class helps you create press interactions by analyzing the
316
+ * geometry of elements and observing when another responder (e.g. ScrollView)
317
+ * has stolen the touch lock. It offers hooks for your component to provide
318
+ * interaction feedback to the user:
319
+ *
320
+ * - When a press has activated (e.g. highlight an element)
321
+ * - When a press has deactivated (e.g. un-highlight an element)
322
+ * - When a press sould trigger an action, meaning it activated and deactivated
323
+ * while within the geometry of the element without the lock being stolen.
324
+ *
325
+ * A high quality interaction isn't as simple as you might think. There should
326
+ * be a slight delay before activation. Moving your finger beyond an element's
327
+ * bounds should trigger deactivation, but moving the same finger back within an
328
+ * element's bounds should trigger reactivation.
329
+ *
330
+ * In order to use `Pressability`, do the following:
331
+ *
332
+ * 1. Instantiate `Pressability` and store it on your component's state.
333
+ *
334
+ * state = {
335
+ * pressability: new Pressability({
336
+ * // ...
337
+ * }),
338
+ * };
339
+ *
340
+ * 2. Choose the rendered component who should collect the press events. On that
341
+ * element, spread `pressability.getEventHandlers()` into its props.
342
+ *
343
+ * return (
344
+ * <View {...this.state.pressability.getEventHandlers()} />
345
+ * );
346
+ *
347
+ * 3. Reset `Pressability` when your component unmounts.
348
+ *
349
+ * componentWillUnmount() {
350
+ * this.state.pressability.reset();
351
+ * }
352
+ *
353
+ * ==================== Pressability Implementation Details ====================
354
+ *
355
+ * `Pressability` only assumes that there exists a `HitRect` node. The `PressRect`
356
+ * is an abstract box that is extended beyond the `HitRect`.
357
+ *
358
+ * # Geometry
359
+ *
360
+ * ┌────────────────────────┐
361
+ * │ ┌──────────────────┐ │ - Presses start anywhere within `HitRect`, which
362
+ * │ │ ┌────────────┐ │ │ is expanded via the prop `hitSlop`.
363
+ * │ │ │ VisualRect │ │ │
364
+ * │ │ └────────────┘ │ │ - When pressed down for sufficient amount of time
365
+ * │ │ HitRect │ │ before letting up, `VisualRect` activates for
366
+ * │ └──────────────────┘ │ as long as the press stays within `PressRect`.
367
+ * │ PressRect o │
368
+ * └────────────────────│───┘
369
+ * Out Region └────── `PressRect`, which is expanded via the prop
370
+ * `pressRectOffset`, allows presses to move
371
+ * beyond `HitRect` while maintaining activation
372
+ * and being eligible for a "press".
373
+ *
374
+ * # State Machine
375
+ *
376
+ * ┌───────────────┐ ◀──── RESPONDER_RELEASE
377
+ * │ NOT_RESPONDER │
378
+ * └───┬───────────┘ ◀──── RESPONDER_TERMINATED
379
+ * │
380
+ * │ RESPONDER_GRANT (HitRect)
381
+ * │
382
+ * ▼
383
+ * ┌─────────────────────┐ ┌───────────────────┐ ┌───────────────────┐
384
+ * │ RESPONDER_INACTIVE_ │ DELAY │ RESPONDER_ACTIVE_ │ T + DELAY │ RESPONDER_ACTIVE_ │
385
+ * │ PRESS_IN ├────────▶ │ PRESS_IN ├────────────▶ │ LONG_PRESS_IN │
386
+ * └─┬───────────────────┘ └─┬─────────────────┘ └─┬─────────────────┘
387
+ * │ ▲ │ ▲ │ ▲
388
+ * │LEAVE_ │ │LEAVE_ │ │LEAVE_ │
389
+ * │PRESS_RECT │ENTER_ │PRESS_RECT │ENTER_ │PRESS_RECT │ENTER_
390
+ * │ │PRESS_RECT │ │PRESS_RECT │ │PRESS_RECT
391
+ * ▼ │ ▼ │ ▼ │
392
+ * ┌─────────────┴───────┐ ┌─────────────┴─────┐ ┌─────────────┴─────┐
393
+ * │ RESPONDER_INACTIVE_ │ DELAY │ RESPONDER_ACTIVE_ │ │ RESPONDER_ACTIVE_ │
394
+ * │ PRESS_OUT ├────────▶ │ PRESS_OUT │ │ LONG_PRESS_OUT │
395
+ * └─────────────────────┘ └───────────────────┘ └───────────────────┘
396
+ *
397
+ * T + DELAY => LONG_PRESS_DELAY + DELAY
398
+ *
399
+ * Not drawn are the side effects of each transition. The most important side
400
+ * effect is the invocation of `onPress` and `onLongPress` that occur when a
401
+ * responder is release while in the "press in" states.
402
+ */
403
+ export default class Pressability {
404
+ _config: PressabilityConfig;
405
+ _eventHandlers: ?EventHandlers = null;
406
+ _hoverInDelayTimeout: ?TimeoutID = null;
407
+ _hoverOutDelayTimeout: ?TimeoutID = null;
408
+ _isHovered: boolean = false;
409
+ _longPressDelayTimeout: ?TimeoutID = null;
410
+ _pressDelayTimeout: ?TimeoutID = null;
411
+ _pressOutDelayTimeout: ?TimeoutID = null;
412
+ _responderID: ?number | React.ElementRef<HostComponent<mixed>> = null;
413
+ _responderRegion: ?$ReadOnly<{|
414
+ bottom: number,
415
+ left: number,
416
+ right: number,
417
+ top: number,
418
+ |}> = null;
419
+ _touchActivatePosition: ?$ReadOnly<{|
420
+ pageX: number,
421
+ pageY: number,
422
+ |}>;
423
+ _touchActivateTime: ?number;
424
+ _touchState: TouchState = 'NOT_RESPONDER';
425
+
426
+ constructor(config: PressabilityConfig) {
427
+ this.configure(config);
428
+ }
429
+
430
+ configure(config: PressabilityConfig): void {
431
+ this._config = config;
432
+ }
433
+
434
+ /**
435
+ * Resets any pending timers. This should be called on unmount.
436
+ */
437
+ reset(): void {
438
+ this._cancelHoverInDelayTimeout();
439
+ this._cancelHoverOutDelayTimeout();
440
+ this._cancelLongPressDelayTimeout();
441
+ this._cancelPressDelayTimeout();
442
+ this._cancelPressOutDelayTimeout();
443
+
444
+ // Ensure that, if any async event handlers are fired after unmount
445
+ // due to a race, we don't call any configured callbacks.
446
+ this._config = Object.freeze({});
447
+ }
448
+
449
+ /**
450
+ * Returns a set of props to spread into the interactive element.
451
+ */
452
+ getEventHandlers(): EventHandlers {
453
+ if (this._eventHandlers == null) {
454
+ this._eventHandlers = this._createEventHandlers();
455
+ }
456
+ return this._eventHandlers;
457
+ }
458
+
459
+ _createEventHandlers(): EventHandlers {
460
+ const focusEventHandlers = {
461
+ onBlur: (event: BlurEvent): void => {
462
+ const {onBlur} = this._config;
463
+ if (onBlur != null) {
464
+ onBlur(event);
465
+ }
466
+ },
467
+ onFocus: (event: FocusEvent): void => {
468
+ const {onFocus} = this._config;
469
+ if (onFocus != null) {
470
+ onFocus(event);
471
+ }
472
+ },
473
+ };
474
+
475
+ const responderEventHandlers = {
476
+ onStartShouldSetResponder: (): boolean => {
477
+ const {disabled} = this._config;
478
+ if (disabled == null) {
479
+ const {onStartShouldSetResponder_DEPRECATED} = this._config;
480
+ return onStartShouldSetResponder_DEPRECATED == null
481
+ ? true
482
+ : onStartShouldSetResponder_DEPRECATED();
483
+ }
484
+ return !disabled;
485
+ },
486
+
487
+ onResponderGrant: (event: PressEvent): void => {
488
+ event.persist();
489
+
490
+ this._cancelPressOutDelayTimeout();
491
+
492
+ this._responderID = event.currentTarget;
493
+ this._touchState = 'NOT_RESPONDER';
494
+ this._receiveSignal('RESPONDER_GRANT', event);
495
+
496
+ const delayPressIn = normalizeDelay(this._config.delayPressIn);
497
+ if (delayPressIn > 0) {
498
+ this._pressDelayTimeout = setTimeout(() => {
499
+ this._receiveSignal('DELAY', event);
500
+ }, delayPressIn);
501
+ } else {
502
+ this._receiveSignal('DELAY', event);
503
+ }
504
+
505
+ const delayLongPress = normalizeDelay(
506
+ this._config.delayLongPress,
507
+ 10,
508
+ DEFAULT_LONG_PRESS_DELAY_MS - delayPressIn,
509
+ );
510
+ this._longPressDelayTimeout = setTimeout(() => {
511
+ this._handleLongPress(event);
512
+ }, delayLongPress + delayPressIn);
513
+ },
514
+
515
+ onResponderMove: (event: PressEvent): void => {
516
+ const {onPressMove} = this._config;
517
+ if (onPressMove != null) {
518
+ onPressMove(event);
519
+ }
520
+
521
+ // Region may not have finished being measured, yet.
522
+ const responderRegion = this._responderRegion;
523
+ if (responderRegion == null) {
524
+ return;
525
+ }
526
+
527
+ const touch = getTouchFromPressEvent(event);
528
+ if (touch == null) {
529
+ this._cancelLongPressDelayTimeout();
530
+ this._receiveSignal('LEAVE_PRESS_RECT', event);
531
+ return;
532
+ }
533
+
534
+ if (this._touchActivatePosition != null) {
535
+ const deltaX = this._touchActivatePosition.pageX - touch.pageX;
536
+ const deltaY = this._touchActivatePosition.pageY - touch.pageY;
537
+ if (Math.hypot(deltaX, deltaY) > 10) {
538
+ this._cancelLongPressDelayTimeout();
539
+ }
540
+ }
541
+
542
+ if (this._isTouchWithinResponderRegion(touch, responderRegion)) {
543
+ this._receiveSignal('ENTER_PRESS_RECT', event);
544
+ } else {
545
+ this._cancelLongPressDelayTimeout();
546
+ this._receiveSignal('LEAVE_PRESS_RECT', event);
547
+ }
548
+ },
549
+
550
+ onResponderRelease: (event: PressEvent): void => {
551
+ this._receiveSignal('RESPONDER_RELEASE', event);
552
+ },
553
+
554
+ onResponderTerminate: (event: PressEvent): void => {
555
+ this._receiveSignal('RESPONDER_TERMINATED', event);
556
+ },
557
+
558
+ onResponderTerminationRequest: (): boolean => {
559
+ const {cancelable} = this._config;
560
+ if (cancelable == null) {
561
+ const {onResponderTerminationRequest_DEPRECATED} = this._config;
562
+ return onResponderTerminationRequest_DEPRECATED == null
563
+ ? true
564
+ : onResponderTerminationRequest_DEPRECATED();
565
+ }
566
+ return cancelable;
567
+ },
568
+
569
+ onClick: (event: PressEvent): void => {
570
+ const {onPress, disabled} = this._config;
571
+ if (onPress != null && disabled !== true) {
572
+ onPress(event);
573
+ }
574
+ },
575
+ };
576
+
577
+ if (process.env.NODE_ENV === 'test') {
578
+ // We are setting this in order to find this node in ReactNativeTestTools
579
+ responderEventHandlers.onStartShouldSetResponder.testOnly_pressabilityConfig =
580
+ () => this._config;
581
+ }
582
+
583
+ const mouseEventHandlers =
584
+ Platform.OS === 'ios' || Platform.OS === 'android'
585
+ ? null
586
+ : {
587
+ onMouseEnter: (event: MouseEvent): void => {
588
+ // [Windows Add attached raw mouse event handler for compat
589
+ if (this._config.onMouseEnter) {
590
+ this._config.onMouseEnter(event);
591
+ }
592
+ // Windows]
593
+
594
+ if (isHoverEnabled()) {
595
+ this._isHovered = true;
596
+ this._cancelHoverOutDelayTimeout();
597
+ const {onHoverIn} = this._config;
598
+ if (onHoverIn != null) {
599
+ const delayHoverIn = normalizeDelay(
600
+ this._config.delayHoverIn,
601
+ );
602
+ if (delayHoverIn > 0) {
603
+ event.persist();
604
+ this._hoverInDelayTimeout = setTimeout(() => {
605
+ onHoverIn(event);
606
+ }, delayHoverIn);
607
+ } else {
608
+ onHoverIn(event);
609
+ }
610
+ }
611
+ }
612
+ },
613
+
614
+ onMouseLeave: (event: MouseEvent): void => {
615
+ // [Windows Add attached raw mouse event handler for compat
616
+ if (this._config.onMouseLeave) {
617
+ this._config.onMouseLeave(event);
618
+ }
619
+ // Windows]
620
+
621
+ if (this._isHovered) {
622
+ this._isHovered = false;
623
+ this._cancelHoverInDelayTimeout();
624
+ const {onHoverOut} = this._config;
625
+ if (onHoverOut != null) {
626
+ const delayHoverOut = normalizeDelay(
627
+ this._config.delayHoverOut,
628
+ );
629
+ if (delayHoverOut > 0) {
630
+ event.persist();
631
+ this._hoverInDelayTimeout = setTimeout(() => {
632
+ onHoverOut(event);
633
+ }, delayHoverOut);
634
+ } else {
635
+ onHoverOut(event);
636
+ }
637
+ }
638
+ }
639
+ },
640
+ };
641
+
642
+ // [Windows
643
+ const keyboardEventHandlers = {
644
+ onKeyUp: (event: KeyEvent): void => {
645
+ const {onKeyUp} = this._config;
646
+ onKeyUp && onKeyUp(event);
647
+
648
+ if (
649
+ (event.nativeEvent.code === 'Space' ||
650
+ event.nativeEvent.code === 'Enter' ||
651
+ event.nativeEvent.code === 'GamepadA') &&
652
+ event.defaultPrevented != true
653
+ ) {
654
+ const {onPressOut, onPress} = this._config;
655
+ // $FlowFixMe: PressEvents don't mesh with keyboarding APIs. Keep legacy behavior of passing KeyEvents instead
656
+ onPressOut && onPressOut(event);
657
+ // $FlowFixMe: PressEvents don't mesh with keyboarding APIs. Keep legacy behavior of passing KeyEvents instead
658
+ onPress && onPress(event);
659
+ }
660
+ },
661
+ onKeyDown: (event: KeyEvent): void => {
662
+ const {onKeyDown} = this._config;
663
+ onKeyDown && onKeyDown(event);
664
+
665
+ if (
666
+ (event.nativeEvent.code === 'Space' ||
667
+ event.nativeEvent.code === 'Enter' ||
668
+ event.nativeEvent.code === 'GamepadA') &&
669
+ event.defaultPrevented != true
670
+ ) {
671
+ const {onPressIn} = this._config;
672
+ // $FlowFixMe: PressEvents don't mesh with keyboarding APIs. Keep legacy behavior of passing KeyEvents instead
673
+ onPressIn && onPressIn(event);
674
+ }
675
+ },
676
+ };
677
+ // Windows]
678
+
679
+ return {
680
+ ...focusEventHandlers,
681
+ ...responderEventHandlers,
682
+ ...mouseEventHandlers,
683
+ ...keyboardEventHandlers, // [Windows]
684
+ };
685
+ }
686
+
687
+ /**
688
+ * Receives a state machine signal, performs side effects of the transition
689
+ * and stores the new state. Validates the transition as well.
690
+ */
691
+ _receiveSignal(signal: TouchSignal, event: PressEvent): void {
692
+ // Especially on iOS, not all events have timestamps associated.
693
+ // For telemetry purposes, this doesn't matter too much, as long as *some* do.
694
+ // Since the native timestamp is integral for logging telemetry, just skip
695
+ // events if they don't have a timestamp attached.
696
+ if (event.nativeEvent.timestamp != null) {
697
+ PressabilityPerformanceEventEmitter.emitEvent(() => {
698
+ return {
699
+ signal,
700
+ nativeTimestamp: event.nativeEvent.timestamp,
701
+ };
702
+ });
703
+ }
704
+
705
+ const prevState = this._touchState;
706
+ const nextState = Transitions[prevState]?.[signal];
707
+ if (this._responderID == null && signal === 'RESPONDER_RELEASE') {
708
+ return;
709
+ }
710
+ invariant(
711
+ nextState != null && nextState !== 'ERROR',
712
+ 'Pressability: Invalid signal `%s` for state `%s` on responder: %s',
713
+ signal,
714
+ prevState,
715
+ typeof this._responderID === 'number'
716
+ ? this._responderID
717
+ : '<<host component>>',
718
+ );
719
+ if (prevState !== nextState) {
720
+ this._performTransitionSideEffects(prevState, nextState, signal, event);
721
+ this._touchState = nextState;
722
+ }
723
+ }
724
+
725
+ /**
726
+ * Performs a transition between touchable states and identify any activations
727
+ * or deactivations (and callback invocations).
728
+ */
729
+ _performTransitionSideEffects(
730
+ prevState: TouchState,
731
+ nextState: TouchState,
732
+ signal: TouchSignal,
733
+ event: PressEvent,
734
+ ): void {
735
+ if (isTerminalSignal(signal)) {
736
+ this._touchActivatePosition = null;
737
+ this._cancelLongPressDelayTimeout();
738
+ }
739
+
740
+ const isInitialTransition =
741
+ prevState === 'NOT_RESPONDER' &&
742
+ nextState === 'RESPONDER_INACTIVE_PRESS_IN';
743
+
744
+ const isActivationTransition =
745
+ !isActivationSignal(prevState) && isActivationSignal(nextState);
746
+
747
+ if (isInitialTransition || isActivationTransition) {
748
+ this._measureResponderRegion();
749
+ }
750
+
751
+ if (isPressInSignal(prevState) && signal === 'LONG_PRESS_DETECTED') {
752
+ const {onLongPress} = this._config;
753
+ if (onLongPress != null) {
754
+ onLongPress(event);
755
+ }
756
+ }
757
+
758
+ const isPrevActive = isActiveSignal(prevState);
759
+ const isNextActive = isActiveSignal(nextState);
760
+
761
+ if (!isPrevActive && isNextActive) {
762
+ this._activate(event);
763
+ } else if (isPrevActive && !isNextActive) {
764
+ this._deactivate(event);
765
+ }
766
+
767
+ if (isPressInSignal(prevState) && signal === 'RESPONDER_RELEASE') {
768
+ // If we never activated (due to delays), activate and deactivate now.
769
+ if (!isNextActive && !isPrevActive) {
770
+ this._activate(event);
771
+ this._deactivate(event);
772
+ }
773
+ const {onLongPress, onPress, android_disableSound} = this._config;
774
+ if (onPress != null) {
775
+ const isPressCanceledByLongPress =
776
+ onLongPress != null &&
777
+ prevState === 'RESPONDER_ACTIVE_LONG_PRESS_IN' &&
778
+ this._shouldLongPressCancelPress();
779
+ if (!isPressCanceledByLongPress) {
780
+ if (Platform.OS === 'android' && android_disableSound !== true) {
781
+ SoundManager.playTouchSound();
782
+ }
783
+ onPress(event);
784
+ }
785
+ }
786
+ }
787
+
788
+ this._cancelPressDelayTimeout();
789
+ }
790
+
791
+ _activate(event: PressEvent): void {
792
+ const {onPressIn} = this._config;
793
+ const {pageX, pageY} = getTouchFromPressEvent(event);
794
+ this._touchActivatePosition = {pageX, pageY};
795
+ this._touchActivateTime = Date.now();
796
+ if (onPressIn != null) {
797
+ onPressIn(event);
798
+ }
799
+ }
800
+
801
+ _deactivate(event: PressEvent): void {
802
+ const {onPressOut} = this._config;
803
+ if (onPressOut != null) {
804
+ const minPressDuration = normalizeDelay(
805
+ this._config.minPressDuration,
806
+ 0,
807
+ DEFAULT_MIN_PRESS_DURATION,
808
+ );
809
+ const pressDuration = Date.now() - (this._touchActivateTime ?? 0);
810
+ const delayPressOut = Math.max(
811
+ minPressDuration - pressDuration,
812
+ normalizeDelay(this._config.delayPressOut),
813
+ );
814
+ if (delayPressOut > 0) {
815
+ event.persist();
816
+ this._pressOutDelayTimeout = setTimeout(() => {
817
+ onPressOut(event);
818
+ }, delayPressOut);
819
+ } else {
820
+ onPressOut(event);
821
+ }
822
+ }
823
+ this._touchActivateTime = null;
824
+ }
825
+
826
+ _measureResponderRegion(): void {
827
+ if (this._responderID == null) {
828
+ return;
829
+ }
830
+
831
+ if (typeof this._responderID === 'number') {
832
+ UIManager.measure(this._responderID, this._measureCallback);
833
+ } else {
834
+ this._responderID.measure(this._measureCallback);
835
+ }
836
+ }
837
+
838
+ _measureCallback = (left, top, width, height, pageX, pageY) => {
839
+ if (!left && !top && !width && !height && !pageX && !pageY) {
840
+ return;
841
+ }
842
+ this._responderRegion = {
843
+ bottom: pageY + height,
844
+ left: pageX,
845
+ right: pageX + width,
846
+ top: pageY,
847
+ };
848
+ };
849
+
850
+ _isTouchWithinResponderRegion(
851
+ touch: $PropertyType<PressEvent, 'nativeEvent'>,
852
+ responderRegion: $ReadOnly<{|
853
+ bottom: number,
854
+ left: number,
855
+ right: number,
856
+ top: number,
857
+ |}>,
858
+ ): boolean {
859
+ const hitSlop = normalizeRect(this._config.hitSlop);
860
+ const pressRectOffset = normalizeRect(this._config.pressRectOffset);
861
+
862
+ let regionBottom = responderRegion.bottom;
863
+ let regionLeft = responderRegion.left;
864
+ let regionRight = responderRegion.right;
865
+ let regionTop = responderRegion.top;
866
+
867
+ if (hitSlop != null) {
868
+ if (hitSlop.bottom != null) {
869
+ regionBottom += hitSlop.bottom;
870
+ }
871
+ if (hitSlop.left != null) {
872
+ regionLeft -= hitSlop.left;
873
+ }
874
+ if (hitSlop.right != null) {
875
+ regionRight += hitSlop.right;
876
+ }
877
+ if (hitSlop.top != null) {
878
+ regionTop -= hitSlop.top;
879
+ }
880
+ }
881
+
882
+ regionBottom +=
883
+ pressRectOffset?.bottom ?? DEFAULT_PRESS_RECT_OFFSETS.bottom;
884
+ regionLeft -= pressRectOffset?.left ?? DEFAULT_PRESS_RECT_OFFSETS.left;
885
+ regionRight += pressRectOffset?.right ?? DEFAULT_PRESS_RECT_OFFSETS.right;
886
+ regionTop -= pressRectOffset?.top ?? DEFAULT_PRESS_RECT_OFFSETS.top;
887
+
888
+ return (
889
+ touch.pageX > regionLeft &&
890
+ touch.pageX < regionRight &&
891
+ touch.pageY > regionTop &&
892
+ touch.pageY < regionBottom
893
+ );
894
+ }
895
+
896
+ _handleLongPress(event: PressEvent): void {
897
+ if (
898
+ this._touchState === 'RESPONDER_ACTIVE_PRESS_IN' ||
899
+ this._touchState === 'RESPONDER_ACTIVE_LONG_PRESS_IN'
900
+ ) {
901
+ this._receiveSignal('LONG_PRESS_DETECTED', event);
902
+ }
903
+ }
904
+
905
+ _shouldLongPressCancelPress(): boolean {
906
+ return (
907
+ this._config.onLongPressShouldCancelPress_DEPRECATED == null ||
908
+ this._config.onLongPressShouldCancelPress_DEPRECATED()
909
+ );
910
+ }
911
+
912
+ _cancelHoverInDelayTimeout(): void {
913
+ if (this._hoverInDelayTimeout != null) {
914
+ clearTimeout(this._hoverInDelayTimeout);
915
+ this._hoverInDelayTimeout = null;
916
+ }
917
+ }
918
+
919
+ _cancelHoverOutDelayTimeout(): void {
920
+ if (this._hoverOutDelayTimeout != null) {
921
+ clearTimeout(this._hoverOutDelayTimeout);
922
+ this._hoverOutDelayTimeout = null;
923
+ }
924
+ }
925
+
926
+ _cancelLongPressDelayTimeout(): void {
927
+ if (this._longPressDelayTimeout != null) {
928
+ clearTimeout(this._longPressDelayTimeout);
929
+ this._longPressDelayTimeout = null;
930
+ }
931
+ }
932
+
933
+ _cancelPressDelayTimeout(): void {
934
+ if (this._pressDelayTimeout != null) {
935
+ clearTimeout(this._pressDelayTimeout);
936
+ this._pressDelayTimeout = null;
937
+ }
938
+ }
939
+
940
+ _cancelPressOutDelayTimeout(): void {
941
+ if (this._pressOutDelayTimeout != null) {
942
+ clearTimeout(this._pressOutDelayTimeout);
943
+ this._pressOutDelayTimeout = null;
944
+ }
945
+ }
946
+ }
947
+
948
+ function normalizeDelay(delay: ?number, min = 0, fallback = 0): number {
949
+ return Math.max(min, delay ?? fallback);
950
+ }
951
+
952
+ const getTouchFromPressEvent = (event: PressEvent) => {
953
+ const {changedTouches, touches} = event.nativeEvent;
954
+
955
+ if (touches != null && touches.length > 0) {
956
+ return touches[0];
957
+ }
958
+ if (changedTouches != null && changedTouches.length > 0) {
959
+ return changedTouches[0];
960
+ }
961
+ return event.nativeEvent;
962
+ };