@tamagui/sheet 2.0.0-1769233344020 → 2.0.0-1769288527117

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 (146) hide show
  1. package/dist/cjs/GestureDetectorWrapper.cjs +48 -0
  2. package/dist/cjs/GestureDetectorWrapper.js +29 -0
  3. package/dist/cjs/GestureDetectorWrapper.js.map +6 -0
  4. package/dist/cjs/GestureDetectorWrapper.native.js +53 -0
  5. package/dist/cjs/GestureDetectorWrapper.native.js.map +1 -0
  6. package/dist/cjs/GestureSheetContext.cjs +52 -0
  7. package/dist/cjs/GestureSheetContext.js +43 -0
  8. package/dist/cjs/GestureSheetContext.js.map +6 -0
  9. package/dist/cjs/GestureSheetContext.native.js +56 -0
  10. package/dist/cjs/GestureSheetContext.native.js.map +1 -0
  11. package/dist/cjs/SheetImplementationCustom.cjs +85 -40
  12. package/dist/cjs/SheetImplementationCustom.js +81 -58
  13. package/dist/cjs/SheetImplementationCustom.js.map +1 -1
  14. package/dist/cjs/SheetImplementationCustom.native.js +105 -50
  15. package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
  16. package/dist/cjs/SheetScrollView.cjs +88 -17
  17. package/dist/cjs/SheetScrollView.js +85 -26
  18. package/dist/cjs/SheetScrollView.js.map +1 -1
  19. package/dist/cjs/SheetScrollView.native.js +102 -19
  20. package/dist/cjs/SheetScrollView.native.js.map +1 -1
  21. package/dist/cjs/gestureState.cjs +39 -0
  22. package/dist/cjs/gestureState.js +34 -0
  23. package/dist/cjs/gestureState.js.map +6 -0
  24. package/dist/cjs/gestureState.native.js +42 -0
  25. package/dist/cjs/gestureState.native.js.map +1 -0
  26. package/dist/cjs/setupGestureHandler.cjs +46 -0
  27. package/dist/cjs/setupGestureHandler.js +38 -0
  28. package/dist/cjs/setupGestureHandler.js.map +6 -0
  29. package/dist/cjs/setupGestureHandler.native.js +50 -0
  30. package/dist/cjs/setupGestureHandler.native.js.map +1 -0
  31. package/dist/cjs/useGestureHandlerPan.cjs +126 -0
  32. package/dist/cjs/useGestureHandlerPan.js +117 -0
  33. package/dist/cjs/useGestureHandlerPan.js.map +6 -0
  34. package/dist/cjs/useGestureHandlerPan.native.js +135 -0
  35. package/dist/cjs/useGestureHandlerPan.native.js.map +1 -0
  36. package/dist/esm/GestureDetectorWrapper.js +15 -0
  37. package/dist/esm/GestureDetectorWrapper.js.map +6 -0
  38. package/dist/esm/GestureDetectorWrapper.mjs +25 -0
  39. package/dist/esm/GestureDetectorWrapper.mjs.map +1 -0
  40. package/dist/esm/GestureDetectorWrapper.native.js +27 -0
  41. package/dist/esm/GestureDetectorWrapper.native.js.map +1 -0
  42. package/dist/esm/GestureSheetContext.js +28 -0
  43. package/dist/esm/GestureSheetContext.js.map +6 -0
  44. package/dist/esm/GestureSheetContext.mjs +28 -0
  45. package/dist/esm/GestureSheetContext.mjs.map +1 -0
  46. package/dist/esm/GestureSheetContext.native.js +29 -0
  47. package/dist/esm/GestureSheetContext.native.js.map +1 -0
  48. package/dist/esm/SheetImplementationCustom.js +83 -57
  49. package/dist/esm/SheetImplementationCustom.js.map +1 -1
  50. package/dist/esm/SheetImplementationCustom.mjs +85 -40
  51. package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
  52. package/dist/esm/SheetImplementationCustom.native.js +105 -50
  53. package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
  54. package/dist/esm/SheetScrollView.js +87 -26
  55. package/dist/esm/SheetScrollView.js.map +1 -1
  56. package/dist/esm/SheetScrollView.mjs +89 -18
  57. package/dist/esm/SheetScrollView.mjs.map +1 -1
  58. package/dist/esm/SheetScrollView.native.js +103 -20
  59. package/dist/esm/SheetScrollView.native.js.map +1 -1
  60. package/dist/esm/gestureState.js +18 -0
  61. package/dist/esm/gestureState.js.map +6 -0
  62. package/dist/esm/gestureState.mjs +13 -0
  63. package/dist/esm/gestureState.mjs.map +1 -0
  64. package/dist/esm/gestureState.native.js +13 -0
  65. package/dist/esm/gestureState.native.js.map +1 -0
  66. package/dist/esm/setupGestureHandler.js +22 -0
  67. package/dist/esm/setupGestureHandler.js.map +6 -0
  68. package/dist/esm/setupGestureHandler.mjs +22 -0
  69. package/dist/esm/setupGestureHandler.mjs.map +1 -0
  70. package/dist/esm/setupGestureHandler.native.js +23 -0
  71. package/dist/esm/setupGestureHandler.native.js.map +1 -0
  72. package/dist/esm/useGestureHandlerPan.js +102 -0
  73. package/dist/esm/useGestureHandlerPan.js.map +6 -0
  74. package/dist/esm/useGestureHandlerPan.mjs +103 -0
  75. package/dist/esm/useGestureHandlerPan.mjs.map +1 -0
  76. package/dist/esm/useGestureHandlerPan.native.js +109 -0
  77. package/dist/esm/useGestureHandlerPan.native.js.map +1 -0
  78. package/dist/jsx/GestureDetectorWrapper.js +15 -0
  79. package/dist/jsx/GestureDetectorWrapper.js.map +6 -0
  80. package/dist/jsx/GestureDetectorWrapper.mjs +25 -0
  81. package/dist/jsx/GestureDetectorWrapper.mjs.map +1 -0
  82. package/dist/jsx/GestureDetectorWrapper.native.js +53 -0
  83. package/dist/jsx/GestureDetectorWrapper.native.js.map +1 -0
  84. package/dist/jsx/GestureSheetContext.js +28 -0
  85. package/dist/jsx/GestureSheetContext.js.map +6 -0
  86. package/dist/jsx/GestureSheetContext.mjs +28 -0
  87. package/dist/jsx/GestureSheetContext.mjs.map +1 -0
  88. package/dist/jsx/GestureSheetContext.native.js +56 -0
  89. package/dist/jsx/GestureSheetContext.native.js.map +1 -0
  90. package/dist/jsx/SheetImplementationCustom.js +83 -57
  91. package/dist/jsx/SheetImplementationCustom.js.map +1 -1
  92. package/dist/jsx/SheetImplementationCustom.mjs +85 -40
  93. package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
  94. package/dist/jsx/SheetImplementationCustom.native.js +105 -50
  95. package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
  96. package/dist/jsx/SheetScrollView.js +87 -26
  97. package/dist/jsx/SheetScrollView.js.map +1 -1
  98. package/dist/jsx/SheetScrollView.mjs +89 -18
  99. package/dist/jsx/SheetScrollView.mjs.map +1 -1
  100. package/dist/jsx/SheetScrollView.native.js +102 -19
  101. package/dist/jsx/SheetScrollView.native.js.map +1 -1
  102. package/dist/jsx/gestureState.js +18 -0
  103. package/dist/jsx/gestureState.js.map +6 -0
  104. package/dist/jsx/gestureState.mjs +13 -0
  105. package/dist/jsx/gestureState.mjs.map +1 -0
  106. package/dist/jsx/gestureState.native.js +42 -0
  107. package/dist/jsx/gestureState.native.js.map +1 -0
  108. package/dist/jsx/setupGestureHandler.js +22 -0
  109. package/dist/jsx/setupGestureHandler.js.map +6 -0
  110. package/dist/jsx/setupGestureHandler.mjs +22 -0
  111. package/dist/jsx/setupGestureHandler.mjs.map +1 -0
  112. package/dist/jsx/setupGestureHandler.native.js +50 -0
  113. package/dist/jsx/setupGestureHandler.native.js.map +1 -0
  114. package/dist/jsx/useGestureHandlerPan.js +102 -0
  115. package/dist/jsx/useGestureHandlerPan.js.map +6 -0
  116. package/dist/jsx/useGestureHandlerPan.mjs +103 -0
  117. package/dist/jsx/useGestureHandlerPan.mjs.map +1 -0
  118. package/dist/jsx/useGestureHandlerPan.native.js +135 -0
  119. package/dist/jsx/useGestureHandlerPan.native.js.map +1 -0
  120. package/package.json +48 -21
  121. package/src/GestureDetectorWrapper.tsx +41 -0
  122. package/src/GestureSheetContext.tsx +62 -0
  123. package/src/SheetImplementationCustom.tsx +124 -57
  124. package/src/SheetScrollView.tsx +169 -20
  125. package/src/gestureState.ts +24 -0
  126. package/src/setupGestureHandler.ts +34 -0
  127. package/src/types.tsx +15 -0
  128. package/src/useGestureHandlerPan.tsx +312 -0
  129. package/types/GestureDetectorWrapper.d.ts +14 -0
  130. package/types/GestureDetectorWrapper.d.ts.map +1 -0
  131. package/types/GestureDetectorWrapper.native.d.ts +14 -0
  132. package/types/GestureSheetContext.d.ts +36 -0
  133. package/types/GestureSheetContext.d.ts.map +1 -0
  134. package/types/SheetImplementationCustom.d.ts.map +1 -1
  135. package/types/SheetScrollView.d.ts.map +1 -1
  136. package/types/gestureState.d.ts +11 -0
  137. package/types/gestureState.d.ts.map +1 -0
  138. package/types/gestureState.native.d.ts +12 -0
  139. package/types/setupGestureHandler.d.ts +11 -0
  140. package/types/setupGestureHandler.d.ts.map +1 -0
  141. package/types/setupGestureHandler.native.d.ts +41 -0
  142. package/types/types.d.ts +8 -0
  143. package/types/types.d.ts.map +1 -1
  144. package/types/useGestureHandlerPan.d.ts +43 -0
  145. package/types/useGestureHandlerPan.d.ts.map +1 -0
  146. package/types/useGestureHandlerPan.native.d.ts +33 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["View","getGestureHandlerState","isGestureHandlerEnabled","jsx","GestureDetectorWrapper","gesture","children","style","GestureDetector","collapsable"],"sources":["../../src/GestureDetectorWrapper.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,IAAA,QAA4B;AACrC,SAASC,sBAAA,EAAwBC,uBAAA,QAA+B;AA6BxD,SAAAC,GAAA;AAjBD,SAASC,uBAAuB;EACrCC,OAAA;EACAC,QAAA;EACAC;AACF,GAAgC;EAC9B,MAAM;IAAEC;EAAgB,IAAIP,sBAAA,CAAuB;EAMnD,OALgBC,uBAAA,CAAwB,KAKzBM,eAAA,IAAmBH,OAAA,GAK9B,eAAAF,GAAA,CAACK,eAAA;IAAgBH,OAAA;IACfC,QAAA,iBAAAH,GAAA,CAACH,IAAA;MAAKO,KAAA;MAAcE,WAAA,EAAa;MAC9BH;IAAA,CACH;EAAA,CACF,IAKG,eAAAH,GAAA,CAACH,IAAA;IAAKO,KAAA;IAAeD;EAAA,CAAS;AACvC","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { View } from "react-native";
3
+ import { getGestureHandlerState, isGestureHandlerEnabled } from "./gestureState.native.js";
4
+ function GestureDetectorWrapper(param) {
5
+ var {
6
+ gesture,
7
+ children,
8
+ style
9
+ } = param,
10
+ {
11
+ GestureDetector
12
+ } = getGestureHandlerState(),
13
+ enabled = isGestureHandlerEnabled();
14
+ return enabled && GestureDetector && gesture ? /* @__PURE__ */_jsx(GestureDetector, {
15
+ gesture,
16
+ children: /* @__PURE__ */_jsx(View, {
17
+ style,
18
+ collapsable: !1,
19
+ children
20
+ })
21
+ }) : /* @__PURE__ */_jsx(View, {
22
+ style,
23
+ children
24
+ });
25
+ }
26
+ export { GestureDetectorWrapper };
27
+ //# sourceMappingURL=GestureDetectorWrapper.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","View","getGestureHandlerState","isGestureHandlerEnabled","GestureDetectorWrapper","param","gesture","children","style","GestureDetector","enabled","collapsable"],"sources":["../../src/GestureDetectorWrapper.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,GAAA,IAAAC,IAAA,QAA4B;AACrC,SAASC,IAAA,sBAAwB;AA6BzB,SAAAC,sBAAA,EAAAC,uBAAA;AAjBD,SAASC,uBAAuBC,KAAA;EACrC;MAAAC,OAAA;MAAAC,QAAA;MAAAC;IAAA,IAAAH,KAAA;IAAA;MAAAI;IAAA,IAAAP,sBAAA;IAAAQ,OAAA,GAAAP,uBAAA;EACA,OAAAO,OAAA,IAAAD,eAAA,IAAAH,OAAA,kBAAAN,IAAA,CAAAS,eAAA;IACAH,OAAA;IAC8BC,QAAA,iBAAAP,IAAA,CAAAC,IAAA;MAC9BO,KAAQ;MAMRG,WALgB;MAoBlBJ","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ import { createContext, useContext } from "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ const GestureSheetContext = createContext(null);
4
+ function useGestureSheetContext() {
5
+ return useContext(GestureSheetContext);
6
+ }
7
+ function GestureSheetProvider({
8
+ children,
9
+ isDragging,
10
+ blockPan,
11
+ setBlockPan,
12
+ panGesture,
13
+ panGestureRef
14
+ }) {
15
+ const value = {
16
+ panGesture,
17
+ panGestureRef,
18
+ isDragging,
19
+ blockPan,
20
+ setBlockPan
21
+ };
22
+ return /* @__PURE__ */ jsx(GestureSheetContext.Provider, { value, children });
23
+ }
24
+ export {
25
+ GestureSheetProvider,
26
+ useGestureSheetContext
27
+ };
28
+ //# sourceMappingURL=GestureSheetContext.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/GestureSheetContext.tsx"],
4
+ "mappings": "AACA,SAAS,eAAe,kBAAkC;AA0DtD;AAhCJ,MAAM,sBAAsB,cAA+C,IAAI;AAExE,SAAS,yBAA0D;AACxE,SAAO,WAAW,mBAAmB;AACvC;AAWO,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA8B;AAC5B,QAAM,QAAkC;AAAA,IACtC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SACE,oBAAC,oBAAoB,UAApB,EAA6B,OAAe,UAAS;AAE1D;",
5
+ "names": []
6
+ }
@@ -0,0 +1,28 @@
1
+ import { createContext, useContext } from "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ const GestureSheetContext = createContext(null);
4
+ function useGestureSheetContext() {
5
+ return useContext(GestureSheetContext);
6
+ }
7
+ function GestureSheetProvider({
8
+ children,
9
+ isDragging,
10
+ blockPan,
11
+ setBlockPan,
12
+ panGesture,
13
+ panGestureRef
14
+ }) {
15
+ const value = {
16
+ panGesture,
17
+ panGestureRef,
18
+ isDragging,
19
+ blockPan,
20
+ setBlockPan
21
+ };
22
+ return /* @__PURE__ */jsx(GestureSheetContext.Provider, {
23
+ value,
24
+ children
25
+ });
26
+ }
27
+ export { GestureSheetProvider, useGestureSheetContext };
28
+ //# sourceMappingURL=GestureSheetContext.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","useContext","jsx","GestureSheetContext","useGestureSheetContext","GestureSheetProvider","children","isDragging","blockPan","setBlockPan","panGesture","panGestureRef","value","Provider"],"sources":["../../src/GestureSheetContext.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,aAAA,EAAeC,UAAA,QAAkC;AA0DtD,SAAAC,GAAA;AAhCJ,MAAMC,mBAAA,GAAsBH,aAAA,CAA+C,IAAI;AAExE,SAASI,uBAAA,EAA0D;EACxE,OAAOH,UAAA,CAAWE,mBAAmB;AACvC;AAWO,SAASE,qBAAqB;EACnCC,QAAA;EACAC,UAAA;EACAC,QAAA;EACAC,WAAA;EACAC,UAAA;EACAC;AACF,GAA8B;EAC5B,MAAMC,KAAA,GAAkC;IACtCF,UAAA;IACAC,aAAA;IACAJ,UAAA;IACAC,QAAA;IACAC;EACF;EAEA,OACE,eAAAP,GAAA,CAACC,mBAAA,CAAoBU,QAAA,EAApB;IAA6BD,KAAA;IAAeN;EAAA,CAAS;AAE1D","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext } from "react";
3
+ var GestureSheetContext = /* @__PURE__ */createContext(null);
4
+ function useGestureSheetContext() {
5
+ return useContext(GestureSheetContext);
6
+ }
7
+ function GestureSheetProvider(param) {
8
+ var {
9
+ children,
10
+ isDragging,
11
+ blockPan,
12
+ setBlockPan,
13
+ panGesture,
14
+ panGestureRef
15
+ } = param,
16
+ value = {
17
+ panGesture,
18
+ panGestureRef,
19
+ isDragging,
20
+ blockPan,
21
+ setBlockPan
22
+ };
23
+ return /* @__PURE__ */_jsx(GestureSheetContext.Provider, {
24
+ value,
25
+ children
26
+ });
27
+ }
28
+ export { GestureSheetProvider, useGestureSheetContext };
29
+ //# sourceMappingURL=GestureSheetContext.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","createContext","useContext","GestureSheetContext","useGestureSheetContext","GestureSheetProvider","param","children","isDragging","blockPan","setBlockPan","panGesture","panGestureRef","value","Provider"],"sources":["../../src/GestureSheetContext.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,GAAA,IAAAC,IAAA,QAAe,mBAAkC;AA0DtD,SAAAC,aAAA,EAAAC,UAAA;AAhCJ,IAAAC,mBAAM,kBAAqEF,aAAI;AAExE,SAASG,uBAAA,EAA0D;EACxE,OAAOF,UAAA,CAAWC,mBAAmB;AACvC;AAWO,SAASE,qBAAqBC,KAAA;EACnC;MAAAC,QAAA;MAAAC,UAAA;MAAAC,QAAA;MAAAC,WAAA;MAAAC,UAAA;MAAAC;IAAA,IAAAN,KAAA;IAAAO,KAAA;MACAF,UAAA;MACAC,aAAA;MACAJ,UAAA;MACAC,QAAA;MACAC;IACF,CAA8B;EAC5B,OAAM,eAAkCV,IAAA,CAAAG,mBAAA,CAAAW,QAAA;IACtCD,KAAA;IACAN;EAAA,EACA;AAAA;AACA,SAEFF,oBAAA,EAEAD,sBACE","ignoreList":[]}
@@ -20,8 +20,11 @@ import { needsPortalRepropagation, Portal } from "@tamagui/portal";
20
20
  import React, { useState } from "react";
