react-native-gesture-handler 2.26.0 → 2.27.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 (415) hide show
  1. package/README.md +69 -0
  2. package/android/src/main/jni/CMakeLists.txt +7 -26
  3. package/lib/commonjs/components/Pressable/Pressable.js +139 -188
  4. package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
  5. package/lib/commonjs/components/Pressable/StateMachine.js +38 -0
  6. package/lib/commonjs/components/Pressable/StateMachine.js.map +1 -0
  7. package/lib/commonjs/components/Pressable/stateDefinitions.js +88 -0
  8. package/lib/commonjs/components/Pressable/stateDefinitions.js.map +1 -0
  9. package/lib/commonjs/components/Pressable/utils.js +1 -1
  10. package/lib/commonjs/components/Pressable/utils.js.map +1 -1
  11. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +12 -0
  12. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -1
  13. package/lib/commonjs/handlers/gestures/gestureObjects.js +3 -1
  14. package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -1
  15. package/lib/commonjs/web/detectors/RotationGestureDetector.js +3 -0
  16. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
  17. package/lib/commonjs/web/handlers/FlingGestureHandler.js +3 -0
  18. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  19. package/lib/commonjs/web/handlers/GestureHandler.js +6 -6
  20. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  21. package/lib/commonjs/web/handlers/PanGestureHandler.js +24 -33
  22. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  23. package/lib/commonjs/web/handlers/TapGestureHandler.js +15 -17
  24. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
  25. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +1 -1
  26. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  27. package/lib/commonjs/web/tools/PointerEventManager.js +1 -1
  28. package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
  29. package/lib/commonjs/web/tools/PointerTracker.js +12 -11
  30. package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
  31. package/lib/commonjs/web/tools/Vector.js +1 -1
  32. package/lib/commonjs/web/tools/Vector.js.map +1 -1
  33. package/lib/module/components/Pressable/Pressable.js +141 -190
  34. package/lib/module/components/Pressable/Pressable.js.map +1 -1
  35. package/lib/module/components/Pressable/StateMachine.js +34 -0
  36. package/lib/module/components/Pressable/StateMachine.js.map +1 -0
  37. package/lib/module/components/Pressable/stateDefinitions.js +83 -0
  38. package/lib/module/components/Pressable/stateDefinitions.js.map +1 -0
  39. package/lib/module/components/Pressable/utils.js +1 -1
  40. package/lib/module/components/Pressable/utils.js.map +1 -1
  41. package/lib/module/handlers/gestures/forceTouchGesture.js +13 -0
  42. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -1
  43. package/lib/module/handlers/gestures/gestureObjects.js +3 -1
  44. package/lib/module/handlers/gestures/gestureObjects.js.map +1 -1
  45. package/lib/module/web/detectors/RotationGestureDetector.js +3 -0
  46. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
  47. package/lib/module/web/handlers/FlingGestureHandler.js +3 -0
  48. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  49. package/lib/module/web/handlers/GestureHandler.js +6 -6
  50. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  51. package/lib/module/web/handlers/PanGestureHandler.js +24 -33
  52. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  53. package/lib/module/web/handlers/TapGestureHandler.js +15 -17
  54. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
  55. package/lib/module/web/tools/GestureHandlerOrchestrator.js +1 -1
  56. package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  57. package/lib/module/web/tools/PointerEventManager.js +1 -1
  58. package/lib/module/web/tools/PointerEventManager.js.map +1 -1
  59. package/lib/module/web/tools/PointerTracker.js +12 -11
  60. package/lib/module/web/tools/PointerTracker.js.map +1 -1
  61. package/lib/module/web/tools/Vector.js +1 -1
  62. package/lib/module/web/tools/Vector.js.map +1 -1
  63. package/lib/typescript/ActionType.d.ts +0 -1
  64. package/lib/typescript/ActionType.js +6 -0
  65. package/lib/typescript/Directions.d.ts +0 -1
  66. package/lib/typescript/Directions.js +18 -0
  67. package/lib/typescript/EnableNewWebImplementation.d.ts +0 -1
  68. package/lib/typescript/EnableNewWebImplementation.js +30 -0
  69. package/lib/typescript/GestureHandlerRootViewContext.d.ts +0 -1
  70. package/lib/typescript/GestureHandlerRootViewContext.js +2 -0
  71. package/lib/typescript/PlatformConstants.d.ts +0 -1
  72. package/lib/typescript/PlatformConstants.js +3 -0
  73. package/lib/typescript/PlatformConstants.web.d.ts +0 -1
  74. package/lib/typescript/PlatformConstants.web.js +5 -0
  75. package/lib/typescript/PointerType.d.ts +0 -1
  76. package/lib/typescript/PointerType.js +8 -0
  77. package/lib/typescript/RNGestureHandlerModule.d.ts +0 -1
  78. package/lib/typescript/RNGestureHandlerModule.js +4 -0
  79. package/lib/typescript/RNGestureHandlerModule.web.d.ts +0 -1
  80. package/lib/typescript/RNGestureHandlerModule.web.js +92 -0
  81. package/lib/typescript/RNGestureHandlerModule.windows.d.ts +0 -1
  82. package/lib/typescript/RNGestureHandlerModule.windows.js +47 -0
  83. package/lib/typescript/RNRenderer.d.ts +0 -1
  84. package/lib/typescript/RNRenderer.js +3 -0
  85. package/lib/typescript/RNRenderer.web.d.ts +0 -1
  86. package/lib/typescript/RNRenderer.web.js +3 -0
  87. package/lib/typescript/State.d.ts +0 -1
  88. package/lib/typescript/State.js +9 -0
  89. package/lib/typescript/TouchEventType.d.ts +0 -1
  90. package/lib/typescript/TouchEventType.js +7 -0
  91. package/lib/typescript/components/DrawerLayout.d.ts +0 -1
  92. package/lib/typescript/components/DrawerLayout.js +417 -0
  93. package/lib/typescript/components/GestureButtons.d.ts +0 -1
  94. package/lib/typescript/components/GestureButtons.js +165 -0
  95. package/lib/typescript/components/GestureButtonsProps.d.ts +0 -1
  96. package/lib/typescript/components/GestureButtonsProps.js +1 -0
  97. package/lib/typescript/components/GestureComponents.d.ts +0 -1
  98. package/lib/typescript/components/GestureComponents.js +67 -0
  99. package/lib/typescript/components/GestureComponents.web.d.ts +0 -1
  100. package/lib/typescript/components/GestureComponents.web.js +21 -0
  101. package/lib/typescript/components/GestureHandlerButton.d.ts +0 -1
  102. package/lib/typescript/components/GestureHandlerButton.js +2 -0
  103. package/lib/typescript/components/GestureHandlerButton.web.d.ts +0 -1
  104. package/lib/typescript/components/GestureHandlerButton.web.js +3 -0
  105. package/lib/typescript/components/GestureHandlerRootView.android.d.ts +0 -1
  106. package/lib/typescript/components/GestureHandlerRootView.android.js +17 -0
  107. package/lib/typescript/components/GestureHandlerRootView.d.ts +0 -1
  108. package/lib/typescript/components/GestureHandlerRootView.js +16 -0
  109. package/lib/typescript/components/GestureHandlerRootView.web.d.ts +0 -1
  110. package/lib/typescript/components/GestureHandlerRootView.web.js +11 -0
  111. package/lib/typescript/components/Pressable/Pressable.d.ts +1 -3
  112. package/lib/typescript/components/Pressable/Pressable.d.ts.map +1 -1
  113. package/lib/typescript/components/Pressable/Pressable.js +231 -0
  114. package/lib/typescript/components/Pressable/PressableProps.d.ts +15 -2
  115. package/lib/typescript/components/Pressable/PressableProps.d.ts.map +1 -1
  116. package/lib/typescript/components/Pressable/PressableProps.js +1 -0
  117. package/lib/typescript/components/Pressable/StateMachine.d.ts +14 -0
  118. package/lib/typescript/components/Pressable/StateMachine.d.ts.map +1 -0
  119. package/lib/typescript/components/Pressable/StateMachine.js +34 -0
  120. package/lib/typescript/components/Pressable/index.d.ts +0 -1
  121. package/lib/typescript/components/Pressable/index.js +1 -0
  122. package/lib/typescript/components/Pressable/stateDefinitions.d.ts +9 -0
  123. package/lib/typescript/components/Pressable/stateDefinitions.d.ts.map +1 -0
  124. package/lib/typescript/components/Pressable/stateDefinitions.js +104 -0
  125. package/lib/typescript/components/Pressable/utils.d.ts +3 -7
  126. package/lib/typescript/components/Pressable/utils.d.ts.map +1 -1
  127. package/lib/typescript/components/Pressable/utils.js +80 -0
  128. package/lib/typescript/components/ReanimatedDrawerLayout.d.ts +0 -1
  129. package/lib/typescript/components/ReanimatedDrawerLayout.js +364 -0
  130. package/lib/typescript/components/ReanimatedSwipeable.d.ts +0 -1
  131. package/lib/typescript/components/ReanimatedSwipeable.js +400 -0
  132. package/lib/typescript/components/Swipeable.d.ts +0 -1
  133. package/lib/typescript/components/Swipeable.js +287 -0
  134. package/lib/typescript/components/Text.d.ts +0 -1
  135. package/lib/typescript/components/Text.js +38 -0
  136. package/lib/typescript/components/gestureHandlerRootHOC.d.ts +0 -1
  137. package/lib/typescript/components/gestureHandlerRootHOC.js +18 -0
  138. package/lib/typescript/components/touchables/ExtraButtonProps.d.ts +0 -1
  139. package/lib/typescript/components/touchables/ExtraButtonProps.js +1 -0
  140. package/lib/typescript/components/touchables/GenericTouchable.d.ts +0 -1
  141. package/lib/typescript/components/touchables/GenericTouchable.js +221 -0
  142. package/lib/typescript/components/touchables/GenericTouchableProps.d.ts +0 -1
  143. package/lib/typescript/components/touchables/GenericTouchableProps.js +1 -0
  144. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +0 -1
  145. package/lib/typescript/components/touchables/TouchableHighlight.js +75 -0
  146. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +0 -1
  147. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.js +65 -0
  148. package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +0 -1
  149. package/lib/typescript/components/touchables/TouchableNativeFeedback.js +6 -0
  150. package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +0 -1
  151. package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.js +1 -0
  152. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +0 -1
  153. package/lib/typescript/components/touchables/TouchableOpacity.js +51 -0
  154. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +0 -1
  155. package/lib/typescript/components/touchables/TouchableWithoutFeedback.js +10 -0
  156. package/lib/typescript/components/touchables/index.d.ts +0 -1
  157. package/lib/typescript/components/touchables/index.js +4 -0
  158. package/lib/typescript/components/utils.d.ts +0 -1
  159. package/lib/typescript/components/utils.js +11 -0
  160. package/lib/typescript/findNodeHandle.d.ts +0 -1
  161. package/lib/typescript/findNodeHandle.js +2 -0
  162. package/lib/typescript/findNodeHandle.web.d.ts +0 -1
  163. package/lib/typescript/findNodeHandle.web.js +31 -0
  164. package/lib/typescript/getShadowNodeFromRef.d.ts +0 -1
  165. package/lib/typescript/getShadowNodeFromRef.js +45 -0
  166. package/lib/typescript/getShadowNodeFromRef.web.d.ts +0 -1
  167. package/lib/typescript/getShadowNodeFromRef.web.js +7 -0
  168. package/lib/typescript/ghQueueMicrotask.d.ts +0 -1
  169. package/lib/typescript/ghQueueMicrotask.js +7 -0
  170. package/lib/typescript/handlers/FlingGestureHandler.d.ts +0 -1
  171. package/lib/typescript/handlers/FlingGestureHandler.js +19 -0
  172. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +0 -1
  173. package/lib/typescript/handlers/ForceTouchGestureHandler.js +37 -0
  174. package/lib/typescript/handlers/GestureHandlerEventPayload.d.ts +3 -1
  175. package/lib/typescript/handlers/GestureHandlerEventPayload.d.ts.map +1 -1
  176. package/lib/typescript/handlers/GestureHandlerEventPayload.js +1 -0
  177. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +0 -1
  178. package/lib/typescript/handlers/LongPressGestureHandler.js +22 -0
  179. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +0 -1
  180. package/lib/typescript/handlers/NativeViewGestureHandler.js +20 -0
  181. package/lib/typescript/handlers/PanGestureHandler.d.ts +0 -1
  182. package/lib/typescript/handlers/PanGestureHandler.js +128 -0
  183. package/lib/typescript/handlers/PinchGestureHandler.d.ts +0 -1
  184. package/lib/typescript/handlers/PinchGestureHandler.js +12 -0
  185. package/lib/typescript/handlers/PressabilityDebugView.d.ts +0 -1
  186. package/lib/typescript/handlers/PressabilityDebugView.js +2 -0
  187. package/lib/typescript/handlers/PressabilityDebugView.web.d.ts +0 -1
  188. package/lib/typescript/handlers/PressabilityDebugView.web.js +4 -0
  189. package/lib/typescript/handlers/RotationGestureHandler.d.ts +0 -1
  190. package/lib/typescript/handlers/RotationGestureHandler.js +12 -0
  191. package/lib/typescript/handlers/TapGestureHandler.d.ts +0 -1
  192. package/lib/typescript/handlers/TapGestureHandler.js +26 -0
  193. package/lib/typescript/handlers/createHandler.d.ts +0 -1
  194. package/lib/typescript/handlers/createHandler.js +375 -0
  195. package/lib/typescript/handlers/createNativeWrapper.d.ts +0 -1
  196. package/lib/typescript/handlers/createNativeWrapper.js +67 -0
  197. package/lib/typescript/handlers/customDirectEventTypes.d.ts +0 -1
  198. package/lib/typescript/handlers/customDirectEventTypes.js +2 -0
  199. package/lib/typescript/handlers/customDirectEventTypes.web.d.ts +0 -1
  200. package/lib/typescript/handlers/customDirectEventTypes.web.js +4 -0
  201. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +0 -1
  202. package/lib/typescript/handlers/gestureHandlerCommon.js +42 -0
  203. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +9 -1
  204. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts.map +1 -1
  205. package/lib/typescript/handlers/gestureHandlerTypesCompat.js +1 -0
  206. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.d.ts +0 -1
  207. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.js +22 -0
  208. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.web.d.ts +0 -1
  209. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.web.js +24 -0
  210. package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.d.ts +0 -1
  211. package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.js +55 -0
  212. package/lib/typescript/handlers/gestures/GestureDetector/dropHandlers.d.ts +0 -1
  213. package/lib/typescript/handlers/gestures/GestureDetector/dropHandlers.js +12 -0
  214. package/lib/typescript/handlers/gestures/GestureDetector/index.d.ts +0 -1
  215. package/lib/typescript/handlers/gestures/GestureDetector/index.js +114 -0
  216. package/lib/typescript/handlers/gestures/GestureDetector/needsToReattach.d.ts +0 -1
  217. package/lib/typescript/handlers/gestures/GestureDetector/needsToReattach.js +18 -0
  218. package/lib/typescript/handlers/gestures/GestureDetector/types.d.ts +0 -1
  219. package/lib/typescript/handlers/gestures/GestureDetector/types.js +1 -0
  220. package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.d.ts +0 -1
  221. package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.js +54 -0
  222. package/lib/typescript/handlers/gestures/GestureDetector/useAnimatedGesture.d.ts +0 -1
  223. package/lib/typescript/handlers/gestures/GestureDetector/useAnimatedGesture.js +137 -0
  224. package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.d.ts +0 -1
  225. package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.js +48 -0
  226. package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.d.ts +0 -1
  227. package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.js +35 -0
  228. package/lib/typescript/handlers/gestures/GestureDetector/useViewRefHandler.d.ts +0 -1
  229. package/lib/typescript/handlers/gestures/GestureDetector/useViewRefHandler.js +32 -0
  230. package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +0 -1
  231. package/lib/typescript/handlers/gestures/GestureDetector/utils.js +140 -0
  232. package/lib/typescript/handlers/gestures/eventReceiver.d.ts +0 -1
  233. package/lib/typescript/handlers/gestures/eventReceiver.js +105 -0
  234. package/lib/typescript/handlers/gestures/flingGesture.d.ts +0 -1
  235. package/lib/typescript/handlers/gestures/flingGesture.js +27 -0
  236. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +9 -1
  237. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts.map +1 -1
  238. package/lib/typescript/handlers/gestures/forceTouchGesture.js +57 -0
  239. package/lib/typescript/handlers/gestures/gesture.d.ts +0 -1
  240. package/lib/typescript/handlers/gestures/gesture.js +303 -0
  241. package/lib/typescript/handlers/gestures/gestureComposition.d.ts +0 -1
  242. package/lib/typescript/handlers/gestures/gestureComposition.js +78 -0
  243. package/lib/typescript/handlers/gestures/gestureObjects.d.ts +3 -2
  244. package/lib/typescript/handlers/gestures/gestureObjects.d.ts.map +1 -1
  245. package/lib/typescript/handlers/gestures/gestureObjects.js +125 -0
  246. package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +0 -1
  247. package/lib/typescript/handlers/gestures/gestureStateManager.js +60 -0
  248. package/lib/typescript/handlers/gestures/gestureStateManager.web.d.ts +0 -1
  249. package/lib/typescript/handlers/gestures/gestureStateManager.web.js +19 -0
  250. package/lib/typescript/handlers/gestures/hoverGesture.d.ts +0 -1
  251. package/lib/typescript/handlers/gestures/hoverGesture.js +45 -0
  252. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +0 -1
  253. package/lib/typescript/handlers/gestures/longPressGesture.js +35 -0
  254. package/lib/typescript/handlers/gestures/manualGesture.d.ts +0 -1
  255. package/lib/typescript/handlers/gestures/manualGesture.js +16 -0
  256. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +0 -1
  257. package/lib/typescript/handlers/gestures/nativeGesture.js +24 -0
  258. package/lib/typescript/handlers/gestures/panGesture.d.ts +0 -1
  259. package/lib/typescript/handlers/gestures/panGesture.js +181 -0
  260. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +0 -1
  261. package/lib/typescript/handlers/gestures/pinchGesture.js +27 -0
  262. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +0 -1
  263. package/lib/typescript/handlers/gestures/reanimatedWrapper.js +23 -0
  264. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +0 -1
  265. package/lib/typescript/handlers/gestures/rotationGesture.js +27 -0
  266. package/lib/typescript/handlers/gestures/tapGesture.d.ts +0 -1
  267. package/lib/typescript/handlers/gestures/tapGesture.js +72 -0
  268. package/lib/typescript/handlers/getNextHandlerTag.d.ts +0 -1
  269. package/lib/typescript/handlers/getNextHandlerTag.js +4 -0
  270. package/lib/typescript/handlers/handlersRegistry.d.ts +0 -1
  271. package/lib/typescript/handlers/handlersRegistry.js +36 -0
  272. package/lib/typescript/handlers/utils.d.ts +0 -1
  273. package/lib/typescript/handlers/utils.js +58 -0
  274. package/lib/typescript/index.d.ts +0 -1
  275. package/lib/typescript/index.js +28 -0
  276. package/lib/typescript/init.d.ts +0 -1
  277. package/lib/typescript/init.js +15 -0
  278. package/lib/typescript/jestUtils/index.d.ts +0 -1
  279. package/lib/typescript/jestUtils/index.js +1 -0
  280. package/lib/typescript/jestUtils/jestUtils.d.ts +0 -1
  281. package/lib/typescript/jestUtils/jestUtils.js +290 -0
  282. package/lib/typescript/mocks.d.ts +0 -1
  283. package/lib/typescript/mocks.js +59 -0
  284. package/lib/typescript/mountRegistry.d.ts +0 -1
  285. package/lib/typescript/mountRegistry.js +29 -0
  286. package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts +0 -1
  287. package/lib/typescript/specs/NativeRNGestureHandlerModule.js +2 -0
  288. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +0 -1
  289. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.js +2 -0
  290. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts +0 -1
  291. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.js +2 -0
  292. package/lib/typescript/typeUtils.d.ts +0 -1
  293. package/lib/typescript/typeUtils.js +1 -0
  294. package/lib/typescript/utils.d.ts +0 -1
  295. package/lib/typescript/utils.js +80 -0
  296. package/lib/typescript/web/Gestures.d.ts +0 -1
  297. package/lib/typescript/web/Gestures.js +38 -0
  298. package/lib/typescript/web/constants.d.ts +0 -1
  299. package/lib/typescript/web/constants.js +2 -0
  300. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +0 -1
  301. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts.map +1 -1
  302. package/lib/typescript/web/detectors/RotationGestureDetector.js +122 -0
  303. package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +0 -1
  304. package/lib/typescript/web/detectors/ScaleGestureDetector.js +117 -0
  305. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +0 -1
  306. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts.map +1 -1
  307. package/lib/typescript/web/handlers/FlingGestureHandler.js +133 -0
  308. package/lib/typescript/web/handlers/GestureHandler.d.ts +0 -1
  309. package/lib/typescript/web/handlers/GestureHandler.d.ts.map +1 -1
  310. package/lib/typescript/web/handlers/GestureHandler.js +656 -0
  311. package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +0 -1
  312. package/lib/typescript/web/handlers/HoverGestureHandler.js +37 -0
  313. package/lib/typescript/web/handlers/IGestureHandler.d.ts +0 -1
  314. package/lib/typescript/web/handlers/IGestureHandler.js +1 -0
  315. package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +0 -1
  316. package/lib/typescript/web/handlers/LongPressGestureHandler.js +136 -0
  317. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +0 -1
  318. package/lib/typescript/web/handlers/ManualGestureHandler.js +29 -0
  319. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +0 -1
  320. package/lib/typescript/web/handlers/NativeViewGestureHandler.js +133 -0
  321. package/lib/typescript/web/handlers/PanGestureHandler.d.ts +2 -1
  322. package/lib/typescript/web/handlers/PanGestureHandler.d.ts.map +1 -1
  323. package/lib/typescript/web/handlers/PanGestureHandler.js +420 -0
  324. package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +0 -1
  325. package/lib/typescript/web/handlers/PinchGestureHandler.js +117 -0
  326. package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +0 -1
  327. package/lib/typescript/web/handlers/RotationGestureHandler.js +122 -0
  328. package/lib/typescript/web/handlers/TapGestureHandler.d.ts +1 -1
  329. package/lib/typescript/web/handlers/TapGestureHandler.d.ts.map +1 -1
  330. package/lib/typescript/web/handlers/TapGestureHandler.js +202 -0
  331. package/lib/typescript/web/interfaces.d.ts +0 -1
  332. package/lib/typescript/web/interfaces.js +25 -0
  333. package/lib/typescript/web/tools/CircularBuffer.d.ts +0 -1
  334. package/lib/typescript/web/tools/CircularBuffer.js +37 -0
  335. package/lib/typescript/web/tools/EventManager.d.ts +0 -1
  336. package/lib/typescript/web/tools/EventManager.js +85 -0
  337. package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +0 -1
  338. package/lib/typescript/web/tools/GestureHandlerDelegate.js +1 -0
  339. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +0 -1
  340. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts.map +1 -1
  341. package/lib/typescript/web/tools/GestureHandlerOrchestrator.js +273 -0
  342. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +0 -1
  343. package/lib/typescript/web/tools/GestureHandlerWebDelegate.js +169 -0
  344. package/lib/typescript/web/tools/InteractionManager.d.ts +0 -1
  345. package/lib/typescript/web/tools/InteractionManager.js +91 -0
  346. package/lib/typescript/web/tools/KeyboardEventManager.d.ts +0 -1
  347. package/lib/typescript/web/tools/KeyboardEventManager.js +73 -0
  348. package/lib/typescript/web/tools/LeastSquareSolver.d.ts +0 -1
  349. package/lib/typescript/web/tools/LeastSquareSolver.js +147 -0
  350. package/lib/typescript/web/tools/NodeManager.d.ts +0 -1
  351. package/lib/typescript/web/tools/NodeManager.js +28 -0
  352. package/lib/typescript/web/tools/PointerEventManager.d.ts +0 -1
  353. package/lib/typescript/web/tools/PointerEventManager.js +179 -0
  354. package/lib/typescript/web/tools/PointerTracker.d.ts +3 -4
  355. package/lib/typescript/web/tools/PointerTracker.d.ts.map +1 -1
  356. package/lib/typescript/web/tools/PointerTracker.js +161 -0
  357. package/lib/typescript/web/tools/Vector.d.ts +1 -2
  358. package/lib/typescript/web/tools/Vector.js +43 -0
  359. package/lib/typescript/web/tools/VelocityTracker.d.ts +0 -1
  360. package/lib/typescript/web/tools/VelocityTracker.js +76 -0
  361. package/lib/typescript/web/tools/WheelEventManager.d.ts +0 -1
  362. package/lib/typescript/web/tools/WheelEventManager.js +40 -0
  363. package/lib/typescript/web/utils.d.ts +0 -1
  364. package/lib/typescript/web/utils.js +233 -0
  365. package/lib/typescript/web_hammer/DiscreteGestureHandler.d.ts +0 -1
  366. package/lib/typescript/web_hammer/DiscreteGestureHandler.js +48 -0
  367. package/lib/typescript/web_hammer/DraggingGestureHandler.d.ts +0 -1
  368. package/lib/typescript/web_hammer/DraggingGestureHandler.js +25 -0
  369. package/lib/typescript/web_hammer/Errors.d.ts +0 -1
  370. package/lib/typescript/web_hammer/Errors.js +5 -0
  371. package/lib/typescript/web_hammer/FlingGestureHandler.d.ts +0 -1
  372. package/lib/typescript/web_hammer/FlingGestureHandler.js +119 -0
  373. package/lib/typescript/web_hammer/GestureHandler.d.ts +0 -1
  374. package/lib/typescript/web_hammer/GestureHandler.js +469 -0
  375. package/lib/typescript/web_hammer/IndiscreteGestureHandler.d.ts +0 -1
  376. package/lib/typescript/web_hammer/IndiscreteGestureHandler.js +26 -0
  377. package/lib/typescript/web_hammer/LongPressGestureHandler.d.ts +0 -1
  378. package/lib/typescript/web_hammer/LongPressGestureHandler.js +46 -0
  379. package/lib/typescript/web_hammer/NativeViewGestureHandler.d.ts +0 -1
  380. package/lib/typescript/web_hammer/NativeViewGestureHandler.js +40 -0
  381. package/lib/typescript/web_hammer/NodeManager.d.ts +0 -1
  382. package/lib/typescript/web_hammer/NodeManager.js +28 -0
  383. package/lib/typescript/web_hammer/PanGestureHandler.d.ts +0 -1
  384. package/lib/typescript/web_hammer/PanGestureHandler.js +151 -0
  385. package/lib/typescript/web_hammer/PinchGestureHandler.d.ts +0 -1
  386. package/lib/typescript/web_hammer/PinchGestureHandler.js +19 -0
  387. package/lib/typescript/web_hammer/PressGestureHandler.d.ts +0 -1
  388. package/lib/typescript/web_hammer/PressGestureHandler.js +133 -0
  389. package/lib/typescript/web_hammer/RotationGestureHandler.d.ts +0 -1
  390. package/lib/typescript/web_hammer/RotationGestureHandler.js +20 -0
  391. package/lib/typescript/web_hammer/TapGestureHandler.d.ts +0 -1
  392. package/lib/typescript/web_hammer/TapGestureHandler.js +142 -0
  393. package/lib/typescript/web_hammer/constants.d.ts +0 -1
  394. package/lib/typescript/web_hammer/constants.js +42 -0
  395. package/lib/typescript/web_hammer/utils.d.ts +0 -1
  396. package/lib/typescript/web_hammer/utils.js +15 -0
  397. package/package.json +4 -2
  398. package/src/components/Pressable/Pressable.tsx +357 -445
  399. package/src/components/Pressable/PressableProps.tsx +15 -0
  400. package/src/components/Pressable/StateMachine.tsx +49 -0
  401. package/src/components/Pressable/stateDefinitions.ts +125 -0
  402. package/src/components/Pressable/utils.ts +11 -7
  403. package/src/handlers/GestureHandlerEventPayload.ts +3 -0
  404. package/src/handlers/gestureHandlerTypesCompat.ts +9 -0
  405. package/src/handlers/gestures/forceTouchGesture.ts +9 -0
  406. package/src/handlers/gestures/gestureObjects.ts +3 -1
  407. package/src/web/detectors/RotationGestureDetector.ts +4 -0
  408. package/src/web/handlers/FlingGestureHandler.ts +4 -0
  409. package/src/web/handlers/GestureHandler.ts +9 -3
  410. package/src/web/handlers/PanGestureHandler.ts +25 -36
  411. package/src/web/handlers/TapGestureHandler.ts +14 -19
  412. package/src/web/tools/GestureHandlerOrchestrator.ts +1 -0
  413. package/src/web/tools/PointerEventManager.ts +1 -1
  414. package/src/web/tools/PointerTracker.ts +17 -15
  415. package/src/web/tools/Vector.ts +1 -1
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import { FlatList as RNFlatList, Switch as RNSwitch, TextInput as RNTextInput, ScrollView as RNScrollView, View, } from 'react-native';
3
+ import createNativeWrapper from '../handlers/createNativeWrapper';
4
+ export const ScrollView = createNativeWrapper(RNScrollView, {
5
+ disallowInterruption: false,
6
+ });
7
+ export const Switch = createNativeWrapper(RNSwitch, {
8
+ shouldCancelWhenOutside: false,
9
+ shouldActivateOnStart: true,
10
+ disallowInterruption: true,
11
+ });
12
+ export const TextInput = createNativeWrapper(RNTextInput);
13
+ export const DrawerLayoutAndroid = () => {
14
+ console.warn('DrawerLayoutAndroid is not supported on web!');
15
+ return <View />;
16
+ };
17
+ // RefreshControl is implemented as a functional component, rendering a View
18
+ // NativeViewGestureHandler needs to set a ref on its child, which cannot be done
19
+ // on functional components
20
+ export const RefreshControl = createNativeWrapper(View);
21
+ export const FlatList = React.forwardRef((props, ref) => (<RNFlatList ref={ref} {...props} renderScrollComponent={(scrollProps) => <ScrollView {...scrollProps}/>}/>));
@@ -2,4 +2,3 @@ import { HostComponent } from 'react-native';
2
2
  import type { RawButtonProps } from './GestureButtonsProps';
