@tamagui/sheet 2.0.0-rc.3 → 2.0.0-rc.31

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 (207) hide show
  1. package/.turbo/turbo-build.log +2 -0
  2. package/controller/index.cjs +2 -0
  3. package/controller/index.js +2 -0
  4. package/controller/index.native.cjs +2 -0
  5. package/controller/index.native.js +2 -0
  6. package/dist/cjs/SheetImplementationCustom.cjs +32 -33
  7. package/dist/cjs/SheetImplementationCustom.native.js +28 -24
  8. package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
  9. package/dist/cjs/useGestureHandlerPan.cjs +1 -1
  10. package/dist/cjs/useGestureHandlerPan.native.js +1 -1
  11. package/dist/cjs/useGestureHandlerPan.native.js.map +1 -1
  12. package/dist/esm/SheetImplementationCustom.mjs +33 -34
  13. package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
  14. package/dist/esm/SheetImplementationCustom.native.js +29 -25
  15. package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
  16. package/dist/esm/index.js +11 -11
  17. package/dist/esm/index.js.map +1 -6
  18. package/dist/esm/useGestureHandlerPan.mjs +1 -1
  19. package/dist/esm/useGestureHandlerPan.mjs.map +1 -1
  20. package/dist/esm/useGestureHandlerPan.native.js +1 -1
  21. package/dist/esm/useGestureHandlerPan.native.js.map +1 -1
  22. package/dist/jsx/SheetImplementationCustom.mjs +33 -34
  23. package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
  24. package/dist/jsx/SheetImplementationCustom.native.js +28 -24
  25. package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
  26. package/dist/jsx/index.js +11 -11
  27. package/dist/jsx/index.js.map +1 -6
  28. package/dist/jsx/useGestureHandlerPan.mjs +1 -1
  29. package/dist/jsx/useGestureHandlerPan.mjs.map +1 -1
  30. package/dist/jsx/useGestureHandlerPan.native.js +1 -1
  31. package/dist/jsx/useGestureHandlerPan.native.js.map +1 -1
  32. package/next.md +78 -0
  33. package/package.json +31 -46
  34. package/setup-gesture-handler/index.cjs +2 -0
  35. package/setup-gesture-handler/index.js +2 -0
  36. package/setup-gesture-handler/index.native.cjs +2 -0
  37. package/setup-gesture-handler/index.native.js +2 -0
  38. package/setup-gesture-handler.cjs +1 -0
  39. package/src/SheetImplementationCustom.tsx +69 -38
  40. package/src/types.tsx +5 -0
  41. package/src/useGestureHandlerPan.tsx +5 -3
  42. package/tsconfig.json +56 -0
  43. package/types/Sheet.d.ts +3 -0
  44. package/types/Sheet.d.ts.map +1 -1
  45. package/types/SheetImplementationCustom.d.ts +3 -0
  46. package/types/SheetImplementationCustom.d.ts.map +1 -1
  47. package/types/createSheet.d.ts +3 -0
  48. package/types/createSheet.d.ts.map +1 -1
  49. package/types/types.d.ts +6 -0
  50. package/types/types.d.ts.map +1 -1
  51. package/types/useGestureHandlerPan.d.ts.map +1 -1
  52. package/dist/cjs/GestureDetectorWrapper.js +0 -29
  53. package/dist/cjs/GestureDetectorWrapper.js.map +0 -6
  54. package/dist/cjs/GestureSheetContext.js +0 -43
  55. package/dist/cjs/GestureSheetContext.js.map +0 -6
  56. package/dist/cjs/Sheet.js +0 -104
  57. package/dist/cjs/Sheet.js.map +0 -6
  58. package/dist/cjs/SheetContext.js +0 -28
  59. package/dist/cjs/SheetContext.js.map +0 -6
  60. package/dist/cjs/SheetController.js +0 -52
  61. package/dist/cjs/SheetController.js.map +0 -6
  62. package/dist/cjs/SheetImplementationCustom.js +0 -393
  63. package/dist/cjs/SheetImplementationCustom.js.map +0 -6
  64. package/dist/cjs/SheetScrollView.js +0 -137
  65. package/dist/cjs/SheetScrollView.js.map +0 -6
  66. package/dist/cjs/constants.js +0 -24
  67. package/dist/cjs/constants.js.map +0 -6
  68. package/dist/cjs/contexts.js +0 -33
  69. package/dist/cjs/contexts.js.map +0 -6
  70. package/dist/cjs/controller.js +0 -23
  71. package/dist/cjs/controller.js.map +0 -6
  72. package/dist/cjs/createSheet.js +0 -152
  73. package/dist/cjs/createSheet.js.map +0 -6
  74. package/dist/cjs/gestureState.js +0 -34
  75. package/dist/cjs/gestureState.js.map +0 -6
  76. package/dist/cjs/helpers.js +0 -26
  77. package/dist/cjs/helpers.js.map +0 -6
  78. package/dist/cjs/index.js +0 -25
  79. package/dist/cjs/index.js.map +0 -6
  80. package/dist/cjs/nativeSheet.js +0 -56
  81. package/dist/cjs/nativeSheet.js.map +0 -6
  82. package/dist/cjs/setupGestureHandler.js +0 -38
  83. package/dist/cjs/setupGestureHandler.js.map +0 -6
  84. package/dist/cjs/types.js +0 -14
  85. package/dist/cjs/types.js.map +0 -6
  86. package/dist/cjs/useGestureHandlerPan.js +0 -126
  87. package/dist/cjs/useGestureHandlerPan.js.map +0 -6
  88. package/dist/cjs/useKeyboardControllerSheet.js +0 -34
  89. package/dist/cjs/useKeyboardControllerSheet.js.map +0 -6
  90. package/dist/cjs/useSheet.js +0 -22
  91. package/dist/cjs/useSheet.js.map +0 -6
  92. package/dist/cjs/useSheetController.js +0 -39
  93. package/dist/cjs/useSheetController.js.map +0 -6
  94. package/dist/cjs/useSheetOffscreenSize.js +0 -43
  95. package/dist/cjs/useSheetOffscreenSize.js.map +0 -6
  96. package/dist/cjs/useSheetOpenState.js +0 -37
  97. package/dist/cjs/useSheetOpenState.js.map +0 -6
  98. package/dist/cjs/useSheetProviderProps.js +0 -130
  99. package/dist/cjs/useSheetProviderProps.js.map +0 -6
  100. package/dist/cjs/useSheetScrollViewGestures.js +0 -102
  101. package/dist/cjs/useSheetScrollViewGestures.js.map +0 -6
  102. package/dist/esm/GestureDetectorWrapper.js +0 -15
  103. package/dist/esm/GestureDetectorWrapper.js.map +0 -6
  104. package/dist/esm/GestureSheetContext.js +0 -28
  105. package/dist/esm/GestureSheetContext.js.map +0 -6
  106. package/dist/esm/Sheet.js +0 -92
  107. package/dist/esm/Sheet.js.map +0 -6
  108. package/dist/esm/SheetContext.js +0 -13
  109. package/dist/esm/SheetContext.js.map +0 -6
  110. package/dist/esm/SheetController.js +0 -31
  111. package/dist/esm/SheetController.js.map +0 -6
  112. package/dist/esm/SheetImplementationCustom.js +0 -395
  113. package/dist/esm/SheetImplementationCustom.js.map +0 -6
  114. package/dist/esm/SheetScrollView.js +0 -122
  115. package/dist/esm/SheetScrollView.js.map +0 -6
  116. package/dist/esm/constants.js +0 -8
  117. package/dist/esm/constants.js.map +0 -6
  118. package/dist/esm/contexts.js +0 -9
  119. package/dist/esm/contexts.js.map +0 -6
  120. package/dist/esm/controller.js +0 -11
  121. package/dist/esm/controller.js.map +0 -6
  122. package/dist/esm/createSheet.js +0 -153
  123. package/dist/esm/createSheet.js.map +0 -6
  124. package/dist/esm/gestureState.js +0 -18
  125. package/dist/esm/gestureState.js.map +0 -6
  126. package/dist/esm/helpers.js +0 -10
  127. package/dist/esm/helpers.js.map +0 -6
  128. package/dist/esm/nativeSheet.js +0 -46
  129. package/dist/esm/nativeSheet.js.map +0 -6
  130. package/dist/esm/setupGestureHandler.js +0 -22
  131. package/dist/esm/setupGestureHandler.js.map +0 -6
  132. package/dist/esm/types.js +0 -1
  133. package/dist/esm/types.js.map +0 -6
  134. package/dist/esm/useGestureHandlerPan.js +0 -111
  135. package/dist/esm/useGestureHandlerPan.js.map +0 -6
  136. package/dist/esm/useKeyboardControllerSheet.js +0 -18
  137. package/dist/esm/useKeyboardControllerSheet.js.map +0 -6
  138. package/dist/esm/useSheet.js +0 -6
  139. package/dist/esm/useSheet.js.map +0 -6
  140. package/dist/esm/useSheetController.js +0 -15
  141. package/dist/esm/useSheetController.js.map +0 -6
  142. package/dist/esm/useSheetOffscreenSize.js +0 -27
  143. package/dist/esm/useSheetOffscreenSize.js.map +0 -6
  144. package/dist/esm/useSheetOpenState.js +0 -22
  145. package/dist/esm/useSheetOpenState.js.map +0 -6
  146. package/dist/esm/useSheetProviderProps.js +0 -109
  147. package/dist/esm/useSheetProviderProps.js.map +0 -6
  148. package/dist/esm/useSheetScrollViewGestures.js +0 -86
  149. package/dist/esm/useSheetScrollViewGestures.js.map +0 -6
  150. package/dist/jsx/GestureDetectorWrapper.js +0 -15
  151. package/dist/jsx/GestureDetectorWrapper.js.map +0 -6
  152. package/dist/jsx/GestureSheetContext.js +0 -28
  153. package/dist/jsx/GestureSheetContext.js.map +0 -6
  154. package/dist/jsx/Sheet.js +0 -92
  155. package/dist/jsx/Sheet.js.map +0 -6
  156. package/dist/jsx/SheetContext.js +0 -13
  157. package/dist/jsx/SheetContext.js.map +0 -6
  158. package/dist/jsx/SheetController.js +0 -31
  159. package/dist/jsx/SheetController.js.map +0 -6
  160. package/dist/jsx/SheetImplementationCustom.js +0 -395
  161. package/dist/jsx/SheetImplementationCustom.js.map +0 -6
  162. package/dist/jsx/SheetScrollView.js +0 -122
  163. package/dist/jsx/SheetScrollView.js.map +0 -6
  164. package/dist/jsx/constants.js +0 -8
  165. package/dist/jsx/constants.js.map +0 -6
  166. package/dist/jsx/contexts.js +0 -9
  167. package/dist/jsx/contexts.js.map +0 -6
  168. package/dist/jsx/controller.js +0 -11
  169. package/dist/jsx/controller.js.map +0 -6
  170. package/dist/jsx/createSheet.js +0 -153
  171. package/dist/jsx/createSheet.js.map +0 -6
  172. package/dist/jsx/gestureState.js +0 -18
  173. package/dist/jsx/gestureState.js.map +0 -6
  174. package/dist/jsx/helpers.js +0 -10
  175. package/dist/jsx/helpers.js.map +0 -6
  176. package/dist/jsx/nativeSheet.js +0 -46
  177. package/dist/jsx/nativeSheet.js.map +0 -6
  178. package/dist/jsx/setupGestureHandler.js +0 -22
  179. package/dist/jsx/setupGestureHandler.js.map +0 -6
  180. package/dist/jsx/types.js +0 -1
  181. package/dist/jsx/types.js.map +0 -6
  182. package/dist/jsx/useGestureHandlerPan.js +0 -111
  183. package/dist/jsx/useGestureHandlerPan.js.map +0 -6
  184. package/dist/jsx/useKeyboardControllerSheet.js +0 -18
  185. package/dist/jsx/useKeyboardControllerSheet.js.map +0 -6
  186. package/dist/jsx/useSheet.js +0 -6
  187. package/dist/jsx/useSheet.js.map +0 -6
  188. package/dist/jsx/useSheetController.js +0 -15
  189. package/dist/jsx/useSheetController.js.map +0 -6
  190. package/dist/jsx/useSheetOffscreenSize.js +0 -27
  191. package/dist/jsx/useSheetOffscreenSize.js.map +0 -6
  192. package/dist/jsx/useSheetOpenState.js +0 -22
  193. package/dist/jsx/useSheetOpenState.js.map +0 -6
  194. package/dist/jsx/useSheetProviderProps.js +0 -109
  195. package/dist/jsx/useSheetProviderProps.js.map +0 -6
  196. package/dist/jsx/useSheetScrollViewGestures.js +0 -86
  197. package/dist/jsx/useSheetScrollViewGestures.js.map +0 -6
  198. package/types/GestureDetectorWrapper.native.d.ts +0 -14
  199. package/types/GestureDetectorWrapper.native.d.ts.map +0 -1
  200. package/types/gestureState.native.d.ts +0 -12
  201. package/types/gestureState.native.d.ts.map +0 -1
  202. package/types/setupGestureHandler.native.d.ts +0 -41
  203. package/types/setupGestureHandler.native.d.ts.map +0 -1
  204. package/types/useGestureHandlerPan.native.d.ts +0 -33
  205. package/types/useGestureHandlerPan.native.d.ts.map +0 -1
  206. package/types/useSheetScrollViewGestures.web.d.ts +0 -15
  207. package/types/useSheetScrollViewGestures.web.d.ts.map +0 -1