21
21
  import { Dimensions, Keyboard, PanResponder, View } from "react-native-web";
22
22
  import { ParentSheetContext, SheetInsideSheetContext } from "./contexts";
23
+ import { GestureDetectorWrapper } from "./GestureDetectorWrapper";
24
+ import { GestureSheetProvider } from "./GestureSheetContext";
23
25
  import { resisted } from "./helpers";
24
26
  import { SheetProvider } from "./SheetContext";
27
+ import { useGestureHandlerPan } from "./useGestureHandlerPan";
25
28
  import { useSheetOpenState } from "./useSheetOpenState";
26
29
  import { useSheetProviderProps } from "./useSheetProviderProps";
27
30
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -69,19 +72,11 @@ const relativeDimensionTo = isWeb ? "window" : "screen", SheetImplementationCust
69
72
  React.useEffect(() => {
70
73
  open && frameSize && (stableFrameSize.current = frameSize);
71
74
  }, [open, frameSize]);
72
- const positions = React.useMemo(
75
+ const effectiveFrameSize = open ? frameSize : stableFrameSize.current || frameSize, positions = React.useMemo(
73
76
  () => snapPoints.map(
74
- (point) => (
75
- // FIX: Use stable frameSize when closing to prevent position jumps
76
- getYPositions(
77
- snapPointsMode,
78
- point,
79
- screenSize,
80
- open ? frameSize : stableFrameSize.current
81
- )
82
- )
77
+ (point) => getYPositions(snapPointsMode, point, screenSize, effectiveFrameSize)
83
78
  ),
84
- [screenSize, frameSize, snapPoints, snapPointsMode, open]
79
+ [screenSize, effectiveFrameSize, snapPoints, snapPointsMode]
85
80
  ), { useAnimatedNumber, useAnimatedNumberStyle, useAnimatedNumberReaction } = animationDriver, AnimatedView = animationDriver.View ?? TamaguiView;
86
81
  useIsomorphicLayoutEffect(() => {
87
82
  if (sheetInsideSheet && open)
@@ -103,8 +98,10 @@ const relativeDimensionTo = isWeb ? "window" : "screen", SheetImplementationCust
103
98
  React.useCallback(
104
99
  (value) => {
105
100
  at.current = value, scrollBridge.paneY = value;
101
+ const minY = positions[0], wasAtTop = scrollBridge.isAtTop, nowAtTop = value <= minY + 5;
102
+ wasAtTop !== nowAtTop && (scrollBridge.isAtTop = nowAtTop, nowAtTop ? (scrollBridge.scrollLockY = void 0, scrollBridge.setScrollEnabled?.(!0)) : (scrollBridge.scrollLockY = 0, scrollBridge.setScrollEnabled?.(!1)));
106
103
  },
107
- [animationDriver]
104
+ [animationDriver, positions]
108
105
  )
109
106
  );
110
107
  function stopSpring() {
@@ -134,9 +131,12 @@ const relativeDimensionTo = isWeb ? "window" : "screen", SheetImplementationCust
134
131
  );
135
132
  return;
136
133
  }
137
- disableAnimation || !frameSize || !screenSize || isHidden || hasntMeasured && !open || (animateTo(position), position === -1 && (scrollBridge.scrollLock = !1, scrollBridge.scrollStartY = -1));
134
+ if (!disableAnimation && !(!frameSize || !screenSize || isHidden || hasntMeasured && !open) && (animateTo(position), position === -1 && (scrollBridge.scrollLock = !1, scrollBridge.scrollStartY = -1), open && position >= 0)) {
135
+ const isTopPosition = position === 0;
136
+ scrollBridge.isAtTop = isTopPosition, isTopPosition ? (scrollBridge.scrollLockY = void 0, scrollBridge.setScrollEnabled?.(!0)) : (scrollBridge.scrollLockY = 0, scrollBridge.setScrollEnabled?.(!1));
137
+ }
138
138
  }, [hasntMeasured, disableAnimation, isHidden, frameSize, screenSize, open, position]);
