x-app-sdk 1.0.0

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