@tamagui/sheet 3.0.0-beta.924.1 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/dist/cjs/Sheet.cjs +48 -16
  2. package/dist/cjs/Sheet.native.cjs +46 -17
  3. package/dist/cjs/Sheet.native.js +46 -17
  4. package/dist/cjs/Sheet.native.js.map +1 -1
  5. package/dist/cjs/SheetDragSurface.cjs +50 -0
  6. package/dist/{jsx/GestureDetectorWrapper.native.js → cjs/SheetDragSurface.native.cjs} +24 -12
  7. package/dist/cjs/{GestureDetectorWrapper.native.js → SheetDragSurface.native.js} +25 -11
  8. package/dist/cjs/SheetDragSurface.native.js.map +1 -0
  9. package/dist/cjs/SheetImplementationCustom.cjs +41 -58
  10. package/dist/cjs/SheetImplementationCustom.native.cjs +43 -59
  11. package/dist/cjs/SheetImplementationCustom.native.js +43 -59
  12. package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
  13. package/dist/cjs/SheetScrollView.cjs +15 -3
  14. package/dist/cjs/SheetScrollView.native.cjs +17 -4
  15. package/dist/cjs/SheetScrollView.native.js +17 -4
  16. package/dist/cjs/SheetScrollView.native.js.map +1 -1
  17. package/dist/cjs/nativeSheet.cjs +3 -59
  18. package/dist/cjs/nativeSheet.native.cjs +70 -58
  19. package/dist/cjs/nativeSheet.native.js +70 -58
  20. package/dist/cjs/nativeSheet.native.js.map +1 -1
  21. package/dist/cjs/stableViewportHeight.cjs +27 -0
  22. package/dist/cjs/stableViewportHeight.native.cjs +29 -0
  23. package/dist/cjs/stableViewportHeight.native.js +31 -0
  24. package/dist/cjs/stableViewportHeight.native.js.map +1 -0
  25. package/dist/cjs/useSheetOffscreenSize.cjs +3 -1
  26. package/dist/cjs/useSheetOffscreenSize.native.cjs +3 -2
  27. package/dist/cjs/useSheetOffscreenSize.native.js +3 -2
  28. package/dist/cjs/useSheetOffscreenSize.native.js.map +1 -1
  29. package/dist/cjs/useSheetOpenState.cjs +13 -6
  30. package/dist/cjs/useSheetOpenState.native.cjs +15 -5
  31. package/dist/cjs/useSheetOpenState.native.js +15 -5
  32. package/dist/cjs/useSheetOpenState.native.js.map +1 -1
  33. package/dist/cjs/useSheetProviderProps.cjs +5 -94
  34. package/dist/cjs/useSheetProviderProps.native.cjs +5 -103
  35. package/dist/cjs/useSheetProviderProps.native.js +5 -103
  36. package/dist/cjs/useSheetProviderProps.native.js.map +1 -1
  37. package/dist/cjs/useSheetState.cjs +120 -0
  38. package/dist/cjs/useSheetState.native.cjs +131 -0
  39. package/dist/cjs/useSheetState.native.js +133 -0
  40. package/dist/cjs/useSheetState.native.js.map +1 -0
  41. package/dist/esm/Sheet.mjs +48 -15
  42. package/dist/esm/Sheet.mjs.map +1 -1
  43. package/dist/esm/Sheet.native.js +46 -17
  44. package/dist/esm/Sheet.native.js.map +1 -1
  45. package/dist/esm/SheetDragSurface.mjs +25 -0
  46. package/dist/esm/SheetDragSurface.mjs.map +1 -0
  47. package/dist/esm/SheetDragSurface.native.js +34 -0
  48. package/dist/esm/SheetDragSurface.native.js.map +1 -0
  49. package/dist/esm/SheetImplementationCustom.mjs +39 -56
  50. package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
  51. package/dist/esm/SheetImplementationCustom.native.js +41 -57
  52. package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
  53. package/dist/esm/SheetScrollView.mjs +16 -4
  54. package/dist/esm/SheetScrollView.mjs.map +1 -1
  55. package/dist/esm/SheetScrollView.native.js +18 -5
  56. package/dist/esm/SheetScrollView.native.js.map +1 -1
  57. package/dist/esm/nativeSheet.mjs +3 -60
  58. package/dist/esm/nativeSheet.mjs.map +1 -1
  59. package/dist/esm/nativeSheet.native.js +70 -58
  60. package/dist/esm/nativeSheet.native.js.map +1 -1
  61. package/dist/esm/stableViewportHeight.mjs +8 -0
  62. package/dist/esm/stableViewportHeight.mjs.map +1 -0
  63. package/dist/esm/stableViewportHeight.native.js +8 -0
  64. package/dist/esm/stableViewportHeight.native.js.map +1 -0
  65. package/dist/esm/useKeyboardControllerSheet.native.js +0 -5
  66. package/dist/esm/useSheetOffscreenSize.mjs +3 -1
  67. package/dist/esm/useSheetOffscreenSize.mjs.map +1 -1
  68. package/dist/esm/useSheetOffscreenSize.native.js +3 -2
  69. package/dist/esm/useSheetOffscreenSize.native.js.map +1 -1
  70. package/dist/esm/useSheetOpenState.mjs +14 -7
  71. package/dist/esm/useSheetOpenState.mjs.map +1 -1
  72. package/dist/esm/useSheetOpenState.native.js +16 -6
  73. package/dist/esm/useSheetOpenState.native.js.map +1 -1
  74. package/dist/esm/useSheetProviderProps.mjs +5 -88
  75. package/dist/esm/useSheetProviderProps.mjs.map +1 -1
  76. package/dist/esm/useSheetProviderProps.native.js +5 -97
  77. package/dist/esm/useSheetProviderProps.native.js.map +1 -1
  78. package/dist/esm/useSheetState.mjs +95 -0
  79. package/dist/esm/useSheetState.mjs.map +1 -0
  80. package/dist/esm/useSheetState.native.js +104 -0
  81. package/dist/esm/useSheetState.native.js.map +1 -0
  82. package/dist/jsx/Sheet.mjs +48 -15
  83. package/dist/jsx/Sheet.mjs.map +1 -1
  84. package/dist/jsx/Sheet.native.cjs +46 -17
  85. package/dist/jsx/Sheet.native.js +46 -17
  86. package/dist/jsx/Sheet.native.js.map +1 -1
  87. package/dist/jsx/SheetDragSurface.mjs +25 -0
  88. package/dist/jsx/SheetDragSurface.mjs.map +1 -0
  89. package/dist/{cjs/GestureDetectorWrapper.native.cjs → jsx/SheetDragSurface.native.cjs} +24 -10
  90. package/dist/jsx/{GestureDetectorWrapper.native.cjs → SheetDragSurface.native.js} +26 -10
  91. package/dist/jsx/SheetDragSurface.native.js.map +1 -0
  92. package/dist/jsx/SheetImplementationCustom.mjs +39 -56
  93. package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
  94. package/dist/jsx/SheetImplementationCustom.native.cjs +43 -59
  95. package/dist/jsx/SheetImplementationCustom.native.js +43 -59
  96. package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
  97. package/dist/jsx/SheetScrollView.mjs +16 -4
  98. package/dist/jsx/SheetScrollView.mjs.map +1 -1
  99. package/dist/jsx/SheetScrollView.native.cjs +17 -4
  100. package/dist/jsx/SheetScrollView.native.js +17 -4
  101. package/dist/jsx/SheetScrollView.native.js.map +1 -1
  102. package/dist/jsx/nativeSheet.mjs +3 -60
  103. package/dist/jsx/nativeSheet.mjs.map +1 -1
  104. package/dist/jsx/nativeSheet.native.cjs +70 -58
  105. package/dist/jsx/nativeSheet.native.js +70 -58
  106. package/dist/jsx/nativeSheet.native.js.map +1 -1
  107. package/dist/jsx/stableViewportHeight.mjs +8 -0
  108. package/dist/jsx/stableViewportHeight.mjs.map +1 -0
  109. package/dist/jsx/stableViewportHeight.native.cjs +29 -0
  110. package/dist/jsx/stableViewportHeight.native.js +31 -0
  111. package/dist/jsx/stableViewportHeight.native.js.map +1 -0
  112. package/dist/jsx/useSheetOffscreenSize.mjs +3 -1
  113. package/dist/jsx/useSheetOffscreenSize.mjs.map +1 -1
  114. package/dist/jsx/useSheetOffscreenSize.native.cjs +3 -2
  115. package/dist/jsx/useSheetOffscreenSize.native.js +3 -2
  116. package/dist/jsx/useSheetOffscreenSize.native.js.map +1 -1
  117. package/dist/jsx/useSheetOpenState.mjs +14 -7
  118. package/dist/jsx/useSheetOpenState.mjs.map +1 -1
  119. package/dist/jsx/useSheetOpenState.native.cjs +15 -5
  120. package/dist/jsx/useSheetOpenState.native.js +15 -5
  121. package/dist/jsx/useSheetOpenState.native.js.map +1 -1
  122. package/dist/jsx/useSheetProviderProps.mjs +5 -88
  123. package/dist/jsx/useSheetProviderProps.mjs.map +1 -1
  124. package/dist/jsx/useSheetProviderProps.native.cjs +5 -103
  125. package/dist/jsx/useSheetProviderProps.native.js +5 -103
  126. package/dist/jsx/useSheetProviderProps.native.js.map +1 -1
  127. package/dist/jsx/useSheetState.mjs +95 -0
  128. package/dist/jsx/useSheetState.mjs.map +1 -0
  129. package/dist/jsx/useSheetState.native.cjs +131 -0
  130. package/dist/jsx/useSheetState.native.js +133 -0
  131. package/dist/jsx/useSheetState.native.js.map +1 -0
  132. package/package.json +27 -22
  133. package/src/Sheet.tsx +45 -18
  134. package/src/SheetDragSurface.native.tsx +42 -0
  135. package/src/SheetDragSurface.tsx +40 -0
  136. package/src/SheetImplementationCustom.tsx +67 -92
  137. package/src/SheetScrollView.tsx +26 -4
  138. package/src/nativeSheet.native.tsx +110 -0
  139. package/src/nativeSheet.ts +16 -0
  140. package/src/stableViewportHeight.native.ts +9 -0
  141. package/src/stableViewportHeight.ts +15 -0
  142. package/src/types.tsx +44 -1
  143. package/src/useSheetOffscreenSize.tsx +3 -7
  144. package/src/useSheetOpenState.tsx +18 -8
  145. package/src/useSheetProviderProps.tsx +18 -149
  146. package/src/useSheetScrollViewGestures.native.ts +4 -1
  147. package/src/useSheetState.tsx +139 -0
  148. package/types/Sheet.d.ts +68 -164
  149. package/types/Sheet.d.ts.map +1 -1
  150. package/types/SheetDragSurface.d.ts +11 -0
  151. package/types/SheetDragSurface.d.ts.map +1 -0
  152. package/types/SheetDragSurface.native.d.ts +11 -0
  153. package/types/SheetDragSurface.native.d.ts.map +1 -0
  154. package/types/SheetImplementationCustom.d.ts +1 -1
  155. package/types/SheetImplementationCustom.d.ts.map +1 -1
  156. package/types/SheetScrollView.d.ts +3 -3
  157. package/types/SheetScrollView.d.ts.map +1 -1
  158. package/types/nativeSheet.d.ts +8 -9
  159. package/types/nativeSheet.d.ts.map +1 -1
  160. package/types/nativeSheet.native.d.ts +5 -0
  161. package/types/nativeSheet.native.d.ts.map +1 -0
  162. package/types/stableViewportHeight.d.ts +12 -0
  163. package/types/stableViewportHeight.d.ts.map +1 -0
  164. package/types/stableViewportHeight.native.d.ts +6 -0
  165. package/types/stableViewportHeight.native.d.ts.map +1 -0
  166. package/types/types.d.ts +34 -1
  167. package/types/types.d.ts.map +1 -1
  168. package/types/useSheetOffscreenSize.d.ts +1 -1
  169. package/types/useSheetOffscreenSize.d.ts.map +1 -1
  170. package/types/useSheetOpenState.d.ts +3 -1
  171. package/types/useSheetOpenState.d.ts.map +1 -1
  172. package/types/useSheetProviderProps.d.ts +15 -13
  173. package/types/useSheetProviderProps.d.ts.map +1 -1
  174. package/types/useSheetScrollViewGestures.native.d.ts +1 -1
  175. package/types/useSheetScrollViewGestures.native.d.ts.map +1 -1
  176. package/types/useSheetState.d.ts +26 -0
  177. package/types/useSheetState.d.ts.map +1 -0
  178. package/dist/cjs/GestureDetectorWrapper.cjs +0 -44
  179. package/dist/cjs/GestureDetectorWrapper.native.js.map +0 -1
  180. package/dist/esm/GestureDetectorWrapper.mjs +0 -25
  181. package/dist/esm/GestureDetectorWrapper.mjs.map +0 -1
  182. package/dist/esm/GestureDetectorWrapper.native.js +0 -26
  183. package/dist/esm/GestureDetectorWrapper.native.js.map +0 -1
  184. package/dist/jsx/GestureDetectorWrapper.mjs +0 -25
  185. package/dist/jsx/GestureDetectorWrapper.mjs.map +0 -1
  186. package/dist/jsx/GestureDetectorWrapper.native.js.map +0 -1
  187. package/src/GestureDetectorWrapper.tsx +0 -38
  188. package/src/nativeSheet.tsx +0 -86
  189. package/types/GestureDetectorWrapper.d.ts +0 -14
  190. package/types/GestureDetectorWrapper.d.ts.map +0 -1