3
3
  declare const _default: HostComponent<RawButtonProps>;
4
4
  export default _default;
5
- //# sourceMappingURL=GestureHandlerButton.d.ts.map
@@ -0,0 +1,2 @@
1
+ import RNGestureHandlerButtonNativeComponent from '../specs/RNGestureHandlerButtonNativeComponent';
2
+ export default RNGestureHandlerButtonNativeComponent;
@@ -2,4 +2,3 @@ import * as React from 'react';
2
2
  import { View } from 'react-native';
3
3
  declare const _default: React.ForwardRefExoticComponent<React.RefAttributes<View>>;
4
4
  export default _default;
5
- //# sourceMappingURL=GestureHandlerButton.web.d.ts.map
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ import { View } from 'react-native';
3
+ export default React.forwardRef((props, ref) => <View ref={ref} accessibilityRole="button" {...props}/>);
@@ -4,4 +4,3 @@ import { ViewProps } from 'react-native';
4
4
  export interface GestureHandlerRootViewProps extends PropsWithChildren<ViewProps> {
5
5
  }
6
6
  export default function GestureHandlerRootView({ style, ...rest }: GestureHandlerRootViewProps): React.JSX.Element;
7
- //# sourceMappingURL=GestureHandlerRootView.android.d.ts.map
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import { StyleSheet } from 'react-native';
3
+ import { maybeInitializeFabric } from '../init';
4
+ import GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';
5
+ import GestureHandlerRootViewNativeComponent from '../specs/RNGestureHandlerRootViewNativeComponent';
6
+ export default function GestureHandlerRootView({ style, ...rest }) {
7
+ // Try initialize fabric on the first render, at this point we can
8
+ // reliably check if fabric is enabled (the function contains a flag
9
+ // to make sure it's called only once)
10
+ maybeInitializeFabric();
11
+ return (<GestureHandlerRootViewContext.Provider value>
12
+ <GestureHandlerRootViewNativeComponent style={style ?? styles.container} {...rest}/>
13
+ </GestureHandlerRootViewContext.Provider>);
14
+ }
15
+ const styles = StyleSheet.create({
16
+ container: { flex: 1 },
17
+ });
@@ -4,4 +4,3 @@ import { ViewProps } from 'react-native';
4
4
  export interface GestureHandlerRootViewProps extends PropsWithChildren<ViewProps> {
5
5
  }
