@spear-ai/spectral 1.9.1 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/README.md +6 -5
  2. package/dist/.js +112 -239
  3. package/dist/Accordion-CDXdSAST.js +363 -0
  4. package/dist/Accordion.js +3 -498
  5. package/dist/Alert/AlertBase.js +69 -152
  6. package/dist/Alert.js +58 -106
  7. package/dist/AnimatePresence-D-9jXfgI.js +178 -0
  8. package/dist/App.js +6 -6
  9. package/dist/Avatar.js +83 -65
  10. package/dist/Badge.d.ts +1 -3
  11. package/dist/Badge.js +21 -25
  12. package/dist/Button.js +102 -178
  13. package/dist/ButtonGroup/ButtonGroupButton.js +38 -40
  14. package/dist/ButtonGroup.js +55 -59
  15. package/dist/ButtonIcon.js +58 -134
  16. package/dist/Calendar-s4lyijkn.js +3109 -0
  17. package/dist/Checkbox/CheckboxBase.js +94 -126
  18. package/dist/Checkbox.d.ts +1 -1
  19. package/dist/Checkbox.js +40 -105
  20. package/dist/Combobox/ComboboxBase.js +2 -79
  21. package/dist/Combobox.js +106 -172
  22. package/dist/ComboboxBase-D8Nf4xC-.js +491 -0
  23. package/dist/ControlGroup/ControlGroupSelect.d.ts +1 -1
  24. package/dist/ControlGroup/ControlGroupSelect.js +85 -101
  25. package/dist/ControlGroup.js +45 -48
  26. package/dist/DataCard/Card.js +37 -12
  27. package/dist/DataCard.d.ts +1 -1
  28. package/dist/DataCard.js +36 -16
  29. package/dist/DateTimePicker/Calendar.js +2 -2967
  30. package/dist/DateTimePicker/DateTimeDisplayInput.d.ts +1 -1
  31. package/dist/DateTimePicker/DateTimeDisplayInput.js +379 -275
  32. package/dist/DateTimePicker/DateTimeInput.d.ts +1 -1
  33. package/dist/DateTimePicker/DateTimeInput.js +133 -141
  34. package/dist/DateTimePicker/DateTimeUtils.js +2 -2193
  35. package/dist/DateTimePicker/TimePeriodSelect.d.ts +1 -1
  36. package/dist/DateTimePicker/TimePeriodSelect.js +45 -20
  37. package/dist/DateTimePicker/TimePicker.d.ts +1 -1
  38. package/dist/DateTimePicker/TimePicker.js +76 -60
  39. package/dist/DateTimePicker.d.ts +2 -2
  40. package/dist/DateTimePicker.js +87 -205
  41. package/dist/DateTimeUtils-DVvG6H-p.js +2098 -0
  42. package/dist/Dialog.js +74 -74
  43. package/dist/Drawer.js +67 -37
  44. package/dist/HoverCard-CYDsIiVK.js +201 -0
  45. package/dist/HoverCard.d.ts +1 -1
  46. package/dist/HoverCard.js +2 -218
  47. package/dist/Icons/AnalyzeIcon.js +50 -57
  48. package/dist/Icons/AnnotationsIcon.js +20 -15
  49. package/dist/Icons/ApprovedIcon.js +26 -18
  50. package/dist/Icons/ArrowDownIcon.js +20 -6
  51. package/dist/Icons/ArrowUpIcon.js +20 -6
  52. package/dist/Icons/BoxToolIcon.js +17 -12
  53. package/dist/Icons/CalendarIcon.js +43 -20
  54. package/dist/Icons/CheckCircleIcon.js +26 -10
  55. package/dist/Icons/CheckSquareIcon.js +26 -10
  56. package/dist/Icons/CheckmarkIcon.js +22 -9
  57. package/dist/Icons/ChevronDownIcon.js +22 -9
  58. package/dist/Icons/ChevronUpIcon.js +22 -9
  59. package/dist/Icons/ClockIcon.js +26 -18
  60. package/dist/Icons/CloseCircleIcon.js +26 -10
  61. package/dist/Icons/CloseIcon.js +18 -9
  62. package/dist/Icons/DashboardIcon.js +36 -10
  63. package/dist/Icons/DatabaseIcon.js +36 -19
  64. package/dist/Icons/DeleteIcon.js +36 -19
  65. package/dist/Icons/DurationIcon.js +57 -22
  66. package/dist/Icons/EditIcon.js +26 -27
  67. package/dist/Icons/EmailIcon.js +26 -10
  68. package/dist/Icons/EraserIcon.js +41 -25
  69. package/dist/Icons/ErrorIcon.js +27 -11
  70. package/dist/Icons/EyeClosedIcon.js +29 -13
  71. package/dist/Icons/EyeClosedIcon2.js +27 -11
  72. package/dist/Icons/EyeOpenIcon.js +22 -9
  73. package/dist/Icons/FileDownloadIcon.js +43 -20
  74. package/dist/Icons/GoToFirstIcon.js +26 -9
  75. package/dist/Icons/GoToLastIcon.js +26 -9
  76. package/dist/Icons/HarmonicCursorsIcon.js +23 -9
  77. package/dist/Icons/IconBase.d.ts +3 -3
  78. package/dist/Icons/IconBase.js +49 -66
  79. package/dist/Icons/InfoIcon.js +36 -10
  80. package/dist/Icons/KeyboardIcon.js +26 -27
  81. package/dist/Icons/LabelIcon.js +19 -14
  82. package/dist/Icons/LassoIcon.js +36 -28
  83. package/dist/Icons/LineToolIcon.js +48 -39
  84. package/dist/Icons/LiveViewIcon.js +50 -12
  85. package/dist/Icons/LoaderIcon.js +67 -27
  86. package/dist/Icons/LocationIcon.js +26 -27
  87. package/dist/Icons/LogoutIcon.js +20 -15
  88. package/dist/Icons/MeasureIcon.js +78 -25
  89. package/dist/Icons/MessagesIcon.js +33 -18
  90. package/dist/Icons/MetadataIcon.js +20 -15
  91. package/dist/Icons/MinusIcon.d.ts +1 -1
  92. package/dist/Icons/MinusIcon.js +18 -6
  93. package/dist/Icons/OntologyIcon.js +87 -71
  94. package/dist/Icons/PanelIconClose.js +28 -10
  95. package/dist/Icons/PanelIconOpen.js +28 -10
  96. package/dist/Icons/PlayIcon.js +20 -6
  97. package/dist/Icons/PlusIcon.js +20 -14
  98. package/dist/Icons/PolygonIcon.js +50 -39
  99. package/dist/Icons/ProgressCheckIcon.d.ts +5 -0
  100. package/dist/Icons/ProgressCheckIcon.js +58 -0
  101. package/dist/Icons/ResetIcon.js +17 -12
  102. package/dist/Icons/ReviewedIcon.js +36 -19
  103. package/dist/Icons/ScissorsIcon.js +22 -17
  104. package/dist/Icons/SearchIcon.js +26 -9
  105. package/dist/Icons/SettingsIcon.js +26 -27
  106. package/dist/Icons/SortAscendingIcon.js +50 -12
  107. package/dist/Icons/SortAtoZIcon.js +50 -12
  108. package/dist/Icons/SortDescendingIcon.js +50 -12
  109. package/dist/Icons/SortZtoAIcon.js +50 -12
  110. package/dist/Icons/StackIcon.js +26 -9
  111. package/dist/Icons/StarIcon.js +20 -6
  112. package/dist/Icons/TrashIcon.js +17 -12
  113. package/dist/Icons/UndoIcon.js +20 -15
  114. package/dist/Icons/User2Icon.js +26 -10
  115. package/dist/Icons/UserIcon.js +19 -14
  116. package/dist/Icons/WarningIcon.js +19 -14
  117. package/dist/Icons/ZoomAllIcon.js +71 -15
  118. package/dist/Icons/ZoomXIcon.js +36 -10
  119. package/dist/Icons/ZoomYIcon.js +36 -10
  120. package/dist/Icons/index.d.ts +1 -0
  121. package/dist/Icons.js +68 -136
  122. package/dist/IconsAnimated/PanelLeftCloseIcon.js +66 -36
  123. package/dist/IconsAnimated/PanelLeftOpenIcon.js +66 -36
  124. package/dist/IconsAnimated.js +3 -6
  125. package/dist/Input/InputUtils.js +51 -52
  126. package/dist/Input.js +132 -185
  127. package/dist/InputOTP-XUWW9xcI.js +461 -0
  128. package/dist/InputOTP.js +2 -382
  129. package/dist/Kbd.d.ts +1 -1
  130. package/dist/Kbd.js +182 -86
  131. package/dist/Label.js +12 -14
  132. package/dist/MultiSelect/MultiSelectBase.js +331 -403
  133. package/dist/MultiSelect.d.ts +1 -1
  134. package/dist/MultiSelect.js +23 -23
  135. package/dist/Popover.js +28 -32
  136. package/dist/RadioButton.d.ts +17 -0
  137. package/dist/RadioButton.js +33 -0
  138. package/dist/RadioButtonGroup/RadioButtonGroupBase.d.ts +3 -1
  139. package/dist/RadioButtonGroup/RadioButtonGroupBase.js +49 -46
  140. package/dist/RadioButtonGroup.d.ts +1 -1
  141. package/dist/RadioButtonGroup.js +11 -8
  142. package/dist/RadioGroup-w_q6RGEK.js +447 -0
  143. package/dist/RadioGroup.js +2 -505
  144. package/dist/Select.js +163 -186
  145. package/dist/Separator.js +16 -19
  146. package/dist/Skeleton.js +10 -6
  147. package/dist/Slider-BzzZT3Zm.js +490 -0
  148. package/dist/Slider.js +2 -562
  149. package/dist/SpectralProvider.js +8 -5
  150. package/dist/Switch/SwitchBase.js +91 -95
  151. package/dist/Switch-CVzRJ-0n.js +126 -0
  152. package/dist/Switch.d.ts +1 -1
  153. package/dist/Switch.js +2 -134
  154. package/dist/Tabs/TabsBase.js +242 -250
  155. package/dist/Tabs/tabsUtils.js +65 -73
  156. package/dist/Tabs.d.ts +1 -1
  157. package/dist/Tabs.js +73 -103
  158. package/dist/Textarea/TextareaUtils.js +35 -46
  159. package/dist/Textarea.js +83 -160
  160. package/dist/Toast-9zqXxKKO.js +711 -0
  161. package/dist/Toast.js +2 -885
  162. package/dist/Toggle/ToggleBase.js +46 -56
  163. package/dist/Toggle.d.ts +1 -1
  164. package/dist/Toggle.js +52 -62
  165. package/dist/ToggleGroup/ToggleGroupBase.js +128 -104
  166. package/dist/ToggleGroup.d.ts +1 -1
  167. package/dist/ToggleGroup.js +52 -63
  168. package/dist/Tooltip-D1K8kY1y.js +389 -0
  169. package/dist/Tooltip.js +2 -365
  170. package/dist/Tray.js +174 -217
  171. package/dist/chunk-h9knIhTc.js +20 -0
  172. package/dist/clsx-jM1GlMvB.js +16 -0
  173. package/dist/dist-3Af8168y.js +913 -0
  174. package/dist/dist-7HRQ5IKN.js +249 -0
  175. package/dist/dist-B2k1iWFp.js +129 -0
  176. package/dist/dist-B4FgboI8.js +122 -0
  177. package/dist/dist-B4g6zpUF.js +33 -0
  178. package/dist/dist-B9tup-4O.js +216 -0
  179. package/dist/dist-BK1K0g9W.js +29 -0
  180. package/dist/dist-Bfjk-jx9.js +28 -0
  181. package/dist/dist-Bft31cJh.js +65 -0
  182. package/dist/dist-BtdmHAzK.js +190 -0
  183. package/dist/dist-C0Hifjgh.js +1287 -0
  184. package/dist/dist-CGzgmYB9.js +68 -0
  185. package/dist/dist-ClmepHp4.js +10 -0
  186. package/dist/dist-D8Wb_MX9.js +6 -0
  187. package/dist/dist-Dtvmk11N.js +12 -0
  188. package/dist/dist-fW81qjVl.js +677 -0
  189. package/dist/dist-s1uWaZYZ.js +11 -0
  190. package/dist/es2015-YHaMV-St.js +701 -0
  191. package/dist/hooks/useAccordionAutoScroll.js +66 -67
  192. package/dist/hooks/useControllableState.js +14 -13
  193. package/dist/hooks/useTheme.js +21 -17
  194. package/dist/index.d.ts +2 -1
  195. package/dist/index.d.ts.map +1 -1
  196. package/dist/main.js +18954 -27224
  197. package/dist/primitives/button.js +39 -41
  198. package/dist/primitives/input-group.js +57 -73
  199. package/dist/primitives/input.js +11 -20
  200. package/dist/primitives/popover.js +34 -28
  201. package/dist/primitives/select.js +70 -138
  202. package/dist/primitives/slot.js +32 -31
  203. package/dist/primitives/textarea.js +10 -16
  204. package/dist/proxy-Dn10Pl_g.js +4920 -0
  205. package/dist/styles/main.css +2 -1
  206. package/dist/styles/spectral.css +1 -1
  207. package/dist/twUtils-VNWgstKL.js +1673 -0
  208. package/dist/use-animation-CBUDycyW.js +57 -0
  209. package/dist/utils/constants.js +4 -4
  210. package/dist/utils/formFieldUtils.js +136 -148
  211. package/dist/utils/sharedUtils.js +26 -7
  212. package/dist/utils/twUtils.js +2 -2919
  213. package/package.json +24 -28
  214. package/dist/ComboboxBase-CxNxYtdT.js +0 -408
  215. package/dist/clsx-OuTLNxxd.js +0 -16
  216. package/dist/index-0ioNhtNM.js +0 -10
  217. package/dist/index-6oYKCvIn.js +0 -677
  218. package/dist/index-BFOf48AQ.js +0 -69
  219. package/dist/index-BZPx6jYI.js +0 -8
  220. package/dist/index-BlHU_t18.js +0 -142
  221. package/dist/index-Bm1RbF6w.js +0 -1037
  222. package/dist/index-Bv2OIg5P.js +0 -225
  223. package/dist/index-CKEI0pDv.js +0 -56
  224. package/dist/index-CM_hWgfC.js +0 -32
  225. package/dist/index-C_YVr64u.js +0 -1538
  226. package/dist/index-Cl8VeY0o.js +0 -149
  227. package/dist/index-CwSyIPrv.js +0 -13
  228. package/dist/index-D29mdTf5.js +0 -34
  229. package/dist/index-DEYs15GP.js +0 -66
  230. package/dist/index-Dc0No4pV.js +0 -233
  231. package/dist/index-T6XEa11q.js +0 -822
  232. package/dist/index-pBCLb6Gr.js +0 -240
  233. package/dist/index-psiVrsnE.js +0 -27
  234. package/dist/index-rKs9bXHr.js +0 -6
  235. package/dist/proxy-CO_-Vget.js +0 -4975
  236. package/dist/use-animation-DhEPRwZ3.js +0 -62
