@sawabona/forms 1.0.5 → 1.0.7

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