@takazudo/zdtp 0.4.7 → 0.4.9

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