@payai/x402-solana-react 0.1.0-beta.0

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