@@ -1,64 +1,7 @@
1
- import { YStack } from "@tamagui/stacks";
2
- import { useEffect, useRef } from "react";
3
- import { View } from "react-native-web";
4
- import { SheetNativeSystemContext, SheetProvider } from "./SheetContext.mjs";
5
- import { useSheetOpenState } from "./useSheetOpenState.mjs";
6
- import { useSheetProviderProps } from "./useSheetProviderProps.mjs";
7
- import { jsx, jsxs } from "react/jsx-runtime";
8
-
9
- const nativeSheets = { ios: null };
10
- function getNativeSheet(platform) {
11
- return nativeSheets[platform];
12
- }
13
- function setupNativeSheet(platform, RNIOSModal) {
14
- const { ModalSheetView, ModalSheetViewMainContent } = RNIOSModal;
15
- if (platform === "ios") {
16
- nativeSheets[platform] = (props) => {
17
- const state = useSheetOpenState(props);
18
- const providerProps = useSheetProviderProps(props, state);
19
- const { open, setOpen } = state;
20
- const ref = useRef(void 0);
21
- useEffect(() => {
22
- if (open) {
23
- ref.current?.presentModal();
24
- } else {
25
- ref.current?.dismissModal();
26
- }
27
- }, [open]);
28
- function setOpenInternal(next) {
29
- props.onOpenChange?.(open);
30
- setOpen(next);
31
- }
32
- return /* @__PURE__ */ jsx(SheetNativeSystemContext.Provider, {
33
- value: true,
34
- children: /* @__PURE__ */ jsxs(SheetProvider, {
35
- setHasScrollView: emptyFn,
36
- keyboardOccludedHeight: 0,
37
- isKeyboardVisible: false,
38
- keyboardStableFrameHeight: 0,
39
- ...providerProps,
40
- onlyShowContainer: true,
41
- children: [/* @__PURE__ */ jsx(ModalSheetView, {
42
- ref,
43
- onModalDidDismiss: () => setOpenInternal(false),
44
- children: /* @__PURE__ */ jsx(ModalSheetViewMainContent, { children: /* @__PURE__ */ jsx(View, {
45
- style: { flex: 1 },
46
- children: props.children
47
- }) })
48
- }), /* @__PURE__ */ jsx(YStack, {
49
- position: "absolute",
50
- display: "none",
51
- pointerEvents: "none",
52
- width: 0,
53
- height: 0,
54
- children: props.children
55
- })]
56
- })
57
- });
58
- };
59
- }
1
+ function getNativeSheet(_platform) {
2
+ return null;
60
3
  }
61
- const emptyFn = () => {};
4
+ function setupNativeSheet(_platform, _Renderer) {}
62
5
 
63
6
  export { getNativeSheet, setupNativeSheet };
64
7
  //# sourceMappingURL=nativeSheet.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"nativeSheet.js","names":[],"sources":["jsx/nativeSheet.js"],"sourcesContent":["import { YStack } from \"@tamagui/stacks\";\nimport { useEffect, useRef } from \"react\";\nimport { View } from \"react-native-web\";\nimport { SheetNativeSystemContext, SheetProvider } from \"./SheetContext\";\nimport { useSheetOpenState } from \"./useSheetOpenState\";\nimport { useSheetProviderProps } from \"./useSheetProviderProps\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nconst nativeSheets = {\n ios: null\n};\nfunction getNativeSheet(platform) {\n return nativeSheets[platform];\n}\nfunction setupNativeSheet(platform, RNIOSModal) {\n const { ModalSheetView, ModalSheetViewMainContent } = RNIOSModal;\n if (platform === \"ios\") {\n nativeSheets[platform] = (props) => {\n const state = useSheetOpenState(props);\n const providerProps = useSheetProviderProps(props, state);\n const { open, setOpen } = state;\n const ref = useRef(void 0);\n useEffect(() => {\n if (open) {\n ref.current?.presentModal();\n } else {\n ref.current?.dismissModal();\n }\n }, [open]);\n function setOpenInternal(next) {\n props.onOpenChange?.(open);\n setOpen(next);\n }\n return /* @__PURE__ */ jsx(SheetNativeSystemContext.Provider, { value: true, children: /* @__PURE__ */ jsxs(\n SheetProvider,\n {\n setHasScrollView: emptyFn,\n keyboardOccludedHeight: 0,\n isKeyboardVisible: false,\n keyboardStableFrameHeight: 0,\n ...providerProps,\n onlyShowContainer: true,\n children: [\n /* @__PURE__ */ jsx(ModalSheetView, { ref, onModalDidDismiss: () => setOpenInternal(false), children: /* @__PURE__ */ jsx(ModalSheetViewMainContent, { children: /* @__PURE__ */ jsx(View, { style: { flex: 1 }, children: props.children }) }) }),\n /* @__PURE__ */ jsx(\n YStack,\n {\n position: \"absolute\",\n display: \"none\",\n pointerEvents: \"none\",\n width: 0,\n height: 0,\n children: props.children\n }\n )\n ]\n }\n ) });\n };\n }\n}\nconst emptyFn = () => {\n};\nexport {\n getNativeSheet,\n setupNativeSheet\n};\n//# sourceMappingURL=nativeSheet.js.map\n"],"mappings":";;;;;;;;;AAOA,MAAM,eAAe,EACnB,KAAK,KACP;AACA,SAAS,eAAe,UAAU;CAChC,OAAO,aAAa;AACtB;AACA,SAAS,iBAAiB,UAAU,YAAY;CAC9C,MAAM,EAAE,gBAAgB,8BAA8B;CACtD,IAAI,aAAa,OAAO;EACtB,aAAa,aAAa,UAAU;GAClC,MAAM,QAAQ,kBAAkB,KAAK;GACrC,MAAM,gBAAgB,sBAAsB,OAAO,KAAK;GACxD,MAAM,EAAE,MAAM,YAAY;GAC1B,MAAM,MAAM,OAAO,KAAK,CAAC;GACzB,gBAAgB;IACd,IAAI,MAAM;KACR,IAAI,SAAS,aAAa;IAC5B,OAAO;KACL,IAAI,SAAS,aAAa;IAC5B;GACF,GAAG,CAAC,IAAI,CAAC;GACT,SAAS,gBAAgB,MAAM;IAC7B,MAAM,eAAe,IAAI;IACzB,QAAQ,IAAI;GACd;GACA,OAAuB,oBAAI,yBAAyB,UAAU;IAAE,OAAO;IAAM,UAA0B,qBACrG,eACA;KACE,kBAAkB;KAClB,wBAAwB;KACxB,mBAAmB;KACnB,2BAA2B;KAC3B,GAAG;KACH,mBAAmB;KACnB,UAAU,CACQ,oBAAI,gBAAgB;MAAE;MAAK,yBAAyB,gBAAgB,KAAK;MAAG,UAA0B,oBAAI,2BAA2B,EAAE,UAA0B,oBAAI,MAAM;OAAE,OAAO,EAAE,MAAM,EAAE;OAAG,UAAU,MAAM;MAAS,CAAC,EAAE,CAAC;KAAE,CAAC,GACjO,oBACd,QACA;MACE,UAAU;MACV,SAAS;MACT,eAAe;MACf,OAAO;MACP,QAAQ;MACR,UAAU,MAAM;KAClB,CACF,CACF;IACF,CACF;GAAE,CAAC;EACL;CACF;AACF;AACA,MAAM,gBAAgB,CACtB"}
1
+ {"version":3,"file":"nativeSheet.js","names":[],"sources":["jsx/nativeSheet.js"],"sourcesContent":["function getNativeSheet(_platform) {\n return null;\n}\nfunction setupNativeSheet(_platform, _Renderer) {\n}\nexport {\n getNativeSheet,\n setupNativeSheet\n};\n//# sourceMappingURL=nativeSheet.js.map\n"],"mappings":";AAAA,SAAS,eAAe,WAAW;CACjC,OAAO;AACT;AACA,SAAS,iBAAiB,WAAW,WAAW,CAChD"}
@@ -20,74 +20,86 @@ var __copyProps = (to, from, except, desc) => {
20
20
  return to;
21
21
  };
22
22
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
- var nativeSheet_exports = {};
24
- __export(nativeSheet_exports, {
23
+ var nativeSheet_native_exports = {};
24
+ __export(nativeSheet_native_exports, {
25
25
  getNativeSheet: () => getNativeSheet,
26
26
  setupNativeSheet: () => setupNativeSheet
27
27
  });
28
- module.exports = __toCommonJS(nativeSheet_exports);
28
+ module.exports = __toCommonJS(nativeSheet_native_exports);
29
29
  var import_jsx_runtime = require("react/jsx-runtime");
30
- var import_stacks = require("@tamagui/stacks");
30
+ var import_core = require("@tamagui/core");
31
31
  var import_react = require("react");
32
32
  var import_react_native = require("react-native");
33
33
  var import_SheetContext = require("./SheetContext.native.js");
34
34
  var import_useSheetOpenState = require("./useSheetOpenState.native.js");
35
- var import_useSheetProviderProps = require("./useSheetProviderProps.native.js");
36
- var nativeSheets = { ios: null };
35
+ var import_useSheetState = require("./useSheetState.native.js");
36
+ var nativeSheets = {};
37
37
  function getNativeSheet(platform) {
38
- return nativeSheets[platform];
38
+ if (import_react_native.Platform.OS !== platform) return null;
39
+ var _nativeSheets_platform;
40
+ return (_nativeSheets_platform = nativeSheets[platform]) !== null && _nativeSheets_platform !== void 0 ? _nativeSheets_platform : null;
39
41
  }
40
- function setupNativeSheet(platform, RNIOSModal) {
41
- var { ModalSheetView, ModalSheetViewMainContent } = RNIOSModal;
42
- if (platform === "ios") {
43
- nativeSheets[platform] = function(props) {
44
- var state = (0, import_useSheetOpenState.useSheetOpenState)(props);
45
- var providerProps = (0, import_useSheetProviderProps.useSheetProviderProps)(props, state);
46
- var { open, setOpen } = state;
47
- var ref = (0, import_react.useRef)(void 0);
48
- (0, import_react.useEffect)(function() {
49
- if (open) {
50
- var _ref_current;
51
- (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.presentModal();
52
- } else {
53
- var _ref_current1;
54
- (_ref_current1 = ref.current) === null || _ref_current1 === void 0 ? void 0 : _ref_current1.dismissModal();
42
+ function setupNativeSheet(platform, Renderer) {
43
+ nativeSheets[platform] = (0, import_core.createRefComponent)(function NativeSheet(props, ref) {
44
+ var state = (0, import_useSheetOpenState.useSheetOpenState)(props, "prop-wins");
45
+ var { maxContentSize, ...sheetState } = (0, import_useSheetState.useSheetState)(props, state);
46
+ var { open, setOpen } = state;
47
+ var openRef = (0, import_react.useRef)(open);
48
+ openRef.current = open;
49
+ var [dismissed, setDismissed] = (0, import_react.useState)(!open);
50
+ var [previousOpen, setPreviousOpen] = (0, import_react.useState)(open);
51
+ if (previousOpen !== open) {
52
+ setPreviousOpen(open);
53
+ if (open) setDismissed(false);
54
+ }
55
+ var { snapPoints, snapPointsMode } = sheetState;
56
+ var points = (0, import_react.useMemo)(function() {
57
+ var authored = props.dismissOnSnapToBottom ? snapPoints.slice(0, -1) : snapPoints;
58
+ return authored.map(function(point) {
59
+ if (point === "fit" && (snapPointsMode === "fit" || snapPointsMode === "mixed")) return { type: "fit" };
60
+ var percent = snapPointsMode === "percent" || snapPointsMode === "mixed" && typeof point === "string" && point.endsWith("%");
61
+ var value = percent && typeof point === "string" ? Number(point.slice(0, -1)) : point;
62
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 0 || percent && value > 100) {
63
+ throw new Error(`Invalid native Sheet snap point: ${String(point)}`);
55
64
  }
56
- }, [open]);
57
- function setOpenInternal(next) {
58
- var _props_onOpenChange;
59
- (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, open);
60
- setOpen(next);
61
- }
62
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetNativeSystemContext.Provider, {
63
- value: true,
64
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_SheetContext.SheetProvider, {
65
- setHasScrollView: emptyFn,
66
- keyboardOccludedHeight: 0,
67
- isKeyboardVisible: false,
68
- keyboardStableFrameHeight: 0,
69
- ...providerProps,
70
- onlyShowContainer: true,
71
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetView, {
72
- ref,
73
- onModalDidDismiss: function() {
74
- return setOpenInternal(false);
75
- },
76
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetViewMainContent, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.View, {
77
- style: { flex: 1 },
78
- children: props.children
79
- }) })
80
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stacks.YStack, {
81
- position: "absolute",
82
- display: "none",
83
- pointerEvents: "none",
84
- width: 0,
85
- height: 0,
86
- children: props.children
87
- })]
88
- })
65
+ if (snapPointsMode === "fit") throw new Error("Native Sheet fit mode requires a fit snap point");
66
+ return {
67
+ type: percent ? "percent" : "height",
68
+ value
69
+ };
89
70
  });
90
- };
91
- }
71
+ }, [
72
+ snapPoints,
73
+ snapPointsMode,
74
+ props.dismissOnSnapToBottom
75
+ ]);
76
+ if (!points.length) throw new Error("Native Sheet requires a snap point");
77
+ var position = open && (sheetState.position < 0 || props.dismissOnSnapToBottom && sheetState.position === points.length) ? 0 : sheetState.position;
78
+ if (open && (!Number.isInteger(position) || position >= points.length)) throw new Error("Native Sheet position must select an authored snap point");
79
+ var { defaultOpen, defaultPosition, unmountChildrenWhenHidden, children, ...rendererProps } = props;
80
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetNativeSystemContext.Provider, {
81
+ value: true,
82
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetProvider, {
83
+ ...sheetState,
84
+ onlyShowContainer: true,
85
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Renderer, {
86
+ ...rendererProps,
87
+ ref,
88
+ unmountChildrenWhenHidden,
89
+ open,
90
+ onOpenChange: setOpen,
91
+ position,
92
+ onPositionChange: sheetState.setPosition,
93
+ snapPoints: points,
94
+ onDismiss: function() {
95
+ var _state_onNativeDismiss;
96
+ if (openRef.current) return;
97
+ setDismissed(true);
98
+ (_state_onNativeDismiss = state.onNativeDismiss) === null || _state_onNativeDismiss === void 0 ? void 0 : _state_onNativeDismiss.call(state);
99
+ },
100
+ children: unmountChildrenWhenHidden && dismissed ? null : children
101
+ })
102
+ })
103
+ });
104
+ });
92
105
  }