6
6
  export default function GestureHandlerRootView({ style, ...rest }: GestureHandlerRootViewProps): React.JSX.Element;
7
- //# sourceMappingURL=GestureHandlerRootView.d.ts.map
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ import { View, StyleSheet } from 'react-native';
3
+ import { maybeInitializeFabric } from '../init';
4
+ import GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';
5
+ export default function GestureHandlerRootView({ style, ...rest }) {
6
+ // Try initialize fabric on the first render, at this point we can
7
+ // reliably check if fabric is enabled (the function contains a flag
8
+ // to make sure it's called only once)
9
+ maybeInitializeFabric();
10
+ return (<GestureHandlerRootViewContext.Provider value>
11
+ <View style={style ?? styles.container} {...rest}/>
12
+ </GestureHandlerRootViewContext.Provider>);
13
+ }
14
+ const styles = StyleSheet.create({
15
+ container: { flex: 1 },
16
+ });
@@ -4,4 +4,3 @@ import { ViewProps } from 'react-native';
4
4
  export interface GestureHandlerRootViewProps extends PropsWithChildren<ViewProps> {
5
5
  }
6
6
  export default function GestureHandlerRootView({ style, ...rest }: GestureHandlerRootViewProps): React.JSX.Element;
7
- //# sourceMappingURL=GestureHandlerRootView.web.d.ts.map
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ import { View, StyleSheet } from 'react-native';
3
+ import GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';
4
+ export default function GestureHandlerRootView({ style, ...rest }) {
5
+ return (<GestureHandlerRootViewContext.Provider value>
6
+ <View style={style ?? styles.container} {...rest}/>
7
+ </GestureHandlerRootViewContext.Provider>);
8
+ }
9
+ const styles = StyleSheet.create({
10
+ container: { flex: 1 },
11
+ });
@@ -1,6 +1,4 @@
1
1
  import React from 'react';
