@tamagui/sheet 3.0.0-beta.922.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +71 -167
  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 -2
  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 +4 -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
@@ -21,7 +21,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var useSheetOffscreenSize_exports = {};
22
22
  __export(useSheetOffscreenSize_exports, { useSheetOffscreenSize: () => useSheetOffscreenSize });
23
23
  module.exports = __toCommonJS(useSheetOffscreenSize_exports);
24
- const useSheetOffscreenSize = ({ snapPoints, position, screenSize, frameSize, snapPointsMode }) => {
24
+ const useSheetOffscreenSize = (context) => {
25
+ if (context.onlyShowContainer) return 0;
26
+ const { snapPoints, position, screenSize, frameSize, snapPointsMode } = context;
25
27
  if (snapPointsMode === "fit") {
26
28
  return 0;
27
29
  }
@@ -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":["cjs/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":["cjs/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"}
@@ -31,11 +31,12 @@ var import_adapt = require("@tamagui/adapt");
31
31
  var import_react = __toESM(require("react"), 1);
32
32
  var import_use_controllable_state = require("@tamagui/use-controllable-state");
33
33
  var import_useSheetController = require("./useSheetController.cjs");
34
- const useSheetOpenState = (props) => {
35
- const adaptContext = (0, import_adapt.useAdaptContext)();
36
- const adapt = (0, import_adapt.useAdaptTarget)();
34
+ const useSheetOpenState = (props, strategy = "most-recent-wins") => {
35
+ const adaptTargetScope = (0, import_adapt.useAdaptTargetScope)();
36
+ const adapt = (0, import_adapt.useAdaptTarget)(adaptTargetScope ?? void 0);
37
+ const adaptContext = (0, import_adapt.useAdaptContext)(adaptTargetScope ?? void 0);
37
38
  const { isHidden: controllerIsHidden, controller: legacyController } = (0, import_useSheetController.useSheetController)(props.scope);
38
- const shouldUseAdapt = Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);
39
+ const shouldUseAdapt = adaptTargetScope === adaptContext.scopeName && Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);
39
40
  const isHidden = shouldUseAdapt ? !adaptContext.active : controllerIsHidden;
40
41
  const wasHiddenRef = import_react.default.useRef(isHidden);
41
42
  const controllerOpen = shouldUseAdapt ? Boolean(adaptContext.open) && !adaptContext.handoff.hidden : legacyController?.open;
@@ -69,12 +70,18 @@ const useSheetOpenState = (props) => {
69
70
  prop: propVal,
70
71
  defaultProp: props.defaultOpen ?? false,
71
72
  onChange: onOpenChangeInternal,
72
- strategy: "most-recent-wins"
73
+ strategy
73
74
  });
74
75
  return {
75
76
  open,
76
77
  setOpen,
77
78
  isHidden,
78
- controller
79
+ controller,
80
+ strategy,
81
+ onNativeDismiss: shouldUseAdapt ? () => adapt?.handoff.onTransition({
82
+ phase: "end",
83
+ cause: "close",
84
+ finished: true
85
+ }) : void 0
79
86
  };
80
87
  };
@@ -34,10 +34,12 @@ var import_react = __toESM(require("react"), 1);
34
34
  var import_use_controllable_state = require("@tamagui/use-controllable-state");
35
35
  var import_useSheetController = require("./useSheetController.native.js");
36
36
  var useSheetOpenState = function(props) {
37
- var adaptContext = (0, import_adapt.useAdaptContext)();
38
- var adapt = (0, import_adapt.useAdaptTarget)();
37
+ var strategy = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "most-recent-wins";
38
+ var adaptTargetScope = (0, import_adapt.useAdaptTargetScope)();
39
+ var adapt = (0, import_adapt.useAdaptTarget)(adaptTargetScope !== null && adaptTargetScope !== void 0 ? adaptTargetScope : void 0);
40
+ var adaptContext = (0, import_adapt.useAdaptContext)(adaptTargetScope !== null && adaptTargetScope !== void 0 ? adaptTargetScope : void 0);
39
41
  var { isHidden: controllerIsHidden, controller: legacyController } = (0, import_useSheetController.useSheetController)(props.scope);
40
- var shouldUseAdapt = Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);
42
+ var shouldUseAdapt = adaptTargetScope === adaptContext.scopeName && Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);
41
43
  var isHidden = shouldUseAdapt ? !adaptContext.active : controllerIsHidden;
42
44
  var wasHiddenRef = import_react.default.useRef(isHidden);
43
45
  var controllerOpen = shouldUseAdapt ? Boolean(adaptContext.open) && !adaptContext.handoff.hidden : legacyController === null || legacyController === void 0 ? void 0 : legacyController.open;
@@ -76,12 +78,20 @@ var useSheetOpenState = function(props) {
76
78
  prop: propVal,
77
79
  defaultProp: (_props_defaultOpen = props.defaultOpen) !== null && _props_defaultOpen !== void 0 ? _props_defaultOpen : false,
78
80
  onChange: onOpenChangeInternal,
79
- strategy: "most-recent-wins"
81
+ strategy
80
82
  });