139
- const disableDrag = props.disableDrag ?? controller?.disableDrag, themeName = useThemeName(), [isDragging, setIsDragging] = React.useState(!1), panResponder = React.useMemo(() => {
139
+ const disableDrag = props.disableDrag ?? controller?.disableDrag, themeName = useThemeName(), [isDragging, setIsDragging] = React.useState(!1), [blockPan, setBlockPan] = React.useState(!1), panResponder = React.useMemo(() => {
140
140
  if (disableDrag || !frameSize || isShowingInnerSheet) return;
141
141
  const minY = positions[0];
142
142
  scrollBridge.paneMinY = minY;
@@ -198,7 +198,22 @@ const relativeDimensionTo = isWeb ? "window" : "screen", SheetImplementationCust
198
198
  onPanResponderTerminate: finish,
199
199
  onPanResponderRelease: finish
200
200
  });
201
- }, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]), handleAnimationViewLayout = React.useCallback(
201
+ }, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]), { panGesture, panGestureRef, gestureHandlerEnabled } = useGestureHandlerPan({
202
+ positions,
203
+ frameSize,
204
+ setPosition,
205
+ animateTo,
206
+ stopSpring,
207
+ scrollBridge,
208
+ setIsDragging,
209
+ getCurrentPosition: () => at.current,
210
+ resisted,
211
+ disableDrag,
212
+ isShowingInnerSheet,
213
+ setAnimatedPosition: (val) => {
214
+ animatedNumber.setValue(val, { type: "direct" });
215
+ }
216
+ }), handleAnimationViewLayout = React.useCallback(
202
217
  (e) => {
203
218
  if (!open && stableFrameSize.current !== 0)
204
219
  return;
@@ -258,49 +273,59 @@ const relativeDimensionTo = isWeb ? "window" : "screen", SheetImplementationCust
258
273
  ) : maxSnapPoint, setHasScrollView = React.useCallback((val) => {
259
274
  hasScrollView.current = val;
260
275
  }, []);
261
- let contents = /* @__PURE__ */ jsx(LayoutMeasurementController, { disable: !open, children: /* @__PURE__ */ jsx(ParentSheetContext.Provider, { value: nextParentContext, children: /* @__PURE__ */ jsxs(SheetProvider, { ...providerProps, setHasScrollView, children: [
262
- /* @__PURE__ */ jsx(AnimatePresence, { custom: { open }, children: shouldHideParentSheet || !open ? null : overlayComponent }),
263
- snapPointsMode !== "percent" && /* @__PURE__ */ jsx(
264
- View,
265
- {
266
- style: {
267
- opacity: 0,
268
- position: "absolute",
269
- top: 0,
270
- left: 0,
271
- right: 0,
272
- bottom: 0,
273
- pointerEvents: "none"
274
- },
275
- onLayout: handleMaxContentViewLayout
276
- }
277
- ),
278
- /* @__PURE__ */ jsx(
279
- AnimatedView,
280
- {
281
- ref,
282
- ...panResponder?.panHandlers,
283
- onLayout: handleAnimationViewLayout,
284
- transition: isDragging || disableAnimation ? null : transition,
285
- disableClassName: !0,
286
- style: [
276
+ let contents = /* @__PURE__ */ jsx(LayoutMeasurementController, { disable: !open, children: /* @__PURE__ */ jsx(ParentSheetContext.Provider, { value: nextParentContext, children: /* @__PURE__ */ jsx(SheetProvider, { ...providerProps, setHasScrollView, children: /* @__PURE__ */ jsxs(
277
+ GestureSheetProvider,
278
+ {
279
+ isDragging,
280
+ blockPan,
281
+ setBlockPan,
282
+ panGesture,
283
+ panGestureRef,
284
+ children: [
285
+ /* @__PURE__ */ jsx(AnimatePresence, { custom: { open }, children: shouldHideParentSheet || !open ? null : overlayComponent }),
286
+ snapPointsMode !== "percent" && /* @__PURE__ */ jsx(
287
+ View,
287
288
  {
288
- position: "absolute",
289
- zIndex,
290
- width: "100%",
291
- height: forcedContentHeight,
292
- minHeight: forcedContentHeight,
293
- opacity: shouldHideParentSheet ? 0 : opacity,
294
- ...(shouldHideParentSheet || !open) && {
289
+ style: {
290
+ opacity: 0,
291
+ position: "absolute",
292
+ top: 0,
293
+ left: 0,
294
+ right: 0,
295
+ bottom: 0,
295
296
  pointerEvents: "none"
296
- }
297
- },
298
- animatedStyle
299
- ],
300
- children: props.children
301
- }
302
- )
303
- ] }) }) });
297
+ },
298
+ onLayout: handleMaxContentViewLayout
299
+ }
300
+ ),
301
+ /* @__PURE__ */ jsx(
302
+ AnimatedView,
303
+ {
304
+ ref,
305
+ ...!gestureHandlerEnabled && panResponder?.panHandlers,
306
+ onLayout: handleAnimationViewLayout,
307
+ transition: isDragging || disableAnimation ? null : transition,
308
+ disableClassName: !0,
309
+ style: [
310
+ {
311
+ position: "absolute",
312
+ zIndex,
313
+ width: "100%",
314
+ height: forcedContentHeight,
315
+ minHeight: forcedContentHeight,
316
+ opacity: shouldHideParentSheet ? 0 : opacity,
317
+ ...(shouldHideParentSheet || !open) && {
318
+ pointerEvents: "none"
319
+ }
320
+ },
321
+ animatedStyle
322
+ ],
323
+ children: gestureHandlerEnabled && panGesture ? /* @__PURE__ */ jsx(GestureDetectorWrapper, { gesture: panGesture, style: { flex: 1 }, children: props.children }) : props.children
324
+ }
325
+ )
326
+ ]
327
+ }
328
+ ) }) }) });
304
329
  const shouldMountChildren = unmountChildrenWhenHidden ? !!opacity : !0;