2
2
  import { PressableProps } from './PressableProps';
3
- import { View } from 'react-native';
4
- declare const Pressable: React.ForwardRefExoticComponent<PressableProps & React.RefAttributes<View>>;
3
+ declare const Pressable: (props: PressableProps) => React.JSX.Element;
5
4
  export default Pressable;
6
- //# sourceMappingURL=Pressable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pressable.d.ts","sourceRoot":"","sources":["../../../../src/components/Pressable/Pressable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAGf,OAAO,EAAkB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAIL,IAAI,EAGL,MAAM,cAAc,CAAC;AAuBtB,QAAA,MAAM,SAAS,6EA+bd,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Pressable.d.ts","sourceRoot":"","sources":["../../../../src/components/Pressable/Pressable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AAGf,OAAO,EAEL,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAkC1B,QAAA,MAAM,SAAS,GAAI,OAAO,cAAc,sBAkWvC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,231 @@
1
+ import React, { useCallback, useLayoutEffect, useMemo, useRef, useState, } from 'react';
2
+ import { GestureObjects as Gesture } from '../../handlers/gestures/gestureObjects';
3
+ import { GestureDetector } from '../../handlers/gestures/GestureDetector';
4
+ import { Platform, processColor, } from 'react-native';
5
+ import NativeButton from '../GestureHandlerButton';
6
+ import { gestureToPressableEvent, addInsets, numberAsInset, gestureTouchToPressableEvent, isTouchWithinInset, } from './utils';
7
+ import { PressabilityDebugView } from '../../handlers/PressabilityDebugView';
8
+ import { INT32_MAX, isFabric, isTestEnv } from '../../utils';
9
+ import { applyRelationProp, } from '../utils';
10
+ import { getConfiguredStateMachine, StateMachineEvent, } from './stateDefinitions';
11
+ const DEFAULT_LONG_PRESS_DURATION = 500;
12
+ const IS_TEST_ENV = isTestEnv();
13
+ let IS_FABRIC = null;
14
+ const Pressable = (props) => {
15
+ const { ref, testOnly_pressed, hitSlop, pressRetentionOffset, delayHoverIn, delayHoverOut, delayLongPress, unstable_pressDelay, onHoverIn, onHoverOut, onPress, onPressIn, onPressOut, onLongPress, style, children, android_disableSound, android_ripple, disabled, accessible, simultaneousWithExternalGesture, requireExternalGestureToFail, blocksExternalGesture, dimensionsAfterResize, ...remainingProps } = props;
16
+ const relationProps = {
17
+ simultaneousWithExternalGesture,
18
+ requireExternalGestureToFail,
19
+ blocksExternalGesture,
20
+ };
21
+ // used only if `ref` is undefined
22
+ const fallbackRef = useRef(null);
23
+ const [pressedState, setPressedState] = useState(testOnly_pressed ?? false);
24
+ const longPressTimeoutRef = useRef(null);
25
+ const pressDelayTimeoutRef = useRef(null);
26
+ const isOnPressAllowed = useRef(true);
27
+ const isCurrentlyPressed = useRef(false);
28
+ const dimensions = useRef({ width: 0, height: 0 });
29
+ const normalizedHitSlop = useMemo(() => typeof hitSlop === 'number' ? numberAsInset(hitSlop) : (hitSlop ?? {}), [hitSlop]);
30
+ const normalizedPressRetentionOffset = useMemo(() => typeof pressRetentionOffset === 'number'
31
+ ? numberAsInset(pressRetentionOffset)
32
+ : (pressRetentionOffset ?? {}), [pressRetentionOffset]);
33
+ const appliedHitSlop = addInsets(normalizedHitSlop, normalizedPressRetentionOffset);
34
+ useLayoutEffect(() => {
35
+ if (dimensionsAfterResize) {
36
+ dimensions.current = dimensionsAfterResize;
37
+ }
38
+ else {
39
+ requestAnimationFrame(() => {
40
+ (ref ?? fallbackRef).current?.measure((_x, _y, width, height) => {
41
+ dimensions.current = {
42
+ width,
43
+ height,
44
+ };
45
+ });
46
+ });
47
+ }
48
+ }, [dimensionsAfterResize, ref]);
49
+ const cancelLongPress = useCallback(() => {
50
+ if (longPressTimeoutRef.current) {
51
+ clearTimeout(longPressTimeoutRef.current);
52
+ longPressTimeoutRef.current = null;
53
+ isOnPressAllowed.current = true;
54
+ }
55
+ }, []);
56
+ const cancelDelayedPress = useCallback(() => {
57
+ if (pressDelayTimeoutRef.current) {
58
+ clearTimeout(pressDelayTimeoutRef.current);
59
+ pressDelayTimeoutRef.current = null;
60
+ }
61
+ }, []);
62
+ const startLongPress = useCallback((event) => {
63
+ if (onLongPress) {
64
+ cancelLongPress();
65
+ longPressTimeoutRef.current = setTimeout(() => {
66
+ isOnPressAllowed.current = false;
67
+ onLongPress(event);
68
+ }, delayLongPress ?? DEFAULT_LONG_PRESS_DURATION);
69
+ }
70
+ }, [onLongPress, cancelLongPress, delayLongPress]);
71
+ const innerHandlePressIn = useCallback((event) => {
72
+ onPressIn?.(event);
73
+ startLongPress(event);
74
+ setPressedState(true);
75
+ if (pressDelayTimeoutRef.current) {
76
+ clearTimeout(pressDelayTimeoutRef.current);
77
+ pressDelayTimeoutRef.current = null;
78
+ }
79
+ }, [onPressIn, startLongPress]);
80
+ const handleFinalize = useCallback(() => {
81
+ isCurrentlyPressed.current = false;
82
+ cancelLongPress();
83
+ cancelDelayedPress();
84
+ setPressedState(false);
85
+ }, [cancelDelayedPress, cancelLongPress]);
86
+ const handlePressIn = useCallback((event) => {
87
+ if (!isTouchWithinInset(dimensions.current, normalizedHitSlop, event.nativeEvent.changedTouches.at(-1))) {
88
+ // Ignoring pressIn within pressRetentionOffset
89
+ return;
90
+ }
91
+ isCurrentlyPressed.current = true;
92
+ if (unstable_pressDelay) {
93
+ pressDelayTimeoutRef.current = setTimeout(() => {
94
+ innerHandlePressIn(event);
95
+ }, unstable_pressDelay);
96
+ }
97
+ else {
98
+ innerHandlePressIn(event);
99
+ }
100
+ }, [innerHandlePressIn, normalizedHitSlop, unstable_pressDelay]);
101
+ const handlePressOut = useCallback((event, success = true) => {
102
+ if (!isCurrentlyPressed.current) {
103
+ // Some prop configurations may lead to handlePressOut being called mutliple times.
104
+ return;
105
+ }
106
+ isCurrentlyPressed.current = false;
107
+ if (pressDelayTimeoutRef.current) {
108
+ innerHandlePressIn(event);
109
+ }
110
+ onPressOut?.(event);
111
+ if (isOnPressAllowed.current && success) {
112
+ onPress?.(event);
113
+ }
114
+ handleFinalize();
115
+ }, [handleFinalize, innerHandlePressIn, onPress, onPressOut]);
116
+ const stateMachine = useMemo(() => getConfiguredStateMachine(handlePressIn, handlePressOut), [handlePressIn, handlePressOut]);
117
+ const hoverInTimeout = useRef(null);
118
+ const hoverOutTimeout = useRef(null);
119
+ const hoverGesture = useMemo(() => Gesture.Hover()
120
+ .manualActivation(true) // Prevents Hover blocking Gesture.Native() on web
121
+ .cancelsTouchesInView(false)
122
+ .onBegin((event) => {
123
+ if (hoverOutTimeout.current) {
124
+ clearTimeout(hoverOutTimeout.current);
125
+ }
126
+ if (delayHoverIn) {
127
+ hoverInTimeout.current = setTimeout(() => onHoverIn?.(gestureToPressableEvent(event)), delayHoverIn);
128
+ return;
129
+ }
130
+ onHoverIn?.(gestureToPressableEvent(event));
131
+ })
132
+ .onFinalize((event) => {
133
+ if (hoverInTimeout.current) {
134
+ clearTimeout(hoverInTimeout.current);
135
+ }
136
+ if (delayHoverOut) {
137
+ hoverOutTimeout.current = setTimeout(() => onHoverOut?.(gestureToPressableEvent(event)), delayHoverOut);
138
+ return;
139
+ }
140
+ onHoverOut?.(gestureToPressableEvent(event));
141
+ }), [delayHoverIn, delayHoverOut, onHoverIn, onHoverOut]);
142
+ const pressAndTouchGesture = useMemo(() => Gesture.LongPress()
143
+ .minDuration(INT32_MAX) // Stops long press from blocking Gesture.Native()
144
+ .maxDistance(INT32_MAX) // Stops long press from cancelling on touch move
145
+ .cancelsTouchesInView(false)
146
+ .onTouchesDown((event) => {
147
+ const pressableEvent = gestureTouchToPressableEvent(event);
148
+ stateMachine.handleEvent(StateMachineEvent.LONG_PRESS_TOUCHES_DOWN, pressableEvent);
149
+ })
150
+ .onTouchesUp(() => {
151
+ if (Platform.OS === 'android') {
152
+ // Prevents potential soft-locks
153
+ stateMachine.reset();
154
+ handleFinalize();
155
+ }
156
+ })
157
+ .onTouchesCancelled((event) => {
158
+ const pressableEvent = gestureTouchToPressableEvent(event);
159
+ stateMachine.reset();
160
+ handlePressOut(pressableEvent, false);
161
+ })
162
+ .onFinalize(() => {
163
+ if (Platform.OS === 'web') {
164
+ stateMachine.handleEvent(StateMachineEvent.FINALIZE);
165
+ handleFinalize();
166
+ }
167
+ }), [stateMachine, handleFinalize, handlePressOut]);
168
+ // RNButton is placed inside ButtonGesture to enable Android's ripple and to capture non-propagating events
169
+ const buttonGesture = useMemo(() => Gesture.Native()
170
+ .onTouchesCancelled((event) => {
171
+ if (Platform.OS !== 'macos' && Platform.OS !== 'web') {
172
+ // On MacOS cancel occurs in middle of gesture
173
+ // On Web cancel occurs on mouse move, which is unwanted
174
+ const pressableEvent = gestureTouchToPressableEvent(event);
175
+ stateMachine.reset();
176
+ handlePressOut(pressableEvent, false);
177
+ }
178
+ })
179
+ .onBegin(() => {
180
+ stateMachine.handleEvent(StateMachineEvent.NATIVE_BEGIN);
181
+ })
182
+ .onStart(() => {
183
+ if (Platform.OS !== 'android') {
184
+ // Gesture.Native().onStart() is broken with Android + hitSlop
185
+ stateMachine.handleEvent(StateMachineEvent.NATIVE_START);
186
+ }
187
+ })
188
+ .onFinalize(() => {
189
+ if (Platform.OS !== 'web') {
190
+ // On Web we use LongPress().onFinalize() instead of Native().onFinalize(),
191
+ // as Native cancels on mouse move, and LongPress does not.
192
+ stateMachine.handleEvent(StateMachineEvent.FINALIZE);
193
+ handleFinalize();
194
+ }
195
+ }), [stateMachine, handlePressOut, handleFinalize]);
196
+ const isPressableEnabled = disabled !== true;
197
+ const gestures = [buttonGesture, pressAndTouchGesture, hoverGesture];
198
+ for (const gesture of gestures) {
199
+ gesture.enabled(isPressableEnabled);
200
+ gesture.runOnJS(true);
201
+ gesture.hitSlop(appliedHitSlop);
202
+ gesture.shouldCancelWhenOutside(Platform.OS !== 'web');
203
+ Object.entries(relationProps).forEach(([relationName, relation]) => {
204
+ applyRelationProp(gesture, relationName, relation);
205
+ });
206
+ }
207
+ const gesture = Gesture.Simultaneous(...gestures);
208
+ // `cursor: 'pointer'` on `RNButton` crashes iOS
209
+ const pointerStyle = Platform.OS === 'web' ? { cursor: 'pointer' } : {};
210
+ const styleProp = typeof style === 'function' ? style({ pressed: pressedState }) : style;
211
+ const childrenProp = typeof children === 'function'
212
+ ? children({ pressed: pressedState })
213
+ : children;
214
+ const rippleColor = useMemo(() => {
215
+ if (IS_FABRIC === null) {
216
+ IS_FABRIC = isFabric();
217
+ }
218
+ const defaultRippleColor = android_ripple ? undefined : 'transparent';
219
+ const unprocessedRippleColor = android_ripple?.color ?? defaultRippleColor;
220
+ return IS_FABRIC
221
+ ? unprocessedRippleColor
222
+ : processColor(unprocessedRippleColor);
223
+ }, [android_ripple]);
224
+ return (<GestureDetector gesture={gesture}>
225
+ <NativeButton {...remainingProps} ref={ref ?? fallbackRef} accessible={accessible !== false} hitSlop={appliedHitSlop} enabled={isPressableEnabled} touchSoundDisabled={android_disableSound ?? undefined} rippleColor={rippleColor} rippleRadius={android_ripple?.radius ?? undefined} style={[pointerStyle, styleProp]} testOnly_onPress={IS_TEST_ENV ? onPress : undefined} testOnly_onPressIn={IS_TEST_ENV ? onPressIn : undefined} testOnly_onPressOut={IS_TEST_ENV ? onPressOut : undefined} testOnly_onLongPress={IS_TEST_ENV ? onLongPress : undefined}>
226
+ {childrenProp}
227
+ {__DEV__ ? (<PressabilityDebugView color="red" hitSlop={normalizedHitSlop}/>) : null}
228
+ </NativeButton>
229
+ </GestureDetector>);
230
+ };
231
+ export default Pressable;
@@ -1,5 +1,9 @@
1
- import { AccessibilityProps, ViewProps, Insets, StyleProp, ViewStyle, PressableStateCallbackType as RNPressableStateCallbackType, PressableAndroidRippleConfig as RNPressableAndroidRippleConfig } from 'react-native';
1
+ import { AccessibilityProps, ViewProps, Insets, StyleProp, ViewStyle, PressableStateCallbackType as RNPressableStateCallbackType, PressableAndroidRippleConfig as RNPressableAndroidRippleConfig, View } from 'react-native';
2
2
  import { RelationPropType } from '../utils';
