react-spring-carousel 3.0.0-beta090.2 → 3.0.0-beta090.4

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/dist/index.es2.js CHANGED
@@ -1,65 +1,65 @@
1
- import { u as Ve, a as De, j as P } from "./useThumbsModule-4e4b7969.js";
2
- import { useSpring as qe, config as Y, useIsomorphicLayoutEffect as Be } from "@react-spring/web";
3
- import { useDrag as He } from "@use-gesture/react";
4
- import { useRef as g, useEffect as N, createContext as Oe, useCallback as ze, useContext as Xe } from "react";
1
+ import { u as De, a as qe, j as P } from "./useThumbsModule-4e4b7969.js";
2
+ import { useSpring as Be, config as Q, useIsomorphicLayoutEffect as He } from "@react-spring/web";
3
+ import { useDrag as Oe } from "@use-gesture/react";
4
+ import { useRef as m, useEffect as E, createContext as ze, useCallback as O, useContext as Xe } from "react";
5
5
  import Ye from "resize-observer-polyfill";
6
6
  import $ from "screenfull";
7
7
  function Je({
8
8
  mainCarouselWrapperRef: n,
9
9
  onFullScreenChange: v,
10
- handleResize: E
10
+ handleResize: N
11
11
  }) {
12
- const J = g(!1);
13
- N(() => {
12
+ const U = m(!1);
13
+ E(() => {
14
14
  function h() {
15
- document.fullscreenElement && (O(!0), v(!0), E && E()), document.fullscreenElement || (O(!1), v(!1), E && E());
15
+ document.fullscreenElement && (z(!0), v(!0), N && N()), document.fullscreenElement || (z(!1), v(!1), N && N());
16
16
  }
17
17
  if ($.isEnabled)
18
18
  return $.on("change", h), () => {
19
19
  $.isEnabled && $.off("change", h);
20
20
  };
21
21
  }, []);
22
- function O(h) {
23
- J.current = h;
22
+ function z(h) {
23
+ U.current = h;
24
24
  }
25
- function b() {
26
- return J.current;
25
+ function I() {
26
+ return U.current;
27
27
  }
28
- function k(h) {
28
+ function T(h) {
29
29
  $.isEnabled && $.request(h || n.current);
30
30
  }
31
31
  function u() {
32
32
  $.isEnabled && $.exit();
33
33
  }
34
34
  return {
35
- enterFullscreen: k,
35
+ enterFullscreen: T,
36
36
  exitFullscreen: u,
37
- getIsFullscreen: b
37
+ getIsFullscreen: I
38
38
  };
39
39
  }
40
40
  function et({
41
41
  items: n,
42
42
  init: v = !0,
43
- withThumbs: E,
44
- thumbsSlideAxis: J = "x",
45
- itemsPerSlide: O = 1,
46
- slideType: b = "fixed",
47
- gutter: k = 0,
43
+ withThumbs: N,
44
+ thumbsSlideAxis: U = "x",
45
+ itemsPerSlide: z = 1,
46
+ slideType: I = "fixed",
47
+ gutter: T = 0,
48
48
  withLoop: u = !1,
49
49
  startEndGutter: h = 0,
50
- carouselSlideAxis: i = "x",
51
- disableGestures: ae = !1,
52
- draggingSlideTreshold: L,
53
- slideWhenThresholdIsReached: de = !1,
50
+ carouselSlideAxis: o = "x",
51
+ disableGestures: ge = !1,
52
+ draggingSlideTreshold: te,
53
+ slideWhenThresholdIsReached: me = !1,
54
54
  freeScroll: c,
55
- enableFreeScrollDrag: pe,
56
- initialStartingPosition: A,
57
- prepareThumbsData: xe,
58
- initialActiveItem: M = 0,
59
- animateWhenActiveItemChange: ye = !0,
60
- getControllerRef: S
55
+ enableFreeScrollDrag: re,
56
+ initialStartingPosition: Z,
57
+ prepareThumbsData: ye,
58
+ initialActiveItem: C = 0,
59
+ animateWhenActiveItemChange: Ie = !0,
60
+ getControllerRef: ne
61
61
  }) {
62
- const w = O > n.length ? n.length : O, z = g(!1), K = g(L ?? 0), C = g("initial"), ee = g("initial"), te = g("initial"), p = g(M), s = g(M === 0), l = g(b === "fixed" && M === n.length - 1), f = g(null), x = g(null), re = g(0), ne = g(0), a = g(0), Ie = g(u), Te = g(b), be = g(c), R = g(!1), Q = ze(() => u ? [
62
+ const w = z > n.length ? n.length : z, X = m(!1), _ = m(te ?? 0), k = m("initial"), ce = m("initial"), ue = m("initial"), p = m(C), f = m(C === 0), l = m(I === "fixed" && C === n.length - 1), a = m(null), x = m(null), oe = m(0), ie = m(0), d = m(0), be = m(u), Te = m(I), we = m(c), R = m(!1), G = O(() => u ? [
63
63
  ...n.map((e) => ({
64
64
  ...e,
65
65
  id: `prev-repeated-item-${e.id}`
@@ -69,64 +69,64 @@ function et({
69
69
  ...e,
70
70
  id: `next-repeated-item-${e.id}`
71
71
  }))
72
- ] : [...n], [n, u])(), [W, y] = qe(
72
+ ] : [...n], [n, u])(), [W, y] = Be(
73
73
  () => ({
74
74
  val: 0,
75
75
  pause: !v,
76
76
  onChange: ({ value: e }) => {
77
- c && f.current ? (i === "x" ? f.current.scrollLeft = Math.abs(e.val) : f.current.scrollTop = Math.abs(e.val), G()) : x.current && (i === "x" ? x.current.style.transform = `translate3d(${e.val}px, 0px,0px)` : x.current.style.transform = `translate3d(0px,${e.val}px,0px)`);
77
+ c && a.current ? (o === "x" ? a.current.scrollLeft = Math.abs(e.val) : a.current.scrollTop = Math.abs(e.val), ee()) : x.current && (o === "x" ? x.current.style.transform = `translate3d(${e.val}px, 0px,0px)` : x.current.style.transform = `translate3d(0px,${e.val}px,0px)`);
78
78
  }
79
79
  }),
80
80
  [c]
81
- ), { emitEvent: U, useListenToCustomEvent: Z } = Ve(), { thumbsFragment: Me, handleScroll: we } = De({
82
- withThumbs: !!E,
83
- thumbsSlideAxis: J,
84
- prepareThumbsData: xe,
81
+ ), { emitEvent: L, useListenToCustomEvent: A } = De(), { thumbsFragment: Me, handleScroll: Ce } = qe({
82
+ withThumbs: !!N,
83
+ thumbsSlideAxis: U,
84
+ prepareThumbsData: ye,
85
85
  items: n,
86
86
  renderThumbFnProps: {
87
- getIsActiveItem: se,
88
- getIsPrevItem: le,
89
- useListenToCustomEvent: Z,
90
- getIsNextItem: oe
87
+ getIsActiveItem: ae,
88
+ getIsPrevItem: fe,
89
+ useListenToCustomEvent: A,
90
+ getIsNextItem: se
91
91
  }
92
- }), { enterFullscreen: me, exitFullscreen: ge, getIsFullscreen: ve } = Je({
93
- mainCarouselWrapperRef: f,
94
- handleResize: () => _(),
92
+ }), { enterFullscreen: he, exitFullscreen: ve, getIsFullscreen: pe } = Je({
93
+ mainCarouselWrapperRef: a,
94
+ handleResize: () => S(),
95
95
  onFullScreenChange: (e) => {
96
- U({
96
+ L({
97
97
  eventName: "onFullscreenChange",
98
98
  isFullscreen: e
99
99
  });
100
100
  }
101
101
  });
102
- function Ce(e) {
103
- return b === "fixed" && !c ? {
104
- marginRight: `${e ? 0 : k}px`,
105
- flex: `1 0 calc(100% / ${w} - ${k * (w - 1) / w}px)`
102
+ function ke(e) {
103
+ return I === "fixed" && !c ? {
104
+ marginRight: `${e ? 0 : T}px`,
105
+ flex: `1 0 calc(100% / ${w} - ${T * (w - 1) / w}px)`
106
106
  } : {
107
- marginRight: `${e ? 0 : k}px`
107
+ marginRight: `${e ? 0 : T}px`
108
108
  };
109
109
  }
110
- function d() {
110
+ const s = O(() => {
111
111
  var r;
112
- const e = (r = f.current) == null ? void 0 : r.querySelector(".use-spring-carousel-item");
112
+ const e = (r = a.current) == null ? void 0 : r.querySelector(".use-spring-carousel-item");
113
113
  if (!e)
114
114
  throw Error("No carousel items available!");
115
- return e.getBoundingClientRect()[i === "x" ? "width" : "height"] + k;
116
- }
117
- function j({ from: e, to: r, nextActiveItem: t, immediate: o = !1, slideMode: T }) {
118
- ee.current = T, typeof t == "number" && (c || (p.current = t), U({
115
+ return e.getBoundingClientRect()[o === "x" ? "width" : "height"] + T;
116
+ }, [o, T]);
117
+ function j({ from: e, to: r, nextActiveItem: t, immediate: i = !1, slideMode: M }) {
118
+ ce.current = M, typeof t == "number" && (c || (p.current = t), L({
119
119
  eventName: "onSlideStartChange",
120
- slideActionType: C.current,
121
- slideMode: ee.current,
120
+ slideActionType: k.current,
121
+ slideMode: ce.current,
122
122
  nextItem: {
123
- startReached: s.current,
123
+ startReached: f.current,
124
124
  endReached: l.current,
125
125
  index: c ? -1 : p.current,
126
126
  id: c ? "" : n[p.current].id
127
127
  }
128
- })), a.current = r, y.start({
129
- immediate: o,
128
+ })), d.current = r, y.start({
129
+ immediate: i,
130
130
  from: {
131
131
  val: e
132
132
  },
@@ -134,116 +134,133 @@ function et({
134
134
  val: r
135
135
  },
136
136
  config: {
137
- ...Y.default,
137
+ ...Q.default,
138
138
  velocity: W.val.velocity
139
139
  },
140
140
  onRest(B) {
141
- !o && B.finished && U({
141
+ !i && B.finished && L({
142
142
  eventName: "onSlideChange",
143
- slideActionType: C.current,
144
- slideMode: ee.current,
143
+ slideActionType: k.current,
144
+ slideMode: ce.current,
145
145
  currentItem: {
146
- startReached: s.current,
146
+ startReached: f.current,
147
147
  endReached: l.current,
148
148
  index: c ? -1 : p.current,
149
149
  id: c ? "" : n[p.current].id
150
150
  }
151
151
  });
152
152
  }
153
- }), E && !o && we(p.current);
153
+ }), N && !i && Ce(p.current);
154
154
  }
155
- function m() {
155
+ const g = O(() => {
156
156
  var e;
157
- return x.current ? u ? d() * n.length : Math.round(
157
+ return x.current ? u ? s() * n.length : Math.round(
158
158
  Number(
159
- (e = x.current) == null ? void 0 : e[i === "x" ? "scrollWidth" : "scrollHeight"]
160
- ) - x.current.getBoundingClientRect()[i === "x" ? "width" : "height"] - h * 2
159
+ (e = x.current) == null ? void 0 : e[o === "x" ? "scrollWidth" : "scrollHeight"]
160
+ ) - x.current.getBoundingClientRect()[o === "x" ? "width" : "height"] - h * 2
161
161
  ) : 0;
162
- }
162
+ }, [o, s, n.length, h, u]);
163
163
  function Fe() {
164
164
  const e = `calc(100% - ${h * 2}px)`;
165
165
  return {
166
- width: i === "x" ? e : "100%",
167
- height: i === "y" ? e : "100%"
166
+ width: o === "x" ? e : "100%",
167
+ height: o === "y" ? e : "100%"
168
168
  };
169
169
  }
170
- function ce() {
170
+ const Y = O(() => {
171
171
  var r;
172
172
  const e = (r = x.current) == null ? void 0 : r.querySelector(".use-spring-carousel-item");
173
173
  if (!e)
174
174
  throw Error("No carousel items available!");
175
- return e.getBoundingClientRect()[i === "x" ? "width" : "height"] + k;
176
- }
177
- function ue(e) {
178
- const r = i === "x" ? "left" : "top", t = x.current;
179
- t && (u ? (t.style.top = "0px", t.style.left = "0px", t.style[r] = `-${e - h}px`, s.current = !1, l.current = !1) : (t.style.left = "0px", t.style.top = "0px"));
180
- }
181
- function _(e = !1) {
182
- if (x.current && e && (x.current.style.transform = "translate3d(0px, 0px,0px)", x.current.style.left = "0", x.current.style.top = "0"), b === "fixed" && ue(
183
- A === "center" ? ce() * n.length - d() * Math.round((w - 1) / 2) : A === "end" ? ce() * n.length - d() * Math.round(w - 1) : ce() * n.length
184
- ), b === "fluid") {
185
- if (l.current && m() !== Math.abs(a.current) && !u) {
186
- const r = -m();
187
- a.current = r, y.start({
188
- immediate: !0,
189
- val: a.current
190
- });
175
+ return e.getBoundingClientRect()[o === "x" ? "width" : "height"] + T;
176
+ }, [o, T]), J = O(
177
+ (e) => {
178
+ const r = o === "x" ? "left" : "top", t = x.current;
179
+ t && (u ? (t.style.top = "0px", t.style.left = "0px", t.style[r] = `-${e - h}px`, f.current = !1, l.current = !1) : (t.style.left = "0px", t.style.top = "0px"));
180
+ },
181
+ [o, h, u]
182
+ ), S = O(
183
+ (e = !1) => {
184
+ if (x.current && e && (x.current.style.transform = "translate3d(0px, 0px,0px)", x.current.style.left = "0", x.current.style.top = "0"), I === "fixed" && J(
185
+ Z === "center" ? Y() * n.length - s() * Math.round((w - 1) / 2) : Z === "end" ? Y() * n.length - s() * Math.round(w - 1) : Y() * n.length
186
+ ), I === "fluid") {
187
+ if (J(Y() * n.length), l.current && g() !== Math.abs(d.current) && !u) {
188
+ const r = -g();
189
+ d.current = r, y.start({
190
+ immediate: !0,
191
+ val: d.current
192
+ });
193
+ return;
194
+ }
195
+ if (Math.abs(d.current) > 0 && g() !== Math.abs(d.current) && !u && !c && ue.current === "backward") {
196
+ const r = oe.current - g(), t = d.current + r;
197
+ return y.start({
198
+ immediate: !0,
199
+ val: t
200
+ }), () => {
201
+ d.current = t;
202
+ };
203
+ }
204
+ console.log("here");
191
205
  return;
192
206
  }
193
- if (Math.abs(a.current) > 0 && m() !== Math.abs(a.current) && !u && !c && te.current === "backward") {
194
- const r = re.current - m(), t = a.current + r;
195
- return y.start({
196
- immediate: !0,
197
- val: t
198
- }), () => {
199
- a.current = t;
200
- };
207
+ if (!c && I === "fixed") {
208
+ const r = -(s() * p.current);
209
+ if (Math.abs(r) > g() && !u) {
210
+ const t = -g();
211
+ l.current = !0, d.current = t, y.start({
212
+ immediate: !0,
213
+ val: d.current
214
+ });
215
+ } else
216
+ d.current = r, y.start({
217
+ immediate: !0,
218
+ val: r
219
+ });
220
+ setTimeout(() => {
221
+ X.current = !1;
222
+ }, 0);
201
223
  }
202
- return;
203
- }
204
- if (!c && b === "fixed") {
205
- const r = -(d() * p.current);
206
- if (Math.abs(r) > m() && !u) {
207
- const t = -m();
208
- l.current = !0, a.current = t, y.start({
209
- immediate: !0,
210
- val: a.current
211
- });
212
- } else
213
- a.current = r, y.start({
214
- immediate: !0,
215
- val: r
216
- });
217
- setTimeout(() => {
218
- z.current = !1;
219
- }, 0);
220
- }
221
- }
224
+ },
225
+ [
226
+ c,
227
+ Y,
228
+ s,
229
+ g,
230
+ Z,
231
+ n.length,
232
+ w,
233
+ J,
234
+ y,
235
+ I,
236
+ u
237
+ ]
238
+ );
222
239
  function F() {
223
- return c && f.current ? f.current[i === "x" ? "scrollLeft" : "scrollTop"] : W.val.get();
240
+ return c && a.current ? a.current[o === "x" ? "scrollLeft" : "scrollTop"] : W.val.get();
224
241
  }
225
- function X(e, r) {
242
+ function K(e, r) {
226
243
  if (c && e === "next") {
227
- const t = a.current + d();
228
- return t > m() ? m() : t;
244
+ const t = d.current + s();
245
+ return t > g() ? g() : t;
229
246
  }
230
247
  if (c && e === "prev") {
231
- const t = a.current - d();
248
+ const t = d.current - s();
232
249
  return t < 0 ? 0 : t;
233
250
  }
234
- return e === "next" ? typeof r == "number" ? -(r * d()) : a.current - d() : typeof r == "number" ? -(r * d()) : a.current + d();
251
+ return e === "next" ? typeof r == "number" ? -(r * s()) : d.current - s() : typeof r == "number" ? -(r * s()) : d.current + s();
235
252
  }
236
253
  function V({ type: e, index: r, immediate: t }) {
237
- if (!v || R.current || s.current && !u)
254
+ if (!v || R.current || f.current && !u)
238
255
  return;
239
- l.current && (te.current = "backward"), C.current = "prev", l.current = !1;
240
- const o = typeof r == "number" ? r : p.current - 1;
241
- if (c && G(), !u) {
242
- const T = c ? X("prev", r) - d() / 3 < 0 : X("prev", r) + d() / 3 > 0;
243
- if (s.current)
256
+ l.current && (ue.current = "backward"), k.current = "prev", l.current = !1;
257
+ const i = typeof r == "number" ? r : p.current - 1;
258
+ if (c && ee(), !u) {
259
+ const M = c ? K("prev", r) - s() / 3 < 0 : K("prev", r) + s() / 3 > 0;
260
+ if (f.current)
244
261
  return;
245
- if (T) {
246
- s.current = !0, l.current = !1, j({
262
+ if (M) {
263
+ f.current = !0, l.current = !1, j({
247
264
  slideMode: e,
248
265
  from: F(),
249
266
  to: 0,
@@ -253,76 +270,76 @@ function et({
253
270
  return;
254
271
  }
255
272
  }
256
- if (u && (s.current || o < 0)) {
257
- s.current = !1, l.current = !0, j({
273
+ if (u && (f.current || i < 0)) {
274
+ f.current = !1, l.current = !0, j({
258
275
  slideMode: e,
259
- from: F() - d() * n.length,
260
- to: -(d() * n.length) + d(),
276
+ from: F() - s() * n.length,
277
+ to: -(s() * n.length) + s(),
261
278
  nextActiveItem: n.length - 1,
262
279
  immediate: t
263
280
  });
264
281
  return;
265
282
  }
266
- o === 0 && (s.current = !0), (o === n.length - 1 || o === -1) && (l.current = !0), j({
283
+ i === 0 && (f.current = !0), (i === n.length - 1 || i === -1) && (l.current = !0), j({
267
284
  slideMode: e,
268
285
  from: F(),
269
- to: X("prev", r),
270
- nextActiveItem: o,
286
+ to: K("prev", r),
287
+ nextActiveItem: i,
271
288
  immediate: t
272
289
  });
273
290
  }
274
291
  function D({ type: e, index: r, immediate: t }) {
275
292
  if (!v || R.current || l.current && !u)
276
293
  return;
277
- s.current && (te.current = "forward"), C.current = "next", s.current = !1;
278
- const o = r || p.current + 1;
279
- if (c && G(), !u) {
280
- const T = Math.abs(X("next", r)) > m() - d() / 3;
294
+ f.current && (ue.current = "forward"), k.current = "next", f.current = !1;
295
+ const i = r || p.current + 1;
296
+ if (c && ee(), !u) {
297
+ const M = Math.abs(K("next", r)) > g() - s() / 3;
281
298
  if (l.current)
282
299
  return;
283
- if (T) {
284
- s.current = !1, l.current = !0, j({
300
+ if (M) {
301
+ f.current = !1, l.current = !0, j({
285
302
  slideMode: e,
286
303
  from: F(),
287
- to: c ? m() : -m(),
288
- nextActiveItem: o,
304
+ to: c ? g() : -g(),
305
+ nextActiveItem: i,
289
306
  immediate: t
290
307
  });
291
308
  return;
292
309
  }
293
310
  }
294
- if (u && (l.current || o > n.length - 1)) {
295
- l.current = !1, s.current = !0, j({
311
+ if (u && (l.current || i > n.length - 1)) {
312
+ l.current = !1, f.current = !0, j({
296
313
  slideMode: e,
297
- from: F() + d() * n.length,
314
+ from: F() + s() * n.length,
298
315
  to: 0,
299
316
  nextActiveItem: 0,
300
317
  immediate: t
301
318
  });
302
319
  return;
303
320
  }
304
- o === 0 && (s.current = !0), o === n.length - 1 && (l.current = !0), j({
321
+ i === 0 && (f.current = !0), i === n.length - 1 && (l.current = !0), j({
305
322
  slideMode: e,
306
323
  from: F(),
307
- to: X("next", r),
308
- nextActiveItem: o,
324
+ to: K("next", r),
325
+ nextActiveItem: i,
309
326
  immediate: t
310
327
  });
311
328
  }
312
- function ke() {
313
- L ? K.current = L : K.current = Math.floor(d() / 2 / 2);
329
+ function $e() {
330
+ te ? _.current = te : _.current = Math.floor(s() / 2 / 2);
314
331
  }
315
- function he() {
316
- x.current && (re.current = m(), Ie.current = u, Te.current = b, be.current = c, ne.current = window.innerWidth, a.current = 0, ie({ id: 0, immediate: !0, shouldReset: !0 }), ke(), _());
332
+ function xe() {
333
+ x.current && (oe.current = g(), be.current = u, Te.current = I, we.current = c, ie.current = window.innerWidth, d.current = 0, le({ id: 0, immediate: !0, shouldReset: !0 }), $e(), S());
317
334
  }
318
- const $e = He(
335
+ const Ee = Oe(
319
336
  (e) => {
320
- const r = e.dragging, t = e.offset[i === "x" ? 0 : 1], o = e.movement[i === "x" ? 0 : 1], T = e.direction[i === "x" ? 0 : 1], B = o > K.current, H = o < -K.current, je = m();
337
+ const r = e.dragging, t = e.offset[o === "x" ? 0 : 1], i = e.movement[o === "x" ? 0 : 1], M = e.direction[o === "x" ? 0 : 1], B = i > _.current, H = i < -_.current, Ve = g();
321
338
  if (r) {
322
- if (T > 0 ? C.current = "prev" : C.current = "next", U({
339
+ if (M > 0 ? k.current = "prev" : k.current = "next", L({
323
340
  ...e,
324
341
  eventName: "onDrag",
325
- slideActionType: C.current
342
+ slideActionType: k.current
326
343
  }), c) {
327
344
  if (t > 0) {
328
345
  y.start({
@@ -362,7 +379,7 @@ function et({
362
379
  friction: 50,
363
380
  tension: 1e3
364
381
  }
365
- }), de && H ? (D({ type: "drag" }), e.cancel()) : de && B && (V({ type: "drag" }), e.cancel()), je - Math.abs(t) < -(d() * 2) && e.cancel();
382
+ }), me && H ? (D({ type: "drag" }), e.cancel()) : me && B && (V({ type: "drag" }), e.cancel()), Ve - Math.abs(t) < -(s() * 2) && e.cancel();
366
383
  return;
367
384
  }
368
385
  if (e.last && c && t > 0) {
@@ -381,107 +398,107 @@ function et({
381
398
  });
382
399
  return;
383
400
  }
384
- e.last && !e.canceled && c && (C.current === "prev" && V({ type: "drag" }), C.current === "next" && D({ type: "drag" })), e.last && !e.canceled && !c && (H ? !u && l.current ? y.start({
385
- val: -m(),
401
+ e.last && !e.canceled && c && (k.current === "prev" && V({ type: "drag" }), k.current === "next" && D({ type: "drag" })), e.last && !e.canceled && !c && (H ? !u && l.current ? y.start({
402
+ val: -g(),
386
403
  config: {
387
- ...Y.default,
404
+ ...Q.default,
388
405
  velocity: e.velocity
389
406
  }
390
- }) : D({ type: "drag" }) : B ? !u && s.current ? y.start({
407
+ }) : D({ type: "drag" }) : B ? !u && f.current ? y.start({
391
408
  val: 0,
392
409
  config: {
393
- ...Y.default,
410
+ ...Q.default,
394
411
  velocity: e.velocity
395
412
  }
396
413
  }) : V({ type: "drag" }) : y.start({
397
- val: a.current,
414
+ val: d.current,
398
415
  config: {
399
- ...Y.default,
416
+ ...Q.default,
400
417
  velocity: e.velocity
401
418
  }
402
419
  })), e.last && e.canceled && y.start({
403
- val: a.current,
420
+ val: d.current,
404
421
  config: {
405
- ...Y.default,
422
+ ...Q.default,
406
423
  velocity: e.velocity
407
424
  }
408
425
  });
409
426
  },
410
427
  {
411
- enabled: v && !ae && !c || !!c && !!pe,
412
- axis: i,
413
- from: () => c && f.current ? [
414
- -f.current.scrollLeft,
415
- -f.current.scrollTop
416
- ] : i === "x" ? [W.val.get(), W.val.get()] : [W.val.get(), W.val.get()]
428
+ enabled: v && !ge && !c || !!c && !!re,
429
+ axis: o,
430
+ from: () => c && a.current ? [
431
+ -a.current.scrollLeft,
432
+ -a.current.scrollTop
433
+ ] : o === "x" ? [W.val.get(), W.val.get()] : [W.val.get(), W.val.get()]
417
434
  }
418
435
  );
419
436
  function Ne() {
420
- return c ? i === "x" ? {
437
+ return c ? o === "x" ? {
421
438
  overflowX: "auto"
422
439
  } : {
423
440
  overflowY: "auto"
424
441
  } : {};
425
442
  }
426
- function G() {
427
- f.current && (a.current = f.current[i === "x" ? "scrollLeft" : "scrollTop"], f.current[i === "x" ? "scrollLeft" : "scrollTop"] === 0 && (s.current = !0, l.current = !1), f.current[i === "x" ? "scrollLeft" : "scrollTop"] > 0 && f.current[i === "x" ? "scrollLeft" : "scrollTop"] < m() && (s.current = !1, l.current = !1), f.current[i === "x" ? "scrollLeft" : "scrollTop"] === m() && (s.current = !1, l.current = !0));
443
+ function ee() {
444
+ a.current && (d.current = a.current[o === "x" ? "scrollLeft" : "scrollTop"], a.current[o === "x" ? "scrollLeft" : "scrollTop"] === 0 && (f.current = !0, l.current = !1), a.current[o === "x" ? "scrollLeft" : "scrollTop"] > 0 && a.current[o === "x" ? "scrollLeft" : "scrollTop"] < g() && (f.current = !1, l.current = !1), a.current[o === "x" ? "scrollLeft" : "scrollTop"] === g() && (f.current = !1, l.current = !0));
428
445
  }
429
- function Ee() {
446
+ function We() {
430
447
  return c ? {
431
448
  onWheel() {
432
- W.val.stop(), G();
449
+ W.val.stop(), ee();
433
450
  }
434
451
  } : {};
435
452
  }
436
453
  function q(e, r) {
437
454
  let t = 0;
438
- if (typeof e == "string" ? t = n.findIndex((o) => o.id === e) : t = e, t < 0 || t >= n.length) {
455
+ if (typeof e == "string" ? t = n.findIndex((i) => i.id === e) : t = e, t < 0 || t >= n.length) {
439
456
  if (r)
440
457
  throw new Error(r);
441
458
  console.error(`The item doesn't exist; check that the id provided - ${e} - is correct.`), t = -1;
442
459
  }
443
460
  return t;
444
461
  }
445
- function ie({ id: e, immediate: r, shouldReset: t, type: o }) {
462
+ function le({ id: e, immediate: r, shouldReset: t, type: i }) {
446
463
  if (!v || R.current)
447
464
  return;
448
- s.current = !1, l.current = !1;
449
- const T = q(
465
+ f.current = !1, l.current = !1;
466
+ const M = q(
450
467
  e,
451
468
  "The item you want to slide to doesn't exist; check the provided id."
452
469
  );
453
- if (T === p.current && !t)
470
+ if (M === p.current && !t)
454
471
  return;
455
- const B = q(n[p.current].id), H = q(n[T].id);
472
+ const B = q(n[p.current].id), H = q(n[M].id);
456
473
  H > B ? D({
457
- type: o || t ? "initial" : "click",
474
+ type: i || t ? "initial" : "click",
458
475
  index: H,
459
476
  immediate: r
460
477
  }) : V({
461
- type: o || t ? "initial" : "click",
478
+ type: i || t ? "initial" : "click",
462
479
  index: H,
463
480
  immediate: r
464
481
  });
465
482
  }
466
- function oe(e) {
483
+ function se(e) {
467
484
  const r = q(e, "The item doesn't exist; check the provided id."), t = p.current;
468
485
  return u && t === n.length - 1 ? r === 0 : r === t + 1;
469
486
  }
470
- function le(e) {
487
+ function fe(e) {
471
488
  const r = q(e, "The item doesn't exist; check the provided id."), t = p.current;
472
489
  return u && t === 0 ? r === n.length - 1 : r === t - 1;
473
490
  }
474
- function se(e) {
491
+ function ae(e) {
475
492
  return q(e, "The item you want to check doesn't exist; check the provided id.") === p.current;
476
493
  }
477
- function We() {
478
- return ae ? "unset" : i === "x" ? "pan-y" : "pan-x";
494
+ function Pe() {
495
+ return ge ? "unset" : o === "x" ? "pan-y" : "pan-x";
479
496
  }
480
- const I = c ? {
481
- useListenToCustomEvent: Z,
482
- enterFullscreen: me,
483
- exitFullscreen: ge,
484
- getIsFullscreen: ve,
497
+ const b = c ? {
498
+ useListenToCustomEvent: A,
499
+ enterFullscreen: he,
500
+ exitFullscreen: ve,
501
+ getIsFullscreen: pe,
485
502
  slideToPrevItem: (e = !0) => {
486
503
  V({
487
504
  type: "click",
@@ -495,10 +512,10 @@ function et({
495
512
  });
496
513
  }
497
514
  } : {
498
- useListenToCustomEvent: Z,
499
- enterFullscreen: me,
500
- exitFullscreen: ge,
501
- getIsFullscreen: ve,
515
+ useListenToCustomEvent: A,
516
+ enterFullscreen: he,
517
+ exitFullscreen: ve,
518
+ getIsFullscreen: pe,
502
519
  slideToPrevItem: (e = !0) => {
503
520
  V({
504
521
  type: "click",
@@ -512,34 +529,54 @@ function et({
512
529
  });
513
530
  },
514
531
  slideToItem: (e, r = !0) => {
515
- ie({ id: e, immediate: !r });
532
+ le({ id: e, immediate: !r });
516
533
  },
517
- getIsNextItem: oe,
518
- getIsPrevItem: le,
519
- getIsActiveItem: se
534
+ getIsNextItem: se,
535
+ getIsPrevItem: fe,
536
+ getIsActiveItem: ae
520
537
  };
521
- Be(() => {
522
- x.current && v && (z.current = !0, he());
523
- }, [v]), N(() => {
524
- p.current !== M && (z.current = !0, ie({
525
- id: M,
526
- immediate: !ye
538
+ He(() => {
539
+ x.current && v && (X.current = !0, xe());
540
+ }, [v]), E(() => {
541
+ p.current !== C && (X.current = !0, le({
542
+ id: C,
543
+ immediate: !Ie
527
544
  }));
528
- }, [M]), N(() => {
545
+ }, [C]), E(() => {
529
546
  if (v) {
530
- if (M > n.length - 1)
547
+ if (C > n.length - 1)
531
548
  throw new Error(
532
- `initialActiveItem (${M}) is greater than the total quantity available items (${n.length}).`
549
+ `initialActiveItem (${C}) is greater than the total quantity available items (${n.length}).`
533
550
  );
534
551
  w > n.length && console.warn(
535
552
  `itemsPerSlide (${w}) is greater than the total quantity available items (${n.length}). Fallback to ${n.length})`
536
553
  );
537
554
  }
538
- }, [M, n.length, w, v]), N(() => {
539
- ne.current = window.innerWidth;
540
- }, []), N(() => {
541
- v && (z.current = !0, he());
542
- }, [A, w, h, k, v, u]), N(() => {
555
+ }, [C, n.length, w, v]), E(() => {
556
+ ie.current = window.innerWidth;
557
+ }, []), E(() => {
558
+ if (v) {
559
+ if (u && c)
560
+ throw new Error("`withLoop` and `freeScroll` can't be used together.");
561
+ if (c && I === "fixed")
562
+ throw new Error("`freeScroll` can't be used when `scrollType=fixed`.");
563
+ if (re && (I !== "fluid" || !c))
564
+ throw new Error(
565
+ "`enableFreeScrollDrag` must be used with `slideType=fluid` and `freeScroll=true`"
566
+ );
567
+ X.current = !0, xe();
568
+ }
569
+ }, [
570
+ Z,
571
+ w,
572
+ h,
573
+ T,
574
+ v,
575
+ u,
576
+ I,
577
+ c,
578
+ re
579
+ ]), E(() => {
543
580
  if (!v)
544
581
  return;
545
582
  function e() {
@@ -548,35 +585,35 @@ function et({
548
585
  return document.addEventListener("visibilitychange", e), () => {
549
586
  document.removeEventListener("visibilitychange", e);
550
587
  };
551
- }, [v]), N(() => {
552
- if (f.current) {
588
+ }, [v]), E(() => {
589
+ if (a.current) {
553
590
  let e;
554
591
  const r = new Ye(() => {
555
- if (!R.current && !z.current) {
556
- ne.current = window.innerWidth;
557
- const t = _();
592
+ if (!R.current && !X.current) {
593
+ ie.current = window.innerWidth;
594
+ const t = S();
558
595
  window.clearTimeout(e), e = setTimeout(() => {
559
- re.current = m(), typeof t == "function" && t();
596
+ oe.current = g(), typeof t == "function" && t();
560
597
  }, 100);
561
598
  }
562
599
  });
563
- return r.observe(f.current), () => {
600
+ return r.observe(a.current), () => {
564
601
  r.disconnect();
565
602
  };
566
603
  }
567
- }, [_, m]), N(() => {
568
- S && S({
569
- slideToNextItem: I.slideToNextItem,
570
- slideToPrevItem: I.slideToPrevItem,
571
- slideToItem: I == null ? void 0 : I.slideToItem
604
+ }, [S, g]), E(() => {
605
+ ne && ne({
606
+ slideToNextItem: b.slideToNextItem,
607
+ slideToPrevItem: b.slideToPrevItem,
608
+ slideToItem: b == null ? void 0 : b.slideToItem
572
609
  });
573
- }, [S, I.slideToItem, I.slideToNextItem, I.slideToPrevItem]);
574
- const Pe = /* @__PURE__ */ P.jsx(fe.Provider, { value: I, children: Me }), Re = /* @__PURE__ */ P.jsx(fe.Provider, { value: I, children: /* @__PURE__ */ P.jsx(
610
+ }, [ne, b.slideToItem, b.slideToNextItem, b.slideToPrevItem]);
611
+ const Re = /* @__PURE__ */ P.jsx(de.Provider, { value: b, children: Me }), je = /* @__PURE__ */ P.jsx(de.Provider, { value: b, children: /* @__PURE__ */ P.jsx(
575
612
  "div",
576
613
  {
577
614
  className: "use-spring-carousel-main-wrapper",
578
- ref: f,
579
- ...Ee(),
615
+ ref: a,
616
+ ...We(),
580
617
  style: {
581
618
  display: "flex",
582
619
  position: "relative",
@@ -589,12 +626,12 @@ function et({
589
626
  {
590
627
  className: "use-spring-carousel-track-wrapper",
591
628
  ref: x,
592
- ...$e(),
629
+ ...Ee(),
593
630
  style: {
594
631
  position: "relative",
595
632
  display: "flex",
596
- flexDirection: i === "x" ? "row" : "column",
597
- touchAction: We(),
633
+ flexDirection: o === "x" ? "row" : "column",
634
+ touchAction: Pe(),
598
635
  ...Fe()
599
636
  },
600
637
  children: [
@@ -607,7 +644,7 @@ function et({
607
644
  }
608
645
  }
609
646
  ) : null,
610
- Q.map((e, r) => /* @__PURE__ */ P.jsx(
647
+ G.map((e, r) => /* @__PURE__ */ P.jsx(
611
648
  "div",
612
649
  {
613
650
  className: "use-spring-carousel-item",
@@ -616,17 +653,17 @@ function et({
616
653
  display: "flex",
617
654
  position: "relative",
618
655
  flex: "1",
619
- ...Ce(
620
- r === Q.findIndex(
621
- (t) => t.id === Q[Q.length - 1].id
656
+ ...ke(
657
+ r === G.findIndex(
658
+ (t) => t.id === G[G.length - 1].id
622
659
  )
623
660
  )
624
661
  },
625
662
  children: typeof e.renderItem == "function" ? e.renderItem({
626
- getIsActiveItem: se,
627
- getIsNextItem: oe,
628
- getIsPrevItem: le,
629
- useListenToCustomEvent: Z
663
+ getIsActiveItem: ae,
664
+ getIsNextItem: se,
665
+ getIsPrevItem: fe,
666
+ useListenToCustomEvent: A
630
667
  }) : e.renderItem
631
668
  },
632
669
  `${e.id}-${r}`
@@ -645,11 +682,11 @@ function et({
645
682
  )
646
683
  }
647
684
  ) });
648
- return { ...I, carouselFragment: Re, thumbsFragment: Pe };
685
+ return { ...b, carouselFragment: je, thumbsFragment: Re };
649
686
  }
650
- const fe = Oe(void 0);
687
+ const de = ze(void 0);
651
688
  function tt() {
652
- const n = Xe(fe);
689
+ const n = Xe(de);
653
690
  if (!n)
654
691
  throw new Error("useSpringCarouselContext must be used within the carousel.");
655
692
  return n;