305
330
  if (modal) {
306
331
  const modalContents = /* @__PURE__ */ jsx(Portal, { stackZIndex: zIndex, ...portalProps, children: shouldMountChildren && /* @__PURE__ */ jsx(ContainerComponent, { children: /* @__PURE__ */ jsx(Theme, { contain: !0, forceClassName: !0, name: themeName, children: contents }) }) });
@@ -310,7 +335,8 @@ const relativeDimensionTo = isWeb ? "window" : "screen", SheetImplementationCust
310
335
  }
311
336
  );
312
337
  function getYPositions(mode, point, screenSize, frameSize) {
313
- if (!screenSize || !frameSize) return 0;
338
+ if (!screenSize || !frameSize)
339
+ return 0;
314
340
  if (mode === "mixed") {
315
341
  if (typeof point == "number")
316
342
  return screenSize - Math.min(screenSize, Math.max(0, point));
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/SheetImplementationCustom.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["position", "state", "pct"]
6
6
  }
@@ -6,8 +6,11 @@ import { needsPortalRepropagation, Portal } from "@tamagui/portal";
6
6
  import React, { useState } from "react";
7
7
  import { Dimensions, Keyboard, PanResponder, View } from "react-native-web";
8
8
  import { ParentSheetContext, SheetInsideSheetContext } from "./contexts.mjs";
9
+ import { GestureDetectorWrapper } from "./GestureDetectorWrapper.mjs";
10
+ import { GestureSheetProvider } from "./GestureSheetContext.mjs";
9
11
  import { resisted } from "./helpers.mjs";
10
12
  import { SheetProvider } from "./SheetContext.mjs";
13
+ import { useGestureHandlerPan } from "./useGestureHandlerPan.mjs";
11
14
  import { useSheetOpenState } from "./useSheetOpenState.mjs";
12
15
  import { useSheetProviderProps } from "./useSheetProviderProps.mjs";
13
16
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -73,9 +76,8 @@ const relativeDimensionTo = isWeb ? "window" : "screen",
73
76
  React.useEffect(() => {
74
77
  open && frameSize && (stableFrameSize.current = frameSize);
75
78
  }, [open, frameSize]);
76
- const positions = React.useMemo(() => snapPoints.map(point =>
77
- // FIX: Use stable frameSize when closing to prevent position jumps
78
- getYPositions(snapPointsMode, point, screenSize, open ? frameSize : stableFrameSize.current)), [screenSize, frameSize, snapPoints, snapPointsMode, open]),
79
+ const effectiveFrameSize = open ? frameSize : stableFrameSize.current || frameSize,
80
+ positions = React.useMemo(() => snapPoints.map(point => getYPositions(snapPointsMode, point, screenSize, effectiveFrameSize)), [screenSize, effectiveFrameSize, snapPoints, snapPointsMode]),
79
81
  {
80
82
  useAnimatedNumber,
81
83
  useAnimatedNumberStyle,
@@ -101,7 +103,11 @@ const relativeDimensionTo = isWeb ? "window" : "screen",
101
103
  hostRef: sheetRef
102
104
  }, React.useCallback(value => {
103
105
  at.current = value, scrollBridge.paneY = value;
104
- }, [animationDriver]));
106
+ const minY = positions[0],
107
+ wasAtTop = scrollBridge.isAtTop,
108
+ nowAtTop = value <= minY + 5;
109
+ wasAtTop !== nowAtTop && (scrollBridge.isAtTop = nowAtTop, nowAtTop ? (scrollBridge.scrollLockY = void 0, scrollBridge.setScrollEnabled?.(!0)) : (scrollBridge.scrollLockY = 0, scrollBridge.setScrollEnabled?.(!1)));
110
+ }, [animationDriver, positions]));
105
111
  function stopSpring() {
106
112
  animatedNumber.stop(), scrollBridge.onFinishAnimate && (scrollBridge.onFinishAnimate(), scrollBridge.onFinishAnimate = void 0);
107
113
  }
