@douxcode/vue-spring-bottom-sheet 1.0.8 → 1.1.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.
package/README.md CHANGED
@@ -76,7 +76,7 @@ For Nuxt 3, just wrap component in `<ClientOnly>`
76
76
 
77
77
  ```css
78
78
  --vsbs-backdrop-bg: rgba(0, 0, 0, 0.5);
79
- --vsbs-shadow-color: hsla(0, 0%, 35%, 0.2);
79
+ --vsbs-shadow-color: rgba(89, 89, 89, 0.2);
80
80
  --vsbs-background: #fff;
81
81
  --vsbs-border-radius: 16px;
82
82
  --vsbs-max-width: 640px;
@@ -3,5 +3,5 @@ export declare function useSnapPoints(snapPoints: Ref<number[]>, height: Ref<num
3
3
  minSnap: import('vue').ComputedRef<number>;
4
4
  maxSnap: import('vue').ComputedRef<number>;
5
5
  snapPoints: Ref<number[], number[]>;
6
- closestSnapPoint: import('vue').ComputedRef<number>;
6
+ closestSnapPointIndex: import('vue').ComputedRef<number>;
7
7
  };
package/dist/index.mjs CHANGED
@@ -1,23 +1,67 @@
1
- import { computed as C, defineComponent as ae, ref as u, toRefs as te, watch as ne, nextTick as R, onMounted as oe, openBlock as le, createBlock as se, Teleport as ue, createElementVNode as d, createVNode as ie, Transition as re, withCtx as ve, withDirectives as de, vShow as ce, renderSlot as P } from "vue";
2
- import { useWindowSize as he, useElementBounding as B, useScrollLock as pe } from "@vueuse/core";
3
- import { useGesture as E, rubberbandIfOutOfBounds as I } from "@vueuse/gesture";
4
- import { useMotionProperties as fe, useMotionTransitions as ge, useMotionControls as me } from "@vueuse/motion";
5
- import { useFocusTrap as be } from "@vueuse/integrations/useFocusTrap";
6
- function ye(c, g) {
7
- const i = C(() => c.value.slice().sort((h, v) => h - v)), n = C(() => i.value[0]), o = C(() => i.value[i.value.length - 1]), s = C(() => {
8
- const h = i.value.reduce(
9
- (v, m) => Math.abs(m - g.value) < Math.abs(v - g.value) ? m : v
1
+ import { computed as H, defineComponent as ie, ref as h, toRefs as se, watch as U, nextTick as z, onMounted as re, openBlock as ve, createBlock as de, Teleport as ce, createElementVNode as b, createVNode as fe, Transition as ge, withCtx as he, withDirectives as pe, vShow as me, renderSlot as N } from "vue";
2
+ import { useWindowSize as be, useElementBounding as I, useScrollLock as ye } from "@vueuse/core";
3
+ import { useGesture as R, rubberbandIfOutOfBounds as V } from "@vueuse/gesture";
4
+ import { useMotionProperties as we, useMotionTransitions as Se, useMotionControls as ke } from "@vueuse/motion";
5
+ import { useFocusTrap as Te } from "@vueuse/integrations/useFocusTrap";
6
+ function Ce(n, u, a) {
7
+ let t = (o) => n(o, ...u);
8
+ return a === void 0 ? t : Object.assign(t, { lazy: a, lazyArgs: u });
9
+ }
10
+ function De(n, u, a) {
11
+ let t = n.length - u.length;
12
+ if (t === 0) return n(...u);
13
+ if (t === 1) return Ce(n, u, a);
14
+ throw new Error("Wrong number of arguments");
15
+ }
16
+ function xe(n, { triggerAt: u = "end", minQuietPeriodMs: a, maxBurstDurationMs: t, minGapMs: o, reducer: c = Me }) {
17
+ let s, r, f, y, T = () => {
18
+ let v = f;
19
+ v !== void 0 && (f = void 0, n(v), o !== void 0 && (r = setTimeout(O, o)));
20
+ }, O = () => {
21
+ clearTimeout(r), r = void 0, s === void 0 && T();
22
+ }, w = () => {
23
+ clearTimeout(s), s = void 0, y = void 0, r === void 0 && T();
24
+ };
25
+ return { call: (...v) => {
26
+ let g = s === void 0 && r === void 0;
27
+ if ((u !== "start" || g) && (f = c(f, ...v)), !(s === void 0 && !g)) {
28
+ if (a !== void 0 || t !== void 0 || o === void 0) {
29
+ clearTimeout(s);
30
+ let p = Date.now();
31
+ y ?? (y = p);
32
+ let W = t === void 0 ? a ?? 0 : Math.min(a ?? t, t - (p - y));
33
+ s = setTimeout(w, W);
34
+ }
35
+ u !== "end" && g && T();
36
+ }
37
+ }, cancel: () => {
38
+ clearTimeout(s), s = void 0, y = void 0, clearTimeout(r), r = void 0, f = void 0;
39
+ }, flush: () => {
40
+ w(), O();
41
+ }, get isIdle() {
42
+ return s === void 0 && r === void 0;
43
+ } };
44
+ }
45
+ var Me = () => "";
46
+ function $(...n) {
47
+ return De(_e, n);
48
+ }
49
+ var _e = (n, { min: u, max: a }) => u !== void 0 && n < u ? u : a !== void 0 && n > a ? a : n;
50
+ function Be(n, u) {
51
+ const a = H(() => n.value.sort()), t = H(() => a.value[0]), o = H(() => a.value[a.value.length - 1]), c = H(() => {
52
+ const s = a.value.reduce(
53
+ (r, f) => Math.abs(f - u.value) < Math.abs(r - u.value) ? f : r
10
54
  );
11
- return i.value.indexOf(h);
55
+ return a.value.indexOf(s);
12
56
  });
13
57
  return {
14
- minSnap: n,
58
+ minSnap: t,
15
59
  maxSnap: o,
16
- snapPoints: c,
17
- closestSnapPoint: s
60
+ snapPoints: n,
61
+ closestSnapPointIndex: c
18
62
  };
19
63
  }
20
- const ke = { "data-vsbs-container": "" }, we = ["data-vsbs-shadow", "data-vsbs-sheet-show"], Se = /* @__PURE__ */ ae({
64
+ const He = { "data-vsbs-container": "" }, Oe = ["data-vsbs-shadow", "data-vsbs-sheet-show"], Pe = /* @__PURE__ */ ie({
21
65
  __name: "BottomSheet",
22
66
  props: {
23
67
  snapPoints: {},
@@ -28,165 +72,183 @@ const ke = { "data-vsbs-container": "" }, we = ["data-vsbs-shadow", "data-vsbs-s
28
72
  expandOnContentDrag: { type: Boolean, default: !0 }
29
73
  },
30
74
  emits: ["opened", "closed", "ready", "dragging-up", "dragging-down", "minHeight", "maxHeight"],
31
- setup(c, { expose: g, emit: i }) {
32
- const n = c, o = i, s = u(null), h = u(null), v = u(null), m = u(null), F = u(null), L = u(null), W = u(null), T = u(!1), r = u(n.expandOnContentDrag), { height: b } = he(), { height: _ } = B(s), { height: z } = B(h), { height: G } = B(v), { height: K } = B(L), { activate: Y, deactivate: j } = be([s, W]), p = C(() => Math.ceil(K.value + z.value + G.value)), { motionProperties: y } = fe(s), { push: k, stop: q, motionValues: H } = ge(), { set: w } = me(y, {}, { push: k, motionValues: H, stop: q }), e = u(0), t = u(0), { snapPoints: J } = te(n), Q = C(() => J.value ?? [p.value]), { minSnap: f, maxSnap: S, snapPoints: D, closestSnapPoint: U } = ye(Q, e), $ = pe(document.body), N = (a) => {
33
- a.key === "Escape" && x();
34
- }, X = () => {
35
- s.value && (e.value = Math.min(n.defaultBreakpoint ?? f.value, b.value), w({
75
+ setup(n, { expose: u, emit: a }) {
76
+ const t = n, o = a, c = h(null), s = h(null), r = h(null), f = h(null), y = h(null), T = h(null), O = h(null), w = h(!1), v = h(t.expandOnContentDrag), { height: g } = be(), { height: p } = I(c), { height: W } = I(s), { height: q } = I(r), { height: J } = I(T), { activate: Z, deactivate: Y } = Te([c, O], { immediate: !1 }), S = H(() => Math.ceil(J.value + W.value + q.value)), { motionProperties: C } = we(c), { push: D, stop: ee, motionValues: x } = Se(), { set: M, stop: X } = ke(C, {}, { push: D, motionValues: x, stop: ee }), e = h(0), l = h(0), { snapPoints: te } = se(t), ae = H(() => te.value ?? [S.value]), { minSnap: _, maxSnap: B, snapPoints: k, closestSnapPointIndex: A } = Be(ae, e), G = ye(document.body), Q = (i) => {
77
+ i.key === "Escape" && E();
78
+ }, ne = () => {
79
+ c.value && (e.value = Math.min(t.defaultBreakpoint ?? _.value, g.value), M({
36
80
  height: e.value,
37
81
  y: e.value
38
- }), k("y", 0, y, { type: "tween", easings: "easeInOut", bounce: 0, duration: 300 }), T.value = !0, $.value = !0, window.addEventListener("keydown", N), n.blocking && setTimeout(() => {
39
- H.value.y.get() - 0 < 0.1 && (o("opened"), Y());
82
+ }), D("y", 0, C, { type: "tween", easings: "easeInOut", bounce: 0, duration: 300 }), w.value = !0, G.value = !0, window.addEventListener("keydown", Q), t.blocking && setTimeout(() => {
83
+ x.value.y.get() - 0 < 0.1 && (o("opened"), Z());
40
84
  }, 300));
41
- }, x = () => {
42
- s.value && (k("y", _.value, y, { type: "tween", bounce: 0, duration: 300 }), T.value = !1, $.value = !1, n.blocking && j(), window.removeEventListener("keydown", N), setTimeout(() => {
43
- H.value.y.get() - _.value < 0.1 && o("closed");
85
+ }, E = () => {
86
+ c.value && (D("y", p.value, C, { type: "tween", bounce: 0, duration: 300 }), w.value = !1, G.value = !1, t.blocking && Y(), window.removeEventListener("keydown", Q), setTimeout(() => {
87
+ x.value.y.get() - p.value < 0.1 && o("closed");
44
88
  }, 300));
45
- }, Z = () => {
46
- n.canBackdropClose && x();
89
+ }, oe = () => {
90
+ t.canBackdropClose && E();
47
91
  };
48
- function ee(a) {
49
- r.value && a.preventDefault();
92
+ function le(i) {
93
+ v.value && i.preventDefault();
50
94
  }
51
- const V = (a) => {
52
- s.value && (e.value = a, k("height", e.value, y, {
95
+ const F = (i) => {
96
+ e.value = i, D("height", e.value, C, {
53
97
  type: "tween",
54
98
  easings: "easeInOut",
55
99
  bounce: 0,
56
100
  duration: 300
57
- }));
58
- }, A = ({ delta: a, direction: l }) => {
59
- s.value && (t.value === 0 && (e.value -= a[1]), e.value <= f.value && (e.value = f.value, t.value += a[1], t.value = Math.max(0, Math.min(t.value, f.value)), w({
60
- y: n.canSwipeClose ? t.value : I(t.value, -_.value, 0, 0.5)
61
- })), e.value = Math.min(e.value, b.value), w({
62
- height: Math.max(I(e.value, 0, S.value, 0.25), 0)
63
- }), l[1] > 0 ? o("dragging-down") : l[1] < 0 && o("dragging-up"));
64
- }, O = () => {
65
- s.value && (t.value = n.canSwipeClose ? [0, e.value].reduce((a, l) => Math.abs(l - t.value) < Math.abs(a - t.value) ? l : a) : 0, k("y", t.value, y, { type: "tween", easings: "easeInOut", bounce: 0, duration: 300 }), t.value === e.value && (t.value = 0, x()), e.value = Math.min(D.value[U.value], b.value), k("height", e.value, y, { type: "tween", easings: "easeInOut", bounce: 0, duration: 300 }));
101
+ });
102
+ }, j = ({ delta: [i, d], direction: [P, m] }) => {
103
+ c.value && (l.value <= 0 && (e.value -= d), e.value <= _.value && (e.value = _.value, l.value += d, M({
104
+ y: t.canSwipeClose ? $(l.value, { min: 0 }) : $(V(l.value, -p.value, 0, 0.5), { min: 0 })
105
+ })), M({
106
+ height: $(V(e.value, 0, B.value, 0.25), { min: 0, max: g.value })
107
+ }), m > 0 ? o("dragging-down") : m < 0 && o("dragging-up"));
108
+ }, L = () => {
109
+ c.value && (l.value = t.canSwipeClose ? [0, e.value].reduce((i, d) => Math.abs(d - l.value) < Math.abs(i - l.value) ? d : i) : 0, D("y", l.value, C, { type: "tween", easings: "easeInOut", bounce: 0, duration: 300 }), l.value === e.value && (l.value = 0, E()), e.value = Math.min(k.value[A.value], g.value), D("height", e.value, C, { type: "tween", easings: "easeInOut", bounce: 0, duration: 300 }));
66
110
  };
67
- return E(
111
+ R(
68
112
  {
69
- onDrag: A,
70
- onDragEnd: O
113
+ onDragStart: () => {
114
+ e.value = p.value, l.value = x.value.y.get(), X();
115
+ },
116
+ onDrag: j,
117
+ onDragEnd: L
71
118
  },
72
119
  {
73
- domTarget: h,
120
+ domTarget: s,
74
121
  drag: { filterTaps: !0 }
75
122
  }
76
- ), E(
123
+ ), R(
77
124
  {
78
- onDrag: A,
79
- onDragEnd: O
125
+ onDragStart: () => {
126
+ e.value = p.value, l.value = x.value.y.get(), X();
127
+ },
128
+ onDrag: j,
129
+ onDragEnd: L
80
130
  },
81
131
  {
82
- domTarget: v,
132
+ domTarget: r,
83
133
  drag: { filterTaps: !0 }
84
134
  }
85
- ), E(
135
+ ), R(
86
136
  {
87
- onDragStart: ({ direction: a }) => {
88
- const l = m.value.scrollTop === 0, M = a[1] > 0;
89
- D.value.length === 1 ? t.value === 0 && l && (r.value = M) : (n.expandOnContentDrag && e.value !== S.value && (r.value = !0), e.value === S.value && l && (r.value = M));
137
+ onDragStart: ({ direction: [i, d] }) => {
138
+ e.value = p.value, l.value = x.value.y.get(), X();
139
+ const P = f.value.scrollTop === 0, m = d > 0;
140
+ k.value.length === 1 ? l.value === 0 && P && (v.value = m) : (t.expandOnContentDrag && e.value !== B.value && (v.value = !0), e.value === B.value && P && (v.value = m));
90
141
  },
91
- onDrag: ({ delta: a, direction: l }) => {
92
- if (!n.expandOnContentDrag) {
93
- r.value = !1;
142
+ onDrag: ({ delta: [i, d], direction: [P, m] }) => {
143
+ if (!t.expandOnContentDrag) {
144
+ v.value = !1;
94
145
  return;
95
146
  }
96
- if (!s.value) return;
97
- t.value === 0 && r.value && n.expandOnContentDrag && (e.value -= a[1]), e.value <= f.value && (e.value = f.value, r.value && n.expandOnContentDrag && (t.value += a[1]), t.value = Math.max(0, Math.min(t.value, f.value)), w({
98
- y: n.canSwipeClose ? t.value : I(t.value, -_.value, 0, 0.5)
99
- })), e.value > S.value && (e.value = S.value), e.value = Math.min(e.value, b.value);
100
- const M = m.value.scrollTop === 0;
101
- D.value.length === 1 ? a[1] < 0 && t.value === 0 && M && (r.value = !1) : e.value === S.value && (r.value = !1), w({
147
+ if (!c.value) return;
148
+ l.value === 0 && v.value && t.expandOnContentDrag && (e.value -= d), e.value <= _.value && (e.value = _.value, v.value && t.expandOnContentDrag && (l.value += d), l.value = $(l.value, { min: 0, max: _.value }), M({
149
+ y: t.canSwipeClose ? l.value : V(l.value, -p.value, 0, 0.5)
150
+ })), e.value > B.value && (e.value = B.value), e.value = Math.min(e.value, g.value);
151
+ const K = f.value.scrollTop === 0;
152
+ k.value.length === 1 ? d < 0 && l.value === 0 && K && (v.value = !1) : e.value === B.value && (v.value = !1), M({
102
153
  height: e.value
103
- }), l[1] > 0 ? o("dragging-down") : l[1] < 0 && o("dragging-up");
154
+ }), m > 0 ? o("dragging-down") : m < 0 && o("dragging-up");
104
155
  },
105
- onDragEnd: O
156
+ onDragEnd: L
106
157
  },
107
158
  {
108
- domTarget: F,
159
+ domTarget: y,
109
160
  drag: { filterTaps: !0 }
110
161
  }
111
- ), ne(p, () => {
112
- o("minHeight", p.value), D.value.length === 1 && R(() => {
113
- D.value[0] === p.value && V(Math.min(p.value, b.value));
162
+ );
163
+ const ue = xe(
164
+ () => {
165
+ o("maxHeight", g.value), z(() => {
166
+ e.value = k.value[A.value], F(k.value[A.value]);
167
+ });
168
+ },
169
+ { minQuietPeriodMs: 50 }
170
+ );
171
+ return U(g, () => {
172
+ ue.call();
173
+ }), U(S, () => {
174
+ o("minHeight", S.value), k.value.length === 1 && z(() => {
175
+ k.value[0] === S.value && F(Math.min(S.value, g.value));
114
176
  });
115
- }), oe(() => {
116
- o("minHeight", p.value), o("maxHeight", b.value), e.value = n.defaultBreakpoint ?? Number(p.value), w({
177
+ }), re(() => {
178
+ o("minHeight", S.value), o("maxHeight", g.value), e.value = t.defaultBreakpoint ?? Number(S.value), M({
117
179
  height: e.value,
118
180
  y: e.value
119
- }), R(() => {
181
+ }), z(() => {
120
182
  o("ready");
121
183
  });
122
- }), g({ open: X, close: x, snapToPoint: V }), (a, l) => (le(), se(ue, { to: "body" }, [
123
- d("div", ke, [
124
- ie(re, { name: "fade" }, {
125
- default: ve(() => [
126
- de(d("div", {
184
+ }), u({ open: ne, close: E, snapToPoint: F }), (i, d) => (ve(), de(ce, { to: "body" }, [
185
+ b("div", He, [
186
+ fe(ge, { name: "fade" }, {
187
+ default: he(() => [
188
+ pe(b("div", {
127
189
  ref_key: "backdrop",
128
- ref: W,
190
+ ref: O,
129
191
  "data-vsbs-backdrop": "",
130
- onClick: l[0] || (l[0] = (M) => Z())
192
+ onClick: d[0] || (d[0] = (P) => oe())
131
193
  }, null, 512), [
132
- [ce, T.value && a.blocking]
194
+ [me, w.value && i.blocking]
133
195
  ])
134
196
  ]),
135
197
  _: 1
136
198
  }),
137
- d("div", {
199
+ b("div", {
138
200
  ref_key: "sheet",
139
- ref: s,
140
- "data-vsbs-shadow": !a.blocking,
141
- "data-vsbs-sheet-show": T.value,
201
+ ref: c,
202
+ "data-vsbs-shadow": !i.blocking,
203
+ "data-vsbs-sheet-show": w.value,
142
204
  "aria-modal": "true",
143
205
  "data-vsbs-sheet": "",
144
206
  tabindex: "-1"
145
207
  }, [
146
- d("div", {
208
+ b("div", {
147
209
  ref_key: "sheetHeader",
148
- ref: h,
210
+ ref: s,
149
211
  "data-vsbs-header": ""
150
212
  }, [
151
- P(a.$slots, "header", {}, void 0, !0)
213
+ N(i.$slots, "header", {}, void 0, !0)
152
214
  ], 512),
153
- d("div", {
215
+ b("div", {
154
216
  ref_key: "sheetScroll",
155
- ref: m,
217
+ ref: f,
156
218
  "data-vsbs-scroll": "",
157
- onTouchmove: ee
219
+ onTouchmove: le
158
220
  }, [
159
- d("div", {
221
+ b("div", {
160
222
  ref_key: "sheetContentWrapper",
161
- ref: F,
223
+ ref: y,
162
224
  "data-vsbs-content-wrapper": ""
163
225
  }, [
164
- d("div", {
226
+ b("div", {
165
227
  ref_key: "sheetContent",
166
- ref: L,
228
+ ref: T,
167
229
  "data-vsbs-content": ""
168
230
  }, [
169
- P(a.$slots, "default", {}, void 0, !0)
231
+ N(i.$slots, "default", {}, void 0, !0)
170
232
  ], 512)
171
233
  ], 512)
172
234
  ], 544),
173
- d("div", {
235
+ b("div", {
174
236
  ref_key: "sheetFooter",
175
- ref: v,
237
+ ref: r,
176
238
  "data-vsbs-footer": ""
177
239
  }, [
178
- P(a.$slots, "footer", {}, void 0, !0)
240
+ N(i.$slots, "footer", {}, void 0, !0)
179
241
  ], 512)
180
- ], 8, we)
242
+ ], 8, Oe)
181
243
  ])
182
244
  ]));
183
245
  }
184
- }), Ce = (c, g) => {
185
- const i = c.__vccOpts || c;
186
- for (const [n, o] of g)
187
- i[n] = o;
188
- return i;
189
- }, He = /* @__PURE__ */ Ce(Se, [["__scopeId", "data-v-f08e630c"]]);
246
+ }), Ee = (n, u) => {
247
+ const a = n.__vccOpts || n;
248
+ for (const [t, o] of u)
249
+ a[t] = o;
250
+ return a;
251
+ }, Fe = /* @__PURE__ */ Ee(Pe, [["__scopeId", "data-v-4d79fa76"]]);
190
252
  export {
191
- He as default
253
+ Fe as default
192
254
  };
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- [data-vsbs-backdrop][data-v-f08e630c]{background-color:var(--vsbs-backdrop-bg, rgba(0, 0, 0, .5));top:0;right:0;bottom:0;left:0;pointer-events:auto;position:fixed;-webkit-user-select:none;user-select:none;will-change:opacity;z-index:100}[data-vsbs-shadow=true][data-v-f08e630c]{box-shadow:0 -5px 60px 0 var(--vsbs-shadow-color, hsla(0, 0%, 35%, .2))}[data-vsbs-sheet][data-v-f08e630c]{background-color:var(--vsbs-background, #fff);border-top-left-radius:var(--vsbs-border-radius, 16px);border-top-right-radius:var(--vsbs-border-radius, 16px);bottom:0;display:flex;flex-direction:column;left:0;margin-left:auto;margin-right:auto;max-height:inherit;max-width:var(--vsbs-max-width, 640px);pointer-events:all;position:fixed;right:0;transition:visibility .3s ease-in-out;visibility:hidden;width:100%;will-change:height;z-index:100}[data-vsbs-sheet-show=true][data-v-f08e630c]{visibility:visible}[data-vsbs-header][data-v-f08e630c]{box-shadow:0 1px 0 var(--vsbs-border-color, rgba(46, 59, 66, .125));flex-shrink:0;padding:20px var(--vsbs-padding-x, 16px) 8px;-webkit-user-select:none;user-select:none;z-index:1}[data-vsbs-header][data-v-f08e630c]:before{background-color:var(--vsbs-handle-background, rgba(0, 0, 0, .28));border-radius:2px;content:"";display:block;height:4px;left:50%;position:absolute;top:8px;transform:translate(-50%);width:36px}[data-vsbs-header][data-v-f08e630c]:empty{box-shadow:none;padding:12px var(--vsbs-padding-x, 16px) 8px}[data-vsbs-footer][data-v-f08e630c]{box-shadow:0 -1px 0 var(--vsbs-border-color, rgba(46, 59, 66, .125));flex-grow:0;flex-shrink:0;padding:16px var(--vsbs-padding-x, 16px);-webkit-user-select:none;user-select:none}[data-vsbs-footer][data-v-f08e630c]:empty{display:none}[data-vsbs-scroll][data-v-f08e630c]{flex-grow:1;overflow-y:auto;overscroll-behavior:contain}[data-vsbs-content-wrapper][data-v-f08e630c]{height:100%}[data-vsbs-content][data-v-f08e630c]{display:grid;padding:1vh var(--vsbs-padding-x, 16px);-webkit-user-select:none;user-select:none}.fade-enter-active[data-v-f08e630c],.fade-leave-active[data-v-f08e630c]{transition:opacity .3s ease}.fade-enter-from[data-v-f08e630c],.fade-leave-to[data-v-f08e630c]{opacity:0}
1
+ [data-vsbs-backdrop][data-v-4d79fa76]{background-color:var(--vsbs-backdrop-bg, rgba(0, 0, 0, .5));top:0;right:0;bottom:0;left:0;pointer-events:auto;position:fixed;-webkit-user-select:none;user-select:none;will-change:opacity;z-index:100}[data-vsbs-shadow=true][data-v-4d79fa76]{box-shadow:0 -5px 60px 0 var(--vsbs-shadow-color, rgba(89, 89, 89, .2))}[data-vsbs-sheet][data-v-4d79fa76]{background-color:var(--vsbs-background, #fff);border-top-left-radius:var(--vsbs-border-radius, 16px);border-top-right-radius:var(--vsbs-border-radius, 16px);bottom:0;display:flex;flex-direction:column;left:0;margin-left:auto;margin-right:auto;max-height:inherit;max-width:var(--vsbs-max-width, 640px);pointer-events:all;position:fixed;right:0;transition:visibility .3s ease-in-out;visibility:hidden;width:100%;will-change:height;z-index:100}[data-vsbs-sheet-show=true][data-v-4d79fa76]{visibility:visible}[data-vsbs-header][data-v-4d79fa76]{box-shadow:0 1px 0 var(--vsbs-border-color, rgba(46, 59, 66, .125));flex-shrink:0;padding:20px var(--vsbs-padding-x, 16px) 8px;-webkit-user-select:none;user-select:none;z-index:1}[data-vsbs-header][data-v-4d79fa76]:before{background-color:var(--vsbs-handle-background, rgba(0, 0, 0, .28));border-radius:2px;content:"";display:block;height:4px;left:50%;position:absolute;top:8px;transform:translate(-50%);width:36px}[data-vsbs-header][data-v-4d79fa76]:empty{box-shadow:none;padding:12px var(--vsbs-padding-x, 16px) 8px}[data-vsbs-footer][data-v-4d79fa76]{box-shadow:0 -1px 0 var(--vsbs-border-color, rgba(46, 59, 66, .125));flex-grow:0;flex-shrink:0;padding:16px var(--vsbs-padding-x, 16px);-webkit-user-select:none;user-select:none}[data-vsbs-footer][data-v-4d79fa76]:empty{display:none}[data-vsbs-scroll][data-v-4d79fa76]{flex-grow:1;overflow-y:auto;overscroll-behavior:contain}[data-vsbs-content-wrapper][data-v-4d79fa76]{height:100%}[data-vsbs-content][data-v-4d79fa76]{display:grid;padding:1vh var(--vsbs-padding-x, 16px);-webkit-user-select:none;user-select:none}.fade-enter-active[data-v-4d79fa76],.fade-leave-active[data-v-4d79fa76]{transition:opacity .3s ease}.fade-enter-from[data-v-4d79fa76],.fade-leave-to[data-v-4d79fa76]{opacity:0}
package/package.json CHANGED
@@ -32,7 +32,7 @@
32
32
  "url": "https://github.com/megaarmos/vue-spring-bottom-sheet/issues"
33
33
  },
34
34
  "private": false,
35
- "version": "1.0.8",
35
+ "version": "1.1.0",
36
36
  "type": "module",
37
37
  "exports": {
38
38
  ".": {
@@ -63,6 +63,7 @@
63
63
  "@vueuse/integrations": "^12.0.0",
64
64
  "@vueuse/motion": "^2.2.6",
65
65
  "focus-trap": "^7",
66
+ "remeda": "^2.19.0",
66
67
  "vue": "^3.5.13"
67
68
  },
68
69
  "devDependencies": {