|
31 | 31 | noBodyStyles = false,
|
32 | 32 | preventScrollRestoration = true,
|
33 | 33 | setBackgroundColorOnScale = true,
|
| 34 | + disablePreventScroll = false, |
34 | 35 | ...restProps
|
35 | 36 | }: DrawerRootProps = $props();
|
36 | 37 |
|
|
67 | 68 | noBodyStyles: box.with(() => noBodyStyles),
|
68 | 69 | preventScrollRestoration: box.with(() => preventScrollRestoration),
|
69 | 70 | setBackgroundColorOnScale: box.with(() => setBackgroundColorOnScale),
|
| 71 | + disablePreventScroll: box.with(() => disablePreventScroll), |
70 | 72 | });
|
71 | 73 | </script>
|
72 | 74 |
|
73 | 75 | <DialogPrimitive.Root
|
74 | 76 | bind:open
|
75 | 77 | onOpenChange={(o) => {
|
76 | 78 | onOpenChange(o);
|
77 |
| - if (!o) { |
78 |
| - rootState.closeDrawer(); |
79 |
| - } else if (o) { |
80 |
| - rootState.openDrawer(); |
81 |
| - } |
| 79 | + rootState.onOpenChange(o); |
82 | 80 | }}
|
83 | 81 | {...restProps}
|
84 | 82 | />
|
85 | 83 |
|
86 |
| -<style> |
| 84 | +<style global> |
87 | 85 | :global([data-vaul-drawer]) {
|
88 | 86 | touch-action: none;
|
| 87 | + will-change: transform; |
89 | 88 | transition: transform 0.5s cubic-bezier(0.32, 0.72, 0, 1);
|
90 | 89 | }
|
91 | 90 |
|
|
105 | 104 | transform: translate3d(100%, 0, 0);
|
106 | 105 | }
|
107 | 106 |
|
108 |
| - :global(.vaul-dragging .vaul-scrollable [data-vaul-drawer-direction="top"]) { |
| 107 | + :global(.vaul-dragging .vaul-scrollable [data-vault-drawer-direction="top"]) { |
109 | 108 | overflow-y: hidden !important;
|
110 | 109 | }
|
111 |
| -
|
112 |
| - :global(.vaul-dragging .vaul-scrollable [data-vaul-drawer-direction="bottom"]) { |
| 110 | + :global(.vaul-dragging .vaul-scrollable [data-vault-drawer-direction="bottom"]) { |
113 | 111 | overflow-y: hidden !important;
|
114 | 112 | }
|
115 | 113 |
|
116 |
| - :global(.vaul-dragging .vaul-scrollable [data-vaul-drawer-direction="left"]) { |
| 114 | + :global(.vaul-dragging .vaul-scrollable [data-vault-drawer-direction="left"]) { |
117 | 115 | overflow-x: hidden !important;
|
118 | 116 | }
|
119 |
| - :global(.vaul-dragging .vaul-scrollable [data-vaul-drawer-direction="right"]) { |
| 117 | +
|
| 118 | + :global(.vaul-dragging .vaul-scrollable [data-vault-drawer-direction="right"]) { |
120 | 119 | overflow-x: hidden !important;
|
121 | 120 | }
|
122 | 121 |
|
|
190 | 189 | width: 200%;
|
191 | 190 | }
|
192 | 191 |
|
193 |
| - :global( |
194 |
| - [data-vaul-overlay][data-vaul-snap-points="true"]:not( |
195 |
| - [data-vaul-snap-points-overlay="true"] |
196 |
| - ):not([data-state="closed"]) |
197 |
| - ) { |
198 |
| - opacity: 0; |
199 |
| - } |
200 |
| -
|
201 |
| - :global( |
202 |
| - [data-vaul-overlay][data-vaul-snap-points-overlay="true"]:not( |
203 |
| - [data-vaul-drawer-visible="false"] |
204 |
| - ) |
205 |
| - ) { |
206 |
| - opacity: 1; |
207 |
| - } |
208 |
| -
|
209 | 192 | :global([data-vaul-handle]) {
|
210 | 193 | display: block;
|
211 | 194 | position: relative;
|
|
237 | 220 | touch-action: inherit;
|
238 | 221 | }
|
239 | 222 |
|
240 |
| - /* This will allow us to not animate via animation, but still benefit from delaying |
241 |
| - unmount via Bits */ |
| 223 | + :global( |
| 224 | + [data-vaul-overlay][data-vaul-snap-points="true"]:not( |
| 225 | + [data-vaul-snap-points-overlay="true"] |
| 226 | + ):not([data-state="closed"]) |
| 227 | + ) { |
| 228 | + opacity: 0; |
| 229 | + } |
| 230 | +
|
| 231 | + :global( |
| 232 | + [data-vaul-overlay][data-vaul-snap-points-overlay="true"]:not( |
| 233 | + [data-vaul-drawer-visible="false"] |
| 234 | + ) |
| 235 | + ) { |
| 236 | + opacity: 1; |
| 237 | + } |
| 238 | +
|
| 239 | + /* This will allow us to not animate via animation, but still benefit from delaying unmount via Radix. */ |
| 240 | +
|
242 | 241 | @keyframes -global-fake-animation {
|
243 | 242 | from {
|
244 | 243 | }
|
|
251 | 250 | user-select: none;
|
252 | 251 | }
|
253 | 252 | }
|
| 253 | +
|
| 254 | + @media (pointer: fine) { |
| 255 | + :global([data-vaul-handle-hitarea]) { |
| 256 | + width: 100%; |
| 257 | + height: 100%; |
| 258 | + } |
| 259 | + } |
254 | 260 | </style>
|
0 commit comments