81
83
  return {
82
84
  open,
83
85
  setOpen,
84
86
  isHidden,
85
- controller
87
+ controller,
88
+ strategy,
89
+ onNativeDismiss: shouldUseAdapt ? function() {
90
+ return adapt === null || adapt === void 0 ? void 0 : adapt.handoff.onTransition({
91
+ phase: "end",
92
+ cause: "close",
93
+ finished: true
94
+ });
95
+ } : void 0
86
96
  };
87
97
  };
@@ -34,10 +34,12 @@ var import_react = __toESM(require("react"), 1);
34
34
  var import_use_controllable_state = require("@tamagui/use-controllable-state");
35
35
  var import_useSheetController = require("./useSheetController.native.js");
36
36
  var useSheetOpenState = function(props) {
37
- var adaptContext = (0, import_adapt.useAdaptContext)();
38
- var adapt = (0, import_adapt.useAdaptTarget)();
37
+ var strategy = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "most-recent-wins";
38
+ var adaptTargetScope = (0, import_adapt.useAdaptTargetScope)();
39
+ var adapt = (0, import_adapt.useAdaptTarget)(adaptTargetScope !== null && adaptTargetScope !== void 0 ? adaptTargetScope : void 0);
40
+ var adaptContext = (0, import_adapt.useAdaptContext)(adaptTargetScope !== null && adaptTargetScope !== void 0 ? adaptTargetScope : void 0);
39
41
  var { isHidden: controllerIsHidden, controller: legacyController } = (0, import_useSheetController.useSheetController)(props.scope);
40
- var shouldUseAdapt = Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);
42
+ var shouldUseAdapt = adaptTargetScope === adaptContext.scopeName && Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);
41
43
  var isHidden = shouldUseAdapt ? !adaptContext.active : controllerIsHidden;
42
44
  var wasHiddenRef = import_react.default.useRef(isHidden);
43
45
  var controllerOpen = shouldUseAdapt ? Boolean(adaptContext.open) && !adaptContext.handoff.hidden : legacyController === null || legacyController === void 0 ? void 0 : legacyController.open;
@@ -76,13 +78,21 @@ var useSheetOpenState = function(props) {
76
78
  prop: propVal,
77
79
  defaultProp: (_props_defaultOpen = props.defaultOpen) !== null && _props_defaultOpen !== void 0 ? _props_defaultOpen : false,
78
80
  onChange: onOpenChangeInternal,
79
- strategy: "most-recent-wins"
81
+ strategy
80
82
  });
81
83
  return {
82
84
  open,
83
85
  setOpen,
84
86
  isHidden,
85
- controller
87
+ controller,
88
+ strategy,
89
+ onNativeDismiss: shouldUseAdapt ? function() {
90
+ return adapt === null || adapt === void 0 ? void 0 : adapt.handoff.onTransition({
91
+ phase: "end",
92
+ cause: "close",
93
+ finished: true
94
+ });
95
+ } : void 0
86
96
  };
87
97
  };
88
98
 
