@lumiapassport/ui-kit 1.13.10 → 1.14.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.
- package/README.md +15 -4
- package/dist/iframe/index.html +1 -1
- package/dist/iframe/main.js +286 -59
- package/dist/iframe/main.js.map +1 -1
- package/dist/index.cjs +447 -597
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +250 -401
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -2455,6 +2455,7 @@ var init_iframe_manager = __esm({
|
|
|
2455
2455
|
this.iframe = null;
|
|
2456
2456
|
this.sessionToken = null;
|
|
2457
2457
|
this.isReady = false;
|
|
2458
|
+
// private themeColors?: IframeManagerConfig['themeColors']
|
|
2458
2459
|
// Message handling
|
|
2459
2460
|
this.pendingRequests = /* @__PURE__ */ new Map();
|
|
2460
2461
|
this.usedNonces = /* @__PURE__ */ new Set();
|
|
@@ -2474,14 +2475,13 @@ var init_iframe_manager = __esm({
|
|
|
2474
2475
|
this.projectId = config.projectId;
|
|
2475
2476
|
this.debug = config.debug || false;
|
|
2476
2477
|
this.onWalletReadyCallback = config.onWalletReady;
|
|
2477
|
-
this.themeColors = config.themeColors;
|
|
2478
2478
|
this.readyPromise = new Promise((resolve) => {
|
|
2479
2479
|
this.readyResolve = resolve;
|
|
2480
2480
|
});
|
|
2481
2481
|
this.log("[IframeManager] Initialized with:", {
|
|
2482
2482
|
iframeUrl: this.iframeUrl,
|
|
2483
|
-
projectId: this.projectId
|
|
2484
|
-
hasThemeColors: !!this.themeColors
|
|
2483
|
+
projectId: this.projectId
|
|
2484
|
+
// hasThemeColors: !!this.themeColors
|
|
2485
2485
|
});
|
|
2486
2486
|
}
|
|
2487
2487
|
/**
|
|
@@ -2493,16 +2493,6 @@ var init_iframe_manager = __esm({
|
|
|
2493
2493
|
}
|
|
2494
2494
|
this.iframe = document.createElement("iframe");
|
|
2495
2495
|
let iframeUrl = this.iframeUrl;
|
|
2496
|
-
if (this.themeColors) {
|
|
2497
|
-
const params = new URLSearchParams();
|
|
2498
|
-
if (this.themeColors.background) params.set("bg", this.themeColors.background);
|
|
2499
|
-
if (this.themeColors.text) params.set("text", this.themeColors.text);
|
|
2500
|
-
if (this.themeColors.textSecondary) params.set("textSec", this.themeColors.textSecondary);
|
|
2501
|
-
if (this.themeColors.border) params.set("border", this.themeColors.border);
|
|
2502
|
-
if (params.toString()) {
|
|
2503
|
-
iframeUrl += (iframeUrl.includes("?") ? "&" : "?") + params.toString();
|
|
2504
|
-
}
|
|
2505
|
-
}
|
|
2506
2496
|
this.iframe.src = iframeUrl;
|
|
2507
2497
|
this.iframe.id = "lumia-passport-iframe";
|
|
2508
2498
|
this.iframe.style.display = "none";
|
|
@@ -4281,6 +4271,7 @@ __export(index_exports, {
|
|
|
4281
4271
|
useLumiaPassportError: () => useLumiaPassportError,
|
|
4282
4272
|
useLumiaPassportHasServerVault: () => useLumiaPassportHasServerVault,
|
|
4283
4273
|
useLumiaPassportIFrameReady: () => useLumiaPassportIFrameReady,
|
|
4274
|
+
useLumiaPassportIsMobileView: () => useLumiaPassportIsMobileView,
|
|
4284
4275
|
useLumiaPassportLinkedProfiles: () => useLumiaPassportLinkedProfiles,
|
|
4285
4276
|
useLumiaPassportLoadingStatus: () => useLumiaPassportLoadingStatus,
|
|
4286
4277
|
useLumiaPassportOpen: () => useLumiaPassportOpen,
|
|
@@ -4297,22 +4288,22 @@ __export(index_exports, {
|
|
|
4297
4288
|
module.exports = __toCommonJS(index_exports);
|
|
4298
4289
|
|
|
4299
4290
|
// src/styles/built.css
|
|
4300
|
-
var built_default = '.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\\201C""\\201D""\\2018""\\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:rgba(17,24,39,.1);--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:hsla(0,0%,100%,.1);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.lumia-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.lumia-scope .pointer-events-none{pointer-events:none}.lumia-scope .pointer-events-auto{pointer-events:auto}.lumia-scope .visible{visibility:visible}.lumia-scope .invisible{visibility:hidden}.lumia-scope .collapse{visibility:collapse}.lumia-scope .static{position:static}.lumia-scope .fixed{position:fixed}.lumia-scope .absolute{position:absolute}.lumia-scope .relative{position:relative}.lumia-scope .inset-0{inset:0}.lumia-scope .inset-y-0{top:0;bottom:0}.lumia-scope .-bottom-1{bottom:-.25rem}.lumia-scope .-right-1{right:-.25rem}.lumia-scope .-right-2{right:-.5rem}.lumia-scope .-top-2{top:-.5rem}.lumia-scope .bottom-full{bottom:100%}.lumia-scope .left-0{left:0}.lumia-scope .left-1{left:.25rem}.lumia-scope .left-1\\/2{left:50%}.lumia-scope .left-3{left:.75rem}.lumia-scope .left-4{left:1rem}.lumia-scope .right-2{right:.5rem}.lumia-scope .right-3{right:.75rem}.lumia-scope .right-4{right:1rem}.lumia-scope .right-\\[var\\(--l-pass-pd\\)\\]{right:var(--l-pass-pd)}.lumia-scope .right-full{right:100%}.lumia-scope .top-0{top:0}.lumia-scope .top-1{top:.25rem}.lumia-scope .top-1\\/2{top:50%}.lumia-scope .top-3{top:.75rem}.lumia-scope .top-4{top:1rem}.lumia-scope .top-\\[var\\(--l-pass-pd\\)\\]{top:var(--l-pass-pd)}.lumia-scope .top-full{top:100%}.lumia-scope .z-10{z-index:10}.lumia-scope .z-50{z-index:50}.lumia-scope .z-\\[60\\]{z-index:60}.lumia-scope .z-\\[9998\\]{z-index:9998}.lumia-scope .z-\\[9999\\]{z-index:9999}.lumia-scope .-m-px{margin:-1px}.lumia-scope .m-0{margin:0}.lumia-scope .-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.lumia-scope .mx-1{margin-left:.25rem;margin-right:.25rem}.lumia-scope .mx-auto{margin-left:auto;margin-right:auto}.lumia-scope .my-6{margin-top:1.5rem;margin-bottom:1.5rem}.lumia-scope .my-auto{margin-top:auto;margin-bottom:auto}.lumia-scope .-mt-5{margin-top:-1.25rem}.lumia-scope .mb-1{margin-bottom:.25rem}.lumia-scope .mb-2{margin-bottom:.5rem}.lumia-scope .mb-3{margin-bottom:.75rem}.lumia-scope .mb-4{margin-bottom:1rem}.lumia-scope .mb-6{margin-bottom:1.5rem}.lumia-scope .mb-8{margin-bottom:2rem}.lumia-scope .mb-\\[var\\(--l-pass-gap\\)\\]{margin-bottom:var(--l-pass-gap)}.lumia-scope .ml-1{margin-left:.25rem}.lumia-scope .ml-2{margin-left:.5rem}.lumia-scope .ml-3{margin-left:.75rem}.lumia-scope .ml-4{margin-left:1rem}.lumia-scope .ml-auto{margin-left:auto}.lumia-scope .mr-1{margin-right:.25rem}.lumia-scope .mr-1\\.5{margin-right:.375rem}.lumia-scope .mr-2{margin-right:.5rem}.lumia-scope .mr-4{margin-right:1rem}.lumia-scope .mt-0{margin-top:0}.lumia-scope .mt-0\\.5{margin-top:.125rem}.lumia-scope .mt-1{margin-top:.25rem}.lumia-scope .mt-1\\.5{margin-top:.375rem}.lumia-scope .mt-2{margin-top:.5rem}.lumia-scope .mt-3{margin-top:.75rem}.lumia-scope .mt-4{margin-top:1rem}.lumia-scope .mt-6{margin-top:1.5rem}.lumia-scope .block{display:block}.lumia-scope .inline-block{display:inline-block}.lumia-scope .inline{display:inline}.lumia-scope .flex{display:flex}.lumia-scope .inline-flex{display:inline-flex}.lumia-scope .table{display:table}.lumia-scope .grid{display:grid}.lumia-scope .contents{display:contents}.lumia-scope .hidden{display:none}.lumia-scope .size-4{width:1rem;height:1rem}.lumia-scope .size-5{width:1.25rem;height:1.25rem}.lumia-scope .\\!h-5{height:1.25rem!important}.lumia-scope .\\!h-6{height:1.5rem!important}.lumia-scope .h-10{height:2.5rem}.lumia-scope .h-11{height:2.75rem}.lumia-scope .h-12{height:3rem}.lumia-scope .h-14{height:3.5rem}.lumia-scope .h-16{height:4rem}.lumia-scope .h-2{height:.5rem}.lumia-scope .h-2\\.5{height:.625rem}.lumia-scope .h-20{height:5rem}.lumia-scope .h-3{height:.75rem}.lumia-scope .h-3\\.5{height:.875rem}.lumia-scope .h-4{height:1rem}.lumia-scope .h-48{height:12rem}.lumia-scope .h-5{height:1.25rem}.lumia-scope .h-6{height:1.5rem}.lumia-scope .h-8{height:2rem}.lumia-scope .h-9{height:2.25rem}.lumia-scope .h-\\[32px\\]{height:32px}.lumia-scope .h-fit{height:-moz-fit-content;height:fit-content}.lumia-scope .h-full{height:100%}.lumia-scope .h-px{height:1px}.lumia-scope .max-h-24{max-height:6rem}.lumia-scope .max-h-96{max-height:24rem}.lumia-scope .max-h-\\[95dvh\\]{max-height:95dvh}.lumia-scope .\\!w-5{width:1.25rem!important}.lumia-scope .\\!w-6{width:1.5rem!important}.lumia-scope .w-10{width:2.5rem}.lumia-scope .w-12{width:3rem}.lumia-scope .w-16{width:4rem}.lumia-scope .w-2{width:.5rem}.lumia-scope .w-2\\.5{width:.625rem}.lumia-scope .w-20{width:5rem}.lumia-scope .w-3{width:.75rem}.lumia-scope .w-3\\.5{width:.875rem}.lumia-scope .w-4{width:1rem}.lumia-scope .w-48{width:12rem}.lumia-scope .w-5{width:1.25rem}.lumia-scope .w-6{width:1.5rem}.lumia-scope .w-8{width:2rem}.lumia-scope .w-9{width:2.25rem}.lumia-scope .w-fit{width:-moz-fit-content;width:fit-content}.lumia-scope .w-full{width:100%}.lumia-scope .w-px{width:1px}.lumia-scope .min-w-0{min-width:0}.lumia-scope .min-w-16{min-width:4rem}.lumia-scope .min-w-24{min-width:6rem}.lumia-scope .min-w-32{min-width:8rem}.lumia-scope .min-w-\\[256px\\]{min-width:256px}.lumia-scope .min-w-\\[280px\\]{min-width:280px}.lumia-scope .max-w-2xl{max-width:42rem}.lumia-scope .max-w-\\[144px\\]{max-width:144px}.lumia-scope .max-w-\\[380px\\]{max-width:380px}.lumia-scope .max-w-\\[400px\\]{max-width:400px}.lumia-scope .max-w-\\[680px\\]{max-width:680px}.lumia-scope .max-w-\\[var\\(--l-pass-maw\\)\\]{max-width:var(--l-pass-maw)}.lumia-scope .max-w-full{max-width:100%}.lumia-scope .max-w-lg{max-width:32rem}.lumia-scope .max-w-md{max-width:28rem}.lumia-scope .max-w-sm{max-width:24rem}.lumia-scope .flex-1{flex:1 1 0%}.lumia-scope .flex-none{flex:none}.lumia-scope .flex-shrink{flex-shrink:1}.lumia-scope .flex-shrink-0,.lumia-scope .shrink-0{flex-shrink:0}.lumia-scope .border-collapse{border-collapse:collapse}.lumia-scope .-translate-x-1{--tw-translate-x:-0.25rem}.lumia-scope .-translate-x-1,.lumia-scope .-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\]{--tw-translate-x:calc(var(--l-pass-gap)*-1)}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\],.lumia-scope .-translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-y-1{--tw-translate-y:-0.25rem}.lumia-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.lumia-scope .-translate-y-1\\/2,.lumia-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--l-pass-bg-error)}50%{transform:scale(.97);box-shadow:0 0 4px var(--l-pass-bg-error)}}.lumia-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.6}}.lumia-scope .animate-pulse-warning{animation:pulse-warning 2s ease infinite}@keyframes spin{to{transform:rotate(1turn)}}.lumia-scope .animate-spin{animation:spin 1s linear infinite}.lumia-scope .cursor-default{cursor:default}.lumia-scope .cursor-not-allowed{cursor:not-allowed}.lumia-scope .cursor-pointer{cursor:pointer}.lumia-scope .cursor-text{cursor:text}.lumia-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.lumia-scope .list-inside{list-style-position:inside}.lumia-scope .list-disc{list-style-type:disc}.lumia-scope .appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.lumia-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lumia-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lumia-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lumia-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lumia-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lumia-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lumia-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lumia-scope .flex-row{flex-direction:row}.lumia-scope .flex-col{flex-direction:column}.lumia-scope .flex-col-reverse{flex-direction:column-reverse}.lumia-scope .flex-wrap{flex-wrap:wrap}.lumia-scope .place-content-center{place-content:center}.lumia-scope .items-start{align-items:flex-start}.lumia-scope .items-end{align-items:flex-end}.lumia-scope .items-center{align-items:center}.lumia-scope .justify-start{justify-content:flex-start}.lumia-scope .justify-end{justify-content:flex-end}.lumia-scope .justify-center{justify-content:center}.lumia-scope .justify-between{justify-content:space-between}.lumia-scope .justify-evenly{justify-content:space-evenly}.lumia-scope .gap-0{gap:0}.lumia-scope .gap-1{gap:.25rem}.lumia-scope .gap-2{gap:.5rem}.lumia-scope .gap-3{gap:.75rem}.lumia-scope .gap-4{gap:1rem}.lumia-scope .gap-\\[10px\\]{gap:10px}.lumia-scope .gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .gap-\\[var\\(--l-pass-pd\\)\\]{gap:var(--l-pass-pd)}.lumia-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-4>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-6>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.lumia-scope .overflow-auto{overflow:auto}.lumia-scope .overflow-hidden{overflow:hidden}.lumia-scope .overflow-visible{overflow:visible}.lumia-scope .overflow-y-auto{overflow-y:auto}.lumia-scope .overflow-y-hidden{overflow-y:hidden}.lumia-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lumia-scope .text-ellipsis{text-overflow:ellipsis}.lumia-scope .whitespace-nowrap{white-space:nowrap}.lumia-scope .whitespace-pre-line{white-space:pre-line}.lumia-scope .whitespace-pre-wrap{white-space:pre-wrap}.lumia-scope .break-words{overflow-wrap:break-word}.lumia-scope .break-all{word-break:break-all}.lumia-scope .rounded{border-radius:.25rem}.lumia-scope .rounded-2xl{border-radius:1rem}.lumia-scope .rounded-3xl{border-radius:1.5rem}.lumia-scope .rounded-\\[10px\\]{border-radius:10px}.lumia-scope .rounded-\\[5px\\]{border-radius:5px}.lumia-scope .rounded-\\[var\\(--l-pass-bdrs\\)\\]{border-radius:var(--l-pass-bdrs)}.lumia-scope .rounded-\\[var\\(--l-pass-el-bdrs\\)\\]{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .rounded-full{border-radius:9999px}.lumia-scope .rounded-lg{border-radius:.5rem}.lumia-scope .rounded-md{border-radius:.375rem}.lumia-scope .rounded-sm{border-radius:.125rem}.lumia-scope .rounded-xl{border-radius:.75rem}.lumia-scope .border{border-width:1px}.lumia-scope .border-0{border-width:0}.lumia-scope .border-2{border-width:2px}.lumia-scope .border-b{border-bottom-width:1px}.lumia-scope .border-b-2{border-bottom-width:2px}.lumia-scope .border-t{border-top-width:1px}.lumia-scope .border-dashed{border-style:dashed}.lumia-scope .border-\\[var\\(--l-pass-bd\\)\\]{border-color:var(--l-pass-bd)}.lumia-scope .border-\\[var\\(--l-pass-error\\)\\]{border-color:var(--l-pass-error)}.lumia-scope .border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.lumia-scope .border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.lumia-scope .border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.lumia-scope .border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.lumia-scope .border-amber-900{--tw-border-opacity:1;border-color:rgb(120 53 15/var(--tw-border-opacity,1))}.lumia-scope .border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.lumia-scope .border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.lumia-scope .border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.lumia-scope .border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.lumia-scope .border-blue-800{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900{--tw-border-opacity:1;border-color:rgb(30 58 138/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900\\/40{border-color:rgba(30,58,138,.4)}.lumia-scope .border-current{border-color:currentColor}.lumia-scope .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.lumia-scope .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.lumia-scope .border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.lumia-scope .border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.lumia-scope .border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity,1))}.lumia-scope .border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.lumia-scope .border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.lumia-scope .border-green-800{--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.lumia-scope .border-green-900{--tw-border-opacity:1;border-color:rgb(20 83 45/var(--tw-border-opacity,1))}.lumia-scope .border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.lumia-scope .border-orange-800{--tw-border-opacity:1;border-color:rgb(154 52 18/var(--tw-border-opacity,1))}.lumia-scope .border-orange-900{--tw-border-opacity:1;border-color:rgb(124 45 18/var(--tw-border-opacity,1))}.lumia-scope .border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/var(--tw-border-opacity,1))}.lumia-scope .border-purple-800{--tw-border-opacity:1;border-color:rgb(107 33 168/var(--tw-border-opacity,1))}.lumia-scope .border-purple-900{--tw-border-opacity:1;border-color:rgb(88 28 135/var(--tw-border-opacity,1))}.lumia-scope .border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.lumia-scope .border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.lumia-scope .border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.lumia-scope .border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.lumia-scope .border-red-800{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.lumia-scope .border-red-800\\/80{border-color:rgba(153,27,27,.8)}.lumia-scope .border-red-900{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.lumia-scope .border-sky-200{--tw-border-opacity:1;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}.lumia-scope .border-sky-800{--tw-border-opacity:1;border-color:rgb(7 89 133/var(--tw-border-opacity,1))}.lumia-scope .border-sky-900{--tw-border-opacity:1;border-color:rgb(12 74 110/var(--tw-border-opacity,1))}.lumia-scope .border-transparent{border-color:transparent}.lumia-scope .border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.lumia-scope .border-t-transparent{border-top-color:transparent}.lumia-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[var\\(--l-pass-bg\\)\\]{background-color:var(--l-pass-bg)}.lumia-scope .bg-\\[var\\(--l-pass-bg-error\\)\\]{background-color:var(--l-pass-bg-error)}.lumia-scope .bg-\\[var\\(--l-pass-bg-info\\)\\]{background-color:var(--l-pass-bg-info)}.lumia-scope .bg-\\[var\\(--l-pass-bg-success\\)\\]{background-color:var(--l-pass-bg-success)}.lumia-scope .bg-\\[var\\(--l-pass-bg-warning\\)\\]{background-color:var(--l-pass-bg-warning)}.lumia-scope .bg-\\[var\\(--l-pass-fg\\)\\]{background-color:var(--l-pass-fg)}.lumia-scope .bg-\\[var\\(--l-pass-overlay\\)\\]{background-color:var(--l-pass-overlay)}.lumia-scope .bg-\\[var\\(--l-pass-primary\\)\\]{background-color:var(--l-pass-primary)}.lumia-scope .bg-\\[var\\(--l-pass-secondary\\)\\]{background-color:var(--l-pass-secondary)}.lumia-scope .bg-\\[var\\(--l-pass-success\\)\\]{background-color:var(--l-pass-success)}.lumia-scope .bg-\\[var\\(--l-pass-warning\\)\\]{background-color:var(--l-pass-warning)}.lumia-scope .bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-900{--tw-bg-opacity:1;background-color:rgb(120 53 15/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-950{--tw-bg-opacity:1;background-color:rgb(69 26 3/var(--tw-bg-opacity,1))}.lumia-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900\\/20{background-color:rgba(30,58,138,.2)}.lumia-scope .bg-blue-900\\/30{background-color:rgba(30,58,138,.3)}.lumia-scope .bg-blue-900\\/40{background-color:rgba(30,58,138,.4)}.lumia-scope .bg-blue-950{--tw-bg-opacity:1;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900\\/30{background-color:rgba(20,83,45,.3)}.lumia-scope .bg-green-950{--tw-bg-opacity:1;background-color:rgb(5 46 22/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-700{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-800{--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-900{--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-950{--tw-bg-opacity:1;background-color:rgb(67 20 7/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-600{--tw-bg-opacity:1;background-color:rgb(219 39 119/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-200{--tw-bg-opacity:1;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-700{--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-900{--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-950{--tw-bg-opacity:1;background-color:rgb(59 7 100/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700\\/80{background-color:rgba(185,28,28,.8)}.lumia-scope .bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-900\\/30{background-color:rgba(127,29,29,.3)}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950\\/90{background-color:rgba(69,10,10,.9)}.lumia-scope .bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-950{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.lumia-scope .bg-transparent{background-color:transparent}.lumia-scope .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.lumia-scope .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.lumia-scope .bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.lumia-scope .from-purple-100{--tw-gradient-from:#f3e8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,232,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-600{--tw-gradient-from:#9333ea var(--tw-gradient-from-position);--tw-gradient-to:rgba(147,51,234,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .to-blue-100{--tw-gradient-to:#dbeafe var(--tw-gradient-to-position)}.lumia-scope .to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.lumia-scope .to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.lumia-scope .object-contain{-o-object-fit:contain;object-fit:contain}.lumia-scope .object-cover{-o-object-fit:cover;object-fit:cover}.lumia-scope .p-0{padding:0}.lumia-scope .p-1{padding:.25rem}.lumia-scope .p-2{padding:.5rem}.lumia-scope .p-2\\.5{padding:.625rem}.lumia-scope .p-3{padding:.75rem}.lumia-scope .p-4{padding:1rem}.lumia-scope .p-5{padding:1.25rem}.lumia-scope .p-6{padding:1.5rem}.lumia-scope .p-8{padding:2rem}.lumia-scope .p-\\[var\\(--l-pass-pd\\)\\]{padding:var(--l-pass-pd)}.lumia-scope .px-0{padding-left:0;padding-right:0}.lumia-scope .px-12{padding-left:3rem;padding-right:3rem}.lumia-scope .px-2{padding-left:.5rem;padding-right:.5rem}.lumia-scope .px-2\\.5{padding-left:.625rem;padding-right:.625rem}.lumia-scope .px-3{padding-left:.75rem;padding-right:.75rem}.lumia-scope .px-4{padding-left:1rem;padding-right:1rem}.lumia-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.lumia-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.lumia-scope .px-\\[var\\(--l-pass-pd\\)\\]{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .py-0{padding-top:0;padding-bottom:0}.lumia-scope .py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.lumia-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.lumia-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.lumia-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.lumia-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.lumia-scope .py-4{padding-top:1rem;padding-bottom:1rem}.lumia-scope .py-8{padding-top:2rem;padding-bottom:2rem}.lumia-scope .py-\\[var\\(--l-pass-pd\\)\\]{padding-top:var(--l-pass-pd);padding-bottom:var(--l-pass-pd)}.lumia-scope .pb-2{padding-bottom:.5rem}.lumia-scope .pb-3{padding-bottom:.75rem}.lumia-scope .pb-4{padding-bottom:1rem}.lumia-scope .pb-5{padding-bottom:1.25rem}.lumia-scope .pb-6{padding-bottom:1.5rem}.lumia-scope .pl-11{padding-left:2.75rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pt-0{padding-top:0}.lumia-scope .pt-2{padding-top:.5rem}.lumia-scope .pt-3{padding-top:.75rem}.lumia-scope .pt-4{padding-top:1rem}.lumia-scope .pt-5{padding-top:1.25rem}.lumia-scope .text-left{text-align:left}.lumia-scope .text-center{text-align:center}.lumia-scope .text-right{text-align:right}.lumia-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lumia-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lumia-scope .text-2xl{font-size:1.5rem;line-height:2rem}.lumia-scope .text-3xl{font-size:1.875rem;line-height:2.25rem}.lumia-scope .text-4xl{font-size:2.25rem;line-height:2.5rem}.lumia-scope .text-\\[10px\\]{font-size:10px}.lumia-scope .text-\\[11px\\]{font-size:11px}.lumia-scope .text-base{font-size:1rem;line-height:1.5rem}.lumia-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.lumia-scope .text-sm{font-size:.875rem;line-height:1.25rem}.lumia-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.lumia-scope .text-xs{font-size:.75rem;line-height:1rem}.lumia-scope .font-bold{font-weight:700}.lumia-scope .font-medium{font-weight:500}.lumia-scope .font-semibold{font-weight:600}.lumia-scope .uppercase{text-transform:uppercase}.lumia-scope .italic{font-style:italic}.lumia-scope .leading-4{line-height:1rem}.lumia-scope .leading-5{line-height:1.25rem}.lumia-scope .leading-6{line-height:1.5rem}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-relaxed{line-height:1.625}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.lumia-scope .tracking-wide{letter-spacing:.025em}.lumia-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .text-\\[var\\(--l-pass-bg-error\\)\\]{color:var(--l-pass-bg-error)}.lumia-scope .text-\\[var\\(--l-pass-bg-success\\)\\]{color:var(--l-pass-bg-success)}.lumia-scope .text-\\[var\\(--l-pass-bg-warning\\)\\]{color:var(--l-pass-bg-warning)}.lumia-scope .text-\\[var\\(--l-pass-error\\)\\]{color:var(--l-pass-error)}.lumia-scope .text-\\[var\\(--l-pass-fg\\)\\]{color:var(--l-pass-fg)}.lumia-scope .text-\\[var\\(--l-pass-fg-inverted\\)\\]{color:var(--l-pass-fg-inverted)}.lumia-scope .text-\\[var\\(--l-pass-fg-muted\\)\\]{color:var(--l-pass-fg-muted)}.lumia-scope .text-\\[var\\(--l-pass-info\\)\\]{color:var(--l-pass-info)}.lumia-scope .text-\\[var\\(--l-pass-muted\\)\\]{color:var(--l-pass-muted)}.lumia-scope .text-\\[var\\(--l-pass-primary\\)\\]{color:var(--l-pass-primary)}.lumia-scope .text-\\[var\\(--l-pass-success\\)\\]{color:var(--l-pass-success)}.lumia-scope .text-\\[var\\(--l-pass-text-secondary\\)\\]{color:var(--l-pass-text-secondary)}.lumia-scope .text-\\[var\\(--l-pass-warning\\)\\]{color:var(--l-pass-warning)}.lumia-scope .text-amber-100{--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}.lumia-scope .text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.lumia-scope .text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.lumia-scope .text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.lumia-scope .text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.lumia-scope .text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.lumia-scope .text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.lumia-scope .text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.lumia-scope .text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400\\/80{color:rgba(96,165,250,.8)}.lumia-scope .text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.lumia-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.lumia-scope .text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.lumia-scope .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.lumia-scope .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.lumia-scope .text-green-200{--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.lumia-scope .text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.lumia-scope .text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.lumia-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.lumia-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.lumia-scope .text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.lumia-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.lumia-scope .text-orange-100{--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.lumia-scope .text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.lumia-scope .text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.lumia-scope .text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.lumia-scope .text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.lumia-scope .text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.lumia-scope .text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.lumia-scope .text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.lumia-scope .text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.lumia-scope .text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.lumia-scope .text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.lumia-scope .text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.lumia-scope .text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.lumia-scope .text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.lumia-scope .text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.lumia-scope .text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .text-red-300\\/95{color:hsla(0,94%,82%,.95)}.lumia-scope .text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .text-red-400\\/80{color:hsla(0,91%,71%,.8)}.lumia-scope .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.lumia-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.lumia-scope .text-red-600\\/90{color:rgba(220,38,38,.9)}.lumia-scope .text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.lumia-scope .text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.lumia-scope .text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.lumia-scope .text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.lumia-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.lumia-scope .text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.lumia-scope .underline{text-decoration-line:underline}.lumia-scope .underline-offset-4{text-underline-offset:4px}.lumia-scope .opacity-0{opacity:0}.lumia-scope .opacity-100{opacity:1}.lumia-scope .opacity-40{opacity:.4}.lumia-scope .opacity-50{opacity:.5}.lumia-scope .opacity-60{opacity:.6}.lumia-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.lumia-scope .shadow,.lumia-scope .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.lumia-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.lumia-scope .shadow-lg,.lumia-scope .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lumia-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.lumia-scope .outline{outline-style:solid}.lumia-scope .blur{--tw-blur:blur(8px)}.lumia-scope .blur,.lumia-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .backdrop-blur{--tw-backdrop-blur:blur(8px)}.lumia-scope .backdrop-blur,.lumia-scope .backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.lumia-scope .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-none{transition-property:none}.lumia-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .duration-200{transition-duration:.2s}.lumia-scope .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lumia-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.lumia-scope{--l-pass-ff:var(--lumia-passport-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--l-pass-maw:var(--lumia-passport-maw,320px);--l-pass-pd:var(--lumia-passport-pd,12px);--l-pass-gap:var(--lumia-passport-gap,10px);--l-pass-bdrs:var(--lumia-passport-bdrs,20px);--l-pass-el-bdrs:var(--lumia-passport-element-bdrs,10px);--l-pass-backdrop-blur:var(--lumia-passport-backdrop-blur,10px)}.lumia-scope[data-lumia-passport-mode=light]{--l-pass-overlay:var(--lumia-passport-overlay,hsla(0,0%,100%,.8));--l-pass-bg:var(--lumia-passport-bg,#fff);--l-pass-fg:var(--lumia-passport-fg,#000);--l-pass-fg-h:var(--lumia-passport-fg-h,rgba(0,0,0,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,rgba(0,0,0,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#fff);--l-pass-fg-muted:var(--lumia-passport-fg-muted,rgba(0,0,0,.6));--l-pass-primary:var(--lumia-passport-primary,#000);--l-pass-primary-h:var(--lumia-passport-primary-h,rgba(0,0,0,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,rgba(0,0,0,.6));--l-pass-secondary:var(--lumia-passport-secondary,#e4e4e4);--l-pass-secondary-h:var(--lumia-passport-secondary-h,hsla(0,0%,89%,.8));--l-pass-secondary-a:var(--lumia-passport-secondary-a,hsla(0,0%,89%,.6));--l-pass-bd:var(--lumia-passport-bd,#c9c9c9);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#a9a9a9);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#e4e4e4);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope[data-lumia-passport-mode=dark]{--l-pass-overlay:var(--lumia-passport-overlay,rgba(0,0,0,.8));--l-pass-bg:var(--lumia-passport-bg,#1a1a1a);--l-pass-fg:var(--lumia-passport-fg,#fff);--l-pass-fg-h:var(--lumia-passport-fg-h,hsla(0,0%,100%,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,hsla(0,0%,100%,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#000);--l-pass-fg-muted:var(--lumia-passport-fg-muted,hsla(0,0%,100%,.6));--l-pass-primary:var(--lumia-passport-primary,#fff);--l-pass-primary-h:var(--lumia-passport-primary-h,hsla(0,0%,100%,.9));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.7));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.9));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.7));--l-pass-bd:var(--lumia-passport-bd,#3a3a3a);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#4a4a4a);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.5));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#2a2a2a);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg-inverted));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg-inverted));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope,.lumia-scope *{margin:0;box-sizing:border-box;font-family:var(--l-pass-ff);font-optical-sizing:auto}.lumia-scope button,.lumia-scope h1,.lumia-scope h2,.lumia-scope h3,.lumia-scope h4,.lumia-scope h5,.lumia-scope h6,.lumia-scope input,.lumia-scope p,.lumia-scope select,.lumia-scope textarea{font-family:var(--l-pass-ff)!important;margin:0}.lumia-scope button,.lumia-scope input,.lumia-scope select,.lumia-scope textarea{border-style:solid;outline:none;appearance:none;-webkit-appearance:none;-moz-appearance:none}.lumia-scope .lumia-passport-button{box-shadow:0 4px 10px var(--l-pass-shadow-c),inset 0 0 0 1px var(--l-pass-bd);transition:transform .25s ease}.lumia-scope .lumia-passport-button:hover{transform:scale(1.02)}.lumia-scope .lumia-passport-button:active{transform:scale(1)}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.lumia-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.lumia-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.lumia-scope .list-scrollbar-y{width:100%;padding-right:var(--l-pass-list-scrollbar-pd-r,0);overflow-y:auto;max-height:var(--l-pass-scrollbar-mah,300px)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--l-pass-bd)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.lumia-scope .noScrollbars::-webkit-scrollbar{display:none}.lumia-scope .file\\:mr-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{margin-right:var(--l-pass-pd)}.lumia-scope .file\\:h-8::file-selector-button{height:2rem}.lumia-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.lumia-scope .file\\:rounded-\\[var\\(--l-pass-el-bdrs\\)\\]::file-selector-button{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .file\\:border-0::file-selector-button{border-width:0}.lumia-scope .file\\:bg-\\[var\\(--l-pass-primary\\)\\]::file-selector-button{background-color:var(--l-pass-primary)}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .file\\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.lumia-scope .file\\:font-medium::file-selector-button{font-weight:500}.lumia-scope .file\\:text-\\[var\\(--l-pass-fg-inverted\\)\\]::file-selector-button{color:var(--l-pass-fg-inverted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::-moz-placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .placeholder\\:text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .focus-within\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus-within{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.lumia-scope .hover\\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover{background-color:var(--l-pass-bg)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-primary-h\\)\\]:hover{background-color:var(--l-pass-primary-h)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-secondary-h\\)\\]:hover{background-color:var(--l-pass-secondary-h)}.lumia-scope .hover\\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-900\\/60:hover{background-color:rgba(30,58,138,.6)}.lumia-scope .hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-100:hover{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-purple-100:hover{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-600\\/90:hover{background-color:rgba(220,38,38,.9)}.lumia-scope .hover\\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-900\\/20:hover{background-color:rgba(127,29,29,.2)}.lumia-scope .hover\\:bg-slate-800:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover{color:var(--l-pass-fg)}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg-h\\)\\]:hover{color:var(--l-pass-fg-h)}.lumia-scope .hover\\:text-gray-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-300:hover{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .hover\\:underline:hover{text-decoration-line:underline}.lumia-scope .hover\\:opacity-80:hover{opacity:.8}.lumia-scope .hover\\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.lumia-scope .focus\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}.lumia-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.lumia-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.lumia-scope .focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.lumia-scope .active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active{background-color:var(--l-pass-bg)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-primary-a\\)\\]:active{background-color:var(--l-pass-primary-a)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:active{background-color:var(--l-pass-secondary-a)}.lumia-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .active\\:text-\\[var\\(--l-pass-fg-a\\)\\]:active{color:var(--l-pass-fg-a)}.lumia-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.lumia-scope .disabled\\:cursor-default:disabled{cursor:default}.lumia-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.lumia-scope .disabled\\:opacity-100:disabled{opacity:1}.lumia-scope .disabled\\:opacity-50:disabled{opacity:.5}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-primary\\)\\]:hover:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover:disabled{color:var(--l-pass-fg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-primary\\)\\]:active:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:active\\:text-\\[var\\(--l-pass-fg\\)\\]:active:disabled{color:var(--l-pass-fg)}.lumia-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.lumia-scope :is(.group:hover .group-hover\\:opacity-60){opacity:.6}.lumia-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--l-pass-bd-intense\\)\\][data-state=checked]{border-color:var(--l-pass-bd-intense)}.lumia-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--l-pass-secondary\\)\\][data-state=checked]{background-color:var(--l-pass-secondary)}.lumia-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--l-pass-fg\\)\\][data-state=checked]{color:var(--l-pass-fg)}@media (min-width:640px){.lumia-scope .sm\\:flex-row{flex-direction:row}.lumia-scope .sm\\:justify-end{justify-content:flex-end}.lumia-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope .sm\\:text-left{text-align:left}}@media (prefers-color-scheme:dark){.lumia-scope .dark\\:bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-yellow-500:hover{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}}.lumia-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-5 svg){height:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-6 svg){height:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-5 svg){width:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-6 svg){width:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
|
|
4291
|
+
var built_default = '.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\\201C""\\201D""\\2018""\\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:rgba(17,24,39,.1);--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:hsla(0,0%,100%,.1);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.lumia-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.lumia-scope .pointer-events-none{pointer-events:none}.lumia-scope .pointer-events-auto{pointer-events:auto}.lumia-scope .visible{visibility:visible}.lumia-scope .invisible{visibility:hidden}.lumia-scope .collapse{visibility:collapse}.lumia-scope .static{position:static}.lumia-scope .fixed{position:fixed}.lumia-scope .absolute{position:absolute}.lumia-scope .relative{position:relative}.lumia-scope .inset-0{inset:0}.lumia-scope .inset-y-0{top:0;bottom:0}.lumia-scope .-bottom-1{bottom:-.25rem}.lumia-scope .-right-1{right:-.25rem}.lumia-scope .-right-2{right:-.5rem}.lumia-scope .-top-2{top:-.5rem}.lumia-scope .bottom-full{bottom:100%}.lumia-scope .left-0{left:0}.lumia-scope .left-1{left:.25rem}.lumia-scope .left-1\\/2{left:50%}.lumia-scope .left-3{left:.75rem}.lumia-scope .left-4{left:1rem}.lumia-scope .right-2{right:.5rem}.lumia-scope .right-3{right:.75rem}.lumia-scope .right-4{right:1rem}.lumia-scope .right-\\[var\\(--l-pass-pd\\)\\]{right:var(--l-pass-pd)}.lumia-scope .right-full{right:100%}.lumia-scope .top-0{top:0}.lumia-scope .top-1{top:.25rem}.lumia-scope .top-1\\/2{top:50%}.lumia-scope .top-3{top:.75rem}.lumia-scope .top-4{top:1rem}.lumia-scope .top-\\[var\\(--l-pass-pd\\)\\]{top:var(--l-pass-pd)}.lumia-scope .top-full{top:100%}.lumia-scope .z-10{z-index:10}.lumia-scope .z-50{z-index:50}.lumia-scope .z-\\[60\\]{z-index:60}.lumia-scope .z-\\[9998\\]{z-index:9998}.lumia-scope .z-\\[9999\\]{z-index:9999}.lumia-scope .-m-px{margin:-1px}.lumia-scope .m-0{margin:0}.lumia-scope .-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.lumia-scope .mx-1{margin-left:.25rem;margin-right:.25rem}.lumia-scope .mx-auto{margin-left:auto;margin-right:auto}.lumia-scope .my-6{margin-top:1.5rem;margin-bottom:1.5rem}.lumia-scope .my-auto{margin-top:auto;margin-bottom:auto}.lumia-scope .-mt-5{margin-top:-1.25rem}.lumia-scope .mb-1{margin-bottom:.25rem}.lumia-scope .mb-2{margin-bottom:.5rem}.lumia-scope .mb-3{margin-bottom:.75rem}.lumia-scope .mb-4{margin-bottom:1rem}.lumia-scope .mb-6{margin-bottom:1.5rem}.lumia-scope .mb-8{margin-bottom:2rem}.lumia-scope .mb-\\[var\\(--l-pass-gap\\)\\]{margin-bottom:var(--l-pass-gap)}.lumia-scope .ml-1{margin-left:.25rem}.lumia-scope .ml-2{margin-left:.5rem}.lumia-scope .ml-3{margin-left:.75rem}.lumia-scope .ml-4{margin-left:1rem}.lumia-scope .ml-auto{margin-left:auto}.lumia-scope .mr-1{margin-right:.25rem}.lumia-scope .mr-1\\.5{margin-right:.375rem}.lumia-scope .mr-2{margin-right:.5rem}.lumia-scope .mr-4{margin-right:1rem}.lumia-scope .mt-0{margin-top:0}.lumia-scope .mt-0\\.5{margin-top:.125rem}.lumia-scope .mt-1{margin-top:.25rem}.lumia-scope .mt-1\\.5{margin-top:.375rem}.lumia-scope .mt-2{margin-top:.5rem}.lumia-scope .mt-3{margin-top:.75rem}.lumia-scope .mt-4{margin-top:1rem}.lumia-scope .mt-6{margin-top:1.5rem}.lumia-scope .block{display:block}.lumia-scope .inline-block{display:inline-block}.lumia-scope .inline{display:inline}.lumia-scope .flex{display:flex}.lumia-scope .inline-flex{display:inline-flex}.lumia-scope .table{display:table}.lumia-scope .grid{display:grid}.lumia-scope .contents{display:contents}.lumia-scope .hidden{display:none}.lumia-scope .size-4{width:1rem;height:1rem}.lumia-scope .size-5{width:1.25rem;height:1.25rem}.lumia-scope .\\!h-5{height:1.25rem!important}.lumia-scope .\\!h-6{height:1.5rem!important}.lumia-scope .h-10{height:2.5rem}.lumia-scope .h-11{height:2.75rem}.lumia-scope .h-12{height:3rem}.lumia-scope .h-14{height:3.5rem}.lumia-scope .h-16{height:4rem}.lumia-scope .h-2{height:.5rem}.lumia-scope .h-2\\.5{height:.625rem}.lumia-scope .h-20{height:5rem}.lumia-scope .h-3{height:.75rem}.lumia-scope .h-3\\.5{height:.875rem}.lumia-scope .h-4{height:1rem}.lumia-scope .h-48{height:12rem}.lumia-scope .h-5{height:1.25rem}.lumia-scope .h-6{height:1.5rem}.lumia-scope .h-8{height:2rem}.lumia-scope .h-9{height:2.25rem}.lumia-scope .h-\\[32px\\]{height:32px}.lumia-scope .h-fit{height:-moz-fit-content;height:fit-content}.lumia-scope .h-full{height:100%}.lumia-scope .h-px{height:1px}.lumia-scope .max-h-24{max-height:6rem}.lumia-scope .max-h-96{max-height:24rem}.lumia-scope .max-h-\\[95dvh\\]{max-height:95dvh}.lumia-scope .\\!w-5{width:1.25rem!important}.lumia-scope .\\!w-6{width:1.5rem!important}.lumia-scope .w-10{width:2.5rem}.lumia-scope .w-12{width:3rem}.lumia-scope .w-16{width:4rem}.lumia-scope .w-2{width:.5rem}.lumia-scope .w-2\\.5{width:.625rem}.lumia-scope .w-20{width:5rem}.lumia-scope .w-3{width:.75rem}.lumia-scope .w-3\\.5{width:.875rem}.lumia-scope .w-4{width:1rem}.lumia-scope .w-48{width:12rem}.lumia-scope .w-5{width:1.25rem}.lumia-scope .w-6{width:1.5rem}.lumia-scope .w-8{width:2rem}.lumia-scope .w-9{width:2.25rem}.lumia-scope .w-fit{width:-moz-fit-content;width:fit-content}.lumia-scope .w-full{width:100%}.lumia-scope .w-px{width:1px}.lumia-scope .min-w-0{min-width:0}.lumia-scope .min-w-16{min-width:4rem}.lumia-scope .min-w-24{min-width:6rem}.lumia-scope .min-w-32{min-width:8rem}.lumia-scope .min-w-\\[256px\\]{min-width:256px}.lumia-scope .min-w-\\[280px\\]{min-width:280px}.lumia-scope .max-w-2xl{max-width:42rem}.lumia-scope .max-w-\\[144px\\]{max-width:144px}.lumia-scope .max-w-\\[380px\\]{max-width:380px}.lumia-scope .max-w-\\[400px\\]{max-width:400px}.lumia-scope .max-w-\\[680px\\]{max-width:680px}.lumia-scope .max-w-\\[var\\(--l-pass-maw\\)\\]{max-width:var(--l-pass-maw)}.lumia-scope .max-w-full{max-width:100%}.lumia-scope .max-w-lg{max-width:32rem}.lumia-scope .max-w-md{max-width:28rem}.lumia-scope .max-w-sm{max-width:24rem}.lumia-scope .flex-1{flex:1 1 0%}.lumia-scope .flex-none{flex:none}.lumia-scope .flex-shrink{flex-shrink:1}.lumia-scope .flex-shrink-0,.lumia-scope .shrink-0{flex-shrink:0}.lumia-scope .border-collapse{border-collapse:collapse}.lumia-scope .-translate-x-1{--tw-translate-x:-0.25rem}.lumia-scope .-translate-x-1,.lumia-scope .-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\]{--tw-translate-x:calc(var(--l-pass-gap)*-1)}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\],.lumia-scope .-translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-y-1{--tw-translate-y:-0.25rem}.lumia-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.lumia-scope .-translate-y-1\\/2,.lumia-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--l-pass-bg-error)}50%{transform:scale(.97);box-shadow:0 0 4px var(--l-pass-bg-error)}}.lumia-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.6}}.lumia-scope .animate-pulse-warning{animation:pulse-warning 2s ease infinite}@keyframes spin{to{transform:rotate(1turn)}}.lumia-scope .animate-spin{animation:spin 1s linear infinite}.lumia-scope .cursor-default{cursor:default}.lumia-scope .cursor-not-allowed{cursor:not-allowed}.lumia-scope .cursor-pointer{cursor:pointer}.lumia-scope .cursor-text{cursor:text}.lumia-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.lumia-scope .list-inside{list-style-position:inside}.lumia-scope .list-disc{list-style-type:disc}.lumia-scope .appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.lumia-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lumia-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lumia-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lumia-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lumia-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lumia-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lumia-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lumia-scope .flex-row{flex-direction:row}.lumia-scope .flex-col{flex-direction:column}.lumia-scope .flex-col-reverse{flex-direction:column-reverse}.lumia-scope .flex-wrap{flex-wrap:wrap}.lumia-scope .place-content-center{place-content:center}.lumia-scope .items-start{align-items:flex-start}.lumia-scope .items-end{align-items:flex-end}.lumia-scope .items-center{align-items:center}.lumia-scope .justify-start{justify-content:flex-start}.lumia-scope .justify-end{justify-content:flex-end}.lumia-scope .justify-center{justify-content:center}.lumia-scope .justify-between{justify-content:space-between}.lumia-scope .justify-evenly{justify-content:space-evenly}.lumia-scope .gap-0{gap:0}.lumia-scope .gap-1{gap:.25rem}.lumia-scope .gap-2{gap:.5rem}.lumia-scope .gap-3{gap:.75rem}.lumia-scope .gap-4{gap:1rem}.lumia-scope .gap-\\[10px\\]{gap:10px}.lumia-scope .gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .gap-\\[var\\(--l-pass-pd\\)\\]{gap:var(--l-pass-pd)}.lumia-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-4>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-6>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.lumia-scope .overflow-auto{overflow:auto}.lumia-scope .overflow-hidden{overflow:hidden}.lumia-scope .overflow-visible{overflow:visible}.lumia-scope .overflow-y-auto{overflow-y:auto}.lumia-scope .overflow-y-hidden{overflow-y:hidden}.lumia-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lumia-scope .text-ellipsis{text-overflow:ellipsis}.lumia-scope .whitespace-nowrap{white-space:nowrap}.lumia-scope .whitespace-pre-line{white-space:pre-line}.lumia-scope .whitespace-pre-wrap{white-space:pre-wrap}.lumia-scope .break-words{overflow-wrap:break-word}.lumia-scope .break-all{word-break:break-all}.lumia-scope .rounded{border-radius:.25rem}.lumia-scope .rounded-2xl{border-radius:1rem}.lumia-scope .rounded-3xl{border-radius:1.5rem}.lumia-scope .rounded-\\[10px\\]{border-radius:10px}.lumia-scope .rounded-\\[5px\\]{border-radius:5px}.lumia-scope .rounded-\\[var\\(--l-pass-bdrs\\)\\]{border-radius:var(--l-pass-bdrs)}.lumia-scope .rounded-\\[var\\(--l-pass-el-bdrs\\)\\]{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .rounded-full{border-radius:9999px}.lumia-scope .rounded-lg{border-radius:.5rem}.lumia-scope .rounded-md{border-radius:.375rem}.lumia-scope .rounded-sm{border-radius:.125rem}.lumia-scope .rounded-xl{border-radius:.75rem}.lumia-scope .border{border-width:1px}.lumia-scope .border-0{border-width:0}.lumia-scope .border-2{border-width:2px}.lumia-scope .border-b{border-bottom-width:1px}.lumia-scope .border-b-2{border-bottom-width:2px}.lumia-scope .border-t{border-top-width:1px}.lumia-scope .border-dashed{border-style:dashed}.lumia-scope .border-\\[var\\(--l-pass-bd\\)\\]{border-color:var(--l-pass-bd)}.lumia-scope .border-\\[var\\(--l-pass-error\\)\\]{border-color:var(--l-pass-error)}.lumia-scope .border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.lumia-scope .border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.lumia-scope .border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.lumia-scope .border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.lumia-scope .border-amber-900{--tw-border-opacity:1;border-color:rgb(120 53 15/var(--tw-border-opacity,1))}.lumia-scope .border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.lumia-scope .border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.lumia-scope .border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.lumia-scope .border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.lumia-scope .border-blue-800{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900{--tw-border-opacity:1;border-color:rgb(30 58 138/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900\\/40{border-color:rgba(30,58,138,.4)}.lumia-scope .border-current{border-color:currentColor}.lumia-scope .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.lumia-scope .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.lumia-scope .border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.lumia-scope .border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.lumia-scope .border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity,1))}.lumia-scope .border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.lumia-scope .border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.lumia-scope .border-green-800{--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.lumia-scope .border-green-900{--tw-border-opacity:1;border-color:rgb(20 83 45/var(--tw-border-opacity,1))}.lumia-scope .border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.lumia-scope .border-orange-800{--tw-border-opacity:1;border-color:rgb(154 52 18/var(--tw-border-opacity,1))}.lumia-scope .border-orange-900{--tw-border-opacity:1;border-color:rgb(124 45 18/var(--tw-border-opacity,1))}.lumia-scope .border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/var(--tw-border-opacity,1))}.lumia-scope .border-purple-800{--tw-border-opacity:1;border-color:rgb(107 33 168/var(--tw-border-opacity,1))}.lumia-scope .border-purple-900{--tw-border-opacity:1;border-color:rgb(88 28 135/var(--tw-border-opacity,1))}.lumia-scope .border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.lumia-scope .border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.lumia-scope .border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.lumia-scope .border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.lumia-scope .border-red-800{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.lumia-scope .border-red-800\\/80{border-color:rgba(153,27,27,.8)}.lumia-scope .border-red-900{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.lumia-scope .border-sky-200{--tw-border-opacity:1;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}.lumia-scope .border-sky-800{--tw-border-opacity:1;border-color:rgb(7 89 133/var(--tw-border-opacity,1))}.lumia-scope .border-sky-900{--tw-border-opacity:1;border-color:rgb(12 74 110/var(--tw-border-opacity,1))}.lumia-scope .border-transparent{border-color:transparent}.lumia-scope .border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.lumia-scope .border-t-transparent{border-top-color:transparent}.lumia-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[var\\(--l-pass-bg\\)\\]{background-color:var(--l-pass-bg)}.lumia-scope .bg-\\[var\\(--l-pass-bg-error\\)\\]{background-color:var(--l-pass-bg-error)}.lumia-scope .bg-\\[var\\(--l-pass-bg-info\\)\\]{background-color:var(--l-pass-bg-info)}.lumia-scope .bg-\\[var\\(--l-pass-bg-success\\)\\]{background-color:var(--l-pass-bg-success)}.lumia-scope .bg-\\[var\\(--l-pass-bg-warning\\)\\]{background-color:var(--l-pass-bg-warning)}.lumia-scope .bg-\\[var\\(--l-pass-fg\\)\\]{background-color:var(--l-pass-fg)}.lumia-scope .bg-\\[var\\(--l-pass-overlay\\)\\]{background-color:var(--l-pass-overlay)}.lumia-scope .bg-\\[var\\(--l-pass-primary\\)\\]{background-color:var(--l-pass-primary)}.lumia-scope .bg-\\[var\\(--l-pass-secondary\\)\\]{background-color:var(--l-pass-secondary)}.lumia-scope .bg-\\[var\\(--l-pass-success\\)\\]{background-color:var(--l-pass-success)}.lumia-scope .bg-\\[var\\(--l-pass-warning\\)\\]{background-color:var(--l-pass-warning)}.lumia-scope .bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-900{--tw-bg-opacity:1;background-color:rgb(120 53 15/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-950{--tw-bg-opacity:1;background-color:rgb(69 26 3/var(--tw-bg-opacity,1))}.lumia-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900\\/20{background-color:rgba(30,58,138,.2)}.lumia-scope .bg-blue-900\\/30{background-color:rgba(30,58,138,.3)}.lumia-scope .bg-blue-900\\/40{background-color:rgba(30,58,138,.4)}.lumia-scope .bg-blue-950{--tw-bg-opacity:1;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900\\/30{background-color:rgba(20,83,45,.3)}.lumia-scope .bg-green-950{--tw-bg-opacity:1;background-color:rgb(5 46 22/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-700{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-800{--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-900{--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-950{--tw-bg-opacity:1;background-color:rgb(67 20 7/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-600{--tw-bg-opacity:1;background-color:rgb(219 39 119/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-200{--tw-bg-opacity:1;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-700{--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-900{--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-950{--tw-bg-opacity:1;background-color:rgb(59 7 100/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700\\/80{background-color:rgba(185,28,28,.8)}.lumia-scope .bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-900\\/30{background-color:rgba(127,29,29,.3)}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950\\/90{background-color:rgba(69,10,10,.9)}.lumia-scope .bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-950{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.lumia-scope .bg-transparent{background-color:transparent}.lumia-scope .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.lumia-scope .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.lumia-scope .bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.lumia-scope .from-purple-100{--tw-gradient-from:#f3e8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,232,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-600{--tw-gradient-from:#9333ea var(--tw-gradient-from-position);--tw-gradient-to:rgba(147,51,234,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .to-blue-100{--tw-gradient-to:#dbeafe var(--tw-gradient-to-position)}.lumia-scope .to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.lumia-scope .to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.lumia-scope .object-contain{-o-object-fit:contain;object-fit:contain}.lumia-scope .object-cover{-o-object-fit:cover;object-fit:cover}.lumia-scope .p-0{padding:0}.lumia-scope .p-1{padding:.25rem}.lumia-scope .p-2{padding:.5rem}.lumia-scope .p-2\\.5{padding:.625rem}.lumia-scope .p-3{padding:.75rem}.lumia-scope .p-4{padding:1rem}.lumia-scope .p-5{padding:1.25rem}.lumia-scope .p-6{padding:1.5rem}.lumia-scope .p-8{padding:2rem}.lumia-scope .p-\\[var\\(--l-pass-pd\\)\\]{padding:var(--l-pass-pd)}.lumia-scope .px-0{padding-left:0;padding-right:0}.lumia-scope .px-12{padding-left:3rem;padding-right:3rem}.lumia-scope .px-2{padding-left:.5rem;padding-right:.5rem}.lumia-scope .px-2\\.5{padding-left:.625rem;padding-right:.625rem}.lumia-scope .px-3{padding-left:.75rem;padding-right:.75rem}.lumia-scope .px-4{padding-left:1rem;padding-right:1rem}.lumia-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.lumia-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.lumia-scope .px-\\[var\\(--l-pass-pd\\)\\]{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .py-0{padding-top:0;padding-bottom:0}.lumia-scope .py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.lumia-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.lumia-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.lumia-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.lumia-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.lumia-scope .py-4{padding-top:1rem;padding-bottom:1rem}.lumia-scope .py-8{padding-top:2rem;padding-bottom:2rem}.lumia-scope .py-\\[10px\\]{padding-top:10px;padding-bottom:10px}.lumia-scope .py-\\[var\\(--l-pass-pd\\)\\]{padding-top:var(--l-pass-pd);padding-bottom:var(--l-pass-pd)}.lumia-scope .pb-2{padding-bottom:.5rem}.lumia-scope .pb-3{padding-bottom:.75rem}.lumia-scope .pb-4{padding-bottom:1rem}.lumia-scope .pb-5{padding-bottom:1.25rem}.lumia-scope .pb-6{padding-bottom:1.5rem}.lumia-scope .pl-11{padding-left:2.75rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pt-0{padding-top:0}.lumia-scope .pt-2{padding-top:.5rem}.lumia-scope .pt-3{padding-top:.75rem}.lumia-scope .pt-4{padding-top:1rem}.lumia-scope .pt-5{padding-top:1.25rem}.lumia-scope .text-left{text-align:left}.lumia-scope .text-center{text-align:center}.lumia-scope .text-right{text-align:right}.lumia-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lumia-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lumia-scope .text-2xl{font-size:1.5rem;line-height:2rem}.lumia-scope .text-3xl{font-size:1.875rem;line-height:2.25rem}.lumia-scope .text-4xl{font-size:2.25rem;line-height:2.5rem}.lumia-scope .text-\\[10px\\]{font-size:10px}.lumia-scope .text-\\[11px\\]{font-size:11px}.lumia-scope .text-base{font-size:1rem;line-height:1.5rem}.lumia-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.lumia-scope .text-sm{font-size:.875rem;line-height:1.25rem}.lumia-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.lumia-scope .text-xs{font-size:.75rem;line-height:1rem}.lumia-scope .font-bold{font-weight:700}.lumia-scope .font-medium{font-weight:500}.lumia-scope .font-semibold{font-weight:600}.lumia-scope .uppercase{text-transform:uppercase}.lumia-scope .italic{font-style:italic}.lumia-scope .leading-4{line-height:1rem}.lumia-scope .leading-5{line-height:1.25rem}.lumia-scope .leading-6{line-height:1.5rem}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-relaxed{line-height:1.625}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.lumia-scope .tracking-wide{letter-spacing:.025em}.lumia-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .text-\\[var\\(--l-pass-bg-error\\)\\]{color:var(--l-pass-bg-error)}.lumia-scope .text-\\[var\\(--l-pass-bg-success\\)\\]{color:var(--l-pass-bg-success)}.lumia-scope .text-\\[var\\(--l-pass-bg-warning\\)\\]{color:var(--l-pass-bg-warning)}.lumia-scope .text-\\[var\\(--l-pass-error\\)\\]{color:var(--l-pass-error)}.lumia-scope .text-\\[var\\(--l-pass-fg\\)\\]{color:var(--l-pass-fg)}.lumia-scope .text-\\[var\\(--l-pass-fg-inverted\\)\\]{color:var(--l-pass-fg-inverted)}.lumia-scope .text-\\[var\\(--l-pass-fg-muted\\)\\]{color:var(--l-pass-fg-muted)}.lumia-scope .text-\\[var\\(--l-pass-info\\)\\]{color:var(--l-pass-info)}.lumia-scope .text-\\[var\\(--l-pass-muted\\)\\]{color:var(--l-pass-muted)}.lumia-scope .text-\\[var\\(--l-pass-primary\\)\\]{color:var(--l-pass-primary)}.lumia-scope .text-\\[var\\(--l-pass-success\\)\\]{color:var(--l-pass-success)}.lumia-scope .text-\\[var\\(--l-pass-text-secondary\\)\\]{color:var(--l-pass-text-secondary)}.lumia-scope .text-\\[var\\(--l-pass-warning\\)\\]{color:var(--l-pass-warning)}.lumia-scope .text-amber-100{--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}.lumia-scope .text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.lumia-scope .text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.lumia-scope .text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.lumia-scope .text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.lumia-scope .text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.lumia-scope .text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.lumia-scope .text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.lumia-scope .text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400\\/80{color:rgba(96,165,250,.8)}.lumia-scope .text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.lumia-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.lumia-scope .text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.lumia-scope .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.lumia-scope .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.lumia-scope .text-green-200{--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.lumia-scope .text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.lumia-scope .text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.lumia-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.lumia-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.lumia-scope .text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.lumia-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.lumia-scope .text-orange-100{--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.lumia-scope .text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.lumia-scope .text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.lumia-scope .text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.lumia-scope .text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.lumia-scope .text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.lumia-scope .text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.lumia-scope .text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.lumia-scope .text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.lumia-scope .text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.lumia-scope .text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.lumia-scope .text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.lumia-scope .text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.lumia-scope .text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.lumia-scope .text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.lumia-scope .text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .text-red-300\\/95{color:hsla(0,94%,82%,.95)}.lumia-scope .text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .text-red-400\\/80{color:hsla(0,91%,71%,.8)}.lumia-scope .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.lumia-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.lumia-scope .text-red-600\\/90{color:rgba(220,38,38,.9)}.lumia-scope .text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.lumia-scope .text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.lumia-scope .text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.lumia-scope .text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.lumia-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.lumia-scope .text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.lumia-scope .underline{text-decoration-line:underline}.lumia-scope .underline-offset-4{text-underline-offset:4px}.lumia-scope .opacity-0{opacity:0}.lumia-scope .opacity-100{opacity:1}.lumia-scope .opacity-40{opacity:.4}.lumia-scope .opacity-50{opacity:.5}.lumia-scope .opacity-60{opacity:.6}.lumia-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.lumia-scope .shadow,.lumia-scope .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.lumia-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.lumia-scope .shadow-lg,.lumia-scope .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lumia-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.lumia-scope .outline{outline-style:solid}.lumia-scope .blur{--tw-blur:blur(8px)}.lumia-scope .blur,.lumia-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .backdrop-blur{--tw-backdrop-blur:blur(8px)}.lumia-scope .backdrop-blur,.lumia-scope .backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.lumia-scope .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-none{transition-property:none}.lumia-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .duration-200{transition-duration:.2s}.lumia-scope .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lumia-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.lumia-scope{--l-pass-ff:var(--lumia-passport-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--l-pass-maw:var(--lumia-passport-maw,320px);--l-pass-pd:var(--lumia-passport-pd,12px);--l-pass-gap:var(--lumia-passport-gap,10px);--l-pass-bdrs:var(--lumia-passport-bdrs,20px);--l-pass-el-bdrs:var(--lumia-passport-element-bdrs,10px);--l-pass-backdrop-blur:var(--lumia-passport-backdrop-blur,10px)}.lumia-scope[data-lumia-passport-mode=light]{--l-pass-overlay:var(--lumia-passport-overlay,hsla(0,0%,100%,.8));--l-pass-bg:var(--lumia-passport-bg,#fff);--l-pass-fg:var(--lumia-passport-fg,#000);--l-pass-fg-h:var(--lumia-passport-fg-h,rgba(0,0,0,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,rgba(0,0,0,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#fff);--l-pass-fg-muted:var(--lumia-passport-fg-muted,rgba(0,0,0,.6));--l-pass-primary:var(--lumia-passport-primary,#000);--l-pass-primary-h:var(--lumia-passport-primary-h,rgba(0,0,0,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,rgba(0,0,0,.6));--l-pass-secondary:var(--lumia-passport-secondary,#e4e4e4);--l-pass-secondary-h:var(--lumia-passport-secondary-h,hsla(0,0%,89%,.8));--l-pass-secondary-a:var(--lumia-passport-secondary-a,hsla(0,0%,89%,.6));--l-pass-bd:var(--lumia-passport-bd,#c9c9c9);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#a9a9a9);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#e4e4e4);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope[data-lumia-passport-mode=dark]{--l-pass-overlay:var(--lumia-passport-overlay,rgba(0,0,0,.8));--l-pass-bg:var(--lumia-passport-bg,#1a1a1a);--l-pass-fg:var(--lumia-passport-fg,#fff);--l-pass-fg-h:var(--lumia-passport-fg-h,hsla(0,0%,100%,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,hsla(0,0%,100%,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#000);--l-pass-fg-muted:var(--lumia-passport-fg-muted,hsla(0,0%,100%,.6));--l-pass-primary:var(--lumia-passport-primary,#fff);--l-pass-primary-h:var(--lumia-passport-primary-h,hsla(0,0%,100%,.9));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.7));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.9));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.7));--l-pass-bd:var(--lumia-passport-bd,#3a3a3a);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#4a4a4a);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.5));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#2a2a2a);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg-inverted));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg-inverted));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope,.lumia-scope *{margin:0;box-sizing:border-box;font-family:var(--l-pass-ff);font-optical-sizing:auto}.lumia-scope button,.lumia-scope h1,.lumia-scope h2,.lumia-scope h3,.lumia-scope h4,.lumia-scope h5,.lumia-scope h6,.lumia-scope input,.lumia-scope p,.lumia-scope select,.lumia-scope textarea{font-family:var(--l-pass-ff)!important;margin:0}.lumia-scope button,.lumia-scope input,.lumia-scope select,.lumia-scope textarea{border-style:solid;outline:none;appearance:none;-webkit-appearance:none;-moz-appearance:none}.lumia-scope .lumia-passport-button{box-shadow:0 4px 10px var(--l-pass-shadow-c),inset 0 0 0 1px var(--l-pass-bd);transition:transform .25s ease}.lumia-scope .lumia-passport-button:hover{transform:scale(1.02)}.lumia-scope .lumia-passport-button:active{transform:scale(1)}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.lumia-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.lumia-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.lumia-scope .list-scrollbar-y{width:100%;padding-right:var(--l-pass-list-scrollbar-pd-r,0);overflow-y:auto;max-height:var(--l-pass-scrollbar-mah,300px)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--l-pass-bd)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.lumia-scope .noScrollbars::-webkit-scrollbar{display:none}.lumia-scope .file\\:mr-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{margin-right:var(--l-pass-pd)}.lumia-scope .file\\:h-8::file-selector-button{height:2rem}.lumia-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.lumia-scope .file\\:rounded-\\[var\\(--l-pass-el-bdrs\\)\\]::file-selector-button{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .file\\:border-0::file-selector-button{border-width:0}.lumia-scope .file\\:bg-\\[var\\(--l-pass-primary\\)\\]::file-selector-button{background-color:var(--l-pass-primary)}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .file\\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.lumia-scope .file\\:font-medium::file-selector-button{font-weight:500}.lumia-scope .file\\:text-\\[var\\(--l-pass-fg-inverted\\)\\]::file-selector-button{color:var(--l-pass-fg-inverted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::-moz-placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .placeholder\\:text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .focus-within\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus-within{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.lumia-scope .hover\\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover{background-color:var(--l-pass-bg)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-primary-h\\)\\]:hover{background-color:var(--l-pass-primary-h)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-secondary-h\\)\\]:hover{background-color:var(--l-pass-secondary-h)}.lumia-scope .hover\\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-900\\/60:hover{background-color:rgba(30,58,138,.6)}.lumia-scope .hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-100:hover{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-purple-100:hover{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-600\\/90:hover{background-color:rgba(220,38,38,.9)}.lumia-scope .hover\\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-900\\/20:hover{background-color:rgba(127,29,29,.2)}.lumia-scope .hover\\:bg-slate-800:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover{color:var(--l-pass-fg)}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg-h\\)\\]:hover{color:var(--l-pass-fg-h)}.lumia-scope .hover\\:text-gray-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-300:hover{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .hover\\:underline:hover{text-decoration-line:underline}.lumia-scope .hover\\:opacity-80:hover{opacity:.8}.lumia-scope .hover\\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.lumia-scope .focus\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}.lumia-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.lumia-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.lumia-scope .focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.lumia-scope .active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active{background-color:var(--l-pass-bg)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-primary-a\\)\\]:active{background-color:var(--l-pass-primary-a)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:active{background-color:var(--l-pass-secondary-a)}.lumia-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .active\\:text-\\[var\\(--l-pass-fg-a\\)\\]:active{color:var(--l-pass-fg-a)}.lumia-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.lumia-scope .disabled\\:cursor-default:disabled{cursor:default}.lumia-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.lumia-scope .disabled\\:opacity-100:disabled{opacity:1}.lumia-scope .disabled\\:opacity-50:disabled{opacity:.5}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-primary\\)\\]:hover:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover:disabled{color:var(--l-pass-fg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-primary\\)\\]:active:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:active\\:text-\\[var\\(--l-pass-fg\\)\\]:active:disabled{color:var(--l-pass-fg)}.lumia-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.lumia-scope :is(.group:hover .group-hover\\:opacity-60){opacity:.6}.lumia-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--l-pass-bd-intense\\)\\][data-state=checked]{border-color:var(--l-pass-bd-intense)}.lumia-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--l-pass-secondary\\)\\][data-state=checked]{background-color:var(--l-pass-secondary)}.lumia-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--l-pass-fg\\)\\][data-state=checked]{color:var(--l-pass-fg)}@media (min-width:640px){.lumia-scope .sm\\:flex-row{flex-direction:row}.lumia-scope .sm\\:justify-end{justify-content:flex-end}.lumia-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope .sm\\:text-left{text-align:left}}@media (min-width:768px){.lumia-scope .md\\:h-8{height:2rem}.lumia-scope .md\\:w-8{width:2rem}.lumia-scope .md\\:gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .md\\:py-0{padding-top:0;padding-bottom:0}}@media (prefers-color-scheme:dark){.lumia-scope .dark\\:bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-yellow-500:hover{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}}.lumia-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-5 svg){height:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-6 svg){height:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-5 svg){width:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-6 svg){width:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
|
|
4301
4292
|
|
|
4302
4293
|
// src/context/LumiaPassportContext.tsx
|
|
4303
4294
|
var import_error_tracking4 = require("@lumiapassport/core/internal/error-tracking");
|
|
4304
4295
|
var import_lodash_es4 = require("lodash-es");
|
|
4305
|
-
var
|
|
4296
|
+
var import_react49 = require("react");
|
|
4306
4297
|
init_lumiaPassport();
|
|
4307
4298
|
init_iframe_manager();
|
|
4308
4299
|
|
|
4309
4300
|
// src/context/LumiaPassportSessionContext.tsx
|
|
4310
|
-
var
|
|
4301
|
+
var import_react48 = require("react");
|
|
4311
4302
|
var import_zustand5 = require("zustand");
|
|
4312
4303
|
|
|
4313
4304
|
// src/internal/components/BalanceFeedProvider/BalanceFeedProvider.tsx
|
|
4314
|
-
var
|
|
4315
|
-
var
|
|
4305
|
+
var import_react_query = require("@tanstack/react-query");
|
|
4306
|
+
var import_react = require("react");
|
|
4316
4307
|
var import_wagmi = require("wagmi");
|
|
4317
4308
|
init_base();
|
|
4318
4309
|
|
|
@@ -4322,13 +4313,13 @@ var import_zustand = require("zustand");
|
|
|
4322
4313
|
// src/internal/constants.ts
|
|
4323
4314
|
var import_lucide_react2 = require("lucide-react");
|
|
4324
4315
|
init_assets();
|
|
4316
|
+
var LOCAL_COLOR_MODE_KEY = "lumia-passport-theme";
|
|
4325
4317
|
var DEFAULT_AUTH_MENU_HEIGHT = 253;
|
|
4326
4318
|
var DEFAULT_MAIN_MENU_HEIGHT = 90;
|
|
4327
4319
|
var DEFAULT_SETTINGS_MENU_HEIGHT = 346;
|
|
4328
4320
|
var MAX_CONTENT_HEIGHT = 640;
|
|
4329
4321
|
var MAIN_DIALOG_ANIMATION_SPEED = 375;
|
|
4330
4322
|
var Y_ANIMATION_SETUP = { duration: 0.15, ease: "easeInOut", height: { duration: 0.375 } };
|
|
4331
|
-
var LOCAL_COLOR_MODE_KEY = "lumia-passport-theme";
|
|
4332
4323
|
var PROVIDERS_META2 = {
|
|
4333
4324
|
passkey: { name: "Passkey", icon: import_lucide_react2.Key, description: "Biometric authentication" },
|
|
4334
4325
|
email: { name: "Email", icon: import_lucide_react2.Mail, description: "Email verification" },
|
|
@@ -4388,166 +4379,20 @@ var useLayoutDataStore = (0, import_zustand.create)((set) => ({
|
|
|
4388
4379
|
})
|
|
4389
4380
|
}));
|
|
4390
4381
|
|
|
4391
|
-
// src/internal/hooks/useLumiaPriceSSE.ts
|
|
4392
|
-
var import_react_query = require("@tanstack/react-query");
|
|
4393
|
-
var import_react = require("react");
|
|
4394
|
-
|
|
4395
|
-
// src/internal/lib/LumiaPriceSSEService.ts
|
|
4396
|
-
var FALLBACK = "https://fallback.lumia.passport.io";
|
|
4397
|
-
var API_DOMAIN = (true ? "" : FALLBACK) || FALLBACK;
|
|
4398
|
-
var LumiaPriceSSEService = class {
|
|
4399
|
-
// private readonly baseUrl: string = API_DOMAIN
|
|
4400
|
-
constructor() {
|
|
4401
|
-
this.eventSource = null;
|
|
4402
|
-
this.listeners = /* @__PURE__ */ new Set();
|
|
4403
|
-
this.currentPrice = null;
|
|
4404
|
-
this.isConnected = false;
|
|
4405
|
-
this.reconnectTimeout = null;
|
|
4406
|
-
}
|
|
4407
|
-
connect() {
|
|
4408
|
-
return new Promise((resolve, reject) => {
|
|
4409
|
-
console.log("[LumiaPriceSSEService]: Connecting to LUMIA Price SSE...");
|
|
4410
|
-
if (this.isConnected) {
|
|
4411
|
-
resolve();
|
|
4412
|
-
return;
|
|
4413
|
-
}
|
|
4414
|
-
try {
|
|
4415
|
-
this.eventSource = new EventSource(`${API_DOMAIN}/api/lumia/sse`);
|
|
4416
|
-
this.eventSource.onopen = () => {
|
|
4417
|
-
console.log("[LumiaPriceSSEService]: LUMIA Price SSE connected");
|
|
4418
|
-
this.isConnected = true;
|
|
4419
|
-
this.clearReconnectTimeout();
|
|
4420
|
-
resolve();
|
|
4421
|
-
};
|
|
4422
|
-
this.eventSource.onmessage = () => {
|
|
4423
|
-
};
|
|
4424
|
-
this.eventSource.addEventListener("rate", (event) => {
|
|
4425
|
-
try {
|
|
4426
|
-
const data = JSON.parse(event.data);
|
|
4427
|
-
if (data.price !== void 0 && data.symbol === "LUMIAUSDT") {
|
|
4428
|
-
this.currentPrice = typeof data.price === "number" ? data.price : parseFloat(data.price);
|
|
4429
|
-
if (this.currentPrice !== null) {
|
|
4430
|
-
const update = {
|
|
4431
|
-
symbol: data.symbol,
|
|
4432
|
-
price: this.currentPrice,
|
|
4433
|
-
ts: data.ts || Date.now()
|
|
4434
|
-
};
|
|
4435
|
-
this.listeners.forEach((listener) => listener(update));
|
|
4436
|
-
}
|
|
4437
|
-
}
|
|
4438
|
-
} catch (error) {
|
|
4439
|
-
console.error("Error parsing price event:", error, event.data);
|
|
4440
|
-
}
|
|
4441
|
-
});
|
|
4442
|
-
this.eventSource.addEventListener("ping", () => {
|
|
4443
|
-
});
|
|
4444
|
-
this.eventSource.onerror = (error) => {
|
|
4445
|
-
console.error("LUMIA Price SSE error:", error);
|
|
4446
|
-
this.isConnected = false;
|
|
4447
|
-
if (this.eventSource?.readyState === EventSource.CLOSED) {
|
|
4448
|
-
console.log("SSE connection closed, attempting to reconnect...");
|
|
4449
|
-
this.scheduleReconnect();
|
|
4450
|
-
reject(error);
|
|
4451
|
-
}
|
|
4452
|
-
};
|
|
4453
|
-
setTimeout(() => {
|
|
4454
|
-
if (!this.isConnected) {
|
|
4455
|
-
reject(new Error("SSE connection timeout"));
|
|
4456
|
-
}
|
|
4457
|
-
}, 1e4);
|
|
4458
|
-
} catch (error) {
|
|
4459
|
-
reject(error);
|
|
4460
|
-
}
|
|
4461
|
-
});
|
|
4462
|
-
}
|
|
4463
|
-
disconnect() {
|
|
4464
|
-
this.clearReconnectTimeout();
|
|
4465
|
-
if (this.eventSource) {
|
|
4466
|
-
this.eventSource.close();
|
|
4467
|
-
this.eventSource = null;
|
|
4468
|
-
}
|
|
4469
|
-
this.isConnected = false;
|
|
4470
|
-
this.currentPrice = null;
|
|
4471
|
-
console.log("[LumiaPriceSSEService]: LUMIA Price SSE disconnected");
|
|
4472
|
-
}
|
|
4473
|
-
addListener(listener) {
|
|
4474
|
-
this.listeners.add(listener);
|
|
4475
|
-
}
|
|
4476
|
-
removeListener(listener) {
|
|
4477
|
-
this.listeners.delete(listener);
|
|
4478
|
-
}
|
|
4479
|
-
clearListeners() {
|
|
4480
|
-
this.listeners.clear();
|
|
4481
|
-
}
|
|
4482
|
-
getCurrentPrice() {
|
|
4483
|
-
return this.currentPrice;
|
|
4484
|
-
}
|
|
4485
|
-
getConnectionStatus() {
|
|
4486
|
-
return this.isConnected;
|
|
4487
|
-
}
|
|
4488
|
-
scheduleReconnect() {
|
|
4489
|
-
this.clearReconnectTimeout();
|
|
4490
|
-
this.reconnectTimeout = window.setTimeout(() => {
|
|
4491
|
-
console.log("Attempting to reconnect to BTC Price SSE...");
|
|
4492
|
-
this.connect().catch((error) => {
|
|
4493
|
-
console.error("Reconnection failed:", error);
|
|
4494
|
-
this.scheduleReconnect();
|
|
4495
|
-
});
|
|
4496
|
-
}, 5e3);
|
|
4497
|
-
}
|
|
4498
|
-
clearReconnectTimeout() {
|
|
4499
|
-
if (this.reconnectTimeout) {
|
|
4500
|
-
clearTimeout(this.reconnectTimeout);
|
|
4501
|
-
this.reconnectTimeout = null;
|
|
4502
|
-
}
|
|
4503
|
-
}
|
|
4504
|
-
};
|
|
4505
|
-
var lumiaPriceSSE = new LumiaPriceSSEService();
|
|
4506
|
-
async function sseConnectMutation() {
|
|
4507
|
-
try {
|
|
4508
|
-
await lumiaPriceSSE.connect();
|
|
4509
|
-
console.info("[LUMIA SSE] price feed connected");
|
|
4510
|
-
return { ok: true };
|
|
4511
|
-
} catch (error) {
|
|
4512
|
-
console.error("[LUMIA SSE] Error connecting to SSE:", error);
|
|
4513
|
-
throw new Error("[LUMIA SSE] Error connecting to SSE");
|
|
4514
|
-
}
|
|
4515
|
-
}
|
|
4516
|
-
|
|
4517
|
-
// src/internal/hooks/useLumiaPriceSSE.ts
|
|
4518
|
-
function useLumiaPriceSSE(enabled, updateCurrentPrice) {
|
|
4519
|
-
const { mutate: connectSSE } = (0, import_react_query.useMutation)({
|
|
4520
|
-
mutationFn: sseConnectMutation,
|
|
4521
|
-
onSuccess: () => {
|
|
4522
|
-
lumiaPriceSSE.addListener(updateCurrentPrice);
|
|
4523
|
-
},
|
|
4524
|
-
onError: (err) => {
|
|
4525
|
-
console.error("Lumia Price SSE connection error:", err);
|
|
4526
|
-
}
|
|
4527
|
-
});
|
|
4528
|
-
(0, import_react.useEffect)(() => {
|
|
4529
|
-
const isConnected = lumiaPriceSSE.getConnectionStatus();
|
|
4530
|
-
console.log("[LUMIA PRICE SSE MANAGER] SSE status:", { enabled, isConnected });
|
|
4531
|
-
if (!enabled) {
|
|
4532
|
-
lumiaPriceSSE.clearListeners();
|
|
4533
|
-
lumiaPriceSSE.disconnect();
|
|
4534
|
-
return;
|
|
4535
|
-
}
|
|
4536
|
-
return () => {
|
|
4537
|
-
lumiaPriceSSE.clearListeners();
|
|
4538
|
-
lumiaPriceSSE.disconnect();
|
|
4539
|
-
};
|
|
4540
|
-
}, [enabled, connectSSE]);
|
|
4541
|
-
}
|
|
4542
|
-
|
|
4543
4382
|
// src/internal/components/BalanceFeedProvider/BalanceFeedProvider.tsx
|
|
4544
4383
|
var BALANCE_POLLING_INTERVAL = 3e4;
|
|
4384
|
+
async function getAssetRate(symbol = "LUMIA", fiat = "USDT") {
|
|
4385
|
+
const assetURL = `https://api.binance.com/api/v3/ticker/price?symbol=${symbol.toUpperCase()}${fiat.toUpperCase()}`;
|
|
4386
|
+
const response = await fetch(assetURL);
|
|
4387
|
+
return await response.json();
|
|
4388
|
+
}
|
|
4389
|
+
var LUMIA_RATE_QUERY_KEY = "lumia-passport-rate-query-key";
|
|
4545
4390
|
function BalanceFeedProvider() {
|
|
4546
4391
|
const config = useLumiaPassportConfig().config;
|
|
4547
4392
|
const address = useLumiaPassportSession((st) => st.address);
|
|
4548
|
-
const {
|
|
4549
|
-
const [balanceSymbol, setBalanceSymbol] = (0,
|
|
4550
|
-
(0,
|
|
4393
|
+
const { setCryptoRate, setFiatBalance, setBalance, setCryptoSymbol, setFiatSymbol } = useLayoutDataStore();
|
|
4394
|
+
const [balanceSymbol, setBalanceSymbol] = (0, import_react.useState)(null);
|
|
4395
|
+
(0, import_react.useEffect)(() => {
|
|
4551
4396
|
const { assets, showBalanceAs: customBalanceSymbol } = config.current?.projectAssets || {};
|
|
4552
4397
|
const { balanceQuery, balanceQueryKey } = assets?.find((a) => a.symbol === customBalanceSymbol) || {};
|
|
4553
4398
|
const isCustom = !!customBalanceSymbol && !!balanceQuery && !!balanceQueryKey;
|
|
@@ -4564,21 +4409,38 @@ function BalanceFeedProvider() {
|
|
|
4564
4409
|
refetchOnWindowFocus: true
|
|
4565
4410
|
}
|
|
4566
4411
|
});
|
|
4567
|
-
|
|
4568
|
-
|
|
4569
|
-
|
|
4412
|
+
const { data: cryptoRate } = (0, import_react_query.useQuery)({
|
|
4413
|
+
queryKey: [LUMIA_RATE_QUERY_KEY, address],
|
|
4414
|
+
enabled: !!address && !!isNativeBalanceFeedEnabled,
|
|
4415
|
+
refetchInterval: BALANCE_POLLING_INTERVAL,
|
|
4416
|
+
queryFn: async () => getAssetRate("LUMIA", "USDT")
|
|
4417
|
+
// TODO: get LUMIA-FIAT pair from config
|
|
4418
|
+
});
|
|
4419
|
+
(0, import_react.useEffect)(() => {
|
|
4420
|
+
const rate = cryptoRate ? Number(cryptoRate.price) : null;
|
|
4421
|
+
if (!isNativeBalanceFeedEnabled || !balance || !rate) return;
|
|
4422
|
+
setCryptoRate(rate);
|
|
4570
4423
|
setCryptoSymbol("LUMIA");
|
|
4571
4424
|
setFiatSymbol("USD");
|
|
4572
|
-
setFiatBalance(Number(balance?.formatted || 0) *
|
|
4425
|
+
setFiatBalance(Number(balance?.formatted || 0) * rate);
|
|
4573
4426
|
setBalance(balance);
|
|
4574
|
-
}, [
|
|
4427
|
+
}, [
|
|
4428
|
+
isNativeBalanceFeedEnabled,
|
|
4429
|
+
balance,
|
|
4430
|
+
cryptoRate,
|
|
4431
|
+
setFiatBalance,
|
|
4432
|
+
setCryptoRate,
|
|
4433
|
+
setBalance,
|
|
4434
|
+
setCryptoSymbol,
|
|
4435
|
+
setFiatSymbol
|
|
4436
|
+
]);
|
|
4575
4437
|
const {
|
|
4576
4438
|
balanceQuery: customBalanceQuery,
|
|
4577
4439
|
balanceQueryKey: CUSTOM_BALANCE_QUERY_KEY,
|
|
4578
4440
|
symbol: customAssetSymbol
|
|
4579
4441
|
} = config.current?.projectAssets?.assets?.find((a) => a.symbol === config.current?.projectAssets?.showBalanceAs) || {};
|
|
4580
4442
|
const isCustomBalanceEnabled = balanceSymbol === customAssetSymbol;
|
|
4581
|
-
const { data: customBalance } = (0,
|
|
4443
|
+
const { data: customBalance } = (0, import_react_query.useQuery)({
|
|
4582
4444
|
retry: false,
|
|
4583
4445
|
refetchInterval: BALANCE_POLLING_INTERVAL,
|
|
4584
4446
|
enabled: !!address && !!isCustomBalanceEnabled,
|
|
@@ -4586,7 +4448,7 @@ function BalanceFeedProvider() {
|
|
|
4586
4448
|
// should be invalidated by host app via provided queryKey
|
|
4587
4449
|
queryFn: async () => await customBalanceQuery?.()
|
|
4588
4450
|
});
|
|
4589
|
-
(0,
|
|
4451
|
+
(0, import_react.useEffect)(() => {
|
|
4590
4452
|
if (!isCustomBalanceEnabled || !customBalance) return;
|
|
4591
4453
|
const { cryptoFiatRate, fiatFormatted, cryptoFormatted, cryptoSymbol, fiatSymbol } = customBalance;
|
|
4592
4454
|
setCryptoSymbol(cryptoSymbol.toUpperCase());
|
|
@@ -4605,12 +4467,12 @@ function BalanceFeedProvider() {
|
|
|
4605
4467
|
|
|
4606
4468
|
// src/internal/components/Dialog/LumiaPassportDialog.tsx
|
|
4607
4469
|
var import_framer_motion4 = require("framer-motion");
|
|
4608
|
-
var
|
|
4470
|
+
var import_react45 = require("react");
|
|
4609
4471
|
|
|
4610
4472
|
// package.json
|
|
4611
4473
|
var package_default = {
|
|
4612
4474
|
name: "@lumiapassport/ui-kit",
|
|
4613
|
-
version: "1.
|
|
4475
|
+
version: "1.14.0",
|
|
4614
4476
|
description: "React UI components and hooks for Lumia Passport authentication and Account Abstraction",
|
|
4615
4477
|
type: "module",
|
|
4616
4478
|
main: "./dist/index.cjs",
|
|
@@ -4698,13 +4560,13 @@ var package_default = {
|
|
|
4698
4560
|
};
|
|
4699
4561
|
|
|
4700
4562
|
// src/internal/components/Footer/Footer.tsx
|
|
4701
|
-
var
|
|
4563
|
+
var import_react_query2 = require("@tanstack/react-query");
|
|
4702
4564
|
var import_lucide_react3 = require("lucide-react");
|
|
4703
4565
|
|
|
4704
4566
|
// src/internal/assets/LumiaLogo.tsx
|
|
4705
|
-
var
|
|
4567
|
+
var import_react2 = require("react");
|
|
4706
4568
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
4707
|
-
var LumiaLogo = (0,
|
|
4569
|
+
var LumiaLogo = (0, import_react2.forwardRef)(({ size = 24, className = "" }, ref) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
4708
4570
|
"svg",
|
|
4709
4571
|
{
|
|
4710
4572
|
ref,
|
|
@@ -4759,14 +4621,17 @@ init_base();
|
|
|
4759
4621
|
// src/internal/lib/utils.ts
|
|
4760
4622
|
var import_clsx = require("clsx");
|
|
4761
4623
|
var import_tailwind_merge = require("tailwind-merge");
|
|
4624
|
+
function cn(...inputs) {
|
|
4625
|
+
return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
|
|
4626
|
+
}
|
|
4762
4627
|
var LP_JWT_TOKENS_LS_KEY = "lumia-passport-jwt-tokens";
|
|
4763
|
-
function
|
|
4628
|
+
function getAccessToken() {
|
|
4764
4629
|
try {
|
|
4765
4630
|
const sessionString = localStorage.getItem(LP_JWT_TOKENS_LS_KEY);
|
|
4766
4631
|
if (!sessionString) return null;
|
|
4767
4632
|
const session = JSON.parse(sessionString);
|
|
4768
4633
|
if (session && typeof session.accessToken === "string" && typeof session.userId === "string") {
|
|
4769
|
-
return
|
|
4634
|
+
return session.accessToken;
|
|
4770
4635
|
}
|
|
4771
4636
|
return null;
|
|
4772
4637
|
} catch (error) {
|
|
@@ -4774,9 +4639,6 @@ function getBearer() {
|
|
|
4774
4639
|
return null;
|
|
4775
4640
|
}
|
|
4776
4641
|
}
|
|
4777
|
-
function cn(...inputs) {
|
|
4778
|
-
return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
|
|
4779
|
-
}
|
|
4780
4642
|
|
|
4781
4643
|
// src/internal/components/ui/button.tsx
|
|
4782
4644
|
var import_react_slot = require("@radix-ui/react-slot");
|
|
@@ -4843,7 +4705,7 @@ function Footer() {
|
|
|
4843
4705
|
const { callbacks } = useLumiaPassportConfig();
|
|
4844
4706
|
const { address, setSession, setAddress, setStatus, setError, setIsLoading } = useLumiaPassportSession();
|
|
4845
4707
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
4846
|
-
const { mutate: disconnect, isPending: isDisconnecting } = (0,
|
|
4708
|
+
const { mutate: disconnect, isPending: isDisconnecting } = (0, import_react_query2.useMutation)({
|
|
4847
4709
|
mutationFn: async (disconnectAddress) => {
|
|
4848
4710
|
if (!disconnectAddress) throw new Error("No address to disconnect");
|
|
4849
4711
|
setError(null);
|
|
@@ -4975,9 +4837,9 @@ function LumiaIcon(props) {
|
|
|
4975
4837
|
}
|
|
4976
4838
|
|
|
4977
4839
|
// src/internal/components/Header/Header.tsx
|
|
4978
|
-
var
|
|
4840
|
+
var import_react_query3 = require("@tanstack/react-query");
|
|
4979
4841
|
var import_lucide_react4 = require("lucide-react");
|
|
4980
|
-
var
|
|
4842
|
+
var import_react3 = require("react");
|
|
4981
4843
|
|
|
4982
4844
|
// src/internal/assets/PositiveIcon.tsx
|
|
4983
4845
|
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
@@ -5033,10 +4895,10 @@ function Header() {
|
|
|
5033
4895
|
config: { current: config }
|
|
5034
4896
|
} = useLumiaPassportConfig();
|
|
5035
4897
|
const address = useLumiaPassportSession((st) => st.address);
|
|
5036
|
-
const [copied, setCopied] = (0,
|
|
4898
|
+
const [copied, setCopied] = (0, import_react3.useState)(false);
|
|
5037
4899
|
const avatar = import_auth3.jwtTokenManager.getAvatar();
|
|
5038
4900
|
const displayName = import_auth3.jwtTokenManager.getDisplayName();
|
|
5039
|
-
const { data: userProfile = null, isLoading: isUserProfileLoading } = (0,
|
|
4901
|
+
const { data: userProfile = null, isLoading: isUserProfileLoading } = (0, import_react_query3.useQuery)({
|
|
5040
4902
|
retry: false,
|
|
5041
4903
|
enabled: !!address,
|
|
5042
4904
|
queryKey: [QUERY_KEYS.userProfile, address],
|
|
@@ -5154,7 +5016,7 @@ function Header() {
|
|
|
5154
5016
|
var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
5155
5017
|
var import_lodash_es = require("lodash-es");
|
|
5156
5018
|
var import_lucide_react5 = require("lucide-react");
|
|
5157
|
-
var
|
|
5019
|
+
var import_react4 = require("react");
|
|
5158
5020
|
|
|
5159
5021
|
// src/internal/hooks/useLayoutStore.ts
|
|
5160
5022
|
var import_zustand2 = require("zustand");
|
|
@@ -5189,7 +5051,7 @@ var useLayoutStore = (0, import_zustand2.create)((set) => ({
|
|
|
5189
5051
|
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
5190
5052
|
var Dialog = DialogPrimitive.Root;
|
|
5191
5053
|
var DialogPortal = DialogPrimitive.Portal;
|
|
5192
|
-
var DialogOverlay = (0,
|
|
5054
|
+
var DialogOverlay = (0, import_react4.forwardRef)(
|
|
5193
5055
|
({ className, closing, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
5194
5056
|
DialogPrimitive.Overlay,
|
|
5195
5057
|
{
|
|
@@ -5207,10 +5069,7 @@ var DialogOverlay = (0, import_react5.forwardRef)(
|
|
|
5207
5069
|
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
5208
5070
|
function useDecideContentStyles() {
|
|
5209
5071
|
const isMobileView = useLayoutStore((st) => st.isMobileView);
|
|
5210
|
-
const
|
|
5211
|
-
const isDialogClosing = useLayoutStore((st) => st.isDialogClosing);
|
|
5212
|
-
const isClosing = isDialogOpen && isDialogClosing;
|
|
5213
|
-
console.log("[IS_MOBILE_VIEW]", isMobileView);
|
|
5072
|
+
const isClosing = useLayoutStore((st) => !!st.isDialogOpen && !!st.isDialogClosing);
|
|
5214
5073
|
const mobileStyles = isMobileView ? { "--l-pass-maw": "100%", "--l-pass-bdrs": "20px 20px 0px 0px" } : {};
|
|
5215
5074
|
return {
|
|
5216
5075
|
isClosing,
|
|
@@ -5223,7 +5082,7 @@ var CONTENT_BG_SETUP = {
|
|
|
5223
5082
|
border: "1px solid var(--l-pass-bd)",
|
|
5224
5083
|
boxShadow: "0px 4px 10px var(--l-pass-shadow-c)"
|
|
5225
5084
|
};
|
|
5226
|
-
var DialogContent = (0,
|
|
5085
|
+
var DialogContent = (0, import_react4.forwardRef)(
|
|
5227
5086
|
({ className, children, hideClose, colorMode, ...props }, ref) => {
|
|
5228
5087
|
const isSettings = useLayoutStore((st) => st.isSettings);
|
|
5229
5088
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
@@ -5245,7 +5104,6 @@ var DialogContent = (0, import_react5.forwardRef)(
|
|
|
5245
5104
|
ref,
|
|
5246
5105
|
style: !!className ? void 0 : CONTENT_BG_SETUP,
|
|
5247
5106
|
className: cn(
|
|
5248
|
-
// isWalletLinking ? 'pointer-events-none' : 'pointer-events-auto',
|
|
5249
5107
|
"relative pointer-events-auto w-full",
|
|
5250
5108
|
"max-w-[var(--l-pass-maw)] max-h-[95dvh] p-0 gap-0",
|
|
5251
5109
|
"text-[var(--l-pass-fg)]",
|
|
@@ -5307,7 +5165,7 @@ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_r
|
|
|
5307
5165
|
DialogHeader.displayName = "DialogHeader";
|
|
5308
5166
|
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
5309
5167
|
DialogFooter.displayName = "DialogFooter";
|
|
5310
|
-
var DialogTitle = (0,
|
|
5168
|
+
var DialogTitle = (0, import_react4.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
5311
5169
|
DialogPrimitive.Title,
|
|
5312
5170
|
{
|
|
5313
5171
|
ref,
|
|
@@ -5316,7 +5174,7 @@ var DialogTitle = (0, import_react5.forwardRef)(({ className, ...props }, ref) =
|
|
|
5316
5174
|
}
|
|
5317
5175
|
));
|
|
5318
5176
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
5319
|
-
var DialogDescription = (0,
|
|
5177
|
+
var DialogDescription = (0, import_react4.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DialogPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
5320
5178
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
5321
5179
|
|
|
5322
5180
|
// src/internal/components/ui/visually-hidden.tsx
|
|
@@ -5324,7 +5182,7 @@ var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
|
5324
5182
|
var VisuallyHidden = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "sr-only absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0", children });
|
|
5325
5183
|
|
|
5326
5184
|
// src/internal/hooks/useAutoConnect.ts
|
|
5327
|
-
var
|
|
5185
|
+
var import_react5 = require("react");
|
|
5328
5186
|
function useAutoConnect() {
|
|
5329
5187
|
const {
|
|
5330
5188
|
config: { current: config },
|
|
@@ -5344,7 +5202,7 @@ function useAutoConnect() {
|
|
|
5344
5202
|
setIsIframeReady,
|
|
5345
5203
|
setIsLoading
|
|
5346
5204
|
} = useLumiaPassportSession();
|
|
5347
|
-
const createSessionWithKeyshare = (0,
|
|
5205
|
+
const createSessionWithKeyshare = (0, import_react5.useCallback)(
|
|
5348
5206
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
5349
5207
|
try {
|
|
5350
5208
|
try {
|
|
@@ -5378,8 +5236,8 @@ function useAutoConnect() {
|
|
|
5378
5236
|
},
|
|
5379
5237
|
[usePaymaster, setStatus, callbacks]
|
|
5380
5238
|
);
|
|
5381
|
-
const autoConnectAttemptedRef = (0,
|
|
5382
|
-
(0,
|
|
5239
|
+
const autoConnectAttemptedRef = (0, import_react5.useRef)(false);
|
|
5240
|
+
(0, import_react5.useEffect)(() => {
|
|
5383
5241
|
if (autoConnectAttemptedRef.current) return;
|
|
5384
5242
|
setIsLoading(true);
|
|
5385
5243
|
const tryAutoConnect = async (attempt) => {
|
|
@@ -5498,11 +5356,11 @@ function useAutoConnect() {
|
|
|
5498
5356
|
}
|
|
5499
5357
|
|
|
5500
5358
|
// src/internal/hooks/useBackupStatusChanges.ts
|
|
5501
|
-
var
|
|
5359
|
+
var import_react6 = require("react");
|
|
5502
5360
|
init_vaultClient();
|
|
5503
5361
|
function useBackupStatusChanges() {
|
|
5504
5362
|
const setHasServerVault = useLumiaPassportSession((st) => st.setHasServerVault);
|
|
5505
|
-
(0,
|
|
5363
|
+
(0, import_react6.useEffect)(() => {
|
|
5506
5364
|
const handleBackupStatusChanged = async (event) => {
|
|
5507
5365
|
const customEvent = event;
|
|
5508
5366
|
const { method, success } = customEvent.detail || {};
|
|
@@ -5528,13 +5386,13 @@ function useBackupStatusChanges() {
|
|
|
5528
5386
|
}
|
|
5529
5387
|
|
|
5530
5388
|
// src/internal/hooks/useCheckVaultStatus.ts
|
|
5531
|
-
var
|
|
5532
|
-
var
|
|
5389
|
+
var import_react_query4 = require("@tanstack/react-query");
|
|
5390
|
+
var import_react7 = require("react");
|
|
5533
5391
|
init_vaultClient();
|
|
5534
5392
|
function useCheckVaultStatus() {
|
|
5535
5393
|
const address = useLumiaPassportSession((st) => st.address);
|
|
5536
5394
|
const setHasServerVault = useLumiaPassportSession((st) => st.setHasServerVault);
|
|
5537
|
-
const { mutate: checkVaultStatus } = (0,
|
|
5395
|
+
const { mutate: checkVaultStatus } = (0, import_react_query4.useMutation)({
|
|
5538
5396
|
mutationFn: async () => {
|
|
5539
5397
|
const stats = await getShareRecoveryStats();
|
|
5540
5398
|
const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
|
|
@@ -5548,7 +5406,7 @@ function useCheckVaultStatus() {
|
|
|
5548
5406
|
setHasServerVault(false);
|
|
5549
5407
|
}
|
|
5550
5408
|
});
|
|
5551
|
-
(0,
|
|
5409
|
+
(0, import_react7.useEffect)(() => {
|
|
5552
5410
|
if (!address) return setHasServerVault(false);
|
|
5553
5411
|
checkVaultStatus();
|
|
5554
5412
|
}, [address, checkVaultStatus]);
|
|
@@ -5556,12 +5414,12 @@ function useCheckVaultStatus() {
|
|
|
5556
5414
|
|
|
5557
5415
|
// src/internal/hooks/useDetectMaxScrollHeight.ts
|
|
5558
5416
|
var import_lodash_es2 = require("lodash-es");
|
|
5559
|
-
var
|
|
5417
|
+
var import_react8 = require("react");
|
|
5560
5418
|
var DEBOUNCE_DELAY = 50;
|
|
5561
5419
|
function useDetectMaxScrollHeight() {
|
|
5562
5420
|
const setIsMobileView = useLayoutStore((state) => state.setIsMobileView);
|
|
5563
5421
|
const setMaxScrollHeight = useLayoutStore((state) => state.setMaxScrollHeight);
|
|
5564
|
-
const onResize = (0,
|
|
5422
|
+
const onResize = (0, import_react8.useCallback)(
|
|
5565
5423
|
(0, import_lodash_es2.debounce)(({ width, height }) => {
|
|
5566
5424
|
const limContentHeight = height * 0.92 - 116 - 72;
|
|
5567
5425
|
setIsMobileView(width < height && (width < 475 || limContentHeight <= MAX_CONTENT_HEIGHT));
|
|
@@ -5569,7 +5427,7 @@ function useDetectMaxScrollHeight() {
|
|
|
5569
5427
|
}, DEBOUNCE_DELAY),
|
|
5570
5428
|
[setMaxScrollHeight, setIsMobileView]
|
|
5571
5429
|
);
|
|
5572
|
-
(0,
|
|
5430
|
+
(0, import_react8.useEffect)(() => {
|
|
5573
5431
|
const obs = new ResizeObserver(([entry]) => onResize(entry.contentRect));
|
|
5574
5432
|
const doc = window.document.getElementsByTagName("html")[0];
|
|
5575
5433
|
if (doc) obs.observe(doc);
|
|
@@ -5578,12 +5436,12 @@ function useDetectMaxScrollHeight() {
|
|
|
5578
5436
|
}
|
|
5579
5437
|
|
|
5580
5438
|
// src/internal/hooks/usePageMapper.tsx
|
|
5581
|
-
var
|
|
5439
|
+
var import_react42 = require("react");
|
|
5582
5440
|
|
|
5583
5441
|
// src/internal/components/AuthMenu/AuthMenu.tsx
|
|
5584
5442
|
var import_framer_motion = require("framer-motion");
|
|
5585
5443
|
var import_lucide_react14 = require("lucide-react");
|
|
5586
|
-
var
|
|
5444
|
+
var import_react18 = require("react");
|
|
5587
5445
|
|
|
5588
5446
|
// src/internal/components/AuthMenu/AuthFailedStep.tsx
|
|
5589
5447
|
var import_lucide_react6 = require("lucide-react");
|
|
@@ -5671,17 +5529,17 @@ function AuthFailedStep() {
|
|
|
5671
5529
|
|
|
5672
5530
|
// src/internal/components/AuthMenu/DisaplayNameStep/DisplayNameInput.tsx
|
|
5673
5531
|
var import_lucide_react7 = require("lucide-react");
|
|
5674
|
-
var
|
|
5532
|
+
var import_react10 = require("react");
|
|
5675
5533
|
init_auth();
|
|
5676
5534
|
init_profile();
|
|
5677
5535
|
|
|
5678
5536
|
// src/internal/components/ui/input.tsx
|
|
5679
|
-
var
|
|
5537
|
+
var import_react9 = __toESM(require("react"), 1);
|
|
5680
5538
|
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
5681
|
-
var Input =
|
|
5539
|
+
var Input = import_react9.default.forwardRef((props, ref) => {
|
|
5682
5540
|
const { className, disabled, error, Icon, element, ...inputProps } = props;
|
|
5683
|
-
const internalRef = (0,
|
|
5684
|
-
(0,
|
|
5541
|
+
const internalRef = (0, import_react9.useRef)(null);
|
|
5542
|
+
(0, import_react9.useImperativeHandle)(ref, () => internalRef.current);
|
|
5685
5543
|
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: cn("w-full flex flex-col gap-1", className), children: [
|
|
5686
5544
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
5687
5545
|
"div",
|
|
@@ -5727,9 +5585,9 @@ Input.displayName = "Input";
|
|
|
5727
5585
|
// src/internal/components/AuthMenu/DisaplayNameStep/DisplayNameInput.tsx
|
|
5728
5586
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
5729
5587
|
var DisplayNameInput = ({ onComplete, onSkip }) => {
|
|
5730
|
-
const [displayName, setDisplayName] = (0,
|
|
5731
|
-
const [isLoading, setIsLoading] = (0,
|
|
5732
|
-
const [error, setError] = (0,
|
|
5588
|
+
const [displayName, setDisplayName] = (0, import_react10.useState)("");
|
|
5589
|
+
const [isLoading, setIsLoading] = (0, import_react10.useState)(false);
|
|
5590
|
+
const [error, setError] = (0, import_react10.useState)("");
|
|
5733
5591
|
const handleSubmit = async (e) => {
|
|
5734
5592
|
e.preventDefault();
|
|
5735
5593
|
if (!displayName.trim()) {
|
|
@@ -5836,7 +5694,7 @@ function DisplayNameStep(props) {
|
|
|
5836
5694
|
|
|
5837
5695
|
// src/internal/components/AuthMenu/PassKeyStep.tsx
|
|
5838
5696
|
var import_lucide_react8 = require("lucide-react");
|
|
5839
|
-
var
|
|
5697
|
+
var import_react12 = require("react");
|
|
5840
5698
|
|
|
5841
5699
|
// src/internal/assets/PasskeyAddIcon.tsx
|
|
5842
5700
|
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
@@ -5869,16 +5727,16 @@ function PasskeyAddIcon(props) {
|
|
|
5869
5727
|
init_auth();
|
|
5870
5728
|
|
|
5871
5729
|
// src/internal/components/Expandable/hooks/useExpandable.ts
|
|
5872
|
-
var
|
|
5730
|
+
var import_react11 = require("react");
|
|
5873
5731
|
var useExpandable = (props) => {
|
|
5874
5732
|
const { isExpanded = false, children, initHeight = 0, minHeight = 0 } = props;
|
|
5875
|
-
const expandableRef = (0,
|
|
5876
|
-
const contentRef = (0,
|
|
5877
|
-
(0,
|
|
5733
|
+
const expandableRef = (0, import_react11.useRef)(null);
|
|
5734
|
+
const contentRef = (0, import_react11.useRef)(null);
|
|
5735
|
+
(0, import_react11.useEffect)(() => {
|
|
5878
5736
|
if (!expandableRef.current) return;
|
|
5879
5737
|
expandableRef.current.style.setProperty("--ifo-basic-expandable-h", `${initHeight}px )`);
|
|
5880
5738
|
}, []);
|
|
5881
|
-
const setExpandableHeight = (0,
|
|
5739
|
+
const setExpandableHeight = (0, import_react11.useCallback)(
|
|
5882
5740
|
(isExpnd) => {
|
|
5883
5741
|
if (!contentRef.current || !expandableRef.current) return;
|
|
5884
5742
|
expandableRef.current.style.setProperty(
|
|
@@ -5889,7 +5747,7 @@ var useExpandable = (props) => {
|
|
|
5889
5747
|
// ON_RESIZE_DELEAY),
|
|
5890
5748
|
[minHeight]
|
|
5891
5749
|
);
|
|
5892
|
-
(0,
|
|
5750
|
+
(0, import_react11.useEffect)(() => {
|
|
5893
5751
|
if (!contentRef.current || !expandableRef.current) return;
|
|
5894
5752
|
const obs = new ResizeObserver(() => setExpandableHeight(isExpanded));
|
|
5895
5753
|
obs.observe(expandableRef.current);
|
|
@@ -5953,7 +5811,7 @@ function PassKeyStep(props) {
|
|
|
5953
5811
|
setFailedMessage,
|
|
5954
5812
|
setFailedType
|
|
5955
5813
|
} = useAuthStore();
|
|
5956
|
-
const onPasskeyRegister = (0,
|
|
5814
|
+
const onPasskeyRegister = (0, import_react12.useCallback)(async () => {
|
|
5957
5815
|
setPasskeyError("");
|
|
5958
5816
|
setPasskeyStatus("registering passkey...");
|
|
5959
5817
|
setIsLoading(true);
|
|
@@ -6021,7 +5879,7 @@ function PassKeyStep(props) {
|
|
|
6021
5879
|
setIsLoading(false);
|
|
6022
5880
|
}
|
|
6023
5881
|
}, [onAuthSuccess, setPage, callbacks]);
|
|
6024
|
-
const onPasskeyAuth = (0,
|
|
5882
|
+
const onPasskeyAuth = (0, import_react12.useCallback)(async () => {
|
|
6025
5883
|
setPasskeyError("");
|
|
6026
5884
|
setPasskeyStatus("checking available passkeys...");
|
|
6027
5885
|
setIsLoading(true);
|
|
@@ -6143,11 +6001,11 @@ function PassKeyStep(props) {
|
|
|
6143
6001
|
|
|
6144
6002
|
// src/internal/components/AuthMenu/SignInStep/SignInStep.tsx
|
|
6145
6003
|
var import_lucide_react12 = require("lucide-react");
|
|
6146
|
-
var
|
|
6004
|
+
var import_react14 = require("react");
|
|
6147
6005
|
|
|
6148
6006
|
// src/internal/components/AuthMenu/SignInStep/Email.tsx
|
|
6149
6007
|
init_lumiaPassport();
|
|
6150
|
-
var
|
|
6008
|
+
var import_react_query5 = require("@tanstack/react-query");
|
|
6151
6009
|
var import_lucide_react9 = require("lucide-react");
|
|
6152
6010
|
init_projectId();
|
|
6153
6011
|
|
|
@@ -6184,7 +6042,7 @@ function Email() {
|
|
|
6184
6042
|
const isLoading = useLumiaPassportSession((st) => st.isLoading);
|
|
6185
6043
|
const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
|
|
6186
6044
|
const { email, codeSendError, alert: alert2, setEmail, setCodeSendError, setExpiresIn, setStep, setAlert } = useAuthStore();
|
|
6187
|
-
const { mutate: onSendVerificationCode } = (0,
|
|
6045
|
+
const { mutate: onSendVerificationCode } = (0, import_react_query5.useMutation)({
|
|
6188
6046
|
mutationFn: async (mail) => {
|
|
6189
6047
|
const isEmailValid = mail.length !== 0 && /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(mail);
|
|
6190
6048
|
if (!isEmailValid) {
|
|
@@ -6276,7 +6134,7 @@ function ErrorAlert(props) {
|
|
|
6276
6134
|
|
|
6277
6135
|
// src/internal/components/AuthMenu/SignInStep/Social.tsx
|
|
6278
6136
|
var import_lucide_react11 = require("lucide-react");
|
|
6279
|
-
var
|
|
6137
|
+
var import_react13 = require("react");
|
|
6280
6138
|
init_assets();
|
|
6281
6139
|
init_lumiaPassport();
|
|
6282
6140
|
init_auth();
|
|
@@ -6367,7 +6225,7 @@ function Social(props) {
|
|
|
6367
6225
|
setPasskeyError,
|
|
6368
6226
|
setPasskeyStatus
|
|
6369
6227
|
} = useAuthStore();
|
|
6370
|
-
const onSocialAuth = (0,
|
|
6228
|
+
const onSocialAuth = (0, import_react13.useCallback)(
|
|
6371
6229
|
async (providerId) => {
|
|
6372
6230
|
const normalizedProviderId = providerId.toLowerCase();
|
|
6373
6231
|
const provider = config.current?.social?.providers?.find(
|
|
@@ -6778,7 +6636,7 @@ function SignInStep(props) {
|
|
|
6778
6636
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "font-bold text-xl leading-6", children: "Sign In" })
|
|
6779
6637
|
] }),
|
|
6780
6638
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
6781
|
-
enabledWoPasskey.map((kind, idx) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
6639
|
+
enabledWoPasskey.map((kind, idx) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react14.Fragment, { children: [
|
|
6782
6640
|
idx > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center", children: [
|
|
6783
6641
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" }),
|
|
6784
6642
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex-none px-2 text-xs leading-4", children: "Or sign in using" }),
|
|
@@ -6805,19 +6663,19 @@ function SignInStep(props) {
|
|
|
6805
6663
|
}
|
|
6806
6664
|
|
|
6807
6665
|
// src/internal/components/AuthMenu/useAuthMenuHanders.ts
|
|
6808
|
-
var
|
|
6666
|
+
var import_react15 = require("react");
|
|
6809
6667
|
init_auth();
|
|
6810
6668
|
function useAuthMenuHandlers() {
|
|
6811
6669
|
const {
|
|
6812
6670
|
config: { current: config },
|
|
6813
6671
|
callbacks
|
|
6814
6672
|
} = useLumiaPassportConfig();
|
|
6815
|
-
const pendingLoginResponseRef = (0,
|
|
6673
|
+
const pendingLoginResponseRef = (0, import_react15.useRef)(null);
|
|
6816
6674
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
6817
|
-
const [telegramCleanup, setTelegramCleanup] = (0,
|
|
6675
|
+
const [telegramCleanup, setTelegramCleanup] = (0, import_react15.useState)(null);
|
|
6818
6676
|
const { usePaymaster, setError, setStatus, setSession, setAddress, setRecoveryUserId, setHasServerVault } = useLumiaPassportSession();
|
|
6819
6677
|
const { setStep, setVerificationError, setCodeSendError, setFailedMessage } = useAuthStore();
|
|
6820
|
-
const createSessionWithKeyshare = (0,
|
|
6678
|
+
const createSessionWithKeyshare = (0, import_react15.useCallback)(
|
|
6821
6679
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
6822
6680
|
try {
|
|
6823
6681
|
try {
|
|
@@ -6851,7 +6709,7 @@ function useAuthMenuHandlers() {
|
|
|
6851
6709
|
},
|
|
6852
6710
|
[setStatus, callbacks, usePaymaster]
|
|
6853
6711
|
);
|
|
6854
|
-
const onAuthSuccess = (0,
|
|
6712
|
+
const onAuthSuccess = (0, import_react15.useCallback)(async () => {
|
|
6855
6713
|
console.log("[ConnectWalletButton] handleAuthModalSuccess called");
|
|
6856
6714
|
const loginResponse = pendingLoginResponseRef.current;
|
|
6857
6715
|
console.log("[ConnectWalletButton] loginResponse:", loginResponse);
|
|
@@ -6946,7 +6804,7 @@ function useAuthMenuHandlers() {
|
|
|
6946
6804
|
setHasServerVault,
|
|
6947
6805
|
createSessionWithKeyshare
|
|
6948
6806
|
]);
|
|
6949
|
-
const checkDisplayNameRequired = (0,
|
|
6807
|
+
const checkDisplayNameRequired = (0, import_react15.useCallback)(
|
|
6950
6808
|
async (loginResponse) => {
|
|
6951
6809
|
if (!config.features.displayNameNeeded) {
|
|
6952
6810
|
return false;
|
|
@@ -6973,7 +6831,7 @@ function useAuthMenuHandlers() {
|
|
|
6973
6831
|
},
|
|
6974
6832
|
[config.features.displayNameNeeded]
|
|
6975
6833
|
);
|
|
6976
|
-
const goBackToSignIn = (0,
|
|
6834
|
+
const goBackToSignIn = (0, import_react15.useCallback)(() => {
|
|
6977
6835
|
setStep("signin");
|
|
6978
6836
|
setVerificationError("");
|
|
6979
6837
|
setCodeSendError("");
|
|
@@ -6991,11 +6849,11 @@ function useAuthMenuHandlers() {
|
|
|
6991
6849
|
}
|
|
6992
6850
|
|
|
6993
6851
|
// src/internal/components/AuthMenu/useListenIframeAuthEvents.ts
|
|
6994
|
-
var
|
|
6852
|
+
var import_react16 = require("react");
|
|
6995
6853
|
function useListenIframeAuthEvents() {
|
|
6996
6854
|
const setPage = useLayoutDataStore((state) => state.setPage);
|
|
6997
6855
|
const setIsIframeReady = useLumiaPassportSession((state) => state.setIsIframeReady);
|
|
6998
|
-
const handleIframeMessage = (0,
|
|
6856
|
+
const handleIframeMessage = (0, import_react16.useCallback)(
|
|
6999
6857
|
(event) => {
|
|
7000
6858
|
console.log("[AuthMenu] Received iframe message:", event.data);
|
|
7001
6859
|
if (event.data?.type === "LUMIA_PASSPORT_IFRAME_READY") {
|
|
@@ -7013,7 +6871,7 @@ function useListenIframeAuthEvents() {
|
|
|
7013
6871
|
},
|
|
7014
6872
|
[setPage, setIsIframeReady]
|
|
7015
6873
|
);
|
|
7016
|
-
(0,
|
|
6874
|
+
(0, import_react16.useEffect)(() => {
|
|
7017
6875
|
window.addEventListener("message", handleIframeMessage);
|
|
7018
6876
|
return () => window.removeEventListener("message", handleIframeMessage);
|
|
7019
6877
|
}, [handleIframeMessage]);
|
|
@@ -7021,7 +6879,7 @@ function useListenIframeAuthEvents() {
|
|
|
7021
6879
|
|
|
7022
6880
|
// src/internal/components/AuthMenu/VerifyStep/VerifyStep.tsx
|
|
7023
6881
|
init_lumiaPassport();
|
|
7024
|
-
var
|
|
6882
|
+
var import_react_query6 = require("@tanstack/react-query");
|
|
7025
6883
|
var import_lucide_react13 = require("lucide-react");
|
|
7026
6884
|
|
|
7027
6885
|
// src/internal/assets/OtpIcon.tsx
|
|
@@ -7042,21 +6900,21 @@ init_auth();
|
|
|
7042
6900
|
init_projectId();
|
|
7043
6901
|
|
|
7044
6902
|
// src/internal/components/AuthMenu/VerifyStep/VerificationCodeInput.tsx
|
|
7045
|
-
var
|
|
6903
|
+
var import_react17 = require("react");
|
|
7046
6904
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
7047
6905
|
var VerificationCodeInput = (props) => {
|
|
7048
6906
|
const { onVerifyCode, onResendCode, isLoading, expiresIn, error } = props;
|
|
7049
6907
|
const setVerificationError = useAuthStore((st) => st.setVerificationError);
|
|
7050
|
-
const [timeLeft, setTimeLeft] = (0,
|
|
7051
|
-
(0,
|
|
7052
|
-
(0,
|
|
6908
|
+
const [timeLeft, setTimeLeft] = (0, import_react17.useState)(expiresIn);
|
|
6909
|
+
(0, import_react17.useEffect)(() => setTimeLeft(expiresIn), [expiresIn]);
|
|
6910
|
+
(0, import_react17.useEffect)(() => {
|
|
7053
6911
|
const t = setInterval(() => setTimeLeft((secs) => secs > 0 ? secs - 1 : 0), 1e3);
|
|
7054
6912
|
return () => clearInterval(t);
|
|
7055
6913
|
}, []);
|
|
7056
|
-
const lastSubmittedRef = (0,
|
|
7057
|
-
const inputsRef = (0,
|
|
7058
|
-
const [digits, setDigits] = (0,
|
|
7059
|
-
(0,
|
|
6914
|
+
const lastSubmittedRef = (0, import_react17.useRef)(null);
|
|
6915
|
+
const inputsRef = (0, import_react17.useRef)([]);
|
|
6916
|
+
const [digits, setDigits] = (0, import_react17.useState)(["", "", "", "", "", ""]);
|
|
6917
|
+
(0, import_react17.useEffect)(() => {
|
|
7060
6918
|
const code = digits.join("");
|
|
7061
6919
|
if (code.length === 6 && digits.every((d) => d !== "") && !isLoading) {
|
|
7062
6920
|
if (lastSubmittedRef.current !== code) {
|
|
@@ -7065,7 +6923,7 @@ var VerificationCodeInput = (props) => {
|
|
|
7065
6923
|
}
|
|
7066
6924
|
}
|
|
7067
6925
|
}, [digits, isLoading, onVerifyCode]);
|
|
7068
|
-
(0,
|
|
6926
|
+
(0, import_react17.useEffect)(() => {
|
|
7069
6927
|
const t = setTimeout(() => {
|
|
7070
6928
|
inputsRef.current[0]?.focus();
|
|
7071
6929
|
}, 0);
|
|
@@ -7190,7 +7048,7 @@ function VerifyStep(props) {
|
|
|
7190
7048
|
setEmail,
|
|
7191
7049
|
setExpiresIn
|
|
7192
7050
|
} = useAuthStore();
|
|
7193
|
-
const { mutate: onVerifyCode, isPending: isCodeVerifying } = (0,
|
|
7051
|
+
const { mutate: onVerifyCode, isPending: isCodeVerifying } = (0, import_react_query6.useMutation)({
|
|
7194
7052
|
mutationFn: async (code) => {
|
|
7195
7053
|
setIsLoading(true);
|
|
7196
7054
|
setVerificationError("");
|
|
@@ -7263,7 +7121,7 @@ function VerifyStep(props) {
|
|
|
7263
7121
|
setIsLoading(false);
|
|
7264
7122
|
}
|
|
7265
7123
|
});
|
|
7266
|
-
const { mutate: onResendCode, isPending: isCodeResending } = (0,
|
|
7124
|
+
const { mutate: onResendCode, isPending: isCodeResending } = (0, import_react_query6.useMutation)({
|
|
7267
7125
|
mutationFn: async () => {
|
|
7268
7126
|
setVerificationError("");
|
|
7269
7127
|
setIsLoading(true);
|
|
@@ -7341,7 +7199,7 @@ var AuthMenu = () => {
|
|
|
7341
7199
|
const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
|
|
7342
7200
|
const page = useLayoutDataStore((st) => st.page);
|
|
7343
7201
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
7344
|
-
(0,
|
|
7202
|
+
(0, import_react18.useEffect)(() => setMainPageHeight(DEFAULT_AUTH_MENU_HEIGHT), [setMainPageHeight]);
|
|
7345
7203
|
const {
|
|
7346
7204
|
step,
|
|
7347
7205
|
setStep,
|
|
@@ -7352,7 +7210,7 @@ var AuthMenu = () => {
|
|
|
7352
7210
|
setFailedMessage,
|
|
7353
7211
|
setCodeSendError
|
|
7354
7212
|
} = useAuthStore();
|
|
7355
|
-
(0,
|
|
7213
|
+
(0, import_react18.useEffect)(() => {
|
|
7356
7214
|
if (page !== "auth" /* AUTH */) {
|
|
7357
7215
|
setStep("signin");
|
|
7358
7216
|
setEmail("");
|
|
@@ -7371,7 +7229,7 @@ var AuthMenu = () => {
|
|
|
7371
7229
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Initializing wallet..." })
|
|
7372
7230
|
] });
|
|
7373
7231
|
}
|
|
7374
|
-
const stepContent = (0,
|
|
7232
|
+
const stepContent = (0, import_react18.useMemo)(
|
|
7375
7233
|
() => ({
|
|
7376
7234
|
"failed": /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(AuthFailedStep, {}),
|
|
7377
7235
|
"display-name": /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(DisplayNameStep, { onAuthSuccess }),
|
|
@@ -7517,9 +7375,9 @@ function RampnowIcon() {
|
|
|
7517
7375
|
}
|
|
7518
7376
|
|
|
7519
7377
|
// src/internal/components/BuyMenu/binance/Binance.tsx
|
|
7520
|
-
var
|
|
7378
|
+
var import_react_query7 = require("@tanstack/react-query");
|
|
7521
7379
|
var import_lucide_react15 = require("lucide-react");
|
|
7522
|
-
var
|
|
7380
|
+
var import_react20 = require("react");
|
|
7523
7381
|
|
|
7524
7382
|
// src/internal/components/BuyMenu/components/PaymentSelector.tsx
|
|
7525
7383
|
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
@@ -7560,81 +7418,63 @@ var QUERY_KEYS2 = {
|
|
|
7560
7418
|
};
|
|
7561
7419
|
|
|
7562
7420
|
// src/internal/components/BuyMenu/binance/api.ts
|
|
7563
|
-
|
|
7421
|
+
init_iframe_manager();
|
|
7564
7422
|
async function getLumiaNetworkQuery() {
|
|
7565
|
-
const
|
|
7566
|
-
|
|
7567
|
-
|
|
7568
|
-
headers: {
|
|
7569
|
-
"Content-Type": "application/json",
|
|
7570
|
-
...auth && { Authorization: auth }
|
|
7571
|
-
}
|
|
7572
|
-
});
|
|
7573
|
-
const data = await response.json();
|
|
7574
|
-
if (!data?.success) {
|
|
7575
|
-
throw new Error(`${data.code}: ${data.message}`);
|
|
7423
|
+
const accessToken = getAccessToken();
|
|
7424
|
+
if (!accessToken) {
|
|
7425
|
+
throw new Error("Access token is not available");
|
|
7576
7426
|
}
|
|
7577
|
-
const
|
|
7578
|
-
if (!
|
|
7579
|
-
|
|
7580
|
-
throw new Error("Lumia is not available in API");
|
|
7427
|
+
const iframeManager = getIframeManager();
|
|
7428
|
+
if (!iframeManager) {
|
|
7429
|
+
throw new Error("Iframe manager is not initialized");
|
|
7581
7430
|
}
|
|
7582
|
-
return
|
|
7431
|
+
return await iframeManager.sendMessage("BINANCE_GET_LUMIA_NETWORK_QUERY", { accessToken });
|
|
7583
7432
|
}
|
|
7584
7433
|
async function getPaymentMethodsQuery(payload) {
|
|
7585
|
-
const
|
|
7586
|
-
|
|
7587
|
-
|
|
7588
|
-
headers: {
|
|
7589
|
-
"Content-Type": "application/json",
|
|
7590
|
-
...auth && { Authorization: auth }
|
|
7591
|
-
},
|
|
7592
|
-
body: JSON.stringify(payload)
|
|
7593
|
-
});
|
|
7594
|
-
const data = await response.json();
|
|
7595
|
-
if (!data.success) {
|
|
7596
|
-
throw new Error(`${data.code}: ${data.message}`);
|
|
7434
|
+
const accessToken = getAccessToken();
|
|
7435
|
+
if (!accessToken) {
|
|
7436
|
+
throw new Error("Access token is not available");
|
|
7597
7437
|
}
|
|
7598
|
-
|
|
7599
|
-
|
|
7438
|
+
const iframeManager = getIframeManager();
|
|
7439
|
+
if (!iframeManager) {
|
|
7440
|
+
throw new Error("Iframe manager is not initialized");
|
|
7600
7441
|
}
|
|
7601
|
-
return
|
|
7442
|
+
return await iframeManager.sendMessage("BINANCE_GET_PAYMENT_METHODS_QUERY", {
|
|
7443
|
+
...payload,
|
|
7444
|
+
accessToken
|
|
7445
|
+
});
|
|
7602
7446
|
}
|
|
7603
7447
|
async function getQuoteQuery(payload) {
|
|
7604
|
-
const
|
|
7605
|
-
|
|
7606
|
-
|
|
7607
|
-
|
|
7608
|
-
|
|
7609
|
-
|
|
7610
|
-
|
|
7611
|
-
body: JSON.stringify(payload)
|
|
7612
|
-
});
|
|
7613
|
-
const data = await response.json();
|
|
7614
|
-
if (!data.success) {
|
|
7615
|
-
throw new Error(`${data.code}: ${data.message}`);
|
|
7448
|
+
const accessToken = getAccessToken();
|
|
7449
|
+
if (!accessToken) {
|
|
7450
|
+
throw new Error("Access token is not available");
|
|
7451
|
+
}
|
|
7452
|
+
const iframeManager = getIframeManager();
|
|
7453
|
+
if (!iframeManager) {
|
|
7454
|
+
throw new Error("Iframe manager is not initialized");
|
|
7616
7455
|
}
|
|
7617
|
-
return
|
|
7456
|
+
return await iframeManager.sendMessage("BINANCE_GET_QUOTE_QUERY", {
|
|
7457
|
+
...payload,
|
|
7458
|
+
accessToken
|
|
7459
|
+
});
|
|
7618
7460
|
}
|
|
7619
7461
|
async function createPreorderMutation(payload) {
|
|
7620
|
-
const
|
|
7621
|
-
|
|
7622
|
-
|
|
7623
|
-
|
|
7624
|
-
|
|
7625
|
-
|
|
7626
|
-
|
|
7627
|
-
body: JSON.stringify(payload)
|
|
7628
|
-
});
|
|
7629
|
-
const data = await response.json();
|
|
7630
|
-
if (!data.success) {
|
|
7631
|
-
throw new Error(`${data.code}: ${data.message}`);
|
|
7462
|
+
const accessToken = getAccessToken();
|
|
7463
|
+
if (!accessToken) {
|
|
7464
|
+
throw new Error("Access token is not available");
|
|
7465
|
+
}
|
|
7466
|
+
const iframeManager = getIframeManager();
|
|
7467
|
+
if (!iframeManager) {
|
|
7468
|
+
throw new Error("Iframe manager is not initialized");
|
|
7632
7469
|
}
|
|
7633
|
-
return
|
|
7470
|
+
return await iframeManager.sendMessage("BINANCE_CREATE_PREORDER_MUTATION", {
|
|
7471
|
+
...payload,
|
|
7472
|
+
accessToken
|
|
7473
|
+
});
|
|
7634
7474
|
}
|
|
7635
7475
|
|
|
7636
7476
|
// src/internal/components/BuyMenu/binance/useQueriesErrorHandler.ts
|
|
7637
|
-
var
|
|
7477
|
+
var import_react19 = require("react");
|
|
7638
7478
|
|
|
7639
7479
|
// src/internal/components/BuyMenu/binance/utils.ts
|
|
7640
7480
|
function getPayMethodID(pm) {
|
|
@@ -7654,7 +7494,7 @@ function handleErrors(errors) {
|
|
|
7654
7494
|
// src/internal/components/BuyMenu/binance/useQueriesErrorHandler.ts
|
|
7655
7495
|
var useQueriesErrorHandler = (errors, stateUpdater) => {
|
|
7656
7496
|
const { error: errorTitle, message: errorMessage } = handleErrors(errors);
|
|
7657
|
-
(0,
|
|
7497
|
+
(0, import_react19.useEffect)(() => {
|
|
7658
7498
|
if (!errorTitle && !errorMessage) return;
|
|
7659
7499
|
console.error(`[BuyModal][Binance] ${errorTitle}: ${errorMessage}`);
|
|
7660
7500
|
stateUpdater(1);
|
|
@@ -7679,12 +7519,12 @@ function Binance(props) {
|
|
|
7679
7519
|
setMinAmount,
|
|
7680
7520
|
setSrcInputAmount
|
|
7681
7521
|
} = control;
|
|
7682
|
-
const qc = (0,
|
|
7522
|
+
const qc = (0, import_react_query7.useQueryClient)();
|
|
7683
7523
|
const {
|
|
7684
7524
|
data: lumiaNetwork,
|
|
7685
7525
|
isLoading: isLumiaNetworkLoading,
|
|
7686
7526
|
error: lumiaNetworkError
|
|
7687
|
-
} = (0,
|
|
7527
|
+
} = (0, import_react_query7.useQuery)({
|
|
7688
7528
|
retry: false,
|
|
7689
7529
|
enabled: !!walletAddress,
|
|
7690
7530
|
queryKey: [QUERY_KEYS2.binanceNetworksQuery, walletAddress],
|
|
@@ -7695,27 +7535,27 @@ function Binance(props) {
|
|
|
7695
7535
|
data: paymentModes = null,
|
|
7696
7536
|
isLoading: isPaymentModesLoading,
|
|
7697
7537
|
error: paymentMethodsError
|
|
7698
|
-
} = (0,
|
|
7538
|
+
} = (0, import_react_query7.useQuery)({
|
|
7699
7539
|
retry: false,
|
|
7700
7540
|
enabled: !!isLumiaAvailable && !!walletAddress,
|
|
7701
7541
|
// && srcQueryAmount > 0,
|
|
7702
7542
|
queryKey: [QUERY_KEYS2.binancePaymentModes, walletAddress, isLumiaAvailable, srcQueryAmount],
|
|
7703
7543
|
queryFn: async () => getPaymentMethodsQuery({ totalAmount: String(srcQueryAmount || 1) })
|
|
7704
7544
|
});
|
|
7705
|
-
const lastLoadedPaymentModes = (0,
|
|
7706
|
-
(0,
|
|
7545
|
+
const lastLoadedPaymentModes = (0, import_react20.useRef)([]);
|
|
7546
|
+
(0, import_react20.useEffect)(() => {
|
|
7707
7547
|
if (!paymentModes?.length) return;
|
|
7708
7548
|
setPaymentMode(getPayMethodID(paymentModes[0]));
|
|
7709
7549
|
lastLoadedPaymentModes.current = paymentModes;
|
|
7710
7550
|
}, [paymentModes]);
|
|
7711
7551
|
const selectedPaymentMode = paymentModes?.find((el) => getPayMethodID(el) === paymentMode) || null;
|
|
7712
7552
|
const minimum = Number(selectedPaymentMode?.fiatMinLimit || "0");
|
|
7713
|
-
(0,
|
|
7553
|
+
(0, import_react20.useEffect)(() => setMinAmount(minimum), [minimum]);
|
|
7714
7554
|
const {
|
|
7715
7555
|
data: quoteData = null,
|
|
7716
7556
|
isLoading: isQuoteDataLoading,
|
|
7717
7557
|
error: quoteError
|
|
7718
|
-
} = (0,
|
|
7558
|
+
} = (0, import_react_query7.useQuery)({
|
|
7719
7559
|
retry: false,
|
|
7720
7560
|
enabled: !!walletAddress && srcQueryAmount > 0 && minimum > 0 && srcQueryAmount >= minimum,
|
|
7721
7561
|
queryKey: [QUERY_KEYS2.binanceQuote, walletAddress, selectedPaymentMode, srcQueryAmount],
|
|
@@ -7731,7 +7571,7 @@ function Binance(props) {
|
|
|
7731
7571
|
[lumiaNetworkError, paymentMethodsError, quoteError],
|
|
7732
7572
|
setSrcInputAmount
|
|
7733
7573
|
);
|
|
7734
|
-
const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = (0,
|
|
7574
|
+
const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = (0, import_react_query7.useMutation)({
|
|
7735
7575
|
mutationFn: async () => {
|
|
7736
7576
|
setRedirecting(true);
|
|
7737
7577
|
const returnUrl = window.location.href.split("?")[0];
|
|
@@ -7755,7 +7595,7 @@ function Binance(props) {
|
|
|
7755
7595
|
setRedirecting(false);
|
|
7756
7596
|
}
|
|
7757
7597
|
});
|
|
7758
|
-
(0,
|
|
7598
|
+
(0, import_react20.useEffect)(() => {
|
|
7759
7599
|
return () => {
|
|
7760
7600
|
qc.resetQueries({ queryKey: [QUERY_KEYS2.binanceNetworksQuery] });
|
|
7761
7601
|
qc.resetQueries({ queryKey: [QUERY_KEYS2.binancePaymentModes] });
|
|
@@ -7817,36 +7657,36 @@ function Binance(props) {
|
|
|
7817
7657
|
}
|
|
7818
7658
|
|
|
7819
7659
|
// src/internal/components/BuyMenu/rampnow/Rampnow.tsx
|
|
7820
|
-
var
|
|
7660
|
+
var import_react_query8 = require("@tanstack/react-query");
|
|
7821
7661
|
var import_lucide_react16 = require("lucide-react");
|
|
7822
|
-
var
|
|
7662
|
+
var import_react21 = require("react");
|
|
7823
7663
|
|
|
7824
7664
|
// src/internal/components/BuyMenu/rampnow/api.ts
|
|
7825
|
-
|
|
7665
|
+
init_iframe_manager();
|
|
7826
7666
|
async function getRampnowConfigQuery() {
|
|
7827
|
-
const
|
|
7828
|
-
|
|
7829
|
-
|
|
7830
|
-
|
|
7831
|
-
|
|
7832
|
-
|
|
7833
|
-
|
|
7667
|
+
const accessToken = getAccessToken();
|
|
7668
|
+
if (!accessToken) {
|
|
7669
|
+
throw new Error("Access token is not available");
|
|
7670
|
+
}
|
|
7671
|
+
const iframeManager = getIframeManager();
|
|
7672
|
+
if (!iframeManager) {
|
|
7673
|
+
throw new Error("Iframe manager is not initialized");
|
|
7674
|
+
}
|
|
7675
|
+
return await iframeManager.sendMessage("RAMPNOW_GET_CONFIG", { accessToken });
|
|
7834
7676
|
}
|
|
7835
7677
|
async function getRampOrderQuoteQuery(payload) {
|
|
7836
|
-
const
|
|
7837
|
-
|
|
7838
|
-
|
|
7839
|
-
|
|
7840
|
-
|
|
7841
|
-
|
|
7842
|
-
|
|
7843
|
-
body: JSON.stringify(payload)
|
|
7844
|
-
});
|
|
7845
|
-
const data = await response.json();
|
|
7846
|
-
if (!data.data) {
|
|
7847
|
-
throw new Error(`${data.code}: ${data.message}`);
|
|
7678
|
+
const accessToken = getAccessToken();
|
|
7679
|
+
if (!accessToken) {
|
|
7680
|
+
throw new Error("Access token is not available");
|
|
7681
|
+
}
|
|
7682
|
+
const iframeManager = getIframeManager();
|
|
7683
|
+
if (!iframeManager) {
|
|
7684
|
+
throw new Error("Iframe manager is not initialized");
|
|
7848
7685
|
}
|
|
7849
|
-
return
|
|
7686
|
+
return await iframeManager.sendMessage("RAMPNOW_GET_ORDER_QUOTE", {
|
|
7687
|
+
...payload,
|
|
7688
|
+
accessToken
|
|
7689
|
+
});
|
|
7850
7690
|
}
|
|
7851
7691
|
|
|
7852
7692
|
// src/internal/components/BuyMenu/rampnow/constants.ts
|
|
@@ -7883,8 +7723,8 @@ function Rampnow(props) {
|
|
|
7883
7723
|
setSrcInputAmount,
|
|
7884
7724
|
setMinAmount
|
|
7885
7725
|
} = control;
|
|
7886
|
-
const qc = (0,
|
|
7887
|
-
(0,
|
|
7726
|
+
const qc = (0, import_react_query8.useQueryClient)();
|
|
7727
|
+
(0, import_react21.useEffect)(() => {
|
|
7888
7728
|
setMinAmount(MINIMUM_RAMP_AMOUNT);
|
|
7889
7729
|
setPaymentMode(PAYMENT_MODES[0].id);
|
|
7890
7730
|
}, []);
|
|
@@ -7892,7 +7732,7 @@ function Rampnow(props) {
|
|
|
7892
7732
|
data: configData,
|
|
7893
7733
|
isLoading: isConfigLoading,
|
|
7894
7734
|
error: configError
|
|
7895
|
-
} = (0,
|
|
7735
|
+
} = (0, import_react_query8.useQuery)({
|
|
7896
7736
|
retry: false,
|
|
7897
7737
|
enabled: !!walletAddress,
|
|
7898
7738
|
queryKey: [QUERY_KEYS2.getRampNowConfig, walletAddress],
|
|
@@ -7902,7 +7742,7 @@ function Rampnow(props) {
|
|
|
7902
7742
|
data: quoteData,
|
|
7903
7743
|
isLoading: isQuoteDataLoading,
|
|
7904
7744
|
error: quoteError
|
|
7905
|
-
} = (0,
|
|
7745
|
+
} = (0, import_react_query8.useQuery)({
|
|
7906
7746
|
retry: false,
|
|
7907
7747
|
enabled: !!configData && !!walletAddress && !!paymentMode && srcQueryAmount >= MINIMUM_RAMP_AMOUNT,
|
|
7908
7748
|
queryKey: [QUERY_KEYS2.getRampNowQuote, walletAddress, srcQueryAmount, paymentMode],
|
|
@@ -7912,7 +7752,7 @@ function Rampnow(props) {
|
|
|
7912
7752
|
paymentMode
|
|
7913
7753
|
})
|
|
7914
7754
|
});
|
|
7915
|
-
const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = (0,
|
|
7755
|
+
const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = (0, import_react_query8.useMutation)({
|
|
7916
7756
|
mutationFn: async () => {
|
|
7917
7757
|
if (!configData?.apiKey?.length || !configData?.orderUrl?.length) {
|
|
7918
7758
|
throw new Error("RampNow order service is not available");
|
|
@@ -7941,7 +7781,7 @@ function Rampnow(props) {
|
|
|
7941
7781
|
console.error("Create CheckoutOrder failed:", err);
|
|
7942
7782
|
}
|
|
7943
7783
|
});
|
|
7944
|
-
(0,
|
|
7784
|
+
(0, import_react21.useEffect)(() => {
|
|
7945
7785
|
return () => {
|
|
7946
7786
|
qc.resetQueries({ queryKey: [QUERY_KEYS2.getRampNowConfig] });
|
|
7947
7787
|
qc.resetQueries({ queryKey: [QUERY_KEYS2.getRampNowQuote] });
|
|
@@ -8023,7 +7863,7 @@ var RAMP_PROVIDERS = {
|
|
|
8023
7863
|
var REDIRECT_TIMEOUT_MS = 1500;
|
|
8024
7864
|
|
|
8025
7865
|
// src/internal/components/BuyMenu/useSelectables.ts
|
|
8026
|
-
var
|
|
7866
|
+
var import_react22 = require("react");
|
|
8027
7867
|
|
|
8028
7868
|
// src/internal/utils/debounce.ts
|
|
8029
7869
|
function debounce2(func, waitFor) {
|
|
@@ -8037,14 +7877,14 @@ function debounce2(func, waitFor) {
|
|
|
8037
7877
|
// src/internal/components/BuyMenu/useSelectables.ts
|
|
8038
7878
|
var ON_INPUT_QUERY_DELAY = 2e3;
|
|
8039
7879
|
var useSelectables = () => {
|
|
8040
|
-
const [redirecting, setRedirecting] = (0,
|
|
8041
|
-
const [rampProvider, setrRampProvider] = (0,
|
|
8042
|
-
const [minAmount, setMinAmount] = (0,
|
|
8043
|
-
const inputRef = (0,
|
|
8044
|
-
const [srcQueryAmount, setSrcQueryAmount] = (0,
|
|
8045
|
-
const [srcInputAmount, setSrcInputAmount] = (0,
|
|
8046
|
-
const [paymentMode, setPaymentMode] = (0,
|
|
8047
|
-
const setQueryAmountDebounced = (0,
|
|
7880
|
+
const [redirecting, setRedirecting] = (0, import_react22.useState)(false);
|
|
7881
|
+
const [rampProvider, setrRampProvider] = (0, import_react22.useState)("binance");
|
|
7882
|
+
const [minAmount, setMinAmount] = (0, import_react22.useState)(0);
|
|
7883
|
+
const inputRef = (0, import_react22.useRef)(null);
|
|
7884
|
+
const [srcQueryAmount, setSrcQueryAmount] = (0, import_react22.useState)(0);
|
|
7885
|
+
const [srcInputAmount, setSrcInputAmount] = (0, import_react22.useState)(0);
|
|
7886
|
+
const [paymentMode, setPaymentMode] = (0, import_react22.useState)(null);
|
|
7887
|
+
const setQueryAmountDebounced = (0, import_react22.useCallback)(
|
|
8048
7888
|
debounce2((inputAmount) => {
|
|
8049
7889
|
const checkedValue = Math.max(inputAmount, minAmount);
|
|
8050
7890
|
setSrcInputAmount(checkedValue);
|
|
@@ -8052,7 +7892,7 @@ var useSelectables = () => {
|
|
|
8052
7892
|
}, ON_INPUT_QUERY_DELAY),
|
|
8053
7893
|
[minAmount]
|
|
8054
7894
|
);
|
|
8055
|
-
(0,
|
|
7895
|
+
(0, import_react22.useEffect)(() => setQueryAmountDebounced(srcInputAmount), [srcInputAmount, setQueryAmountDebounced]);
|
|
8056
7896
|
return {
|
|
8057
7897
|
inputRef,
|
|
8058
7898
|
redirecting,
|
|
@@ -8073,6 +7913,7 @@ var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
|
8073
7913
|
function BuyMenu() {
|
|
8074
7914
|
const walletAddress = useLumiaPassportSession((st) => st.address);
|
|
8075
7915
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
7916
|
+
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
8076
7917
|
const control = useSelectables();
|
|
8077
7918
|
const { rampProvider, setrRampProvider } = control;
|
|
8078
7919
|
const ProviderComponent = RAMP_PROVIDERS[rampProvider];
|
|
@@ -8081,30 +7922,37 @@ function BuyMenu() {
|
|
|
8081
7922
|
simplex: "bg-[#081f2c]",
|
|
8082
7923
|
binance: "bg-[#f3ba2f]"
|
|
8083
7924
|
};
|
|
8084
|
-
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
8085
|
-
|
|
8086
|
-
|
|
8087
|
-
|
|
8088
|
-
|
|
8089
|
-
|
|
8090
|
-
|
|
8091
|
-
|
|
8092
|
-
|
|
8093
|
-
|
|
8094
|
-
|
|
8095
|
-
|
|
8096
|
-
|
|
8097
|
-
|
|
8098
|
-
|
|
8099
|
-
|
|
8100
|
-
|
|
8101
|
-
|
|
8102
|
-
|
|
7925
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
7926
|
+
"div",
|
|
7927
|
+
{
|
|
7928
|
+
style: { "--l-pass-scrollbar-mah": `${maxScrollHeight}px` },
|
|
7929
|
+
className: "list-scrollbar-y w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]",
|
|
7930
|
+
children: [
|
|
7931
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
7932
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_lucide_react17.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
7933
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "text-xl font-semibold", children: "Buy LUMIA" })
|
|
7934
|
+
] }),
|
|
7935
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "w-full flex items-center gap-2", children: AVAILABLE_RAMP_PROVIDERS.map(({ id, icon: Icon }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
7936
|
+
Button,
|
|
7937
|
+
{
|
|
7938
|
+
type: "button",
|
|
7939
|
+
variant: "ghost",
|
|
7940
|
+
size: "large",
|
|
7941
|
+
onClick: () => setrRampProvider(id),
|
|
7942
|
+
className: cn("w-full flex-1", { [activeServiceButtonsStyles[id]]: rampProvider === id }),
|
|
7943
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Icon, {})
|
|
7944
|
+
},
|
|
7945
|
+
id
|
|
7946
|
+
)) }),
|
|
7947
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-4", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ProviderComponent, { control, walletAddress }) })
|
|
7948
|
+
]
|
|
7949
|
+
}
|
|
7950
|
+
);
|
|
8103
7951
|
}
|
|
8104
7952
|
|
|
8105
7953
|
// src/internal/components/KeyshareBackupMenu/KeyshareBackupMenu.tsx
|
|
8106
7954
|
var import_lucide_react19 = require("lucide-react");
|
|
8107
|
-
var
|
|
7955
|
+
var import_react23 = __toESM(require("react"), 1);
|
|
8108
7956
|
init_iframe_manager();
|
|
8109
7957
|
|
|
8110
7958
|
// src/internal/components/ui/checkbox.tsx
|
|
@@ -8140,30 +7988,30 @@ function KeyshareBackupMenu() {
|
|
|
8140
7988
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
8141
7989
|
const userId = session?.mpcUserId || "";
|
|
8142
7990
|
const onBackupSuccess = () => console.log("[ConnectWalletButton] Backup created successfully");
|
|
8143
|
-
(0,
|
|
7991
|
+
(0, import_react23.useEffect)(() => {
|
|
8144
7992
|
if (!userId) setPage("main-menu" /* MAIN_MENU */);
|
|
8145
7993
|
}, [userId, setPage]);
|
|
8146
|
-
const [backupStatus, setBackupStatus] =
|
|
7994
|
+
const [backupStatus, setBackupStatus] = import_react23.default.useState({
|
|
8147
7995
|
server: {},
|
|
8148
7996
|
cloud: {},
|
|
8149
7997
|
local: {}
|
|
8150
7998
|
});
|
|
8151
|
-
const [loading, setLoading] =
|
|
7999
|
+
const [loading, setLoading] = import_react23.default.useState({
|
|
8152
8000
|
server: false,
|
|
8153
8001
|
cloud: false,
|
|
8154
8002
|
local: false
|
|
8155
8003
|
});
|
|
8156
|
-
const [error, setError] =
|
|
8157
|
-
const [success, setSuccess] =
|
|
8158
|
-
const [showPassword, setShowPassword] =
|
|
8159
|
-
const [useCustomPassword, setUseCustomPassword] =
|
|
8160
|
-
const [customPassword, setCustomPassword] =
|
|
8161
|
-
const [cloudProviders, setCloudProviders] =
|
|
8004
|
+
const [error, setError] = import_react23.default.useState(null);
|
|
8005
|
+
const [success, setSuccess] = import_react23.default.useState(null);
|
|
8006
|
+
const [showPassword, setShowPassword] = import_react23.default.useState(false);
|
|
8007
|
+
const [useCustomPassword, setUseCustomPassword] = import_react23.default.useState(false);
|
|
8008
|
+
const [customPassword, setCustomPassword] = import_react23.default.useState("");
|
|
8009
|
+
const [cloudProviders, setCloudProviders] = import_react23.default.useState(
|
|
8162
8010
|
[]
|
|
8163
8011
|
);
|
|
8164
|
-
const [selectedCloudProvider, setSelectedCloudProvider] =
|
|
8165
|
-
const [hasKeyshareData, setHasKeyshareData] =
|
|
8166
|
-
const iframeManager =
|
|
8012
|
+
const [selectedCloudProvider, setSelectedCloudProvider] = import_react23.default.useState(null);
|
|
8013
|
+
const [hasKeyshareData, setHasKeyshareData] = import_react23.default.useState(true);
|
|
8014
|
+
const iframeManager = import_react23.default.useMemo(() => {
|
|
8167
8015
|
try {
|
|
8168
8016
|
return getIframeManager();
|
|
8169
8017
|
} catch (e) {
|
|
@@ -8171,7 +8019,7 @@ function KeyshareBackupMenu() {
|
|
|
8171
8019
|
return null;
|
|
8172
8020
|
}
|
|
8173
8021
|
}, []);
|
|
8174
|
-
(0,
|
|
8022
|
+
(0, import_react23.useEffect)(() => {
|
|
8175
8023
|
const loadCloudProviders = async () => {
|
|
8176
8024
|
try {
|
|
8177
8025
|
const { getAvailableCloudProviders: getAvailableCloudProviders3 } = await Promise.resolve().then(() => (init_cloudStorage(), cloudStorage_exports));
|
|
@@ -8191,7 +8039,7 @@ function KeyshareBackupMenu() {
|
|
|
8191
8039
|
};
|
|
8192
8040
|
loadCloudProviders();
|
|
8193
8041
|
}, [selectedCloudProvider]);
|
|
8194
|
-
const refreshStatus =
|
|
8042
|
+
const refreshStatus = import_react23.default.useCallback(async () => {
|
|
8195
8043
|
if (!iframeManager) return;
|
|
8196
8044
|
try {
|
|
8197
8045
|
const status = await iframeManager.getBackupStatus(userId);
|
|
@@ -8200,7 +8048,7 @@ function KeyshareBackupMenu() {
|
|
|
8200
8048
|
console.error("[KeyshareBackup] Failed to get backup status:", error2);
|
|
8201
8049
|
}
|
|
8202
8050
|
}, [iframeManager, userId]);
|
|
8203
|
-
(0,
|
|
8051
|
+
(0, import_react23.useEffect)(() => {
|
|
8204
8052
|
refreshStatus();
|
|
8205
8053
|
}, [refreshStatus]);
|
|
8206
8054
|
const handleBackup = async (method) => {
|
|
@@ -8429,21 +8277,21 @@ function KeyshareBackupMenu() {
|
|
|
8429
8277
|
}
|
|
8430
8278
|
|
|
8431
8279
|
// src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
|
|
8432
|
-
var
|
|
8280
|
+
var import_react_query9 = require("@tanstack/react-query");
|
|
8433
8281
|
var import_lucide_react22 = require("lucide-react");
|
|
8434
|
-
var
|
|
8282
|
+
var import_react26 = __toESM(require("react"), 1);
|
|
8435
8283
|
init_vaultClient();
|
|
8436
8284
|
|
|
8437
8285
|
// src/internal/components/KeyshareRestoreMenu/NoBackupFound.tsx
|
|
8438
8286
|
var import_lucide_react20 = require("lucide-react");
|
|
8439
|
-
var
|
|
8287
|
+
var import_react24 = require("react");
|
|
8440
8288
|
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
8441
8289
|
var ACCOUNT_RECOVERY_TEXT = `This device doesn't have access to your wallet keyshare, and no backup was found in the Vault. To access your wallet: use the original device where you created the account, create a backup from that device first, then try restoring on this device.`;
|
|
8442
8290
|
var ACCOUNT_FILE_RECOVERY_TEXT = `Try uploading a backup file if you have one saved locally, or create a different new account`;
|
|
8443
8291
|
function NoBackupFound(props) {
|
|
8444
8292
|
const { isLoading, restoreFromFile } = props;
|
|
8445
|
-
const [restoreFile, setRestoreFile] = (0,
|
|
8446
|
-
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
8293
|
+
const [restoreFile, setRestoreFile] = (0, import_react24.useState)(null);
|
|
8294
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_react24.Fragment, { children: [
|
|
8447
8295
|
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Highlight, { type: "error", className: "animate-glow-warning flex gap-[var(--l-pass-gap)]", children: [
|
|
8448
8296
|
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react20.AlertCircle, { className: "h-4 w-4 flex-0" }),
|
|
8449
8297
|
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "w-full flex-1 flex flex-col gap-2", children: [
|
|
@@ -8484,7 +8332,7 @@ function NoBackupFound(props) {
|
|
|
8484
8332
|
|
|
8485
8333
|
// src/internal/components/KeyshareRestoreMenu/ServerBackupFound.tsx
|
|
8486
8334
|
var import_lucide_react21 = require("lucide-react");
|
|
8487
|
-
var
|
|
8335
|
+
var import_react25 = require("react");
|
|
8488
8336
|
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
8489
8337
|
function ServerBackupFound(props) {
|
|
8490
8338
|
const {
|
|
@@ -8500,7 +8348,7 @@ function ServerBackupFound(props) {
|
|
|
8500
8348
|
setRestorePassword,
|
|
8501
8349
|
setUseCustomPassword
|
|
8502
8350
|
} = props;
|
|
8503
|
-
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
8351
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_react25.Fragment, { children: [
|
|
8504
8352
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Highlight, { type: "success", className: "w-full flex gap-[var(--l-pass-gap)]", children: [
|
|
8505
8353
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react21.AlertCircle, { className: "h-4 w-4 flex-0" }),
|
|
8506
8354
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "w-full flex-1", children: [
|
|
@@ -8616,17 +8464,17 @@ var KeyshareRestoreMenu = () => {
|
|
|
8616
8464
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
8617
8465
|
const setIsDialogForced = useLayoutStore((st) => st.setIsDialogForced);
|
|
8618
8466
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
8619
|
-
(0,
|
|
8467
|
+
(0, import_react26.useEffect)(() => setIsDialogForced(true), []);
|
|
8620
8468
|
const { usePaymaster, recoveryUserId, setRecoveryUserId, setSession, setAddress, setStatus, setIsLoading } = useLumiaPassportSession();
|
|
8621
|
-
const [error, setError] =
|
|
8622
|
-
const [success, setSuccess] =
|
|
8623
|
-
const [showPassword, setShowPassword] =
|
|
8624
|
-
const [useCustomPassword, setUseCustomPassword] =
|
|
8625
|
-
const [restoreFile, setRestoreFile] =
|
|
8626
|
-
const [restorePassword, setRestorePassword] =
|
|
8627
|
-
const [hasServerBackup, setHasServerBackup] =
|
|
8628
|
-
const [checkingBackup, setCheckingBackup] =
|
|
8629
|
-
const createSessionWithKeyshare = (0,
|
|
8469
|
+
const [error, setError] = import_react26.default.useState(null);
|
|
8470
|
+
const [success, setSuccess] = import_react26.default.useState(null);
|
|
8471
|
+
const [showPassword, setShowPassword] = import_react26.default.useState(false);
|
|
8472
|
+
const [useCustomPassword, setUseCustomPassword] = import_react26.default.useState(false);
|
|
8473
|
+
const [restoreFile, setRestoreFile] = import_react26.default.useState(null);
|
|
8474
|
+
const [restorePassword, setRestorePassword] = import_react26.default.useState("");
|
|
8475
|
+
const [hasServerBackup, setHasServerBackup] = import_react26.default.useState(null);
|
|
8476
|
+
const [checkingBackup, setCheckingBackup] = import_react26.default.useState(true);
|
|
8477
|
+
const createSessionWithKeyshare = (0, import_react26.useCallback)(
|
|
8630
8478
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
8631
8479
|
try {
|
|
8632
8480
|
try {
|
|
@@ -8660,7 +8508,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8660
8508
|
},
|
|
8661
8509
|
[setStatus, callbacks, usePaymaster]
|
|
8662
8510
|
);
|
|
8663
|
-
const onRestoreSuccess = (0,
|
|
8511
|
+
const onRestoreSuccess = (0, import_react26.useCallback)(async () => {
|
|
8664
8512
|
const { verifyToken: verifyToken2, jwtTokenManager: jwtTokenManager4 } = await Promise.resolve().then(() => (init_auth(), auth_exports));
|
|
8665
8513
|
const verify = await verifyToken2();
|
|
8666
8514
|
const hasServerKeyshare = verify?.hasKeyshare ?? jwtTokenManager4.getHasKeyshare() ?? false;
|
|
@@ -8725,7 +8573,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8725
8573
|
callbacks,
|
|
8726
8574
|
config.projectId
|
|
8727
8575
|
]);
|
|
8728
|
-
(0,
|
|
8576
|
+
(0, import_react26.useEffect)(() => {
|
|
8729
8577
|
const checkBackupAvailability = async () => {
|
|
8730
8578
|
try {
|
|
8731
8579
|
setCheckingBackup(true);
|
|
@@ -8743,7 +8591,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8743
8591
|
};
|
|
8744
8592
|
checkBackupAvailability();
|
|
8745
8593
|
}, [recoveryUserId]);
|
|
8746
|
-
const { mutate: restoreFromServer2, isPending: isRestoringFromServer } = (0,
|
|
8594
|
+
const { mutate: restoreFromServer2, isPending: isRestoringFromServer } = (0, import_react_query9.useMutation)({
|
|
8747
8595
|
mutationFn: async () => {
|
|
8748
8596
|
setError(null);
|
|
8749
8597
|
setSuccess(null);
|
|
@@ -8778,7 +8626,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8778
8626
|
setError(errorMsg);
|
|
8779
8627
|
}
|
|
8780
8628
|
});
|
|
8781
|
-
const { mutate: restoreFromFile, isPending: isRestoringFromFile } = (0,
|
|
8629
|
+
const { mutate: restoreFromFile, isPending: isRestoringFromFile } = (0, import_react_query9.useMutation)({
|
|
8782
8630
|
mutationFn: async () => {
|
|
8783
8631
|
if (!restoreFile) {
|
|
8784
8632
|
throw new Error("Please select a backup file");
|
|
@@ -8812,7 +8660,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8812
8660
|
setError(errorMsg);
|
|
8813
8661
|
}
|
|
8814
8662
|
});
|
|
8815
|
-
const { mutate: disconnect, isPending: isDisconnecting } = (0,
|
|
8663
|
+
const { mutate: disconnect, isPending: isDisconnecting } = (0, import_react_query9.useMutation)({
|
|
8816
8664
|
mutationFn: async () => {
|
|
8817
8665
|
setError(null);
|
|
8818
8666
|
setStatus("disconnecting");
|
|
@@ -8904,14 +8752,14 @@ var import_lucide_react24 = require("lucide-react");
|
|
|
8904
8752
|
var import_lucide_react23 = require("lucide-react");
|
|
8905
8753
|
|
|
8906
8754
|
// src/internal/components/KYC/useSumsubIframe.ts
|
|
8907
|
-
var
|
|
8755
|
+
var import_react27 = require("react");
|
|
8908
8756
|
|
|
8909
8757
|
// src/internal/components/KYC/api/sumsub.ts
|
|
8910
8758
|
init_httpClient();
|
|
8911
8759
|
|
|
8912
8760
|
// src/config/queryClient.ts
|
|
8913
|
-
var
|
|
8914
|
-
var queryClient = new
|
|
8761
|
+
var import_react_query10 = require("@tanstack/react-query");
|
|
8762
|
+
var queryClient = new import_react_query10.QueryClient({
|
|
8915
8763
|
defaultOptions: {
|
|
8916
8764
|
queries: {
|
|
8917
8765
|
staleTime: 1e3 * 60 * 6,
|
|
@@ -9027,13 +8875,13 @@ function useSumsubIframe({ iframeUrl }) {
|
|
|
9027
8875
|
config: { current: config }
|
|
9028
8876
|
} = useLumiaPassportConfig();
|
|
9029
8877
|
const { colorMode } = useLumiaPassportColorMode();
|
|
9030
|
-
const iframeRef = (0,
|
|
9031
|
-
const [isLoading, setIsLoading] = (0,
|
|
9032
|
-
const [error, setError] = (0,
|
|
9033
|
-
const [height, setHeight] = (0,
|
|
9034
|
-
const [status, setStatus] = (0,
|
|
8878
|
+
const iframeRef = (0, import_react27.useRef)(null);
|
|
8879
|
+
const [isLoading, setIsLoading] = (0, import_react27.useState)(true);
|
|
8880
|
+
const [error, setError] = (0, import_react27.useState)(null);
|
|
8881
|
+
const [height, setHeight] = (0, import_react27.useState)(0);
|
|
8882
|
+
const [status, setStatus] = (0, import_react27.useState)("");
|
|
9035
8883
|
const levelName = config.kyc?.options?.levelName;
|
|
9036
|
-
(0,
|
|
8884
|
+
(0, import_react27.useEffect)(() => {
|
|
9037
8885
|
setError(null);
|
|
9038
8886
|
setIsLoading(true);
|
|
9039
8887
|
setStatus("Preparing verification...");
|
|
@@ -9141,7 +8989,7 @@ function KycMenu() {
|
|
|
9141
8989
|
|
|
9142
8990
|
// src/internal/components/MainMenu/MainMenu.tsx
|
|
9143
8991
|
var import_lucide_react26 = require("lucide-react");
|
|
9144
|
-
var
|
|
8992
|
+
var import_react28 = require("react");
|
|
9145
8993
|
|
|
9146
8994
|
// src/internal/components/MainMenu/BackupWarning.tsx
|
|
9147
8995
|
var import_framer_motion2 = require("framer-motion");
|
|
@@ -9197,18 +9045,18 @@ function MainMenu() {
|
|
|
9197
9045
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9198
9046
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9199
9047
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
9200
|
-
(0,
|
|
9048
|
+
(0, import_react28.useEffect)(() => setMainPageHeight(DEFAULT_MAIN_MENU_HEIGHT), [setMainPageHeight]);
|
|
9201
9049
|
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
9202
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "grid grid-cols-4 gap-[var(--l-pass-gap)]", children: MAIN_MENU_BUTTONS.map(({ id, label, icon: Icon }) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
9050
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "w-full grid grid-cols-4 gap-0 md:gap-[var(--l-pass-gap)] py-[10px] md:py-0 ", children: MAIN_MENU_BUTTONS.map(({ id, label, icon: Icon }) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
9203
9051
|
Button,
|
|
9204
9052
|
{
|
|
9205
9053
|
size: "large",
|
|
9206
9054
|
variant: "ghost",
|
|
9207
9055
|
disabled: !address,
|
|
9208
|
-
className: "flex-col h-fit
|
|
9056
|
+
className: "flex-col w-full h-fit p-0",
|
|
9209
9057
|
onClick: () => setPage(id),
|
|
9210
9058
|
children: [
|
|
9211
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Icon, { className: "w-8 h-8" }),
|
|
9059
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Icon, { className: "w-5 h-5 md:w-8 md:h-8" }),
|
|
9212
9060
|
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "text-xs font-semibold", children: label })
|
|
9213
9061
|
]
|
|
9214
9062
|
},
|
|
@@ -9221,11 +9069,11 @@ function MainMenu() {
|
|
|
9221
9069
|
// src/internal/components/ManageWalletMenu/ManageWallet.tsx
|
|
9222
9070
|
var import_lodash_es3 = require("lodash-es");
|
|
9223
9071
|
var import_lucide_react30 = require("lucide-react");
|
|
9224
|
-
var
|
|
9072
|
+
var import_react32 = require("react");
|
|
9225
9073
|
|
|
9226
9074
|
// src/modules/linkedProfiles.ts
|
|
9227
|
-
var
|
|
9228
|
-
var
|
|
9075
|
+
var import_react_query11 = require("@tanstack/react-query");
|
|
9076
|
+
var import_react29 = require("react");
|
|
9229
9077
|
init_auth();
|
|
9230
9078
|
init_common();
|
|
9231
9079
|
init_types();
|
|
@@ -9245,32 +9093,32 @@ async function getLinkProfilesData() {
|
|
|
9245
9093
|
return { profiles: loadedProfiles, avatar };
|
|
9246
9094
|
}
|
|
9247
9095
|
function useLumiaPassportLinkedProfiles() {
|
|
9248
|
-
const qc = (0,
|
|
9096
|
+
const qc = (0, import_react_query11.useQueryClient)();
|
|
9249
9097
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9250
9098
|
const {
|
|
9251
9099
|
data,
|
|
9252
9100
|
isFetching: isLoading,
|
|
9253
9101
|
error
|
|
9254
|
-
} = (0,
|
|
9102
|
+
} = (0, import_react_query11.useQuery)({
|
|
9255
9103
|
retry: false,
|
|
9256
9104
|
enabled: !!address,
|
|
9257
9105
|
queryKey: [LINKED_PROFILES_QUERY_KEY, address],
|
|
9258
9106
|
queryFn: getLinkProfilesData
|
|
9259
9107
|
});
|
|
9260
9108
|
const { profiles = [], avatar = null } = data || {};
|
|
9261
|
-
const refresh = (0,
|
|
9109
|
+
const refresh = (0, import_react29.useCallback)(async () => {
|
|
9262
9110
|
await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
|
|
9263
9111
|
}, [qc, address]);
|
|
9264
9112
|
return { profiles, avatar, isLoading, error, refresh };
|
|
9265
9113
|
}
|
|
9266
9114
|
|
|
9267
9115
|
// src/internal/components/ManageWalletMenu/AddProvider.tsx
|
|
9268
|
-
var
|
|
9116
|
+
var import_react_query16 = require("@tanstack/react-query");
|
|
9269
9117
|
init_passkey2();
|
|
9270
9118
|
|
|
9271
9119
|
// src/internal/components/ManageWalletMenu/EmailForm.tsx
|
|
9272
9120
|
init_lumiaPassport();
|
|
9273
|
-
var
|
|
9121
|
+
var import_react_query12 = require("@tanstack/react-query");
|
|
9274
9122
|
var import_lucide_react27 = require("lucide-react");
|
|
9275
9123
|
init_projectId();
|
|
9276
9124
|
|
|
@@ -9313,7 +9161,7 @@ function EmailForm() {
|
|
|
9313
9161
|
const isLoading = useLumiaPassportSession((st) => st.isLoading);
|
|
9314
9162
|
const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
|
|
9315
9163
|
const { email, setEmail, setEmailCodeSentError, setEmailCodeExpiresIn, setEmailStep } = useManageWalletStore();
|
|
9316
|
-
const { mutate: onSendVerificationCode } = (0,
|
|
9164
|
+
const { mutate: onSendVerificationCode } = (0, import_react_query12.useMutation)({
|
|
9317
9165
|
mutationFn: async () => {
|
|
9318
9166
|
if (!email) return;
|
|
9319
9167
|
setIsLoading(true);
|
|
@@ -9390,13 +9238,13 @@ function EmailForm() {
|
|
|
9390
9238
|
}
|
|
9391
9239
|
|
|
9392
9240
|
// src/internal/components/ManageWalletMenu/hooks/useProvidersList.ts
|
|
9393
|
-
var
|
|
9241
|
+
var import_react_query13 = require("@tanstack/react-query");
|
|
9394
9242
|
init_common();
|
|
9395
9243
|
var PROVIDERS_QUERY_KEY = "lumia-passport-providers-query";
|
|
9396
9244
|
function useProvidersList() {
|
|
9397
9245
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9398
9246
|
const page = useLayoutDataStore((st) => st.page);
|
|
9399
|
-
return (0,
|
|
9247
|
+
return (0, import_react_query13.useQuery)({
|
|
9400
9248
|
retry: false,
|
|
9401
9249
|
enabled: !!address && page === "manage-wallet" /* MANAGE_WALLET */,
|
|
9402
9250
|
queryKey: [PROVIDERS_QUERY_KEY, address],
|
|
@@ -9405,11 +9253,11 @@ function useProvidersList() {
|
|
|
9405
9253
|
}
|
|
9406
9254
|
|
|
9407
9255
|
// src/internal/components/ManageWalletMenu/hooks/useSendVerificationCode.ts
|
|
9408
|
-
var
|
|
9256
|
+
var import_react_query14 = require("@tanstack/react-query");
|
|
9409
9257
|
init_email();
|
|
9410
9258
|
function useSendVerificationCode() {
|
|
9411
9259
|
const { setVerificationError, setLinkIsLoading, setEmailCodeSentError, setEmailCodeExpiresIn } = useManageWalletStore();
|
|
9412
|
-
return (0,
|
|
9260
|
+
return (0, import_react_query14.useMutation)({
|
|
9413
9261
|
mutationFn: async (email) => {
|
|
9414
9262
|
if (!email) {
|
|
9415
9263
|
throw new Error("Email is required");
|
|
@@ -9432,11 +9280,11 @@ function useSendVerificationCode() {
|
|
|
9432
9280
|
}
|
|
9433
9281
|
|
|
9434
9282
|
// src/internal/components/ManageWalletMenu/hooks/useVerifyCode.ts
|
|
9435
|
-
var
|
|
9283
|
+
var import_react_query15 = require("@tanstack/react-query");
|
|
9436
9284
|
init_email();
|
|
9437
9285
|
function useVerifyCode() {
|
|
9438
9286
|
const { callbacks } = useLumiaPassportConfig();
|
|
9439
|
-
const qc = (0,
|
|
9287
|
+
const qc = (0, import_react_query15.useQueryClient)();
|
|
9440
9288
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9441
9289
|
const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
|
|
9442
9290
|
const {
|
|
@@ -9450,7 +9298,7 @@ function useVerifyCode() {
|
|
|
9450
9298
|
setVerificationError,
|
|
9451
9299
|
setEmailCodeSentError
|
|
9452
9300
|
} = useManageWalletStore();
|
|
9453
|
-
return (0,
|
|
9301
|
+
return (0, import_react_query15.useMutation)({
|
|
9454
9302
|
mutationFn: async (codeToVerify) => {
|
|
9455
9303
|
const code = codeToVerify ?? emailCode;
|
|
9456
9304
|
if (!code) {
|
|
@@ -9500,7 +9348,7 @@ function normalizePasskeyLinkError(msg) {
|
|
|
9500
9348
|
return msg;
|
|
9501
9349
|
}
|
|
9502
9350
|
function AddProvider() {
|
|
9503
|
-
const qc = (0,
|
|
9351
|
+
const qc = (0, import_react_query16.useQueryClient)();
|
|
9504
9352
|
const { callbacks } = useLumiaPassportConfig();
|
|
9505
9353
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9506
9354
|
const {
|
|
@@ -9660,11 +9508,11 @@ function EmailNotConnectedWarning() {
|
|
|
9660
9508
|
}
|
|
9661
9509
|
|
|
9662
9510
|
// src/internal/components/ManageWalletMenu/hooks/useLinkSocial.ts
|
|
9663
|
-
var
|
|
9664
|
-
var
|
|
9511
|
+
var import_react_query17 = require("@tanstack/react-query");
|
|
9512
|
+
var import_react30 = __toESM(require("react"), 1);
|
|
9665
9513
|
init_auth();
|
|
9666
9514
|
function useLinkSocial() {
|
|
9667
|
-
const qc = (0,
|
|
9515
|
+
const qc = (0, import_react_query17.useQueryClient)();
|
|
9668
9516
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9669
9517
|
const {
|
|
9670
9518
|
config: { current: config },
|
|
@@ -9672,7 +9520,7 @@ function useLinkSocial() {
|
|
|
9672
9520
|
} = useLumiaPassportConfig();
|
|
9673
9521
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9674
9522
|
const { providerType, linkIsLoading, isWalletLinking, setProviderType, setLinkIsLoading, setLinkError } = useManageWalletStore();
|
|
9675
|
-
const handleLinkSocialProvider =
|
|
9523
|
+
const handleLinkSocialProvider = import_react30.default.useCallback(
|
|
9676
9524
|
async (providerIdRaw) => {
|
|
9677
9525
|
const providerKey = providerIdRaw.toLowerCase();
|
|
9678
9526
|
const normalizedKey = providerKey === "twitter" ? "x" : providerKey;
|
|
@@ -9724,8 +9572,8 @@ function useLinkSocial() {
|
|
|
9724
9572
|
},
|
|
9725
9573
|
[config.social?.providers, callbacks]
|
|
9726
9574
|
);
|
|
9727
|
-
const [socialLinkStarted, setSocialLinkStarted] =
|
|
9728
|
-
(0,
|
|
9575
|
+
const [socialLinkStarted, setSocialLinkStarted] = import_react30.default.useState(false);
|
|
9576
|
+
(0, import_react30.useEffect)(() => {
|
|
9729
9577
|
const key = providerType?.toLowerCase();
|
|
9730
9578
|
console.log("[useLinkSocial] Effect triggered:", { key, linkIsLoading, socialLinkStarted, isWalletLinking });
|
|
9731
9579
|
if (isWalletLinking) {
|
|
@@ -9745,19 +9593,19 @@ function useLinkSocial() {
|
|
|
9745
9593
|
}
|
|
9746
9594
|
|
|
9747
9595
|
// src/internal/components/ManageWalletMenu/hooks/useLinkTelegram.ts
|
|
9748
|
-
var
|
|
9749
|
-
var
|
|
9596
|
+
var import_react_query18 = require("@tanstack/react-query");
|
|
9597
|
+
var import_react31 = require("react");
|
|
9750
9598
|
init_telegram2();
|
|
9751
9599
|
function useLinkTelegram() {
|
|
9752
9600
|
const {
|
|
9753
9601
|
config: { current: config },
|
|
9754
9602
|
callbacks
|
|
9755
9603
|
} = useLumiaPassportConfig();
|
|
9756
|
-
const qc = (0,
|
|
9604
|
+
const qc = (0, import_react_query18.useQueryClient)();
|
|
9757
9605
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9758
9606
|
const { providerType, linkIsLoading, isWalletLinking, setLinkIsLoading, setProviderType, setLinkError } = useManageWalletStore();
|
|
9759
9607
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9760
|
-
const handleLinkTelegram = (0,
|
|
9608
|
+
const handleLinkTelegram = (0, import_react31.useCallback)(async () => {
|
|
9761
9609
|
try {
|
|
9762
9610
|
setLinkIsLoading(true);
|
|
9763
9611
|
setLinkError("");
|
|
@@ -9799,8 +9647,8 @@ function useLinkTelegram() {
|
|
|
9799
9647
|
setLinkIsLoading(false);
|
|
9800
9648
|
}
|
|
9801
9649
|
}, [config.social?.providers, callbacks]);
|
|
9802
|
-
const [telegramLinkStarted, setTelegramLinkStarted] = (0,
|
|
9803
|
-
(0,
|
|
9650
|
+
const [telegramLinkStarted, setTelegramLinkStarted] = (0, import_react31.useState)(false);
|
|
9651
|
+
(0, import_react31.useEffect)(() => {
|
|
9804
9652
|
console.log("[useLinkTelegram] Effect triggered:", { providerType, linkIsLoading, telegramLinkStarted, isWalletLinking });
|
|
9805
9653
|
if (isWalletLinking) {
|
|
9806
9654
|
console.log("[useLinkTelegram] Skipping - wallet linking in progress");
|
|
@@ -9812,7 +9660,7 @@ function useLinkTelegram() {
|
|
|
9812
9660
|
handleLinkTelegram();
|
|
9813
9661
|
}
|
|
9814
9662
|
}, [providerType, handleLinkTelegram, linkIsLoading, telegramLinkStarted, isWalletLinking]);
|
|
9815
|
-
(0,
|
|
9663
|
+
(0, import_react31.useEffect)(() => {
|
|
9816
9664
|
if (providerType !== "telegram") {
|
|
9817
9665
|
setTelegramLinkStarted(false);
|
|
9818
9666
|
}
|
|
@@ -9920,7 +9768,7 @@ function ManageWalletMenu() {
|
|
|
9920
9768
|
} = useManageWalletStore();
|
|
9921
9769
|
const configuredProviders = getConfiguredProviders(config);
|
|
9922
9770
|
const { data: providers = [], isLoading: isProvidersLoading, error: providersError } = useProvidersList();
|
|
9923
|
-
const renderProviders = (0,
|
|
9771
|
+
const renderProviders = (0, import_react32.useMemo)(() => {
|
|
9924
9772
|
const usedProviders = (0, import_lodash_es3.fromPairs)(providers.map((p) => [p.provider, true]));
|
|
9925
9773
|
const used = [];
|
|
9926
9774
|
const unused = [];
|
|
@@ -10022,19 +9870,19 @@ function ManageWalletMenu() {
|
|
|
10022
9870
|
}
|
|
10023
9871
|
|
|
10024
9872
|
// src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx
|
|
10025
|
-
var
|
|
9873
|
+
var import_react_query19 = require("@tanstack/react-query");
|
|
10026
9874
|
var import_lucide_react31 = require("lucide-react");
|
|
10027
|
-
var
|
|
9875
|
+
var import_react33 = require("react");
|
|
10028
9876
|
init_auth();
|
|
10029
9877
|
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
10030
9878
|
function UnlinkProviderMenu() {
|
|
10031
|
-
const qc = (0,
|
|
9879
|
+
const qc = (0, import_react_query19.useQueryClient)();
|
|
10032
9880
|
const address = useLumiaPassportSession((st) => st.address);
|
|
10033
9881
|
const { callbacks } = useLumiaPassportConfig();
|
|
10034
9882
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10035
9883
|
const { confirmUnlink, setConfirmUnlink, setLinkError } = useManageWalletStore();
|
|
10036
|
-
const [confirmInput, setConfirmInput] = (0,
|
|
10037
|
-
const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = (0,
|
|
9884
|
+
const [confirmInput, setConfirmInput] = (0, import_react33.useState)("");
|
|
9885
|
+
const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = (0, import_react_query19.useMutation)({
|
|
10038
9886
|
mutationFn: async () => {
|
|
10039
9887
|
if (!confirmUnlink) {
|
|
10040
9888
|
throw new Error("No provider to unlink");
|
|
@@ -10107,12 +9955,12 @@ function UnlinkProviderMenu() {
|
|
|
10107
9955
|
}
|
|
10108
9956
|
|
|
10109
9957
|
// src/internal/components/PortfolioMenu/PortfolioMenu.tsx
|
|
10110
|
-
var
|
|
9958
|
+
var import_react_query21 = require("@tanstack/react-query");
|
|
10111
9959
|
var import_lucide_react33 = require("lucide-react");
|
|
10112
|
-
var
|
|
9960
|
+
var import_react35 = require("react");
|
|
10113
9961
|
|
|
10114
9962
|
// src/modules/assets.ts
|
|
10115
|
-
var
|
|
9963
|
+
var import_react34 = __toESM(require("react"), 1);
|
|
10116
9964
|
var import_wagmi2 = require("wagmi");
|
|
10117
9965
|
var import_viem4 = require("viem");
|
|
10118
9966
|
init_base();
|
|
@@ -10259,7 +10107,7 @@ function useTokenBalance(tokenAddress, userAddress) {
|
|
|
10259
10107
|
}
|
|
10260
10108
|
});
|
|
10261
10109
|
const { tokenInfo } = useTokenInfo(tokenAddress);
|
|
10262
|
-
const formattedBalance =
|
|
10110
|
+
const formattedBalance = import_react34.default.useMemo(() => {
|
|
10263
10111
|
if (!balance || !tokenInfo) return "0";
|
|
10264
10112
|
return (0, import_viem4.formatUnits)(balance, tokenInfo.decimals);
|
|
10265
10113
|
}, [balance, tokenInfo]);
|
|
@@ -10273,7 +10121,7 @@ function useTokenBalance(tokenAddress, userAddress) {
|
|
|
10273
10121
|
}
|
|
10274
10122
|
|
|
10275
10123
|
// src/internal/components/PortfolioMenu/PortfolioItem.tsx
|
|
10276
|
-
var
|
|
10124
|
+
var import_react_query20 = require("@tanstack/react-query");
|
|
10277
10125
|
var import_lucide_react32 = require("lucide-react");
|
|
10278
10126
|
init_base();
|
|
10279
10127
|
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
@@ -10295,7 +10143,7 @@ function formatValue(price) {
|
|
|
10295
10143
|
function openInExplorer(address) {
|
|
10296
10144
|
window.open(`${LUMIA_EXPLORER_URL}/address/${address}`, "_blank");
|
|
10297
10145
|
}
|
|
10298
|
-
async function
|
|
10146
|
+
async function getAssetRate2(symbol) {
|
|
10299
10147
|
const assetURL = `https://api.binance.com/api/v3/ticker/price?symbol=${symbol.toUpperCase()}USDT`;
|
|
10300
10148
|
const response = await fetch(assetURL);
|
|
10301
10149
|
return await response.json();
|
|
@@ -10304,15 +10152,15 @@ var ASSETS_RATES_QUERY_KEY = "lumia-passport-assets-rates-query-key";
|
|
|
10304
10152
|
function PortfolioItem(props) {
|
|
10305
10153
|
const { address, asset, isProjectAsset } = props;
|
|
10306
10154
|
const { assets: projectAssets, showBalanceAs: showBalanceAsSymbol } = useLumiaPassportConfig().config.current.projectAssets || {};
|
|
10307
|
-
const qc = (0,
|
|
10155
|
+
const qc = (0, import_react_query20.useQueryClient)();
|
|
10308
10156
|
const { balanceQueryKey } = projectAssets?.find((a) => a.symbol === showBalanceAsSymbol) || {};
|
|
10309
10157
|
const projectAssetBalance = !!balanceQueryKey ? qc.getQueryData(balanceQueryKey) : null;
|
|
10310
|
-
const { data: assetRate, isLoading: isRateLoading } = (0,
|
|
10158
|
+
const { data: assetRate, isLoading: isRateLoading } = (0, import_react_query20.useQuery)({
|
|
10311
10159
|
retry: false,
|
|
10312
10160
|
staleTime: 4 * 60 * 1e3,
|
|
10313
10161
|
enabled: !!address && !!asset.symbol && !isProjectAsset,
|
|
10314
10162
|
queryKey: [ASSETS_RATES_QUERY_KEY, address, asset.symbol],
|
|
10315
|
-
queryFn: async () => await
|
|
10163
|
+
queryFn: async () => await getAssetRate2(asset.symbol)
|
|
10316
10164
|
});
|
|
10317
10165
|
const renderBalance = isProjectAsset && projectAssetBalance?.fiatFormatted ? projectAssetBalance.fiatFormatted : asset.formattedBalance;
|
|
10318
10166
|
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
|
|
@@ -10366,18 +10214,18 @@ function PortfolioItem(props) {
|
|
|
10366
10214
|
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
10367
10215
|
function PortfolioMenu() {
|
|
10368
10216
|
const { assets: projectAssets = [] } = useLumiaPassportConfig().config.current?.projectAssets || {};
|
|
10369
|
-
const qc = (0,
|
|
10217
|
+
const qc = (0, import_react_query21.useQueryClient)();
|
|
10370
10218
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10371
10219
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
10372
|
-
const assetsContainerListRef = (0,
|
|
10373
|
-
const assetsListRef = (0,
|
|
10220
|
+
const assetsContainerListRef = (0, import_react35.useRef)(null);
|
|
10221
|
+
const assetsListRef = (0, import_react35.useRef)(null);
|
|
10374
10222
|
const address = useLumiaPassportSession((st) => st.address);
|
|
10375
10223
|
const { assets, refreshBalances, isLoading } = useAssets(address);
|
|
10376
|
-
const refreshAllAssetsBalances = (0,
|
|
10224
|
+
const refreshAllAssetsBalances = (0, import_react35.useCallback)(() => {
|
|
10377
10225
|
Promise.all(projectAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
|
|
10378
10226
|
refreshBalances();
|
|
10379
10227
|
}, [qc, projectAssets, refreshBalances]);
|
|
10380
|
-
(0,
|
|
10228
|
+
(0, import_react35.useEffect)(() => {
|
|
10381
10229
|
if (!assetsContainerListRef.current || !assetsListRef.current) return;
|
|
10382
10230
|
const listTargetHeight = maxScrollHeight - 128;
|
|
10383
10231
|
assetsContainerListRef.current.style.setProperty("--l-pass-scrollbar-mah", `${listTargetHeight}px`);
|
|
@@ -10450,7 +10298,7 @@ function PortfolioMenu() {
|
|
|
10450
10298
|
|
|
10451
10299
|
// src/internal/components/SecurityMenu/SecurityMenu.tsx
|
|
10452
10300
|
var import_lucide_react34 = require("lucide-react");
|
|
10453
|
-
var
|
|
10301
|
+
var import_react36 = require("react");
|
|
10454
10302
|
init_auth();
|
|
10455
10303
|
init_keyshare();
|
|
10456
10304
|
init_vaultClient();
|
|
@@ -10462,18 +10310,18 @@ function SecurityMenu() {
|
|
|
10462
10310
|
const userId = import_auth3.jwtTokenManager.getUserId();
|
|
10463
10311
|
const serverHasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
|
|
10464
10312
|
const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
|
|
10465
|
-
const [isRefreshing, setIsRefreshing] = (0,
|
|
10466
|
-
const [localInfo, setLocalInfo] = (0,
|
|
10467
|
-
const [recoveryCreatedAt, setRecoveryCreatedAt] = (0,
|
|
10468
|
-
const [recoveryBrowser, setRecoveryBrowser] = (0,
|
|
10469
|
-
const [recoveryUa, setRecoveryUa] = (0,
|
|
10470
|
-
const [recoveryDeviceId, setRecoveryDeviceId] = (0,
|
|
10471
|
-
const [recoveryDeviceName, setRecoveryDeviceName] = (0,
|
|
10472
|
-
const [recoveryCountry, setRecoveryCountry] = (0,
|
|
10473
|
-
const [hasServerBackup, setHasServerBackup] = (0,
|
|
10474
|
-
const [trustedApps, setTrustedApps] = (0,
|
|
10475
|
-
const [appToRemove, setAppToRemove] = (0,
|
|
10476
|
-
const fetchRecovery = (0,
|
|
10313
|
+
const [isRefreshing, setIsRefreshing] = (0, import_react36.useState)(false);
|
|
10314
|
+
const [localInfo, setLocalInfo] = (0, import_react36.useState)(null);
|
|
10315
|
+
const [recoveryCreatedAt, setRecoveryCreatedAt] = (0, import_react36.useState)(null);
|
|
10316
|
+
const [recoveryBrowser, setRecoveryBrowser] = (0, import_react36.useState)(null);
|
|
10317
|
+
const [recoveryUa, setRecoveryUa] = (0, import_react36.useState)(null);
|
|
10318
|
+
const [recoveryDeviceId, setRecoveryDeviceId] = (0, import_react36.useState)(null);
|
|
10319
|
+
const [recoveryDeviceName, setRecoveryDeviceName] = (0, import_react36.useState)(null);
|
|
10320
|
+
const [recoveryCountry, setRecoveryCountry] = (0, import_react36.useState)(null);
|
|
10321
|
+
const [hasServerBackup, setHasServerBackup] = (0, import_react36.useState)(false);
|
|
10322
|
+
const [trustedApps, setTrustedApps] = (0, import_react36.useState)([]);
|
|
10323
|
+
const [appToRemove, setAppToRemove] = (0, import_react36.useState)(null);
|
|
10324
|
+
const fetchRecovery = (0, import_react36.useCallback)(async () => {
|
|
10477
10325
|
if (!userId) return;
|
|
10478
10326
|
try {
|
|
10479
10327
|
setIsRefreshing(true);
|
|
@@ -10506,7 +10354,7 @@ function SecurityMenu() {
|
|
|
10506
10354
|
setIsRefreshing(false);
|
|
10507
10355
|
}
|
|
10508
10356
|
}, [userId]);
|
|
10509
|
-
(0,
|
|
10357
|
+
(0, import_react36.useEffect)(() => {
|
|
10510
10358
|
if (open) fetchRecovery();
|
|
10511
10359
|
}, [open, fetchRecovery]);
|
|
10512
10360
|
const parseOS = (ua) => {
|
|
@@ -10698,21 +10546,21 @@ function SecurityMenu() {
|
|
|
10698
10546
|
|
|
10699
10547
|
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
10700
10548
|
var import_lucide_react35 = require("lucide-react");
|
|
10701
|
-
var
|
|
10549
|
+
var import_react38 = require("react");
|
|
10702
10550
|
var import_viem6 = require("viem");
|
|
10703
10551
|
var import_wagmi3 = require("wagmi");
|
|
10704
10552
|
|
|
10705
10553
|
// src/hooks/useSendTransaction.ts
|
|
10706
|
-
var
|
|
10554
|
+
var import_react37 = require("react");
|
|
10707
10555
|
var import_viem5 = require("viem");
|
|
10708
10556
|
init_account();
|
|
10709
10557
|
function useSendTransaction() {
|
|
10710
10558
|
const session = useLumiaPassportSession((st) => st.session);
|
|
10711
10559
|
const address = useLumiaPassportSession((st) => st.address);
|
|
10712
|
-
const [isLoading, setIsLoading] = (0,
|
|
10713
|
-
const [error, setError] = (0,
|
|
10714
|
-
const [userOpHash, setUserOpHash] = (0,
|
|
10715
|
-
const sendTransaction = (0,
|
|
10560
|
+
const [isLoading, setIsLoading] = (0, import_react37.useState)(false);
|
|
10561
|
+
const [error, setError] = (0, import_react37.useState)(null);
|
|
10562
|
+
const [userOpHash, setUserOpHash] = (0, import_react37.useState)(null);
|
|
10563
|
+
const sendTransaction = (0, import_react37.useCallback)(
|
|
10716
10564
|
async (params) => {
|
|
10717
10565
|
if (!session || !address) {
|
|
10718
10566
|
setError("No active session");
|
|
@@ -10752,7 +10600,7 @@ function useSendTransaction() {
|
|
|
10752
10600
|
},
|
|
10753
10601
|
[session, address]
|
|
10754
10602
|
);
|
|
10755
|
-
const reset = (0,
|
|
10603
|
+
const reset = (0, import_react37.useCallback)(() => {
|
|
10756
10604
|
setError(null);
|
|
10757
10605
|
setUserOpHash(null);
|
|
10758
10606
|
setIsLoading(false);
|
|
@@ -10780,13 +10628,13 @@ function SendLumiaMenu() {
|
|
|
10780
10628
|
address,
|
|
10781
10629
|
chainId: lumiaBeam.id
|
|
10782
10630
|
});
|
|
10783
|
-
const [recipient, setRecipient] = (0,
|
|
10784
|
-
const [amount, setAmount] = (0,
|
|
10785
|
-
const [txStep, setTxStep] = (0,
|
|
10786
|
-
const [validationError, setValidationError] = (0,
|
|
10631
|
+
const [recipient, setRecipient] = (0, import_react38.useState)("");
|
|
10632
|
+
const [amount, setAmount] = (0, import_react38.useState)("");
|
|
10633
|
+
const [txStep, setTxStep] = (0, import_react38.useState)("input");
|
|
10634
|
+
const [validationError, setValidationError] = (0, import_react38.useState)(null);
|
|
10787
10635
|
const nativeAsset = assets.find((a) => a.type === "native");
|
|
10788
10636
|
const balance = nativeAsset ? parseFloat(nativeAsset.formattedBalance) : 0;
|
|
10789
|
-
(0,
|
|
10637
|
+
(0, import_react38.useEffect)(() => {
|
|
10790
10638
|
if (open) {
|
|
10791
10639
|
setTxStep("input");
|
|
10792
10640
|
setValidationError(null);
|
|
@@ -10950,7 +10798,7 @@ function SendLumiaMenu() {
|
|
|
10950
10798
|
// src/internal/components/SendRecieveMenu/ReceiveLumiaMenu.tsx
|
|
10951
10799
|
var import_lucide_react36 = require("lucide-react");
|
|
10952
10800
|
var import_qrcode = __toESM(require("qrcode"), 1);
|
|
10953
|
-
var
|
|
10801
|
+
var import_react39 = require("react");
|
|
10954
10802
|
init_clients();
|
|
10955
10803
|
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
10956
10804
|
function ReceiveLumiaMenu() {
|
|
@@ -10959,9 +10807,9 @@ function ReceiveLumiaMenu() {
|
|
|
10959
10807
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10960
10808
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
10961
10809
|
const open = page === "receive";
|
|
10962
|
-
const [qrCodeUrl, setQrCodeUrl] = (0,
|
|
10963
|
-
const [copied, setCopied] = (0,
|
|
10964
|
-
(0,
|
|
10810
|
+
const [qrCodeUrl, setQrCodeUrl] = (0, import_react39.useState)("");
|
|
10811
|
+
const [copied, setCopied] = (0, import_react39.useState)(false);
|
|
10812
|
+
(0, import_react39.useEffect)(() => {
|
|
10965
10813
|
if (open && address) {
|
|
10966
10814
|
import_qrcode.default.toDataURL(address, {
|
|
10967
10815
|
width: 200,
|
|
@@ -10974,7 +10822,7 @@ function ReceiveLumiaMenu() {
|
|
|
10974
10822
|
});
|
|
10975
10823
|
}
|
|
10976
10824
|
}, [open, address]);
|
|
10977
|
-
const handleCopy = (0,
|
|
10825
|
+
const handleCopy = (0, import_react39.useCallback)(async () => {
|
|
10978
10826
|
if (!address) return;
|
|
10979
10827
|
try {
|
|
10980
10828
|
await navigator.clipboard.writeText(address);
|
|
@@ -11020,7 +10868,7 @@ function ReceiveLumiaMenu() {
|
|
|
11020
10868
|
|
|
11021
10869
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
11022
10870
|
var import_lucide_react38 = require("lucide-react");
|
|
11023
|
-
var
|
|
10871
|
+
var import_react40 = require("react");
|
|
11024
10872
|
|
|
11025
10873
|
// src/internal/components/SettingsMenu/constants.ts
|
|
11026
10874
|
var import_lucide_react37 = require("lucide-react");
|
|
@@ -11054,7 +10902,7 @@ function SettingsMenu() {
|
|
|
11054
10902
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11055
10903
|
const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
|
|
11056
10904
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
11057
|
-
(0,
|
|
10905
|
+
(0, import_react40.useEffect)(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
|
|
11058
10906
|
const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
|
|
11059
10907
|
const highlightedKeys = settingsNotifications.map((n) => n.target);
|
|
11060
10908
|
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
@@ -11112,9 +10960,9 @@ function TermsOfService() {
|
|
|
11112
10960
|
}
|
|
11113
10961
|
|
|
11114
10962
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
11115
|
-
var
|
|
10963
|
+
var import_react_query22 = require("@tanstack/react-query");
|
|
11116
10964
|
var import_lucide_react41 = require("lucide-react");
|
|
11117
|
-
var
|
|
10965
|
+
var import_react41 = require("react");
|
|
11118
10966
|
|
|
11119
10967
|
// src/internal/components/TransactionsMenu/api.ts
|
|
11120
10968
|
init_base();
|
|
@@ -11590,31 +11438,31 @@ function TransactionsGroup(props) {
|
|
|
11590
11438
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
11591
11439
|
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
11592
11440
|
function TransactionsMenu() {
|
|
11593
|
-
const qc = (0,
|
|
11441
|
+
const qc = (0, import_react_query22.useQueryClient)();
|
|
11594
11442
|
const address = useLumiaPassportSession((st) => st.address);
|
|
11595
11443
|
const page = useLayoutDataStore((st) => st.page);
|
|
11596
11444
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11597
11445
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
11598
|
-
const txContainerListRef = (0,
|
|
11599
|
-
const txListRef = (0,
|
|
11600
|
-
const [expandedGroups, setExpandedGroups] = (0,
|
|
11446
|
+
const txContainerListRef = (0, import_react41.useRef)(null);
|
|
11447
|
+
const txListRef = (0, import_react41.useRef)(null);
|
|
11448
|
+
const [expandedGroups, setExpandedGroups] = (0, import_react41.useState)({});
|
|
11601
11449
|
const {
|
|
11602
11450
|
data: txHistoryGroups = [],
|
|
11603
11451
|
isLoading: isTxHistoryLoading,
|
|
11604
11452
|
isFetching: isTxHistoryFetching,
|
|
11605
11453
|
error: txHistoryError
|
|
11606
|
-
} = (0,
|
|
11454
|
+
} = (0, import_react_query22.useQuery)({
|
|
11607
11455
|
retry: false,
|
|
11608
11456
|
enabled: !!address && page === "transactions",
|
|
11609
11457
|
queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address],
|
|
11610
11458
|
queryFn: () => getTransactionsListQuery(address)
|
|
11611
11459
|
});
|
|
11612
|
-
const refreshTxHistory = (0,
|
|
11460
|
+
const refreshTxHistory = (0, import_react41.useCallback)(
|
|
11613
11461
|
() => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address] }),
|
|
11614
11462
|
[qc, address]
|
|
11615
11463
|
);
|
|
11616
11464
|
const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
|
|
11617
|
-
(0,
|
|
11465
|
+
(0, import_react41.useEffect)(() => {
|
|
11618
11466
|
if (!txContainerListRef.current || !txListRef.current) return;
|
|
11619
11467
|
const listTargetHeight = maxScrollHeight - 128;
|
|
11620
11468
|
txContainerListRef.current.style.setProperty("--l-pass-scrollbar-mah", `${listTargetHeight}px`);
|
|
@@ -11785,7 +11633,7 @@ function usePageMapper() {
|
|
|
11785
11633
|
setIsDialogOpen,
|
|
11786
11634
|
setIsDialogClosing
|
|
11787
11635
|
} = useLayoutStore();
|
|
11788
|
-
const closeDialog = (0,
|
|
11636
|
+
const closeDialog = (0, import_react42.useCallback)(() => {
|
|
11789
11637
|
setIsDialogClosing(true);
|
|
11790
11638
|
setTimeout(() => {
|
|
11791
11639
|
setDialogContent(null);
|
|
@@ -11796,7 +11644,7 @@ function usePageMapper() {
|
|
|
11796
11644
|
setIsDialogOpen(false);
|
|
11797
11645
|
}, CLEAR_DIALOG_TIMEOUT);
|
|
11798
11646
|
}, [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogForced, setIsDialogOpen, setIsDialogClosing]);
|
|
11799
|
-
const openDialog = (0,
|
|
11647
|
+
const openDialog = (0, import_react42.useCallback)(
|
|
11800
11648
|
(pageItem) => {
|
|
11801
11649
|
const PageContentComponent = pageItem.component;
|
|
11802
11650
|
setDialogTitle(pageItem.title);
|
|
@@ -11806,7 +11654,7 @@ function usePageMapper() {
|
|
|
11806
11654
|
},
|
|
11807
11655
|
[setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
|
|
11808
11656
|
);
|
|
11809
|
-
(0,
|
|
11657
|
+
(0, import_react42.useEffect)(() => {
|
|
11810
11658
|
if (page === null) return closeDialog();
|
|
11811
11659
|
const pageItem = protectedRoutes[page];
|
|
11812
11660
|
if (!pageItem) {
|
|
@@ -11819,7 +11667,7 @@ function usePageMapper() {
|
|
|
11819
11667
|
}
|
|
11820
11668
|
|
|
11821
11669
|
// src/internal/hooks/useSettingsNotifications.ts
|
|
11822
|
-
var
|
|
11670
|
+
var import_react43 = require("react");
|
|
11823
11671
|
init_auth();
|
|
11824
11672
|
var EMAIL_NOT_CONNECTED_NOTIFICATION = {
|
|
11825
11673
|
id: "email-not-connected",
|
|
@@ -11836,13 +11684,13 @@ function useSettingsNotifications() {
|
|
|
11836
11684
|
const setSettingsNotifications = useLayoutDataStore((st) => st.setSettingsNotifications);
|
|
11837
11685
|
const providers = import_auth3.jwtTokenManager.getProviders();
|
|
11838
11686
|
const hasEmail = providers.includes("email");
|
|
11839
|
-
(0,
|
|
11687
|
+
(0, import_react43.useEffect)(() => {
|
|
11840
11688
|
setSettingsNotifications({
|
|
11841
11689
|
...BACKUP_IS_NOT_CREATED_NOTIFICATION,
|
|
11842
11690
|
status: hasServerVault ? "resolved" : "active"
|
|
11843
11691
|
});
|
|
11844
11692
|
}, [hasServerVault, setSettingsNotifications]);
|
|
11845
|
-
(0,
|
|
11693
|
+
(0, import_react43.useEffect)(() => {
|
|
11846
11694
|
setSettingsNotifications({
|
|
11847
11695
|
...EMAIL_NOT_CONNECTED_NOTIFICATION,
|
|
11848
11696
|
status: hasEmail ? "resolved" : "active"
|
|
@@ -11851,7 +11699,7 @@ function useSettingsNotifications() {
|
|
|
11851
11699
|
}
|
|
11852
11700
|
|
|
11853
11701
|
// src/internal/hooks/useWalletStatus.ts
|
|
11854
|
-
var
|
|
11702
|
+
var import_react44 = require("react");
|
|
11855
11703
|
init_auth();
|
|
11856
11704
|
function useWalletStatus() {
|
|
11857
11705
|
const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
|
|
@@ -11861,7 +11709,7 @@ function useWalletStatus() {
|
|
|
11861
11709
|
config: { current: config },
|
|
11862
11710
|
callbacks
|
|
11863
11711
|
} = useLumiaPassportConfig();
|
|
11864
|
-
(0,
|
|
11712
|
+
(0, import_react44.useEffect)(() => {
|
|
11865
11713
|
if (!isIframeReady || !config.projectId || !callbacks?.onWalletReady) return;
|
|
11866
11714
|
const userId = import_auth3.jwtTokenManager.getUserId();
|
|
11867
11715
|
const hasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare();
|
|
@@ -11890,7 +11738,7 @@ function LumiaPassportDialog() {
|
|
|
11890
11738
|
const mainPageHeight = useLayoutDataStore((st) => st.mainPageHeight);
|
|
11891
11739
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11892
11740
|
const { colorMode, isDialogOpen, dialogTitle, dialogDescription, dialogContent, isDialogForced, setIsSettings } = useLayoutStore();
|
|
11893
|
-
(0,
|
|
11741
|
+
(0, import_react45.useEffect)(() => setIsSettings(!!session), [session, setIsSettings]);
|
|
11894
11742
|
usePageMapper();
|
|
11895
11743
|
useAutoConnect();
|
|
11896
11744
|
useCheckVaultStatus();
|
|
@@ -11929,23 +11777,23 @@ function LumiaPassportDialog() {
|
|
|
11929
11777
|
}
|
|
11930
11778
|
|
|
11931
11779
|
// src/internal/components/TssManager.tsx
|
|
11932
|
-
var
|
|
11780
|
+
var import_react46 = __toESM(require("react"), 1);
|
|
11933
11781
|
init_auth();
|
|
11934
11782
|
init_clients();
|
|
11935
|
-
var TssManagerWithRef =
|
|
11783
|
+
var TssManagerWithRef = import_react46.default.forwardRef((props, ref) => {
|
|
11936
11784
|
const { mpcPin } = props;
|
|
11937
11785
|
const usePaymaster = useLumiaPassportSession((st) => st.usePaymaster);
|
|
11938
11786
|
const setStatus = useLumiaPassportSession((st) => st.setStatus);
|
|
11939
11787
|
const setSession = useLumiaPassportSession((st) => st.setSession);
|
|
11940
11788
|
const setAddress = useLumiaPassportSession((st) => st.setAddress);
|
|
11941
|
-
const onSessionCreated = (0,
|
|
11789
|
+
const onSessionCreated = (0, import_react46.useCallback)(
|
|
11942
11790
|
(session, address) => {
|
|
11943
11791
|
setSession(session);
|
|
11944
11792
|
setAddress(address);
|
|
11945
11793
|
},
|
|
11946
11794
|
[setSession, setAddress]
|
|
11947
11795
|
);
|
|
11948
|
-
const createSessionWithKeyshare =
|
|
11796
|
+
const createSessionWithKeyshare = import_react46.default.useCallback(
|
|
11949
11797
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
11950
11798
|
setStatus("checking key management setup...");
|
|
11951
11799
|
await ensureKeyshare(userId, hasServerKeyshare, setStatus, isNewUser);
|
|
@@ -11966,18 +11814,18 @@ var TssManagerWithRef = import_react47.default.forwardRef((props, ref) => {
|
|
|
11966
11814
|
},
|
|
11967
11815
|
[setStatus, usePaymaster, mpcPin]
|
|
11968
11816
|
);
|
|
11969
|
-
|
|
11817
|
+
import_react46.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
|
|
11970
11818
|
return null;
|
|
11971
11819
|
});
|
|
11972
11820
|
|
|
11973
11821
|
// src/internal/components/WalletConnectHandler.tsx
|
|
11974
11822
|
var import_rainbowkit = require("@rainbow-me/rainbowkit");
|
|
11975
|
-
var
|
|
11976
|
-
var
|
|
11823
|
+
var import_react_query23 = require("@tanstack/react-query");
|
|
11824
|
+
var import_react47 = __toESM(require("react"), 1);
|
|
11977
11825
|
var import_wagmi4 = require("wagmi");
|
|
11978
11826
|
init_wallet();
|
|
11979
11827
|
function WalletConnectHandler() {
|
|
11980
|
-
const qc = (0,
|
|
11828
|
+
const qc = (0, import_react_query23.useQueryClient)();
|
|
11981
11829
|
const { callbacks } = useLumiaPassportConfig();
|
|
11982
11830
|
const userAddress = useLumiaPassportSession((st) => st.address);
|
|
11983
11831
|
const { address: walletAddress, isConnected, chain, connector } = (0, import_wagmi4.useAccount)();
|
|
@@ -11985,12 +11833,12 @@ function WalletConnectHandler() {
|
|
|
11985
11833
|
const { signMessageAsync } = (0, import_wagmi4.useSignMessage)();
|
|
11986
11834
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11987
11835
|
const { isWalletLinking, setLinkError, setIsWalletLinking, setLinkIsLoading, setProviderType } = useManageWalletStore();
|
|
11988
|
-
const onError = (0,
|
|
11836
|
+
const onError = (0, import_react47.useCallback)((error) => {
|
|
11989
11837
|
setLinkError(error);
|
|
11990
11838
|
setIsWalletLinking(false);
|
|
11991
11839
|
setPage("manage-wallet" /* MANAGE_WALLET */);
|
|
11992
11840
|
}, []);
|
|
11993
|
-
const onLinkingComplete = (0,
|
|
11841
|
+
const onLinkingComplete = (0, import_react47.useCallback)(
|
|
11994
11842
|
async (success) => {
|
|
11995
11843
|
console.log("[WalletConnectHandler] onLinkingComplete called:", { success, userAddress });
|
|
11996
11844
|
setIsWalletLinking(false);
|
|
@@ -12013,9 +11861,9 @@ function WalletConnectHandler() {
|
|
|
12013
11861
|
[qc, userAddress, callbacks, setProviderType, setPage, setIsWalletLinking]
|
|
12014
11862
|
);
|
|
12015
11863
|
const { openConnectModal, connectModalOpen } = (0, import_rainbowkit.useConnectModal)();
|
|
12016
|
-
const [hasStartedLinking, setHasStartedLinking] =
|
|
12017
|
-
const timeoutRef =
|
|
12018
|
-
(0,
|
|
11864
|
+
const [hasStartedLinking, setHasStartedLinking] = import_react47.default.useState(false);
|
|
11865
|
+
const timeoutRef = import_react47.default.useRef();
|
|
11866
|
+
(0, import_react47.useEffect)(() => {
|
|
12019
11867
|
if (isWalletLinking && !hasStartedLinking) {
|
|
12020
11868
|
setHasStartedLinking(true);
|
|
12021
11869
|
setProviderType(null);
|
|
@@ -12040,7 +11888,7 @@ function WalletConnectHandler() {
|
|
|
12040
11888
|
if (isConnected) disconnect();
|
|
12041
11889
|
}
|
|
12042
11890
|
}, [isWalletLinking, hasStartedLinking, isConnected, openConnectModal, disconnect, setPage, setProviderType]);
|
|
12043
|
-
(0,
|
|
11891
|
+
(0, import_react47.useEffect)(() => {
|
|
12044
11892
|
console.log("[WalletConnectHandler] Modal state check:", {
|
|
12045
11893
|
hasStartedLinking,
|
|
12046
11894
|
connectModalOpen,
|
|
@@ -12053,7 +11901,7 @@ function WalletConnectHandler() {
|
|
|
12053
11901
|
setHasStartedLinking(false);
|
|
12054
11902
|
}
|
|
12055
11903
|
}, [connectModalOpen, hasStartedLinking, isConnected, isWalletLinking]);
|
|
12056
|
-
(0,
|
|
11904
|
+
(0, import_react47.useEffect)(() => {
|
|
12057
11905
|
if (isConnected && walletAddress && isWalletLinking && hasStartedLinking) {
|
|
12058
11906
|
handleWalletSign();
|
|
12059
11907
|
}
|
|
@@ -12138,12 +11986,10 @@ var useLumiaPassportSession = (0, import_zustand5.create)((set) => ({
|
|
|
12138
11986
|
setWalletReadyStatus: (status) => set({ walletReadyStatus: status })
|
|
12139
11987
|
}));
|
|
12140
11988
|
function LumiaPassportSessionProvider({ children }) {
|
|
12141
|
-
const
|
|
12142
|
-
|
|
12143
|
-
} = useLumiaPassportConfig();
|
|
12144
|
-
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_react49.Fragment, { children: [
|
|
11989
|
+
const config = useLumiaPassportConfig().config;
|
|
11990
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_react48.Fragment, { children: [
|
|
12145
11991
|
children,
|
|
12146
|
-
config.wallet?.enabled && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(WalletConnectHandler, {}),
|
|
11992
|
+
config.current?.wallet?.enabled && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(WalletConnectHandler, {}),
|
|
12147
11993
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(BalanceFeedProvider, {}),
|
|
12148
11994
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
12149
11995
|
TssManagerWithRef,
|
|
@@ -12193,14 +12039,14 @@ var LumiaWagmiProvider = ({ children }) => {
|
|
|
12193
12039
|
|
|
12194
12040
|
// src/context/LumiaPassportContext.tsx
|
|
12195
12041
|
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
12196
|
-
var LumiaPassportContext = (0,
|
|
12042
|
+
var LumiaPassportContext = (0, import_react49.createContext)(void 0);
|
|
12197
12043
|
function LumiaPassportProvider(props) {
|
|
12198
12044
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
12199
12045
|
const setIsIframeReady = useLumiaPassportSession((st) => st.setIsIframeReady);
|
|
12200
12046
|
const setWalletReadyStatus = useLumiaPassportSession((st) => st.setWalletReadyStatus);
|
|
12201
|
-
(0,
|
|
12202
|
-
const config = (0,
|
|
12203
|
-
const updateConfig = (0,
|
|
12047
|
+
(0, import_react49.useEffect)(() => notifyNoProjetctId(projectId), [projectId]);
|
|
12048
|
+
const config = (0, import_react49.useRef)({ projectId, ...DEFAULT_LUMIA_PASSPORT_CONFIG });
|
|
12049
|
+
const updateConfig = (0, import_react49.useCallback)((updates) => {
|
|
12204
12050
|
const prev = config.current;
|
|
12205
12051
|
const next = { ...prev };
|
|
12206
12052
|
if (updates.projectId !== void 0) next.projectId = updates.projectId;
|
|
@@ -12235,7 +12081,7 @@ function LumiaPassportProvider(props) {
|
|
|
12235
12081
|
}
|
|
12236
12082
|
config.current = next;
|
|
12237
12083
|
}, []);
|
|
12238
|
-
(0,
|
|
12084
|
+
(0, import_react49.useEffect)(() => {
|
|
12239
12085
|
if (typeof window === "undefined" || !projectId) return;
|
|
12240
12086
|
const mergedConfig = (0, import_lodash_es4.merge)(DEFAULT_LUMIA_PASSPORT_CONFIG, initialConfig);
|
|
12241
12087
|
updateConfig(mergedConfig);
|
|
@@ -12280,18 +12126,18 @@ function LumiaPassportProvider(props) {
|
|
|
12280
12126
|
console.error("[LumiaPassport] Error setting up iframe manager:", error);
|
|
12281
12127
|
}
|
|
12282
12128
|
}, [projectId, initialConfig, callbacks, updateConfig, setIsIframeReady, setWalletReadyStatus]);
|
|
12283
|
-
const contextValue = (0,
|
|
12129
|
+
const contextValue = (0, import_react49.useMemo)(() => ({ config, updateConfig, callbacks }), [config, updateConfig, callbacks]);
|
|
12284
12130
|
return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(LumiaWagmiProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(LumiaPassportContext.Provider, { value: contextValue, children }) });
|
|
12285
12131
|
}
|
|
12286
12132
|
var useLumiaPassportConfig = () => {
|
|
12287
|
-
const ctx = (0,
|
|
12133
|
+
const ctx = (0, import_react49.useContext)(LumiaPassportContext);
|
|
12288
12134
|
if (!ctx) throw new Error("useLumiaPassportConfig must be used within a LumiaPassportProvider");
|
|
12289
12135
|
return ctx;
|
|
12290
12136
|
};
|
|
12291
12137
|
|
|
12292
12138
|
// src/components/ConnectWalletButton.tsx
|
|
12293
12139
|
var import_lucide_react42 = require("lucide-react");
|
|
12294
|
-
var
|
|
12140
|
+
var import_react50 = require("react");
|
|
12295
12141
|
init_auth();
|
|
12296
12142
|
var import_jsx_runtime65 = (
|
|
12297
12143
|
/** external Buttons can be provided */
|
|
@@ -12314,10 +12160,10 @@ function ConnectWalletButton(props) {
|
|
|
12314
12160
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
12315
12161
|
const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useLumiaPassportSession();
|
|
12316
12162
|
const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
|
|
12317
|
-
(0,
|
|
12163
|
+
(0, import_react50.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
|
|
12318
12164
|
const avatar = import_auth3.jwtTokenManager.getAvatar();
|
|
12319
12165
|
const displayName = import_auth3.jwtTokenManager.getDisplayName();
|
|
12320
|
-
const indicators = (0,
|
|
12166
|
+
const indicators = (0, import_react50.useMemo)(() => {
|
|
12321
12167
|
const userId = import_auth3.jwtTokenManager.getUserId();
|
|
12322
12168
|
if (!userId) return { server: false, local: false, backup: false };
|
|
12323
12169
|
const server = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
|
|
@@ -12448,6 +12294,9 @@ function ConnectWalletButton(props) {
|
|
|
12448
12294
|
}
|
|
12449
12295
|
|
|
12450
12296
|
// src/hooks/childAppHooks.ts
|
|
12297
|
+
var useLumiaPassportIsMobileView = () => {
|
|
12298
|
+
return useLayoutStore((st) => st.isMobileView);
|
|
12299
|
+
};
|
|
12451
12300
|
var useLumiaPassportBalance = () => {
|
|
12452
12301
|
const walletBalance = useLayoutDataStore((st) => st.balance);
|
|
12453
12302
|
const fiatBalance = useLayoutDataStore((st) => st.fiatBalance);
|
|
@@ -12469,13 +12318,13 @@ var useLumiaPassportRecoveryUserId = () => useLumiaPassportSession((st) => st.re
|
|
|
12469
12318
|
var useLumiaPassportHasServerVault = () => useLumiaPassportSession((st) => st.hasServerVault);
|
|
12470
12319
|
|
|
12471
12320
|
// src/hooks/useLumiaPassportOpen.ts
|
|
12472
|
-
var
|
|
12321
|
+
var import_react51 = require("react");
|
|
12473
12322
|
function useLumiaPassportOpen() {
|
|
12474
12323
|
const page = useLayoutDataStore((st) => st.page);
|
|
12475
12324
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
12476
12325
|
const setPageParams = useLayoutDataStore((st) => st.setPageParams);
|
|
12477
12326
|
const address = useLumiaPassportSession((st) => st.address);
|
|
12478
|
-
const open = (0,
|
|
12327
|
+
const open = (0, import_react51.useCallback)(
|
|
12479
12328
|
(passportPage, params) => {
|
|
12480
12329
|
if (!address) return setPage("auth" /* AUTH */);
|
|
12481
12330
|
if (!!address && passportPage === "auth" /* AUTH */) return setPage("manage-wallet" /* MANAGE_WALLET */);
|
|
@@ -12484,12 +12333,12 @@ function useLumiaPassportOpen() {
|
|
|
12484
12333
|
},
|
|
12485
12334
|
[setPage, setPageParams, address]
|
|
12486
12335
|
);
|
|
12487
|
-
const close = (0,
|
|
12336
|
+
const close = (0, import_react51.useCallback)(() => setPage(null), [setPage]);
|
|
12488
12337
|
return { open, close, isOpen: page !== null };
|
|
12489
12338
|
}
|
|
12490
12339
|
|
|
12491
12340
|
// src/hooks/useLumiaPassportColorMode.ts
|
|
12492
|
-
var
|
|
12341
|
+
var import_react52 = require("react");
|
|
12493
12342
|
function useLumiaPassportColorMode() {
|
|
12494
12343
|
const {
|
|
12495
12344
|
config: { current: config }
|
|
@@ -12497,14 +12346,14 @@ function useLumiaPassportColorMode() {
|
|
|
12497
12346
|
const preferedColorMode = config?.preferedColorMode;
|
|
12498
12347
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
12499
12348
|
const handleStoreColorMode = useLayoutStore((st) => st.setColorMode);
|
|
12500
|
-
const setColorMode = (0,
|
|
12349
|
+
const setColorMode = (0, import_react52.useCallback)(
|
|
12501
12350
|
(mode) => {
|
|
12502
12351
|
localStorage.setItem(LOCAL_COLOR_MODE_KEY, mode);
|
|
12503
12352
|
handleStoreColorMode(mode);
|
|
12504
12353
|
},
|
|
12505
12354
|
[handleStoreColorMode]
|
|
12506
12355
|
);
|
|
12507
|
-
(0,
|
|
12356
|
+
(0, import_react52.useEffect)(() => {
|
|
12508
12357
|
let targetColorMode = localStorage.getItem(LOCAL_COLOR_MODE_KEY);
|
|
12509
12358
|
if (!targetColorMode && !preferedColorMode) {
|
|
12510
12359
|
const systemMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
@@ -12546,7 +12395,7 @@ function ThemeToggle(props) {
|
|
|
12546
12395
|
}
|
|
12547
12396
|
|
|
12548
12397
|
// src/context/RainbowKitContext.tsx
|
|
12549
|
-
var
|
|
12398
|
+
var import_react53 = __toESM(require("react"), 1);
|
|
12550
12399
|
var import_styles = require("@rainbow-me/rainbowkit/styles.css");
|
|
12551
12400
|
var import_rainbowkit3 = require("@rainbow-me/rainbowkit");
|
|
12552
12401
|
var import_wagmi8 = require("wagmi");
|
|
@@ -12693,10 +12542,10 @@ var LumiaRainbowKitProvider = ({ children }) => {
|
|
|
12693
12542
|
config: { current: config }
|
|
12694
12543
|
} = useLumiaPassportConfig();
|
|
12695
12544
|
const isDark = useLayoutStore((st) => st.colorMode === "dark");
|
|
12696
|
-
const rainbowConfig2 =
|
|
12545
|
+
const rainbowConfig2 = import_react53.default.useMemo(() => {
|
|
12697
12546
|
return createRainbowConfig(config.wallet?.walletConnectProjectId);
|
|
12698
12547
|
}, [config.wallet?.walletConnectProjectId]);
|
|
12699
|
-
const customTheme =
|
|
12548
|
+
const customTheme = import_react53.default.useMemo(
|
|
12700
12549
|
() => isDark ? {
|
|
12701
12550
|
...(0, import_rainbowkit3.darkTheme)(),
|
|
12702
12551
|
colors: {
|
|
@@ -13157,14 +13006,14 @@ var Hash = ({
|
|
|
13157
13006
|
};
|
|
13158
13007
|
|
|
13159
13008
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
13160
|
-
var
|
|
13009
|
+
var import_react54 = require("react");
|
|
13161
13010
|
init_base();
|
|
13162
13011
|
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
13163
13012
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
13164
|
-
const [transactions, setTransactions] = (0,
|
|
13165
|
-
const [loading, setLoading] = (0,
|
|
13166
|
-
const [error, setError] = (0,
|
|
13167
|
-
(0,
|
|
13013
|
+
const [transactions, setTransactions] = (0, import_react54.useState)([]);
|
|
13014
|
+
const [loading, setLoading] = (0, import_react54.useState)(true);
|
|
13015
|
+
const [error, setError] = (0, import_react54.useState)(null);
|
|
13016
|
+
(0, import_react54.useEffect)(() => {
|
|
13168
13017
|
const fetchTransactions = async () => {
|
|
13169
13018
|
try {
|
|
13170
13019
|
setLoading(true);
|
|
@@ -13466,11 +13315,11 @@ function useUserOpStatus(options = {}) {
|
|
|
13466
13315
|
|
|
13467
13316
|
// src/hooks/useLogout.ts
|
|
13468
13317
|
var import_auth20 = require("@lumiapassport/core/auth");
|
|
13469
|
-
var
|
|
13318
|
+
var import_react55 = require("react");
|
|
13470
13319
|
function useLogout() {
|
|
13471
13320
|
const { setSession, setIsLoading, setAddress, setStatus, setError, address } = useLumiaPassportSession();
|
|
13472
13321
|
const { callbacks } = useLumiaPassportConfig();
|
|
13473
|
-
const logout2 = (0,
|
|
13322
|
+
const logout2 = (0, import_react55.useCallback)(async () => {
|
|
13474
13323
|
const prevAddress = address;
|
|
13475
13324
|
let userId = null;
|
|
13476
13325
|
setIsLoading(true);
|
|
@@ -13672,6 +13521,7 @@ init_iframe_manager();
|
|
|
13672
13521
|
useLumiaPassportError,
|
|
13673
13522
|
useLumiaPassportHasServerVault,
|
|
13674
13523
|
useLumiaPassportIFrameReady,
|
|
13524
|
+
useLumiaPassportIsMobileView,
|
|
13675
13525
|
useLumiaPassportLinkedProfiles,
|
|
13676
13526
|
useLumiaPassportLoadingStatus,
|
|
13677
13527
|
useLumiaPassportOpen,
|