ads-web-sdkm 2.0.24

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 (89) hide show
  1. package/README.md +369 -0
  2. package/dist/AdsCarousel.css +1 -0
  3. package/dist/AdsCarousel.d.ts +1 -0
  4. package/dist/AdsCarousel.js +519 -0
  5. package/dist/AdsCarousel.js.map +1 -0
  6. package/dist/Brandshop.css +1 -0
  7. package/dist/Brandshop.d.ts +1 -0
  8. package/dist/Brandshop.js +918 -0
  9. package/dist/Brandshop.js.map +1 -0
  10. package/dist/Brandshops.css +1 -0
  11. package/dist/Brandshops.d.ts +1 -0
  12. package/dist/Brandshops.js +103 -0
  13. package/dist/Brandshops.js.map +1 -0
  14. package/dist/Image-zvdPHg5N.js +35 -0
  15. package/dist/Image-zvdPHg5N.js.map +1 -0
  16. package/dist/ReactQueryProvider-D__k2BsQ.js +6755 -0
  17. package/dist/ReactQueryProvider-D__k2BsQ.js.map +1 -0
  18. package/dist/ads-CChrT00a.js +4470 -0
  19. package/dist/ads-CChrT00a.js.map +1 -0
  20. package/dist/api/queries/useGetAds.d.ts +16 -0
  21. package/dist/api/queries/useGetBrandshop.d.ts +14 -0
  22. package/dist/api/queries/useGetBrandshopList.d.ts +11 -0
  23. package/dist/api/queries/useGetCollection.d.ts +11 -0
  24. package/dist/api/services/getAds.d.ts +14 -0
  25. package/dist/api/services/getBrandshop.d.ts +13 -0
  26. package/dist/api/services/getBrandshopList.d.ts +11 -0
  27. package/dist/api/services/getCollection.d.ts +4 -0
  28. package/dist/components/Brandshop/Banner.d.ts +6 -0
  29. package/dist/components/Brandshop/BannerSection.d.ts +15 -0
  30. package/dist/components/Brandshop/BannerWithLink.d.ts +8 -0
  31. package/dist/components/Brandshop/Brandshop.d.ts +16 -0
  32. package/dist/components/Brandshop/BrandshopContent.d.ts +3 -0
  33. package/dist/components/Brandshop/BrandshopError.d.ts +6 -0
  34. package/dist/components/Brandshop/BrandshopSection.d.ts +18 -0
  35. package/dist/components/Brandshop/BrandshopSkeleton.d.ts +1 -0
  36. package/dist/components/Brandshop/CategorySection.d.ts +14 -0
  37. package/dist/components/Brandshop/NavigationSection.d.ts +16 -0
  38. package/dist/components/Brandshop/ProductSliderSection.d.ts +18 -0
  39. package/dist/components/Brandshop/index.d.ts +1 -0
  40. package/dist/components/Brandshops/Brandshops.d.ts +11 -0
  41. package/dist/components/Brandshops/BrandshopsList.d.ts +3 -0
  42. package/dist/components/Brandshops/BrandshopsSkeleton.d.ts +6 -0
  43. package/dist/components/Brandshops/index.d.ts +1 -0
  44. package/dist/components/Card/Card.d.ts +8 -0
  45. package/dist/components/Carousel/AdBanner.d.ts +17 -0
  46. package/dist/components/Carousel/AdBanners.d.ts +24 -0
  47. package/dist/components/Carousel/AdCarousel.d.ts +43 -0
  48. package/dist/components/Carousel/AdSkeleton.d.ts +8 -0
  49. package/dist/components/Carousel/AdsCarousel.d.ts +24 -0
  50. package/dist/components/Carousel/index.d.ts +1 -0
  51. package/dist/components/Chip/Chip.d.ts +6 -0
  52. package/dist/components/ErrorBoundary/ErrorBoundary.d.ts +18 -0
  53. package/dist/components/Image/Image.d.ts +13 -0
  54. package/dist/components/ProductsCarousel/CouponBadge.d.ts +8 -0
  55. package/dist/components/ProductsCarousel/DiscountChip.d.ts +12 -0
  56. package/dist/components/ProductsCarousel/PriceDisplay.d.ts +8 -0
  57. package/dist/components/ProductsCarousel/ProductCard.d.ts +15 -0
  58. package/dist/components/ProductsCarousel/ProductCardSkeleton.d.ts +5 -0
  59. package/dist/components/ProductsCarousel/ProductSliderSkeleton.d.ts +5 -0
  60. package/dist/components/ProductsCarousel/ProductTitle.d.ts +5 -0
  61. package/dist/components/ProductsCarousel/ProductsCarousel.d.ts +11 -0
  62. package/dist/hooks/use-async-memo.d.ts +1 -0
  63. package/dist/hooks/use-is-platform.d.ts +8 -0
  64. package/dist/hooks/useDetectScrolledToBottom.d.ts +5 -0
  65. package/dist/hooks/useSwipeThreshold.d.ts +4 -0
  66. package/dist/providers/ReactQueryProvider.d.ts +5 -0
  67. package/dist/types/ads.d.ts +116 -0
  68. package/dist/types/brandshop.d.ts +62 -0
  69. package/dist/types/brandshopsList.d.ts +32 -0
  70. package/dist/types/configTypes.d.ts +16 -0
  71. package/dist/types/enums.d.ts +8 -0
  72. package/dist/types/products.d.ts +72 -0
  73. package/dist/types/tenures.d.ts +11 -0
  74. package/dist/types/types.d.ts +2 -0
  75. package/dist/utils/analytics/trackAdsEvent.d.ts +16 -0
  76. package/dist/utils/analytics/trackBrandshopEvents.d.ts +15 -0
  77. package/dist/utils/helpers/ads.d.ts +3 -0
  78. package/dist/utils/helpers/authToken.d.ts +5 -0
  79. package/dist/utils/helpers/discountChip.d.ts +14 -0
  80. package/dist/utils/helpers/getBaseUrl.d.ts +4 -0
  81. package/dist/utils/helpers/mergeClasses.d.ts +1 -0
  82. package/dist/utils/helpers/price-utils.d.ts +1 -0
  83. package/dist/utils/helpers/productDiscounts.d.ts +3 -0
  84. package/dist/utils/helpers/products.d.ts +4 -0
  85. package/dist/utils/helpers/text.d.ts +1 -0
  86. package/dist/utils/helpers/translate.d.ts +63 -0
  87. package/dist/utils/helpers/utilities.d.ts +1 -0
  88. package/dist/utils/validations/ads.d.ts +7 -0
  89. package/package.json +81 -0