@@ -0,0 +1,913 @@
1
+ import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "./dist-B9tup-4O.js";
2
+ import * as c from "react";
3
+ import l, { useEffect as u, useLayoutEffect as d, useMemo as f } from "react";
4
+ //#region node_modules/.pnpm/vaul@1.1.2_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react@19.2.14_react-dom_25bbfe11f04fc4939122b58c852b1a12/node_modules/vaul/dist/index.mjs
5
+ function p(e) {
6
+ if (!e || typeof document > "u") return;
7
+ let t = document.head || document.getElementsByTagName("head")[0], n = document.createElement("style");
8
+ n.type = "text/css", t.appendChild(n), n.styleSheet ? n.styleSheet.cssText = e : n.appendChild(document.createTextNode(e));
9
+ }
10
+ var m = l.createContext({
11
+ drawerRef: { current: null },
12
+ overlayRef: { current: null },
13
+ onPress: () => {},
14
+ onRelease: () => {},
15
+ onDrag: () => {},
16
+ onNestedDrag: () => {},
17
+ onNestedOpenChange: () => {},
18
+ onNestedRelease: () => {},
19
+ openProp: void 0,
20
+ dismissible: !1,
21
+ isOpen: !1,
22
+ isDragging: !1,
23
+ keyboardIsOpen: { current: !1 },
24
+ snapPointsOffset: null,
25
+ snapPoints: null,
26
+ handleOnly: !1,
27
+ modal: !1,
28
+ shouldFade: !1,
29
+ activeSnapPoint: null,
30
+ onOpenChange: () => {},
31
+ setActiveSnapPoint: () => {},
32
+ closeDrawer: () => {},
33
+ direction: "bottom",
34
+ shouldAnimate: { current: !0 },
35
+ shouldScaleBackground: !1,
36
+ setBackgroundColorOnScale: !0,
37
+ noBodyStyles: !1,
38
+ container: null,
39
+ autoFocus: !1
40
+ }), h = () => {
41
+ let e = l.useContext(m);
42
+ if (!e) throw Error("useDrawerContext must be used within a Drawer.Root");
43
+ return e;
44
+ };
45
+ p("[data-vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32, .72, 0, 1);animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=open]{animation-name:slideFromBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=closed]{animation-name:slideToBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=open]{animation-name:slideFromTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=closed]{animation-name:slideToTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=open]{animation-name:slideFromLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=closed]{animation-name:slideToLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=open]{animation-name:slideFromRight}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=closed]{animation-name:slideToRight}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--initial-transform,100%),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--initial-transform,100%),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-overlay][data-vaul-snap-points=false]{animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=false][data-state=open]{animation-name:fadeIn}[data-vaul-overlay][data-state=closed]{animation-name:fadeOut}[data-vaul-animate=false]{animation:none!important}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:0;transition:opacity .5s cubic-bezier(.32, .72, 0, 1)}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:1}[data-vaul-drawer]:not([data-vaul-custom-container=true])::after{content:'';position:absolute;background:inherit;background-color:inherit}[data-vaul-drawer][data-vaul-drawer-direction=top]::after{top:initial;bottom:100%;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=bottom]::after{top:100%;bottom:initial;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=left]::after{left:initial;right:100%;top:0;bottom:0;width:200%}[data-vaul-drawer][data-vaul-drawer-direction=right]::after{left:100%;right:initial;top:0;bottom:0;width:200%}[data-vaul-overlay][data-vaul-snap-points=true]:not([data-vaul-snap-points-overlay=true]):not(\n[data-state=closed]\n){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:active,[data-vaul-handle]:hover{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover:hover) and (pointer:fine){[data-vaul-drawer]{user-select:none}}@media (pointer:fine){[data-vaul-handle-hitarea]:{width:100%;height:100%}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{from{transform:translate3d(0,var(--initial-transform,100%),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToBottom{to{transform:translate3d(0,var(--initial-transform,100%),0)}}@keyframes slideFromTop{from{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToTop{to{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}}@keyframes slideFromLeft{from{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToLeft{to{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}}@keyframes slideFromRight{from{transform:translate3d(var(--initial-transform,100%),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToRight{to{transform:translate3d(var(--initial-transform,100%),0,0)}}");
46
+ function g() {
47
+ let e = navigator.userAgent;
48
+ return typeof window < "u" && (/Firefox/.test(e) && /Mobile/.test(e) || /FxiOS/.test(e));
49
+ }
50
+ function _() {
51
+ return S(/^Mac/);
52
+ }
53
+ function v() {
54
+ return S(/^iPhone/);
55
+ }
56
+ function y() {
57
+ return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
58
+ }
59
+ function b() {
60
+ return S(/^iPad/) || _() && navigator.maxTouchPoints > 1;
61
+ }
62
+ function x() {
63
+ return v() || b();
64
+ }
65
+ function S(e) {
66
+ return typeof window < "u" && window.navigator != null ? e.test(window.navigator.platform) : void 0;
67
+ }
68
+ var C = 24, w = typeof window < "u" ? d : u;
69
+ function T(...e) {
70
+ return (...t) => {
71
+ for (let n of e) typeof n == "function" && n(...t);
72
+ };
73
+ }
74
+ var E = typeof document < "u" && window.visualViewport;
75
+ function D(e) {
76
+ let t = window.getComputedStyle(e);
77
+ return /(auto|scroll)/.test(t.overflow + t.overflowX + t.overflowY);
78
+ }
79
+ function O(e) {
80
+ for (D(e) && (e = e.parentElement); e && !D(e);) e = e.parentElement;
81
+ return e || document.scrollingElement || document.documentElement;
82
+ }
83
+ var k = new Set([
84
+ "checkbox",
85
+ "radio",
86
+ "range",
87
+ "color",
88
+ "file",
89
+ "image",
90
+ "button",
91
+ "submit",
92
+ "reset"
93
+ ]), A = 0, j;
94
+ function ee(e = {}) {
95
+ let { isDisabled: t } = e;
96
+ w(() => {
97
+ if (!t) return A++, A === 1 && x() && (j = te()), () => {
98
+ A--, A === 0 && j?.();
99
+ };
100
+ }, [t]);
101
+ }
102
+ function te() {
103
+ let e, t = 0, n = (n) => {
104
+ e = O(n.target), !(e === document.documentElement && e === document.body) && (t = n.changedTouches[0].pageY);
105
+ }, r = (n) => {
106
+ if (!e || e === document.documentElement || e === document.body) {
107
+ n.preventDefault();
108
+ return;
109
+ }
110
+ let r = n.changedTouches[0].pageY, i = e.scrollTop, a = e.scrollHeight - e.clientHeight;
111
+ a !== 0 && ((i <= 0 && r > t || i >= a && r < t) && n.preventDefault(), t = r);
112
+ }, i = (e) => {
113
+ let t = e.target;
114
+ re(t) && t !== document.activeElement && (e.preventDefault(), t.style.transform = "translateY(-2000px)", t.focus(), requestAnimationFrame(() => {
115
+ t.style.transform = "";
116
+ }));
117
+ }, a = (e) => {
118
+ let t = e.target;
119
+ re(t) && (t.style.transform = "translateY(-2000px)", requestAnimationFrame(() => {
120
+ t.style.transform = "", E && (E.height < window.innerHeight ? requestAnimationFrame(() => {
121
+ N(t);
122
+ }) : E.addEventListener("resize", () => N(t), { once: !0 }));
123
+ }));
124
+ }, o = () => {
125
+ window.scrollTo(0, 0);
126
+ }, s = window.pageXOffset, c = window.pageYOffset, l = T(ne(document.documentElement, "paddingRight", `${window.innerWidth - document.documentElement.clientWidth}px`));
127
+ window.scrollTo(0, 0);
128
+ let u = T(M(document, "touchstart", n, {
129
+ passive: !1,
130
+ capture: !0
131
+ }), M(document, "touchmove", r, {
132
+ passive: !1,
133
+ capture: !0
134
+ }), M(document, "touchend", i, {
135
+ passive: !1,
136
+ capture: !0
137
+ }), M(document, "focus", a, !0), M(window, "scroll", o));
138
+ return () => {
139
+ l(), u(), window.scrollTo(s, c);
140
+ };
141
+ }
142
+ function ne(e, t, n) {
143
+ let r = e.style[t];
144
+ return e.style[t] = n, () => {
145
+ e.style[t] = r;
146
+ };
147
+ }
148
+ function M(e, t, n, r) {
149
+ return e.addEventListener(t, n, r), () => {
150
+ e.removeEventListener(t, n, r);
151
+ };
152
+ }
153
+ function N(e) {
154
+ let t = document.scrollingElement || document.documentElement;
155
+ for (; e && e !== t;) {
156
+ let t = O(e);
157
+ if (t !== document.documentElement && t !== document.body && t !== e) {
158
+ let n = t.getBoundingClientRect().top, r = e.getBoundingClientRect().top;
159
+ e.getBoundingClientRect().bottom > t.getBoundingClientRect().bottom + C && (t.scrollTop += r - n);
160
+ }
161
+ e = t.parentElement;
162
+ }
163
+ }
164
+ function re(e) {
165
+ return e instanceof HTMLInputElement && !k.has(e.type) || e instanceof HTMLTextAreaElement || e instanceof HTMLElement && e.isContentEditable;
166
+ }
167
+ function ie(e, t) {
168
+ typeof e == "function" ? e(t) : e != null && (e.current = t);
169
+ }
170
+ function ae(...e) {
171
+ return (t) => e.forEach((e) => ie(e, t));
172
+ }
173
+ function P(...e) {
174
+ return c.useCallback(ae(...e), e);
175
+ }
176
+ var F = /* @__PURE__ */ new WeakMap();
177
+ function I(e, t, n = !1) {
178
+ if (!e || !(e instanceof HTMLElement)) return;
179
+ let r = {};
180
+ Object.entries(t).forEach(([t, n]) => {
181
+ if (t.startsWith("--")) {
182
+ e.style.setProperty(t, n);
183
+ return;
184
+ }
185
+ r[t] = e.style[t], e.style[t] = n;
186
+ }), !n && F.set(e, r);
187
+ }
188
+ function oe(e, t) {
189
+ if (!e || !(e instanceof HTMLElement)) return;
190
+ let n = F.get(e);
191
+ n && (e.style[t] = n[t]);
192
+ }
193
+ var L = (e) => {
194
+ switch (e) {
195
+ case "top":
196
+ case "bottom": return !0;
197
+ case "left":
198
+ case "right": return !1;
199
+ default: return e;
200
+ }
201
+ };
202
+ function R(e, t) {
203
+ if (!e) return null;
204
+ let n = window.getComputedStyle(e), r = n.transform || n.webkitTransform || n.mozTransform, i = r.match(/^matrix3d\((.+)\)$/);
205
+ return i ? parseFloat(i[1].split(", ")[L(t) ? 13 : 12]) : (i = r.match(/^matrix\((.+)\)$/), i ? parseFloat(i[1].split(", ")[L(t) ? 5 : 4]) : null);
206
+ }
207
+ function se(e) {
208
+ return 8 * (Math.log(e + 1) - 2);
209
+ }
210
+ function z(e, t) {
211
+ if (!e) return () => {};
212
+ let n = e.style.cssText;
213
+ return Object.assign(e.style, t), () => {
214
+ e.style.cssText = n;
215
+ };
216
+ }
217
+ var B = {
218
+ DURATION: .5,
219
+ EASE: [
220
+ .32,
221
+ .72,
222
+ 0,
223
+ 1
224
+ ]
225
+ }, ce = .4, le = .25, ue = 100, de = 8, V = 16, fe = 26, pe = "vaul-dragging";
226
+ function H(e) {
227
+ let t = l.useRef(e);
228
+ return l.useEffect(() => {
229
+ t.current = e;
230
+ }), l.useMemo(() => (...e) => t.current == null ? void 0 : t.current.call(t, ...e), []);
231
+ }
232
+ function U({ defaultProp: e, onChange: t }) {
233
+ let n = l.useState(e), [r] = n, i = l.useRef(r), a = H(t);
234
+ return l.useEffect(() => {
235
+ i.current !== r && (a(r), i.current = r);
236
+ }, [
237
+ r,
238
+ i,
239
+ a
240
+ ]), n;
241
+ }
242
+ function me({ prop: e, defaultProp: t, onChange: n = () => {} }) {
243
+ let [r, i] = U({
244
+ defaultProp: t,
245
+ onChange: n
246
+ }), a = e !== void 0, o = a ? e : r, s = H(n);
247
+ return [o, l.useCallback((t) => {
248
+ if (a) {
249
+ let n = typeof t == "function" ? t(e) : t;
250
+ n !== e && s(n);
251
+ } else i(t);
252
+ }, [
253
+ a,
254
+ e,
255
+ i,
256
+ s
257
+ ])];
258
+ }
259
+ function he({ activeSnapPointProp: e, setActiveSnapPointProp: t, snapPoints: n, drawerRef: r, overlayRef: i, fadeFromIndex: a, onSnapPointChange: o, direction: s = "bottom", container: c, snapToSequentialPoint: u }) {
260
+ let [d, f] = me({
261
+ prop: e,
262
+ defaultProp: n?.[0],
263
+ onChange: t
264
+ }), [p, m] = l.useState(typeof window < "u" ? {
265
+ innerWidth: window.innerWidth,
266
+ innerHeight: window.innerHeight
267
+ } : void 0);
268
+ l.useEffect(() => {
269
+ function e() {
270
+ m({
271
+ innerWidth: window.innerWidth,
272
+ innerHeight: window.innerHeight
273
+ });
274
+ }
275
+ return window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
276
+ }, []);
277
+ let h = l.useMemo(() => d === n?.[n.length - 1] || null, [n, d]), g = l.useMemo(() => n?.findIndex((e) => e === d) ?? null, [n, d]), _ = n && n.length > 0 && (a || a === 0) && !Number.isNaN(a) && n[a] === d || !n, v = l.useMemo(() => {
278
+ let e = c ? {
279
+ width: c.getBoundingClientRect().width,
280
+ height: c.getBoundingClientRect().height
281
+ } : typeof window < "u" ? {
282
+ width: window.innerWidth,
283
+ height: window.innerHeight
284
+ } : {
285
+ width: 0,
286
+ height: 0
287
+ };
288
+ return n?.map((t) => {
289
+ let n = typeof t == "string", r = 0;
290
+ if (n && (r = parseInt(t, 10)), L(s)) {
291
+ let i = n ? r : p ? t * e.height : 0;
292
+ return p ? s === "bottom" ? e.height - i : -e.height + i : i;
293
+ }
294
+ let i = n ? r : p ? t * e.width : 0;
295
+ return p ? s === "right" ? e.width - i : -e.width + i : i;
296
+ }) ?? [];
297
+ }, [
298
+ n,
299
+ p,
300
+ c
301
+ ]), y = l.useMemo(() => g === null ? null : v?.[g], [v, g]), b = l.useCallback((e) => {
302
+ let t = v?.findIndex((t) => t === e) ?? null;
303
+ o(t), I(r.current, {
304
+ transition: `transform ${B.DURATION}s cubic-bezier(${B.EASE.join(",")})`,
305
+ transform: L(s) ? `translate3d(0, ${e}px, 0)` : `translate3d(${e}px, 0, 0)`
306
+ }), v && t !== v.length - 1 && a !== void 0 && t !== a && t < a ? I(i.current, {
307
+ transition: `opacity ${B.DURATION}s cubic-bezier(${B.EASE.join(",")})`,
308
+ opacity: "0"
309
+ }) : I(i.current, {
310
+ transition: `opacity ${B.DURATION}s cubic-bezier(${B.EASE.join(",")})`,
311
+ opacity: "1"
312
+ }), f(n?.[Math.max(t, 0)]);
313
+ }, [
314
+ r.current,
315
+ n,
316
+ v,
317
+ a,
318
+ i,
319
+ f
320
+ ]);
321
+ l.useEffect(() => {
322
+ if (d || e) {
323
+ let t = n?.findIndex((t) => t === e || t === d) ?? -1;
324
+ v && t !== -1 && typeof v[t] == "number" && b(v[t]);
325
+ }
326
+ }, [
327
+ d,
328
+ e,
329
+ n,
330
+ v,
331
+ b
332
+ ]);
333
+ function x({ draggedDistance: e, closeDrawer: t, velocity: r, dismissible: o }) {
334
+ if (a === void 0) return;
335
+ let c = s === "bottom" || s === "right" ? (y ?? 0) - e : (y ?? 0) + e, l = g === a - 1, d = g === 0, f = e > 0;
336
+ if (l && I(i.current, { transition: `opacity ${B.DURATION}s cubic-bezier(${B.EASE.join(",")})` }), !u && r > 2 && !f) {
337
+ o ? t() : b(v[0]);
338
+ return;
339
+ }
340
+ if (!u && r > 2 && f && v && n) {
341
+ b(v[n.length - 1]);
342
+ return;
343
+ }
344
+ let p = v?.reduce((e, t) => typeof e != "number" || typeof t != "number" ? e : Math.abs(t - c) < Math.abs(e - c) ? t : e), m = L(s) ? window.innerHeight : window.innerWidth;
345
+ if (r > ce && Math.abs(e) < m * .4) {
346
+ let e = f ? 1 : -1;
347
+ if (e > 0 && h && n) {
348
+ b(v[n.length - 1]);
349
+ return;
350
+ }
351
+ if (d && e < 0 && o && t(), g === null) return;
352
+ b(v[g + e]);
353
+ return;
354
+ }
355
+ b(p);
356
+ }
357
+ function S({ draggedDistance: e }) {
358
+ if (y === null) return;
359
+ let t = s === "bottom" || s === "right" ? y - e : y + e;
360
+ (s === "bottom" || s === "right") && t < v[v.length - 1] || (s === "top" || s === "left") && t > v[v.length - 1] || I(r.current, { transform: L(s) ? `translate3d(0, ${t}px, 0)` : `translate3d(${t}px, 0, 0)` });
361
+ }
362
+ function C(e, t) {
363
+ if (!n || typeof g != "number" || !v || a === void 0) return null;
364
+ let r = g === a - 1;
365
+ if (g >= a && t) return 0;
366
+ if (r && !t) return 1;
367
+ if (!_ && !r) return null;
368
+ let i = r ? g + 1 : g - 1, o = r ? v[i] - v[i - 1] : v[i + 1] - v[i], s = e / Math.abs(o);
369
+ return r ? 1 - s : s;
370
+ }
371
+ return {
372
+ isLastSnapPoint: h,
373
+ activeSnapPoint: d,
374
+ shouldFade: _,
375
+ getPercentageDragged: C,
376
+ setActiveSnapPoint: f,
377
+ activeSnapPointIndex: g,
378
+ onRelease: x,
379
+ onDrag: S,
380
+ snapPointsOffset: v
381
+ };
382
+ }
383
+ function W() {
384
+ let { direction: e, isOpen: t, shouldScaleBackground: n, setBackgroundColorOnScale: r, noBodyStyles: i } = h(), a = l.useRef(null), o = f(() => document.body.style.backgroundColor, []);
385
+ function s() {
386
+ return (window.innerWidth - fe) / window.innerWidth;
387
+ }
388
+ l.useEffect(() => {
389
+ if (t && n) {
390
+ a.current && clearTimeout(a.current);
391
+ let t = document.querySelector("[data-vaul-drawer-wrapper]") || document.querySelector("[vaul-drawer-wrapper]");
392
+ if (!t) return;
393
+ r && !i && z(document.body, { background: "black" }), z(t, {
394
+ transformOrigin: L(e) ? "top" : "left",
395
+ transitionProperty: "transform, border-radius",
396
+ transitionDuration: `${B.DURATION}s`,
397
+ transitionTimingFunction: `cubic-bezier(${B.EASE.join(",")})`
398
+ });
399
+ let n = z(t, {
400
+ borderRadius: `${de}px`,
401
+ overflow: "hidden",
402
+ ...L(e) ? { transform: `scale(${s()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)` } : { transform: `scale(${s()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)` }
403
+ });
404
+ return () => {
405
+ n(), a.current = window.setTimeout(() => {
406
+ o ? document.body.style.background = o : document.body.style.removeProperty("background");
407
+ }, B.DURATION * 1e3);
408
+ };
409
+ }
410
+ }, [
411
+ t,
412
+ n,
413
+ o
414
+ ]);
415
+ }
416
+ var G = null;
417
+ function ge({ isOpen: e, modal: t, nested: n, hasBeenOpened: r, preventScrollRestoration: i, noBodyStyles: a }) {
418
+ let [o, s] = l.useState(() => typeof window < "u" ? window.location.href : ""), c = l.useRef(0), u = l.useCallback(() => {
419
+ if (y() && G === null && e && !a) {
420
+ G = {
421
+ position: document.body.style.position,
422
+ top: document.body.style.top,
423
+ left: document.body.style.left,
424
+ height: document.body.style.height,
425
+ right: "unset"
426
+ };
427
+ let { scrollX: e, innerHeight: t } = window;
428
+ document.body.style.setProperty("position", "fixed", "important"), Object.assign(document.body.style, {
429
+ top: `${-c.current}px`,
430
+ left: `${-e}px`,
431
+ right: "0px",
432
+ height: "auto"
433
+ }), window.setTimeout(() => window.requestAnimationFrame(() => {
434
+ let e = t - window.innerHeight;
435
+ e && c.current >= t && (document.body.style.top = `${-(c.current + e)}px`);
436
+ }), 300);
437
+ }
438
+ }, [e]), d = l.useCallback(() => {
439
+ if (y() && G !== null && !a) {
440
+ let e = -parseInt(document.body.style.top, 10), t = -parseInt(document.body.style.left, 10);
441
+ Object.assign(document.body.style, G), window.requestAnimationFrame(() => {
442
+ if (i && o !== window.location.href) {
443
+ s(window.location.href);
444
+ return;
445
+ }
446
+ window.scrollTo(t, e);
447
+ }), G = null;
448
+ }
449
+ }, [o]);
450
+ return l.useEffect(() => {
451
+ function e() {
452
+ c.current = window.scrollY;
453
+ }
454
+ return e(), window.addEventListener("scroll", e), () => {
455
+ window.removeEventListener("scroll", e);
456
+ };
457
+ }, []), l.useEffect(() => {
458
+ if (t) return () => {
459
+ typeof document > "u" || document.querySelector("[data-vaul-drawer]") || d();
460
+ };
461
+ }, [t, d]), l.useEffect(() => {
462
+ n || !r || (e ? (!window.matchMedia("(display-mode: standalone)").matches && u(), t || window.setTimeout(() => {
463
+ d();
464
+ }, 500)) : d());
465
+ }, [
466
+ e,
467
+ r,
468
+ o,
469
+ t,
470
+ n,
471
+ u,
472
+ d
473
+ ]), { restorePositionSetting: d };
474
+ }
475
+ function K({ open: e, onOpenChange: t, children: n, onDrag: r, onRelease: a, snapPoints: o, shouldScaleBackground: s = !1, setBackgroundColorOnScale: c = !0, closeThreshold: u = le, scrollLockTimeout: d = ue, dismissible: f = !0, handleOnly: p = !1, fadeFromIndex: h = o && o.length - 1, activeSnapPoint: _, setActiveSnapPoint: v, fixed: y, modal: b = !0, onClose: S, nested: C, noBodyStyles: w = !1, direction: T = "bottom", defaultOpen: E = !1, disablePreventScroll: D = !0, snapToSequentialPoint: O = !1, preventScrollRestoration: k = !1, repositionInputs: A = !0, onAnimationEnd: j, container: te, autoFocus: ne = !1 }) {
476
+ let [M = !1, N] = me({
477
+ defaultProp: E,
478
+ prop: e,
479
+ onChange: (e) => {
480
+ t?.(e), !e && !C && Ae(), setTimeout(() => {
481
+ j?.(e);
482
+ }, B.DURATION * 1e3), e && !b && typeof window < "u" && window.requestAnimationFrame(() => {
483
+ document.body.style.pointerEvents = "auto";
484
+ }), e || (document.body.style.pointerEvents = "auto");
485
+ }
486
+ }), [ie, ae] = l.useState(!1), [P, F] = l.useState(!1), [z, H] = l.useState(!1), U = l.useRef(null), W = l.useRef(null), G = l.useRef(null), K = l.useRef(null), q = l.useRef(null), J = l.useRef(!1), _e = l.useRef(null), ve = l.useRef(0), Y = l.useRef(!1), ye = l.useRef(!E), be = l.useRef(0), X = l.useRef(null), xe = l.useRef(X.current?.getBoundingClientRect().height || 0), Se = l.useRef(X.current?.getBoundingClientRect().width || 0), Ce = l.useRef(0), { activeSnapPoint: we, activeSnapPointIndex: Z, setActiveSnapPoint: Te, onRelease: Ee, snapPointsOffset: Q, onDrag: De, shouldFade: Oe, getPercentageDragged: ke } = he({
487
+ snapPoints: o,
488
+ activeSnapPointProp: _,
489
+ setActiveSnapPointProp: v,
490
+ drawerRef: X,
491
+ fadeFromIndex: h,
492
+ overlayRef: U,
493
+ onSnapPointChange: l.useCallback((e) => {
494
+ o && e === Q.length - 1 && (W.current = /* @__PURE__ */ new Date());
495
+ }, []),
496
+ direction: T,
497
+ container: te,
498
+ snapToSequentialPoint: O
499
+ });
500
+ ee({ isDisabled: !M || P || !b || z || !ie || !A || !D });
501
+ let { restorePositionSetting: Ae } = ge({
502
+ isOpen: M,
503
+ modal: b,
504
+ nested: C ?? !1,
505
+ hasBeenOpened: ie,
506
+ preventScrollRestoration: k,
507
+ noBodyStyles: w
508
+ });
509
+ function je() {
510
+ return (window.innerWidth - fe) / window.innerWidth;
511
+ }
512
+ function Me(e) {
513
+ !f && !o || X.current && !X.current.contains(e.target) || (xe.current = X.current?.getBoundingClientRect().height || 0, Se.current = X.current?.getBoundingClientRect().width || 0, F(!0), G.current = /* @__PURE__ */ new Date(), x() && window.addEventListener("touchend", () => J.current = !1, { once: !0 }), e.target.setPointerCapture(e.pointerId), ve.current = L(T) ? e.pageY : e.pageX);
514
+ }
515
+ function Ne(e, t) {
516
+ let n = e, r = window.getSelection()?.toString(), i = X.current ? R(X.current, T) : null, a = /* @__PURE__ */ new Date();
517
+ if (n.tagName === "SELECT" || n.hasAttribute("data-vaul-no-drag") || n.closest("[data-vaul-no-drag]")) return !1;
518
+ if (T === "right" || T === "left") return !0;
519
+ if (W.current && a.getTime() - W.current.getTime() < 500) return !1;
520
+ if (i !== null && (T === "bottom" ? i > 0 : i < 0)) return !0;
521
+ if (r && r.length > 0) return !1;
522
+ if (q.current && a.getTime() - q.current.getTime() < d && i === 0 || t) return q.current = a, !1;
523
+ for (; n;) {
524
+ if (n.scrollHeight > n.clientHeight) {
525
+ if (n.scrollTop !== 0) return q.current = /* @__PURE__ */ new Date(), !1;
526
+ if (n.getAttribute("role") === "dialog") return !0;
527
+ }
528
+ n = n.parentNode;
529
+ }
530
+ return !0;
531
+ }
532
+ function Pe(e) {
533
+ if (X.current && P) {
534
+ let t = T === "bottom" || T === "right" ? 1 : -1, n = (ve.current - (L(T) ? e.pageY : e.pageX)) * t, i = n > 0, a = o && !f && !i;
535
+ if (a && Z === 0) return;
536
+ let c = Math.abs(n), l = document.querySelector("[data-vaul-drawer-wrapper]"), u = c / (T === "bottom" || T === "top" ? xe.current : Se.current), d = ke(c, i);
537
+ if (d !== null && (u = d), a && u >= 1 || !J.current && !Ne(e.target, i)) return;
538
+ if (X.current.classList.add(pe), J.current = !0, I(X.current, { transition: "none" }), I(U.current, { transition: "none" }), o && De({ draggedDistance: n }), i && !o) {
539
+ let e = se(n), r = Math.min(e * -1, 0) * t;
540
+ I(X.current, { transform: L(T) ? `translate3d(0, ${r}px, 0)` : `translate3d(${r}px, 0, 0)` });
541
+ return;
542
+ }
543
+ let p = 1 - u;
544
+ if ((Oe || h && Z === h - 1) && (r?.(e, u), I(U.current, {
545
+ opacity: `${p}`,
546
+ transition: "none"
547
+ }, !0)), l && U.current && s) {
548
+ let e = Math.min(je() + u * (1 - je()), 1), t = 8 - u * 8, n = Math.max(0, 14 - u * 14);
549
+ I(l, {
550
+ borderRadius: `${t}px`,
551
+ transform: L(T) ? `scale(${e}) translate3d(0, ${n}px, 0)` : `scale(${e}) translate3d(${n}px, 0, 0)`,
552
+ transition: "none"
553
+ }, !0);
554
+ }
555
+ if (!o) {
556
+ let e = c * t;
557
+ I(X.current, { transform: L(T) ? `translate3d(0, ${e}px, 0)` : `translate3d(${e}px, 0, 0)` });
558
+ }
559
+ }
560
+ }
561
+ l.useEffect(() => {
562
+ window.requestAnimationFrame(() => {
563
+ ye.current = !0;
564
+ });
565
+ }, []), l.useEffect(() => {
566
+ var e;
567
+ function t() {
568
+ if (!X.current || !A) return;
569
+ let e = document.activeElement;
570
+ if (re(e) || Y.current) {
571
+ let e = window.visualViewport?.height || 0, t = window.innerHeight, n = t - e, r = X.current.getBoundingClientRect().height || 0, i = r > t * .8;
572
+ Ce.current ||= r;
573
+ let a = X.current.getBoundingClientRect().top;
574
+ if (Math.abs(be.current - n) > 60 && (Y.current = !Y.current), o && o.length > 0 && Q && Z) {
575
+ let e = Q[Z] || 0;
576
+ n += e;
577
+ }
578
+ if (be.current = n, r > e || Y.current) {
579
+ let t = X.current.getBoundingClientRect().height, r = t;
580
+ t > e && (r = e - (i ? a : fe)), y ? X.current.style.height = `${t - Math.max(n, 0)}px` : X.current.style.height = `${Math.max(r, e - a)}px`;
581
+ } else g() || (X.current.style.height = `${Ce.current}px`);
582
+ o && o.length > 0 && !Y.current ? X.current.style.bottom = "0px" : X.current.style.bottom = `${Math.max(n, 0)}px`;
583
+ }
584
+ }
585
+ return (e = window.visualViewport) == null || e.addEventListener("resize", t), () => window.visualViewport?.removeEventListener("resize", t);
586
+ }, [
587
+ Z,
588
+ o,
589
+ Q
590
+ ]);
591
+ function $(e) {
592
+ Ie(), S?.(), e || N(!1), setTimeout(() => {
593
+ o && Te(o[0]);
594
+ }, B.DURATION * 1e3);
595
+ }
596
+ function Fe() {
597
+ if (!X.current) return;
598
+ let e = document.querySelector("[data-vaul-drawer-wrapper]"), t = R(X.current, T);
599
+ I(X.current, {
600
+ transform: "translate3d(0, 0, 0)",
601
+ transition: `transform ${B.DURATION}s cubic-bezier(${B.EASE.join(",")})`
602
+ }), I(U.current, {
603
+ transition: `opacity ${B.DURATION}s cubic-bezier(${B.EASE.join(",")})`,
604
+ opacity: "1"
605
+ }), s && t && t > 0 && M && I(e, {
606
+ borderRadius: `${de}px`,
607
+ overflow: "hidden",
608
+ ...L(T) ? {
609
+ transform: `scale(${je()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,
610
+ transformOrigin: "top"
611
+ } : {
612
+ transform: `scale(${je()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,
613
+ transformOrigin: "left"
614
+ },
615
+ transitionProperty: "transform, border-radius",
616
+ transitionDuration: `${B.DURATION}s`,
617
+ transitionTimingFunction: `cubic-bezier(${B.EASE.join(",")})`
618
+ }, !0);
619
+ }
620
+ function Ie() {
621
+ !P || !X.current || (X.current.classList.remove(pe), J.current = !1, F(!1), K.current = /* @__PURE__ */ new Date());
622
+ }
623
+ function Le(e) {
624
+ if (!P || !X.current) return;
625
+ X.current.classList.remove(pe), J.current = !1, F(!1), K.current = /* @__PURE__ */ new Date();
626
+ let t = R(X.current, T);
627
+ if (!e || !Ne(e.target, !1) || !t || Number.isNaN(t) || G.current === null) return;
628
+ let n = K.current.getTime() - G.current.getTime(), r = ve.current - (L(T) ? e.pageY : e.pageX), i = Math.abs(r) / n;
629
+ if (i > .05 && (H(!0), setTimeout(() => {
630
+ H(!1);
631
+ }, 200)), o) {
632
+ Ee({
633
+ draggedDistance: r * (T === "bottom" || T === "right" ? 1 : -1),
634
+ closeDrawer: $,
635
+ velocity: i,
636
+ dismissible: f
637
+ }), a?.(e, !0);
638
+ return;
639
+ }
640
+ if (T === "bottom" || T === "right" ? r > 0 : r < 0) {
641
+ Fe(), a?.(e, !0);
642
+ return;
643
+ }
644
+ if (i > ce) {
645
+ $(), a?.(e, !1);
646
+ return;
647
+ }
648
+ let s = Math.min(X.current.getBoundingClientRect().height ?? 0, window.innerHeight), c = Math.min(X.current.getBoundingClientRect().width ?? 0, window.innerWidth);
649
+ if (Math.abs(t) >= (T === "left" || T === "right" ? c : s) * u) {
650
+ $(), a?.(e, !1);
651
+ return;
652
+ }
653
+ a?.(e, !0), Fe();
654
+ }
655
+ l.useEffect(() => (M && (I(document.documentElement, { scrollBehavior: "auto" }), W.current = /* @__PURE__ */ new Date()), () => {
656
+ oe(document.documentElement, "scrollBehavior");
657
+ }), [M]);
658
+ function Re(e) {
659
+ let t = e ? (window.innerWidth - V) / window.innerWidth : 1, n = e ? -V : 0;
660
+ _e.current && window.clearTimeout(_e.current), I(X.current, {
661
+ transition: `transform ${B.DURATION}s cubic-bezier(${B.EASE.join(",")})`,
662
+ transform: L(T) ? `scale(${t}) translate3d(0, ${n}px, 0)` : `scale(${t}) translate3d(${n}px, 0, 0)`
663
+ }), !e && X.current && (_e.current = setTimeout(() => {
664
+ let e = R(X.current, T);
665
+ I(X.current, {
666
+ transition: "none",
667
+ transform: L(T) ? `translate3d(0, ${e}px, 0)` : `translate3d(${e}px, 0, 0)`
668
+ });
669
+ }, 500));
670
+ }
671
+ function ze(e, t) {
672
+ if (t < 0) return;
673
+ let n = (window.innerWidth - V) / window.innerWidth, r = n + t * (1 - n), i = -V + t * V;
674
+ I(X.current, {
675
+ transform: L(T) ? `scale(${r}) translate3d(0, ${i}px, 0)` : `scale(${r}) translate3d(${i}px, 0, 0)`,
676
+ transition: "none"
677
+ });
678
+ }
679
+ function Be(e, t) {
680
+ let n = L(T) ? window.innerHeight : window.innerWidth, r = t ? (n - V) / n : 1, i = t ? -V : 0;
681
+ t && I(X.current, {
682
+ transition: `transform ${B.DURATION}s cubic-bezier(${B.EASE.join(",")})`,
683
+ transform: L(T) ? `scale(${r}) translate3d(0, ${i}px, 0)` : `scale(${r}) translate3d(${i}px, 0, 0)`
684
+ });
685
+ }
686
+ return l.useEffect(() => {
687
+ b || window.requestAnimationFrame(() => {
688
+ document.body.style.pointerEvents = "auto";
689
+ });
690
+ }, [b]), /* @__PURE__ */ l.createElement(i, {
691
+ defaultOpen: E,
692
+ onOpenChange: (e) => {
693
+ !f && !e || (e ? ae(!0) : $(!0), N(e));
694
+ },
695
+ open: M
696
+ }, /* @__PURE__ */ l.createElement(m.Provider, { value: {
697
+ activeSnapPoint: we,
698
+ snapPoints: o,
699
+ setActiveSnapPoint: Te,
700
+ drawerRef: X,
701
+ overlayRef: U,
702
+ onOpenChange: t,
703
+ onPress: Me,
704
+ onRelease: Le,
705
+ onDrag: Pe,
706
+ dismissible: f,
707
+ shouldAnimate: ye,
708
+ handleOnly: p,
709
+ isOpen: M,
710
+ isDragging: P,
711
+ shouldFade: Oe,
712
+ closeDrawer: $,
713
+ onNestedDrag: ze,
714
+ onNestedOpenChange: Re,
715
+ onNestedRelease: Be,
716
+ keyboardIsOpen: Y,
717
+ modal: b,
718
+ snapPointsOffset: Q,
719
+ activeSnapPointIndex: Z,
720
+ direction: T,
721
+ shouldScaleBackground: s,
722
+ setBackgroundColorOnScale: c,
723
+ noBodyStyles: w,
724
+ container: te,
725
+ autoFocus: ne
726
+ } }, n));
727
+ }
728
+ var q = /* @__PURE__ */ l.forwardRef(function({ ...e }, t) {
729
+ let { overlayRef: r, snapPoints: i, onRelease: a, shouldFade: o, isOpen: s, modal: c, shouldAnimate: u } = h(), d = P(t, r), f = i && i.length > 0;
730
+ if (!c) return null;
731
+ let p = l.useCallback((e) => a(e), [a]);
732
+ return /* @__PURE__ */ l.createElement(n, {
733
+ onMouseUp: p,
734
+ ref: d,
735
+ "data-vaul-overlay": "",
736
+ "data-vaul-snap-points": s && f ? "true" : "false",
737
+ "data-vaul-snap-points-overlay": s && o ? "true" : "false",
738
+ "data-vaul-animate": u?.current ? "true" : "false",
739
+ ...e
740
+ });
741
+ });
742
+ q.displayName = "Drawer.Overlay";
743
+ var J = /* @__PURE__ */ l.forwardRef(function({ onPointerDownOutside: e, style: t, onOpenAutoFocus: n, ...i }, a) {
744
+ let { drawerRef: o, onPress: s, onRelease: c, onDrag: u, keyboardIsOpen: d, snapPointsOffset: f, activeSnapPointIndex: p, modal: m, isOpen: g, direction: _, snapPoints: v, container: y, handleOnly: b, shouldAnimate: x, autoFocus: S } = h(), [C, w] = l.useState(!1), T = P(a, o), E = l.useRef(null), D = l.useRef(null), O = l.useRef(!1), k = v && v.length > 0;
745
+ W();
746
+ let A = (e, t, n = 0) => {
747
+ if (O.current) return !0;
748
+ let r = Math.abs(e.y), i = Math.abs(e.x), a = i > r, o = ["bottom", "right"].includes(t) ? 1 : -1;
749
+ if (t === "left" || t === "right") {
750
+ if (!(e.x * o < 0) && i >= 0 && i <= n) return a;
751
+ } else if (!(e.y * o < 0) && r >= 0 && r <= n) return !a;
752
+ return O.current = !0, !0;
753
+ };
754
+ l.useEffect(() => {
755
+ k && window.requestAnimationFrame(() => {
756
+ w(!0);
757
+ });
758
+ }, []);
759
+ function j(e) {
760
+ E.current = null, O.current = !1, c(e);
761
+ }
762
+ return /* @__PURE__ */ l.createElement(r, {
763
+ "data-vaul-drawer-direction": _,
764
+ "data-vaul-drawer": "",
765
+ "data-vaul-delayed-snap-points": C ? "true" : "false",
766
+ "data-vaul-snap-points": g && k ? "true" : "false",
767
+ "data-vaul-custom-container": y ? "true" : "false",
768
+ "data-vaul-animate": x?.current ? "true" : "false",
769
+ ...i,
770
+ ref: T,
771
+ style: f && f.length > 0 ? {
772
+ "--snap-point-height": `${f[p ?? 0]}px`,
773
+ ...t
774
+ } : t,
775
+ onPointerDown: (e) => {
776
+ b || (i.onPointerDown == null || i.onPointerDown.call(i, e), E.current = {
777
+ x: e.pageX,
778
+ y: e.pageY
779
+ }, s(e));
780
+ },
781
+ onOpenAutoFocus: (e) => {
782
+ n?.(e), S || e.preventDefault();
783
+ },
784
+ onPointerDownOutside: (t) => {
785
+ if (e?.(t), !m || t.defaultPrevented) {
786
+ t.preventDefault();
787
+ return;
788
+ }
789
+ d.current &&= !1;
790
+ },
791
+ onFocusOutside: (e) => {
792
+ if (!m) {
793
+ e.preventDefault();
794
+ return;
795
+ }
796
+ },
797
+ onPointerMove: (e) => {
798
+ if (D.current = e, b || (i.onPointerMove == null || i.onPointerMove.call(i, e), !E.current)) return;
799
+ let t = e.pageY - E.current.y, n = e.pageX - E.current.x, r = e.pointerType === "touch" ? 10 : 2;
800
+ A({
801
+ x: n,
802
+ y: t
803
+ }, _, r) ? u(e) : (Math.abs(n) > r || Math.abs(t) > r) && (E.current = null);
804
+ },
805
+ onPointerUp: (e) => {
806
+ i.onPointerUp == null || i.onPointerUp.call(i, e), E.current = null, O.current = !1, c(e);
807
+ },
808
+ onPointerOut: (e) => {
809
+ i.onPointerOut == null || i.onPointerOut.call(i, e), j(D.current);
810
+ },
811
+ onContextMenu: (e) => {
812
+ i.onContextMenu == null || i.onContextMenu.call(i, e), D.current && j(D.current);
813
+ }
814
+ });
815
+ });
816
+ J.displayName = "Drawer.Content";
817
+ var _e = 250, ve = 120, Y = /* @__PURE__ */ l.forwardRef(function({ preventCycle: e = !1, children: t, ...n }, r) {
818
+ let { closeDrawer: i, isDragging: a, snapPoints: o, activeSnapPoint: s, setActiveSnapPoint: c, dismissible: u, handleOnly: d, isOpen: f, onPress: p, onDrag: m } = h(), g = l.useRef(null), _ = l.useRef(!1);
819
+ function v() {
820
+ if (_.current) {
821
+ x();
822
+ return;
823
+ }
824
+ window.setTimeout(() => {
825
+ y();
826
+ }, ve);
827
+ }
828
+ function y() {
829
+ if (a || e || _.current) {
830
+ x();
831
+ return;
832
+ }
833
+ if (x(), !o || o.length === 0) {
834
+ u || i();
835
+ return;
836
+ }
837
+ if (s === o[o.length - 1] && u) {
838
+ i();
839
+ return;
840
+ }
841
+ let t = o.findIndex((e) => e === s);
842
+ if (t === -1) return;
843
+ let n = o[t + 1];
844
+ c(n);
845
+ }
846
+ function b() {
847
+ g.current = window.setTimeout(() => {
848
+ _.current = !0;
849
+ }, _e);
850
+ }
851
+ function x() {
852
+ g.current && window.clearTimeout(g.current), _.current = !1;
853
+ }
854
+ return /* @__PURE__ */ l.createElement("div", {
855
+ onClick: v,
856
+ onPointerCancel: x,
857
+ onPointerDown: (e) => {
858
+ d && p(e), b();
859
+ },
860
+ onPointerMove: (e) => {
861
+ d && m(e);
862
+ },
863
+ ref: r,
864
+ "data-vaul-drawer-visible": f ? "true" : "false",
865
+ "data-vaul-handle": "",
866
+ "aria-hidden": "true",
867
+ ...n
868
+ }, /* @__PURE__ */ l.createElement("span", {
869
+ "data-vaul-handle-hitarea": "",
870
+ "aria-hidden": "true"
871
+ }, t));
872
+ });
873
+ Y.displayName = "Drawer.Handle";
874
+ function ye({ onDrag: e, onOpenChange: t, open: n, ...r }) {
875
+ let { onNestedDrag: i, onNestedOpenChange: a, onNestedRelease: o } = h();
876
+ if (!i) throw Error("Drawer.NestedRoot must be placed in another drawer");
877
+ return /* @__PURE__ */ l.createElement(K, {
878
+ nested: !0,
879
+ open: n,
880
+ onClose: () => {
881
+ a(!1);
882
+ },
883
+ onDrag: (t, n) => {
884
+ i(t, n), e?.(t, n);
885
+ },
886
+ onOpenChange: (e) => {
887
+ e && a(e), t?.(e);
888
+ },
889
+ onRelease: o,
890
+ ...r
891
+ });
892
+ }
893
+ function be(t) {
894
+ let n = h(), { container: r = n.container, ...i } = t;
895
+ return /* @__PURE__ */ l.createElement(e, {
896
+ container: r,
897
+ ...i
898
+ });
899
+ }
900
+ var X = {
901
+ Root: K,
902
+ NestedRoot: ye,
903
+ Content: J,
904
+ Overlay: q,
905
+ Trigger: t,
906
+ Portal: be,
907
+ Handle: Y,
908
+ Close: s,
909
+ Title: o,
910
+ Description: a
911
+ };
912
+ //#endregion
913
+ export { X as t };