3
+ export type PressableDimensions = {
4
+ width: number;
5
+ height: number;
6
+ };
3
7
  export type PressableStateCallbackType = RNPressableStateCallbackType;
4
8
  export type PressableAndroidRippleConfig = RNPressableAndroidRippleConfig;
5
9
  export type InnerPressableEvent = {
@@ -42,6 +46,10 @@ export interface PressableProps extends AccessibilityProps, Omit<ViewProps, 'chi
42
46
  * Called when a long-tap gesture is detected.
43
47
  */
44
48
  onLongPress?: null | ((event: PressableEvent) => void);
49
+ /**
50
+ * A reference to the pressable element.
51
+ */
52
+ ref?: React.RefObject<View>;
45
53
  /**
46
54
  * Either children or a render prop that receives a boolean reflecting whether
47
55
  * the component is currently pressed.
@@ -121,5 +129,10 @@ export interface PressableProps extends AccessibilityProps, Omit<ViewProps, 'chi
121
129
  * used with the Pressable's gesture handlers.
122
130
  */
123
131
  blocksExternalGesture?: RelationPropType;
132
+ /**
133
+ * Defines the dimensions of the Pressable after it's been resized.
134
+ * This property does not affect Pressable's physical appearance.
135
+ * Required when the Pressable is resized **and** uses pressRetentionOffset.
136
+ */
137
+ dimensionsAfterResize?: PressableDimensions;
124
138
  }