@@ -1,109 +0,0 @@
1
- import React from "react";
2
- import { useConfiguration } from "@tamagui/core";
3
- import { useConstant } from "@tamagui/use-constant";
4
- import { useControllableState } from "@tamagui/use-controllable-state";
5
- function useSheetProviderProps(props, state, options = {}) {
6
- const handleRef = React.useRef(null), contentRef = React.useRef(null), [frameSize, setFrameSize] = React.useState(0), [maxContentSize, setMaxContentSize] = React.useState(0), snapPointsMode = props.snapPointsMode ?? "percent", snapPointsProp = props.snapPoints ?? (snapPointsMode === "percent" ? [80] : snapPointsMode === "constant" ? [256] : ["fit"]), hasFit = snapPointsProp[0] === "fit", snapPoints = React.useMemo(
7
- () => props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp,
8
- [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]
9
- ), [position_, setPositionImmediate] = useControllableState({
10
- prop: props.position,
11
- defaultProp: props.defaultPosition || (state.open ? 0 : -1),
12
- onChange: props.onPositionChange,
13
- strategy: "most-recent-wins"
14
- }), position = state.open === !1 ? -1 : position_, { open } = state, setPosition = React.useCallback(
15
- (next) => {
16
- props.dismissOnSnapToBottom && next === snapPoints.length - 1 ? state.setOpen(!1) : setPositionImmediate(next);
17
- },
18
- [props.dismissOnSnapToBottom, snapPoints.length, setPositionImmediate, state.setOpen]
19
- );
20
- process.env.NODE_ENV === "development" && (snapPointsMode === "mixed" && snapPoints.some((p) => {
21
- if (typeof p == "string") {
22
- if (p === "fit")
23
- return !1;
24
- if (p.endsWith("%")) {
25
- const n = Number(p.slice(0, -1));
26
- return n < 0 || n > 100;
27
- }
28
- return !0;
29
- }
30
- return typeof p != "number" || p < 0;
31
- }) && console.warn(
32
- '\u26A0\uFE0F Invalid snapPoint given, snapPoints must be positive numeric values, string percentages between 0-100%, or "fit" when snapPointsMode is mixed'
33
- ), snapPointsMode === "mixed" && snapPoints.indexOf("fit") > 0 && console.warn(
34
- '\u26A0\uFE0F Invalid snapPoint given, "fit" must be the first/largest snap point when snapPointsMode is mixed'
35
- ), snapPointsMode === "fit" && (snapPoints.length !== (props.dismissOnSnapToBottom ? 2 : 1) || snapPoints[0] !== "fit") && console.warn(
36
- "\u26A0\uFE0F Invalid snapPoint given, there are no snap points when snapPointsMode is fit"
37
- ), snapPointsMode === "constant" && snapPoints.some((p) => typeof p != "number" || p < 0) && console.warn(
38
- "\u26A0\uFE0F Invalid snapPoint given, snapPoints must be positive numeric values when snapPointsMode is constant"
39
- ), snapPointsMode === "percent" && snapPoints.some((p) => typeof p != "number" || p < 0 || p > 100) && console.warn(
40
- "\u26A0\uFE0F Invalid snapPoint given, snapPoints must be numeric values between 0 and 100 when snapPointsMode is percent"
41
- )), open && props.dismissOnSnapToBottom && position === snapPoints.length - 1 && setPositionImmediate(0);
42
- const shouldSetPositionOpen = open && position < 0;
43
- React.useEffect(() => {
44
- shouldSetPositionOpen && setPosition(0);
45
- }, [setPosition, shouldSetPositionOpen]);
46
- const { animationDriver } = useConfiguration();
47
- if (!animationDriver)
48
- throw new Error(
49
- process.env.NODE_ENV === "production" ? "\u274C 008" : "Must set animations in tamagui.config.ts"
50
- );
51
- const scrollBridge = useConstant(() => {
52
- const parentDragListeners = /* @__PURE__ */ new Set(), bridge = {
53
- hasScrollableContent: !1,
54
- enabled: !1,
55
- y: 0,
56
- paneY: 0,
57
- paneMinY: 0,
58
- scrollStartY: -1,
59
- drag: () => {
60
- },
61
- release: () => {
62
- },
63
- scrollLock: !1,
64
- isParentDragging: !1,
65
- onParentDragging: (cb) => (parentDragListeners.add(cb), () => {
66
- parentDragListeners.delete(cb);
67
- }),
68
- setParentDragging: (val) => {
69
- val !== bridge.isParentDragging && (bridge.isParentDragging = val, parentDragListeners.forEach((cb) => cb(val)));
70
- }
71
- };
72
- return bridge;
73
- });
74
- let disableRemoveScroll;
75
- props.disableRemoveScroll !== void 0 ? disableRemoveScroll = props.disableRemoveScroll || !open || !props.modal : props.forceRemoveScrollEnabled !== void 0 ? (process.env.NODE_ENV === "development" && console.warn(
76
- "[Sheet] forceRemoveScrollEnabled is deprecated. Use disableRemoveScroll instead."
77
- ), disableRemoveScroll = !props.forceRemoveScrollEnabled) : disableRemoveScroll = !open || !props.modal;
78
- const maxSnapPoint = snapPoints[0];
79
- return {
80
- screenSize: snapPointsMode === "percent" ? frameSize / ((typeof maxSnapPoint == "number" ? maxSnapPoint : 100) / 100) : maxContentSize,
81
- maxSnapPoint,
82
- disableRemoveScroll,
83
- scrollBridge,
84
- modal: !!props.modal,
85
- open: state.open,
86
- setOpen: state.setOpen,
87
- hidden: !!state.isHidden,
88
- contentRef,
89
- handleRef,
90
- frameSize,
91
- setFrameSize,
92
- dismissOnOverlayPress: props.dismissOnOverlayPress ?? !0,
93
- dismissOnSnapToBottom: props.dismissOnSnapToBottom ?? !1,
94
- onOverlayComponent: options.onOverlayComponent,
95
- scope: props.__scopeSheet,
96
- hasFit,
97
- position,
98
- snapPoints,
99
- snapPointsMode,
100
- setMaxContentSize,
101
- setPosition,
102
- setPositionImmediate,
103
- onlyShowFrame: !1
104
- };
105
- }
106
- export {
107
- useSheetProviderProps
108
- };
109
- //# sourceMappingURL=useSheetProviderProps.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/useSheetProviderProps.tsx"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,86 +0,0 @@
1
- import { useEffect, useRef } from "react";
2
- function useSheetScrollViewGestures({
3
- scrollRef,
4
- scrollBridge,
5
- hasScrollableContent
6
- }) {
7
- const state = useRef({
8
- startY: 0,
9
- lastY: 0,
10
- owner: "none",
11
- panDragOffset: 0,
12
- dys: [],
13
- scrollYAtGestureStart: 0
14
- });
15
- return useEffect(() => {
16
- if (!scrollRef.current) return;
17
- const controller = new AbortController(), node = scrollRef.current?.getScrollableNode();
18
- if (!node) return;
19
- node.style.overscrollBehavior = "contain";
20
- let originalOverflow = "";
21
- const disableScroll = () => {
22
- node.style.overflowY !== "hidden" && (originalOverflow = node.style.overflowY, node.style.overflowY = "hidden");
23
- }, enableScroll = () => {
24
- node.style.overflowY = originalOverflow;
25
- }, handleTouchStart = (e) => {
26
- const touch = e.touches[0];
27
- if (!touch) return;
28
- const currentScrollY = node.scrollTop;
29
- state.current = {
30
- startY: touch.pageY,
31
- lastY: touch.pageY,
32
- owner: "none",
33
- panDragOffset: 0,
34
- dys: [],
35
- scrollYAtGestureStart: currentScrollY
36
- }, scrollBridge.scrollStartY = touch.pageY;
37
- }, handleTouchMove = (e) => {
38
- const touch = e.touches[0];
39
- if (!touch) return;
40
- const { current: s } = state, pageY = touch.pageY, dy = pageY - s.lastY;
41
- if (s.lastY = pageY, dy === 0) return;
42
- const isDraggingDown = dy > 0, currentScrollY = node.scrollTop, isPaneAtTop = scrollBridge.paneY <= scrollBridge.paneMinY + 5;
43
- scrollBridge.y = currentScrollY;
44
- let shouldPanOwn = !1;
45
- isPaneAtTop ? currentScrollY <= 0 && isDraggingDown && (shouldPanOwn = !0) : shouldPanOwn = !0;
46
- const newOwner = shouldPanOwn ? "pan" : "scroll";
47
- if (newOwner !== s.owner && (newOwner === "pan" ? (s.panDragOffset = 0, s.dys = [], scrollBridge.setParentDragging(!0), disableScroll()) : (scrollBridge.setParentDragging(!1), scrollBridge.scrollLock = !1, enableScroll()), s.owner = newOwner), s.owner === "pan")
48
- e.cancelable && e.preventDefault(), s.panDragOffset += dy, scrollBridge.drag(s.panDragOffset), s.dys.push(dy), s.dys.length > 100 && (s.dys = s.dys.slice(-10));
49
- else if (s.owner === "scroll") {
50
- const scrollDelta = -dy, maxScrollY = node.scrollHeight - node.clientHeight, newScrollY = Math.max(0, Math.min(maxScrollY, currentScrollY + scrollDelta));
51
- newScrollY !== currentScrollY && (node.scrollTop = newScrollY, scrollBridge.y = newScrollY);
52
- }
53
- }, handleTouchEnd = () => {
54
- const { current: s } = state;
55
- if (s.owner === "pan") {
56
- scrollBridge.setParentDragging(!1);
57
- let vy = 0;
58
- if (s.dys.length) {
59
- const recentDys = s.dys.slice(-10);
60
- vy = recentDys.reduce((a, b) => a + b, 0) / recentDys.length * 0.04;
61
- }
62
- scrollBridge.release({ dragAt: s.panDragOffset, vy });
63
- }
64
- enableScroll(), s.owner = "none", s.panDragOffset = 0, s.dys = [];
65
- };
66
- return node.addEventListener("touchstart", handleTouchStart, {
67
- signal: controller.signal,
68
- passive: !0
69
- }), node.addEventListener("touchmove", handleTouchMove, {
70
- signal: controller.signal,
71
- passive: !1
72
- }), node.addEventListener("touchend", handleTouchEnd, {
73
- signal: controller.signal,
74
- passive: !0
75
- }), node.addEventListener("touchcancel", handleTouchEnd, {
76
- signal: controller.signal,
77
- passive: !0
78
- }), () => {
79
- enableScroll(), controller.abort();
80
- };
81
- }, [scrollRef, scrollBridge, hasScrollableContent]), {};
82
- }
83
- export {
84
- useSheetScrollViewGestures
85
- };
86
- //# sourceMappingURL=useSheetScrollViewGestures.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/useSheetScrollViewGestures.ts"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,14 +0,0 @@
1
- import React from 'react';
2
- interface GestureDetectorWrapperProps {
3
- gesture: any;
4
- children: React.ReactNode;
5
- }
6
- /**
7
- * Conditionally wraps children with GestureDetector when RNGH is available.
8
- * Falls back to just rendering children when RNGH is not set up.
9
- *
10
- * @platform native
11
- */
12
- export declare function GestureDetectorWrapper({ gesture, children, }: GestureDetectorWrapperProps): import("react/jsx-runtime").JSX.Element;
13
- export {};
14
- //# sourceMappingURL=GestureDetectorWrapper.native.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GestureDetectorWrapper.native.d.ts","sourceRoot":"","sources":["../src/GestureDetectorWrapper.native.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,UAAU,2BAA2B;IACnC,OAAO,EAAE,GAAG,CAAA;IACZ,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,QAAQ,GACT,EAAE,2BAA2B,2CAQ7B"}
@@ -1,12 +0,0 @@
1
- import type { PanGesture } from 'react-native-gesture-handler';
2
- export type GestureHandlerState = {
3
- enabled: boolean;
4
- GestureDetector: any | null;
5
- Gesture: any | null;
6
- };
7
- export declare function setGestureHandlerState(newState: GestureHandlerState): void;
8
- export declare function getGestureHandlerState(): GestureHandlerState;
9
- export declare function isGestureHandlerEnabled(): boolean;
10
- export declare function createPanGesture(): PanGesture | null;
11
- export declare function getGestureDetector(): any | null;
12
- //# sourceMappingURL=gestureState.native.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gestureState.native.d.ts","sourceRoot":"","sources":["../src/gestureState.native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAE9D,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,EAAE,GAAG,GAAG,IAAI,CAAA;IAC3B,OAAO,EAAE,GAAG,GAAG,IAAI,CAAA;CACpB,CAAA;AAQD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAE1E;AAED,wBAAgB,sBAAsB,IAAI,mBAAmB,CAE5D;AAED,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAGD,wBAAgB,gBAAgB,IAAI,UAAU,GAAG,IAAI,CAGpD;AAGD,wBAAgB,kBAAkB,IAAI,GAAG,GAAG,IAAI,CAE/C"}
@@ -1,41 +0,0 @@
1
- export interface GestureHandlerConfig {
2
- /**
3
- * The Gesture object from react-native-gesture-handler
4
- * Used to create Pan, Native, and other gesture types
5
- */
6
- Gesture: any;
7
- /**
8
- * The GestureDetector component from react-native-gesture-handler
9
- * Used to wrap components that should respond to gestures
10
- */
11
- GestureDetector: any;
12
- }
13
- /**
14
- * Sets up native gesture handler support for Sheet.
15
- * Call this function early in your app (e.g., in index.js) to enable smooth
16
- * gesture coordination between Sheet and ScrollView on iOS.
17
- *
18
- * When enabled, Sheet uses react-native-gesture-handler's simultaneousHandlers
19
- * for native-quality gesture coordination. Without this setup, Sheet falls back
20
- * to React Native's PanResponder which has minor limitations on iOS.
21
- *
22
- * @example
23
- * ```tsx
24
- * import { setupGestureHandler } from '@tamagui/sheet/setup-gesture-handler'
25
- * import { Gesture, GestureDetector, GestureHandlerRootView } from 'react-native-gesture-handler'
26
- *
27
- * // Call once at app startup
28
- * setupGestureHandler({ Gesture, GestureDetector })
29
- *
30
- * // Wrap your app with GestureHandlerRootView
31
- * export default function App() {
32
- * return (
33
- * <GestureHandlerRootView style={{ flex: 1 }}>
34
- * <YourApp />
35
- * </GestureHandlerRootView>
36
- * )
37
- * }
38
- * ```
39
- */
40
- export declare function setupGestureHandler(config: GestureHandlerConfig): void;
41
- //# sourceMappingURL=setupGestureHandler.native.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setupGestureHandler.native.d.ts","sourceRoot":"","sources":["../src/setupGestureHandler.native.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,OAAO,EAAE,GAAG,CAAA;IACZ;;;OAGG;IACH,eAAe,EAAE,GAAG,CAAA;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAwBtE"}
@@ -1,33 +0,0 @@
1
- import type { PanGesture } from 'react-native-gesture-handler';
2
- import type { ScrollBridge } from './types';
3
- interface GesturePanConfig {
4
- positions: number[];
5
- frameSize: number;
6
- setPosition: (pos: number) => void;
7
- animateTo: (pos: number) => void;
8
- stopSpring: () => void;
9
- scrollBridge: ScrollBridge;
10
- setIsDragging: (val: boolean) => void;
11
- getCurrentPosition: () => number;
12
- resisted: (val: number, minY: number) => number;
13
- hasScrollView: boolean;
14
- disableDrag?: boolean;
15
- isShowingInnerSheet?: boolean;
16
- }
17
- interface GesturePanResult {
18
- panGesture: PanGesture | null;
19
- panGestureRef: React.RefObject<PanGesture | null>;
20
- gestureHandlerEnabled: boolean;
21
- }
22
- /**
23
- * Hook that creates a Gesture.Pan() handler for use with react-native-gesture-handler.
24
- * This provides native-quality gesture coordination between Sheet and ScrollView.
25
- *
26
- * Based on patterns from react-native-actions-sheet and gorhom/bottom-sheet.
27
- *
28
- * @platform native - This hook only returns a gesture on native platforms.
29
- * On web, it returns null for the gesture.
30
- */
31
- export declare function useGestureHandlerPan(config: GesturePanConfig): GesturePanResult;
32
- export {};
33
- //# sourceMappingURL=useGestureHandlerPan.native.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useGestureHandlerPan.native.d.ts","sourceRoot":"","sources":["../src/useGestureHandlerPan.native.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,kBAAkB,EAAE,MAAM,MAAM,CAAA;IAChC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/C,aAAa,EAAE,OAAO,CAAA;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,UAAU,gBAAgB;IACxB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;IAC7B,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;IACjD,qBAAqB,EAAE,OAAO,CAAA;CAC/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CA0K/E"}
@@ -1,15 +0,0 @@
1
- import type { ScrollView as RNScrollView } from 'react-native';
2
- import type { ScrollBridge } from './types';
3
- interface UseSheetScrollViewGesturesProps {
4
- scrollRef: React.RefObject<RNScrollView | null>;
5
- scrollBridge: ScrollBridge;
6
- hasScrollableContent: boolean;
7
- }
8
- /**
9
- * Web-specific touch gesture handling for Sheet ScrollView.
10
- * Uses direct DOM touch events for reliable gesture handling.
11
- * The React Responder system loses events once browser scroll takes over.
12
- */
13
- export declare function useSheetScrollViewGestures({ scrollRef, scrollBridge, hasScrollableContent, }: UseSheetScrollViewGesturesProps): void;
14
- export {};
15
- //# sourceMappingURL=useSheetScrollViewGestures.web.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSheetScrollViewGestures.web.d.ts","sourceRoot":"","sources":["../src/useSheetScrollViewGestures.web.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAe3C,UAAU,+BAA+B;IACvC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IAC/C,YAAY,EAAE,YAAY,CAAA;IAC1B,oBAAoB,EAAE,OAAO,CAAA;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,SAAS,EACT,YAAY,EACZ,oBAAoB,GACrB,EAAE,+BAA+B,QA+KjC"}