@hanzogui/sheet 3.0.2 → 7.3.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 (296) hide show
  1. package/LICENSE +40 -19
  2. package/dist/cjs/GestureDetectorWrapper.cjs +27 -21
  3. package/dist/cjs/GestureDetectorWrapper.native.js +33 -28
  4. package/dist/cjs/GestureDetectorWrapper.native.js.map +1 -1
  5. package/dist/cjs/GestureSheetContext.cjs +14 -12
  6. package/dist/cjs/GestureSheetContext.native.js +29 -27
  7. package/dist/cjs/GestureSheetContext.native.js.map +1 -1
  8. package/dist/cjs/Sheet.cjs +89 -87
  9. package/dist/cjs/Sheet.native.js +89 -87
  10. package/dist/cjs/Sheet.native.js.map +1 -1
  11. package/dist/cjs/SheetContext.cjs +16 -14
  12. package/dist/cjs/SheetContext.native.js +16 -14
  13. package/dist/cjs/SheetContext.native.js.map +1 -1
  14. package/dist/cjs/SheetController.cjs +40 -32
  15. package/dist/cjs/SheetController.native.js +62 -54
  16. package/dist/cjs/SheetController.native.js.map +1 -1
  17. package/dist/cjs/SheetImplementationCustom.cjs +544 -427
  18. package/dist/cjs/SheetImplementationCustom.native.js +567 -476
  19. package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
  20. package/dist/cjs/SheetScrollView.cjs +169 -133
  21. package/dist/cjs/SheetScrollView.native.js +189 -163
  22. package/dist/cjs/SheetScrollView.native.js.map +1 -1
  23. package/dist/cjs/constants.cjs +16 -14
  24. package/dist/cjs/constants.native.js +16 -14
  25. package/dist/cjs/constants.native.js.map +1 -1
  26. package/dist/cjs/contexts.cjs +27 -25
  27. package/dist/cjs/contexts.native.js +29 -27
  28. package/dist/cjs/contexts.native.js.map +1 -1
  29. package/dist/cjs/controller.cjs +14 -12
  30. package/dist/cjs/controller.native.js +14 -12
  31. package/dist/cjs/controller.native.js.map +1 -1
  32. package/dist/cjs/createSheet.cjs +160 -161
  33. package/dist/cjs/createSheet.native.js +173 -181
  34. package/dist/cjs/createSheet.native.js.map +1 -1
  35. package/dist/cjs/gestureState.cjs +16 -14
  36. package/dist/cjs/gestureState.native.js +16 -14
  37. package/dist/cjs/gestureState.native.js.map +1 -1
  38. package/dist/cjs/helpers.cjs +17 -13
  39. package/dist/cjs/helpers.native.js +17 -13
  40. package/dist/cjs/helpers.native.js.map +1 -1
  41. package/dist/cjs/index.cjs +7 -5
  42. package/dist/cjs/index.native.js +7 -5
  43. package/dist/cjs/index.native.js.map +1 -1
  44. package/dist/cjs/nativeSheet.cjs +64 -55
  45. package/dist/cjs/nativeSheet.native.js +73 -68
  46. package/dist/cjs/nativeSheet.native.js.map +1 -1
  47. package/dist/cjs/setupGestureHandler.cjs +26 -20
  48. package/dist/cjs/setupGestureHandler.native.js +26 -21
  49. package/dist/cjs/setupGestureHandler.native.js.map +1 -1
  50. package/dist/cjs/types.cjs +7 -5
  51. package/dist/cjs/types.native.js +7 -5
  52. package/dist/cjs/types.native.js.map +1 -1
  53. package/dist/cjs/useGestureHandlerPan.cjs +181 -111
  54. package/dist/cjs/useGestureHandlerPan.native.js +183 -115
  55. package/dist/cjs/useGestureHandlerPan.native.js.map +1 -1
  56. package/dist/cjs/useKeyboardControllerSheet.cjs +15 -13
  57. package/dist/cjs/useKeyboardControllerSheet.native.js +100 -82
  58. package/dist/cjs/useKeyboardControllerSheet.native.js.map +1 -1
  59. package/dist/cjs/useSheet.cjs +12 -10
  60. package/dist/cjs/useSheet.native.js +16 -14
  61. package/dist/cjs/useSheet.native.js.map +1 -1
  62. package/dist/cjs/useSheetController.cjs +35 -33
  63. package/dist/cjs/useSheetController.native.js +37 -35
  64. package/dist/cjs/useSheetController.native.js.map +1 -1
  65. package/dist/cjs/useSheetOffscreenSize.cjs +35 -23
  66. package/dist/cjs/useSheetOffscreenSize.native.js +36 -27
  67. package/dist/cjs/useSheetOffscreenSize.native.js.map +1 -1
  68. package/dist/cjs/useSheetOpenState.cjs +28 -25
  69. package/dist/cjs/useSheetOpenState.native.js +39 -37
  70. package/dist/cjs/useSheetOpenState.native.js.map +1 -1
  71. package/dist/cjs/useSheetProviderProps.cjs +131 -83
  72. package/dist/cjs/useSheetProviderProps.native.js +167 -124
  73. package/dist/cjs/useSheetProviderProps.native.js.map +1 -1
  74. package/dist/cjs/useSheetScrollViewGestures.cjs +124 -81
  75. package/dist/cjs/useSheetScrollViewGestures.native.js +128 -79
  76. package/dist/cjs/useSheetScrollViewGestures.native.js.map +1 -1
  77. package/dist/esm/GestureDetectorWrapper.mjs +12 -8
  78. package/dist/esm/GestureDetectorWrapper.mjs.map +1 -1
  79. package/dist/esm/GestureDetectorWrapper.native.js +18 -15
  80. package/dist/esm/GestureDetectorWrapper.native.js.map +1 -1
  81. package/dist/esm/GestureSheetContext.native.js +14 -14
  82. package/dist/esm/GestureSheetContext.native.js.map +1 -1
  83. package/dist/esm/Sheet.mjs +70 -70
  84. package/dist/esm/Sheet.mjs.map +1 -1
  85. package/dist/esm/Sheet.native.js +70 -70
  86. package/dist/esm/Sheet.native.js.map +1 -1
  87. package/dist/esm/SheetContext.mjs +2 -2
  88. package/dist/esm/SheetContext.mjs.map +1 -1
  89. package/dist/esm/SheetContext.native.js +2 -2
  90. package/dist/esm/SheetContext.native.js.map +1 -1
  91. package/dist/esm/SheetController.mjs +12 -6
  92. package/dist/esm/SheetController.mjs.map +1 -1
  93. package/dist/esm/SheetController.native.js +18 -12
  94. package/dist/esm/SheetController.native.js.map +1 -1
  95. package/dist/esm/SheetImplementationCustom.mjs +501 -386
  96. package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
  97. package/dist/esm/SheetImplementationCustom.native.js +520 -435
  98. package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
  99. package/dist/esm/SheetScrollView.mjs +133 -99
  100. package/dist/esm/SheetScrollView.mjs.map +1 -1
  101. package/dist/esm/SheetScrollView.native.js +155 -131
  102. package/dist/esm/SheetScrollView.native.js.map +1 -1
  103. package/dist/esm/constants.mjs +4 -4
  104. package/dist/esm/constants.mjs.map +1 -1
  105. package/dist/esm/constants.native.js +4 -4
  106. package/dist/esm/constants.native.js.map +1 -1
  107. package/dist/esm/contexts.mjs +3 -3
  108. package/dist/esm/contexts.mjs.map +1 -1
  109. package/dist/esm/contexts.native.js +3 -3
  110. package/dist/esm/contexts.native.js.map +1 -1
  111. package/dist/esm/createSheet.mjs +130 -133
  112. package/dist/esm/createSheet.mjs.map +1 -1
  113. package/dist/esm/createSheet.native.js +142 -152
  114. package/dist/esm/createSheet.native.js.map +1 -1
  115. package/dist/esm/helpers.mjs +5 -3
  116. package/dist/esm/helpers.mjs.map +1 -1
  117. package/dist/esm/helpers.native.js +5 -3
  118. package/dist/esm/helpers.native.js.map +1 -1
  119. package/dist/esm/nativeSheet.mjs +45 -38
  120. package/dist/esm/nativeSheet.mjs.map +1 -1
  121. package/dist/esm/nativeSheet.native.js +51 -48
  122. package/dist/esm/nativeSheet.native.js.map +1 -1
  123. package/dist/esm/setupGestureHandler.mjs +12 -8
  124. package/dist/esm/setupGestureHandler.mjs.map +1 -1
  125. package/dist/esm/setupGestureHandler.native.js +12 -9
  126. package/dist/esm/setupGestureHandler.native.js.map +1 -1
  127. package/dist/esm/useGestureHandlerPan.mjs +167 -99
  128. package/dist/esm/useGestureHandlerPan.mjs.map +1 -1
  129. package/dist/esm/useGestureHandlerPan.native.js +168 -102
  130. package/dist/esm/useGestureHandlerPan.native.js.map +1 -1
  131. package/dist/esm/useKeyboardControllerSheet.mjs +3 -3
  132. package/dist/esm/useKeyboardControllerSheet.mjs.map +1 -1
  133. package/dist/esm/useKeyboardControllerSheet.native.js +85 -69
  134. package/dist/esm/useKeyboardControllerSheet.native.js.map +1 -1
  135. package/dist/esm/useSheetController.mjs +11 -11
  136. package/dist/esm/useSheetController.mjs.map +1 -1
  137. package/dist/esm/useSheetController.native.js +11 -11
  138. package/dist/esm/useSheetController.native.js.map +1 -1
  139. package/dist/esm/useSheetOffscreenSize.mjs +23 -13
  140. package/dist/esm/useSheetOffscreenSize.mjs.map +1 -1
  141. package/dist/esm/useSheetOffscreenSize.native.js +24 -17
  142. package/dist/esm/useSheetOffscreenSize.native.js.map +1 -1
  143. package/dist/esm/useSheetOpenState.mjs +14 -13
  144. package/dist/esm/useSheetOpenState.mjs.map +1 -1
  145. package/dist/esm/useSheetOpenState.native.js +17 -17
  146. package/dist/esm/useSheetOpenState.native.js.map +1 -1
  147. package/dist/esm/useSheetProviderProps.mjs +101 -55
  148. package/dist/esm/useSheetProviderProps.mjs.map +1 -1
  149. package/dist/esm/useSheetProviderProps.native.js +137 -96
  150. package/dist/esm/useSheetProviderProps.native.js.map +1 -1
  151. package/dist/esm/useSheetScrollViewGestures.mjs +112 -71
  152. package/dist/esm/useSheetScrollViewGestures.mjs.map +1 -1
  153. package/dist/esm/useSheetScrollViewGestures.native.js +116 -69
  154. package/dist/esm/useSheetScrollViewGestures.native.js.map +1 -1
  155. package/dist/jsx/GestureDetectorWrapper.mjs +12 -8
  156. package/dist/jsx/GestureDetectorWrapper.mjs.map +1 -1
  157. package/dist/jsx/GestureDetectorWrapper.native.js +33 -28
  158. package/dist/jsx/GestureDetectorWrapper.native.js.map +1 -1
  159. package/dist/jsx/GestureSheetContext.native.js +29 -27
  160. package/dist/jsx/GestureSheetContext.native.js.map +1 -1
  161. package/dist/jsx/Sheet.mjs +70 -70
  162. package/dist/jsx/Sheet.mjs.map +1 -1
  163. package/dist/jsx/Sheet.native.js +89 -87
  164. package/dist/jsx/Sheet.native.js.map +1 -1
  165. package/dist/jsx/SheetContext.mjs +2 -2
  166. package/dist/jsx/SheetContext.mjs.map +1 -1
  167. package/dist/jsx/SheetContext.native.js +16 -14
  168. package/dist/jsx/SheetContext.native.js.map +1 -1
  169. package/dist/jsx/SheetController.mjs +12 -6
  170. package/dist/jsx/SheetController.mjs.map +1 -1
  171. package/dist/jsx/SheetController.native.js +62 -54
  172. package/dist/jsx/SheetController.native.js.map +1 -1
  173. package/dist/jsx/SheetImplementationCustom.mjs +501 -386
  174. package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
  175. package/dist/jsx/SheetImplementationCustom.native.js +567 -476
  176. package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
  177. package/dist/jsx/SheetScrollView.mjs +133 -99
  178. package/dist/jsx/SheetScrollView.mjs.map +1 -1
  179. package/dist/jsx/SheetScrollView.native.js +189 -163
  180. package/dist/jsx/SheetScrollView.native.js.map +1 -1
  181. package/dist/jsx/constants.mjs +4 -4
  182. package/dist/jsx/constants.mjs.map +1 -1
  183. package/dist/jsx/constants.native.js +16 -14
  184. package/dist/jsx/constants.native.js.map +1 -1
  185. package/dist/jsx/contexts.mjs +3 -3
  186. package/dist/jsx/contexts.mjs.map +1 -1
  187. package/dist/jsx/contexts.native.js +29 -27
  188. package/dist/jsx/contexts.native.js.map +1 -1
  189. package/dist/jsx/controller.native.js +14 -12
  190. package/dist/jsx/createSheet.mjs +130 -133
  191. package/dist/jsx/createSheet.mjs.map +1 -1
  192. package/dist/jsx/createSheet.native.js +173 -181
  193. package/dist/jsx/createSheet.native.js.map +1 -1
  194. package/dist/jsx/gestureState.native.js +16 -14
  195. package/dist/jsx/gestureState.native.js.map +1 -1
  196. package/dist/jsx/helpers.mjs +5 -3
  197. package/dist/jsx/helpers.mjs.map +1 -1
  198. package/dist/jsx/helpers.native.js +17 -13
  199. package/dist/jsx/helpers.native.js.map +1 -1
  200. package/dist/jsx/index.native.js +7 -5
  201. package/dist/jsx/index.native.js.map +1 -1
  202. package/dist/jsx/nativeSheet.mjs +45 -38
  203. package/dist/jsx/nativeSheet.mjs.map +1 -1
  204. package/dist/jsx/nativeSheet.native.js +73 -68
  205. package/dist/jsx/nativeSheet.native.js.map +1 -1
  206. package/dist/jsx/setupGestureHandler.mjs +12 -8
  207. package/dist/jsx/setupGestureHandler.mjs.map +1 -1
  208. package/dist/jsx/setupGestureHandler.native.js +26 -21
  209. package/dist/jsx/setupGestureHandler.native.js.map +1 -1
  210. package/dist/jsx/types.native.js +7 -5
  211. package/dist/jsx/useGestureHandlerPan.mjs +167 -99
  212. package/dist/jsx/useGestureHandlerPan.mjs.map +1 -1
  213. package/dist/jsx/useGestureHandlerPan.native.js +183 -115
  214. package/dist/jsx/useGestureHandlerPan.native.js.map +1 -1
  215. package/dist/jsx/useKeyboardControllerSheet.mjs +3 -3
  216. package/dist/jsx/useKeyboardControllerSheet.mjs.map +1 -1
  217. package/dist/jsx/useKeyboardControllerSheet.native.js +100 -82
  218. package/dist/jsx/useKeyboardControllerSheet.native.js.map +1 -1
  219. package/dist/jsx/useSheet.native.js +16 -14
  220. package/dist/jsx/useSheetController.mjs +11 -11
  221. package/dist/jsx/useSheetController.mjs.map +1 -1
  222. package/dist/jsx/useSheetController.native.js +37 -35
  223. package/dist/jsx/useSheetController.native.js.map +1 -1
  224. package/dist/jsx/useSheetOffscreenSize.mjs +23 -13
  225. package/dist/jsx/useSheetOffscreenSize.mjs.map +1 -1
  226. package/dist/jsx/useSheetOffscreenSize.native.js +36 -27
  227. package/dist/jsx/useSheetOffscreenSize.native.js.map +1 -1
  228. package/dist/jsx/useSheetOpenState.mjs +14 -13
  229. package/dist/jsx/useSheetOpenState.mjs.map +1 -1
  230. package/dist/jsx/useSheetOpenState.native.js +39 -37
  231. package/dist/jsx/useSheetOpenState.native.js.map +1 -1
  232. package/dist/jsx/useSheetProviderProps.mjs +101 -55
  233. package/dist/jsx/useSheetProviderProps.mjs.map +1 -1
  234. package/dist/jsx/useSheetProviderProps.native.js +167 -124
  235. package/dist/jsx/useSheetProviderProps.native.js.map +1 -1
  236. package/dist/jsx/useSheetScrollViewGestures.mjs +112 -71
  237. package/dist/jsx/useSheetScrollViewGestures.mjs.map +1 -1
  238. package/dist/jsx/useSheetScrollViewGestures.native.js +128 -79
  239. package/dist/jsx/useSheetScrollViewGestures.native.js.map +1 -1
  240. package/package.json +35 -25
  241. package/src/Sheet.tsx +3 -3
  242. package/src/SheetController.tsx +4 -1
  243. package/src/SheetImplementationCustom.tsx +21 -10
  244. package/src/createSheet.tsx +1 -1
  245. package/src/useSheetController.tsx +4 -0
  246. package/types/GestureDetectorWrapper.d.ts +1 -1
  247. package/types/GestureDetectorWrapper.d.ts.map +1 -0
  248. package/types/GestureSheetContext.d.ts +1 -1
  249. package/types/GestureSheetContext.d.ts.map +1 -0
  250. package/types/Sheet.d.ts +51 -51
  251. package/types/Sheet.d.ts.map +1 -0
  252. package/types/SheetContext.d.ts +8 -8
  253. package/types/SheetContext.d.ts.map +1 -0
  254. package/types/SheetController.d.ts +3 -2
  255. package/types/SheetController.d.ts.map +1 -0
  256. package/types/SheetImplementationCustom.d.ts +4 -4
  257. package/types/SheetImplementationCustom.d.ts.map +1 -0
  258. package/types/SheetScrollView.d.ts +10 -10
  259. package/types/SheetScrollView.d.ts.map +1 -0
  260. package/types/constants.d.ts.map +1 -0
  261. package/types/contexts.d.ts.map +1 -0
  262. package/types/controller.d.ts.map +1 -0
  263. package/types/createSheet.d.ts +31 -31
  264. package/types/createSheet.d.ts.map +1 -0
  265. package/types/gestureState.d.ts +3 -3
  266. package/types/gestureState.d.ts.map +1 -0
  267. package/types/helpers.d.ts.map +1 -0
  268. package/types/index.d.ts.map +1 -0
  269. package/types/nativeSheet.d.ts.map +1 -0
  270. package/types/setupGestureHandler.d.ts +1 -1
  271. package/types/setupGestureHandler.d.ts.map +1 -0
  272. package/types/types.d.ts +4 -4
  273. package/types/types.d.ts.map +1 -0
  274. package/types/useGestureHandlerPan.d.ts.map +1 -0
  275. package/types/useKeyboardControllerSheet.d.ts.map +1 -0
  276. package/types/useKeyboardControllerSheet.native.d.ts.map +1 -0
  277. package/types/useSheet.d.ts.map +1 -0
  278. package/types/useSheetController.d.ts +3 -0
  279. package/types/useSheetController.d.ts.map +1 -0
  280. package/types/useSheetOffscreenSize.d.ts.map +1 -0
  281. package/types/useSheetOpenState.d.ts.map +1 -0
  282. package/types/useSheetProviderProps.d.ts +2 -2
  283. package/types/useSheetProviderProps.d.ts.map +1 -0
  284. package/types/useSheetScrollViewGestures.d.ts.map +1 -0
  285. package/types/useSheetScrollViewGestures.native.d.ts.map +1 -0
  286. package/controller/index.cjs +0 -2
  287. package/controller/index.d.ts +0 -5
  288. package/controller/index.js +0 -2
  289. package/controller/index.native.cjs +0 -2
  290. package/controller/index.native.js +0 -2
  291. package/next.md +0 -78
  292. package/setup-gesture-handler/index.cjs +0 -2
  293. package/setup-gesture-handler/index.js +0 -2
  294. package/setup-gesture-handler/index.native.cjs +0 -2
  295. package/setup-gesture-handler/index.native.js +0 -2
  296. package/tsconfig.json +0 -56
