gesture-kit-basic-touch 1.0.0

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 (43) hide show
  1. package/dist/DoubleTapGesture.d.ts +6 -0
  2. package/dist/DoubleTapGesture.js +61 -0
  3. package/dist/LongPressGesture.d.ts +6 -0
  4. package/dist/LongPressGesture.js +77 -0
  5. package/dist/PressForceGesture.d.ts +6 -0
  6. package/dist/PressForceGesture.js +59 -0
  7. package/dist/QuadTapGesture.d.ts +6 -0
  8. package/dist/QuadTapGesture.js +61 -0
  9. package/dist/TapAndHoldGesture.d.ts +6 -0
  10. package/dist/TapAndHoldGesture.js +71 -0
  11. package/dist/TapCancelGesture.d.ts +6 -0
  12. package/dist/TapCancelGesture.js +64 -0
  13. package/dist/TapGesture.d.ts +6 -0
  14. package/dist/TapGesture.js +61 -0
  15. package/dist/TripleTapGesture.d.ts +6 -0
  16. package/dist/TripleTapGesture.js +61 -0
  17. package/dist/VeryLongPressGesture.d.ts +6 -0
  18. package/dist/VeryLongPressGesture.js +77 -0
  19. package/dist/hooks/index.d.ts +9 -0
  20. package/dist/hooks/index.js +21 -0
  21. package/dist/hooks/useDoubleTap.d.ts +2 -0
  22. package/dist/hooks/useDoubleTap.js +21 -0
  23. package/dist/hooks/useLongPress.d.ts +2 -0
  24. package/dist/hooks/useLongPress.js +31 -0
  25. package/dist/hooks/usePressForce.d.ts +2 -0
  26. package/dist/hooks/usePressForce.js +19 -0
  27. package/dist/hooks/useQuadTap.d.ts +2 -0
  28. package/dist/hooks/useQuadTap.js +21 -0
  29. package/dist/hooks/useTap.d.ts +2 -0
  30. package/dist/hooks/useTap.js +21 -0
  31. package/dist/hooks/useTapAndHold.d.ts +2 -0
  32. package/dist/hooks/useTapAndHold.js +28 -0
  33. package/dist/hooks/useTapCancel.d.ts +2 -0
  34. package/dist/hooks/useTapCancel.js +24 -0
  35. package/dist/hooks/useTripleTap.d.ts +2 -0
  36. package/dist/hooks/useTripleTap.js +21 -0
  37. package/dist/hooks/useVeryLongPress.d.ts +2 -0
  38. package/dist/hooks/useVeryLongPress.js +31 -0
  39. package/dist/index.d.ts +11 -0
  40. package/dist/index.js +40 -0
  41. package/dist/types.d.ts +93 -0
  42. package/dist/types.js +5 -0
  43. package/package.json +30 -0