93
- var emptyFn = function() {};
@@ -20,76 +20,88 @@ var __copyProps = (to, from, except, desc) => {
20
20
  return to;
21
21
  };
22
22
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
- var nativeSheet_exports = {};
24
- __export(nativeSheet_exports, {
23
+ var nativeSheet_native_exports = {};
24
+ __export(nativeSheet_native_exports, {
25
25
  getNativeSheet: () => getNativeSheet,
26
26
  setupNativeSheet: () => setupNativeSheet
27
27
  });
28
- module.exports = __toCommonJS(nativeSheet_exports);
28
+ module.exports = __toCommonJS(nativeSheet_native_exports);
29
29
  var import_jsx_runtime = require("react/jsx-runtime");
30
- var import_stacks = require("@tamagui/stacks");
30
+ var import_core = require("@tamagui/core");
31
31
  var import_react = require("react");
32
32
  var import_react_native = require("react-native");
33
33
  var import_SheetContext = require("./SheetContext.native.js");
34
34
  var import_useSheetOpenState = require("./useSheetOpenState.native.js");
35
- var import_useSheetProviderProps = require("./useSheetProviderProps.native.js");
36
- var nativeSheets = { ios: null };
35
+ var import_useSheetState = require("./useSheetState.native.js");
36
+ var nativeSheets = {};
37
37
  function getNativeSheet(platform) {
38
- return nativeSheets[platform];
38
+ if (import_react_native.Platform.OS !== platform) return null;
39
+ var _nativeSheets_platform;
40
+ return (_nativeSheets_platform = nativeSheets[platform]) !== null && _nativeSheets_platform !== void 0 ? _nativeSheets_platform : null;
39
41
  }
40
- function setupNativeSheet(platform, RNIOSModal) {
41
- var { ModalSheetView, ModalSheetViewMainContent } = RNIOSModal;
42
- if (platform === "ios") {
43
- nativeSheets[platform] = function(props) {
44
- var state = (0, import_useSheetOpenState.useSheetOpenState)(props);
45
- var providerProps = (0, import_useSheetProviderProps.useSheetProviderProps)(props, state);
46
- var { open, setOpen } = state;
47
- var ref = (0, import_react.useRef)(void 0);
48
- (0, import_react.useEffect)(function() {
49
- if (open) {
50
- var _ref_current;
51
- (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.presentModal();
52
- } else {
53
- var _ref_current1;
54
- (_ref_current1 = ref.current) === null || _ref_current1 === void 0 ? void 0 : _ref_current1.dismissModal();
42
+ function setupNativeSheet(platform, Renderer) {
43
+ nativeSheets[platform] = (0, import_core.createRefComponent)(function NativeSheet(props, ref) {
44
+ var state = (0, import_useSheetOpenState.useSheetOpenState)(props, "prop-wins");
45
+ var { maxContentSize, ...sheetState } = (0, import_useSheetState.useSheetState)(props, state);
46
+ var { open, setOpen } = state;
47
+ var openRef = (0, import_react.useRef)(open);
48
+ openRef.current = open;
49
+ var [dismissed, setDismissed] = (0, import_react.useState)(!open);
50
+ var [previousOpen, setPreviousOpen] = (0, import_react.useState)(open);
51
+ if (previousOpen !== open) {
52
+ setPreviousOpen(open);
53
+ if (open) setDismissed(false);
54
+ }
55
+ var { snapPoints, snapPointsMode } = sheetState;
56
+ var points = (0, import_react.useMemo)(function() {
57
+ var authored = props.dismissOnSnapToBottom ? snapPoints.slice(0, -1) : snapPoints;
58
+ return authored.map(function(point) {
59
+ if (point === "fit" && (snapPointsMode === "fit" || snapPointsMode === "mixed")) return { type: "fit" };
60
+ var percent = snapPointsMode === "percent" || snapPointsMode === "mixed" && typeof point === "string" && point.endsWith("%");
61
+ var value = percent && typeof point === "string" ? Number(point.slice(0, -1)) : point;
62
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 0 || percent && value > 100) {
63
+ throw new Error(`Invalid native Sheet snap point: ${String(point)}`);
55
64
  }
56
- }, [open]);
57
- function setOpenInternal(next) {
58
- var _props_onOpenChange;
59
- (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, open);
60
- setOpen(next);
61
- }
62
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetNativeSystemContext.Provider, {
63
- value: true,
64
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_SheetContext.SheetProvider, {
65
- setHasScrollView: emptyFn,
66
- keyboardOccludedHeight: 0,
67
- isKeyboardVisible: false,
68
- keyboardStableFrameHeight: 0,
69
- ...providerProps,
70
- onlyShowContainer: true,
71
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetView, {
72
- ref,
73
- onModalDidDismiss: function() {
74
- return setOpenInternal(false);
75
- },
76
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetViewMainContent, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.View, {
77
- style: { flex: 1 },
78
- children: props.children
79
- }) })
80
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stacks.YStack, {
81
- position: "absolute",
82
- display: "none",
83
- pointerEvents: "none",
84
- width: 0,
85
- height: 0,
86
- children: props.children
87
- })]
88
- })
65
+ if (snapPointsMode === "fit") throw new Error("Native Sheet fit mode requires a fit snap point");
66
+ return {
67
+ type: percent ? "percent" : "height",
68
+ value
69
+ };
89
70
  });
90
- };
91
- }
71
+ }, [
72
+ snapPoints,
73
+ snapPointsMode,
74
+ props.dismissOnSnapToBottom
75
+ ]);
76
+ if (!points.length) throw new Error("Native Sheet requires a snap point");
77
+ var position = open && (sheetState.position < 0 || props.dismissOnSnapToBottom && sheetState.position === points.length) ? 0 : sheetState.position;
78
+ if (open && (!Number.isInteger(position) || position >= points.length)) throw new Error("Native Sheet position must select an authored snap point");
79
+ var { defaultOpen, defaultPosition, unmountChildrenWhenHidden, children, ...rendererProps } = props;
80
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetNativeSystemContext.Provider, {
81
+ value: true,
82
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetProvider, {
83
+ ...sheetState,
84
+ onlyShowContainer: true,
85
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Renderer, {
86
+ ...rendererProps,
87
+ ref,
88
+ unmountChildrenWhenHidden,
89
+ open,
90
+ onOpenChange: setOpen,
91
+ position,
92
+ onPositionChange: sheetState.setPosition,
93
+ snapPoints: points,
94
+ onDismiss: function() {
95
+ var _state_onNativeDismiss;
96
+ if (openRef.current) return;
97
+ setDismissed(true);
98
+ (_state_onNativeDismiss = state.onNativeDismiss) === null || _state_onNativeDismiss === void 0 ? void 0 : _state_onNativeDismiss.call(state);
99
+ },
100
+ children: unmountChildrenWhenHidden && dismissed ? null : children
101
+ })
102
+ })
103
+ });
104
+ });
92
105
  }
