@equal-experts/kuat-react 0.10.0 → 0.12.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.
@@ -1,1401 +0,0 @@
1
- import { jsx as X, jsxs as ln } from "react/jsx-runtime";
2
- import * as A from "react";
3
- import { useRef as Ht, useState as $t, useCallback as fn, useEffect as Tt } from "react";
4
- import { ChevronLeft as dn, ChevronRight as pn } from "lucide-react";
5
- import { c as gt } from "./utils-DLUjLwnh.js";
6
- function mn(t) {
7
- return Object.prototype.toString.call(t) === "[object Object]";
8
- }
9
- function qt(t) {
10
- return mn(t) || Array.isArray(t);
11
- }
12
- function gn() {
13
- return !!(typeof window < "u" && window.document && window.document.createElement);
14
- }
15
- function Ot(t, n) {
16
- const e = Object.keys(t), r = Object.keys(n);
17
- if (e.length !== r.length) return !1;
18
- const i = JSON.stringify(Object.keys(t.breakpoints || {})), s = JSON.stringify(Object.keys(n.breakpoints || {}));
19
- return i !== s ? !1 : e.every((o) => {
20
- const l = t[o], c = n[o];
21
- return typeof l == "function" ? `${l}` == `${c}` : !qt(l) || !qt(c) ? l === c : Ot(l, c);
22
- });
23
- }
24
- function Ut(t) {
25
- return t.concat().sort((n, e) => n.name > e.name ? 1 : -1).map((n) => n.options);
26
- }
27
- function hn(t, n) {
28
- if (t.length !== n.length) return !1;
29
- const e = Ut(t), r = Ut(n);
30
- return e.every((i, s) => {
31
- const o = r[s];
32
- return Ot(i, o);
33
- });
34
- }
35
- function Nt(t) {
36
- return typeof t == "number";
37
- }
38
- function Pt(t) {
39
- return typeof t == "string";
40
- }
41
- function yt(t) {
42
- return typeof t == "boolean";
43
- }
44
- function Kt(t) {
45
- return Object.prototype.toString.call(t) === "[object Object]";
46
- }
47
- function D(t) {
48
- return Math.abs(t);
49
- }
50
- function Dt(t) {
51
- return Math.sign(t);
52
- }
53
- function ft(t, n) {
54
- return D(t - n);
55
- }
56
- function Sn(t, n) {
57
- if (t === 0 || n === 0 || D(t) <= D(n)) return 0;
58
- const e = ft(D(t), D(n));
59
- return D(e / t);
60
- }
61
- function bn(t) {
62
- return Math.round(t * 100) / 100;
63
- }
64
- function dt(t) {
65
- return pt(t).map(Number);
66
- }
67
- function z(t) {
68
- return t[ht(t)];
69
- }
70
- function ht(t) {
71
- return Math.max(0, t.length - 1);
72
- }
73
- function Mt(t, n) {
74
- return n === ht(t);
75
- }
76
- function Qt(t, n = 0) {
77
- return Array.from(Array(t), (e, r) => n + r);
78
- }
79
- function pt(t) {
80
- return Object.keys(t);
81
- }
82
- function Jt(t, n) {
83
- return [t, n].reduce((e, r) => (pt(r).forEach((i) => {
84
- const s = e[i], o = r[i], l = Kt(s) && Kt(o);
85
- e[i] = l ? Jt(s, o) : o;
86
- }), e), {});
87
- }
88
- function wt(t, n) {
89
- return typeof n.MouseEvent < "u" && t instanceof n.MouseEvent;
90
- }
91
- function yn(t, n) {
92
- const e = {
93
- start: r,
94
- center: i,
95
- end: s
96
- };
97
- function r() {
98
- return 0;
99
- }
100
- function i(c) {
101
- return s(c) / 2;
102
- }
103
- function s(c) {
104
- return n - c;
105
- }
106
- function o(c, a) {
107
- return Pt(t) ? e[t](c) : t(n, c, a);
108
- }
109
- return {
110
- measure: o
111
- };
112
- }
113
- function mt() {
114
- let t = [];
115
- function n(i, s, o, l = {
116
- passive: !0
117
- }) {
118
- let c;
119
- if ("addEventListener" in i)
120
- i.addEventListener(s, o, l), c = () => i.removeEventListener(s, o, l);
121
- else {
122
- const a = i;
123
- a.addListener(o), c = () => a.removeListener(o);
124
- }
125
- return t.push(c), r;
126
- }
127
- function e() {
128
- t = t.filter((i) => i());
129
- }
130
- const r = {
131
- add: n,
132
- clear: e
133
- };
134
- return r;
135
- }
136
- function xn(t, n, e, r) {
137
- const i = mt(), s = 1e3 / 60;
138
- let o = null, l = 0, c = 0;
139
- function a() {
140
- i.add(t, "visibilitychange", () => {
141
- t.hidden && d();
142
- });
143
- }
144
- function S() {
145
- y(), i.clear();
146
- }
147
- function u(h) {
148
- if (!c) return;
149
- o || (o = h, e(), e());
150
- const f = h - o;
151
- for (o = h, l += f; l >= s; )
152
- e(), l -= s;
153
- const g = l / s;
154
- r(g), c && (c = n.requestAnimationFrame(u));
155
- }
156
- function p() {
157
- c || (c = n.requestAnimationFrame(u));
158
- }
159
- function y() {
160
- n.cancelAnimationFrame(c), o = null, l = 0, c = 0;
161
- }
162
- function d() {
163
- o = null, l = 0;
164
- }
165
- return {
166
- init: a,
167
- destroy: S,
168
- start: p,
169
- stop: y,
170
- update: e,
171
- render: r
172
- };
173
- }
174
- function En(t, n) {
175
- const e = n === "rtl", r = t === "y", i = r ? "y" : "x", s = r ? "x" : "y", o = !r && e ? -1 : 1, l = S(), c = u();
176
- function a(d) {
177
- const {
178
- height: m,
179
- width: h
180
- } = d;
181
- return r ? m : h;
182
- }
183
- function S() {
184
- return r ? "top" : e ? "right" : "left";
185
- }
186
- function u() {
187
- return r ? "bottom" : e ? "left" : "right";
188
- }
189
- function p(d) {
190
- return d * o;
191
- }
192
- return {
193
- scroll: i,
194
- cross: s,
195
- startEdge: l,
196
- endEdge: c,
197
- measureSize: a,
198
- direction: p
199
- };
200
- }
201
- function et(t = 0, n = 0) {
202
- const e = D(t - n);
203
- function r(a) {
204
- return a < t;
205
- }
206
- function i(a) {
207
- return a > n;
208
- }
209
- function s(a) {
210
- return r(a) || i(a);
211
- }
212
- function o(a) {
213
- return s(a) ? r(a) ? t : n : a;
214
- }
215
- function l(a) {
216
- return e ? a - e * Math.ceil((a - n) / e) : a;
217
- }
218
- return {
219
- length: e,
220
- max: n,
221
- min: t,
222
- constrain: o,
223
- reachedAny: s,
224
- reachedMax: i,
225
- reachedMin: r,
226
- removeOffset: l
227
- };
228
- }
229
- function Xt(t, n, e) {
230
- const {
231
- constrain: r
232
- } = et(0, t), i = t + 1;
233
- let s = o(n);
234
- function o(p) {
235
- return e ? D((i + p) % i) : r(p);
236
- }
237
- function l() {
238
- return s;
239
- }
240
- function c(p) {
241
- return s = o(p), u;
242
- }
243
- function a(p) {
244
- return S().set(l() + p);
245
- }
246
- function S() {
247
- return Xt(t, l(), e);
248
- }
249
- const u = {
250
- get: l,
251
- set: c,
252
- add: a,
253
- clone: S
254
- };
255
- return u;
256
- }
257
- function vn(t, n, e, r, i, s, o, l, c, a, S, u, p, y, d, m, h, f, g) {
258
- const {
259
- cross: x,
260
- direction: I
261
- } = t, T = ["INPUT", "SELECT", "TEXTAREA"], L = {
262
- passive: !1
263
- }, E = mt(), v = mt(), C = et(50, 225).constrain(y.measure(20)), O = {
264
- mouse: 300,
265
- touch: 400
266
- }, P = {
267
- mouse: 500,
268
- touch: 600
269
- }, B = d ? 43 : 25;
270
- let _ = !1, R = 0, G = 0, W = !1, Y = !1, q = !1, U = !1;
271
- function it(b) {
272
- if (!g) return;
273
- function w(k) {
274
- (yt(g) || g(b, k)) && ut(k);
275
- }
276
- const M = n;
277
- E.add(M, "dragstart", (k) => k.preventDefault(), L).add(M, "touchmove", () => {
278
- }, L).add(M, "touchend", () => {
279
- }).add(M, "touchstart", w).add(M, "mousedown", w).add(M, "touchcancel", F).add(M, "contextmenu", F).add(M, "click", Q, !0);
280
- }
281
- function H() {
282
- E.clear(), v.clear();
283
- }
284
- function ot() {
285
- const b = U ? e : n;
286
- v.add(b, "touchmove", V, L).add(b, "touchend", F).add(b, "mousemove", V, L).add(b, "mouseup", F);
287
- }
288
- function rt(b) {
289
- const w = b.nodeName || "";
290
- return T.includes(w);
291
- }
292
- function K() {
293
- return (d ? P : O)[U ? "mouse" : "touch"];
294
- }
295
- function ct(b, w) {
296
- const M = u.add(Dt(b) * -1), k = S.byDistance(b, !d).distance;
297
- return d || D(b) < C ? k : h && w ? k * 0.5 : S.byIndex(M.get(), 0).distance;
298
- }
299
- function ut(b) {
300
- const w = wt(b, r);
301
- U = w, q = d && w && !b.buttons && _, _ = ft(i.get(), o.get()) >= 2, !(w && b.button !== 0) && (rt(b.target) || (W = !0, s.pointerDown(b), a.useFriction(0).useDuration(0), i.set(o), ot(), R = s.readPoint(b), G = s.readPoint(b, x), p.emit("pointerDown")));
302
- }
303
- function V(b) {
304
- if (!wt(b, r) && b.touches.length >= 2) return F(b);
305
- const M = s.readPoint(b), k = s.readPoint(b, x), $ = ft(M, R), J = ft(k, G);
306
- if (!Y && !U && (!b.cancelable || (Y = $ > J, !Y)))
307
- return F(b);
308
- const tt = s.pointerMove(b);
309
- $ > m && (q = !0), a.useFriction(0.3).useDuration(0.75), l.start(), i.add(I(tt)), b.preventDefault();
310
- }
311
- function F(b) {
312
- const M = S.byDistance(0, !1).index !== u.get(), k = s.pointerUp(b) * K(), $ = ct(I(k), M), J = Sn(k, $), tt = B - 10 * J, Z = f + J / 50;
313
- Y = !1, W = !1, v.clear(), a.useDuration(tt).useFriction(Z), c.distance($, !d), U = !1, p.emit("pointerUp");
314
- }
315
- function Q(b) {
316
- q && (b.stopPropagation(), b.preventDefault(), q = !1);
317
- }
318
- function j() {
319
- return W;
320
- }
321
- return {
322
- init: it,
323
- destroy: H,
324
- pointerDown: j
325
- };
326
- }
327
- function Cn(t, n) {
328
- let r, i;
329
- function s(u) {
330
- return u.timeStamp;
331
- }
332
- function o(u, p) {
333
- const d = `client${(p || t.scroll) === "x" ? "X" : "Y"}`;
334
- return (wt(u, n) ? u : u.touches[0])[d];
335
- }
336
- function l(u) {
337
- return r = u, i = u, o(u);
338
- }
339
- function c(u) {
340
- const p = o(u) - o(i), y = s(u) - s(r) > 170;
341
- return i = u, y && (r = u), p;
342
- }
343
- function a(u) {
344
- if (!r || !i) return 0;
345
- const p = o(i) - o(r), y = s(u) - s(r), d = s(u) - s(i) > 170, m = p / y;
346
- return y && !d && D(m) > 0.1 ? m : 0;
347
- }
348
- return {
349
- pointerDown: l,
350
- pointerMove: c,
351
- pointerUp: a,
352
- readPoint: o
353
- };
354
- }
355
- function Ln() {
356
- function t(e) {
357
- const {
358
- offsetTop: r,
359
- offsetLeft: i,
360
- offsetWidth: s,
361
- offsetHeight: o
362
- } = e;
363
- return {
364
- top: r,
365
- right: i + s,
366
- bottom: r + o,
367
- left: i,
368
- width: s,
369
- height: o
370
- };
371
- }
372
- return {
373
- measure: t
374
- };
375
- }
376
- function In(t) {
377
- function n(r) {
378
- return t * (r / 100);
379
- }
380
- return {
381
- measure: n
382
- };
383
- }
384
- function Tn(t, n, e, r, i, s, o) {
385
- const l = [t].concat(r);
386
- let c, a, S = [], u = !1;
387
- function p(h) {
388
- return i.measureSize(o.measure(h));
389
- }
390
- function y(h) {
391
- if (!s) return;
392
- a = p(t), S = r.map(p);
393
- function f(g) {
394
- for (const x of g) {
395
- if (u) return;
396
- const I = x.target === t, T = r.indexOf(x.target), L = I ? a : S[T], E = p(I ? t : r[T]);
397
- if (D(E - L) >= 0.5) {
398
- h.reInit(), n.emit("resize");
399
- break;
400
- }
401
- }
402
- }
403
- c = new ResizeObserver((g) => {
404
- (yt(s) || s(h, g)) && f(g);
405
- }), e.requestAnimationFrame(() => {
406
- l.forEach((g) => c.observe(g));
407
- });
408
- }
409
- function d() {
410
- u = !0, c && c.disconnect();
411
- }
412
- return {
413
- init: y,
414
- destroy: d
415
- };
416
- }
417
- function Pn(t, n, e, r, i, s) {
418
- let o = 0, l = 0, c = i, a = s, S = t.get(), u = 0;
419
- function p() {
420
- const L = r.get() - t.get(), E = !c;
421
- let v = 0;
422
- return E ? (o = 0, e.set(r), t.set(r), v = L) : (e.set(t), o += L / c, o *= a, S += o, t.add(o), v = S - u), l = Dt(v), u = S, T;
423
- }
424
- function y() {
425
- const L = r.get() - n.get();
426
- return D(L) < 1e-3;
427
- }
428
- function d() {
429
- return c;
430
- }
431
- function m() {
432
- return l;
433
- }
434
- function h() {
435
- return o;
436
- }
437
- function f() {
438
- return x(i);
439
- }
440
- function g() {
441
- return I(s);
442
- }
443
- function x(L) {
444
- return c = L, T;
445
- }
446
- function I(L) {
447
- return a = L, T;
448
- }
449
- const T = {
450
- direction: m,
451
- duration: d,
452
- velocity: h,
453
- seek: p,
454
- settled: y,
455
- useBaseFriction: g,
456
- useBaseDuration: f,
457
- useFriction: I,
458
- useDuration: x
459
- };
460
- return T;
461
- }
462
- function wn(t, n, e, r, i) {
463
- const s = i.measure(10), o = i.measure(50), l = et(0.1, 0.99);
464
- let c = !1;
465
- function a() {
466
- return !(c || !t.reachedAny(e.get()) || !t.reachedAny(n.get()));
467
- }
468
- function S(y) {
469
- if (!a()) return;
470
- const d = t.reachedMin(n.get()) ? "min" : "max", m = D(t[d] - n.get()), h = e.get() - n.get(), f = l.constrain(m / o);
471
- e.subtract(h * f), !y && D(h) < s && (e.set(t.constrain(e.get())), r.useDuration(25).useBaseFriction());
472
- }
473
- function u(y) {
474
- c = !y;
475
- }
476
- return {
477
- shouldConstrain: a,
478
- constrain: S,
479
- toggleActive: u
480
- };
481
- }
482
- function On(t, n, e, r, i) {
483
- const s = et(-n + t, 0), o = u(), l = S(), c = p();
484
- function a(d, m) {
485
- return ft(d, m) <= 1;
486
- }
487
- function S() {
488
- const d = o[0], m = z(o), h = o.lastIndexOf(d), f = o.indexOf(m) + 1;
489
- return et(h, f);
490
- }
491
- function u() {
492
- return e.map((d, m) => {
493
- const {
494
- min: h,
495
- max: f
496
- } = s, g = s.constrain(d), x = !m, I = Mt(e, m);
497
- return x ? f : I || a(h, g) ? h : a(f, g) ? f : g;
498
- }).map((d) => parseFloat(d.toFixed(3)));
499
- }
500
- function p() {
501
- if (n <= t + i) return [s.max];
502
- if (r === "keepSnaps") return o;
503
- const {
504
- min: d,
505
- max: m
506
- } = l;
507
- return o.slice(d, m);
508
- }
509
- return {
510
- snapsContained: c,
511
- scrollContainLimit: l
512
- };
513
- }
514
- function Nn(t, n, e) {
515
- const r = n[0], i = e ? r - t : z(n);
516
- return {
517
- limit: et(i, r)
518
- };
519
- }
520
- function Dn(t, n, e, r) {
521
- const s = n.min + 0.1, o = n.max + 0.1, {
522
- reachedMin: l,
523
- reachedMax: c
524
- } = et(s, o);
525
- function a(p) {
526
- return p === 1 ? c(e.get()) : p === -1 ? l(e.get()) : !1;
527
- }
528
- function S(p) {
529
- if (!a(p)) return;
530
- const y = t * (p * -1);
531
- r.forEach((d) => d.add(y));
532
- }
533
- return {
534
- loop: S
535
- };
536
- }
537
- function Mn(t) {
538
- const {
539
- max: n,
540
- length: e
541
- } = t;
542
- function r(s) {
543
- const o = s - n;
544
- return e ? o / -e : 0;
545
- }
546
- return {
547
- get: r
548
- };
549
- }
550
- function An(t, n, e, r, i) {
551
- const {
552
- startEdge: s,
553
- endEdge: o
554
- } = t, {
555
- groupSlides: l
556
- } = i, c = u().map(n.measure), a = p(), S = y();
557
- function u() {
558
- return l(r).map((m) => z(m)[o] - m[0][s]).map(D);
559
- }
560
- function p() {
561
- return r.map((m) => e[s] - m[s]).map((m) => -D(m));
562
- }
563
- function y() {
564
- return l(a).map((m) => m[0]).map((m, h) => m + c[h]);
565
- }
566
- return {
567
- snaps: a,
568
- snapsAligned: S
569
- };
570
- }
571
- function Fn(t, n, e, r, i, s) {
572
- const {
573
- groupSlides: o
574
- } = i, {
575
- min: l,
576
- max: c
577
- } = r, a = S();
578
- function S() {
579
- const p = o(s), y = !t || n === "keepSnaps";
580
- return e.length === 1 ? [s] : y ? p : p.slice(l, c).map((d, m, h) => {
581
- const f = !m, g = Mt(h, m);
582
- if (f) {
583
- const x = z(h[0]) + 1;
584
- return Qt(x);
585
- }
586
- if (g) {
587
- const x = ht(s) - z(h)[0] + 1;
588
- return Qt(x, z(h)[0]);
589
- }
590
- return d;
591
- });
592
- }
593
- return {
594
- slideRegistry: a
595
- };
596
- }
597
- function kn(t, n, e, r, i) {
598
- const {
599
- reachedAny: s,
600
- removeOffset: o,
601
- constrain: l
602
- } = r;
603
- function c(d) {
604
- return d.concat().sort((m, h) => D(m) - D(h))[0];
605
- }
606
- function a(d) {
607
- const m = t ? o(d) : l(d), h = n.map((g, x) => ({
608
- diff: S(g - m, 0),
609
- index: x
610
- })).sort((g, x) => D(g.diff) - D(x.diff)), {
611
- index: f
612
- } = h[0];
613
- return {
614
- index: f,
615
- distance: m
616
- };
617
- }
618
- function S(d, m) {
619
- const h = [d, d + e, d - e];
620
- if (!t) return d;
621
- if (!m) return c(h);
622
- const f = h.filter((g) => Dt(g) === m);
623
- return f.length ? c(f) : z(h) - e;
624
- }
625
- function u(d, m) {
626
- const h = n[d] - i.get(), f = S(h, m);
627
- return {
628
- index: d,
629
- distance: f
630
- };
631
- }
632
- function p(d, m) {
633
- const h = i.get() + d, {
634
- index: f,
635
- distance: g
636
- } = a(h), x = !t && s(h);
637
- if (!m || x) return {
638
- index: f,
639
- distance: d
640
- };
641
- const I = n[f] - g, T = d + S(I, 0);
642
- return {
643
- index: f,
644
- distance: T
645
- };
646
- }
647
- return {
648
- byDistance: p,
649
- byIndex: u,
650
- shortcut: S
651
- };
652
- }
653
- function Bn(t, n, e, r, i, s, o) {
654
- function l(u) {
655
- const p = u.distance, y = u.index !== n.get();
656
- s.add(p), p && (r.duration() ? t.start() : (t.update(), t.render(1), t.update())), y && (e.set(n.get()), n.set(u.index), o.emit("select"));
657
- }
658
- function c(u, p) {
659
- const y = i.byDistance(u, p);
660
- l(y);
661
- }
662
- function a(u, p) {
663
- const y = n.clone().set(u), d = i.byIndex(y.get(), p);
664
- l(d);
665
- }
666
- return {
667
- distance: c,
668
- index: a
669
- };
670
- }
671
- function Vn(t, n, e, r, i, s, o, l) {
672
- const c = {
673
- passive: !0,
674
- capture: !0
675
- };
676
- let a = 0;
677
- function S(y) {
678
- if (!l) return;
679
- function d(m) {
680
- if ((/* @__PURE__ */ new Date()).getTime() - a > 10) return;
681
- o.emit("slideFocusStart"), t.scrollLeft = 0;
682
- const g = e.findIndex((x) => x.includes(m));
683
- Nt(g) && (i.useDuration(0), r.index(g, 0), o.emit("slideFocus"));
684
- }
685
- s.add(document, "keydown", u, !1), n.forEach((m, h) => {
686
- s.add(m, "focus", (f) => {
687
- (yt(l) || l(y, f)) && d(h);
688
- }, c);
689
- });
690
- }
691
- function u(y) {
692
- y.code === "Tab" && (a = (/* @__PURE__ */ new Date()).getTime());
693
- }
694
- return {
695
- init: S
696
- };
697
- }
698
- function lt(t) {
699
- let n = t;
700
- function e() {
701
- return n;
702
- }
703
- function r(c) {
704
- n = o(c);
705
- }
706
- function i(c) {
707
- n += o(c);
708
- }
709
- function s(c) {
710
- n -= o(c);
711
- }
712
- function o(c) {
713
- return Nt(c) ? c : c.get();
714
- }
715
- return {
716
- get: e,
717
- set: r,
718
- add: i,
719
- subtract: s
720
- };
721
- }
722
- function Yt(t, n) {
723
- const e = t.scroll === "x" ? o : l, r = n.style;
724
- let i = null, s = !1;
725
- function o(p) {
726
- return `translate3d(${p}px,0px,0px)`;
727
- }
728
- function l(p) {
729
- return `translate3d(0px,${p}px,0px)`;
730
- }
731
- function c(p) {
732
- if (s) return;
733
- const y = bn(t.direction(p));
734
- y !== i && (r.transform = e(y), i = y);
735
- }
736
- function a(p) {
737
- s = !p;
738
- }
739
- function S() {
740
- s || (r.transform = "", n.getAttribute("style") || n.removeAttribute("style"));
741
- }
742
- return {
743
- clear: S,
744
- to: c,
745
- toggleActive: a
746
- };
747
- }
748
- function jn(t, n, e, r, i, s, o, l, c) {
749
- const S = dt(i), u = dt(i).reverse(), p = f().concat(g());
750
- function y(E, v) {
751
- return E.reduce((C, O) => C - i[O], v);
752
- }
753
- function d(E, v) {
754
- return E.reduce((C, O) => y(C, v) > 0 ? C.concat([O]) : C, []);
755
- }
756
- function m(E) {
757
- return s.map((v, C) => ({
758
- start: v - r[C] + 0.5 + E,
759
- end: v + n - 0.5 + E
760
- }));
761
- }
762
- function h(E, v, C) {
763
- const O = m(v);
764
- return E.map((P) => {
765
- const B = C ? 0 : -e, _ = C ? e : 0, R = C ? "end" : "start", G = O[P][R];
766
- return {
767
- index: P,
768
- loopPoint: G,
769
- slideLocation: lt(-1),
770
- translate: Yt(t, c[P]),
771
- target: () => l.get() > G ? B : _
772
- };
773
- });
774
- }
775
- function f() {
776
- const E = o[0], v = d(u, E);
777
- return h(v, e, !1);
778
- }
779
- function g() {
780
- const E = n - o[0] - 1, v = d(S, E);
781
- return h(v, -e, !0);
782
- }
783
- function x() {
784
- return p.every(({
785
- index: E
786
- }) => {
787
- const v = S.filter((C) => C !== E);
788
- return y(v, n) <= 0.1;
789
- });
790
- }
791
- function I() {
792
- p.forEach((E) => {
793
- const {
794
- target: v,
795
- translate: C,
796
- slideLocation: O
797
- } = E, P = v();
798
- P !== O.get() && (C.to(P), O.set(P));
799
- });
800
- }
801
- function T() {
802
- p.forEach((E) => E.translate.clear());
803
- }
804
- return {
805
- canLoop: x,
806
- clear: T,
807
- loop: I,
808
- loopPoints: p
809
- };
810
- }
811
- function zn(t, n, e) {
812
- let r, i = !1;
813
- function s(c) {
814
- if (!e) return;
815
- function a(S) {
816
- for (const u of S)
817
- if (u.type === "childList") {
818
- c.reInit(), n.emit("slidesChanged");
819
- break;
820
- }
821
- }
822
- r = new MutationObserver((S) => {
823
- i || (yt(e) || e(c, S)) && a(S);
824
- }), r.observe(t, {
825
- childList: !0
826
- });
827
- }
828
- function o() {
829
- r && r.disconnect(), i = !0;
830
- }
831
- return {
832
- init: s,
833
- destroy: o
834
- };
835
- }
836
- function _n(t, n, e, r) {
837
- const i = {};
838
- let s = null, o = null, l, c = !1;
839
- function a() {
840
- l = new IntersectionObserver((d) => {
841
- c || (d.forEach((m) => {
842
- const h = n.indexOf(m.target);
843
- i[h] = m;
844
- }), s = null, o = null, e.emit("slidesInView"));
845
- }, {
846
- root: t.parentElement,
847
- threshold: r
848
- }), n.forEach((d) => l.observe(d));
849
- }
850
- function S() {
851
- l && l.disconnect(), c = !0;
852
- }
853
- function u(d) {
854
- return pt(i).reduce((m, h) => {
855
- const f = parseInt(h), {
856
- isIntersecting: g
857
- } = i[f];
858
- return (d && g || !d && !g) && m.push(f), m;
859
- }, []);
860
- }
861
- function p(d = !0) {
862
- if (d && s) return s;
863
- if (!d && o) return o;
864
- const m = u(d);
865
- return d && (s = m), d || (o = m), m;
866
- }
867
- return {
868
- init: a,
869
- destroy: S,
870
- get: p
871
- };
872
- }
873
- function Rn(t, n, e, r, i, s) {
874
- const {
875
- measureSize: o,
876
- startEdge: l,
877
- endEdge: c
878
- } = t, a = e[0] && i, S = d(), u = m(), p = e.map(o), y = h();
879
- function d() {
880
- if (!a) return 0;
881
- const g = e[0];
882
- return D(n[l] - g[l]);
883
- }
884
- function m() {
885
- if (!a) return 0;
886
- const g = s.getComputedStyle(z(r));
887
- return parseFloat(g.getPropertyValue(`margin-${c}`));
888
- }
889
- function h() {
890
- return e.map((g, x, I) => {
891
- const T = !x, L = Mt(I, x);
892
- return T ? p[x] + S : L ? p[x] + u : I[x + 1][l] - g[l];
893
- }).map(D);
894
- }
895
- return {
896
- slideSizes: p,
897
- slideSizesWithGaps: y,
898
- startGap: S,
899
- endGap: u
900
- };
901
- }
902
- function Gn(t, n, e, r, i, s, o, l, c) {
903
- const {
904
- startEdge: a,
905
- endEdge: S,
906
- direction: u
907
- } = t, p = Nt(e);
908
- function y(f, g) {
909
- return dt(f).filter((x) => x % g === 0).map((x) => f.slice(x, x + g));
910
- }
911
- function d(f) {
912
- return f.length ? dt(f).reduce((g, x, I) => {
913
- const T = z(g) || 0, L = T === 0, E = x === ht(f), v = i[a] - s[T][a], C = i[a] - s[x][S], O = !r && L ? u(o) : 0, P = !r && E ? u(l) : 0, B = D(C - P - (v + O));
914
- return I && B > n + c && g.push(x), E && g.push(f.length), g;
915
- }, []).map((g, x, I) => {
916
- const T = Math.max(I[x - 1] || 0);
917
- return f.slice(T, g);
918
- }) : [];
919
- }
920
- function m(f) {
921
- return p ? y(f, e) : d(f);
922
- }
923
- return {
924
- groupSlides: m
925
- };
926
- }
927
- function Hn(t, n, e, r, i, s, o) {
928
- const {
929
- align: l,
930
- axis: c,
931
- direction: a,
932
- startIndex: S,
933
- loop: u,
934
- duration: p,
935
- dragFree: y,
936
- dragThreshold: d,
937
- inViewThreshold: m,
938
- slidesToScroll: h,
939
- skipSnaps: f,
940
- containScroll: g,
941
- watchResize: x,
942
- watchSlides: I,
943
- watchDrag: T,
944
- watchFocus: L
945
- } = s, E = 2, v = Ln(), C = v.measure(n), O = e.map(v.measure), P = En(c, a), B = P.measureSize(C), _ = In(B), R = yn(l, B), G = !u && !!g, W = u || !!g, {
946
- slideSizes: Y,
947
- slideSizesWithGaps: q,
948
- startGap: U,
949
- endGap: it
950
- } = Rn(P, C, O, e, W, i), H = Gn(P, B, h, u, C, O, U, it, E), {
951
- snaps: ot,
952
- snapsAligned: rt
953
- } = An(P, R, C, O, H), K = -z(ot) + z(q), {
954
- snapsContained: ct,
955
- scrollContainLimit: ut
956
- } = On(B, K, rt, g, E), V = G ? ct : rt, {
957
- limit: F
958
- } = Nn(K, V, u), Q = Xt(ht(V), S, u), j = Q.clone(), N = dt(e), b = ({
959
- dragHandler: st,
960
- scrollBody: Lt,
961
- scrollBounds: It,
962
- options: {
963
- loop: St
964
- }
965
- }) => {
966
- St || It.constrain(st.pointerDown()), Lt.seek();
967
- }, w = ({
968
- scrollBody: st,
969
- translate: Lt,
970
- location: It,
971
- offsetLocation: St,
972
- previousLocation: nn,
973
- scrollLooper: en,
974
- slideLooper: on,
975
- dragHandler: rn,
976
- animation: sn,
977
- eventHandler: Vt,
978
- scrollBounds: cn,
979
- options: {
980
- loop: jt
981
- }
982
- }, zt) => {
983
- const _t = st.settled(), un = !cn.shouldConstrain(), Rt = jt ? _t : _t && un, Gt = Rt && !rn.pointerDown();
984
- Gt && sn.stop();
985
- const an = It.get() * zt + nn.get() * (1 - zt);
986
- St.set(an), jt && (en.loop(st.direction()), on.loop()), Lt.to(St.get()), Gt && Vt.emit("settle"), Rt || Vt.emit("scroll");
987
- }, M = xn(r, i, () => b(Ct), (st) => w(Ct, st)), k = 0.68, $ = V[Q.get()], J = lt($), tt = lt($), Z = lt($), nt = lt($), at = Pn(J, Z, tt, nt, p, k), Et = kn(u, V, K, F, nt), vt = Bn(M, Q, j, at, Et, nt, o), Ft = Mn(F), kt = mt(), Wt = _n(n, e, o, m), {
988
- slideRegistry: Bt
989
- } = Fn(G, g, V, ut, H, N), tn = Vn(t, e, Bt, vt, at, kt, o, L), Ct = {
990
- ownerDocument: r,
991
- ownerWindow: i,
992
- eventHandler: o,
993
- containerRect: C,
994
- slideRects: O,
995
- animation: M,
996
- axis: P,
997
- dragHandler: vn(P, t, r, i, nt, Cn(P, i), J, M, vt, at, Et, Q, o, _, y, d, f, k, T),
998
- eventStore: kt,
999
- percentOfView: _,
1000
- index: Q,
1001
- indexPrevious: j,
1002
- limit: F,
1003
- location: J,
1004
- offsetLocation: Z,
1005
- previousLocation: tt,
1006
- options: s,
1007
- resizeHandler: Tn(n, o, i, e, P, x, v),
1008
- scrollBody: at,
1009
- scrollBounds: wn(F, Z, nt, at, _),
1010
- scrollLooper: Dn(K, F, Z, [J, Z, tt, nt]),
1011
- scrollProgress: Ft,
1012
- scrollSnapList: V.map(Ft.get),
1013
- scrollSnaps: V,
1014
- scrollTarget: Et,
1015
- scrollTo: vt,
1016
- slideLooper: jn(P, B, K, Y, q, ot, V, Z, e),
1017
- slideFocus: tn,
1018
- slidesHandler: zn(n, o, I),
1019
- slidesInView: Wt,
1020
- slideIndexes: N,
1021
- slideRegistry: Bt,
1022
- slidesToScroll: H,
1023
- target: nt,
1024
- translate: Yt(P, n)
1025
- };
1026
- return Ct;
1027
- }
1028
- function $n() {
1029
- let t = {}, n;
1030
- function e(a) {
1031
- n = a;
1032
- }
1033
- function r(a) {
1034
- return t[a] || [];
1035
- }
1036
- function i(a) {
1037
- return r(a).forEach((S) => S(n, a)), c;
1038
- }
1039
- function s(a, S) {
1040
- return t[a] = r(a).concat([S]), c;
1041
- }
1042
- function o(a, S) {
1043
- return t[a] = r(a).filter((u) => u !== S), c;
1044
- }
1045
- function l() {
1046
- t = {};
1047
- }
1048
- const c = {
1049
- init: e,
1050
- emit: i,
1051
- off: o,
1052
- on: s,
1053
- clear: l
1054
- };
1055
- return c;
1056
- }
1057
- const qn = {
1058
- align: "center",
1059
- axis: "x",
1060
- container: null,
1061
- slides: null,
1062
- containScroll: "trimSnaps",
1063
- direction: "ltr",
1064
- slidesToScroll: 1,
1065
- inViewThreshold: 0,
1066
- breakpoints: {},
1067
- dragFree: !1,
1068
- dragThreshold: 10,
1069
- loop: !1,
1070
- skipSnaps: !1,
1071
- duration: 25,
1072
- startIndex: 0,
1073
- active: !0,
1074
- watchDrag: !0,
1075
- watchResize: !0,
1076
- watchSlides: !0,
1077
- watchFocus: !0
1078
- };
1079
- function Un(t) {
1080
- function n(s, o) {
1081
- return Jt(s, o || {});
1082
- }
1083
- function e(s) {
1084
- const o = s.breakpoints || {}, l = pt(o).filter((c) => t.matchMedia(c).matches).map((c) => o[c]).reduce((c, a) => n(c, a), {});
1085
- return n(s, l);
1086
- }
1087
- function r(s) {
1088
- return s.map((o) => pt(o.breakpoints || {})).reduce((o, l) => o.concat(l), []).map(t.matchMedia);
1089
- }
1090
- return {
1091
- mergeOptions: n,
1092
- optionsAtMedia: e,
1093
- optionsMediaQueries: r
1094
- };
1095
- }
1096
- function Kn(t) {
1097
- let n = [];
1098
- function e(s, o) {
1099
- return n = o.filter(({
1100
- options: l
1101
- }) => t.optionsAtMedia(l).active !== !1), n.forEach((l) => l.init(s, t)), o.reduce((l, c) => Object.assign(l, {
1102
- [c.name]: c
1103
- }), {});
1104
- }
1105
- function r() {
1106
- n = n.filter((s) => s.destroy());
1107
- }
1108
- return {
1109
- init: e,
1110
- destroy: r
1111
- };
1112
- }
1113
- function bt(t, n, e) {
1114
- const r = t.ownerDocument, i = r.defaultView, s = Un(i), o = Kn(s), l = mt(), c = $n(), {
1115
- mergeOptions: a,
1116
- optionsAtMedia: S,
1117
- optionsMediaQueries: u
1118
- } = s, {
1119
- on: p,
1120
- off: y,
1121
- emit: d
1122
- } = c, m = P;
1123
- let h = !1, f, g = a(qn, bt.globalOptions), x = a(g), I = [], T, L, E;
1124
- function v() {
1125
- const {
1126
- container: N,
1127
- slides: b
1128
- } = x;
1129
- L = (Pt(N) ? t.querySelector(N) : N) || t.children[0];
1130
- const M = Pt(b) ? L.querySelectorAll(b) : b;
1131
- E = [].slice.call(M || L.children);
1132
- }
1133
- function C(N) {
1134
- const b = Hn(t, L, E, r, i, N, c);
1135
- if (N.loop && !b.slideLooper.canLoop()) {
1136
- const w = Object.assign({}, N, {
1137
- loop: !1
1138
- });
1139
- return C(w);
1140
- }
1141
- return b;
1142
- }
1143
- function O(N, b) {
1144
- h || (g = a(g, N), x = S(g), I = b || I, v(), f = C(x), u([g, ...I.map(({
1145
- options: w
1146
- }) => w)]).forEach((w) => l.add(w, "change", P)), x.active && (f.translate.to(f.location.get()), f.animation.init(), f.slidesInView.init(), f.slideFocus.init(j), f.eventHandler.init(j), f.resizeHandler.init(j), f.slidesHandler.init(j), f.options.loop && f.slideLooper.loop(), L.offsetParent && E.length && f.dragHandler.init(j), T = o.init(j, I)));
1147
- }
1148
- function P(N, b) {
1149
- const w = H();
1150
- B(), O(a({
1151
- startIndex: w
1152
- }, N), b), c.emit("reInit");
1153
- }
1154
- function B() {
1155
- f.dragHandler.destroy(), f.eventStore.clear(), f.translate.clear(), f.slideLooper.clear(), f.resizeHandler.destroy(), f.slidesHandler.destroy(), f.slidesInView.destroy(), f.animation.destroy(), o.destroy(), l.clear();
1156
- }
1157
- function _() {
1158
- h || (h = !0, l.clear(), B(), c.emit("destroy"), c.clear());
1159
- }
1160
- function R(N, b, w) {
1161
- !x.active || h || (f.scrollBody.useBaseFriction().useDuration(b === !0 ? 0 : x.duration), f.scrollTo.index(N, w || 0));
1162
- }
1163
- function G(N) {
1164
- const b = f.index.add(1).get();
1165
- R(b, N, -1);
1166
- }
1167
- function W(N) {
1168
- const b = f.index.add(-1).get();
1169
- R(b, N, 1);
1170
- }
1171
- function Y() {
1172
- return f.index.add(1).get() !== H();
1173
- }
1174
- function q() {
1175
- return f.index.add(-1).get() !== H();
1176
- }
1177
- function U() {
1178
- return f.scrollSnapList;
1179
- }
1180
- function it() {
1181
- return f.scrollProgress.get(f.offsetLocation.get());
1182
- }
1183
- function H() {
1184
- return f.index.get();
1185
- }
1186
- function ot() {
1187
- return f.indexPrevious.get();
1188
- }
1189
- function rt() {
1190
- return f.slidesInView.get();
1191
- }
1192
- function K() {
1193
- return f.slidesInView.get(!1);
1194
- }
1195
- function ct() {
1196
- return T;
1197
- }
1198
- function ut() {
1199
- return f;
1200
- }
1201
- function V() {
1202
- return t;
1203
- }
1204
- function F() {
1205
- return L;
1206
- }
1207
- function Q() {
1208
- return E;
1209
- }
1210
- const j = {
1211
- canScrollNext: Y,
1212
- canScrollPrev: q,
1213
- containerNode: F,
1214
- internalEngine: ut,
1215
- destroy: _,
1216
- off: y,
1217
- on: p,
1218
- emit: d,
1219
- plugins: ct,
1220
- previousScrollSnap: ot,
1221
- reInit: m,
1222
- rootNode: V,
1223
- scrollNext: G,
1224
- scrollPrev: W,
1225
- scrollProgress: it,
1226
- scrollSnapList: U,
1227
- scrollTo: R,
1228
- selectedScrollSnap: H,
1229
- slideNodes: Q,
1230
- slidesInView: rt,
1231
- slidesNotInView: K
1232
- };
1233
- return O(n, e), setTimeout(() => c.emit("init"), 0), j;
1234
- }
1235
- bt.globalOptions = void 0;
1236
- function At(t = {}, n = []) {
1237
- const e = Ht(t), r = Ht(n), [i, s] = $t(), [o, l] = $t(), c = fn(() => {
1238
- i && i.reInit(e.current, r.current);
1239
- }, [i]);
1240
- return Tt(() => {
1241
- Ot(e.current, t) || (e.current = t, c());
1242
- }, [t, c]), Tt(() => {
1243
- hn(r.current, n) || (r.current = n, c());
1244
- }, [n, c]), Tt(() => {
1245
- if (gn() && o) {
1246
- bt.globalOptions = At.globalOptions;
1247
- const a = bt(o, e.current, r.current);
1248
- return s(a), () => a.destroy();
1249
- } else
1250
- s(void 0);
1251
- }, [o, s]), [l, i];
1252
- }
1253
- At.globalOptions = void 0;
1254
- const Zt = A.createContext(void 0);
1255
- function xt() {
1256
- const t = A.useContext(Zt);
1257
- if (!t)
1258
- throw new Error("Carousel components must be used within a Carousel.");
1259
- return t;
1260
- }
1261
- const Qn = A.forwardRef(
1262
- ({
1263
- opts: t,
1264
- basis: n = 1,
1265
- orientation: e = "horizontal",
1266
- plugins: r,
1267
- setApi: i,
1268
- events: s,
1269
- className: o,
1270
- children: l,
1271
- ...c
1272
- }, a) => {
1273
- const [S, u] = At(
1274
- {
1275
- ...t,
1276
- axis: e === "horizontal" ? "x" : "y"
1277
- },
1278
- r
1279
- ), [p, y] = A.useState(!1), [d, m] = A.useState(!1), h = A.useCallback(() => {
1280
- u == null || u.scrollPrev();
1281
- }, [u]), f = A.useCallback(() => {
1282
- u == null || u.scrollNext();
1283
- }, [u]), g = A.useCallback((E) => {
1284
- E && (y(E.canScrollPrev()), m(E.canScrollNext()));
1285
- }, []);
1286
- A.useEffect(() => {
1287
- if (u)
1288
- return i == null || i(u), g(u), u.on("reInit", g).on("select", g), () => {
1289
- u.off("reInit", g).off("select", g);
1290
- };
1291
- }, [u, g, i]), A.useEffect(() => {
1292
- if (!u || !s) return;
1293
- const E = Object.entries(s).flatMap(([v, C]) => {
1294
- if (!C) return [];
1295
- const O = () => C(u, v);
1296
- return u.on(v, O), [[v, O]];
1297
- });
1298
- return () => {
1299
- E.forEach(([v, C]) => {
1300
- u.off(v, C);
1301
- });
1302
- };
1303
- }, [u, s]);
1304
- const x = A.useMemo(
1305
- () => ({
1306
- api: u,
1307
- basis: n,
1308
- orientation: e,
1309
- scrollPrev: h,
1310
- scrollNext: f,
1311
- canScrollPrev: p,
1312
- canScrollNext: d
1313
- }),
1314
- [u, n, e, h, f, p, d]
1315
- ), I = A.Children.toArray(l), [T, ...L] = I;
1316
- return /* @__PURE__ */ X(Zt.Provider, { value: x, children: /* @__PURE__ */ ln("div", { ref: a, className: gt("carousel", o), ...c, children: [
1317
- L.length > 0 ? /* @__PURE__ */ X("div", { className: "carousel__controls", "data-slot": "carousel-controls", children: L }) : null,
1318
- /* @__PURE__ */ X("div", { ref: S, className: "carousel__viewport", children: T })
1319
- ] }) });
1320
- }
1321
- );
1322
- Qn.displayName = "Carousel";
1323
- const Jn = A.forwardRef(
1324
- ({ className: t, ...n }, e) => {
1325
- const { orientation: r } = xt();
1326
- return /* @__PURE__ */ X(
1327
- "div",
1328
- {
1329
- ref: e,
1330
- className: gt("carousel__content", `carousel__content--${r}`, t),
1331
- ...n
1332
- }
1333
- );
1334
- }
1335
- );
1336
- Jn.displayName = "CarouselContent";
1337
- const Xn = A.forwardRef(
1338
- ({ basis: t, className: n, ...e }, r) => {
1339
- const { basis: i, orientation: s } = xt(), o = t ?? i;
1340
- return /* @__PURE__ */ X(
1341
- "div",
1342
- {
1343
- ref: r,
1344
- className: gt(
1345
- "carousel__item",
1346
- `carousel__item--${s}`,
1347
- `carousel__item--basis-${o}`,
1348
- n
1349
- ),
1350
- ...e
1351
- }
1352
- );
1353
- }
1354
- );
1355
- Xn.displayName = "CarouselItem";
1356
- const Yn = A.forwardRef(
1357
- ({ className: t, ...n }, e) => {
1358
- const { scrollPrev: r, canScrollPrev: i } = xt();
1359
- return /* @__PURE__ */ X(
1360
- "button",
1361
- {
1362
- ref: e,
1363
- type: "button",
1364
- className: gt("carousel__prev", t),
1365
- disabled: !i,
1366
- onClick: r,
1367
- "aria-label": "Previous slide",
1368
- ...n,
1369
- children: /* @__PURE__ */ X(dn, {})
1370
- }
1371
- );
1372
- }
1373
- );
1374
- Yn.displayName = "CarouselPrevious";
1375
- const Zn = A.forwardRef(
1376
- ({ className: t, ...n }, e) => {
1377
- const { scrollNext: r, canScrollNext: i } = xt();
1378
- return /* @__PURE__ */ X(
1379
- "button",
1380
- {
1381
- ref: e,
1382
- type: "button",
1383
- className: gt("carousel__next", t),
1384
- disabled: !i,
1385
- onClick: r,
1386
- "aria-label": "Next slide",
1387
- ...n,
1388
- children: /* @__PURE__ */ X(pn, {})
1389
- }
1390
- );
1391
- }
1392
- );
1393
- Zn.displayName = "CarouselNext";
1394
- export {
1395
- Qn as C,
1396
- Jn as a,
1397
- Xn as b,
1398
- Yn as c,
1399
- Zn as d,
1400
- xt as u
1401
- };