@enya-learning/nova 0.4.3 → 0.6.0

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