@lodev09/react-native-true-sheet 4.0.0-beta.3 → 4.0.0-beta.30

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 (244) hide show
  1. package/README.md +28 -5
  2. package/android/build.gradle +23 -1
  3. package/android/proguard-rules.pro +3 -0
  4. package/android/src/main/java/com/lodev09/truesheet/TrueSheetContainerView.kt +50 -16
  5. package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentView.kt +303 -184
  6. package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentViewManager.kt +5 -1
  7. package/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterView.kt +38 -109
  8. package/android/src/main/java/com/lodev09/truesheet/TrueSheetModule.kt +13 -0
  9. package/android/src/main/java/com/lodev09/truesheet/TrueSheetOverlayView.kt +127 -0
  10. package/android/src/main/java/com/lodev09/truesheet/TrueSheetOverlayViewManager.kt +45 -0
  11. package/android/src/main/java/com/lodev09/truesheet/TrueSheetPackage.kt +2 -1
  12. package/android/src/main/java/com/lodev09/truesheet/TrueSheetStateUpdater.kt +29 -3
  13. package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +234 -66
  14. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +491 -186
  15. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +64 -10
  16. package/android/src/main/java/com/lodev09/truesheet/core/RNScreensEventObserver.kt +31 -14
  17. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetBottomSheetBehavior.kt +135 -0
  18. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetBottomSheetView.kt +23 -23
  19. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetCoordinatorLayout.kt +130 -6
  20. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetDetentCalculator.kt +104 -39
  21. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetDimView.kt +14 -17
  22. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetGrabberView.kt +2 -4
  23. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetOverlayRootView.kt +148 -0
  24. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetStackManager.kt +33 -40
  25. package/android/src/main/java/com/lodev09/truesheet/events/TrueSheetLifecycleEvents.kt +15 -0
  26. package/android/src/main/java/com/lodev09/truesheet/utils/ColorUtils.kt +19 -0
  27. package/android/src/main/java/com/lodev09/truesheet/utils/KeyboardUtils.kt +15 -2
  28. package/android/src/main/java/com/lodev09/truesheet/utils/ScreenUtils.kt +0 -12
  29. package/android/src/main/java/com/lodev09/truesheet/utils/ViewUtils.kt +19 -7
  30. package/android/src/main/jni/TrueSheetSpec.h +1 -0
  31. package/android/src/main/jni/TrueSheetStateUpdater.cpp +37 -6
  32. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewComponentDescriptor.h +1 -9
  33. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewShadowNode.cpp +114 -30
  34. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewShadowNode.h +30 -7
  35. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewState.cpp +2 -2
  36. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewState.h +9 -8
  37. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewComponentDescriptor.h +3 -5
  38. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewShadowNode.cpp +14 -3
  39. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewShadowNode.h +5 -6
  40. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewState.cpp +1 -1
  41. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewState.h +10 -6
  42. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetInsets.cpp +1 -1
  43. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetInsets.h +1 -1
  44. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetLayoutUtils.h +43 -0
  45. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetOverlayViewComponentDescriptor.h +21 -0
  46. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetOverlayViewShadowNode.cpp +17 -0
  47. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetOverlayViewShadowNode.h +33 -0
  48. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewComponentDescriptor.h +3 -5
  49. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewShadowNode.cpp +7 -40
  50. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewShadowNode.h +3 -7
  51. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewState.cpp +3 -5
  52. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewState.h +4 -5
  53. package/ios/TrueSheetContainerView.h +23 -7
  54. package/ios/TrueSheetContainerView.mm +45 -25
  55. package/ios/TrueSheetContentView.h +44 -15
  56. package/ios/TrueSheetContentView.mm +221 -190
  57. package/ios/TrueSheetFooterView.mm +133 -28
  58. package/ios/TrueSheetModule.h +2 -7
  59. package/ios/TrueSheetModule.mm +18 -18
  60. package/ios/TrueSheetOverlayView.h +42 -0
  61. package/ios/TrueSheetOverlayView.mm +175 -0
  62. package/ios/TrueSheetView.h +2 -0
  63. package/ios/TrueSheetView.mm +268 -52
  64. package/ios/TrueSheetViewController.h +36 -3
  65. package/ios/TrueSheetViewController.mm +797 -102
  66. package/ios/core/RNScreensEventObserver.mm +31 -28
  67. package/ios/core/TrueSheetBlurView.h +0 -2
  68. package/ios/core/TrueSheetBlurView.mm +3 -36
  69. package/ios/core/TrueSheetDetentCalculator.h +18 -1
  70. package/ios/core/TrueSheetDetentCalculator.mm +44 -9
  71. package/ios/core/TrueSheetDimView.h +27 -0
  72. package/ios/core/TrueSheetDimView.mm +41 -0
  73. package/ios/core/TrueSheetGrabberView.mm +13 -3
  74. package/ios/core/TrueSheetKeyboardObserver.h +7 -0
  75. package/ios/core/TrueSheetKeyboardObserver.mm +107 -15
  76. package/ios/core/TrueSheetOverlayContainerView.h +31 -0
  77. package/ios/core/TrueSheetOverlayContainerView.mm +35 -0
  78. package/ios/events/TrueSheetLifecycleEvents.h +2 -0
  79. package/ios/events/TrueSheetLifecycleEvents.mm +8 -0
  80. package/ios/tvos/TrueSheetStubs.mm +12 -0
  81. package/ios/utils/UIView+ScrollEdgeInteraction.h +1 -0
  82. package/ios/utils/UIView+ScrollEdgeInteraction.mm +24 -2
  83. package/lib/module/TrueSheet.js +222 -54
  84. package/lib/module/TrueSheet.js.map +1 -1
  85. package/lib/module/TrueSheet.web.js +364 -275
  86. package/lib/module/TrueSheet.web.js.map +1 -1
  87. package/lib/module/TrueSheetBackground.js +15 -0
  88. package/lib/module/TrueSheetBackground.js.map +1 -0
  89. package/lib/module/TrueSheetOverlay.js +30 -0
  90. package/lib/module/TrueSheetOverlay.js.map +1 -0
  91. package/lib/module/TrueSheetOverlay.web.js +35 -0
  92. package/lib/module/TrueSheetOverlay.web.js.map +1 -0
  93. package/lib/module/TrueSheetPeek.web.js +20 -15
  94. package/lib/module/TrueSheetPeek.web.js.map +1 -1
  95. package/lib/module/TrueSheetProvider.web.js +13 -9
  96. package/lib/module/TrueSheetProvider.web.js.map +1 -1
  97. package/lib/module/detentBackgrounds.js +21 -0
  98. package/lib/module/detentBackgrounds.js.map +1 -0
  99. package/lib/module/fabric/TrueSheetContentViewNativeComponent.ts +1 -1
  100. package/lib/module/fabric/TrueSheetFooterViewNativeComponent.ts +2 -3
  101. package/lib/module/fabric/TrueSheetOverlayViewNativeComponent.ts +12 -0
  102. package/lib/module/fabric/TrueSheetViewNativeComponent.ts +89 -73
  103. package/lib/module/index.js +1 -0
  104. package/lib/module/index.js.map +1 -1
  105. package/lib/module/mocks/index.js +18 -2
  106. package/lib/module/mocks/index.js.map +1 -1
  107. package/lib/module/mocks/navigationExpoRouter.js.map +1 -1
  108. package/lib/module/navigation/base-types.js +2 -0
  109. package/lib/module/navigation/base-types.js.map +1 -0
  110. package/lib/module/navigation/createTrueSheetRouter.js +158 -100
  111. package/lib/module/navigation/createTrueSheetRouter.js.map +1 -1
  112. package/lib/module/navigation/expo-router/base-types.js +2 -0
  113. package/lib/module/navigation/expo-router/base-types.js.map +1 -0
  114. package/lib/module/navigation/expo-router/extendTrueSheetRouter.js +71 -0
  115. package/lib/module/navigation/expo-router/extendTrueSheetRouter.js.map +1 -0
  116. package/lib/module/navigation/expo-router/index.js +18 -7
  117. package/lib/module/navigation/expo-router/index.js.map +1 -1
  118. package/lib/module/navigation/expo-router/types.js +4 -0
  119. package/lib/module/navigation/expo-router/types.js.map +1 -0
  120. package/lib/module/navigation/index.js.map +1 -1
  121. package/lib/module/navigation/screen/useSheetScreenState.js +1 -0
  122. package/lib/module/navigation/screen/useSheetScreenState.js.map +1 -1
  123. package/lib/module/scrollable.js +28 -0
  124. package/lib/module/scrollable.js.map +1 -0
  125. package/lib/module/web/constants.js +1 -1
  126. package/lib/module/web/constants.js.map +1 -1
  127. package/lib/module/web/keyboard.js +69 -0
  128. package/lib/module/web/keyboard.js.map +1 -0
  129. package/lib/module/web/layout.js +168 -0
  130. package/lib/module/web/layout.js.map +1 -0
  131. package/lib/module/web/vaul/constants.js +9 -0
  132. package/lib/module/web/vaul/constants.js.map +1 -1
  133. package/lib/module/web/vaul/context.js +4 -0
  134. package/lib/module/web/vaul/context.js.map +1 -1
  135. package/lib/module/web/vaul/helpers.js +1 -0
  136. package/lib/module/web/vaul/helpers.js.map +1 -1
  137. package/lib/module/web/vaul/index.js +83 -21
  138. package/lib/module/web/vaul/index.js.map +1 -1
  139. package/lib/module/web/vaul/use-snap-points.js +57 -28
  140. package/lib/module/web/vaul/use-snap-points.js.map +1 -1
  141. package/lib/typescript/src/TrueSheet.d.ts +18 -1
  142. package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
  143. package/lib/typescript/src/TrueSheet.types.d.ts +209 -35
  144. package/lib/typescript/src/TrueSheet.types.d.ts.map +1 -1
  145. package/lib/typescript/src/TrueSheet.web.d.ts.map +1 -1
  146. package/lib/typescript/src/TrueSheetBackground.d.ts +3 -0
  147. package/lib/typescript/src/TrueSheetBackground.d.ts.map +1 -0
  148. package/lib/typescript/src/TrueSheetOverlay.d.ts +8 -0
  149. package/lib/typescript/src/TrueSheetOverlay.d.ts.map +1 -0
  150. package/lib/typescript/src/TrueSheetOverlay.web.d.ts +8 -0
  151. package/lib/typescript/src/TrueSheetOverlay.web.d.ts.map +1 -0
  152. package/lib/typescript/src/TrueSheetPeek.web.d.ts +8 -4
  153. package/lib/typescript/src/TrueSheetPeek.web.d.ts.map +1 -1
  154. package/lib/typescript/src/TrueSheetProvider.web.d.ts +5 -1
  155. package/lib/typescript/src/TrueSheetProvider.web.d.ts.map +1 -1
  156. package/lib/typescript/src/detentBackgrounds.d.ts +10 -0
  157. package/lib/typescript/src/detentBackgrounds.d.ts.map +1 -0
  158. package/lib/typescript/src/fabric/TrueSheetFooterViewNativeComponent.d.ts +2 -3
  159. package/lib/typescript/src/fabric/TrueSheetFooterViewNativeComponent.d.ts.map +1 -1
  160. package/lib/typescript/src/fabric/TrueSheetOverlayViewNativeComponent.d.ts +6 -0
  161. package/lib/typescript/src/fabric/TrueSheetOverlayViewNativeComponent.d.ts.map +1 -0
  162. package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts +76 -65
  163. package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts.map +1 -1
  164. package/lib/typescript/src/index.d.ts +1 -0
  165. package/lib/typescript/src/index.d.ts.map +1 -1
  166. package/lib/typescript/src/mocks/index.d.ts +4 -0
  167. package/lib/typescript/src/mocks/index.d.ts.map +1 -1
  168. package/lib/typescript/src/mocks/navigationExpoRouter.d.ts +3 -3
  169. package/lib/typescript/src/mocks/navigationExpoRouter.d.ts.map +1 -1
  170. package/lib/typescript/src/navigation/base-types.d.ts +9 -0
  171. package/lib/typescript/src/navigation/base-types.d.ts.map +1 -0
  172. package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts +36 -10
  173. package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts.map +1 -1
  174. package/lib/typescript/src/navigation/expo-router/base-types.d.ts +8 -0
  175. package/lib/typescript/src/navigation/expo-router/base-types.d.ts.map +1 -0
  176. package/lib/typescript/src/navigation/expo-router/extendTrueSheetRouter.d.ts +33 -0
  177. package/lib/typescript/src/navigation/expo-router/extendTrueSheetRouter.d.ts.map +1 -0
  178. package/lib/typescript/src/navigation/expo-router/index.d.ts +9 -6
  179. package/lib/typescript/src/navigation/expo-router/index.d.ts.map +1 -1
  180. package/lib/typescript/src/navigation/expo-router/types.d.ts +44 -0
  181. package/lib/typescript/src/navigation/expo-router/types.d.ts.map +1 -0
  182. package/lib/typescript/src/navigation/index.d.ts +3 -4
  183. package/lib/typescript/src/navigation/index.d.ts.map +1 -1
  184. package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts +2 -1
  185. package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts.map +1 -1
  186. package/lib/typescript/src/navigation/types.d.ts +43 -6
  187. package/lib/typescript/src/navigation/types.d.ts.map +1 -1
  188. package/lib/typescript/src/scrollable.d.ts +2 -0
  189. package/lib/typescript/src/scrollable.d.ts.map +1 -0
  190. package/lib/typescript/src/web/constants.d.ts +1 -1
  191. package/lib/typescript/src/web/constants.d.ts.map +1 -1
  192. package/lib/typescript/src/web/keyboard.d.ts +15 -0
  193. package/lib/typescript/src/web/keyboard.d.ts.map +1 -0
  194. package/lib/typescript/src/web/layout.d.ts +20 -0
  195. package/lib/typescript/src/web/layout.d.ts.map +1 -0
  196. package/lib/typescript/src/web/vaul/constants.d.ts +3 -0
  197. package/lib/typescript/src/web/vaul/constants.d.ts.map +1 -1
  198. package/lib/typescript/src/web/vaul/context.d.ts +5 -1
  199. package/lib/typescript/src/web/vaul/context.d.ts.map +1 -1
  200. package/lib/typescript/src/web/vaul/helpers.d.ts +1 -0
  201. package/lib/typescript/src/web/vaul/helpers.d.ts.map +1 -1
  202. package/lib/typescript/src/web/vaul/index.d.ts +20 -1
  203. package/lib/typescript/src/web/vaul/index.d.ts.map +1 -1
  204. package/lib/typescript/src/web/vaul/types.d.ts +9 -0
  205. package/lib/typescript/src/web/vaul/types.d.ts.map +1 -1
  206. package/lib/typescript/src/web/vaul/use-snap-points.d.ts +6 -4
  207. package/lib/typescript/src/web/vaul/use-snap-points.d.ts.map +1 -1
  208. package/package.json +18 -8
  209. package/react-native.config.js +1 -0
  210. package/src/TrueSheet.tsx +257 -62
  211. package/src/TrueSheet.types.ts +225 -35
  212. package/src/TrueSheet.web.tsx +445 -333
  213. package/src/TrueSheetBackground.tsx +17 -0
  214. package/src/TrueSheetOverlay.tsx +24 -0
  215. package/src/TrueSheetOverlay.web.tsx +33 -0
  216. package/src/TrueSheetPeek.web.tsx +25 -23
  217. package/src/TrueSheetProvider.web.tsx +22 -13
  218. package/src/detentBackgrounds.ts +24 -0
  219. package/src/fabric/TrueSheetContentViewNativeComponent.ts +1 -1
  220. package/src/fabric/TrueSheetFooterViewNativeComponent.ts +2 -3
  221. package/src/fabric/TrueSheetOverlayViewNativeComponent.ts +12 -0
  222. package/src/fabric/TrueSheetViewNativeComponent.ts +89 -73
  223. package/src/index.ts +1 -0
  224. package/src/mocks/index.ts +17 -2
  225. package/src/mocks/navigationExpoRouter.ts +6 -5
  226. package/src/navigation/base-types.ts +20 -0
  227. package/src/navigation/createTrueSheetRouter.ts +220 -144
  228. package/src/navigation/expo-router/base-types.ts +18 -0
  229. package/src/navigation/expo-router/extendTrueSheetRouter.ts +99 -0
  230. package/src/navigation/expo-router/index.ts +41 -30
  231. package/src/navigation/expo-router/types.ts +116 -0
  232. package/src/navigation/index.ts +6 -7
  233. package/src/navigation/screen/useSheetScreenState.ts +2 -0
  234. package/src/navigation/types.ts +81 -23
  235. package/src/scrollable.ts +25 -0
  236. package/src/web/constants.ts +1 -1
  237. package/src/web/keyboard.ts +79 -0
  238. package/src/web/layout.ts +196 -0
  239. package/src/web/vaul/constants.ts +9 -0
  240. package/src/web/vaul/context.ts +7 -1
  241. package/src/web/vaul/helpers.ts +5 -0
  242. package/src/web/vaul/index.tsx +113 -16
  243. package/src/web/vaul/types.ts +10 -0
  244. package/src/web/vaul/use-snap-points.ts +86 -33
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ import { TrueSheetActions } from "../actions.js";
4
+ import { getResizeRouteIndex, getStateForNavigateToBase, getTrueSheetStateForAction } from "../createTrueSheetRouter.js";
5
+
6
+ /**
7
+ * `RouterActionHandling.Unhandled` from Expo Router 58+, which deprecates `null`.
8
+ */
9
+
10
+ /**
11
+ * `extendRouter` from Expo Router 58+. Declared locally because the
12
+ * Expo Router types this package builds against predate it.
13
+ */
14
+
15
+ /**
16
+ * Router for Expo Router 58+, where navigator state is seeded by Expo Router
17
+ * (no `getInitialState`/`getRehydratedState`) and `getStateForAction` returns
18
+ * `{ state, affectedRouteKey }`.
19
+ */
20
+ export const extendTrueSheetRouter = (extendRouter, stackRouter, unhandled) => extendRouter(stackRouter, ({
21
+ baseRouter,
22
+ options
23
+ }) => {
24
+ if (__DEV__ && options.initialRouteName === undefined) {
25
+ console.warn("TrueSheet: this Sheet layout has no `unstable_settings.anchor`. On Expo Router 58+, a sheet route opened directly (deep link or push from another navigator) renders without its base screen. Export `unstable_settings = { anchor: '<base route>' }` from the layout.");
26
+ }
27
+ return {
28
+ getStateForAction(state, action, config) {
29
+ const {
30
+ type,
31
+ payload
32
+ } = action;
33
+
34
+ // Expo Router keeps preloaded routes in `routes`, and the navigator presents every
35
+ // route there as a sheet. A parent navigator's route bubbles up to it, as in a `Stack`.
36
+ if (type === 'PRELOAD') {
37
+ return payload?.name && state.routeNames.includes(payload.name) ? {
38
+ state
39
+ } : unhandled;
40
+ }
41
+ const navigated = getStateForNavigateToBase(state, action, popAction => {
42
+ const popped = baseRouter.getStateForAction(state, popAction, config);
43
+ return popped === unhandled ? undefined : popped.state;
44
+ });
45
+
46
+ // Expo Router resolves the destination's nested state in the affected route
47
+ if (navigated) {
48
+ return {
49
+ state: navigated,
50
+ affectedRouteKey: navigated.routes[0]?.key
51
+ };
52
+ }
53
+ const result = getTrueSheetStateForAction(state, action);
54
+ if (result === undefined) {
55
+ return baseRouter.getStateForAction(state, action, config);
56
+ }
57
+ if (result === null) {
58
+ return unhandled;
59
+ }
60
+ const affectedIndex = action.type === 'RESIZE' ? getResizeRouteIndex(state, action) : result.index;
61
+ return {
62
+ state: result,
63
+ affectedRouteKey: result.routes[affectedIndex]?.key
64
+ };
65
+ },
66
+ actionCreators: TrueSheetActions
67
+ };
68
+ }, {
69
+ type: 'true-sheet'
70
+ });
71
+ //# sourceMappingURL=extendTrueSheetRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TrueSheetActions","getResizeRouteIndex","getStateForNavigateToBase","getTrueSheetStateForAction","extendTrueSheetRouter","extendRouter","stackRouter","unhandled","baseRouter","options","__DEV__","initialRouteName","undefined","console","warn","getStateForAction","state","action","config","type","payload","name","routeNames","includes","navigated","popAction","popped","affectedRouteKey","routes","key","result","affectedIndex","index","actionCreators"],"sourceRoot":"../../../../src","sources":["navigation/expo-router/extendTrueSheetRouter.ts"],"mappings":";;AAAA,SAASA,gBAAgB,QAAkC,eAAY;AACvE,SACEC,mBAAmB,EACnBC,yBAAyB,EACzBC,0BAA0B,QACrB,6BAA0B;;AAKjC;AACA;AACA;;AAcA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,GAAGA,CACnCC,YAA0B,EAC1BC,WAA+B,EAC/BC,SAAoB,KAEpBF,YAAY,CACVC,WAAW,EACX,CAAC;EAAEE,UAAU;EAAEC;AAAQ,CAAC,KAAK;EAC3B,IAAIC,OAAO,IAAID,OAAO,CAACE,gBAAgB,KAAKC,SAAS,EAAE;IACrDC,OAAO,CAACC,IAAI,CACV,wQACF,CAAC;EACH;EAEA,OAAO;IACLC,iBAAiBA,CACfC,KAA2B,EAC3BC,MAA2B,EAC3BC,MAAc,EACY;MAC1B,MAAM;QAAEC,IAAI;QAAEC;MAAQ,CAAC,GAAGH,MAAuD;;MAEjF;MACA;MACA,IAAIE,IAAI,KAAK,SAAS,EAAE;QACtB,OAAOC,OAAO,EAAEC,IAAI,IAAIL,KAAK,CAACM,UAAU,CAACC,QAAQ,CAACH,OAAO,CAACC,IAAI,CAAC,GAAG;UAAEL;QAAM,CAAC,GAAGT,SAAS;MACzF;MAEA,MAAMiB,SAAS,GAAGtB,yBAAyB,CAACc,KAAK,EAAEC,MAAM,EAAGQ,SAAS,IAAK;QACxE,MAAMC,MAAM,GAAGlB,UAAU,CAACO,iBAAiB,CAACC,KAAK,EAAES,SAAS,EAAEP,MAAM,CAAC;QACrE,OAAOQ,MAAM,KAAKnB,SAAS,GAAGK,SAAS,GAAGc,MAAM,CAACV,KAAK;MACxD,CAAC,CAAC;;MAEF;MACA,IAAIQ,SAAS,EAAE;QACb,OAAO;UAAER,KAAK,EAAEQ,SAAS;UAAEG,gBAAgB,EAAEH,SAAS,CAACI,MAAM,CAAC,CAAC,CAAC,EAAEC;QAAI,CAAC;MACzE;MAEA,MAAMC,MAAM,GAAG3B,0BAA0B,CAACa,KAAK,EAAEC,MAAM,CAAC;MAExD,IAAIa,MAAM,KAAKlB,SAAS,EAAE;QACxB,OAAOJ,UAAU,CAACO,iBAAiB,CAACC,KAAK,EAAEC,MAAM,EAAEC,MAAM,CAAC;MAC5D;MAEA,IAAIY,MAAM,KAAK,IAAI,EAAE;QACnB,OAAOvB,SAAS;MAClB;MAEA,MAAMwB,aAAa,GACjBd,MAAM,CAACE,IAAI,KAAK,QAAQ,GAAGlB,mBAAmB,CAACe,KAAK,EAAEC,MAAM,CAAC,GAAGa,MAAM,CAACE,KAAK;MAE9E,OAAO;QAAEhB,KAAK,EAAEc,MAAM;QAAEH,gBAAgB,EAAEG,MAAM,CAACF,MAAM,CAACG,aAAa,CAAC,EAAEF;MAAI,CAAC;IAC/E,CAAC;IACDI,cAAc,EAAEjC;EAClB,CAAC;AACH,CAAC,EACD;EAAEmB,IAAI,EAAE;AAAa,CACvB,CAAC","ignoreList":[]}
@@ -1,11 +1,24 @@
1
1
  "use strict";
