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