@pagelines/sdk 1.0.298 → 1.0.299

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