waffle-batch 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3242 @@
1
+ import { jsxs as Y, jsx as L } from "react/jsx-runtime";
2
+ import * as U from "react";
3
+ import { forwardRef as Pe, createElement as de, useState as fe, useMemo as ie, useEffect as Ne, useCallback as qe } from "react";
4
+ function Xe(e, t) {
5
+ let o = 0, r, s = 0, a = 0;
6
+ for (let n of e)
7
+ n != null && (n = +n) >= n && (r = n - s, s += r / ++o, a += r * (n - s));
8
+ if (o > 1) return a / (o - 1);
9
+ }
10
+ function Ye(e, t) {
11
+ const o = Xe(e);
12
+ return o && Math.sqrt(o);
13
+ }
14
+ class Ze extends Map {
15
+ constructor(t, o = Ke) {
16
+ if (super(), Object.defineProperties(this, { _intern: { value: /* @__PURE__ */ new Map() }, _key: { value: o } }), t != null) for (const [r, s] of t) this.set(r, s);
17
+ }
18
+ get(t) {
19
+ return super.get(ye(this, t));
20
+ }
21
+ has(t) {
22
+ return super.has(ye(this, t));
23
+ }
24
+ set(t, o) {
25
+ return super.set(Je(this, t), o);
26
+ }
27
+ delete(t) {
28
+ return super.delete(He(this, t));
29
+ }
30
+ }
31
+ function ye({ _intern: e, _key: t }, o) {
32
+ const r = t(o);
33
+ return e.has(r) ? e.get(r) : o;
34
+ }
35
+ function Je({ _intern: e, _key: t }, o) {
36
+ const r = t(o);
37
+ return e.has(r) ? e.get(r) : (e.set(r, o), o);
38
+ }
39
+ function He({ _intern: e, _key: t }, o) {
40
+ const r = t(o);
41
+ return e.has(r) && (o = e.get(r), e.delete(r)), o;
42
+ }
43
+ function Ke(e) {
44
+ return e !== null && typeof e == "object" ? e.valueOf() : e;
45
+ }
46
+ function ke(e) {
47
+ return e;
48
+ }
49
+ function et(e, ...t) {
50
+ return tt(e, ke, ke, t);
51
+ }
52
+ function tt(e, t, o, r) {
53
+ return (function s(a, n) {
54
+ if (n >= r.length) return o(a);
55
+ const i = new Ze(), l = r[n++];
56
+ let m = -1;
57
+ for (const g of a) {
58
+ const h = l(g, ++m, a), v = i.get(h);
59
+ v ? v.push(g) : i.set(h, [g]);
60
+ }
61
+ for (const [g, h] of i)
62
+ i.set(g, s(h, n));
63
+ return t(i);
64
+ })(e, 0);
65
+ }
66
+ function rt(e, t) {
67
+ let o = 0, r = 0;
68
+ for (let s of e)
69
+ s != null && (s = +s) >= s && (++o, r += s);
70
+ if (o) return r / o;
71
+ }
72
+ function ot(e, t) {
73
+ let o = 0;
74
+ for (let r of e)
75
+ (r = +r) && (o += r);
76
+ return o;
77
+ }
78
+ function Te(e) {
79
+ var t, o, r = "";
80
+ if (typeof e == "string" || typeof e == "number") r += e;
81
+ else if (typeof e == "object") if (Array.isArray(e)) {
82
+ var s = e.length;
83
+ for (t = 0; t < s; t++) e[t] && (o = Te(e[t])) && (r && (r += " "), r += o);
84
+ } else for (o in e) e[o] && (r && (r += " "), r += o);
85
+ return r;
86
+ }
87
+ function nt() {
88
+ for (var e, t, o = 0, r = "", s = arguments.length; o < s; o++) (e = arguments[o]) && (t = Te(e)) && (r && (r += " "), r += t);
89
+ return r;
90
+ }
91
+ const st = (e, t) => {
92
+ const o = new Array(e.length + t.length);
93
+ for (let r = 0; r < e.length; r++)
94
+ o[r] = e[r];
95
+ for (let r = 0; r < t.length; r++)
96
+ o[e.length + r] = t[r];
97
+ return o;
98
+ }, at = (e, t) => ({
99
+ classGroupId: e,
100
+ validator: t
101
+ }), je = (e = /* @__PURE__ */ new Map(), t = null, o) => ({
102
+ nextPart: e,
103
+ validators: t,
104
+ classGroupId: o
105
+ }), oe = "-", Ce = [], it = "arbitrary..", lt = (e) => {
106
+ const t = dt(e), {
107
+ conflictingClassGroups: o,
108
+ conflictingClassGroupModifiers: r
109
+ } = e;
110
+ return {
111
+ getClassGroupId: (n) => {
112
+ if (n.startsWith("[") && n.endsWith("]"))
113
+ return ct(n);
114
+ const i = n.split(oe), l = i[0] === "" && i.length > 1 ? 1 : 0;
115
+ return Le(i, l, t);
116
+ },
117
+ getConflictingClassGroupIds: (n, i) => {
118
+ if (i) {
119
+ const l = r[n], m = o[n];
120
+ return l ? m ? st(m, l) : l : m || Ce;
121
+ }
122
+ return o[n] || Ce;
123
+ }
124
+ };
125
+ }, Le = (e, t, o) => {
126
+ if (e.length - t === 0)
127
+ return o.classGroupId;
128
+ const s = e[t], a = o.nextPart.get(s);
129
+ if (a) {
130
+ const m = Le(e, t + 1, a);
131
+ if (m) return m;
132
+ }
133
+ const n = o.validators;
134
+ if (n === null)
135
+ return;
136
+ const i = t === 0 ? e.join(oe) : e.slice(t).join(oe), l = n.length;
137
+ for (let m = 0; m < l; m++) {
138
+ const g = n[m];
139
+ if (g.validator(i))
140
+ return g.classGroupId;
141
+ }
142
+ }, ct = (e) => e.slice(1, -1).indexOf(":") === -1 ? void 0 : (() => {
143
+ const t = e.slice(1, -1), o = t.indexOf(":"), r = t.slice(0, o);
144
+ return r ? it + r : void 0;
145
+ })(), dt = (e) => {
146
+ const {
147
+ theme: t,
148
+ classGroups: o
149
+ } = e;
150
+ return ut(o, t);
151
+ }, ut = (e, t) => {
152
+ const o = je();
153
+ for (const r in e) {
154
+ const s = e[r];
155
+ pe(s, o, r, t);
156
+ }
157
+ return o;
158
+ }, pe = (e, t, o, r) => {
159
+ const s = e.length;
160
+ for (let a = 0; a < s; a++) {
161
+ const n = e[a];
162
+ mt(n, t, o, r);
163
+ }
164
+ }, mt = (e, t, o, r) => {
165
+ if (typeof e == "string") {
166
+ ft(e, t, o);
167
+ return;
168
+ }
169
+ if (typeof e == "function") {
170
+ pt(e, t, o, r);
171
+ return;
172
+ }
173
+ gt(e, t, o, r);
174
+ }, ft = (e, t, o) => {
175
+ const r = e === "" ? t : Ee(t, e);
176
+ r.classGroupId = o;
177
+ }, pt = (e, t, o, r) => {
178
+ if (bt(e)) {
179
+ pe(e(r), t, o, r);
180
+ return;
181
+ }
182
+ t.validators === null && (t.validators = []), t.validators.push(at(o, e));
183
+ }, gt = (e, t, o, r) => {
184
+ const s = Object.entries(e), a = s.length;
185
+ for (let n = 0; n < a; n++) {
186
+ const [i, l] = s[n];
187
+ pe(l, Ee(t, i), o, r);
188
+ }
189
+ }, Ee = (e, t) => {
190
+ let o = e;
191
+ const r = t.split(oe), s = r.length;
192
+ for (let a = 0; a < s; a++) {
193
+ const n = r[a];
194
+ let i = o.nextPart.get(n);
195
+ i || (i = je(), o.nextPart.set(n, i)), o = i;
196
+ }
197
+ return o;
198
+ }, bt = (e) => "isThemeGetter" in e && e.isThemeGetter === !0, ht = (e) => {
199
+ if (e < 1)
200
+ return {
201
+ get: () => {
202
+ },
203
+ set: () => {
204
+ }
205
+ };
206
+ let t = 0, o = /* @__PURE__ */ Object.create(null), r = /* @__PURE__ */ Object.create(null);
207
+ const s = (a, n) => {
208
+ o[a] = n, t++, t > e && (t = 0, r = o, o = /* @__PURE__ */ Object.create(null));
209
+ };
210
+ return {
211
+ get(a) {
212
+ let n = o[a];
213
+ if (n !== void 0)
214
+ return n;
215
+ if ((n = r[a]) !== void 0)
216
+ return s(a, n), n;
217
+ },
218
+ set(a, n) {
219
+ a in o ? o[a] = n : s(a, n);
220
+ }
221
+ };
222
+ }, ue = "!", Se = ":", wt = [], ze = (e, t, o, r, s) => ({
223
+ modifiers: e,
224
+ hasImportantModifier: t,
225
+ baseClassName: o,
226
+ maybePostfixModifierPosition: r,
227
+ isExternal: s
228
+ }), xt = (e) => {
229
+ const {
230
+ prefix: t,
231
+ experimentalParseClassName: o
232
+ } = e;
233
+ let r = (s) => {
234
+ const a = [];
235
+ let n = 0, i = 0, l = 0, m;
236
+ const g = s.length;
237
+ for (let C = 0; C < g; C++) {
238
+ const y = s[C];
239
+ if (n === 0 && i === 0) {
240
+ if (y === Se) {
241
+ a.push(s.slice(l, C)), l = C + 1;
242
+ continue;
243
+ }
244
+ if (y === "/") {
245
+ m = C;
246
+ continue;
247
+ }
248
+ }
249
+ y === "[" ? n++ : y === "]" ? n-- : y === "(" ? i++ : y === ")" && i--;
250
+ }
251
+ const h = a.length === 0 ? s : s.slice(l);
252
+ let v = h, T = !1;
253
+ h.endsWith(ue) ? (v = h.slice(0, -1), T = !0) : (
254
+ /**
255
+ * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.
256
+ * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864
257
+ */
258
+ h.startsWith(ue) && (v = h.slice(1), T = !0)
259
+ );
260
+ const w = m && m > l ? m - l : void 0;
261
+ return ze(a, T, v, w);
262
+ };
263
+ if (t) {
264
+ const s = t + Se, a = r;
265
+ r = (n) => n.startsWith(s) ? a(n.slice(s.length)) : ze(wt, !1, n, void 0, !0);
266
+ }
267
+ if (o) {
268
+ const s = r;
269
+ r = (a) => o({
270
+ className: a,
271
+ parseClassName: s
272
+ });
273
+ }
274
+ return r;
275
+ }, vt = (e) => {
276
+ const t = /* @__PURE__ */ new Map();
277
+ return e.orderSensitiveModifiers.forEach((o, r) => {
278
+ t.set(o, 1e6 + r);
279
+ }), (o) => {
280
+ const r = [];
281
+ let s = [];
282
+ for (let a = 0; a < o.length; a++) {
283
+ const n = o[a], i = n[0] === "[", l = t.has(n);
284
+ i || l ? (s.length > 0 && (s.sort(), r.push(...s), s = []), r.push(n)) : s.push(n);
285
+ }
286
+ return s.length > 0 && (s.sort(), r.push(...s)), r;
287
+ };
288
+ }, yt = (e) => ({
289
+ cache: ht(e.cacheSize),
290
+ parseClassName: xt(e),
291
+ sortModifiers: vt(e),
292
+ ...lt(e)
293
+ }), kt = /\s+/, Ct = (e, t) => {
294
+ const {
295
+ parseClassName: o,
296
+ getClassGroupId: r,
297
+ getConflictingClassGroupIds: s,
298
+ sortModifiers: a
299
+ } = t, n = [], i = e.trim().split(kt);
300
+ let l = "";
301
+ for (let m = i.length - 1; m >= 0; m -= 1) {
302
+ const g = i[m], {
303
+ isExternal: h,
304
+ modifiers: v,
305
+ hasImportantModifier: T,
306
+ baseClassName: w,
307
+ maybePostfixModifierPosition: C
308
+ } = o(g);
309
+ if (h) {
310
+ l = g + (l.length > 0 ? " " + l : l);
311
+ continue;
312
+ }
313
+ let y = !!C, P = r(y ? w.substring(0, C) : w);
314
+ if (!P) {
315
+ if (!y) {
316
+ l = g + (l.length > 0 ? " " + l : l);
317
+ continue;
318
+ }
319
+ if (P = r(w), !P) {
320
+ l = g + (l.length > 0 ? " " + l : l);
321
+ continue;
322
+ }
323
+ y = !1;
324
+ }
325
+ const E = v.length === 0 ? "" : v.length === 1 ? v[0] : a(v).join(":"), A = T ? E + ue : E, S = A + P;
326
+ if (n.indexOf(S) > -1)
327
+ continue;
328
+ n.push(S);
329
+ const z = s(P, y);
330
+ for (let R = 0; R < z.length; ++R) {
331
+ const G = z[R];
332
+ n.push(A + G);
333
+ }
334
+ l = g + (l.length > 0 ? " " + l : l);
335
+ }
336
+ return l;
337
+ }, St = (...e) => {
338
+ let t = 0, o, r, s = "";
339
+ for (; t < e.length; )
340
+ (o = e[t++]) && (r = Ge(o)) && (s && (s += " "), s += r);
341
+ return s;
342
+ }, Ge = (e) => {
343
+ if (typeof e == "string")
344
+ return e;
345
+ let t, o = "";
346
+ for (let r = 0; r < e.length; r++)
347
+ e[r] && (t = Ge(e[r])) && (o && (o += " "), o += t);
348
+ return o;
349
+ }, zt = (e, ...t) => {
350
+ let o, r, s, a;
351
+ const n = (l) => {
352
+ const m = t.reduce((g, h) => h(g), e());
353
+ return o = yt(m), r = o.cache.get, s = o.cache.set, a = i, i(l);
354
+ }, i = (l) => {
355
+ const m = r(l);
356
+ if (m)
357
+ return m;
358
+ const g = Ct(l, o);
359
+ return s(l, g), g;
360
+ };
361
+ return a = n, (...l) => a(St(...l));
362
+ }, At = [], x = (e) => {
363
+ const t = (o) => o[e] || At;
364
+ return t.isThemeGetter = !0, t;
365
+ }, Oe = /^\[(?:(\w[\w-]*):)?(.+)\]$/i, _e = /^\((?:(\w[\w-]*):)?(.+)\)$/i, Rt = /^\d+\/\d+$/, It = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, Mt = /\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$/, Pt = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/, Nt = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, Tt = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, D = (e) => Rt.test(e), p = (e) => !!e && !Number.isNaN(Number(e)), B = (e) => !!e && Number.isInteger(Number(e)), le = (e) => e.endsWith("%") && p(e.slice(0, -1)), _ = (e) => It.test(e), jt = () => !0, Lt = (e) => (
366
+ // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
367
+ // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
368
+ // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
369
+ Mt.test(e) && !Pt.test(e)
370
+ ), $e = () => !1, Et = (e) => Nt.test(e), Gt = (e) => Tt.test(e), Ot = (e) => !c(e) && !d(e), _t = (e) => Q(e, Ve, $e), c = (e) => Oe.test(e), V = (e) => Q(e, We, Lt), ce = (e) => Q(e, Wt, p), Ae = (e) => Q(e, Be, $e), $t = (e) => Q(e, Fe, Gt), ee = (e) => Q(e, Ue, Et), d = (e) => _e.test(e), X = (e) => q(e, We), Bt = (e) => q(e, Ut), Re = (e) => q(e, Be), Ft = (e) => q(e, Ve), Vt = (e) => q(e, Fe), te = (e) => q(e, Ue, !0), Q = (e, t, o) => {
371
+ const r = Oe.exec(e);
372
+ return r ? r[1] ? t(r[1]) : o(r[2]) : !1;
373
+ }, q = (e, t, o = !1) => {
374
+ const r = _e.exec(e);
375
+ return r ? r[1] ? t(r[1]) : o : !1;
376
+ }, Be = (e) => e === "position" || e === "percentage", Fe = (e) => e === "image" || e === "url", Ve = (e) => e === "length" || e === "size" || e === "bg-size", We = (e) => e === "length", Wt = (e) => e === "number", Ut = (e) => e === "family-name", Ue = (e) => e === "shadow", Dt = () => {
377
+ const e = x("color"), t = x("font"), o = x("text"), r = x("font-weight"), s = x("tracking"), a = x("leading"), n = x("breakpoint"), i = x("container"), l = x("spacing"), m = x("radius"), g = x("shadow"), h = x("inset-shadow"), v = x("text-shadow"), T = x("drop-shadow"), w = x("blur"), C = x("perspective"), y = x("aspect"), P = x("ease"), E = x("animate"), A = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], S = () => [
378
+ "center",
379
+ "top",
380
+ "bottom",
381
+ "left",
382
+ "right",
383
+ "top-left",
384
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
385
+ "left-top",
386
+ "top-right",
387
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
388
+ "right-top",
389
+ "bottom-right",
390
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
391
+ "right-bottom",
392
+ "bottom-left",
393
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
394
+ "left-bottom"
395
+ ], z = () => [...S(), d, c], R = () => ["auto", "hidden", "clip", "visible", "scroll"], G = () => ["auto", "contain", "none"], u = () => [d, c, l], b = () => [D, "full", "auto", ...u()], I = () => [B, "none", "subgrid", d, c], N = () => ["auto", {
396
+ span: ["full", B, d, c]
397
+ }, B, d, c], $ = () => [B, "auto", d, c], ge = () => ["auto", "min", "max", "fr", d, c], ne = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"], W = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"], O = () => ["auto", ...u()], F = () => [D, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...u()], f = () => [e, d, c], be = () => [...S(), Re, Ae, {
398
+ position: [d, c]
399
+ }], he = () => ["no-repeat", {
400
+ repeat: ["", "x", "y", "space", "round"]
401
+ }], we = () => ["auto", "cover", "contain", Ft, _t, {
402
+ size: [d, c]
403
+ }], se = () => [le, X, V], M = () => [
404
+ // Deprecated since Tailwind CSS v4.0.0
405
+ "",
406
+ "none",
407
+ "full",
408
+ m,
409
+ d,
410
+ c
411
+ ], j = () => ["", p, X, V], Z = () => ["solid", "dashed", "dotted", "double"], xe = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], k = () => [p, le, Re, Ae], ve = () => [
412
+ // Deprecated since Tailwind CSS v4.0.0
413
+ "",
414
+ "none",
415
+ w,
416
+ d,
417
+ c
418
+ ], J = () => ["none", p, d, c], H = () => ["none", p, d, c], ae = () => [p, d, c], K = () => [D, "full", ...u()];
419
+ return {
420
+ cacheSize: 500,
421
+ theme: {
422
+ animate: ["spin", "ping", "pulse", "bounce"],
423
+ aspect: ["video"],
424
+ blur: [_],
425
+ breakpoint: [_],
426
+ color: [jt],
427
+ container: [_],
428
+ "drop-shadow": [_],
429
+ ease: ["in", "out", "in-out"],
430
+ font: [Ot],
431
+ "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
432
+ "inset-shadow": [_],
433
+ leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
434
+ perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"],
435
+ radius: [_],
436
+ shadow: [_],
437
+ spacing: ["px", p],
438
+ text: [_],
439
+ "text-shadow": [_],
440
+ tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"]
441
+ },
442
+ classGroups: {
443
+ // --------------
444
+ // --- Layout ---
445
+ // --------------
446
+ /**
447
+ * Aspect Ratio
448
+ * @see https://tailwindcss.com/docs/aspect-ratio
449
+ */
450
+ aspect: [{
451
+ aspect: ["auto", "square", D, c, d, y]
452
+ }],
453
+ /**
454
+ * Container
455
+ * @see https://tailwindcss.com/docs/container
456
+ * @deprecated since Tailwind CSS v4.0.0
457
+ */
458
+ container: ["container"],
459
+ /**
460
+ * Columns
461
+ * @see https://tailwindcss.com/docs/columns
462
+ */
463
+ columns: [{
464
+ columns: [p, c, d, i]
465
+ }],
466
+ /**
467
+ * Break After
468
+ * @see https://tailwindcss.com/docs/break-after
469
+ */
470
+ "break-after": [{
471
+ "break-after": A()
472
+ }],
473
+ /**
474
+ * Break Before
475
+ * @see https://tailwindcss.com/docs/break-before
476
+ */
477
+ "break-before": [{
478
+ "break-before": A()
479
+ }],
480
+ /**
481
+ * Break Inside
482
+ * @see https://tailwindcss.com/docs/break-inside
483
+ */
484
+ "break-inside": [{
485
+ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
486
+ }],
487
+ /**
488
+ * Box Decoration Break
489
+ * @see https://tailwindcss.com/docs/box-decoration-break
490
+ */
491
+ "box-decoration": [{
492
+ "box-decoration": ["slice", "clone"]
493
+ }],
494
+ /**
495
+ * Box Sizing
496
+ * @see https://tailwindcss.com/docs/box-sizing
497
+ */
498
+ box: [{
499
+ box: ["border", "content"]
500
+ }],
501
+ /**
502
+ * Display
503
+ * @see https://tailwindcss.com/docs/display
504
+ */
505
+ 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"],
506
+ /**
507
+ * Screen Reader Only
508
+ * @see https://tailwindcss.com/docs/display#screen-reader-only
509
+ */
510
+ sr: ["sr-only", "not-sr-only"],
511
+ /**
512
+ * Floats
513
+ * @see https://tailwindcss.com/docs/float
514
+ */
515
+ float: [{
516
+ float: ["right", "left", "none", "start", "end"]
517
+ }],
518
+ /**
519
+ * Clear
520
+ * @see https://tailwindcss.com/docs/clear
521
+ */
522
+ clear: [{
523
+ clear: ["left", "right", "both", "none", "start", "end"]
524
+ }],
525
+ /**
526
+ * Isolation
527
+ * @see https://tailwindcss.com/docs/isolation
528
+ */
529
+ isolation: ["isolate", "isolation-auto"],
530
+ /**
531
+ * Object Fit
532
+ * @see https://tailwindcss.com/docs/object-fit
533
+ */
534
+ "object-fit": [{
535
+ object: ["contain", "cover", "fill", "none", "scale-down"]
536
+ }],
537
+ /**
538
+ * Object Position
539
+ * @see https://tailwindcss.com/docs/object-position
540
+ */
541
+ "object-position": [{
542
+ object: z()
543
+ }],
544
+ /**
545
+ * Overflow
546
+ * @see https://tailwindcss.com/docs/overflow
547
+ */
548
+ overflow: [{
549
+ overflow: R()
550
+ }],
551
+ /**
552
+ * Overflow X
553
+ * @see https://tailwindcss.com/docs/overflow
554
+ */
555
+ "overflow-x": [{
556
+ "overflow-x": R()
557
+ }],
558
+ /**
559
+ * Overflow Y
560
+ * @see https://tailwindcss.com/docs/overflow
561
+ */
562
+ "overflow-y": [{
563
+ "overflow-y": R()
564
+ }],
565
+ /**
566
+ * Overscroll Behavior
567
+ * @see https://tailwindcss.com/docs/overscroll-behavior
568
+ */
569
+ overscroll: [{
570
+ overscroll: G()
571
+ }],
572
+ /**
573
+ * Overscroll Behavior X
574
+ * @see https://tailwindcss.com/docs/overscroll-behavior
575
+ */
576
+ "overscroll-x": [{
577
+ "overscroll-x": G()
578
+ }],
579
+ /**
580
+ * Overscroll Behavior Y
581
+ * @see https://tailwindcss.com/docs/overscroll-behavior
582
+ */
583
+ "overscroll-y": [{
584
+ "overscroll-y": G()
585
+ }],
586
+ /**
587
+ * Position
588
+ * @see https://tailwindcss.com/docs/position
589
+ */
590
+ position: ["static", "fixed", "absolute", "relative", "sticky"],
591
+ /**
592
+ * Top / Right / Bottom / Left
593
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
594
+ */
595
+ inset: [{
596
+ inset: b()
597
+ }],
598
+ /**
599
+ * Right / Left
600
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
601
+ */
602
+ "inset-x": [{
603
+ "inset-x": b()
604
+ }],
605
+ /**
606
+ * Top / Bottom
607
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
608
+ */
609
+ "inset-y": [{
610
+ "inset-y": b()
611
+ }],
612
+ /**
613
+ * Start
614
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
615
+ */
616
+ start: [{
617
+ start: b()
618
+ }],
619
+ /**
620
+ * End
621
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
622
+ */
623
+ end: [{
624
+ end: b()
625
+ }],
626
+ /**
627
+ * Top
628
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
629
+ */
630
+ top: [{
631
+ top: b()
632
+ }],
633
+ /**
634
+ * Right
635
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
636
+ */
637
+ right: [{
638
+ right: b()
639
+ }],
640
+ /**
641
+ * Bottom
642
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
643
+ */
644
+ bottom: [{
645
+ bottom: b()
646
+ }],
647
+ /**
648
+ * Left
649
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
650
+ */
651
+ left: [{
652
+ left: b()
653
+ }],
654
+ /**
655
+ * Visibility
656
+ * @see https://tailwindcss.com/docs/visibility
657
+ */
658
+ visibility: ["visible", "invisible", "collapse"],
659
+ /**
660
+ * Z-Index
661
+ * @see https://tailwindcss.com/docs/z-index
662
+ */
663
+ z: [{
664
+ z: [B, "auto", d, c]
665
+ }],
666
+ // ------------------------
667
+ // --- Flexbox and Grid ---
668
+ // ------------------------
669
+ /**
670
+ * Flex Basis
671
+ * @see https://tailwindcss.com/docs/flex-basis
672
+ */
673
+ basis: [{
674
+ basis: [D, "full", "auto", i, ...u()]
675
+ }],
676
+ /**
677
+ * Flex Direction
678
+ * @see https://tailwindcss.com/docs/flex-direction
679
+ */
680
+ "flex-direction": [{
681
+ flex: ["row", "row-reverse", "col", "col-reverse"]
682
+ }],
683
+ /**
684
+ * Flex Wrap
685
+ * @see https://tailwindcss.com/docs/flex-wrap
686
+ */
687
+ "flex-wrap": [{
688
+ flex: ["nowrap", "wrap", "wrap-reverse"]
689
+ }],
690
+ /**
691
+ * Flex
692
+ * @see https://tailwindcss.com/docs/flex
693
+ */
694
+ flex: [{
695
+ flex: [p, D, "auto", "initial", "none", c]
696
+ }],
697
+ /**
698
+ * Flex Grow
699
+ * @see https://tailwindcss.com/docs/flex-grow
700
+ */
701
+ grow: [{
702
+ grow: ["", p, d, c]
703
+ }],
704
+ /**
705
+ * Flex Shrink
706
+ * @see https://tailwindcss.com/docs/flex-shrink
707
+ */
708
+ shrink: [{
709
+ shrink: ["", p, d, c]
710
+ }],
711
+ /**
712
+ * Order
713
+ * @see https://tailwindcss.com/docs/order
714
+ */
715
+ order: [{
716
+ order: [B, "first", "last", "none", d, c]
717
+ }],
718
+ /**
719
+ * Grid Template Columns
720
+ * @see https://tailwindcss.com/docs/grid-template-columns
721
+ */
722
+ "grid-cols": [{
723
+ "grid-cols": I()
724
+ }],
725
+ /**
726
+ * Grid Column Start / End
727
+ * @see https://tailwindcss.com/docs/grid-column
728
+ */
729
+ "col-start-end": [{
730
+ col: N()
731
+ }],
732
+ /**
733
+ * Grid Column Start
734
+ * @see https://tailwindcss.com/docs/grid-column
735
+ */
736
+ "col-start": [{
737
+ "col-start": $()
738
+ }],
739
+ /**
740
+ * Grid Column End
741
+ * @see https://tailwindcss.com/docs/grid-column
742
+ */
743
+ "col-end": [{
744
+ "col-end": $()
745
+ }],
746
+ /**
747
+ * Grid Template Rows
748
+ * @see https://tailwindcss.com/docs/grid-template-rows
749
+ */
750
+ "grid-rows": [{
751
+ "grid-rows": I()
752
+ }],
753
+ /**
754
+ * Grid Row Start / End
755
+ * @see https://tailwindcss.com/docs/grid-row
756
+ */
757
+ "row-start-end": [{
758
+ row: N()
759
+ }],
760
+ /**
761
+ * Grid Row Start
762
+ * @see https://tailwindcss.com/docs/grid-row
763
+ */
764
+ "row-start": [{
765
+ "row-start": $()
766
+ }],
767
+ /**
768
+ * Grid Row End
769
+ * @see https://tailwindcss.com/docs/grid-row
770
+ */
771
+ "row-end": [{
772
+ "row-end": $()
773
+ }],
774
+ /**
775
+ * Grid Auto Flow
776
+ * @see https://tailwindcss.com/docs/grid-auto-flow
777
+ */
778
+ "grid-flow": [{
779
+ "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
780
+ }],
781
+ /**
782
+ * Grid Auto Columns
783
+ * @see https://tailwindcss.com/docs/grid-auto-columns
784
+ */
785
+ "auto-cols": [{
786
+ "auto-cols": ge()
787
+ }],
788
+ /**
789
+ * Grid Auto Rows
790
+ * @see https://tailwindcss.com/docs/grid-auto-rows
791
+ */
792
+ "auto-rows": [{
793
+ "auto-rows": ge()
794
+ }],
795
+ /**
796
+ * Gap
797
+ * @see https://tailwindcss.com/docs/gap
798
+ */
799
+ gap: [{
800
+ gap: u()
801
+ }],
802
+ /**
803
+ * Gap X
804
+ * @see https://tailwindcss.com/docs/gap
805
+ */
806
+ "gap-x": [{
807
+ "gap-x": u()
808
+ }],
809
+ /**
810
+ * Gap Y
811
+ * @see https://tailwindcss.com/docs/gap
812
+ */
813
+ "gap-y": [{
814
+ "gap-y": u()
815
+ }],
816
+ /**
817
+ * Justify Content
818
+ * @see https://tailwindcss.com/docs/justify-content
819
+ */
820
+ "justify-content": [{
821
+ justify: [...ne(), "normal"]
822
+ }],
823
+ /**
824
+ * Justify Items
825
+ * @see https://tailwindcss.com/docs/justify-items
826
+ */
827
+ "justify-items": [{
828
+ "justify-items": [...W(), "normal"]
829
+ }],
830
+ /**
831
+ * Justify Self
832
+ * @see https://tailwindcss.com/docs/justify-self
833
+ */
834
+ "justify-self": [{
835
+ "justify-self": ["auto", ...W()]
836
+ }],
837
+ /**
838
+ * Align Content
839
+ * @see https://tailwindcss.com/docs/align-content
840
+ */
841
+ "align-content": [{
842
+ content: ["normal", ...ne()]
843
+ }],
844
+ /**
845
+ * Align Items
846
+ * @see https://tailwindcss.com/docs/align-items
847
+ */
848
+ "align-items": [{
849
+ items: [...W(), {
850
+ baseline: ["", "last"]
851
+ }]
852
+ }],
853
+ /**
854
+ * Align Self
855
+ * @see https://tailwindcss.com/docs/align-self
856
+ */
857
+ "align-self": [{
858
+ self: ["auto", ...W(), {
859
+ baseline: ["", "last"]
860
+ }]
861
+ }],
862
+ /**
863
+ * Place Content
864
+ * @see https://tailwindcss.com/docs/place-content
865
+ */
866
+ "place-content": [{
867
+ "place-content": ne()
868
+ }],
869
+ /**
870
+ * Place Items
871
+ * @see https://tailwindcss.com/docs/place-items
872
+ */
873
+ "place-items": [{
874
+ "place-items": [...W(), "baseline"]
875
+ }],
876
+ /**
877
+ * Place Self
878
+ * @see https://tailwindcss.com/docs/place-self
879
+ */
880
+ "place-self": [{
881
+ "place-self": ["auto", ...W()]
882
+ }],
883
+ // Spacing
884
+ /**
885
+ * Padding
886
+ * @see https://tailwindcss.com/docs/padding
887
+ */
888
+ p: [{
889
+ p: u()
890
+ }],
891
+ /**
892
+ * Padding X
893
+ * @see https://tailwindcss.com/docs/padding
894
+ */
895
+ px: [{
896
+ px: u()
897
+ }],
898
+ /**
899
+ * Padding Y
900
+ * @see https://tailwindcss.com/docs/padding
901
+ */
902
+ py: [{
903
+ py: u()
904
+ }],
905
+ /**
906
+ * Padding Start
907
+ * @see https://tailwindcss.com/docs/padding
908
+ */
909
+ ps: [{
910
+ ps: u()
911
+ }],
912
+ /**
913
+ * Padding End
914
+ * @see https://tailwindcss.com/docs/padding
915
+ */
916
+ pe: [{
917
+ pe: u()
918
+ }],
919
+ /**
920
+ * Padding Top
921
+ * @see https://tailwindcss.com/docs/padding
922
+ */
923
+ pt: [{
924
+ pt: u()
925
+ }],
926
+ /**
927
+ * Padding Right
928
+ * @see https://tailwindcss.com/docs/padding
929
+ */
930
+ pr: [{
931
+ pr: u()
932
+ }],
933
+ /**
934
+ * Padding Bottom
935
+ * @see https://tailwindcss.com/docs/padding
936
+ */
937
+ pb: [{
938
+ pb: u()
939
+ }],
940
+ /**
941
+ * Padding Left
942
+ * @see https://tailwindcss.com/docs/padding
943
+ */
944
+ pl: [{
945
+ pl: u()
946
+ }],
947
+ /**
948
+ * Margin
949
+ * @see https://tailwindcss.com/docs/margin
950
+ */
951
+ m: [{
952
+ m: O()
953
+ }],
954
+ /**
955
+ * Margin X
956
+ * @see https://tailwindcss.com/docs/margin
957
+ */
958
+ mx: [{
959
+ mx: O()
960
+ }],
961
+ /**
962
+ * Margin Y
963
+ * @see https://tailwindcss.com/docs/margin
964
+ */
965
+ my: [{
966
+ my: O()
967
+ }],
968
+ /**
969
+ * Margin Start
970
+ * @see https://tailwindcss.com/docs/margin
971
+ */
972
+ ms: [{
973
+ ms: O()
974
+ }],
975
+ /**
976
+ * Margin End
977
+ * @see https://tailwindcss.com/docs/margin
978
+ */
979
+ me: [{
980
+ me: O()
981
+ }],
982
+ /**
983
+ * Margin Top
984
+ * @see https://tailwindcss.com/docs/margin
985
+ */
986
+ mt: [{
987
+ mt: O()
988
+ }],
989
+ /**
990
+ * Margin Right
991
+ * @see https://tailwindcss.com/docs/margin
992
+ */
993
+ mr: [{
994
+ mr: O()
995
+ }],
996
+ /**
997
+ * Margin Bottom
998
+ * @see https://tailwindcss.com/docs/margin
999
+ */
1000
+ mb: [{
1001
+ mb: O()
1002
+ }],
1003
+ /**
1004
+ * Margin Left
1005
+ * @see https://tailwindcss.com/docs/margin
1006
+ */
1007
+ ml: [{
1008
+ ml: O()
1009
+ }],
1010
+ /**
1011
+ * Space Between X
1012
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1013
+ */
1014
+ "space-x": [{
1015
+ "space-x": u()
1016
+ }],
1017
+ /**
1018
+ * Space Between X Reverse
1019
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1020
+ */
1021
+ "space-x-reverse": ["space-x-reverse"],
1022
+ /**
1023
+ * Space Between Y
1024
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1025
+ */
1026
+ "space-y": [{
1027
+ "space-y": u()
1028
+ }],
1029
+ /**
1030
+ * Space Between Y Reverse
1031
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1032
+ */
1033
+ "space-y-reverse": ["space-y-reverse"],
1034
+ // --------------
1035
+ // --- Sizing ---
1036
+ // --------------
1037
+ /**
1038
+ * Size
1039
+ * @see https://tailwindcss.com/docs/width#setting-both-width-and-height
1040
+ */
1041
+ size: [{
1042
+ size: F()
1043
+ }],
1044
+ /**
1045
+ * Width
1046
+ * @see https://tailwindcss.com/docs/width
1047
+ */
1048
+ w: [{
1049
+ w: [i, "screen", ...F()]
1050
+ }],
1051
+ /**
1052
+ * Min-Width
1053
+ * @see https://tailwindcss.com/docs/min-width
1054
+ */
1055
+ "min-w": [{
1056
+ "min-w": [
1057
+ i,
1058
+ "screen",
1059
+ /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1060
+ "none",
1061
+ ...F()
1062
+ ]
1063
+ }],
1064
+ /**
1065
+ * Max-Width
1066
+ * @see https://tailwindcss.com/docs/max-width
1067
+ */
1068
+ "max-w": [{
1069
+ "max-w": [
1070
+ i,
1071
+ "screen",
1072
+ "none",
1073
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1074
+ "prose",
1075
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1076
+ {
1077
+ screen: [n]
1078
+ },
1079
+ ...F()
1080
+ ]
1081
+ }],
1082
+ /**
1083
+ * Height
1084
+ * @see https://tailwindcss.com/docs/height
1085
+ */
1086
+ h: [{
1087
+ h: ["screen", "lh", ...F()]
1088
+ }],
1089
+ /**
1090
+ * Min-Height
1091
+ * @see https://tailwindcss.com/docs/min-height
1092
+ */
1093
+ "min-h": [{
1094
+ "min-h": ["screen", "lh", "none", ...F()]
1095
+ }],
1096
+ /**
1097
+ * Max-Height
1098
+ * @see https://tailwindcss.com/docs/max-height
1099
+ */
1100
+ "max-h": [{
1101
+ "max-h": ["screen", "lh", ...F()]
1102
+ }],
1103
+ // ------------------
1104
+ // --- Typography ---
1105
+ // ------------------
1106
+ /**
1107
+ * Font Size
1108
+ * @see https://tailwindcss.com/docs/font-size
1109
+ */
1110
+ "font-size": [{
1111
+ text: ["base", o, X, V]
1112
+ }],
1113
+ /**
1114
+ * Font Smoothing
1115
+ * @see https://tailwindcss.com/docs/font-smoothing
1116
+ */
1117
+ "font-smoothing": ["antialiased", "subpixel-antialiased"],
1118
+ /**
1119
+ * Font Style
1120
+ * @see https://tailwindcss.com/docs/font-style
1121
+ */
1122
+ "font-style": ["italic", "not-italic"],
1123
+ /**
1124
+ * Font Weight
1125
+ * @see https://tailwindcss.com/docs/font-weight
1126
+ */
1127
+ "font-weight": [{
1128
+ font: [r, d, ce]
1129
+ }],
1130
+ /**
1131
+ * Font Stretch
1132
+ * @see https://tailwindcss.com/docs/font-stretch
1133
+ */
1134
+ "font-stretch": [{
1135
+ "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", le, c]
1136
+ }],
1137
+ /**
1138
+ * Font Family
1139
+ * @see https://tailwindcss.com/docs/font-family
1140
+ */
1141
+ "font-family": [{
1142
+ font: [Bt, c, t]
1143
+ }],
1144
+ /**
1145
+ * Font Variant Numeric
1146
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1147
+ */
1148
+ "fvn-normal": ["normal-nums"],
1149
+ /**
1150
+ * Font Variant Numeric
1151
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1152
+ */
1153
+ "fvn-ordinal": ["ordinal"],
1154
+ /**
1155
+ * Font Variant Numeric
1156
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1157
+ */
1158
+ "fvn-slashed-zero": ["slashed-zero"],
1159
+ /**
1160
+ * Font Variant Numeric
1161
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1162
+ */
1163
+ "fvn-figure": ["lining-nums", "oldstyle-nums"],
1164
+ /**
1165
+ * Font Variant Numeric
1166
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1167
+ */
1168
+ "fvn-spacing": ["proportional-nums", "tabular-nums"],
1169
+ /**
1170
+ * Font Variant Numeric
1171
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1172
+ */
1173
+ "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
1174
+ /**
1175
+ * Letter Spacing
1176
+ * @see https://tailwindcss.com/docs/letter-spacing
1177
+ */
1178
+ tracking: [{
1179
+ tracking: [s, d, c]
1180
+ }],
1181
+ /**
1182
+ * Line Clamp
1183
+ * @see https://tailwindcss.com/docs/line-clamp
1184
+ */
1185
+ "line-clamp": [{
1186
+ "line-clamp": [p, "none", d, ce]
1187
+ }],
1188
+ /**
1189
+ * Line Height
1190
+ * @see https://tailwindcss.com/docs/line-height
1191
+ */
1192
+ leading: [{
1193
+ leading: [
1194
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1195
+ a,
1196
+ ...u()
1197
+ ]
1198
+ }],
1199
+ /**
1200
+ * List Style Image
1201
+ * @see https://tailwindcss.com/docs/list-style-image
1202
+ */
1203
+ "list-image": [{
1204
+ "list-image": ["none", d, c]
1205
+ }],
1206
+ /**
1207
+ * List Style Position
1208
+ * @see https://tailwindcss.com/docs/list-style-position
1209
+ */
1210
+ "list-style-position": [{
1211
+ list: ["inside", "outside"]
1212
+ }],
1213
+ /**
1214
+ * List Style Type
1215
+ * @see https://tailwindcss.com/docs/list-style-type
1216
+ */
1217
+ "list-style-type": [{
1218
+ list: ["disc", "decimal", "none", d, c]
1219
+ }],
1220
+ /**
1221
+ * Text Alignment
1222
+ * @see https://tailwindcss.com/docs/text-align
1223
+ */
1224
+ "text-alignment": [{
1225
+ text: ["left", "center", "right", "justify", "start", "end"]
1226
+ }],
1227
+ /**
1228
+ * Placeholder Color
1229
+ * @deprecated since Tailwind CSS v3.0.0
1230
+ * @see https://v3.tailwindcss.com/docs/placeholder-color
1231
+ */
1232
+ "placeholder-color": [{
1233
+ placeholder: f()
1234
+ }],
1235
+ /**
1236
+ * Text Color
1237
+ * @see https://tailwindcss.com/docs/text-color
1238
+ */
1239
+ "text-color": [{
1240
+ text: f()
1241
+ }],
1242
+ /**
1243
+ * Text Decoration
1244
+ * @see https://tailwindcss.com/docs/text-decoration
1245
+ */
1246
+ "text-decoration": ["underline", "overline", "line-through", "no-underline"],
1247
+ /**
1248
+ * Text Decoration Style
1249
+ * @see https://tailwindcss.com/docs/text-decoration-style
1250
+ */
1251
+ "text-decoration-style": [{
1252
+ decoration: [...Z(), "wavy"]
1253
+ }],
1254
+ /**
1255
+ * Text Decoration Thickness
1256
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
1257
+ */
1258
+ "text-decoration-thickness": [{
1259
+ decoration: [p, "from-font", "auto", d, V]
1260
+ }],
1261
+ /**
1262
+ * Text Decoration Color
1263
+ * @see https://tailwindcss.com/docs/text-decoration-color
1264
+ */
1265
+ "text-decoration-color": [{
1266
+ decoration: f()
1267
+ }],
1268
+ /**
1269
+ * Text Underline Offset
1270
+ * @see https://tailwindcss.com/docs/text-underline-offset
1271
+ */
1272
+ "underline-offset": [{
1273
+ "underline-offset": [p, "auto", d, c]
1274
+ }],
1275
+ /**
1276
+ * Text Transform
1277
+ * @see https://tailwindcss.com/docs/text-transform
1278
+ */
1279
+ "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
1280
+ /**
1281
+ * Text Overflow
1282
+ * @see https://tailwindcss.com/docs/text-overflow
1283
+ */
1284
+ "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
1285
+ /**
1286
+ * Text Wrap
1287
+ * @see https://tailwindcss.com/docs/text-wrap
1288
+ */
1289
+ "text-wrap": [{
1290
+ text: ["wrap", "nowrap", "balance", "pretty"]
1291
+ }],
1292
+ /**
1293
+ * Text Indent
1294
+ * @see https://tailwindcss.com/docs/text-indent
1295
+ */
1296
+ indent: [{
1297
+ indent: u()
1298
+ }],
1299
+ /**
1300
+ * Vertical Alignment
1301
+ * @see https://tailwindcss.com/docs/vertical-align
1302
+ */
1303
+ "vertical-align": [{
1304
+ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", d, c]
1305
+ }],
1306
+ /**
1307
+ * Whitespace
1308
+ * @see https://tailwindcss.com/docs/whitespace
1309
+ */
1310
+ whitespace: [{
1311
+ whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
1312
+ }],
1313
+ /**
1314
+ * Word Break
1315
+ * @see https://tailwindcss.com/docs/word-break
1316
+ */
1317
+ break: [{
1318
+ break: ["normal", "words", "all", "keep"]
1319
+ }],
1320
+ /**
1321
+ * Overflow Wrap
1322
+ * @see https://tailwindcss.com/docs/overflow-wrap
1323
+ */
1324
+ wrap: [{
1325
+ wrap: ["break-word", "anywhere", "normal"]
1326
+ }],
1327
+ /**
1328
+ * Hyphens
1329
+ * @see https://tailwindcss.com/docs/hyphens
1330
+ */
1331
+ hyphens: [{
1332
+ hyphens: ["none", "manual", "auto"]
1333
+ }],
1334
+ /**
1335
+ * Content
1336
+ * @see https://tailwindcss.com/docs/content
1337
+ */
1338
+ content: [{
1339
+ content: ["none", d, c]
1340
+ }],
1341
+ // -------------------
1342
+ // --- Backgrounds ---
1343
+ // -------------------
1344
+ /**
1345
+ * Background Attachment
1346
+ * @see https://tailwindcss.com/docs/background-attachment
1347
+ */
1348
+ "bg-attachment": [{
1349
+ bg: ["fixed", "local", "scroll"]
1350
+ }],
1351
+ /**
1352
+ * Background Clip
1353
+ * @see https://tailwindcss.com/docs/background-clip
1354
+ */
1355
+ "bg-clip": [{
1356
+ "bg-clip": ["border", "padding", "content", "text"]
1357
+ }],
1358
+ /**
1359
+ * Background Origin
1360
+ * @see https://tailwindcss.com/docs/background-origin
1361
+ */
1362
+ "bg-origin": [{
1363
+ "bg-origin": ["border", "padding", "content"]
1364
+ }],
1365
+ /**
1366
+ * Background Position
1367
+ * @see https://tailwindcss.com/docs/background-position
1368
+ */
1369
+ "bg-position": [{
1370
+ bg: be()
1371
+ }],
1372
+ /**
1373
+ * Background Repeat
1374
+ * @see https://tailwindcss.com/docs/background-repeat
1375
+ */
1376
+ "bg-repeat": [{
1377
+ bg: he()
1378
+ }],
1379
+ /**
1380
+ * Background Size
1381
+ * @see https://tailwindcss.com/docs/background-size
1382
+ */
1383
+ "bg-size": [{
1384
+ bg: we()
1385
+ }],
1386
+ /**
1387
+ * Background Image
1388
+ * @see https://tailwindcss.com/docs/background-image
1389
+ */
1390
+ "bg-image": [{
1391
+ bg: ["none", {
1392
+ linear: [{
1393
+ to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1394
+ }, B, d, c],
1395
+ radial: ["", d, c],
1396
+ conic: [B, d, c]
1397
+ }, Vt, $t]
1398
+ }],
1399
+ /**
1400
+ * Background Color
1401
+ * @see https://tailwindcss.com/docs/background-color
1402
+ */
1403
+ "bg-color": [{
1404
+ bg: f()
1405
+ }],
1406
+ /**
1407
+ * Gradient Color Stops From Position
1408
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1409
+ */
1410
+ "gradient-from-pos": [{
1411
+ from: se()
1412
+ }],
1413
+ /**
1414
+ * Gradient Color Stops Via Position
1415
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1416
+ */
1417
+ "gradient-via-pos": [{
1418
+ via: se()
1419
+ }],
1420
+ /**
1421
+ * Gradient Color Stops To Position
1422
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1423
+ */
1424
+ "gradient-to-pos": [{
1425
+ to: se()
1426
+ }],
1427
+ /**
1428
+ * Gradient Color Stops From
1429
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1430
+ */
1431
+ "gradient-from": [{
1432
+ from: f()
1433
+ }],
1434
+ /**
1435
+ * Gradient Color Stops Via
1436
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1437
+ */
1438
+ "gradient-via": [{
1439
+ via: f()
1440
+ }],
1441
+ /**
1442
+ * Gradient Color Stops To
1443
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1444
+ */
1445
+ "gradient-to": [{
1446
+ to: f()
1447
+ }],
1448
+ // ---------------
1449
+ // --- Borders ---
1450
+ // ---------------
1451
+ /**
1452
+ * Border Radius
1453
+ * @see https://tailwindcss.com/docs/border-radius
1454
+ */
1455
+ rounded: [{
1456
+ rounded: M()
1457
+ }],
1458
+ /**
1459
+ * Border Radius Start
1460
+ * @see https://tailwindcss.com/docs/border-radius
1461
+ */
1462
+ "rounded-s": [{
1463
+ "rounded-s": M()
1464
+ }],
1465
+ /**
1466
+ * Border Radius End
1467
+ * @see https://tailwindcss.com/docs/border-radius
1468
+ */
1469
+ "rounded-e": [{
1470
+ "rounded-e": M()
1471
+ }],
1472
+ /**
1473
+ * Border Radius Top
1474
+ * @see https://tailwindcss.com/docs/border-radius
1475
+ */
1476
+ "rounded-t": [{
1477
+ "rounded-t": M()
1478
+ }],
1479
+ /**
1480
+ * Border Radius Right
1481
+ * @see https://tailwindcss.com/docs/border-radius
1482
+ */
1483
+ "rounded-r": [{
1484
+ "rounded-r": M()
1485
+ }],
1486
+ /**
1487
+ * Border Radius Bottom
1488
+ * @see https://tailwindcss.com/docs/border-radius
1489
+ */
1490
+ "rounded-b": [{
1491
+ "rounded-b": M()
1492
+ }],
1493
+ /**
1494
+ * Border Radius Left
1495
+ * @see https://tailwindcss.com/docs/border-radius
1496
+ */
1497
+ "rounded-l": [{
1498
+ "rounded-l": M()
1499
+ }],
1500
+ /**
1501
+ * Border Radius Start Start
1502
+ * @see https://tailwindcss.com/docs/border-radius
1503
+ */
1504
+ "rounded-ss": [{
1505
+ "rounded-ss": M()
1506
+ }],
1507
+ /**
1508
+ * Border Radius Start End
1509
+ * @see https://tailwindcss.com/docs/border-radius
1510
+ */
1511
+ "rounded-se": [{
1512
+ "rounded-se": M()
1513
+ }],
1514
+ /**
1515
+ * Border Radius End End
1516
+ * @see https://tailwindcss.com/docs/border-radius
1517
+ */
1518
+ "rounded-ee": [{
1519
+ "rounded-ee": M()
1520
+ }],
1521
+ /**
1522
+ * Border Radius End Start
1523
+ * @see https://tailwindcss.com/docs/border-radius
1524
+ */
1525
+ "rounded-es": [{
1526
+ "rounded-es": M()
1527
+ }],
1528
+ /**
1529
+ * Border Radius Top Left
1530
+ * @see https://tailwindcss.com/docs/border-radius
1531
+ */
1532
+ "rounded-tl": [{
1533
+ "rounded-tl": M()
1534
+ }],
1535
+ /**
1536
+ * Border Radius Top Right
1537
+ * @see https://tailwindcss.com/docs/border-radius
1538
+ */
1539
+ "rounded-tr": [{
1540
+ "rounded-tr": M()
1541
+ }],
1542
+ /**
1543
+ * Border Radius Bottom Right
1544
+ * @see https://tailwindcss.com/docs/border-radius
1545
+ */
1546
+ "rounded-br": [{
1547
+ "rounded-br": M()
1548
+ }],
1549
+ /**
1550
+ * Border Radius Bottom Left
1551
+ * @see https://tailwindcss.com/docs/border-radius
1552
+ */
1553
+ "rounded-bl": [{
1554
+ "rounded-bl": M()
1555
+ }],
1556
+ /**
1557
+ * Border Width
1558
+ * @see https://tailwindcss.com/docs/border-width
1559
+ */
1560
+ "border-w": [{
1561
+ border: j()
1562
+ }],
1563
+ /**
1564
+ * Border Width X
1565
+ * @see https://tailwindcss.com/docs/border-width
1566
+ */
1567
+ "border-w-x": [{
1568
+ "border-x": j()
1569
+ }],
1570
+ /**
1571
+ * Border Width Y
1572
+ * @see https://tailwindcss.com/docs/border-width
1573
+ */
1574
+ "border-w-y": [{
1575
+ "border-y": j()
1576
+ }],
1577
+ /**
1578
+ * Border Width Start
1579
+ * @see https://tailwindcss.com/docs/border-width
1580
+ */
1581
+ "border-w-s": [{
1582
+ "border-s": j()
1583
+ }],
1584
+ /**
1585
+ * Border Width End
1586
+ * @see https://tailwindcss.com/docs/border-width
1587
+ */
1588
+ "border-w-e": [{
1589
+ "border-e": j()
1590
+ }],
1591
+ /**
1592
+ * Border Width Top
1593
+ * @see https://tailwindcss.com/docs/border-width
1594
+ */
1595
+ "border-w-t": [{
1596
+ "border-t": j()
1597
+ }],
1598
+ /**
1599
+ * Border Width Right
1600
+ * @see https://tailwindcss.com/docs/border-width
1601
+ */
1602
+ "border-w-r": [{
1603
+ "border-r": j()
1604
+ }],
1605
+ /**
1606
+ * Border Width Bottom
1607
+ * @see https://tailwindcss.com/docs/border-width
1608
+ */
1609
+ "border-w-b": [{
1610
+ "border-b": j()
1611
+ }],
1612
+ /**
1613
+ * Border Width Left
1614
+ * @see https://tailwindcss.com/docs/border-width
1615
+ */
1616
+ "border-w-l": [{
1617
+ "border-l": j()
1618
+ }],
1619
+ /**
1620
+ * Divide Width X
1621
+ * @see https://tailwindcss.com/docs/border-width#between-children
1622
+ */
1623
+ "divide-x": [{
1624
+ "divide-x": j()
1625
+ }],
1626
+ /**
1627
+ * Divide Width X Reverse
1628
+ * @see https://tailwindcss.com/docs/border-width#between-children
1629
+ */
1630
+ "divide-x-reverse": ["divide-x-reverse"],
1631
+ /**
1632
+ * Divide Width Y
1633
+ * @see https://tailwindcss.com/docs/border-width#between-children
1634
+ */
1635
+ "divide-y": [{
1636
+ "divide-y": j()
1637
+ }],
1638
+ /**
1639
+ * Divide Width Y Reverse
1640
+ * @see https://tailwindcss.com/docs/border-width#between-children
1641
+ */
1642
+ "divide-y-reverse": ["divide-y-reverse"],
1643
+ /**
1644
+ * Border Style
1645
+ * @see https://tailwindcss.com/docs/border-style
1646
+ */
1647
+ "border-style": [{
1648
+ border: [...Z(), "hidden", "none"]
1649
+ }],
1650
+ /**
1651
+ * Divide Style
1652
+ * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style
1653
+ */
1654
+ "divide-style": [{
1655
+ divide: [...Z(), "hidden", "none"]
1656
+ }],
1657
+ /**
1658
+ * Border Color
1659
+ * @see https://tailwindcss.com/docs/border-color
1660
+ */
1661
+ "border-color": [{
1662
+ border: f()
1663
+ }],
1664
+ /**
1665
+ * Border Color X
1666
+ * @see https://tailwindcss.com/docs/border-color
1667
+ */
1668
+ "border-color-x": [{
1669
+ "border-x": f()
1670
+ }],
1671
+ /**
1672
+ * Border Color Y
1673
+ * @see https://tailwindcss.com/docs/border-color
1674
+ */
1675
+ "border-color-y": [{
1676
+ "border-y": f()
1677
+ }],
1678
+ /**
1679
+ * Border Color S
1680
+ * @see https://tailwindcss.com/docs/border-color
1681
+ */
1682
+ "border-color-s": [{
1683
+ "border-s": f()
1684
+ }],
1685
+ /**
1686
+ * Border Color E
1687
+ * @see https://tailwindcss.com/docs/border-color
1688
+ */
1689
+ "border-color-e": [{
1690
+ "border-e": f()
1691
+ }],
1692
+ /**
1693
+ * Border Color Top
1694
+ * @see https://tailwindcss.com/docs/border-color
1695
+ */
1696
+ "border-color-t": [{
1697
+ "border-t": f()
1698
+ }],
1699
+ /**
1700
+ * Border Color Right
1701
+ * @see https://tailwindcss.com/docs/border-color
1702
+ */
1703
+ "border-color-r": [{
1704
+ "border-r": f()
1705
+ }],
1706
+ /**
1707
+ * Border Color Bottom
1708
+ * @see https://tailwindcss.com/docs/border-color
1709
+ */
1710
+ "border-color-b": [{
1711
+ "border-b": f()
1712
+ }],
1713
+ /**
1714
+ * Border Color Left
1715
+ * @see https://tailwindcss.com/docs/border-color
1716
+ */
1717
+ "border-color-l": [{
1718
+ "border-l": f()
1719
+ }],
1720
+ /**
1721
+ * Divide Color
1722
+ * @see https://tailwindcss.com/docs/divide-color
1723
+ */
1724
+ "divide-color": [{
1725
+ divide: f()
1726
+ }],
1727
+ /**
1728
+ * Outline Style
1729
+ * @see https://tailwindcss.com/docs/outline-style
1730
+ */
1731
+ "outline-style": [{
1732
+ outline: [...Z(), "none", "hidden"]
1733
+ }],
1734
+ /**
1735
+ * Outline Offset
1736
+ * @see https://tailwindcss.com/docs/outline-offset
1737
+ */
1738
+ "outline-offset": [{
1739
+ "outline-offset": [p, d, c]
1740
+ }],
1741
+ /**
1742
+ * Outline Width
1743
+ * @see https://tailwindcss.com/docs/outline-width
1744
+ */
1745
+ "outline-w": [{
1746
+ outline: ["", p, X, V]
1747
+ }],
1748
+ /**
1749
+ * Outline Color
1750
+ * @see https://tailwindcss.com/docs/outline-color
1751
+ */
1752
+ "outline-color": [{
1753
+ outline: f()
1754
+ }],
1755
+ // ---------------
1756
+ // --- Effects ---
1757
+ // ---------------
1758
+ /**
1759
+ * Box Shadow
1760
+ * @see https://tailwindcss.com/docs/box-shadow
1761
+ */
1762
+ shadow: [{
1763
+ shadow: [
1764
+ // Deprecated since Tailwind CSS v4.0.0
1765
+ "",
1766
+ "none",
1767
+ g,
1768
+ te,
1769
+ ee
1770
+ ]
1771
+ }],
1772
+ /**
1773
+ * Box Shadow Color
1774
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color
1775
+ */
1776
+ "shadow-color": [{
1777
+ shadow: f()
1778
+ }],
1779
+ /**
1780
+ * Inset Box Shadow
1781
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow
1782
+ */
1783
+ "inset-shadow": [{
1784
+ "inset-shadow": ["none", h, te, ee]
1785
+ }],
1786
+ /**
1787
+ * Inset Box Shadow Color
1788
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color
1789
+ */
1790
+ "inset-shadow-color": [{
1791
+ "inset-shadow": f()
1792
+ }],
1793
+ /**
1794
+ * Ring Width
1795
+ * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring
1796
+ */
1797
+ "ring-w": [{
1798
+ ring: j()
1799
+ }],
1800
+ /**
1801
+ * Ring Width Inset
1802
+ * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings
1803
+ * @deprecated since Tailwind CSS v4.0.0
1804
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
1805
+ */
1806
+ "ring-w-inset": ["ring-inset"],
1807
+ /**
1808
+ * Ring Color
1809
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color
1810
+ */
1811
+ "ring-color": [{
1812
+ ring: f()
1813
+ }],
1814
+ /**
1815
+ * Ring Offset Width
1816
+ * @see https://v3.tailwindcss.com/docs/ring-offset-width
1817
+ * @deprecated since Tailwind CSS v4.0.0
1818
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
1819
+ */
1820
+ "ring-offset-w": [{
1821
+ "ring-offset": [p, V]
1822
+ }],
1823
+ /**
1824
+ * Ring Offset Color
1825
+ * @see https://v3.tailwindcss.com/docs/ring-offset-color
1826
+ * @deprecated since Tailwind CSS v4.0.0
1827
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
1828
+ */
1829
+ "ring-offset-color": [{
1830
+ "ring-offset": f()
1831
+ }],
1832
+ /**
1833
+ * Inset Ring Width
1834
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring
1835
+ */
1836
+ "inset-ring-w": [{
1837
+ "inset-ring": j()
1838
+ }],
1839
+ /**
1840
+ * Inset Ring Color
1841
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color
1842
+ */
1843
+ "inset-ring-color": [{
1844
+ "inset-ring": f()
1845
+ }],
1846
+ /**
1847
+ * Text Shadow
1848
+ * @see https://tailwindcss.com/docs/text-shadow
1849
+ */
1850
+ "text-shadow": [{
1851
+ "text-shadow": ["none", v, te, ee]
1852
+ }],
1853
+ /**
1854
+ * Text Shadow Color
1855
+ * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color
1856
+ */
1857
+ "text-shadow-color": [{
1858
+ "text-shadow": f()
1859
+ }],
1860
+ /**
1861
+ * Opacity
1862
+ * @see https://tailwindcss.com/docs/opacity
1863
+ */
1864
+ opacity: [{
1865
+ opacity: [p, d, c]
1866
+ }],
1867
+ /**
1868
+ * Mix Blend Mode
1869
+ * @see https://tailwindcss.com/docs/mix-blend-mode
1870
+ */
1871
+ "mix-blend": [{
1872
+ "mix-blend": [...xe(), "plus-darker", "plus-lighter"]
1873
+ }],
1874
+ /**
1875
+ * Background Blend Mode
1876
+ * @see https://tailwindcss.com/docs/background-blend-mode
1877
+ */
1878
+ "bg-blend": [{
1879
+ "bg-blend": xe()
1880
+ }],
1881
+ /**
1882
+ * Mask Clip
1883
+ * @see https://tailwindcss.com/docs/mask-clip
1884
+ */
1885
+ "mask-clip": [{
1886
+ "mask-clip": ["border", "padding", "content", "fill", "stroke", "view"]
1887
+ }, "mask-no-clip"],
1888
+ /**
1889
+ * Mask Composite
1890
+ * @see https://tailwindcss.com/docs/mask-composite
1891
+ */
1892
+ "mask-composite": [{
1893
+ mask: ["add", "subtract", "intersect", "exclude"]
1894
+ }],
1895
+ /**
1896
+ * Mask Image
1897
+ * @see https://tailwindcss.com/docs/mask-image
1898
+ */
1899
+ "mask-image-linear-pos": [{
1900
+ "mask-linear": [p]
1901
+ }],
1902
+ "mask-image-linear-from-pos": [{
1903
+ "mask-linear-from": k()
1904
+ }],
1905
+ "mask-image-linear-to-pos": [{
1906
+ "mask-linear-to": k()
1907
+ }],
1908
+ "mask-image-linear-from-color": [{
1909
+ "mask-linear-from": f()
1910
+ }],
1911
+ "mask-image-linear-to-color": [{
1912
+ "mask-linear-to": f()
1913
+ }],
1914
+ "mask-image-t-from-pos": [{
1915
+ "mask-t-from": k()
1916
+ }],
1917
+ "mask-image-t-to-pos": [{
1918
+ "mask-t-to": k()
1919
+ }],
1920
+ "mask-image-t-from-color": [{
1921
+ "mask-t-from": f()
1922
+ }],
1923
+ "mask-image-t-to-color": [{
1924
+ "mask-t-to": f()
1925
+ }],
1926
+ "mask-image-r-from-pos": [{
1927
+ "mask-r-from": k()
1928
+ }],
1929
+ "mask-image-r-to-pos": [{
1930
+ "mask-r-to": k()
1931
+ }],
1932
+ "mask-image-r-from-color": [{
1933
+ "mask-r-from": f()
1934
+ }],
1935
+ "mask-image-r-to-color": [{
1936
+ "mask-r-to": f()
1937
+ }],
1938
+ "mask-image-b-from-pos": [{
1939
+ "mask-b-from": k()
1940
+ }],
1941
+ "mask-image-b-to-pos": [{
1942
+ "mask-b-to": k()
1943
+ }],
1944
+ "mask-image-b-from-color": [{
1945
+ "mask-b-from": f()
1946
+ }],
1947
+ "mask-image-b-to-color": [{
1948
+ "mask-b-to": f()
1949
+ }],
1950
+ "mask-image-l-from-pos": [{
1951
+ "mask-l-from": k()
1952
+ }],
1953
+ "mask-image-l-to-pos": [{
1954
+ "mask-l-to": k()
1955
+ }],
1956
+ "mask-image-l-from-color": [{
1957
+ "mask-l-from": f()
1958
+ }],
1959
+ "mask-image-l-to-color": [{
1960
+ "mask-l-to": f()
1961
+ }],
1962
+ "mask-image-x-from-pos": [{
1963
+ "mask-x-from": k()
1964
+ }],
1965
+ "mask-image-x-to-pos": [{
1966
+ "mask-x-to": k()
1967
+ }],
1968
+ "mask-image-x-from-color": [{
1969
+ "mask-x-from": f()
1970
+ }],
1971
+ "mask-image-x-to-color": [{
1972
+ "mask-x-to": f()
1973
+ }],
1974
+ "mask-image-y-from-pos": [{
1975
+ "mask-y-from": k()
1976
+ }],
1977
+ "mask-image-y-to-pos": [{
1978
+ "mask-y-to": k()
1979
+ }],
1980
+ "mask-image-y-from-color": [{
1981
+ "mask-y-from": f()
1982
+ }],
1983
+ "mask-image-y-to-color": [{
1984
+ "mask-y-to": f()
1985
+ }],
1986
+ "mask-image-radial": [{
1987
+ "mask-radial": [d, c]
1988
+ }],
1989
+ "mask-image-radial-from-pos": [{
1990
+ "mask-radial-from": k()
1991
+ }],
1992
+ "mask-image-radial-to-pos": [{
1993
+ "mask-radial-to": k()
1994
+ }],
1995
+ "mask-image-radial-from-color": [{
1996
+ "mask-radial-from": f()
1997
+ }],
1998
+ "mask-image-radial-to-color": [{
1999
+ "mask-radial-to": f()
2000
+ }],
2001
+ "mask-image-radial-shape": [{
2002
+ "mask-radial": ["circle", "ellipse"]
2003
+ }],
2004
+ "mask-image-radial-size": [{
2005
+ "mask-radial": [{
2006
+ closest: ["side", "corner"],
2007
+ farthest: ["side", "corner"]
2008
+ }]
2009
+ }],
2010
+ "mask-image-radial-pos": [{
2011
+ "mask-radial-at": S()
2012
+ }],
2013
+ "mask-image-conic-pos": [{
2014
+ "mask-conic": [p]
2015
+ }],
2016
+ "mask-image-conic-from-pos": [{
2017
+ "mask-conic-from": k()
2018
+ }],
2019
+ "mask-image-conic-to-pos": [{
2020
+ "mask-conic-to": k()
2021
+ }],
2022
+ "mask-image-conic-from-color": [{
2023
+ "mask-conic-from": f()
2024
+ }],
2025
+ "mask-image-conic-to-color": [{
2026
+ "mask-conic-to": f()
2027
+ }],
2028
+ /**
2029
+ * Mask Mode
2030
+ * @see https://tailwindcss.com/docs/mask-mode
2031
+ */
2032
+ "mask-mode": [{
2033
+ mask: ["alpha", "luminance", "match"]
2034
+ }],
2035
+ /**
2036
+ * Mask Origin
2037
+ * @see https://tailwindcss.com/docs/mask-origin
2038
+ */
2039
+ "mask-origin": [{
2040
+ "mask-origin": ["border", "padding", "content", "fill", "stroke", "view"]
2041
+ }],
2042
+ /**
2043
+ * Mask Position
2044
+ * @see https://tailwindcss.com/docs/mask-position
2045
+ */
2046
+ "mask-position": [{
2047
+ mask: be()
2048
+ }],
2049
+ /**
2050
+ * Mask Repeat
2051
+ * @see https://tailwindcss.com/docs/mask-repeat
2052
+ */
2053
+ "mask-repeat": [{
2054
+ mask: he()
2055
+ }],
2056
+ /**
2057
+ * Mask Size
2058
+ * @see https://tailwindcss.com/docs/mask-size
2059
+ */
2060
+ "mask-size": [{
2061
+ mask: we()
2062
+ }],
2063
+ /**
2064
+ * Mask Type
2065
+ * @see https://tailwindcss.com/docs/mask-type
2066
+ */
2067
+ "mask-type": [{
2068
+ "mask-type": ["alpha", "luminance"]
2069
+ }],
2070
+ /**
2071
+ * Mask Image
2072
+ * @see https://tailwindcss.com/docs/mask-image
2073
+ */
2074
+ "mask-image": [{
2075
+ mask: ["none", d, c]
2076
+ }],
2077
+ // ---------------
2078
+ // --- Filters ---
2079
+ // ---------------
2080
+ /**
2081
+ * Filter
2082
+ * @see https://tailwindcss.com/docs/filter
2083
+ */
2084
+ filter: [{
2085
+ filter: [
2086
+ // Deprecated since Tailwind CSS v3.0.0
2087
+ "",
2088
+ "none",
2089
+ d,
2090
+ c
2091
+ ]
2092
+ }],
2093
+ /**
2094
+ * Blur
2095
+ * @see https://tailwindcss.com/docs/blur
2096
+ */
2097
+ blur: [{
2098
+ blur: ve()
2099
+ }],
2100
+ /**
2101
+ * Brightness
2102
+ * @see https://tailwindcss.com/docs/brightness
2103
+ */
2104
+ brightness: [{
2105
+ brightness: [p, d, c]
2106
+ }],
2107
+ /**
2108
+ * Contrast
2109
+ * @see https://tailwindcss.com/docs/contrast
2110
+ */
2111
+ contrast: [{
2112
+ contrast: [p, d, c]
2113
+ }],
2114
+ /**
2115
+ * Drop Shadow
2116
+ * @see https://tailwindcss.com/docs/drop-shadow
2117
+ */
2118
+ "drop-shadow": [{
2119
+ "drop-shadow": [
2120
+ // Deprecated since Tailwind CSS v4.0.0
2121
+ "",
2122
+ "none",
2123
+ T,
2124
+ te,
2125
+ ee
2126
+ ]
2127
+ }],
2128
+ /**
2129
+ * Drop Shadow Color
2130
+ * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color
2131
+ */
2132
+ "drop-shadow-color": [{
2133
+ "drop-shadow": f()
2134
+ }],
2135
+ /**
2136
+ * Grayscale
2137
+ * @see https://tailwindcss.com/docs/grayscale
2138
+ */
2139
+ grayscale: [{
2140
+ grayscale: ["", p, d, c]
2141
+ }],
2142
+ /**
2143
+ * Hue Rotate
2144
+ * @see https://tailwindcss.com/docs/hue-rotate
2145
+ */
2146
+ "hue-rotate": [{
2147
+ "hue-rotate": [p, d, c]
2148
+ }],
2149
+ /**
2150
+ * Invert
2151
+ * @see https://tailwindcss.com/docs/invert
2152
+ */
2153
+ invert: [{
2154
+ invert: ["", p, d, c]
2155
+ }],
2156
+ /**
2157
+ * Saturate
2158
+ * @see https://tailwindcss.com/docs/saturate
2159
+ */
2160
+ saturate: [{
2161
+ saturate: [p, d, c]
2162
+ }],
2163
+ /**
2164
+ * Sepia
2165
+ * @see https://tailwindcss.com/docs/sepia
2166
+ */
2167
+ sepia: [{
2168
+ sepia: ["", p, d, c]
2169
+ }],
2170
+ /**
2171
+ * Backdrop Filter
2172
+ * @see https://tailwindcss.com/docs/backdrop-filter
2173
+ */
2174
+ "backdrop-filter": [{
2175
+ "backdrop-filter": [
2176
+ // Deprecated since Tailwind CSS v3.0.0
2177
+ "",
2178
+ "none",
2179
+ d,
2180
+ c
2181
+ ]
2182
+ }],
2183
+ /**
2184
+ * Backdrop Blur
2185
+ * @see https://tailwindcss.com/docs/backdrop-blur
2186
+ */
2187
+ "backdrop-blur": [{
2188
+ "backdrop-blur": ve()
2189
+ }],
2190
+ /**
2191
+ * Backdrop Brightness
2192
+ * @see https://tailwindcss.com/docs/backdrop-brightness
2193
+ */
2194
+ "backdrop-brightness": [{
2195
+ "backdrop-brightness": [p, d, c]
2196
+ }],
2197
+ /**
2198
+ * Backdrop Contrast
2199
+ * @see https://tailwindcss.com/docs/backdrop-contrast
2200
+ */
2201
+ "backdrop-contrast": [{
2202
+ "backdrop-contrast": [p, d, c]
2203
+ }],
2204
+ /**
2205
+ * Backdrop Grayscale
2206
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
2207
+ */
2208
+ "backdrop-grayscale": [{
2209
+ "backdrop-grayscale": ["", p, d, c]
2210
+ }],
2211
+ /**
2212
+ * Backdrop Hue Rotate
2213
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
2214
+ */
2215
+ "backdrop-hue-rotate": [{
2216
+ "backdrop-hue-rotate": [p, d, c]
2217
+ }],
2218
+ /**
2219
+ * Backdrop Invert
2220
+ * @see https://tailwindcss.com/docs/backdrop-invert
2221
+ */
2222
+ "backdrop-invert": [{
2223
+ "backdrop-invert": ["", p, d, c]
2224
+ }],
2225
+ /**
2226
+ * Backdrop Opacity
2227
+ * @see https://tailwindcss.com/docs/backdrop-opacity
2228
+ */
2229
+ "backdrop-opacity": [{
2230
+ "backdrop-opacity": [p, d, c]
2231
+ }],
2232
+ /**
2233
+ * Backdrop Saturate
2234
+ * @see https://tailwindcss.com/docs/backdrop-saturate
2235
+ */
2236
+ "backdrop-saturate": [{
2237
+ "backdrop-saturate": [p, d, c]
2238
+ }],
2239
+ /**
2240
+ * Backdrop Sepia
2241
+ * @see https://tailwindcss.com/docs/backdrop-sepia
2242
+ */
2243
+ "backdrop-sepia": [{
2244
+ "backdrop-sepia": ["", p, d, c]
2245
+ }],
2246
+ // --------------
2247
+ // --- Tables ---
2248
+ // --------------
2249
+ /**
2250
+ * Border Collapse
2251
+ * @see https://tailwindcss.com/docs/border-collapse
2252
+ */
2253
+ "border-collapse": [{
2254
+ border: ["collapse", "separate"]
2255
+ }],
2256
+ /**
2257
+ * Border Spacing
2258
+ * @see https://tailwindcss.com/docs/border-spacing
2259
+ */
2260
+ "border-spacing": [{
2261
+ "border-spacing": u()
2262
+ }],
2263
+ /**
2264
+ * Border Spacing X
2265
+ * @see https://tailwindcss.com/docs/border-spacing
2266
+ */
2267
+ "border-spacing-x": [{
2268
+ "border-spacing-x": u()
2269
+ }],
2270
+ /**
2271
+ * Border Spacing Y
2272
+ * @see https://tailwindcss.com/docs/border-spacing
2273
+ */
2274
+ "border-spacing-y": [{
2275
+ "border-spacing-y": u()
2276
+ }],
2277
+ /**
2278
+ * Table Layout
2279
+ * @see https://tailwindcss.com/docs/table-layout
2280
+ */
2281
+ "table-layout": [{
2282
+ table: ["auto", "fixed"]
2283
+ }],
2284
+ /**
2285
+ * Caption Side
2286
+ * @see https://tailwindcss.com/docs/caption-side
2287
+ */
2288
+ caption: [{
2289
+ caption: ["top", "bottom"]
2290
+ }],
2291
+ // ---------------------------------
2292
+ // --- Transitions and Animation ---
2293
+ // ---------------------------------
2294
+ /**
2295
+ * Transition Property
2296
+ * @see https://tailwindcss.com/docs/transition-property
2297
+ */
2298
+ transition: [{
2299
+ transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", d, c]
2300
+ }],
2301
+ /**
2302
+ * Transition Behavior
2303
+ * @see https://tailwindcss.com/docs/transition-behavior
2304
+ */
2305
+ "transition-behavior": [{
2306
+ transition: ["normal", "discrete"]
2307
+ }],
2308
+ /**
2309
+ * Transition Duration
2310
+ * @see https://tailwindcss.com/docs/transition-duration
2311
+ */
2312
+ duration: [{
2313
+ duration: [p, "initial", d, c]
2314
+ }],
2315
+ /**
2316
+ * Transition Timing Function
2317
+ * @see https://tailwindcss.com/docs/transition-timing-function
2318
+ */
2319
+ ease: [{
2320
+ ease: ["linear", "initial", P, d, c]
2321
+ }],
2322
+ /**
2323
+ * Transition Delay
2324
+ * @see https://tailwindcss.com/docs/transition-delay
2325
+ */
2326
+ delay: [{
2327
+ delay: [p, d, c]
2328
+ }],
2329
+ /**
2330
+ * Animation
2331
+ * @see https://tailwindcss.com/docs/animation
2332
+ */
2333
+ animate: [{
2334
+ animate: ["none", E, d, c]
2335
+ }],
2336
+ // ------------------
2337
+ // --- Transforms ---
2338
+ // ------------------
2339
+ /**
2340
+ * Backface Visibility
2341
+ * @see https://tailwindcss.com/docs/backface-visibility
2342
+ */
2343
+ backface: [{
2344
+ backface: ["hidden", "visible"]
2345
+ }],
2346
+ /**
2347
+ * Perspective
2348
+ * @see https://tailwindcss.com/docs/perspective
2349
+ */
2350
+ perspective: [{
2351
+ perspective: [C, d, c]
2352
+ }],
2353
+ /**
2354
+ * Perspective Origin
2355
+ * @see https://tailwindcss.com/docs/perspective-origin
2356
+ */
2357
+ "perspective-origin": [{
2358
+ "perspective-origin": z()
2359
+ }],
2360
+ /**
2361
+ * Rotate
2362
+ * @see https://tailwindcss.com/docs/rotate
2363
+ */
2364
+ rotate: [{
2365
+ rotate: J()
2366
+ }],
2367
+ /**
2368
+ * Rotate X
2369
+ * @see https://tailwindcss.com/docs/rotate
2370
+ */
2371
+ "rotate-x": [{
2372
+ "rotate-x": J()
2373
+ }],
2374
+ /**
2375
+ * Rotate Y
2376
+ * @see https://tailwindcss.com/docs/rotate
2377
+ */
2378
+ "rotate-y": [{
2379
+ "rotate-y": J()
2380
+ }],
2381
+ /**
2382
+ * Rotate Z
2383
+ * @see https://tailwindcss.com/docs/rotate
2384
+ */
2385
+ "rotate-z": [{
2386
+ "rotate-z": J()
2387
+ }],
2388
+ /**
2389
+ * Scale
2390
+ * @see https://tailwindcss.com/docs/scale
2391
+ */
2392
+ scale: [{
2393
+ scale: H()
2394
+ }],
2395
+ /**
2396
+ * Scale X
2397
+ * @see https://tailwindcss.com/docs/scale
2398
+ */
2399
+ "scale-x": [{
2400
+ "scale-x": H()
2401
+ }],
2402
+ /**
2403
+ * Scale Y
2404
+ * @see https://tailwindcss.com/docs/scale
2405
+ */
2406
+ "scale-y": [{
2407
+ "scale-y": H()
2408
+ }],
2409
+ /**
2410
+ * Scale Z
2411
+ * @see https://tailwindcss.com/docs/scale
2412
+ */
2413
+ "scale-z": [{
2414
+ "scale-z": H()
2415
+ }],
2416
+ /**
2417
+ * Scale 3D
2418
+ * @see https://tailwindcss.com/docs/scale
2419
+ */
2420
+ "scale-3d": ["scale-3d"],
2421
+ /**
2422
+ * Skew
2423
+ * @see https://tailwindcss.com/docs/skew
2424
+ */
2425
+ skew: [{
2426
+ skew: ae()
2427
+ }],
2428
+ /**
2429
+ * Skew X
2430
+ * @see https://tailwindcss.com/docs/skew
2431
+ */
2432
+ "skew-x": [{
2433
+ "skew-x": ae()
2434
+ }],
2435
+ /**
2436
+ * Skew Y
2437
+ * @see https://tailwindcss.com/docs/skew
2438
+ */
2439
+ "skew-y": [{
2440
+ "skew-y": ae()
2441
+ }],
2442
+ /**
2443
+ * Transform
2444
+ * @see https://tailwindcss.com/docs/transform
2445
+ */
2446
+ transform: [{
2447
+ transform: [d, c, "", "none", "gpu", "cpu"]
2448
+ }],
2449
+ /**
2450
+ * Transform Origin
2451
+ * @see https://tailwindcss.com/docs/transform-origin
2452
+ */
2453
+ "transform-origin": [{
2454
+ origin: z()
2455
+ }],
2456
+ /**
2457
+ * Transform Style
2458
+ * @see https://tailwindcss.com/docs/transform-style
2459
+ */
2460
+ "transform-style": [{
2461
+ transform: ["3d", "flat"]
2462
+ }],
2463
+ /**
2464
+ * Translate
2465
+ * @see https://tailwindcss.com/docs/translate
2466
+ */
2467
+ translate: [{
2468
+ translate: K()
2469
+ }],
2470
+ /**
2471
+ * Translate X
2472
+ * @see https://tailwindcss.com/docs/translate
2473
+ */
2474
+ "translate-x": [{
2475
+ "translate-x": K()
2476
+ }],
2477
+ /**
2478
+ * Translate Y
2479
+ * @see https://tailwindcss.com/docs/translate
2480
+ */
2481
+ "translate-y": [{
2482
+ "translate-y": K()
2483
+ }],
2484
+ /**
2485
+ * Translate Z
2486
+ * @see https://tailwindcss.com/docs/translate
2487
+ */
2488
+ "translate-z": [{
2489
+ "translate-z": K()
2490
+ }],
2491
+ /**
2492
+ * Translate None
2493
+ * @see https://tailwindcss.com/docs/translate
2494
+ */
2495
+ "translate-none": ["translate-none"],
2496
+ // ---------------------
2497
+ // --- Interactivity ---
2498
+ // ---------------------
2499
+ /**
2500
+ * Accent Color
2501
+ * @see https://tailwindcss.com/docs/accent-color
2502
+ */
2503
+ accent: [{
2504
+ accent: f()
2505
+ }],
2506
+ /**
2507
+ * Appearance
2508
+ * @see https://tailwindcss.com/docs/appearance
2509
+ */
2510
+ appearance: [{
2511
+ appearance: ["none", "auto"]
2512
+ }],
2513
+ /**
2514
+ * Caret Color
2515
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
2516
+ */
2517
+ "caret-color": [{
2518
+ caret: f()
2519
+ }],
2520
+ /**
2521
+ * Color Scheme
2522
+ * @see https://tailwindcss.com/docs/color-scheme
2523
+ */
2524
+ "color-scheme": [{
2525
+ scheme: ["normal", "dark", "light", "light-dark", "only-dark", "only-light"]
2526
+ }],
2527
+ /**
2528
+ * Cursor
2529
+ * @see https://tailwindcss.com/docs/cursor
2530
+ */
2531
+ cursor: [{
2532
+ 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", d, c]
2533
+ }],
2534
+ /**
2535
+ * Field Sizing
2536
+ * @see https://tailwindcss.com/docs/field-sizing
2537
+ */
2538
+ "field-sizing": [{
2539
+ "field-sizing": ["fixed", "content"]
2540
+ }],
2541
+ /**
2542
+ * Pointer Events
2543
+ * @see https://tailwindcss.com/docs/pointer-events
2544
+ */
2545
+ "pointer-events": [{
2546
+ "pointer-events": ["auto", "none"]
2547
+ }],
2548
+ /**
2549
+ * Resize
2550
+ * @see https://tailwindcss.com/docs/resize
2551
+ */
2552
+ resize: [{
2553
+ resize: ["none", "", "y", "x"]
2554
+ }],
2555
+ /**
2556
+ * Scroll Behavior
2557
+ * @see https://tailwindcss.com/docs/scroll-behavior
2558
+ */
2559
+ "scroll-behavior": [{
2560
+ scroll: ["auto", "smooth"]
2561
+ }],
2562
+ /**
2563
+ * Scroll Margin
2564
+ * @see https://tailwindcss.com/docs/scroll-margin
2565
+ */
2566
+ "scroll-m": [{
2567
+ "scroll-m": u()
2568
+ }],
2569
+ /**
2570
+ * Scroll Margin X
2571
+ * @see https://tailwindcss.com/docs/scroll-margin
2572
+ */
2573
+ "scroll-mx": [{
2574
+ "scroll-mx": u()
2575
+ }],
2576
+ /**
2577
+ * Scroll Margin Y
2578
+ * @see https://tailwindcss.com/docs/scroll-margin
2579
+ */
2580
+ "scroll-my": [{
2581
+ "scroll-my": u()
2582
+ }],
2583
+ /**
2584
+ * Scroll Margin Start
2585
+ * @see https://tailwindcss.com/docs/scroll-margin
2586
+ */
2587
+ "scroll-ms": [{
2588
+ "scroll-ms": u()
2589
+ }],
2590
+ /**
2591
+ * Scroll Margin End
2592
+ * @see https://tailwindcss.com/docs/scroll-margin
2593
+ */
2594
+ "scroll-me": [{
2595
+ "scroll-me": u()
2596
+ }],
2597
+ /**
2598
+ * Scroll Margin Top
2599
+ * @see https://tailwindcss.com/docs/scroll-margin
2600
+ */
2601
+ "scroll-mt": [{
2602
+ "scroll-mt": u()
2603
+ }],
2604
+ /**
2605
+ * Scroll Margin Right
2606
+ * @see https://tailwindcss.com/docs/scroll-margin
2607
+ */
2608
+ "scroll-mr": [{
2609
+ "scroll-mr": u()
2610
+ }],
2611
+ /**
2612
+ * Scroll Margin Bottom
2613
+ * @see https://tailwindcss.com/docs/scroll-margin
2614
+ */
2615
+ "scroll-mb": [{
2616
+ "scroll-mb": u()
2617
+ }],
2618
+ /**
2619
+ * Scroll Margin Left
2620
+ * @see https://tailwindcss.com/docs/scroll-margin
2621
+ */
2622
+ "scroll-ml": [{
2623
+ "scroll-ml": u()
2624
+ }],
2625
+ /**
2626
+ * Scroll Padding
2627
+ * @see https://tailwindcss.com/docs/scroll-padding
2628
+ */
2629
+ "scroll-p": [{
2630
+ "scroll-p": u()
2631
+ }],
2632
+ /**
2633
+ * Scroll Padding X
2634
+ * @see https://tailwindcss.com/docs/scroll-padding
2635
+ */
2636
+ "scroll-px": [{
2637
+ "scroll-px": u()
2638
+ }],
2639
+ /**
2640
+ * Scroll Padding Y
2641
+ * @see https://tailwindcss.com/docs/scroll-padding
2642
+ */
2643
+ "scroll-py": [{
2644
+ "scroll-py": u()
2645
+ }],
2646
+ /**
2647
+ * Scroll Padding Start
2648
+ * @see https://tailwindcss.com/docs/scroll-padding
2649
+ */
2650
+ "scroll-ps": [{
2651
+ "scroll-ps": u()
2652
+ }],
2653
+ /**
2654
+ * Scroll Padding End
2655
+ * @see https://tailwindcss.com/docs/scroll-padding
2656
+ */
2657
+ "scroll-pe": [{
2658
+ "scroll-pe": u()
2659
+ }],
2660
+ /**
2661
+ * Scroll Padding Top
2662
+ * @see https://tailwindcss.com/docs/scroll-padding
2663
+ */
2664
+ "scroll-pt": [{
2665
+ "scroll-pt": u()
2666
+ }],
2667
+ /**
2668
+ * Scroll Padding Right
2669
+ * @see https://tailwindcss.com/docs/scroll-padding
2670
+ */
2671
+ "scroll-pr": [{
2672
+ "scroll-pr": u()
2673
+ }],
2674
+ /**
2675
+ * Scroll Padding Bottom
2676
+ * @see https://tailwindcss.com/docs/scroll-padding
2677
+ */
2678
+ "scroll-pb": [{
2679
+ "scroll-pb": u()
2680
+ }],
2681
+ /**
2682
+ * Scroll Padding Left
2683
+ * @see https://tailwindcss.com/docs/scroll-padding
2684
+ */
2685
+ "scroll-pl": [{
2686
+ "scroll-pl": u()
2687
+ }],
2688
+ /**
2689
+ * Scroll Snap Align
2690
+ * @see https://tailwindcss.com/docs/scroll-snap-align
2691
+ */
2692
+ "snap-align": [{
2693
+ snap: ["start", "end", "center", "align-none"]
2694
+ }],
2695
+ /**
2696
+ * Scroll Snap Stop
2697
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
2698
+ */
2699
+ "snap-stop": [{
2700
+ snap: ["normal", "always"]
2701
+ }],
2702
+ /**
2703
+ * Scroll Snap Type
2704
+ * @see https://tailwindcss.com/docs/scroll-snap-type
2705
+ */
2706
+ "snap-type": [{
2707
+ snap: ["none", "x", "y", "both"]
2708
+ }],
2709
+ /**
2710
+ * Scroll Snap Type Strictness
2711
+ * @see https://tailwindcss.com/docs/scroll-snap-type
2712
+ */
2713
+ "snap-strictness": [{
2714
+ snap: ["mandatory", "proximity"]
2715
+ }],
2716
+ /**
2717
+ * Touch Action
2718
+ * @see https://tailwindcss.com/docs/touch-action
2719
+ */
2720
+ touch: [{
2721
+ touch: ["auto", "none", "manipulation"]
2722
+ }],
2723
+ /**
2724
+ * Touch Action X
2725
+ * @see https://tailwindcss.com/docs/touch-action
2726
+ */
2727
+ "touch-x": [{
2728
+ "touch-pan": ["x", "left", "right"]
2729
+ }],
2730
+ /**
2731
+ * Touch Action Y
2732
+ * @see https://tailwindcss.com/docs/touch-action
2733
+ */
2734
+ "touch-y": [{
2735
+ "touch-pan": ["y", "up", "down"]
2736
+ }],
2737
+ /**
2738
+ * Touch Action Pinch Zoom
2739
+ * @see https://tailwindcss.com/docs/touch-action
2740
+ */
2741
+ "touch-pz": ["touch-pinch-zoom"],
2742
+ /**
2743
+ * User Select
2744
+ * @see https://tailwindcss.com/docs/user-select
2745
+ */
2746
+ select: [{
2747
+ select: ["none", "text", "all", "auto"]
2748
+ }],
2749
+ /**
2750
+ * Will Change
2751
+ * @see https://tailwindcss.com/docs/will-change
2752
+ */
2753
+ "will-change": [{
2754
+ "will-change": ["auto", "scroll", "contents", "transform", d, c]
2755
+ }],
2756
+ // -----------
2757
+ // --- SVG ---
2758
+ // -----------
2759
+ /**
2760
+ * Fill
2761
+ * @see https://tailwindcss.com/docs/fill
2762
+ */
2763
+ fill: [{
2764
+ fill: ["none", ...f()]
2765
+ }],
2766
+ /**
2767
+ * Stroke Width
2768
+ * @see https://tailwindcss.com/docs/stroke-width
2769
+ */
2770
+ "stroke-w": [{
2771
+ stroke: [p, X, V, ce]
2772
+ }],
2773
+ /**
2774
+ * Stroke
2775
+ * @see https://tailwindcss.com/docs/stroke
2776
+ */
2777
+ stroke: [{
2778
+ stroke: ["none", ...f()]
2779
+ }],
2780
+ // ---------------------
2781
+ // --- Accessibility ---
2782
+ // ---------------------
2783
+ /**
2784
+ * Forced Color Adjust
2785
+ * @see https://tailwindcss.com/docs/forced-color-adjust
2786
+ */
2787
+ "forced-color-adjust": [{
2788
+ "forced-color-adjust": ["auto", "none"]
2789
+ }]
2790
+ },
2791
+ conflictingClassGroups: {
2792
+ overflow: ["overflow-x", "overflow-y"],
2793
+ overscroll: ["overscroll-x", "overscroll-y"],
2794
+ inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
2795
+ "inset-x": ["right", "left"],
2796
+ "inset-y": ["top", "bottom"],
2797
+ flex: ["basis", "grow", "shrink"],
2798
+ gap: ["gap-x", "gap-y"],
2799
+ p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
2800
+ px: ["pr", "pl"],
2801
+ py: ["pt", "pb"],
2802
+ m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
2803
+ mx: ["mr", "ml"],
2804
+ my: ["mt", "mb"],
2805
+ size: ["w", "h"],
2806
+ "font-size": ["leading"],
2807
+ "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
2808
+ "fvn-ordinal": ["fvn-normal"],
2809
+ "fvn-slashed-zero": ["fvn-normal"],
2810
+ "fvn-figure": ["fvn-normal"],
2811
+ "fvn-spacing": ["fvn-normal"],
2812
+ "fvn-fraction": ["fvn-normal"],
2813
+ "line-clamp": ["display", "overflow"],
2814
+ 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"],
2815
+ "rounded-s": ["rounded-ss", "rounded-es"],
2816
+ "rounded-e": ["rounded-se", "rounded-ee"],
2817
+ "rounded-t": ["rounded-tl", "rounded-tr"],
2818
+ "rounded-r": ["rounded-tr", "rounded-br"],
2819
+ "rounded-b": ["rounded-br", "rounded-bl"],
2820
+ "rounded-l": ["rounded-tl", "rounded-bl"],
2821
+ "border-spacing": ["border-spacing-x", "border-spacing-y"],
2822
+ "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"],
2823
+ "border-w-x": ["border-w-r", "border-w-l"],
2824
+ "border-w-y": ["border-w-t", "border-w-b"],
2825
+ "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"],
2826
+ "border-color-x": ["border-color-r", "border-color-l"],
2827
+ "border-color-y": ["border-color-t", "border-color-b"],
2828
+ translate: ["translate-x", "translate-y", "translate-none"],
2829
+ "translate-none": ["translate", "translate-x", "translate-y", "translate-z"],
2830
+ "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
2831
+ "scroll-mx": ["scroll-mr", "scroll-ml"],
2832
+ "scroll-my": ["scroll-mt", "scroll-mb"],
2833
+ "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
2834
+ "scroll-px": ["scroll-pr", "scroll-pl"],
2835
+ "scroll-py": ["scroll-pt", "scroll-pb"],
2836
+ touch: ["touch-x", "touch-y", "touch-pz"],
2837
+ "touch-x": ["touch"],
2838
+ "touch-y": ["touch"],
2839
+ "touch-pz": ["touch"]
2840
+ },
2841
+ conflictingClassGroupModifiers: {
2842
+ "font-size": ["leading"]
2843
+ },
2844
+ orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"]
2845
+ };
2846
+ }, Qt = /* @__PURE__ */ zt(Dt);
2847
+ var me = /* @__PURE__ */ new Map(), re = /* @__PURE__ */ new WeakMap(), Ie = 0, qt;
2848
+ function Xt(e) {
2849
+ return e ? (re.has(e) || (Ie += 1, re.set(e, Ie.toString())), re.get(e)) : "0";
2850
+ }
2851
+ function Yt(e) {
2852
+ return Object.keys(e).sort().filter(
2853
+ (t) => e[t] !== void 0
2854
+ ).map((t) => `${t}_${t === "root" ? Xt(e.root) : e[t]}`).toString();
2855
+ }
2856
+ function Zt(e) {
2857
+ const t = Yt(e);
2858
+ let o = me.get(t);
2859
+ if (!o) {
2860
+ const r = /* @__PURE__ */ new Map();
2861
+ let s;
2862
+ const a = new IntersectionObserver((n) => {
2863
+ n.forEach((i) => {
2864
+ var l;
2865
+ const m = i.isIntersecting && s.some((g) => i.intersectionRatio >= g);
2866
+ e.trackVisibility && typeof i.isVisible > "u" && (i.isVisible = m), (l = r.get(i.target)) == null || l.forEach((g) => {
2867
+ g(m, i);
2868
+ });
2869
+ });
2870
+ }, e);
2871
+ s = a.thresholds || (Array.isArray(e.threshold) ? e.threshold : [e.threshold || 0]), o = {
2872
+ id: t,
2873
+ observer: a,
2874
+ elements: r
2875
+ }, me.set(t, o);
2876
+ }
2877
+ return o;
2878
+ }
2879
+ function Jt(e, t, o = {}, r = qt) {
2880
+ if (typeof window.IntersectionObserver > "u" && r !== void 0) {
2881
+ const l = e.getBoundingClientRect();
2882
+ return t(r, {
2883
+ isIntersecting: r,
2884
+ target: e,
2885
+ intersectionRatio: typeof o.threshold == "number" ? o.threshold : 0,
2886
+ time: 0,
2887
+ boundingClientRect: l,
2888
+ intersectionRect: l,
2889
+ rootBounds: l
2890
+ }), () => {
2891
+ };
2892
+ }
2893
+ const { id: s, observer: a, elements: n } = Zt(o), i = n.get(e) || [];
2894
+ return n.has(e) || n.set(e, i), i.push(t), a.observe(e), function() {
2895
+ i.splice(i.indexOf(t), 1), i.length === 0 && (n.delete(e), a.unobserve(e)), n.size === 0 && (a.disconnect(), me.delete(s));
2896
+ };
2897
+ }
2898
+ function Ht({
2899
+ threshold: e,
2900
+ delay: t,
2901
+ trackVisibility: o,
2902
+ rootMargin: r,
2903
+ root: s,
2904
+ triggerOnce: a,
2905
+ skip: n,
2906
+ initialInView: i,
2907
+ fallbackInView: l,
2908
+ onChange: m
2909
+ } = {}) {
2910
+ var g;
2911
+ const [h, v] = U.useState(null), T = U.useRef(m), w = U.useRef(i), [C, y] = U.useState({
2912
+ inView: !!i,
2913
+ entry: void 0
2914
+ });
2915
+ T.current = m, U.useEffect(
2916
+ () => {
2917
+ if (w.current === void 0 && (w.current = i), n || !h) return;
2918
+ let S;
2919
+ return S = Jt(
2920
+ h,
2921
+ (z, R) => {
2922
+ const G = w.current;
2923
+ w.current = z, !(G === void 0 && !z) && (y({
2924
+ inView: z,
2925
+ entry: R
2926
+ }), T.current && T.current(z, R), R.isIntersecting && a && S && (S(), S = void 0));
2927
+ },
2928
+ {
2929
+ root: s,
2930
+ rootMargin: r,
2931
+ threshold: e,
2932
+ // @ts-expect-error
2933
+ trackVisibility: o,
2934
+ delay: t
2935
+ },
2936
+ l
2937
+ ), () => {
2938
+ S && S();
2939
+ };
2940
+ },
2941
+ // We break the rule here, because we aren't including the actual `threshold` variable
2942
+ // eslint-disable-next-line react-hooks/exhaustive-deps
2943
+ [
2944
+ // If the threshold is an array, convert it to a string, so it won't change between renders.
2945
+ Array.isArray(e) ? e.toString() : e,
2946
+ h,
2947
+ s,
2948
+ r,
2949
+ a,
2950
+ n,
2951
+ o,
2952
+ l,
2953
+ t
2954
+ ]
2955
+ );
2956
+ const P = (g = C.entry) == null ? void 0 : g.target, E = U.useRef(void 0);
2957
+ !h && P && !a && !n && E.current !== P && (E.current = P, y({
2958
+ inView: !!i,
2959
+ entry: void 0
2960
+ }), w.current = i);
2961
+ const A = [v, C.inView, C.entry];
2962
+ return A.ref = A[0], A.inView = A[1], A.entry = A[2], A;
2963
+ }
2964
+ const Kt = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), er = (e) => e.replace(
2965
+ /^([A-Z])|[\s-_]+(\w)/g,
2966
+ (t, o, r) => r ? r.toUpperCase() : o.toLowerCase()
2967
+ ), Me = (e) => {
2968
+ const t = er(e);
2969
+ return t.charAt(0).toUpperCase() + t.slice(1);
2970
+ }, De = (...e) => e.filter((t, o, r) => !!t && t.trim() !== "" && r.indexOf(t) === o).join(" ").trim(), tr = (e) => {
2971
+ for (const t in e)
2972
+ if (t.startsWith("aria-") || t === "role" || t === "title")
2973
+ return !0;
2974
+ };
2975
+ var rr = {
2976
+ xmlns: "http://www.w3.org/2000/svg",
2977
+ width: 24,
2978
+ height: 24,
2979
+ viewBox: "0 0 24 24",
2980
+ fill: "none",
2981
+ stroke: "currentColor",
2982
+ strokeWidth: 2,
2983
+ strokeLinecap: "round",
2984
+ strokeLinejoin: "round"
2985
+ };
2986
+ const or = Pe(
2987
+ ({
2988
+ color: e = "currentColor",
2989
+ size: t = 24,
2990
+ strokeWidth: o = 2,
2991
+ absoluteStrokeWidth: r,
2992
+ className: s = "",
2993
+ children: a,
2994
+ iconNode: n,
2995
+ ...i
2996
+ }, l) => de(
2997
+ "svg",
2998
+ {
2999
+ ref: l,
3000
+ ...rr,
3001
+ width: t,
3002
+ height: t,
3003
+ stroke: e,
3004
+ strokeWidth: r ? Number(o) * 24 / Number(t) : o,
3005
+ className: De("lucide", s),
3006
+ ...!a && !tr(i) && { "aria-hidden": "true" },
3007
+ ...i
3008
+ },
3009
+ [
3010
+ ...n.map(([m, g]) => de(m, g)),
3011
+ ...Array.isArray(a) ? a : [a]
3012
+ ]
3013
+ )
3014
+ );
3015
+ const nr = (e, t) => {
3016
+ const o = Pe(
3017
+ ({ className: r, ...s }, a) => de(or, {
3018
+ ref: a,
3019
+ iconNode: t,
3020
+ className: De(
3021
+ `lucide-${Kt(Me(e))}`,
3022
+ `lucide-${e}`,
3023
+ r
3024
+ ),
3025
+ ...s
3026
+ })
3027
+ );
3028
+ return o.displayName = Me(e), o;
3029
+ };
3030
+ const sr = [
3031
+ ["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
3032
+ ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
3033
+ ], ar = nr("search", sr);
3034
+ function ir(e) {
3035
+ const t = e.length;
3036
+ if (t < 2) return 0;
3037
+ const o = (t - 1) / 2, r = rt(e) ?? 0;
3038
+ let s = 0, a = 0;
3039
+ for (let n = 0; n < t; n++) {
3040
+ const i = n, l = e[n], m = i - o;
3041
+ s += m * (l - r), a += m * m;
3042
+ }
3043
+ return a === 0 ? 0 : s / a;
3044
+ }
3045
+ function lr(e, t, o) {
3046
+ if (o === "default") return 0;
3047
+ const r = e.map((s) => typeof t == "function" ? t(s) : Number(s[t]));
3048
+ switch (o) {
3049
+ case "sum":
3050
+ return ot(r);
3051
+ case "deviation":
3052
+ return Ye(r) ?? 0;
3053
+ case "trend":
3054
+ return ir(r);
3055
+ default:
3056
+ return 0;
3057
+ }
3058
+ }
3059
+ function Qe(...e) {
3060
+ return Qt(nt(e));
3061
+ }
3062
+ function cr(e, t) {
3063
+ const [o, r] = fe(e);
3064
+ return Ne(() => {
3065
+ const s = setTimeout(() => {
3066
+ r(e);
3067
+ }, t);
3068
+ return () => {
3069
+ clearTimeout(s);
3070
+ };
3071
+ }, [e, t]), o;
3072
+ }
3073
+ const dr = ({ height: e }) => /* @__PURE__ */ L(
3074
+ "div",
3075
+ {
3076
+ className: "w-full animate-pulse bg-canvas-subtle rounded-md overflow-hidden",
3077
+ style: { height: e },
3078
+ children: /* @__PURE__ */ L("div", { className: "h-full w-full bg-gradient-to-r from-transparent via-canvas-border/50 to-transparent -translate-x-full animate-[shimmer_1.5s_infinite]" })
3079
+ }
3080
+ ), ur = ({
3081
+ facetKey: e,
3082
+ data: t,
3083
+ ChartComponent: o,
3084
+ SkeletonComponent: r = dr,
3085
+ height: s,
3086
+ yDomain: a,
3087
+ onClick: n
3088
+ }) => {
3089
+ const { ref: i, inView: l } = Ht({
3090
+ triggerOnce: !0,
3091
+ rootMargin: "200px 0px"
3092
+ }), m = !!n;
3093
+ return /* @__PURE__ */ Y(
3094
+ "div",
3095
+ {
3096
+ ref: i,
3097
+ onClick: () => m && n(e, t),
3098
+ onKeyDown: (g) => {
3099
+ m && (g.key === "Enter" || g.key === " ") && (g.preventDefault(), n(e, t));
3100
+ },
3101
+ role: m ? "button" : void 0,
3102
+ tabIndex: m ? 0 : void 0,
3103
+ className: Qe(
3104
+ "flex flex-col border border-canvas-border rounded-lg p-4 bg-canvas-subtle/30 transition-all duration-300",
3105
+ m && "cursor-pointer hover:border-indigo-400 hover:ring-2 hover:ring-indigo-100 hover:shadow-md active:scale-[0.99]"
3106
+ ),
3107
+ style: { opacity: l ? 1 : 0.6 },
3108
+ children: [
3109
+ /* @__PURE__ */ Y("div", { className: "flex items-center justify-between mb-4", children: [
3110
+ /* @__PURE__ */ L("h3", { className: "text-sm font-medium text-canvas-fg/70 truncate", title: e, children: e }),
3111
+ m && /* @__PURE__ */ L("div", { className: "text-xs text-indigo-400/0 group-hover:text-indigo-500/100 transition-opacity", children: "↗" })
3112
+ ] }),
3113
+ /* @__PURE__ */ L("div", { style: { height: s, position: "relative" }, children: l ? /* @__PURE__ */ L(
3114
+ o,
3115
+ {
3116
+ data: t,
3117
+ width: void 0,
3118
+ height: s,
3119
+ yDomain: a
3120
+ }
3121
+ ) : /* @__PURE__ */ L(r, { height: s }) })
3122
+ ]
3123
+ }
3124
+ );
3125
+ };
3126
+ function pr({
3127
+ data: e,
3128
+ facetKey: t,
3129
+ ChartComponent: o,
3130
+ valueKey: r,
3131
+ yDomain: s,
3132
+ sharedScale: a = !0,
3133
+ className: n,
3134
+ minChartWidth: i = 300,
3135
+ height: l = 200,
3136
+ SkeletonComponent: m,
3137
+ searchable: g,
3138
+ query: h,
3139
+ onSearchChange: v,
3140
+ onChartClick: T,
3141
+ sortConfig: w = { type: "default", direction: "asc" }
3142
+ // Default sort
3143
+ }) {
3144
+ const [C, y] = fe(""), P = h !== void 0, E = P ? h : C, A = (u) => {
3145
+ const b = u.target.value;
3146
+ P && v ? v(b) : y(b);
3147
+ }, S = cr(E, 300), z = ie(() => Array.from(
3148
+ et(e, (u) => typeof t == "function" ? t(u) : String(u[t]))
3149
+ ), [e, t]), R = ie(() => {
3150
+ let u = z;
3151
+ if (S && (u = z.filter(
3152
+ ([b]) => b.toLowerCase().includes(S.toLowerCase())
3153
+ )), w.type !== "default") {
3154
+ const b = u.map(([I, N]) => {
3155
+ let $ = 0;
3156
+ return typeof w.type == "function" ? $ = w.type(N) : r && typeof w.type == "string" && ($ = lr(N, r, w.type)), {
3157
+ key: I,
3158
+ subset: N,
3159
+ metric: $
3160
+ };
3161
+ });
3162
+ return b.sort((I, N) => w.direction === "asc" ? I.metric - N.metric : N.metric - I.metric), b.map((I) => [I.key, I.subset]);
3163
+ }
3164
+ return u.sort((b, I) => b[0].localeCompare(I[0]));
3165
+ }, [z, S, w, r]), G = ie(() => {
3166
+ if (!a && !s) return;
3167
+ if (s) return s;
3168
+ if (!r) return;
3169
+ let u = 1 / 0, b = -1 / 0;
3170
+ return e.forEach((I) => {
3171
+ const N = typeof r == "function" ? r(I) : Number(I[r]);
3172
+ N < u && (u = N), N > b && (b = N);
3173
+ }), u > 0 && (u = 0), [u, b];
3174
+ }, [e, a, s, r]);
3175
+ return /* @__PURE__ */ Y("div", { className: Qe("w-full space-y-4", n), children: [
3176
+ g && /* @__PURE__ */ Y("div", { className: "relative max-w-sm", children: [
3177
+ /* @__PURE__ */ L(ar, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-canvas-fg/40" }),
3178
+ /* @__PURE__ */ L(
3179
+ "input",
3180
+ {
3181
+ type: "text",
3182
+ placeholder: "Search charts...",
3183
+ value: E,
3184
+ onChange: A,
3185
+ className: "w-full pl-9 pr-4 py-2 text-sm border border-canvas-border rounded-md bg-canvas-bg focus:ring-2 focus:ring-indigo-500 outline-none transition-all"
3186
+ }
3187
+ ),
3188
+ /* @__PURE__ */ Y("div", { className: "absolute right-3 top-1/2 -translate-y-1/2 text-xs text-canvas-fg/40 font-mono", children: [
3189
+ R.length,
3190
+ " / ",
3191
+ z.length
3192
+ ] })
3193
+ ] }),
3194
+ R.length === 0 ? /* @__PURE__ */ L("div", { className: "p-8 text-center border border-dashed border-canvas-border rounded-lg text-canvas-fg/50", children: "No charts match your filter." }) : /* @__PURE__ */ L(
3195
+ "div",
3196
+ {
3197
+ className: "grid gap-4 w-full",
3198
+ style: {
3199
+ gridTemplateColumns: `repeat(auto-fill, minmax(${i}px, 1fr))`
3200
+ },
3201
+ children: R.map(([u, b]) => /* @__PURE__ */ L(
3202
+ ur,
3203
+ {
3204
+ facetKey: u,
3205
+ data: b,
3206
+ ChartComponent: o,
3207
+ SkeletonComponent: m,
3208
+ height: l,
3209
+ yDomain: G,
3210
+ onClick: T
3211
+ },
3212
+ u
3213
+ ))
3214
+ }
3215
+ )
3216
+ ] });
3217
+ }
3218
+ function gr(e, t) {
3219
+ const [o, r] = fe(() => {
3220
+ if (typeof window > "u") return t;
3221
+ const n = new URLSearchParams(window.location.search).get(e);
3222
+ return n === null ? t : typeof t == "boolean" ? n === "true" : n;
3223
+ }), s = qe((a) => {
3224
+ r(a);
3225
+ const n = new URLSearchParams(window.location.search);
3226
+ a === t || a === "" ? n.delete(e) : n.set(e, String(a));
3227
+ const i = `${window.location.pathname}?${n.toString()}`;
3228
+ window.history.replaceState({}, "", i);
3229
+ }, [e, t]);
3230
+ return Ne(() => {
3231
+ const a = () => {
3232
+ const i = new URLSearchParams(window.location.search).get(e);
3233
+ r(i === null ? t : typeof t == "boolean" ? i === "true" : i);
3234
+ };
3235
+ return window.addEventListener("popstate", a), () => window.removeEventListener("popstate", a);
3236
+ }, [e, t]), [o, s];
3237
+ }
3238
+ export {
3239
+ pr as Trellis,
3240
+ lr as calculateMetric,
3241
+ gr as useUrlState
3242
+ };