125
- //# sourceMappingURL=PressableProps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PressableProps.d.ts","sourceRoot":"","sources":["../../../../src/components/Pressable/PressableProps.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PressableProps.d.ts","sourceRoot":"","sources":["../../../../src/components/Pressable/PressableProps.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { PressableEvent } from './PressableProps';
2
+ interface StateDefinition {
3
+ eventName: string;
4
+ callback?: (event: PressableEvent) => void;
5
+ }
6
+ declare class PressableStateMachine {
7
+ private states;
8
+ private currentStepIndex;
9
+ private eventPayload;
10
+ constructor(steps: StateDefinition[]);
11
+ reset(): void;
12
+ handleEvent(eventName: string, eventPayload?: PressableEvent): void;
13
+ }
14
+ export { PressableStateMachine };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachine.d.ts","sourceRoot":"","sources":["../../../../src/components/Pressable/StateMachine.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CAC5C;AAED,cAAM,qBAAqB;IACzB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,YAAY,CAAwB;gBAEhC,KAAK,EAAE,eAAe,EAAE;IAM7B,KAAK;IAKL,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,cAAc;CAuBpE;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,34 @@
1
+ class PressableStateMachine {
2
+ states;
3
+ currentStepIndex;
4
+ eventPayload;
5
+ constructor(steps) {
6
+ this.states = steps;
7
+ this.currentStepIndex = 0;
8
+ this.eventPayload = null;
9
+ }
10
+ reset() {
11
+ this.currentStepIndex = 0;
12
+ this.eventPayload = null;
13
+ }
14
+ handleEvent(eventName, eventPayload) {
15
+ const step = this.states[this.currentStepIndex];
16
+ this.eventPayload = eventPayload || this.eventPayload;
17
+ if (step.eventName !== eventName) {
18
+ if (this.currentStepIndex > 0) {
19
+ // retry with position at index 0
20
+ this.reset();
21
+ this.handleEvent(eventName, eventPayload);
22
+ }
23
+ return;
24
+ }
25
+ if (this.eventPayload && step.callback) {
26
+ step.callback(this.eventPayload);
27
+ }
28
+ this.currentStepIndex++;
29
+ if (this.currentStepIndex === this.states.length) {
30
+ this.reset();
31
+ }
32
+ }
33
+ }
34
+ export { PressableStateMachine };
@@ -1,3 +1,2 @@
1
1
  export type { PressableProps, PressableStateCallbackType, } from './PressableProps';
