@tamagui/sheet 1.27.1 → 1.27.3

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 (200) hide show
  1. package/dist/cjs/Sheet.js +1 -2
  2. package/dist/cjs/Sheet.js.map +1 -1
  3. package/dist/cjs/SheetContext.js.map +1 -1
  4. package/dist/cjs/SheetImplementationCustom.js +340 -0
  5. package/dist/cjs/SheetImplementationCustom.js.map +6 -0
  6. package/dist/cjs/constants.js +10 -0
  7. package/dist/cjs/constants.js.map +1 -1
  8. package/dist/cjs/{useSheetContoller.js → contexts.js} +12 -21
  9. package/dist/cjs/contexts.js.map +6 -0
  10. package/dist/cjs/createSheet.js +68 -349
  11. package/dist/cjs/createSheet.js.map +2 -2
  12. package/dist/cjs/{getNativeSheet.js → helpers.js} +15 -16
  13. package/dist/cjs/helpers.js.map +6 -0
  14. package/dist/cjs/nativeSheet.js +3 -5
  15. package/dist/cjs/nativeSheet.js.map +1 -1
  16. package/dist/cjs/useSheetController.js +2 -1
  17. package/dist/cjs/useSheetController.js.map +1 -1
  18. package/dist/cjs/useSheetProviderProps.js +30 -3
  19. package/dist/cjs/useSheetProviderProps.js.map +1 -1
  20. package/dist/esm/Sheet.js +1 -2
  21. package/dist/esm/Sheet.js.map +1 -1
  22. package/dist/esm/SheetContext.js.map +1 -1
  23. package/dist/esm/{Sheet.mjs → SheetImplementationCustom.js} +88 -279
  24. package/dist/esm/SheetImplementationCustom.js.map +6 -0
  25. package/dist/esm/constants.js +8 -0
  26. package/dist/esm/constants.js.map +1 -1
  27. package/dist/esm/contexts.js +10 -0
  28. package/dist/esm/contexts.js.map +6 -0
  29. package/dist/esm/createSheet.js +72 -371
  30. package/dist/esm/createSheet.js.map +2 -2
  31. package/dist/esm/helpers.js +14 -0
  32. package/dist/esm/helpers.js.map +6 -0
  33. package/dist/esm/nativeSheet.js +3 -5
  34. package/dist/esm/nativeSheet.js.map +1 -1
  35. package/dist/esm/useSheetController.js +2 -1
  36. package/dist/esm/useSheetController.js.map +1 -1
  37. package/dist/esm/useSheetProviderProps.js +31 -4
  38. package/dist/esm/useSheetProviderProps.js.map +1 -1
  39. package/dist/jsx/Sheet.js +1 -2
  40. package/dist/jsx/Sheet.js.map +1 -1
  41. package/dist/jsx/Sheet.mjs +1 -2
  42. package/dist/jsx/Sheet.mjs.map +1 -1
  43. package/dist/jsx/SheetContext.js.map +1 -1
  44. package/dist/jsx/SheetContext.mjs.map +1 -1
  45. package/dist/jsx/SheetImplementationCustom.js +330 -0
  46. package/dist/jsx/SheetImplementationCustom.js.map +6 -0
  47. package/dist/jsx/SheetImplementationCustom.mjs +330 -0
  48. package/dist/jsx/SheetImplementationCustom.mjs.map +6 -0
  49. package/dist/jsx/constants.js +8 -0
  50. package/dist/jsx/constants.js.map +1 -1
  51. package/dist/jsx/constants.mjs +8 -0
  52. package/dist/jsx/constants.mjs.map +1 -1
  53. package/dist/jsx/contexts.js +10 -0
  54. package/dist/jsx/contexts.js.map +6 -0
  55. package/dist/jsx/contexts.mjs +10 -0
  56. package/dist/jsx/contexts.mjs.map +6 -0
  57. package/dist/jsx/createSheet.js +63 -364
  58. package/dist/jsx/createSheet.js.map +2 -2
  59. package/dist/jsx/createSheet.mjs +63 -364
  60. package/dist/jsx/createSheet.mjs.map +2 -2
  61. package/dist/jsx/helpers.js +14 -0
  62. package/dist/jsx/helpers.js.map +6 -0
  63. package/dist/jsx/helpers.mjs +14 -0
  64. package/dist/jsx/helpers.mjs.map +6 -0
  65. package/dist/jsx/nativeSheet.js +3 -5
  66. package/dist/jsx/nativeSheet.js.map +1 -1
  67. package/dist/jsx/nativeSheet.mjs +3 -5
  68. package/dist/jsx/nativeSheet.mjs.map +1 -1
  69. package/dist/jsx/useSheetController.js +2 -1
  70. package/dist/jsx/useSheetController.js.map +1 -1
  71. package/dist/jsx/useSheetController.mjs +2 -1
  72. package/dist/jsx/useSheetController.mjs.map +1 -1
  73. package/dist/jsx/useSheetProviderProps.js +31 -4
  74. package/dist/jsx/useSheetProviderProps.js.map +1 -1
  75. package/dist/jsx/useSheetProviderProps.mjs +31 -4
  76. package/dist/jsx/useSheetProviderProps.mjs.map +1 -1
  77. package/package.json +14 -13
  78. package/src/Sheet.tsx +0 -1
  79. package/src/SheetContext.tsx +1 -16
  80. package/src/SheetImplementationCustom.tsx +404 -0
  81. package/src/constants.tsx +10 -0
  82. package/src/contexts.ts +9 -0
  83. package/src/createSheet.tsx +88 -449
  84. package/src/helpers.tsx +10 -0
  85. package/src/nativeSheet.tsx +3 -5
  86. package/src/useSheetController.tsx +1 -0
  87. package/src/useSheetProviderProps.tsx +48 -7
  88. package/types/Sheet.d.ts +10 -6
  89. package/types/Sheet.d.ts.map +1 -1
  90. package/types/SheetContext.d.ts +100 -27
  91. package/types/SheetContext.d.ts.map +1 -1
  92. package/types/SheetImplementationCustom.d.ts +27 -0
  93. package/types/SheetImplementationCustom.d.ts.map +1 -0
  94. package/types/constants.d.ts +2 -0
  95. package/types/constants.d.ts.map +1 -1
  96. package/types/contexts.d.ts +6 -0
  97. package/types/contexts.d.ts.map +1 -0
  98. package/types/createSheet.d.ts +8 -4
  99. package/types/createSheet.d.ts.map +1 -1
  100. package/types/helpers.d.ts +2 -0
  101. package/types/helpers.d.ts.map +1 -0
  102. package/types/nativeSheet.d.ts.map +1 -1
  103. package/types/useSheet.d.ts +16 -6
  104. package/types/useSheet.d.ts.map +1 -1
  105. package/types/useSheetController.d.ts +1 -0
  106. package/types/useSheetController.d.ts.map +1 -1
  107. package/types/useSheetProviderProps.d.ts +8 -3
  108. package/types/useSheetProviderProps.d.ts.map +1 -1
  109. package/dist/cjs/StyledSheet.js +0 -132
  110. package/dist/cjs/StyledSheet.js.map +0 -6
  111. package/dist/cjs/getNativeSheet.js.map +0 -6
  112. package/dist/cjs/native-ios.js +0 -5
  113. package/dist/cjs/native-ios.js.map +0 -6
  114. package/dist/cjs/useSheetChildren.js +0 -82
  115. package/dist/cjs/useSheetChildren.js.map +0 -6
  116. package/dist/cjs/useSheetContoller.js.map +0 -6
  117. package/dist/cjs/useSheetSnapPoints.js +0 -77
  118. package/dist/cjs/useSheetSnapPoints.js.map +0 -6
  119. package/dist/esm/Sheet.mjs.map +0 -6
  120. package/dist/esm/SheetContext.mjs +0 -14
  121. package/dist/esm/SheetContext.mjs.map +0 -6
  122. package/dist/esm/SheetController.mjs +0 -25
  123. package/dist/esm/SheetController.mjs.map +0 -6
  124. package/dist/esm/SheetScrollView.mjs +0 -81
  125. package/dist/esm/SheetScrollView.mjs.map +0 -6
  126. package/dist/esm/StyledSheet.js +0 -100
  127. package/dist/esm/StyledSheet.js.map +0 -6
  128. package/dist/esm/constants.mjs +0 -9
  129. package/dist/esm/constants.mjs.map +0 -6
  130. package/dist/esm/getNativeSheet.js +0 -14
  131. package/dist/esm/getNativeSheet.js.map +0 -6
  132. package/dist/esm/getNativeSheet.mjs +0 -14
  133. package/dist/esm/getNativeSheet.mjs.map +0 -6
  134. package/dist/esm/index.mjs +0 -8
  135. package/dist/esm/index.mjs.map +0 -6
  136. package/dist/esm/native-ios.js +0 -4
  137. package/dist/esm/native-ios.js.map +0 -6
  138. package/dist/esm/native-ios.mjs +0 -4
  139. package/dist/esm/native-ios.mjs.map +0 -6
  140. package/dist/esm/nativeSheet.mjs +0 -47
  141. package/dist/esm/nativeSheet.mjs.map +0 -6
  142. package/dist/esm/types.mjs +0 -1
  143. package/dist/esm/types.mjs.map +0 -6
  144. package/dist/esm/useSheetChildren.js +0 -48
  145. package/dist/esm/useSheetChildren.js.map +0 -6
  146. package/dist/esm/useSheetChildren.mjs +0 -46
  147. package/dist/esm/useSheetChildren.mjs.map +0 -6
  148. package/dist/esm/useSheetContoller.js +0 -19
  149. package/dist/esm/useSheetContoller.js.map +0 -6
  150. package/dist/esm/useSheetContoller.mjs +0 -19
  151. package/dist/esm/useSheetContoller.mjs.map +0 -6
  152. package/dist/esm/useSheetController.mjs +0 -19
  153. package/dist/esm/useSheetController.mjs.map +0 -6
  154. package/dist/esm/useSheetOpenState.mjs +0 -27
  155. package/dist/esm/useSheetOpenState.mjs.map +0 -6
  156. package/dist/esm/useSheetProviderProps.mjs +0 -64
  157. package/dist/esm/useSheetProviderProps.mjs.map +0 -6
  158. package/dist/esm/useSheetSnapPoints.js +0 -53
  159. package/dist/esm/useSheetSnapPoints.js.map +0 -6
  160. package/dist/esm/useSheetSnapPoints.mjs +0 -53
  161. package/dist/esm/useSheetSnapPoints.mjs.map +0 -6
  162. package/dist/jsx/StyledSheet.js +0 -100
  163. package/dist/jsx/StyledSheet.js.map +0 -6
  164. package/dist/jsx/StyledSheet.mjs +0 -100
  165. package/dist/jsx/StyledSheet.mjs.map +0 -6
  166. package/dist/jsx/getNativeSheet.js +0 -14
  167. package/dist/jsx/getNativeSheet.js.map +0 -6
  168. package/dist/jsx/getNativeSheet.mjs +0 -14
  169. package/dist/jsx/getNativeSheet.mjs.map +0 -6
  170. package/dist/jsx/native-ios.js +0 -4
  171. package/dist/jsx/native-ios.js.map +0 -6
  172. package/dist/jsx/native-ios.mjs +0 -4
  173. package/dist/jsx/native-ios.mjs.map +0 -6
  174. package/dist/jsx/useSheetChildren.js +0 -47
  175. package/dist/jsx/useSheetChildren.js.map +0 -6
  176. package/dist/jsx/useSheetChildren.mjs +0 -47
  177. package/dist/jsx/useSheetChildren.mjs.map +0 -6
  178. package/dist/jsx/useSheetContoller.js +0 -19
  179. package/dist/jsx/useSheetContoller.js.map +0 -6
  180. package/dist/jsx/useSheetContoller.mjs +0 -19
  181. package/dist/jsx/useSheetContoller.mjs.map +0 -6
  182. package/dist/jsx/useSheetSnapPoints.js +0 -53
  183. package/dist/jsx/useSheetSnapPoints.js.map +0 -6
  184. package/dist/jsx/useSheetSnapPoints.mjs +0 -53
  185. package/dist/jsx/useSheetSnapPoints.mjs.map +0 -6
  186. package/src/useSheetChildren.tsx +0 -49
  187. package/src/useSheetSnapPoints.tsx +0 -60
  188. package/types/SHEET_HANDLE_NAME.d.ts +0 -4
  189. package/types/getNativeSheet.d.ts +0 -3
  190. package/types/getNativeSheet.d.ts.map +0 -1
  191. package/types/native-ios.d.ts +0 -2
  192. package/types/native-ios.d.ts.map +0 -1
  193. package/types/useAnimated.d.ts +0 -19
  194. package/types/useAnimation.d.ts +0 -1
  195. package/types/useSheetChildren.d.ts +0 -8
  196. package/types/useSheetChildren.d.ts.map +0 -1
  197. package/types/useSheetContoller.d.ts +0 -14
  198. package/types/useSheetContoller.d.ts.map +0 -1
  199. package/types/useSheetSnapPoints.d.ts +0 -7
  200. package/types/useSheetSnapPoints.d.ts.map +0 -1
