@hanzogui/sheet 7.0.0 → 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 (332) hide show
  1. package/LICENSE +40 -19
  2. package/dist/cjs/GestureDetectorWrapper.cjs +54 -0
  3. package/dist/cjs/GestureDetectorWrapper.native.js +58 -0
  4. package/dist/cjs/GestureDetectorWrapper.native.js.map +1 -0
  5. package/dist/cjs/GestureSheetContext.cjs +54 -0
  6. package/dist/cjs/GestureSheetContext.native.js +58 -0
  7. package/dist/cjs/GestureSheetContext.native.js.map +1 -0
  8. package/dist/cjs/Sheet.cjs +119 -0
  9. package/dist/cjs/Sheet.native.js +122 -0
  10. package/dist/cjs/Sheet.native.js.map +1 -0
  11. package/dist/cjs/SheetContext.cjs +34 -0
  12. package/dist/cjs/SheetContext.native.js +37 -0
  13. package/dist/cjs/SheetContext.native.js.map +1 -0
  14. package/dist/cjs/SheetController.cjs +73 -0
  15. package/dist/cjs/SheetController.native.js +79 -0
  16. package/dist/cjs/SheetController.native.js.map +1 -0
  17. package/dist/cjs/SheetImplementationCustom.cjs +589 -0
  18. package/dist/cjs/SheetImplementationCustom.native.js +615 -0
  19. package/dist/cjs/SheetImplementationCustom.native.js.map +1 -0
  20. package/dist/cjs/SheetScrollView.cjs +216 -0
  21. package/dist/cjs/SheetScrollView.native.js +223 -0
  22. package/dist/cjs/SheetScrollView.native.js.map +1 -0
  23. package/dist/cjs/constants.cjs +34 -0
  24. package/dist/cjs/constants.native.js +37 -0
  25. package/dist/cjs/constants.native.js.map +1 -0
  26. package/dist/cjs/contexts.cjs +44 -0
  27. package/dist/cjs/contexts.native.js +47 -0
  28. package/dist/cjs/contexts.native.js.map +1 -0
  29. package/dist/cjs/controller.cjs +31 -0
  30. package/dist/cjs/controller.native.js +34 -0
  31. package/dist/cjs/controller.native.js.map +1 -0
  32. package/dist/cjs/createSheet.cjs +190 -0
  33. package/dist/cjs/createSheet.native.js +200 -0
  34. package/dist/cjs/createSheet.native.js.map +1 -0
  35. package/dist/cjs/gestureState.cjs +41 -0
  36. package/dist/cjs/gestureState.native.js +44 -0
  37. package/dist/cjs/gestureState.native.js.map +1 -0
  38. package/dist/cjs/helpers.cjs +35 -0
  39. package/dist/cjs/helpers.native.js +39 -0
  40. package/dist/cjs/helpers.native.js.map +1 -0
  41. package/dist/cjs/index.cjs +30 -0
  42. package/dist/cjs/index.native.js +33 -0
  43. package/dist/cjs/index.native.js.map +1 -0
  44. package/dist/cjs/nativeSheet.cjs +96 -0
  45. package/dist/cjs/nativeSheet.native.js +106 -0
  46. package/dist/cjs/nativeSheet.native.js.map +1 -0
  47. package/dist/cjs/setupGestureHandler.cjs +52 -0
  48. package/dist/cjs/setupGestureHandler.native.js +55 -0
  49. package/dist/cjs/setupGestureHandler.native.js.map +1 -0
  50. package/dist/cjs/types.cjs +18 -0
  51. package/dist/cjs/types.native.js +21 -0
  52. package/dist/cjs/types.native.js.map +1 -0
  53. package/dist/cjs/useGestureHandlerPan.cjs +206 -0
  54. package/dist/cjs/useGestureHandlerPan.native.js +213 -0
  55. package/dist/cjs/useGestureHandlerPan.native.js.map +1 -0
  56. package/dist/cjs/useKeyboardControllerSheet.cjs +40 -0
  57. package/dist/cjs/useKeyboardControllerSheet.native.js +132 -0
  58. package/dist/cjs/useKeyboardControllerSheet.native.js.map +1 -0
  59. package/dist/cjs/useSheet.cjs +29 -0
  60. package/dist/cjs/useSheet.native.js +34 -0
  61. package/dist/cjs/useSheet.native.js.map +1 -0
  62. package/dist/cjs/useSheetController.cjs +52 -0
  63. package/dist/cjs/useSheetController.native.js +55 -0
  64. package/dist/cjs/useSheetController.native.js.map +1 -0
  65. package/dist/cjs/useSheetOffscreenSize.cjs +63 -0
  66. package/dist/cjs/useSheetOffscreenSize.native.js +70 -0
  67. package/dist/cjs/useSheetOffscreenSize.native.js.map +1 -0
  68. package/dist/cjs/useSheetOpenState.cjs +52 -0
  69. package/dist/cjs/useSheetOpenState.native.js +58 -0
  70. package/dist/cjs/useSheetOpenState.native.js.map +1 -0
  71. package/dist/cjs/useSheetProviderProps.cjs +181 -0
  72. package/dist/cjs/useSheetProviderProps.native.js +196 -0
  73. package/dist/cjs/useSheetProviderProps.native.js.map +1 -0
  74. package/dist/cjs/useSheetScrollViewGestures.cjs +166 -0
  75. package/dist/cjs/useSheetScrollViewGestures.native.js +159 -0
  76. package/dist/cjs/useSheetScrollViewGestures.native.js.map +1 -0
  77. package/dist/esm/GestureDetectorWrapper.mjs +29 -0
  78. package/dist/esm/GestureDetectorWrapper.mjs.map +1 -0
  79. package/dist/esm/GestureDetectorWrapper.native.js +30 -0
  80. package/dist/esm/GestureDetectorWrapper.native.js.map +1 -0
  81. package/dist/esm/GestureSheetContext.mjs +28 -0
  82. package/dist/esm/GestureSheetContext.mjs.map +1 -0
  83. package/dist/esm/GestureSheetContext.native.js +29 -0
  84. package/dist/esm/GestureSheetContext.native.js.map +1 -0
  85. package/dist/esm/Sheet.mjs +89 -0
  86. package/dist/esm/Sheet.mjs.map +1 -0
  87. package/dist/esm/Sheet.native.js +89 -0
  88. package/dist/esm/Sheet.native.js.map +1 -0
  89. package/dist/esm/SheetContext.mjs +6 -0
  90. package/dist/esm/SheetContext.mjs.map +1 -0
  91. package/dist/esm/SheetContext.native.js +6 -0
  92. package/dist/esm/SheetContext.native.js.map +1 -0
  93. package/dist/esm/SheetController.mjs +37 -0
  94. package/dist/esm/SheetController.mjs.map +1 -0
  95. package/dist/esm/SheetController.native.js +40 -0
  96. package/dist/esm/SheetController.native.js.map +1 -0
  97. package/dist/esm/SheetImplementationCustom.mjs +552 -0
  98. package/dist/esm/SheetImplementationCustom.mjs.map +1 -0
  99. package/dist/esm/SheetImplementationCustom.native.js +572 -0
  100. package/dist/esm/SheetImplementationCustom.native.js.map +1 -0
  101. package/dist/esm/SheetScrollView.mjs +180 -0
  102. package/dist/esm/SheetScrollView.mjs.map +1 -0
  103. package/dist/esm/SheetScrollView.native.js +184 -0
  104. package/dist/esm/SheetScrollView.native.js.map +1 -0
  105. package/dist/esm/constants.mjs +6 -0
  106. package/dist/esm/constants.mjs.map +1 -0
  107. package/dist/esm/constants.native.js +6 -0
  108. package/dist/esm/constants.native.js.map +1 -0
  109. package/dist/esm/contexts.mjs +7 -0
  110. package/dist/esm/contexts.mjs.map +1 -0
  111. package/dist/esm/contexts.native.js +7 -0
  112. package/dist/esm/contexts.native.js.map +1 -0
  113. package/dist/esm/controller.mjs +4 -0
  114. package/dist/esm/controller.mjs.map +1 -0
  115. package/dist/esm/controller.native.js +4 -0
  116. package/dist/esm/controller.native.js.map +1 -0
  117. package/dist/esm/createSheet.mjs +165 -0
  118. package/dist/esm/createSheet.mjs.map +1 -0
  119. package/dist/esm/createSheet.native.js +172 -0
  120. package/dist/esm/createSheet.native.js.map +1 -0
  121. package/dist/esm/gestureState.mjs +13 -0
  122. package/dist/esm/gestureState.mjs.map +1 -0
  123. package/dist/esm/gestureState.native.js +13 -0
  124. package/dist/esm/gestureState.native.js.map +1 -0
  125. package/dist/esm/helpers.mjs +10 -0
  126. package/dist/esm/helpers.mjs.map +1 -0
  127. package/dist/esm/helpers.native.js +11 -0
  128. package/dist/esm/helpers.native.js.map +1 -0
  129. package/dist/esm/index.js +12 -0
  130. package/dist/esm/index.js.map +1 -0
  131. package/dist/esm/index.mjs +12 -0
  132. package/dist/esm/index.mjs.map +1 -0
  133. package/dist/esm/index.native.js +12 -0
  134. package/dist/esm/index.native.js.map +1 -0
  135. package/dist/esm/nativeSheet.mjs +70 -0
  136. package/dist/esm/nativeSheet.mjs.map +1 -0
  137. package/dist/esm/nativeSheet.native.js +77 -0
  138. package/dist/esm/nativeSheet.native.js.map +1 -0
  139. package/dist/esm/setupGestureHandler.mjs +26 -0
  140. package/dist/esm/setupGestureHandler.mjs.map +1 -0
  141. package/dist/esm/setupGestureHandler.native.js +26 -0
  142. package/dist/esm/setupGestureHandler.native.js.map +1 -0
  143. package/dist/esm/types.mjs +2 -0
  144. package/dist/esm/types.mjs.map +1 -0
  145. package/dist/esm/types.native.js +2 -0
  146. package/dist/esm/types.native.js.map +1 -0
  147. package/dist/esm/useGestureHandlerPan.mjs +181 -0
  148. package/dist/esm/useGestureHandlerPan.mjs.map +1 -0
  149. package/dist/esm/useGestureHandlerPan.native.js +185 -0
  150. package/dist/esm/useGestureHandlerPan.native.js.map +1 -0
  151. package/dist/esm/useKeyboardControllerSheet.mjs +15 -0
  152. package/dist/esm/useKeyboardControllerSheet.mjs.map +1 -0
  153. package/dist/esm/useKeyboardControllerSheet.native.js +104 -0
  154. package/dist/esm/useKeyboardControllerSheet.native.js.map +1 -0
  155. package/dist/esm/useSheet.mjs +4 -0
  156. package/dist/esm/useSheet.mjs.map +1 -0
  157. package/dist/esm/useSheet.native.js +6 -0
  158. package/dist/esm/useSheet.native.js.map +1 -0
  159. package/dist/esm/useSheetController.mjs +15 -0
  160. package/dist/esm/useSheetController.mjs.map +1 -0
  161. package/dist/esm/useSheetController.native.js +15 -0
  162. package/dist/esm/useSheetController.native.js.map +1 -0
  163. package/dist/esm/useSheetOffscreenSize.mjs +38 -0
  164. package/dist/esm/useSheetOffscreenSize.mjs.map +1 -0
  165. package/dist/esm/useSheetOffscreenSize.native.js +42 -0
  166. package/dist/esm/useSheetOffscreenSize.native.js.map +1 -0
  167. package/dist/esm/useSheetOpenState.mjs +27 -0
  168. package/dist/esm/useSheetOpenState.mjs.map +1 -0
  169. package/dist/esm/useSheetOpenState.native.js +30 -0
  170. package/dist/esm/useSheetOpenState.native.js.map +1 -0
  171. package/dist/esm/useSheetProviderProps.mjs +145 -0
  172. package/dist/esm/useSheetProviderProps.mjs.map +1 -0
  173. package/dist/esm/useSheetProviderProps.native.js +157 -0
  174. package/dist/esm/useSheetProviderProps.native.js.map +1 -0
  175. package/dist/esm/useSheetScrollViewGestures.mjs +141 -0
  176. package/dist/esm/useSheetScrollViewGestures.mjs.map +1 -0
  177. package/dist/esm/useSheetScrollViewGestures.native.js +131 -0
  178. package/dist/esm/useSheetScrollViewGestures.native.js.map +1 -0
  179. package/dist/jsx/GestureDetectorWrapper.mjs +29 -0
  180. package/dist/jsx/GestureDetectorWrapper.mjs.map +1 -0
  181. package/dist/jsx/GestureDetectorWrapper.native.js +58 -0
  182. package/dist/jsx/GestureDetectorWrapper.native.js.map +1 -0
  183. package/dist/jsx/GestureSheetContext.mjs +28 -0
  184. package/dist/jsx/GestureSheetContext.mjs.map +1 -0
  185. package/dist/jsx/GestureSheetContext.native.js +58 -0
  186. package/dist/jsx/GestureSheetContext.native.js.map +1 -0
  187. package/dist/jsx/Sheet.mjs +89 -0
  188. package/dist/jsx/Sheet.mjs.map +1 -0
  189. package/dist/jsx/Sheet.native.js +122 -0
  190. package/dist/jsx/Sheet.native.js.map +1 -0
  191. package/dist/jsx/SheetContext.mjs +6 -0
  192. package/dist/jsx/SheetContext.mjs.map +1 -0
  193. package/dist/jsx/SheetContext.native.js +37 -0
  194. package/dist/jsx/SheetContext.native.js.map +1 -0
  195. package/dist/jsx/SheetController.mjs +37 -0
  196. package/dist/jsx/SheetController.mjs.map +1 -0
  197. package/dist/jsx/SheetController.native.js +79 -0
  198. package/dist/jsx/SheetController.native.js.map +1 -0
  199. package/dist/jsx/SheetImplementationCustom.mjs +552 -0
  200. package/dist/jsx/SheetImplementationCustom.mjs.map +1 -0
  201. package/dist/jsx/SheetImplementationCustom.native.js +615 -0
  202. package/dist/jsx/SheetImplementationCustom.native.js.map +1 -0
  203. package/dist/jsx/SheetScrollView.mjs +180 -0
  204. package/dist/jsx/SheetScrollView.mjs.map +1 -0
  205. package/dist/jsx/SheetScrollView.native.js +223 -0
  206. package/dist/jsx/SheetScrollView.native.js.map +1 -0
  207. package/dist/jsx/constants.mjs +6 -0
  208. package/dist/jsx/constants.mjs.map +1 -0
  209. package/dist/jsx/constants.native.js +37 -0
  210. package/dist/jsx/constants.native.js.map +1 -0
  211. package/dist/jsx/contexts.mjs +7 -0
  212. package/dist/jsx/contexts.mjs.map +1 -0
  213. package/dist/jsx/contexts.native.js +47 -0
  214. package/dist/jsx/contexts.native.js.map +1 -0
  215. package/dist/jsx/controller.mjs +4 -0
  216. package/dist/jsx/controller.mjs.map +1 -0
  217. package/dist/jsx/controller.native.js +34 -0
  218. package/dist/jsx/controller.native.js.map +1 -0
  219. package/dist/jsx/createSheet.mjs +165 -0
  220. package/dist/jsx/createSheet.mjs.map +1 -0
  221. package/dist/jsx/createSheet.native.js +200 -0
  222. package/dist/jsx/createSheet.native.js.map +1 -0
  223. package/dist/jsx/gestureState.mjs +13 -0
  224. package/dist/jsx/gestureState.mjs.map +1 -0
  225. package/dist/jsx/gestureState.native.js +44 -0
  226. package/dist/jsx/gestureState.native.js.map +1 -0
  227. package/dist/jsx/helpers.mjs +10 -0
  228. package/dist/jsx/helpers.mjs.map +1 -0
  229. package/dist/jsx/helpers.native.js +39 -0
  230. package/dist/jsx/helpers.native.js.map +1 -0
  231. package/dist/jsx/index.js +12 -0
  232. package/dist/jsx/index.js.map +1 -0
  233. package/dist/jsx/index.mjs +12 -0
  234. package/dist/jsx/index.mjs.map +1 -0
  235. package/dist/jsx/index.native.js +33 -0
  236. package/dist/jsx/index.native.js.map +1 -0
  237. package/dist/jsx/nativeSheet.mjs +70 -0
  238. package/dist/jsx/nativeSheet.mjs.map +1 -0
  239. package/dist/jsx/nativeSheet.native.js +106 -0
  240. package/dist/jsx/nativeSheet.native.js.map +1 -0
  241. package/dist/jsx/setupGestureHandler.mjs +26 -0
  242. package/dist/jsx/setupGestureHandler.mjs.map +1 -0
  243. package/dist/jsx/setupGestureHandler.native.js +55 -0
  244. package/dist/jsx/setupGestureHandler.native.js.map +1 -0
  245. package/dist/jsx/types.mjs +2 -0
  246. package/dist/jsx/types.mjs.map +1 -0
  247. package/dist/jsx/types.native.js +21 -0
  248. package/dist/jsx/types.native.js.map +1 -0
  249. package/dist/jsx/useGestureHandlerPan.mjs +181 -0
  250. package/dist/jsx/useGestureHandlerPan.mjs.map +1 -0
  251. package/dist/jsx/useGestureHandlerPan.native.js +213 -0
  252. package/dist/jsx/useGestureHandlerPan.native.js.map +1 -0
  253. package/dist/jsx/useKeyboardControllerSheet.mjs +15 -0
  254. package/dist/jsx/useKeyboardControllerSheet.mjs.map +1 -0
  255. package/dist/jsx/useKeyboardControllerSheet.native.js +132 -0
  256. package/dist/jsx/useKeyboardControllerSheet.native.js.map +1 -0
  257. package/dist/jsx/useSheet.mjs +4 -0
  258. package/dist/jsx/useSheet.mjs.map +1 -0
  259. package/dist/jsx/useSheet.native.js +34 -0
  260. package/dist/jsx/useSheet.native.js.map +1 -0
  261. package/dist/jsx/useSheetController.mjs +15 -0
  262. package/dist/jsx/useSheetController.mjs.map +1 -0
  263. package/dist/jsx/useSheetController.native.js +55 -0
  264. package/dist/jsx/useSheetController.native.js.map +1 -0
  265. package/dist/jsx/useSheetOffscreenSize.mjs +38 -0
  266. package/dist/jsx/useSheetOffscreenSize.mjs.map +1 -0
  267. package/dist/jsx/useSheetOffscreenSize.native.js +70 -0
  268. package/dist/jsx/useSheetOffscreenSize.native.js.map +1 -0
  269. package/dist/jsx/useSheetOpenState.mjs +27 -0
  270. package/dist/jsx/useSheetOpenState.mjs.map +1 -0
  271. package/dist/jsx/useSheetOpenState.native.js +58 -0
  272. package/dist/jsx/useSheetOpenState.native.js.map +1 -0
  273. package/dist/jsx/useSheetProviderProps.mjs +145 -0
  274. package/dist/jsx/useSheetProviderProps.mjs.map +1 -0
  275. package/dist/jsx/useSheetProviderProps.native.js +196 -0
  276. package/dist/jsx/useSheetProviderProps.native.js.map +1 -0
  277. package/dist/jsx/useSheetScrollViewGestures.mjs +141 -0
  278. package/dist/jsx/useSheetScrollViewGestures.mjs.map +1 -0
  279. package/dist/jsx/useSheetScrollViewGestures.native.js +159 -0
  280. package/dist/jsx/useSheetScrollViewGestures.native.js.map +1 -0
  281. package/package.json +36 -26
  282. package/src/Sheet.tsx +3 -3
  283. package/src/SheetImplementationCustom.tsx +5 -5
  284. package/src/createSheet.tsx +9 -9
  285. package/src/setupGestureHandler.ts +2 -2
  286. package/src/useSheetProviderProps.tsx +4 -4
  287. package/types/GestureDetectorWrapper.d.ts +1 -1
  288. package/types/GestureDetectorWrapper.d.ts.map +1 -0
  289. package/types/GestureSheetContext.d.ts +1 -1
  290. package/types/GestureSheetContext.d.ts.map +1 -0
  291. package/types/Sheet.d.ts +15 -15
  292. package/types/Sheet.d.ts.map +1 -0
  293. package/types/SheetContext.d.ts +4 -4
  294. package/types/SheetContext.d.ts.map +1 -0
  295. package/types/SheetController.d.ts +2 -1
  296. package/types/SheetController.d.ts.map +1 -0
  297. package/types/SheetImplementationCustom.d.ts.map +1 -0
  298. package/types/SheetScrollView.d.ts +1 -1
  299. package/types/SheetScrollView.d.ts.map +1 -0
  300. package/types/constants.d.ts.map +1 -0
  301. package/types/contexts.d.ts.map +1 -0
  302. package/types/controller.d.ts.map +1 -0
  303. package/types/createSheet.d.ts +11 -11
  304. package/types/createSheet.d.ts.map +1 -0
  305. package/types/gestureState.d.ts.map +1 -0
  306. package/types/helpers.d.ts.map +1 -0
  307. package/types/index.d.ts.map +1 -0
  308. package/types/nativeSheet.d.ts.map +1 -0
  309. package/types/setupGestureHandler.d.ts.map +1 -0
  310. package/types/types.d.ts.map +1 -0
  311. package/types/useGestureHandlerPan.d.ts.map +1 -0
  312. package/types/useKeyboardControllerSheet.d.ts.map +1 -0
  313. package/types/useKeyboardControllerSheet.native.d.ts.map +1 -0
  314. package/types/useSheet.d.ts.map +1 -0
  315. package/types/useSheetController.d.ts.map +1 -0
  316. package/types/useSheetOffscreenSize.d.ts.map +1 -0
  317. package/types/useSheetOpenState.d.ts.map +1 -0
  318. package/types/useSheetProviderProps.d.ts +3 -3
  319. package/types/useSheetProviderProps.d.ts.map +1 -0
  320. package/types/useSheetScrollViewGestures.d.ts.map +1 -0
  321. package/types/useSheetScrollViewGestures.native.d.ts.map +1 -0
  322. package/controller/index.cjs +0 -2
  323. package/controller/index.d.ts +0 -5
  324. package/controller/index.js +0 -2
  325. package/controller/index.native.cjs +0 -2
  326. package/controller/index.native.js +0 -2
  327. package/next.md +0 -78
  328. package/setup-gesture-handler/index.cjs +0 -2
  329. package/setup-gesture-handler/index.js +0 -2
  330. package/setup-gesture-handler/index.native.cjs +0 -2
  331. package/setup-gesture-handler/index.native.js +0 -2
  332. package/tsconfig.json +0 -56