@@ -1 +1 @@
1
- {"version":3,"file":"useSheetOpenState.native.js","names":[],"sources":["cjs/useSheetOpenState.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar useSheetOpenState_exports = {};\n__export(useSheetOpenState_exports, {\n useSheetOpenState: () => useSheetOpenState\n});\nmodule.exports = __toCommonJS(useSheetOpenState_exports);\nvar import_adapt = require(\"@tamagui/adapt\");\nvar import_react = __toESM(require(\"react\"), 1);\nvar import_use_controllable_state = require(\"@tamagui/use-controllable-state\");\nvar import_useSheetController = require(\"./useSheetController\");\nvar useSheetOpenState = function(props) {\n var adaptContext = (0, import_adapt.useAdaptContext)();\n var adapt = (0, import_adapt.useAdaptTarget)();\n var { isHidden: controllerIsHidden, controller: legacyController } = (0, import_useSheetController.useSheetController)(props.scope);\n var shouldUseAdapt = Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);\n var isHidden = shouldUseAdapt ? !adaptContext.active : controllerIsHidden;\n var wasHiddenRef = import_react.default.useRef(isHidden);\n var controllerOpen = shouldUseAdapt ? Boolean(adaptContext.open) && !adaptContext.handoff.hidden : legacyController === null || legacyController === void 0 ? void 0 : legacyController.open;\n var localSkipNextAnimation = Boolean(wasHiddenRef.current && !isHidden && controllerOpen);\n var _ref;\n var skipNextAnimation = (_ref = shouldUseAdapt ? adapt === null || adapt === void 0 ? void 0 : adapt.handoff.skipNextAnimation : void 0) !== null && _ref !== void 0 ? _ref : localSkipNextAnimation;\n wasHiddenRef.current = isHidden;\n var adaptController = import_react.default.useMemo(function() {\n if (!adapt || !shouldUseAdapt) return null;\n return {\n open: adaptContext.open,\n hidden: isHidden,\n onOpenChange: adaptContext.active ? adaptContext.onOpenChange : void 0,\n onTransition: adapt === null || adapt === void 0 ? void 0 : adapt.handoff.onTransition,\n skipNextAnimation\n };\n }, [\n adapt,\n adaptContext,\n isHidden,\n shouldUseAdapt,\n skipNextAnimation\n ]);\n var controller = adaptController !== null && adaptController !== void 0 ? adaptController : legacyController;\n var _ref1;\n var controllerOnOpenChange = (_ref1 = shouldUseAdapt && adaptContext.active ? adaptContext.onOpenChange : void 0) !== null && _ref1 !== void 0 ? _ref1 : legacyController === null || legacyController === void 0 ? void 0 : legacyController.onOpenChange;\n var onOpenChangeInternal = function(val) {\n var _props_onOpenChange;\n controllerOnOpenChange === null || controllerOnOpenChange === void 0 ? void 0 : controllerOnOpenChange(val);\n (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, val);\n };\n var _props_open;\n var propVal = props.preferAdaptParentOpenState ? controllerOpen !== null && controllerOpen !== void 0 ? controllerOpen : props.open : (_props_open = props.open) !== null && _props_open !== void 0 ? _props_open : controllerOpen;\n var _props_defaultOpen;\n var [open, setOpen] = (0, import_use_controllable_state.useControllableState)({\n prop: propVal,\n defaultProp: (_props_defaultOpen = props.defaultOpen) !== null && _props_defaultOpen !== void 0 ? _props_defaultOpen : false,\n onChange: onOpenChangeInternal,\n strategy: \"most-recent-wins\"\n });\n return {\n open,\n setOpen,\n isHidden,\n controller\n };\n};\n//# sourceMappingURL=useSheetOpenState.js.map\n"],"mappings":";;;AACA,IAAI,WAAW,OAAO;AACtB,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO;AAC1B,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,WAAW,KAAK,YAAY,YAAY,SAAS,OAAO,OAAO,SAAS,aAAa,GAAG,CAAC,IAAI,CAAC,GAAG,YAKnG,cAAc,CAAC,OAAO,CAAC,IAAI,aAAa,UAAU,QAAQ,WAAW;CAAE,OAAO;CAAK,YAAY;AAAK,CAAC,IAAI,QACzG,GACF;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,4BAA4B,CAAC;AACjC,SAAS,2BAA2B,EAClC,yBAAyB,kBAC3B,CAAC;AACD,OAAO,UAAU,aAAa,yBAAyB;AACvD,IAAI,eAAe,QAAQ,gBAAgB;AAC3C,IAAI,eAAe,QAAQ,QAAQ,OAAO,GAAG,CAAC;AAC9C,IAAI,gCAAgC,QAAQ,iCAAiC;AAC7E,IAAI,4BAA4B,QAAQ,gCAAsB;AAC9D,IAAI,oBAAoB,SAAS,OAAO;CACtC,IAAI,gBAAgB,GAAG,aAAa,gBAAe,CAAE;CACrD,IAAI,SAAS,GAAG,aAAa,eAAc,CAAE;CAC7C,IAAI,EAAE,UAAU,oBAAoB,YAAY,sBAAsB,GAAG,0BAA0B,mBAAkB,CAAE,MAAM,KAAK;CAClI,IAAI,iBAAiB,QAAQ,aAAa,SAAS,KAAK,KAAK,aAAa,YAAY;CACtF,IAAI,WAAW,iBAAiB,CAAC,aAAa,SAAS;CACvD,IAAI,eAAe,aAAa,QAAQ,OAAO,QAAQ;CACvD,IAAI,iBAAiB,iBAAiB,QAAQ,aAAa,IAAI,KAAK,CAAC,aAAa,QAAQ,SAAS,qBAAqB,QAAQ,qBAAqB,KAAK,IAAI,KAAK,IAAI,iBAAiB;CACxL,IAAI,yBAAyB,QAAQ,aAAa,WAAW,CAAC,YAAY,cAAc;CACxF,IAAI;CACJ,IAAI,qBAAqB,OAAO,iBAAiB,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,QAAQ,oBAAoB,KAAK,OAAO,QAAQ,SAAS,KAAK,IAAI,OAAO;CAC9K,aAAa,UAAU;CACvB,IAAI,kBAAkB,aAAa,QAAQ,QAAQ,WAAW;EAC5D,IAAI,CAAC,SAAS,CAAC,gBAAgB,OAAO;EACtC,OAAO;GACL,MAAM,aAAa;GACnB,QAAQ;GACR,cAAc,aAAa,SAAS,aAAa,eAAe,KAAK;GACrE,cAAc,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,QAAQ;GAC1E;EACF;CACF,GAAG;EACD;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,IAAI,aAAa,oBAAoB,QAAQ,oBAAoB,KAAK,IAAI,kBAAkB;CAC5F,IAAI;CACJ,IAAI,0BAA0B,QAAQ,kBAAkB,aAAa,SAAS,aAAa,eAAe,KAAK,OAAO,QAAQ,UAAU,KAAK,IAAI,QAAQ,qBAAqB,QAAQ,qBAAqB,KAAK,IAAI,KAAK,IAAI,iBAAiB;CAC9O,IAAI,uBAAuB,SAAS,KAAK;EACvC,IAAI;EACJ,2BAA2B,QAAQ,2BAA2B,KAAK,IAAI,KAAK,IAAI,uBAAuB,GAAG;EAC1G,CAAC,sBAAsB,MAAM,kBAAkB,QAAQ,wBAAwB,KAAK,IAAI,KAAK,IAAI,oBAAoB,KAAK,OAAO,GAAG;CACtI;CACA,IAAI;CACJ,IAAI,UAAU,MAAM,6BAA6B,mBAAmB,QAAQ,mBAAmB,KAAK,IAAI,iBAAiB,MAAM,QAAQ,cAAc,MAAM,UAAU,QAAQ,gBAAgB,KAAK,IAAI,cAAc;CACpN,IAAI;CACJ,IAAI,CAAC,MAAM,YAAY,GAAG,8BAA8B,qBAAoB,CAAE;EAC5E,MAAM;EACN,cAAc,qBAAqB,MAAM,iBAAiB,QAAQ,uBAAuB,KAAK,IAAI,qBAAqB;EACvH,UAAU;EACV,UAAU;CACZ,CAAC;CACD,OAAO;EACL;EACA;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"useSheetOpenState.native.js","names":[],"sources":["cjs/useSheetOpenState.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar useSheetOpenState_exports = {};\n__export(useSheetOpenState_exports, {\n useSheetOpenState: () => useSheetOpenState\n});\nmodule.exports = __toCommonJS(useSheetOpenState_exports);\nvar import_adapt = require(\"@tamagui/adapt\");\nvar import_react = __toESM(require(\"react\"), 1);\nvar import_use_controllable_state = require(\"@tamagui/use-controllable-state\");\nvar import_useSheetController = require(\"./useSheetController\");\nvar useSheetOpenState = function(props) {\n var strategy = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"most-recent-wins\";\n var adaptTargetScope = (0, import_adapt.useAdaptTargetScope)();\n var adapt = (0, import_adapt.useAdaptTarget)(adaptTargetScope !== null && adaptTargetScope !== void 0 ? adaptTargetScope : void 0);\n var adaptContext = (0, import_adapt.useAdaptContext)(adaptTargetScope !== null && adaptTargetScope !== void 0 ? adaptTargetScope : void 0);\n var { isHidden: controllerIsHidden, controller: legacyController } = (0, import_useSheetController.useSheetController)(props.scope);\n var shouldUseAdapt = adaptTargetScope === adaptContext.scopeName && Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);\n var isHidden = shouldUseAdapt ? !adaptContext.active : controllerIsHidden;\n var wasHiddenRef = import_react.default.useRef(isHidden);\n var controllerOpen = shouldUseAdapt ? Boolean(adaptContext.open) && !adaptContext.handoff.hidden : legacyController === null || legacyController === void 0 ? void 0 : legacyController.open;\n var localSkipNextAnimation = Boolean(wasHiddenRef.current && !isHidden && controllerOpen);\n var _ref;\n var skipNextAnimation = (_ref = shouldUseAdapt ? adapt === null || adapt === void 0 ? void 0 : adapt.handoff.skipNextAnimation : void 0) !== null && _ref !== void 0 ? _ref : localSkipNextAnimation;\n wasHiddenRef.current = isHidden;\n var adaptController = import_react.default.useMemo(function() {\n if (!adapt || !shouldUseAdapt) return null;\n return {\n open: adaptContext.open,\n hidden: isHidden,\n onOpenChange: adaptContext.active ? adaptContext.onOpenChange : void 0,\n onTransition: adapt === null || adapt === void 0 ? void 0 : adapt.handoff.onTransition,\n skipNextAnimation\n };\n }, [\n adapt,\n adaptContext,\n isHidden,\n shouldUseAdapt,\n skipNextAnimation\n ]);\n var controller = adaptController !== null && adaptController !== void 0 ? adaptController : legacyController;\n var _ref1;\n var controllerOnOpenChange = (_ref1 = shouldUseAdapt && adaptContext.active ? adaptContext.onOpenChange : void 0) !== null && _ref1 !== void 0 ? _ref1 : legacyController === null || legacyController === void 0 ? void 0 : legacyController.onOpenChange;\n var onOpenChangeInternal = function(val) {\n var _props_onOpenChange;\n controllerOnOpenChange === null || controllerOnOpenChange === void 0 ? void 0 : controllerOnOpenChange(val);\n (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, val);\n };\n var _props_open;\n var propVal = props.preferAdaptParentOpenState ? controllerOpen !== null && controllerOpen !== void 0 ? controllerOpen : props.open : (_props_open = props.open) !== null && _props_open !== void 0 ? _props_open : controllerOpen;\n var _props_defaultOpen;\n var [open, setOpen] = (0, import_use_controllable_state.useControllableState)({\n prop: propVal,\n defaultProp: (_props_defaultOpen = props.defaultOpen) !== null && _props_defaultOpen !== void 0 ? _props_defaultOpen : false,\n onChange: onOpenChangeInternal,\n strategy\n });\n return {\n open,\n setOpen,\n isHidden,\n controller,\n strategy,\n onNativeDismiss: shouldUseAdapt ? function() {\n return adapt === null || adapt === void 0 ? void 0 : adapt.handoff.onTransition({\n phase: \"end\",\n cause: \"close\",\n finished: true\n });\n } : void 0\n };\n};\n//# sourceMappingURL=useSheetOpenState.js.map\n"],"mappings":"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"}
@@ -1,8 +1,6 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
5
  var __export = (target, all) => {
8
6
  for (var name in all) __defProp(target, name, {
@@ -19,85 +17,16 @@ var __copyProps = (to, from, except, desc) => {
19
17
  }
20
18
  return to;
21
19
  };
22
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
23
- value: mod,
24
- enumerable: true
25
- }) : target, mod));
26
20
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
21
  var useSheetProviderProps_exports = {};
