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