@@ -0,0 +1,27 @@
1
+ import { useControllableState } from "@hanzogui/use-controllable-state";
2
+ import { useSheetController } from "./useSheetController.mjs";
3
+ const useSheetOpenState = props => {
4
+ const {
5
+ isHidden,
6
+ controller
7
+ } = useSheetController();
8
+ const onOpenChangeInternal = val => {
9
+ controller?.onOpenChange?.(val);
10
+ props.onOpenChange?.(val);
11
+ };
12
+ const propVal = props.preferAdaptParentOpenState ? controller?.open ?? props.open : props.open ?? controller?.open;
13
+ const [open, setOpen] = useControllableState({
14
+ prop: propVal,
15
+ defaultProp: props.defaultOpen ?? false,
16
+ onChange: onOpenChangeInternal,
17
+ strategy: "most-recent-wins"
18
+ });
19
+ return {
20
+ open,
21
+ setOpen,
22
+ isHidden,
23
+ controller
24
+ };
25
+ };
26
+ export { useSheetOpenState };
27
+ //# sourceMappingURL=useSheetOpenState.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useControllableState","useSheetController","useSheetOpenState","props","isHidden","controller","onOpenChangeInternal","val","onOpenChange","propVal","preferAdaptParentOpenState","open","setOpen","prop","defaultProp","defaultOpen","onChange","strategy"],"sources":["../../src/useSheetOpenState.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,oBAAA,QAA4B;AAGrC,SAASC,kBAAA,QAA0B;AAE5B,MAAMC,iBAAA,GAAqBC,KAAA,IAAsB;EACtD,MAAM;IAAEC,QAAA;IAAUC;EAAW,IAAIJ,kBAAA,CAAmB;EAEpD,MAAMK,oBAAA,GAAwBC,GAAA,IAAiB;IAC7CF,UAAA,EAAYG,YAAA,GAAeD,GAAG;IAC9BJ,KAAA,CAAMK,YAAA,GAAeD,GAAG;EAC1B;EAEA,MAAME,OAAA,GAAUN,KAAA,CAAMO,0BAAA,GACjBL,UAAA,EAAYM,IAAA,IAAQR,KAAA,CAAMQ,IAAA,GAC1BR,KAAA,CAAMQ,IAAA,IAAQN,UAAA,EAAYM,IAAA;EAE/B,MAAM,CAACA,IAAA,EAAMC,OAAO,IAAIZ,oBAAA,CAAqB;IAC3Ca,IAAA,EAAMJ,OAAA;IACNK,WAAA,EAAaX,KAAA,CAAMY,WAAA,IAAe;IAClCC,QAAA,EAAUV,oBAAA;IACVW,QAAA,EAAU;EACZ,CAAC;EAED,OAAO;IACLN,IAAA;IACAC,OAAA;IACAR,QAAA;IACAC;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var useSheetOpenState_exports = {};
26
+ __export(useSheetOpenState_exports, {
27
+ useSheetOpenState: () => useSheetOpenState
28
+ });
29
+ module.exports = __toCommonJS(useSheetOpenState_exports);
30
+ var import_use_controllable_state = require("@hanzogui/use-controllable-state");
31
+ var import_useSheetController = require("./useSheetController.native.js");
32
+ var useSheetOpenState = function (props) {
33
+ var {
34
+ isHidden,
35
+ controller
36
+ } = (0, import_useSheetController.useSheetController)();
37
+ var onOpenChangeInternal = function (val) {
38
+ var _controller_onOpenChange, _props_onOpenChange;
39
+ controller === null || controller === void 0 ? void 0 : (_controller_onOpenChange = controller.onOpenChange) === null || _controller_onOpenChange === void 0 ? void 0 : _controller_onOpenChange.call(controller, val);
40
+ (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, val);
41
+ };
42
+ var _controller_open, _props_open;
43
+ var propVal = props.preferAdaptParentOpenState ? (_controller_open = controller === null || controller === void 0 ? void 0 : controller.open) !== null && _controller_open !== void 0 ? _controller_open : props.open : (_props_open = props.open) !== null && _props_open !== void 0 ? _props_open : controller === null || controller === void 0 ? void 0 : controller.open;
44
+ var _props_defaultOpen;
45
+ var [open, setOpen] = (0, import_use_controllable_state.useControllableState)({
46
+ prop: propVal,
47
+ defaultProp: (_props_defaultOpen = props.defaultOpen) !== null && _props_defaultOpen !== void 0 ? _props_defaultOpen : false,
48
+ onChange: onOpenChangeInternal,
49
+ strategy: "most-recent-wins"
50
+ });
51
+ return {
52
+ open,
53
+ setOpen,
54
+ isHidden,
55
+ controller
56
+ };
57
+ };
58
+ //# sourceMappingURL=useSheetOpenState.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","useSheetOpenState_exports","useSheetOpenState"],"sources":["../../src/useSheetOpenState.tsx"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AAGT,IAAAA,SAAS,GAAAC,MAAA,CAAAC,cAA0B;AAE5B,IAAAC,gBAAM,GAAAF,MAAqB,CAAAG,wBAAsB;AACtD,IAAAC,iBAAkB,GAAAJ,MAAA,CAAWK,mBAAI;AAEjC,IAAAC,YAAM,GAAAN,MAAA,CAAAO,SAAwB,CAAAC,cAAiB;AAC7C,IAAAC,QAAA,GAAAA,CAAYC,MAAA,EAAAC,GAAA,KAAe;EAC3B,SAAMC,IAAA,IAAAD,GAAA,EACRZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAEA;AAIA,IAAAC,WAAa,GAAAA,CAAAC,EAAA,EAAOC,IAAI,EAAAC,MAAA,EAAAC,IAAA;EAAqB,IAC3CF,IAAM,WAAAA,IAAA,wBAAAA,IAAA;IACN,SAAAG,GAAA,IAAahB,iBAAM,CAAea,IAAA,GAClC,KAAAX,YAAU,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACVnB,SAAU,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EACZ;EAEA,OAAOE,EAAA;AAAA;AACL,IACAM,YAAA,GAAAC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAAA,IACAE,yBAAA;AAAAhB,QACA,CAAAgB,yBAAA;EACFC,iBAAA,EAAAA,CAAA,KAAAA;AACF","ignoreList":[]}
@@ -0,0 +1,145 @@
1
+ import React from "react";
2
+ import { useConfiguration } from "@hanzogui/core";
3
+ import { useConstant } from "@hanzogui/use-constant";
4
+ import { useControllableState } from "@hanzogui/use-controllable-state";
5
+ function useSheetProviderProps(props, state, options = {}) {
6
+ const handleRef = React.useRef(null);
7
+ const contentRef = React.useRef(null);
8
+ const [frameSize, setFrameSize] = React.useState(0);
9
+ const [maxContentSize, setMaxContentSize] = React.useState(0);
10
+ const snapPointsMode = props.snapPointsMode ?? "percent";
11
+ const snapPointsProp = props.snapPoints ?? (snapPointsMode === "percent" ? [80] : snapPointsMode === "constant" ? [256] : ["fit"]);
12
+ const hasFit = snapPointsProp[0] === "fit";
13
+ const snapPoints = React.useMemo(() => props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp, [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]);
14
+ const [position_, setPositionImmediate] = useControllableState({
15
+ prop: props.position,
16
+ defaultProp: props.defaultPosition || (state.open ? 0 : -1),
17
+ onChange: props.onPositionChange,
18
+ strategy: "most-recent-wins"
19
+ });
20
+ const position = state.open === false ? -1 : position_;
21
+ const {
22
+ open
23
+ } = state;
24
+ const setPosition = React.useCallback(next => {
25
+ if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {
26
+ state.setOpen(false);
27
+ } else {
28
+ setPositionImmediate(next);
29
+ }
30
+ }, [props.dismissOnSnapToBottom, snapPoints.length, setPositionImmediate, state.setOpen]);
31
+ if (process.env.NODE_ENV === "development") {
32
+ if (snapPointsMode === "mixed" && snapPoints.some(p => {
33
+ if (typeof p === "string") {
34
+ if (p === "fit") {
35
+ return false;
36
+ }
37
+ if (p.endsWith("%")) {
38
+ const n = Number(p.slice(0, -1));
39
+ return n < 0 || n > 100;
40
+ }
41
+ return true;
42
+ }
43
+ return typeof p !== "number" || p < 0;
44
+ })) {
45
+ console.warn('\u26A0\uFE0F Invalid snapPoint given, snapPoints must be positive numeric values, string percentages between 0-100%, or "fit" when snapPointsMode is mixed');
46
+ }
47
+ if (snapPointsMode === "mixed" && snapPoints.indexOf("fit") > 0) {
48
+ console.warn('\u26A0\uFE0F Invalid snapPoint given, "fit" must be the first/largest snap point when snapPointsMode is mixed');
49
+ }
50
+ if (snapPointsMode === "fit" && (snapPoints.length !== (props.dismissOnSnapToBottom ? 2 : 1) || snapPoints[0] !== "fit")) {
51
+ console.warn("\u26A0\uFE0F Invalid snapPoint given, there are no snap points when snapPointsMode is fit");
52
+ }
53
+ if (snapPointsMode === "constant" && snapPoints.some(p => typeof p !== "number" || p < 0)) {
54
+ console.warn("\u26A0\uFE0F Invalid snapPoint given, snapPoints must be positive numeric values when snapPointsMode is constant");
55
+ }
56
+ if (snapPointsMode === "percent" && snapPoints.some(p => typeof p !== "number" || p < 0 || p > 100)) {
57
+ console.warn("\u26A0\uFE0F Invalid snapPoint given, snapPoints must be numeric values between 0 and 100 when snapPointsMode is percent");
58
+ }
59
+ }
60
+ if (open && props.dismissOnSnapToBottom && position === snapPoints.length - 1) {
61
+ setPositionImmediate(0);
62
+ }
63
+ const shouldSetPositionOpen = open && position < 0;
64
+ React.useEffect(() => {
65
+ if (shouldSetPositionOpen) {
66
+ setPosition(0);
67
+ }
68
+ }, [setPosition, shouldSetPositionOpen]);
69
+ const {
70
+ animationDriver
71
+ } = useConfiguration();
72
+ if (!animationDriver) {
73
+ throw new Error(process.env.NODE_ENV === "production" ? `\u274C 008` : "Must set animations in gui.config.ts");
74
+ }
75
+ const scrollBridge = useConstant(() => {
76
+ const parentDragListeners = /* @__PURE__ */new Set();
77
+ const bridge = {
78
+ hasScrollableContent: false,
79
+ enabled: false,
80
+ y: 0,
81
+ paneY: 0,
82
+ paneMinY: 0,
83
+ scrollStartY: -1,
84
+ drag: () => {},
85
+ release: () => {},
86
+ scrollLock: false,
87
+ isParentDragging: false,
88
+ onParentDragging: cb => {
89
+ parentDragListeners.add(cb);
90
+ return () => {
91
+ parentDragListeners.delete(cb);
92
+ };
93
+ },
94
+ setParentDragging: val => {
95
+ if (val !== bridge.isParentDragging) {
96
+ bridge.isParentDragging = val;
97
+ parentDragListeners.forEach(cb => cb(val));
98
+ }
99
+ }
100
+ };
101
+ return bridge;
102
+ });
103
+ let disableRemoveScroll;
104
+ if (props.disableRemoveScroll !== void 0) {
105
+ disableRemoveScroll = props.disableRemoveScroll || !open || !props.modal;
106
+ } else if (props.forceRemoveScrollEnabled !== void 0) {
107
+ if (process.env.NODE_ENV === "development") {
108
+ console.warn("[Sheet] forceRemoveScrollEnabled is deprecated. Use disableRemoveScroll instead.");
109
+ }
110
+ disableRemoveScroll = !props.forceRemoveScrollEnabled;
111
+ } else {
112
+ disableRemoveScroll = !open || !props.modal;
113
+ }
114
+ const maxSnapPoint = snapPoints[0];
115
+ const screenSize = snapPointsMode === "percent" ? frameSize / ((typeof maxSnapPoint === "number" ? maxSnapPoint : 100) / 100) : maxContentSize;
116
+ const providerProps = {
117
+ screenSize,
118
+ maxSnapPoint,
119
+ disableRemoveScroll,
120
+ scrollBridge,
121
+ modal: !!props.modal,
122
+ open: state.open,
123
+ setOpen: state.setOpen,
124
+ hidden: !!state.isHidden,
125
+ contentRef,
126
+ handleRef,
127
+ frameSize,
128
+ setFrameSize,
129
+ dismissOnOverlayPress: props.dismissOnOverlayPress ?? true,
130
+ dismissOnSnapToBottom: props.dismissOnSnapToBottom ?? false,
131
+ onOverlayComponent: options.onOverlayComponent,
132
+ scope: props.__scopeSheet,
133
+ hasFit,
134
+ position,
135
+ snapPoints,
136
+ snapPointsMode,
137
+ setMaxContentSize,
138
+ setPosition,
139
+ setPositionImmediate,
140
+ onlyShowFrame: false
141
+ };
142
+ return providerProps;
143
+ }
144
+ export { useSheetProviderProps };
145
+ //# sourceMappingURL=useSheetProviderProps.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useConfiguration","useConstant","useControllableState","useSheetProviderProps","props","state","options","handleRef","useRef","contentRef","frameSize","setFrameSize","useState","maxContentSize","setMaxContentSize","snapPointsMode","snapPointsProp","snapPoints","hasFit","useMemo","dismissOnSnapToBottom","JSON","stringify","position_","setPositionImmediate","prop","position","defaultProp","defaultPosition","open","onChange","onPositionChange","strategy","setPosition","useCallback","next","length","setOpen","process","env","NODE_ENV","some","p","endsWith","n","Number","slice","console","warn","indexOf","shouldSetPositionOpen","useEffect","animationDriver","Error","scrollBridge","parentDragListeners","Set","bridge","hasScrollableContent","enabled","y","paneY","paneMinY","scrollStartY","drag","release","scrollLock","isParentDragging","onParentDragging","cb","add","delete","setParentDragging","val","forEach","disableRemoveScroll","modal","forceRemoveScrollEnabled","maxSnapPoint","screenSize","providerProps","hidden","isHidden","dismissOnOverlayPress","onOverlayComponent","scope","__scopeSheet","onlyShowFrame"],"sources":["../../src/useSheetProviderProps.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,MAAW;AAElB,SAASC,gBAAA,QAAwB;AACjC,SAASC,WAAA,QAAmB;AAC5B,SAASC,oBAAA,QAA4B;AAS9B,SAASC,sBACdC,KAAA,EACAC,KAAA,EACAC,OAAA,GAEI,CAAC,GACL;EACA,MAAMC,SAAA,GAAYR,KAAA,CAAMS,MAAA,CAAmB,IAAI;EAC/C,MAAMC,UAAA,GAAaV,KAAA,CAAMS,MAAA,CAAmB,IAAI;EAChD,MAAM,CAACE,SAAA,EAAWC,YAAY,IAAIZ,KAAA,CAAMa,QAAA,CAAiB,CAAC;EAC1D,MAAM,CAACC,cAAA,EAAgBC,iBAAiB,IAAIf,KAAA,CAAMa,QAAA,CAAiB,CAAC;EACpE,MAAMG,cAAA,GAAiBX,KAAA,CAAMW,cAAA,IAAkB;EAC/C,MAAMC,cAAA,GACJZ,KAAA,CAAMa,UAAA,KACLF,cAAA,KAAmB,YAChB,CAAC,EAAE,IACHA,cAAA,KAAmB,aACjB,CAAC,GAAG,IACJ,CAAC,KAAK;EACd,MAAMG,MAAA,GAASF,cAAA,CAAe,CAAC,MAAM;EAErC,MAAMC,UAAA,GAAalB,KAAA,CAAMoB,OAAA,CACvB,MAAOf,KAAA,CAAMgB,qBAAA,GAAwB,CAAC,GAAGJ,cAAA,EAAgB,CAAC,IAAIA,cAAA,EAE9D,CAACK,IAAA,CAAKC,SAAA,CAAUN,cAAc,GAAGZ,KAAA,CAAMgB,qBAAqB,CAC9D;EAGA,MAAM,CAACG,SAAA,EAAWC,oBAAoB,IAAItB,oBAAA,CAAqB;IAC7DuB,IAAA,EAAMrB,KAAA,CAAMsB,QAAA;IACZC,WAAA,EAAavB,KAAA,CAAMwB,eAAA,KAAoBvB,KAAA,CAAMwB,IAAA,GAAO,IAAI;IACxDC,QAAA,EAAU1B,KAAA,CAAM2B,gBAAA;IAChBC,QAAA,EAAU;EACZ,CAAC;EAED,MAAMN,QAAA,GAAWrB,KAAA,CAAMwB,IAAA,KAAS,QAAQ,KAAKN,SAAA;EAE7C,MAAM;IAAEM;EAAK,IAAIxB,KAAA;EAEjB,MAAM4B,WAAA,GAAclC,KAAA,CAAMmC,WAAA,CACvBC,IAAA,IAAiB;IAEhB,IAAI/B,KAAA,CAAMgB,qBAAA,IAAyBe,IAAA,KAASlB,UAAA,CAAWmB,MAAA,GAAS,GAAG;MACjE/B,KAAA,CAAMgC,OAAA,CAAQ,KAAK;IACrB,OAAO;MACLb,oBAAA,CAAqBW,IAAI;IAC3B;EACF,GACA,CAAC/B,KAAA,CAAMgB,qBAAA,EAAuBH,UAAA,CAAWmB,MAAA,EAAQZ,oBAAA,EAAsBnB,KAAA,CAAMgC,OAAO,CACtF;EAEA,IAAIC,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eAAe;IAC1C,IACEzB,cAAA,KAAmB,WACnBE,UAAA,CAAWwB,IAAA,CAAMC,CAAA,IAAM;MACrB,IAAI,OAAOA,CAAA,KAAM,UAAU;QACzB,IAAIA,CAAA,KAAM,OAAO;UACf,OAAO;QACT;QACA,IAAIA,CAAA,CAAEC,QAAA,CAAS,GAAG,GAAG;UACnB,MAAMC,CAAA,GAAIC,MAAA,CAAOH,CAAA,CAAEI,KAAA,CAAM,GAAG,EAAE,CAAC;UAC/B,OAAOF,CAAA,GAAI,KAAKA,CAAA,GAAI;QACtB;QACA,OAAO;MACT;MACA,OAAO,OAAOF,CAAA,KAAM,YAAYA,CAAA,GAAI;IACtC,CAAC,GACD;MACAK,OAAA,CAAQC,IAAA,CACN,4JACF;IACF;IACA,IAAIjC,cAAA,KAAmB,WAAWE,UAAA,CAAWgC,OAAA,CAAQ,KAAK,IAAI,GAAG;MAC/DF,OAAA,CAAQC,IAAA,CACN,+GACF;IACF;IACA,IACEjC,cAAA,KAAmB,UAClBE,UAAA,CAAWmB,MAAA,MAAYhC,KAAA,CAAMgB,qBAAA,GAAwB,IAAI,MACxDH,UAAA,CAAW,CAAC,MAAM,QACpB;MACA8B,OAAA,CAAQC,IAAA,CACN,2FACF;IACF;IACA,IACEjC,cAAA,KAAmB,cACnBE,UAAA,CAAWwB,IAAA,CAAMC,CAAA,IAAM,OAAOA,CAAA,KAAM,YAAYA,CAAA,GAAI,CAAC,GACrD;MACAK,OAAA,CAAQC,IAAA,CACN,kHACF;IACF;IACA,IACEjC,cAAA,KAAmB,aACnBE,UAAA,CAAWwB,IAAA,CAAMC,CAAA,IAAM,OAAOA,CAAA,KAAM,YAAYA,CAAA,GAAI,KAAKA,CAAA,GAAI,GAAG,GAChE;MACAK,OAAA,CAAQC,IAAA,CACN,0HACF;IACF;EACF;EAGA,IAAInB,IAAA,IAAQzB,KAAA,CAAMgB,qBAAA,IAAyBM,QAAA,KAAaT,UAAA,CAAWmB,MAAA,GAAS,GAAG;IAC7EZ,oBAAA,CAAqB,CAAC;EACxB;EAGA,MAAM0B,qBAAA,GAAwBrB,IAAA,IAAQH,QAAA,GAAW;EACjD3B,KAAA,CAAMoD,SAAA,CAAU,MAAM;IACpB,IAAID,qBAAA,EAAuB;MACzBjB,WAAA,CAAY,CAAC;IACf;EACF,GAAG,CAACA,WAAA,EAAaiB,qBAAqB,CAAC;EAEvC,MAAM;IAAEE;EAAgB,IAAIpD,gBAAA,CAAiB;EAC7C,IAAI,CAACoD,eAAA,EAAiB;IACpB,MAAM,IAAIC,KAAA,CACRf,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eACrB,eACA,sCACN;EACF;EAEA,MAAMc,YAAA,GAAerD,WAAA,CAA0B,MAAM;IACnD,MAAMsD,mBAAA,GAAsB,mBAAIC,GAAA,CAAc;IAE9C,MAAMC,MAAA,GAAuB;MAC3BC,oBAAA,EAAsB;MACtBC,OAAA,EAAS;MACTC,CAAA,EAAG;MACHC,KAAA,EAAO;MACPC,QAAA,EAAU;MACVC,YAAA,EAAc;MACdC,IAAA,EAAMA,CAAA,KAAM,CAAC;MACbC,OAAA,EAASA,CAAA,KAAM,CAAC;MAChBC,UAAA,EAAY;MACZC,gBAAA,EAAkB;MAClBC,gBAAA,EAAmBC,EAAA,IAAO;QACxBd,mBAAA,CAAoBe,GAAA,CAAID,EAAE;QAC1B,OAAO,MAAM;UACXd,mBAAA,CAAoBgB,MAAA,CAAOF,EAAE;QAC/B;MACF;MACAG,iBAAA,EAAoBC,GAAA,IAAQ;QAC1B,IAAIA,GAAA,KAAQhB,MAAA,CAAOU,gBAAA,EAAkB;UACnCV,MAAA,CAAOU,gBAAA,GAAmBM,GAAA;UAC1BlB,mBAAA,CAAoBmB,OAAA,CAASL,EAAA,IAAOA,EAAA,CAAGI,GAAG,CAAC;QAC7C;MACF;IACF;IAEA,OAAOhB,MAAA;EACT,CAAC;EAGD,IAAIkB,mBAAA;EACJ,IAAIvE,KAAA,CAAMuE,mBAAA,KAAwB,QAAW;IAE3CA,mBAAA,GAAsBvE,KAAA,CAAMuE,mBAAA,IAAuB,CAAC9C,IAAA,IAAQ,CAACzB,KAAA,CAAMwE,KAAA;EACrE,WAAWxE,KAAA,CAAMyE,wBAAA,KAA6B,QAAW;IAEvD,IAAIvC,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eAAe;MAC1CO,OAAA,CAAQC,IAAA,CACN,kFACF;IACF;IACA2B,mBAAA,GAAsB,CAACvE,KAAA,CAAMyE,wBAAA;EAC/B,OAAO;IAELF,mBAAA,GAAsB,CAAC9C,IAAA,IAAQ,CAACzB,KAAA,CAAMwE,KAAA;EACxC;EAEA,MAAME,YAAA,GAAe7D,UAAA,CAAW,CAAC;EACjC,MAAM8D,UAAA,GACJhE,cAAA,KAAmB,YACfL,SAAA,KAAc,OAAOoE,YAAA,KAAiB,WAAWA,YAAA,GAAe,OAAO,OACvEjE,cAAA;EAEN,MAAMmE,aAAA,GAAgB;IACpBD,UAAA;IACAD,YAAA;IACAH,mBAAA;IACArB,YAAA;IACAsB,KAAA,EAAO,CAAC,CAACxE,KAAA,CAAMwE,KAAA;IACf/C,IAAA,EAAMxB,KAAA,CAAMwB,IAAA;IACZQ,OAAA,EAAShC,KAAA,CAAMgC,OAAA;IACf4C,MAAA,EAAQ,CAAC,CAAC5E,KAAA,CAAM6E,QAAA;IAChBzE,UAAA;IACAF,SAAA;IACAG,SAAA;IACAC,YAAA;IACAwE,qBAAA,EAAuB/E,KAAA,CAAM+E,qBAAA,IAAyB;IACtD/D,qBAAA,EAAuBhB,KAAA,CAAMgB,qBAAA,IAAyB;IACtDgE,kBAAA,EAAoB9E,OAAA,CAAQ8E,kBAAA;IAC5BC,KAAA,EAAOjF,KAAA,CAAMkF,YAAA;IACbpE,MAAA;IACAQ,QAAA;IACAT,UAAA;IACAF,cAAA;IACAD,iBAAA;IACAmB,WAAA;IACAT,oBAAA;IACA+D,aAAA,EAAe;EACjB;EAEA,OAAOP,aAAA;AACT","ignoreList":[]}
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
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, {
18
+ get: () => from[key],
19
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
20
+ });
21
+ }
22
+ return to;
23
+ };
24
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
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);
36
+ var useSheetProviderProps_exports = {};
37
+ __export(useSheetProviderProps_exports, {
38
+ useSheetProviderProps: () => useSheetProviderProps
39
+ });
40
+ module.exports = __toCommonJS(useSheetProviderProps_exports);
41
+ var import_react = __toESM(require("react"), 1);
42
+ var import_core = require("@hanzogui/core");
43
+ var import_use_constant = require("@hanzogui/use-constant");
44
+ var import_use_controllable_state = require("@hanzogui/use-controllable-state");
45
+ function useSheetProviderProps(props, state) {
46
+ var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
47
+ var handleRef = import_react.default.useRef(null);
48
+ var contentRef = import_react.default.useRef(null);
49
+ var [frameSize, setFrameSize] = import_react.default.useState(0);
50
+ var [maxContentSize, setMaxContentSize] = import_react.default.useState(0);
51
+ var _props_snapPointsMode;
52
+ var snapPointsMode = (_props_snapPointsMode = props.snapPointsMode) !== null && _props_snapPointsMode !== void 0 ? _props_snapPointsMode : "percent";
53
+ var _props_snapPoints;
54
+ var snapPointsProp = (_props_snapPoints = props.snapPoints) !== null && _props_snapPoints !== void 0 ? _props_snapPoints : snapPointsMode === "percent" ? [80] : snapPointsMode === "constant" ? [256] : ["fit"];
55
+ var hasFit = snapPointsProp[0] === "fit";
56
+ var snapPoints = import_react.default.useMemo(function () {
57
+ return props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp;
58
+ }, [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]);
59
+ var [position_, setPositionImmediate] = (0, import_use_controllable_state.useControllableState)({
60
+ prop: props.position,
61
+ defaultProp: props.defaultPosition || (state.open ? 0 : -1),
62
+ onChange: props.onPositionChange,
63
+ strategy: "most-recent-wins"
64
+ });
65
+ var position = state.open === false ? -1 : position_;
66
+ var {
67
+ open
68
+ } = state;
69
+ var setPosition = import_react.default.useCallback(function (next) {
70
+ if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {
71
+ state.setOpen(false);
72
+ } else {
73
+ setPositionImmediate(next);
74
+ }
75
+ }, [props.dismissOnSnapToBottom, snapPoints.length, setPositionImmediate, state.setOpen]);
76
+ if (process.env.NODE_ENV === "development") {
77
+ if (snapPointsMode === "mixed" && snapPoints.some(function (p) {
78
+ if (typeof p === "string") {
79
+ if (p === "fit") {
80
+ return false;
81
+ }
82
+ if (p.endsWith("%")) {
83
+ var n = Number(p.slice(0, -1));
84
+ return n < 0 || n > 100;
85
+ }
86
+ return true;
87
+ }
88
+ return typeof p !== "number" || p < 0;
89
+ })) {
90
+ console.warn('\u26A0\uFE0F Invalid snapPoint given, snapPoints must be positive numeric values, string percentages between 0-100%, or "fit" when snapPointsMode is mixed');
91
+ }
92
+ if (snapPointsMode === "mixed" && snapPoints.indexOf("fit") > 0) {
93
+ console.warn('\u26A0\uFE0F Invalid snapPoint given, "fit" must be the first/largest snap point when snapPointsMode is mixed');
94
+ }
95
+ if (snapPointsMode === "fit" && (snapPoints.length !== (props.dismissOnSnapToBottom ? 2 : 1) || snapPoints[0] !== "fit")) {
96
+ console.warn("\u26A0\uFE0F Invalid snapPoint given, there are no snap points when snapPointsMode is fit");
97
+ }
98
+ if (snapPointsMode === "constant" && snapPoints.some(function (p) {
99
+ return typeof p !== "number" || p < 0;
100
+ })) {
101
+ console.warn("\u26A0\uFE0F Invalid snapPoint given, snapPoints must be positive numeric values when snapPointsMode is constant");
102
+ }
103
+ if (snapPointsMode === "percent" && snapPoints.some(function (p) {
104
+ return typeof p !== "number" || p < 0 || p > 100;
105
+ })) {
106
+ console.warn("\u26A0\uFE0F Invalid snapPoint given, snapPoints must be numeric values between 0 and 100 when snapPointsMode is percent");
107
+ }
108
+ }
109
+ if (open && props.dismissOnSnapToBottom && position === snapPoints.length - 1) {
110
+ setPositionImmediate(0);
111
+ }
112
+ var shouldSetPositionOpen = open && position < 0;
113
+ import_react.default.useEffect(function () {
114
+ if (shouldSetPositionOpen) {
115
+ setPosition(0);
116
+ }
117
+ }, [setPosition, shouldSetPositionOpen]);
118
+ var {
119
+ animationDriver
120
+ } = (0, import_core.useConfiguration)();
121
+ if (!animationDriver) {
122
+ throw new Error(process.env.NODE_ENV === "production" ? `\u274C 008` : "Must set animations in gui.config.ts");
123
+ }
124
+ var scrollBridge = (0, import_use_constant.useConstant)(function () {
125
+ var parentDragListeners = /* @__PURE__ */new Set();
126
+ var bridge = {
127
+ hasScrollableContent: false,
128
+ enabled: false,
129
+ y: 0,
130
+ paneY: 0,
131
+ paneMinY: 0,
132
+ scrollStartY: -1,
133
+ drag: function () {},
134
+ release: function () {},
135
+ scrollLock: false,
136
+ isParentDragging: false,
137
+ onParentDragging: function (cb) {
138
+ parentDragListeners.add(cb);
139
+ return function () {
140
+ parentDragListeners.delete(cb);
141
+ };
142
+ },
143
+ setParentDragging: function (val) {
144
+ if (val !== bridge.isParentDragging) {
145
+ bridge.isParentDragging = val;
146
+ parentDragListeners.forEach(function (cb) {
147
+ return cb(val);
148
+ });
149
+ }
150
+ }
151
+ };
152
+ return bridge;
153
+ });
154
+ var disableRemoveScroll;
155
+ if (props.disableRemoveScroll !== void 0) {
156
+ disableRemoveScroll = props.disableRemoveScroll || !open || !props.modal;
157
+ } else if (props.forceRemoveScrollEnabled !== void 0) {
158
+ if (process.env.NODE_ENV === "development") {
159
+ console.warn("[Sheet] forceRemoveScrollEnabled is deprecated. Use disableRemoveScroll instead.");
160
+ }
161
+ disableRemoveScroll = !props.forceRemoveScrollEnabled;
162
+ } else {
163
+ disableRemoveScroll = !open || !props.modal;
164
+ }
165
+ var maxSnapPoint = snapPoints[0];
166
+ var screenSize = snapPointsMode === "percent" ? frameSize / ((typeof maxSnapPoint === "number" ? maxSnapPoint : 100) / 100) : maxContentSize;
167
+ var _props_dismissOnOverlayPress, _props_dismissOnSnapToBottom;
168
+ var providerProps = {
169
+ screenSize,
170
+ maxSnapPoint,
171
+ disableRemoveScroll,
172
+ scrollBridge,
173
+ modal: !!props.modal,
174
+ open: state.open,
175
+ setOpen: state.setOpen,
176
+ hidden: !!state.isHidden,
177
+ contentRef,
178
+ handleRef,
179
+ frameSize,
180
+ setFrameSize,
181
+ dismissOnOverlayPress: (_props_dismissOnOverlayPress = props.dismissOnOverlayPress) !== null && _props_dismissOnOverlayPress !== void 0 ? _props_dismissOnOverlayPress : true,
182
+ dismissOnSnapToBottom: (_props_dismissOnSnapToBottom = props.dismissOnSnapToBottom) !== null && _props_dismissOnSnapToBottom !== void 0 ? _props_dismissOnSnapToBottom : false,
183
+ onOverlayComponent: options.onOverlayComponent,
184
+ scope: props.__scopeSheet,
185
+ hasFit,
186
+ position,
187
+ snapPoints,
188
+ snapPointsMode,
189
+ setMaxContentSize,
190
+ setPosition,
191
+ setPositionImmediate,
192
+ onlyShowFrame: false
193
+ };
194
+ return providerProps;
195
+ }
196
+ //# sourceMappingURL=useSheetProviderProps.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","useSheetProviderProps_exports","useSheetProviderProps","module","exports","import_react","require","import_core","import_use_constant","import_use_controllable_state","props","state","options","arguments","length","handleRef","default","useRef","contentRef","frameSize","setFrameSize","useState","maxContentSize","setMaxContentSize","_props_snapPointsMode","snapPointsMode","_props_snapPoints","snapPointsProp","snapPoints","hasFit","useMemo","dismissOnSnapToBottom","JSON","stringify","position_","setPositionImmediate","useControllableState","prop","position","defaultProp","defaultPosition","open","onChange","onPositionChange","strategy","setPosition","useCallback","next","setOpen","process","env","NODE_ENV","some","p","endsWith","n","Number","slice","console","warn","indexOf","shouldSetPositionOpen","useEffect","animationDriver","useConfiguration","Error","scrollBridge","useConstant","parentDragListeners","Set","bridge","hasScrollableContent","enabled","y","paneY","paneMinY","scrollStartY","drag","release","scrollLock","isParentDragging","onParentDragging","cb","add","delete","setParentDragging","val","forEach"],"sources":["../../src/useSheetProviderProps.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,141 @@
1
+ import { useEffect, useRef } from "react";
2
+ function useSheetScrollViewGestures({
3
+ scrollRef,
4
+ scrollBridge,
5
+ hasScrollableContent
6
+ }) {
7
+ const state = useRef({
8
+ startY: 0,
9
+ lastY: 0,
10
+ owner: "none",
11
+ panDragOffset: 0,
12
+ dys: [],
13
+ scrollYAtGestureStart: 0
14
+ });
15
+ useEffect(() => {
16
+ if (!scrollRef.current) return;
17
+ const controller = new AbortController();
18
+ const node = scrollRef.current?.getScrollableNode();
19
+ if (!node) return;
20
+ node.style.overscrollBehavior = "contain";
21
+ let originalOverflow = "";
22
+ const disableScroll = () => {
23
+ if (node.style.overflowY !== "hidden") {
24
+ originalOverflow = node.style.overflowY;
25
+ node.style.overflowY = "hidden";
26
+ }
27
+ };
28
+ const enableScroll = () => {
29
+ node.style.overflowY = originalOverflow;
30
+ };
31
+ const handleTouchStart = e => {
32
+ const touch = e.touches[0];
33
+ if (!touch) return;
34
+ const currentScrollY = node.scrollTop;
35
+ state.current = {
36
+ startY: touch.pageY,
37
+ lastY: touch.pageY,
38
+ owner: "none",
39
+ panDragOffset: 0,
40
+ dys: [],
41
+ scrollYAtGestureStart: currentScrollY
42
+ };
43
+ scrollBridge.scrollStartY = touch.pageY;
44
+ };
45
+ const handleTouchMove = e => {
46
+ const touch = e.touches[0];
47
+ if (!touch) return;
48
+ const {
49
+ current: s
50
+ } = state;
51
+ const pageY = touch.pageY;
52
+ const dy = pageY - s.lastY;
53
+ s.lastY = pageY;
54
+ if (dy === 0) return;
55
+ const isDraggingDown = dy > 0;
56
+ const currentScrollY = node.scrollTop;
57
+ const isPaneAtTop = scrollBridge.paneY <= scrollBridge.paneMinY + 5;
58
+ scrollBridge.y = currentScrollY;
59
+ let shouldPanOwn = false;
60
+ if (!isPaneAtTop) {
61
+ shouldPanOwn = true;
62
+ } else if (currentScrollY <= 0 && isDraggingDown) {
63
+ shouldPanOwn = true;
64
+ }
65
+ const newOwner = shouldPanOwn ? "pan" : "scroll";
66
+ if (newOwner !== s.owner) {
67
+ if (newOwner === "pan") {
68
+ s.panDragOffset = 0;
69
+ s.dys = [];
70
+ scrollBridge.setParentDragging(true);
71
+ disableScroll();
72
+ } else {
73
+ scrollBridge.setParentDragging(false);
74
+ scrollBridge.scrollLock = false;
75
+ enableScroll();
76
+ }
77
+ s.owner = newOwner;
78
+ }
79
+ if (s.owner === "pan") {
80
+ if (e.cancelable) e.preventDefault();
81
+ s.panDragOffset += dy;
82
+ scrollBridge.drag(s.panDragOffset);
83
+ s.dys.push(dy);
84
+ if (s.dys.length > 100) s.dys = s.dys.slice(-10);
85
+ } else if (s.owner === "scroll") {
86
+ const scrollDelta = -dy;
87
+ const maxScrollY = node.scrollHeight - node.clientHeight;
88
+ const newScrollY = Math.max(0, Math.min(maxScrollY, currentScrollY + scrollDelta));
89
+ if (newScrollY !== currentScrollY) {
90
+ node.scrollTop = newScrollY;
91
+ scrollBridge.y = newScrollY;
92
+ }
93
+ }
94
+ };
95
+ const handleTouchEnd = () => {
96
+ const {
97
+ current: s
98
+ } = state;
99
+ if (s.owner === "pan") {
100
+ scrollBridge.setParentDragging(false);
101
+ let vy = 0;
102
+ if (s.dys.length) {
103
+ const recentDys = s.dys.slice(-10);
104
+ const dist = recentDys.reduce((a, b) => a + b, 0);
105
+ vy = dist / recentDys.length * 0.04;
106
+ }
107
+ scrollBridge.release({
108
+ dragAt: s.panDragOffset,
109
+ vy
110
+ });
111
+ }
112
+ enableScroll();
113
+ s.owner = "none";
114
+ s.panDragOffset = 0;
115
+ s.dys = [];
116
+ };
117
+ node.addEventListener("touchstart", handleTouchStart, {
118
+ signal: controller.signal,
119
+ passive: true
120
+ });
121
+ node.addEventListener("touchmove", handleTouchMove, {
122
+ signal: controller.signal,
123
+ passive: false
124
+ });
125
+ node.addEventListener("touchend", handleTouchEnd, {
126
+ signal: controller.signal,
127
+ passive: true
128
+ });
129
+ node.addEventListener("touchcancel", handleTouchEnd, {
130
+ signal: controller.signal,
131
+ passive: true
132
+ });
133
+ return () => {
134
+ enableScroll();
135
+ controller.abort();
136
+ };
137
+ }, [scrollRef, scrollBridge, hasScrollableContent]);
138
+ return {};
139
+ }
140
+ export { useSheetScrollViewGestures };
141
+ //# sourceMappingURL=useSheetScrollViewGestures.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","useSheetScrollViewGestures","scrollRef","scrollBridge","hasScrollableContent","state","startY","lastY","owner","panDragOffset","dys","scrollYAtGestureStart","current","controller","AbortController","node","getScrollableNode","style","overscrollBehavior","originalOverflow","disableScroll","overflowY","enableScroll","handleTouchStart","e","touch","touches","currentScrollY","scrollTop","pageY","scrollStartY","handleTouchMove","s","dy","isDraggingDown","isPaneAtTop","paneY","paneMinY","y","shouldPanOwn","newOwner","setParentDragging","scrollLock","cancelable","preventDefault","drag","push","length","slice","scrollDelta","maxScrollY","scrollHeight","clientHeight","newScrollY","Math","max","min","handleTouchEnd","vy","recentDys","dist","reduce","a","b","release","dragAt","addEventListener","signal","passive","abort"],"sources":["../../src/useSheetScrollViewGestures.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}