28
22
  __export(useSheetProviderProps_exports, { useSheetProviderProps: () => useSheetProviderProps });
29
23
  module.exports = __toCommonJS(useSheetProviderProps_exports);
30
- var import_react = __toESM(require("react"), 1);
31
24
  var import_core = require("@tamagui/core");
32
25
  var import_use_constant = require("@tamagui/use-constant");
33
- var import_use_controllable_state = require("@tamagui/use-controllable-state");
26
+ var import_useSheetState = require("./useSheetState.cjs");
34
27
  function useSheetProviderProps(props, state) {
35
- const handleRef = import_react.default.useRef(null);
36
- const contentRef = import_react.default.useRef(null);
37
- const [frameSize, setFrameSize] = import_react.default.useState(0);
38
- const [maxContentSize, setMaxContentSize] = import_react.default.useState(0);
39
- const snapPointsMode = props.snapPointsMode ?? "percent";
40
- const snapPointsProp = props.snapPoints ?? (snapPointsMode === "percent" ? [80] : snapPointsMode === "constant" ? [256] : ["fit"]);
41
- const hasFit = snapPointsProp[0] === "fit";
42
- const snapPoints = import_react.default.useMemo(() => props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp, [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]);
43
- const [position_, setPositionImmediate] = (0, import_use_controllable_state.useControllableState)({
44
- prop: props.position,
45
- defaultProp: props.defaultPosition || (state.open ? 0 : -1),
46
- onChange: props.onPositionChange,
47
- strategy: "most-recent-wins"
48
- });
49
- const position = state.open === false ? -1 : position_;
50
- const { open } = state;
51
- const setPosition = import_react.default.useCallback((next) => {
52
- if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {
53
- state.setOpen(false);
54
- } else {
55
- setPositionImmediate(next);
56
- }
57
- }, [
58
- props.dismissOnSnapToBottom,
59
- snapPoints.length,
60
- setPositionImmediate,
61
- state.setOpen
62
- ]);
63
- if (process.env.NODE_ENV === "development") {
64
- if (snapPointsMode === "mixed" && snapPoints.some((p) => {
65
- if (typeof p === "string") {
66
- if (p === "fit") {
67
- return false;
68
- }
69
- if (p.endsWith("%")) {
70
- const n = Number(p.slice(0, -1));
71
- return n < 0 || n > 100;
72
- }
73
- return true;
74
- }
75
- return typeof p !== "number" || p < 0;
76
- })) {
77
- console.warn("⚠️ Invalid snapPoint given, snapPoints must be positive numeric values, string percentages between 0-100%, or \"fit\" when snapPointsMode is mixed");
78
- }
79
- if (snapPointsMode === "mixed" && snapPoints.indexOf("fit") > 0) {
80
- console.warn("⚠️ Invalid snapPoint given, \"fit\" must be the first/largest snap point when snapPointsMode is mixed");
81
- }
82
- if (snapPointsMode === "fit" && (snapPoints.length !== (props.dismissOnSnapToBottom ? 2 : 1) || snapPoints[0] !== "fit")) {
83
- console.warn("⚠️ Invalid snapPoint given, there are no snap points when snapPointsMode is fit");
84
- }
85
- if (snapPointsMode === "constant" && snapPoints.some((p) => typeof p !== "number" || p < 0)) {
86
- console.warn("⚠️ Invalid snapPoint given, snapPoints must be positive numeric values when snapPointsMode is constant");
87
- }
88
- if (snapPointsMode === "percent" && snapPoints.some((p) => typeof p !== "number" || p < 0 || p > 100)) {
89
- console.warn("⚠️ Invalid snapPoint given, snapPoints must be numeric values between 0 and 100 when snapPointsMode is percent");
90
- }
91
- }
92
- if (open && props.dismissOnSnapToBottom && position === snapPoints.length - 1) {
93
- setPositionImmediate(0);
94
- }
95
- const shouldSetPositionOpen = open && position < 0;
96
- import_react.default.useEffect(() => {
97
- if (shouldSetPositionOpen) {
98
- setPosition(0);
99
- }
100
- }, [setPosition, shouldSetPositionOpen]);
28
+ const { maxContentSize, ...sheetState } = (0, import_useSheetState.useSheetState)(props, state);
29
+ const { frameSize, snapPointsMode, snapPoints, open } = sheetState;
101
30
  const { animationDriver } = (0, import_core.useConfiguration)();
102
31
  if (!animationDriver) {
103
32
  throw new Error(process.env.NODE_ENV === "production" ? `\u274C 008` : "Must set animations in tamagui.config.ts");
@@ -133,30 +62,12 @@ function useSheetProviderProps(props, state) {
133
62
  const disableRemoveScroll = props.disableRemoveScroll || !open || !props.modal;
134
63
  const maxSnapPoint = snapPoints[0];
135
64
  const screenSize = snapPointsMode === "percent" ? frameSize / ((typeof maxSnapPoint === "number" ? maxSnapPoint : 100) / 100) : maxContentSize;
136
- const providerProps = {
65
+ return {
66
+ ...sheetState,
137
67
  screenSize,
138
68
  maxSnapPoint,
139
69
  disableRemoveScroll,
140
70
  scrollBridge,
141
- modal: !!props.modal,
142
- open: state.open,
143
- setOpen: state.setOpen,
144
- hidden: !!state.isHidden,
145
- contentRef,
146
- handleRef,
147
- frameSize,
148
- setFrameSize,
149
- dismissOnOverlayPress: props.dismissOnOverlayPress ?? true,
150
- dismissOnSnapToBottom: props.dismissOnSnapToBottom ?? false,
151
- scope: props.scope ?? "",
152
- hasFit,
153
- position,
154
- snapPoints,
155
- snapPointsMode,
156
- setMaxContentSize,
157
- setPosition,
158
- setPositionImmediate,
159
71
  onlyShowContainer: false
160
72
  };
161
- return providerProps;
162
73
  }
@@ -1,10 +1,8 @@
1
1
  "use strict";
2
2
 
3
- var __create = Object.create;
4
3
  var __defProp = Object.defineProperty;
5
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getProtoOf = Object.getPrototypeOf;
8
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
7
  var __export = (target, all) => {
10
8
  for (var name in all) __defProp(target, name, {
@@ -21,93 +19,16 @@ var __copyProps = (to, from, except, desc) => {
21
19
  }
22
20
  return to;
23
21
  };
24
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
25
- value: mod,
26
- enumerable: true
27
- }) : target, mod));
28
22
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
23
  var useSheetProviderProps_exports = {};
30
24
  __export(useSheetProviderProps_exports, { useSheetProviderProps: () => useSheetProviderProps });
31
25
  module.exports = __toCommonJS(useSheetProviderProps_exports);
32
- var import_react = __toESM(require("react"), 1);
33
26
  var import_core = require("@tamagui/core");
34
27
  var import_use_constant = require("@tamagui/use-constant");
35
- var import_use_controllable_state = require("@tamagui/use-controllable-state");
28
+ var import_useSheetState = require("./useSheetState.native.js");
36
29
  function useSheetProviderProps(props, state) {
37
- var handleRef = import_react.default.useRef(null);
38
- var contentRef = import_react.default.useRef(null);
39
- var [frameSize, setFrameSize] = import_react.default.useState(0);
40
- var [maxContentSize, setMaxContentSize] = import_react.default.useState(0);
41
- var _props_snapPointsMode;
42
- var snapPointsMode = (_props_snapPointsMode = props.snapPointsMode) !== null && _props_snapPointsMode !== void 0 ? _props_snapPointsMode : "percent";
43
- var _props_snapPoints;
44
- var snapPointsProp = (_props_snapPoints = props.snapPoints) !== null && _props_snapPoints !== void 0 ? _props_snapPoints : snapPointsMode === "percent" ? [80] : snapPointsMode === "constant" ? [256] : ["fit"];
45
- var hasFit = snapPointsProp[0] === "fit";
46
- var snapPoints = import_react.default.useMemo(function() {
47
- return props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp;
48
- }, [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]);
49
- var [position_, setPositionImmediate] = (0, import_use_controllable_state.useControllableState)({
50
- prop: props.position,
51
- defaultProp: props.defaultPosition || (state.open ? 0 : -1),
52
- onChange: props.onPositionChange,
53
- strategy: "most-recent-wins"
54
- });
55
- var position = state.open === false ? -1 : position_;
56
- var { open } = state;
57
- var setPosition = import_react.default.useCallback(function(next) {
58
- if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {
59
- state.setOpen(false);
60
- } else {
61
- setPositionImmediate(next);
62
- }
63
- }, [
64
- props.dismissOnSnapToBottom,
65
- snapPoints.length,
66
- setPositionImmediate,
67
- state.setOpen
68
- ]);
69
- if (process.env.NODE_ENV === "development") {
70
- if (snapPointsMode === "mixed" && snapPoints.some(function(p) {
71
- if (typeof p === "string") {
72
- if (p === "fit") {
73
- return false;
74
- }
75
- if (p.endsWith("%")) {
76
- var n = Number(p.slice(0, -1));
77
- return n < 0 || n > 100;
78
- }
79
- return true;
80
- }
81
- return typeof p !== "number" || p < 0;
82
- })) {
83
- console.warn("⚠️ Invalid snapPoint given, snapPoints must be positive numeric values, string percentages between 0-100%, or \"fit\" when snapPointsMode is mixed");
84
- }
85
- if (snapPointsMode === "mixed" && snapPoints.indexOf("fit") > 0) {
86
- console.warn("⚠️ Invalid snapPoint given, \"fit\" must be the first/largest snap point when snapPointsMode is mixed");
87
- }
88
- if (snapPointsMode === "fit" && (snapPoints.length !== (props.dismissOnSnapToBottom ? 2 : 1) || snapPoints[0] !== "fit")) {
89
- console.warn("⚠️ Invalid snapPoint given, there are no snap points when snapPointsMode is fit");
90
- }
91
- if (snapPointsMode === "constant" && snapPoints.some(function(p) {
92
- return typeof p !== "number" || p < 0;
93
- })) {
94
- console.warn("⚠️ Invalid snapPoint given, snapPoints must be positive numeric values when snapPointsMode is constant");
95
- }
96
- if (snapPointsMode === "percent" && snapPoints.some(function(p) {
97
- return typeof p !== "number" || p < 0 || p > 100;
98
- })) {
99
- console.warn("⚠️ Invalid snapPoint given, snapPoints must be numeric values between 0 and 100 when snapPointsMode is percent");
100
- }
101
- }
102
- if (open && props.dismissOnSnapToBottom && position === snapPoints.length - 1) {
103
- setPositionImmediate(0);
104
- }
105
- var shouldSetPositionOpen = open && position < 0;
106
- import_react.default.useEffect(function() {
107
- if (shouldSetPositionOpen) {
108
- setPosition(0);
109
- }
110
- }, [setPosition, shouldSetPositionOpen]);
30
+ var { maxContentSize, ...sheetState } = (0, import_useSheetState.useSheetState)(props, state);
31
+ var { frameSize, snapPointsMode, snapPoints, open } = sheetState;
111
32
  var { animationDriver } = (0, import_core.useConfiguration)();
112
33
  if (!animationDriver) {
113
34
  throw new Error(process.env.NODE_ENV === "production" ? `\u274C 008` : "Must set animations in tamagui.config.ts");
@@ -145,31 +66,12 @@ function useSheetProviderProps(props, state) {
145
66
  var disableRemoveScroll = props.disableRemoveScroll || !open || !props.modal;
146
67
  var maxSnapPoint = snapPoints[0];
147
68
  var screenSize = snapPointsMode === "percent" ? frameSize / ((typeof maxSnapPoint === "number" ? maxSnapPoint : 100) / 100) : maxContentSize;
148
- var _props_dismissOnOverlayPress, _props_dismissOnSnapToBottom, _props_scope;
149
- var providerProps = {
69
+ return {
70
+ ...sheetState,
150
71
  screenSize,
151
72
  maxSnapPoint,
152
73
  disableRemoveScroll,
153
74
  scrollBridge,
154
- modal: !!props.modal,
155
- open: state.open,
156
- setOpen: state.setOpen,
157
- hidden: !!state.isHidden,
158
- contentRef,
159
- handleRef,
160
- frameSize,
161
- setFrameSize,
162
- dismissOnOverlayPress: (_props_dismissOnOverlayPress = props.dismissOnOverlayPress) !== null && _props_dismissOnOverlayPress !== void 0 ? _props_dismissOnOverlayPress : true,
163
- dismissOnSnapToBottom: (_props_dismissOnSnapToBottom = props.dismissOnSnapToBottom) !== null && _props_dismissOnSnapToBottom !== void 0 ? _props_dismissOnSnapToBottom : false,
164
- scope: (_props_scope = props.scope) !== null && _props_scope !== void 0 ? _props_scope : "",
165
- hasFit,
166
- position,
167
- snapPoints,
168
- snapPointsMode,
169
- setMaxContentSize,
170
- setPosition,
171
- setPositionImmediate,
172
75
  onlyShowContainer: false
173
76
  };
174
- return providerProps;
175
77
  }
@@ -1,10 +1,8 @@
1
1
  "use strict";
2
2
 
3
- var __create = Object.create;
4
3
  var __defProp = Object.defineProperty;
5
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getProtoOf = Object.getPrototypeOf;
8
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
7
  var __export = (target, all) => {
10
8
  for (var name in all) __defProp(target, name, {
@@ -21,93 +19,16 @@ var __copyProps = (to, from, except, desc) => {
21
19
  }
22
20
  return to;
23
21
  };
24
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
25
- value: mod,
26
- enumerable: true
27
- }) : target, mod));
28
22
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
23
  var useSheetProviderProps_exports = {};
30
24
  __export(useSheetProviderProps_exports, { useSheetProviderProps: () => useSheetProviderProps });
31
25
  module.exports = __toCommonJS(useSheetProviderProps_exports);
32
- var import_react = __toESM(require("react"), 1);
33
26
  var import_core = require("@tamagui/core");
34
27
  var import_use_constant = require("@tamagui/use-constant");
35
- var import_use_controllable_state = require("@tamagui/use-controllable-state");
28
+ var import_useSheetState = require("./useSheetState.native.js");
36
29
  function useSheetProviderProps(props, state) {
37
- var handleRef = import_react.default.useRef(null);
38
- var contentRef = import_react.default.useRef(null);
39
- var [frameSize, setFrameSize] = import_react.default.useState(0);
40
- var [maxContentSize, setMaxContentSize] = import_react.default.useState(0);
41
- var _props_snapPointsMode;
42
- var snapPointsMode = (_props_snapPointsMode = props.snapPointsMode) !== null && _props_snapPointsMode !== void 0 ? _props_snapPointsMode : "percent";
43
- var _props_snapPoints;
44
- var snapPointsProp = (_props_snapPoints = props.snapPoints) !== null && _props_snapPoints !== void 0 ? _props_snapPoints : snapPointsMode === "percent" ? [80] : snapPointsMode === "constant" ? [256] : ["fit"];
45
- var hasFit = snapPointsProp[0] === "fit";
46
- var snapPoints = import_react.default.useMemo(function() {
47
- return props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp;
48
- }, [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]);
49
- var [position_, setPositionImmediate] = (0, import_use_controllable_state.useControllableState)({
50
- prop: props.position,
51
- defaultProp: props.defaultPosition || (state.open ? 0 : -1),
52
- onChange: props.onPositionChange,
53
- strategy: "most-recent-wins"
54
- });
55
- var position = state.open === false ? -1 : position_;
56
- var { open } = state;
57
- var setPosition = import_react.default.useCallback(function(next) {
58
- if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {
59
- state.setOpen(false);
60
- } else {
61
- setPositionImmediate(next);
62
- }
63
- }, [
64
- props.dismissOnSnapToBottom,
65
- snapPoints.length,
66
- setPositionImmediate,
67
- state.setOpen
68
- ]);
69
- if (process.env.NODE_ENV === "development") {
70
- if (snapPointsMode === "mixed" && snapPoints.some(function(p) {
71
- if (typeof p === "string") {
72
- if (p === "fit") {
73
- return false;
74
- }
75
- if (p.endsWith("%")) {
76
- var n = Number(p.slice(0, -1));
77
- return n < 0 || n > 100;
78
- }
79
- return true;
80
- }
81
- return typeof p !== "number" || p < 0;
82
- })) {
83
- console.warn("⚠️ Invalid snapPoint given, snapPoints must be positive numeric values, string percentages between 0-100%, or \"fit\" when snapPointsMode is mixed");
84
- }
85
- if (snapPointsMode === "mixed" && snapPoints.indexOf("fit") > 0) {
86
- console.warn("⚠️ Invalid snapPoint given, \"fit\" must be the first/largest snap point when snapPointsMode is mixed");
87
- }
88
- if (snapPointsMode === "fit" && (snapPoints.length !== (props.dismissOnSnapToBottom ? 2 : 1) || snapPoints[0] !== "fit")) {
89
- console.warn("⚠️ Invalid snapPoint given, there are no snap points when snapPointsMode is fit");
90
- }
91
- if (snapPointsMode === "constant" && snapPoints.some(function(p) {
92
- return typeof p !== "number" || p < 0;
93
- })) {
94
- console.warn("⚠️ Invalid snapPoint given, snapPoints must be positive numeric values when snapPointsMode is constant");
95
- }
96
- if (snapPointsMode === "percent" && snapPoints.some(function(p) {
97
- return typeof p !== "number" || p < 0 || p > 100;
98
- })) {
99
- console.warn("⚠️ Invalid snapPoint given, snapPoints must be numeric values between 0 and 100 when snapPointsMode is percent");
100
- }
101
- }
102
- if (open && props.dismissOnSnapToBottom && position === snapPoints.length - 1) {
103
- setPositionImmediate(0);
104
- }
105
- var shouldSetPositionOpen = open && position < 0;
106
- import_react.default.useEffect(function() {
107
- if (shouldSetPositionOpen) {
108
- setPosition(0);
109
- }
110
- }, [setPosition, shouldSetPositionOpen]);
30
+ var { maxContentSize, ...sheetState } = (0, import_useSheetState.useSheetState)(props, state);
31
+ var { frameSize, snapPointsMode, snapPoints, open } = sheetState;
111
32
  var { animationDriver } = (0, import_core.useConfiguration)();
112
33
  if (!animationDriver) {
113
34
  throw new Error(process.env.NODE_ENV === "production" ? `\u274C 008` : "Must set animations in tamagui.config.ts");
@@ -145,33 +66,14 @@ function useSheetProviderProps(props, state) {
145
66
  var disableRemoveScroll = props.disableRemoveScroll || !open || !props.modal;
146
67
  var maxSnapPoint = snapPoints[0];
147
68
  var screenSize = snapPointsMode === "percent" ? frameSize / ((typeof maxSnapPoint === "number" ? maxSnapPoint : 100) / 100) : maxContentSize;
148
- var _props_dismissOnOverlayPress, _props_dismissOnSnapToBottom, _props_scope;
149
- var providerProps = {
69
+ return {
70
+ ...sheetState,
150
71
  screenSize,
151
72
  maxSnapPoint,
152
73
  disableRemoveScroll,
153
74
  scrollBridge,
154
- modal: !!props.modal,
155
- open: state.open,
156
- setOpen: state.setOpen,
157
- hidden: !!state.isHidden,
158
- contentRef,
159
- handleRef,
160
- frameSize,
161
- setFrameSize,
162
- dismissOnOverlayPress: (_props_dismissOnOverlayPress = props.dismissOnOverlayPress) !== null && _props_dismissOnOverlayPress !== void 0 ? _props_dismissOnOverlayPress : true,
163
- dismissOnSnapToBottom: (_props_dismissOnSnapToBottom = props.dismissOnSnapToBottom) !== null && _props_dismissOnSnapToBottom !== void 0 ? _props_dismissOnSnapToBottom : false,
164
- scope: (_props_scope = props.scope) !== null && _props_scope !== void 0 ? _props_scope : "",
165
- hasFit,
166
- position,
167
- snapPoints,
168
- snapPointsMode,
169
- setMaxContentSize,
170
- setPosition,
171
- setPositionImmediate,
172
75
  onlyShowContainer: false
173
76
  };
174
- return providerProps;
175
77
  }
176
78
 
177
79
  //# sourceMappingURL=useSheetProviderProps.native.js.map