@@ -0,0 +1,6 @@
1
+ /**
2
+ * DoubleTapGesture — Detects double tap gestures.
3
+ */
4
+ import React from 'react';
5
+ import type { DoubleTapProps } from './types';
6
+ export declare const DoubleTapGesture: React.FC<DoubleTapProps>;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ /**
3
+ * DoubleTapGesture — Detects double tap gestures.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.DoubleTapGesture = void 0;
40
+ const react_1 = __importStar(require("react"));
41
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
42
+ const DoubleTapGesture = ({ children, onDoubleTap, maxDelay, maxDistance, enabled = true, }) => {
43
+ const gesture = (0, react_1.useMemo)(() => {
44
+ let g = react_native_gesture_handler_1.Gesture.Tap().numberOfTaps(2);
45
+ if (maxDelay !== undefined)
46
+ g = g.maxDuration(maxDelay);
47
+ if (maxDistance !== undefined)
48
+ g = g.maxDistance(maxDistance);
49
+ g = g.onEnd((e) => {
50
+ const event = {
51
+ absoluteX: e.absoluteX, absoluteY: e.absoluteY,
52
+ x: e.x, y: e.y, numberOfTaps: 2,
53
+ };
54
+ onDoubleTap(event);
55
+ });
56
+ return g.enabled(enabled);
57
+ }, [onDoubleTap, maxDelay, maxDistance, enabled]);
58
+ return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
59
+ };
60
+ exports.DoubleTapGesture = DoubleTapGesture;
61
+ exports.DoubleTapGesture.displayName = 'DoubleTapGesture';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * LongPressGesture — Detects long press gestures.
3
+ */
4
+ import React from 'react';
5
+ import type { LongPressProps } from './types';
6
+ export declare const LongPressGesture: React.FC<LongPressProps>;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ /**
3
+ * LongPressGesture — Detects long press gestures.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.LongPressGesture = void 0;
40
+ const react_1 = __importStar(require("react"));
41
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
42
+ const LongPressGesture = ({ children, onLongPress, onPressIn, onPressOut, minDuration = 500, maxDistance, enabled = true, }) => {
43
+ const gesture = (0, react_1.useMemo)(() => {
44
+ let g = react_native_gesture_handler_1.Gesture.LongPress().minDuration(minDuration);
45
+ if (maxDistance !== undefined)
46
+ g = g.maxDistance(maxDistance);
47
+ if (onPressIn) {
48
+ g = g.onStart((e) => {
49
+ const event = {
50
+ absoluteX: e.absoluteX, absoluteY: e.absoluteY,
51
+ x: e.x, y: e.y, duration: e.duration,
52
+ };
53
+ onPressIn(event);
54
+ });
55
+ }
56
+ g = g.onEnd((e) => {
57
+ const event = {
58
+ absoluteX: e.absoluteX, absoluteY: e.absoluteY,
59
+ x: e.x, y: e.y, duration: e.duration,
60
+ };
61
+ onLongPress(event);
62
+ });
63
+ if (onPressOut) {
64
+ g = g.onFinalize((e) => {
65
+ const event = {
66
+ absoluteX: e.absoluteX, absoluteY: e.absoluteY,
67
+ x: e.x, y: e.y, duration: e.duration,
68
+ };
69
+ onPressOut(event);
70
+ });
71
+ }
72
+ return g.enabled(enabled);
73
+ }, [onLongPress, onPressIn, onPressOut, minDuration, maxDistance, enabled]);
74
+ return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
75
+ };
76
+ exports.LongPressGesture = LongPressGesture;
77
+ exports.LongPressGesture.displayName = 'LongPressGesture';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * PressForceGesture — Detects force/pressure touch gestures (3D Touch / Force Touch).
3
+ */
4
+ import React from 'react';
5
+ import type { PressForceProps } from './types';
6
+ export declare const PressForceGesture: React.FC<PressForceProps>;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * PressForceGesture — Detects force/pressure touch gestures (3D Touch / Force Touch).
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.PressForceGesture = void 0;
40
+ const react_1 = __importStar(require("react"));
41
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
42
+ const PressForceGesture = ({ children, onPressForce, forceThreshold = 0.5, enabled = true, }) => {
43
+ const gesture = (0, react_1.useMemo)(() => {
44
+ const g = react_native_gesture_handler_1.Gesture.ForceTouch()
45
+ .minForce(forceThreshold)
46
+ .onStart((e) => {
47
+ const event = {
48
+ absoluteX: e.absoluteX, absoluteY: e.absoluteY,
49
+ x: e.x, y: e.y, force: e.force,
50
+ };
51
+ onPressForce(event);
52
+ })
53
+ .enabled(enabled);
54
+ return g;
55
+ }, [onPressForce, forceThreshold, enabled]);
56
+ return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
57
+ };
58
+ exports.PressForceGesture = PressForceGesture;
59
+ exports.PressForceGesture.displayName = 'PressForceGesture';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * QuadTapGesture — Detects quad (four) tap gestures.
3
+ */
4
+ import React from 'react';
5
+ import type { QuadTapProps } from './types';
6
+ export declare const QuadTapGesture: React.FC<QuadTapProps>;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ /**
3
+ * QuadTapGesture — Detects quad (four) tap gestures.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.QuadTapGesture = void 0;
40
+ const react_1 = __importStar(require("react"));
41
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
42
+ const QuadTapGesture = ({ children, onQuadTap, maxDelay, maxDistance, enabled = true, }) => {
43
+ const gesture = (0, react_1.useMemo)(() => {
44
+ let g = react_native_gesture_handler_1.Gesture.Tap().numberOfTaps(4);
45
+ if (maxDelay !== undefined)
46
+ g = g.maxDuration(maxDelay);
47
+ if (maxDistance !== undefined)
48
+ g = g.maxDistance(maxDistance);
49
+ g = g.onEnd((e) => {
50
+ const event = {
51
+ absoluteX: e.absoluteX, absoluteY: e.absoluteY,
52
+ x: e.x, y: e.y, numberOfTaps: 4,
53
+ };
54
+ onQuadTap(event);
55
+ });
56
+ return g.enabled(enabled);
57
+ }, [onQuadTap, maxDelay, maxDistance, enabled]);
58
+ return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
59
+ };
60
+ exports.QuadTapGesture = QuadTapGesture;
61
+ exports.QuadTapGesture.displayName = 'QuadTapGesture';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * TapAndHoldGesture — Detects a tap followed by a hold.
3
+ */
4
+ import React from 'react';
5
+ import type { TapAndHoldProps } from './types';
6
+ export declare const TapAndHoldGesture: React.FC<TapAndHoldProps>;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ /**
3
+ * TapAndHoldGesture — Detects a tap followed by a hold.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.TapAndHoldGesture = void 0;
40
+ const react_1 = __importStar(require("react"));
41
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
42
+ const TapAndHoldGesture = ({ children, onTapAndHold, onTap, holdDuration = 500, enabled = true, }) => {
43
+ const gesture = (0, react_1.useMemo)(() => {
44
+ const holdGesture = react_native_gesture_handler_1.Gesture.LongPress()
45
+ .minDuration(holdDuration)
46
+ .onEnd((e) => {
47
+ const event = {
48
+ absoluteX: e.absoluteX, absoluteY: e.absoluteY,
49
+ x: e.x, y: e.y, duration: e.duration,
50
+ };
51
+ onTapAndHold(event);
52
+ })
53
+ .enabled(enabled);
54
+ if (onTap) {
55
+ const tapGesture = react_native_gesture_handler_1.Gesture.Tap()
56
+ .onEnd((e) => {
57
+ const event = {
58
+ absoluteX: e.absoluteX, absoluteY: e.absoluteY,
59
+ x: e.x, y: e.y, numberOfTaps: 1,
60
+ };
61
+ onTap(event);
62
+ })
63
+ .enabled(enabled);
64
+ return react_native_gesture_handler_1.Gesture.Exclusive(holdGesture, tapGesture);
65
+ }
66
+ return holdGesture;
67
+ }, [onTapAndHold, onTap, holdDuration, enabled]);
68
+ return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
69
+ };
70
+ exports.TapAndHoldGesture = TapAndHoldGesture;
71
+ exports.TapAndHoldGesture.displayName = 'TapAndHoldGesture';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * TapCancelGesture — Detects when a tap is cancelled (finger moves away).
3
+ */
4
+ import React from 'react';
5
+ import type { TapCancelProps } from './types';
6
+ export declare const TapCancelGesture: React.FC<TapCancelProps>;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ /**
3
+ * TapCancelGesture — Detects when a tap is cancelled (finger moves away).
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.TapCancelGesture = void 0;
40
+ const react_1 = __importStar(require("react"));
41
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
42
+ const TapCancelGesture = ({ children, onTapCancel, onTapStart, maxDuration, enabled = true, }) => {
43
+ const gesture = (0, react_1.useMemo)(() => {
44
+ let g = react_native_gesture_handler_1.Gesture.Tap();
45
+ if (maxDuration !== undefined)
46
+ g = g.maxDuration(maxDuration);
47
+ if (onTapStart) {
48
+ g = g.onBegin((e) => {
49
+ const event = {
50
+ absoluteX: e.absoluteX, absoluteY: e.absoluteY,
51
+ x: e.x, y: e.y,
52
+ };
53
+ onTapStart(event);
54
+ });
55
+ }
56
+ g = g.onTouchesCancelled(() => {
57
+ onTapCancel({ absoluteX: 0, absoluteY: 0, x: 0, y: 0 });
58
+ });
59
+ return g.enabled(enabled);
60
+ }, [onTapCancel, onTapStart, maxDuration, enabled]);
61
+ return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
62
+ };
63
+ exports.TapCancelGesture = TapCancelGesture;
64
+ exports.TapCancelGesture.displayName = 'TapCancelGesture';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * TapGesture — Detects single tap gestures.
3
+ */
4
+ import React from 'react';
5
+ import type { TapProps } from './types';
6
+ export declare const TapGesture: React.FC<TapProps>;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ /**
3
+ * TapGesture — Detects single tap gestures.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.TapGesture = void 0;
40
+ const react_1 = __importStar(require("react"));
41
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
42
+ const TapGesture = ({ children, onTap, numberOfTaps = 1, maxDuration, maxDistance, enabled = true, }) => {
43
+ const gesture = (0, react_1.useMemo)(() => {
44
+ let g = react_native_gesture_handler_1.Gesture.Tap().numberOfTaps(numberOfTaps);
45
+ if (maxDuration !== undefined)
46
+ g = g.maxDuration(maxDuration);
47
+ if (maxDistance !== undefined)
48
+ g = g.maxDistance(maxDistance);
49
+ g = g.onEnd((e) => {
50
+ const event = {
51
+ absoluteX: e.absoluteX, absoluteY: e.absoluteY,
52
+ x: e.x, y: e.y, numberOfTaps,
53
+ };
54
+ onTap(event);
55
+ });
56
+ return g.enabled(enabled);
57
+ }, [onTap, numberOfTaps, maxDuration, maxDistance, enabled]);
58
+ return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
59
+ };
60
+ exports.TapGesture = TapGesture;
61
+ exports.TapGesture.displayName = 'TapGesture';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * TripleTapGesture — Detects triple tap gestures.
3
+ */
4
+ import React from 'react';
5
+ import type { TripleTapProps } from './types';
6
+ export declare const TripleTapGesture: React.FC<TripleTapProps>;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ /**
3
+ * TripleTapGesture — Detects triple tap gestures.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.TripleTapGesture = void 0;
40
+ const react_1 = __importStar(require("react"));
41
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
42
+ const TripleTapGesture = ({ children, onTripleTap, maxDelay, maxDistance, enabled = true, }) => {
43
+ const gesture = (0, react_1.useMemo)(() => {
44
+ let g = react_native_gesture_handler_1.Gesture.Tap().numberOfTaps(3);
45
+ if (maxDelay !== undefined)
46
+ g = g.maxDuration(maxDelay);
47
+ if (maxDistance !== undefined)
48
+ g = g.maxDistance(maxDistance);
49
+ g = g.onEnd((e) => {
50
+ const event = {
51
+ absoluteX: e.absoluteX, absoluteY: e.absoluteY,
52
+ x: e.x, y: e.y, numberOfTaps: 3,
53
+ };
54
+ onTripleTap(event);
55
+ });
56
+ return g.enabled(enabled);
57
+ }, [onTripleTap, maxDelay, maxDistance, enabled]);
58
+ return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
59
+ };
60
+ exports.TripleTapGesture = TripleTapGesture;
61
+ exports.TripleTapGesture.displayName = 'TripleTapGesture';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * VeryLongPressGesture — Detects very long press gestures (default 1500ms).
3
+ */
4
+ import React from 'react';
5
+ import type { VeryLongPressProps } from './types';
6
+ export declare const VeryLongPressGesture: React.FC<VeryLongPressProps>;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ /**
3
+ * VeryLongPressGesture — Detects very long press gestures (default 1500ms).
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.VeryLongPressGesture = void 0;
40
+ const react_1 = __importStar(require("react"));
41
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
42
+ const VeryLongPressGesture = ({ children, onVeryLongPress, onPressIn, onPressOut, minDuration = 1500, maxDistance, enabled = true, }) => {
43
+ const gesture = (0, react_1.useMemo)(() => {
44
+ let g = react_native_gesture_handler_1.Gesture.LongPress().minDuration(minDuration);
45
+ if (maxDistance !== undefined)
46
+ g = g.maxDistance(maxDistance);
47
+ if (onPressIn) {
48
+ g = g.onStart((e) => {
49
+ const event = {
50
+ absoluteX: e.absoluteX, absoluteY: e.absoluteY,
51
+ x: e.x, y: e.y, duration: e.duration,
52
+ };
53
+ onPressIn(event);
54
+ });
55
+ }
56
+ g = g.onEnd((e) => {
57
+ const event = {
58
+ absoluteX: e.absoluteX, absoluteY: e.absoluteY,
59
+ x: e.x, y: e.y, duration: e.duration,
60
+ };
61
+ onVeryLongPress(event);
62
+ });
63
+ if (onPressOut) {
64
+ g = g.onFinalize((e) => {
65
+ const event = {
66
+ absoluteX: e.absoluteX, absoluteY: e.absoluteY,
67
+ x: e.x, y: e.y, duration: e.duration,
68
+ };
69
+ onPressOut(event);
70
+ });
71
+ }
72
+ return g.enabled(enabled);
73
+ }, [onVeryLongPress, onPressIn, onPressOut, minDuration, maxDistance, enabled]);
74
+ return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
75
+ };
76
+ exports.VeryLongPressGesture = VeryLongPressGesture;
77
+ exports.VeryLongPressGesture.displayName = 'VeryLongPressGesture';
@@ -0,0 +1,9 @@
1
+ export { useTap } from './useTap';
2
+ export { useDoubleTap } from './useDoubleTap';
3
+ export { useTripleTap } from './useTripleTap';
4
+ export { useQuadTap } from './useQuadTap';
5
+ export { useLongPress } from './useLongPress';
6
+ export { useVeryLongPress } from './useVeryLongPress';
7
+ export { useTapAndHold } from './useTapAndHold';
8
+ export { useTapCancel } from './useTapCancel';
9
+ export { usePressForce } from './usePressForce';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.usePressForce = exports.useTapCancel = exports.useTapAndHold = exports.useVeryLongPress = exports.useLongPress = exports.useQuadTap = exports.useTripleTap = exports.useDoubleTap = exports.useTap = void 0;
4
+ var useTap_1 = require("./useTap");
5
+ Object.defineProperty(exports, "useTap", { enumerable: true, get: function () { return useTap_1.useTap; } });
6
+ var useDoubleTap_1 = require("./useDoubleTap");
7
+ Object.defineProperty(exports, "useDoubleTap", { enumerable: true, get: function () { return useDoubleTap_1.useDoubleTap; } });
8
+ var useTripleTap_1 = require("./useTripleTap");
9
+ Object.defineProperty(exports, "useTripleTap", { enumerable: true, get: function () { return useTripleTap_1.useTripleTap; } });
10
+ var useQuadTap_1 = require("./useQuadTap");
11
+ Object.defineProperty(exports, "useQuadTap", { enumerable: true, get: function () { return useQuadTap_1.useQuadTap; } });
12
+ var useLongPress_1 = require("./useLongPress");
13
+ Object.defineProperty(exports, "useLongPress", { enumerable: true, get: function () { return useLongPress_1.useLongPress; } });
14
+ var useVeryLongPress_1 = require("./useVeryLongPress");
15
+ Object.defineProperty(exports, "useVeryLongPress", { enumerable: true, get: function () { return useVeryLongPress_1.useVeryLongPress; } });
16
+ var useTapAndHold_1 = require("./useTapAndHold");
17
+ Object.defineProperty(exports, "useTapAndHold", { enumerable: true, get: function () { return useTapAndHold_1.useTapAndHold; } });
18
+ var useTapCancel_1 = require("./useTapCancel");
19
+ Object.defineProperty(exports, "useTapCancel", { enumerable: true, get: function () { return useTapCancel_1.useTapCancel; } });
20
+ var usePressForce_1 = require("./usePressForce");
21
+ Object.defineProperty(exports, "usePressForce", { enumerable: true, get: function () { return usePressForce_1.usePressForce; } });
@@ -0,0 +1,2 @@
1
+ import type { UseDoubleTapOptions } from 'gesture-kit-core';
2
+ export declare function useDoubleTap(options: UseDoubleTapOptions): import("react-native-gesture-handler/lib/typescript/handlers/gestures/tapGesture").TapGesture;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useDoubleTap = useDoubleTap;
4
+ /** useDoubleTap — Hook that returns a configured DoubleTap gesture. */
5
+ const react_1 = require("react");
6
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
7
+ function useDoubleTap(options) {
8
+ const { onDoubleTap, maxDelay, maxDistance, enabled = true } = options;
9
+ return (0, react_1.useMemo)(() => {
10
+ let g = react_native_gesture_handler_1.Gesture.Tap().numberOfTaps(2);
11
+ if (maxDelay !== undefined)
12
+ g = g.maxDuration(maxDelay);
13
+ if (maxDistance !== undefined)
14
+ g = g.maxDistance(maxDistance);
15
+ g = g.onEnd((e) => {
16
+ const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, numberOfTaps: 2 };
17
+ onDoubleTap(event);
18
+ });
19
+ return g.enabled(enabled);
20
+ }, [onDoubleTap, maxDelay, maxDistance, enabled]);
21
+ }
@@ -0,0 +1,2 @@
1
+ import type { UseLongPressOptions } from 'gesture-kit-core';
2
+ export declare function useLongPress(options: UseLongPressOptions): import("react-native-gesture-handler/lib/typescript/handlers/gestures/longPressGesture").LongPressGesture;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useLongPress = useLongPress;
4
+ /** useLongPress — Hook that returns a configured LongPress gesture. */
5
+ const react_1 = require("react");
6
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
7
+ function useLongPress(options) {
8
+ const { onLongPress, onPressIn, onPressOut, minDuration = 500, maxDistance, enabled = true } = options;
9
+ return (0, react_1.useMemo)(() => {
10
+ let g = react_native_gesture_handler_1.Gesture.LongPress().minDuration(minDuration);
11
+ if (maxDistance !== undefined)
12
+ g = g.maxDistance(maxDistance);
13
+ if (onPressIn) {
14
+ g = g.onStart((e) => {
15
+ const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, duration: e.duration };
16
+ onPressIn(event);
17
+ });
18
+ }
19
+ g = g.onEnd((e) => {
20
+ const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, duration: e.duration };
21
+ onLongPress(event);
22
+ });
23
+ if (onPressOut) {
24
+ g = g.onFinalize((e) => {
25
+ const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, duration: e.duration };
26
+ onPressOut(event);
27
+ });
28
+ }
29
+ return g.enabled(enabled);
30
+ }, [onLongPress, onPressIn, onPressOut, minDuration, maxDistance, enabled]);
31
+ }
@@ -0,0 +1,2 @@
1
+ import type { UsePressForceOptions } from 'gesture-kit-core';
2
+ export declare function usePressForce(options: UsePressForceOptions): import("react-native-gesture-handler/lib/typescript/handlers/gestures/forceTouchGesture").ForceTouchGesture;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.usePressForce = usePressForce;
4
+ /** usePressForce — Hook for force/pressure touch. */
5
+ const react_1 = require("react");
6
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
7
+ function usePressForce(options) {
8
+ const { onPressForce, forceThreshold = 0.5, enabled = true } = options;
9
+ return (0, react_1.useMemo)(() => {
10
+ const g = react_native_gesture_handler_1.Gesture.ForceTouch()
11
+ .minForce(forceThreshold)
12
+ .onStart((e) => {
13
+ const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, force: e.force };
14
+ onPressForce(event);
15
+ })
16
+ .enabled(enabled);
17
+ return g;
18
+ }, [onPressForce, forceThreshold, enabled]);
19
+ }
@@ -0,0 +1,2 @@
1
+ import type { UseQuadTapOptions } from 'gesture-kit-core';
2
+ export declare function useQuadTap(options: UseQuadTapOptions): import("react-native-gesture-handler/lib/typescript/handlers/gestures/tapGesture").TapGesture;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useQuadTap = useQuadTap;
4
+ /** useQuadTap — Hook that returns a configured QuadTap gesture. */
5
+ const react_1 = require("react");
6
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
7
+ function useQuadTap(options) {
8
+ const { onQuadTap, maxDelay, maxDistance, enabled = true } = options;
9
+ return (0, react_1.useMemo)(() => {
10
+ let g = react_native_gesture_handler_1.Gesture.Tap().numberOfTaps(4);
11
+ if (maxDelay !== undefined)
12
+ g = g.maxDuration(maxDelay);
13
+ if (maxDistance !== undefined)
14
+ g = g.maxDistance(maxDistance);
15
+ g = g.onEnd((e) => {
16
+ const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, numberOfTaps: 4 };
17
+ onQuadTap(event);
18
+ });
19
+ return g.enabled(enabled);
20
+ }, [onQuadTap, maxDelay, maxDistance, enabled]);
21
+ }
@@ -0,0 +1,2 @@
1
+ import type { UseTapOptions } from 'gesture-kit-core';
2
+ export declare function useTap(options: UseTapOptions): import("react-native-gesture-handler/lib/typescript/handlers/gestures/tapGesture").TapGesture;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useTap = useTap;
4
+ /** useTap — Hook that returns a configured Tap gesture. */
5
+ const react_1 = require("react");
6
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
7
+ function useTap(options) {
8
+ const { onTap, numberOfTaps = 1, maxDuration, maxDistance, enabled = true } = options;
9
+ return (0, react_1.useMemo)(() => {
10
+ let g = react_native_gesture_handler_1.Gesture.Tap().numberOfTaps(numberOfTaps);
11
+ if (maxDuration !== undefined)
12
+ g = g.maxDuration(maxDuration);
13
+ if (maxDistance !== undefined)
14
+ g = g.maxDistance(maxDistance);
15
+ g = g.onEnd((e) => {
16
+ const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, numberOfTaps };
17
+ onTap(event);
18
+ });
19
+ return g.enabled(enabled);
20
+ }, [onTap, numberOfTaps, maxDuration, maxDistance, enabled]);
21
+ }
@@ -0,0 +1,2 @@
1
+ import type { UseTapAndHoldOptions } from 'gesture-kit-core';
2
+ export declare function useTapAndHold(options: UseTapAndHoldOptions): import("react-native-gesture-handler/lib/typescript/handlers/gestures/longPressGesture").LongPressGesture | import("react-native-gesture-handler/lib/typescript/handlers/gestures/gestureComposition").ExclusiveGesture;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useTapAndHold = useTapAndHold;
4
+ /** useTapAndHold — Hook for tap then hold gesture. */
5
+ const react_1 = require("react");
6
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
7
+ function useTapAndHold(options) {
8
+ const { onTapAndHold, onTap, holdDuration = 500, enabled = true } = options;
9
+ return (0, react_1.useMemo)(() => {
10
+ const holdGesture = react_native_gesture_handler_1.Gesture.LongPress()
11
+ .minDuration(holdDuration)
12
+ .onEnd((e) => {
13
+ const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, duration: e.duration };
14
+ onTapAndHold(event);
15
+ })
16
+ .enabled(enabled);
17
+ if (onTap) {
18
+ const tapGesture = react_native_gesture_handler_1.Gesture.Tap()
19
+ .onEnd((e) => {
20
+ const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, numberOfTaps: 1 };
21
+ onTap(event);
22
+ })
23
+ .enabled(enabled);
24
+ return react_native_gesture_handler_1.Gesture.Exclusive(holdGesture, tapGesture);
25
+ }
26
+ return holdGesture;
27
+ }, [onTapAndHold, onTap, holdDuration, enabled]);
28
+ }
@@ -0,0 +1,2 @@
1
+ import type { UseTapCancelOptions } from 'gesture-kit-core';
2
+ export declare function useTapCancel(options: UseTapCancelOptions): import("react-native-gesture-handler/lib/typescript/handlers/gestures/tapGesture").TapGesture;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useTapCancel = useTapCancel;
4
+ /** useTapCancel — Hook for detecting cancelled taps. */
5
+ const react_1 = require("react");
6
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
7
+ function useTapCancel(options) {
8
+ const { onTapCancel, onTapStart, maxDuration, enabled = true } = options;
9
+ return (0, react_1.useMemo)(() => {
10
+ let g = react_native_gesture_handler_1.Gesture.Tap();
11
+ if (maxDuration !== undefined)
12
+ g = g.maxDuration(maxDuration);
13
+ if (onTapStart) {
14
+ g = g.onBegin((e) => {
15
+ const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y };
16
+ onTapStart(event);
17
+ });
18
+ }
19
+ g = g.onTouchesCancelled(() => {
20
+ onTapCancel({ absoluteX: 0, absoluteY: 0, x: 0, y: 0 });
21
+ });
22
+ return g.enabled(enabled);
23
+ }, [onTapCancel, onTapStart, maxDuration, enabled]);
24
+ }
@@ -0,0 +1,2 @@
1
+ import type { UseTripleTapOptions } from 'gesture-kit-core';
2
+ export declare function useTripleTap(options: UseTripleTapOptions): import("react-native-gesture-handler/lib/typescript/handlers/gestures/tapGesture").TapGesture;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useTripleTap = useTripleTap;
4
+ /** useTripleTap — Hook that returns a configured TripleTap gesture. */
5
+ const react_1 = require("react");
6
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
7
+ function useTripleTap(options) {
8
+ const { onTripleTap, maxDelay, maxDistance, enabled = true } = options;
9
+ return (0, react_1.useMemo)(() => {
10
+ let g = react_native_gesture_handler_1.Gesture.Tap().numberOfTaps(3);
11
+ if (maxDelay !== undefined)
12
+ g = g.maxDuration(maxDelay);
13
+ if (maxDistance !== undefined)
14
+ g = g.maxDistance(maxDistance);
15
+ g = g.onEnd((e) => {
16
+ const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, numberOfTaps: 3 };
17
+ onTripleTap(event);
18
+ });
19
+ return g.enabled(enabled);
20
+ }, [onTripleTap, maxDelay, maxDistance, enabled]);
21
+ }
@@ -0,0 +1,2 @@
1
+ import type { UseVeryLongPressOptions } from 'gesture-kit-core';
2
+ export declare function useVeryLongPress(options: UseVeryLongPressOptions): import("react-native-gesture-handler/lib/typescript/handlers/gestures/longPressGesture").LongPressGesture;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useVeryLongPress = useVeryLongPress;
4
+ /** useVeryLongPress — Hook for very long press (default 1500ms). */
5
+ const react_1 = require("react");
6
+ const react_native_gesture_handler_1 = require("react-native-gesture-handler");
7
+ function useVeryLongPress(options) {
8
+ const { onVeryLongPress, onPressIn, onPressOut, minDuration = 1500, maxDistance, enabled = true } = options;
9
+ return (0, react_1.useMemo)(() => {
10
+ let g = react_native_gesture_handler_1.Gesture.LongPress().minDuration(minDuration);
11
+ if (maxDistance !== undefined)
12
+ g = g.maxDistance(maxDistance);
13
+ if (onPressIn) {
14
+ g = g.onStart((e) => {
15
+ const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, duration: e.duration };
16
+ onPressIn(event);
17
+ });
18
+ }
19
+ g = g.onEnd((e) => {
20
+ const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, duration: e.duration };
21
+ onVeryLongPress(event);
22
+ });
23
+ if (onPressOut) {
24
+ g = g.onFinalize((e) => {
25
+ const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, duration: e.duration };
26
+ onPressOut(event);
27
+ });
28
+ }
29
+ return g.enabled(enabled);
30
+ }, [onVeryLongPress, onPressIn, onPressOut, minDuration, maxDistance, enabled]);
31
+ }
@@ -0,0 +1,11 @@
1
+ export * from './types';
2
+ export { TapGesture } from './TapGesture';
3
+ export { DoubleTapGesture } from './DoubleTapGesture';
4
+ export { TripleTapGesture } from './TripleTapGesture';
5
+ export { QuadTapGesture } from './QuadTapGesture';
6
+ export { LongPressGesture } from './LongPressGesture';
7
+ export { VeryLongPressGesture } from './VeryLongPressGesture';
8
+ export { TapAndHoldGesture } from './TapAndHoldGesture';
9
+ export { TapCancelGesture } from './TapCancelGesture';
10
+ export { PressForceGesture } from './PressForceGesture';
11
+ export * from './hooks';
package/dist/index.js ADDED
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.PressForceGesture = exports.TapCancelGesture = exports.TapAndHoldGesture = exports.VeryLongPressGesture = exports.LongPressGesture = exports.QuadTapGesture = exports.TripleTapGesture = exports.DoubleTapGesture = exports.TapGesture = void 0;
18
+ // Basic Touch Gestures
19
+ __exportStar(require("./types"), exports);
20
+ // Components
21
+ var TapGesture_1 = require("./TapGesture");
22
+ Object.defineProperty(exports, "TapGesture", { enumerable: true, get: function () { return TapGesture_1.TapGesture; } });
23
+ var DoubleTapGesture_1 = require("./DoubleTapGesture");
24
+ Object.defineProperty(exports, "DoubleTapGesture", { enumerable: true, get: function () { return DoubleTapGesture_1.DoubleTapGesture; } });
25
+ var TripleTapGesture_1 = require("./TripleTapGesture");
26
+ Object.defineProperty(exports, "TripleTapGesture", { enumerable: true, get: function () { return TripleTapGesture_1.TripleTapGesture; } });
27
+ var QuadTapGesture_1 = require("./QuadTapGesture");
28
+ Object.defineProperty(exports, "QuadTapGesture", { enumerable: true, get: function () { return QuadTapGesture_1.QuadTapGesture; } });
29
+ var LongPressGesture_1 = require("./LongPressGesture");
30
+ Object.defineProperty(exports, "LongPressGesture", { enumerable: true, get: function () { return LongPressGesture_1.LongPressGesture; } });
31
+ var VeryLongPressGesture_1 = require("./VeryLongPressGesture");
32
+ Object.defineProperty(exports, "VeryLongPressGesture", { enumerable: true, get: function () { return VeryLongPressGesture_1.VeryLongPressGesture; } });
33
+ var TapAndHoldGesture_1 = require("./TapAndHoldGesture");
34
+ Object.defineProperty(exports, "TapAndHoldGesture", { enumerable: true, get: function () { return TapAndHoldGesture_1.TapAndHoldGesture; } });
35
+ var TapCancelGesture_1 = require("./TapCancelGesture");
36
+ Object.defineProperty(exports, "TapCancelGesture", { enumerable: true, get: function () { return TapCancelGesture_1.TapCancelGesture; } });
37
+ var PressForceGesture_1 = require("./PressForceGesture");
38
+ Object.defineProperty(exports, "PressForceGesture", { enumerable: true, get: function () { return PressForceGesture_1.PressForceGesture; } });
39
+ // Hooks
40
+ __exportStar(require("./hooks"), exports);
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Types for Basic Touch gestures.
3
+ */
4
+ import type { BaseGestureEvent, BaseGestureProps, TapEvent, LongPressEvent } from 'gesture-kit-core';
5
+ export interface PressForceEvent extends BaseGestureEvent {
6
+ force: number;
7
+ }
8
+ export interface TapProps extends BaseGestureProps {
9
+ onTap: (event: TapEvent) => void;
10
+ numberOfTaps?: number;
11
+ maxDuration?: number;
12
+ maxDistance?: number;
13
+ }
14
+ export interface DoubleTapProps extends BaseGestureProps {
15
+ onDoubleTap: (event: TapEvent) => void;
16
+ maxDelay?: number;
17
+ maxDistance?: number;
18
+ }
19
+ export interface TripleTapProps extends BaseGestureProps {
20
+ onTripleTap: (event: TapEvent) => void;
21
+ maxDelay?: number;
22
+ maxDistance?: number;
23
+ }
24
+ export interface QuadTapProps extends BaseGestureProps {
25
+ onQuadTap: (event: TapEvent) => void;
26
+ maxDelay?: number;
27
+ maxDistance?: number;
28
+ }
29
+ export interface LongPressProps extends BaseGestureProps {
30
+ onLongPress: (event: LongPressEvent) => void;
31
+ onPressIn?: (event: LongPressEvent) => void;
32
+ onPressOut?: (event: LongPressEvent) => void;
33
+ minDuration?: number;
34
+ maxDistance?: number;
35
+ }
36
+ export interface VeryLongPressProps extends BaseGestureProps {
37
+ onVeryLongPress: (event: LongPressEvent) => void;
38
+ onPressIn?: (event: LongPressEvent) => void;
39
+ onPressOut?: (event: LongPressEvent) => void;
40
+ minDuration?: number;
41
+ maxDistance?: number;
42
+ }
43
+ export interface TapAndHoldProps extends BaseGestureProps {
44
+ onTapAndHold: (event: LongPressEvent) => void;
45
+ onTap?: (event: TapEvent) => void;
46
+ holdDuration?: number;
47
+ }
48
+ export interface TapCancelProps extends BaseGestureProps {
49
+ onTapCancel: (event: BaseGestureEvent) => void;
50
+ onTapStart?: (event: BaseGestureEvent) => void;
51
+ maxDuration?: number;
52
+ }
53
+ export interface PressForceProps extends BaseGestureProps {
54
+ onPressForce: (event: PressForceEvent) => void;
55
+ forceThreshold?: number;
56
+ }
57
+ export interface UseTripleTapOptions {
58
+ onTripleTap: (event: TapEvent) => void;
59
+ maxDelay?: number;
60
+ maxDistance?: number;
61
+ enabled?: boolean;
62
+ }
63
+ export interface UseQuadTapOptions {
64
+ onQuadTap: (event: TapEvent) => void;
65
+ maxDelay?: number;
66
+ maxDistance?: number;
67
+ enabled?: boolean;
68
+ }
69
+ export interface UseVeryLongPressOptions {
70
+ onVeryLongPress: (event: LongPressEvent) => void;
71
+ onPressIn?: (event: LongPressEvent) => void;
72
+ onPressOut?: (event: LongPressEvent) => void;
73
+ minDuration?: number;
74
+ maxDistance?: number;
75
+ enabled?: boolean;
76
+ }
77
+ export interface UseTapAndHoldOptions {
78
+ onTapAndHold: (event: LongPressEvent) => void;
79
+ onTap?: (event: TapEvent) => void;
80
+ holdDuration?: number;
81
+ enabled?: boolean;
82
+ }
83
+ export interface UseTapCancelOptions {
84
+ onTapCancel: (event: BaseGestureEvent) => void;
85
+ onTapStart?: (event: BaseGestureEvent) => void;
86
+ maxDuration?: number;
87
+ enabled?: boolean;
88
+ }
89
+ export interface UsePressForceOptions {
90
+ onPressForce: (event: PressForceEvent) => void;
91
+ forceThreshold?: number;
92
+ enabled?: boolean;
93
+ }
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * Types for Basic Touch gestures.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "gesture-kit-basic-touch",
3
+ "version": "1.0.0",
4
+ "description": "Basic touch gestures: tap, double-tap, long-press, and more",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": ["dist", "README.md"],
8
+ "scripts": {
9
+ "build": "tsc",
10
+ "prepare": "npm run build",
11
+ "typecheck": "tsc --noEmit"
12
+ },
13
+ "dependencies": {
14
+ "gesture-kit-core": "^1.0.0"
15
+ },
16
+ "peerDependencies": {
17
+ "react": ">=18.0.0",
18
+ "react-native": ">=0.71.0",
19
+ "react-native-gesture-handler": ">=2.10.0"
20
+ },
21
+ "devDependencies": {
22
+ "@types/react": "^18.2.0",
23
+ "react": "^18.2.0",
24
+ "react-native": "^0.73.11",
25
+ "react-native-gesture-handler": "^2.30.0",
26
+ "typescript": "^5.9.3"
27
+ },
28
+ "keywords": ["react-native", "gesture", "tap", "long-press", "double-tap"],
29
+ "license": "MIT"
30
+ }