@@ -31,10 +31,11 @@ __export(useSheetProviderProps_exports, {
31
31
  useSheetProviderProps: () => useSheetProviderProps
32
32
  });
33
33
  module.exports = __toCommonJS(useSheetProviderProps_exports);
34
+ var import_core = require("@tamagui/core");
34
35
  var import_use_constant = require("@tamagui/use-constant");
35
36
  var import_use_controllable_state = require("@tamagui/use-controllable-state");
36
37
  var import_react = __toESM(require("react"));
37
- function useSheetProviderProps(props, state) {
38
+ function useSheetProviderProps(props, state, options = {}) {
38
39
  const contentRef = import_react.default.useRef(null);
39
40
  const [frameSize, setFrameSize] = (0, import_react.useState)(0);
40
41
  const snapPointsProp = props.snapPoints || [80];
@@ -51,6 +52,7 @@ function useSheetProviderProps(props, state) {
51
52
  transition: true
52
53
  });
53
54
  const position = state.open === false ? -1 : position_;
55
+ const { open } = state;
54
56
  const setPosition = (0, import_react.useCallback)(
55
57
  (next) => {
56
58
  if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {
@@ -61,6 +63,26 @@ function useSheetProviderProps(props, state) {
61
63
  },
62
64
  [props.dismissOnSnapToBottom, snapPoints.length, setPositionImmediate, state.setOpen]
63
65
  );
66
+ if (process.env.NODE_ENV === "development") {
67
+ if (snapPoints.some((p) => p < 0 || p > 100)) {
68
+ console.warn(
69
+ "\u26A0\uFE0F Invalid snapPoint given, snapPoints must be between 0 and 100, equal to percent height of frame"
70
+ );
71
+ }
72
+ }
73
+ if (open && props.dismissOnSnapToBottom && position === snapPoints.length - 1) {
74
+ setPositionImmediate(0);
75
+ }
76
+ const shouldSetPositionOpen = open && position < 0;
77
+ (0, import_react.useEffect)(() => {
78
+ if (shouldSetPositionOpen) {
79
+ setPosition(0);
80
+ }
81
+ }, [setPosition, shouldSetPositionOpen]);
82
+ const driver = (0, import_core.useAnimationDriver)();
83
+ if (!driver) {
84
+ throw new Error("Must set animations in tamagui.config.ts");
85
+ }
64
86
  const scrollBridge = (0, import_use_constant.useConstant)(() => ({
65
87
  enabled: false,
66
88
  y: 0,
@@ -73,7 +95,10 @@ function useSheetProviderProps(props, state) {
73
95
  },
74
96
  scrollLock: false
75
97
  }));
76
- return {
98
+ const removeScrollEnabled = props.forceRemoveScrollEnabled ?? (open && props.modal);
99
+ const providerProps = {
100
+ removeScrollEnabled,
101
+ scrollBridge,
77
102
  modal: !!props.modal,
78
103
  open: state.open,
79
104
  setOpen: state.setOpen,
@@ -83,13 +108,15 @@ function useSheetProviderProps(props, state) {
83
108
  setFrameSize,
84
109
  dismissOnOverlayPress: props.dismissOnOverlayPress ?? true,
85
110
  dismissOnSnapToBottom: props.dismissOnSnapToBottom ?? false,
111
+ onOverlayComponent: options.onOverlayComponent,
86
112
  scope: props.__scopeSheet,
87
113
  position,
88
114
  snapPoints,
89
115
  setPosition,
90
116
  setPositionImmediate,
91
- scrollBridge
117
+ onlyShowFrame: false
92
118
  };
119
+ return providerProps;
93
120
  }
94
121
  // Annotate the CommonJS export names for ESM import in node:
95
122
  0 && (module.exports = {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/useSheetProviderProps.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,0BAA4B;AAC5B,oCAAqC;AACrC,mBAAsD;AAK/C,SAAS,sBAAsB,OAAmB,OAAuB;AAC9E,QAAM,aAAa,aAAAA,QAAM,OAAuB,IAAI;AACpD,QAAM,CAAC,WAAW,YAAY,QAAI,uBAAiB,CAAC;AACpD,QAAM,iBAAiB,MAAM,cAAc,CAAC,EAAE;AAE9C,QAAM,iBAAa;AAAA,IACjB,MAAO,MAAM,wBAAwB,CAAC,GAAG,gBAAgB,CAAC,IAAI;AAAA;AAAA,IAE9D,CAAC,KAAK,UAAU,cAAc,GAAG,MAAM,qBAAqB;AAAA,EAC9D;AAGA,QAAM,CAAC,WAAW,oBAAoB,QAAI,oDAAqB;AAAA,IAC7D,MAAM,MAAM;AAAA,IACZ,aAAa,MAAM,oBAAoB,MAAM,OAAO,IAAI;AAAA,IACxD,UAAU,MAAM;AAAA,IAChB,UAAU;AAAA,IACV,YAAY;AAAA,EACd,CAAC;AAED,QAAM,WAAW,MAAM,SAAS,QAAQ,KAAK;AAE7C,QAAM,kBAAc;AAAA,IAClB,CAAC,SAAiB;AAEhB,UAAI,MAAM,yBAAyB,SAAS,WAAW,SAAS,GAAG;AACjE,cAAM,QAAQ,KAAK;AAAA,MACrB,OAAO;AACL,6BAAqB,IAAI;AAAA,MAC3B;AAAA,IACF;AAAA,IACA,CAAC,MAAM,uBAAuB,WAAW,QAAQ,sBAAsB,MAAM,OAAO;AAAA,EACtF;AAEA,QAAM,mBAAe,iCAA0B,OAAO;AAAA,IACpD,SAAS;AAAA,IACT,GAAG;AAAA,IACH,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,IACd,MAAM,MAAM;AAAA,IAAC;AAAA,IACb,SAAS,MAAM;AAAA,IAAC;AAAA,IAChB,YAAY;AAAA,EACd,EAAE;AAEF,SAAO;AAAA,IACL,OAAO,CAAC,CAAC,MAAM;AAAA,IACf,MAAM,MAAM;AAAA,IACZ,SAAS,MAAM;AAAA,IACf,QAAQ,CAAC,CAAC,MAAM;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA,uBAAuB,MAAM,yBAAyB;AAAA,IACtD,uBAAuB,MAAM,yBAAyB;AAAA,IACtD,OAAO,MAAM;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAmD;AACnD,0BAA4B;AAC5B,oCAAqC;AACrC,mBAAiE;AAO1D,SAAS,sBACd,OACA,OACA,UAEI,CAAC,GACL;AACA,QAAM,aAAa,aAAAA,QAAM,OAAuB,IAAI;AACpD,QAAM,CAAC,WAAW,YAAY,QAAI,uBAAiB,CAAC;AACpD,QAAM,iBAAiB,MAAM,cAAc,CAAC,EAAE;AAE9C,QAAM,iBAAa;AAAA,IACjB,MAAO,MAAM,wBAAwB,CAAC,GAAG,gBAAgB,CAAC,IAAI;AAAA;AAAA,IAE9D,CAAC,KAAK,UAAU,cAAc,GAAG,MAAM,qBAAqB;AAAA,EAC9D;AAGA,QAAM,CAAC,WAAW,oBAAoB,QAAI,oDAAqB;AAAA,IAC7D,MAAM,MAAM;AAAA,IACZ,aAAa,MAAM,oBAAoB,MAAM,OAAO,IAAI;AAAA,IACxD,UAAU,MAAM;AAAA,IAChB,UAAU;AAAA,IACV,YAAY;AAAA,EACd,CAAC;AAED,QAAM,WAAW,MAAM,SAAS,QAAQ,KAAK;AAE7C,QAAM,EAAE,KAAK,IAAI;AAEjB,QAAM,kBAAc;AAAA,IAClB,CAAC,SAAiB;AAEhB,UAAI,MAAM,yBAAyB,SAAS,WAAW,SAAS,GAAG;AACjE,cAAM,QAAQ,KAAK;AAAA,MACrB,OAAO;AACL,6BAAqB,IAAI;AAAA,MAC3B;AAAA,IACF;AAAA,IACA,CAAC,MAAM,uBAAuB,WAAW,QAAQ,sBAAsB,MAAM,OAAO;AAAA,EACtF;AAEA,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,WAAW,KAAK,CAAC,MAAM,IAAI,KAAK,IAAI,GAAG,GAAG;AAC5C,cAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,MAAI,QAAQ,MAAM,yBAAyB,aAAa,WAAW,SAAS,GAAG;AAC7E,yBAAqB,CAAC;AAAA,EACxB;AAGA,QAAM,wBAAwB,QAAQ,WAAW;AACjD,8BAAU,MAAM;AACd,QAAI,uBAAuB;AACzB,kBAAY,CAAC;AAAA,IACf;AAAA,EACF,GAAG,CAAC,aAAa,qBAAqB,CAAC;AAEvC,QAAM,aAAS,gCAAmB;AAClC,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,0CAA0C;AAAA,EAC5D;AAEA,QAAM,mBAAe,iCAA0B,OAAO;AAAA,IACpD,SAAS;AAAA,IACT,GAAG;AAAA,IACH,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,IACd,MAAM,MAAM;AAAA,IAAC;AAAA,IACb,SAAS,MAAM;AAAA,IAAC;AAAA,IAChB,YAAY;AAAA,EACd,EAAE;AAEF,QAAM,sBAAsB,MAAM,6BAA6B,QAAQ,MAAM;AAE7E,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA;AAAA,IACA,OAAO,CAAC,CAAC,MAAM;AAAA,IACf,MAAM,MAAM;AAAA,IACZ,SAAS,MAAM;AAAA,IACf,QAAQ,CAAC,CAAC,MAAM;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA,uBAAuB,MAAM,yBAAyB;AAAA,IACtD,uBAAuB,MAAM,yBAAyB;AAAA,IACtD,oBAAoB,QAAQ;AAAA,IAC5B,OAAO,MAAM;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe;AAAA,EACjB;AAEA,SAAO;AACT;",
5
5
  "names": ["React"]
6
6
  }
package/dist/esm/Sheet.js CHANGED
@@ -72,8 +72,7 @@ const Frame = styled(YStack, {
72
72
  borderTopRightRadius: "$true",
73
73
  width: "100%",
74
74
  maxHeight: "100%",
75
- overflow: "hidden",
76
- pointerEvents: "auto"
75
+ overflow: "hidden"
77
76
  }
78
77
  }
79
78
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Sheet.tsx"],
4
- "mappings": "AAAA,SAAS,cAAc;AACvB,SAAS,gBAAgB,QAAQ,cAAc;AAE/C,SAAS,mBAAmB,YAAY,0BAA0B;AAClE,SAAS,mBAAmB;AAE5B,SAAS,wBAAwB;AACjC,cAAc;AAMP,MAAM,SAAS,OAAO,QAAQ;AAAA,EACnC,MAAM;AAAA,EAEN,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,eAAe;AAAA,MACjB;AAAA,MACA,OAAO;AAAA,QACL,SAAS;AAAA,QACT,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IAEA,UAAU;AAAA,MACR,OAAO;AAAA,QACL,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,QAAQ;AAAA,QACR,kBAAkB;AAAA,QAClB,cAAc;AAAA,QACd,SAAS;AAAA,QAET,YAAY;AAAA,UACV,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;AAMM,MAAM,UAAU,OAAO,gBAAgB;AAAA,EAC5C,MAAM;AAAA,EAEN,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,eAAe;AAAA,MACjB;AAAA,MACA,OAAO;AAAA,QACL,SAAS;AAAA,QACT,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IAEA,UAAU;AAAA,MACR,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,cAAc;AAAA,QACd,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;AAMM,MAAM,QAAQ,OAAO,QAAQ;AAAA,EAClC,MAAM;AAAA,EAEN,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,MAAM;AAAA,QACN,iBAAiB;AAAA,QACjB,qBAAqB;AAAA,QACrB,sBAAsB;AAAA,QACtB,OAAO;AAAA,QACP,WAAW;AAAA,QACX,UAAU;AAAA,QACV,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;AAEM,MAAM,QAAQ,YAAY;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,MAAM,oBAAoB;AAG1B,MAAM,mBAAmB;",
4
+ "mappings": "AAAA,SAAS,cAAc;AACvB,SAAS,gBAAgB,QAAQ,cAAc;AAE/C,SAAS,mBAAmB,YAAY,0BAA0B;AAClE,SAAS,mBAAmB;AAE5B,SAAS,wBAAwB;AACjC,cAAc;AAMP,MAAM,SAAS,OAAO,QAAQ;AAAA,EACnC,MAAM;AAAA,EAEN,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,eAAe;AAAA,MACjB;AAAA,MACA,OAAO;AAAA,QACL,SAAS;AAAA,QACT,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IAEA,UAAU;AAAA,MACR,OAAO;AAAA,QACL,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,QAAQ;AAAA,QACR,kBAAkB;AAAA,QAClB,cAAc;AAAA,QACd,SAAS;AAAA,QAET,YAAY;AAAA,UACV,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;AAMM,MAAM,UAAU,OAAO,gBAAgB;AAAA,EAC5C,MAAM;AAAA,EAEN,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,eAAe;AAAA,MACjB;AAAA,MACA,OAAO;AAAA,QACL,SAAS;AAAA,QACT,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IAEA,UAAU;AAAA,MACR,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,cAAc;AAAA,QACd,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;AAMM,MAAM,QAAQ,OAAO,QAAQ;AAAA,EAClC,MAAM;AAAA,EAEN,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,MAAM;AAAA,QACN,iBAAiB;AAAA,QACjB,qBAAqB;AAAA,QACrB,sBAAsB;AAAA,QACtB,OAAO;AAAA,QACP,WAAW;AAAA,QACX,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;AAEM,MAAM,QAAQ,YAAY;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,MAAM,oBAAoB;AAG1B,MAAM,mBAAmB;",
5
5
  "names": []
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/SheetContext.tsx"],
4
- "mappings": "AACA,SAAS,0BAA0B;AAGnC,SAAS,kBAAkB;AAgBpB,MAAM,CAAC,oBAAoB,gBAAgB,IAAI,mBAAmB,UAAU;AAE5E,MAAM,CAAC,eAAe,eAAe,IAAI;AAAA,EAC9C;AAAA,EACA,CAAC;AACH;",
4
+ "mappings": "AAAA,SAAS,0BAA0B;AAEnC,SAAS,kBAAkB;AAGpB,MAAM,CAAC,oBAAoB,gBAAgB,IAAI,mBAAmB,UAAU;AAE5E,MAAM,CAAC,eAAe,eAAe,IAAI;AAAA,EAC9C;AAAA,EACA,CAAC;AACH;",
5
5
  "names": []
6
6
  }
@@ -3,25 +3,17 @@ import { AdaptParentContext } from "@tamagui/adapt";
3
3
  import { useComposedRefs } from "@tamagui/compose-refs";
4
4
  import {
5
5
  Theme,
6
- isClient,
7
6
  isTouchable,
8
7
  isWeb,
9
- mergeEvent,
10
- styled,
11
8
  themeable,
12
9
  useAnimationDriver,
13
- useDidFinishSSR,
14
10
  useEvent,
15
11
  useIsomorphicLayoutEffect,
16
- useThemeName,
17
- withStaticProperties
12
+ useThemeName
18
13
  } from "@tamagui/core";
19
14
  import { Portal } from "@tamagui/portal";
20
- import { RemoveScroll } from "@tamagui/remove-scroll";
21
- import { ThemeableStack, XStack, YStack } from "@tamagui/stacks";
22
15
  import { useKeyboardVisible } from "@tamagui/use-keyboard-visible";
23
16
  import {
24
- createContext,
25
17
  forwardRef,
26
18
  useCallback,
27
19
  useContext,
@@ -32,203 +24,63 @@ import {
32
24
  } from "react";
33
25
  import {
34
26
  Keyboard,
35
- PanResponder,
36
- Platform
27
+ PanResponder
37
28
  } from "react-native";
38
- import { SHEET_HANDLE_NAME, SHEET_NAME } from "./constants";
39
- import { getNativeSheet } from "./nativeSheet";
40
- import { SheetProvider, useSheetContext } from "./SheetContext";
41
- import { SheetScrollView } from "./SheetScrollView";
42
- import { useSheetChildren } from "./useSheetChildren";
43
- import { useSheetController } from "./useSheetController";
29
+ import { HIDDEN_SIZE, SHEET_HIDDEN_STYLESHEET } from "./constants";
30
+ import { ParentSheetContext, SheetInsideSheetContext } from "./contexts";
31
+ import { resisted } from "./helpers";
32
+ import { SheetProvider } from "./SheetContext";
44
33
  import { useSheetOpenState } from "./useSheetOpenState";
45
34
  import { useSheetProviderProps } from "./useSheetProviderProps";
46
- import { useSheetSnapPoints } from "./useSheetSnapPoints";
47
- import { createSheetScope } from "./SheetContext";
48
- export * from "./types";
49
- const SheetHandleFrame = styled(XStack, {
50
- name: SHEET_HANDLE_NAME,
51
- variants: {
52
- open: {
53
- true: {
54
- pointerEvents: "auto"
55
- },
56
- false: {
57
- opacity: 0,
58
- pointerEvents: "none"
59
- }
60
- },
61
- unstyled: {
62
- false: {
63
- height: 10,
64
- borderRadius: 100,
65
- backgroundColor: "$background",
66
- zIndex: 10,
67
- marginHorizontal: "35%",
68
- marginBottom: "$2",
69
- opacity: 0.5,
70
- hoverStyle: {
71
- opacity: 0.7
72
- }
73
- }
74
- }
75
- },
76
- defaultVariants: {
77
- unstyled: false
78
- }
79
- });
80
- const SheetHandle = SheetHandleFrame.extractable(
81
- ({ __scopeSheet, ...props }) => {
82
- const context = useSheetContext(SHEET_HANDLE_NAME, __scopeSheet);
83
- return /* @__PURE__ */ jsx(
84
- SheetHandleFrame,
85
- {
86
- onPress: () => {
87
- const max = context.snapPoints.length + (context.dismissOnSnapToBottom ? -1 : 0);
88
- const nextPos = (context.position + 1) % max;
89
- context.setPosition(nextPos);
90
- },
91
- open: context.open,
92
- ...props
93
- }
94
- );
95
- }
96
- );
97
- const SHEET_OVERLAY_NAME = "SheetOverlay";
98
- const SheetOverlayFrame = styled(ThemeableStack, {
99
- name: SHEET_OVERLAY_NAME,
100
- variants: {
101
- closed: {
102
- true: {
103
- opacity: 0,
104
- pointerEvents: "none"
105
- },
106
- false: {
107
- pointerEvents: "auto"
108
- }
109
- },
110
- unstyled: {
111
- false: {
112
- fullscreen: true,
113
- position: "absolute",
114
- backgrounded: true,
115
- zIndex: 1e5
116
- }
117
- }
118
- },
119
- defaultVariants: {
120
- unstyled: false
121
- }
122
- });
123
- const SheetOverlay = SheetOverlayFrame.extractable(
124
- ({ __scopeSheet, ...props }) => {
125
- const context = useSheetContext(SHEET_OVERLAY_NAME, __scopeSheet);
126
- return /* @__PURE__ */ jsx(
127
- SheetOverlayFrame,
128
- {
129
- closed: !context.open || context.hidden,
130
- ...props,
131
- onPress: mergeEvent(
132
- props.onPress,
133
- context.dismissOnOverlayPress ? () => {
134
- context.setOpen(false);
135
- } : void 0
136
- )
137
- }
138
- );
139
- }
140
- );
141
- const selectionStyleSheet = isClient ? document.createElement("style") : null;
142
- if (selectionStyleSheet) {
143
- document.head.appendChild(selectionStyleSheet);
144
- }
145
- const SheetFrameFrame = styled(YStack, {
146
- name: SHEET_NAME,
147
- variants: {
148
- unstyled: {
149
- false: {
150
- flex: 1,
151
- backgroundColor: "$background",
152
- borderTopLeftRadius: "$true",
153
- borderTopRightRadius: "$true",
154
- width: "100%",
155
- maxHeight: "100%",
156
- overflow: "hidden",
157
- pointerEvents: "auto"
158
- }
159
- }
160
- },
161
- defaultVariants: {
162
- unstyled: false
163
- }
164
- });
165
- const SheetFrame = SheetFrameFrame.extractable(
166
- forwardRef(
167
- ({ __scopeSheet, ...props }, forwardedRef) => {
168
- const context = useSheetContext(SHEET_NAME, __scopeSheet);
169
- const composedContentRef = useComposedRefs(forwardedRef, context.contentRef);
170
- return /* @__PURE__ */ jsx(SheetFrameFrame, { ref: composedContentRef, ...props });
171
- }
172
- )
173
- );
174
- const HIDDEN_SIZE = 1e4;
175
- const sheetComponents = {
176
- Handle: SheetHandle,
177
- Frame: SheetFrame,
178
- Overlay: SheetOverlay,
179
- ScrollView: SheetScrollView
180
- };
181
- const ParentSheetContext = createContext({
182
- zIndex: 1e5
183
- });
184
- const Sheet = withStaticProperties(
185
- forwardRef(function Sheet2(props, ref) {
186
- const hydrated = useDidFinishSSR();
187
- const { isShowingNonSheet } = useSheetController();
188
- let SheetImplementation = SheetImplementationCustom;
189
- if (props.native && Platform.OS === "ios") {
190
- if (process.env.TAMAGUI_TARGET === "native") {
191
- const impl = getNativeSheet("ios");
192
- if (impl) {
193
- SheetImplementation = impl;
194
- }
195
- }
196
- }
197
- if (isShowingNonSheet || !hydrated) {
198
- return null;
199
- }
200
- return /* @__PURE__ */ jsx(SheetImplementation, { ref, ...props });
201
- }),
202
- sheetComponents
203
- );
204
35
  const SheetImplementationCustom = themeable(
205
36
  forwardRef(function SheetImplementationCustom2(props, forwardedRef) {
206
37
  const parentSheet = useContext(ParentSheetContext);
207
38
  const {
208
39
  animationConfig,
209
- forceRemoveScrollEnabled = null,
210
- disableDrag: disableDragProp,
211
40
  modal = false,
212
41
  zIndex = parentSheet.zIndex + 1,
213
42
  moveOnKeyboardChange = false,
214
43
  portalProps
215
44
  } = props;
45
+ const keyboardIsVisible = useKeyboardVisible();
216
46
  const state = useSheetOpenState(props);
217
- const providerProps = useSheetProviderProps(props, state);
218
- const { positions, maxSnapPoint, screenSize } = useSheetSnapPoints(providerProps);
219
- const { position, contentRef, setPosition, scrollBridge, frameSize, setFrameSize } = providerProps;
220
- const { open, isHidden, controller } = state;
221
- const { frameComponent, handleComponent, bottomCoverComponent, overlayComponent } = useSheetChildren(props.children);
47
+ const [overlayComponent, setOverlayComponent] = useState(null);
48
+ const providerProps = useSheetProviderProps(props, state, {
49
+ onOverlayComponent: setOverlayComponent
50
+ });
51
+ const { frameSize, setFrameSize, snapPoints, position, setPosition, scrollBridge } = providerProps;
52
+ const { open, controller, isHidden } = state;
222
53
  const sheetRef = useRef(null);
223
54
  const ref = useComposedRefs(forwardedRef, sheetRef);
55
+ const [isShowingInnerSheet, setIsShowingInnerSheet] = useState(false);
56
+ const shouldHideParentSheet = !isWeb && modal && isShowingInnerSheet;
57
+ const parentSheetContext = useContext(SheetInsideSheetContext);
58
+ const onInnerSheet = useCallback((hasChild) => {
59
+ setIsShowingInnerSheet(hasChild);
60
+ }, []);
61
+ const maxSnapPoint = snapPoints.reduce((prev, cur) => Math.max(prev, cur));
62
+ const screenSize = frameSize / (maxSnapPoint / 100);
63
+ const positions = useMemo(
64
+ () => snapPoints.map((point) => getPercentSize(point, screenSize)),
65
+ [frameSize, snapPoints]
66
+ );
224
67
  const driver = useAnimationDriver();
225
- if (!driver) {
226
- throw new Error("Must set animations in tamagui.config.ts");
227
- }
228
- const disableDrag = disableDragProp ?? (controller == null ? void 0 : controller.disableDrag);
229
- const keyboardIsVisible = useKeyboardVisible();
230
- const themeName = useThemeName();
231
- const { useAnimatedNumber, useAnimatedNumberReaction, useAnimatedNumberStyle } = driver;
68
+ const { useAnimatedNumber, useAnimatedNumberStyle, useAnimatedNumberReaction } = driver;
69
+ const AnimatedView = driver["NumberView"] ?? driver.View;
70
+ useIsomorphicLayoutEffect(() => {
71
+ if (!(parentSheetContext && open))
72
+ return;
73
+ parentSheetContext(true);
74
+ return () => {
75
+ parentSheetContext(false);
76
+ };
77
+ }, [parentSheetContext, open]);
78
+ const nextParentContext = useMemo(
79
+ () => ({
80
+ zIndex
81
+ }),
82
+ [zIndex]
83
+ );
232
84
  const animatedNumber = useAnimatedNumber(HIDDEN_SIZE);
233
85
  const at = useRef(0);
234
86
  useAnimatedNumberReaction(
@@ -250,20 +102,6 @@ const SheetImplementationCustom = themeable(
250
102
  scrollBridge.onFinishAnimate = void 0;
251
103
  }
252
104
  }
253
- const [opacity, setOpacity] = useState(open ? 1 : 0);
254
- if (open && opacity === 0) {
255
- setOpacity(1);
256
- }
257
- useEffect(() => {
258
- if (!open) {
259
- const tm = setTimeout(() => {
260
- setOpacity(0);
261
- }, 400);
262
- return () => {
263
- clearTimeout(tm);
264
- };
265
- }
266
- }, [open]);
267
105
  const animateTo = useEvent((position2) => {
268
106
  const current = animatedNumber.getValue();
269
107
  if (isHidden && open)
@@ -295,12 +133,8 @@ const SheetImplementationCustom = themeable(
295
133
  useIsomorphicLayoutEffect(() => {
296
134
  animateTo(position);
297
135
  }, [isHidden, frameSize, position, animateTo]);
298
- const [isShowingInnerSheet, setIsShowingInnerSheet] = useState(false);
299
- const shouldHideParentSheet = !isWeb && modal && isShowingInnerSheet;
300
- const parentSheetContext = useContext(SheetInsideSheetContext);
301
- const onInnerSheet = useCallback((hasChild) => {
302
- setIsShowingInnerSheet(hasChild);
303
- }, []);
136
+ const disableDrag = props.disableDrag ?? (controller == null ? void 0 : controller.disableDrag);
137
+ const themeName = useThemeName();
304
138
  const panResponder = useMemo(
305
139
  () => {
306
140
  if (disableDrag)
@@ -313,12 +147,12 @@ const SheetImplementationCustom = themeable(
313
147
  scrollBridge.paneMinY = minY;
314
148
  let startY = at.current;
315
149
  function makeUnselectable(val) {
316
- if (!selectionStyleSheet)
150
+ if (!SHEET_HIDDEN_STYLESHEET)
317
151
  return;
318
152
  if (!val) {
319
- selectionStyleSheet.innerText = "";
153
+ SHEET_HIDDEN_STYLESHEET.innerText = "";
320
154
  } else {
321
- selectionStyleSheet.innerText = ":root * { user-select: none !important; -webkit-user-select: none !important; }";
155
+ SHEET_HIDDEN_STYLESHEET.innerText = ":root * { user-select: none !important; -webkit-user-select: none !important; }";
322
156
  }
323
157
  }
324
158
  const release = ({ vy, dragAt }) => {
@@ -393,6 +227,19 @@ const SheetImplementationCustom = themeable(
393
227
  // eslint-disable-next-line react-hooks/exhaustive-deps
394
228
  [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]
395
229
  );
230
+ const handleAnimationViewLayout = useCallback(
231
+ (e) => {
232
+ var _a;
233
+ let next = (_a = e.nativeEvent) == null ? void 0 : _a.layout.height;
234
+ if (isWeb && isTouchable && !open) {
235
+ next += 100;
236
+ }
237
+ if (!next)
238
+ return;
239
+ setFrameSize(next);
240
+ },
241
+ [keyboardIsVisible]
242
+ );
396
243
  const animatedStyle = useAnimatedNumberStyle(animatedNumber, (val) => {
397
244
  "worklet";
398
245
  const translateY = frameSize === 0 ? HIDDEN_SIZE : val;
@@ -422,44 +269,29 @@ const SheetImplementationCustom = themeable(
422
269
  keyboardDidHideListener.remove();
423
270
  keyboardDidShowListener.remove();
424
271
  };
425
- }, []);
426
- const AnimatedView = driver["NumberView"] ?? driver.View;
427
- useIsomorphicLayoutEffect(() => {
428
- if (!(parentSheetContext && open))
429
- return;
430
- parentSheetContext(true);
431
- return () => {
432
- parentSheetContext(false);
433
- };
434
- }, [parentSheetContext, open]);
435
- const nextParentContext = useMemo(
436
- () => ({
437
- zIndex
438
- }),
439
- [zIndex]
440
- );
441
- const handleLayout = useCallback(
442
- (e) => {
443
- var _a;
444
- let next = (_a = e.nativeEvent) == null ? void 0 : _a.layout.height;
445
- if (isWeb && isTouchable && !open) {
446
- next += 100;
447
- }
448
- if (!next)
449
- return;
450
- setFrameSize(() => next);
451
- },
452
- [keyboardIsVisible]
453
- );
454
- const removeScrollEnabled = forceRemoveScrollEnabled ?? (open && modal);
272
+ }, [moveOnKeyboardChange]);
273
+ const [opacity, setOpacity] = useState(open ? 1 : 0);
274
+ if (open && opacity === 0) {
275
+ setOpacity(1);
276
+ }
277
+ useEffect(() => {
278
+ if (!open) {
279
+ const tm = setTimeout(() => {
280
+ setOpacity(0);
281
+ }, 400);
282
+ return () => {
283
+ clearTimeout(tm);
284
+ };
285
+ }
286
+ }, [open]);
455
287
  const contents = /* @__PURE__ */ jsx(ParentSheetContext.Provider, { value: nextParentContext, children: /* @__PURE__ */ jsxs(SheetProvider, { ...providerProps, children: [
456
288
  shouldHideParentSheet ? null : overlayComponent,
457
- /* @__PURE__ */ jsxs(
289
+ /* @__PURE__ */ jsx(
458
290
  AnimatedView,
459
291
  {
460
292
  ref,
461
293
  ...panResponder == null ? void 0 : panResponder.panHandlers,
462
- onLayout: handleLayout,
294
+ onLayout: handleAnimationViewLayout,
463
295
  pointerEvents: open && !shouldHideParentSheet ? "auto" : "none",
464
296
  animation: props.animation,
465
297
  style: [
@@ -472,21 +304,7 @@ const SheetImplementationCustom = themeable(
472
304
  },
473
305
  animatedStyle
474
306
  ],
475
- children: [
476
- handleComponent,
477
- bottomCoverComponent,
478
- /* @__PURE__ */ jsx(
479
- RemoveScroll,
480
- {
481
- forwardProps: true,
482
- enabled: removeScrollEnabled,
483
- allowPinchZoom: true,
484
- shards: [contentRef],
485
- removeScrollBar: false,
486
- children: frameComponent
487
- }
488
- )
489
- ]
307
+ children: props.children
490
308
  }
491
309
  )
492
310
  ] }) });
@@ -501,27 +319,18 @@ const SheetImplementationCustom = themeable(
501
319
  return contents;
502
320
  })
503
321
  );
504
- const SheetInsideSheetContext = createContext(null);
505
- const ControlledSheet = Sheet;
506
- function resisted(y, minY, maxOverflow = 25) {
507
- if (y < minY) {
508
- const past = minY - y;
509
- const pctPast = Math.min(maxOverflow, past) / maxOverflow;
510
- const diminishBy = 1.1 - Math.pow(0.1, pctPast);
511
- const extra = -diminishBy * maxOverflow;
512
- return minY + extra;
322
+ function getPercentSize(point, screenSize) {
323
+ if (!screenSize)
324
+ return 0;
325
+ if (point === void 0) {
326
+ console.warn("No snapPoint");
327
+ return 0;
513
328
  }
514
- return y;
329
+ const pct = point / 100;
330
+ const next = Math.round(screenSize - pct * screenSize);
331
+ return next;
515
332
  }
516
333
  export {
517
- ControlledSheet,
518
- Sheet,
519
- SheetFrame,
520
- SheetFrameFrame,
521
- SheetHandle,
522
- SheetHandleFrame,
523
- SheetOverlay,
524
- SheetOverlayFrame,
525
- createSheetScope
334
+ SheetImplementationCustom
526
335
  };
527
- //# sourceMappingURL=Sheet.mjs.map
336
+ //# sourceMappingURL=SheetImplementationCustom.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/SheetImplementationCustom.tsx"],
4
+ "mappings": "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",
5
+ "names": ["SheetImplementationCustom", "position", "at", "state"]
6
+ }
@@ -1,9 +1,17 @@
1
+ import { isClient } from "@tamagui/core";
1
2
  const constants = {};
2
3
  const SHEET_NAME = "Sheet";
3
4
  const SHEET_HANDLE_NAME = "SheetHandle";
4
5
  const SHEET_OVERLAY_NAME = "SheetOverlay";
6
+ const HIDDEN_SIZE = 1e4;
7
+ const SHEET_HIDDEN_STYLESHEET = isClient ? document.createElement("style") : null;
8
+ if (SHEET_HIDDEN_STYLESHEET) {
9
+ document.head.appendChild(SHEET_HIDDEN_STYLESHEET);
10
+ }
5
11
  export {
12
+ HIDDEN_SIZE,
6
13
  SHEET_HANDLE_NAME,
14
+ SHEET_HIDDEN_STYLESHEET,
7
15
  SHEET_NAME,
8
16
  SHEET_OVERLAY_NAME,
9
17
  constants
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants.tsx"],
4
- "mappings": "AAAO,MAAM,YAAY,CAAC;AAEnB,MAAM,aAAa;AACnB,MAAM,oBAAoB;AAC1B,MAAM,qBAAqB;",
4
+ "mappings": "AAAA,SAAS,gBAAgB;AAElB,MAAM,YAAY,CAAC;AAEnB,MAAM,aAAa;AACnB,MAAM,oBAAoB;AAC1B,MAAM,qBAAqB;AAG3B,MAAM,cAAc;AAEpB,MAAM,0BAA0B,WAAW,SAAS,cAAc,OAAO,IAAI;AACpF,IAAI,yBAAyB;AAC3B,WAAS,KAAK,YAAY,uBAAuB;AACnD;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,10 @@
1
+ import { createContext } from "react";
2
+ const ParentSheetContext = createContext({
3
+ zIndex: 1e5
4
+ });
5
+ const SheetInsideSheetContext = createContext(null);
6
+ export {
7
+ ParentSheetContext,
8
+ SheetInsideSheetContext
9
+ };
10
+ //# sourceMappingURL=contexts.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/contexts.ts"],
4
+ "mappings": "AAAA,SAAS,qBAAqB;AAEvB,MAAM,qBAAqB,cAAc;AAAA,EAC9C,QAAQ;AACV,CAAC;AAEM,MAAM,0BAA0B,cAErC,IAAI;",
5
+ "names": []
6
+ }