@lumiapassport/ui-kit 1.13.11 → 1.14.1
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 +4 -37
- package/dist/iframe/index.html +2 -3
- package/dist/iframe/main.js +54 -106
- package/dist/iframe/main.js.map +1 -1
- package/dist/index.cjs +1036 -881
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -42
- package/dist/index.d.ts +2 -42
- package/dist/index.js +885 -739
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -153,15 +153,10 @@ var init_lumiaPassport = __esm({
|
|
|
153
153
|
title: "Sign in",
|
|
154
154
|
subtitle: void 0,
|
|
155
155
|
authOrder: ["passkey", "email", "social"],
|
|
156
|
-
// fonts: {
|
|
157
|
-
// base: 'system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif',
|
|
158
|
-
// heading: 'system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif'
|
|
159
|
-
// },
|
|
160
156
|
branding: {
|
|
161
157
|
tagline: "Lumia Passport MPC",
|
|
162
158
|
link: { text: "Lumia Passport MPC", url: "/mpc-security" }
|
|
163
159
|
}
|
|
164
|
-
// modal: { width: '400px', borderRadius: '24px' }
|
|
165
160
|
},
|
|
166
161
|
network: {
|
|
167
162
|
name: "Lumia Beam",
|
|
@@ -2458,7 +2453,6 @@ var init_iframe_manager = __esm({
|
|
|
2458
2453
|
this.iframe = null;
|
|
2459
2454
|
this.sessionToken = null;
|
|
2460
2455
|
this.isReady = false;
|
|
2461
|
-
// private themeColors?: IframeManagerConfig['themeColors']
|
|
2462
2456
|
// Message handling
|
|
2463
2457
|
this.pendingRequests = /* @__PURE__ */ new Map();
|
|
2464
2458
|
this.usedNonces = /* @__PURE__ */ new Set();
|
|
@@ -2484,7 +2478,6 @@ var init_iframe_manager = __esm({
|
|
|
2484
2478
|
this.log("[IframeManager] Initialized with:", {
|
|
2485
2479
|
iframeUrl: this.iframeUrl,
|
|
2486
2480
|
projectId: this.projectId
|
|
2487
|
-
// hasThemeColors: !!this.themeColors
|
|
2488
2481
|
});
|
|
2489
2482
|
}
|
|
2490
2483
|
/**
|
|
@@ -4239,7 +4232,7 @@ var init_profile = __esm({
|
|
|
4239
4232
|
});
|
|
4240
4233
|
|
|
4241
4234
|
// src/styles/built.css
|
|
4242
|
-
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}';
|
|
4235
|
+
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-\\[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-2{margin-right:.5rem}.lumia-scope .mr-4{margin-right:1rem}.lumia-scope .mt-0{margin-top:0}.lumia-scope .mt-1{margin-top:.25rem}.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-\\[100dvh\\]{height:100dvh}.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-\\[100dvw\\]{width:100dvw}.lumia-scope .w-\\[var\\(--l-pass-maw\\)\\]{width:var(--l-pass-maw)}.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 .max-w-2xl{max-width:42rem}.lumia-scope .max-w-\\[144px\\]{max-width:144px}.lumia-scope .max-w-\\[680px\\]{max-width:680px}.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-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-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-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-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-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-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.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-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-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-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-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-black{--tw-text-opacity:1;color:rgb(0 0 0/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-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-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.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-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 .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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 .grayscale{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 .grayscale{--tw-grayscale:grayscale(100%)}.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;-webkit-tap-highlight-color:transparent;-moz-tap-highlight-color:transparent;-ms-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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-mobile-dialog-fade-in{0%{opacity:0;transform:translateY(64px)}to{opacity:1;transform:translateY(0)}}@keyframes lumia-mobile-dialog-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(64px)}}.lumia-scope .animate-mobile-dialog-in{animation:lumia-mobile-dialog-fade-in 375ms ease}.lumia-scope .animate-mobile-dialog-out{animation:lumia-mobile-dialog-fade-out 375ms ease}@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 .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\\: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-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/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-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/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-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\\:underline:hover{text-decoration-line:underline}.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-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-1{padding-top:.25rem;padding-bottom:.25rem}}@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\\]\\:shrink-0 svg){flex-shrink:0}';
|
|
4243
4236
|
|
|
4244
4237
|
// src/context/LumiaPassportContext.tsx
|
|
4245
4238
|
init_lumiaPassport();
|
|
@@ -4248,9 +4241,9 @@ import { initSdkErrorTracking } from "@lumiapassport/core/internal/error-trackin
|
|
|
4248
4241
|
import { merge as merge2 } from "lodash-es";
|
|
4249
4242
|
import {
|
|
4250
4243
|
createContext,
|
|
4251
|
-
useCallback as
|
|
4244
|
+
useCallback as useCallback19,
|
|
4252
4245
|
useContext,
|
|
4253
|
-
useEffect as
|
|
4246
|
+
useEffect as useEffect29,
|
|
4254
4247
|
useMemo as useMemo3,
|
|
4255
4248
|
useRef as useRef11
|
|
4256
4249
|
} from "react";
|
|
@@ -4425,12 +4418,12 @@ function BalanceFeedProvider() {
|
|
|
4425
4418
|
|
|
4426
4419
|
// src/internal/components/Dialog/LumiaPassportDialog.tsx
|
|
4427
4420
|
import { AnimatePresence as AnimatePresence4, motion as motion4 } from "framer-motion";
|
|
4428
|
-
import { useEffect as
|
|
4421
|
+
import { useEffect as useEffect27 } from "react";
|
|
4429
4422
|
|
|
4430
4423
|
// package.json
|
|
4431
4424
|
var package_default = {
|
|
4432
4425
|
name: "@lumiapassport/ui-kit",
|
|
4433
|
-
version: "1.
|
|
4426
|
+
version: "1.14.1",
|
|
4434
4427
|
description: "React UI components and hooks for Lumia Passport authentication and Account Abstraction",
|
|
4435
4428
|
type: "module",
|
|
4436
4429
|
main: "./dist/index.cjs",
|
|
@@ -4582,6 +4575,21 @@ import { twMerge } from "tailwind-merge";
|
|
|
4582
4575
|
function cn(...inputs) {
|
|
4583
4576
|
return twMerge(clsx(inputs));
|
|
4584
4577
|
}
|
|
4578
|
+
var LP_JWT_TOKENS_LS_KEY = "lumia-passport-jwt-tokens";
|
|
4579
|
+
function getAccessToken() {
|
|
4580
|
+
try {
|
|
4581
|
+
const sessionString = localStorage.getItem(LP_JWT_TOKENS_LS_KEY);
|
|
4582
|
+
if (!sessionString) return null;
|
|
4583
|
+
const session = JSON.parse(sessionString);
|
|
4584
|
+
if (session && typeof session.accessToken === "string" && typeof session.userId === "string") {
|
|
4585
|
+
return session.accessToken;
|
|
4586
|
+
}
|
|
4587
|
+
return null;
|
|
4588
|
+
} catch (error) {
|
|
4589
|
+
console.error("Failed to parse Lumia Passport session:", error);
|
|
4590
|
+
return null;
|
|
4591
|
+
}
|
|
4592
|
+
}
|
|
4585
4593
|
|
|
4586
4594
|
// src/internal/components/ui/button.tsx
|
|
4587
4595
|
import { Slot } from "@radix-ui/react-slot";
|
|
@@ -5001,6 +5009,7 @@ var DialogOverlay = forwardRef3(
|
|
|
5001
5009
|
ref,
|
|
5002
5010
|
style: { backdropFilter: "blur(var(--l-pass-backdrop-blur))" },
|
|
5003
5011
|
className: cn(
|
|
5012
|
+
"w-[100dvw] h-[100dvh]",
|
|
5004
5013
|
"fixed inset-0 z-[9998] bg-[var(--l-pass-overlay)]",
|
|
5005
5014
|
closing ? "animate-dialog-out" : "animate-dialog-in",
|
|
5006
5015
|
className
|
|
@@ -5013,7 +5022,7 @@ DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
|
5013
5022
|
function useDecideContentStyles() {
|
|
5014
5023
|
const isMobileView = useLayoutStore((st) => st.isMobileView);
|
|
5015
5024
|
const isClosing = useLayoutStore((st) => !!st.isDialogOpen && !!st.isDialogClosing);
|
|
5016
|
-
const mobileStyles = isMobileView ? { "--l-pass-
|
|
5025
|
+
const mobileStyles = isMobileView ? { "--l-pass-bdrs": "20px 20px 0px 0px" } : {};
|
|
5017
5026
|
return {
|
|
5018
5027
|
isClosing,
|
|
5019
5028
|
isMobileView,
|
|
@@ -5031,15 +5040,17 @@ var DialogContent = forwardRef3(
|
|
|
5031
5040
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
5032
5041
|
const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
|
|
5033
5042
|
const { isMobileView, isClosing, style } = useDecideContentStyles();
|
|
5034
|
-
|
|
5043
|
+
const animationCnPrefix = isMobileView ? "animate-mobile-dialog" : "animate-dialog";
|
|
5044
|
+
const dialogAnimationCn = isClosing ? `${animationCnPrefix}-out` : `${animationCnPrefix}-in`;
|
|
5045
|
+
return /* @__PURE__ */ jsx9(DialogPortal, { children: /* @__PURE__ */ jsxs8("div", { className: "lumia-scope", "data-lumia-passport-mode": colorMode, style: { ...style, outline: "none" }, children: [
|
|
5035
5046
|
/* @__PURE__ */ jsx9(DialogOverlay, { closing: isClosing }),
|
|
5036
5047
|
/* @__PURE__ */ jsx9(
|
|
5037
5048
|
"div",
|
|
5038
5049
|
{
|
|
5039
5050
|
className: cn(
|
|
5040
|
-
"fixed inset-0 z-[9999] flex items-center justify-center pointer-events-none",
|
|
5041
|
-
|
|
5042
|
-
isMobileView ? "items-end" : "items-center"
|
|
5051
|
+
"fixed inset-0 z-[9999] flex items-center justify-center pointer-events-none outline-none",
|
|
5052
|
+
dialogAnimationCn,
|
|
5053
|
+
isMobileView ? "items-end w-[100dvw] h-[100dvh]" : "items-center w-[var(--l-pass-maw)] mx-auto"
|
|
5043
5054
|
),
|
|
5044
5055
|
children: /* @__PURE__ */ jsxs8(
|
|
5045
5056
|
DialogPrimitive.Content,
|
|
@@ -5047,10 +5058,10 @@ var DialogContent = forwardRef3(
|
|
|
5047
5058
|
ref,
|
|
5048
5059
|
style: !!className ? void 0 : CONTENT_BG_SETUP,
|
|
5049
5060
|
className: cn(
|
|
5050
|
-
"relative pointer-events-auto
|
|
5051
|
-
"
|
|
5052
|
-
"text-[var(--l-pass-fg)]",
|
|
5061
|
+
"relative pointer-events-auto max-h-[95dvh] outline-none",
|
|
5062
|
+
"p-0 gap-0 text-[var(--l-pass-fg)]",
|
|
5053
5063
|
"rounded-[var(--l-pass-bdrs)] overflow-hidden",
|
|
5064
|
+
isMobileView ? "w-[100dvw]" : "w-[var(--l-pass-maw)]",
|
|
5054
5065
|
className
|
|
5055
5066
|
),
|
|
5056
5067
|
...props,
|
|
@@ -5170,7 +5181,7 @@ function useAutoConnect() {
|
|
|
5170
5181
|
}
|
|
5171
5182
|
return { session: sess, address: addr };
|
|
5172
5183
|
} catch (error) {
|
|
5173
|
-
if (error?.code
|
|
5184
|
+
if (error?.code === "KEYSHARE_RECOVERY_NEEDED") {
|
|
5174
5185
|
setStatus("idle");
|
|
5175
5186
|
setPage("keyshare-restore" /* KEYSHARE_RESTORE */);
|
|
5176
5187
|
}
|
|
@@ -5285,7 +5296,9 @@ function useAutoConnect() {
|
|
|
5285
5296
|
setError(null);
|
|
5286
5297
|
setStatus("recovery_needed");
|
|
5287
5298
|
setIsLoading(false);
|
|
5288
|
-
|
|
5299
|
+
setTimeout(() => {
|
|
5300
|
+
setPage("keyshare-restore" /* KEYSHARE_RESTORE */);
|
|
5301
|
+
}, 500);
|
|
5289
5302
|
} else {
|
|
5290
5303
|
console.warn("[UI-KIT][AutoConnect] Unexpected error during auto-connect:", e);
|
|
5291
5304
|
setIsLoading(false);
|
|
@@ -5299,43 +5312,56 @@ function useAutoConnect() {
|
|
|
5299
5312
|
}
|
|
5300
5313
|
|
|
5301
5314
|
// src/internal/hooks/useBackupStatusChanges.ts
|
|
5302
|
-
import {
|
|
5315
|
+
import { useMutation as useMutation2 } from "@tanstack/react-query";
|
|
5316
|
+
import { useEffect as useEffect3, useRef as useRef2 } from "react";
|
|
5303
5317
|
init_vaultClient();
|
|
5318
|
+
var NO_BACKUP_WARN_DELAY_MS = 5e3;
|
|
5304
5319
|
function useBackupStatusChanges() {
|
|
5305
5320
|
const setHasServerVault = useLumiaPassportSession((st) => st.setHasServerVault);
|
|
5306
|
-
|
|
5307
|
-
|
|
5321
|
+
const noBackupWarnTimeout = useRef2(null);
|
|
5322
|
+
const { mutate: handleBackupStatusChanged } = useMutation2({
|
|
5323
|
+
mutationFn: async (event) => {
|
|
5308
5324
|
const customEvent = event;
|
|
5309
|
-
|
|
5310
|
-
|
|
5311
|
-
|
|
5312
|
-
|
|
5313
|
-
|
|
5314
|
-
if (
|
|
5315
|
-
|
|
5316
|
-
|
|
5317
|
-
const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
|
|
5318
|
-
setHasServerVault(!!hasRecoveryData);
|
|
5319
|
-
} catch (e) {
|
|
5320
|
-
console.warn("[UI-KIT] Failed to refresh vault status after backup:", e);
|
|
5321
|
-
}
|
|
5325
|
+
console.log("[BACKUP STATUS] changed:", customEvent.detail);
|
|
5326
|
+
const stats = await getShareRecoveryStats();
|
|
5327
|
+
return stats && (!!stats.created || !!stats?.devices?.length);
|
|
5328
|
+
},
|
|
5329
|
+
onSuccess: (hasRecoveryData) => {
|
|
5330
|
+
if (!!noBackupWarnTimeout.current) {
|
|
5331
|
+
clearTimeout(noBackupWarnTimeout.current);
|
|
5332
|
+
noBackupWarnTimeout.current = null;
|
|
5322
5333
|
}
|
|
5323
|
-
|
|
5334
|
+
if (!!hasRecoveryData) {
|
|
5335
|
+
setHasServerVault(true);
|
|
5336
|
+
} else {
|
|
5337
|
+
noBackupWarnTimeout.current = setTimeout(() => {
|
|
5338
|
+
setHasServerVault(false);
|
|
5339
|
+
console.warn("[BACKUP STATUS] No recovery data found in vault, marking as no-server-vault");
|
|
5340
|
+
noBackupWarnTimeout.current = null;
|
|
5341
|
+
}, NO_BACKUP_WARN_DELAY_MS);
|
|
5342
|
+
}
|
|
5343
|
+
},
|
|
5344
|
+
onError: (error) => {
|
|
5345
|
+
setHasServerVault(false);
|
|
5346
|
+
console.warn("[BACKUP STATUS] Failed to fetch initial vault status:", error);
|
|
5347
|
+
}
|
|
5348
|
+
});
|
|
5349
|
+
useEffect3(() => {
|
|
5324
5350
|
window.addEventListener("lumia-passport-backup-status-changed", handleBackupStatusChanged);
|
|
5325
5351
|
return () => {
|
|
5326
5352
|
window.removeEventListener("lumia-passport-backup-status-changed", handleBackupStatusChanged);
|
|
5327
5353
|
};
|
|
5328
|
-
}, [
|
|
5354
|
+
}, []);
|
|
5329
5355
|
}
|
|
5330
5356
|
|
|
5331
5357
|
// src/internal/hooks/useCheckVaultStatus.ts
|
|
5332
|
-
import { useMutation as
|
|
5358
|
+
import { useMutation as useMutation3 } from "@tanstack/react-query";
|
|
5333
5359
|
import { useEffect as useEffect4 } from "react";
|
|
5334
5360
|
init_vaultClient();
|
|
5335
5361
|
function useCheckVaultStatus() {
|
|
5336
5362
|
const address = useLumiaPassportSession((st) => st.address);
|
|
5337
5363
|
const setHasServerVault = useLumiaPassportSession((st) => st.setHasServerVault);
|
|
5338
|
-
const { mutate: checkVaultStatus } =
|
|
5364
|
+
const { mutate: checkVaultStatus } = useMutation3({
|
|
5339
5365
|
mutationFn: async () => {
|
|
5340
5366
|
const stats = await getShareRecoveryStats();
|
|
5341
5367
|
const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
|
|
@@ -5379,7 +5405,7 @@ function useDetectMaxScrollHeight() {
|
|
|
5379
5405
|
}
|
|
5380
5406
|
|
|
5381
5407
|
// src/internal/hooks/usePageMapper.tsx
|
|
5382
|
-
import { useCallback as
|
|
5408
|
+
import { useCallback as useCallback16, useEffect as useEffect24 } from "react";
|
|
5383
5409
|
|
|
5384
5410
|
// src/internal/components/AuthMenu/AuthMenu.tsx
|
|
5385
5411
|
import { AnimatePresence, motion } from "framer-motion";
|
|
@@ -5477,11 +5503,11 @@ init_auth();
|
|
|
5477
5503
|
init_profile();
|
|
5478
5504
|
|
|
5479
5505
|
// src/internal/components/ui/input.tsx
|
|
5480
|
-
import React2, { useImperativeHandle, useRef as
|
|
5506
|
+
import React2, { useImperativeHandle, useRef as useRef3 } from "react";
|
|
5481
5507
|
import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
5482
5508
|
var Input = React2.forwardRef((props, ref) => {
|
|
5483
5509
|
const { className, disabled, error, Icon, element, ...inputProps } = props;
|
|
5484
|
-
const internalRef =
|
|
5510
|
+
const internalRef = useRef3(null);
|
|
5485
5511
|
useImperativeHandle(ref, () => internalRef.current);
|
|
5486
5512
|
return /* @__PURE__ */ jsxs10("div", { className: cn("w-full flex flex-col gap-1", className), children: [
|
|
5487
5513
|
/* @__PURE__ */ jsxs10(
|
|
@@ -5670,11 +5696,11 @@ function PasskeyAddIcon(props) {
|
|
|
5670
5696
|
init_auth();
|
|
5671
5697
|
|
|
5672
5698
|
// src/internal/components/Expandable/hooks/useExpandable.ts
|
|
5673
|
-
import { useCallback as useCallback3, useEffect as useEffect6, useRef as
|
|
5699
|
+
import { useCallback as useCallback3, useEffect as useEffect6, useRef as useRef4 } from "react";
|
|
5674
5700
|
var useExpandable = (props) => {
|
|
5675
5701
|
const { isExpanded = false, children, initHeight = 0, minHeight = 0 } = props;
|
|
5676
|
-
const expandableRef =
|
|
5677
|
-
const contentRef =
|
|
5702
|
+
const expandableRef = useRef4(null);
|
|
5703
|
+
const contentRef = useRef4(null);
|
|
5678
5704
|
useEffect6(() => {
|
|
5679
5705
|
if (!expandableRef.current) return;
|
|
5680
5706
|
expandableRef.current.style.setProperty("--ifo-basic-expandable-h", `${initHeight}px )`);
|
|
@@ -5949,8 +5975,9 @@ import { Fragment as Fragment2 } from "react";
|
|
|
5949
5975
|
// src/internal/components/AuthMenu/SignInStep/Email.tsx
|
|
5950
5976
|
init_lumiaPassport();
|
|
5951
5977
|
init_projectId();
|
|
5952
|
-
import { useMutation as
|
|
5978
|
+
import { useMutation as useMutation4 } from "@tanstack/react-query";
|
|
5953
5979
|
import { ChevronRight, Loader as Loader3, Mail as Mail3 } from "lucide-react";
|
|
5980
|
+
import { useRef as useRef5 } from "react";
|
|
5954
5981
|
|
|
5955
5982
|
// src/internal/components/ui/highlight.tsx
|
|
5956
5983
|
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
@@ -5966,7 +5993,7 @@ function Highlight(props) {
|
|
|
5966
5993
|
"div",
|
|
5967
5994
|
{
|
|
5968
5995
|
className: cn(
|
|
5969
|
-
"w-full text-xs rounded-[var(--l-pass-el-bdrs)] p-[var(--l-pass-pd)]",
|
|
5996
|
+
"w-full text-xs rounded-[var(--l-pass-el-bdrs)] p-[var(--l-pass-pd)] whitespace-pre-wrap break-all",
|
|
5970
5997
|
CARD_STYLES[type],
|
|
5971
5998
|
className
|
|
5972
5999
|
),
|
|
@@ -5978,14 +6005,12 @@ function Highlight(props) {
|
|
|
5978
6005
|
// src/internal/components/AuthMenu/SignInStep/Email.tsx
|
|
5979
6006
|
import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
5980
6007
|
function Email() {
|
|
5981
|
-
const {
|
|
5982
|
-
|
|
5983
|
-
callbacks
|
|
5984
|
-
} = useLumiaPassportConfig();
|
|
6008
|
+
const { config, callbacks } = useLumiaPassportConfig();
|
|
6009
|
+
const buttonRef = useRef5(null);
|
|
5985
6010
|
const isLoading = useLumiaPassportSession((st) => st.isLoading);
|
|
5986
6011
|
const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
|
|
5987
6012
|
const { email, codeSendError, alert: alert2, setEmail, setCodeSendError, setExpiresIn, setStep, setAlert } = useAuthStore();
|
|
5988
|
-
const { mutate: onSendVerificationCode } =
|
|
6013
|
+
const { mutate: onSendVerificationCode } = useMutation4({
|
|
5989
6014
|
mutationFn: async (mail) => {
|
|
5990
6015
|
const isEmailValid = mail.length !== 0 && /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(mail);
|
|
5991
6016
|
if (!isEmailValid) {
|
|
@@ -6025,35 +6050,48 @@ function Email() {
|
|
|
6025
6050
|
}
|
|
6026
6051
|
});
|
|
6027
6052
|
return /* @__PURE__ */ jsxs14(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
6028
|
-
/* @__PURE__ */ jsxs14(
|
|
6029
|
-
|
|
6030
|
-
|
|
6031
|
-
|
|
6032
|
-
|
|
6033
|
-
|
|
6034
|
-
|
|
6035
|
-
autoComplete: "off",
|
|
6036
|
-
placeholder: config.email.placeholder,
|
|
6037
|
-
value: email,
|
|
6038
|
-
className: "flex-1 w-full",
|
|
6039
|
-
onChange: (e) => {
|
|
6040
|
-
if (alert2) setAlert(null);
|
|
6041
|
-
setEmail(e.target.value);
|
|
6053
|
+
/* @__PURE__ */ jsxs14(
|
|
6054
|
+
"div",
|
|
6055
|
+
{
|
|
6056
|
+
className: "w-full flex gap-[10px] items-center",
|
|
6057
|
+
onKeyDown: (e) => {
|
|
6058
|
+
if (e.key === "Enter" && !isLoading && email) {
|
|
6059
|
+
buttonRef.current?.click();
|
|
6042
6060
|
}
|
|
6043
|
-
}
|
|
6044
|
-
|
|
6045
|
-
|
|
6046
|
-
|
|
6047
|
-
|
|
6048
|
-
|
|
6049
|
-
|
|
6050
|
-
|
|
6051
|
-
|
|
6052
|
-
|
|
6053
|
-
|
|
6054
|
-
|
|
6055
|
-
|
|
6056
|
-
|
|
6061
|
+
},
|
|
6062
|
+
children: [
|
|
6063
|
+
/* @__PURE__ */ jsx19(
|
|
6064
|
+
Input,
|
|
6065
|
+
{
|
|
6066
|
+
name: "signin-email",
|
|
6067
|
+
Icon: Mail3,
|
|
6068
|
+
type: "email",
|
|
6069
|
+
autoComplete: "off",
|
|
6070
|
+
placeholder: config.current?.email?.placeholder || "Enter your email",
|
|
6071
|
+
value: email,
|
|
6072
|
+
disabled: isLoading,
|
|
6073
|
+
className: "flex-1 w-full",
|
|
6074
|
+
onChange: (e) => {
|
|
6075
|
+
if (alert2) setAlert(null);
|
|
6076
|
+
setEmail(e.target.value);
|
|
6077
|
+
}
|
|
6078
|
+
}
|
|
6079
|
+
),
|
|
6080
|
+
/* @__PURE__ */ jsx19(
|
|
6081
|
+
Button,
|
|
6082
|
+
{
|
|
6083
|
+
ref: buttonRef,
|
|
6084
|
+
className: "w-12 h-12 flex-none",
|
|
6085
|
+
variant: "default",
|
|
6086
|
+
size: "large",
|
|
6087
|
+
disabled: !email || isLoading,
|
|
6088
|
+
onClick: () => onSendVerificationCode(email),
|
|
6089
|
+
children: isLoading ? /* @__PURE__ */ jsx19(Loader3, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx19(ChevronRight, { className: "w-4 h-4" })
|
|
6090
|
+
}
|
|
6091
|
+
)
|
|
6092
|
+
]
|
|
6093
|
+
}
|
|
6094
|
+
),
|
|
6057
6095
|
!!codeSendError && /* @__PURE__ */ jsxs14(Highlight, { type: "warning", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
6058
6096
|
/* @__PURE__ */ jsx19(Mail3, { className: "w-4 h-4" }),
|
|
6059
6097
|
/* @__PURE__ */ jsx19("span", { children: codeSendError })
|
|
@@ -6607,13 +6645,13 @@ function SignInStep(props) {
|
|
|
6607
6645
|
|
|
6608
6646
|
// src/internal/components/AuthMenu/useAuthMenuHanders.ts
|
|
6609
6647
|
init_auth();
|
|
6610
|
-
import { useCallback as useCallback6, useRef as
|
|
6648
|
+
import { useCallback as useCallback6, useRef as useRef6, useState as useState4 } from "react";
|
|
6611
6649
|
function useAuthMenuHandlers() {
|
|
6612
6650
|
const {
|
|
6613
6651
|
config: { current: config },
|
|
6614
6652
|
callbacks
|
|
6615
6653
|
} = useLumiaPassportConfig();
|
|
6616
|
-
const pendingLoginResponseRef =
|
|
6654
|
+
const pendingLoginResponseRef = useRef6(null);
|
|
6617
6655
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
6618
6656
|
const [telegramCleanup, setTelegramCleanup] = useState4(null);
|
|
6619
6657
|
const { usePaymaster, setError, setStatus, setSession, setAddress, setRecoveryUserId, setHasServerVault } = useLumiaPassportSession();
|
|
@@ -6725,7 +6763,9 @@ function useAuthMenuHandlers() {
|
|
|
6725
6763
|
setError(null);
|
|
6726
6764
|
setRecoveryUserId(userId);
|
|
6727
6765
|
setStatus("recovery_needed");
|
|
6728
|
-
|
|
6766
|
+
setTimeout(() => {
|
|
6767
|
+
setPage("keyshare-restore" /* KEYSHARE_RESTORE */);
|
|
6768
|
+
}, 500);
|
|
6729
6769
|
} else {
|
|
6730
6770
|
pendingLoginResponseRef.current = null;
|
|
6731
6771
|
await jwtTokenManager2.clearTokens();
|
|
@@ -6822,7 +6862,7 @@ function useListenIframeAuthEvents() {
|
|
|
6822
6862
|
|
|
6823
6863
|
// src/internal/components/AuthMenu/VerifyStep/VerifyStep.tsx
|
|
6824
6864
|
init_lumiaPassport();
|
|
6825
|
-
import { useMutation as
|
|
6865
|
+
import { useMutation as useMutation5 } from "@tanstack/react-query";
|
|
6826
6866
|
import { ArrowLeft as ArrowLeft3, Loader as Loader4 } from "lucide-react";
|
|
6827
6867
|
|
|
6828
6868
|
// src/internal/assets/OtpIcon.tsx
|
|
@@ -6843,7 +6883,7 @@ init_auth();
|
|
|
6843
6883
|
init_projectId();
|
|
6844
6884
|
|
|
6845
6885
|
// src/internal/components/AuthMenu/VerifyStep/VerificationCodeInput.tsx
|
|
6846
|
-
import { useEffect as useEffect8, useRef as
|
|
6886
|
+
import { useEffect as useEffect8, useRef as useRef7, useState as useState5 } from "react";
|
|
6847
6887
|
import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
6848
6888
|
var VerificationCodeInput = (props) => {
|
|
6849
6889
|
const { onVerifyCode, onResendCode, isLoading, expiresIn, error } = props;
|
|
@@ -6854,8 +6894,8 @@ var VerificationCodeInput = (props) => {
|
|
|
6854
6894
|
const t = setInterval(() => setTimeLeft((secs) => secs > 0 ? secs - 1 : 0), 1e3);
|
|
6855
6895
|
return () => clearInterval(t);
|
|
6856
6896
|
}, []);
|
|
6857
|
-
const lastSubmittedRef =
|
|
6858
|
-
const inputsRef =
|
|
6897
|
+
const lastSubmittedRef = useRef7(null);
|
|
6898
|
+
const inputsRef = useRef7([]);
|
|
6859
6899
|
const [digits, setDigits] = useState5(["", "", "", "", "", ""]);
|
|
6860
6900
|
useEffect8(() => {
|
|
6861
6901
|
const code = digits.join("");
|
|
@@ -6991,7 +7031,7 @@ function VerifyStep(props) {
|
|
|
6991
7031
|
setEmail,
|
|
6992
7032
|
setExpiresIn
|
|
6993
7033
|
} = useAuthStore();
|
|
6994
|
-
const { mutate: onVerifyCode, isPending: isCodeVerifying } =
|
|
7034
|
+
const { mutate: onVerifyCode, isPending: isCodeVerifying } = useMutation5({
|
|
6995
7035
|
mutationFn: async (code) => {
|
|
6996
7036
|
setIsLoading(true);
|
|
6997
7037
|
setVerificationError("");
|
|
@@ -7064,7 +7104,7 @@ function VerifyStep(props) {
|
|
|
7064
7104
|
setIsLoading(false);
|
|
7065
7105
|
}
|
|
7066
7106
|
});
|
|
7067
|
-
const { mutate: onResendCode, isPending: isCodeResending } =
|
|
7107
|
+
const { mutate: onResendCode, isPending: isCodeResending } = useMutation5({
|
|
7068
7108
|
mutationFn: async () => {
|
|
7069
7109
|
setVerificationError("");
|
|
7070
7110
|
setIsLoading(true);
|
|
@@ -7318,9 +7358,9 @@ function RampnowIcon() {
|
|
|
7318
7358
|
}
|
|
7319
7359
|
|
|
7320
7360
|
// src/internal/components/BuyMenu/binance/Binance.tsx
|
|
7321
|
-
import { useMutation as
|
|
7361
|
+
import { useMutation as useMutation6, useQuery as useQuery3, useQueryClient } from "@tanstack/react-query";
|
|
7322
7362
|
import { DollarSign, LoaderIcon } from "lucide-react";
|
|
7323
|
-
import { useEffect as useEffect11, useRef as
|
|
7363
|
+
import { useEffect as useEffect11, useRef as useRef8 } from "react";
|
|
7324
7364
|
|
|
7325
7365
|
// src/internal/components/BuyMenu/components/PaymentSelector.tsx
|
|
7326
7366
|
import { jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
@@ -7363,32 +7403,57 @@ var QUERY_KEYS2 = {
|
|
|
7363
7403
|
// src/internal/components/BuyMenu/binance/api.ts
|
|
7364
7404
|
init_iframe_manager();
|
|
7365
7405
|
async function getLumiaNetworkQuery() {
|
|
7406
|
+
const accessToken = getAccessToken();
|
|
7407
|
+
if (!accessToken) {
|
|
7408
|
+
throw new Error("Access token is not available");
|
|
7409
|
+
}
|
|
7366
7410
|
const iframeManager = getIframeManager();
|
|
7367
7411
|
if (!iframeManager) {
|
|
7368
7412
|
throw new Error("Iframe manager is not initialized");
|
|
7369
7413
|
}
|
|
7370
|
-
return await iframeManager.sendMessage("BINANCE_GET_LUMIA_NETWORK_QUERY", {});
|
|
7414
|
+
return await iframeManager.sendMessage("BINANCE_GET_LUMIA_NETWORK_QUERY", { accessToken });
|
|
7371
7415
|
}
|
|
7372
7416
|
async function getPaymentMethodsQuery(payload) {
|
|
7417
|
+
const accessToken = getAccessToken();
|
|
7418
|
+
if (!accessToken) {
|
|
7419
|
+
throw new Error("Access token is not available");
|
|
7420
|
+
}
|
|
7373
7421
|
const iframeManager = getIframeManager();
|
|
7374
7422
|
if (!iframeManager) {
|
|
7375
7423
|
throw new Error("Iframe manager is not initialized");
|
|
7376
7424
|
}
|
|
7377
|
-
return await iframeManager.sendMessage("BINANCE_GET_PAYMENT_METHODS_QUERY",
|
|
7425
|
+
return await iframeManager.sendMessage("BINANCE_GET_PAYMENT_METHODS_QUERY", {
|
|
7426
|
+
...payload,
|
|
7427
|
+
accessToken
|
|
7428
|
+
});
|
|
7378
7429
|
}
|
|
7379
7430
|
async function getQuoteQuery(payload) {
|
|
7431
|
+
const accessToken = getAccessToken();
|
|
7432
|
+
if (!accessToken) {
|
|
7433
|
+
throw new Error("Access token is not available");
|
|
7434
|
+
}
|
|
7380
7435
|
const iframeManager = getIframeManager();
|
|
7381
7436
|
if (!iframeManager) {
|
|
7382
7437
|
throw new Error("Iframe manager is not initialized");
|
|
7383
7438
|
}
|
|
7384
|
-
return await iframeManager.sendMessage("BINANCE_GET_QUOTE_QUERY",
|
|
7439
|
+
return await iframeManager.sendMessage("BINANCE_GET_QUOTE_QUERY", {
|
|
7440
|
+
...payload,
|
|
7441
|
+
accessToken
|
|
7442
|
+
});
|
|
7385
7443
|
}
|
|
7386
7444
|
async function createPreorderMutation(payload) {
|
|
7445
|
+
const accessToken = getAccessToken();
|
|
7446
|
+
if (!accessToken) {
|
|
7447
|
+
throw new Error("Access token is not available");
|
|
7448
|
+
}
|
|
7387
7449
|
const iframeManager = getIframeManager();
|
|
7388
7450
|
if (!iframeManager) {
|
|
7389
7451
|
throw new Error("Iframe manager is not initialized");
|
|
7390
7452
|
}
|
|
7391
|
-
return await iframeManager.sendMessage("BINANCE_CREATE_PREORDER_MUTATION",
|
|
7453
|
+
return await iframeManager.sendMessage("BINANCE_CREATE_PREORDER_MUTATION", {
|
|
7454
|
+
...payload,
|
|
7455
|
+
accessToken
|
|
7456
|
+
});
|
|
7392
7457
|
}
|
|
7393
7458
|
|
|
7394
7459
|
// src/internal/components/BuyMenu/binance/useQueriesErrorHandler.ts
|
|
@@ -7460,7 +7525,7 @@ function Binance(props) {
|
|
|
7460
7525
|
queryKey: [QUERY_KEYS2.binancePaymentModes, walletAddress, isLumiaAvailable, srcQueryAmount],
|
|
7461
7526
|
queryFn: async () => getPaymentMethodsQuery({ totalAmount: String(srcQueryAmount || 1) })
|
|
7462
7527
|
});
|
|
7463
|
-
const lastLoadedPaymentModes =
|
|
7528
|
+
const lastLoadedPaymentModes = useRef8([]);
|
|
7464
7529
|
useEffect11(() => {
|
|
7465
7530
|
if (!paymentModes?.length) return;
|
|
7466
7531
|
setPaymentMode(getPayMethodID(paymentModes[0]));
|
|
@@ -7489,7 +7554,7 @@ function Binance(props) {
|
|
|
7489
7554
|
[lumiaNetworkError, paymentMethodsError, quoteError],
|
|
7490
7555
|
setSrcInputAmount
|
|
7491
7556
|
);
|
|
7492
|
-
const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } =
|
|
7557
|
+
const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = useMutation6({
|
|
7493
7558
|
mutationFn: async () => {
|
|
7494
7559
|
setRedirecting(true);
|
|
7495
7560
|
const returnUrl = window.location.href.split("?")[0];
|
|
@@ -7562,7 +7627,7 @@ function Binance(props) {
|
|
|
7562
7627
|
{
|
|
7563
7628
|
size: "large",
|
|
7564
7629
|
disabled: isContinueDisabled,
|
|
7565
|
-
className: cn("w-full h-12", { "cursor-pointer": !isContinueDisabled }),
|
|
7630
|
+
className: cn("w-full h-12 flex-none", { "cursor-pointer": !isContinueDisabled }),
|
|
7566
7631
|
variant: "default",
|
|
7567
7632
|
onClick: () => checkoutFundWalletOrder(),
|
|
7568
7633
|
children: [
|
|
@@ -7575,25 +7640,36 @@ function Binance(props) {
|
|
|
7575
7640
|
}
|
|
7576
7641
|
|
|
7577
7642
|
// src/internal/components/BuyMenu/rampnow/Rampnow.tsx
|
|
7578
|
-
import { useMutation as
|
|
7643
|
+
import { useMutation as useMutation7, useQuery as useQuery4, useQueryClient as useQueryClient2 } from "@tanstack/react-query";
|
|
7579
7644
|
import { DollarSign as DollarSign2, LoaderIcon as LoaderIcon2 } from "lucide-react";
|
|
7580
7645
|
import { useEffect as useEffect12 } from "react";
|
|
7581
7646
|
|
|
7582
7647
|
// src/internal/components/BuyMenu/rampnow/api.ts
|
|
7583
7648
|
init_iframe_manager();
|
|
7584
7649
|
async function getRampnowConfigQuery() {
|
|
7650
|
+
const accessToken = getAccessToken();
|
|
7651
|
+
if (!accessToken) {
|
|
7652
|
+
throw new Error("Access token is not available");
|
|
7653
|
+
}
|
|
7585
7654
|
const iframeManager = getIframeManager();
|
|
7586
7655
|
if (!iframeManager) {
|
|
7587
7656
|
throw new Error("Iframe manager is not initialized");
|
|
7588
7657
|
}
|
|
7589
|
-
return await iframeManager.sendMessage("RAMPNOW_GET_CONFIG", {});
|
|
7658
|
+
return await iframeManager.sendMessage("RAMPNOW_GET_CONFIG", { accessToken });
|
|
7590
7659
|
}
|
|
7591
7660
|
async function getRampOrderQuoteQuery(payload) {
|
|
7661
|
+
const accessToken = getAccessToken();
|
|
7662
|
+
if (!accessToken) {
|
|
7663
|
+
throw new Error("Access token is not available");
|
|
7664
|
+
}
|
|
7592
7665
|
const iframeManager = getIframeManager();
|
|
7593
7666
|
if (!iframeManager) {
|
|
7594
7667
|
throw new Error("Iframe manager is not initialized");
|
|
7595
7668
|
}
|
|
7596
|
-
return await iframeManager.sendMessage("RAMPNOW_GET_ORDER_QUOTE",
|
|
7669
|
+
return await iframeManager.sendMessage("RAMPNOW_GET_ORDER_QUOTE", {
|
|
7670
|
+
...payload,
|
|
7671
|
+
accessToken
|
|
7672
|
+
});
|
|
7597
7673
|
}
|
|
7598
7674
|
|
|
7599
7675
|
// src/internal/components/BuyMenu/rampnow/constants.ts
|
|
@@ -7659,7 +7735,7 @@ function Rampnow(props) {
|
|
|
7659
7735
|
paymentMode
|
|
7660
7736
|
})
|
|
7661
7737
|
});
|
|
7662
|
-
const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } =
|
|
7738
|
+
const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = useMutation7({
|
|
7663
7739
|
mutationFn: async () => {
|
|
7664
7740
|
if (!configData?.apiKey?.length || !configData?.orderUrl?.length) {
|
|
7665
7741
|
throw new Error("RampNow order service is not available");
|
|
@@ -7734,7 +7810,7 @@ function Rampnow(props) {
|
|
|
7734
7810
|
{
|
|
7735
7811
|
size: "large",
|
|
7736
7812
|
disabled: isContinueDisabled,
|
|
7737
|
-
className: cn("w-full h-12", { "cursor-pointer": !isContinueDisabled }),
|
|
7813
|
+
className: cn("w-full h-12 flex-none", { "cursor-pointer": !isContinueDisabled }),
|
|
7738
7814
|
variant: "default",
|
|
7739
7815
|
onClick: () => checkoutFundWalletOrder(),
|
|
7740
7816
|
children: [
|
|
@@ -7770,7 +7846,7 @@ var RAMP_PROVIDERS = {
|
|
|
7770
7846
|
var REDIRECT_TIMEOUT_MS = 1500;
|
|
7771
7847
|
|
|
7772
7848
|
// src/internal/components/BuyMenu/useSelectables.ts
|
|
7773
|
-
import { useCallback as useCallback8, useEffect as useEffect13, useRef as
|
|
7849
|
+
import { useCallback as useCallback8, useEffect as useEffect13, useRef as useRef9, useState as useState6 } from "react";
|
|
7774
7850
|
|
|
7775
7851
|
// src/internal/utils/debounce.ts
|
|
7776
7852
|
function debounce2(func, waitFor) {
|
|
@@ -7787,7 +7863,7 @@ var useSelectables = () => {
|
|
|
7787
7863
|
const [redirecting, setRedirecting] = useState6(false);
|
|
7788
7864
|
const [rampProvider, setrRampProvider] = useState6("binance");
|
|
7789
7865
|
const [minAmount, setMinAmount] = useState6(0);
|
|
7790
|
-
const inputRef =
|
|
7866
|
+
const inputRef = useRef9(null);
|
|
7791
7867
|
const [srcQueryAmount, setSrcQueryAmount] = useState6(0);
|
|
7792
7868
|
const [srcInputAmount, setSrcInputAmount] = useState6(0);
|
|
7793
7869
|
const [paymentMode, setPaymentMode] = useState6(null);
|
|
@@ -7820,6 +7896,7 @@ import { jsx as jsx33, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
|
7820
7896
|
function BuyMenu() {
|
|
7821
7897
|
const walletAddress = useLumiaPassportSession((st) => st.address);
|
|
7822
7898
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
7899
|
+
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
7823
7900
|
const control = useSelectables();
|
|
7824
7901
|
const { rampProvider, setrRampProvider } = control;
|
|
7825
7902
|
const ProviderComponent = RAMP_PROVIDERS[rampProvider];
|
|
@@ -7828,25 +7905,35 @@ function BuyMenu() {
|
|
|
7828
7905
|
simplex: "bg-[#081f2c]",
|
|
7829
7906
|
binance: "bg-[#f3ba2f]"
|
|
7830
7907
|
};
|
|
7831
|
-
return /* @__PURE__ */ jsxs25(
|
|
7832
|
-
|
|
7833
|
-
|
|
7834
|
-
|
|
7835
|
-
|
|
7836
|
-
|
|
7837
|
-
Button,
|
|
7838
|
-
{
|
|
7839
|
-
type: "button",
|
|
7840
|
-
variant: "ghost",
|
|
7841
|
-
size: "large",
|
|
7842
|
-
onClick: () => setrRampProvider(id),
|
|
7843
|
-
className: cn("w-full flex-1", { [activeServiceButtonsStyles[id]]: rampProvider === id }),
|
|
7844
|
-
children: /* @__PURE__ */ jsx33(Icon, {})
|
|
7908
|
+
return /* @__PURE__ */ jsxs25(
|
|
7909
|
+
"div",
|
|
7910
|
+
{
|
|
7911
|
+
style: {
|
|
7912
|
+
"--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
|
|
7913
|
+
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
7845
7914
|
},
|
|
7846
|
-
|
|
7847
|
-
|
|
7848
|
-
|
|
7849
|
-
|
|
7915
|
+
className: "list-scrollbar-y w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]",
|
|
7916
|
+
children: [
|
|
7917
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
7918
|
+
/* @__PURE__ */ jsx33(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx33(ArrowLeft4, { className: "h-4 w-4" }) }),
|
|
7919
|
+
/* @__PURE__ */ jsx33("span", { className: "text-xl font-semibold", children: "Buy LUMIA" })
|
|
7920
|
+
] }),
|
|
7921
|
+
/* @__PURE__ */ jsx33("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: AVAILABLE_RAMP_PROVIDERS.map(({ id, icon: Icon }) => /* @__PURE__ */ jsx33(
|
|
7922
|
+
Button,
|
|
7923
|
+
{
|
|
7924
|
+
type: "button",
|
|
7925
|
+
variant: "ghost",
|
|
7926
|
+
size: "large",
|
|
7927
|
+
onClick: () => setrRampProvider(id),
|
|
7928
|
+
className: cn("w-full flex-1", { [activeServiceButtonsStyles[id]]: rampProvider === id }),
|
|
7929
|
+
children: /* @__PURE__ */ jsx33(Icon, {})
|
|
7930
|
+
},
|
|
7931
|
+
id
|
|
7932
|
+
)) }),
|
|
7933
|
+
/* @__PURE__ */ jsx33(ProviderComponent, { control, walletAddress })
|
|
7934
|
+
]
|
|
7935
|
+
}
|
|
7936
|
+
);
|
|
7850
7937
|
}
|
|
7851
7938
|
|
|
7852
7939
|
// src/internal/components/KeyshareBackupMenu/KeyshareBackupMenu.tsx
|
|
@@ -8187,7 +8274,7 @@ function KeyshareBackupMenu() {
|
|
|
8187
8274
|
}
|
|
8188
8275
|
|
|
8189
8276
|
// src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
|
|
8190
|
-
import { useMutation as
|
|
8277
|
+
import { useMutation as useMutation8 } from "@tanstack/react-query";
|
|
8191
8278
|
import { AlertCircle as AlertCircle4, CheckCircle2 as CheckCircle22, Loader as Loader9, LogOut as LogOut2 } from "lucide-react";
|
|
8192
8279
|
import React8, { useCallback as useCallback9, useEffect as useEffect15 } from "react";
|
|
8193
8280
|
init_vaultClient();
|
|
@@ -8501,7 +8588,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8501
8588
|
};
|
|
8502
8589
|
checkBackupAvailability();
|
|
8503
8590
|
}, [recoveryUserId]);
|
|
8504
|
-
const { mutate: restoreFromServer2, isPending: isRestoringFromServer } =
|
|
8591
|
+
const { mutate: restoreFromServer2, isPending: isRestoringFromServer } = useMutation8({
|
|
8505
8592
|
mutationFn: async () => {
|
|
8506
8593
|
setError(null);
|
|
8507
8594
|
setSuccess(null);
|
|
@@ -8536,7 +8623,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8536
8623
|
setError(errorMsg);
|
|
8537
8624
|
}
|
|
8538
8625
|
});
|
|
8539
|
-
const { mutate: restoreFromFile, isPending: isRestoringFromFile } =
|
|
8626
|
+
const { mutate: restoreFromFile, isPending: isRestoringFromFile } = useMutation8({
|
|
8540
8627
|
mutationFn: async () => {
|
|
8541
8628
|
if (!restoreFile) {
|
|
8542
8629
|
throw new Error("Please select a backup file");
|
|
@@ -8570,7 +8657,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8570
8657
|
setError(errorMsg);
|
|
8571
8658
|
}
|
|
8572
8659
|
});
|
|
8573
|
-
const { mutate: disconnect, isPending: isDisconnecting } =
|
|
8660
|
+
const { mutate: disconnect, isPending: isDisconnecting } = useMutation8({
|
|
8574
8661
|
mutationFn: async () => {
|
|
8575
8662
|
setError(null);
|
|
8576
8663
|
setStatus("disconnecting");
|
|
@@ -8662,7 +8749,7 @@ import { ArrowLeft as ArrowLeft6 } from "lucide-react";
|
|
|
8662
8749
|
import { LoaderIcon as LoaderIcon3 } from "lucide-react";
|
|
8663
8750
|
|
|
8664
8751
|
// src/internal/components/KYC/useSumsubIframe.ts
|
|
8665
|
-
import { useEffect as useEffect16, useRef as
|
|
8752
|
+
import { useEffect as useEffect16, useRef as useRef10, useState as useState8 } from "react";
|
|
8666
8753
|
|
|
8667
8754
|
// src/internal/components/KYC/api/sumsub.ts
|
|
8668
8755
|
init_httpClient();
|
|
@@ -8785,7 +8872,7 @@ function useSumsubIframe({ iframeUrl }) {
|
|
|
8785
8872
|
config: { current: config }
|
|
8786
8873
|
} = useLumiaPassportConfig();
|
|
8787
8874
|
const { colorMode } = useLumiaPassportColorMode();
|
|
8788
|
-
const iframeRef =
|
|
8875
|
+
const iframeRef = useRef10(null);
|
|
8789
8876
|
const [isLoading, setIsLoading] = useState8(true);
|
|
8790
8877
|
const [error, setError] = useState8(null);
|
|
8791
8878
|
const [height, setHeight] = useState8(0);
|
|
@@ -8901,6 +8988,21 @@ function KycMenu() {
|
|
|
8901
8988
|
import { ChevronLeft, ChevronRight as ChevronRight2, DollarSign as DollarSign3, Wallet2 as Wallet23 } from "lucide-react";
|
|
8902
8989
|
import { useEffect as useEffect17 } from "react";
|
|
8903
8990
|
|
|
8991
|
+
// src/internal/components/ManageWalletMenu/hooks/useProvidersList.ts
|
|
8992
|
+
init_common();
|
|
8993
|
+
import { useQuery as useQuery5 } from "@tanstack/react-query";
|
|
8994
|
+
var PROVIDERS_QUERY_KEY = "lumia-passport-providers-query";
|
|
8995
|
+
function useProvidersList() {
|
|
8996
|
+
const address = useLumiaPassportSession((st) => st.address);
|
|
8997
|
+
const page = useLayoutDataStore((st) => st.page);
|
|
8998
|
+
return useQuery5({
|
|
8999
|
+
retry: false,
|
|
9000
|
+
enabled: !!address && page === "manage-wallet" /* MANAGE_WALLET */,
|
|
9001
|
+
queryKey: [PROVIDERS_QUERY_KEY, address],
|
|
9002
|
+
queryFn: async () => getLinkedProviders()
|
|
9003
|
+
});
|
|
9004
|
+
}
|
|
9005
|
+
|
|
8904
9006
|
// src/internal/components/MainMenu/BackupWarning.tsx
|
|
8905
9007
|
import { AnimatePresence as AnimatePresence2, motion as motion2 } from "framer-motion";
|
|
8906
9008
|
import { DatabaseBackup } from "lucide-react";
|
|
@@ -8955,18 +9057,19 @@ function MainMenu() {
|
|
|
8955
9057
|
const address = useLumiaPassportSession((st) => st.address);
|
|
8956
9058
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
8957
9059
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
9060
|
+
useProvidersList();
|
|
8958
9061
|
useEffect17(() => setMainPageHeight(DEFAULT_MAIN_MENU_HEIGHT), [setMainPageHeight]);
|
|
8959
9062
|
return /* @__PURE__ */ jsxs33("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
8960
|
-
/* @__PURE__ */ jsx42("div", { className: "grid grid-cols-4 gap-[var(--l-pass-gap)]", children: MAIN_MENU_BUTTONS.map(({ id, label, icon: Icon }) => /* @__PURE__ */ jsxs33(
|
|
9063
|
+
/* @__PURE__ */ jsx42("div", { className: "w-full grid grid-cols-4 gap-0 md:gap-[var(--l-pass-gap)] py-[10px] md:py-1", children: MAIN_MENU_BUTTONS.map(({ id, label, icon: Icon }) => /* @__PURE__ */ jsxs33(
|
|
8961
9064
|
Button,
|
|
8962
9065
|
{
|
|
8963
9066
|
size: "large",
|
|
8964
9067
|
variant: "ghost",
|
|
8965
9068
|
disabled: !address,
|
|
8966
|
-
className: "flex-col h-fit
|
|
9069
|
+
className: "flex-col w-full h-fit p-0",
|
|
8967
9070
|
onClick: () => setPage(id),
|
|
8968
9071
|
children: [
|
|
8969
|
-
/* @__PURE__ */ jsx42(Icon, { className: "w-8 h-8" }),
|
|
9072
|
+
/* @__PURE__ */ jsx42(Icon, { className: "w-5 h-5 md:w-8 md:h-8" }),
|
|
8970
9073
|
/* @__PURE__ */ jsx42("span", { className: "text-xs font-semibold", children: label })
|
|
8971
9074
|
]
|
|
8972
9075
|
},
|
|
@@ -8982,7 +9085,7 @@ import { AlertTriangle as AlertTriangle3, ArrowLeft as ArrowLeft7, Loader as Loa
|
|
|
8982
9085
|
import { useMemo as useMemo2 } from "react";
|
|
8983
9086
|
|
|
8984
9087
|
// src/modules/linkedProfiles.ts
|
|
8985
|
-
import { useQuery as
|
|
9088
|
+
import { useQuery as useQuery6, useQueryClient as useQueryClient3 } from "@tanstack/react-query";
|
|
8986
9089
|
import { useCallback as useCallback10 } from "react";
|
|
8987
9090
|
init_auth();
|
|
8988
9091
|
init_common();
|
|
@@ -9009,7 +9112,7 @@ function useLumiaPassportLinkedProfiles() {
|
|
|
9009
9112
|
data,
|
|
9010
9113
|
isFetching: isLoading,
|
|
9011
9114
|
error
|
|
9012
|
-
} =
|
|
9115
|
+
} = useQuery6({
|
|
9013
9116
|
retry: false,
|
|
9014
9117
|
enabled: !!address,
|
|
9015
9118
|
queryKey: [LINKED_PROFILES_QUERY_KEY, address],
|
|
@@ -9029,7 +9132,7 @@ init_passkey2();
|
|
|
9029
9132
|
// src/internal/components/ManageWalletMenu/EmailForm.tsx
|
|
9030
9133
|
init_lumiaPassport();
|
|
9031
9134
|
init_projectId();
|
|
9032
|
-
import { useMutation as
|
|
9135
|
+
import { useMutation as useMutation9 } from "@tanstack/react-query";
|
|
9033
9136
|
import { ChevronRight as ChevronRight3, Loader as Loader10, Mail as Mail4 } from "lucide-react";
|
|
9034
9137
|
|
|
9035
9138
|
// src/internal/components/ManageWalletMenu/hooks/useStore.ts
|
|
@@ -9071,7 +9174,7 @@ function EmailForm() {
|
|
|
9071
9174
|
const isLoading = useLumiaPassportSession((st) => st.isLoading);
|
|
9072
9175
|
const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
|
|
9073
9176
|
const { email, setEmail, setEmailCodeSentError, setEmailCodeExpiresIn, setEmailStep } = useManageWalletStore();
|
|
9074
|
-
const { mutate: onSendVerificationCode } =
|
|
9177
|
+
const { mutate: onSendVerificationCode } = useMutation9({
|
|
9075
9178
|
mutationFn: async () => {
|
|
9076
9179
|
if (!email) return;
|
|
9077
9180
|
setIsLoading(true);
|
|
@@ -9147,27 +9250,12 @@ function EmailForm() {
|
|
|
9147
9250
|
] });
|
|
9148
9251
|
}
|
|
9149
9252
|
|
|
9150
|
-
// src/internal/components/ManageWalletMenu/hooks/useProvidersList.ts
|
|
9151
|
-
init_common();
|
|
9152
|
-
import { useQuery as useQuery6 } from "@tanstack/react-query";
|
|
9153
|
-
var PROVIDERS_QUERY_KEY = "lumia-passport-providers-query";
|
|
9154
|
-
function useProvidersList() {
|
|
9155
|
-
const address = useLumiaPassportSession((st) => st.address);
|
|
9156
|
-
const page = useLayoutDataStore((st) => st.page);
|
|
9157
|
-
return useQuery6({
|
|
9158
|
-
retry: false,
|
|
9159
|
-
enabled: !!address && page === "manage-wallet" /* MANAGE_WALLET */,
|
|
9160
|
-
queryKey: [PROVIDERS_QUERY_KEY, address],
|
|
9161
|
-
queryFn: async () => getLinkedProviders()
|
|
9162
|
-
});
|
|
9163
|
-
}
|
|
9164
|
-
|
|
9165
9253
|
// src/internal/components/ManageWalletMenu/hooks/useSendVerificationCode.ts
|
|
9166
9254
|
init_email();
|
|
9167
|
-
import { useMutation as
|
|
9255
|
+
import { useMutation as useMutation10 } from "@tanstack/react-query";
|
|
9168
9256
|
function useSendVerificationCode() {
|
|
9169
9257
|
const { setVerificationError, setLinkIsLoading, setEmailCodeSentError, setEmailCodeExpiresIn } = useManageWalletStore();
|
|
9170
|
-
return
|
|
9258
|
+
return useMutation10({
|
|
9171
9259
|
mutationFn: async (email) => {
|
|
9172
9260
|
if (!email) {
|
|
9173
9261
|
throw new Error("Email is required");
|
|
@@ -9190,7 +9278,7 @@ function useSendVerificationCode() {
|
|
|
9190
9278
|
}
|
|
9191
9279
|
|
|
9192
9280
|
// src/internal/components/ManageWalletMenu/hooks/useVerifyCode.ts
|
|
9193
|
-
import { useMutation as
|
|
9281
|
+
import { useMutation as useMutation11, useQueryClient as useQueryClient4 } from "@tanstack/react-query";
|
|
9194
9282
|
init_email();
|
|
9195
9283
|
function useVerifyCode() {
|
|
9196
9284
|
const { callbacks } = useLumiaPassportConfig();
|
|
@@ -9208,7 +9296,7 @@ function useVerifyCode() {
|
|
|
9208
9296
|
setVerificationError,
|
|
9209
9297
|
setEmailCodeSentError
|
|
9210
9298
|
} = useManageWalletStore();
|
|
9211
|
-
return
|
|
9299
|
+
return useMutation11({
|
|
9212
9300
|
mutationFn: async (codeToVerify) => {
|
|
9213
9301
|
const code = codeToVerify ?? emailCode;
|
|
9214
9302
|
if (!code) {
|
|
@@ -9660,6 +9748,7 @@ function ManageWalletMenu() {
|
|
|
9660
9748
|
config: { current: config }
|
|
9661
9749
|
} = useLumiaPassportConfig();
|
|
9662
9750
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9751
|
+
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
9663
9752
|
const {
|
|
9664
9753
|
providerType,
|
|
9665
9754
|
isWalletLinking,
|
|
@@ -9739,48 +9828,58 @@ function ManageWalletMenu() {
|
|
|
9739
9828
|
const showCurrentProviders = !isProvidersLoading && !providersError && (providerType !== "email" && providerType !== "passkey" || providerType === null);
|
|
9740
9829
|
const showExtraProvidersUi = !isProvidersLoading && !providersError && (providerType === "email" || providerType === "passkey");
|
|
9741
9830
|
const combinedError = emailCodeSentError || linkError || verificationError || null;
|
|
9742
|
-
return /* @__PURE__ */ jsxs38(
|
|
9743
|
-
|
|
9744
|
-
|
|
9745
|
-
|
|
9746
|
-
{
|
|
9747
|
-
|
|
9748
|
-
|
|
9749
|
-
|
|
9750
|
-
|
|
9751
|
-
|
|
9752
|
-
|
|
9753
|
-
|
|
9754
|
-
|
|
9755
|
-
|
|
9756
|
-
|
|
9757
|
-
|
|
9831
|
+
return /* @__PURE__ */ jsxs38(
|
|
9832
|
+
"div",
|
|
9833
|
+
{
|
|
9834
|
+
style: {
|
|
9835
|
+
"--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
|
|
9836
|
+
"--l-pass-list-scrollbar-pd-r": "calc(var(--l-pass-pd) - 4px)"
|
|
9837
|
+
},
|
|
9838
|
+
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
9839
|
+
children: [
|
|
9840
|
+
/* @__PURE__ */ jsxs38("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
9841
|
+
/* @__PURE__ */ jsx47(
|
|
9842
|
+
Button,
|
|
9843
|
+
{
|
|
9844
|
+
variant: "ghost",
|
|
9845
|
+
size: "icon",
|
|
9846
|
+
title: "Back",
|
|
9847
|
+
onClick: () => {
|
|
9848
|
+
if (providerType === "email") {
|
|
9849
|
+
setEmail("");
|
|
9850
|
+
setEmailCode("");
|
|
9851
|
+
setEmailStep("input");
|
|
9852
|
+
setEmailCodeSentError("");
|
|
9853
|
+
setEmailCodeExpiresIn(0);
|
|
9854
|
+
setVerificationError("");
|
|
9855
|
+
}
|
|
9856
|
+
setLinkError("");
|
|
9857
|
+
if (!providerType) setPage("settings" /* SETTINGS */);
|
|
9858
|
+
setProviderType(null);
|
|
9859
|
+
},
|
|
9860
|
+
children: /* @__PURE__ */ jsx47(ArrowLeft7, { className: "h-4 w-4" })
|
|
9758
9861
|
}
|
|
9759
|
-
|
|
9760
|
-
|
|
9761
|
-
|
|
9762
|
-
|
|
9763
|
-
|
|
9764
|
-
|
|
9765
|
-
|
|
9766
|
-
|
|
9767
|
-
|
|
9768
|
-
|
|
9769
|
-
|
|
9770
|
-
|
|
9771
|
-
|
|
9772
|
-
|
|
9773
|
-
|
|
9774
|
-
|
|
9775
|
-
|
|
9776
|
-
showExtraProvidersUi && /* @__PURE__ */ jsx47(AddProvider, {}),
|
|
9777
|
-
combinedError && /* @__PURE__ */ jsx47(Highlight, { type: "error", children: /* @__PURE__ */ jsx47("span", { children: combinedError }) })
|
|
9778
|
-
] })
|
|
9779
|
-
] });
|
|
9862
|
+
),
|
|
9863
|
+
/* @__PURE__ */ jsx47("span", { className: "text-xl font-semibold", children: "Profiles" })
|
|
9864
|
+
] }),
|
|
9865
|
+
/* @__PURE__ */ jsxs38("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
9866
|
+
providersError && /* @__PURE__ */ jsxs38(Highlight, { type: "error", className: "flex items-start gap-[var(--l-pass-gap)] break-words whitespace-pre-wrap", children: [
|
|
9867
|
+
/* @__PURE__ */ jsx47(AlertTriangle3, { className: "w-4 h-4 shrink-0" }),
|
|
9868
|
+
/* @__PURE__ */ jsx47("span", { className: "block", children: providersError.message })
|
|
9869
|
+
] }),
|
|
9870
|
+
isProvidersLoading && /* @__PURE__ */ jsx47("div", { className: "flex items-center justify-center p-4 text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ jsx47(Loader11, { className: "w-5 h-5 animate-spin" }) }),
|
|
9871
|
+
/* @__PURE__ */ jsx47(EmailNotConnectedWarning, {}),
|
|
9872
|
+
showCurrentProviders && renderProviders.map((node) => node),
|
|
9873
|
+
showExtraProvidersUi && /* @__PURE__ */ jsx47(AddProvider, {}),
|
|
9874
|
+
combinedError && /* @__PURE__ */ jsx47(Highlight, { type: "error", children: /* @__PURE__ */ jsx47("span", { children: combinedError }) })
|
|
9875
|
+
] })
|
|
9876
|
+
]
|
|
9877
|
+
}
|
|
9878
|
+
);
|
|
9780
9879
|
}
|
|
9781
9880
|
|
|
9782
9881
|
// src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx
|
|
9783
|
-
import { useMutation as
|
|
9882
|
+
import { useMutation as useMutation12, useQueryClient as useQueryClient8 } from "@tanstack/react-query";
|
|
9784
9883
|
import { Key as Key7, Loader as Loader12 } from "lucide-react";
|
|
9785
9884
|
import { useState as useState10 } from "react";
|
|
9786
9885
|
init_auth();
|
|
@@ -9792,7 +9891,7 @@ function UnlinkProviderMenu() {
|
|
|
9792
9891
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9793
9892
|
const { confirmUnlink, setConfirmUnlink, setLinkError } = useManageWalletStore();
|
|
9794
9893
|
const [confirmInput, setConfirmInput] = useState10("");
|
|
9795
|
-
const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } =
|
|
9894
|
+
const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = useMutation12({
|
|
9796
9895
|
mutationFn: async () => {
|
|
9797
9896
|
if (!confirmUnlink) {
|
|
9798
9897
|
throw new Error("No provider to unlink");
|
|
@@ -9867,7 +9966,7 @@ function UnlinkProviderMenu() {
|
|
|
9867
9966
|
// src/internal/components/PortfolioMenu/PortfolioMenu.tsx
|
|
9868
9967
|
import { useQueryClient as useQueryClient10 } from "@tanstack/react-query";
|
|
9869
9968
|
import { ArrowLeft as ArrowLeft8, Gem, Loader as Loader14, RefreshCw } from "lucide-react";
|
|
9870
|
-
import { useCallback as useCallback12
|
|
9969
|
+
import { useCallback as useCallback12 } from "react";
|
|
9871
9970
|
|
|
9872
9971
|
// src/modules/assets.ts
|
|
9873
9972
|
init_base();
|
|
@@ -10127,70 +10226,47 @@ function PortfolioMenu() {
|
|
|
10127
10226
|
const qc = useQueryClient10();
|
|
10128
10227
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10129
10228
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
10130
|
-
const assetsContainerListRef = useRef9(null);
|
|
10131
|
-
const assetsListRef = useRef9(null);
|
|
10132
10229
|
const address = useLumiaPassportSession((st) => st.address);
|
|
10133
10230
|
const { assets, refreshBalances, isLoading } = useAssets(address);
|
|
10134
10231
|
const refreshAllAssetsBalances = useCallback12(() => {
|
|
10135
10232
|
Promise.all(projectAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
|
|
10136
10233
|
refreshBalances();
|
|
10137
10234
|
}, [qc, projectAssets, refreshBalances]);
|
|
10138
|
-
|
|
10139
|
-
|
|
10140
|
-
|
|
10141
|
-
|
|
10142
|
-
|
|
10143
|
-
|
|
10144
|
-
|
|
10145
|
-
|
|
10146
|
-
|
|
10147
|
-
|
|
10148
|
-
|
|
10149
|
-
|
|
10150
|
-
|
|
10151
|
-
|
|
10152
|
-
|
|
10153
|
-
|
|
10154
|
-
|
|
10155
|
-
|
|
10156
|
-
|
|
10157
|
-
|
|
10158
|
-
|
|
10159
|
-
|
|
10160
|
-
|
|
10161
|
-
|
|
10162
|
-
|
|
10163
|
-
|
|
10164
|
-
|
|
10165
|
-
|
|
10166
|
-
|
|
10167
|
-
|
|
10168
|
-
|
|
10169
|
-
|
|
10170
|
-
|
|
10171
|
-
|
|
10172
|
-
|
|
10173
|
-
] }),
|
|
10174
|
-
!isLoading && assets.length === 0 && /* @__PURE__ */ jsxs41("div", { className: "w-full flex flex-col items-center justify-center py-8 text-[var(--l-pass-muted)]", children: [
|
|
10175
|
-
/* @__PURE__ */ jsx50(Gem, { className: "w-12 h-12 mb-2" }),
|
|
10176
|
-
/* @__PURE__ */ jsx50("p", { children: "No assets found" })
|
|
10177
|
-
] }),
|
|
10178
|
-
!isLoading && assets.length > 0 && /* @__PURE__ */ jsx50(
|
|
10179
|
-
"div",
|
|
10180
|
-
{
|
|
10181
|
-
ref: assetsContainerListRef,
|
|
10182
|
-
style: { borderTop: "1px solid var(--l-pass-list-bd)", borderBottom: "1px solid var(--l-pass-list-bd)" },
|
|
10183
|
-
className: "list-scrollbar-y relative",
|
|
10184
|
-
children: /* @__PURE__ */ jsxs41("div", { ref: assetsListRef, className: "w-full flex flex-col gap-[var(--l-pass-gap)] py-[var(--l-pass-pd)]", children: [
|
|
10185
|
-
projectAssets.map((asset, index) => /* @__PURE__ */ jsx50(
|
|
10186
|
-
PortfolioItem,
|
|
10187
|
-
{
|
|
10188
|
-
isProjectAsset: true,
|
|
10189
|
-
address,
|
|
10190
|
-
asset
|
|
10191
|
-
},
|
|
10192
|
-
`project-${asset.symbol}-${index}`
|
|
10193
|
-
)),
|
|
10235
|
+
return /* @__PURE__ */ jsxs41(
|
|
10236
|
+
"div",
|
|
10237
|
+
{
|
|
10238
|
+
style: {
|
|
10239
|
+
"--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
|
|
10240
|
+
"--l-pass-list-scrollbar-pd-r": "calc(var(--l-pass-pd) - 4px)"
|
|
10241
|
+
},
|
|
10242
|
+
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
10243
|
+
children: [
|
|
10244
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
10245
|
+
/* @__PURE__ */ jsx50(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx50(ArrowLeft8, { className: "h-4 w-4" }) }),
|
|
10246
|
+
/* @__PURE__ */ jsx50("span", { className: "text-xl font-semibold", children: "Your Assets" }),
|
|
10247
|
+
/* @__PURE__ */ jsx50(
|
|
10248
|
+
Button,
|
|
10249
|
+
{
|
|
10250
|
+
title: "Refresh balances",
|
|
10251
|
+
variant: "ghost",
|
|
10252
|
+
size: "icon",
|
|
10253
|
+
onClick: refreshAllAssetsBalances,
|
|
10254
|
+
disabled: isLoading,
|
|
10255
|
+
children: isLoading ? /* @__PURE__ */ jsx50(Loader14, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx50(RefreshCw, { className: "h-4 w-4" })
|
|
10256
|
+
}
|
|
10257
|
+
)
|
|
10258
|
+
] }),
|
|
10259
|
+
/* @__PURE__ */ jsxs41("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
10260
|
+
isLoading && /* @__PURE__ */ jsxs41("div", { className: "w-full flex items-center justify-center gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
|
|
10261
|
+
/* @__PURE__ */ jsx50(Loader14, { className: "h-5 w-5 animate-spin" }),
|
|
10262
|
+
/* @__PURE__ */ jsx50("span", { className: "text-[var(--l-pass-muted)]", children: "Loading assets..." })
|
|
10263
|
+
] }),
|
|
10264
|
+
!isLoading && assets.length === 0 && /* @__PURE__ */ jsxs41("div", { className: "w-full flex flex-col items-center justify-center py-8 text-[var(--l-pass-muted)]", children: [
|
|
10265
|
+
/* @__PURE__ */ jsx50(Gem, { className: "w-12 h-12 mb-2" }),
|
|
10266
|
+
/* @__PURE__ */ jsx50("p", { children: "No assets found" })
|
|
10267
|
+
] }),
|
|
10268
|
+
!isLoading && assets.length > 0 && /* @__PURE__ */ jsxs41("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)] py-[var(--l-pass-pd)]", children: [
|
|
10269
|
+
projectAssets.map((asset, index) => /* @__PURE__ */ jsx50(PortfolioItem, { isProjectAsset: true, address, asset }, `project-${asset.symbol}-${index}`)),
|
|
10194
10270
|
assets.map((asset, index) => /* @__PURE__ */ jsx50(
|
|
10195
10271
|
PortfolioItem,
|
|
10196
10272
|
{
|
|
@@ -10200,15 +10276,16 @@ function PortfolioMenu() {
|
|
|
10200
10276
|
`${asset.type}-${asset.address || "native"}-${index}`
|
|
10201
10277
|
))
|
|
10202
10278
|
] })
|
|
10203
|
-
}
|
|
10204
|
-
|
|
10205
|
-
|
|
10206
|
-
|
|
10279
|
+
] })
|
|
10280
|
+
]
|
|
10281
|
+
}
|
|
10282
|
+
);
|
|
10207
10283
|
}
|
|
10208
10284
|
|
|
10209
10285
|
// src/internal/components/SecurityMenu/SecurityMenu.tsx
|
|
10210
10286
|
init_auth();
|
|
10211
10287
|
init_keyshare();
|
|
10288
|
+
import { useQuery as useQuery8, useQueryClient as useQueryClient11 } from "@tanstack/react-query";
|
|
10212
10289
|
import {
|
|
10213
10290
|
AlertTriangle as AlertTriangle4,
|
|
10214
10291
|
ArrowLeft as ArrowLeft9,
|
|
@@ -10222,17 +10299,28 @@ import {
|
|
|
10222
10299
|
Shield,
|
|
10223
10300
|
Trash2 as Trash22
|
|
10224
10301
|
} from "lucide-react";
|
|
10225
|
-
import {
|
|
10302
|
+
import { useEffect as useEffect20, useState as useState11 } from "react";
|
|
10303
|
+
init_iframe_manager();
|
|
10226
10304
|
init_vaultClient();
|
|
10227
10305
|
import { jsx as jsx51, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
10306
|
+
var KEYSHARE_RECOVERY_STATS_QUERY = "keyshare-recovery-stats-query";
|
|
10307
|
+
function parseOS(ua) {
|
|
10308
|
+
if (!ua) return null;
|
|
10309
|
+
if (ua.includes("Mac OS X")) return "macOS";
|
|
10310
|
+
if (ua.includes("Windows")) return "Windows";
|
|
10311
|
+
if (ua.includes("Android")) return "Android";
|
|
10312
|
+
if (ua.includes("Linux")) return "Linux";
|
|
10313
|
+
if (ua.includes("iPhone") || ua.includes("iPad") || ua.includes("iOS")) return "iOS";
|
|
10314
|
+
return null;
|
|
10315
|
+
}
|
|
10228
10316
|
function SecurityMenu() {
|
|
10229
|
-
const
|
|
10317
|
+
const qc = useQueryClient11();
|
|
10318
|
+
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
10230
10319
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10231
|
-
const open = page === "security";
|
|
10232
10320
|
const userId = jwtTokenManager2.getUserId();
|
|
10233
|
-
|
|
10234
|
-
|
|
10235
|
-
|
|
10321
|
+
useEffect20(() => {
|
|
10322
|
+
if (!userId) setPage("main-menu" /* MAIN_MENU */);
|
|
10323
|
+
}, [userId, setPage]);
|
|
10236
10324
|
const [localInfo, setLocalInfo] = useState11(null);
|
|
10237
10325
|
const [recoveryCreatedAt, setRecoveryCreatedAt] = useState11(null);
|
|
10238
10326
|
const [recoveryBrowser, setRecoveryBrowser] = useState11(null);
|
|
@@ -10243,237 +10331,246 @@ function SecurityMenu() {
|
|
|
10243
10331
|
const [hasServerBackup, setHasServerBackup] = useState11(false);
|
|
10244
10332
|
const [trustedApps, setTrustedApps] = useState11([]);
|
|
10245
10333
|
const [appToRemove, setAppToRemove] = useState11(null);
|
|
10246
|
-
const
|
|
10247
|
-
|
|
10248
|
-
|
|
10249
|
-
|
|
10250
|
-
|
|
10251
|
-
|
|
10252
|
-
|
|
10253
|
-
|
|
10254
|
-
|
|
10255
|
-
|
|
10256
|
-
|
|
10257
|
-
console.log("[SecurityModal] Received trusted apps:", apps);
|
|
10258
|
-
console.log("[SecurityModal] Trusted apps count:", apps?.length);
|
|
10259
|
-
console.log("[SecurityModal] Setting trusted apps state with:", apps);
|
|
10260
|
-
setTrustedApps(apps);
|
|
10261
|
-
} catch (error) {
|
|
10262
|
-
console.error("[SecurityModal] Failed to load trusted apps:", error);
|
|
10263
|
-
setTrustedApps([]);
|
|
10334
|
+
const {
|
|
10335
|
+
data: recoveryData,
|
|
10336
|
+
isFetching: isRecoveryRefreshing
|
|
10337
|
+
// error: recoveryError
|
|
10338
|
+
} = useQuery8({
|
|
10339
|
+
enabled: !!userId,
|
|
10340
|
+
queryKey: [KEYSHARE_RECOVERY_STATS_QUERY, userId],
|
|
10341
|
+
queryFn: async () => {
|
|
10342
|
+
const iframeManager = getIframeManager();
|
|
10343
|
+
if (!iframeManager) {
|
|
10344
|
+
throw new Error("Iframe manager not available");
|
|
10264
10345
|
}
|
|
10265
|
-
const
|
|
10266
|
-
const
|
|
10267
|
-
|
|
10268
|
-
|
|
10269
|
-
setRecoveryCreatedAt(created?.at || null);
|
|
10270
|
-
setRecoveryBrowser(created?.browser || null);
|
|
10271
|
-
setRecoveryUa(created?.ua || null);
|
|
10272
|
-
setRecoveryDeviceId(created?.deviceId || null);
|
|
10273
|
-
setRecoveryDeviceName(created?.deviceName || null);
|
|
10274
|
-
setRecoveryCountry(created?.country || null);
|
|
10275
|
-
} finally {
|
|
10276
|
-
setIsRefreshing(false);
|
|
10346
|
+
const trustedApps2 = await iframeManager.getTrustedApps(userId);
|
|
10347
|
+
const keyshareInfo = await getKeyshareInfo(userId);
|
|
10348
|
+
const shareRecoveryStats = await getShareRecoveryStats();
|
|
10349
|
+
return { trustedApps: trustedApps2, keyshareInfo, shareRecoveryStats };
|
|
10277
10350
|
}
|
|
10278
|
-
}
|
|
10279
|
-
|
|
10280
|
-
if (
|
|
10281
|
-
|
|
10282
|
-
|
|
10283
|
-
|
|
10284
|
-
|
|
10285
|
-
|
|
10286
|
-
|
|
10287
|
-
|
|
10288
|
-
|
|
10289
|
-
|
|
10290
|
-
|
|
10291
|
-
|
|
10292
|
-
|
|
10293
|
-
|
|
10294
|
-
|
|
10295
|
-
|
|
10296
|
-
|
|
10297
|
-
|
|
10298
|
-
|
|
10299
|
-
|
|
10300
|
-
|
|
10301
|
-
|
|
10302
|
-
|
|
10303
|
-
|
|
10304
|
-
|
|
10305
|
-
/* @__PURE__ */ jsxs42(
|
|
10306
|
-
"
|
|
10307
|
-
{
|
|
10308
|
-
className:
|
|
10309
|
-
|
|
10310
|
-
|
|
10311
|
-
|
|
10312
|
-
|
|
10313
|
-
|
|
10314
|
-
|
|
10315
|
-
|
|
10316
|
-
|
|
10317
|
-
|
|
10318
|
-
|
|
10319
|
-
/* @__PURE__ */ jsxs42("div", { className: "space-y-2 text-center", children: [
|
|
10320
|
-
/* @__PURE__ */ jsxs42("div", { className: "flex items-center justify-center gap-2", children: [
|
|
10321
|
-
/* @__PURE__ */ jsx51(Laptop, { className: "h-4 w-4" }),
|
|
10322
|
-
/* @__PURE__ */ jsx51("span", { className: "text-sm font-medium", children: "Local" })
|
|
10323
|
-
] }),
|
|
10324
|
-
/* @__PURE__ */ jsxs42(
|
|
10325
|
-
"span",
|
|
10326
|
-
{
|
|
10327
|
-
className: cn(
|
|
10328
|
-
"inline-flex items-center text-sm px-3 py-2 rounded-full text-white",
|
|
10329
|
-
localInfo?.hasKeyshare ? "bg-[var(--l-pass-success)]" : "bg-[var(--l-pass-warning)]"
|
|
10330
|
-
),
|
|
10331
|
-
children: [
|
|
10332
|
-
localInfo?.hasKeyshare ? /* @__PURE__ */ jsx51(CheckCircle23, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ jsx51(AlertTriangle4, { className: "h-4 w-4 mr-1" }),
|
|
10333
|
-
localInfo?.hasKeyshare ? "Ready" : "Missing"
|
|
10334
|
-
]
|
|
10335
|
-
}
|
|
10336
|
-
)
|
|
10337
|
-
] }),
|
|
10338
|
-
/* @__PURE__ */ jsxs42("div", { className: "space-y-2 text-center", children: [
|
|
10339
|
-
/* @__PURE__ */ jsxs42("div", { className: "flex items-center justify-center gap-2", children: [
|
|
10340
|
-
/* @__PURE__ */ jsx51(Shield, { className: "h-4 w-4" }),
|
|
10341
|
-
/* @__PURE__ */ jsx51("span", { className: "text-sm font-medium", children: "Vault" })
|
|
10342
|
-
] }),
|
|
10343
|
-
/* @__PURE__ */ jsxs42(
|
|
10344
|
-
"span",
|
|
10345
|
-
{
|
|
10346
|
-
className: cn(
|
|
10347
|
-
"inline-flex items-center text-sm px-3 py-2 rounded-full text-white",
|
|
10348
|
-
hasServerBackup ? "bg-[var(--l-pass-success)]" : "bg-[var(--l-pass-warning)]"
|
|
10349
|
-
),
|
|
10350
|
-
children: [
|
|
10351
|
-
hasServerBackup ? /* @__PURE__ */ jsx51(CheckCircle23, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ jsx51(AlertTriangle4, { className: "h-4 w-4 mr-1" }),
|
|
10352
|
-
hasServerBackup ? "Ready" : "None"
|
|
10353
|
-
]
|
|
10354
|
-
}
|
|
10355
|
-
)
|
|
10356
|
-
] })
|
|
10357
|
-
] }),
|
|
10358
|
-
/* @__PURE__ */ jsxs42(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-4", children: [
|
|
10359
|
-
localInfo?.hasKeyshare && /* @__PURE__ */ jsxs42("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
|
|
10360
|
-
localInfo.ownerAddress && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10361
|
-
/* @__PURE__ */ jsx51("span", { children: "Owner: " }),
|
|
10362
|
-
/* @__PURE__ */ jsx51("span", { className: "font-mono break-all", children: localInfo.ownerAddress })
|
|
10363
|
-
] }),
|
|
10364
|
-
typeof localInfo.keyshareSize === "number" && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10365
|
-
/* @__PURE__ */ jsx51("span", { children: "Size: " }),
|
|
10366
|
-
/* @__PURE__ */ jsx51("span", { className: "font-mono", children: `${Math.round((localInfo.keyshareSize || 0) / 1024)}KB` })
|
|
10367
|
-
] }),
|
|
10368
|
-
localInfo.sessionId && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10369
|
-
/* @__PURE__ */ jsx51("span", { children: "Session: " }),
|
|
10370
|
-
/* @__PURE__ */ jsx51("span", { className: "font-mono break-all", children: localInfo.sessionId })
|
|
10371
|
-
] })
|
|
10372
|
-
] }),
|
|
10373
|
-
/* @__PURE__ */ jsxs42("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
|
|
10374
|
-
backup.server.enabled && backup.server.lastBackup && /* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-1", children: [
|
|
10375
|
-
/* @__PURE__ */ jsx51(Server3, { className: "h-2.5 w-2.5" }),
|
|
10376
|
-
/* @__PURE__ */ jsxs42("span", { children: [
|
|
10377
|
-
"Server: ",
|
|
10378
|
-
new Date(backup.server.lastBackup).toLocaleString()
|
|
10379
|
-
] })
|
|
10380
|
-
] }),
|
|
10381
|
-
!backup.server.lastBackup && recoveryCreatedAt && /* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-1", children: [
|
|
10382
|
-
/* @__PURE__ */ jsx51(Server3, { className: "h-2.5 w-2.5" }),
|
|
10383
|
-
/* @__PURE__ */ jsxs42("span", { children: [
|
|
10384
|
-
"Server: ",
|
|
10385
|
-
new Date(recoveryCreatedAt).toLocaleString()
|
|
10351
|
+
});
|
|
10352
|
+
useEffect20(() => {
|
|
10353
|
+
if (!recoveryData) return;
|
|
10354
|
+
const { trustedApps: trustedApps2, keyshareInfo, shareRecoveryStats } = recoveryData;
|
|
10355
|
+
setLocalInfo(keyshareInfo);
|
|
10356
|
+
setTrustedApps(trustedApps2);
|
|
10357
|
+
const hasRecoveryData = shareRecoveryStats && (shareRecoveryStats.created || shareRecoveryStats.devices && shareRecoveryStats.devices.length > 0);
|
|
10358
|
+
const created = shareRecoveryStats?.created;
|
|
10359
|
+
setHasServerBackup(!!hasRecoveryData);
|
|
10360
|
+
setRecoveryCreatedAt(created?.at || null);
|
|
10361
|
+
setRecoveryBrowser(created?.browser || null);
|
|
10362
|
+
setRecoveryUa(created?.ua || null);
|
|
10363
|
+
setRecoveryDeviceId(created?.deviceId || null);
|
|
10364
|
+
setRecoveryDeviceName(created?.deviceName || null);
|
|
10365
|
+
setRecoveryCountry(created?.country || null);
|
|
10366
|
+
}, [recoveryData]);
|
|
10367
|
+
const serverHasKeyshare = jwtTokenManager2.getHasKeyshare() ?? false;
|
|
10368
|
+
const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
|
|
10369
|
+
return /* @__PURE__ */ jsxs42(
|
|
10370
|
+
"div",
|
|
10371
|
+
{
|
|
10372
|
+
style: {
|
|
10373
|
+
"--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
|
|
10374
|
+
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
10375
|
+
},
|
|
10376
|
+
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
10377
|
+
children: [
|
|
10378
|
+
/* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
10379
|
+
/* @__PURE__ */ jsx51(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ jsx51(ArrowLeft9, { className: "h-4 w-4" }) }),
|
|
10380
|
+
/* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-[var(--l-pass-gap)] font-semibold", children: [
|
|
10381
|
+
/* @__PURE__ */ jsx51("span", { className: "text-xl font-semibold", children: "Keyshare Status" }),
|
|
10382
|
+
/* @__PURE__ */ jsx51(
|
|
10383
|
+
Button,
|
|
10384
|
+
{
|
|
10385
|
+
variant: "ghost",
|
|
10386
|
+
size: "icon",
|
|
10387
|
+
title: "Refresh",
|
|
10388
|
+
onClick: () => qc.invalidateQueries({ queryKey: [KEYSHARE_RECOVERY_STATS_QUERY, userId] }),
|
|
10389
|
+
children: isRecoveryRefreshing ? /* @__PURE__ */ jsx51(Loader15, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx51(RefreshCw2, { className: "h-4 w-4" })
|
|
10390
|
+
}
|
|
10391
|
+
)
|
|
10386
10392
|
] })
|
|
10387
10393
|
] }),
|
|
10388
|
-
|
|
10389
|
-
/* @__PURE__ */
|
|
10390
|
-
|
|
10391
|
-
|
|
10392
|
-
|
|
10394
|
+
/* @__PURE__ */ jsxs42("div", { className: "grid grid-cols-3 gap-[var(--l-pass-gap)]", children: [
|
|
10395
|
+
/* @__PURE__ */ jsxs42("div", { className: "space-y-2 text-center", children: [
|
|
10396
|
+
/* @__PURE__ */ jsxs42("div", { className: "flex items-center justify-center gap-[var(--l-pass-gap)]", children: [
|
|
10397
|
+
/* @__PURE__ */ jsx51(Cloud2, { className: "h-4 w-4" }),
|
|
10398
|
+
/* @__PURE__ */ jsx51("span", { className: "text-xs font-medium", children: "Server" })
|
|
10399
|
+
] }),
|
|
10400
|
+
/* @__PURE__ */ jsxs42(
|
|
10401
|
+
"span",
|
|
10402
|
+
{
|
|
10403
|
+
className: cn(
|
|
10404
|
+
"inline-flex gap-[var(--l-pass-gap)] items-center text-xs px-2 py-1 rounded-full text-black leading-4",
|
|
10405
|
+
serverHasKeyshare ? "bg-[var(--l-pass-bg-success)]" : "bg-[var(--l-pass-bg-warning)]"
|
|
10406
|
+
),
|
|
10407
|
+
children: [
|
|
10408
|
+
serverHasKeyshare ? /* @__PURE__ */ jsx51(CheckCircle23, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx51(AlertTriangle4, { className: "h-4 w-4" }),
|
|
10409
|
+
serverHasKeyshare ? "Ready" : "Missing"
|
|
10410
|
+
]
|
|
10411
|
+
}
|
|
10412
|
+
)
|
|
10413
|
+
] }),
|
|
10414
|
+
/* @__PURE__ */ jsxs42("div", { className: "space-y-2 text-center", children: [
|
|
10415
|
+
/* @__PURE__ */ jsxs42("div", { className: "flex items-center justify-center gap-[var(--l-pass-gap)]", children: [
|
|
10416
|
+
/* @__PURE__ */ jsx51(Laptop, { className: "h-4 w-4" }),
|
|
10417
|
+
/* @__PURE__ */ jsx51("span", { className: "text-xs font-medium", children: "Local" })
|
|
10418
|
+
] }),
|
|
10419
|
+
/* @__PURE__ */ jsxs42(
|
|
10420
|
+
"span",
|
|
10421
|
+
{
|
|
10422
|
+
className: cn(
|
|
10423
|
+
"inline-flex gap-[var(--l-pass-gap)] items-center text-xs px-2 py-1 rounded-full text-black leading-4",
|
|
10424
|
+
localInfo?.hasKeyshare ? "bg-[var(--l-pass-bg-success)]" : "bg-[var(--l-pass-bg-warning)]"
|
|
10425
|
+
),
|
|
10426
|
+
children: [
|
|
10427
|
+
localInfo?.hasKeyshare ? /* @__PURE__ */ jsx51(CheckCircle23, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx51(AlertTriangle4, { className: "h-4 w-4" }),
|
|
10428
|
+
localInfo?.hasKeyshare ? "Ready" : "Missing"
|
|
10429
|
+
]
|
|
10430
|
+
}
|
|
10431
|
+
)
|
|
10432
|
+
] }),
|
|
10433
|
+
/* @__PURE__ */ jsxs42("div", { className: "space-y-2 text-center", children: [
|
|
10434
|
+
/* @__PURE__ */ jsxs42("div", { className: "flex items-center justify-center gap-[var(--l-pass-gap)]", children: [
|
|
10435
|
+
/* @__PURE__ */ jsx51(Shield, { className: "h-4 w-4" }),
|
|
10436
|
+
/* @__PURE__ */ jsx51("span", { className: "text-xs font-medium", children: "Vault" })
|
|
10437
|
+
] }),
|
|
10438
|
+
/* @__PURE__ */ jsxs42(
|
|
10439
|
+
"span",
|
|
10440
|
+
{
|
|
10441
|
+
className: cn(
|
|
10442
|
+
"inline-flex gap-[var(--l-pass-gap)] items-center text-xs px-2 py-1 rounded-full text-black leading-4",
|
|
10443
|
+
hasServerBackup ? "bg-[var(--l-pass-bg-success)]" : "bg-[var(--l-pass-bg-warning)]"
|
|
10444
|
+
),
|
|
10445
|
+
children: [
|
|
10446
|
+
hasServerBackup ? /* @__PURE__ */ jsx51(CheckCircle23, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx51(AlertTriangle4, { className: "h-4 w-4" }),
|
|
10447
|
+
hasServerBackup ? "Ready" : "None"
|
|
10448
|
+
]
|
|
10449
|
+
}
|
|
10450
|
+
)
|
|
10393
10451
|
] })
|
|
10394
10452
|
] }),
|
|
10395
|
-
|
|
10396
|
-
/* @__PURE__ */
|
|
10397
|
-
|
|
10398
|
-
|
|
10399
|
-
|
|
10453
|
+
/* @__PURE__ */ jsxs42(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-4", children: [
|
|
10454
|
+
localInfo?.hasKeyshare && /* @__PURE__ */ jsxs42("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
|
|
10455
|
+
localInfo.ownerAddress && /* @__PURE__ */ jsxs42("div", { className: "text-[var(--l-pass-fg)] py-1", children: [
|
|
10456
|
+
/* @__PURE__ */ jsx51("span", { children: "Owner: " }),
|
|
10457
|
+
/* @__PURE__ */ jsx51("span", { className: "font-mono break-all", children: localInfo.ownerAddress })
|
|
10458
|
+
] }),
|
|
10459
|
+
typeof localInfo.keyshareSize === "number" && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10460
|
+
/* @__PURE__ */ jsx51("span", { children: "Size: " }),
|
|
10461
|
+
/* @__PURE__ */ jsx51("span", { className: "font-mono", children: `${Math.round((localInfo.keyshareSize || 0) / 1024)}KB` })
|
|
10462
|
+
] }),
|
|
10463
|
+
localInfo.sessionId && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10464
|
+
/* @__PURE__ */ jsx51("span", { children: "Session: " }),
|
|
10465
|
+
/* @__PURE__ */ jsx51("span", { className: "font-mono break-all", children: localInfo.sessionId })
|
|
10466
|
+
] })
|
|
10467
|
+
] }),
|
|
10468
|
+
/* @__PURE__ */ jsxs42("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
|
|
10469
|
+
backup.server.enabled && backup.server.lastBackup && /* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-1", children: [
|
|
10470
|
+
/* @__PURE__ */ jsx51(Server3, { className: "h-2.5 w-2.5" }),
|
|
10471
|
+
/* @__PURE__ */ jsxs42("span", { children: [
|
|
10472
|
+
"Server: ",
|
|
10473
|
+
new Date(backup.server.lastBackup).toLocaleString()
|
|
10474
|
+
] })
|
|
10475
|
+
] }),
|
|
10476
|
+
!backup.server.lastBackup && recoveryCreatedAt && /* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-1", children: [
|
|
10477
|
+
/* @__PURE__ */ jsx51(Server3, { className: "h-2.5 w-2.5" }),
|
|
10478
|
+
/* @__PURE__ */ jsxs42("span", { children: [
|
|
10479
|
+
"Server: ",
|
|
10480
|
+
new Date(recoveryCreatedAt).toLocaleString()
|
|
10481
|
+
] })
|
|
10482
|
+
] }),
|
|
10483
|
+
backup.cloud.enabled && backup.cloud.lastBackup && /* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-1", children: [
|
|
10484
|
+
/* @__PURE__ */ jsx51(Cloud2, { className: "h-2.5 w-2.5" }),
|
|
10485
|
+
/* @__PURE__ */ jsxs42("span", { children: [
|
|
10486
|
+
"Cloud: ",
|
|
10487
|
+
new Date(backup.cloud.lastBackup).toLocaleString()
|
|
10488
|
+
] })
|
|
10489
|
+
] }),
|
|
10490
|
+
backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-1", children: [
|
|
10491
|
+
/* @__PURE__ */ jsx51(HardDrive, { className: "h-2.5 w-2.5" }),
|
|
10492
|
+
/* @__PURE__ */ jsxs42("span", { children: [
|
|
10493
|
+
"Local: ",
|
|
10494
|
+
new Date(backup.local.lastBackup).toLocaleString()
|
|
10495
|
+
] })
|
|
10496
|
+
] })
|
|
10497
|
+
] }),
|
|
10498
|
+
(recoveryCreatedAt || recoveryBrowser || recoveryUa || recoveryDeviceId || recoveryDeviceName) && /* @__PURE__ */ jsxs42(Highlight, { type: "info", className: "space-y-0.5 text-[10px] leading-tight", children: [
|
|
10499
|
+
/* @__PURE__ */ jsx51("div", { className: "font-bold text-sm", children: "Device Information:" }),
|
|
10500
|
+
recoveryCreatedAt && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10501
|
+
"Created: ",
|
|
10502
|
+
new Date(recoveryCreatedAt).toLocaleString(),
|
|
10503
|
+
" "
|
|
10504
|
+
] }),
|
|
10505
|
+
recoveryCountry && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10506
|
+
"Country: ",
|
|
10507
|
+
recoveryCountry
|
|
10508
|
+
] }),
|
|
10509
|
+
recoveryBrowser && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10510
|
+
"Browser: ",
|
|
10511
|
+
recoveryBrowser
|
|
10512
|
+
] }),
|
|
10513
|
+
parseOS(recoveryUa) && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10514
|
+
"OS: ",
|
|
10515
|
+
parseOS(recoveryUa)
|
|
10516
|
+
] }),
|
|
10517
|
+
recoveryDeviceName && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10518
|
+
"Device: ",
|
|
10519
|
+
recoveryDeviceName
|
|
10520
|
+
] }),
|
|
10521
|
+
recoveryDeviceId && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10522
|
+
"Device ID: ",
|
|
10523
|
+
/* @__PURE__ */ jsx51("span", { className: "break-all", children: recoveryDeviceId })
|
|
10524
|
+
] })
|
|
10525
|
+
] }),
|
|
10526
|
+
trustedApps.length > 0 && /* @__PURE__ */ jsxs42("div", { className: "w-full space-y-2", children: [
|
|
10527
|
+
/* @__PURE__ */ jsx51("div", { className: "font-medium text-xs text-[var(--l-pass-fg)]", children: `Trusted Applications (${trustedApps.length}):` }),
|
|
10528
|
+
/* @__PURE__ */ jsx51("div", { className: "w-full space-y-1", children: trustedApps.map((app, index) => /* @__PURE__ */ jsxs42(
|
|
10529
|
+
"div",
|
|
10530
|
+
{
|
|
10531
|
+
className: "text-[10px] leading-tight p-2 rounded flex items-start justify-between gap-2 bg-[var(--l-pass-secondary)]",
|
|
10532
|
+
children: [
|
|
10533
|
+
/* @__PURE__ */ jsxs42("div", { className: "flex-1 min-w-0", children: [
|
|
10534
|
+
/* @__PURE__ */ jsx51("div", { className: "font-medium", children: new URL(app.origin).hostname }),
|
|
10535
|
+
/* @__PURE__ */ jsxs42("div", { className: "text-[var(--l-pass-fg-muted)]", children: [
|
|
10536
|
+
"Trusted: ",
|
|
10537
|
+
new Date(app.trustedAt).toLocaleDateString()
|
|
10538
|
+
] })
|
|
10539
|
+
] }),
|
|
10540
|
+
/* @__PURE__ */ jsx51(
|
|
10541
|
+
Button,
|
|
10542
|
+
{
|
|
10543
|
+
variant: "ghost",
|
|
10544
|
+
size: "icon",
|
|
10545
|
+
title: "Remove from trusted",
|
|
10546
|
+
className: "text-[var(--l-pass-error)]",
|
|
10547
|
+
onClick: () => setAppToRemove({
|
|
10548
|
+
projectId: app.projectId,
|
|
10549
|
+
origin: app.origin,
|
|
10550
|
+
hostname: new URL(app.origin).hostname
|
|
10551
|
+
}),
|
|
10552
|
+
children: /* @__PURE__ */ jsx51(Trash22, { className: "h-3 w-3" })
|
|
10553
|
+
}
|
|
10554
|
+
)
|
|
10555
|
+
]
|
|
10556
|
+
},
|
|
10557
|
+
index
|
|
10558
|
+
)) })
|
|
10400
10559
|
] })
|
|
10401
10560
|
] })
|
|
10402
|
-
]
|
|
10403
|
-
|
|
10404
|
-
|
|
10405
|
-
recoveryCreatedAt && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10406
|
-
"Created: ",
|
|
10407
|
-
new Date(recoveryCreatedAt).toLocaleString(),
|
|
10408
|
-
" "
|
|
10409
|
-
] }),
|
|
10410
|
-
recoveryCountry && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10411
|
-
"Country: ",
|
|
10412
|
-
recoveryCountry
|
|
10413
|
-
] }),
|
|
10414
|
-
recoveryBrowser && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10415
|
-
"Browser: ",
|
|
10416
|
-
recoveryBrowser
|
|
10417
|
-
] }),
|
|
10418
|
-
parseOS(recoveryUa) && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10419
|
-
"OS: ",
|
|
10420
|
-
parseOS(recoveryUa)
|
|
10421
|
-
] }),
|
|
10422
|
-
recoveryDeviceName && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10423
|
-
"Device: ",
|
|
10424
|
-
recoveryDeviceName
|
|
10425
|
-
] }),
|
|
10426
|
-
recoveryDeviceId && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10427
|
-
"Device ID: ",
|
|
10428
|
-
/* @__PURE__ */ jsx51("span", { className: "font-mono break-all", children: recoveryDeviceId })
|
|
10429
|
-
] })
|
|
10430
|
-
] }),
|
|
10431
|
-
trustedApps.length > 0 && /* @__PURE__ */ jsxs42("div", { className: "w-full space-y-2", children: [
|
|
10432
|
-
/* @__PURE__ */ jsx51("div", { className: "font-medium text-sm text-[var(--l-pass-primary)]", children: `Trusted Applications (${trustedApps.length}):` }),
|
|
10433
|
-
/* @__PURE__ */ jsx51("div", { className: "w-full space-y-1", children: trustedApps.map((app, index) => /* @__PURE__ */ jsxs42(
|
|
10434
|
-
"div",
|
|
10435
|
-
{
|
|
10436
|
-
className: "text-[10px] leading-tight p-2 rounded flex items-start justify-between gap-2 bg-[var(--l-pass-secondary)]",
|
|
10437
|
-
children: [
|
|
10438
|
-
/* @__PURE__ */ jsxs42("div", { className: "flex-1 min-w-0", children: [
|
|
10439
|
-
/* @__PURE__ */ jsx51("div", { className: "font-medium", children: new URL(app.origin).hostname }),
|
|
10440
|
-
/* @__PURE__ */ jsxs42("div", { className: "text-[var(--l-pass-fg-muted)]", children: [
|
|
10441
|
-
"Trusted: ",
|
|
10442
|
-
new Date(app.trustedAt).toLocaleDateString()
|
|
10443
|
-
] })
|
|
10444
|
-
] }),
|
|
10445
|
-
/* @__PURE__ */ jsx51(
|
|
10446
|
-
Button,
|
|
10447
|
-
{
|
|
10448
|
-
variant: "ghost",
|
|
10449
|
-
size: "icon",
|
|
10450
|
-
title: "Remove from trusted",
|
|
10451
|
-
className: "text-[var(--l-pass-error)]",
|
|
10452
|
-
onClick: () => setAppToRemove({
|
|
10453
|
-
projectId: app.projectId,
|
|
10454
|
-
origin: app.origin,
|
|
10455
|
-
hostname: new URL(app.origin).hostname
|
|
10456
|
-
}),
|
|
10457
|
-
children: /* @__PURE__ */ jsx51(Trash22, { className: "h-3 w-3" })
|
|
10458
|
-
}
|
|
10459
|
-
)
|
|
10460
|
-
]
|
|
10461
|
-
},
|
|
10462
|
-
index
|
|
10463
|
-
)) })
|
|
10464
|
-
] })
|
|
10465
|
-
] })
|
|
10466
|
-
] });
|
|
10561
|
+
]
|
|
10562
|
+
}
|
|
10563
|
+
);
|
|
10467
10564
|
}
|
|
10468
10565
|
|
|
10469
10566
|
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
10470
10567
|
import { AlertCircle as AlertCircle5, ArrowLeft as ArrowLeft10, CheckCircle2 as CheckCircle24, Loader as Loader16, Wallet } from "lucide-react";
|
|
10471
|
-
import { useEffect as
|
|
10568
|
+
import { useEffect as useEffect21, useState as useState13 } from "react";
|
|
10472
10569
|
import { isAddress as isAddress2 } from "viem";
|
|
10473
10570
|
import { useBalance as useBalance3 } from "wagmi";
|
|
10474
10571
|
|
|
10475
10572
|
// src/hooks/useSendTransaction.ts
|
|
10476
|
-
import { useCallback as
|
|
10573
|
+
import { useCallback as useCallback13, useState as useState12 } from "react";
|
|
10477
10574
|
import { isAddress, parseEther as parseEther2 } from "viem";
|
|
10478
10575
|
init_account();
|
|
10479
10576
|
function useSendTransaction() {
|
|
@@ -10482,7 +10579,7 @@ function useSendTransaction() {
|
|
|
10482
10579
|
const [isLoading, setIsLoading] = useState12(false);
|
|
10483
10580
|
const [error, setError] = useState12(null);
|
|
10484
10581
|
const [userOpHash, setUserOpHash] = useState12(null);
|
|
10485
|
-
const sendTransaction =
|
|
10582
|
+
const sendTransaction = useCallback13(
|
|
10486
10583
|
async (params) => {
|
|
10487
10584
|
if (!session || !address) {
|
|
10488
10585
|
setError("No active session");
|
|
@@ -10522,7 +10619,7 @@ function useSendTransaction() {
|
|
|
10522
10619
|
},
|
|
10523
10620
|
[session, address]
|
|
10524
10621
|
);
|
|
10525
|
-
const reset =
|
|
10622
|
+
const reset = useCallback13(() => {
|
|
10526
10623
|
setError(null);
|
|
10527
10624
|
setUserOpHash(null);
|
|
10528
10625
|
setIsLoading(false);
|
|
@@ -10556,7 +10653,7 @@ function SendLumiaMenu() {
|
|
|
10556
10653
|
const [validationError, setValidationError] = useState13(null);
|
|
10557
10654
|
const nativeAsset = assets.find((a) => a.type === "native");
|
|
10558
10655
|
const balance = nativeAsset ? parseFloat(nativeAsset.formattedBalance) : 0;
|
|
10559
|
-
|
|
10656
|
+
useEffect21(() => {
|
|
10560
10657
|
if (open) {
|
|
10561
10658
|
setTxStep("input");
|
|
10562
10659
|
setValidationError(null);
|
|
@@ -10721,7 +10818,7 @@ function SendLumiaMenu() {
|
|
|
10721
10818
|
init_clients();
|
|
10722
10819
|
import { ArrowLeft as ArrowLeft11, CheckCircle2 as CheckCircle25, Copy as Copy2, Loader as Loader17 } from "lucide-react";
|
|
10723
10820
|
import QRCode from "qrcode";
|
|
10724
|
-
import { useCallback as
|
|
10821
|
+
import { useCallback as useCallback14, useEffect as useEffect22, useState as useState14 } from "react";
|
|
10725
10822
|
import { Fragment as Fragment13, jsx as jsx53, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
10726
10823
|
function ReceiveLumiaMenu() {
|
|
10727
10824
|
const address = useLumiaPassportSession((st) => st.address);
|
|
@@ -10731,7 +10828,7 @@ function ReceiveLumiaMenu() {
|
|
|
10731
10828
|
const open = page === "receive";
|
|
10732
10829
|
const [qrCodeUrl, setQrCodeUrl] = useState14("");
|
|
10733
10830
|
const [copied, setCopied] = useState14(false);
|
|
10734
|
-
|
|
10831
|
+
useEffect22(() => {
|
|
10735
10832
|
if (open && address) {
|
|
10736
10833
|
QRCode.toDataURL(address, {
|
|
10737
10834
|
width: 200,
|
|
@@ -10744,7 +10841,7 @@ function ReceiveLumiaMenu() {
|
|
|
10744
10841
|
});
|
|
10745
10842
|
}
|
|
10746
10843
|
}, [open, address]);
|
|
10747
|
-
const handleCopy =
|
|
10844
|
+
const handleCopy = useCallback14(async () => {
|
|
10748
10845
|
if (!address) return;
|
|
10749
10846
|
try {
|
|
10750
10847
|
await navigator.clipboard.writeText(address);
|
|
@@ -10759,7 +10856,7 @@ function ReceiveLumiaMenu() {
|
|
|
10759
10856
|
{
|
|
10760
10857
|
style: {
|
|
10761
10858
|
"--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
|
|
10762
|
-
"--l-pass-list-scrollbar-pd-r": "
|
|
10859
|
+
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
10763
10860
|
},
|
|
10764
10861
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
10765
10862
|
children: [
|
|
@@ -10790,7 +10887,7 @@ function ReceiveLumiaMenu() {
|
|
|
10790
10887
|
|
|
10791
10888
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
10792
10889
|
import { ArrowLeft as ArrowLeft12 } from "lucide-react";
|
|
10793
|
-
import { useEffect as
|
|
10890
|
+
import { useEffect as useEffect23 } from "react";
|
|
10794
10891
|
|
|
10795
10892
|
// src/internal/components/SettingsMenu/constants.ts
|
|
10796
10893
|
import { ArrowLeftRight, DatabaseBackup as DatabaseBackup2, LockKeyhole, UsersRound } from "lucide-react";
|
|
@@ -10824,13 +10921,13 @@ function SettingsMenu() {
|
|
|
10824
10921
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10825
10922
|
const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
|
|
10826
10923
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
10827
|
-
|
|
10924
|
+
useEffect23(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
|
|
10828
10925
|
const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
|
|
10829
10926
|
const highlightedKeys = settingsNotifications.map((n) => n.target);
|
|
10830
10927
|
return /* @__PURE__ */ jsxs45("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
10831
10928
|
/* @__PURE__ */ jsxs45("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
10832
10929
|
/* @__PURE__ */ jsx55(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx55(ArrowLeft12, { className: "h-4 w-4" }) }),
|
|
10833
|
-
/* @__PURE__ */ jsx55("span", { className: "text-xl font-semibold", children: "
|
|
10930
|
+
/* @__PURE__ */ jsx55("span", { className: "text-xl font-semibold", children: "Settings" })
|
|
10834
10931
|
] }),
|
|
10835
10932
|
/* @__PURE__ */ jsx55("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: navItems.map(({ id, name, Icon, onClick }) => /* @__PURE__ */ jsxs45(
|
|
10836
10933
|
Button,
|
|
@@ -10882,9 +10979,9 @@ function TermsOfService() {
|
|
|
10882
10979
|
}
|
|
10883
10980
|
|
|
10884
10981
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
10885
|
-
import { useQuery as
|
|
10982
|
+
import { useQuery as useQuery9, useQueryClient as useQueryClient12 } from "@tanstack/react-query";
|
|
10886
10983
|
import { ArrowLeft as ArrowLeft14, Loader as Loader18, RefreshCw as RefreshCw3, XCircle as XCircle2 } from "lucide-react";
|
|
10887
|
-
import { useCallback as
|
|
10984
|
+
import { useCallback as useCallback15, useState as useState15 } from "react";
|
|
10888
10985
|
|
|
10889
10986
|
// src/internal/components/TransactionsMenu/api.ts
|
|
10890
10987
|
init_base();
|
|
@@ -11360,78 +11457,60 @@ function TransactionsGroup(props) {
|
|
|
11360
11457
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
11361
11458
|
import { jsx as jsx59, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
11362
11459
|
function TransactionsMenu() {
|
|
11363
|
-
const qc =
|
|
11460
|
+
const qc = useQueryClient12();
|
|
11364
11461
|
const address = useLumiaPassportSession((st) => st.address);
|
|
11365
11462
|
const page = useLayoutDataStore((st) => st.page);
|
|
11366
11463
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11367
11464
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
11368
|
-
const txContainerListRef = useRef10(null);
|
|
11369
|
-
const txListRef = useRef10(null);
|
|
11370
11465
|
const [expandedGroups, setExpandedGroups] = useState15({});
|
|
11371
11466
|
const {
|
|
11372
11467
|
data: txHistoryGroups = [],
|
|
11373
11468
|
isLoading: isTxHistoryLoading,
|
|
11374
11469
|
isFetching: isTxHistoryFetching,
|
|
11375
11470
|
error: txHistoryError
|
|
11376
|
-
} =
|
|
11471
|
+
} = useQuery9({
|
|
11377
11472
|
retry: false,
|
|
11378
11473
|
enabled: !!address && page === "transactions",
|
|
11379
11474
|
queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address],
|
|
11380
11475
|
queryFn: () => getTransactionsListQuery(address)
|
|
11381
11476
|
});
|
|
11382
|
-
const refreshTxHistory =
|
|
11477
|
+
const refreshTxHistory = useCallback15(
|
|
11383
11478
|
() => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address] }),
|
|
11384
11479
|
[qc, address]
|
|
11385
11480
|
);
|
|
11386
11481
|
const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
|
|
11387
|
-
|
|
11388
|
-
|
|
11389
|
-
|
|
11390
|
-
|
|
11391
|
-
|
|
11392
|
-
|
|
11393
|
-
|
|
11394
|
-
|
|
11395
|
-
|
|
11396
|
-
|
|
11397
|
-
|
|
11398
|
-
|
|
11399
|
-
|
|
11400
|
-
|
|
11401
|
-
|
|
11402
|
-
|
|
11403
|
-
|
|
11404
|
-
|
|
11405
|
-
|
|
11406
|
-
|
|
11407
|
-
|
|
11408
|
-
|
|
11409
|
-
|
|
11410
|
-
|
|
11411
|
-
|
|
11412
|
-
|
|
11413
|
-
|
|
11414
|
-
|
|
11415
|
-
|
|
11416
|
-
|
|
11417
|
-
|
|
11418
|
-
|
|
11419
|
-
isTxHistoryLoading && /* @__PURE__ */ jsx59("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ jsx59(Loader18, { className: "h-5 w-5 animate-spin" }) }),
|
|
11420
|
-
!isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ jsxs49(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
11421
|
-
/* @__PURE__ */ jsx59(XCircle2, { className: "w-4 h-4 flex-none" }),
|
|
11422
|
-
/* @__PURE__ */ jsx59("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
|
|
11423
|
-
] }),
|
|
11424
|
-
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ jsx59(Highlight, { type: "warning", children: /* @__PURE__ */ jsx59("span", { children: "No transactions found. Smart account transactions will appear here" }) }),
|
|
11425
|
-
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ jsx59(
|
|
11426
|
-
"div",
|
|
11427
|
-
{
|
|
11428
|
-
ref: txContainerListRef,
|
|
11429
|
-
style: {
|
|
11430
|
-
borderTop: "1px solid var(--l-pass-list-bd)",
|
|
11431
|
-
borderBottom: "1px solid var(--l-pass-list-bd)"
|
|
11432
|
-
},
|
|
11433
|
-
className: "list-scrollbar-y relative",
|
|
11434
|
-
children: /* @__PURE__ */ jsx59("div", { ref: txListRef, className: "w-full flex flex-col gap-[var(--l-pass-gap)] py-[var(--l-pass-pd)]", children: txHistoryGroups.map((group) => /* @__PURE__ */ jsx59(
|
|
11482
|
+
return /* @__PURE__ */ jsxs49(
|
|
11483
|
+
"div",
|
|
11484
|
+
{
|
|
11485
|
+
style: {
|
|
11486
|
+
"--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
|
|
11487
|
+
"--l-pass-list-scrollbar-pd-r": "calc(var(--l-pass-pd) - 4px)"
|
|
11488
|
+
},
|
|
11489
|
+
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
11490
|
+
children: [
|
|
11491
|
+
/* @__PURE__ */ jsxs49("div", { className: "flex items-center gap-2", children: [
|
|
11492
|
+
/* @__PURE__ */ jsx59(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ jsx59(ArrowLeft14, { className: "h-4 w-4" }) }),
|
|
11493
|
+
/* @__PURE__ */ jsx59("span", { className: "text-xl font-semibold", children: "Transaction History" }),
|
|
11494
|
+
/* @__PURE__ */ jsx59(
|
|
11495
|
+
Button,
|
|
11496
|
+
{
|
|
11497
|
+
variant: "ghost",
|
|
11498
|
+
size: "icon",
|
|
11499
|
+
onClick: refreshTxHistory,
|
|
11500
|
+
disabled: isTxHistoryFetching,
|
|
11501
|
+
title: "Refresh transactions",
|
|
11502
|
+
children: isTxHistoryFetching ? /* @__PURE__ */ jsx59(Loader18, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx59(RefreshCw3, { className: "h-4 w-4" })
|
|
11503
|
+
}
|
|
11504
|
+
)
|
|
11505
|
+
] }),
|
|
11506
|
+
/* @__PURE__ */ jsxs49("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
11507
|
+
isTxHistoryLoading && /* @__PURE__ */ jsx59("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ jsx59(Loader18, { className: "h-5 w-5 animate-spin" }) }),
|
|
11508
|
+
!isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ jsxs49(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
11509
|
+
/* @__PURE__ */ jsx59(XCircle2, { className: "w-4 h-4 flex-none" }),
|
|
11510
|
+
/* @__PURE__ */ jsx59("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
|
|
11511
|
+
] }),
|
|
11512
|
+
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ jsx59(Highlight, { type: "warning", children: /* @__PURE__ */ jsx59("span", { children: "No transactions found. Smart account transactions will appear here" }) }),
|
|
11513
|
+
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ jsx59("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: txHistoryGroups.map((group) => /* @__PURE__ */ jsx59(
|
|
11435
11514
|
TransactionsGroup,
|
|
11436
11515
|
{
|
|
11437
11516
|
group,
|
|
@@ -11440,10 +11519,10 @@ function TransactionsMenu() {
|
|
|
11440
11519
|
},
|
|
11441
11520
|
group.id
|
|
11442
11521
|
)) })
|
|
11443
|
-
}
|
|
11444
|
-
|
|
11445
|
-
|
|
11446
|
-
|
|
11522
|
+
] })
|
|
11523
|
+
]
|
|
11524
|
+
}
|
|
11525
|
+
);
|
|
11447
11526
|
}
|
|
11448
11527
|
|
|
11449
11528
|
// src/internal/components/PageMap.tsx
|
|
@@ -11555,7 +11634,7 @@ function usePageMapper() {
|
|
|
11555
11634
|
setIsDialogOpen,
|
|
11556
11635
|
setIsDialogClosing
|
|
11557
11636
|
} = useLayoutStore();
|
|
11558
|
-
const closeDialog =
|
|
11637
|
+
const closeDialog = useCallback16(() => {
|
|
11559
11638
|
setIsDialogClosing(true);
|
|
11560
11639
|
setTimeout(() => {
|
|
11561
11640
|
setDialogContent(null);
|
|
@@ -11566,7 +11645,7 @@ function usePageMapper() {
|
|
|
11566
11645
|
setIsDialogOpen(false);
|
|
11567
11646
|
}, CLEAR_DIALOG_TIMEOUT);
|
|
11568
11647
|
}, [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogForced, setIsDialogOpen, setIsDialogClosing]);
|
|
11569
|
-
const openDialog =
|
|
11648
|
+
const openDialog = useCallback16(
|
|
11570
11649
|
(pageItem) => {
|
|
11571
11650
|
const PageContentComponent = pageItem.component;
|
|
11572
11651
|
setDialogTitle(pageItem.title);
|
|
@@ -11576,7 +11655,7 @@ function usePageMapper() {
|
|
|
11576
11655
|
},
|
|
11577
11656
|
[setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
|
|
11578
11657
|
);
|
|
11579
|
-
|
|
11658
|
+
useEffect24(() => {
|
|
11580
11659
|
if (page === null) return closeDialog();
|
|
11581
11660
|
const pageItem = protectedRoutes[page];
|
|
11582
11661
|
if (!pageItem) {
|
|
@@ -11590,7 +11669,7 @@ function usePageMapper() {
|
|
|
11590
11669
|
|
|
11591
11670
|
// src/internal/hooks/useSettingsNotifications.ts
|
|
11592
11671
|
init_auth();
|
|
11593
|
-
import { useEffect as
|
|
11672
|
+
import { useEffect as useEffect25 } from "react";
|
|
11594
11673
|
var EMAIL_NOT_CONNECTED_NOTIFICATION = {
|
|
11595
11674
|
id: "email-not-connected",
|
|
11596
11675
|
target: "manage-wallet" /* MANAGE_WALLET */,
|
|
@@ -11606,13 +11685,13 @@ function useSettingsNotifications() {
|
|
|
11606
11685
|
const setSettingsNotifications = useLayoutDataStore((st) => st.setSettingsNotifications);
|
|
11607
11686
|
const providers = jwtTokenManager2.getProviders();
|
|
11608
11687
|
const hasEmail = providers.includes("email");
|
|
11609
|
-
|
|
11688
|
+
useEffect25(() => {
|
|
11610
11689
|
setSettingsNotifications({
|
|
11611
11690
|
...BACKUP_IS_NOT_CREATED_NOTIFICATION,
|
|
11612
11691
|
status: hasServerVault ? "resolved" : "active"
|
|
11613
11692
|
});
|
|
11614
11693
|
}, [hasServerVault, setSettingsNotifications]);
|
|
11615
|
-
|
|
11694
|
+
useEffect25(() => {
|
|
11616
11695
|
setSettingsNotifications({
|
|
11617
11696
|
...EMAIL_NOT_CONNECTED_NOTIFICATION,
|
|
11618
11697
|
status: hasEmail ? "resolved" : "active"
|
|
@@ -11621,7 +11700,7 @@ function useSettingsNotifications() {
|
|
|
11621
11700
|
}
|
|
11622
11701
|
|
|
11623
11702
|
// src/internal/hooks/useWalletStatus.ts
|
|
11624
|
-
import { useEffect as
|
|
11703
|
+
import { useEffect as useEffect26 } from "react";
|
|
11625
11704
|
init_auth();
|
|
11626
11705
|
function useWalletStatus() {
|
|
11627
11706
|
const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
|
|
@@ -11631,7 +11710,7 @@ function useWalletStatus() {
|
|
|
11631
11710
|
config: { current: config },
|
|
11632
11711
|
callbacks
|
|
11633
11712
|
} = useLumiaPassportConfig();
|
|
11634
|
-
|
|
11713
|
+
useEffect26(() => {
|
|
11635
11714
|
if (!isIframeReady || !config.projectId || !callbacks?.onWalletReady) return;
|
|
11636
11715
|
const userId = jwtTokenManager2.getUserId();
|
|
11637
11716
|
const hasKeyshare = jwtTokenManager2.getHasKeyshare();
|
|
@@ -11660,7 +11739,7 @@ function LumiaPassportDialog() {
|
|
|
11660
11739
|
const mainPageHeight = useLayoutDataStore((st) => st.mainPageHeight);
|
|
11661
11740
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11662
11741
|
const { colorMode, isDialogOpen, dialogTitle, dialogDescription, dialogContent, isDialogForced, setIsSettings } = useLayoutStore();
|
|
11663
|
-
|
|
11742
|
+
useEffect27(() => setIsSettings(!!session), [session, setIsSettings]);
|
|
11664
11743
|
usePageMapper();
|
|
11665
11744
|
useAutoConnect();
|
|
11666
11745
|
useCheckVaultStatus();
|
|
@@ -11699,7 +11778,7 @@ function LumiaPassportDialog() {
|
|
|
11699
11778
|
}
|
|
11700
11779
|
|
|
11701
11780
|
// src/internal/components/TssManager.tsx
|
|
11702
|
-
import React12, { useCallback as
|
|
11781
|
+
import React12, { useCallback as useCallback17 } from "react";
|
|
11703
11782
|
init_auth();
|
|
11704
11783
|
init_clients();
|
|
11705
11784
|
var TssManagerWithRef = React12.forwardRef((props, ref) => {
|
|
@@ -11708,7 +11787,7 @@ var TssManagerWithRef = React12.forwardRef((props, ref) => {
|
|
|
11708
11787
|
const setStatus = useLumiaPassportSession((st) => st.setStatus);
|
|
11709
11788
|
const setSession = useLumiaPassportSession((st) => st.setSession);
|
|
11710
11789
|
const setAddress = useLumiaPassportSession((st) => st.setAddress);
|
|
11711
|
-
const onSessionCreated =
|
|
11790
|
+
const onSessionCreated = useCallback17(
|
|
11712
11791
|
(session, address) => {
|
|
11713
11792
|
setSession(session);
|
|
11714
11793
|
setAddress(address);
|
|
@@ -11743,11 +11822,11 @@ var TssManagerWithRef = React12.forwardRef((props, ref) => {
|
|
|
11743
11822
|
// src/internal/components/WalletConnectHandler.tsx
|
|
11744
11823
|
init_wallet();
|
|
11745
11824
|
import { useConnectModal } from "@rainbow-me/rainbowkit";
|
|
11746
|
-
import { useQueryClient as
|
|
11747
|
-
import React13, { useCallback as
|
|
11825
|
+
import { useQueryClient as useQueryClient13 } from "@tanstack/react-query";
|
|
11826
|
+
import React13, { useCallback as useCallback18, useEffect as useEffect28 } from "react";
|
|
11748
11827
|
import { useAccount, useDisconnect, useSignMessage } from "wagmi";
|
|
11749
11828
|
function WalletConnectHandler() {
|
|
11750
|
-
const qc =
|
|
11829
|
+
const qc = useQueryClient13();
|
|
11751
11830
|
const { callbacks } = useLumiaPassportConfig();
|
|
11752
11831
|
const userAddress = useLumiaPassportSession((st) => st.address);
|
|
11753
11832
|
const { address: walletAddress, isConnected, chain, connector } = useAccount();
|
|
@@ -11755,12 +11834,12 @@ function WalletConnectHandler() {
|
|
|
11755
11834
|
const { signMessageAsync } = useSignMessage();
|
|
11756
11835
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11757
11836
|
const { isWalletLinking, setLinkError, setIsWalletLinking, setLinkIsLoading, setProviderType } = useManageWalletStore();
|
|
11758
|
-
const onError =
|
|
11837
|
+
const onError = useCallback18((error) => {
|
|
11759
11838
|
setLinkError(error);
|
|
11760
11839
|
setIsWalletLinking(false);
|
|
11761
11840
|
setPage("manage-wallet" /* MANAGE_WALLET */);
|
|
11762
11841
|
}, []);
|
|
11763
|
-
const onLinkingComplete =
|
|
11842
|
+
const onLinkingComplete = useCallback18(
|
|
11764
11843
|
async (success) => {
|
|
11765
11844
|
console.log("[WalletConnectHandler] onLinkingComplete called:", { success, userAddress });
|
|
11766
11845
|
setIsWalletLinking(false);
|
|
@@ -11785,7 +11864,7 @@ function WalletConnectHandler() {
|
|
|
11785
11864
|
const { openConnectModal, connectModalOpen } = useConnectModal();
|
|
11786
11865
|
const [hasStartedLinking, setHasStartedLinking] = React13.useState(false);
|
|
11787
11866
|
const timeoutRef = React13.useRef();
|
|
11788
|
-
|
|
11867
|
+
useEffect28(() => {
|
|
11789
11868
|
if (isWalletLinking && !hasStartedLinking) {
|
|
11790
11869
|
setHasStartedLinking(true);
|
|
11791
11870
|
setProviderType(null);
|
|
@@ -11810,7 +11889,7 @@ function WalletConnectHandler() {
|
|
|
11810
11889
|
if (isConnected) disconnect();
|
|
11811
11890
|
}
|
|
11812
11891
|
}, [isWalletLinking, hasStartedLinking, isConnected, openConnectModal, disconnect, setPage, setProviderType]);
|
|
11813
|
-
|
|
11892
|
+
useEffect28(() => {
|
|
11814
11893
|
console.log("[WalletConnectHandler] Modal state check:", {
|
|
11815
11894
|
hasStartedLinking,
|
|
11816
11895
|
connectModalOpen,
|
|
@@ -11823,7 +11902,7 @@ function WalletConnectHandler() {
|
|
|
11823
11902
|
setHasStartedLinking(false);
|
|
11824
11903
|
}
|
|
11825
11904
|
}, [connectModalOpen, hasStartedLinking, isConnected, isWalletLinking]);
|
|
11826
|
-
|
|
11905
|
+
useEffect28(() => {
|
|
11827
11906
|
if (isConnected && walletAddress && isWalletLinking && hasStartedLinking) {
|
|
11828
11907
|
handleWalletSign();
|
|
11829
11908
|
}
|
|
@@ -11894,7 +11973,8 @@ var useLumiaPassportSession = create5((set) => ({
|
|
|
11894
11973
|
error: null,
|
|
11895
11974
|
recoveryUserId: null,
|
|
11896
11975
|
isIframeReady: false,
|
|
11897
|
-
hasServerVault:
|
|
11976
|
+
hasServerVault: true,
|
|
11977
|
+
// assume true until proven otherwise to not throw red warnings before checking
|
|
11898
11978
|
walletReadyStatus: null,
|
|
11899
11979
|
setIsLoading: (isLoading) => set({ isLoading }),
|
|
11900
11980
|
setUsePaymaster: (usePaymaster) => set({ usePaymaster }),
|
|
@@ -11966,9 +12046,9 @@ function LumiaPassportProvider(props) {
|
|
|
11966
12046
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
11967
12047
|
const setIsIframeReady = useLumiaPassportSession((st) => st.setIsIframeReady);
|
|
11968
12048
|
const setWalletReadyStatus = useLumiaPassportSession((st) => st.setWalletReadyStatus);
|
|
11969
|
-
|
|
12049
|
+
useEffect29(() => notifyNoProjetctId(projectId), [projectId]);
|
|
11970
12050
|
const config = useRef11({ projectId, ...DEFAULT_LUMIA_PASSPORT_CONFIG });
|
|
11971
|
-
const updateConfig =
|
|
12051
|
+
const updateConfig = useCallback19((updates) => {
|
|
11972
12052
|
const prev = config.current;
|
|
11973
12053
|
const next = { ...prev };
|
|
11974
12054
|
if (updates.projectId !== void 0) next.projectId = updates.projectId;
|
|
@@ -12003,7 +12083,7 @@ function LumiaPassportProvider(props) {
|
|
|
12003
12083
|
}
|
|
12004
12084
|
config.current = next;
|
|
12005
12085
|
}, []);
|
|
12006
|
-
|
|
12086
|
+
useEffect29(() => {
|
|
12007
12087
|
if (typeof window === "undefined" || !projectId) return;
|
|
12008
12088
|
const mergedConfig = merge2(DEFAULT_LUMIA_PASSPORT_CONFIG, initialConfig);
|
|
12009
12089
|
updateConfig(mergedConfig);
|
|
@@ -12059,7 +12139,7 @@ var useLumiaPassportConfig = () => {
|
|
|
12059
12139
|
|
|
12060
12140
|
// src/components/ConnectWalletButton.tsx
|
|
12061
12141
|
import { Cloud as Cloud3, Laptop as Laptop2, Loader as Loader19, Shield as Shield2 } from "lucide-react";
|
|
12062
|
-
import { useEffect as
|
|
12142
|
+
import { useEffect as useEffect30, useMemo as useMemo4 } from "react";
|
|
12063
12143
|
init_auth();
|
|
12064
12144
|
import { Fragment as Fragment16, jsx as jsx65, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
12065
12145
|
function getFormattedStatus(label, status, showStatus) {
|
|
@@ -12079,7 +12159,7 @@ function ConnectWalletButton(props) {
|
|
|
12079
12159
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
12080
12160
|
const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useLumiaPassportSession();
|
|
12081
12161
|
const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
|
|
12082
|
-
|
|
12162
|
+
useEffect30(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
|
|
12083
12163
|
const avatar = jwtTokenManager2.getAvatar();
|
|
12084
12164
|
const displayName = jwtTokenManager2.getDisplayName();
|
|
12085
12165
|
const indicators = useMemo4(() => {
|
|
@@ -12240,13 +12320,13 @@ var useLumiaPassportRecoveryUserId = () => useLumiaPassportSession((st) => st.re
|
|
|
12240
12320
|
var useLumiaPassportHasServerVault = () => useLumiaPassportSession((st) => st.hasServerVault);
|
|
12241
12321
|
|
|
12242
12322
|
// src/hooks/useLumiaPassportOpen.ts
|
|
12243
|
-
import { useCallback as
|
|
12323
|
+
import { useCallback as useCallback20 } from "react";
|
|
12244
12324
|
function useLumiaPassportOpen() {
|
|
12245
12325
|
const page = useLayoutDataStore((st) => st.page);
|
|
12246
12326
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
12247
12327
|
const setPageParams = useLayoutDataStore((st) => st.setPageParams);
|
|
12248
12328
|
const address = useLumiaPassportSession((st) => st.address);
|
|
12249
|
-
const open =
|
|
12329
|
+
const open = useCallback20(
|
|
12250
12330
|
(passportPage, params) => {
|
|
12251
12331
|
if (!address) return setPage("auth" /* AUTH */);
|
|
12252
12332
|
if (!!address && passportPage === "auth" /* AUTH */) return setPage("manage-wallet" /* MANAGE_WALLET */);
|
|
@@ -12255,12 +12335,12 @@ function useLumiaPassportOpen() {
|
|
|
12255
12335
|
},
|
|
12256
12336
|
[setPage, setPageParams, address]
|
|
12257
12337
|
);
|
|
12258
|
-
const close =
|
|
12338
|
+
const close = useCallback20(() => setPage(null), [setPage]);
|
|
12259
12339
|
return { open, close, isOpen: page !== null };
|
|
12260
12340
|
}
|
|
12261
12341
|
|
|
12262
12342
|
// src/hooks/useLumiaPassportColorMode.ts
|
|
12263
|
-
import { useCallback as
|
|
12343
|
+
import { useCallback as useCallback21, useEffect as useEffect31 } from "react";
|
|
12264
12344
|
function useLumiaPassportColorMode() {
|
|
12265
12345
|
const {
|
|
12266
12346
|
config: { current: config }
|
|
@@ -12268,14 +12348,14 @@ function useLumiaPassportColorMode() {
|
|
|
12268
12348
|
const preferedColorMode = config?.preferedColorMode;
|
|
12269
12349
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
12270
12350
|
const handleStoreColorMode = useLayoutStore((st) => st.setColorMode);
|
|
12271
|
-
const setColorMode =
|
|
12351
|
+
const setColorMode = useCallback21(
|
|
12272
12352
|
(mode) => {
|
|
12273
12353
|
localStorage.setItem(LOCAL_COLOR_MODE_KEY, mode);
|
|
12274
12354
|
handleStoreColorMode(mode);
|
|
12275
12355
|
},
|
|
12276
12356
|
[handleStoreColorMode]
|
|
12277
12357
|
);
|
|
12278
|
-
|
|
12358
|
+
useEffect31(() => {
|
|
12279
12359
|
let targetColorMode = localStorage.getItem(LOCAL_COLOR_MODE_KEY);
|
|
12280
12360
|
if (!targetColorMode && !preferedColorMode) {
|
|
12281
12361
|
const systemMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
@@ -12317,24 +12397,14 @@ function ThemeToggle(props) {
|
|
|
12317
12397
|
}
|
|
12318
12398
|
|
|
12319
12399
|
// src/context/RainbowKitContext.tsx
|
|
12320
|
-
import React14 from "react";
|
|
12321
|
-
import "@rainbow-me/rainbowkit/styles.css";
|
|
12322
12400
|
import { darkTheme, lightTheme, RainbowKitProvider } from "@rainbow-me/rainbowkit";
|
|
12401
|
+
import { useMemo as useMemo5 } from "react";
|
|
12323
12402
|
import { WagmiProvider as WagmiProvider2 } from "wagmi";
|
|
12324
12403
|
|
|
12325
12404
|
// src/config/rainbowkit.ts
|
|
12326
12405
|
init_base();
|
|
12327
12406
|
import { getDefaultConfig } from "@rainbow-me/rainbowkit";
|
|
12328
|
-
import {
|
|
12329
|
-
mainnet,
|
|
12330
|
-
polygon,
|
|
12331
|
-
bsc,
|
|
12332
|
-
arbitrum,
|
|
12333
|
-
optimism,
|
|
12334
|
-
avalanche,
|
|
12335
|
-
base,
|
|
12336
|
-
zora
|
|
12337
|
-
} from "wagmi/chains";
|
|
12407
|
+
import { arbitrum, avalanche, base, bsc, mainnet, optimism, polygon, zora } from "wagmi/chains";
|
|
12338
12408
|
var getProjectId = (configProjectId) => {
|
|
12339
12409
|
if (configProjectId) {
|
|
12340
12410
|
return configProjectId;
|
|
@@ -12368,145 +12438,221 @@ var rainbowConfig = createRainbowConfig();
|
|
|
12368
12438
|
var rainbowTheme = {
|
|
12369
12439
|
lightMode: {
|
|
12370
12440
|
colors: {
|
|
12371
|
-
|
|
12372
|
-
|
|
12373
|
-
|
|
12374
|
-
|
|
12375
|
-
|
|
12376
|
-
|
|
12377
|
-
|
|
12378
|
-
|
|
12379
|
-
|
|
12380
|
-
|
|
12381
|
-
|
|
12382
|
-
|
|
12383
|
-
|
|
12384
|
-
|
|
12385
|
-
|
|
12386
|
-
|
|
12387
|
-
|
|
12388
|
-
|
|
12389
|
-
|
|
12390
|
-
|
|
12391
|
-
|
|
12392
|
-
|
|
12393
|
-
|
|
12394
|
-
|
|
12395
|
-
|
|
12396
|
-
|
|
12397
|
-
|
|
12398
|
-
|
|
12399
|
-
|
|
12400
|
-
|
|
12441
|
+
// Primary accent - using --l-pass-primary
|
|
12442
|
+
accentColor: "#000000",
|
|
12443
|
+
// --l-pass-primary
|
|
12444
|
+
accentColorForeground: "#ffffff",
|
|
12445
|
+
// --l-pass-fg-inverted
|
|
12446
|
+
// Borders
|
|
12447
|
+
actionButtonBorder: "rgb(201, 201, 201)",
|
|
12448
|
+
// --l-pass-bd
|
|
12449
|
+
actionButtonBorderMobile: "rgb(169, 169, 169)",
|
|
12450
|
+
// --l-pass-bd-intense
|
|
12451
|
+
// Secondary backgrounds
|
|
12452
|
+
actionButtonSecondaryBackground: "#e4e4e4",
|
|
12453
|
+
// --l-pass-secondary
|
|
12454
|
+
// Close button
|
|
12455
|
+
closeButton: "rgba(0, 0, 0, 0.6)",
|
|
12456
|
+
// --l-pass-fg-h
|
|
12457
|
+
closeButtonBackground: "#e4e4e4",
|
|
12458
|
+
// --l-pass-secondary
|
|
12459
|
+
// Connect button
|
|
12460
|
+
connectButtonBackground: "#ffffff",
|
|
12461
|
+
// --l-pass-bg
|
|
12462
|
+
connectButtonBackgroundError: "#d6204e",
|
|
12463
|
+
// --l-pass-bg-error
|
|
12464
|
+
connectButtonInnerBackground: "linear-gradient(0deg, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.02))",
|
|
12465
|
+
connectButtonText: "#000000",
|
|
12466
|
+
// --l-pass-fg
|
|
12467
|
+
connectButtonTextError: "#ffffff",
|
|
12468
|
+
// --l-pass-error
|
|
12469
|
+
// Status indicators
|
|
12470
|
+
connectionIndicator: "#21ff51",
|
|
12471
|
+
// --l-pass-bg-success
|
|
12472
|
+
standby: "#e9fa00",
|
|
12473
|
+
// --l-pass-bg-warning
|
|
12474
|
+
error: "#d6204e",
|
|
12475
|
+
// --l-pass-bg-error
|
|
12476
|
+
// Card backgrounds
|
|
12477
|
+
downloadBottomCardBackground: "linear-gradient(126deg, rgba(0, 0, 0, 0) 9.49%, rgba(0, 0, 0, 0.05) 71.04%), #ffffff",
|
|
12478
|
+
downloadTopCardBackground: "linear-gradient(126deg, rgba(0, 0, 0, 0.05) 9.49%, rgba(0, 0, 0, 0) 71.04%), #ffffff",
|
|
12479
|
+
// Borders
|
|
12480
|
+
generalBorder: "rgb(201, 201, 201)",
|
|
12481
|
+
// --l-pass-bd
|
|
12482
|
+
generalBorderDim: "rgba(201, 201, 201, 0.5)",
|
|
12483
|
+
// Menu items
|
|
12484
|
+
menuItemBackground: "#e4e4e4",
|
|
12485
|
+
// --l-pass-secondary
|
|
12486
|
+
// Modal
|
|
12487
|
+
modalBackdrop: "rgba(255, 255, 255, 0.8)",
|
|
12488
|
+
// --l-pass-overlay
|
|
12489
|
+
modalBackground: "#ffffff",
|
|
12490
|
+
// --l-pass-bg
|
|
12491
|
+
modalBorder: "rgb(201, 201, 201)",
|
|
12492
|
+
// --l-pass-bd
|
|
12493
|
+
modalText: "#000000",
|
|
12494
|
+
// --l-pass-fg
|
|
12495
|
+
modalTextDim: "rgba(0, 0, 0, 0.4)",
|
|
12496
|
+
// --l-pass-fg-a
|
|
12497
|
+
modalTextSecondary: "rgba(0, 0, 0, 0.6)",
|
|
12498
|
+
// --l-pass-fg-h
|
|
12499
|
+
// Profile
|
|
12500
|
+
profileAction: "#ffffff",
|
|
12501
|
+
// --l-pass-bg
|
|
12502
|
+
profileActionHover: "#e4e4e4",
|
|
12503
|
+
// --l-pass-secondary
|
|
12504
|
+
profileForeground: "#e4e4e4",
|
|
12505
|
+
// --l-pass-secondary
|
|
12506
|
+
// Selection
|
|
12507
|
+
selectedOptionBorder: "rgb(169, 169, 169)"
|
|
12508
|
+
// --l-pass-bd-intense
|
|
12401
12509
|
},
|
|
12402
12510
|
shadows: {
|
|
12403
|
-
connectButton: "0px 4px
|
|
12404
|
-
|
|
12405
|
-
|
|
12406
|
-
|
|
12407
|
-
|
|
12408
|
-
|
|
12511
|
+
connectButton: "0px 4px 10px rgba(0, 0, 0, 0.1)",
|
|
12512
|
+
// matches --l-pass-shadow-c
|
|
12513
|
+
dialog: "0px 8px 32px rgba(0, 0, 0, 0.1)",
|
|
12514
|
+
profileDetailsAction: "0px 2px 6px rgba(0, 0, 0, 0.1)",
|
|
12515
|
+
selectedOption: "0px 2px 6px rgba(0, 0, 0, 0.1)",
|
|
12516
|
+
selectedWallet: "0px 2px 6px rgba(0, 0, 0, 0.1)",
|
|
12517
|
+
walletLogo: "0px 2px 16px rgba(0, 0, 0, 0.1)"
|
|
12409
12518
|
},
|
|
12410
12519
|
radii: {
|
|
12411
|
-
actionButton: "
|
|
12412
|
-
|
|
12413
|
-
|
|
12414
|
-
|
|
12415
|
-
|
|
12520
|
+
actionButton: "10px",
|
|
12521
|
+
// --l-pass-el-bdrs
|
|
12522
|
+
connectButton: "20px",
|
|
12523
|
+
// --l-pass-bdrs
|
|
12524
|
+
menuButton: "10px",
|
|
12525
|
+
// --l-pass-el-bdrs
|
|
12526
|
+
modal: "20px",
|
|
12527
|
+
// --l-pass-bdrs
|
|
12528
|
+
modalMobile: "20px"
|
|
12529
|
+
// --l-pass-bdrs
|
|
12416
12530
|
}
|
|
12417
12531
|
},
|
|
12418
12532
|
darkMode: {
|
|
12419
12533
|
colors: {
|
|
12420
|
-
|
|
12421
|
-
|
|
12422
|
-
|
|
12423
|
-
|
|
12424
|
-
|
|
12425
|
-
|
|
12426
|
-
|
|
12427
|
-
|
|
12428
|
-
|
|
12429
|
-
|
|
12430
|
-
|
|
12431
|
-
|
|
12432
|
-
|
|
12433
|
-
|
|
12434
|
-
|
|
12435
|
-
|
|
12436
|
-
|
|
12437
|
-
|
|
12438
|
-
|
|
12439
|
-
|
|
12440
|
-
|
|
12441
|
-
|
|
12442
|
-
|
|
12443
|
-
|
|
12444
|
-
|
|
12445
|
-
|
|
12446
|
-
|
|
12447
|
-
|
|
12448
|
-
|
|
12449
|
-
|
|
12534
|
+
// Primary accent - using --l-pass-primary
|
|
12535
|
+
accentColor: "#ffffff",
|
|
12536
|
+
// --l-pass-primary
|
|
12537
|
+
accentColorForeground: "#000000",
|
|
12538
|
+
// --l-pass-fg-inverted
|
|
12539
|
+
// Borders
|
|
12540
|
+
actionButtonBorder: "#3a3a3a",
|
|
12541
|
+
// --l-pass-bd
|
|
12542
|
+
actionButtonBorderMobile: "#4a4a4a",
|
|
12543
|
+
// --l-pass-bd-intense
|
|
12544
|
+
// Secondary backgrounds
|
|
12545
|
+
actionButtonSecondaryBackground: "#2a2a2a",
|
|
12546
|
+
// --l-pass-secondary
|
|
12547
|
+
// Close button
|
|
12548
|
+
closeButton: "rgba(255, 255, 255, 0.6)",
|
|
12549
|
+
// --l-pass-fg-h
|
|
12550
|
+
closeButtonBackground: "#2a2a2a",
|
|
12551
|
+
// --l-pass-secondary
|
|
12552
|
+
// Connect button
|
|
12553
|
+
connectButtonBackground: "#1a1a1a",
|
|
12554
|
+
// --l-pass-bg
|
|
12555
|
+
connectButtonBackgroundError: "#d6204e",
|
|
12556
|
+
// --l-pass-bg-error
|
|
12557
|
+
connectButtonInnerBackground: "linear-gradient(0deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02))",
|
|
12558
|
+
connectButtonText: "#ffffff",
|
|
12559
|
+
// --l-pass-fg
|
|
12560
|
+
connectButtonTextError: "#ffffff",
|
|
12561
|
+
// --l-pass-error
|
|
12562
|
+
// Status indicators
|
|
12563
|
+
connectionIndicator: "#21ff51",
|
|
12564
|
+
// --l-pass-bg-success
|
|
12565
|
+
standby: "#e9fa00",
|
|
12566
|
+
// --l-pass-bg-warning
|
|
12567
|
+
error: "#d6204e",
|
|
12568
|
+
// --l-pass-bg-error
|
|
12569
|
+
// Card backgrounds
|
|
12570
|
+
downloadBottomCardBackground: "linear-gradient(126deg, rgba(255, 255, 255, 0) 9.49%, rgba(255, 255, 255, 0.05) 71.04%), #1a1a1a",
|
|
12571
|
+
downloadTopCardBackground: "linear-gradient(126deg, rgba(255, 255, 255, 0.05) 9.49%, rgba(255, 255, 255, 0) 71.04%), #1a1a1a",
|
|
12572
|
+
// Borders
|
|
12573
|
+
generalBorder: "#3a3a3a",
|
|
12574
|
+
// --l-pass-bd
|
|
12575
|
+
generalBorderDim: "rgba(58, 58, 58, 0.5)",
|
|
12576
|
+
// Menu items
|
|
12577
|
+
menuItemBackground: "#2a2a2a",
|
|
12578
|
+
// --l-pass-secondary
|
|
12579
|
+
// Modal
|
|
12580
|
+
modalBackdrop: "rgba(0, 0, 0, 0.8)",
|
|
12581
|
+
// --l-pass-overlay
|
|
12582
|
+
modalBackground: "#1a1a1a",
|
|
12583
|
+
// --l-pass-bg
|
|
12584
|
+
modalBorder: "#3a3a3a",
|
|
12585
|
+
// --l-pass-bd
|
|
12586
|
+
modalText: "#ffffff",
|
|
12587
|
+
// --l-pass-fg
|
|
12588
|
+
modalTextDim: "rgba(255, 255, 255, 0.4)",
|
|
12589
|
+
// --l-pass-fg-a
|
|
12590
|
+
modalTextSecondary: "rgba(255, 255, 255, 0.6)",
|
|
12591
|
+
// --l-pass-fg-h
|
|
12592
|
+
// Profile
|
|
12593
|
+
profileAction: "#1a1a1a",
|
|
12594
|
+
// --l-pass-bg
|
|
12595
|
+
profileActionHover: "#2a2a2a",
|
|
12596
|
+
// --l-pass-secondary
|
|
12597
|
+
profileForeground: "#2a2a2a",
|
|
12598
|
+
// --l-pass-secondary
|
|
12599
|
+
// Selection
|
|
12600
|
+
selectedOptionBorder: "#4a4a4a"
|
|
12601
|
+
// --l-pass-bd-intense
|
|
12450
12602
|
},
|
|
12451
12603
|
shadows: {
|
|
12452
|
-
connectButton: "0px 4px
|
|
12453
|
-
|
|
12454
|
-
|
|
12455
|
-
|
|
12456
|
-
|
|
12457
|
-
|
|
12604
|
+
connectButton: "0px 4px 10px rgba(0, 0, 0, 0.5)",
|
|
12605
|
+
// matches --l-pass-shadow-c
|
|
12606
|
+
dialog: "0px 8px 32px rgba(0, 0, 0, 0.5)",
|
|
12607
|
+
profileDetailsAction: "0px 2px 6px rgba(0, 0, 0, 0.5)",
|
|
12608
|
+
selectedOption: "0px 2px 6px rgba(0, 0, 0, 0.5)",
|
|
12609
|
+
selectedWallet: "0px 2px 6px rgba(0, 0, 0, 0.5)",
|
|
12610
|
+
walletLogo: "0px 2px 16px rgba(0, 0, 0, 0.5)"
|
|
12458
12611
|
},
|
|
12459
12612
|
radii: {
|
|
12460
|
-
actionButton: "
|
|
12461
|
-
|
|
12462
|
-
|
|
12463
|
-
|
|
12464
|
-
|
|
12613
|
+
actionButton: "10px",
|
|
12614
|
+
// --l-pass-el-bdrs
|
|
12615
|
+
connectButton: "20px",
|
|
12616
|
+
// --l-pass-bdrs
|
|
12617
|
+
menuButton: "10px",
|
|
12618
|
+
// --l-pass-el-bdrs
|
|
12619
|
+
modal: "20px",
|
|
12620
|
+
// --l-pass-bdrs
|
|
12621
|
+
modalMobile: "20px"
|
|
12622
|
+
// --l-pass-bdrs
|
|
12465
12623
|
}
|
|
12466
12624
|
}
|
|
12467
12625
|
};
|
|
12468
12626
|
|
|
12469
12627
|
// src/context/RainbowKitContext.tsx
|
|
12628
|
+
import "@rainbow-me/rainbowkit/styles.css";
|
|
12470
12629
|
import { Fragment as Fragment17, jsx as jsx67 } from "react/jsx-runtime";
|
|
12471
|
-
|
|
12472
|
-
const
|
|
12473
|
-
|
|
12474
|
-
|
|
12475
|
-
const
|
|
12476
|
-
|
|
12477
|
-
return createRainbowConfig(config.wallet?.walletConnectProjectId);
|
|
12478
|
-
}, [config.wallet?.walletConnectProjectId]);
|
|
12479
|
-
const customTheme = React14.useMemo(
|
|
12480
|
-
() => isDark ? {
|
|
12630
|
+
function LumiaRainbowKitProvider({ children }) {
|
|
12631
|
+
const config = useLumiaPassportConfig().config;
|
|
12632
|
+
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
12633
|
+
const rainbowConfig2 = useMemo5(() => createRainbowConfig(config.current?.wallet?.walletConnectProjectId), [config]);
|
|
12634
|
+
const customTheme = useMemo5(
|
|
12635
|
+
() => colorMode === "dark" ? {
|
|
12481
12636
|
...darkTheme(),
|
|
12482
|
-
colors: {
|
|
12483
|
-
...darkTheme().colors,
|
|
12484
|
-
...rainbowTheme.darkMode.colors
|
|
12485
|
-
},
|
|
12637
|
+
colors: { ...darkTheme().colors, ...rainbowTheme.darkMode.colors },
|
|
12486
12638
|
shadows: rainbowTheme.darkMode.shadows,
|
|
12487
12639
|
radii: rainbowTheme.darkMode.radii
|
|
12488
12640
|
} : {
|
|
12489
12641
|
...lightTheme(),
|
|
12490
|
-
colors: {
|
|
12491
|
-
...lightTheme().colors,
|
|
12492
|
-
...rainbowTheme.lightMode.colors
|
|
12493
|
-
},
|
|
12642
|
+
colors: { ...lightTheme().colors, ...rainbowTheme.lightMode.colors },
|
|
12494
12643
|
shadows: rainbowTheme.lightMode.shadows,
|
|
12495
12644
|
radii: rainbowTheme.lightMode.radii
|
|
12496
12645
|
},
|
|
12497
|
-
[
|
|
12646
|
+
[colorMode]
|
|
12498
12647
|
);
|
|
12499
|
-
|
|
12500
|
-
if (!isWalletEnabled) {
|
|
12501
|
-
return /* @__PURE__ */ jsx67(Fragment17, { children });
|
|
12502
|
-
}
|
|
12648
|
+
if (!config.current?.wallet?.enabled) return /* @__PURE__ */ jsx67(Fragment17, { children });
|
|
12503
12649
|
return /* @__PURE__ */ jsx67(WagmiProvider2, { config: rainbowConfig2, children: /* @__PURE__ */ jsx67(RainbowKitProvider, { theme: customTheme, modalSize: "compact", showRecentTransactions: true, children }) });
|
|
12504
|
-
}
|
|
12650
|
+
}
|
|
12505
12651
|
|
|
12506
12652
|
// src/internal/components/UserOpStatus.tsx
|
|
12507
12653
|
init_base();
|
|
12508
12654
|
import { AlertCircle as AlertCircle6, CheckCircle2 as CheckCircle27, Clock as Clock2, Copy as Copy5, ExternalLink as ExternalLink2, RefreshCw as RefreshCw4 } from "lucide-react";
|
|
12509
|
-
import * as
|
|
12655
|
+
import * as React15 from "react";
|
|
12510
12656
|
|
|
12511
12657
|
// src/internal/utils/cn.ts
|
|
12512
12658
|
import { clsx as clsx2 } from "clsx";
|
|
@@ -12517,7 +12663,7 @@ function cn2(...inputs) {
|
|
|
12517
12663
|
|
|
12518
12664
|
// src/internal/components/Address.tsx
|
|
12519
12665
|
import { Copy as Copy4, ExternalLink } from "lucide-react";
|
|
12520
|
-
import * as
|
|
12666
|
+
import * as React14 from "react";
|
|
12521
12667
|
import { jsx as jsx68, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
12522
12668
|
function toExplorerAddressUrl(address, chain) {
|
|
12523
12669
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
@@ -12539,7 +12685,7 @@ var Address = ({
|
|
|
12539
12685
|
}) => {
|
|
12540
12686
|
const addr = address || "";
|
|
12541
12687
|
const explorer = toExplorerAddressUrl(addr, chain || void 0);
|
|
12542
|
-
const [copied, setCopied] =
|
|
12688
|
+
const [copied, setCopied] = React14.useState(false);
|
|
12543
12689
|
if (!addr) return /* @__PURE__ */ jsx68("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
12544
12690
|
return /* @__PURE__ */ jsxs53("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
|
|
12545
12691
|
label && /* @__PURE__ */ jsx68("span", { className: "text-sm font-medium", children: label }),
|
|
@@ -12612,20 +12758,20 @@ var UserOpStatus = ({
|
|
|
12612
12758
|
externalState
|
|
12613
12759
|
}) => {
|
|
12614
12760
|
const useExternalState = !!externalState;
|
|
12615
|
-
const [internalReceipt, setInternalReceipt] =
|
|
12616
|
-
const [internalMempool, setInternalMempool] =
|
|
12617
|
-
const [internalError, setInternalError] =
|
|
12618
|
-
const [attempt, setAttempt] =
|
|
12619
|
-
const [internalRefreshing, setInternalRefreshing] =
|
|
12620
|
-
const [timedOut, setTimedOut] =
|
|
12621
|
-
const [rejected, setRejected] =
|
|
12622
|
-
const intervalRef =
|
|
12623
|
-
const startTimeRef =
|
|
12761
|
+
const [internalReceipt, setInternalReceipt] = React15.useState(null);
|
|
12762
|
+
const [internalMempool, setInternalMempool] = React15.useState(null);
|
|
12763
|
+
const [internalError, setInternalError] = React15.useState(null);
|
|
12764
|
+
const [attempt, setAttempt] = React15.useState(0);
|
|
12765
|
+
const [internalRefreshing, setInternalRefreshing] = React15.useState(false);
|
|
12766
|
+
const [timedOut, setTimedOut] = React15.useState(false);
|
|
12767
|
+
const [rejected, setRejected] = React15.useState(false);
|
|
12768
|
+
const intervalRef = React15.useRef(null);
|
|
12769
|
+
const startTimeRef = React15.useRef(Date.now());
|
|
12624
12770
|
const receipt = useExternalState ? externalState.receipt ?? null : internalReceipt;
|
|
12625
12771
|
const mempool = useExternalState ? externalState.mempool ?? null : internalMempool;
|
|
12626
12772
|
const error = useExternalState ? externalState.error ?? null : internalError;
|
|
12627
12773
|
const refreshing = useExternalState ? externalState.isPolling ?? false : internalRefreshing;
|
|
12628
|
-
const rpc =
|
|
12774
|
+
const rpc = React15.useCallback(async (method, params) => {
|
|
12629
12775
|
const body = { jsonrpc: "2.0", id: 1, method, params };
|
|
12630
12776
|
const res = await fetch(getBundlerUrl(), {
|
|
12631
12777
|
method: "POST",
|
|
@@ -12636,14 +12782,14 @@ var UserOpStatus = ({
|
|
|
12636
12782
|
if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
|
|
12637
12783
|
return json.result;
|
|
12638
12784
|
}, []);
|
|
12639
|
-
const extractMempoolInfo =
|
|
12785
|
+
const extractMempoolInfo = React15.useCallback((m) => {
|
|
12640
12786
|
if (!m) return null;
|
|
12641
12787
|
const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
|
|
12642
12788
|
const sender = m.sender || m?.userOperation?.sender || null;
|
|
12643
12789
|
if (!entryPoint && !sender) return null;
|
|
12644
12790
|
return { entryPoint, sender };
|
|
12645
12791
|
}, []);
|
|
12646
|
-
const tick =
|
|
12792
|
+
const tick = React15.useCallback(async () => {
|
|
12647
12793
|
if (useExternalState) return;
|
|
12648
12794
|
const elapsed = Date.now() - startTimeRef.current;
|
|
12649
12795
|
if (elapsed > maxPollTimeMs) {
|
|
@@ -12687,7 +12833,7 @@ var UserOpStatus = ({
|
|
|
12687
12833
|
setAttempt((x) => x + 1);
|
|
12688
12834
|
}
|
|
12689
12835
|
}, [rpc, userOpHash, maxPollTimeMs, extractMempoolInfo, useExternalState]);
|
|
12690
|
-
|
|
12836
|
+
React15.useEffect(() => {
|
|
12691
12837
|
if (useExternalState) return;
|
|
12692
12838
|
console.log("[UserOpStatus] Initializing polling for UserOp hash:", userOpHash);
|
|
12693
12839
|
startTimeRef.current = Date.now();
|
|
@@ -12699,7 +12845,7 @@ var UserOpStatus = ({
|
|
|
12699
12845
|
setAttempt(0);
|
|
12700
12846
|
setInternalRefreshing(false);
|
|
12701
12847
|
}, [userOpHash, useExternalState]);
|
|
12702
|
-
|
|
12848
|
+
React15.useEffect(() => {
|
|
12703
12849
|
if (useExternalState) {
|
|
12704
12850
|
console.log("[UserOpStatus] Using external state, skipping internal polling");
|
|
12705
12851
|
return;
|
|
@@ -12876,7 +13022,7 @@ var UserOpStatus = ({
|
|
|
12876
13022
|
|
|
12877
13023
|
// src/internal/components/Hash.tsx
|
|
12878
13024
|
import { Copy as Copy6, ExternalLink as ExternalLink3 } from "lucide-react";
|
|
12879
|
-
import * as
|
|
13025
|
+
import * as React16 from "react";
|
|
12880
13026
|
import { jsx as jsx71, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
12881
13027
|
function toExplorerUrl(kind, value, chain) {
|
|
12882
13028
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
@@ -12900,7 +13046,7 @@ var Hash = ({
|
|
|
12900
13046
|
}) => {
|
|
12901
13047
|
const value = hash || "";
|
|
12902
13048
|
const explorer = toExplorerUrl(kind, value, chain || void 0);
|
|
12903
|
-
const [copied, setCopied] =
|
|
13049
|
+
const [copied, setCopied] = React16.useState(false);
|
|
12904
13050
|
if (!value) return /* @__PURE__ */ jsx71("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
12905
13051
|
return /* @__PURE__ */ jsxs55("div", { className: cn2("flex items-center gap-2", className), children: [
|
|
12906
13052
|
label && /* @__PURE__ */ jsx71("span", { className: "text-sm font-medium", children: label }),
|
|
@@ -12938,13 +13084,13 @@ var Hash = ({
|
|
|
12938
13084
|
|
|
12939
13085
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
12940
13086
|
init_base();
|
|
12941
|
-
import { useEffect as
|
|
13087
|
+
import { useEffect as useEffect33, useState as useState19 } from "react";
|
|
12942
13088
|
import { jsx as jsx72, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
12943
13089
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
12944
13090
|
const [transactions, setTransactions] = useState19([]);
|
|
12945
13091
|
const [loading, setLoading] = useState19(true);
|
|
12946
13092
|
const [error, setError] = useState19(null);
|
|
12947
|
-
|
|
13093
|
+
useEffect33(() => {
|
|
12948
13094
|
const fetchTransactions = async () => {
|
|
12949
13095
|
try {
|
|
12950
13096
|
setLoading(true);
|
|
@@ -13064,7 +13210,7 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
13064
13210
|
|
|
13065
13211
|
// src/hooks/useUserOpStatus.ts
|
|
13066
13212
|
init_base();
|
|
13067
|
-
import * as
|
|
13213
|
+
import * as React18 from "react";
|
|
13068
13214
|
function useUserOpStatus(options = {}) {
|
|
13069
13215
|
const {
|
|
13070
13216
|
userOpHash,
|
|
@@ -13075,16 +13221,16 @@ function useUserOpStatus(options = {}) {
|
|
|
13075
13221
|
onReceipt,
|
|
13076
13222
|
onTxHash
|
|
13077
13223
|
} = options;
|
|
13078
|
-
const [state, setState] =
|
|
13079
|
-
const [receipt, setReceipt] =
|
|
13080
|
-
const [mempool, setMempool] =
|
|
13081
|
-
const [txHash, setTxHash] =
|
|
13082
|
-
const [error, setError] =
|
|
13083
|
-
const [isPolling, setIsPolling] =
|
|
13084
|
-
const intervalRef =
|
|
13085
|
-
const startTimeRef =
|
|
13086
|
-
const prevStateRef =
|
|
13087
|
-
const rpc =
|
|
13224
|
+
const [state, setState] = React18.useState("waiting");
|
|
13225
|
+
const [receipt, setReceipt] = React18.useState(null);
|
|
13226
|
+
const [mempool, setMempool] = React18.useState(null);
|
|
13227
|
+
const [txHash, setTxHash] = React18.useState(null);
|
|
13228
|
+
const [error, setError] = React18.useState(null);
|
|
13229
|
+
const [isPolling, setIsPolling] = React18.useState(false);
|
|
13230
|
+
const intervalRef = React18.useRef(null);
|
|
13231
|
+
const startTimeRef = React18.useRef(Date.now());
|
|
13232
|
+
const prevStateRef = React18.useRef("waiting");
|
|
13233
|
+
const rpc = React18.useCallback(async (method, params) => {
|
|
13088
13234
|
const body = { jsonrpc: "2.0", id: 1, method, params };
|
|
13089
13235
|
const res = await fetch(getBundlerUrl(), {
|
|
13090
13236
|
method: "POST",
|
|
@@ -13095,21 +13241,21 @@ function useUserOpStatus(options = {}) {
|
|
|
13095
13241
|
if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
|
|
13096
13242
|
return json.result;
|
|
13097
13243
|
}, []);
|
|
13098
|
-
const extractMempoolInfo =
|
|
13244
|
+
const extractMempoolInfo = React18.useCallback((m) => {
|
|
13099
13245
|
if (!m) return null;
|
|
13100
13246
|
const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
|
|
13101
13247
|
const sender = m.sender || m?.userOperation?.sender || null;
|
|
13102
13248
|
if (!entryPoint && !sender) return null;
|
|
13103
13249
|
return { entryPoint, sender };
|
|
13104
13250
|
}, []);
|
|
13105
|
-
const updateState =
|
|
13251
|
+
const updateState = React18.useCallback((newState) => {
|
|
13106
13252
|
setState(newState);
|
|
13107
13253
|
if (prevStateRef.current !== newState) {
|
|
13108
13254
|
prevStateRef.current = newState;
|
|
13109
13255
|
onStateChange?.(newState);
|
|
13110
13256
|
}
|
|
13111
13257
|
}, [onStateChange]);
|
|
13112
|
-
const tick =
|
|
13258
|
+
const tick = React18.useCallback(async () => {
|
|
13113
13259
|
if (!userOpHash || !enabled) return;
|
|
13114
13260
|
if (receipt) {
|
|
13115
13261
|
console.log("[useUserOpStatus] Already have receipt, skipping tick");
|
|
@@ -13182,7 +13328,7 @@ function useUserOpStatus(options = {}) {
|
|
|
13182
13328
|
onTxHash,
|
|
13183
13329
|
onReceipt
|
|
13184
13330
|
]);
|
|
13185
|
-
|
|
13331
|
+
React18.useEffect(() => {
|
|
13186
13332
|
if (!userOpHash || !enabled) return;
|
|
13187
13333
|
console.log("[useUserOpStatus] Initializing for UserOp hash:", userOpHash);
|
|
13188
13334
|
startTimeRef.current = Date.now();
|
|
@@ -13194,7 +13340,7 @@ function useUserOpStatus(options = {}) {
|
|
|
13194
13340
|
setError(null);
|
|
13195
13341
|
setIsPolling(false);
|
|
13196
13342
|
}, [userOpHash, enabled]);
|
|
13197
|
-
|
|
13343
|
+
React18.useEffect(() => {
|
|
13198
13344
|
if (!userOpHash || !enabled) {
|
|
13199
13345
|
console.log("[useUserOpStatus] Not starting polling - no hash or disabled");
|
|
13200
13346
|
return;
|
|
@@ -13230,7 +13376,7 @@ function useUserOpStatus(options = {}) {
|
|
|
13230
13376
|
}
|
|
13231
13377
|
};
|
|
13232
13378
|
}, [userOpHash, enabled, pollMs]);
|
|
13233
|
-
const refresh =
|
|
13379
|
+
const refresh = React18.useCallback(async () => {
|
|
13234
13380
|
await tick();
|
|
13235
13381
|
}, [tick]);
|
|
13236
13382
|
return {
|
|
@@ -13246,11 +13392,11 @@ function useUserOpStatus(options = {}) {
|
|
|
13246
13392
|
|
|
13247
13393
|
// src/hooks/useLogout.ts
|
|
13248
13394
|
import { logout as coreLogout, jwtTokenManager as jwtTokenManager3 } from "@lumiapassport/core/auth";
|
|
13249
|
-
import { useCallback as
|
|
13395
|
+
import { useCallback as useCallback24 } from "react";
|
|
13250
13396
|
function useLogout() {
|
|
13251
13397
|
const { setSession, setIsLoading, setAddress, setStatus, setError, address } = useLumiaPassportSession();
|
|
13252
13398
|
const { callbacks } = useLumiaPassportConfig();
|
|
13253
|
-
const logout2 =
|
|
13399
|
+
const logout2 = useCallback24(async () => {
|
|
13254
13400
|
const prevAddress = address;
|
|
13255
13401
|
let userId = null;
|
|
13256
13402
|
setIsLoading(true);
|