@@ -125,11 +131,15 @@ const relativeDimensionTo = isWeb ? "window" : "screen",
125
131
  });
126
132
  return;
127
133
  }
128
- disableAnimation || !frameSize || !screenSize || isHidden || hasntMeasured && !open || (animateTo(position), position === -1 && (scrollBridge.scrollLock = !1, scrollBridge.scrollStartY = -1));
134
+ if (!disableAnimation && !(!frameSize || !screenSize || isHidden || hasntMeasured && !open) && (animateTo(position), position === -1 && (scrollBridge.scrollLock = !1, scrollBridge.scrollStartY = -1), open && position >= 0)) {
135
+ const isTopPosition = position === 0;
136
+ scrollBridge.isAtTop = isTopPosition, isTopPosition ? (scrollBridge.scrollLockY = void 0, scrollBridge.setScrollEnabled?.(!0)) : (scrollBridge.scrollLockY = 0, scrollBridge.setScrollEnabled?.(!1));
137
+ }
129
138
  }, [hasntMeasured, disableAnimation, isHidden, frameSize, screenSize, open, position]);
130
139
  const disableDrag = props.disableDrag ?? controller?.disableDrag,
131
140
  themeName = useThemeName(),
132
141
  [isDragging, setIsDragging] = React.useState(!1),