93
- var emptyFn = function() {};
94
106
 
95
107
  //# sourceMappingURL=nativeSheet.native.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nativeSheet.native.js","names":[],"sources":["jsx/nativeSheet.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar nativeSheet_exports = {};\n__export(nativeSheet_exports, {\n getNativeSheet: () => getNativeSheet,\n setupNativeSheet: () => setupNativeSheet\n});\nmodule.exports = __toCommonJS(nativeSheet_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_stacks = require(\"@tamagui/stacks\");\nvar import_react = require(\"react\");\nvar import_react_native = require(\"react-native\");\nvar import_SheetContext = require(\"./SheetContext\");\nvar import_useSheetOpenState = require(\"./useSheetOpenState\");\nvar import_useSheetProviderProps = require(\"./useSheetProviderProps\");\nvar nativeSheets = {\n ios: null\n};\nfunction getNativeSheet(platform) {\n return nativeSheets[platform];\n}\nfunction setupNativeSheet(platform, RNIOSModal) {\n var { ModalSheetView, ModalSheetViewMainContent } = RNIOSModal;\n if (platform === \"ios\") {\n nativeSheets[platform] = function(props) {\n var state = (0, import_useSheetOpenState.useSheetOpenState)(props);\n var providerProps = (0, import_useSheetProviderProps.useSheetProviderProps)(props, state);\n var { open, setOpen } = state;\n var ref = (0, import_react.useRef)(void 0);\n (0, import_react.useEffect)(function() {\n if (open) {\n var _ref_current;\n (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.presentModal();\n } else {\n var _ref_current1;\n (_ref_current1 = ref.current) === null || _ref_current1 === void 0 ? void 0 : _ref_current1.dismissModal();\n }\n }, [\n open\n ]);\n function setOpenInternal(next) {\n var _props_onOpenChange;\n (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, open);\n setOpen(next);\n }\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetNativeSystemContext.Provider, {\n value: true,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_SheetContext.SheetProvider, {\n setHasScrollView: emptyFn,\n keyboardOccludedHeight: 0,\n isKeyboardVisible: false,\n keyboardStableFrameHeight: 0,\n ...providerProps,\n onlyShowContainer: true,\n children: [\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetView, {\n ref,\n onModalDidDismiss: function() {\n return setOpenInternal(false);\n },\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetViewMainContent, {\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.View, {\n style: {\n flex: 1\n },\n children: props.children\n })\n })\n }),\n /* for some reason select triggers wont show on native if this isn't inside the actual tree not inside implementation... */\n /* so just hiding it here for now... not great... */\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stacks.YStack, {\n position: \"absolute\",\n display: \"none\",\n pointerEvents: \"none\",\n width: 0,\n height: 0,\n children: props.children\n })\n ]\n })\n });\n };\n }\n}\nvar emptyFn = function() {\n};\n//# sourceMappingURL=nativeSheet.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"nativeSheet.native.js","names":[],"sources":["jsx/nativeSheet.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar nativeSheet_native_exports = {};\n__export(nativeSheet_native_exports, {\n getNativeSheet: () => getNativeSheet,\n setupNativeSheet: () => setupNativeSheet\n});\nmodule.exports = __toCommonJS(nativeSheet_native_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_core = require(\"@tamagui/core\");\nvar import_react = require(\"react\");\nvar import_react_native = require(\"react-native\");\nvar import_SheetContext = require(\"./SheetContext\");\nvar import_useSheetOpenState = require(\"./useSheetOpenState\");\nvar import_useSheetState = require(\"./useSheetState\");\nvar nativeSheets = {};\nfunction getNativeSheet(platform) {\n if (import_react_native.Platform.OS !== platform) return null;\n var _nativeSheets_platform;\n return (_nativeSheets_platform = nativeSheets[platform]) !== null && _nativeSheets_platform !== void 0 ? _nativeSheets_platform : null;\n}\nfunction setupNativeSheet(platform, Renderer) {\n nativeSheets[platform] = (0, import_core.createRefComponent)(function NativeSheet(props, ref) {\n var state = (0, import_useSheetOpenState.useSheetOpenState)(props, \"prop-wins\");\n var { maxContentSize, ...sheetState } = (0, import_useSheetState.useSheetState)(props, state);\n var { open, setOpen } = state;\n var openRef = (0, import_react.useRef)(open);\n openRef.current = open;\n var [dismissed, setDismissed] = (0, import_react.useState)(!open);\n var [previousOpen, setPreviousOpen] = (0, import_react.useState)(open);\n if (previousOpen !== open) {\n setPreviousOpen(open);\n if (open) setDismissed(false);\n }\n var { snapPoints, snapPointsMode } = sheetState;\n var points = (0, import_react.useMemo)(function() {\n var authored = props.dismissOnSnapToBottom ? snapPoints.slice(0, -1) : snapPoints;\n return authored.map(function(point) {\n if (point === \"fit\" && (snapPointsMode === \"fit\" || snapPointsMode === \"mixed\")) return {\n type: \"fit\"\n };\n var percent = snapPointsMode === \"percent\" || snapPointsMode === \"mixed\" && typeof point === \"string\" && point.endsWith(\"%\");\n var value = percent && typeof point === \"string\" ? Number(point.slice(0, -1)) : point;\n if (typeof value !== \"number\" || !Number.isFinite(value) || value < 0 || percent && value > 100) {\n throw new Error(`Invalid native Sheet snap point: ${String(point)}`);\n }\n if (snapPointsMode === \"fit\") throw new Error(\"Native Sheet fit mode requires a fit snap point\");\n return {\n type: percent ? \"percent\" : \"height\",\n value\n };\n });\n }, [\n snapPoints,\n snapPointsMode,\n props.dismissOnSnapToBottom\n ]);\n if (!points.length) throw new Error(\"Native Sheet requires a snap point\");\n var position = open && (sheetState.position < 0 || props.dismissOnSnapToBottom && sheetState.position === points.length) ? 0 : sheetState.position;\n if (open && (!Number.isInteger(position) || position >= points.length)) throw new Error(\"Native Sheet position must select an authored snap point\");\n var { defaultOpen, defaultPosition, unmountChildrenWhenHidden, children, ...rendererProps } = props;\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetNativeSystemContext.Provider, {\n value: true,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetProvider, {\n ...sheetState,\n onlyShowContainer: true,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Renderer, {\n ...rendererProps,\n ref,\n unmountChildrenWhenHidden,\n open,\n onOpenChange: setOpen,\n position,\n onPositionChange: sheetState.setPosition,\n snapPoints: points,\n onDismiss: function() {\n var _state_onNativeDismiss;\n if (openRef.current) return;\n setDismissed(true);\n (_state_onNativeDismiss = state.onNativeDismiss) === null || _state_onNativeDismiss === void 0 ? void 0 : _state_onNativeDismiss.call(state);\n },\n children: unmountChildrenWhenHidden && dismissed ? null : children\n })\n })\n });\n });\n}\n//# sourceMappingURL=nativeSheet.native.js.map\n"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { getStableLayoutViewportHeight } from "./webViewport.mjs";
