@lodev09/react-native-true-sheet 4.0.0-beta.2 → 4.0.0-beta.21

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 (205) hide show
  1. package/README.md +25 -4
  2. package/android/build.gradle +22 -1
  3. package/android/src/main/java/com/lodev09/truesheet/TrueSheetContainerView.kt +50 -16
  4. package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentView.kt +303 -184
  5. package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentViewManager.kt +5 -1
  6. package/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterView.kt +21 -110
  7. package/android/src/main/java/com/lodev09/truesheet/TrueSheetOverlayView.kt +116 -0
  8. package/android/src/main/java/com/lodev09/truesheet/TrueSheetOverlayViewManager.kt +45 -0
  9. package/android/src/main/java/com/lodev09/truesheet/TrueSheetPackage.kt +2 -1
  10. package/android/src/main/java/com/lodev09/truesheet/TrueSheetStateUpdater.kt +18 -0
  11. package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +124 -50
  12. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +369 -163
  13. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +59 -12
  14. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetBottomSheetBehavior.kt +126 -0
  15. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetBottomSheetView.kt +22 -9
  16. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetCoordinatorLayout.kt +84 -5
  17. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetDetentCalculator.kt +104 -39
  18. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetDimView.kt +3 -0
  19. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetOverlayRootView.kt +137 -0
  20. package/android/src/main/java/com/lodev09/truesheet/events/TrueSheetLifecycleEvents.kt +15 -0
  21. package/android/src/main/java/com/lodev09/truesheet/utils/KeyboardUtils.kt +15 -2
  22. package/android/src/main/java/com/lodev09/truesheet/utils/ScreenUtils.kt +0 -12
  23. package/android/src/main/java/com/lodev09/truesheet/utils/ViewUtils.kt +19 -7
  24. package/android/src/main/jni/TrueSheetSpec.h +1 -0
  25. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewComponentDescriptor.h +1 -9
  26. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewShadowNode.cpp +110 -30
  27. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewShadowNode.h +30 -7
  28. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewState.cpp +2 -2
  29. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewState.h +9 -8
  30. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewComponentDescriptor.h +3 -5
  31. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewShadowNode.cpp +9 -3
  32. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewShadowNode.h +3 -6
  33. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewState.cpp +1 -1
  34. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewState.h +4 -6
  35. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetInsets.cpp +1 -1
  36. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetInsets.h +1 -1
  37. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetLayoutUtils.h +43 -0
  38. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetOverlayViewComponentDescriptor.h +21 -0
  39. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetOverlayViewShadowNode.cpp +17 -0
  40. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetOverlayViewShadowNode.h +33 -0
  41. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewComponentDescriptor.h +3 -5
  42. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewShadowNode.cpp +7 -40
  43. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewShadowNode.h +3 -7
  44. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewState.cpp +3 -5
  45. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewState.h +4 -5
  46. package/ios/TrueSheetContainerView.h +27 -7
  47. package/ios/TrueSheetContainerView.mm +31 -11
  48. package/ios/TrueSheetContentView.h +43 -15
  49. package/ios/TrueSheetContentView.mm +211 -189
  50. package/ios/TrueSheetFooterView.h +6 -0
  51. package/ios/TrueSheetFooterView.mm +93 -17
  52. package/ios/TrueSheetModule.h +2 -7
  53. package/ios/TrueSheetModule.mm +7 -16
  54. package/ios/TrueSheetOverlayView.h +32 -0
  55. package/ios/TrueSheetOverlayView.mm +161 -0
  56. package/ios/TrueSheetView.mm +275 -56
  57. package/ios/TrueSheetViewController.h +31 -3
  58. package/ios/TrueSheetViewController.mm +393 -94
  59. package/ios/core/TrueSheetBlurView.h +0 -2
  60. package/ios/core/TrueSheetBlurView.mm +3 -36
  61. package/ios/core/TrueSheetDetentCalculator.h +7 -1
  62. package/ios/core/TrueSheetDetentCalculator.mm +27 -4
  63. package/ios/core/TrueSheetGrabberView.mm +13 -3
  64. package/ios/core/TrueSheetKeyboardObserver.mm +2 -0
  65. package/ios/core/TrueSheetOverlayContainerView.h +31 -0
  66. package/ios/core/TrueSheetOverlayContainerView.mm +35 -0
  67. package/ios/events/TrueSheetLifecycleEvents.h +2 -0
  68. package/ios/events/TrueSheetLifecycleEvents.mm +8 -0
  69. package/ios/tvos/TrueSheetStubs.mm +12 -0
  70. package/ios/utils/UIView+ScrollEdgeInteraction.h +1 -0
  71. package/ios/utils/UIView+ScrollEdgeInteraction.mm +24 -2
  72. package/lib/module/TrueSheet.js +175 -39
  73. package/lib/module/TrueSheet.js.map +1 -1
  74. package/lib/module/TrueSheet.web.js +220 -243
  75. package/lib/module/TrueSheet.web.js.map +1 -1
  76. package/lib/module/TrueSheetBackground.js +15 -0
  77. package/lib/module/TrueSheetBackground.js.map +1 -0
  78. package/lib/module/TrueSheetOverlay.js +30 -0
  79. package/lib/module/TrueSheetOverlay.js.map +1 -0
  80. package/lib/module/TrueSheetOverlay.web.js +35 -0
  81. package/lib/module/TrueSheetOverlay.web.js.map +1 -0
  82. package/lib/module/TrueSheetPeek.web.js +20 -15
  83. package/lib/module/TrueSheetPeek.web.js.map +1 -1
  84. package/lib/module/detentBackgrounds.js +21 -0
  85. package/lib/module/detentBackgrounds.js.map +1 -0
  86. package/lib/module/fabric/TrueSheetContentViewNativeComponent.ts +1 -1
  87. package/lib/module/fabric/TrueSheetOverlayViewNativeComponent.ts +12 -0
  88. package/lib/module/fabric/TrueSheetViewNativeComponent.ts +15 -10
  89. package/lib/module/index.js +1 -0
  90. package/lib/module/index.js.map +1 -1
  91. package/lib/module/mocks/index.js +18 -2
  92. package/lib/module/mocks/index.js.map +1 -1
  93. package/lib/module/mocks/navigationExpoRouter.js.map +1 -1
  94. package/lib/module/navigation/base-types.js +2 -0
  95. package/lib/module/navigation/base-types.js.map +1 -0
  96. package/lib/module/navigation/createTrueSheetRouter.js +0 -9
  97. package/lib/module/navigation/createTrueSheetRouter.js.map +1 -1
  98. package/lib/module/navigation/expo-router/base-types.js +2 -0
  99. package/lib/module/navigation/expo-router/base-types.js.map +1 -0
  100. package/lib/module/navigation/expo-router/index.js +10 -7
  101. package/lib/module/navigation/expo-router/index.js.map +1 -1
  102. package/lib/module/navigation/expo-router/types.js +4 -0
  103. package/lib/module/navigation/expo-router/types.js.map +1 -0
  104. package/lib/module/navigation/index.js.map +1 -1
  105. package/lib/module/navigation/screen/useSheetScreenState.js +1 -0
  106. package/lib/module/navigation/screen/useSheetScreenState.js.map +1 -1
  107. package/lib/module/web/constants.js +1 -1
  108. package/lib/module/web/constants.js.map +1 -1
  109. package/lib/module/web/layout.js +168 -0
  110. package/lib/module/web/layout.js.map +1 -0
  111. package/lib/module/web/vaul/constants.js +9 -0
  112. package/lib/module/web/vaul/constants.js.map +1 -1
  113. package/lib/module/web/vaul/context.js.map +1 -1
  114. package/lib/module/web/vaul/helpers.js +1 -0
  115. package/lib/module/web/vaul/helpers.js.map +1 -1
  116. package/lib/module/web/vaul/index.js +47 -7
  117. package/lib/module/web/vaul/index.js.map +1 -1
  118. package/lib/module/web/vaul/use-snap-points.js +21 -10
  119. package/lib/module/web/vaul/use-snap-points.js.map +1 -1
  120. package/lib/typescript/src/TrueSheet.d.ts +6 -0
  121. package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
  122. package/lib/typescript/src/TrueSheet.types.d.ts +157 -34
  123. package/lib/typescript/src/TrueSheet.types.d.ts.map +1 -1
  124. package/lib/typescript/src/TrueSheet.web.d.ts.map +1 -1
  125. package/lib/typescript/src/TrueSheetBackground.d.ts +3 -0
  126. package/lib/typescript/src/TrueSheetBackground.d.ts.map +1 -0
  127. package/lib/typescript/src/TrueSheetOverlay.d.ts +8 -0
  128. package/lib/typescript/src/TrueSheetOverlay.d.ts.map +1 -0
  129. package/lib/typescript/src/TrueSheetOverlay.web.d.ts +8 -0
  130. package/lib/typescript/src/TrueSheetOverlay.web.d.ts.map +1 -0
  131. package/lib/typescript/src/TrueSheetPeek.web.d.ts +8 -4
  132. package/lib/typescript/src/TrueSheetPeek.web.d.ts.map +1 -1
  133. package/lib/typescript/src/detentBackgrounds.d.ts +10 -0
  134. package/lib/typescript/src/detentBackgrounds.d.ts.map +1 -0
  135. package/lib/typescript/src/fabric/TrueSheetOverlayViewNativeComponent.d.ts +6 -0
  136. package/lib/typescript/src/fabric/TrueSheetOverlayViewNativeComponent.d.ts.map +1 -0
  137. package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts +12 -7
  138. package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts.map +1 -1
  139. package/lib/typescript/src/index.d.ts +1 -0
  140. package/lib/typescript/src/index.d.ts.map +1 -1
  141. package/lib/typescript/src/mocks/index.d.ts +4 -0
  142. package/lib/typescript/src/mocks/index.d.ts.map +1 -1
  143. package/lib/typescript/src/mocks/navigationExpoRouter.d.ts +3 -3
  144. package/lib/typescript/src/mocks/navigationExpoRouter.d.ts.map +1 -1
  145. package/lib/typescript/src/navigation/base-types.d.ts +9 -0
  146. package/lib/typescript/src/navigation/base-types.d.ts.map +1 -0
  147. package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts +2 -13
  148. package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts.map +1 -1
  149. package/lib/typescript/src/navigation/expo-router/base-types.d.ts +8 -0
  150. package/lib/typescript/src/navigation/expo-router/base-types.d.ts.map +1 -0
  151. package/lib/typescript/src/navigation/expo-router/index.d.ts +8 -6
  152. package/lib/typescript/src/navigation/expo-router/index.d.ts.map +1 -1
  153. package/lib/typescript/src/navigation/expo-router/types.d.ts +44 -0
  154. package/lib/typescript/src/navigation/expo-router/types.d.ts.map +1 -0
  155. package/lib/typescript/src/navigation/index.d.ts +3 -4
  156. package/lib/typescript/src/navigation/index.d.ts.map +1 -1
  157. package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts +2 -1
  158. package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts.map +1 -1
  159. package/lib/typescript/src/navigation/types.d.ts +41 -5
  160. package/lib/typescript/src/navigation/types.d.ts.map +1 -1
  161. package/lib/typescript/src/web/constants.d.ts +1 -1
  162. package/lib/typescript/src/web/constants.d.ts.map +1 -1
  163. package/lib/typescript/src/web/layout.d.ts +19 -0
  164. package/lib/typescript/src/web/layout.d.ts.map +1 -0
  165. package/lib/typescript/src/web/vaul/constants.d.ts +3 -0
  166. package/lib/typescript/src/web/vaul/constants.d.ts.map +1 -1
  167. package/lib/typescript/src/web/vaul/context.d.ts +1 -0
  168. package/lib/typescript/src/web/vaul/context.d.ts.map +1 -1
  169. package/lib/typescript/src/web/vaul/helpers.d.ts +1 -0
  170. package/lib/typescript/src/web/vaul/helpers.d.ts.map +1 -1
  171. package/lib/typescript/src/web/vaul/index.d.ts +13 -1
  172. package/lib/typescript/src/web/vaul/index.d.ts.map +1 -1
  173. package/lib/typescript/src/web/vaul/use-snap-points.d.ts +2 -1
  174. package/lib/typescript/src/web/vaul/use-snap-points.d.ts.map +1 -1
  175. package/package.json +17 -8
  176. package/react-native.config.js +1 -0
  177. package/src/TrueSheet.tsx +208 -48
  178. package/src/TrueSheet.types.ts +166 -35
  179. package/src/TrueSheet.web.tsx +272 -290
  180. package/src/TrueSheetBackground.tsx +17 -0
  181. package/src/TrueSheetOverlay.tsx +24 -0
  182. package/src/TrueSheetOverlay.web.tsx +33 -0
  183. package/src/TrueSheetPeek.web.tsx +25 -23
  184. package/src/detentBackgrounds.ts +24 -0
  185. package/src/fabric/TrueSheetContentViewNativeComponent.ts +1 -1
  186. package/src/fabric/TrueSheetOverlayViewNativeComponent.ts +12 -0
  187. package/src/fabric/TrueSheetViewNativeComponent.ts +15 -10
  188. package/src/index.ts +1 -0
  189. package/src/mocks/index.ts +17 -2
  190. package/src/mocks/navigationExpoRouter.ts +6 -5
  191. package/src/navigation/base-types.ts +20 -0
  192. package/src/navigation/createTrueSheetRouter.ts +5 -33
  193. package/src/navigation/expo-router/base-types.ts +18 -0
  194. package/src/navigation/expo-router/index.ts +28 -30
  195. package/src/navigation/expo-router/types.ts +116 -0
  196. package/src/navigation/index.ts +6 -7
  197. package/src/navigation/screen/useSheetScreenState.ts +2 -0
  198. package/src/navigation/types.ts +75 -22
  199. package/src/web/constants.ts +1 -1
  200. package/src/web/layout.ts +196 -0
  201. package/src/web/vaul/constants.ts +9 -0
  202. package/src/web/vaul/context.ts +1 -0
  203. package/src/web/vaul/helpers.ts +5 -0
  204. package/src/web/vaul/index.tsx +75 -5
  205. package/src/web/vaul/use-snap-points.ts +32 -15