@@ -0,0 +1,4470 @@
1
+ import * as O from "react";
2
+ import { useState as $e, useEffect as Ee, useRef as ft, useCallback as Wt } from "react";
3
+ import { jsx as Q } from "react/jsx-runtime";
4
+ const Xt = 1280, Kt = 1024, Jt = 640, mt = () => {
5
+ if (typeof window > "u")
6
+ return {
7
+ isDesktop: !1,
8
+ isLaptop: !1,
9
+ isTablet: !1,
10
+ isMobile: !0
11
+ };
12
+ const e = window.innerWidth;
13
+ return e > Xt ? {
14
+ isDesktop: !0,
15
+ isLaptop: !1,
16
+ isTablet: !1,
17
+ isMobile: !1
18
+ } : e > Kt ? {
19
+ isDesktop: !1,
20
+ isLaptop: !0,
21
+ isTablet: !1,
22
+ isMobile: !1
23
+ } : e > Jt ? {
24
+ isDesktop: !1,
25
+ isLaptop: !1,
26
+ isTablet: !0,
27
+ isMobile: !1
28
+ } : {
29
+ isDesktop: !1,
30
+ isLaptop: !1,
31
+ isTablet: !1,
32
+ isMobile: !0
33
+ };
34
+ }, Ar = () => {
35
+ const [e, t] = $e(mt);
36
+ return Ee(() => {
37
+ const n = () => {
38
+ t(mt());
39
+ };
40
+ return window.addEventListener("resize", n), () => window.removeEventListener("resize", n);
41
+ }, []), e;
42
+ };
43
+ var ke = /* @__PURE__ */ ((e) => (e.Category = "category", e.SingleProduct = "single product", e.Collection = "collection", e.Brandshop = "brandshop", e))(ke || {}), Qt = /* @__PURE__ */ ((e) => (e.Mobile = "mob", e.Web = "web", e))(Qt || {});
44
+ function Zt(e) {
45
+ return Object.prototype.toString.call(e) === "[object Object]";
46
+ }
47
+ function pt(e) {
48
+ return Zt(e) || Array.isArray(e);
49
+ }
50
+ function Yt() {
51
+ return !!(typeof window < "u" && window.document && window.document.createElement);
52
+ }
53
+ function Je(e, t) {
54
+ const n = Object.keys(e), r = Object.keys(t);
55
+ if (n.length !== r.length) return !1;
56
+ const i = JSON.stringify(Object.keys(e.breakpoints || {})), s = JSON.stringify(Object.keys(t.breakpoints || {}));
57
+ return i !== s ? !1 : n.every((o) => {
58
+ const c = e[o], a = t[o];
59
+ return typeof c == "function" ? `${c}` == `${a}` : !pt(c) || !pt(a) ? c === a : Je(c, a);
60
+ });
61
+ }
62
+ function gt(e) {
63
+ return e.concat().sort((t, n) => t.name > n.name ? 1 : -1).map((t) => t.options);
64
+ }
65
+ function en(e, t) {
66
+ if (e.length !== t.length) return !1;
67
+ const n = gt(e), r = gt(t);
68
+ return n.every((i, s) => {
69
+ const o = r[s];
70
+ return Je(i, o);
71
+ });
72
+ }
73
+ function Qe(e) {
74
+ return typeof e == "number";
75
+ }
76
+ function He(e) {
77
+ return typeof e == "string";
78
+ }
79
+ function Oe(e) {
80
+ return typeof e == "boolean";
81
+ }
82
+ function bt(e) {
83
+ return Object.prototype.toString.call(e) === "[object Object]";
84
+ }
85
+ function G(e) {
86
+ return Math.abs(e);
87
+ }
88
+ function Ze(e) {
89
+ return Math.sign(e);
90
+ }
91
+ function Ce(e, t) {
92
+ return G(e - t);
93
+ }
94
+ function tn(e, t) {
95
+ if (e === 0 || t === 0 || G(e) <= G(t)) return 0;
96
+ const n = Ce(G(e), G(t));
97
+ return G(n / e);
98
+ }
99
+ function nn(e) {
100
+ return Math.round(e * 100) / 100;
101
+ }
102
+ function Le(e) {
103
+ return Ie(e).map(Number);
104
+ }
105
+ function ne(e) {
106
+ return e[Me(e)];
107
+ }
108
+ function Me(e) {
109
+ return Math.max(0, e.length - 1);
110
+ }
111
+ function Ye(e, t) {
112
+ return t === Me(e);
113
+ }
114
+ function ht(e, t = 0) {
115
+ return Array.from(Array(e), (n, r) => t + r);
116
+ }
117
+ function Ie(e) {
118
+ return Object.keys(e);
119
+ }
120
+ function St(e, t) {
121
+ return [e, t].reduce((n, r) => (Ie(r).forEach((i) => {
122
+ const s = n[i], o = r[i], c = bt(s) && bt(o);
123
+ n[i] = c ? St(s, o) : o;
124
+ }), n), {});
125
+ }
126
+ function qe(e, t) {
127
+ return typeof t.MouseEvent < "u" && e instanceof t.MouseEvent;
128
+ }
129
+ function rn(e, t) {
130
+ const n = {
131
+ start: r,
132
+ center: i,
133
+ end: s
134
+ };
135
+ function r() {
136
+ return 0;
137
+ }
138
+ function i(a) {
139
+ return s(a) / 2;
140
+ }
141
+ function s(a) {
142
+ return t - a;
143
+ }
144
+ function o(a, l) {
145
+ return He(e) ? n[e](a) : e(t, a, l);
146
+ }
147
+ return {
148
+ measure: o
149
+ };
150
+ }
151
+ function Ae() {
152
+ let e = [];
153
+ function t(i, s, o, c = {
154
+ passive: !0
155
+ }) {
156
+ let a;
157
+ if ("addEventListener" in i)
158
+ i.addEventListener(s, o, c), a = () => i.removeEventListener(s, o, c);
159
+ else {
160
+ const l = i;
161
+ l.addListener(o), a = () => l.removeListener(o);
162
+ }
163
+ return e.push(a), r;
164
+ }
165
+ function n() {
166
+ e = e.filter((i) => i());
167
+ }
168
+ const r = {
169
+ add: t,
170
+ clear: n
171
+ };
172
+ return r;
173
+ }
174
+ function on(e, t, n, r) {
175
+ const i = Ae(), s = 1e3 / 60;
176
+ let o = null, c = 0, a = 0;
177
+ function l() {
178
+ i.add(e, "visibilitychange", () => {
179
+ e.hidden && d();
180
+ });
181
+ }
182
+ function m() {
183
+ w(), i.clear();
184
+ }
185
+ function u(b) {
186
+ if (!a) return;
187
+ o || (o = b, n(), n());
188
+ const f = b - o;
189
+ for (o = b, c += f; c >= s; )
190
+ n(), c -= s;
191
+ const h = c / s;
192
+ r(h), a && (a = t.requestAnimationFrame(u));
193
+ }
194
+ function g() {
195
+ a || (a = t.requestAnimationFrame(u));
196
+ }
197
+ function w() {
198
+ t.cancelAnimationFrame(a), o = null, c = 0, a = 0;
199
+ }
200
+ function d() {
201
+ o = null, c = 0;
202
+ }
203
+ return {
204
+ init: l,
205
+ destroy: m,
206
+ start: g,
207
+ stop: w,
208
+ update: n,
209
+ render: r
210
+ };
211
+ }
212
+ function sn(e, t) {
213
+ const n = t === "rtl", r = e === "y", i = r ? "y" : "x", s = r ? "x" : "y", o = !r && n ? -1 : 1, c = m(), a = u();
214
+ function l(d) {
215
+ const {
216
+ height: p,
217
+ width: b
218
+ } = d;
219
+ return r ? p : b;
220
+ }
221
+ function m() {
222
+ return r ? "top" : n ? "right" : "left";
223
+ }
224
+ function u() {
225
+ return r ? "bottom" : n ? "left" : "right";
226
+ }
227
+ function g(d) {
228
+ return d * o;
229
+ }
230
+ return {
231
+ scroll: i,
232
+ cross: s,
233
+ startEdge: c,
234
+ endEdge: a,
235
+ measureSize: l,
236
+ direction: g
237
+ };
238
+ }
239
+ function ge(e = 0, t = 0) {
240
+ const n = G(e - t);
241
+ function r(l) {
242
+ return l < e;
243
+ }
244
+ function i(l) {
245
+ return l > t;
246
+ }
247
+ function s(l) {
248
+ return r(l) || i(l);
249
+ }
250
+ function o(l) {
251
+ return s(l) ? r(l) ? e : t : l;
252
+ }
253
+ function c(l) {
254
+ return n ? l - n * Math.ceil((l - t) / n) : l;
255
+ }
256
+ return {
257
+ length: n,
258
+ max: t,
259
+ min: e,
260
+ constrain: o,
261
+ reachedAny: s,
262
+ reachedMax: i,
263
+ reachedMin: r,
264
+ removeOffset: c
265
+ };
266
+ }
267
+ function Et(e, t, n) {
268
+ const {
269
+ constrain: r
270
+ } = ge(0, e), i = e + 1;
271
+ let s = o(t);
272
+ function o(g) {
273
+ return n ? G((i + g) % i) : r(g);
274
+ }
275
+ function c() {
276
+ return s;
277
+ }
278
+ function a(g) {
279
+ return s = o(g), u;
280
+ }
281
+ function l(g) {
282
+ return m().set(c() + g);
283
+ }
284
+ function m() {
285
+ return Et(e, c(), n);
286
+ }
287
+ const u = {
288
+ get: c,
289
+ set: a,
290
+ add: l,
291
+ clone: m
292
+ };
293
+ return u;
294
+ }
295
+ function an(e, t, n, r, i, s, o, c, a, l, m, u, g, w, d, p, b, f, h) {
296
+ const {
297
+ cross: x,
298
+ direction: C
299
+ } = e, I = ["INPUT", "SELECT", "TEXTAREA"], P = {
300
+ passive: !1
301
+ }, L = Ae(), y = Ae(), M = ge(50, 225).constrain(w.measure(20)), D = {
302
+ mouse: 300,
303
+ touch: 400
304
+ }, T = {
305
+ mouse: 500,
306
+ touch: 600
307
+ }, j = d ? 43 : 25;
308
+ let Z = !1, K = 0, H = 0, q = !1, W = !1, E = !1, te = !1;
309
+ function ce(S) {
310
+ if (!h) return;
311
+ function R(X) {
312
+ (Oe(h) || h(S, X)) && le(X);
313
+ }
314
+ const B = t;
315
+ L.add(B, "dragstart", (X) => X.preventDefault(), P).add(B, "touchmove", () => {
316
+ }, P).add(B, "touchend", () => {
317
+ }).add(B, "touchstart", R).add(B, "mousedown", R).add(B, "touchcancel", $).add(B, "contextmenu", $).add(B, "click", J, !0);
318
+ }
319
+ function Y() {
320
+ L.clear(), y.clear();
321
+ }
322
+ function re() {
323
+ const S = te ? n : t;
324
+ y.add(S, "touchmove", z, P).add(S, "touchend", $).add(S, "mousemove", z, P).add(S, "mouseup", $);
325
+ }
326
+ function V(S) {
327
+ const R = S.nodeName || "";
328
+ return I.includes(R);
329
+ }
330
+ function F() {
331
+ return (d ? T : D)[te ? "mouse" : "touch"];
332
+ }
333
+ function oe(S, R) {
334
+ const B = u.add(Ze(S) * -1), X = m.byDistance(S, !d).distance;
335
+ return d || G(S) < M ? X : b && R ? X * 0.5 : m.byIndex(B.get(), 0).distance;
336
+ }
337
+ function le(S) {
338
+ const R = qe(S, r);
339
+ te = R, E = d && R && !S.buttons && Z, Z = Ce(i.get(), o.get()) >= 2, !(R && S.button !== 0) && (V(S.target) || (q = !0, s.pointerDown(S), l.useFriction(0).useDuration(0), i.set(o), re(), K = s.readPoint(S), H = s.readPoint(S, x), g.emit("pointerDown")));
340
+ }
341
+ function z(S) {
342
+ if (!qe(S, r) && S.touches.length >= 2) return $(S);
343
+ const B = s.readPoint(S), X = s.readPoint(S, x), se = Ce(B, K), ie = Ce(X, H);
344
+ if (!W && !te && (!S.cancelable || (W = se > ie, !W)))
345
+ return $(S);
346
+ const fe = s.pointerMove(S);
347
+ se > p && (E = !0), l.useFriction(0.3).useDuration(0.75), c.start(), i.add(C(fe)), S.preventDefault();
348
+ }
349
+ function $(S) {
350
+ const B = m.byDistance(0, !1).index !== u.get(), X = s.pointerUp(S) * F(), se = oe(C(X), B), ie = tn(X, se), fe = j - 10 * ie, ue = f + ie / 50;
351
+ W = !1, q = !1, y.clear(), l.useDuration(fe).useFriction(ue), a.distance(se, !d), te = !1, g.emit("pointerUp");
352
+ }
353
+ function J(S) {
354
+ E && (S.stopPropagation(), S.preventDefault(), E = !1);
355
+ }
356
+ function U() {
357
+ return q;
358
+ }
359
+ return {
360
+ init: ce,
361
+ destroy: Y,
362
+ pointerDown: U
363
+ };
364
+ }
365
+ function cn(e, t) {
366
+ let r, i;
367
+ function s(u) {
368
+ return u.timeStamp;
369
+ }
370
+ function o(u, g) {
371
+ const d = `client${(g || e.scroll) === "x" ? "X" : "Y"}`;
372
+ return (qe(u, t) ? u : u.touches[0])[d];
373
+ }
374
+ function c(u) {
375
+ return r = u, i = u, o(u);
376
+ }
377
+ function a(u) {
378
+ const g = o(u) - o(i), w = s(u) - s(r) > 170;
379
+ return i = u, w && (r = u), g;
380
+ }
381
+ function l(u) {
382
+ if (!r || !i) return 0;
383
+ const g = o(i) - o(r), w = s(u) - s(r), d = s(u) - s(i) > 170, p = g / w;
384
+ return w && !d && G(p) > 0.1 ? p : 0;
385
+ }
386
+ return {
387
+ pointerDown: c,
388
+ pointerMove: a,
389
+ pointerUp: l,
390
+ readPoint: o
391
+ };
392
+ }
393
+ function ln() {
394
+ function e(n) {
395
+ const {
396
+ offsetTop: r,
397
+ offsetLeft: i,
398
+ offsetWidth: s,
399
+ offsetHeight: o
400
+ } = n;
401
+ return {
402
+ top: r,
403
+ right: i + s,
404
+ bottom: r + o,
405
+ left: i,
406
+ width: s,
407
+ height: o
408
+ };
409
+ }
410
+ return {
411
+ measure: e
412
+ };
413
+ }
414
+ function un(e) {
415
+ function t(r) {
416
+ return e * (r / 100);
417
+ }
418
+ return {
419
+ measure: t
420
+ };
421
+ }
422
+ function dn(e, t, n, r, i, s, o) {
423
+ const c = [e].concat(r);
424
+ let a, l, m = [], u = !1;
425
+ function g(b) {
426
+ return i.measureSize(o.measure(b));
427
+ }
428
+ function w(b) {
429
+ if (!s) return;
430
+ l = g(e), m = r.map(g);
431
+ function f(h) {
432
+ for (const x of h) {
433
+ if (u) return;
434
+ const C = x.target === e, I = r.indexOf(x.target), P = C ? l : m[I], L = g(C ? e : r[I]);
435
+ if (G(L - P) >= 0.5) {
436
+ b.reInit(), t.emit("resize");
437
+ break;
438
+ }
439
+ }
440
+ }
441
+ a = new ResizeObserver((h) => {
442
+ (Oe(s) || s(b, h)) && f(h);
443
+ }), n.requestAnimationFrame(() => {
444
+ c.forEach((h) => a.observe(h));
445
+ });
446
+ }
447
+ function d() {
448
+ u = !0, a && a.disconnect();
449
+ }
450
+ return {
451
+ init: w,
452
+ destroy: d
453
+ };
454
+ }
455
+ function fn(e, t, n, r, i, s) {
456
+ let o = 0, c = 0, a = i, l = s, m = e.get(), u = 0;
457
+ function g() {
458
+ const P = r.get() - e.get(), L = !a;
459
+ let y = 0;
460
+ return L ? (o = 0, n.set(r), e.set(r), y = P) : (n.set(e), o += P / a, o *= l, m += o, e.add(o), y = m - u), c = Ze(y), u = m, I;
461
+ }
462
+ function w() {
463
+ const P = r.get() - t.get();
464
+ return G(P) < 1e-3;
465
+ }
466
+ function d() {
467
+ return a;
468
+ }
469
+ function p() {
470
+ return c;
471
+ }
472
+ function b() {
473
+ return o;
474
+ }
475
+ function f() {
476
+ return x(i);
477
+ }
478
+ function h() {
479
+ return C(s);
480
+ }
481
+ function x(P) {
482
+ return a = P, I;
483
+ }
484
+ function C(P) {
485
+ return l = P, I;
486
+ }
487
+ const I = {
488
+ direction: p,
489
+ duration: d,
490
+ velocity: b,
491
+ seek: g,
492
+ settled: w,
493
+ useBaseFriction: h,
494
+ useBaseDuration: f,
495
+ useFriction: C,
496
+ useDuration: x
497
+ };
498
+ return I;
499
+ }
500
+ function mn(e, t, n, r, i) {
501
+ const s = i.measure(10), o = i.measure(50), c = ge(0.1, 0.99);
502
+ let a = !1;
503
+ function l() {
504
+ return !(a || !e.reachedAny(n.get()) || !e.reachedAny(t.get()));
505
+ }
506
+ function m(w) {
507
+ if (!l()) return;
508
+ const d = e.reachedMin(t.get()) ? "min" : "max", p = G(e[d] - t.get()), b = n.get() - t.get(), f = c.constrain(p / o);
509
+ n.subtract(b * f), !w && G(b) < s && (n.set(e.constrain(n.get())), r.useDuration(25).useBaseFriction());
510
+ }
511
+ function u(w) {
512
+ a = !w;
513
+ }
514
+ return {
515
+ shouldConstrain: l,
516
+ constrain: m,
517
+ toggleActive: u
518
+ };
519
+ }
520
+ function pn(e, t, n, r, i) {
521
+ const s = ge(-t + e, 0), o = u(), c = m(), a = g();
522
+ function l(d, p) {
523
+ return Ce(d, p) <= 1;
524
+ }
525
+ function m() {
526
+ const d = o[0], p = ne(o), b = o.lastIndexOf(d), f = o.indexOf(p) + 1;
527
+ return ge(b, f);
528
+ }
529
+ function u() {
530
+ return n.map((d, p) => {
531
+ const {
532
+ min: b,
533
+ max: f
534
+ } = s, h = s.constrain(d), x = !p, C = Ye(n, p);
535
+ return x ? f : C || l(b, h) ? b : l(f, h) ? f : h;
536
+ }).map((d) => parseFloat(d.toFixed(3)));
537
+ }
538
+ function g() {
539
+ if (t <= e + i) return [s.max];
540
+ if (r === "keepSnaps") return o;
541
+ const {
542
+ min: d,
543
+ max: p
544
+ } = c;
545
+ return o.slice(d, p);
546
+ }
547
+ return {
548
+ snapsContained: a,
549
+ scrollContainLimit: c
550
+ };
551
+ }
552
+ function gn(e, t, n) {
553
+ const r = t[0], i = n ? r - e : ne(t);
554
+ return {
555
+ limit: ge(i, r)
556
+ };
557
+ }
558
+ function bn(e, t, n, r) {
559
+ const s = t.min + 0.1, o = t.max + 0.1, {
560
+ reachedMin: c,
561
+ reachedMax: a
562
+ } = ge(s, o);
563
+ function l(g) {
564
+ return g === 1 ? a(n.get()) : g === -1 ? c(n.get()) : !1;
565
+ }
566
+ function m(g) {
567
+ if (!l(g)) return;
568
+ const w = e * (g * -1);
569
+ r.forEach((d) => d.add(w));
570
+ }
571
+ return {
572
+ loop: m
573
+ };
574
+ }
575
+ function hn(e) {
576
+ const {
577
+ max: t,
578
+ length: n
579
+ } = e;
580
+ function r(s) {
581
+ const o = s - t;
582
+ return n ? o / -n : 0;
583
+ }
584
+ return {
585
+ get: r
586
+ };
587
+ }
588
+ function yn(e, t, n, r, i) {
589
+ const {
590
+ startEdge: s,
591
+ endEdge: o
592
+ } = e, {
593
+ groupSlides: c
594
+ } = i, a = u().map(t.measure), l = g(), m = w();
595
+ function u() {
596
+ return c(r).map((p) => ne(p)[o] - p[0][s]).map(G);
597
+ }
598
+ function g() {
599
+ return r.map((p) => n[s] - p[s]).map((p) => -G(p));
600
+ }
601
+ function w() {
602
+ return c(l).map((p) => p[0]).map((p, b) => p + a[b]);
603
+ }
604
+ return {
605
+ snaps: l,
606
+ snapsAligned: m
607
+ };
608
+ }
609
+ function xn(e, t, n, r, i, s) {
610
+ const {
611
+ groupSlides: o
612
+ } = i, {
613
+ min: c,
614
+ max: a
615
+ } = r, l = m();
616
+ function m() {
617
+ const g = o(s), w = !e || t === "keepSnaps";
618
+ return n.length === 1 ? [s] : w ? g : g.slice(c, a).map((d, p, b) => {
619
+ const f = !p, h = Ye(b, p);
620
+ if (f) {
621
+ const x = ne(b[0]) + 1;
622
+ return ht(x);
623
+ }
624
+ if (h) {
625
+ const x = Me(s) - ne(b)[0] + 1;
626
+ return ht(x, ne(b)[0]);
627
+ }
628
+ return d;
629
+ });
630
+ }
631
+ return {
632
+ slideRegistry: l
633
+ };
634
+ }
635
+ function wn(e, t, n, r, i) {
636
+ const {
637
+ reachedAny: s,
638
+ removeOffset: o,
639
+ constrain: c
640
+ } = r;
641
+ function a(d) {
642
+ return d.concat().sort((p, b) => G(p) - G(b))[0];
643
+ }
644
+ function l(d) {
645
+ const p = e ? o(d) : c(d), b = t.map((h, x) => ({
646
+ diff: m(h - p, 0),
647
+ index: x
648
+ })).sort((h, x) => G(h.diff) - G(x.diff)), {
649
+ index: f
650
+ } = b[0];
651
+ return {
652
+ index: f,
653
+ distance: p
654
+ };
655
+ }
656
+ function m(d, p) {
657
+ const b = [d, d + n, d - n];
658
+ if (!e) return d;
659
+ if (!p) return a(b);
660
+ const f = b.filter((h) => Ze(h) === p);
661
+ return f.length ? a(f) : ne(b) - n;
662
+ }
663
+ function u(d, p) {
664
+ const b = t[d] - i.get(), f = m(b, p);
665
+ return {
666
+ index: d,
667
+ distance: f
668
+ };
669
+ }
670
+ function g(d, p) {
671
+ const b = i.get() + d, {
672
+ index: f,
673
+ distance: h
674
+ } = l(b), x = !e && s(b);
675
+ if (!p || x) return {
676
+ index: f,
677
+ distance: d
678
+ };
679
+ const C = t[f] - h, I = d + m(C, 0);
680
+ return {
681
+ index: f,
682
+ distance: I
683
+ };
684
+ }
685
+ return {
686
+ byDistance: g,
687
+ byIndex: u,
688
+ shortcut: m
689
+ };
690
+ }
691
+ function vn(e, t, n, r, i, s, o) {
692
+ function c(u) {
693
+ const g = u.distance, w = u.index !== t.get();
694
+ s.add(g), g && (r.duration() ? e.start() : (e.update(), e.render(1), e.update())), w && (n.set(t.get()), t.set(u.index), o.emit("select"));
695
+ }
696
+ function a(u, g) {
697
+ const w = i.byDistance(u, g);
698
+ c(w);
699
+ }
700
+ function l(u, g) {
701
+ const w = t.clone().set(u), d = i.byIndex(w.get(), g);
702
+ c(d);
703
+ }
704
+ return {
705
+ distance: a,
706
+ index: l
707
+ };
708
+ }
709
+ function kn(e, t, n, r, i, s, o, c) {
710
+ const a = {
711
+ passive: !0,
712
+ capture: !0
713
+ };
714
+ let l = 0;
715
+ function m(w) {
716
+ if (!c) return;
717
+ function d(p) {
718
+ if ((/* @__PURE__ */ new Date()).getTime() - l > 10) return;
719
+ o.emit("slideFocusStart"), e.scrollLeft = 0;
720
+ const h = n.findIndex((x) => x.includes(p));
721
+ Qe(h) && (i.useDuration(0), r.index(h, 0), o.emit("slideFocus"));
722
+ }
723
+ s.add(document, "keydown", u, !1), t.forEach((p, b) => {
724
+ s.add(p, "focus", (f) => {
725
+ (Oe(c) || c(w, f)) && d(b);
726
+ }, a);
727
+ });
728
+ }
729
+ function u(w) {
730
+ w.code === "Tab" && (l = (/* @__PURE__ */ new Date()).getTime());
731
+ }
732
+ return {
733
+ init: m
734
+ };
735
+ }
736
+ function Se(e) {
737
+ let t = e;
738
+ function n() {
739
+ return t;
740
+ }
741
+ function r(a) {
742
+ t = o(a);
743
+ }
744
+ function i(a) {
745
+ t += o(a);
746
+ }
747
+ function s(a) {
748
+ t -= o(a);
749
+ }
750
+ function o(a) {
751
+ return Qe(a) ? a : a.get();
752
+ }
753
+ return {
754
+ get: n,
755
+ set: r,
756
+ add: i,
757
+ subtract: s
758
+ };
759
+ }
760
+ function Ct(e, t) {
761
+ const n = e.scroll === "x" ? o : c, r = t.style;
762
+ let i = null, s = !1;
763
+ function o(g) {
764
+ return `translate3d(${g}px,0px,0px)`;
765
+ }
766
+ function c(g) {
767
+ return `translate3d(0px,${g}px,0px)`;
768
+ }
769
+ function a(g) {
770
+ if (s) return;
771
+ const w = nn(e.direction(g));
772
+ w !== i && (r.transform = n(w), i = w);
773
+ }
774
+ function l(g) {
775
+ s = !g;
776
+ }
777
+ function m() {
778
+ s || (r.transform = "", t.getAttribute("style") || t.removeAttribute("style"));
779
+ }
780
+ return {
781
+ clear: m,
782
+ to: a,
783
+ toggleActive: l
784
+ };
785
+ }
786
+ function Sn(e, t, n, r, i, s, o, c, a) {
787
+ const m = Le(i), u = Le(i).reverse(), g = f().concat(h());
788
+ function w(L, y) {
789
+ return L.reduce((M, D) => M - i[D], y);
790
+ }
791
+ function d(L, y) {
792
+ return L.reduce((M, D) => w(M, y) > 0 ? M.concat([D]) : M, []);
793
+ }
794
+ function p(L) {
795
+ return s.map((y, M) => ({
796
+ start: y - r[M] + 0.5 + L,
797
+ end: y + t - 0.5 + L
798
+ }));
799
+ }
800
+ function b(L, y, M) {
801
+ const D = p(y);
802
+ return L.map((T) => {
803
+ const j = M ? 0 : -n, Z = M ? n : 0, K = M ? "end" : "start", H = D[T][K];
804
+ return {
805
+ index: T,
806
+ loopPoint: H,
807
+ slideLocation: Se(-1),
808
+ translate: Ct(e, a[T]),
809
+ target: () => c.get() > H ? j : Z
810
+ };
811
+ });
812
+ }
813
+ function f() {
814
+ const L = o[0], y = d(u, L);
815
+ return b(y, n, !1);
816
+ }
817
+ function h() {
818
+ const L = t - o[0] - 1, y = d(m, L);
819
+ return b(y, -n, !0);
820
+ }
821
+ function x() {
822
+ return g.every(({
823
+ index: L
824
+ }) => {
825
+ const y = m.filter((M) => M !== L);
826
+ return w(y, t) <= 0.1;
827
+ });
828
+ }
829
+ function C() {
830
+ g.forEach((L) => {
831
+ const {
832
+ target: y,
833
+ translate: M,
834
+ slideLocation: D
835
+ } = L, T = y();
836
+ T !== D.get() && (M.to(T), D.set(T));
837
+ });
838
+ }
839
+ function I() {
840
+ g.forEach((L) => L.translate.clear());
841
+ }
842
+ return {
843
+ canLoop: x,
844
+ clear: I,
845
+ loop: C,
846
+ loopPoints: g
847
+ };
848
+ }
849
+ function En(e, t, n) {
850
+ let r, i = !1;
851
+ function s(a) {
852
+ if (!n) return;
853
+ function l(m) {
854
+ for (const u of m)
855
+ if (u.type === "childList") {
856
+ a.reInit(), t.emit("slidesChanged");
857
+ break;
858
+ }
859
+ }
860
+ r = new MutationObserver((m) => {
861
+ i || (Oe(n) || n(a, m)) && l(m);
862
+ }), r.observe(e, {
863
+ childList: !0
864
+ });
865
+ }
866
+ function o() {
867
+ r && r.disconnect(), i = !0;
868
+ }
869
+ return {
870
+ init: s,
871
+ destroy: o
872
+ };
873
+ }
874
+ function Cn(e, t, n, r) {
875
+ const i = {};
876
+ let s = null, o = null, c, a = !1;
877
+ function l() {
878
+ c = new IntersectionObserver((d) => {
879
+ a || (d.forEach((p) => {
880
+ const b = t.indexOf(p.target);
881
+ i[b] = p;
882
+ }), s = null, o = null, n.emit("slidesInView"));
883
+ }, {
884
+ root: e.parentElement,
885
+ threshold: r
886
+ }), t.forEach((d) => c.observe(d));
887
+ }
888
+ function m() {
889
+ c && c.disconnect(), a = !0;
890
+ }
891
+ function u(d) {
892
+ return Ie(i).reduce((p, b) => {
893
+ const f = parseInt(b), {
894
+ isIntersecting: h
895
+ } = i[f];
896
+ return (d && h || !d && !h) && p.push(f), p;
897
+ }, []);
898
+ }
899
+ function g(d = !0) {
900
+ if (d && s) return s;
901
+ if (!d && o) return o;
902
+ const p = u(d);
903
+ return d && (s = p), d || (o = p), p;
904
+ }
905
+ return {
906
+ init: l,
907
+ destroy: m,
908
+ get: g
909
+ };
910
+ }
911
+ function Ln(e, t, n, r, i, s) {
912
+ const {
913
+ measureSize: o,
914
+ startEdge: c,
915
+ endEdge: a
916
+ } = e, l = n[0] && i, m = d(), u = p(), g = n.map(o), w = b();
917
+ function d() {
918
+ if (!l) return 0;
919
+ const h = n[0];
920
+ return G(t[c] - h[c]);
921
+ }
922
+ function p() {
923
+ if (!l) return 0;
924
+ const h = s.getComputedStyle(ne(r));
925
+ return parseFloat(h.getPropertyValue(`margin-${a}`));
926
+ }
927
+ function b() {
928
+ return n.map((h, x, C) => {
929
+ const I = !x, P = Ye(C, x);
930
+ return I ? g[x] + m : P ? g[x] + u : C[x + 1][c] - h[c];
931
+ }).map(G);
932
+ }
933
+ return {
934
+ slideSizes: g,
935
+ slideSizesWithGaps: w,
936
+ startGap: m,
937
+ endGap: u
938
+ };
939
+ }
940
+ function In(e, t, n, r, i, s, o, c, a) {
941
+ const {
942
+ startEdge: l,
943
+ endEdge: m,
944
+ direction: u
945
+ } = e, g = Qe(n);
946
+ function w(f, h) {
947
+ return Le(f).filter((x) => x % h === 0).map((x) => f.slice(x, x + h));
948
+ }
949
+ function d(f) {
950
+ return f.length ? Le(f).reduce((h, x, C) => {
951
+ const I = ne(h) || 0, P = I === 0, L = x === Me(f), y = i[l] - s[I][l], M = i[l] - s[x][m], D = !r && P ? u(o) : 0, T = !r && L ? u(c) : 0, j = G(M - T - (y + D));
952
+ return C && j > t + a && h.push(x), L && h.push(f.length), h;
953
+ }, []).map((h, x, C) => {
954
+ const I = Math.max(C[x - 1] || 0);
955
+ return f.slice(I, h);
956
+ }) : [];
957
+ }
958
+ function p(f) {
959
+ return g ? w(f, n) : d(f);
960
+ }
961
+ return {
962
+ groupSlides: p
963
+ };
964
+ }
965
+ function An(e, t, n, r, i, s, o) {
966
+ const {
967
+ align: c,
968
+ axis: a,
969
+ direction: l,
970
+ startIndex: m,
971
+ loop: u,
972
+ duration: g,
973
+ dragFree: w,
974
+ dragThreshold: d,
975
+ inViewThreshold: p,
976
+ slidesToScroll: b,
977
+ skipSnaps: f,
978
+ containScroll: h,
979
+ watchResize: x,
980
+ watchSlides: C,
981
+ watchDrag: I,
982
+ watchFocus: P
983
+ } = s, L = 2, y = ln(), M = y.measure(t), D = n.map(y.measure), T = sn(a, l), j = T.measureSize(M), Z = un(j), K = rn(c, j), H = !u && !!h, q = u || !!h, {
984
+ slideSizes: W,
985
+ slideSizesWithGaps: E,
986
+ startGap: te,
987
+ endGap: ce
988
+ } = Ln(T, M, D, n, q, i), Y = In(T, j, b, u, M, D, te, ce, L), {
989
+ snaps: re,
990
+ snapsAligned: V
991
+ } = yn(T, K, M, D, Y), F = -ne(re) + ne(E), {
992
+ snapsContained: oe,
993
+ scrollContainLimit: le
994
+ } = pn(j, F, V, h, L), z = H ? oe : V, {
995
+ limit: $
996
+ } = gn(F, z, u), J = Et(Me(z), m, u), U = J.clone(), N = Le(n), S = ({
997
+ dragHandler: be,
998
+ scrollBody: Ve,
999
+ scrollBounds: Be,
1000
+ options: {
1001
+ loop: Pe
1002
+ }
1003
+ }) => {
1004
+ Pe || Be.constrain(be.pointerDown()), Ve.seek();
1005
+ }, R = ({
1006
+ scrollBody: be,
1007
+ translate: Ve,
1008
+ location: Be,
1009
+ offsetLocation: Pe,
1010
+ previousLocation: Vt,
1011
+ scrollLooper: Bt,
1012
+ slideLooper: jt,
1013
+ dragHandler: _t,
1014
+ animation: $t,
1015
+ eventHandler: it,
1016
+ scrollBounds: Ht,
1017
+ options: {
1018
+ loop: at
1019
+ }
1020
+ }, ct) => {
1021
+ const lt = be.settled(), qt = !Ht.shouldConstrain(), ut = at ? lt : lt && qt, dt = ut && !_t.pointerDown();
1022
+ dt && $t.stop();
1023
+ const Ut = Be.get() * ct + Vt.get() * (1 - ct);
1024
+ Pe.set(Ut), at && (Bt.loop(be.direction()), jt.loop()), Ve.to(Pe.get()), dt && it.emit("settle"), ut || it.emit("scroll");
1025
+ }, B = on(r, i, () => S(Ge), (be) => R(Ge, be)), X = 0.68, se = z[J.get()], ie = Se(se), fe = Se(se), ue = Se(se), me = Se(se), we = fn(ie, ue, fe, me, g, X), De = wn(u, z, F, $, me), Fe = vn(B, J, U, we, De, me, o), rt = hn($), ot = Ae(), Ft = Cn(t, n, o, p), {
1026
+ slideRegistry: st
1027
+ } = xn(H, h, z, le, Y, N), Gt = kn(e, n, st, Fe, we, ot, o, P), Ge = {
1028
+ ownerDocument: r,
1029
+ ownerWindow: i,
1030
+ eventHandler: o,
1031
+ containerRect: M,
1032
+ slideRects: D,
1033
+ animation: B,
1034
+ axis: T,
1035
+ dragHandler: an(T, e, r, i, me, cn(T, i), ie, B, Fe, we, De, J, o, Z, w, d, f, X, I),
1036
+ eventStore: ot,
1037
+ percentOfView: Z,
1038
+ index: J,
1039
+ indexPrevious: U,
1040
+ limit: $,
1041
+ location: ie,
1042
+ offsetLocation: ue,
1043
+ previousLocation: fe,
1044
+ options: s,
1045
+ resizeHandler: dn(t, o, i, n, T, x, y),
1046
+ scrollBody: we,
1047
+ scrollBounds: mn($, ue, me, we, Z),
1048
+ scrollLooper: bn(F, $, ue, [ie, ue, fe, me]),
1049
+ scrollProgress: rt,
1050
+ scrollSnapList: z.map(rt.get),
1051
+ scrollSnaps: z,
1052
+ scrollTarget: De,
1053
+ scrollTo: Fe,
1054
+ slideLooper: Sn(T, j, F, W, E, re, z, ue, n),
1055
+ slideFocus: Gt,
1056
+ slidesHandler: En(t, o, C),
1057
+ slidesInView: Ft,
1058
+ slideIndexes: N,
1059
+ slideRegistry: st,
1060
+ slidesToScroll: Y,
1061
+ target: me,
1062
+ translate: Ct(T, t)
1063
+ };
1064
+ return Ge;
1065
+ }
1066
+ function Mn() {
1067
+ let e = {}, t;
1068
+ function n(l) {
1069
+ t = l;
1070
+ }
1071
+ function r(l) {
1072
+ return e[l] || [];
1073
+ }
1074
+ function i(l) {
1075
+ return r(l).forEach((m) => m(t, l)), a;
1076
+ }
1077
+ function s(l, m) {
1078
+ return e[l] = r(l).concat([m]), a;
1079
+ }
1080
+ function o(l, m) {
1081
+ return e[l] = r(l).filter((u) => u !== m), a;
1082
+ }
1083
+ function c() {
1084
+ e = {};
1085
+ }
1086
+ const a = {
1087
+ init: n,
1088
+ emit: i,
1089
+ off: o,
1090
+ on: s,
1091
+ clear: c
1092
+ };
1093
+ return a;
1094
+ }
1095
+ const Pn = {
1096
+ align: "center",
1097
+ axis: "x",
1098
+ container: null,
1099
+ slides: null,
1100
+ containScroll: "trimSnaps",
1101
+ direction: "ltr",
1102
+ slidesToScroll: 1,
1103
+ inViewThreshold: 0,
1104
+ breakpoints: {},
1105
+ dragFree: !1,
1106
+ dragThreshold: 10,
1107
+ loop: !1,
1108
+ skipSnaps: !1,
1109
+ duration: 25,
1110
+ startIndex: 0,
1111
+ active: !0,
1112
+ watchDrag: !0,
1113
+ watchResize: !0,
1114
+ watchSlides: !0,
1115
+ watchFocus: !0
1116
+ };
1117
+ function zn(e) {
1118
+ function t(s, o) {
1119
+ return St(s, o || {});
1120
+ }
1121
+ function n(s) {
1122
+ const o = s.breakpoints || {}, c = Ie(o).filter((a) => e.matchMedia(a).matches).map((a) => o[a]).reduce((a, l) => t(a, l), {});
1123
+ return t(s, c);
1124
+ }
1125
+ function r(s) {
1126
+ return s.map((o) => Ie(o.breakpoints || {})).reduce((o, c) => o.concat(c), []).map(e.matchMedia);
1127
+ }
1128
+ return {
1129
+ mergeOptions: t,
1130
+ optionsAtMedia: n,
1131
+ optionsMediaQueries: r
1132
+ };
1133
+ }
1134
+ function Tn(e) {
1135
+ let t = [];
1136
+ function n(s, o) {
1137
+ return t = o.filter(({
1138
+ options: c
1139
+ }) => e.optionsAtMedia(c).active !== !1), t.forEach((c) => c.init(s, e)), o.reduce((c, a) => Object.assign(c, {
1140
+ [a.name]: a
1141
+ }), {});
1142
+ }
1143
+ function r() {
1144
+ t = t.filter((s) => s.destroy());
1145
+ }
1146
+ return {
1147
+ init: n,
1148
+ destroy: r
1149
+ };
1150
+ }
1151
+ function Re(e, t, n) {
1152
+ const r = e.ownerDocument, i = r.defaultView, s = zn(i), o = Tn(s), c = Ae(), a = Mn(), {
1153
+ mergeOptions: l,
1154
+ optionsAtMedia: m,
1155
+ optionsMediaQueries: u
1156
+ } = s, {
1157
+ on: g,
1158
+ off: w,
1159
+ emit: d
1160
+ } = a, p = T;
1161
+ let b = !1, f, h = l(Pn, Re.globalOptions), x = l(h), C = [], I, P, L;
1162
+ function y() {
1163
+ const {
1164
+ container: N,
1165
+ slides: S
1166
+ } = x;
1167
+ P = (He(N) ? e.querySelector(N) : N) || e.children[0];
1168
+ const B = He(S) ? P.querySelectorAll(S) : S;
1169
+ L = [].slice.call(B || P.children);
1170
+ }
1171
+ function M(N) {
1172
+ const S = An(e, P, L, r, i, N, a);
1173
+ if (N.loop && !S.slideLooper.canLoop()) {
1174
+ const R = Object.assign({}, N, {
1175
+ loop: !1
1176
+ });
1177
+ return M(R);
1178
+ }
1179
+ return S;
1180
+ }
1181
+ function D(N, S) {
1182
+ b || (h = l(h, N), x = m(h), C = S || C, y(), f = M(x), u([h, ...C.map(({
1183
+ options: R
1184
+ }) => R)]).forEach((R) => c.add(R, "change", T)), x.active && (f.translate.to(f.location.get()), f.animation.init(), f.slidesInView.init(), f.slideFocus.init(U), f.eventHandler.init(U), f.resizeHandler.init(U), f.slidesHandler.init(U), f.options.loop && f.slideLooper.loop(), P.offsetParent && L.length && f.dragHandler.init(U), I = o.init(U, C)));
1185
+ }
1186
+ function T(N, S) {
1187
+ const R = Y();
1188
+ j(), D(l({
1189
+ startIndex: R
1190
+ }, N), S), a.emit("reInit");
1191
+ }
1192
+ function j() {
1193
+ 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(), c.clear();
1194
+ }
1195
+ function Z() {
1196
+ b || (b = !0, c.clear(), j(), a.emit("destroy"), a.clear());
1197
+ }
1198
+ function K(N, S, R) {
1199
+ !x.active || b || (f.scrollBody.useBaseFriction().useDuration(S === !0 ? 0 : x.duration), f.scrollTo.index(N, R || 0));
1200
+ }
1201
+ function H(N) {
1202
+ const S = f.index.add(1).get();
1203
+ K(S, N, -1);
1204
+ }
1205
+ function q(N) {
1206
+ const S = f.index.add(-1).get();
1207
+ K(S, N, 1);
1208
+ }
1209
+ function W() {
1210
+ return f.index.add(1).get() !== Y();
1211
+ }
1212
+ function E() {
1213
+ return f.index.add(-1).get() !== Y();
1214
+ }
1215
+ function te() {
1216
+ return f.scrollSnapList;
1217
+ }
1218
+ function ce() {
1219
+ return f.scrollProgress.get(f.offsetLocation.get());
1220
+ }
1221
+ function Y() {
1222
+ return f.index.get();
1223
+ }
1224
+ function re() {
1225
+ return f.indexPrevious.get();
1226
+ }
1227
+ function V() {
1228
+ return f.slidesInView.get();
1229
+ }
1230
+ function F() {
1231
+ return f.slidesInView.get(!1);
1232
+ }
1233
+ function oe() {
1234
+ return I;
1235
+ }
1236
+ function le() {
1237
+ return f;
1238
+ }
1239
+ function z() {
1240
+ return e;
1241
+ }
1242
+ function $() {
1243
+ return P;
1244
+ }
1245
+ function J() {
1246
+ return L;
1247
+ }
1248
+ const U = {
1249
+ canScrollNext: W,
1250
+ canScrollPrev: E,
1251
+ containerNode: $,
1252
+ internalEngine: le,
1253
+ destroy: Z,
1254
+ off: w,
1255
+ on: g,
1256
+ emit: d,
1257
+ plugins: oe,
1258
+ previousScrollSnap: re,
1259
+ reInit: p,
1260
+ rootNode: z,
1261
+ scrollNext: H,
1262
+ scrollPrev: q,
1263
+ scrollProgress: ce,
1264
+ scrollSnapList: te,
1265
+ scrollTo: K,
1266
+ selectedScrollSnap: Y,
1267
+ slideNodes: J,
1268
+ slidesInView: V,
1269
+ slidesNotInView: F
1270
+ };
1271
+ return D(t, n), setTimeout(() => a.emit("init"), 0), U;
1272
+ }
1273
+ Re.globalOptions = void 0;
1274
+ function et(e = {}, t = []) {
1275
+ const n = ft(e), r = ft(t), [i, s] = $e(), [o, c] = $e(), a = Wt(() => {
1276
+ i && i.reInit(n.current, r.current);
1277
+ }, [i]);
1278
+ return Ee(() => {
1279
+ Je(n.current, e) || (n.current = e, a());
1280
+ }, [e, a]), Ee(() => {
1281
+ en(r.current, t) || (r.current = t, a());
1282
+ }, [t, a]), Ee(() => {
1283
+ if (Yt() && o) {
1284
+ Re.globalOptions = et.globalOptions;
1285
+ const l = Re(o, n.current, r.current);
1286
+ return s(l), () => l.destroy();
1287
+ } else
1288
+ s(void 0);
1289
+ }, [o, s]), [c, i];
1290
+ }
1291
+ et.globalOptions = void 0;
1292
+ const Nn = "data:image/svg+xml,%3csvg%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='android-chevron_right'%3e%3cpath%20id='Vector'%20d='M8.0876%205L6.9126%206.175L10.7293%2010L6.9126%2013.825L8.0876%2015L13.0876%2010L8.0876%205Z'%20fill='%233E3E3E'/%3e%3c/g%3e%3c/svg%3e", Rn = "data:image/svg+xml,%3csvg%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='android-chevron_left'%3e%3cpath%20id='Vector'%20d='M13.0876%206.175L11.9126%205L6.9126%2010L11.9126%2015L13.0876%2013.825L9.27093%2010L13.0876%206.175Z'%20fill='%233E3E3E'/%3e%3c/g%3e%3c/svg%3e", tt = "-", On = (e) => {
1293
+ const t = Fn(e), {
1294
+ conflictingClassGroups: n,
1295
+ conflictingClassGroupModifiers: r
1296
+ } = e;
1297
+ return {
1298
+ getClassGroupId: (o) => {
1299
+ const c = o.split(tt);
1300
+ return c[0] === "" && c.length !== 1 && c.shift(), Lt(c, t) || Dn(o);
1301
+ },
1302
+ getConflictingClassGroupIds: (o, c) => {
1303
+ const a = n[o] || [];
1304
+ return c && r[o] ? [...a, ...r[o]] : a;
1305
+ }
1306
+ };
1307
+ }, Lt = (e, t) => {
1308
+ if (e.length === 0)
1309
+ return t.classGroupId;
1310
+ const n = e[0], r = t.nextPart.get(n), i = r ? Lt(e.slice(1), r) : void 0;
1311
+ if (i)
1312
+ return i;
1313
+ if (t.validators.length === 0)
1314
+ return;
1315
+ const s = e.join(tt);
1316
+ return t.validators.find(({
1317
+ validator: o
1318
+ }) => o(s))?.classGroupId;
1319
+ }, yt = /^\[(.+)\]$/, Dn = (e) => {
1320
+ if (yt.test(e)) {
1321
+ const t = yt.exec(e)[1], n = t?.substring(0, t.indexOf(":"));
1322
+ if (n)
1323
+ return "arbitrary.." + n;
1324
+ }
1325
+ }, Fn = (e) => {
1326
+ const {
1327
+ theme: t,
1328
+ classGroups: n
1329
+ } = e, r = {
1330
+ nextPart: /* @__PURE__ */ new Map(),
1331
+ validators: []
1332
+ };
1333
+ for (const i in n)
1334
+ Ue(n[i], r, i, t);
1335
+ return r;
1336
+ }, Ue = (e, t, n, r) => {
1337
+ e.forEach((i) => {
1338
+ if (typeof i == "string") {
1339
+ const s = i === "" ? t : xt(t, i);
1340
+ s.classGroupId = n;
1341
+ return;
1342
+ }
1343
+ if (typeof i == "function") {
1344
+ if (Gn(i)) {
1345
+ Ue(i(r), t, n, r);
1346
+ return;
1347
+ }
1348
+ t.validators.push({
1349
+ validator: i,
1350
+ classGroupId: n
1351
+ });
1352
+ return;
1353
+ }
1354
+ Object.entries(i).forEach(([s, o]) => {
1355
+ Ue(o, xt(t, s), n, r);
1356
+ });
1357
+ });
1358
+ }, xt = (e, t) => {
1359
+ let n = e;
1360
+ return t.split(tt).forEach((r) => {
1361
+ n.nextPart.has(r) || n.nextPart.set(r, {
1362
+ nextPart: /* @__PURE__ */ new Map(),
1363
+ validators: []
1364
+ }), n = n.nextPart.get(r);
1365
+ }), n;
1366
+ }, Gn = (e) => e.isThemeGetter, Vn = (e) => {
1367
+ if (e < 1)
1368
+ return {
1369
+ get: () => {
1370
+ },
1371
+ set: () => {
1372
+ }
1373
+ };
1374
+ let t = 0, n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
1375
+ const i = (s, o) => {
1376
+ n.set(s, o), t++, t > e && (t = 0, r = n, n = /* @__PURE__ */ new Map());
1377
+ };
1378
+ return {
1379
+ get(s) {
1380
+ let o = n.get(s);
1381
+ if (o !== void 0)
1382
+ return o;
1383
+ if ((o = r.get(s)) !== void 0)
1384
+ return i(s, o), o;
1385
+ },
1386
+ set(s, o) {
1387
+ n.has(s) ? n.set(s, o) : i(s, o);
1388
+ }
1389
+ };
1390
+ }, We = "!", Xe = ":", Bn = Xe.length, jn = (e) => {
1391
+ const {
1392
+ prefix: t,
1393
+ experimentalParseClassName: n
1394
+ } = e;
1395
+ let r = (i) => {
1396
+ const s = [];
1397
+ let o = 0, c = 0, a = 0, l;
1398
+ for (let d = 0; d < i.length; d++) {
1399
+ let p = i[d];
1400
+ if (o === 0 && c === 0) {
1401
+ if (p === Xe) {
1402
+ s.push(i.slice(a, d)), a = d + Bn;
1403
+ continue;
1404
+ }
1405
+ if (p === "/") {
1406
+ l = d;
1407
+ continue;
1408
+ }
1409
+ }
1410
+ p === "[" ? o++ : p === "]" ? o-- : p === "(" ? c++ : p === ")" && c--;
1411
+ }
1412
+ const m = s.length === 0 ? i : i.substring(a), u = _n(m), g = u !== m, w = l && l > a ? l - a : void 0;
1413
+ return {
1414
+ modifiers: s,
1415
+ hasImportantModifier: g,
1416
+ baseClassName: u,
1417
+ maybePostfixModifierPosition: w
1418
+ };
1419
+ };
1420
+ if (t) {
1421
+ const i = t + Xe, s = r;
1422
+ r = (o) => o.startsWith(i) ? s(o.substring(i.length)) : {
1423
+ isExternal: !0,
1424
+ modifiers: [],
1425
+ hasImportantModifier: !1,
1426
+ baseClassName: o,
1427
+ maybePostfixModifierPosition: void 0
1428
+ };
1429
+ }
1430
+ if (n) {
1431
+ const i = r;
1432
+ r = (s) => n({
1433
+ className: s,
1434
+ parseClassName: i
1435
+ });
1436
+ }
1437
+ return r;
1438
+ }, _n = (e) => e.endsWith(We) ? e.substring(0, e.length - 1) : e.startsWith(We) ? e.substring(1) : e, $n = (e) => {
1439
+ const t = Object.fromEntries(e.orderSensitiveModifiers.map((r) => [r, !0]));
1440
+ return (r) => {
1441
+ if (r.length <= 1)
1442
+ return r;
1443
+ const i = [];
1444
+ let s = [];
1445
+ return r.forEach((o) => {
1446
+ o[0] === "[" || t[o] ? (i.push(...s.sort(), o), s = []) : s.push(o);
1447
+ }), i.push(...s.sort()), i;
1448
+ };
1449
+ }, Hn = (e) => ({
1450
+ cache: Vn(e.cacheSize),
1451
+ parseClassName: jn(e),
1452
+ sortModifiers: $n(e),
1453
+ ...On(e)
1454
+ }), qn = /\s+/, Un = (e, t) => {
1455
+ const {
1456
+ parseClassName: n,
1457
+ getClassGroupId: r,
1458
+ getConflictingClassGroupIds: i,
1459
+ sortModifiers: s
1460
+ } = t, o = [], c = e.trim().split(qn);
1461
+ let a = "";
1462
+ for (let l = c.length - 1; l >= 0; l -= 1) {
1463
+ const m = c[l], {
1464
+ isExternal: u,
1465
+ modifiers: g,
1466
+ hasImportantModifier: w,
1467
+ baseClassName: d,
1468
+ maybePostfixModifierPosition: p
1469
+ } = n(m);
1470
+ if (u) {
1471
+ a = m + (a.length > 0 ? " " + a : a);
1472
+ continue;
1473
+ }
1474
+ let b = !!p, f = r(b ? d.substring(0, p) : d);
1475
+ if (!f) {
1476
+ if (!b) {
1477
+ a = m + (a.length > 0 ? " " + a : a);
1478
+ continue;
1479
+ }
1480
+ if (f = r(d), !f) {
1481
+ a = m + (a.length > 0 ? " " + a : a);
1482
+ continue;
1483
+ }
1484
+ b = !1;
1485
+ }
1486
+ const h = s(g).join(":"), x = w ? h + We : h, C = x + f;
1487
+ if (o.includes(C))
1488
+ continue;
1489
+ o.push(C);
1490
+ const I = i(f, b);
1491
+ for (let P = 0; P < I.length; ++P) {
1492
+ const L = I[P];
1493
+ o.push(x + L);
1494
+ }
1495
+ a = m + (a.length > 0 ? " " + a : a);
1496
+ }
1497
+ return a;
1498
+ };
1499
+ function Wn() {
1500
+ let e = 0, t, n, r = "";
1501
+ for (; e < arguments.length; )
1502
+ (t = arguments[e++]) && (n = It(t)) && (r && (r += " "), r += n);
1503
+ return r;
1504
+ }
1505
+ const It = (e) => {
1506
+ if (typeof e == "string")
1507
+ return e;
1508
+ let t, n = "";
1509
+ for (let r = 0; r < e.length; r++)
1510
+ e[r] && (t = It(e[r])) && (n && (n += " "), n += t);
1511
+ return n;
1512
+ };
1513
+ function Xn(e, ...t) {
1514
+ let n, r, i, s = o;
1515
+ function o(a) {
1516
+ const l = t.reduce((m, u) => u(m), e());
1517
+ return n = Hn(l), r = n.cache.get, i = n.cache.set, s = c, c(a);
1518
+ }
1519
+ function c(a) {
1520
+ const l = r(a);
1521
+ if (l)
1522
+ return l;
1523
+ const m = Un(a, n);
1524
+ return i(a, m), m;
1525
+ }
1526
+ return function() {
1527
+ return s(Wn.apply(null, arguments));
1528
+ };
1529
+ }
1530
+ const _ = (e) => {
1531
+ const t = (n) => n[e] || [];
1532
+ return t.isThemeGetter = !0, t;
1533
+ }, At = /^\[(?:(\w[\w-]*):)?(.+)\]$/i, Mt = /^\((?:(\w[\w-]*):)?(.+)\)$/i, Kn = /^\d+\/\d+$/, Jn = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, Qn = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, Zn = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/, Yn = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, er = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, he = (e) => Kn.test(e), A = (e) => !!e && !Number.isNaN(Number(e)), de = (e) => !!e && Number.isInteger(Number(e)), je = (e) => e.endsWith("%") && A(e.slice(0, -1)), ae = (e) => Jn.test(e), tr = () => !0, nr = (e) => (
1534
+ // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
1535
+ // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
1536
+ // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
1537
+ Qn.test(e) && !Zn.test(e)
1538
+ ), Pt = () => !1, rr = (e) => Yn.test(e), or = (e) => er.test(e), sr = (e) => !v(e) && !k(e), ir = (e) => ye(e, Nt, Pt), v = (e) => At.test(e), pe = (e) => ye(e, Rt, nr), _e = (e) => ye(e, dr, A), wt = (e) => ye(e, zt, Pt), ar = (e) => ye(e, Tt, or), ze = (e) => ye(e, Ot, rr), k = (e) => Mt.test(e), ve = (e) => xe(e, Rt), cr = (e) => xe(e, fr), vt = (e) => xe(e, zt), lr = (e) => xe(e, Nt), ur = (e) => xe(e, Tt), Te = (e) => xe(e, Ot, !0), ye = (e, t, n) => {
1539
+ const r = At.exec(e);
1540
+ return r ? r[1] ? t(r[1]) : n(r[2]) : !1;
1541
+ }, xe = (e, t, n = !1) => {
1542
+ const r = Mt.exec(e);
1543
+ return r ? r[1] ? t(r[1]) : n : !1;
1544
+ }, zt = (e) => e === "position" || e === "percentage", Tt = (e) => e === "image" || e === "url", Nt = (e) => e === "length" || e === "size" || e === "bg-size", Rt = (e) => e === "length", dr = (e) => e === "number", fr = (e) => e === "family-name", Ot = (e) => e === "shadow", mr = () => {
1545
+ const e = _("color"), t = _("font"), n = _("text"), r = _("font-weight"), i = _("tracking"), s = _("leading"), o = _("breakpoint"), c = _("container"), a = _("spacing"), l = _("radius"), m = _("shadow"), u = _("inset-shadow"), g = _("text-shadow"), w = _("drop-shadow"), d = _("blur"), p = _("perspective"), b = _("aspect"), f = _("ease"), h = _("animate"), x = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], C = () => [
1546
+ "center",
1547
+ "top",
1548
+ "bottom",
1549
+ "left",
1550
+ "right",
1551
+ "top-left",
1552
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
1553
+ "left-top",
1554
+ "top-right",
1555
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
1556
+ "right-top",
1557
+ "bottom-right",
1558
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
1559
+ "right-bottom",
1560
+ "bottom-left",
1561
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
1562
+ "left-bottom"
1563
+ ], I = () => [...C(), k, v], P = () => ["auto", "hidden", "clip", "visible", "scroll"], L = () => ["auto", "contain", "none"], y = () => [k, v, a], M = () => [he, "full", "auto", ...y()], D = () => [de, "none", "subgrid", k, v], T = () => ["auto", {
1564
+ span: ["full", de, k, v]
1565
+ }, de, k, v], j = () => [de, "auto", k, v], Z = () => ["auto", "min", "max", "fr", k, v], K = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"], H = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"], q = () => ["auto", ...y()], W = () => [he, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...y()], E = () => [e, k, v], te = () => [...C(), vt, wt, {
1566
+ position: [k, v]
1567
+ }], ce = () => ["no-repeat", {
1568
+ repeat: ["", "x", "y", "space", "round"]
1569
+ }], Y = () => ["auto", "cover", "contain", lr, ir, {
1570
+ size: [k, v]
1571
+ }], re = () => [je, ve, pe], V = () => [
1572
+ // Deprecated since Tailwind CSS v4.0.0
1573
+ "",
1574
+ "none",
1575
+ "full",
1576
+ l,
1577
+ k,
1578
+ v
1579
+ ], F = () => ["", A, ve, pe], oe = () => ["solid", "dashed", "dotted", "double"], le = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], z = () => [A, je, vt, wt], $ = () => [
1580
+ // Deprecated since Tailwind CSS v4.0.0
1581
+ "",
1582
+ "none",
1583
+ d,
1584
+ k,
1585
+ v
1586
+ ], J = () => ["none", A, k, v], U = () => ["none", A, k, v], N = () => [A, k, v], S = () => [he, "full", ...y()];
1587
+ return {
1588
+ cacheSize: 500,
1589
+ theme: {
1590
+ animate: ["spin", "ping", "pulse", "bounce"],
1591
+ aspect: ["video"],
1592
+ blur: [ae],
1593
+ breakpoint: [ae],
1594
+ color: [tr],
1595
+ container: [ae],
1596
+ "drop-shadow": [ae],
1597
+ ease: ["in", "out", "in-out"],
1598
+ font: [sr],
1599
+ "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
1600
+ "inset-shadow": [ae],
1601
+ leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
1602
+ perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"],
1603
+ radius: [ae],
1604
+ shadow: [ae],
1605
+ spacing: ["px", A],
1606
+ text: [ae],
1607
+ "text-shadow": [ae],
1608
+ tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"]
1609
+ },
1610
+ classGroups: {
1611
+ // --------------
1612
+ // --- Layout ---
1613
+ // --------------
1614
+ /**
1615
+ * Aspect Ratio
1616
+ * @see https://tailwindcss.com/docs/aspect-ratio
1617
+ */
1618
+ aspect: [{
1619
+ aspect: ["auto", "square", he, v, k, b]
1620
+ }],
1621
+ /**
1622
+ * Container
1623
+ * @see https://tailwindcss.com/docs/container
1624
+ * @deprecated since Tailwind CSS v4.0.0
1625
+ */
1626
+ container: ["container"],
1627
+ /**
1628
+ * Columns
1629
+ * @see https://tailwindcss.com/docs/columns
1630
+ */
1631
+ columns: [{
1632
+ columns: [A, v, k, c]
1633
+ }],
1634
+ /**
1635
+ * Break After
1636
+ * @see https://tailwindcss.com/docs/break-after
1637
+ */
1638
+ "break-after": [{
1639
+ "break-after": x()
1640
+ }],
1641
+ /**
1642
+ * Break Before
1643
+ * @see https://tailwindcss.com/docs/break-before
1644
+ */
1645
+ "break-before": [{
1646
+ "break-before": x()
1647
+ }],
1648
+ /**
1649
+ * Break Inside
1650
+ * @see https://tailwindcss.com/docs/break-inside
1651
+ */
1652
+ "break-inside": [{
1653
+ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
1654
+ }],
1655
+ /**
1656
+ * Box Decoration Break
1657
+ * @see https://tailwindcss.com/docs/box-decoration-break
1658
+ */
1659
+ "box-decoration": [{
1660
+ "box-decoration": ["slice", "clone"]
1661
+ }],
1662
+ /**
1663
+ * Box Sizing
1664
+ * @see https://tailwindcss.com/docs/box-sizing
1665
+ */
1666
+ box: [{
1667
+ box: ["border", "content"]
1668
+ }],
1669
+ /**
1670
+ * Display
1671
+ * @see https://tailwindcss.com/docs/display
1672
+ */
1673
+ display: ["block", "inline-block", "inline", "flex", "inline-flex", "table", "inline-table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row-group", "table-row", "flow-root", "grid", "inline-grid", "contents", "list-item", "hidden"],
1674
+ /**
1675
+ * Screen Reader Only
1676
+ * @see https://tailwindcss.com/docs/display#screen-reader-only
1677
+ */
1678
+ sr: ["sr-only", "not-sr-only"],
1679
+ /**
1680
+ * Floats
1681
+ * @see https://tailwindcss.com/docs/float
1682
+ */
1683
+ float: [{
1684
+ float: ["right", "left", "none", "start", "end"]
1685
+ }],
1686
+ /**
1687
+ * Clear
1688
+ * @see https://tailwindcss.com/docs/clear
1689
+ */
1690
+ clear: [{
1691
+ clear: ["left", "right", "both", "none", "start", "end"]
1692
+ }],
1693
+ /**
1694
+ * Isolation
1695
+ * @see https://tailwindcss.com/docs/isolation
1696
+ */
1697
+ isolation: ["isolate", "isolation-auto"],
1698
+ /**
1699
+ * Object Fit
1700
+ * @see https://tailwindcss.com/docs/object-fit
1701
+ */
1702
+ "object-fit": [{
1703
+ object: ["contain", "cover", "fill", "none", "scale-down"]
1704
+ }],
1705
+ /**
1706
+ * Object Position
1707
+ * @see https://tailwindcss.com/docs/object-position
1708
+ */
1709
+ "object-position": [{
1710
+ object: I()
1711
+ }],
1712
+ /**
1713
+ * Overflow
1714
+ * @see https://tailwindcss.com/docs/overflow
1715
+ */
1716
+ overflow: [{
1717
+ overflow: P()
1718
+ }],
1719
+ /**
1720
+ * Overflow X
1721
+ * @see https://tailwindcss.com/docs/overflow
1722
+ */
1723
+ "overflow-x": [{
1724
+ "overflow-x": P()
1725
+ }],
1726
+ /**
1727
+ * Overflow Y
1728
+ * @see https://tailwindcss.com/docs/overflow
1729
+ */
1730
+ "overflow-y": [{
1731
+ "overflow-y": P()
1732
+ }],
1733
+ /**
1734
+ * Overscroll Behavior
1735
+ * @see https://tailwindcss.com/docs/overscroll-behavior
1736
+ */
1737
+ overscroll: [{
1738
+ overscroll: L()
1739
+ }],
1740
+ /**
1741
+ * Overscroll Behavior X
1742
+ * @see https://tailwindcss.com/docs/overscroll-behavior
1743
+ */
1744
+ "overscroll-x": [{
1745
+ "overscroll-x": L()
1746
+ }],
1747
+ /**
1748
+ * Overscroll Behavior Y
1749
+ * @see https://tailwindcss.com/docs/overscroll-behavior
1750
+ */
1751
+ "overscroll-y": [{
1752
+ "overscroll-y": L()
1753
+ }],
1754
+ /**
1755
+ * Position
1756
+ * @see https://tailwindcss.com/docs/position
1757
+ */
1758
+ position: ["static", "fixed", "absolute", "relative", "sticky"],
1759
+ /**
1760
+ * Top / Right / Bottom / Left
1761
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1762
+ */
1763
+ inset: [{
1764
+ inset: M()
1765
+ }],
1766
+ /**
1767
+ * Right / Left
1768
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1769
+ */
1770
+ "inset-x": [{
1771
+ "inset-x": M()
1772
+ }],
1773
+ /**
1774
+ * Top / Bottom
1775
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1776
+ */
1777
+ "inset-y": [{
1778
+ "inset-y": M()
1779
+ }],
1780
+ /**
1781
+ * Start
1782
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1783
+ */
1784
+ start: [{
1785
+ start: M()
1786
+ }],
1787
+ /**
1788
+ * End
1789
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1790
+ */
1791
+ end: [{
1792
+ end: M()
1793
+ }],
1794
+ /**
1795
+ * Top
1796
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1797
+ */
1798
+ top: [{
1799
+ top: M()
1800
+ }],
1801
+ /**
1802
+ * Right
1803
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1804
+ */
1805
+ right: [{
1806
+ right: M()
1807
+ }],
1808
+ /**
1809
+ * Bottom
1810
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1811
+ */
1812
+ bottom: [{
1813
+ bottom: M()
1814
+ }],
1815
+ /**
1816
+ * Left
1817
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1818
+ */
1819
+ left: [{
1820
+ left: M()
1821
+ }],
1822
+ /**
1823
+ * Visibility
1824
+ * @see https://tailwindcss.com/docs/visibility
1825
+ */
1826
+ visibility: ["visible", "invisible", "collapse"],
1827
+ /**
1828
+ * Z-Index
1829
+ * @see https://tailwindcss.com/docs/z-index
1830
+ */
1831
+ z: [{
1832
+ z: [de, "auto", k, v]
1833
+ }],
1834
+ // ------------------------
1835
+ // --- Flexbox and Grid ---
1836
+ // ------------------------
1837
+ /**
1838
+ * Flex Basis
1839
+ * @see https://tailwindcss.com/docs/flex-basis
1840
+ */
1841
+ basis: [{
1842
+ basis: [he, "full", "auto", c, ...y()]
1843
+ }],
1844
+ /**
1845
+ * Flex Direction
1846
+ * @see https://tailwindcss.com/docs/flex-direction
1847
+ */
1848
+ "flex-direction": [{
1849
+ flex: ["row", "row-reverse", "col", "col-reverse"]
1850
+ }],
1851
+ /**
1852
+ * Flex Wrap
1853
+ * @see https://tailwindcss.com/docs/flex-wrap
1854
+ */
1855
+ "flex-wrap": [{
1856
+ flex: ["nowrap", "wrap", "wrap-reverse"]
1857
+ }],
1858
+ /**
1859
+ * Flex
1860
+ * @see https://tailwindcss.com/docs/flex
1861
+ */
1862
+ flex: [{
1863
+ flex: [A, he, "auto", "initial", "none", v]
1864
+ }],
1865
+ /**
1866
+ * Flex Grow
1867
+ * @see https://tailwindcss.com/docs/flex-grow
1868
+ */
1869
+ grow: [{
1870
+ grow: ["", A, k, v]
1871
+ }],
1872
+ /**
1873
+ * Flex Shrink
1874
+ * @see https://tailwindcss.com/docs/flex-shrink
1875
+ */
1876
+ shrink: [{
1877
+ shrink: ["", A, k, v]
1878
+ }],
1879
+ /**
1880
+ * Order
1881
+ * @see https://tailwindcss.com/docs/order
1882
+ */
1883
+ order: [{
1884
+ order: [de, "first", "last", "none", k, v]
1885
+ }],
1886
+ /**
1887
+ * Grid Template Columns
1888
+ * @see https://tailwindcss.com/docs/grid-template-columns
1889
+ */
1890
+ "grid-cols": [{
1891
+ "grid-cols": D()
1892
+ }],
1893
+ /**
1894
+ * Grid Column Start / End
1895
+ * @see https://tailwindcss.com/docs/grid-column
1896
+ */
1897
+ "col-start-end": [{
1898
+ col: T()
1899
+ }],
1900
+ /**
1901
+ * Grid Column Start
1902
+ * @see https://tailwindcss.com/docs/grid-column
1903
+ */
1904
+ "col-start": [{
1905
+ "col-start": j()
1906
+ }],
1907
+ /**
1908
+ * Grid Column End
1909
+ * @see https://tailwindcss.com/docs/grid-column
1910
+ */
1911
+ "col-end": [{
1912
+ "col-end": j()
1913
+ }],
1914
+ /**
1915
+ * Grid Template Rows
1916
+ * @see https://tailwindcss.com/docs/grid-template-rows
1917
+ */
1918
+ "grid-rows": [{
1919
+ "grid-rows": D()
1920
+ }],
1921
+ /**
1922
+ * Grid Row Start / End
1923
+ * @see https://tailwindcss.com/docs/grid-row
1924
+ */
1925
+ "row-start-end": [{
1926
+ row: T()
1927
+ }],
1928
+ /**
1929
+ * Grid Row Start
1930
+ * @see https://tailwindcss.com/docs/grid-row
1931
+ */
1932
+ "row-start": [{
1933
+ "row-start": j()
1934
+ }],
1935
+ /**
1936
+ * Grid Row End
1937
+ * @see https://tailwindcss.com/docs/grid-row
1938
+ */
1939
+ "row-end": [{
1940
+ "row-end": j()
1941
+ }],
1942
+ /**
1943
+ * Grid Auto Flow
1944
+ * @see https://tailwindcss.com/docs/grid-auto-flow
1945
+ */
1946
+ "grid-flow": [{
1947
+ "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
1948
+ }],
1949
+ /**
1950
+ * Grid Auto Columns
1951
+ * @see https://tailwindcss.com/docs/grid-auto-columns
1952
+ */
1953
+ "auto-cols": [{
1954
+ "auto-cols": Z()
1955
+ }],
1956
+ /**
1957
+ * Grid Auto Rows
1958
+ * @see https://tailwindcss.com/docs/grid-auto-rows
1959
+ */
1960
+ "auto-rows": [{
1961
+ "auto-rows": Z()
1962
+ }],
1963
+ /**
1964
+ * Gap
1965
+ * @see https://tailwindcss.com/docs/gap
1966
+ */
1967
+ gap: [{
1968
+ gap: y()
1969
+ }],
1970
+ /**
1971
+ * Gap X
1972
+ * @see https://tailwindcss.com/docs/gap
1973
+ */
1974
+ "gap-x": [{
1975
+ "gap-x": y()
1976
+ }],
1977
+ /**
1978
+ * Gap Y
1979
+ * @see https://tailwindcss.com/docs/gap
1980
+ */
1981
+ "gap-y": [{
1982
+ "gap-y": y()
1983
+ }],
1984
+ /**
1985
+ * Justify Content
1986
+ * @see https://tailwindcss.com/docs/justify-content
1987
+ */
1988
+ "justify-content": [{
1989
+ justify: [...K(), "normal"]
1990
+ }],
1991
+ /**
1992
+ * Justify Items
1993
+ * @see https://tailwindcss.com/docs/justify-items
1994
+ */
1995
+ "justify-items": [{
1996
+ "justify-items": [...H(), "normal"]
1997
+ }],
1998
+ /**
1999
+ * Justify Self
2000
+ * @see https://tailwindcss.com/docs/justify-self
2001
+ */
2002
+ "justify-self": [{
2003
+ "justify-self": ["auto", ...H()]
2004
+ }],
2005
+ /**
2006
+ * Align Content
2007
+ * @see https://tailwindcss.com/docs/align-content
2008
+ */
2009
+ "align-content": [{
2010
+ content: ["normal", ...K()]
2011
+ }],
2012
+ /**
2013
+ * Align Items
2014
+ * @see https://tailwindcss.com/docs/align-items
2015
+ */
2016
+ "align-items": [{
2017
+ items: [...H(), {
2018
+ baseline: ["", "last"]
2019
+ }]
2020
+ }],
2021
+ /**
2022
+ * Align Self
2023
+ * @see https://tailwindcss.com/docs/align-self
2024
+ */
2025
+ "align-self": [{
2026
+ self: ["auto", ...H(), {
2027
+ baseline: ["", "last"]
2028
+ }]
2029
+ }],
2030
+ /**
2031
+ * Place Content
2032
+ * @see https://tailwindcss.com/docs/place-content
2033
+ */
2034
+ "place-content": [{
2035
+ "place-content": K()
2036
+ }],
2037
+ /**
2038
+ * Place Items
2039
+ * @see https://tailwindcss.com/docs/place-items
2040
+ */
2041
+ "place-items": [{
2042
+ "place-items": [...H(), "baseline"]
2043
+ }],
2044
+ /**
2045
+ * Place Self
2046
+ * @see https://tailwindcss.com/docs/place-self
2047
+ */
2048
+ "place-self": [{
2049
+ "place-self": ["auto", ...H()]
2050
+ }],
2051
+ // Spacing
2052
+ /**
2053
+ * Padding
2054
+ * @see https://tailwindcss.com/docs/padding
2055
+ */
2056
+ p: [{
2057
+ p: y()
2058
+ }],
2059
+ /**
2060
+ * Padding X
2061
+ * @see https://tailwindcss.com/docs/padding
2062
+ */
2063
+ px: [{
2064
+ px: y()
2065
+ }],
2066
+ /**
2067
+ * Padding Y
2068
+ * @see https://tailwindcss.com/docs/padding
2069
+ */
2070
+ py: [{
2071
+ py: y()
2072
+ }],
2073
+ /**
2074
+ * Padding Start
2075
+ * @see https://tailwindcss.com/docs/padding
2076
+ */
2077
+ ps: [{
2078
+ ps: y()
2079
+ }],
2080
+ /**
2081
+ * Padding End
2082
+ * @see https://tailwindcss.com/docs/padding
2083
+ */
2084
+ pe: [{
2085
+ pe: y()
2086
+ }],
2087
+ /**
2088
+ * Padding Top
2089
+ * @see https://tailwindcss.com/docs/padding
2090
+ */
2091
+ pt: [{
2092
+ pt: y()
2093
+ }],
2094
+ /**
2095
+ * Padding Right
2096
+ * @see https://tailwindcss.com/docs/padding
2097
+ */
2098
+ pr: [{
2099
+ pr: y()
2100
+ }],
2101
+ /**
2102
+ * Padding Bottom
2103
+ * @see https://tailwindcss.com/docs/padding
2104
+ */
2105
+ pb: [{
2106
+ pb: y()
2107
+ }],
2108
+ /**
2109
+ * Padding Left
2110
+ * @see https://tailwindcss.com/docs/padding
2111
+ */
2112
+ pl: [{
2113
+ pl: y()
2114
+ }],
2115
+ /**
2116
+ * Margin
2117
+ * @see https://tailwindcss.com/docs/margin
2118
+ */
2119
+ m: [{
2120
+ m: q()
2121
+ }],
2122
+ /**
2123
+ * Margin X
2124
+ * @see https://tailwindcss.com/docs/margin
2125
+ */
2126
+ mx: [{
2127
+ mx: q()
2128
+ }],
2129
+ /**
2130
+ * Margin Y
2131
+ * @see https://tailwindcss.com/docs/margin
2132
+ */
2133
+ my: [{
2134
+ my: q()
2135
+ }],
2136
+ /**
2137
+ * Margin Start
2138
+ * @see https://tailwindcss.com/docs/margin
2139
+ */
2140
+ ms: [{
2141
+ ms: q()
2142
+ }],
2143
+ /**
2144
+ * Margin End
2145
+ * @see https://tailwindcss.com/docs/margin
2146
+ */
2147
+ me: [{
2148
+ me: q()
2149
+ }],
2150
+ /**
2151
+ * Margin Top
2152
+ * @see https://tailwindcss.com/docs/margin
2153
+ */
2154
+ mt: [{
2155
+ mt: q()
2156
+ }],
2157
+ /**
2158
+ * Margin Right
2159
+ * @see https://tailwindcss.com/docs/margin
2160
+ */
2161
+ mr: [{
2162
+ mr: q()
2163
+ }],
2164
+ /**
2165
+ * Margin Bottom
2166
+ * @see https://tailwindcss.com/docs/margin
2167
+ */
2168
+ mb: [{
2169
+ mb: q()
2170
+ }],
2171
+ /**
2172
+ * Margin Left
2173
+ * @see https://tailwindcss.com/docs/margin
2174
+ */
2175
+ ml: [{
2176
+ ml: q()
2177
+ }],
2178
+ /**
2179
+ * Space Between X
2180
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
2181
+ */
2182
+ "space-x": [{
2183
+ "space-x": y()
2184
+ }],
2185
+ /**
2186
+ * Space Between X Reverse
2187
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
2188
+ */
2189
+ "space-x-reverse": ["space-x-reverse"],
2190
+ /**
2191
+ * Space Between Y
2192
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
2193
+ */
2194
+ "space-y": [{
2195
+ "space-y": y()
2196
+ }],
2197
+ /**
2198
+ * Space Between Y Reverse
2199
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
2200
+ */
2201
+ "space-y-reverse": ["space-y-reverse"],
2202
+ // --------------
2203
+ // --- Sizing ---
2204
+ // --------------
2205
+ /**
2206
+ * Size
2207
+ * @see https://tailwindcss.com/docs/width#setting-both-width-and-height
2208
+ */
2209
+ size: [{
2210
+ size: W()
2211
+ }],
2212
+ /**
2213
+ * Width
2214
+ * @see https://tailwindcss.com/docs/width
2215
+ */
2216
+ w: [{
2217
+ w: [c, "screen", ...W()]
2218
+ }],
2219
+ /**
2220
+ * Min-Width
2221
+ * @see https://tailwindcss.com/docs/min-width
2222
+ */
2223
+ "min-w": [{
2224
+ "min-w": [
2225
+ c,
2226
+ "screen",
2227
+ /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
2228
+ "none",
2229
+ ...W()
2230
+ ]
2231
+ }],
2232
+ /**
2233
+ * Max-Width
2234
+ * @see https://tailwindcss.com/docs/max-width
2235
+ */
2236
+ "max-w": [{
2237
+ "max-w": [
2238
+ c,
2239
+ "screen",
2240
+ "none",
2241
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
2242
+ "prose",
2243
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
2244
+ {
2245
+ screen: [o]
2246
+ },
2247
+ ...W()
2248
+ ]
2249
+ }],
2250
+ /**
2251
+ * Height
2252
+ * @see https://tailwindcss.com/docs/height
2253
+ */
2254
+ h: [{
2255
+ h: ["screen", "lh", ...W()]
2256
+ }],
2257
+ /**
2258
+ * Min-Height
2259
+ * @see https://tailwindcss.com/docs/min-height
2260
+ */
2261
+ "min-h": [{
2262
+ "min-h": ["screen", "lh", "none", ...W()]
2263
+ }],
2264
+ /**
2265
+ * Max-Height
2266
+ * @see https://tailwindcss.com/docs/max-height
2267
+ */
2268
+ "max-h": [{
2269
+ "max-h": ["screen", "lh", ...W()]
2270
+ }],
2271
+ // ------------------
2272
+ // --- Typography ---
2273
+ // ------------------
2274
+ /**
2275
+ * Font Size
2276
+ * @see https://tailwindcss.com/docs/font-size
2277
+ */
2278
+ "font-size": [{
2279
+ text: ["base", n, ve, pe]
2280
+ }],
2281
+ /**
2282
+ * Font Smoothing
2283
+ * @see https://tailwindcss.com/docs/font-smoothing
2284
+ */
2285
+ "font-smoothing": ["antialiased", "subpixel-antialiased"],
2286
+ /**
2287
+ * Font Style
2288
+ * @see https://tailwindcss.com/docs/font-style
2289
+ */
2290
+ "font-style": ["italic", "not-italic"],
2291
+ /**
2292
+ * Font Weight
2293
+ * @see https://tailwindcss.com/docs/font-weight
2294
+ */
2295
+ "font-weight": [{
2296
+ font: [r, k, _e]
2297
+ }],
2298
+ /**
2299
+ * Font Stretch
2300
+ * @see https://tailwindcss.com/docs/font-stretch
2301
+ */
2302
+ "font-stretch": [{
2303
+ "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", je, v]
2304
+ }],
2305
+ /**
2306
+ * Font Family
2307
+ * @see https://tailwindcss.com/docs/font-family
2308
+ */
2309
+ "font-family": [{
2310
+ font: [cr, v, t]
2311
+ }],
2312
+ /**
2313
+ * Font Variant Numeric
2314
+ * @see https://tailwindcss.com/docs/font-variant-numeric
2315
+ */
2316
+ "fvn-normal": ["normal-nums"],
2317
+ /**
2318
+ * Font Variant Numeric
2319
+ * @see https://tailwindcss.com/docs/font-variant-numeric
2320
+ */
2321
+ "fvn-ordinal": ["ordinal"],
2322
+ /**
2323
+ * Font Variant Numeric
2324
+ * @see https://tailwindcss.com/docs/font-variant-numeric
2325
+ */
2326
+ "fvn-slashed-zero": ["slashed-zero"],
2327
+ /**
2328
+ * Font Variant Numeric
2329
+ * @see https://tailwindcss.com/docs/font-variant-numeric
2330
+ */
2331
+ "fvn-figure": ["lining-nums", "oldstyle-nums"],
2332
+ /**
2333
+ * Font Variant Numeric
2334
+ * @see https://tailwindcss.com/docs/font-variant-numeric
2335
+ */
2336
+ "fvn-spacing": ["proportional-nums", "tabular-nums"],
2337
+ /**
2338
+ * Font Variant Numeric
2339
+ * @see https://tailwindcss.com/docs/font-variant-numeric
2340
+ */
2341
+ "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
2342
+ /**
2343
+ * Letter Spacing
2344
+ * @see https://tailwindcss.com/docs/letter-spacing
2345
+ */
2346
+ tracking: [{
2347
+ tracking: [i, k, v]
2348
+ }],
2349
+ /**
2350
+ * Line Clamp
2351
+ * @see https://tailwindcss.com/docs/line-clamp
2352
+ */
2353
+ "line-clamp": [{
2354
+ "line-clamp": [A, "none", k, _e]
2355
+ }],
2356
+ /**
2357
+ * Line Height
2358
+ * @see https://tailwindcss.com/docs/line-height
2359
+ */
2360
+ leading: [{
2361
+ leading: [
2362
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
2363
+ s,
2364
+ ...y()
2365
+ ]
2366
+ }],
2367
+ /**
2368
+ * List Style Image
2369
+ * @see https://tailwindcss.com/docs/list-style-image
2370
+ */
2371
+ "list-image": [{
2372
+ "list-image": ["none", k, v]
2373
+ }],
2374
+ /**
2375
+ * List Style Position
2376
+ * @see https://tailwindcss.com/docs/list-style-position
2377
+ */
2378
+ "list-style-position": [{
2379
+ list: ["inside", "outside"]
2380
+ }],
2381
+ /**
2382
+ * List Style Type
2383
+ * @see https://tailwindcss.com/docs/list-style-type
2384
+ */
2385
+ "list-style-type": [{
2386
+ list: ["disc", "decimal", "none", k, v]
2387
+ }],
2388
+ /**
2389
+ * Text Alignment
2390
+ * @see https://tailwindcss.com/docs/text-align
2391
+ */
2392
+ "text-alignment": [{
2393
+ text: ["left", "center", "right", "justify", "start", "end"]
2394
+ }],
2395
+ /**
2396
+ * Placeholder Color
2397
+ * @deprecated since Tailwind CSS v3.0.0
2398
+ * @see https://v3.tailwindcss.com/docs/placeholder-color
2399
+ */
2400
+ "placeholder-color": [{
2401
+ placeholder: E()
2402
+ }],
2403
+ /**
2404
+ * Text Color
2405
+ * @see https://tailwindcss.com/docs/text-color
2406
+ */
2407
+ "text-color": [{
2408
+ text: E()
2409
+ }],
2410
+ /**
2411
+ * Text Decoration
2412
+ * @see https://tailwindcss.com/docs/text-decoration
2413
+ */
2414
+ "text-decoration": ["underline", "overline", "line-through", "no-underline"],
2415
+ /**
2416
+ * Text Decoration Style
2417
+ * @see https://tailwindcss.com/docs/text-decoration-style
2418
+ */
2419
+ "text-decoration-style": [{
2420
+ decoration: [...oe(), "wavy"]
2421
+ }],
2422
+ /**
2423
+ * Text Decoration Thickness
2424
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
2425
+ */
2426
+ "text-decoration-thickness": [{
2427
+ decoration: [A, "from-font", "auto", k, pe]
2428
+ }],
2429
+ /**
2430
+ * Text Decoration Color
2431
+ * @see https://tailwindcss.com/docs/text-decoration-color
2432
+ */
2433
+ "text-decoration-color": [{
2434
+ decoration: E()
2435
+ }],
2436
+ /**
2437
+ * Text Underline Offset
2438
+ * @see https://tailwindcss.com/docs/text-underline-offset
2439
+ */
2440
+ "underline-offset": [{
2441
+ "underline-offset": [A, "auto", k, v]
2442
+ }],
2443
+ /**
2444
+ * Text Transform
2445
+ * @see https://tailwindcss.com/docs/text-transform
2446
+ */
2447
+ "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
2448
+ /**
2449
+ * Text Overflow
2450
+ * @see https://tailwindcss.com/docs/text-overflow
2451
+ */
2452
+ "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
2453
+ /**
2454
+ * Text Wrap
2455
+ * @see https://tailwindcss.com/docs/text-wrap
2456
+ */
2457
+ "text-wrap": [{
2458
+ text: ["wrap", "nowrap", "balance", "pretty"]
2459
+ }],
2460
+ /**
2461
+ * Text Indent
2462
+ * @see https://tailwindcss.com/docs/text-indent
2463
+ */
2464
+ indent: [{
2465
+ indent: y()
2466
+ }],
2467
+ /**
2468
+ * Vertical Alignment
2469
+ * @see https://tailwindcss.com/docs/vertical-align
2470
+ */
2471
+ "vertical-align": [{
2472
+ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", k, v]
2473
+ }],
2474
+ /**
2475
+ * Whitespace
2476
+ * @see https://tailwindcss.com/docs/whitespace
2477
+ */
2478
+ whitespace: [{
2479
+ whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
2480
+ }],
2481
+ /**
2482
+ * Word Break
2483
+ * @see https://tailwindcss.com/docs/word-break
2484
+ */
2485
+ break: [{
2486
+ break: ["normal", "words", "all", "keep"]
2487
+ }],
2488
+ /**
2489
+ * Overflow Wrap
2490
+ * @see https://tailwindcss.com/docs/overflow-wrap
2491
+ */
2492
+ wrap: [{
2493
+ wrap: ["break-word", "anywhere", "normal"]
2494
+ }],
2495
+ /**
2496
+ * Hyphens
2497
+ * @see https://tailwindcss.com/docs/hyphens
2498
+ */
2499
+ hyphens: [{
2500
+ hyphens: ["none", "manual", "auto"]
2501
+ }],
2502
+ /**
2503
+ * Content
2504
+ * @see https://tailwindcss.com/docs/content
2505
+ */
2506
+ content: [{
2507
+ content: ["none", k, v]
2508
+ }],
2509
+ // -------------------
2510
+ // --- Backgrounds ---
2511
+ // -------------------
2512
+ /**
2513
+ * Background Attachment
2514
+ * @see https://tailwindcss.com/docs/background-attachment
2515
+ */
2516
+ "bg-attachment": [{
2517
+ bg: ["fixed", "local", "scroll"]
2518
+ }],
2519
+ /**
2520
+ * Background Clip
2521
+ * @see https://tailwindcss.com/docs/background-clip
2522
+ */
2523
+ "bg-clip": [{
2524
+ "bg-clip": ["border", "padding", "content", "text"]
2525
+ }],
2526
+ /**
2527
+ * Background Origin
2528
+ * @see https://tailwindcss.com/docs/background-origin
2529
+ */
2530
+ "bg-origin": [{
2531
+ "bg-origin": ["border", "padding", "content"]
2532
+ }],
2533
+ /**
2534
+ * Background Position
2535
+ * @see https://tailwindcss.com/docs/background-position
2536
+ */
2537
+ "bg-position": [{
2538
+ bg: te()
2539
+ }],
2540
+ /**
2541
+ * Background Repeat
2542
+ * @see https://tailwindcss.com/docs/background-repeat
2543
+ */
2544
+ "bg-repeat": [{
2545
+ bg: ce()
2546
+ }],
2547
+ /**
2548
+ * Background Size
2549
+ * @see https://tailwindcss.com/docs/background-size
2550
+ */
2551
+ "bg-size": [{
2552
+ bg: Y()
2553
+ }],
2554
+ /**
2555
+ * Background Image
2556
+ * @see https://tailwindcss.com/docs/background-image
2557
+ */
2558
+ "bg-image": [{
2559
+ bg: ["none", {
2560
+ linear: [{
2561
+ to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
2562
+ }, de, k, v],
2563
+ radial: ["", k, v],
2564
+ conic: [de, k, v]
2565
+ }, ur, ar]
2566
+ }],
2567
+ /**
2568
+ * Background Color
2569
+ * @see https://tailwindcss.com/docs/background-color
2570
+ */
2571
+ "bg-color": [{
2572
+ bg: E()
2573
+ }],
2574
+ /**
2575
+ * Gradient Color Stops From Position
2576
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2577
+ */
2578
+ "gradient-from-pos": [{
2579
+ from: re()
2580
+ }],
2581
+ /**
2582
+ * Gradient Color Stops Via Position
2583
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2584
+ */
2585
+ "gradient-via-pos": [{
2586
+ via: re()
2587
+ }],
2588
+ /**
2589
+ * Gradient Color Stops To Position
2590
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2591
+ */
2592
+ "gradient-to-pos": [{
2593
+ to: re()
2594
+ }],
2595
+ /**
2596
+ * Gradient Color Stops From
2597
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2598
+ */
2599
+ "gradient-from": [{
2600
+ from: E()
2601
+ }],
2602
+ /**
2603
+ * Gradient Color Stops Via
2604
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2605
+ */
2606
+ "gradient-via": [{
2607
+ via: E()
2608
+ }],
2609
+ /**
2610
+ * Gradient Color Stops To
2611
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2612
+ */
2613
+ "gradient-to": [{
2614
+ to: E()
2615
+ }],
2616
+ // ---------------
2617
+ // --- Borders ---
2618
+ // ---------------
2619
+ /**
2620
+ * Border Radius
2621
+ * @see https://tailwindcss.com/docs/border-radius
2622
+ */
2623
+ rounded: [{
2624
+ rounded: V()
2625
+ }],
2626
+ /**
2627
+ * Border Radius Start
2628
+ * @see https://tailwindcss.com/docs/border-radius
2629
+ */
2630
+ "rounded-s": [{
2631
+ "rounded-s": V()
2632
+ }],
2633
+ /**
2634
+ * Border Radius End
2635
+ * @see https://tailwindcss.com/docs/border-radius
2636
+ */
2637
+ "rounded-e": [{
2638
+ "rounded-e": V()
2639
+ }],
2640
+ /**
2641
+ * Border Radius Top
2642
+ * @see https://tailwindcss.com/docs/border-radius
2643
+ */
2644
+ "rounded-t": [{
2645
+ "rounded-t": V()
2646
+ }],
2647
+ /**
2648
+ * Border Radius Right
2649
+ * @see https://tailwindcss.com/docs/border-radius
2650
+ */
2651
+ "rounded-r": [{
2652
+ "rounded-r": V()
2653
+ }],
2654
+ /**
2655
+ * Border Radius Bottom
2656
+ * @see https://tailwindcss.com/docs/border-radius
2657
+ */
2658
+ "rounded-b": [{
2659
+ "rounded-b": V()
2660
+ }],
2661
+ /**
2662
+ * Border Radius Left
2663
+ * @see https://tailwindcss.com/docs/border-radius
2664
+ */
2665
+ "rounded-l": [{
2666
+ "rounded-l": V()
2667
+ }],
2668
+ /**
2669
+ * Border Radius Start Start
2670
+ * @see https://tailwindcss.com/docs/border-radius
2671
+ */
2672
+ "rounded-ss": [{
2673
+ "rounded-ss": V()
2674
+ }],
2675
+ /**
2676
+ * Border Radius Start End
2677
+ * @see https://tailwindcss.com/docs/border-radius
2678
+ */
2679
+ "rounded-se": [{
2680
+ "rounded-se": V()
2681
+ }],
2682
+ /**
2683
+ * Border Radius End End
2684
+ * @see https://tailwindcss.com/docs/border-radius
2685
+ */
2686
+ "rounded-ee": [{
2687
+ "rounded-ee": V()
2688
+ }],
2689
+ /**
2690
+ * Border Radius End Start
2691
+ * @see https://tailwindcss.com/docs/border-radius
2692
+ */
2693
+ "rounded-es": [{
2694
+ "rounded-es": V()
2695
+ }],
2696
+ /**
2697
+ * Border Radius Top Left
2698
+ * @see https://tailwindcss.com/docs/border-radius
2699
+ */
2700
+ "rounded-tl": [{
2701
+ "rounded-tl": V()
2702
+ }],
2703
+ /**
2704
+ * Border Radius Top Right
2705
+ * @see https://tailwindcss.com/docs/border-radius
2706
+ */
2707
+ "rounded-tr": [{
2708
+ "rounded-tr": V()
2709
+ }],
2710
+ /**
2711
+ * Border Radius Bottom Right
2712
+ * @see https://tailwindcss.com/docs/border-radius
2713
+ */
2714
+ "rounded-br": [{
2715
+ "rounded-br": V()
2716
+ }],
2717
+ /**
2718
+ * Border Radius Bottom Left
2719
+ * @see https://tailwindcss.com/docs/border-radius
2720
+ */
2721
+ "rounded-bl": [{
2722
+ "rounded-bl": V()
2723
+ }],
2724
+ /**
2725
+ * Border Width
2726
+ * @see https://tailwindcss.com/docs/border-width
2727
+ */
2728
+ "border-w": [{
2729
+ border: F()
2730
+ }],
2731
+ /**
2732
+ * Border Width X
2733
+ * @see https://tailwindcss.com/docs/border-width
2734
+ */
2735
+ "border-w-x": [{
2736
+ "border-x": F()
2737
+ }],
2738
+ /**
2739
+ * Border Width Y
2740
+ * @see https://tailwindcss.com/docs/border-width
2741
+ */
2742
+ "border-w-y": [{
2743
+ "border-y": F()
2744
+ }],
2745
+ /**
2746
+ * Border Width Start
2747
+ * @see https://tailwindcss.com/docs/border-width
2748
+ */
2749
+ "border-w-s": [{
2750
+ "border-s": F()
2751
+ }],
2752
+ /**
2753
+ * Border Width End
2754
+ * @see https://tailwindcss.com/docs/border-width
2755
+ */
2756
+ "border-w-e": [{
2757
+ "border-e": F()
2758
+ }],
2759
+ /**
2760
+ * Border Width Top
2761
+ * @see https://tailwindcss.com/docs/border-width
2762
+ */
2763
+ "border-w-t": [{
2764
+ "border-t": F()
2765
+ }],
2766
+ /**
2767
+ * Border Width Right
2768
+ * @see https://tailwindcss.com/docs/border-width
2769
+ */
2770
+ "border-w-r": [{
2771
+ "border-r": F()
2772
+ }],
2773
+ /**
2774
+ * Border Width Bottom
2775
+ * @see https://tailwindcss.com/docs/border-width
2776
+ */
2777
+ "border-w-b": [{
2778
+ "border-b": F()
2779
+ }],
2780
+ /**
2781
+ * Border Width Left
2782
+ * @see https://tailwindcss.com/docs/border-width
2783
+ */
2784
+ "border-w-l": [{
2785
+ "border-l": F()
2786
+ }],
2787
+ /**
2788
+ * Divide Width X
2789
+ * @see https://tailwindcss.com/docs/border-width#between-children
2790
+ */
2791
+ "divide-x": [{
2792
+ "divide-x": F()
2793
+ }],
2794
+ /**
2795
+ * Divide Width X Reverse
2796
+ * @see https://tailwindcss.com/docs/border-width#between-children
2797
+ */
2798
+ "divide-x-reverse": ["divide-x-reverse"],
2799
+ /**
2800
+ * Divide Width Y
2801
+ * @see https://tailwindcss.com/docs/border-width#between-children
2802
+ */
2803
+ "divide-y": [{
2804
+ "divide-y": F()
2805
+ }],
2806
+ /**
2807
+ * Divide Width Y Reverse
2808
+ * @see https://tailwindcss.com/docs/border-width#between-children
2809
+ */
2810
+ "divide-y-reverse": ["divide-y-reverse"],
2811
+ /**
2812
+ * Border Style
2813
+ * @see https://tailwindcss.com/docs/border-style
2814
+ */
2815
+ "border-style": [{
2816
+ border: [...oe(), "hidden", "none"]
2817
+ }],
2818
+ /**
2819
+ * Divide Style
2820
+ * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style
2821
+ */
2822
+ "divide-style": [{
2823
+ divide: [...oe(), "hidden", "none"]
2824
+ }],
2825
+ /**
2826
+ * Border Color
2827
+ * @see https://tailwindcss.com/docs/border-color
2828
+ */
2829
+ "border-color": [{
2830
+ border: E()
2831
+ }],
2832
+ /**
2833
+ * Border Color X
2834
+ * @see https://tailwindcss.com/docs/border-color
2835
+ */
2836
+ "border-color-x": [{
2837
+ "border-x": E()
2838
+ }],
2839
+ /**
2840
+ * Border Color Y
2841
+ * @see https://tailwindcss.com/docs/border-color
2842
+ */
2843
+ "border-color-y": [{
2844
+ "border-y": E()
2845
+ }],
2846
+ /**
2847
+ * Border Color S
2848
+ * @see https://tailwindcss.com/docs/border-color
2849
+ */
2850
+ "border-color-s": [{
2851
+ "border-s": E()
2852
+ }],
2853
+ /**
2854
+ * Border Color E
2855
+ * @see https://tailwindcss.com/docs/border-color
2856
+ */
2857
+ "border-color-e": [{
2858
+ "border-e": E()
2859
+ }],
2860
+ /**
2861
+ * Border Color Top
2862
+ * @see https://tailwindcss.com/docs/border-color
2863
+ */
2864
+ "border-color-t": [{
2865
+ "border-t": E()
2866
+ }],
2867
+ /**
2868
+ * Border Color Right
2869
+ * @see https://tailwindcss.com/docs/border-color
2870
+ */
2871
+ "border-color-r": [{
2872
+ "border-r": E()
2873
+ }],
2874
+ /**
2875
+ * Border Color Bottom
2876
+ * @see https://tailwindcss.com/docs/border-color
2877
+ */
2878
+ "border-color-b": [{
2879
+ "border-b": E()
2880
+ }],
2881
+ /**
2882
+ * Border Color Left
2883
+ * @see https://tailwindcss.com/docs/border-color
2884
+ */
2885
+ "border-color-l": [{
2886
+ "border-l": E()
2887
+ }],
2888
+ /**
2889
+ * Divide Color
2890
+ * @see https://tailwindcss.com/docs/divide-color
2891
+ */
2892
+ "divide-color": [{
2893
+ divide: E()
2894
+ }],
2895
+ /**
2896
+ * Outline Style
2897
+ * @see https://tailwindcss.com/docs/outline-style
2898
+ */
2899
+ "outline-style": [{
2900
+ outline: [...oe(), "none", "hidden"]
2901
+ }],
2902
+ /**
2903
+ * Outline Offset
2904
+ * @see https://tailwindcss.com/docs/outline-offset
2905
+ */
2906
+ "outline-offset": [{
2907
+ "outline-offset": [A, k, v]
2908
+ }],
2909
+ /**
2910
+ * Outline Width
2911
+ * @see https://tailwindcss.com/docs/outline-width
2912
+ */
2913
+ "outline-w": [{
2914
+ outline: ["", A, ve, pe]
2915
+ }],
2916
+ /**
2917
+ * Outline Color
2918
+ * @see https://tailwindcss.com/docs/outline-color
2919
+ */
2920
+ "outline-color": [{
2921
+ outline: E()
2922
+ }],
2923
+ // ---------------
2924
+ // --- Effects ---
2925
+ // ---------------
2926
+ /**
2927
+ * Box Shadow
2928
+ * @see https://tailwindcss.com/docs/box-shadow
2929
+ */
2930
+ shadow: [{
2931
+ shadow: [
2932
+ // Deprecated since Tailwind CSS v4.0.0
2933
+ "",
2934
+ "none",
2935
+ m,
2936
+ Te,
2937
+ ze
2938
+ ]
2939
+ }],
2940
+ /**
2941
+ * Box Shadow Color
2942
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color
2943
+ */
2944
+ "shadow-color": [{
2945
+ shadow: E()
2946
+ }],
2947
+ /**
2948
+ * Inset Box Shadow
2949
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow
2950
+ */
2951
+ "inset-shadow": [{
2952
+ "inset-shadow": ["none", u, Te, ze]
2953
+ }],
2954
+ /**
2955
+ * Inset Box Shadow Color
2956
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color
2957
+ */
2958
+ "inset-shadow-color": [{
2959
+ "inset-shadow": E()
2960
+ }],
2961
+ /**
2962
+ * Ring Width
2963
+ * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring
2964
+ */
2965
+ "ring-w": [{
2966
+ ring: F()
2967
+ }],
2968
+ /**
2969
+ * Ring Width Inset
2970
+ * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings
2971
+ * @deprecated since Tailwind CSS v4.0.0
2972
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2973
+ */
2974
+ "ring-w-inset": ["ring-inset"],
2975
+ /**
2976
+ * Ring Color
2977
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color
2978
+ */
2979
+ "ring-color": [{
2980
+ ring: E()
2981
+ }],
2982
+ /**
2983
+ * Ring Offset Width
2984
+ * @see https://v3.tailwindcss.com/docs/ring-offset-width
2985
+ * @deprecated since Tailwind CSS v4.0.0
2986
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2987
+ */
2988
+ "ring-offset-w": [{
2989
+ "ring-offset": [A, pe]
2990
+ }],
2991
+ /**
2992
+ * Ring Offset Color
2993
+ * @see https://v3.tailwindcss.com/docs/ring-offset-color
2994
+ * @deprecated since Tailwind CSS v4.0.0
2995
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2996
+ */
2997
+ "ring-offset-color": [{
2998
+ "ring-offset": E()
2999
+ }],
3000
+ /**
3001
+ * Inset Ring Width
3002
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring
3003
+ */
3004
+ "inset-ring-w": [{
3005
+ "inset-ring": F()
3006
+ }],
3007
+ /**
3008
+ * Inset Ring Color
3009
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color
3010
+ */
3011
+ "inset-ring-color": [{
3012
+ "inset-ring": E()
3013
+ }],
3014
+ /**
3015
+ * Text Shadow
3016
+ * @see https://tailwindcss.com/docs/text-shadow
3017
+ */
3018
+ "text-shadow": [{
3019
+ "text-shadow": ["none", g, Te, ze]
3020
+ }],
3021
+ /**
3022
+ * Text Shadow Color
3023
+ * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color
3024
+ */
3025
+ "text-shadow-color": [{
3026
+ "text-shadow": E()
3027
+ }],
3028
+ /**
3029
+ * Opacity
3030
+ * @see https://tailwindcss.com/docs/opacity
3031
+ */
3032
+ opacity: [{
3033
+ opacity: [A, k, v]
3034
+ }],
3035
+ /**
3036
+ * Mix Blend Mode
3037
+ * @see https://tailwindcss.com/docs/mix-blend-mode
3038
+ */
3039
+ "mix-blend": [{
3040
+ "mix-blend": [...le(), "plus-darker", "plus-lighter"]
3041
+ }],
3042
+ /**
3043
+ * Background Blend Mode
3044
+ * @see https://tailwindcss.com/docs/background-blend-mode
3045
+ */
3046
+ "bg-blend": [{
3047
+ "bg-blend": le()
3048
+ }],
3049
+ /**
3050
+ * Mask Clip
3051
+ * @see https://tailwindcss.com/docs/mask-clip
3052
+ */
3053
+ "mask-clip": [{
3054
+ "mask-clip": ["border", "padding", "content", "fill", "stroke", "view"]
3055
+ }, "mask-no-clip"],
3056
+ /**
3057
+ * Mask Composite
3058
+ * @see https://tailwindcss.com/docs/mask-composite
3059
+ */
3060
+ "mask-composite": [{
3061
+ mask: ["add", "subtract", "intersect", "exclude"]
3062
+ }],
3063
+ /**
3064
+ * Mask Image
3065
+ * @see https://tailwindcss.com/docs/mask-image
3066
+ */
3067
+ "mask-image-linear-pos": [{
3068
+ "mask-linear": [A]
3069
+ }],
3070
+ "mask-image-linear-from-pos": [{
3071
+ "mask-linear-from": z()
3072
+ }],
3073
+ "mask-image-linear-to-pos": [{
3074
+ "mask-linear-to": z()
3075
+ }],
3076
+ "mask-image-linear-from-color": [{
3077
+ "mask-linear-from": E()
3078
+ }],
3079
+ "mask-image-linear-to-color": [{
3080
+ "mask-linear-to": E()
3081
+ }],
3082
+ "mask-image-t-from-pos": [{
3083
+ "mask-t-from": z()
3084
+ }],
3085
+ "mask-image-t-to-pos": [{
3086
+ "mask-t-to": z()
3087
+ }],
3088
+ "mask-image-t-from-color": [{
3089
+ "mask-t-from": E()
3090
+ }],
3091
+ "mask-image-t-to-color": [{
3092
+ "mask-t-to": E()
3093
+ }],
3094
+ "mask-image-r-from-pos": [{
3095
+ "mask-r-from": z()
3096
+ }],
3097
+ "mask-image-r-to-pos": [{
3098
+ "mask-r-to": z()
3099
+ }],
3100
+ "mask-image-r-from-color": [{
3101
+ "mask-r-from": E()
3102
+ }],
3103
+ "mask-image-r-to-color": [{
3104
+ "mask-r-to": E()
3105
+ }],
3106
+ "mask-image-b-from-pos": [{
3107
+ "mask-b-from": z()
3108
+ }],
3109
+ "mask-image-b-to-pos": [{
3110
+ "mask-b-to": z()
3111
+ }],
3112
+ "mask-image-b-from-color": [{
3113
+ "mask-b-from": E()
3114
+ }],
3115
+ "mask-image-b-to-color": [{
3116
+ "mask-b-to": E()
3117
+ }],
3118
+ "mask-image-l-from-pos": [{
3119
+ "mask-l-from": z()
3120
+ }],
3121
+ "mask-image-l-to-pos": [{
3122
+ "mask-l-to": z()
3123
+ }],
3124
+ "mask-image-l-from-color": [{
3125
+ "mask-l-from": E()
3126
+ }],
3127
+ "mask-image-l-to-color": [{
3128
+ "mask-l-to": E()
3129
+ }],
3130
+ "mask-image-x-from-pos": [{
3131
+ "mask-x-from": z()
3132
+ }],
3133
+ "mask-image-x-to-pos": [{
3134
+ "mask-x-to": z()
3135
+ }],
3136
+ "mask-image-x-from-color": [{
3137
+ "mask-x-from": E()
3138
+ }],
3139
+ "mask-image-x-to-color": [{
3140
+ "mask-x-to": E()
3141
+ }],
3142
+ "mask-image-y-from-pos": [{
3143
+ "mask-y-from": z()
3144
+ }],
3145
+ "mask-image-y-to-pos": [{
3146
+ "mask-y-to": z()
3147
+ }],
3148
+ "mask-image-y-from-color": [{
3149
+ "mask-y-from": E()
3150
+ }],
3151
+ "mask-image-y-to-color": [{
3152
+ "mask-y-to": E()
3153
+ }],
3154
+ "mask-image-radial": [{
3155
+ "mask-radial": [k, v]
3156
+ }],
3157
+ "mask-image-radial-from-pos": [{
3158
+ "mask-radial-from": z()
3159
+ }],
3160
+ "mask-image-radial-to-pos": [{
3161
+ "mask-radial-to": z()
3162
+ }],
3163
+ "mask-image-radial-from-color": [{
3164
+ "mask-radial-from": E()
3165
+ }],
3166
+ "mask-image-radial-to-color": [{
3167
+ "mask-radial-to": E()
3168
+ }],
3169
+ "mask-image-radial-shape": [{
3170
+ "mask-radial": ["circle", "ellipse"]
3171
+ }],
3172
+ "mask-image-radial-size": [{
3173
+ "mask-radial": [{
3174
+ closest: ["side", "corner"],
3175
+ farthest: ["side", "corner"]
3176
+ }]
3177
+ }],
3178
+ "mask-image-radial-pos": [{
3179
+ "mask-radial-at": C()
3180
+ }],
3181
+ "mask-image-conic-pos": [{
3182
+ "mask-conic": [A]
3183
+ }],
3184
+ "mask-image-conic-from-pos": [{
3185
+ "mask-conic-from": z()
3186
+ }],
3187
+ "mask-image-conic-to-pos": [{
3188
+ "mask-conic-to": z()
3189
+ }],
3190
+ "mask-image-conic-from-color": [{
3191
+ "mask-conic-from": E()
3192
+ }],
3193
+ "mask-image-conic-to-color": [{
3194
+ "mask-conic-to": E()
3195
+ }],
3196
+ /**
3197
+ * Mask Mode
3198
+ * @see https://tailwindcss.com/docs/mask-mode
3199
+ */
3200
+ "mask-mode": [{
3201
+ mask: ["alpha", "luminance", "match"]
3202
+ }],
3203
+ /**
3204
+ * Mask Origin
3205
+ * @see https://tailwindcss.com/docs/mask-origin
3206
+ */
3207
+ "mask-origin": [{
3208
+ "mask-origin": ["border", "padding", "content", "fill", "stroke", "view"]
3209
+ }],
3210
+ /**
3211
+ * Mask Position
3212
+ * @see https://tailwindcss.com/docs/mask-position
3213
+ */
3214
+ "mask-position": [{
3215
+ mask: te()
3216
+ }],
3217
+ /**
3218
+ * Mask Repeat
3219
+ * @see https://tailwindcss.com/docs/mask-repeat
3220
+ */
3221
+ "mask-repeat": [{
3222
+ mask: ce()
3223
+ }],
3224
+ /**
3225
+ * Mask Size
3226
+ * @see https://tailwindcss.com/docs/mask-size
3227
+ */
3228
+ "mask-size": [{
3229
+ mask: Y()
3230
+ }],
3231
+ /**
3232
+ * Mask Type
3233
+ * @see https://tailwindcss.com/docs/mask-type
3234
+ */
3235
+ "mask-type": [{
3236
+ "mask-type": ["alpha", "luminance"]
3237
+ }],
3238
+ /**
3239
+ * Mask Image
3240
+ * @see https://tailwindcss.com/docs/mask-image
3241
+ */
3242
+ "mask-image": [{
3243
+ mask: ["none", k, v]
3244
+ }],
3245
+ // ---------------
3246
+ // --- Filters ---
3247
+ // ---------------
3248
+ /**
3249
+ * Filter
3250
+ * @see https://tailwindcss.com/docs/filter
3251
+ */
3252
+ filter: [{
3253
+ filter: [
3254
+ // Deprecated since Tailwind CSS v3.0.0
3255
+ "",
3256
+ "none",
3257
+ k,
3258
+ v
3259
+ ]
3260
+ }],
3261
+ /**
3262
+ * Blur
3263
+ * @see https://tailwindcss.com/docs/blur
3264
+ */
3265
+ blur: [{
3266
+ blur: $()
3267
+ }],
3268
+ /**
3269
+ * Brightness
3270
+ * @see https://tailwindcss.com/docs/brightness
3271
+ */
3272
+ brightness: [{
3273
+ brightness: [A, k, v]
3274
+ }],
3275
+ /**
3276
+ * Contrast
3277
+ * @see https://tailwindcss.com/docs/contrast
3278
+ */
3279
+ contrast: [{
3280
+ contrast: [A, k, v]
3281
+ }],
3282
+ /**
3283
+ * Drop Shadow
3284
+ * @see https://tailwindcss.com/docs/drop-shadow
3285
+ */
3286
+ "drop-shadow": [{
3287
+ "drop-shadow": [
3288
+ // Deprecated since Tailwind CSS v4.0.0
3289
+ "",
3290
+ "none",
3291
+ w,
3292
+ Te,
3293
+ ze
3294
+ ]
3295
+ }],
3296
+ /**
3297
+ * Drop Shadow Color
3298
+ * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color
3299
+ */
3300
+ "drop-shadow-color": [{
3301
+ "drop-shadow": E()
3302
+ }],
3303
+ /**
3304
+ * Grayscale
3305
+ * @see https://tailwindcss.com/docs/grayscale
3306
+ */
3307
+ grayscale: [{
3308
+ grayscale: ["", A, k, v]
3309
+ }],
3310
+ /**
3311
+ * Hue Rotate
3312
+ * @see https://tailwindcss.com/docs/hue-rotate
3313
+ */
3314
+ "hue-rotate": [{
3315
+ "hue-rotate": [A, k, v]
3316
+ }],
3317
+ /**
3318
+ * Invert
3319
+ * @see https://tailwindcss.com/docs/invert
3320
+ */
3321
+ invert: [{
3322
+ invert: ["", A, k, v]
3323
+ }],
3324
+ /**
3325
+ * Saturate
3326
+ * @see https://tailwindcss.com/docs/saturate
3327
+ */
3328
+ saturate: [{
3329
+ saturate: [A, k, v]
3330
+ }],
3331
+ /**
3332
+ * Sepia
3333
+ * @see https://tailwindcss.com/docs/sepia
3334
+ */
3335
+ sepia: [{
3336
+ sepia: ["", A, k, v]
3337
+ }],
3338
+ /**
3339
+ * Backdrop Filter
3340
+ * @see https://tailwindcss.com/docs/backdrop-filter
3341
+ */
3342
+ "backdrop-filter": [{
3343
+ "backdrop-filter": [
3344
+ // Deprecated since Tailwind CSS v3.0.0
3345
+ "",
3346
+ "none",
3347
+ k,
3348
+ v
3349
+ ]
3350
+ }],
3351
+ /**
3352
+ * Backdrop Blur
3353
+ * @see https://tailwindcss.com/docs/backdrop-blur
3354
+ */
3355
+ "backdrop-blur": [{
3356
+ "backdrop-blur": $()
3357
+ }],
3358
+ /**
3359
+ * Backdrop Brightness
3360
+ * @see https://tailwindcss.com/docs/backdrop-brightness
3361
+ */
3362
+ "backdrop-brightness": [{
3363
+ "backdrop-brightness": [A, k, v]
3364
+ }],
3365
+ /**
3366
+ * Backdrop Contrast
3367
+ * @see https://tailwindcss.com/docs/backdrop-contrast
3368
+ */
3369
+ "backdrop-contrast": [{
3370
+ "backdrop-contrast": [A, k, v]
3371
+ }],
3372
+ /**
3373
+ * Backdrop Grayscale
3374
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
3375
+ */
3376
+ "backdrop-grayscale": [{
3377
+ "backdrop-grayscale": ["", A, k, v]
3378
+ }],
3379
+ /**
3380
+ * Backdrop Hue Rotate
3381
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
3382
+ */
3383
+ "backdrop-hue-rotate": [{
3384
+ "backdrop-hue-rotate": [A, k, v]
3385
+ }],
3386
+ /**
3387
+ * Backdrop Invert
3388
+ * @see https://tailwindcss.com/docs/backdrop-invert
3389
+ */
3390
+ "backdrop-invert": [{
3391
+ "backdrop-invert": ["", A, k, v]
3392
+ }],
3393
+ /**
3394
+ * Backdrop Opacity
3395
+ * @see https://tailwindcss.com/docs/backdrop-opacity
3396
+ */
3397
+ "backdrop-opacity": [{
3398
+ "backdrop-opacity": [A, k, v]
3399
+ }],
3400
+ /**
3401
+ * Backdrop Saturate
3402
+ * @see https://tailwindcss.com/docs/backdrop-saturate
3403
+ */
3404
+ "backdrop-saturate": [{
3405
+ "backdrop-saturate": [A, k, v]
3406
+ }],
3407
+ /**
3408
+ * Backdrop Sepia
3409
+ * @see https://tailwindcss.com/docs/backdrop-sepia
3410
+ */
3411
+ "backdrop-sepia": [{
3412
+ "backdrop-sepia": ["", A, k, v]
3413
+ }],
3414
+ // --------------
3415
+ // --- Tables ---
3416
+ // --------------
3417
+ /**
3418
+ * Border Collapse
3419
+ * @see https://tailwindcss.com/docs/border-collapse
3420
+ */
3421
+ "border-collapse": [{
3422
+ border: ["collapse", "separate"]
3423
+ }],
3424
+ /**
3425
+ * Border Spacing
3426
+ * @see https://tailwindcss.com/docs/border-spacing
3427
+ */
3428
+ "border-spacing": [{
3429
+ "border-spacing": y()
3430
+ }],
3431
+ /**
3432
+ * Border Spacing X
3433
+ * @see https://tailwindcss.com/docs/border-spacing
3434
+ */
3435
+ "border-spacing-x": [{
3436
+ "border-spacing-x": y()
3437
+ }],
3438
+ /**
3439
+ * Border Spacing Y
3440
+ * @see https://tailwindcss.com/docs/border-spacing
3441
+ */
3442
+ "border-spacing-y": [{
3443
+ "border-spacing-y": y()
3444
+ }],
3445
+ /**
3446
+ * Table Layout
3447
+ * @see https://tailwindcss.com/docs/table-layout
3448
+ */
3449
+ "table-layout": [{
3450
+ table: ["auto", "fixed"]
3451
+ }],
3452
+ /**
3453
+ * Caption Side
3454
+ * @see https://tailwindcss.com/docs/caption-side
3455
+ */
3456
+ caption: [{
3457
+ caption: ["top", "bottom"]
3458
+ }],
3459
+ // ---------------------------------
3460
+ // --- Transitions and Animation ---
3461
+ // ---------------------------------
3462
+ /**
3463
+ * Transition Property
3464
+ * @see https://tailwindcss.com/docs/transition-property
3465
+ */
3466
+ transition: [{
3467
+ transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", k, v]
3468
+ }],
3469
+ /**
3470
+ * Transition Behavior
3471
+ * @see https://tailwindcss.com/docs/transition-behavior
3472
+ */
3473
+ "transition-behavior": [{
3474
+ transition: ["normal", "discrete"]
3475
+ }],
3476
+ /**
3477
+ * Transition Duration
3478
+ * @see https://tailwindcss.com/docs/transition-duration
3479
+ */
3480
+ duration: [{
3481
+ duration: [A, "initial", k, v]
3482
+ }],
3483
+ /**
3484
+ * Transition Timing Function
3485
+ * @see https://tailwindcss.com/docs/transition-timing-function
3486
+ */
3487
+ ease: [{
3488
+ ease: ["linear", "initial", f, k, v]
3489
+ }],
3490
+ /**
3491
+ * Transition Delay
3492
+ * @see https://tailwindcss.com/docs/transition-delay
3493
+ */
3494
+ delay: [{
3495
+ delay: [A, k, v]
3496
+ }],
3497
+ /**
3498
+ * Animation
3499
+ * @see https://tailwindcss.com/docs/animation
3500
+ */
3501
+ animate: [{
3502
+ animate: ["none", h, k, v]
3503
+ }],
3504
+ // ------------------
3505
+ // --- Transforms ---
3506
+ // ------------------
3507
+ /**
3508
+ * Backface Visibility
3509
+ * @see https://tailwindcss.com/docs/backface-visibility
3510
+ */
3511
+ backface: [{
3512
+ backface: ["hidden", "visible"]
3513
+ }],
3514
+ /**
3515
+ * Perspective
3516
+ * @see https://tailwindcss.com/docs/perspective
3517
+ */
3518
+ perspective: [{
3519
+ perspective: [p, k, v]
3520
+ }],
3521
+ /**
3522
+ * Perspective Origin
3523
+ * @see https://tailwindcss.com/docs/perspective-origin
3524
+ */
3525
+ "perspective-origin": [{
3526
+ "perspective-origin": I()
3527
+ }],
3528
+ /**
3529
+ * Rotate
3530
+ * @see https://tailwindcss.com/docs/rotate
3531
+ */
3532
+ rotate: [{
3533
+ rotate: J()
3534
+ }],
3535
+ /**
3536
+ * Rotate X
3537
+ * @see https://tailwindcss.com/docs/rotate
3538
+ */
3539
+ "rotate-x": [{
3540
+ "rotate-x": J()
3541
+ }],
3542
+ /**
3543
+ * Rotate Y
3544
+ * @see https://tailwindcss.com/docs/rotate
3545
+ */
3546
+ "rotate-y": [{
3547
+ "rotate-y": J()
3548
+ }],
3549
+ /**
3550
+ * Rotate Z
3551
+ * @see https://tailwindcss.com/docs/rotate
3552
+ */
3553
+ "rotate-z": [{
3554
+ "rotate-z": J()
3555
+ }],
3556
+ /**
3557
+ * Scale
3558
+ * @see https://tailwindcss.com/docs/scale
3559
+ */
3560
+ scale: [{
3561
+ scale: U()
3562
+ }],
3563
+ /**
3564
+ * Scale X
3565
+ * @see https://tailwindcss.com/docs/scale
3566
+ */
3567
+ "scale-x": [{
3568
+ "scale-x": U()
3569
+ }],
3570
+ /**
3571
+ * Scale Y
3572
+ * @see https://tailwindcss.com/docs/scale
3573
+ */
3574
+ "scale-y": [{
3575
+ "scale-y": U()
3576
+ }],
3577
+ /**
3578
+ * Scale Z
3579
+ * @see https://tailwindcss.com/docs/scale
3580
+ */
3581
+ "scale-z": [{
3582
+ "scale-z": U()
3583
+ }],
3584
+ /**
3585
+ * Scale 3D
3586
+ * @see https://tailwindcss.com/docs/scale
3587
+ */
3588
+ "scale-3d": ["scale-3d"],
3589
+ /**
3590
+ * Skew
3591
+ * @see https://tailwindcss.com/docs/skew
3592
+ */
3593
+ skew: [{
3594
+ skew: N()
3595
+ }],
3596
+ /**
3597
+ * Skew X
3598
+ * @see https://tailwindcss.com/docs/skew
3599
+ */
3600
+ "skew-x": [{
3601
+ "skew-x": N()
3602
+ }],
3603
+ /**
3604
+ * Skew Y
3605
+ * @see https://tailwindcss.com/docs/skew
3606
+ */
3607
+ "skew-y": [{
3608
+ "skew-y": N()
3609
+ }],
3610
+ /**
3611
+ * Transform
3612
+ * @see https://tailwindcss.com/docs/transform
3613
+ */
3614
+ transform: [{
3615
+ transform: [k, v, "", "none", "gpu", "cpu"]
3616
+ }],
3617
+ /**
3618
+ * Transform Origin
3619
+ * @see https://tailwindcss.com/docs/transform-origin
3620
+ */
3621
+ "transform-origin": [{
3622
+ origin: I()
3623
+ }],
3624
+ /**
3625
+ * Transform Style
3626
+ * @see https://tailwindcss.com/docs/transform-style
3627
+ */
3628
+ "transform-style": [{
3629
+ transform: ["3d", "flat"]
3630
+ }],
3631
+ /**
3632
+ * Translate
3633
+ * @see https://tailwindcss.com/docs/translate
3634
+ */
3635
+ translate: [{
3636
+ translate: S()
3637
+ }],
3638
+ /**
3639
+ * Translate X
3640
+ * @see https://tailwindcss.com/docs/translate
3641
+ */
3642
+ "translate-x": [{
3643
+ "translate-x": S()
3644
+ }],
3645
+ /**
3646
+ * Translate Y
3647
+ * @see https://tailwindcss.com/docs/translate
3648
+ */
3649
+ "translate-y": [{
3650
+ "translate-y": S()
3651
+ }],
3652
+ /**
3653
+ * Translate Z
3654
+ * @see https://tailwindcss.com/docs/translate
3655
+ */
3656
+ "translate-z": [{
3657
+ "translate-z": S()
3658
+ }],
3659
+ /**
3660
+ * Translate None
3661
+ * @see https://tailwindcss.com/docs/translate
3662
+ */
3663
+ "translate-none": ["translate-none"],
3664
+ // ---------------------
3665
+ // --- Interactivity ---
3666
+ // ---------------------
3667
+ /**
3668
+ * Accent Color
3669
+ * @see https://tailwindcss.com/docs/accent-color
3670
+ */
3671
+ accent: [{
3672
+ accent: E()
3673
+ }],
3674
+ /**
3675
+ * Appearance
3676
+ * @see https://tailwindcss.com/docs/appearance
3677
+ */
3678
+ appearance: [{
3679
+ appearance: ["none", "auto"]
3680
+ }],
3681
+ /**
3682
+ * Caret Color
3683
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
3684
+ */
3685
+ "caret-color": [{
3686
+ caret: E()
3687
+ }],
3688
+ /**
3689
+ * Color Scheme
3690
+ * @see https://tailwindcss.com/docs/color-scheme
3691
+ */
3692
+ "color-scheme": [{
3693
+ scheme: ["normal", "dark", "light", "light-dark", "only-dark", "only-light"]
3694
+ }],
3695
+ /**
3696
+ * Cursor
3697
+ * @see https://tailwindcss.com/docs/cursor
3698
+ */
3699
+ cursor: [{
3700
+ cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", k, v]
3701
+ }],
3702
+ /**
3703
+ * Field Sizing
3704
+ * @see https://tailwindcss.com/docs/field-sizing
3705
+ */
3706
+ "field-sizing": [{
3707
+ "field-sizing": ["fixed", "content"]
3708
+ }],
3709
+ /**
3710
+ * Pointer Events
3711
+ * @see https://tailwindcss.com/docs/pointer-events
3712
+ */
3713
+ "pointer-events": [{
3714
+ "pointer-events": ["auto", "none"]
3715
+ }],
3716
+ /**
3717
+ * Resize
3718
+ * @see https://tailwindcss.com/docs/resize
3719
+ */
3720
+ resize: [{
3721
+ resize: ["none", "", "y", "x"]
3722
+ }],
3723
+ /**
3724
+ * Scroll Behavior
3725
+ * @see https://tailwindcss.com/docs/scroll-behavior
3726
+ */
3727
+ "scroll-behavior": [{
3728
+ scroll: ["auto", "smooth"]
3729
+ }],
3730
+ /**
3731
+ * Scroll Margin
3732
+ * @see https://tailwindcss.com/docs/scroll-margin
3733
+ */
3734
+ "scroll-m": [{
3735
+ "scroll-m": y()
3736
+ }],
3737
+ /**
3738
+ * Scroll Margin X
3739
+ * @see https://tailwindcss.com/docs/scroll-margin
3740
+ */
3741
+ "scroll-mx": [{
3742
+ "scroll-mx": y()
3743
+ }],
3744
+ /**
3745
+ * Scroll Margin Y
3746
+ * @see https://tailwindcss.com/docs/scroll-margin
3747
+ */
3748
+ "scroll-my": [{
3749
+ "scroll-my": y()
3750
+ }],
3751
+ /**
3752
+ * Scroll Margin Start
3753
+ * @see https://tailwindcss.com/docs/scroll-margin
3754
+ */
3755
+ "scroll-ms": [{
3756
+ "scroll-ms": y()
3757
+ }],
3758
+ /**
3759
+ * Scroll Margin End
3760
+ * @see https://tailwindcss.com/docs/scroll-margin
3761
+ */
3762
+ "scroll-me": [{
3763
+ "scroll-me": y()
3764
+ }],
3765
+ /**
3766
+ * Scroll Margin Top
3767
+ * @see https://tailwindcss.com/docs/scroll-margin
3768
+ */
3769
+ "scroll-mt": [{
3770
+ "scroll-mt": y()
3771
+ }],
3772
+ /**
3773
+ * Scroll Margin Right
3774
+ * @see https://tailwindcss.com/docs/scroll-margin
3775
+ */
3776
+ "scroll-mr": [{
3777
+ "scroll-mr": y()
3778
+ }],
3779
+ /**
3780
+ * Scroll Margin Bottom
3781
+ * @see https://tailwindcss.com/docs/scroll-margin
3782
+ */
3783
+ "scroll-mb": [{
3784
+ "scroll-mb": y()
3785
+ }],
3786
+ /**
3787
+ * Scroll Margin Left
3788
+ * @see https://tailwindcss.com/docs/scroll-margin
3789
+ */
3790
+ "scroll-ml": [{
3791
+ "scroll-ml": y()
3792
+ }],
3793
+ /**
3794
+ * Scroll Padding
3795
+ * @see https://tailwindcss.com/docs/scroll-padding
3796
+ */
3797
+ "scroll-p": [{
3798
+ "scroll-p": y()
3799
+ }],
3800
+ /**
3801
+ * Scroll Padding X
3802
+ * @see https://tailwindcss.com/docs/scroll-padding
3803
+ */
3804
+ "scroll-px": [{
3805
+ "scroll-px": y()
3806
+ }],
3807
+ /**
3808
+ * Scroll Padding Y
3809
+ * @see https://tailwindcss.com/docs/scroll-padding
3810
+ */
3811
+ "scroll-py": [{
3812
+ "scroll-py": y()
3813
+ }],
3814
+ /**
3815
+ * Scroll Padding Start
3816
+ * @see https://tailwindcss.com/docs/scroll-padding
3817
+ */
3818
+ "scroll-ps": [{
3819
+ "scroll-ps": y()
3820
+ }],
3821
+ /**
3822
+ * Scroll Padding End
3823
+ * @see https://tailwindcss.com/docs/scroll-padding
3824
+ */
3825
+ "scroll-pe": [{
3826
+ "scroll-pe": y()
3827
+ }],
3828
+ /**
3829
+ * Scroll Padding Top
3830
+ * @see https://tailwindcss.com/docs/scroll-padding
3831
+ */
3832
+ "scroll-pt": [{
3833
+ "scroll-pt": y()
3834
+ }],
3835
+ /**
3836
+ * Scroll Padding Right
3837
+ * @see https://tailwindcss.com/docs/scroll-padding
3838
+ */
3839
+ "scroll-pr": [{
3840
+ "scroll-pr": y()
3841
+ }],
3842
+ /**
3843
+ * Scroll Padding Bottom
3844
+ * @see https://tailwindcss.com/docs/scroll-padding
3845
+ */
3846
+ "scroll-pb": [{
3847
+ "scroll-pb": y()
3848
+ }],
3849
+ /**
3850
+ * Scroll Padding Left
3851
+ * @see https://tailwindcss.com/docs/scroll-padding
3852
+ */
3853
+ "scroll-pl": [{
3854
+ "scroll-pl": y()
3855
+ }],
3856
+ /**
3857
+ * Scroll Snap Align
3858
+ * @see https://tailwindcss.com/docs/scroll-snap-align
3859
+ */
3860
+ "snap-align": [{
3861
+ snap: ["start", "end", "center", "align-none"]
3862
+ }],
3863
+ /**
3864
+ * Scroll Snap Stop
3865
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
3866
+ */
3867
+ "snap-stop": [{
3868
+ snap: ["normal", "always"]
3869
+ }],
3870
+ /**
3871
+ * Scroll Snap Type
3872
+ * @see https://tailwindcss.com/docs/scroll-snap-type
3873
+ */
3874
+ "snap-type": [{
3875
+ snap: ["none", "x", "y", "both"]
3876
+ }],
3877
+ /**
3878
+ * Scroll Snap Type Strictness
3879
+ * @see https://tailwindcss.com/docs/scroll-snap-type
3880
+ */
3881
+ "snap-strictness": [{
3882
+ snap: ["mandatory", "proximity"]
3883
+ }],
3884
+ /**
3885
+ * Touch Action
3886
+ * @see https://tailwindcss.com/docs/touch-action
3887
+ */
3888
+ touch: [{
3889
+ touch: ["auto", "none", "manipulation"]
3890
+ }],
3891
+ /**
3892
+ * Touch Action X
3893
+ * @see https://tailwindcss.com/docs/touch-action
3894
+ */
3895
+ "touch-x": [{
3896
+ "touch-pan": ["x", "left", "right"]
3897
+ }],
3898
+ /**
3899
+ * Touch Action Y
3900
+ * @see https://tailwindcss.com/docs/touch-action
3901
+ */
3902
+ "touch-y": [{
3903
+ "touch-pan": ["y", "up", "down"]
3904
+ }],
3905
+ /**
3906
+ * Touch Action Pinch Zoom
3907
+ * @see https://tailwindcss.com/docs/touch-action
3908
+ */
3909
+ "touch-pz": ["touch-pinch-zoom"],
3910
+ /**
3911
+ * User Select
3912
+ * @see https://tailwindcss.com/docs/user-select
3913
+ */
3914
+ select: [{
3915
+ select: ["none", "text", "all", "auto"]
3916
+ }],
3917
+ /**
3918
+ * Will Change
3919
+ * @see https://tailwindcss.com/docs/will-change
3920
+ */
3921
+ "will-change": [{
3922
+ "will-change": ["auto", "scroll", "contents", "transform", k, v]
3923
+ }],
3924
+ // -----------
3925
+ // --- SVG ---
3926
+ // -----------
3927
+ /**
3928
+ * Fill
3929
+ * @see https://tailwindcss.com/docs/fill
3930
+ */
3931
+ fill: [{
3932
+ fill: ["none", ...E()]
3933
+ }],
3934
+ /**
3935
+ * Stroke Width
3936
+ * @see https://tailwindcss.com/docs/stroke-width
3937
+ */
3938
+ "stroke-w": [{
3939
+ stroke: [A, ve, pe, _e]
3940
+ }],
3941
+ /**
3942
+ * Stroke
3943
+ * @see https://tailwindcss.com/docs/stroke
3944
+ */
3945
+ stroke: [{
3946
+ stroke: ["none", ...E()]
3947
+ }],
3948
+ // ---------------------
3949
+ // --- Accessibility ---
3950
+ // ---------------------
3951
+ /**
3952
+ * Forced Color Adjust
3953
+ * @see https://tailwindcss.com/docs/forced-color-adjust
3954
+ */
3955
+ "forced-color-adjust": [{
3956
+ "forced-color-adjust": ["auto", "none"]
3957
+ }]
3958
+ },
3959
+ conflictingClassGroups: {
3960
+ overflow: ["overflow-x", "overflow-y"],
3961
+ overscroll: ["overscroll-x", "overscroll-y"],
3962
+ inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
3963
+ "inset-x": ["right", "left"],
3964
+ "inset-y": ["top", "bottom"],
3965
+ flex: ["basis", "grow", "shrink"],
3966
+ gap: ["gap-x", "gap-y"],
3967
+ p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
3968
+ px: ["pr", "pl"],
3969
+ py: ["pt", "pb"],
3970
+ m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
3971
+ mx: ["mr", "ml"],
3972
+ my: ["mt", "mb"],
3973
+ size: ["w", "h"],
3974
+ "font-size": ["leading"],
3975
+ "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
3976
+ "fvn-ordinal": ["fvn-normal"],
3977
+ "fvn-slashed-zero": ["fvn-normal"],
3978
+ "fvn-figure": ["fvn-normal"],
3979
+ "fvn-spacing": ["fvn-normal"],
3980
+ "fvn-fraction": ["fvn-normal"],
3981
+ "line-clamp": ["display", "overflow"],
3982
+ rounded: ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"],
3983
+ "rounded-s": ["rounded-ss", "rounded-es"],
3984
+ "rounded-e": ["rounded-se", "rounded-ee"],
3985
+ "rounded-t": ["rounded-tl", "rounded-tr"],
3986
+ "rounded-r": ["rounded-tr", "rounded-br"],
3987
+ "rounded-b": ["rounded-br", "rounded-bl"],
3988
+ "rounded-l": ["rounded-tl", "rounded-bl"],
3989
+ "border-spacing": ["border-spacing-x", "border-spacing-y"],
3990
+ "border-w": ["border-w-x", "border-w-y", "border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
3991
+ "border-w-x": ["border-w-r", "border-w-l"],
3992
+ "border-w-y": ["border-w-t", "border-w-b"],
3993
+ "border-color": ["border-color-x", "border-color-y", "border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
3994
+ "border-color-x": ["border-color-r", "border-color-l"],
3995
+ "border-color-y": ["border-color-t", "border-color-b"],
3996
+ translate: ["translate-x", "translate-y", "translate-none"],
3997
+ "translate-none": ["translate", "translate-x", "translate-y", "translate-z"],
3998
+ "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
3999
+ "scroll-mx": ["scroll-mr", "scroll-ml"],
4000
+ "scroll-my": ["scroll-mt", "scroll-mb"],
4001
+ "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
4002
+ "scroll-px": ["scroll-pr", "scroll-pl"],
4003
+ "scroll-py": ["scroll-pt", "scroll-pb"],
4004
+ touch: ["touch-x", "touch-y", "touch-pz"],
4005
+ "touch-x": ["touch"],
4006
+ "touch-y": ["touch"],
4007
+ "touch-pz": ["touch"]
4008
+ },
4009
+ conflictingClassGroupModifiers: {
4010
+ "font-size": ["leading"]
4011
+ },
4012
+ orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"]
4013
+ };
4014
+ }, pr = /* @__PURE__ */ Xn(mr);
4015
+ function ee(...e) {
4016
+ return pr(e.filter(Boolean).join(" "));
4017
+ }
4018
+ function gr(e, t, n = 10) {
4019
+ Ee(() => {
4020
+ if (!e) return;
4021
+ let r = 0, i = 0;
4022
+ const s = t === "rtl", o = (l) => {
4023
+ r = l.clientX, i = e.selectedScrollSnap();
4024
+ }, c = (l) => {
4025
+ const u = l.clientX - r, g = e.containerNode().getBoundingClientRect().width, w = Math.abs(u) / g * 100;
4026
+ requestAnimationFrame(() => {
4027
+ e.selectedScrollSnap() === i && (w >= n ? u < 0 && !s || u > 0 && s ? e.scrollNext() : e.scrollPrev() : e.scrollTo(i));
4028
+ });
4029
+ }, a = e.containerNode();
4030
+ return a.addEventListener("pointerdown", o), a.addEventListener("pointerup", c), () => {
4031
+ a.removeEventListener("pointerdown", o), a.removeEventListener("pointerup", c);
4032
+ };
4033
+ }, [e]);
4034
+ }
4035
+ const Dt = O.createContext(
4036
+ null
4037
+ );
4038
+ function nt() {
4039
+ const e = O.useContext(Dt);
4040
+ if (!e)
4041
+ throw new Error("useCarousel must be used within a <Carousel />");
4042
+ return e;
4043
+ }
4044
+ const br = O.forwardRef(
4045
+ ({
4046
+ orientation: e = "horizontal",
4047
+ opts: t,
4048
+ setApi: n,
4049
+ plugins: r,
4050
+ swipeThresholdPercentage: i,
4051
+ transitionDuration: s = 20,
4052
+ //default 400ms
4053
+ className: o,
4054
+ children: c,
4055
+ ...a
4056
+ }, l) => {
4057
+ const [m, u] = et(
4058
+ {
4059
+ ...t,
4060
+ axis: e === "horizontal" ? "x" : "y",
4061
+ duration: s
4062
+ },
4063
+ r
4064
+ );
4065
+ gr(u, t?.direction ?? "ltr", i);
4066
+ const [g, w] = O.useState(!1), [d, p] = O.useState(!1), b = O.useCallback((C) => {
4067
+ C && (w(C.canScrollPrev()), p(C.canScrollNext()));
4068
+ }, []), f = O.useCallback(() => {
4069
+ u?.scrollPrev();
4070
+ }, [u]), h = O.useCallback(() => {
4071
+ u?.scrollNext();
4072
+ }, [u]), x = O.useCallback(
4073
+ (C) => {
4074
+ C.key === "ArrowLeft" ? (C.preventDefault(), f()) : C.key === "ArrowRight" && (C.preventDefault(), h());
4075
+ },
4076
+ [f, h]
4077
+ );
4078
+ return O.useEffect(() => {
4079
+ !u || !n || n(u);
4080
+ }, [u, n]), O.useEffect(() => {
4081
+ if (u)
4082
+ return b(u), u.on("reInit", b), u.on("select", b), () => {
4083
+ u?.off("select", b);
4084
+ };
4085
+ }, [u, b]), /* @__PURE__ */ Q(
4086
+ Dt.Provider,
4087
+ {
4088
+ value: O.useMemo(
4089
+ () => ({
4090
+ carouselRef: m,
4091
+ api: u,
4092
+ opts: t,
4093
+ plugins: r,
4094
+ orientation: e || (t?.axis === "y" ? "vertical" : "horizontal"),
4095
+ scrollPrev: f,
4096
+ scrollNext: h,
4097
+ canScrollPrev: g,
4098
+ canScrollNext: d
4099
+ }),
4100
+ // eslint-disable-next-line react-hooks/exhaustive-deps
4101
+ [
4102
+ m,
4103
+ u,
4104
+ r,
4105
+ t,
4106
+ e,
4107
+ g,
4108
+ d
4109
+ ]
4110
+ ),
4111
+ children: /* @__PURE__ */ Q(
4112
+ "div",
4113
+ {
4114
+ ref: l,
4115
+ onKeyDownCapture: x,
4116
+ className: ee("relative group", o),
4117
+ "aria-roledescription": "carousel",
4118
+ ...a,
4119
+ children: c
4120
+ }
4121
+ )
4122
+ }
4123
+ );
4124
+ }
4125
+ );
4126
+ br.displayName = "Carousel";
4127
+ const hr = O.forwardRef(({ className: e, ...t }, n) => {
4128
+ const { carouselRef: r } = nt();
4129
+ return /* @__PURE__ */ Q("div", { ref: r, className: "overflow-hidden h-full", children: /* @__PURE__ */ Q(
4130
+ "div",
4131
+ {
4132
+ ref: n,
4133
+ className: ee("flex group", e),
4134
+ ...t
4135
+ }
4136
+ ) });
4137
+ });
4138
+ hr.displayName = "CarouselContent";
4139
+ const yr = O.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ Q(
4140
+ "div",
4141
+ {
4142
+ ref: n,
4143
+ "aria-roledescription": "slide",
4144
+ className: ee(
4145
+ "group min-w-0 shrink-0 grow-0 basis-full",
4146
+ e
4147
+ ),
4148
+ ...t
4149
+ }
4150
+ ));
4151
+ yr.displayName = "CarouselItem";
4152
+ const xr = O.forwardRef(({ className: e, iconClassName: t, autoplay: n, ...r }, i) => {
4153
+ const { scrollPrev: s, canScrollPrev: o } = nt();
4154
+ return /* @__PURE__ */ Q(
4155
+ "button",
4156
+ {
4157
+ ref: i,
4158
+ className: ee(
4159
+ "absolute outline-none items-center justify-center rounded-full hidden laptop:group-hover:flex laptop:group-hover:disabled:hidden p-2xsmall border-[0.5px] aspect-square top-1/2 custom-translate-y-1-2 start-small shadow-[0_1px_2px_0_#E0E3E8] flip-horizontal",
4160
+ e
4161
+ ),
4162
+ disabled: !o,
4163
+ onClick: () => {
4164
+ s(), n?.reset?.();
4165
+ },
4166
+ ...r,
4167
+ children: /* @__PURE__ */ Q(
4168
+ "img",
4169
+ {
4170
+ src: Rn,
4171
+ className: ee(
4172
+ "w-[30px] h-[30px] object-contain",
4173
+ t
4174
+ ),
4175
+ alt: "previous"
4176
+ }
4177
+ )
4178
+ }
4179
+ );
4180
+ });
4181
+ xr.displayName = "CarouselPrevious";
4182
+ const wr = O.forwardRef(({ className: e, iconClassName: t, autoplay: n, ...r }, i) => {
4183
+ const { scrollNext: s, canScrollNext: o } = nt();
4184
+ return /* @__PURE__ */ Q(
4185
+ "button",
4186
+ {
4187
+ ref: i,
4188
+ className: ee(
4189
+ "absolute outline-none items-center justify-center rounded-full hidden laptop:group-hover:flex laptop:group-hover:disabled:hidden p-2xsmall border-[0.5px] aspect-square top-1/2 custom-translate-y-1-2 end-small disabled:hidden shadow-[0_1px_2px_0_#E0E3E8] flip-horizontal",
4190
+ e
4191
+ ),
4192
+ disabled: !o,
4193
+ onClick: () => {
4194
+ s(), n?.reset?.();
4195
+ },
4196
+ ...r,
4197
+ children: /* @__PURE__ */ Q(
4198
+ "img",
4199
+ {
4200
+ src: Nn,
4201
+ className: ee(
4202
+ "w-[30px] h-[30px] object-contain",
4203
+ t
4204
+ ),
4205
+ alt: "next"
4206
+ }
4207
+ )
4208
+ }
4209
+ );
4210
+ });
4211
+ wr.displayName = "CarouselNext";
4212
+ const Mr = ({
4213
+ slidesCount: e,
4214
+ currentIndex: t,
4215
+ onClick: n,
4216
+ autoplay: r,
4217
+ delay: i = 4e3,
4218
+ isRtl: s = !1,
4219
+ showProgress: o = !0,
4220
+ containerClassName: c,
4221
+ buttonClassName: a,
4222
+ progressContainerClassName: l,
4223
+ progressBarClassName: m,
4224
+ dotClassName: u,
4225
+ activeDotClassName: g,
4226
+ inactiveDotClassName: w
4227
+ }) => {
4228
+ const [d, p] = O.useState(0), b = O.useRef(0), f = () => {
4229
+ const h = r?.timeUntilNext?.(), x = h && i > 0 ? 1 - h / i : 0;
4230
+ p(x), b.current = requestAnimationFrame(f);
4231
+ };
4232
+ return O.useEffect(() => {
4233
+ if (o)
4234
+ return b.current = requestAnimationFrame(f), () => {
4235
+ cancelAnimationFrame(b.current);
4236
+ };
4237
+ }, []), /* @__PURE__ */ Q(
4238
+ "div",
4239
+ {
4240
+ className: ee(
4241
+ "absolute bottom-small start-1/2 custom-translate-x-1-2 flex items-center justify-center gap-2xsmall",
4242
+ c
4243
+ ),
4244
+ children: Array.from({ length: e }, (h, x) => {
4245
+ const C = t === x, I = o && C;
4246
+ return /* @__PURE__ */ Q(
4247
+ "button",
4248
+ {
4249
+ onClick: () => n(x),
4250
+ className: ee(
4251
+ "relative rounded-full",
4252
+ a,
4253
+ I ? ee(
4254
+ "overflow-hidden h-1 w-12 bg-white/50",
4255
+ l
4256
+ ) : "grid place-items-center h-1 w-1"
4257
+ ),
4258
+ children: I ? /* @__PURE__ */ Q(
4259
+ "span",
4260
+ {
4261
+ className: ee(
4262
+ "absolute top-0 h-full rounded-full bg-white transition-[width] duration-[60ms] ease-linear",
4263
+ m,
4264
+ s ? "right-0 left-auto" : "left-0 right-auto"
4265
+ ),
4266
+ style: {
4267
+ width: `${d * 100 | 0}%`
4268
+ }
4269
+ }
4270
+ ) : /* @__PURE__ */ Q(
4271
+ "span",
4272
+ {
4273
+ className: ee(
4274
+ "h-1 w-1 rounded-full cursor-pointer",
4275
+ u,
4276
+ C ? g : w
4277
+ )
4278
+ }
4279
+ )
4280
+ },
4281
+ `dot-${x}`
4282
+ );
4283
+ })
4284
+ }
4285
+ );
4286
+ };
4287
+ var Ke = /* @__PURE__ */ new Map(), Ne = /* @__PURE__ */ new WeakMap(), kt = 0, vr = void 0;
4288
+ function kr(e) {
4289
+ return e ? (Ne.has(e) || (kt += 1, Ne.set(e, kt.toString())), Ne.get(e)) : "0";
4290
+ }
4291
+ function Sr(e) {
4292
+ return Object.keys(e).sort().filter(
4293
+ (t) => e[t] !== void 0
4294
+ ).map((t) => `${t}_${t === "root" ? kr(e.root) : e[t]}`).toString();
4295
+ }
4296
+ function Er(e) {
4297
+ const t = Sr(e);
4298
+ let n = Ke.get(t);
4299
+ if (!n) {
4300
+ const r = /* @__PURE__ */ new Map();
4301
+ let i;
4302
+ const s = new IntersectionObserver((o) => {
4303
+ o.forEach((c) => {
4304
+ var a;
4305
+ const l = c.isIntersecting && i.some((m) => c.intersectionRatio >= m);
4306
+ e.trackVisibility && typeof c.isVisible > "u" && (c.isVisible = l), (a = r.get(c.target)) == null || a.forEach((m) => {
4307
+ m(l, c);
4308
+ });
4309
+ });
4310
+ }, e);
4311
+ i = s.thresholds || (Array.isArray(e.threshold) ? e.threshold : [e.threshold || 0]), n = {
4312
+ id: t,
4313
+ observer: s,
4314
+ elements: r
4315
+ }, Ke.set(t, n);
4316
+ }
4317
+ return n;
4318
+ }
4319
+ function Cr(e, t, n = {}, r = vr) {
4320
+ if (typeof window.IntersectionObserver > "u" && r !== void 0) {
4321
+ const a = e.getBoundingClientRect();
4322
+ return t(r, {
4323
+ isIntersecting: r,
4324
+ target: e,
4325
+ intersectionRatio: typeof n.threshold == "number" ? n.threshold : 0,
4326
+ time: 0,
4327
+ boundingClientRect: a,
4328
+ intersectionRect: a,
4329
+ rootBounds: a
4330
+ }), () => {
4331
+ };
4332
+ }
4333
+ const { id: i, observer: s, elements: o } = Er(n), c = o.get(e) || [];
4334
+ return o.has(e) || o.set(e, c), c.push(t), s.observe(e), function() {
4335
+ c.splice(c.indexOf(t), 1), c.length === 0 && (o.delete(e), s.unobserve(e)), o.size === 0 && (s.disconnect(), Ke.delete(i));
4336
+ };
4337
+ }
4338
+ function Pr({
4339
+ threshold: e,
4340
+ delay: t,
4341
+ trackVisibility: n,
4342
+ rootMargin: r,
4343
+ root: i,
4344
+ triggerOnce: s,
4345
+ skip: o,
4346
+ initialInView: c,
4347
+ fallbackInView: a,
4348
+ onChange: l
4349
+ } = {}) {
4350
+ var m;
4351
+ const [u, g] = O.useState(null), w = O.useRef(l), [d, p] = O.useState({
4352
+ inView: !!c,
4353
+ entry: void 0
4354
+ });
4355
+ w.current = l, O.useEffect(
4356
+ () => {
4357
+ if (o || !u) return;
4358
+ let x;
4359
+ return x = Cr(
4360
+ u,
4361
+ (C, I) => {
4362
+ p({
4363
+ inView: C,
4364
+ entry: I
4365
+ }), w.current && w.current(C, I), I.isIntersecting && s && x && (x(), x = void 0);
4366
+ },
4367
+ {
4368
+ root: i,
4369
+ rootMargin: r,
4370
+ threshold: e,
4371
+ // @ts-ignore
4372
+ trackVisibility: n,
4373
+ // @ts-ignore
4374
+ delay: t
4375
+ },
4376
+ a
4377
+ ), () => {
4378
+ x && x();
4379
+ };
4380
+ },
4381
+ // We break the rule here, because we aren't including the actual `threshold` variable
4382
+ // eslint-disable-next-line react-hooks/exhaustive-deps
4383
+ [
4384
+ // If the threshold is an array, convert it to a string, so it won't change between renders.
4385
+ Array.isArray(e) ? e.toString() : e,
4386
+ u,
4387
+ i,
4388
+ r,
4389
+ s,
4390
+ o,
4391
+ n,
4392
+ a,
4393
+ t
4394
+ ]
4395
+ );
4396
+ const b = (m = d.entry) == null ? void 0 : m.target, f = O.useRef(void 0);
4397
+ !u && b && !s && !o && f.current !== b && (f.current = b, p({
4398
+ inView: !!c,
4399
+ entry: void 0
4400
+ }));
4401
+ const h = [g, d.inView, d.entry];
4402
+ return h.ref = h[0], h.inView = h[1], h.entry = h[2], h;
4403
+ }
4404
+ const zr = (e) => {
4405
+ const { className: t, rounded: n, width: r, height: i } = e;
4406
+ return /* @__PURE__ */ Q(
4407
+ "div",
4408
+ {
4409
+ style: {
4410
+ ...r && { width: `${r}px` },
4411
+ ...i && { height: `${i}px` }
4412
+ },
4413
+ className: ee(
4414
+ "animate-pulse bg-[#e2e2e2]",
4415
+ n && "rounded-small",
4416
+ t
4417
+ )
4418
+ }
4419
+ );
4420
+ }, Tr = (e) => {
4421
+ if (!e) return null;
4422
+ switch (e.type.toLowerCase()) {
4423
+ case ke.Category:
4424
+ return e.val.length === 1 ? {
4425
+ type: "single_category",
4426
+ value: e.val[0],
4427
+ filters: e.filters ?? []
4428
+ } : {
4429
+ type: "multiple_categories",
4430
+ value: e.val,
4431
+ filters: e.filters ?? []
4432
+ };
4433
+ case ke.SingleProduct: {
4434
+ const t = e.filters?.find(
4435
+ (r) => r.key === "slug"
4436
+ )?.value[0];
4437
+ return {
4438
+ type: "single_product",
4439
+ value: e.val[0],
4440
+ slug: t
4441
+ };
4442
+ }
4443
+ case ke.Collection:
4444
+ return {
4445
+ type: "collection",
4446
+ value: e.val[0]
4447
+ };
4448
+ case ke.Brandshop:
4449
+ return {
4450
+ type: "brandshop",
4451
+ value: e.val[0]
4452
+ };
4453
+ default:
4454
+ return null;
4455
+ }
4456
+ };
4457
+ export {
4458
+ Qt as A,
4459
+ zr as S,
4460
+ Ar as a,
4461
+ br as b,
4462
+ hr as c,
4463
+ yr as d,
4464
+ xr as e,
4465
+ wr as f,
4466
+ Mr as g,
4467
+ Tr as h,
4468
+ Pr as u
4469
+ };
4470
+ //# sourceMappingURL=ads-CChrT00a.js.map