@@ -4,521 +4,612 @@ var __create = Object.create;
4
4
  var __defProp = Object.defineProperty;
5
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getProtoOf = Object.getPrototypeOf,
8
- __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
9
  var __export = (target, all) => {
10
- for (var name in all) __defProp(target, name, {
11
- get: all[name],
12
- enumerable: !0
13
- });
14
- },
15
- __copyProps = (to, from, except, desc) => {
16
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: true
13
+ });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
17
18
  get: () => from[key],
18
19
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
20
  });
20
- return to;
21
- };
21
+ }
22
+ return to;
23
+ };
22
24
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
- // If the importer is in node compatibility mode or this is not an ESM
24
- // file that has been converted to a CommonJS file using a Babel-
25
- // compatible transform (i.e. "__esModule" has not been set), then set
26
- // "default" to the CommonJS "module.exports" for node compatibility.
27
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
- value: mod,
29
- enumerable: !0
30
- }) : target, mod)),
31
- __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
- value: !0
33
- }), mod);
25
+ // If the importer is in node compatibility mode or this is not an ESM
26
+ // file that has been converted to a CommonJS file using a Babel-
27
+ // compatible transform (i.e. "__esModule" has not been set), then set
28
+ // "default" to the CommonJS "module.exports" for node compatibility.
29
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
30
+ value: mod,
31
+ enumerable: true
32
+ }) : target, mod));
33
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
34
+ value: true
35
+ }), mod);
34
36
  var SheetImplementationCustom_exports = {};
