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