veloce-vue 0.14.0 → 0.16.0

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