2
2
  export { default } from './Pressable';
3
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ export { default } from './Pressable';
@@ -0,0 +1,9 @@
1
+ import { PressableEvent } from './PressableProps';
2
+ import { PressableStateMachine } from './StateMachine';
3
+ export declare enum StateMachineEvent {
4
+ NATIVE_BEGIN = "nativeBegin",
5
+ NATIVE_START = "nativeStart",
6
+ FINALIZE = "finalize",
7
+ LONG_PRESS_TOUCHES_DOWN = "longPressTouchesDown"
8
+ }
9
+ export declare function getConfiguredStateMachine(handlePressIn: (event: PressableEvent) => void, handlePressOut: (event: PressableEvent) => void): PressableStateMachine;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateDefinitions.d.ts","sourceRoot":"","sources":["../../../../src/components/Pressable/stateDefinitions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,oBAAY,iBAAiB;IAC3B,YAAY,gBAAgB;IAC5B,YAAY,gBAAgB;IAC5B,QAAQ,aAAa;IACrB,uBAAuB,yBAAyB;CACjD;AAmGD,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,EAC9C,cAAc,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,yBAchD"}
@@ -0,0 +1,104 @@
1
+ import { Platform } from 'react-native';
2
+ import { PressableStateMachine } from './StateMachine';
3
+ export var StateMachineEvent;
4
+ (function (StateMachineEvent) {
5
+ StateMachineEvent["NATIVE_BEGIN"] = "nativeBegin";
6
+ StateMachineEvent["NATIVE_START"] = "nativeStart";
7
+ StateMachineEvent["FINALIZE"] = "finalize";
8
+ StateMachineEvent["LONG_PRESS_TOUCHES_DOWN"] = "longPressTouchesDown";
9
+ })(StateMachineEvent || (StateMachineEvent = {}));
10
+ function getAndroidStateMachine(handlePressIn, handlePressOut) {
11
+ return new PressableStateMachine([
12
+ {
13
+ eventName: StateMachineEvent.NATIVE_BEGIN,
14
+ },
15
+ {
16
+ eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN,
17
+ callback: handlePressIn,
18
+ },
19
+ {
20
+ eventName: StateMachineEvent.FINALIZE,
21
+ callback: handlePressOut,
22
+ },
23
+ ]);
24
+ }
25
+ function getIosStateMachine(handlePressIn, handlePressOut) {
26
+ return new PressableStateMachine([
27
+ {
28
+ eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN,
29
+ },
30
+ {
31
+ eventName: StateMachineEvent.NATIVE_START,
32
+ callback: handlePressIn,
33
+ },
34
+ {
35
+ eventName: StateMachineEvent.FINALIZE,
36
+ callback: handlePressOut,
37
+ },
38
+ ]);
39
+ }
40
+ function getWebStateMachine(handlePressIn, handlePressOut) {
41
+ return new PressableStateMachine([
42
+ {
43
+ eventName: StateMachineEvent.NATIVE_BEGIN,
44
+ },
45
+ {
46
+ eventName: StateMachineEvent.NATIVE_START,
47
+ },
48
+ {
49
+ eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN,
50
+ callback: handlePressIn,
51
+ },
52
+ {
53
+ eventName: StateMachineEvent.FINALIZE,
54
+ callback: handlePressOut,
55
+ },
56
+ ]);
57
+ }
58
+ function getMacosStateMachine(handlePressIn, handlePressOut) {
59
+ return new PressableStateMachine([
60
+ {
61
+ eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN,
62
+ },
63
+ {
64
+ eventName: StateMachineEvent.NATIVE_BEGIN,
65
+ callback: handlePressIn,
66
+ },
67
+ {
68
+ eventName: StateMachineEvent.NATIVE_START,
69
+ },
70
+ {
71
+ eventName: StateMachineEvent.FINALIZE,
72
+ callback: handlePressOut,
73
+ },
74
+ ]);
75
+ }
76
+ function getUniversalStateMachine(handlePressIn, handlePressOut) {
77
+ return new PressableStateMachine([
78
+ {
79
+ eventName: StateMachineEvent.FINALIZE,
80
+ callback: (event) => {
81
+ handlePressIn(event);
82
+ handlePressOut(event);
83
+ },
84
+ },
85
+ ]);
86
+ }
87
+ export function getConfiguredStateMachine(handlePressIn, handlePressOut) {
88
+ if (Platform.OS === 'android') {
89
+ return getAndroidStateMachine(handlePressIn, handlePressOut);
90
+ }
91
+ else if (Platform.OS === 'ios') {
92
+ return getIosStateMachine(handlePressIn, handlePressOut);
93
+ }
94
+ else if (Platform.OS === 'web') {
95
+ return getWebStateMachine(handlePressIn, handlePressOut);
96
+ }
97
+ else if (Platform.OS === 'macos') {
98
+ return getMacosStateMachine(handlePressIn, handlePressOut);
99
+ }
100
+ else {
101
+ // Unknown platform - using minimal universal setup.
102
+ return getUniversalStateMachine(handlePressIn, handlePressOut);
103
+ }
104
+ }
@@ -1,14 +1,10 @@
1
1
  import { Insets } from 'react-native';