2
+
3
+ function getStableViewportHeight() {
4
+ return getStableLayoutViewportHeight();
5
+ }
6
+
7
+ export { getStableViewportHeight };
8
+ //# sourceMappingURL=stableViewportHeight.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stableViewportHeight.js","names":[],"sources":["jsx/stableViewportHeight.js"],"sourcesContent":["import { getStableLayoutViewportHeight } from \"./webViewport\";\nfunction getStableViewportHeight() {\n return getStableLayoutViewportHeight();\n}\nexport {\n getStableViewportHeight\n};\n//# sourceMappingURL=stableViewportHeight.js.map\n"],"mappings":";;;AACA,SAAS,0BAA0B;CACjC,OAAO,8BAA8B;AACvC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
+ var stableViewportHeight_native_exports = {};
24
+ __export(stableViewportHeight_native_exports, { getStableViewportHeight: () => getStableViewportHeight });
25
+ module.exports = __toCommonJS(stableViewportHeight_native_exports);
26
+ var import_react_native = require("react-native");
27
+ function getStableViewportHeight() {
28
+ return import_react_native.Dimensions.get("screen").height;
29
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
+ var stableViewportHeight_native_exports = {};
24
+ __export(stableViewportHeight_native_exports, { getStableViewportHeight: () => getStableViewportHeight });
25
+ module.exports = __toCommonJS(stableViewportHeight_native_exports);
26
+ var import_react_native = require("react-native");
27
+ function getStableViewportHeight() {
28
+ return import_react_native.Dimensions.get("screen").height;
29
+ }
30
+
31
+ //# sourceMappingURL=stableViewportHeight.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stableViewportHeight.native.js","names":[],"sources":["jsx/stableViewportHeight.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar stableViewportHeight_native_exports = {};\n__export(stableViewportHeight_native_exports, {\n getStableViewportHeight: () => getStableViewportHeight\n});\nmodule.exports = __toCommonJS(stableViewportHeight_native_exports);\nvar import_react_native = require(\"react-native\");\nfunction getStableViewportHeight() {\n return import_react_native.Dimensions.get(\"screen\").height;\n}\n//# sourceMappingURL=stableViewportHeight.native.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,sCAAsC,CAAC;AAC3C,SAAS,qCAAqC,EAC5C,+BAA+B,wBACjC,CAAC;AACD,OAAO,UAAU,aAAa,mCAAmC;AACjE,IAAI,sBAAsB,QAAQ,cAAc;AAChD,SAAS,0BAA0B;CACjC,OAAO,oBAAoB,WAAW,IAAI,QAAQ,CAAC,CAAC;AACtD"}
@@ -1,4 +1,6 @@
1
- const useSheetOffscreenSize = ({ snapPoints, position, screenSize, frameSize, snapPointsMode }) => {
1
+ const useSheetOffscreenSize = (context) => {
2
+ if (context.onlyShowContainer) return 0;
3
+ const { snapPoints, position, screenSize, frameSize, snapPointsMode } = context;
2
4
  if (snapPointsMode === "fit") {
3
5
  return 0;
4
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useSheetOffscreenSize.js","names":[],"sources":["jsx/useSheetOffscreenSize.js"],"sourcesContent":["const useSheetOffscreenSize = ({\n snapPoints,\n position,\n screenSize,\n frameSize,\n snapPointsMode\n}) => {\n if (snapPointsMode === \"fit\") {\n return 0;\n }\n if (snapPointsMode === \"constant\") {\n const maxSize2 = Number(snapPoints[0]);\n const currentSize2 = Number(snapPoints[position] ?? 0);\n const offscreenSize2 = maxSize2 - currentSize2;\n return offscreenSize2;\n }\n if (snapPointsMode === \"percent\") {\n const maxPercentOpened = Number(snapPoints[0]) / 100;\n const percentOpened = Number(snapPoints[position] ?? 0) / 100;\n const percentHidden = maxPercentOpened - percentOpened;\n const offscreenSize2 = percentHidden * screenSize;\n return offscreenSize2;\n }\n const maxSnapPoint = snapPoints[0];\n if (maxSnapPoint === \"fit\") {\n return 0;\n }\n const maxSize = typeof maxSnapPoint === \"string\" ? Number(maxSnapPoint.slice(0, -1)) / 100 * screenSize : maxSnapPoint;\n const currentSnapPoint = snapPoints[position] ?? 0;\n const currentSize = typeof currentSnapPoint === \"string\" ? Number(currentSnapPoint.slice(0, -1)) / 100 * screenSize : currentSnapPoint;\n const offscreenSize = maxSize - currentSize;\n if (Number.isNaN(offscreenSize)) {\n return 0;\n }\n return offscreenSize;\n};\nexport {\n useSheetOffscreenSize\n};\n//# sourceMappingURL=useSheetOffscreenSize.js.map\n"],"mappings":";AAAA,MAAM,yBAAyB,EAC7B,YACA,UACA,YACA,WACA,qBACI;CACJ,IAAI,mBAAmB,OAAO;EAC5B,OAAO;CACT;CACA,IAAI,mBAAmB,YAAY;EACjC,MAAM,WAAW,OAAO,WAAW,EAAE;EACrC,MAAM,eAAe,OAAO,WAAW,aAAa,CAAC;EACrD,MAAM,iBAAiB,WAAW;EAClC,OAAO;CACT;CACA,IAAI,mBAAmB,WAAW;EAChC,MAAM,mBAAmB,OAAO,WAAW,EAAE,IAAI;EACjD,MAAM,gBAAgB,OAAO,WAAW,aAAa,CAAC,IAAI;EAC1D,MAAM,gBAAgB,mBAAmB;EACzC,MAAM,iBAAiB,gBAAgB;EACvC,OAAO;CACT;CACA,MAAM,eAAe,WAAW;CAChC,IAAI,iBAAiB,OAAO;EAC1B,OAAO;CACT;CACA,MAAM,UAAU,OAAO,iBAAiB,WAAW,OAAO,aAAa,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,aAAa;CAC1G,MAAM,mBAAmB,WAAW,aAAa;CACjD,MAAM,cAAc,OAAO,qBAAqB,WAAW,OAAO,iBAAiB,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,aAAa;CACtH,MAAM,gBAAgB,UAAU;CAChC,IAAI,OAAO,MAAM,aAAa,GAAG;EAC/B,OAAO;CACT;CACA,OAAO;AACT"}
1
+ {"version":3,"file":"useSheetOffscreenSize.js","names":[],"sources":["jsx/useSheetOffscreenSize.js"],"sourcesContent":["const useSheetOffscreenSize = (context) => {\n if (context.onlyShowContainer) return 0;\n const { snapPoints, position, screenSize, frameSize, snapPointsMode } = context;\n if (snapPointsMode === \"fit\") {\n return 0;\n }\n if (snapPointsMode === \"constant\") {\n const maxSize2 = Number(snapPoints[0]);\n const currentSize2 = Number(snapPoints[position] ?? 0);\n const offscreenSize2 = maxSize2 - currentSize2;\n return offscreenSize2;\n }\n if (snapPointsMode === \"percent\") {\n const maxPercentOpened = Number(snapPoints[0]) / 100;\n const percentOpened = Number(snapPoints[position] ?? 0) / 100;\n const percentHidden = maxPercentOpened - percentOpened;\n const offscreenSize2 = percentHidden * screenSize;\n return offscreenSize2;\n }\n const maxSnapPoint = snapPoints[0];\n if (maxSnapPoint === \"fit\") {\n return 0;\n }\n const maxSize = typeof maxSnapPoint === \"string\" ? Number(maxSnapPoint.slice(0, -1)) / 100 * screenSize : maxSnapPoint;\n const currentSnapPoint = snapPoints[position] ?? 0;\n const currentSize = typeof currentSnapPoint === \"string\" ? Number(currentSnapPoint.slice(0, -1)) / 100 * screenSize : currentSnapPoint;\n const offscreenSize = maxSize - currentSize;\n if (Number.isNaN(offscreenSize)) {\n return 0;\n }\n return offscreenSize;\n};\nexport {\n useSheetOffscreenSize\n};\n//# sourceMappingURL=useSheetOffscreenSize.js.map\n"],"mappings":";AAAA,MAAM,yBAAyB,YAAY;CACzC,IAAI,QAAQ,mBAAmB,OAAO;CACtC,MAAM,EAAE,YAAY,UAAU,YAAY,WAAW,mBAAmB;CACxE,IAAI,mBAAmB,OAAO;EAC5B,OAAO;CACT;CACA,IAAI,mBAAmB,YAAY;EACjC,MAAM,WAAW,OAAO,WAAW,EAAE;EACrC,MAAM,eAAe,OAAO,WAAW,aAAa,CAAC;EACrD,MAAM,iBAAiB,WAAW;EAClC,OAAO;CACT;CACA,IAAI,mBAAmB,WAAW;EAChC,MAAM,mBAAmB,OAAO,WAAW,EAAE,IAAI;EACjD,MAAM,gBAAgB,OAAO,WAAW,aAAa,CAAC,IAAI;EAC1D,MAAM,gBAAgB,mBAAmB;EACzC,MAAM,iBAAiB,gBAAgB;EACvC,OAAO;CACT;CACA,MAAM,eAAe,WAAW;CAChC,IAAI,iBAAiB,OAAO;EAC1B,OAAO;CACT;CACA,MAAM,UAAU,OAAO,iBAAiB,WAAW,OAAO,aAAa,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,aAAa;CAC1G,MAAM,mBAAmB,WAAW,aAAa;CACjD,MAAM,cAAc,OAAO,qBAAqB,WAAW,OAAO,iBAAiB,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,aAAa;CACtH,MAAM,gBAAgB,UAAU;CAChC,IAAI,OAAO,MAAM,aAAa,GAAG;EAC/B,OAAO;CACT;CACA,OAAO;AACT"}
@@ -23,8 +23,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
23
23
  var useSheetOffscreenSize_exports = {};
24
24
  __export(useSheetOffscreenSize_exports, { useSheetOffscreenSize: () => useSheetOffscreenSize });
25
25
  module.exports = __toCommonJS(useSheetOffscreenSize_exports);
26
- var useSheetOffscreenSize = function(param) {
27
- var { snapPoints, position, screenSize, frameSize, snapPointsMode } = param;
26
+ var useSheetOffscreenSize = function(context) {
27
+ if (context.onlyShowContainer) return 0;
28
+ var { snapPoints, position, screenSize, frameSize, snapPointsMode } = context;
28
29
  if (snapPointsMode === "fit") {
29
30
  return 0;
30
31
  }
@@ -23,8 +23,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
23
23
  var useSheetOffscreenSize_exports = {};
24
24
  __export(useSheetOffscreenSize_exports, { useSheetOffscreenSize: () => useSheetOffscreenSize });
25
25
  module.exports = __toCommonJS(useSheetOffscreenSize_exports);
26
- var useSheetOffscreenSize = function(param) {
27
- var { snapPoints, position, screenSize, frameSize, snapPointsMode } = param;
26
+ var useSheetOffscreenSize = function(context) {
27
+ if (context.onlyShowContainer) return 0;
28
+ var { snapPoints, position, screenSize, frameSize, snapPointsMode } = context;
28
29
  if (snapPointsMode === "fit") {
29
30
  return 0;
30
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useSheetOffscreenSize.native.js","names":[],"sources":["jsx/useSheetOffscreenSize.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar useSheetOffscreenSize_exports = {};\n__export(useSheetOffscreenSize_exports, {\n useSheetOffscreenSize: () => useSheetOffscreenSize\n});\nmodule.exports = __toCommonJS(useSheetOffscreenSize_exports);\nvar useSheetOffscreenSize = function(param) {\n var { snapPoints, position, screenSize, frameSize, snapPointsMode } = param;\n if (snapPointsMode === \"fit\") {\n return 0;\n }\n if (snapPointsMode === \"constant\") {\n var maxSize = Number(snapPoints[0]);\n var _snapPoints_position;\n var currentSize = Number((_snapPoints_position = snapPoints[position]) !== null && _snapPoints_position !== void 0 ? _snapPoints_position : 0);\n var offscreenSize = maxSize - currentSize;\n return offscreenSize;\n }\n if (snapPointsMode === \"percent\") {\n var maxPercentOpened = Number(snapPoints[0]) / 100;\n var _snapPoints_position1;\n var percentOpened = Number((_snapPoints_position1 = snapPoints[position]) !== null && _snapPoints_position1 !== void 0 ? _snapPoints_position1 : 0) / 100;\n var percentHidden = maxPercentOpened - percentOpened;\n var offscreenSize1 = percentHidden * screenSize;\n return offscreenSize1;\n }\n var maxSnapPoint = snapPoints[0];\n if (maxSnapPoint === \"fit\") {\n return 0;\n }\n var maxSize1 = typeof maxSnapPoint === \"string\" ? Number(maxSnapPoint.slice(0, -1)) / 100 * screenSize : maxSnapPoint;\n var _snapPoints_position2;\n var currentSnapPoint = (_snapPoints_position2 = snapPoints[position]) !== null && _snapPoints_position2 !== void 0 ? _snapPoints_position2 : 0;\n var currentSize1 = typeof currentSnapPoint === \"string\" ? Number(currentSnapPoint.slice(0, -1)) / 100 * screenSize : currentSnapPoint;\n var offscreenSize2 = maxSize1 - currentSize1;\n if (Number.isNaN(offscreenSize2)) {\n return 0;\n }\n return offscreenSize2;\n};\n//# sourceMappingURL=useSheetOffscreenSize.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,gCAAgC,CAAC;AACrC,SAAS,+BAA+B,EACtC,6BAA6B,sBAC/B,CAAC;AACD,OAAO,UAAU,aAAa,6BAA6B;AAC3D,IAAI,wBAAwB,SAAS,OAAO;CAC1C,IAAI,EAAE,YAAY,UAAU,YAAY,WAAW,mBAAmB;CACtE,IAAI,mBAAmB,OAAO;EAC5B,OAAO;CACT;CACA,IAAI,mBAAmB,YAAY;EACjC,IAAI,UAAU,OAAO,WAAW,EAAE;EAClC,IAAI;EACJ,IAAI,cAAc,QAAQ,uBAAuB,WAAW,eAAe,QAAQ,yBAAyB,KAAK,IAAI,uBAAuB,CAAC;EAC7I,IAAI,gBAAgB,UAAU;EAC9B,OAAO;CACT;CACA,IAAI,mBAAmB,WAAW;EAChC,IAAI,mBAAmB,OAAO,WAAW,EAAE,IAAI;EAC/C,IAAI;EACJ,IAAI,gBAAgB,QAAQ,wBAAwB,WAAW,eAAe,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,CAAC,IAAI;EACtJ,IAAI,gBAAgB,mBAAmB;EACvC,IAAI,iBAAiB,gBAAgB;EACrC,OAAO;CACT;CACA,IAAI,eAAe,WAAW;CAC9B,IAAI,iBAAiB,OAAO;EAC1B,OAAO;CACT;CACA,IAAI,WAAW,OAAO,iBAAiB,WAAW,OAAO,aAAa,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,aAAa;CACzG,IAAI;CACJ,IAAI,oBAAoB,wBAAwB,WAAW,eAAe,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB;CAC7I,IAAI,eAAe,OAAO,qBAAqB,WAAW,OAAO,iBAAiB,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,aAAa;CACrH,IAAI,iBAAiB,WAAW;CAChC,IAAI,OAAO,MAAM,cAAc,GAAG;EAChC,OAAO;CACT;CACA,OAAO;AACT"}
1
+ {"version":3,"file":"useSheetOffscreenSize.native.js","names":[],"sources":["jsx/useSheetOffscreenSize.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar useSheetOffscreenSize_exports = {};\n__export(useSheetOffscreenSize_exports, {\n useSheetOffscreenSize: () => useSheetOffscreenSize\n});\nmodule.exports = __toCommonJS(useSheetOffscreenSize_exports);\nvar useSheetOffscreenSize = function(context) {\n if (context.onlyShowContainer) return 0;\n var { snapPoints, position, screenSize, frameSize, snapPointsMode } = context;\n if (snapPointsMode === \"fit\") {\n return 0;\n }\n if (snapPointsMode === \"constant\") {\n var maxSize = Number(snapPoints[0]);\n var _snapPoints_position;\n var currentSize = Number((_snapPoints_position = snapPoints[position]) !== null && _snapPoints_position !== void 0 ? _snapPoints_position : 0);\n var offscreenSize = maxSize - currentSize;\n return offscreenSize;\n }\n if (snapPointsMode === \"percent\") {\n var maxPercentOpened = Number(snapPoints[0]) / 100;\n var _snapPoints_position1;\n var percentOpened = Number((_snapPoints_position1 = snapPoints[position]) !== null && _snapPoints_position1 !== void 0 ? _snapPoints_position1 : 0) / 100;\n var percentHidden = maxPercentOpened - percentOpened;\n var offscreenSize1 = percentHidden * screenSize;\n return offscreenSize1;\n }\n var maxSnapPoint = snapPoints[0];\n if (maxSnapPoint === \"fit\") {\n return 0;\n }\n var maxSize1 = typeof maxSnapPoint === \"string\" ? Number(maxSnapPoint.slice(0, -1)) / 100 * screenSize : maxSnapPoint;\n var _snapPoints_position2;\n var currentSnapPoint = (_snapPoints_position2 = snapPoints[position]) !== null && _snapPoints_position2 !== void 0 ? _snapPoints_position2 : 0;\n var currentSize1 = typeof currentSnapPoint === \"string\" ? Number(currentSnapPoint.slice(0, -1)) / 100 * screenSize : currentSnapPoint;\n var offscreenSize2 = maxSize1 - currentSize1;\n if (Number.isNaN(offscreenSize2)) {\n return 0;\n }\n return offscreenSize2;\n};\n//# sourceMappingURL=useSheetOffscreenSize.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,gCAAgC,CAAC;AACrC,SAAS,+BAA+B,EACtC,6BAA6B,sBAC/B,CAAC;AACD,OAAO,UAAU,aAAa,6BAA6B;AAC3D,IAAI,wBAAwB,SAAS,SAAS;CAC5C,IAAI,QAAQ,mBAAmB,OAAO;CACtC,IAAI,EAAE,YAAY,UAAU,YAAY,WAAW,mBAAmB;CACtE,IAAI,mBAAmB,OAAO;EAC5B,OAAO;CACT;CACA,IAAI,mBAAmB,YAAY;EACjC,IAAI,UAAU,OAAO,WAAW,EAAE;EAClC,IAAI;EACJ,IAAI,cAAc,QAAQ,uBAAuB,WAAW,eAAe,QAAQ,yBAAyB,KAAK,IAAI,uBAAuB,CAAC;EAC7I,IAAI,gBAAgB,UAAU;EAC9B,OAAO;CACT;CACA,IAAI,mBAAmB,WAAW;EAChC,IAAI,mBAAmB,OAAO,WAAW,EAAE,IAAI;EAC/C,IAAI;EACJ,IAAI,gBAAgB,QAAQ,wBAAwB,WAAW,eAAe,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,CAAC,IAAI;EACtJ,IAAI,gBAAgB,mBAAmB;EACvC,IAAI,iBAAiB,gBAAgB;EACrC,OAAO;CACT;CACA,IAAI,eAAe,WAAW;CAC9B,IAAI,iBAAiB,OAAO;EAC1B,OAAO;CACT;CACA,IAAI,WAAW,OAAO,iBAAiB,WAAW,OAAO,aAAa,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,aAAa;CACzG,IAAI;CACJ,IAAI,oBAAoB,wBAAwB,WAAW,eAAe,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB;CAC7I,IAAI,eAAe,OAAO,qBAAqB,WAAW,OAAO,iBAAiB,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,aAAa;CACrH,IAAI,iBAAiB,WAAW;CAChC,IAAI,OAAO,MAAM,cAAc,GAAG;EAChC,OAAO;CACT;CACA,OAAO;AACT"}
@@ -1,13 +1,14 @@
1
- import { useAdaptContext, useAdaptTarget } from "@tamagui/adapt";
1
+ import { useAdaptContext, useAdaptTarget, useAdaptTargetScope } from "@tamagui/adapt";
2
2
  import React from "react";
3
3
  import { useControllableState } from "@tamagui/use-controllable-state";
4
4
  import { useSheetController } from "./useSheetController.mjs";
5
5
 
6
- const useSheetOpenState = (props) => {
7
- const adaptContext = useAdaptContext();
8
- const adapt = useAdaptTarget();
6
+ const useSheetOpenState = (props, strategy = "most-recent-wins") => {
7
+ const adaptTargetScope = useAdaptTargetScope();
8
+ const adapt = useAdaptTarget(adaptTargetScope ?? void 0);
9
+ const adaptContext = useAdaptContext(adaptTargetScope ?? void 0);
9
10
  const { isHidden: controllerIsHidden, controller: legacyController } = useSheetController(props.scope);
10
- const shouldUseAdapt = Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);
11
+ const shouldUseAdapt = adaptTargetScope === adaptContext.scopeName && Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);
11
12
  const isHidden = shouldUseAdapt ? !adaptContext.active : controllerIsHidden;
12
13
  const wasHiddenRef = React.useRef(isHidden);
13
14
  const controllerOpen = shouldUseAdapt ? Boolean(adaptContext.open) && !adaptContext.handoff.hidden : legacyController?.open;
@@ -41,13 +42,19 @@ const useSheetOpenState = (props) => {
41
42
  prop: propVal,
42
43
  defaultProp: props.defaultOpen ?? false,
43
44
  onChange: onOpenChangeInternal,
44
- strategy: "most-recent-wins"
45
+ strategy
45
46
  });
46
47
  return {
47
48
  open,
48
49
  setOpen,
49
50
  isHidden,
50
- controller
51
+ controller,
52
+ strategy,
53
+ onNativeDismiss: shouldUseAdapt ? () => adapt?.handoff.onTransition({
54
+ phase: "end",
55
+ cause: "close",
56
+ finished: true
57
+ }) : void 0
51
58
  };
52
59
  };
53
60