2
2
 
3
+ import * as ExpoRouter from 'expo-router';
3
4
  import { StackRouter, unstable_integrateWithRouter, useNavigation } from 'expo-router';
4
5
  import { createTrueSheetRouter } from "../createTrueSheetRouter.js";
5
6
  import { trueSheetNavigator } from "../navigator.js";
6
- const SheetNavigator = unstable_integrateWithRouter(trueSheetNavigator,
7
- // expo-router's vendored StackRouter is structurally identical to @react-navigation's
8
- createTrueSheetRouter(StackRouter), {
7
+ import { extendTrueSheetRouter } from "./extendTrueSheetRouter.js";
8
+ // Expo Router 58+ replaced the React Navigation router contract and ships `extendRouter`
9
+ // and `RouterActionHandling` for it. Before that, the vendored StackRouter is structurally
10
+ // identical to @react-navigation's. Pinned to this entry's own router types:
11
+ // `createTrueSheetRouter` is shared and typed against React Navigation, which resolves to
12
+ // `any` in apps that only install expo-router.
13
+ const {
14
+ extendRouter,
15
+ RouterActionHandling
16
+ } = ExpoRouter;
17
+ const sheetRouter = extendRouter ? extendTrueSheetRouter(extendRouter, StackRouter, RouterActionHandling.Unhandled) : createTrueSheetRouter(StackRouter);
18
+
19
+ // `routes`/`dispatch` are injected by `createProps`, so they are declared as
20
+ // CreateProps (last generic) and excluded from the public navigator props
21
+ const SheetNavigator = unstable_integrateWithRouter(trueSheetNavigator, sheetRouter, {
9
22
  createProps: ({
10
23
  state,
11
24
  dispatch
@@ -15,10 +28,8 @@ createTrueSheetRouter(StackRouter), {
15
28
  })
16
29
  });
17
30
 
18
- // Public props: `routes`/`dispatch` are injected by `createProps` (optional here
19
- // so the navigator type stays comparable), and expo-router intersects the event
20
- // map with an index signature which breaks precisely typed `screenListeners`
21
- // callbacks - replace it with the exact map
31
+ // expo-router intersects the event map with an index signature which breaks
32
+ // precisely typed `screenListeners` callbacks - replace it with the exact map
22
33
 
23
34
  /**
24
35
  * TrueSheet navigator layout for Expo Router.
@@ -1 +1 @@
1
- {"version":3,"names":["StackRouter","unstable_integrateWithRouter","useNavigation","createTrueSheetRouter","trueSheetNavigator","SheetNavigator","createProps","state","dispatch","routes","Sheet","useTrueSheetNavigation","TrueSheetActions"],"sourceRoot":"../../../../src","sources":["navigation/expo-router/index.ts"],"mappings":";;AACA,SAASA,WAAW,EAAEC,4BAA4B,EAAEC,aAAa,QAAQ,aAAa;AAEtF,SACEC,qBAAqB,QAGhB,6BAA0B;AACjC,SAASC,kBAAkB,QAAQ,iBAAc;AAUjD,MAAMC,cAAc,GAAGJ,4BAA4B,CAOjDG,kBAAkB;AAClB;AACAD,qBAAqB,CAACH,WAAiC,CAAC,EACxD;EACEM,WAAW,EAAEA,CAAC;IAAEC,KAAK;IAAEC;EAAS,CAAC,MAAM;IACrCC,MAAM,EAAEF,KAAK,CAACE,MAAM;IACpBD;EACF,CAAC;AACH,CACF,CAAC;;AAED;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAME,KAAK,GAAGL,cAGpB;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMM,sBAAsB,GAAGA,CAAA,KAEHT,aAAa,CAA6B,CAAC;AAE9E,SAASU,gBAAgB,QAAkC,eAAY","ignoreList":[]}
1
+ {"version":3,"names":["ExpoRouter","StackRouter","unstable_integrateWithRouter","useNavigation","createTrueSheetRouter","trueSheetNavigator","extendTrueSheetRouter","extendRouter","RouterActionHandling","sheetRouter","Unhandled","SheetNavigator","createProps","state","dispatch","routes","Sheet","useTrueSheetNavigation","TrueSheetActions"],"sourceRoot":"../../../../src","sources":["navigation/expo-router/index.ts"],"mappings":";;AAAA,OAAO,KAAKA,UAAU,MAAM,aAAa;AACzC,SAASC,WAAW,EAAEC,4BAA4B,EAAEC,aAAa,QAAQ,aAAa;AAEtF,SAASC,qBAAqB,QAAQ,6BAA0B;AAChE,SAASC,kBAAkB,QAAQ,iBAAc;AAEjD,SAASC,qBAAqB,QAA2C,4BAAyB;AAalG;AACA;AACA;AACA;AACA;AACA,MAAM;EAAEC,YAAY;EAAEC;AAAqB,CAAC,GAAGR,UAG9C;AAED,MAAMS,WAAmC,GAAGF,YAAY,GACpDD,qBAAqB,CACnBC,YAAY,EACZN,WAAW,EACXO,oBAAoB,CAAEE,SACxB,CAAC,GACDN,qBAAqB,CAACH,WAAiC,CAAC;;AAE5D;AACA;AACA,MAAMU,cAAc,GAAGT,4BAA4B,CAOjDG,kBAAkB,EAAEI,WAAW,EAAE;EACjCG,WAAW,EAAEA,CAAC;IAAEC,KAAK;IAAEC;EAAS,CAAC,MAAM;IACrCC,MAAM,EAAEF,KAAK,CAACE,MAAM;IACpBD;EACF,CAAC;AACH,CAAC,CAAC;;AAEF;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAME,KAAK,GAAGL,cAGpB;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMM,sBAAsB,GAAGA,CAAA,KAEHd,aAAa,CAA6B,CAAC;AAE9E,SAASe,gBAAgB,QAAkC,eAAY","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["navigation/expo-router/types.ts"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["createStandardNavigationFactories","StackRouter","createTrueSheetRouter","trueSheetNavigator","createNavigator","createScreen","state","navigation","routes","dispatch","createTrueSheetNavigator","createTrueSheetScreen","TrueSheetActions","useTrueSheetNavigation"],"sourceRoot":"../../../src","sources":["navigation/index.ts"],"mappings":";;AAAA,SACEA,iCAAiC,EACjCC,WAAW,QAEN,0BAA0B;AAEjC,SAASC,qBAAqB,QAAiC,4BAAyB;AACxF,SAASC,kBAAkB,QAAQ,gBAAa;AAkBhD,MAAM;EAAEC,eAAe;EAAEC;AAAa,CAAC,GAAGL,iCAAiC,CAKzEG,kBAAkB,EAClBD,qBAAqB,CAACD,WAAiC,CAAC,EACxD,CAAC;EAAEK,KAAK;EAAEC;AAAW,CAAC,MAAM;EAAEC,MAAM,EAAEF,KAAK,CAACE,MAAM;EAAEC,QAAQ,EAAEF,UAAU,CAACE;AAAS,CAAC,CACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,GAAGN,eAAe;;AAEvD;AACA;AACA;AACA,OAAO,MAAMO,qBAAqB,GAAGN,YAAY;AAEjD,SAASO,gBAAgB,QAAkC,cAAW;AACtE,SACEV,qBAAqB,QAGhB,4BAAyB;AAChC,SAASW,sBAAsB,QAAQ,6BAA0B","ignoreList":[]}
1
+ {"version":3,"names":["createStandardNavigationFactories","StackRouter","createTrueSheetRouter","trueSheetNavigator","createNavigator","createScreen","state","navigation","routes","dispatch","createTrueSheetNavigator","createTrueSheetScreen","TrueSheetActions","useTrueSheetNavigation"],"sourceRoot":"../../../src","sources":["navigation/index.ts"],"mappings":";;AAAA,SACEA,iCAAiC,EACjCC,WAAW,QAEN,0BAA0B;AAEjC,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASC,kBAAkB,QAAQ,gBAAa;AAmBhD,MAAM;EAAEC,eAAe;EAAEC;AAAa,CAAC,GAAGL,iCAAiC,CAKzEG,kBAAkB,EAClBD,qBAAqB,CAACD,WAAiC,CAAC,EACxD,CAAC;EAAEK,KAAK;EAAEC;AAAW,CAAC,MAAM;EAAEC,MAAM,EAAEF,KAAK,CAACE,MAAM;EAAEC,QAAQ,EAAEF,UAAU,CAACE;AAAS,CAAC,CACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,GAAGN,eAAe;;AAEvD;AACA;AACA;AACA,OAAO,MAAMO,qBAAqB,GAAGN,YAAY;AAEjD,SAASO,gBAAgB,QAAkC,cAAW;AACtE,SAASV,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASW,sBAAsB,QAAQ,6BAA0B","ignoreList":[]}
@@ -48,6 +48,7 @@ export const useSheetScreenState = props => {
48
48
  onDidPresent: e => emitEvent('sheetDidPresent', e.nativeEvent),
49
49
  onWillDismiss: _e => emitEvent('sheetWillDismiss', undefined),
50
50
  onDidDismiss,
51
+ onDismissAttempt: _e => emitEvent('sheetDismissAttempt', undefined),
51
52
  onDetentChange: e => emitEvent('sheetDetentChange', e.nativeEvent),
52
53
  onDragBegin: e => emitEvent('sheetDragBegin', e.nativeEvent),
53
54
  onDragChange: e => emitEvent('sheetDragChange', e.nativeEvent),
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useRef","TrueSheetActions","useSheetScreenState","props","detentIndex","resizeKey","closing","dispatch","routeKey","emit","ref","isDismissedRef","isFirstRenderRef","initialDetentIndexRef","current","dismiss","resize","emitEvent","type","data","target","onDidDismiss","undefined","remove","source","eventHandlers","onWillPresent","e","nativeEvent","onDidPresent","onWillDismiss","_e","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","initialDetentIndex"],"sourceRoot":"../../../../src","sources":["navigation/screen/useSheetScreenState.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","TrueSheetActions","useSheetScreenState","props","detentIndex","resizeKey","closing","dispatch","routeKey","emit","ref","isDismissedRef","isFirstRenderRef","initialDetentIndexRef","current","dismiss","resize","emitEvent","type","data","target","onDidDismiss","undefined","remove","source","eventHandlers","onWillPresent","e","nativeEvent","onDidPresent","onWillDismiss","_e","onDismissAttempt","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","initialDetentIndex"],"sourceRoot":"../../../../src","sources":["navigation/screen/useSheetScreenState.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ const ACCESSORS = ['getScrollableNode', 'getNativeScrollRef'];
4
+
5
+ // Resolves a `scrollableRef` value to its scroll node: a native tag on native,
6
+ // a DOM node on web. Imperative-handle lists (e.g. LegendList, FlashList) are
7
+ // not host components, so they go through the accessors ScrollView/FlatList
8
+ // also expose. A composite result is resolved again until it yields a tag or
9
+ // host node. `getScrollResponder` is skipped: it returns the ScrollView class
10
+ // instance, which findNodeHandle resolves to its first host child (the
11
+ // SwipeRefreshLayout on Android when a refreshControl is set).
12
+ export function resolveScrollable(scrollable) {
13
+ if (!scrollable || typeof scrollable !== 'object') return scrollable;
14
+ for (const name of ACCESSORS) {
15
+ const accessor = scrollable[name];
16
+ if (typeof accessor !== 'function') continue;
17
+ let node;
18
+ try {
19
+ node = accessor.call(scrollable);
20
+ } catch {
21
+ // e.g. LegendList forwarding to a custom scroll component that lacks it
22
+ continue;
23
+ }
24
+ if (node != null && node !== scrollable) return resolveScrollable(node);
25
+ }
26
+ return scrollable;
27
+ }
28
+ //# sourceMappingURL=scrollable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ACCESSORS","resolveScrollable","scrollable","name","accessor","node","call"],"sourceRoot":"../../src","sources":["scrollable.ts"],"mappings":";;AAAA,MAAMA,SAAS,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,CAAU;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,UAAmB,EAAW;EAC9D,IAAI,CAACA,UAAU,IAAI,OAAOA,UAAU,KAAK,QAAQ,EAAE,OAAOA,UAAU;EACpE,KAAK,MAAMC,IAAI,IAAIH,SAAS,EAAE;IAC5B,MAAMI,QAAQ,GAAIF,UAAU,CAA6BC,IAAI,CAAC;IAC9D,IAAI,OAAOC,QAAQ,KAAK,UAAU,EAAE;IACpC,IAAIC,IAAa;IACjB,IAAI;MACFA,IAAI,GAAGD,QAAQ,CAACE,IAAI,CAACJ,UAAU,CAAC;IAClC,CAAC,CAAC,MAAM;MACN;MACA;IACF;IACA,IAAIG,IAAI,IAAI,IAAI,IAAIA,IAAI,KAAKH,UAAU,EAAE,OAAOD,iBAAiB,CAACI,IAAI,CAAC;EACzE;EACA,OAAOH,UAAU;AACnB","ignoreList":[]}
@@ -6,7 +6,7 @@ export const DEFAULT_FORM_SHEET_WIDTH = 580;
6
6
  export const DEFAULT_FORM_SHEET_HEIGHT_RATIO = 0.5;
7
7
  export const COLOR_SURFACE_CONTAINER_LOW_LIGHT = '#F7F2FA';
8
8
  export const COLOR_SURFACE_CONTAINER_LOW_DARK = '#1D1B20';
9
- export const DEFAULT_ANCHOR_OFFSET = 16;
9
+ export const DEFAULT_PLACEMENT_OFFSET = 16;
10
10
  export const DEFAULT_DETACHED_OFFSET = 16;
11
11
  export const DEFAULT_GRABBER_COLOR_LIGHT = 'rgba(0, 0, 0, 0.3)';
12
12
  export const DEFAULT_GRABBER_COLOR_DARK = 'rgba(255, 255, 255, 0.3)';
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_CORNER_RADIUS","DEFAULT_MAX_WIDTH","DEFAULT_FORM_SHEET_WIDTH","DEFAULT_FORM_SHEET_HEIGHT_RATIO","COLOR_SURFACE_CONTAINER_LOW_LIGHT","COLOR_SURFACE_CONTAINER_LOW_DARK","DEFAULT_ANCHOR_OFFSET","DEFAULT_DETACHED_OFFSET","DEFAULT_GRABBER_COLOR_LIGHT","DEFAULT_GRABBER_COLOR_DARK","DEFAULT_GRABBER_WIDTH","DEFAULT_GRABBER_HEIGHT","DEFAULT_GRABBER_TOP_MARGIN"],"sourceRoot":"../../../src","sources":["web/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,qBAAqB,GAAG,EAAE;AACvC,OAAO,MAAMC,iBAAiB,GAAG,GAAG;AACpC,OAAO,MAAMC,wBAAwB,GAAG,GAAG;AAC3C,OAAO,MAAMC,+BAA+B,GAAG,GAAG;AAClD,OAAO,MAAMC,iCAAiC,GAAG,SAAS;AAC1D,OAAO,MAAMC,gCAAgC,GAAG,SAAS;AACzD,OAAO,MAAMC,qBAAqB,GAAG,EAAE;AACvC,OAAO,MAAMC,uBAAuB,GAAG,EAAE;AACzC,OAAO,MAAMC,2BAA2B,GAAG,oBAAoB;AAC/D,OAAO,MAAMC,0BAA0B,GAAG,0BAA0B;AACpE,OAAO,MAAMC,qBAAqB,GAAG,EAAE;AACvC,OAAO,MAAMC,sBAAsB,GAAG,CAAC;AACvC,OAAO,MAAMC,0BAA0B,GAAG,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_CORNER_RADIUS","DEFAULT_MAX_WIDTH","DEFAULT_FORM_SHEET_WIDTH","DEFAULT_FORM_SHEET_HEIGHT_RATIO","COLOR_SURFACE_CONTAINER_LOW_LIGHT","COLOR_SURFACE_CONTAINER_LOW_DARK","DEFAULT_PLACEMENT_OFFSET","DEFAULT_DETACHED_OFFSET","DEFAULT_GRABBER_COLOR_LIGHT","DEFAULT_GRABBER_COLOR_DARK","DEFAULT_GRABBER_WIDTH","DEFAULT_GRABBER_HEIGHT","DEFAULT_GRABBER_TOP_MARGIN"],"sourceRoot":"../../../src","sources":["web/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,qBAAqB,GAAG,EAAE;AACvC,OAAO,MAAMC,iBAAiB,GAAG,GAAG;AACpC,OAAO,MAAMC,wBAAwB,GAAG,GAAG;AAC3C,OAAO,MAAMC,+BAA+B,GAAG,GAAG;AAClD,OAAO,MAAMC,iCAAiC,GAAG,SAAS;AAC1D,OAAO,MAAMC,gCAAgC,GAAG,SAAS;AACzD,OAAO,MAAMC,wBAAwB,GAAG,EAAE;AAC1C,OAAO,MAAMC,uBAAuB,GAAG,EAAE;AACzC,OAAO,MAAMC,2BAA2B,GAAG,oBAAoB;AAC/D,OAAO,MAAMC,0BAA0B,GAAG,0BAA0B;AACpE,OAAO,MAAMC,qBAAqB,GAAG,EAAE;AACvC,OAAO,MAAMC,sBAAsB,GAAG,CAAC;AACvC,OAAO,MAAMC,0BAA0B,GAAG,CAAC","ignoreList":[]}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ /// <reference lib="dom" />
4
+ import { useEffect, useState } from 'react';
5
+ import { FOOTER_INSET } from "./layout.js";
6
+ import { getScrollParent } from "./vaul/use-prevent-scroll.js";
7
+ // Subpixel tolerance between the visual and layout viewport heights
8
+ const VIEWPORT_EPSILON = 1;
9
+ const readKeyboardViewport = () => {
10
+ const vv = window.visualViewport;
11
+ if (!vv) return undefined;
12
+ const layoutHeight = document.documentElement.clientHeight;
13
+ // Pinch-zoom shrinks the visual viewport too — scaling it back out leaves
14
+ // only what the keyboard covers.
15
+ if (vv.height * vv.scale >= layoutHeight - VIEWPORT_EPSILON) return undefined;
16
+ return {
17
+ top: vv.offsetTop,
18
+ height: vv.height,
19
+ layoutHeight
20
+ };
21
+ };
22
+ const isSameViewport = (a, b) => a === b || a !== undefined && b !== undefined && a.top === b.top && a.height === b.height && a.layoutHeight === b.layoutHeight;
23
+
24
+ /**
25
+ * Tracks the visual viewport while a soft keyboard shrinks it. iOS Safari and
26
+ * Chrome (default `interactive-widget`) keep the layout viewport — and every
27
+ * fixed element — full height under the keyboard, so the sheet has to be laid
28
+ * out against the visual viewport instead.
29
+ */
30
+ export function useKeyboardViewport(enabled) {
31
+ const [viewport, setViewport] = useState();
32
+ useEffect(() => {
33
+ const vv = window.visualViewport;
34
+ if (!enabled || !vv) {
35
+ setViewport(undefined);
36
+ return undefined;
37
+ }
38
+ const update = () => {
39
+ const next = readKeyboardViewport();
40
+ setViewport(current => isSameViewport(current, next) ? current : next);
41
+ };
42
+ update();
43
+ vv.addEventListener('resize', update);
44
+ vv.addEventListener('scroll', update);
45
+ window.addEventListener('resize', update);
46
+ return () => {
47
+ vv.removeEventListener('resize', update);
48
+ vv.removeEventListener('scroll', update);
49
+ window.removeEventListener('resize', update);
50
+ };
51
+ }, [enabled]);
52
+ return viewport;
53
+ }
54
+
55
+ /**
56
+ * Scrolls the focused field in `container` back above its scroll parent's
57
+ * bottom edge, clearing a floating footer. The browser only reveals it on
58
+ * focus — before the sheet fits above the keyboard.
59
+ */
60
+ export function revealFocusedElement(container) {
61
+ const focused = document.activeElement;
62
+ if (!(focused instanceof HTMLElement) || !container.contains(focused)) return;
63
+ const scroller = getScrollParent(focused);
64
+ if (!container.contains(scroller)) return;
65
+ const footerInset = parseFloat(getComputedStyle(scroller).getPropertyValue(FOOTER_INSET)) || 0;
66
+ const overflow = focused.getBoundingClientRect().bottom - (scroller.getBoundingClientRect().bottom - footerInset);
67
+ if (overflow > 0) scroller.scrollTop += overflow;
68
+ }
69
+ //# sourceMappingURL=keyboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useState","FOOTER_INSET","getScrollParent","VIEWPORT_EPSILON","readKeyboardViewport","vv","window","visualViewport","undefined","layoutHeight","document","documentElement","clientHeight","height","scale","top","offsetTop","isSameViewport","a","b","useKeyboardViewport","enabled","viewport","setViewport","update","next","current","addEventListener","removeEventListener","revealFocusedElement","container","focused","activeElement","HTMLElement","contains","scroller","footerInset","parseFloat","getComputedStyle","getPropertyValue","overflow","getBoundingClientRect","bottom","scrollTop"],"sourceRoot":"../../../src","sources":["web/keyboard.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+
3
+ /// <reference lib="dom" />
4
+
5
+ export const FOOTER_INSET = '--truesheet-footer-inset';
6
+ export function observeSheetLayout({
7
+ drawer,
8
+ layout,
9
+ getContent,
10
+ getHeader,
11
+ getFooter,
12
+ getScrollable,
13
+ absoluteHeader,
14
+ absoluteFooter,
15
+ footerInsetAdjustment,
16
+ measureContent,
17
+ onHeightChange
18
+ }) {
19
+ let frame = 0;
20
+ let disposed = false;
21
+ let width = -1;
22
+ let height = -1;
23
+ let scroller = null;
24
+ let originalPadding = '';
25
+ let insetPadding = '';
26
+ let appliedInset = 0;
27
+ const observed = new Set();
28
+
29
+ // This tree has no viewport constraint or injected footer inset. Its resize
30
+ // observer catches intrinsic changes without observing the live flex layout.
31
+ const measurement = measureContent ? document.createElement('div') : null;
32
+ if (measurement) {
33
+ Object.assign(measurement.style, {
34
+ position: 'absolute',
35
+ top: '0',
36
+ left: '0',
37
+ display: 'flex',
38
+ flexDirection: 'column',
39
+ visibility: 'hidden',
40
+ pointerEvents: 'none'
41
+ });
42
+ measurement.style.setProperty(FOOTER_INSET, '0px');
43
+ measurement.inert = true;
44
+ measurement.setAttribute('aria-hidden', 'true');
45
+ measurement.setAttribute('data-truesheet-measure', '');
46
+ drawer.appendChild(measurement);
47
+ }
48
+ const measure = () => {
49
+ if (!measurement?.isConnected) return;
50
+ const headerHeight = absoluteHeader ? 0 : getHeader()?.offsetHeight ?? 0;
51
+ const footerHeight = !absoluteFooter || footerInsetAdjustment && scroller ? getFooter()?.offsetHeight ?? 0 : 0;
52
+ const next = measurement.offsetHeight + headerHeight + footerHeight;
53
+ if (height === next) return;
54
+ height = next;
55
+ onHeightChange(next);
56
+ };
57
+ const updateInset = () => {
58
+ let inset = 0;
59
+ const footer = getFooter();
60
+ if (footerInsetAdjustment && scroller && footer) {
61
+ let bottom = scroller.offsetTop + scroller.offsetHeight;
62
+ let parent = scroller.offsetParent;
63
+ while (parent instanceof HTMLElement && parent !== layout) {
64
+ bottom += parent.offsetTop;
65
+ parent = parent.offsetParent;
66
+ }
67
+ if (parent === layout) {
68
+ inset = Math.min(footer.offsetHeight, Math.max(0, bottom - (layout.clientHeight - footer.offsetHeight)));
69
+ }
70
+ }
71
+ if (inset === appliedInset) return;
72
+ appliedInset = inset;
73
+ layout.style.setProperty(FOOTER_INSET, `${inset}px`);
74
+ };
75
+ const resizeObserver = new ResizeObserver(() => {
76
+ if (measurement && width !== layout.clientWidth) {
77
+ width = layout.clientWidth;
78
+ measurement.style.width = `${width}px`;
79
+ }
80
+ updateInset();
81
+ measure();
82
+ });
83
+ const measurementObserver = new ResizeObserver(measure);
84
+ if (measurement) measurementObserver.observe(measurement);
85
+ const restorePadding = () => {
86
+ if (scroller && scroller.style.paddingBottom === insetPadding) {
87
+ scroller.style.paddingBottom = originalPadding;
88
+ }
89
+ };
90
+ const sync = () => {
91
+ if (disposed) return;
92
+ const content = getContent();
93
+ const nextScroller = getScrollable();
94
+ if (nextScroller !== scroller) {
95
+ restorePadding();
96
+ scroller = nextScroller;
97
+ insetPadding = '';
98
+ }
99
+ if (footerInsetAdjustment && scroller && (!insetPadding || scroller.style.paddingBottom !== insetPadding)) {
100
+ originalPadding = scroller.style.paddingBottom;
101
+ const base = getComputedStyle(scroller).paddingBottom;
102
+ insetPadding = `calc(${base} + var(${FOOTER_INSET}, 0px))`;
103
+ scroller.style.paddingBottom = insetPadding;
104
+ insetPadding = scroller.style.paddingBottom;
105
+ }
106
+ const nodes = new Set([layout]);
107
+ for (const node of [getHeader(), getFooter(), scroller]) {
108
+ if (node) nodes.add(node);
109
+ }
110
+ for (const node of observed) {
111
+ if (!nodes.has(node)) {
112
+ resizeObserver.unobserve(node);
113
+ observed.delete(node);
114
+ }
115
+ }
116
+ for (const node of nodes) {
117
+ if (!observed.has(node)) {
118
+ resizeObserver.observe(node);
119
+ observed.add(node);
120
+ }
121
+ }
122
+ if (measurement && content) {
123
+ width = layout.clientWidth;
124
+ measurement.style.width = `${width}px`;
125
+ measurement.replaceChildren(content.cloneNode(true));
126
+ }
127
+ updateInset();
128
+ measure();
129
+ };
130
+ const mutationObserver = new MutationObserver(mutations => {
131
+ const changed = mutations.some(mutation => mutation.target !== layout || mutation.type === 'childList');
132
+ if (!changed || frame) return;
133
+ frame = requestAnimationFrame(() => {
134
+ frame = 0;
135
+ sync();
136
+ });
137
+ });
138
+ sync();
139
+ mutationObserver.observe(layout, {
140
+ childList: true,
141
+ characterData: true,
142
+ attributes: true,
143
+ attributeFilter: ['style', 'class'],
144
+ subtree: true
145
+ });
146
+ const footer = getFooter();
147
+ if (absoluteFooter && footer) {
148
+ mutationObserver.observe(footer, {
149
+ childList: true,
150
+ characterData: true,
151
+ subtree: true
152
+ });
153
+ }
154
+ return {
155
+ measure,
156
+ disconnect: () => {
157
+ disposed = true;
158
+ cancelAnimationFrame(frame);
159
+ mutationObserver.disconnect();
160
+ resizeObserver.disconnect();
161
+ measurementObserver.disconnect();
162
+ restorePadding();
163
+ layout.style.removeProperty(FOOTER_INSET);
164
+ measurement?.remove();
165
+ }
166
+ };
167
+ }
168
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FOOTER_INSET","observeSheetLayout","drawer","layout","getContent","getHeader","getFooter","getScrollable","absoluteHeader","absoluteFooter","footerInsetAdjustment","measureContent","onHeightChange","frame","disposed","width","height","scroller","originalPadding","insetPadding","appliedInset","observed","Set","measurement","document","createElement","Object","assign","style","position","top","left","display","flexDirection","visibility","pointerEvents","setProperty","inert","setAttribute","appendChild","measure","isConnected","headerHeight","offsetHeight","footerHeight","next","updateInset","inset","footer","bottom","offsetTop","parent","offsetParent","HTMLElement","Math","min","max","clientHeight","resizeObserver","ResizeObserver","clientWidth","measurementObserver","observe","restorePadding","paddingBottom","sync","content","nextScroller","base","getComputedStyle","nodes","node","add","has","unobserve","delete","replaceChildren","cloneNode","mutationObserver","MutationObserver","mutations","changed","some","mutation","target","type","requestAnimationFrame","childList","characterData","attributes","attributeFilter","subtree","disconnect","cancelAnimationFrame","removeProperty","remove"],"sourceRoot":"../../../src","sources":["web/layout.ts"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,15 @@ export const TRANSITIONS = {
7
7
  export const VELOCITY_THRESHOLD = 0.4;
8
8
  export const DEFAULT_PEEK_HEIGHT = 150;
9
9
  export const CLOSE_THRESHOLD = 0.25;
10
+
11
+ // Compose Material3 SheetState's dismiss thresholds, used by the 'short'
12
+ // dismiss threshold: velocity in px/ms, distance in px.
13
+ export const SHORT_DISMISS_VELOCITY = 0.125;
14
+ export const SHORT_DISMISS_DISTANCE = 56;
15
+
16
+ // Minimum downward pull (px) on a non-dismissible drawer at its first snap
17
+ // point before the release counts as a dismiss attempt.
18
+ export const DISMISS_ATTEMPT_THRESHOLD = 24;
10
19
  export const SCROLL_LOCK_TIMEOUT = 100;
11
20
  export const BORDER_RADIUS = 8;
12
21
  export const NESTED_DISPLACEMENT = 16;
@@ -1 +1 @@
1
- {"version":3,"names":["TRANSITIONS","DURATION","EASE","VELOCITY_THRESHOLD","DEFAULT_PEEK_HEIGHT","CLOSE_THRESHOLD","SCROLL_LOCK_TIMEOUT","BORDER_RADIUS","NESTED_DISPLACEMENT","WINDOW_TOP_OFFSET","DRAG_CLASS"],"sourceRoot":"../../../../src","sources":["web/vaul/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,WAAW,GAAG;EACzBC,QAAQ,EAAE,GAAG;EACbC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACzB,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAG,GAAG;AAErC,OAAO,MAAMC,mBAAmB,GAAG,GAAG;AAEtC,OAAO,MAAMC,eAAe,GAAG,IAAI;AAEnC,OAAO,MAAMC,mBAAmB,GAAG,GAAG;AAEtC,OAAO,MAAMC,aAAa,GAAG,CAAC;AAE9B,OAAO,MAAMC,mBAAmB,GAAG,EAAE;AAErC,OAAO,MAAMC,iBAAiB,GAAG,EAAE;AAEnC,OAAO,MAAMC,UAAU,GAAG,eAAe","ignoreList":[]}
1
+ {"version":3,"names":["TRANSITIONS","DURATION","EASE","VELOCITY_THRESHOLD","DEFAULT_PEEK_HEIGHT","CLOSE_THRESHOLD","SHORT_DISMISS_VELOCITY","SHORT_DISMISS_DISTANCE","DISMISS_ATTEMPT_THRESHOLD","SCROLL_LOCK_TIMEOUT","BORDER_RADIUS","NESTED_DISPLACEMENT","WINDOW_TOP_OFFSET","DRAG_CLASS"],"sourceRoot":"../../../../src","sources":["web/vaul/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,WAAW,GAAG;EACzBC,QAAQ,EAAE,GAAG;EACbC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACzB,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAG,GAAG;AAErC,OAAO,MAAMC,mBAAmB,GAAG,GAAG;AAEtC,OAAO,MAAMC,eAAe,GAAG,IAAI;;AAEnC;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAG,KAAK;AAC3C,OAAO,MAAMC,sBAAsB,GAAG,EAAE;;AAExC;AACA;AACA,OAAO,MAAMC,yBAAyB,GAAG,EAAE;AAE3C,OAAO,MAAMC,mBAAmB,GAAG,GAAG;AAEtC,OAAO,MAAMC,aAAa,GAAG,CAAC;AAE9B,OAAO,MAAMC,mBAAmB,GAAG,EAAE;AAErC,OAAO,MAAMC,iBAAiB,GAAG,EAAE;AAEnC,OAAO,MAAMC,UAAU,GAAG,eAAe","ignoreList":[]}
@@ -36,6 +36,10 @@ export const DrawerContext = /*#__PURE__*/React.createContext({
36
36
  shouldAnimate: {
37
37
  current: true
38
38
  },
39
+ initialAnimated: true,
40
+ hasPresented: {
41
+ current: false
42
+ },
39
43
  shouldScaleBackground: false,
40
44
  setBackgroundColorOnScale: true,
41
45
  noBodyStyles: false,
@@ -1 +1 @@
1
- {"version":3,"names":["React","DrawerContext","createContext","drawerRef","current","overlayRef","onPress","onRelease","onDrag","onTouchDrag","onTouchRelease","onNestedDrag","onNestedOpenChange","onNestedRelease","openProp","undefined","dismissible","isOpen","isDragging","keyboardIsOpen","snapPointsOffset","snapPoints","handleOnly","modal","shouldFade","activeSnapPoint","onOpenChange","setActiveSnapPoint","closeDrawer","direction","shouldAnimate","shouldScaleBackground","setBackgroundColorOnScale","noBodyStyles","container","autoFocus","onPositionChangeRef","setContentHeight","detached","detachedOffset","detachedRadius","useDrawerContext","context","useContext","Error"],"sourceRoot":"../../../../src","sources":["web/vaul/context.ts"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAuDzB,OAAO,MAAMC,aAAa,gBAAGD,KAAK,CAACE,aAAa,CAAqB;EACnEC,SAAS,EAAE;IAAEC,OAAO,EAAE;EAAK,CAAC;EAC5BC,UAAU,EAAE;IAAED,OAAO,EAAE;EAAK,CAAC;EAC7BE,OAAO,EAAEA,CAAA,KAAM,CAAC,CAAC;EACjBC,SAAS,EAAEA,CAAA,KAAM,CAAC,CAAC;EACnBC,MAAM,EAAEA,CAAA,KAAM,CAAC,CAAC;EAChBC,WAAW,EAAEA,CAAA,KAAM,CAAC,CAAC;EACrBC,cAAc,EAAEA,CAAA,KAAM,CAAC,CAAC;EACxBC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAC;EACtBC,kBAAkB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC5BC,eAAe,EAAEA,CAAA,KAAM,CAAC,CAAC;EACzBC,QAAQ,EAAEC,SAAS;EACnBC,WAAW,EAAE,KAAK;EAClBC,MAAM,EAAE,KAAK;EACbC,UAAU,EAAE,KAAK;EACjBC,cAAc,EAAE;IAAEf,OAAO,EAAE;EAAM,CAAC;EAClCgB,gBAAgB,EAAE,IAAI;EACtBC,UAAU,EAAE,IAAI;EAChBC,UAAU,EAAE,KAAK;EACjBC,KAAK,EAAE,KAAK;EACZC,UAAU,EAAE,KAAK;EACjBC,eAAe,EAAE,IAAI;EACrBC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAC;EACtBC,kBAAkB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC5BC,WAAW,EAAEA,CAAA,KAAM,CAAC,CAAC;EACrBC,SAAS,EAAE,QAAQ;EACnBC,aAAa,EAAE;IAAE1B,OAAO,EAAE;EAAK,CAAC;EAChC2B,qBAAqB,EAAE,KAAK;EAC5BC,yBAAyB,EAAE,IAAI;EAC/BC,YAAY,EAAE,KAAK;EACnBC,SAAS,EAAE,IAAI;EACfC,SAAS,EAAE,KAAK;EAChBC,mBAAmB,EAAE;IAAEhC,OAAO,EAAEW;EAAU,CAAC;EAC3CsB,gBAAgB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC1BC,QAAQ,EAAE,KAAK;EACfC,cAAc,EAAE,CAAC;EACjBC,cAAc,EAAE;AAClB,CAAC,CAAC;AAEF,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EACpC,MAAMC,OAAO,GAAG1C,KAAK,CAAC2C,UAAU,CAAC1C,aAAa,CAAC;EAC/C,IAAI,CAACyC,OAAO,EAAE;IACZ,MAAM,IAAIE,KAAK,CAAC,oDAAoD,CAAC;EACvE;EACA,OAAOF,OAAO;AAChB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","DrawerContext","createContext","drawerRef","current","overlayRef","onPress","onRelease","onDrag","onTouchDrag","onTouchRelease","onNestedDrag","onNestedOpenChange","onNestedRelease","openProp","undefined","dismissible","isOpen","isDragging","keyboardIsOpen","snapPointsOffset","snapPoints","handleOnly","modal","shouldFade","activeSnapPoint","onOpenChange","setActiveSnapPoint","closeDrawer","direction","shouldAnimate","initialAnimated","hasPresented","shouldScaleBackground","setBackgroundColorOnScale","noBodyStyles","container","autoFocus","onPositionChangeRef","setContentHeight","detached","detachedOffset","detachedRadius","useDrawerContext","context","useContext","Error"],"sourceRoot":"../../../../src","sources":["web/vaul/context.ts"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AA2DzB,OAAO,MAAMC,aAAa,gBAAGD,KAAK,CAACE,aAAa,CAAqB;EACnEC,SAAS,EAAE;IAAEC,OAAO,EAAE;EAAK,CAAC;EAC5BC,UAAU,EAAE;IAAED,OAAO,EAAE;EAAK,CAAC;EAC7BE,OAAO,EAAEA,CAAA,KAAM,CAAC,CAAC;EACjBC,SAAS,EAAEA,CAAA,KAAM,CAAC,CAAC;EACnBC,MAAM,EAAEA,CAAA,KAAM,CAAC,CAAC;EAChBC,WAAW,EAAEA,CAAA,KAAM,CAAC,CAAC;EACrBC,cAAc,EAAEA,CAAA,KAAM,CAAC,CAAC;EACxBC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAC;EACtBC,kBAAkB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC5BC,eAAe,EAAEA,CAAA,KAAM,CAAC,CAAC;EACzBC,QAAQ,EAAEC,SAAS;EACnBC,WAAW,EAAE,KAAK;EAClBC,MAAM,EAAE,KAAK;EACbC,UAAU,EAAE,KAAK;EACjBC,cAAc,EAAE;IAAEf,OAAO,EAAE;EAAM,CAAC;EAClCgB,gBAAgB,EAAE,IAAI;EACtBC,UAAU,EAAE,IAAI;EAChBC,UAAU,EAAE,KAAK;EACjBC,KAAK,EAAE,KAAK;EACZC,UAAU,EAAE,KAAK;EACjBC,eAAe,EAAE,IAAI;EACrBC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAC;EACtBC,kBAAkB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC5BC,WAAW,EAAEA,CAAA,KAAM,CAAC,CAAC;EACrBC,SAAS,EAAE,QAAQ;EACnBC,aAAa,EAAE;IAAE1B,OAAO,EAAE;EAAK,CAAC;EAChC2B,eAAe,EAAE,IAAI;EACrBC,YAAY,EAAE;IAAE5B,OAAO,EAAE;EAAM,CAAC;EAChC6B,qBAAqB,EAAE,KAAK;EAC5BC,yBAAyB,EAAE,IAAI;EAC/BC,YAAY,EAAE,KAAK;EACnBC,SAAS,EAAE,IAAI;EACfC,SAAS,EAAE,KAAK;EAChBC,mBAAmB,EAAE;IAAElC,OAAO,EAAEW;EAAU,CAAC;EAC3CwB,gBAAgB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC1BC,QAAQ,EAAE,KAAK;EACfC,cAAc,EAAE,CAAC;EACjBC,cAAc,EAAE;AAClB,CAAC,CAAC;AAEF,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EACpC,MAAMC,OAAO,GAAG5C,KAAK,CAAC6C,UAAU,CAAC5C,aAAa,CAAC;EAC/C,IAAI,CAAC2C,OAAO,EAAE;IACZ,MAAM,IAAIE,KAAK,CAAC,oDAAoD,CAAC;EACvE;EACA,OAAOF,OAAO;AAChB,CAAC","ignoreList":[]}
@@ -54,6 +54,7 @@ export const isVertical = direction => {
54
54
  return direction;
55
55
  }
56
56
  };
57
+ export const getSnapPointTransform = direction => isVertical(direction) ? 'translate3d(0, var(--snap-point-height), 0)' : 'translate3d(var(--snap-point-height), 0, 0)';
57
58
  export function getTranslate(element, direction) {
58
59
  if (!element) {
59
60
  return null;
@@ -1 +1 @@
1
- {"version":3,"names":["cache","WeakMap","isInView","el","rect","getBoundingClientRect","window","visualViewport","top","left","bottom","height","right","width","set","styles","ignoreCache","HTMLElement","originalStyles","style","Object","entries","forEach","key","value","startsWith","setProperty","reset","prop","get","isVertical","direction","getTranslate","element","getComputedStyle","transform","webkitTransform","mozTransform","mat","match","parseFloat","split","dampenValue","v","Math","log","assignStyle","prevStyle","cssText","assign","chain","fns","args","fn"],"sourceRoot":"../../../../src","sources":["web/vaul/helpers.ts"],"mappings":";;AAMA;AACA;AACA;;AAGA,MAAMA,KAAK,GAAG,IAAIC,OAAO,CAAkD,CAAC;AAE5E,OAAO,SAASC,QAAQA,CAACC,EAAe,EAAW;EACjD,MAAMC,IAAI,GAAGD,EAAE,CAACE,qBAAqB,CAAC,CAAC;EAEvC,IAAI,CAACC,MAAM,CAACC,cAAc,EAAE,OAAO,KAAK;EAExC,OACEH,IAAI,CAACI,GAAG,IAAI,CAAC,IACbJ,IAAI,CAACK,IAAI,IAAI,CAAC;EACd;EACAL,IAAI,CAACM,MAAM,IAAIJ,MAAM,CAACC,cAAc,CAACI,MAAM,GAAG,EAAE,IAChDP,IAAI,CAACQ,KAAK,IAAIN,MAAM,CAACC,cAAc,CAACM,KAAK;AAE7C;AAEA,OAAO,SAASC,GAAGA,CACjBX,EAA4C,EAC5CY,MAAa,EACbC,WAAW,GAAG,KAAK,EACnB;EACA,IAAI,CAACb,EAAE,IAAI,EAAEA,EAAE,YAAYc,WAAW,CAAC,EAAE;EACzC,IAAIC,cAAkD,GAAG,CAAC,CAAC;EAC3D,MAAMC,KAAK,GAAGhB,EAAE,CAACgB,KAAuB;EAExCC,MAAM,CAACC,OAAO,CAACN,MAAM,CAAC,CAACO,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAmB,KAAK;IACjE,IAAID,GAAG,CAACE,UAAU,CAAC,IAAI,CAAC,EAAE;MACxBtB,EAAE,CAACgB,KAAK,CAACO,WAAW,CAACH,GAAG,EAAEC,KAAK,CAAC;MAChC;IACF;IAEAN,cAAc,CAACK,GAAG,CAAC,GAAGJ,KAAK,CAACI,GAAG,CAAC;IAChCJ,KAAK,CAACI,GAAG,CAAC,GAAGC,KAAK;EACpB,CAAC,CAAC;EAEF,IAAIR,WAAW,EAAE;EAEjBhB,KAAK,CAACc,GAAG,CAACX,EAAE,EAAEe,cAAc,CAAC;AAC/B;AAEA,OAAO,SAASS,KAAKA,CAACxB,EAAgC,EAAEyB,IAAa,EAAE;EACrE,IAAI,CAACzB,EAAE,IAAI,EAAEA,EAAE,YAAYc,WAAW,CAAC,EAAE;EACzC,IAAIC,cAAc,GAAGlB,KAAK,CAAC6B,GAAG,CAAC1B,EAAE,CAAC;EAElC,IAAI,CAACe,cAAc,EAAE;IACnB;EACF;EAEA,MAAMC,KAAK,GAAGhB,EAAE,CAACgB,KAAuB;EACxC,IAAIS,IAAI,EAAE;IACRT,KAAK,CAACS,IAAI,CAAC,GAAGV,cAAc,CAACU,IAAI,CAAC;EACpC,CAAC,MAAM;IACLR,MAAM,CAACC,OAAO,CAACH,cAAc,CAAC,CAACI,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;MACvDL,KAAK,CAACI,GAAG,CAAC,GAAGC,KAAK;IACpB,CAAC,CAAC;EACJ;AACF;AAEA,OAAO,MAAMM,UAAU,GAAIC,SAA0B,IAAK;EACxD,QAAQA,SAAS;IACf,KAAK,KAAK;IACV,KAAK,QAAQ;MACX,OAAO,IAAI;IACb,KAAK,MAAM;IACX,KAAK,OAAO;MACV,OAAO,KAAK;IACd;MACE,OAAOA,SAAS;EACpB;AACF,CAAC;AAED,OAAO,SAASC,YAAYA,CAACC,OAAoB,EAAEF,SAA0B,EAAiB;EAC5F,IAAI,CAACE,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EACA,MAAMd,KAAK,GAAGb,MAAM,CAAC4B,gBAAgB,CAACD,OAAO,CAAC;EAC9C,MAAME,SAAS;EACb;EACAhB,KAAK,CAACgB,SAAS,IAAIhB,KAAK,CAACiB,eAAe,IAAIjB,KAAK,CAACkB,YAAY;EAChE,IAAIC,GAAG,GAAGH,SAAS,CAACI,KAAK,CAAC,oBAAoB,CAAC;EAC/C,IAAID,GAAG,EAAE;IACP;IACA,OAAOE,UAAU,CAACF,GAAG,CAAC,CAAC,CAAC,CAACG,KAAK,CAAC,IAAI,CAAC,CAACX,UAAU,CAACC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;EACxE;EACA;EACAO,GAAG,GAAGH,SAAS,CAACI,KAAK,CAAC,kBAAkB,CAAC;EACzC,OAAOD,GAAG,GAAGE,UAAU,CAACF,GAAG,CAAC,CAAC,CAAC,CAACG,KAAK,CAAC,IAAI,CAAC,CAACX,UAAU,CAACC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI;AACnF;AAEA,OAAO,SAASW,WAAWA,CAACC,CAAS,EAAE;EACrC,OAAO,CAAC,IAAIC,IAAI,CAACC,GAAG,CAACF,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC;AAEA,OAAO,SAASG,WAAWA,CACzBb,OAAuC,EACvCd,KAAmC,EACnC;EACA,IAAI,CAACc,OAAO,EAAE,OAAO,MAAM,CAAC,CAAC;EAE7B,MAAMc,SAAS,GAAGd,OAAO,CAACd,KAAK,CAAC6B,OAAO;EACvC5B,MAAM,CAAC6B,MAAM,CAAChB,OAAO,CAACd,KAAK,EAAEA,KAAK,CAAC;EAEnC,OAAO,MAAM;IACXc,OAAO,CAACd,KAAK,CAAC6B,OAAO,GAAGD,SAAS;EACnC,CAAC;AACH;;AAEA;AACA;AACA;AACA,OAAO,SAASG,KAAKA,CAAI,GAAGC,GAAQ,EAAE;EACpC,OAAO,CAAC,GAAGC,IAAmD,KAAK;IACjE,KAAK,MAAMC,EAAE,IAAIF,GAAG,EAAE;MACpB,IAAI,OAAOE,EAAE,KAAK,UAAU,EAAE;QAC5B;QACAA,EAAE,CAAC,GAAGD,IAAI,CAAC;MACb;IACF;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["cache","WeakMap","isInView","el","rect","getBoundingClientRect","window","visualViewport","top","left","bottom","height","right","width","set","styles","ignoreCache","HTMLElement","originalStyles","style","Object","entries","forEach","key","value","startsWith","setProperty","reset","prop","get","isVertical","direction","getSnapPointTransform","getTranslate","element","getComputedStyle","transform","webkitTransform","mozTransform","mat","match","parseFloat","split","dampenValue","v","Math","log","assignStyle","prevStyle","cssText","assign","chain","fns","args","fn"],"sourceRoot":"../../../../src","sources":["web/vaul/helpers.ts"],"mappings":"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","ignoreList":[]}