@@ -1,15 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  import { TrueSheetActions } from "./actions.js";
4
-
5
- /**
6
- * The base `StackRouter` factory to wrap, typed generically over the state and
7
- * action types the wrapper threads through — `StackRouter` is structural and
8
- * never touches the sheet-specific fields.
9
- * Injected by each entry point so the shared router never imports
10
- * `@react-navigation/*` at runtime (Expo Router apps don't install it).
11
- */
12
-
13
4
  const uid = () => Math.random().toString(36).slice(2, 10);
14
5
  const ensureBaseRoute = (state, baseRouteName, routeParamList) => {
15
6
  if (!baseRouteName) {
@@ -1 +1 @@
1
- {"version":3,"names":["TrueSheetActions","uid","Math","random","toString","slice","ensureBaseRoute","state","baseRouteName","routeParamList","hasBaseRoute","routes","some","r","name","baseRoute","key","params","index","length","createTrueSheetRouter","stackRouter","routerOptions","baseRouter","type","getInitialState","options","initialRouteName","routeNames","stateWithBaseRoute","stale","getStateForAction","action","routeIndex","target","source","findIndex","map","route","i","resizeIndex","resizeKey","pop","count","payload","maxPopCount","actualCount","min","targetIndex","closingIndex","closing","popCount","targetName","routeKey","filter","_","getRehydratedState","partialState","routeGetIdList","actionCreators"],"sourceRoot":"../../../src","sources":["navigation/createTrueSheetRouter.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["TrueSheetActions","uid","Math","random","toString","slice","ensureBaseRoute","state","baseRouteName","routeParamList","hasBaseRoute","routes","some","r","name","baseRoute","key","params","index","length","createTrueSheetRouter","stackRouter","routerOptions","baseRouter","type","getInitialState","options","initialRouteName","routeNames","stateWithBaseRoute","stale","getStateForAction","action","routeIndex","target","source","findIndex","map","route","i","resizeIndex","resizeKey","pop","count","payload","maxPopCount","actualCount","min","targetIndex","closingIndex","closing","popCount","targetName","routeKey","filter","_","getRehydratedState","partialState","routeGetIdList","actionCreators"],"sourceRoot":"../../../src","sources":["navigation/createTrueSheetRouter.ts"],"mappings":";;AAAA,SAASA,gBAAgB,QAAQ,cAAW;AAG5C,MAAMC,GAAG,GAAGA,CAAA,KAAMC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AAEzD,MAAMC,eAAe,GAAGA,CACtBC,KAAQ,EACRC,aAAiC,EACjCC,cAA8D,KACf;EAC/C,IAAI,CAACD,aAAa,EAAE;IAClB,OAAOD,KAAK;EACd;EAEA,MAAMG,YAAY,GAAGH,KAAK,CAACI,MAAM,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAKN,aAAa,CAAC;EAEvE,IAAI,CAACE,YAAY,EAAE;IACjB,MAAMK,SAAS,GAAG;MAChBC,GAAG,EAAE,GAAGR,aAAa,IAAIP,GAAG,CAAC,CAAC,EAAE;MAChCa,IAAI,EAAEN,aAAa;MACnBS,MAAM,EAAER,cAAc,GAAGD,aAAa;IACxC,CAAC;IAED,OAAO;MACL,GAAGD,KAAK;MACRW,KAAK,EAAEX,KAAK,CAACI,MAAM,CAACQ,MAAM;MAC1BR,MAAM,EAAE,CAACI,SAAS,EAAE,GAAGR,KAAK,CAACI,MAAM;IACrC,CAAC;EACH;EAEA,OAAOJ,KAAK;AACd,CAAC;AAED,OAAO,MAAMa,qBAAqB,GAC/BC,WAAmC,IACnCC,aAAqC,IAAsB;EAC1D,MAAMC,UAAU,GAAGF,WAAW,CAACC,aAAa,CAAC;EAE7C,OAAO;IACL,GAAGC,UAAU;IACbC,IAAI,EAAE,YAAY;IAElBC,eAAeA,CAACC,OAAO,EAAE;MACvB,MAAMnB,KAAK,GAAGgB,UAAU,CAACE,eAAe,CAACC,OAAO,CAAC;MACjD,MAAMlB,aAAa,GAAGc,aAAa,CAACK,gBAAgB,IAAID,OAAO,CAACE,UAAU,CAAC,CAAC,CAAC;MAC7E,MAAMC,kBAAkB,GAAGvB,eAAe,CAACC,KAAK,EAAEC,aAAa,EAAEkB,OAAO,CAACjB,cAAc,CAAC;MAExF,OAAO;QACL,GAAGoB,kBAAkB;QACrBC,KAAK,EAAE,KAAK;QACZN,IAAI,EAAE,YAAY;QAClBR,GAAG,EAAE,cAAcf,GAAG,CAAC,CAAC;MAC1B,CAAC;IACH,CAAC;IAED8B,iBAAiBA,CAACxB,KAAK,EAAEyB,MAAM,EAAEN,OAAO,EAAE;MACxC,QAAQM,MAAM,CAACR,IAAI;QACjB,KAAK,QAAQ;UAAE;YACb,MAAMS,UAAU,GACdD,MAAM,CAACE,MAAM,KAAK3B,KAAK,CAACS,GAAG,IAAIgB,MAAM,CAACG,MAAM,GACxC5B,KAAK,CAACI,MAAM,CAACyB,SAAS,CAAEvB,CAAC,IAAKA,CAAC,CAACG,GAAG,KAAKgB,MAAM,CAACG,MAAM,CAAC,GACtD5B,KAAK,CAACW,KAAK;YAEjB,OAAO;cACL,GAAGX,KAAK;cACRI,MAAM,EAAEJ,KAAK,CAACI,MAAM,CAAC0B,GAAG,CAAC,CAACC,KAAK,EAAEC,CAAC,KAChCA,CAAC,KAAKN,UAAU,GACZ;gBACE,GAAGK,KAAK;gBACRE,WAAW,EAAER,MAAM,CAACd,KAAK;gBACzBuB,SAAS,EAAE,CAACH,KAAK,CAACG,SAAS,IAAI,CAAC,IAAI;cACtC,CAAC,GACDH,KACN;YACF,CAAC;UACH;QAEA,KAAK,SAAS;QACd,KAAK,SAAS;UAAE;YACd,OAAO,IAAI,CAACP,iBAAiB,CAACxB,KAAK,EAAEP,gBAAgB,CAAC0C,GAAG,CAAC,CAAC,CAAC,EAAEhB,OAAO,CAAC;UACxE;QAEA,KAAK,KAAK;UAAE;YACV;YACA,IAAInB,KAAK,CAACI,MAAM,CAACQ,MAAM,IAAI,CAAC,EAAE;cAC5B,OAAO,IAAI;YACb;YAEA,MAAMwB,KAAK,GACT,SAAS,IAAIX,MAAM,IAAI,OAAOA,MAAM,CAACY,OAAO,EAAED,KAAK,KAAK,QAAQ,GAC5DX,MAAM,CAACY,OAAO,CAACD,KAAK,GACpB,CAAC;;YAEP;YACA,MAAME,WAAW,GAAGtC,KAAK,CAACI,MAAM,CAACQ,MAAM,GAAG,CAAC;YAC3C,MAAM2B,WAAW,GAAG5C,IAAI,CAAC6C,GAAG,CAACJ,KAAK,EAAEE,WAAW,CAAC;;YAEhD;YACA,IAAIC,WAAW,IAAI,CAAC,EAAE;cACpB,OAAO,IAAI;YACb;;YAEA;YACA;YACA,MAAME,WAAW,GAAGzC,KAAK,CAACI,MAAM,CAACQ,MAAM,GAAG,CAAC,GAAG2B,WAAW;YACzD,MAAMG,YAAY,GAAGD,WAAW,GAAG,CAAC;;YAEpC;YACA;YACA,OAAO;cACL,GAAGzC,KAAK;cACRW,KAAK,EAAE+B,YAAY;cACnBtC,MAAM,EAAEJ,KAAK,CAACI,MAAM,CAAC0B,GAAG,CAAC,CAACC,KAAK,EAAEC,CAAC,KAChCA,CAAC,KAAKU,YAAY,GAAG;gBAAE,GAAGX,KAAK;gBAAEY,OAAO,EAAE;cAAK,CAAC,GAAGZ,KACrD;YACF,CAAC;UACH;QAEA,KAAK,YAAY;UAAE;YACjB,MAAMa,QAAQ,GAAG5C,KAAK,CAACI,MAAM,CAACQ,MAAM,GAAG,CAAC;YACxC,OAAO,IAAI,CAACY,iBAAiB,CAACxB,KAAK,EAAEP,gBAAgB,CAAC0C,GAAG,CAACS,QAAQ,CAAC,EAAEzB,OAAO,CAAC;UAC/E;QAEA,KAAK,QAAQ;UAAE;YACb,MAAM0B,UAAU,GACd,SAAS,IAAIpB,MAAM,IAAI,OAAOA,MAAM,CAACY,OAAO,EAAE9B,IAAI,KAAK,QAAQ,GAC3DkB,MAAM,CAACY,OAAO,CAAC9B,IAAI,GACnB,IAAI;YAEV,IAAI,CAACsC,UAAU,EAAE;cACf,OAAO,IAAI;YACb;YAEA,MAAMJ,WAAW,GAAGzC,KAAK,CAACI,MAAM,CAACyB,SAAS,CAAEvB,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAKsC,UAAU,CAAC;;YAExE;YACA,IAAIJ,WAAW,KAAK,CAAC,CAAC,IAAIA,WAAW,IAAIzC,KAAK,CAACW,KAAK,EAAE;cACpD,OAAO,IAAI;YACb;YAEA,MAAMiC,QAAQ,GAAG5C,KAAK,CAACI,MAAM,CAACQ,MAAM,GAAG,CAAC,GAAG6B,WAAW;YACtD,OAAO,IAAI,CAACjB,iBAAiB,CAACxB,KAAK,EAAEP,gBAAgB,CAAC0C,GAAG,CAACS,QAAQ,CAAC,EAAEzB,OAAO,CAAC;UAC/E;QAEA,KAAK,QAAQ;UAAE;YACb;YACA,MAAM2B,QAAQ,GAAGrB,MAAM,CAACG,MAAM;YAC9B,MAAMF,UAAU,GAAGoB,QAAQ,GACvB9C,KAAK,CAACI,MAAM,CAACyB,SAAS,CAAEvB,CAAC,IAAKA,CAAC,CAACG,GAAG,KAAKqC,QAAQ,CAAC,GACjD9C,KAAK,CAACI,MAAM,CAACyB,SAAS,CAAEvB,CAAC,IAAKA,CAAC,CAACqC,OAAO,CAAC;YAE5C,IAAIjB,UAAU,KAAK,CAAC,CAAC,EAAE;cACrB,OAAO1B,KAAK;YACd;;YAEA;YACA,MAAMI,MAAM,GAAGJ,KAAK,CAACI,MAAM,CAAC2C,MAAM,CAAC,CAACC,CAAC,EAAEhB,CAAC,KAAKA,CAAC,GAAGN,UAAU,CAAC;YAE5D,OAAO;cACL,GAAG1B,KAAK;cACRW,KAAK,EAAEhB,IAAI,CAAC6C,GAAG,CAACxC,KAAK,CAACW,KAAK,EAAEP,MAAM,CAACQ,MAAM,GAAG,CAAC,CAAC;cAC/CR;YACF,CAAC;UACH;QAEA;UACE,OAAOY,UAAU,CAACQ,iBAAiB,CAACxB,KAAK,EAAEyB,MAAM,EAAEN,OAAO,CAAC;MAC/D;IACF,CAAC;IAED8B,kBAAkBA,CAACC,YAAY,EAAE;MAAE7B,UAAU;MAAEnB,cAAc;MAAEiD;IAAe,CAAC,EAAE;MAC/E,IAAID,YAAY,CAAC3B,KAAK,KAAK,KAAK,EAAE;QAChC,OAAO2B,YAAY;MACrB;MAEA,MAAMlD,KAAK,GAAGgB,UAAU,CAACiC,kBAAkB,CAACC,YAAY,EAAE;QACxD7B,UAAU;QACVnB,cAAc;QACdiD;MACF,CAAC,CAAC;MAEF,MAAMlD,aAAa,GAAGc,aAAa,CAACK,gBAAgB,IAAIC,UAAU,CAAC,CAAC,CAAC;MACrE,MAAMC,kBAAkB,GAAGvB,eAAe,CAACC,KAAK,EAAEC,aAAa,EAAEC,cAAc,CAAC;MAEhF,OAAO;QACL,GAAGoB,kBAAkB;QACrBL,IAAI,EAAE,YAAY;QAClBR,GAAG,EAAE,cAAcf,GAAG,CAAC,CAAC;MAC1B,CAAC;IACH,CAAC;IAED0D,cAAc,EAAE3D;EAClB,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=base-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["navigation/expo-router/base-types.ts"],"mappings":"","ignoreList":[]}
@@ -3,9 +3,14 @@
3
3
  import { StackRouter, unstable_integrateWithRouter, useNavigation } from 'expo-router';
4
4
  import { createTrueSheetRouter } from "../createTrueSheetRouter.js";
5
5
  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), {
6
+ // expo-router's vendored StackRouter is structurally identical to @react-navigation's.
7
+ // Pinned to this entry's own router types: `createTrueSheetRouter` is shared and typed
8
+ // against React Navigation, which resolves to `any` in apps that only install expo-router.
9
+ const sheetRouter = createTrueSheetRouter(StackRouter);
10
+
11
+ // `routes`/`dispatch` are injected by `createProps`, so they are declared as
12
+ // CreateProps (last generic) and excluded from the public navigator props
13
+ const SheetNavigator = unstable_integrateWithRouter(trueSheetNavigator, sheetRouter, {
9
14
  createProps: ({
10
15
  state,
11
16
  dispatch
@@ -15,10 +20,8 @@ createTrueSheetRouter(StackRouter), {
15
20
  })
16
21
  });
17
22
 
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
23
+ // expo-router intersects the event map with an index signature which breaks
24
+ // precisely typed `screenListeners` callbacks - replace it with the exact map
22
25
 
23
26
  /**
24
27
  * 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":["StackRouter","unstable_integrateWithRouter","useNavigation","createTrueSheetRouter","trueSheetNavigator","sheetRouter","SheetNavigator","createProps","state","dispatch","routes","Sheet","useTrueSheetNavigation","TrueSheetActions"],"sourceRoot":"../../../../src","sources":["navigation/expo-router/index.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,4BAA4B,EAAEC,aAAa,QAAQ,aAAa;AAEtF,SAASC,qBAAqB,QAAQ,6BAA0B;AAChE,SAASC,kBAAkB,QAAQ,iBAAc;AAcjD;AACA;AACA;AACA,MAAMC,WAAmC,GAAGF,qBAAqB,CAC/DH,WACF,CAAC;;AAED;AACA;AACA,MAAMM,cAAc,GAAGL,4BAA4B,CAOjDG,kBAAkB,EAAEC,WAAW,EAAE;EACjCE,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,KAEHV,aAAa,CAA6B,CAAC;AAE9E,SAASW,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":[]}
@@ -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,168 @@
1
+ "use strict";
2
+
3
+ /// <reference lib="dom" />
4
+
5
+ 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":[]}
@@ -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","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;AAwDzB,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":[]}
@@ -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":"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","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":[]}
@@ -7,8 +7,8 @@ import { Presence } from '@radix-ui/react-presence';
7
7
  import { DrawerContext, useDrawerContext } from "./context.js";
8
8
  import './style.css';
9
9
  import { isIOS, isMobileFirefox } from "./browser.js";
10
- import { BORDER_RADIUS, CLOSE_THRESHOLD, DRAG_CLASS, NESTED_DISPLACEMENT, SCROLL_LOCK_TIMEOUT, TRANSITIONS, VELOCITY_THRESHOLD, WINDOW_TOP_OFFSET } from "./constants.js";
11
- import { dampenValue, getTranslate, isVertical, reset, set } from "./helpers.js";
10
+ import { BORDER_RADIUS, CLOSE_THRESHOLD, DISMISS_ATTEMPT_THRESHOLD, DRAG_CLASS, NESTED_DISPLACEMENT, SCROLL_LOCK_TIMEOUT, TRANSITIONS, VELOCITY_THRESHOLD, WINDOW_TOP_OFFSET } from "./constants.js";
11
+ import { dampenValue, getSnapPointTransform, getTranslate, isVertical, reset, set } from "./helpers.js";
12
12
  import { useComposedRefs } from "./use-composed-refs.js";
13
13
  import { useControllableState } from "./use-controllable-state.js";
14
14
  import { usePositionFixed } from "./use-position-fixed.js";
@@ -28,6 +28,8 @@ export function Root({
28
28
  closeThreshold = CLOSE_THRESHOLD,
29
29
  scrollLockTimeout = SCROLL_LOCK_TIMEOUT,
30
30
  dismissible = true,
31
+ dismissThreshold = 'half',
32
+ onDismissAttempt,
31
33
  draggable = true,
32
34
  handleOnly = false,
33
35
  fadeFromIndex = snapPoints && snapPoints.length - 1,
@@ -82,6 +84,7 @@ export function Root({
82
84
  const isAllowedToDrag = React.useRef(false);
83
85
  const nestedOpenChangeTimer = React.useRef(null);
84
86
  const pointerStart = React.useRef(0);
87
+ const dismissAttempted = React.useRef(false);
85
88
  const keyboardIsOpen = React.useRef(false);
86
89
  const shouldAnimate = React.useRef(!defaultOpen);
87
90
  const previousDiffFromInitial = React.useRef(0);
@@ -299,7 +302,14 @@ export function Root({
299
302
  const noCloseSnapPointsPreCondition = snapPoints && !dismissible && !isDraggingInDirection;
300
303
 
301
304
  // Disallow dragging down to close when first snap point is the active one and dismissible prop is set to false.
302
- if (noCloseSnapPointsPreCondition && activeSnapPointIndex === 0) return;
305
+ if (noCloseSnapPointsPreCondition && activeSnapPointIndex === 0) {
306
+ // The drawer stays put. Remember a deliberate pull that would otherwise
307
+ // have dragged it (content at its top) so release() can report it.
308
+ if (-draggedDistance > DISMISS_ATTEMPT_THRESHOLD && (isAllowedToDrag.current || shouldDrag(event.target, isDraggingInDirection))) {
309
+ dismissAttempted.current = true;
310
+ }
311
+ return;
312
+ }
303
313
 
304
314
  // We need to capture last time when drag with scroll was triggered and have a timeout between
305
315
  const absDraggedDistance = Math.abs(draggedDistance);
@@ -504,6 +514,19 @@ export function Root({
504
514
  unfreezeScrollables();
505
515
  setIsDragging(false);
506
516
  dragEndTime.current = new Date();
517
+ if (dismissAttempted.current) {
518
+ dismissAttempted.current = false;
519
+ if (isOpen) onDismissAttempt?.();
520
+ }
521
+
522
+ // The press that started this "drag" may have dismissed the drawer (e.g. a
523
+ // back button acting on pointerdown). Snapping now would overwrite the
524
+ // dismiss transform that closeDrawer just wrote and freeze the sheet in
525
+ // place until it unmounts.
526
+ if (!isOpen) {
527
+ if (pointerEvent) onReleaseProp?.(pointerEvent, false);
528
+ return;
529
+ }
507
530
  const swipeAmount = getTranslate(drawerRef.current, direction);
508
531
 
509
532
  // Drag overshoot below the lowest snap point translates the detached
@@ -532,7 +555,8 @@ export function Root({
532
555
  draggedDistance: distMoved * directionMultiplier,
533
556
  closeDrawer,
534
557
  velocity,
535
- dismissible
558
+ dismissible,
559
+ dismissThreshold
536
560
  });
537
561
  if (pointerEvent) onReleaseProp?.(pointerEvent, true);
538
562
  return;
@@ -648,6 +672,7 @@ export function Root({
648
672
  onTouchDrag: (event, pointerEvent) => drag(event, pointerEvent),
649
673
  onTouchRelease: (event, pointerEvent) => release(event, pointerEvent),
650
674
  dismissible,
675
+ onDismissAttempt,
651
676
  shouldAnimate,
652
677
  handleOnly,
653
678
  isOpen,
@@ -772,6 +797,7 @@ export const Content = /*#__PURE__*/React.forwardRef(({
772
797
  snapPoints,
773
798
  setActiveSnapPoint,
774
799
  dismissible,
800
+ onDismissAttempt,
775
801
  container,
776
802
  handleOnly,
777
803
  shouldAnimate,
@@ -885,10 +911,10 @@ export const Content = /*#__PURE__*/React.forwardRef(({
885
911
  // same detent). Without this, position goes stale mid-animation because
886
912
  // the drawer's `transitionrun` never fires.
887
913
  const onTransitionRun = e => {
888
- if ((e.target === drawer || e.target === wrapper) && e.propertyName === 'transform') state.start();
914
+ if ((e.target === drawer || e.target === wrapper) && (e.propertyName === 'transform' || e.propertyName === '--snap-point-height')) state.start();
889
915
  };
890
916
  const onTransitionDone = e => {
891
- if ((e.target === drawer || e.target === wrapper) && e.propertyName === 'transform') state.stop();
917
+ if ((e.target === drawer || e.target === wrapper) && (e.propertyName === 'transform' || e.propertyName === '--snap-point-height')) state.stop();
892
918
  };
893
919
  const onAnimationStart = e => {
894
920
  if (e.target === drawer || e.target === wrapper) state.start();
@@ -984,6 +1010,10 @@ export const Content = /*#__PURE__*/React.forwardRef(({
984
1010
  }
985
1011
  wasOpenRef.current = isOpen;
986
1012
  }, [isOpen, detached, drawerRef]);
1013
+
1014
+ // Subsequent snap writes belong to useSnapPoints. A React style update on
1015
+ // release would overwrite the live drag value before its transition starts.
1016
+ const initialSnapPointOffset = React.useRef(snapPointsOffset?.[activeSnapPointIndex ?? 0] ?? 0);
987
1017
  const contentNode = /*#__PURE__*/_jsx(DialogPrimitive.Content, {
988
1018
  "data-vaul-drawer-direction": direction,
989
1019
  "data-vaul-drawer": "",
@@ -995,7 +1025,8 @@ export const Content = /*#__PURE__*/React.forwardRef(({
995
1025
  ...rest,
996
1026
  ref: composedRef,
997
1027
  style: snapPointsOffset && snapPointsOffset.length > 0 ? {
998
- '--snap-point-height': `${snapPointsOffset[activeSnapPointIndex ?? 0]}px`,
1028
+ '--snap-point-height': `${initialSnapPointOffset.current}px`,
1029
+ 'transform': getSnapPointTransform(direction),
999
1030
  ...style,
1000
1031
  'pointerEvents': 'auto'
1001
1032
  } : {
@@ -1048,6 +1079,8 @@ export const Content = /*#__PURE__*/React.forwardRef(({
1048
1079
  e.preventDefault();
1049
1080
  if (hasSnapPoints && typeof activeSnapPointIndex === 'number' && activeSnapPointIndex > 0) {
1050
1081
  setActiveSnapPoint(snapPoints[0]);
1082
+ } else {
1083
+ onDismissAttempt?.();
1051
1084
  }
1052
1085
  }
1053
1086
  },
@@ -1170,6 +1203,7 @@ export const Handle = /*#__PURE__*/React.forwardRef(({
1170
1203
  activeSnapPoint,
1171
1204
  setActiveSnapPoint,
1172
1205
  dismissible,
1206
+ onDismissAttempt,
1173
1207
  handleOnly,
1174
1208
  isOpen,
1175
1209
  onPress,
@@ -1206,6 +1240,12 @@ export const Handle = /*#__PURE__*/React.forwardRef(({
1206
1240
  closeDrawer();
1207
1241
  return;
1208
1242
  }
1243
+
1244
+ // Mirrors native: a single-detent sheet's handle tap is a dismiss.
1245
+ if (isLastSnapPoint && snapPoints.length === 1) {
1246
+ onDismissAttempt?.();
1247
+ return;
1248
+ }
1209
1249
  const currentSnapIndex = snapPoints.findIndex(point => point === activeSnapPoint);
1210
1250
  if (currentSnapIndex === -1) return; // activeSnapPoint not found in snapPoints
1211
1251
  const nextSnapPoint = snapPoints[currentSnapIndex + 1];