35
37
  __export(SheetImplementationCustom_exports, {
36
38
  SheetImplementationCustom: () => SheetImplementationCustom
37
39
  });
38
40
  module.exports = __toCommonJS(SheetImplementationCustom_exports);
39
- var import_jsx_runtime = require("react/jsx-runtime"),
40
- import_gui_adapt = require("@hanzogui/adapt"),
41
- import_gui_animate_presence = require("@hanzogui/animate-presence"),
42
- import_gui_compose_refs = require("@hanzogui/compose-refs"),
43
- import_gui_constants = require("@hanzogui/constants"),
44
- import_gui_core = require("@hanzogui/core"),
45
- import_gui_native = require("@hanzogui/native"),
46
- import_gui_portal = require("@hanzogui/portal"),
47
- import_react = __toESM(require("react"), 1),
48
- import_react_native = require("react-native"),
49
- import_contexts = require("./contexts.native.js"),
50
- import_GestureDetectorWrapper = require("./GestureDetectorWrapper.native.js"),
51
- import_GestureSheetContext = require("./GestureSheetContext.native.js"),
52
- import_helpers = require("./helpers.native.js"),
53
- import_SheetContext = require("./SheetContext.native.js"),
54
- import_useGestureHandlerPan = require("./useGestureHandlerPan.native.js"),
55
- import_useKeyboardControllerSheet = require("./useKeyboardControllerSheet.native.js"),
56
- import_useSheetOpenState = require("./useSheetOpenState.native.js"),
57
- import_useSheetProviderProps = require("./useSheetProviderProps.native.js"),
58
- hiddenSize = 10000.1,
59
- _cachedSafeAreaTop;
41
+ var import_jsx_runtime = require("react/jsx-runtime");
42
+ var import_adapt = require("@hanzogui/adapt");
43
+ var import_animate_presence = require("@hanzogui/animate-presence");
44
+ var import_compose_refs = require("@hanzogui/compose-refs");
45
+ var import_constants = require("@hanzogui/constants");
46
+ var import_core = require("@hanzogui/core");
47
+ var import_native = require("@hanzogui/native");
48
+ var import_portal = require("@hanzogui/portal");
49
+ var import_react = __toESM(require("react"), 1);
50
+ var import_react_native = require("react-native");
51
+ var import_contexts = require("./contexts.native.js");
52
+ var import_GestureDetectorWrapper = require("./GestureDetectorWrapper.native.js");
53
+ var import_GestureSheetContext = require("./GestureSheetContext.native.js");
54
+ var import_helpers = require("./helpers.native.js");
55
+ var import_SheetContext = require("./SheetContext.native.js");
56
+ var import_useGestureHandlerPan = require("./useGestureHandlerPan.native.js");
57
+ var import_useKeyboardControllerSheet = require("./useKeyboardControllerSheet.native.js");
58
+ var import_useSheetOpenState = require("./useSheetOpenState.native.js");
59
+ var import_useSheetProviderProps = require("./useSheetProviderProps.native.js");
60
+ var hiddenSize = 10000.1;
61
+ var _cachedSafeAreaTop;
60
62
  function getSafeAreaTopInset() {
61
- return _cachedSafeAreaTop !== void 0 || (_cachedSafeAreaTop = (0, import_gui_native.getSafeArea)().getInsets().top), _cachedSafeAreaTop;
63
+ if (_cachedSafeAreaTop !== void 0) return _cachedSafeAreaTop;
64
+ _cachedSafeAreaTop = (0, import_native.getSafeArea)().getInsets().top;
65
+ return _cachedSafeAreaTop;
62
66
  }