2
2
  import { HoverGestureHandlerEventPayload, LongPressGestureHandlerEventPayload } from '../../handlers/GestureHandlerEventPayload';
3
- import { TouchData, GestureStateChangeEvent, GestureTouchEvent } from '../../handlers/gestureHandlerCommon';
4
- import { PressableEvent } from './PressableProps';
3
+ import { GestureStateChangeEvent, GestureTouchEvent } from '../../handlers/gestureHandlerCommon';
4
+ import { PressableDimensions, InnerPressableEvent, PressableEvent } from './PressableProps';
5
5
  declare const numberAsInset: (value: number) => Insets;
6
6
  declare const addInsets: (a: Insets, b: Insets) => Insets;
7
- declare const isTouchWithinInset: (dimensions: {
8
- width: number;
9
- height: number;
10
- }, inset: Insets, touch?: TouchData) => boolean;
7
+ declare const isTouchWithinInset: (dimensions: PressableDimensions, inset: Insets, touch?: InnerPressableEvent) => boolean;
11
8
  declare const gestureToPressableEvent: (event: GestureStateChangeEvent<HoverGestureHandlerEventPayload | LongPressGestureHandlerEventPayload>) => PressableEvent;
12
9
  declare const gestureTouchToPressableEvent: (event: GestureTouchEvent) => PressableEvent;
13
10
  export { numberAsInset, addInsets, isTouchWithinInset, gestureToPressableEvent, gestureTouchToPressableEvent, };
14
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/Pressable/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,+BAA+B,EAC/B,mCAAmC,EACpC,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,SAAS,EACT,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAuB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvE,QAAA,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,MAKrC,CAAC;AAEH,QAAA,MAAM,SAAS,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,MAKxC,CAAC;AAoCH,QAAA,MAAM,kBAAkB,GACtB,YAAY;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC7C,OAAO,MAAM,EACb,QAAQ,SAAS,YAKkB,CAAC;AAEtC,QAAA,MAAM,uBAAuB,GAC3B,OAAO,uBAAuB,CAC5B,+BAA+B,GAAG,mCAAmC,CACtE,KACA,cAsBF,CAAC;AAEF,QAAA,MAAM,4BAA4B,GAChC,OAAO,iBAAiB,KACvB,cA2BF,CAAC;AAEF,OAAO,EACL,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,uBAAuB,EACvB,4BAA4B,GAC7B,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/Pressable/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,+BAA+B,EAC/B,mCAAmC,EACpC,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAEL,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACf,MAAM,kBAAkB,CAAC;AAE1B,QAAA,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,MAKrC,CAAC;AAEH,QAAA,MAAM,SAAS,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,MAKxC,CAAC;AAoCH,QAAA,MAAM,kBAAkB,GACtB,YAAY,mBAAmB,EAC/B,OAAO,MAAM,EACb,QAAQ,mBAAmB,YAKgB,CAAC;AAE9C,QAAA,MAAM,uBAAuB,GAC3B,OAAO,uBAAuB,CAC5B,+BAA+B,GAAG,mCAAmC,CACtE,KACA,cAsBF,CAAC;AAEF,QAAA,MAAM,4BAA4B,GAChC,OAAO,iBAAiB,KACvB,cA2BF,CAAC;AAEF,OAAO,EACL,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,uBAAuB,EACvB,4BAA4B,GAC7B,CAAC"}