142
+ [blockPan, setBlockPan] = React.useState(!1),
133
143
  panResponder = React.useMemo(() => {
134
144
  if (disableDrag || !frameSize || isShowingInnerSheet) return;
135
145
  const minY = positions[0];
@@ -206,6 +216,28 @@ const relativeDimensionTo = isWeb ? "window" : "screen",
206
216
  onPanResponderRelease: finish
207
217
  });
208
218
  }, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]),
219
+ {
220
+ panGesture,
221
+ panGestureRef,
222
+ gestureHandlerEnabled
223
+ } = useGestureHandlerPan({
224
+ positions,
225
+ frameSize,
226
+ setPosition,
227
+ animateTo,
228
+ stopSpring,
229
+ scrollBridge,
230
+ setIsDragging,
231
+ getCurrentPosition: () => at.current,
232
+ resisted,
233
+ disableDrag,
234
+ isShowingInnerSheet,
235
+ setAnimatedPosition: val => {
236
+ animatedNumber.setValue(val, {
237
+ type: "direct"
238
+ });
239
+ }
240
+ }),
209
241
  handleAnimationViewLayout = React.useCallback(e => {
210
242
  if (!open && stableFrameSize.current !== 0) return;
211
243
  const layoutHeight = e.nativeEvent?.layout.height,
@@ -265,44 +297,57 @@ const relativeDimensionTo = isWeb ? "window" : "screen",
265
297
  disable: !open,
266
298
  children: /* @__PURE__ */jsx(ParentSheetContext.Provider, {
267
299
  value: nextParentContext,
268
- children: /* @__PURE__ */jsxs(SheetProvider, {
300
+ children: /* @__PURE__ */jsx(SheetProvider, {
269
301
  ...providerProps,
270
302
  setHasScrollView,
271
- children: [/* @__PURE__ */jsx(AnimatePresence, {
272
- custom: {
273
- open
274
- },
275
- children: shouldHideParentSheet || !open ? null : overlayComponent
276
- }), snapPointsMode !== "percent" && /* @__PURE__ */jsx(View, {
277
- style: {
278
- opacity: 0,
279
- position: "absolute",
280
- top: 0,
281
- left: 0,
282
- right: 0,
283
- bottom: 0,
284
- pointerEvents: "none"
285
- },
286
- onLayout: handleMaxContentViewLayout
287
- }), /* @__PURE__ */jsx(AnimatedView, {
288
- ref,
289
- ...panResponder?.panHandlers,
290
- onLayout: handleAnimationViewLayout,
291
- transition: isDragging || disableAnimation ? null : transition,
292
- disableClassName: !0,
293
- style: [{
294
- position: "absolute",
295
- zIndex,
296
- width: "100%",
297
- height: forcedContentHeight,
298
- minHeight: forcedContentHeight,
299
- opacity: shouldHideParentSheet ? 0 : opacity,
300
- ...((shouldHideParentSheet || !open) && {
303
+ children: /* @__PURE__ */jsxs(GestureSheetProvider, {
304
+ isDragging,
305
+ blockPan,
306
+ setBlockPan,
307
+ panGesture,
308
+ panGestureRef,
309
+ children: [/* @__PURE__ */jsx(AnimatePresence, {
310
+ custom: {
311
+ open
312
+ },
313
+ children: shouldHideParentSheet || !open ? null : overlayComponent
314
+ }), snapPointsMode !== "percent" && /* @__PURE__ */jsx(View, {
315
+ style: {
316
+ opacity: 0,
317
+ position: "absolute",
318
+ top: 0,
319
+ left: 0,
320
+ right: 0,
321
+ bottom: 0,
301
322
  pointerEvents: "none"
302
- })
303
- }, animatedStyle],
304
- children: props.children
305
- })]
323
+ },
324
+ onLayout: handleMaxContentViewLayout
325
+ }), /* @__PURE__ */jsx(AnimatedView, {
326
+ ref,
327
+ ...(!gestureHandlerEnabled && panResponder?.panHandlers),
328
+ onLayout: handleAnimationViewLayout,
329
+ transition: isDragging || disableAnimation ? null : transition,
330
+ disableClassName: !0,
331
+ style: [{
332
+ position: "absolute",
333
+ zIndex,
334
+ width: "100%",
335
+ height: forcedContentHeight,
336
+ minHeight: forcedContentHeight,
337
+ opacity: shouldHideParentSheet ? 0 : opacity,
338
+ ...((shouldHideParentSheet || !open) && {
339
+ pointerEvents: "none"
340
+ })
341
+ }, animatedStyle],
342
+ children: gestureHandlerEnabled && panGesture ? /* @__PURE__ */jsx(GestureDetectorWrapper, {
343
+ gesture: panGesture,
344
+ style: {
345
+ flex: 1
346
+ },
347
+ children: props.children
348
+ }) : props.children
349
+ })]
350
+ })
306
351
  })
307
352
  })
308
353
  });