63
- var relativeDimensionTo = import_gui_constants.isWeb ? "window" : "screen",
64
- SheetImplementationCustom = /* @__PURE__ */import_react.default.forwardRef(function (props, forwardedRef) {
65
- var parentSheet = import_react.default.useContext(import_contexts.ParentSheetContext),
66
- {
67
- transition,
68
- transitionConfig: transitionConfigProp,
69
- modal = !1,
70
- zIndex = parentSheet.zIndex + 1,
71
- moveOnKeyboardChange = !1,
72
- unmountChildrenWhenHidden = !1,
73
- portalProps,
74
- containerComponent: ContainerComponent = import_react.default.Fragment,
75
- onAnimationComplete
76
- } = props,
77
- state = (0, import_useSheetOpenState.useSheetOpenState)(props),
78
- [overlayComponent, setOverlayComponent] = import_react.default.useState(null),
79
- providerProps = (0, import_useSheetProviderProps.useSheetProviderProps)(props, state, {
80
- onOverlayComponent: setOverlayComponent
81
- }),
82
- {
83
- frameSize,
84
- setFrameSize,
85
- snapPoints,
86
- snapPointsMode,
87
- hasFit,
88
- position,
89
- setPosition,
90
- scrollBridge,
91
- screenSize,
92
- setMaxContentSize,
93
- maxSnapPoint
94
- } = providerProps,
95
- {
96
- open,
97
- controller,
98
- isHidden
99
- } = state,
100
- openRef = import_react.default.useRef(open);
101
- openRef.current = open;
102
- var sheetRef = import_react.default.useRef(void 0),
103
- ref = (0, import_gui_compose_refs.useComposedRefs)(forwardedRef, sheetRef, providerProps.contentRef),
104
- {
105
- animationDriver
106
- } = (0, import_gui_core.useConfiguration)();
107
- if (!animationDriver) throw new Error("Sheet requires an animation driver to be set");
108
- var transitionConfig = function () {
109
- var _animationDriver_animations;
110
- if (transitionConfigProp) return transitionConfigProp;
111
- var [animationProp, animationPropConfig] = transition ? Array.isArray(transition) ? transition : [transition] : [];
112
- return animationProp && !((_animationDriver_animations = animationDriver.animations) === null || _animationDriver_animations === void 0) && _animationDriver_animations[animationProp] ? {
113
- ...animationDriver.animations[animationProp],
114
- ...animationPropConfig
115
- } : null;
116
- }(),
117
- [isShowingInnerSheet, setIsShowingInnerSheet] = import_react.default.useState(!1),
118
- shouldHideParentSheet = !import_gui_constants.isWeb && modal && isShowingInnerSheet && (0, import_gui_portal.needsPortalRepropagation)(),
119
- sheetInsideSheet = import_react.default.useContext(import_contexts.SheetInsideSheetContext),
120
- onInnerSheet = import_react.default.useCallback(function (hasChild) {
121
- setIsShowingInnerSheet(hasChild);
122
- }, []),
123
- stableFrameSize = import_react.default.useRef(frameSize);
124
- import_react.default.useEffect(function () {
125
- open && frameSize && (stableFrameSize.current = frameSize);
126
- }, [open, frameSize]);
127
- var effectiveFrameSize = open ? frameSize : stableFrameSize.current || frameSize,
128
- positions = import_react.default.useMemo(function () {
129
- return snapPoints.map(function (point) {
130
- return getYPositions(snapPointsMode, point, screenSize, effectiveFrameSize);
131
- });
132
- }, [screenSize, effectiveFrameSize, snapPoints, snapPointsMode]),
133
- {
134
- keyboardHeight,
135
- isKeyboardVisible,
136
- dismissKeyboard,
137
- pauseKeyboardHandler,
138
- flushPendingHide
139
- } = (0, import_useKeyboardControllerSheet.useKeyboardControllerSheet)({
140
- enabled: !import_gui_constants.isWeb && !!moveOnKeyboardChange
141
- }),
142
- [isDragging, setIsDragging_] = import_react.default.useState(!1),
143
- isDraggingRef = import_react.default.useRef(!1),
144
- setIsDragging = import_react.default.useCallback(function (val) {
145
- isDraggingRef.current = val, pauseKeyboardHandler.current = val, setIsDragging_(val), val || flushPendingHide();
146
- }, [pauseKeyboardHandler, flushPendingHide]),
147
- activePositionsRef = import_react.default.useRef(positions),
148
- activePositions = import_react.default.useMemo(function () {
149
- if (isDragging || isDraggingRef.current) return activePositionsRef.current;
150
- var result;
151
- if (!isKeyboardVisible || keyboardHeight <= 0) result = positions;else {
152
- var safeAreaTop = import_gui_constants.isWeb ? 0 : getSafeAreaTopInset();
153
- result = positions.map(function (p) {
154
- return screenSize && p >= screenSize ? p : Math.max(safeAreaTop, p - keyboardHeight);
155
- });
156
- }
157
- return activePositionsRef.current = result, result;
158
- }, [positions, isKeyboardVisible, keyboardHeight, screenSize, isDragging]),
159
- {
160
- useAnimatedNumber,
161
- useAnimatedNumberStyle,
162
- useAnimatedNumberReaction
163
- } = animationDriver,
164
- _animationDriver_View,
165
- AnimatedView = (_animationDriver_View = animationDriver.View) !== null && _animationDriver_View !== void 0 ? _animationDriver_View : import_gui_core.View;
166
- (0, import_gui_constants.useIsomorphicLayoutEffect)(function () {
167
- if (sheetInsideSheet && open) return sheetInsideSheet(!0), function () {
168
- sheetInsideSheet(!1);
169
- };
170
- }, [sheetInsideSheet, open]);
171
- var nextParentContext = import_react.default.useMemo(function () {
172
- return {
173
- zIndex
174
- };
175
- }, [zIndex]),
176
- isMounted = (0, import_gui_core.useDidFinishSSR)(),
177
- startPosition = isMounted && screenSize ? screenSize : hiddenSize,
178
- animatedNumber = useAnimatedNumber(startPosition),
179
- at = import_react.default.useRef(startPosition),
180
- hasntMeasured = at.current === hiddenSize,
181
- [disableAnimation, setDisableAnimation] = (0, import_react.useState)(hasntMeasured),
182
- skipAdaptAnimation = import_react.default.useRef(!1);
183
- controller?.skipNextAnimation && (skipAdaptAnimation.current = !0);
184
- var hasScrollView = import_react.default.useRef(!1),
185
- opacityFallbackTimer = import_react.default.useRef(null);
186
- useAnimatedNumberReaction({
187
- value: animatedNumber,
188
- hostRef: sheetRef
189
- }, import_react.default.useCallback(function (value) {
190
- at.current = value, scrollBridge.paneY = value;
191
- var minY = activePositions[0],
192
- wasAtTop = scrollBridge.isAtTop,
193
- nowAtTop = value <= minY + 5;
194
- if (wasAtTop !== nowAtTop) if (scrollBridge.isAtTop = nowAtTop, nowAtTop) {
67
+ var relativeDimensionTo = import_constants.isWeb ? "window" : "screen";
68
+ var SheetImplementationCustom = /* @__PURE__ */import_react.default.forwardRef(function SheetImplementationCustom2(props, forwardedRef) {
69
+ var parentSheet = import_react.default.useContext(import_contexts.ParentSheetContext);
70
+ var {
71
+ transition,
72
+ transitionConfig: transitionConfigProp,
73
+ modal = false,
74
+ zIndex = parentSheet.zIndex + 1,
75
+ moveOnKeyboardChange = false,
76
+ unmountChildrenWhenHidden = false,
77
+ portalProps,
78
+ containerComponent: ContainerComponent = import_react.default.Fragment,
79
+ onAnimationComplete
80
+ } = props;
81
+ var state = (0, import_useSheetOpenState.useSheetOpenState)(props);
82
+ var [overlayComponent, setOverlayComponent] = import_react.default.useState(null);
83
+ var providerProps = (0, import_useSheetProviderProps.useSheetProviderProps)(props, state, {
84
+ onOverlayComponent: setOverlayComponent
85
+ });
86
+ var {
87
+ frameSize,
88
+ setFrameSize,
89
+ snapPoints,
90
+ snapPointsMode,
91
+ hasFit,
92
+ position,
93
+ setPosition,
94
+ scrollBridge,
95
+ screenSize,
96
+ setMaxContentSize,
97
+ maxSnapPoint
98
+ } = providerProps;
99
+ var {
100
+ open,
101
+ controller,
102
+ isHidden
103
+ } = state;
104
+ var openRef = import_react.default.useRef(open);
105
+ openRef.current = open;
106
+ var sheetRef = import_react.default.useRef(void 0);
107
+ var ref = (0, import_compose_refs.useComposedRefs)(forwardedRef, sheetRef, providerProps.contentRef);
108
+ var {
109
+ animationDriver
110
+ } = (0, import_core.useConfiguration)();
111
+ if (!animationDriver) throw new Error(`Sheet requires an animation driver to be set`);
112
+ var transitionConfig = function () {
113
+ var _animationDriver_animations;
114
+ if (transitionConfigProp) return transitionConfigProp;
115
+ var [animationProp, animationPropConfig] = !transition ? [] : Array.isArray(transition) ? transition : [transition];
116
+ if (animationProp && ((_animationDriver_animations = animationDriver.animations) === null || _animationDriver_animations === void 0 ? void 0 : _animationDriver_animations[animationProp])) return {
117
+ ...animationDriver.animations[animationProp],
118
+ ...animationPropConfig
119
+ };
120
+ return null;
121
+ }();
122
+ var [isShowingInnerSheet, setIsShowingInnerSheet] = import_react.default.useState(false);
123
+ var shouldHideParentSheet = !import_constants.isWeb && modal && isShowingInnerSheet && (0, import_portal.needsPortalRepropagation)();
124
+ var sheetInsideSheet = import_react.default.useContext(import_contexts.SheetInsideSheetContext);
125
+ var onInnerSheet = import_react.default.useCallback(function (hasChild) {
126
+ setIsShowingInnerSheet(hasChild);
127
+ }, []);
128
+ var stableFrameSize = import_react.default.useRef(frameSize);
129
+ import_react.default.useEffect(function () {
130
+ if (open && frameSize) stableFrameSize.current = frameSize;
131
+ }, [open, frameSize]);
132
+ var effectiveFrameSize = open ? frameSize : stableFrameSize.current || frameSize;
133
+ var positions = import_react.default.useMemo(function () {
134
+ return snapPoints.map(function (point) {
135
+ return getYPositions(snapPointsMode, point, screenSize, effectiveFrameSize);
136
+ });
137
+ }, [screenSize, effectiveFrameSize, snapPoints, snapPointsMode]);
138
+ var {
139
+ keyboardHeight,
140
+ isKeyboardVisible,
141
+ dismissKeyboard,
142
+ pauseKeyboardHandler,
143
+ flushPendingHide
144
+ } = (0, import_useKeyboardControllerSheet.useKeyboardControllerSheet)({
145
+ enabled: !import_constants.isWeb && Boolean(moveOnKeyboardChange)
146
+ });
147
+ var [isDragging, setIsDragging_] = import_react.default.useState(false);
148
+ var isDraggingRef = import_react.default.useRef(false);
149
+ var setIsDragging = import_react.default.useCallback(function (val) {
150
+ isDraggingRef.current = val;
151
+ pauseKeyboardHandler.current = val;
152
+ setIsDragging_(val);
153
+ if (!val) flushPendingHide();
154
+ }, [pauseKeyboardHandler, flushPendingHide]);
155
+ var activePositionsRef = import_react.default.useRef(positions);
156
+ var activePositions = import_react.default.useMemo(function () {
157
+ if (isDragging || isDraggingRef.current) return activePositionsRef.current;
158
+ var result;
159
+ if (!isKeyboardVisible || keyboardHeight <= 0) result = positions;else {
160
+ var safeAreaTop = import_constants.isWeb ? 0 : getSafeAreaTopInset();
161
+ result = positions.map(function (p) {
162
+ if (screenSize && p >= screenSize) return p;
163
+ return Math.max(safeAreaTop, p - keyboardHeight);
164
+ });
165
+ }
166
+ activePositionsRef.current = result;
167
+ return result;
168
+ }, [positions, isKeyboardVisible, keyboardHeight, screenSize, isDragging]);
169
+ var {
170
+ useAnimatedNumber,
171
+ useAnimatedNumberStyle,
172
+ useAnimatedNumberReaction
173
+ } = animationDriver;
174
+ var _animationDriver_View;
175
+ var AnimatedView = (_animationDriver_View = animationDriver.View) !== null && _animationDriver_View !== void 0 ? _animationDriver_View : import_core.View;
176
+ (0, import_constants.useIsomorphicLayoutEffect)(function () {
177
+ if (!(sheetInsideSheet && open)) return;
178
+ sheetInsideSheet(true);
179
+ return function () {
180
+ sheetInsideSheet(false);
181
+ };
182
+ }, [sheetInsideSheet, open]);
183
+ var nextParentContext = import_react.default.useMemo(function () {
184
+ return {
185
+ zIndex
186
+ };
187
+ }, [zIndex]);
188
+ var startPosition = (0, import_core.useDidFinishSSR)() && screenSize ? screenSize : hiddenSize;
189
+ var animatedNumber = useAnimatedNumber(startPosition);
190
+ var at = import_react.default.useRef(startPosition);
191
+ var hasntMeasured = at.current === hiddenSize;
192
+ var [disableAnimation, setDisableAnimation] = (0, import_react.useState)(hasntMeasured);
193
+ var skipAdaptAnimation = import_react.default.useRef(false);
194
+ if (controller === null || controller === void 0 ? void 0 : controller.skipNextAnimation) skipAdaptAnimation.current = true;
195
+ var hasScrollView = import_react.default.useRef(false);
196
+ var opacityFallbackTimer = import_react.default.useRef(null);
197
+ useAnimatedNumberReaction({
198
+ value: animatedNumber,
199
+ hostRef: sheetRef
200
+ }, import_react.default.useCallback(function (value) {
201
+ at.current = value;
202
+ scrollBridge.paneY = value;
203
+ var minY = activePositions[0];
204
+ var wasAtTop = scrollBridge.isAtTop;
205
+ var nowAtTop = value <= minY + 5;
206
+ if (wasAtTop !== nowAtTop) {
207
+ scrollBridge.isAtTop = nowAtTop;
208
+ if (nowAtTop) {
195
209
  var _scrollBridge_setScrollEnabled;
196
210
  if (scrollBridge.y > 0) {
197
211
  var _scrollBridge_forceScrollTo;
198
- (_scrollBridge_forceScrollTo = scrollBridge.forceScrollTo) === null || _scrollBridge_forceScrollTo === void 0 || _scrollBridge_forceScrollTo.call(scrollBridge, 0), scrollBridge.y = 0;
212
+ (_scrollBridge_forceScrollTo = scrollBridge.forceScrollTo) === null || _scrollBridge_forceScrollTo === void 0 || _scrollBridge_forceScrollTo.call(scrollBridge, 0);
213
+ scrollBridge.y = 0;
199
214
  }
200
- scrollBridge.scrollLockY = void 0, (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 || _scrollBridge_setScrollEnabled.call(scrollBridge, !0);
215
+ scrollBridge.scrollLockY = void 0;
216
+ (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 || _scrollBridge_setScrollEnabled.call(scrollBridge, true);
201
217
  } else {
202
218
  var _scrollBridge_setScrollEnabled1;
203
- scrollBridge.scrollLockY = 0, (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 || _scrollBridge_setScrollEnabled1.call(scrollBridge, !1);
219
+ scrollBridge.scrollLockY = 0;
220
+ (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 || _scrollBridge_setScrollEnabled1.call(scrollBridge, false);
204
221
  }
205
- }, [animationDriver, activePositions]));
206
- function stopSpring() {
207
- animatedNumber.stop(), scrollBridge.onFinishAnimate && (scrollBridge.onFinishAnimate(), scrollBridge.onFinishAnimate = void 0);
208
222
  }
209
- var animateTo = (0, import_gui_core.useEvent)(function (position2, animationOverride) {
210
- if (frameSize !== 0) {
211
- var toValue = isHidden || position2 === -1 ? screenSize : activePositions[position2];
212
- if (at.current !== toValue) {
213
- at.current = toValue, stopSpring();
214
- var isOpenAnimation = position2 !== -1 && !isHidden;
215
- opacityFallbackTimer.current && (clearTimeout(opacityFallbackTimer.current), opacityFallbackTimer.current = null);
216
- var animationCompleteCallback = function () {
217
- opacityFallbackTimer.current && (clearTimeout(opacityFallbackTimer.current), opacityFallbackTimer.current = null), !isOpenAnimation && !open && setOpacity(0), onAnimationComplete?.({
218
- open: isOpenAnimation
219
- });
220
- };
221
- if (isOpenAnimation || (opacityFallbackTimer.current = setTimeout(function () {
222
- opacityFallbackTimer.current = null, openRef.current || setOpacity(0);
223
- }, 1e3)), skipAdaptAnimation.current) {
224
- skipAdaptAnimation.current = !1, animatedNumber.setValue(toValue, {
225
- type: "timing",
226
- duration: 0
227
- }, animationCompleteCallback);
228
- return;
229
- }
230
- animatedNumber.setValue(toValue, animationOverride || {
231
- type: "spring",
232
- ...transitionConfig
233
- }, animationCompleteCallback);
234
- }
235
- }
236
- });
237
- (0, import_gui_constants.useIsomorphicLayoutEffect)(function () {
238
- if (hasntMeasured && screenSize && frameSize) {
239
- at.current = screenSize, animatedNumber.setValue(screenSize, {
240
- type: "timing",
241
- duration: 0
242
- }, function () {
243
- setTimeout(function () {
244
- setDisableAnimation(!1);
245
- }, 10);
246
- });
247
- return;
248
- }
249
- if (!disableAnimation && !(!frameSize || !screenSize || isHidden || hasntMeasured && !open) && (animateTo(position), position === -1 && (scrollBridge.scrollLock = !1, scrollBridge.scrollStartY = -1), open && position >= 0)) {
250
- var isTopPosition = position === 0;
251
- if (scrollBridge.isAtTop = isTopPosition, isTopPosition) {
252
- var _scrollBridge_setScrollEnabled;
253
- scrollBridge.scrollLockY = void 0, (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 || _scrollBridge_setScrollEnabled.call(scrollBridge, !0);
254
- } else {
255
- var _scrollBridge_setScrollEnabled1;
256
- scrollBridge.scrollLockY = 0, (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 || _scrollBridge_setScrollEnabled1.call(scrollBridge, !1);
257
- }
223
+ }, [animationDriver, activePositions]));
224
+ function stopSpring() {
225
+ animatedNumber.stop();
226
+ if (scrollBridge.onFinishAnimate) {
227
+ scrollBridge.onFinishAnimate();
228
+ scrollBridge.onFinishAnimate = void 0;
229
+ }
230
+ }
231
+ var animateTo = (0, import_core.useEvent)(function (position2, animationOverride) {
232
+ if (frameSize === 0) return;
233
+ var toValue = isHidden || position2 === -1 ? screenSize : activePositions[position2];
234
+ if (at.current === toValue) return;
235
+ at.current = toValue;
236
+ stopSpring();
237
+ var isOpenAnimation = position2 !== -1 && !isHidden;
238
+ if (opacityFallbackTimer.current) {
239
+ clearTimeout(opacityFallbackTimer.current);
240
+ opacityFallbackTimer.current = null;
241
+ }
242
+ var animationCompleteCallback = function () {
243
+ var _controller_onAnimationComplete;
244
+ if (opacityFallbackTimer.current) {
245
+ clearTimeout(opacityFallbackTimer.current);
246
+ opacityFallbackTimer.current = null;
258
247
  }
259
- }, [hasntMeasured, disableAnimation, isHidden, frameSize, screenSize, open, position]);
260
- var _props_disableDrag,
261
- disableDrag = (_props_disableDrag = props.disableDrag) !== null && _props_disableDrag !== void 0 ? _props_disableDrag : controller?.disableDrag,
262
- themeName = (0, import_gui_core.useThemeName)(),
263
- [blockPan, setBlockPan] = import_react.default.useState(!1),
264
- panResponder = import_react.default.useMemo(function () {
265
- if (disableDrag || !frameSize || isShowingInnerSheet) return;
266
- var minY = positions[0];
267
- scrollBridge.paneMinY = minY;
268
- var startY = at.current;
269
- function setPanning(val) {
270
- setIsDragging(val);
271
- }
272
- var release = function (param) {
273
- var {
274
- vy
275
- } = param;
276
- if (scrollBridge.setParentDragging(!1), !scrollBridge.scrollLock) {
277
- isExternalDrag = !1, previouslyScrolling = !1, setPanning(!1);
278
- for (var currentPos = at.current, end = currentPos + frameSize * vy * 0.2, closestPoint = 0, dist = Number.POSITIVE_INFINITY, i = 0; i < positions.length; i++) {
279
- var position2 = positions[i],
280
- curDist = end > position2 ? end - position2 : position2 - end;
281
- curDist < dist && (dist = curDist, closestPoint = i);
282
- }
283
- setPosition(closestPoint), animateTo(closestPoint);
284
- }
285
- },
286
- finish = function (_e, state2) {
287
- release({
288
- vy: state2.vy,
289
- dragAt: state2.dy
290
- });
291
- },
292
- previouslyScrolling = !1,
293
- onMoveShouldSet = function (e, param) {
294
- var {
295
- dy
296
- } = param;
297
- function getShouldSet() {
298
- if (e.target === providerProps.handleRef.current) return !0;
299
- if (scrollBridge.hasScrollableContent === !0) {
300
- if (scrollBridge.scrollLock) return !1;
301
- var isScrolled = scrollBridge.y !== 0,
302
- isDraggingUp = dy < 0,
303
- isNearTop = scrollBridge.paneY - 5 <= scrollBridge.paneMinY;
304
- if (isScrolled) return previouslyScrolling = !0, !1;
305
- if (isNearTop && hasScrollView.current && isDraggingUp) return !1;
306
- }
307
- return Math.abs(dy) > 10;
308
- }
309
- var granted = getShouldSet();
310
- return granted && scrollBridge.setParentDragging(!0), granted;
311
- },
312
- grant = function () {
313
- setPanning(!0), stopSpring(), startY = at.current;
314
- },
315
- isExternalDrag = !1;
316
- return scrollBridge.drag = function (dy) {
317
- isExternalDrag || (isExternalDrag = !0, grant());
318
- var to = dy + startY;
319
- animatedNumber.setValue((0, import_helpers.resisted)(to, minY), {
320
- type: "direct"
321
- });
322
- }, scrollBridge.release = release, scrollBridge.snapToPosition = function (positionIndex) {
323
- isExternalDrag = !1, previouslyScrolling = !1, setPanning(!1), setPosition(positionIndex), animateTo(positionIndex);
324
- }, import_react_native.PanResponder.create({
325
- onMoveShouldSetPanResponder: onMoveShouldSet,
326
- onPanResponderGrant: grant,
327
- onPanResponderMove: function (_e, param) {
328
- var {
329
- dy
330
- } = param,
331
- toFull = dy + startY,
332
- to = (0, import_helpers.resisted)(toFull, minY),
333
- isAtTop = to <= minY;
334
- isAtTop ? scrollBridge.setParentDragging(!1) : scrollBridge.setParentDragging(!0), animatedNumber.setValue(to, {
335
- type: "direct"
336
- });
337
- },
338
- onPanResponderEnd: finish,
339
- onPanResponderTerminate: finish,
340
- onPanResponderRelease: finish
341
- });
342
- }, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]);
343
- import_react.default.useEffect(function () {
344
- isDragging || isHidden || !open || disableAnimation || !frameSize || !screenSize || animateTo(position, {
248
+ if (!isOpenAnimation && !openRef.current) setOpacity(0);
249
+ onAnimationComplete === null || onAnimationComplete === void 0 || onAnimationComplete({
250
+ open: isOpenAnimation
251
+ });
252
+ controller === null || controller === void 0 || (_controller_onAnimationComplete = controller.onAnimationComplete) == null || _controller_onAnimationComplete.call(controller, {
253
+ open: isOpenAnimation
254
+ });
255
+ };
256
+ if (!isOpenAnimation) opacityFallbackTimer.current = setTimeout(function () {
257
+ opacityFallbackTimer.current = null;
258
+ if (!openRef.current) setOpacity(0);
259
+ }, 1e3);
260
+ if (skipAdaptAnimation.current) {
261
+ skipAdaptAnimation.current = false;
262
+ animatedNumber.setValue(toValue, {
345
263
  type: "timing",
346
- duration: 250
264
+ duration: 0
265
+ }, animationCompleteCallback);
266
+ return;
267
+ }
268
+ animatedNumber.setValue(toValue, animationOverride || {
269
+ type: "spring",
270
+ ...transitionConfig
271
+ }, animationCompleteCallback);
272
+ });
273
+ (0, import_constants.useIsomorphicLayoutEffect)(function () {
274
+ if (hasntMeasured && screenSize && frameSize) {
275
+ at.current = screenSize;
276
+ animatedNumber.setValue(screenSize, {
277
+ type: "timing",
278
+ duration: 0
279
+ }, function () {
280
+ setTimeout(function () {
281
+ setDisableAnimation(false);
282
+ }, 10);
347
283
  });
348
- }, [isKeyboardVisible, keyboardHeight]);
349
- var wasDragging = import_react.default.useRef(!1);
350
- import_react.default.useEffect(function () {
351
- if (isDragging) {
352
- wasDragging.current = !0;
353
- return;
284
+ return;
285
+ }
286
+ if (disableAnimation) return;
287
+ if (!frameSize || !screenSize || isHidden || hasntMeasured && !open) return;
288
+ animateTo(position);
289
+ if (position === -1) {
290
+ scrollBridge.scrollLock = false;
291
+ scrollBridge.scrollStartY = -1;
292
+ }
293
+ if (open && position >= 0) {
294
+ var isTopPosition = position === 0;
295
+ scrollBridge.isAtTop = isTopPosition;
296
+ if (isTopPosition) {
297
+ var _scrollBridge_setScrollEnabled;
298
+ scrollBridge.scrollLockY = void 0;
299
+ (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 || _scrollBridge_setScrollEnabled.call(scrollBridge, true);
300
+ } else {
301
+ var _scrollBridge_setScrollEnabled1;
302
+ scrollBridge.scrollLockY = 0;
303
+ (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 || _scrollBridge_setScrollEnabled1.call(scrollBridge, false);
354
304
  }
355
- wasDragging.current && (wasDragging.current = !1, !(!frameSize || !screenSize || isHidden || !open) && animateTo(position));
356
- }, [isDragging]), import_react.default.useEffect(function () {
357
- !open && isKeyboardVisible && dismissKeyboard();
358
- }, [open]);
359
- var {
360
- panGesture,
361
- panGestureRef,
362
- gestureHandlerEnabled
363
- } = (0, import_useGestureHandlerPan.useGestureHandlerPan)({
364
- positions: activePositions,
365
- frameSize,
366
- setPosition,
367
- animateTo,
368
- stopSpring,
369
- scrollBridge,
370
- setIsDragging,
371
- getCurrentPosition: function () {
372
- return at.current;
373
- },
374
- resisted: import_helpers.resisted,
375
- disableDrag,
376
- isShowingInnerSheet,
377
- setAnimatedPosition: function (val) {
378
- at.current = val, animatedNumber.setValue(val, {
379
- type: "direct"
380
- });
381
- },
382
- pauseKeyboardHandler
383
- }),
384
- handleAnimationViewLayout = (0, import_gui_core.useEvent)(function (e) {
385
- var _e_nativeEvent;
386
- if (!(!open && stableFrameSize.current !== 0)) {
387
- var layoutHeight = (_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : _e_nativeEvent.layout.height,
388
- next = modal ? Math.min(layoutHeight, import_react_native.Dimensions.get(relativeDimensionTo).height) : layoutHeight;
389
- next && setFrameSize(next);
305
+ }
306
+ }, [hasntMeasured, disableAnimation, isHidden, frameSize, screenSize, open, position]);
307
+ var _props_disableDrag;
308
+ var disableDrag = (_props_disableDrag = props.disableDrag) !== null && _props_disableDrag !== void 0 ? _props_disableDrag : controller === null || controller === void 0 ? void 0 : controller.disableDrag;
309
+ (0, import_core.useThemeName)();
310
+ var [blockPan, setBlockPan] = import_react.default.useState(false);
311
+ var panResponder = import_react.default.useMemo(function () {
312
+ if (disableDrag) return;
313
+ if (!frameSize) return;
314
+ if (isShowingInnerSheet) return;
315
+ var minY = positions[0];
316
+ scrollBridge.paneMinY = minY;
317
+ var startY = at.current;
318
+ function setPanning(val) {
319
+ setIsDragging(val);
320
+ }
321
+ var release = function (param) {
322
+ var {
323
+ vy
324
+ } = param;
325
+ scrollBridge.setParentDragging(false);
326
+ if (scrollBridge.scrollLock) return;
327
+ isExternalDrag = false;
328
+ previouslyScrolling = false;
329
+ setPanning(false);
330
+ var end = at.current + frameSize * vy * .2;
331
+ var closestPoint = 0;
332
+ var dist = Number.POSITIVE_INFINITY;
333
+ for (var i = 0; i < positions.length; i++) {
334
+ var position2 = positions[i];
335
+ var curDist = end > position2 ? end - position2 : position2 - end;
336
+ if (curDist < dist) {
337
+ dist = curDist;
338
+ closestPoint = i;
390
339
  }
391
- }),
392
- handleMaxContentViewLayout = import_react.default.useCallback(function (e) {
393
- var _e_nativeEvent,
394
- next = Math.min((_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : _e_nativeEvent.layout.height, import_react_native.Dimensions.get(relativeDimensionTo).height);
395
- next && setMaxContentSize(next);
396
- }, []),
397
- animatedStyle = useAnimatedNumberStyle(animatedNumber, function (val) {
398
- "worklet";
399
-
400
- var translateY = frameSize === 0 ? hiddenSize : val;
401
- return {
402
- transform: [{
403
- translateY
404
- }]
405
- };
406
- }),
407
- [opacity, setOpacity] = import_react.default.useState(open ? 1 : 0);
408
- open && opacity === 0 && (setOpacity(1), opacityFallbackTimer.current && (clearTimeout(opacityFallbackTimer.current), opacityFallbackTimer.current = null));
409
- var forcedContentHeight = hasFit ? void 0 : snapPointsMode === "percent" ?
410
- // Use dvh for modal (viewport-relative), % for inline (container-relative)
411
- `${maxSnapPoint}${import_gui_constants.isWeb && modal ? "dvh" : "%"}` : maxSnapPoint,
412
- setHasScrollView = import_react.default.useCallback(function (val) {
413
- hasScrollView.current = val;
414
- }, []),
415
- contents = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_gui_core.LayoutMeasurementController, {
416
- disable: !open,
417
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_contexts.ParentSheetContext.Provider, {
418
- value: nextParentContext,
419
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_SheetContext.SheetProvider, {
420
- ...providerProps,
421
- setHasScrollView,
422
- children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_GestureSheetContext.GestureSheetProvider, {
423
- isDragging,
424
- blockPan,
425
- setBlockPan,
426
- panGesture,
427
- panGestureRef,
428
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_gui_animate_presence.AnimatePresence, {
429
- custom: {
430
- open
431
- },
432
- children: shouldHideParentSheet || !open ? null : overlayComponent
433
- }), snapPointsMode !== "percent" && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.View, {
434
- style: {
435
- opacity: 0,
436
- position: "absolute",
437
- top: 0,
438
- left: 0,
439
- right: 0,
440
- bottom: 0,
441
- pointerEvents: "none"
442
- },
443
- onLayout: handleMaxContentViewLayout
444
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(AnimatedView, {
445
- ref,
446
- onLayout: handleAnimationViewLayout,
447
- // @ts-ignore for CSS driver this is necessary to attach the transition
448
- // also motion driver at least though i suspect all drivers?
449
- transition: isDragging || disableAnimation ? null : transition,
450
- // @ts-ignore
451
- disableClassName: !0,
452
- style: [{
453
- position: "absolute",
454
- zIndex,
455
- width: "100%",
456
- height: forcedContentHeight,
457
- minHeight: forcedContentHeight,
458
- opacity: shouldHideParentSheet ? 0 : opacity,
459
- ...((shouldHideParentSheet || !open) && {
460
- pointerEvents: "none"
461
- })
462
- }, animatedStyle],
463
- children: (/* wrap children with plain RN View for panResponder - tamagui views no longer handle responder events on web */
464
- gestureHandlerEnabled && panGesture ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_GestureDetectorWrapper.GestureDetectorWrapper, {
465
- gesture: panGesture,
466
- style: {
467
- flex: 1
468
- },
469
- children: props.children
470
- }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.View, {
471
- ...panResponder?.panHandlers,
472
- style: {
473
- flex: 1,
474
- width: "100%",
475
- height: "100%"
476
- },
477
- children: props.children
478
- }))
479
- })]
480
- })
481
- })
482
- })
340
+ }
341
+ setPosition(closestPoint);
342
+ animateTo(closestPoint);
343
+ };
344
+ var finish = function (_e, state2) {
345
+ release({
346
+ vy: state2.vy,
347
+ dragAt: state2.dy
483
348
  });
484
- if ((0, import_gui_portal.needsPortalRepropagation)()) {
485
- var adaptContext = (0, import_gui_adapt.useAdaptContext)();
486
- contents = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_gui_adapt.ProvideAdaptContext, {
487
- ...adaptContext,
488
- children: (/* @ts-ignore */
489
- contents)
349
+ };
350
+ var previouslyScrolling = false;
351
+ var onMoveShouldSet = function (e, param) {
352
+ var {
353
+ dy
354
+ } = param;
355
+ function getShouldSet() {
356
+ if (e.target === providerProps.handleRef.current) return true;
357
+ if (scrollBridge.hasScrollableContent === true) {
358
+ if (scrollBridge.scrollLock) return false;
359
+ var isScrolled = scrollBridge.y !== 0;
360
+ var isDraggingUp = dy < 0;
361
+ var isNearTop = scrollBridge.paneY - 5 <= scrollBridge.paneMinY;
362
+ if (isScrolled) return false;
363
+ if (isNearTop) {
364
+ if (hasScrollView.current && isDraggingUp) return false;
365
+ }
366
+ }
367
+ return Math.abs(dy) > 10;
368
+ }
369
+ var granted = getShouldSet();
370
+ if (granted) scrollBridge.setParentDragging(true);
371
+ return granted;
372
+ };
373
+ var grant = function () {
374
+ setPanning(true);
375
+ stopSpring();
376
+ startY = at.current;
377
+ };
378
+ var isExternalDrag = false;
379
+ scrollBridge.drag = function (dy) {
380
+ if (!isExternalDrag) {
381
+ isExternalDrag = true;
382
+ grant();
383
+ }
384
+ var to = dy + startY;
385
+ animatedNumber.setValue((0, import_helpers.resisted)(to, minY), {
386
+ type: "direct"
490
387
  });
388
+ };
389
+ scrollBridge.release = release;
390
+ scrollBridge.snapToPosition = function (positionIndex) {
391
+ isExternalDrag = false;
392
+ setPanning(false);
393
+ setPosition(positionIndex);
394
+ animateTo(positionIndex);
395
+ };
396
+ return import_react_native.PanResponder.create({
397
+ onMoveShouldSetPanResponder: onMoveShouldSet,
398
+ onPanResponderGrant: grant,
399
+ onPanResponderMove: function (_e, param) {
400
+ var {
401
+ dy
402
+ } = param;
403
+ var toFull = dy + startY;
404
+ var to = (0, import_helpers.resisted)(toFull, minY);
405
+ if (to <= minY) scrollBridge.setParentDragging(false);else scrollBridge.setParentDragging(true);
406
+ animatedNumber.setValue(to, {
407
+ type: "direct"
408
+ });
409
+ },
410
+ onPanResponderEnd: finish,
411
+ onPanResponderTerminate: finish,
412
+ onPanResponderRelease: finish
413
+ });
414
+ }, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]);
415
+ import_react.default.useEffect(function () {
416
+ if (isDragging || isHidden || !open || disableAnimation) return;
417
+ if (!frameSize || !screenSize) return;
418
+ animateTo(position, {
419
+ type: "timing",
420
+ duration: 250
421
+ });
422
+ }, [isKeyboardVisible, keyboardHeight]);
423
+ var wasDragging = import_react.default.useRef(false);
424
+ import_react.default.useEffect(function () {
425
+ if (isDragging) {
426
+ wasDragging.current = true;
427
+ return;
491
428
  }
492
- var shouldMountChildren = unmountChildrenWhenHidden ? !!opacity : !0;
493
- if (modal) {
494
- var modalContents = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_gui_portal.Portal, {
495
- stackZIndex: zIndex,
496
- ...portalProps,
497
- children: shouldMountChildren && /* @__PURE__ */(0, import_jsx_runtime.jsx)(ContainerComponent, {
498
- children: contents
499
- })
500
- });
501
- return import_gui_constants.isWeb ? modalContents : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_contexts.SheetInsideSheetContext.Provider, {
502
- value: onInnerSheet,
503
- children: modalContents
429
+ if (!wasDragging.current) return;
430
+ wasDragging.current = false;
431
+ if (!frameSize || !screenSize || isHidden || !open) return;
432
+ animateTo(position);
433
+ }, [isDragging]);
434
+ import_react.default.useEffect(function () {
435
+ if (!open && isKeyboardVisible) dismissKeyboard();
436
+ }, [open]);
437
+ var {
438
+ panGesture,
439
+ panGestureRef,
440
+ gestureHandlerEnabled
441
+ } = (0, import_useGestureHandlerPan.useGestureHandlerPan)({
442
+ positions: activePositions,
443
+ frameSize,
444
+ setPosition,
445
+ animateTo,
446
+ stopSpring,
447
+ scrollBridge,
448
+ setIsDragging,
449
+ getCurrentPosition: function () {
450
+ return at.current;
451
+ },
452
+ resisted: import_helpers.resisted,
453
+ disableDrag,
454
+ isShowingInnerSheet,
455
+ setAnimatedPosition: function (val) {
456
+ at.current = val;
457
+ animatedNumber.setValue(val, {
458
+ type: "direct"
504
459
  });
460
+ },
461
+ pauseKeyboardHandler
462
+ });
463
+ var handleAnimationViewLayout = (0, import_core.useEvent)(function (e) {
464
+ var _e_nativeEvent;
465
+ if (!open && stableFrameSize.current !== 0) return;
466
+ var layoutHeight = (_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : _e_nativeEvent.layout.height;
467
+ var next = modal ? Math.min(layoutHeight, import_react_native.Dimensions.get(relativeDimensionTo).height) : layoutHeight;
468
+ if (!next) return;
469
+ setFrameSize(next);
470
+ });
471
+ var handleMaxContentViewLayout = import_react.default.useCallback(function (e) {
472
+ var _e_nativeEvent;
473
+ var next = Math.min((_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : _e_nativeEvent.layout.height, import_react_native.Dimensions.get(relativeDimensionTo).height);
474
+ if (!next) return;
475
+ setMaxContentSize(next);
476
+ }, []);
477
+ var animatedStyle = useAnimatedNumberStyle(animatedNumber, import_react.default.useCallback(function (val) {
478
+ "worklet";
479
+
480
+ return {
481
+ transform: [{
482
+ translateY: frameSize === 0 ? hiddenSize : val
483
+ }]
484
+ };
485
+ }, [frameSize]));
486
+ var [opacity, setOpacity] = import_react.default.useState(open ? 1 : 0);
487
+ if (open && opacity === 0) {
488
+ setOpacity(1);
489
+ if (opacityFallbackTimer.current) {
490
+ clearTimeout(opacityFallbackTimer.current);
491
+ opacityFallbackTimer.current = null;
505
492
  }
506
- return contents;
493
+ }
494
+ var forcedContentHeight = hasFit ? void 0 : snapPointsMode === "percent" ? `${maxSnapPoint}${import_constants.isWeb ? modal ? "dvh" : "%" : "%"}` : maxSnapPoint;
495
+ var setHasScrollView = import_react.default.useCallback(function (val) {
496
+ hasScrollView.current = val;
497
+ }, []);
498
+ var contents = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_core.LayoutMeasurementController, {
499
+ disable: !open,
500
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_contexts.ParentSheetContext.Provider, {
501
+ value: nextParentContext,
502
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_SheetContext.SheetProvider, {
503
+ ...providerProps,
504
+ setHasScrollView,
505
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_GestureSheetContext.GestureSheetProvider, {
506
+ isDragging,
507
+ blockPan,
508
+ setBlockPan,
509
+ panGesture,
510
+ panGestureRef,
511
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_animate_presence.AnimatePresence, {
512
+ custom: {
513
+ open
514
+ },
515
+ children: shouldHideParentSheet || !open ? null : overlayComponent
516
+ }), snapPointsMode !== "percent" && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.View, {
517
+ style: {
518
+ opacity: 0,
519
+ position: "absolute",
520
+ top: 0,
521
+ left: 0,
522
+ right: 0,
523
+ bottom: 0,
524
+ pointerEvents: "none"
525
+ },
526
+ onLayout: handleMaxContentViewLayout
527
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(AnimatedView, {
528
+ ref,
529
+ onLayout: handleAnimationViewLayout,
530
+ transition: isDragging || disableAnimation ? null : transition,
531
+ disableClassName: true,
532
+ style: [{
533
+ position: "absolute",
534
+ zIndex,
535
+ width: "100%",
536
+ height: forcedContentHeight,
537
+ minHeight: forcedContentHeight,
538
+ opacity: !shouldHideParentSheet ? opacity : 0,
539
+ ...((shouldHideParentSheet || !open) && {
540
+ pointerEvents: "none"
541
+ })
542
+ }, animatedStyle],
543
+ children: gestureHandlerEnabled && panGesture ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_GestureDetectorWrapper.GestureDetectorWrapper, {
544
+ gesture: panGesture,
545
+ style: {
546
+ flex: 1
547
+ },
548
+ children: props.children
549
+ }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.View, {
550
+ ...(panResponder === null || panResponder === void 0 ? void 0 : panResponder.panHandlers),
551
+ style: {
552
+ flex: 1,
553
+ width: "100%",
554
+ height: "100%"
555
+ },
556
+ children: props.children
557
+ })
558
+ })]
559
+ })
560
+ })
561
+ })
507
562
  });
563
+ if ((0, import_portal.needsPortalRepropagation)()) {
564
+ var adaptContext = (0, import_adapt.useAdaptContext)();
565
+ contents = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_adapt.ProvideAdaptContext, {
566
+ ...adaptContext,
567
+ children: contents
568
+ });
569
+ }
570
+ var shouldMountChildren = unmountChildrenWhenHidden ? !!opacity : true;
571
+ if (modal) {
572
+ var modalContents = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_portal.Portal, {
573
+ stackZIndex: zIndex,
574
+ ...portalProps,
575
+ children: shouldMountChildren && /* @__PURE__ */(0, import_jsx_runtime.jsx)(ContainerComponent, {
576
+ children: contents
577
+ })
578
+ });
579
+ if (import_constants.isWeb) return modalContents;
580
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_contexts.SheetInsideSheetContext.Provider, {
581
+ value: onInnerSheet,
582
+ children: modalContents
583
+ });
584
+ }
585
+ return contents;
586
+ });
508
587
  function getYPositions(mode, point, screenSize, frameSize) {
509
588
  if (!screenSize || !frameSize) return 0;
510
589
  if (mode === "mixed") {
511
- if (typeof point == "number") return screenSize - Math.min(screenSize, Math.max(0, point));
590
+ if (typeof point === "number") return screenSize - Math.min(screenSize, Math.max(0, point));
512
591
  if (point === "fit") return screenSize - Math.min(screenSize, frameSize);
513
592
  if (point.endsWith("%")) {
514
593
  var pct = Math.min(100, Math.max(0, Number(point.slice(0, -1)))) / 100;
515
- return Number.isNaN(pct) ? (console.warn("Invalid snapPoint percentage string"), 0) : Math.round(screenSize - pct * screenSize);
594
+ if (Number.isNaN(pct)) {
595
+ console.warn("Invalid snapPoint percentage string");
596
+ return 0;
597
+ }
598
+ return Math.round(screenSize - pct * screenSize);
516
599
  }
517
- return console.warn("Invalid snapPoint unknown value"), 0;
600
+ console.warn("Invalid snapPoint unknown value");
601
+ return 0;
602
+ }
603
+ if (mode === "fit") {
604
+ if (point === 0) return screenSize;
605
+ return screenSize - Math.min(screenSize, frameSize);
518
606
  }
519
- if (mode === "fit") return point === 0 ? screenSize : screenSize - Math.min(screenSize, frameSize);
520
- if (mode === "constant" && typeof point == "number") return screenSize - Math.min(screenSize, Math.max(0, point));
607
+ if (mode === "constant" && typeof point === "number") return screenSize - Math.min(screenSize, Math.max(0, point));
521
608
  var pct1 = Math.min(100, Math.max(0, Number(point))) / 100;
522
- return Number.isNaN(pct1) ? (console.warn("Invalid snapPoint percentage"), 0) : Math.round(screenSize - pct1 * screenSize);
609
+ if (Number.isNaN(pct1)) {
610
+ console.warn("Invalid snapPoint percentage");
611
+ return 0;
612
+ }
613
+ return Math.round(screenSize - pct1 * screenSize);
523
614
  }
524
615
  //# sourceMappingURL=SheetImplementationCustom.native.js.map