@lumiapassport/ui-kit 1.14.0 → 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 +14 -36
- package/dist/iframe/main.js.map +1 -1
- package/dist/index.cjs +951 -855
- 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 +804 -717
- 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-\\[10px\\]{padding-top:10px;padding-bottom:10px}.lumia-scope .py-\\[var\\(--l-pass-pd\\)\\]{padding-top:var(--l-pass-pd);padding-bottom:var(--l-pass-pd)}.lumia-scope .pb-2{padding-bottom:.5rem}.lumia-scope .pb-3{padding-bottom:.75rem}.lumia-scope .pb-4{padding-bottom:1rem}.lumia-scope .pb-5{padding-bottom:1.25rem}.lumia-scope .pb-6{padding-bottom:1.5rem}.lumia-scope .pl-11{padding-left:2.75rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pt-0{padding-top:0}.lumia-scope .pt-2{padding-top:.5rem}.lumia-scope .pt-3{padding-top:.75rem}.lumia-scope .pt-4{padding-top:1rem}.lumia-scope .pt-5{padding-top:1.25rem}.lumia-scope .text-left{text-align:left}.lumia-scope .text-center{text-align:center}.lumia-scope .text-right{text-align:right}.lumia-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lumia-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lumia-scope .text-2xl{font-size:1.5rem;line-height:2rem}.lumia-scope .text-3xl{font-size:1.875rem;line-height:2.25rem}.lumia-scope .text-4xl{font-size:2.25rem;line-height:2.5rem}.lumia-scope .text-\\[10px\\]{font-size:10px}.lumia-scope .text-\\[11px\\]{font-size:11px}.lumia-scope .text-base{font-size:1rem;line-height:1.5rem}.lumia-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.lumia-scope .text-sm{font-size:.875rem;line-height:1.25rem}.lumia-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.lumia-scope .text-xs{font-size:.75rem;line-height:1rem}.lumia-scope .font-bold{font-weight:700}.lumia-scope .font-medium{font-weight:500}.lumia-scope .font-semibold{font-weight:600}.lumia-scope .uppercase{text-transform:uppercase}.lumia-scope .italic{font-style:italic}.lumia-scope .leading-4{line-height:1rem}.lumia-scope .leading-5{line-height:1.25rem}.lumia-scope .leading-6{line-height:1.5rem}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-relaxed{line-height:1.625}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.lumia-scope .tracking-wide{letter-spacing:.025em}.lumia-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .text-\\[var\\(--l-pass-bg-error\\)\\]{color:var(--l-pass-bg-error)}.lumia-scope .text-\\[var\\(--l-pass-bg-success\\)\\]{color:var(--l-pass-bg-success)}.lumia-scope .text-\\[var\\(--l-pass-bg-warning\\)\\]{color:var(--l-pass-bg-warning)}.lumia-scope .text-\\[var\\(--l-pass-error\\)\\]{color:var(--l-pass-error)}.lumia-scope .text-\\[var\\(--l-pass-fg\\)\\]{color:var(--l-pass-fg)}.lumia-scope .text-\\[var\\(--l-pass-fg-inverted\\)\\]{color:var(--l-pass-fg-inverted)}.lumia-scope .text-\\[var\\(--l-pass-fg-muted\\)\\]{color:var(--l-pass-fg-muted)}.lumia-scope .text-\\[var\\(--l-pass-info\\)\\]{color:var(--l-pass-info)}.lumia-scope .text-\\[var\\(--l-pass-muted\\)\\]{color:var(--l-pass-muted)}.lumia-scope .text-\\[var\\(--l-pass-primary\\)\\]{color:var(--l-pass-primary)}.lumia-scope .text-\\[var\\(--l-pass-success\\)\\]{color:var(--l-pass-success)}.lumia-scope .text-\\[var\\(--l-pass-text-secondary\\)\\]{color:var(--l-pass-text-secondary)}.lumia-scope .text-\\[var\\(--l-pass-warning\\)\\]{color:var(--l-pass-warning)}.lumia-scope .text-amber-100{--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}.lumia-scope .text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.lumia-scope .text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.lumia-scope .text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.lumia-scope .text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.lumia-scope .text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.lumia-scope .text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.lumia-scope .text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.lumia-scope .text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400\\/80{color:rgba(96,165,250,.8)}.lumia-scope .text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.lumia-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.lumia-scope .text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.lumia-scope .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.lumia-scope .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.lumia-scope .text-green-200{--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.lumia-scope .text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.lumia-scope .text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.lumia-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.lumia-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.lumia-scope .text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.lumia-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.lumia-scope .text-orange-100{--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.lumia-scope .text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.lumia-scope .text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.lumia-scope .text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.lumia-scope .text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.lumia-scope .text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.lumia-scope .text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.lumia-scope .text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.lumia-scope .text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.lumia-scope .text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.lumia-scope .text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.lumia-scope .text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.lumia-scope .text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.lumia-scope .text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.lumia-scope .text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.lumia-scope .text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .text-red-300\\/95{color:hsla(0,94%,82%,.95)}.lumia-scope .text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .text-red-400\\/80{color:hsla(0,91%,71%,.8)}.lumia-scope .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.lumia-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.lumia-scope .text-red-600\\/90{color:rgba(220,38,38,.9)}.lumia-scope .text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.lumia-scope .text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.lumia-scope .text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.lumia-scope .text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.lumia-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.lumia-scope .text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.lumia-scope .underline{text-decoration-line:underline}.lumia-scope .underline-offset-4{text-underline-offset:4px}.lumia-scope .opacity-0{opacity:0}.lumia-scope .opacity-100{opacity:1}.lumia-scope .opacity-40{opacity:.4}.lumia-scope .opacity-50{opacity:.5}.lumia-scope .opacity-60{opacity:.6}.lumia-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.lumia-scope .shadow,.lumia-scope .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.lumia-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.lumia-scope .shadow-lg,.lumia-scope .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lumia-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.lumia-scope .outline{outline-style:solid}.lumia-scope .blur{--tw-blur:blur(8px)}.lumia-scope .blur,.lumia-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .backdrop-blur{--tw-backdrop-blur:blur(8px)}.lumia-scope .backdrop-blur,.lumia-scope .backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.lumia-scope .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-none{transition-property:none}.lumia-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .duration-200{transition-duration:.2s}.lumia-scope .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lumia-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.lumia-scope{--l-pass-ff:var(--lumia-passport-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--l-pass-maw:var(--lumia-passport-maw,320px);--l-pass-pd:var(--lumia-passport-pd,12px);--l-pass-gap:var(--lumia-passport-gap,10px);--l-pass-bdrs:var(--lumia-passport-bdrs,20px);--l-pass-el-bdrs:var(--lumia-passport-element-bdrs,10px);--l-pass-backdrop-blur:var(--lumia-passport-backdrop-blur,10px)}.lumia-scope[data-lumia-passport-mode=light]{--l-pass-overlay:var(--lumia-passport-overlay,hsla(0,0%,100%,.8));--l-pass-bg:var(--lumia-passport-bg,#fff);--l-pass-fg:var(--lumia-passport-fg,#000);--l-pass-fg-h:var(--lumia-passport-fg-h,rgba(0,0,0,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,rgba(0,0,0,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#fff);--l-pass-fg-muted:var(--lumia-passport-fg-muted,rgba(0,0,0,.6));--l-pass-primary:var(--lumia-passport-primary,#000);--l-pass-primary-h:var(--lumia-passport-primary-h,rgba(0,0,0,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,rgba(0,0,0,.6));--l-pass-secondary:var(--lumia-passport-secondary,#e4e4e4);--l-pass-secondary-h:var(--lumia-passport-secondary-h,hsla(0,0%,89%,.8));--l-pass-secondary-a:var(--lumia-passport-secondary-a,hsla(0,0%,89%,.6));--l-pass-bd:var(--lumia-passport-bd,#c9c9c9);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#a9a9a9);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#e4e4e4);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope[data-lumia-passport-mode=dark]{--l-pass-overlay:var(--lumia-passport-overlay,rgba(0,0,0,.8));--l-pass-bg:var(--lumia-passport-bg,#1a1a1a);--l-pass-fg:var(--lumia-passport-fg,#fff);--l-pass-fg-h:var(--lumia-passport-fg-h,hsla(0,0%,100%,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,hsla(0,0%,100%,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#000);--l-pass-fg-muted:var(--lumia-passport-fg-muted,hsla(0,0%,100%,.6));--l-pass-primary:var(--lumia-passport-primary,#fff);--l-pass-primary-h:var(--lumia-passport-primary-h,hsla(0,0%,100%,.9));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.7));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.9));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.7));--l-pass-bd:var(--lumia-passport-bd,#3a3a3a);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#4a4a4a);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.5));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#2a2a2a);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg-inverted));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg-inverted));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope,.lumia-scope *{margin:0;box-sizing:border-box;font-family:var(--l-pass-ff);font-optical-sizing:auto}.lumia-scope button,.lumia-scope h1,.lumia-scope h2,.lumia-scope h3,.lumia-scope h4,.lumia-scope h5,.lumia-scope h6,.lumia-scope input,.lumia-scope p,.lumia-scope select,.lumia-scope textarea{font-family:var(--l-pass-ff)!important;margin:0}.lumia-scope button,.lumia-scope input,.lumia-scope select,.lumia-scope textarea{border-style:solid;outline:none;appearance:none;-webkit-appearance:none;-moz-appearance:none}.lumia-scope .lumia-passport-button{box-shadow:0 4px 10px var(--l-pass-shadow-c),inset 0 0 0 1px var(--l-pass-bd);transition:transform .25s ease}.lumia-scope .lumia-passport-button:hover{transform:scale(1.02)}.lumia-scope .lumia-passport-button:active{transform:scale(1)}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.lumia-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.lumia-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.lumia-scope .list-scrollbar-y{width:100%;padding-right:var(--l-pass-list-scrollbar-pd-r,0);overflow-y:auto;max-height:var(--l-pass-scrollbar-mah,300px)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--l-pass-bd)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.lumia-scope .noScrollbars::-webkit-scrollbar{display:none}.lumia-scope .file\\:mr-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{margin-right:var(--l-pass-pd)}.lumia-scope .file\\:h-8::file-selector-button{height:2rem}.lumia-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.lumia-scope .file\\:rounded-\\[var\\(--l-pass-el-bdrs\\)\\]::file-selector-button{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .file\\:border-0::file-selector-button{border-width:0}.lumia-scope .file\\:bg-\\[var\\(--l-pass-primary\\)\\]::file-selector-button{background-color:var(--l-pass-primary)}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .file\\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.lumia-scope .file\\:font-medium::file-selector-button{font-weight:500}.lumia-scope .file\\:text-\\[var\\(--l-pass-fg-inverted\\)\\]::file-selector-button{color:var(--l-pass-fg-inverted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::-moz-placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .placeholder\\:text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .focus-within\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus-within{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.lumia-scope .hover\\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover{background-color:var(--l-pass-bg)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-primary-h\\)\\]:hover{background-color:var(--l-pass-primary-h)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-secondary-h\\)\\]:hover{background-color:var(--l-pass-secondary-h)}.lumia-scope .hover\\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-900\\/60:hover{background-color:rgba(30,58,138,.6)}.lumia-scope .hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-100:hover{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-purple-100:hover{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-600\\/90:hover{background-color:rgba(220,38,38,.9)}.lumia-scope .hover\\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-900\\/20:hover{background-color:rgba(127,29,29,.2)}.lumia-scope .hover\\:bg-slate-800:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover{color:var(--l-pass-fg)}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg-h\\)\\]:hover{color:var(--l-pass-fg-h)}.lumia-scope .hover\\:text-gray-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-300:hover{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .hover\\:underline:hover{text-decoration-line:underline}.lumia-scope .hover\\:opacity-80:hover{opacity:.8}.lumia-scope .hover\\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.lumia-scope .focus\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}.lumia-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.lumia-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.lumia-scope .focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.lumia-scope .active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active{background-color:var(--l-pass-bg)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-primary-a\\)\\]:active{background-color:var(--l-pass-primary-a)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:active{background-color:var(--l-pass-secondary-a)}.lumia-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .active\\:text-\\[var\\(--l-pass-fg-a\\)\\]:active{color:var(--l-pass-fg-a)}.lumia-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.lumia-scope .disabled\\:cursor-default:disabled{cursor:default}.lumia-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.lumia-scope .disabled\\:opacity-100:disabled{opacity:1}.lumia-scope .disabled\\:opacity-50:disabled{opacity:.5}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-primary\\)\\]:hover:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover:disabled{color:var(--l-pass-fg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-primary\\)\\]:active:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:active\\:text-\\[var\\(--l-pass-fg\\)\\]:active:disabled{color:var(--l-pass-fg)}.lumia-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.lumia-scope :is(.group:hover .group-hover\\:opacity-60){opacity:.6}.lumia-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--l-pass-bd-intense\\)\\][data-state=checked]{border-color:var(--l-pass-bd-intense)}.lumia-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--l-pass-secondary\\)\\][data-state=checked]{background-color:var(--l-pass-secondary)}.lumia-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--l-pass-fg\\)\\][data-state=checked]{color:var(--l-pass-fg)}@media (min-width:640px){.lumia-scope .sm\\:flex-row{flex-direction:row}.lumia-scope .sm\\:justify-end{justify-content:flex-end}.lumia-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope .sm\\:text-left{text-align:left}}@media (min-width:768px){.lumia-scope .md\\:h-8{height:2rem}.lumia-scope .md\\:w-8{width:2rem}.lumia-scope .md\\:gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .md\\:py-0{padding-top:0;padding-bottom:0}}@media (prefers-color-scheme:dark){.lumia-scope .dark\\:bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-yellow-500:hover{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}}.lumia-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-5 svg){height:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-6 svg){height:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-5 svg){width:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-6 svg){width:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
|
|
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.14.
|
|
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",
|
|
@@ -5016,6 +5009,7 @@ var DialogOverlay = forwardRef3(
|
|
|
5016
5009
|
ref,
|
|
5017
5010
|
style: { backdropFilter: "blur(var(--l-pass-backdrop-blur))" },
|
|
5018
5011
|
className: cn(
|
|
5012
|
+
"w-[100dvw] h-[100dvh]",
|
|
5019
5013
|
"fixed inset-0 z-[9998] bg-[var(--l-pass-overlay)]",
|
|
5020
5014
|
closing ? "animate-dialog-out" : "animate-dialog-in",
|
|
5021
5015
|
className
|
|
@@ -5028,7 +5022,7 @@ DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
|
5028
5022
|
function useDecideContentStyles() {
|
|
5029
5023
|
const isMobileView = useLayoutStore((st) => st.isMobileView);
|
|
5030
5024
|
const isClosing = useLayoutStore((st) => !!st.isDialogOpen && !!st.isDialogClosing);
|
|
5031
|
-
const mobileStyles = isMobileView ? { "--l-pass-
|
|
5025
|
+
const mobileStyles = isMobileView ? { "--l-pass-bdrs": "20px 20px 0px 0px" } : {};
|
|
5032
5026
|
return {
|
|
5033
5027
|
isClosing,
|
|
5034
5028
|
isMobileView,
|
|
@@ -5046,15 +5040,17 @@ var DialogContent = forwardRef3(
|
|
|
5046
5040
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
5047
5041
|
const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
|
|
5048
5042
|
const { isMobileView, isClosing, style } = useDecideContentStyles();
|
|
5049
|
-
|
|
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: [
|
|
5050
5046
|
/* @__PURE__ */ jsx9(DialogOverlay, { closing: isClosing }),
|
|
5051
5047
|
/* @__PURE__ */ jsx9(
|
|
5052
5048
|
"div",
|
|
5053
5049
|
{
|
|
5054
5050
|
className: cn(
|
|
5055
|
-
"fixed inset-0 z-[9999] flex items-center justify-center pointer-events-none",
|
|
5056
|
-
|
|
5057
|
-
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"
|
|
5058
5054
|
),
|
|
5059
5055
|
children: /* @__PURE__ */ jsxs8(
|
|
5060
5056
|
DialogPrimitive.Content,
|
|
@@ -5062,10 +5058,10 @@ var DialogContent = forwardRef3(
|
|
|
5062
5058
|
ref,
|
|
5063
5059
|
style: !!className ? void 0 : CONTENT_BG_SETUP,
|
|
5064
5060
|
className: cn(
|
|
5065
|
-
"relative pointer-events-auto
|
|
5066
|
-
"
|
|
5067
|
-
"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)]",
|
|
5068
5063
|
"rounded-[var(--l-pass-bdrs)] overflow-hidden",
|
|
5064
|
+
isMobileView ? "w-[100dvw]" : "w-[var(--l-pass-maw)]",
|
|
5069
5065
|
className
|
|
5070
5066
|
),
|
|
5071
5067
|
...props,
|
|
@@ -5185,7 +5181,7 @@ function useAutoConnect() {
|
|
|
5185
5181
|
}
|
|
5186
5182
|
return { session: sess, address: addr };
|
|
5187
5183
|
} catch (error) {
|
|
5188
|
-
if (error?.code
|
|
5184
|
+
if (error?.code === "KEYSHARE_RECOVERY_NEEDED") {
|
|
5189
5185
|
setStatus("idle");
|
|
5190
5186
|
setPage("keyshare-restore" /* KEYSHARE_RESTORE */);
|
|
5191
5187
|
}
|
|
@@ -5300,7 +5296,9 @@ function useAutoConnect() {
|
|
|
5300
5296
|
setError(null);
|
|
5301
5297
|
setStatus("recovery_needed");
|
|
5302
5298
|
setIsLoading(false);
|
|
5303
|
-
|
|
5299
|
+
setTimeout(() => {
|
|
5300
|
+
setPage("keyshare-restore" /* KEYSHARE_RESTORE */);
|
|
5301
|
+
}, 500);
|
|
5304
5302
|
} else {
|
|
5305
5303
|
console.warn("[UI-KIT][AutoConnect] Unexpected error during auto-connect:", e);
|
|
5306
5304
|
setIsLoading(false);
|
|
@@ -5314,43 +5312,56 @@ function useAutoConnect() {
|
|
|
5314
5312
|
}
|
|
5315
5313
|
|
|
5316
5314
|
// src/internal/hooks/useBackupStatusChanges.ts
|
|
5317
|
-
import {
|
|
5315
|
+
import { useMutation as useMutation2 } from "@tanstack/react-query";
|
|
5316
|
+
import { useEffect as useEffect3, useRef as useRef2 } from "react";
|
|
5318
5317
|
init_vaultClient();
|
|
5318
|
+
var NO_BACKUP_WARN_DELAY_MS = 5e3;
|
|
5319
5319
|
function useBackupStatusChanges() {
|
|
5320
5320
|
const setHasServerVault = useLumiaPassportSession((st) => st.setHasServerVault);
|
|
5321
|
-
|
|
5322
|
-
|
|
5321
|
+
const noBackupWarnTimeout = useRef2(null);
|
|
5322
|
+
const { mutate: handleBackupStatusChanged } = useMutation2({
|
|
5323
|
+
mutationFn: async (event) => {
|
|
5323
5324
|
const customEvent = event;
|
|
5324
|
-
|
|
5325
|
-
|
|
5326
|
-
|
|
5327
|
-
|
|
5328
|
-
|
|
5329
|
-
if (
|
|
5330
|
-
|
|
5331
|
-
|
|
5332
|
-
const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
|
|
5333
|
-
setHasServerVault(!!hasRecoveryData);
|
|
5334
|
-
} catch (e) {
|
|
5335
|
-
console.warn("[UI-KIT] Failed to refresh vault status after backup:", e);
|
|
5336
|
-
}
|
|
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;
|
|
5337
5333
|
}
|
|
5338
|
-
|
|
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(() => {
|
|
5339
5350
|
window.addEventListener("lumia-passport-backup-status-changed", handleBackupStatusChanged);
|
|
5340
5351
|
return () => {
|
|
5341
5352
|
window.removeEventListener("lumia-passport-backup-status-changed", handleBackupStatusChanged);
|
|
5342
5353
|
};
|
|
5343
|
-
}, [
|
|
5354
|
+
}, []);
|
|
5344
5355
|
}
|
|
5345
5356
|
|
|
5346
5357
|
// src/internal/hooks/useCheckVaultStatus.ts
|
|
5347
|
-
import { useMutation as
|
|
5358
|
+
import { useMutation as useMutation3 } from "@tanstack/react-query";
|
|
5348
5359
|
import { useEffect as useEffect4 } from "react";
|
|
5349
5360
|
init_vaultClient();
|
|
5350
5361
|
function useCheckVaultStatus() {
|
|
5351
5362
|
const address = useLumiaPassportSession((st) => st.address);
|
|
5352
5363
|
const setHasServerVault = useLumiaPassportSession((st) => st.setHasServerVault);
|
|
5353
|
-
const { mutate: checkVaultStatus } =
|
|
5364
|
+
const { mutate: checkVaultStatus } = useMutation3({
|
|
5354
5365
|
mutationFn: async () => {
|
|
5355
5366
|
const stats = await getShareRecoveryStats();
|
|
5356
5367
|
const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
|
|
@@ -5394,7 +5405,7 @@ function useDetectMaxScrollHeight() {
|
|
|
5394
5405
|
}
|
|
5395
5406
|
|
|
5396
5407
|
// src/internal/hooks/usePageMapper.tsx
|
|
5397
|
-
import { useCallback as
|
|
5408
|
+
import { useCallback as useCallback16, useEffect as useEffect24 } from "react";
|
|
5398
5409
|
|
|
5399
5410
|
// src/internal/components/AuthMenu/AuthMenu.tsx
|
|
5400
5411
|
import { AnimatePresence, motion } from "framer-motion";
|
|
@@ -5492,11 +5503,11 @@ init_auth();
|
|
|
5492
5503
|
init_profile();
|
|
5493
5504
|
|
|
5494
5505
|
// src/internal/components/ui/input.tsx
|
|
5495
|
-
import React2, { useImperativeHandle, useRef as
|
|
5506
|
+
import React2, { useImperativeHandle, useRef as useRef3 } from "react";
|
|
5496
5507
|
import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
5497
5508
|
var Input = React2.forwardRef((props, ref) => {
|
|
5498
5509
|
const { className, disabled, error, Icon, element, ...inputProps } = props;
|
|
5499
|
-
const internalRef =
|
|
5510
|
+
const internalRef = useRef3(null);
|
|
5500
5511
|
useImperativeHandle(ref, () => internalRef.current);
|
|
5501
5512
|
return /* @__PURE__ */ jsxs10("div", { className: cn("w-full flex flex-col gap-1", className), children: [
|
|
5502
5513
|
/* @__PURE__ */ jsxs10(
|
|
@@ -5685,11 +5696,11 @@ function PasskeyAddIcon(props) {
|
|
|
5685
5696
|
init_auth();
|
|
5686
5697
|
|
|
5687
5698
|
// src/internal/components/Expandable/hooks/useExpandable.ts
|
|
5688
|
-
import { useCallback as useCallback3, useEffect as useEffect6, useRef as
|
|
5699
|
+
import { useCallback as useCallback3, useEffect as useEffect6, useRef as useRef4 } from "react";
|
|
5689
5700
|
var useExpandable = (props) => {
|
|
5690
5701
|
const { isExpanded = false, children, initHeight = 0, minHeight = 0 } = props;
|
|
5691
|
-
const expandableRef =
|
|
5692
|
-
const contentRef =
|
|
5702
|
+
const expandableRef = useRef4(null);
|
|
5703
|
+
const contentRef = useRef4(null);
|
|
5693
5704
|
useEffect6(() => {
|
|
5694
5705
|
if (!expandableRef.current) return;
|
|
5695
5706
|
expandableRef.current.style.setProperty("--ifo-basic-expandable-h", `${initHeight}px )`);
|
|
@@ -5964,8 +5975,9 @@ import { Fragment as Fragment2 } from "react";
|
|
|
5964
5975
|
// src/internal/components/AuthMenu/SignInStep/Email.tsx
|
|
5965
5976
|
init_lumiaPassport();
|
|
5966
5977
|
init_projectId();
|
|
5967
|
-
import { useMutation as
|
|
5978
|
+
import { useMutation as useMutation4 } from "@tanstack/react-query";
|
|
5968
5979
|
import { ChevronRight, Loader as Loader3, Mail as Mail3 } from "lucide-react";
|
|
5980
|
+
import { useRef as useRef5 } from "react";
|
|
5969
5981
|
|
|
5970
5982
|
// src/internal/components/ui/highlight.tsx
|
|
5971
5983
|
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
@@ -5981,7 +5993,7 @@ function Highlight(props) {
|
|
|
5981
5993
|
"div",
|
|
5982
5994
|
{
|
|
5983
5995
|
className: cn(
|
|
5984
|
-
"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",
|
|
5985
5997
|
CARD_STYLES[type],
|
|
5986
5998
|
className
|
|
5987
5999
|
),
|
|
@@ -5993,14 +6005,12 @@ function Highlight(props) {
|
|
|
5993
6005
|
// src/internal/components/AuthMenu/SignInStep/Email.tsx
|
|
5994
6006
|
import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
5995
6007
|
function Email() {
|
|
5996
|
-
const {
|
|
5997
|
-
|
|
5998
|
-
callbacks
|
|
5999
|
-
} = useLumiaPassportConfig();
|
|
6008
|
+
const { config, callbacks } = useLumiaPassportConfig();
|
|
6009
|
+
const buttonRef = useRef5(null);
|
|
6000
6010
|
const isLoading = useLumiaPassportSession((st) => st.isLoading);
|
|
6001
6011
|
const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
|
|
6002
6012
|
const { email, codeSendError, alert: alert2, setEmail, setCodeSendError, setExpiresIn, setStep, setAlert } = useAuthStore();
|
|
6003
|
-
const { mutate: onSendVerificationCode } =
|
|
6013
|
+
const { mutate: onSendVerificationCode } = useMutation4({
|
|
6004
6014
|
mutationFn: async (mail) => {
|
|
6005
6015
|
const isEmailValid = mail.length !== 0 && /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(mail);
|
|
6006
6016
|
if (!isEmailValid) {
|
|
@@ -6040,35 +6050,48 @@ function Email() {
|
|
|
6040
6050
|
}
|
|
6041
6051
|
});
|
|
6042
6052
|
return /* @__PURE__ */ jsxs14(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
6043
|
-
/* @__PURE__ */ jsxs14(
|
|
6044
|
-
|
|
6045
|
-
|
|
6046
|
-
|
|
6047
|
-
|
|
6048
|
-
|
|
6049
|
-
|
|
6050
|
-
autoComplete: "off",
|
|
6051
|
-
placeholder: config.email.placeholder,
|
|
6052
|
-
value: email,
|
|
6053
|
-
className: "flex-1 w-full",
|
|
6054
|
-
onChange: (e) => {
|
|
6055
|
-
if (alert2) setAlert(null);
|
|
6056
|
-
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();
|
|
6057
6060
|
}
|
|
6058
|
-
}
|
|
6059
|
-
|
|
6060
|
-
|
|
6061
|
-
|
|
6062
|
-
|
|
6063
|
-
|
|
6064
|
-
|
|
6065
|
-
|
|
6066
|
-
|
|
6067
|
-
|
|
6068
|
-
|
|
6069
|
-
|
|
6070
|
-
|
|
6071
|
-
|
|
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
|
+
),
|
|
6072
6095
|
!!codeSendError && /* @__PURE__ */ jsxs14(Highlight, { type: "warning", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
6073
6096
|
/* @__PURE__ */ jsx19(Mail3, { className: "w-4 h-4" }),
|
|
6074
6097
|
/* @__PURE__ */ jsx19("span", { children: codeSendError })
|
|
@@ -6622,13 +6645,13 @@ function SignInStep(props) {
|
|
|
6622
6645
|
|
|
6623
6646
|
// src/internal/components/AuthMenu/useAuthMenuHanders.ts
|
|
6624
6647
|
init_auth();
|
|
6625
|
-
import { useCallback as useCallback6, useRef as
|
|
6648
|
+
import { useCallback as useCallback6, useRef as useRef6, useState as useState4 } from "react";
|
|
6626
6649
|
function useAuthMenuHandlers() {
|
|
6627
6650
|
const {
|
|
6628
6651
|
config: { current: config },
|
|
6629
6652
|
callbacks
|
|
6630
6653
|
} = useLumiaPassportConfig();
|
|
6631
|
-
const pendingLoginResponseRef =
|
|
6654
|
+
const pendingLoginResponseRef = useRef6(null);
|
|
6632
6655
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
6633
6656
|
const [telegramCleanup, setTelegramCleanup] = useState4(null);
|
|
6634
6657
|
const { usePaymaster, setError, setStatus, setSession, setAddress, setRecoveryUserId, setHasServerVault } = useLumiaPassportSession();
|
|
@@ -6740,7 +6763,9 @@ function useAuthMenuHandlers() {
|
|
|
6740
6763
|
setError(null);
|
|
6741
6764
|
setRecoveryUserId(userId);
|
|
6742
6765
|
setStatus("recovery_needed");
|
|
6743
|
-
|
|
6766
|
+
setTimeout(() => {
|
|
6767
|
+
setPage("keyshare-restore" /* KEYSHARE_RESTORE */);
|
|
6768
|
+
}, 500);
|
|
6744
6769
|
} else {
|
|
6745
6770
|
pendingLoginResponseRef.current = null;
|
|
6746
6771
|
await jwtTokenManager2.clearTokens();
|
|
@@ -6837,7 +6862,7 @@ function useListenIframeAuthEvents() {
|
|
|
6837
6862
|
|
|
6838
6863
|
// src/internal/components/AuthMenu/VerifyStep/VerifyStep.tsx
|
|
6839
6864
|
init_lumiaPassport();
|
|
6840
|
-
import { useMutation as
|
|
6865
|
+
import { useMutation as useMutation5 } from "@tanstack/react-query";
|
|
6841
6866
|
import { ArrowLeft as ArrowLeft3, Loader as Loader4 } from "lucide-react";
|
|
6842
6867
|
|
|
6843
6868
|
// src/internal/assets/OtpIcon.tsx
|
|
@@ -6858,7 +6883,7 @@ init_auth();
|
|
|
6858
6883
|
init_projectId();
|
|
6859
6884
|
|
|
6860
6885
|
// src/internal/components/AuthMenu/VerifyStep/VerificationCodeInput.tsx
|
|
6861
|
-
import { useEffect as useEffect8, useRef as
|
|
6886
|
+
import { useEffect as useEffect8, useRef as useRef7, useState as useState5 } from "react";
|
|
6862
6887
|
import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
6863
6888
|
var VerificationCodeInput = (props) => {
|
|
6864
6889
|
const { onVerifyCode, onResendCode, isLoading, expiresIn, error } = props;
|
|
@@ -6869,8 +6894,8 @@ var VerificationCodeInput = (props) => {
|
|
|
6869
6894
|
const t = setInterval(() => setTimeLeft((secs) => secs > 0 ? secs - 1 : 0), 1e3);
|
|
6870
6895
|
return () => clearInterval(t);
|
|
6871
6896
|
}, []);
|
|
6872
|
-
const lastSubmittedRef =
|
|
6873
|
-
const inputsRef =
|
|
6897
|
+
const lastSubmittedRef = useRef7(null);
|
|
6898
|
+
const inputsRef = useRef7([]);
|
|
6874
6899
|
const [digits, setDigits] = useState5(["", "", "", "", "", ""]);
|
|
6875
6900
|
useEffect8(() => {
|
|
6876
6901
|
const code = digits.join("");
|
|
@@ -7006,7 +7031,7 @@ function VerifyStep(props) {
|
|
|
7006
7031
|
setEmail,
|
|
7007
7032
|
setExpiresIn
|
|
7008
7033
|
} = useAuthStore();
|
|
7009
|
-
const { mutate: onVerifyCode, isPending: isCodeVerifying } =
|
|
7034
|
+
const { mutate: onVerifyCode, isPending: isCodeVerifying } = useMutation5({
|
|
7010
7035
|
mutationFn: async (code) => {
|
|
7011
7036
|
setIsLoading(true);
|
|
7012
7037
|
setVerificationError("");
|
|
@@ -7079,7 +7104,7 @@ function VerifyStep(props) {
|
|
|
7079
7104
|
setIsLoading(false);
|
|
7080
7105
|
}
|
|
7081
7106
|
});
|
|
7082
|
-
const { mutate: onResendCode, isPending: isCodeResending } =
|
|
7107
|
+
const { mutate: onResendCode, isPending: isCodeResending } = useMutation5({
|
|
7083
7108
|
mutationFn: async () => {
|
|
7084
7109
|
setVerificationError("");
|
|
7085
7110
|
setIsLoading(true);
|
|
@@ -7333,9 +7358,9 @@ function RampnowIcon() {
|
|
|
7333
7358
|
}
|
|
7334
7359
|
|
|
7335
7360
|
// src/internal/components/BuyMenu/binance/Binance.tsx
|
|
7336
|
-
import { useMutation as
|
|
7361
|
+
import { useMutation as useMutation6, useQuery as useQuery3, useQueryClient } from "@tanstack/react-query";
|
|
7337
7362
|
import { DollarSign, LoaderIcon } from "lucide-react";
|
|
7338
|
-
import { useEffect as useEffect11, useRef as
|
|
7363
|
+
import { useEffect as useEffect11, useRef as useRef8 } from "react";
|
|
7339
7364
|
|
|
7340
7365
|
// src/internal/components/BuyMenu/components/PaymentSelector.tsx
|
|
7341
7366
|
import { jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
@@ -7500,7 +7525,7 @@ function Binance(props) {
|
|
|
7500
7525
|
queryKey: [QUERY_KEYS2.binancePaymentModes, walletAddress, isLumiaAvailable, srcQueryAmount],
|
|
7501
7526
|
queryFn: async () => getPaymentMethodsQuery({ totalAmount: String(srcQueryAmount || 1) })
|
|
7502
7527
|
});
|
|
7503
|
-
const lastLoadedPaymentModes =
|
|
7528
|
+
const lastLoadedPaymentModes = useRef8([]);
|
|
7504
7529
|
useEffect11(() => {
|
|
7505
7530
|
if (!paymentModes?.length) return;
|
|
7506
7531
|
setPaymentMode(getPayMethodID(paymentModes[0]));
|
|
@@ -7529,7 +7554,7 @@ function Binance(props) {
|
|
|
7529
7554
|
[lumiaNetworkError, paymentMethodsError, quoteError],
|
|
7530
7555
|
setSrcInputAmount
|
|
7531
7556
|
);
|
|
7532
|
-
const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } =
|
|
7557
|
+
const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = useMutation6({
|
|
7533
7558
|
mutationFn: async () => {
|
|
7534
7559
|
setRedirecting(true);
|
|
7535
7560
|
const returnUrl = window.location.href.split("?")[0];
|
|
@@ -7602,7 +7627,7 @@ function Binance(props) {
|
|
|
7602
7627
|
{
|
|
7603
7628
|
size: "large",
|
|
7604
7629
|
disabled: isContinueDisabled,
|
|
7605
|
-
className: cn("w-full h-12", { "cursor-pointer": !isContinueDisabled }),
|
|
7630
|
+
className: cn("w-full h-12 flex-none", { "cursor-pointer": !isContinueDisabled }),
|
|
7606
7631
|
variant: "default",
|
|
7607
7632
|
onClick: () => checkoutFundWalletOrder(),
|
|
7608
7633
|
children: [
|
|
@@ -7615,7 +7640,7 @@ function Binance(props) {
|
|
|
7615
7640
|
}
|
|
7616
7641
|
|
|
7617
7642
|
// src/internal/components/BuyMenu/rampnow/Rampnow.tsx
|
|
7618
|
-
import { useMutation as
|
|
7643
|
+
import { useMutation as useMutation7, useQuery as useQuery4, useQueryClient as useQueryClient2 } from "@tanstack/react-query";
|
|
7619
7644
|
import { DollarSign as DollarSign2, LoaderIcon as LoaderIcon2 } from "lucide-react";
|
|
7620
7645
|
import { useEffect as useEffect12 } from "react";
|
|
7621
7646
|
|
|
@@ -7710,7 +7735,7 @@ function Rampnow(props) {
|
|
|
7710
7735
|
paymentMode
|
|
7711
7736
|
})
|
|
7712
7737
|
});
|
|
7713
|
-
const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } =
|
|
7738
|
+
const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = useMutation7({
|
|
7714
7739
|
mutationFn: async () => {
|
|
7715
7740
|
if (!configData?.apiKey?.length || !configData?.orderUrl?.length) {
|
|
7716
7741
|
throw new Error("RampNow order service is not available");
|
|
@@ -7785,7 +7810,7 @@ function Rampnow(props) {
|
|
|
7785
7810
|
{
|
|
7786
7811
|
size: "large",
|
|
7787
7812
|
disabled: isContinueDisabled,
|
|
7788
|
-
className: cn("w-full h-12", { "cursor-pointer": !isContinueDisabled }),
|
|
7813
|
+
className: cn("w-full h-12 flex-none", { "cursor-pointer": !isContinueDisabled }),
|
|
7789
7814
|
variant: "default",
|
|
7790
7815
|
onClick: () => checkoutFundWalletOrder(),
|
|
7791
7816
|
children: [
|
|
@@ -7821,7 +7846,7 @@ var RAMP_PROVIDERS = {
|
|
|
7821
7846
|
var REDIRECT_TIMEOUT_MS = 1500;
|
|
7822
7847
|
|
|
7823
7848
|
// src/internal/components/BuyMenu/useSelectables.ts
|
|
7824
|
-
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";
|
|
7825
7850
|
|
|
7826
7851
|
// src/internal/utils/debounce.ts
|
|
7827
7852
|
function debounce2(func, waitFor) {
|
|
@@ -7838,7 +7863,7 @@ var useSelectables = () => {
|
|
|
7838
7863
|
const [redirecting, setRedirecting] = useState6(false);
|
|
7839
7864
|
const [rampProvider, setrRampProvider] = useState6("binance");
|
|
7840
7865
|
const [minAmount, setMinAmount] = useState6(0);
|
|
7841
|
-
const inputRef =
|
|
7866
|
+
const inputRef = useRef9(null);
|
|
7842
7867
|
const [srcQueryAmount, setSrcQueryAmount] = useState6(0);
|
|
7843
7868
|
const [srcInputAmount, setSrcInputAmount] = useState6(0);
|
|
7844
7869
|
const [paymentMode, setPaymentMode] = useState6(null);
|
|
@@ -7883,14 +7908,17 @@ function BuyMenu() {
|
|
|
7883
7908
|
return /* @__PURE__ */ jsxs25(
|
|
7884
7909
|
"div",
|
|
7885
7910
|
{
|
|
7886
|
-
style: {
|
|
7911
|
+
style: {
|
|
7912
|
+
"--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
|
|
7913
|
+
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
7914
|
+
},
|
|
7887
7915
|
className: "list-scrollbar-y w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]",
|
|
7888
7916
|
children: [
|
|
7889
|
-
/* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-
|
|
7917
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
7890
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" }) }),
|
|
7891
7919
|
/* @__PURE__ */ jsx33("span", { className: "text-xl font-semibold", children: "Buy LUMIA" })
|
|
7892
7920
|
] }),
|
|
7893
|
-
/* @__PURE__ */ jsx33("div", { className: "w-full flex items-center gap-
|
|
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(
|
|
7894
7922
|
Button,
|
|
7895
7923
|
{
|
|
7896
7924
|
type: "button",
|
|
@@ -7902,7 +7930,7 @@ function BuyMenu() {
|
|
|
7902
7930
|
},
|
|
7903
7931
|
id
|
|
7904
7932
|
)) }),
|
|
7905
|
-
/* @__PURE__ */ jsx33(
|
|
7933
|
+
/* @__PURE__ */ jsx33(ProviderComponent, { control, walletAddress })
|
|
7906
7934
|
]
|
|
7907
7935
|
}
|
|
7908
7936
|
);
|
|
@@ -8246,7 +8274,7 @@ function KeyshareBackupMenu() {
|
|
|
8246
8274
|
}
|
|
8247
8275
|
|
|
8248
8276
|
// src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
|
|
8249
|
-
import { useMutation as
|
|
8277
|
+
import { useMutation as useMutation8 } from "@tanstack/react-query";
|
|
8250
8278
|
import { AlertCircle as AlertCircle4, CheckCircle2 as CheckCircle22, Loader as Loader9, LogOut as LogOut2 } from "lucide-react";
|
|
8251
8279
|
import React8, { useCallback as useCallback9, useEffect as useEffect15 } from "react";
|
|
8252
8280
|
init_vaultClient();
|
|
@@ -8560,7 +8588,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8560
8588
|
};
|
|
8561
8589
|
checkBackupAvailability();
|
|
8562
8590
|
}, [recoveryUserId]);
|
|
8563
|
-
const { mutate: restoreFromServer2, isPending: isRestoringFromServer } =
|
|
8591
|
+
const { mutate: restoreFromServer2, isPending: isRestoringFromServer } = useMutation8({
|
|
8564
8592
|
mutationFn: async () => {
|
|
8565
8593
|
setError(null);
|
|
8566
8594
|
setSuccess(null);
|
|
@@ -8595,7 +8623,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8595
8623
|
setError(errorMsg);
|
|
8596
8624
|
}
|
|
8597
8625
|
});
|
|
8598
|
-
const { mutate: restoreFromFile, isPending: isRestoringFromFile } =
|
|
8626
|
+
const { mutate: restoreFromFile, isPending: isRestoringFromFile } = useMutation8({
|
|
8599
8627
|
mutationFn: async () => {
|
|
8600
8628
|
if (!restoreFile) {
|
|
8601
8629
|
throw new Error("Please select a backup file");
|
|
@@ -8629,7 +8657,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8629
8657
|
setError(errorMsg);
|
|
8630
8658
|
}
|
|
8631
8659
|
});
|
|
8632
|
-
const { mutate: disconnect, isPending: isDisconnecting } =
|
|
8660
|
+
const { mutate: disconnect, isPending: isDisconnecting } = useMutation8({
|
|
8633
8661
|
mutationFn: async () => {
|
|
8634
8662
|
setError(null);
|
|
8635
8663
|
setStatus("disconnecting");
|
|
@@ -8721,7 +8749,7 @@ import { ArrowLeft as ArrowLeft6 } from "lucide-react";
|
|
|
8721
8749
|
import { LoaderIcon as LoaderIcon3 } from "lucide-react";
|
|
8722
8750
|
|
|
8723
8751
|
// src/internal/components/KYC/useSumsubIframe.ts
|
|
8724
|
-
import { useEffect as useEffect16, useRef as
|
|
8752
|
+
import { useEffect as useEffect16, useRef as useRef10, useState as useState8 } from "react";
|
|
8725
8753
|
|
|
8726
8754
|
// src/internal/components/KYC/api/sumsub.ts
|
|
8727
8755
|
init_httpClient();
|
|
@@ -8844,7 +8872,7 @@ function useSumsubIframe({ iframeUrl }) {
|
|
|
8844
8872
|
config: { current: config }
|
|
8845
8873
|
} = useLumiaPassportConfig();
|
|
8846
8874
|
const { colorMode } = useLumiaPassportColorMode();
|
|
8847
|
-
const iframeRef =
|
|
8875
|
+
const iframeRef = useRef10(null);
|
|
8848
8876
|
const [isLoading, setIsLoading] = useState8(true);
|
|
8849
8877
|
const [error, setError] = useState8(null);
|
|
8850
8878
|
const [height, setHeight] = useState8(0);
|
|
@@ -8960,6 +8988,21 @@ function KycMenu() {
|
|
|
8960
8988
|
import { ChevronLeft, ChevronRight as ChevronRight2, DollarSign as DollarSign3, Wallet2 as Wallet23 } from "lucide-react";
|
|
8961
8989
|
import { useEffect as useEffect17 } from "react";
|
|
8962
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
|
+
|
|
8963
9006
|
// src/internal/components/MainMenu/BackupWarning.tsx
|
|
8964
9007
|
import { AnimatePresence as AnimatePresence2, motion as motion2 } from "framer-motion";
|
|
8965
9008
|
import { DatabaseBackup } from "lucide-react";
|
|
@@ -9014,9 +9057,10 @@ function MainMenu() {
|
|
|
9014
9057
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9015
9058
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9016
9059
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
9060
|
+
useProvidersList();
|
|
9017
9061
|
useEffect17(() => setMainPageHeight(DEFAULT_MAIN_MENU_HEIGHT), [setMainPageHeight]);
|
|
9018
9062
|
return /* @__PURE__ */ jsxs33("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
9019
|
-
/* @__PURE__ */ jsx42("div", { className: "w-full grid grid-cols-4 gap-0 md:gap-[var(--l-pass-gap)] py-[10px] md:py-
|
|
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(
|
|
9020
9064
|
Button,
|
|
9021
9065
|
{
|
|
9022
9066
|
size: "large",
|
|
@@ -9041,7 +9085,7 @@ import { AlertTriangle as AlertTriangle3, ArrowLeft as ArrowLeft7, Loader as Loa
|
|
|
9041
9085
|
import { useMemo as useMemo2 } from "react";
|
|
9042
9086
|
|
|
9043
9087
|
// src/modules/linkedProfiles.ts
|
|
9044
|
-
import { useQuery as
|
|
9088
|
+
import { useQuery as useQuery6, useQueryClient as useQueryClient3 } from "@tanstack/react-query";
|
|
9045
9089
|
import { useCallback as useCallback10 } from "react";
|
|
9046
9090
|
init_auth();
|
|
9047
9091
|
init_common();
|
|
@@ -9068,7 +9112,7 @@ function useLumiaPassportLinkedProfiles() {
|
|
|
9068
9112
|
data,
|
|
9069
9113
|
isFetching: isLoading,
|
|
9070
9114
|
error
|
|
9071
|
-
} =
|
|
9115
|
+
} = useQuery6({
|
|
9072
9116
|
retry: false,
|
|
9073
9117
|
enabled: !!address,
|
|
9074
9118
|
queryKey: [LINKED_PROFILES_QUERY_KEY, address],
|
|
@@ -9088,7 +9132,7 @@ init_passkey2();
|
|
|
9088
9132
|
// src/internal/components/ManageWalletMenu/EmailForm.tsx
|
|
9089
9133
|
init_lumiaPassport();
|
|
9090
9134
|
init_projectId();
|
|
9091
|
-
import { useMutation as
|
|
9135
|
+
import { useMutation as useMutation9 } from "@tanstack/react-query";
|
|
9092
9136
|
import { ChevronRight as ChevronRight3, Loader as Loader10, Mail as Mail4 } from "lucide-react";
|
|
9093
9137
|
|
|
9094
9138
|
// src/internal/components/ManageWalletMenu/hooks/useStore.ts
|
|
@@ -9130,7 +9174,7 @@ function EmailForm() {
|
|
|
9130
9174
|
const isLoading = useLumiaPassportSession((st) => st.isLoading);
|
|
9131
9175
|
const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
|
|
9132
9176
|
const { email, setEmail, setEmailCodeSentError, setEmailCodeExpiresIn, setEmailStep } = useManageWalletStore();
|
|
9133
|
-
const { mutate: onSendVerificationCode } =
|
|
9177
|
+
const { mutate: onSendVerificationCode } = useMutation9({
|
|
9134
9178
|
mutationFn: async () => {
|
|
9135
9179
|
if (!email) return;
|
|
9136
9180
|
setIsLoading(true);
|
|
@@ -9206,27 +9250,12 @@ function EmailForm() {
|
|
|
9206
9250
|
] });
|
|
9207
9251
|
}
|
|
9208
9252
|
|
|
9209
|
-
// src/internal/components/ManageWalletMenu/hooks/useProvidersList.ts
|
|
9210
|
-
init_common();
|
|
9211
|
-
import { useQuery as useQuery6 } from "@tanstack/react-query";
|
|
9212
|
-
var PROVIDERS_QUERY_KEY = "lumia-passport-providers-query";
|
|
9213
|
-
function useProvidersList() {
|
|
9214
|
-
const address = useLumiaPassportSession((st) => st.address);
|
|
9215
|
-
const page = useLayoutDataStore((st) => st.page);
|
|
9216
|
-
return useQuery6({
|
|
9217
|
-
retry: false,
|
|
9218
|
-
enabled: !!address && page === "manage-wallet" /* MANAGE_WALLET */,
|
|
9219
|
-
queryKey: [PROVIDERS_QUERY_KEY, address],
|
|
9220
|
-
queryFn: async () => getLinkedProviders()
|
|
9221
|
-
});
|
|
9222
|
-
}
|
|
9223
|
-
|
|
9224
9253
|
// src/internal/components/ManageWalletMenu/hooks/useSendVerificationCode.ts
|
|
9225
9254
|
init_email();
|
|
9226
|
-
import { useMutation as
|
|
9255
|
+
import { useMutation as useMutation10 } from "@tanstack/react-query";
|
|
9227
9256
|
function useSendVerificationCode() {
|
|
9228
9257
|
const { setVerificationError, setLinkIsLoading, setEmailCodeSentError, setEmailCodeExpiresIn } = useManageWalletStore();
|
|
9229
|
-
return
|
|
9258
|
+
return useMutation10({
|
|
9230
9259
|
mutationFn: async (email) => {
|
|
9231
9260
|
if (!email) {
|
|
9232
9261
|
throw new Error("Email is required");
|
|
@@ -9249,7 +9278,7 @@ function useSendVerificationCode() {
|
|
|
9249
9278
|
}
|
|
9250
9279
|
|
|
9251
9280
|
// src/internal/components/ManageWalletMenu/hooks/useVerifyCode.ts
|
|
9252
|
-
import { useMutation as
|
|
9281
|
+
import { useMutation as useMutation11, useQueryClient as useQueryClient4 } from "@tanstack/react-query";
|
|
9253
9282
|
init_email();
|
|
9254
9283
|
function useVerifyCode() {
|
|
9255
9284
|
const { callbacks } = useLumiaPassportConfig();
|
|
@@ -9267,7 +9296,7 @@ function useVerifyCode() {
|
|
|
9267
9296
|
setVerificationError,
|
|
9268
9297
|
setEmailCodeSentError
|
|
9269
9298
|
} = useManageWalletStore();
|
|
9270
|
-
return
|
|
9299
|
+
return useMutation11({
|
|
9271
9300
|
mutationFn: async (codeToVerify) => {
|
|
9272
9301
|
const code = codeToVerify ?? emailCode;
|
|
9273
9302
|
if (!code) {
|
|
@@ -9719,6 +9748,7 @@ function ManageWalletMenu() {
|
|
|
9719
9748
|
config: { current: config }
|
|
9720
9749
|
} = useLumiaPassportConfig();
|
|
9721
9750
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9751
|
+
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
9722
9752
|
const {
|
|
9723
9753
|
providerType,
|
|
9724
9754
|
isWalletLinking,
|
|
@@ -9798,48 +9828,58 @@ function ManageWalletMenu() {
|
|
|
9798
9828
|
const showCurrentProviders = !isProvidersLoading && !providersError && (providerType !== "email" && providerType !== "passkey" || providerType === null);
|
|
9799
9829
|
const showExtraProvidersUi = !isProvidersLoading && !providersError && (providerType === "email" || providerType === "passkey");
|
|
9800
9830
|
const combinedError = emailCodeSentError || linkError || verificationError || null;
|
|
9801
|
-
return /* @__PURE__ */ jsxs38(
|
|
9802
|
-
|
|
9803
|
-
|
|
9804
|
-
|
|
9805
|
-
{
|
|
9806
|
-
|
|
9807
|
-
|
|
9808
|
-
|
|
9809
|
-
|
|
9810
|
-
|
|
9811
|
-
|
|
9812
|
-
|
|
9813
|
-
|
|
9814
|
-
|
|
9815
|
-
|
|
9816
|
-
|
|
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" })
|
|
9817
9861
|
}
|
|
9818
|
-
|
|
9819
|
-
|
|
9820
|
-
|
|
9821
|
-
|
|
9822
|
-
|
|
9823
|
-
|
|
9824
|
-
|
|
9825
|
-
|
|
9826
|
-
|
|
9827
|
-
|
|
9828
|
-
|
|
9829
|
-
|
|
9830
|
-
|
|
9831
|
-
|
|
9832
|
-
|
|
9833
|
-
|
|
9834
|
-
|
|
9835
|
-
showExtraProvidersUi && /* @__PURE__ */ jsx47(AddProvider, {}),
|
|
9836
|
-
combinedError && /* @__PURE__ */ jsx47(Highlight, { type: "error", children: /* @__PURE__ */ jsx47("span", { children: combinedError }) })
|
|
9837
|
-
] })
|
|
9838
|
-
] });
|
|
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
|
+
);
|
|
9839
9879
|
}
|
|
9840
9880
|
|
|
9841
9881
|
// src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx
|
|
9842
|
-
import { useMutation as
|
|
9882
|
+
import { useMutation as useMutation12, useQueryClient as useQueryClient8 } from "@tanstack/react-query";
|
|
9843
9883
|
import { Key as Key7, Loader as Loader12 } from "lucide-react";
|
|
9844
9884
|
import { useState as useState10 } from "react";
|
|
9845
9885
|
init_auth();
|
|
@@ -9851,7 +9891,7 @@ function UnlinkProviderMenu() {
|
|
|
9851
9891
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9852
9892
|
const { confirmUnlink, setConfirmUnlink, setLinkError } = useManageWalletStore();
|
|
9853
9893
|
const [confirmInput, setConfirmInput] = useState10("");
|
|
9854
|
-
const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } =
|
|
9894
|
+
const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = useMutation12({
|
|
9855
9895
|
mutationFn: async () => {
|
|
9856
9896
|
if (!confirmUnlink) {
|
|
9857
9897
|
throw new Error("No provider to unlink");
|
|
@@ -9926,7 +9966,7 @@ function UnlinkProviderMenu() {
|
|
|
9926
9966
|
// src/internal/components/PortfolioMenu/PortfolioMenu.tsx
|
|
9927
9967
|
import { useQueryClient as useQueryClient10 } from "@tanstack/react-query";
|
|
9928
9968
|
import { ArrowLeft as ArrowLeft8, Gem, Loader as Loader14, RefreshCw } from "lucide-react";
|
|
9929
|
-
import { useCallback as useCallback12
|
|
9969
|
+
import { useCallback as useCallback12 } from "react";
|
|
9930
9970
|
|
|
9931
9971
|
// src/modules/assets.ts
|
|
9932
9972
|
init_base();
|
|
@@ -10186,70 +10226,47 @@ function PortfolioMenu() {
|
|
|
10186
10226
|
const qc = useQueryClient10();
|
|
10187
10227
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10188
10228
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
10189
|
-
const assetsContainerListRef = useRef9(null);
|
|
10190
|
-
const assetsListRef = useRef9(null);
|
|
10191
10229
|
const address = useLumiaPassportSession((st) => st.address);
|
|
10192
10230
|
const { assets, refreshBalances, isLoading } = useAssets(address);
|
|
10193
10231
|
const refreshAllAssetsBalances = useCallback12(() => {
|
|
10194
10232
|
Promise.all(projectAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
|
|
10195
10233
|
refreshBalances();
|
|
10196
10234
|
}, [qc, projectAssets, refreshBalances]);
|
|
10197
|
-
|
|
10198
|
-
|
|
10199
|
-
|
|
10200
|
-
|
|
10201
|
-
|
|
10202
|
-
|
|
10203
|
-
|
|
10204
|
-
|
|
10205
|
-
|
|
10206
|
-
|
|
10207
|
-
|
|
10208
|
-
|
|
10209
|
-
|
|
10210
|
-
|
|
10211
|
-
|
|
10212
|
-
|
|
10213
|
-
|
|
10214
|
-
|
|
10215
|
-
|
|
10216
|
-
|
|
10217
|
-
|
|
10218
|
-
|
|
10219
|
-
|
|
10220
|
-
|
|
10221
|
-
|
|
10222
|
-
|
|
10223
|
-
|
|
10224
|
-
|
|
10225
|
-
|
|
10226
|
-
|
|
10227
|
-
|
|
10228
|
-
|
|
10229
|
-
|
|
10230
|
-
|
|
10231
|
-
|
|
10232
|
-
] }),
|
|
10233
|
-
!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: [
|
|
10234
|
-
/* @__PURE__ */ jsx50(Gem, { className: "w-12 h-12 mb-2" }),
|
|
10235
|
-
/* @__PURE__ */ jsx50("p", { children: "No assets found" })
|
|
10236
|
-
] }),
|
|
10237
|
-
!isLoading && assets.length > 0 && /* @__PURE__ */ jsx50(
|
|
10238
|
-
"div",
|
|
10239
|
-
{
|
|
10240
|
-
ref: assetsContainerListRef,
|
|
10241
|
-
style: { borderTop: "1px solid var(--l-pass-list-bd)", borderBottom: "1px solid var(--l-pass-list-bd)" },
|
|
10242
|
-
className: "list-scrollbar-y relative",
|
|
10243
|
-
children: /* @__PURE__ */ jsxs41("div", { ref: assetsListRef, className: "w-full flex flex-col gap-[var(--l-pass-gap)] py-[var(--l-pass-pd)]", children: [
|
|
10244
|
-
projectAssets.map((asset, index) => /* @__PURE__ */ jsx50(
|
|
10245
|
-
PortfolioItem,
|
|
10246
|
-
{
|
|
10247
|
-
isProjectAsset: true,
|
|
10248
|
-
address,
|
|
10249
|
-
asset
|
|
10250
|
-
},
|
|
10251
|
-
`project-${asset.symbol}-${index}`
|
|
10252
|
-
)),
|
|
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}`)),
|
|
10253
10270
|
assets.map((asset, index) => /* @__PURE__ */ jsx50(
|
|
10254
10271
|
PortfolioItem,
|
|
10255
10272
|
{
|
|
@@ -10259,15 +10276,16 @@ function PortfolioMenu() {
|
|
|
10259
10276
|
`${asset.type}-${asset.address || "native"}-${index}`
|
|
10260
10277
|
))
|
|
10261
10278
|
] })
|
|
10262
|
-
}
|
|
10263
|
-
|
|
10264
|
-
|
|
10265
|
-
|
|
10279
|
+
] })
|
|
10280
|
+
]
|
|
10281
|
+
}
|
|
10282
|
+
);
|
|
10266
10283
|
}
|
|
10267
10284
|
|
|
10268
10285
|
// src/internal/components/SecurityMenu/SecurityMenu.tsx
|
|
10269
10286
|
init_auth();
|
|
10270
10287
|
init_keyshare();
|
|
10288
|
+
import { useQuery as useQuery8, useQueryClient as useQueryClient11 } from "@tanstack/react-query";
|
|
10271
10289
|
import {
|
|
10272
10290
|
AlertTriangle as AlertTriangle4,
|
|
10273
10291
|
ArrowLeft as ArrowLeft9,
|
|
@@ -10281,17 +10299,28 @@ import {
|
|
|
10281
10299
|
Shield,
|
|
10282
10300
|
Trash2 as Trash22
|
|
10283
10301
|
} from "lucide-react";
|
|
10284
|
-
import {
|
|
10302
|
+
import { useEffect as useEffect20, useState as useState11 } from "react";
|
|
10303
|
+
init_iframe_manager();
|
|
10285
10304
|
init_vaultClient();
|
|
10286
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
|
+
}
|
|
10287
10316
|
function SecurityMenu() {
|
|
10288
|
-
const
|
|
10317
|
+
const qc = useQueryClient11();
|
|
10318
|
+
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
10289
10319
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10290
|
-
const open = page === "security";
|
|
10291
10320
|
const userId = jwtTokenManager2.getUserId();
|
|
10292
|
-
|
|
10293
|
-
|
|
10294
|
-
|
|
10321
|
+
useEffect20(() => {
|
|
10322
|
+
if (!userId) setPage("main-menu" /* MAIN_MENU */);
|
|
10323
|
+
}, [userId, setPage]);
|
|
10295
10324
|
const [localInfo, setLocalInfo] = useState11(null);
|
|
10296
10325
|
const [recoveryCreatedAt, setRecoveryCreatedAt] = useState11(null);
|
|
10297
10326
|
const [recoveryBrowser, setRecoveryBrowser] = useState11(null);
|
|
@@ -10302,237 +10331,246 @@ function SecurityMenu() {
|
|
|
10302
10331
|
const [hasServerBackup, setHasServerBackup] = useState11(false);
|
|
10303
10332
|
const [trustedApps, setTrustedApps] = useState11([]);
|
|
10304
10333
|
const [appToRemove, setAppToRemove] = useState11(null);
|
|
10305
|
-
const
|
|
10306
|
-
|
|
10307
|
-
|
|
10308
|
-
|
|
10309
|
-
|
|
10310
|
-
|
|
10311
|
-
|
|
10312
|
-
|
|
10313
|
-
|
|
10314
|
-
|
|
10315
|
-
|
|
10316
|
-
console.log("[SecurityModal] Received trusted apps:", apps);
|
|
10317
|
-
console.log("[SecurityModal] Trusted apps count:", apps?.length);
|
|
10318
|
-
console.log("[SecurityModal] Setting trusted apps state with:", apps);
|
|
10319
|
-
setTrustedApps(apps);
|
|
10320
|
-
} catch (error) {
|
|
10321
|
-
console.error("[SecurityModal] Failed to load trusted apps:", error);
|
|
10322
|
-
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");
|
|
10323
10345
|
}
|
|
10324
|
-
const
|
|
10325
|
-
const
|
|
10326
|
-
|
|
10327
|
-
|
|
10328
|
-
setRecoveryCreatedAt(created?.at || null);
|
|
10329
|
-
setRecoveryBrowser(created?.browser || null);
|
|
10330
|
-
setRecoveryUa(created?.ua || null);
|
|
10331
|
-
setRecoveryDeviceId(created?.deviceId || null);
|
|
10332
|
-
setRecoveryDeviceName(created?.deviceName || null);
|
|
10333
|
-
setRecoveryCountry(created?.country || null);
|
|
10334
|
-
} finally {
|
|
10335
|
-
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 };
|
|
10336
10350
|
}
|
|
10337
|
-
}
|
|
10338
|
-
|
|
10339
|
-
if (
|
|
10340
|
-
|
|
10341
|
-
|
|
10342
|
-
|
|
10343
|
-
|
|
10344
|
-
|
|
10345
|
-
|
|
10346
|
-
|
|
10347
|
-
|
|
10348
|
-
|
|
10349
|
-
|
|
10350
|
-
|
|
10351
|
-
|
|
10352
|
-
|
|
10353
|
-
|
|
10354
|
-
|
|
10355
|
-
|
|
10356
|
-
|
|
10357
|
-
|
|
10358
|
-
|
|
10359
|
-
|
|
10360
|
-
|
|
10361
|
-
|
|
10362
|
-
|
|
10363
|
-
|
|
10364
|
-
/* @__PURE__ */ jsxs42(
|
|
10365
|
-
"
|
|
10366
|
-
{
|
|
10367
|
-
className:
|
|
10368
|
-
|
|
10369
|
-
|
|
10370
|
-
|
|
10371
|
-
|
|
10372
|
-
|
|
10373
|
-
|
|
10374
|
-
|
|
10375
|
-
|
|
10376
|
-
|
|
10377
|
-
|
|
10378
|
-
/* @__PURE__ */ jsxs42("div", { className: "space-y-2 text-center", children: [
|
|
10379
|
-
/* @__PURE__ */ jsxs42("div", { className: "flex items-center justify-center gap-2", children: [
|
|
10380
|
-
/* @__PURE__ */ jsx51(Laptop, { className: "h-4 w-4" }),
|
|
10381
|
-
/* @__PURE__ */ jsx51("span", { className: "text-sm font-medium", children: "Local" })
|
|
10382
|
-
] }),
|
|
10383
|
-
/* @__PURE__ */ jsxs42(
|
|
10384
|
-
"span",
|
|
10385
|
-
{
|
|
10386
|
-
className: cn(
|
|
10387
|
-
"inline-flex items-center text-sm px-3 py-2 rounded-full text-white",
|
|
10388
|
-
localInfo?.hasKeyshare ? "bg-[var(--l-pass-success)]" : "bg-[var(--l-pass-warning)]"
|
|
10389
|
-
),
|
|
10390
|
-
children: [
|
|
10391
|
-
localInfo?.hasKeyshare ? /* @__PURE__ */ jsx51(CheckCircle23, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ jsx51(AlertTriangle4, { className: "h-4 w-4 mr-1" }),
|
|
10392
|
-
localInfo?.hasKeyshare ? "Ready" : "Missing"
|
|
10393
|
-
]
|
|
10394
|
-
}
|
|
10395
|
-
)
|
|
10396
|
-
] }),
|
|
10397
|
-
/* @__PURE__ */ jsxs42("div", { className: "space-y-2 text-center", children: [
|
|
10398
|
-
/* @__PURE__ */ jsxs42("div", { className: "flex items-center justify-center gap-2", children: [
|
|
10399
|
-
/* @__PURE__ */ jsx51(Shield, { className: "h-4 w-4" }),
|
|
10400
|
-
/* @__PURE__ */ jsx51("span", { className: "text-sm font-medium", children: "Vault" })
|
|
10401
|
-
] }),
|
|
10402
|
-
/* @__PURE__ */ jsxs42(
|
|
10403
|
-
"span",
|
|
10404
|
-
{
|
|
10405
|
-
className: cn(
|
|
10406
|
-
"inline-flex items-center text-sm px-3 py-2 rounded-full text-white",
|
|
10407
|
-
hasServerBackup ? "bg-[var(--l-pass-success)]" : "bg-[var(--l-pass-warning)]"
|
|
10408
|
-
),
|
|
10409
|
-
children: [
|
|
10410
|
-
hasServerBackup ? /* @__PURE__ */ jsx51(CheckCircle23, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ jsx51(AlertTriangle4, { className: "h-4 w-4 mr-1" }),
|
|
10411
|
-
hasServerBackup ? "Ready" : "None"
|
|
10412
|
-
]
|
|
10413
|
-
}
|
|
10414
|
-
)
|
|
10415
|
-
] })
|
|
10416
|
-
] }),
|
|
10417
|
-
/* @__PURE__ */ jsxs42(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-4", children: [
|
|
10418
|
-
localInfo?.hasKeyshare && /* @__PURE__ */ jsxs42("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
|
|
10419
|
-
localInfo.ownerAddress && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10420
|
-
/* @__PURE__ */ jsx51("span", { children: "Owner: " }),
|
|
10421
|
-
/* @__PURE__ */ jsx51("span", { className: "font-mono break-all", children: localInfo.ownerAddress })
|
|
10422
|
-
] }),
|
|
10423
|
-
typeof localInfo.keyshareSize === "number" && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10424
|
-
/* @__PURE__ */ jsx51("span", { children: "Size: " }),
|
|
10425
|
-
/* @__PURE__ */ jsx51("span", { className: "font-mono", children: `${Math.round((localInfo.keyshareSize || 0) / 1024)}KB` })
|
|
10426
|
-
] }),
|
|
10427
|
-
localInfo.sessionId && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10428
|
-
/* @__PURE__ */ jsx51("span", { children: "Session: " }),
|
|
10429
|
-
/* @__PURE__ */ jsx51("span", { className: "font-mono break-all", children: localInfo.sessionId })
|
|
10430
|
-
] })
|
|
10431
|
-
] }),
|
|
10432
|
-
/* @__PURE__ */ jsxs42("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
|
|
10433
|
-
backup.server.enabled && backup.server.lastBackup && /* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-1", children: [
|
|
10434
|
-
/* @__PURE__ */ jsx51(Server3, { className: "h-2.5 w-2.5" }),
|
|
10435
|
-
/* @__PURE__ */ jsxs42("span", { children: [
|
|
10436
|
-
"Server: ",
|
|
10437
|
-
new Date(backup.server.lastBackup).toLocaleString()
|
|
10438
|
-
] })
|
|
10439
|
-
] }),
|
|
10440
|
-
!backup.server.lastBackup && recoveryCreatedAt && /* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-1", children: [
|
|
10441
|
-
/* @__PURE__ */ jsx51(Server3, { className: "h-2.5 w-2.5" }),
|
|
10442
|
-
/* @__PURE__ */ jsxs42("span", { children: [
|
|
10443
|
-
"Server: ",
|
|
10444
|
-
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
|
+
)
|
|
10445
10392
|
] })
|
|
10446
10393
|
] }),
|
|
10447
|
-
|
|
10448
|
-
/* @__PURE__ */
|
|
10449
|
-
|
|
10450
|
-
|
|
10451
|
-
|
|
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
|
+
)
|
|
10452
10451
|
] })
|
|
10453
10452
|
] }),
|
|
10454
|
-
|
|
10455
|
-
/* @__PURE__ */
|
|
10456
|
-
|
|
10457
|
-
|
|
10458
|
-
|
|
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
|
+
)) })
|
|
10459
10559
|
] })
|
|
10460
10560
|
] })
|
|
10461
|
-
]
|
|
10462
|
-
|
|
10463
|
-
|
|
10464
|
-
recoveryCreatedAt && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10465
|
-
"Created: ",
|
|
10466
|
-
new Date(recoveryCreatedAt).toLocaleString(),
|
|
10467
|
-
" "
|
|
10468
|
-
] }),
|
|
10469
|
-
recoveryCountry && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10470
|
-
"Country: ",
|
|
10471
|
-
recoveryCountry
|
|
10472
|
-
] }),
|
|
10473
|
-
recoveryBrowser && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10474
|
-
"Browser: ",
|
|
10475
|
-
recoveryBrowser
|
|
10476
|
-
] }),
|
|
10477
|
-
parseOS(recoveryUa) && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10478
|
-
"OS: ",
|
|
10479
|
-
parseOS(recoveryUa)
|
|
10480
|
-
] }),
|
|
10481
|
-
recoveryDeviceName && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10482
|
-
"Device: ",
|
|
10483
|
-
recoveryDeviceName
|
|
10484
|
-
] }),
|
|
10485
|
-
recoveryDeviceId && /* @__PURE__ */ jsxs42("div", { children: [
|
|
10486
|
-
"Device ID: ",
|
|
10487
|
-
/* @__PURE__ */ jsx51("span", { className: "font-mono break-all", children: recoveryDeviceId })
|
|
10488
|
-
] })
|
|
10489
|
-
] }),
|
|
10490
|
-
trustedApps.length > 0 && /* @__PURE__ */ jsxs42("div", { className: "w-full space-y-2", children: [
|
|
10491
|
-
/* @__PURE__ */ jsx51("div", { className: "font-medium text-sm text-[var(--l-pass-primary)]", children: `Trusted Applications (${trustedApps.length}):` }),
|
|
10492
|
-
/* @__PURE__ */ jsx51("div", { className: "w-full space-y-1", children: trustedApps.map((app, index) => /* @__PURE__ */ jsxs42(
|
|
10493
|
-
"div",
|
|
10494
|
-
{
|
|
10495
|
-
className: "text-[10px] leading-tight p-2 rounded flex items-start justify-between gap-2 bg-[var(--l-pass-secondary)]",
|
|
10496
|
-
children: [
|
|
10497
|
-
/* @__PURE__ */ jsxs42("div", { className: "flex-1 min-w-0", children: [
|
|
10498
|
-
/* @__PURE__ */ jsx51("div", { className: "font-medium", children: new URL(app.origin).hostname }),
|
|
10499
|
-
/* @__PURE__ */ jsxs42("div", { className: "text-[var(--l-pass-fg-muted)]", children: [
|
|
10500
|
-
"Trusted: ",
|
|
10501
|
-
new Date(app.trustedAt).toLocaleDateString()
|
|
10502
|
-
] })
|
|
10503
|
-
] }),
|
|
10504
|
-
/* @__PURE__ */ jsx51(
|
|
10505
|
-
Button,
|
|
10506
|
-
{
|
|
10507
|
-
variant: "ghost",
|
|
10508
|
-
size: "icon",
|
|
10509
|
-
title: "Remove from trusted",
|
|
10510
|
-
className: "text-[var(--l-pass-error)]",
|
|
10511
|
-
onClick: () => setAppToRemove({
|
|
10512
|
-
projectId: app.projectId,
|
|
10513
|
-
origin: app.origin,
|
|
10514
|
-
hostname: new URL(app.origin).hostname
|
|
10515
|
-
}),
|
|
10516
|
-
children: /* @__PURE__ */ jsx51(Trash22, { className: "h-3 w-3" })
|
|
10517
|
-
}
|
|
10518
|
-
)
|
|
10519
|
-
]
|
|
10520
|
-
},
|
|
10521
|
-
index
|
|
10522
|
-
)) })
|
|
10523
|
-
] })
|
|
10524
|
-
] })
|
|
10525
|
-
] });
|
|
10561
|
+
]
|
|
10562
|
+
}
|
|
10563
|
+
);
|
|
10526
10564
|
}
|
|
10527
10565
|
|
|
10528
10566
|
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
10529
10567
|
import { AlertCircle as AlertCircle5, ArrowLeft as ArrowLeft10, CheckCircle2 as CheckCircle24, Loader as Loader16, Wallet } from "lucide-react";
|
|
10530
|
-
import { useEffect as
|
|
10568
|
+
import { useEffect as useEffect21, useState as useState13 } from "react";
|
|
10531
10569
|
import { isAddress as isAddress2 } from "viem";
|
|
10532
10570
|
import { useBalance as useBalance3 } from "wagmi";
|
|
10533
10571
|
|
|
10534
10572
|
// src/hooks/useSendTransaction.ts
|
|
10535
|
-
import { useCallback as
|
|
10573
|
+
import { useCallback as useCallback13, useState as useState12 } from "react";
|
|
10536
10574
|
import { isAddress, parseEther as parseEther2 } from "viem";
|
|
10537
10575
|
init_account();
|
|
10538
10576
|
function useSendTransaction() {
|
|
@@ -10541,7 +10579,7 @@ function useSendTransaction() {
|
|
|
10541
10579
|
const [isLoading, setIsLoading] = useState12(false);
|
|
10542
10580
|
const [error, setError] = useState12(null);
|
|
10543
10581
|
const [userOpHash, setUserOpHash] = useState12(null);
|
|
10544
|
-
const sendTransaction =
|
|
10582
|
+
const sendTransaction = useCallback13(
|
|
10545
10583
|
async (params) => {
|
|
10546
10584
|
if (!session || !address) {
|
|
10547
10585
|
setError("No active session");
|
|
@@ -10581,7 +10619,7 @@ function useSendTransaction() {
|
|
|
10581
10619
|
},
|
|
10582
10620
|
[session, address]
|
|
10583
10621
|
);
|
|
10584
|
-
const reset =
|
|
10622
|
+
const reset = useCallback13(() => {
|
|
10585
10623
|
setError(null);
|
|
10586
10624
|
setUserOpHash(null);
|
|
10587
10625
|
setIsLoading(false);
|
|
@@ -10615,7 +10653,7 @@ function SendLumiaMenu() {
|
|
|
10615
10653
|
const [validationError, setValidationError] = useState13(null);
|
|
10616
10654
|
const nativeAsset = assets.find((a) => a.type === "native");
|
|
10617
10655
|
const balance = nativeAsset ? parseFloat(nativeAsset.formattedBalance) : 0;
|
|
10618
|
-
|
|
10656
|
+
useEffect21(() => {
|
|
10619
10657
|
if (open) {
|
|
10620
10658
|
setTxStep("input");
|
|
10621
10659
|
setValidationError(null);
|
|
@@ -10780,7 +10818,7 @@ function SendLumiaMenu() {
|
|
|
10780
10818
|
init_clients();
|
|
10781
10819
|
import { ArrowLeft as ArrowLeft11, CheckCircle2 as CheckCircle25, Copy as Copy2, Loader as Loader17 } from "lucide-react";
|
|
10782
10820
|
import QRCode from "qrcode";
|
|
10783
|
-
import { useCallback as
|
|
10821
|
+
import { useCallback as useCallback14, useEffect as useEffect22, useState as useState14 } from "react";
|
|
10784
10822
|
import { Fragment as Fragment13, jsx as jsx53, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
10785
10823
|
function ReceiveLumiaMenu() {
|
|
10786
10824
|
const address = useLumiaPassportSession((st) => st.address);
|
|
@@ -10790,7 +10828,7 @@ function ReceiveLumiaMenu() {
|
|
|
10790
10828
|
const open = page === "receive";
|
|
10791
10829
|
const [qrCodeUrl, setQrCodeUrl] = useState14("");
|
|
10792
10830
|
const [copied, setCopied] = useState14(false);
|
|
10793
|
-
|
|
10831
|
+
useEffect22(() => {
|
|
10794
10832
|
if (open && address) {
|
|
10795
10833
|
QRCode.toDataURL(address, {
|
|
10796
10834
|
width: 200,
|
|
@@ -10803,7 +10841,7 @@ function ReceiveLumiaMenu() {
|
|
|
10803
10841
|
});
|
|
10804
10842
|
}
|
|
10805
10843
|
}, [open, address]);
|
|
10806
|
-
const handleCopy =
|
|
10844
|
+
const handleCopy = useCallback14(async () => {
|
|
10807
10845
|
if (!address) return;
|
|
10808
10846
|
try {
|
|
10809
10847
|
await navigator.clipboard.writeText(address);
|
|
@@ -10818,7 +10856,7 @@ function ReceiveLumiaMenu() {
|
|
|
10818
10856
|
{
|
|
10819
10857
|
style: {
|
|
10820
10858
|
"--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
|
|
10821
|
-
"--l-pass-list-scrollbar-pd-r": "
|
|
10859
|
+
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
10822
10860
|
},
|
|
10823
10861
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
10824
10862
|
children: [
|
|
@@ -10849,7 +10887,7 @@ function ReceiveLumiaMenu() {
|
|
|
10849
10887
|
|
|
10850
10888
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
10851
10889
|
import { ArrowLeft as ArrowLeft12 } from "lucide-react";
|
|
10852
|
-
import { useEffect as
|
|
10890
|
+
import { useEffect as useEffect23 } from "react";
|
|
10853
10891
|
|
|
10854
10892
|
// src/internal/components/SettingsMenu/constants.ts
|
|
10855
10893
|
import { ArrowLeftRight, DatabaseBackup as DatabaseBackup2, LockKeyhole, UsersRound } from "lucide-react";
|
|
@@ -10883,13 +10921,13 @@ function SettingsMenu() {
|
|
|
10883
10921
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10884
10922
|
const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
|
|
10885
10923
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
10886
|
-
|
|
10924
|
+
useEffect23(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
|
|
10887
10925
|
const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
|
|
10888
10926
|
const highlightedKeys = settingsNotifications.map((n) => n.target);
|
|
10889
10927
|
return /* @__PURE__ */ jsxs45("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
10890
10928
|
/* @__PURE__ */ jsxs45("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
10891
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" }) }),
|
|
10892
|
-
/* @__PURE__ */ jsx55("span", { className: "text-xl font-semibold", children: "
|
|
10930
|
+
/* @__PURE__ */ jsx55("span", { className: "text-xl font-semibold", children: "Settings" })
|
|
10893
10931
|
] }),
|
|
10894
10932
|
/* @__PURE__ */ jsx55("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: navItems.map(({ id, name, Icon, onClick }) => /* @__PURE__ */ jsxs45(
|
|
10895
10933
|
Button,
|
|
@@ -10941,9 +10979,9 @@ function TermsOfService() {
|
|
|
10941
10979
|
}
|
|
10942
10980
|
|
|
10943
10981
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
10944
|
-
import { useQuery as
|
|
10982
|
+
import { useQuery as useQuery9, useQueryClient as useQueryClient12 } from "@tanstack/react-query";
|
|
10945
10983
|
import { ArrowLeft as ArrowLeft14, Loader as Loader18, RefreshCw as RefreshCw3, XCircle as XCircle2 } from "lucide-react";
|
|
10946
|
-
import { useCallback as
|
|
10984
|
+
import { useCallback as useCallback15, useState as useState15 } from "react";
|
|
10947
10985
|
|
|
10948
10986
|
// src/internal/components/TransactionsMenu/api.ts
|
|
10949
10987
|
init_base();
|
|
@@ -11419,78 +11457,60 @@ function TransactionsGroup(props) {
|
|
|
11419
11457
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
11420
11458
|
import { jsx as jsx59, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
11421
11459
|
function TransactionsMenu() {
|
|
11422
|
-
const qc =
|
|
11460
|
+
const qc = useQueryClient12();
|
|
11423
11461
|
const address = useLumiaPassportSession((st) => st.address);
|
|
11424
11462
|
const page = useLayoutDataStore((st) => st.page);
|
|
11425
11463
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11426
11464
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
11427
|
-
const txContainerListRef = useRef10(null);
|
|
11428
|
-
const txListRef = useRef10(null);
|
|
11429
11465
|
const [expandedGroups, setExpandedGroups] = useState15({});
|
|
11430
11466
|
const {
|
|
11431
11467
|
data: txHistoryGroups = [],
|
|
11432
11468
|
isLoading: isTxHistoryLoading,
|
|
11433
11469
|
isFetching: isTxHistoryFetching,
|
|
11434
11470
|
error: txHistoryError
|
|
11435
|
-
} =
|
|
11471
|
+
} = useQuery9({
|
|
11436
11472
|
retry: false,
|
|
11437
11473
|
enabled: !!address && page === "transactions",
|
|
11438
11474
|
queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address],
|
|
11439
11475
|
queryFn: () => getTransactionsListQuery(address)
|
|
11440
11476
|
});
|
|
11441
|
-
const refreshTxHistory =
|
|
11477
|
+
const refreshTxHistory = useCallback15(
|
|
11442
11478
|
() => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address] }),
|
|
11443
11479
|
[qc, address]
|
|
11444
11480
|
);
|
|
11445
11481
|
const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
|
|
11446
|
-
|
|
11447
|
-
|
|
11448
|
-
|
|
11449
|
-
|
|
11450
|
-
|
|
11451
|
-
|
|
11452
|
-
|
|
11453
|
-
|
|
11454
|
-
|
|
11455
|
-
|
|
11456
|
-
|
|
11457
|
-
|
|
11458
|
-
|
|
11459
|
-
|
|
11460
|
-
|
|
11461
|
-
|
|
11462
|
-
|
|
11463
|
-
|
|
11464
|
-
|
|
11465
|
-
|
|
11466
|
-
|
|
11467
|
-
|
|
11468
|
-
|
|
11469
|
-
|
|
11470
|
-
|
|
11471
|
-
|
|
11472
|
-
|
|
11473
|
-
|
|
11474
|
-
|
|
11475
|
-
|
|
11476
|
-
|
|
11477
|
-
|
|
11478
|
-
isTxHistoryLoading && /* @__PURE__ */ jsx59("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ jsx59(Loader18, { className: "h-5 w-5 animate-spin" }) }),
|
|
11479
|
-
!isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ jsxs49(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
11480
|
-
/* @__PURE__ */ jsx59(XCircle2, { className: "w-4 h-4 flex-none" }),
|
|
11481
|
-
/* @__PURE__ */ jsx59("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
|
|
11482
|
-
] }),
|
|
11483
|
-
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ jsx59(Highlight, { type: "warning", children: /* @__PURE__ */ jsx59("span", { children: "No transactions found. Smart account transactions will appear here" }) }),
|
|
11484
|
-
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ jsx59(
|
|
11485
|
-
"div",
|
|
11486
|
-
{
|
|
11487
|
-
ref: txContainerListRef,
|
|
11488
|
-
style: {
|
|
11489
|
-
borderTop: "1px solid var(--l-pass-list-bd)",
|
|
11490
|
-
borderBottom: "1px solid var(--l-pass-list-bd)"
|
|
11491
|
-
},
|
|
11492
|
-
className: "list-scrollbar-y relative",
|
|
11493
|
-
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(
|
|
11494
11514
|
TransactionsGroup,
|
|
11495
11515
|
{
|
|
11496
11516
|
group,
|
|
@@ -11499,10 +11519,10 @@ function TransactionsMenu() {
|
|
|
11499
11519
|
},
|
|
11500
11520
|
group.id
|
|
11501
11521
|
)) })
|
|
11502
|
-
}
|
|
11503
|
-
|
|
11504
|
-
|
|
11505
|
-
|
|
11522
|
+
] })
|
|
11523
|
+
]
|
|
11524
|
+
}
|
|
11525
|
+
);
|
|
11506
11526
|
}
|
|
11507
11527
|
|
|
11508
11528
|
// src/internal/components/PageMap.tsx
|
|
@@ -11614,7 +11634,7 @@ function usePageMapper() {
|
|
|
11614
11634
|
setIsDialogOpen,
|
|
11615
11635
|
setIsDialogClosing
|
|
11616
11636
|
} = useLayoutStore();
|
|
11617
|
-
const closeDialog =
|
|
11637
|
+
const closeDialog = useCallback16(() => {
|
|
11618
11638
|
setIsDialogClosing(true);
|
|
11619
11639
|
setTimeout(() => {
|
|
11620
11640
|
setDialogContent(null);
|
|
@@ -11625,7 +11645,7 @@ function usePageMapper() {
|
|
|
11625
11645
|
setIsDialogOpen(false);
|
|
11626
11646
|
}, CLEAR_DIALOG_TIMEOUT);
|
|
11627
11647
|
}, [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogForced, setIsDialogOpen, setIsDialogClosing]);
|
|
11628
|
-
const openDialog =
|
|
11648
|
+
const openDialog = useCallback16(
|
|
11629
11649
|
(pageItem) => {
|
|
11630
11650
|
const PageContentComponent = pageItem.component;
|
|
11631
11651
|
setDialogTitle(pageItem.title);
|
|
@@ -11635,7 +11655,7 @@ function usePageMapper() {
|
|
|
11635
11655
|
},
|
|
11636
11656
|
[setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
|
|
11637
11657
|
);
|
|
11638
|
-
|
|
11658
|
+
useEffect24(() => {
|
|
11639
11659
|
if (page === null) return closeDialog();
|
|
11640
11660
|
const pageItem = protectedRoutes[page];
|
|
11641
11661
|
if (!pageItem) {
|
|
@@ -11649,7 +11669,7 @@ function usePageMapper() {
|
|
|
11649
11669
|
|
|
11650
11670
|
// src/internal/hooks/useSettingsNotifications.ts
|
|
11651
11671
|
init_auth();
|
|
11652
|
-
import { useEffect as
|
|
11672
|
+
import { useEffect as useEffect25 } from "react";
|
|
11653
11673
|
var EMAIL_NOT_CONNECTED_NOTIFICATION = {
|
|
11654
11674
|
id: "email-not-connected",
|
|
11655
11675
|
target: "manage-wallet" /* MANAGE_WALLET */,
|
|
@@ -11665,13 +11685,13 @@ function useSettingsNotifications() {
|
|
|
11665
11685
|
const setSettingsNotifications = useLayoutDataStore((st) => st.setSettingsNotifications);
|
|
11666
11686
|
const providers = jwtTokenManager2.getProviders();
|
|
11667
11687
|
const hasEmail = providers.includes("email");
|
|
11668
|
-
|
|
11688
|
+
useEffect25(() => {
|
|
11669
11689
|
setSettingsNotifications({
|
|
11670
11690
|
...BACKUP_IS_NOT_CREATED_NOTIFICATION,
|
|
11671
11691
|
status: hasServerVault ? "resolved" : "active"
|
|
11672
11692
|
});
|
|
11673
11693
|
}, [hasServerVault, setSettingsNotifications]);
|
|
11674
|
-
|
|
11694
|
+
useEffect25(() => {
|
|
11675
11695
|
setSettingsNotifications({
|
|
11676
11696
|
...EMAIL_NOT_CONNECTED_NOTIFICATION,
|
|
11677
11697
|
status: hasEmail ? "resolved" : "active"
|
|
@@ -11680,7 +11700,7 @@ function useSettingsNotifications() {
|
|
|
11680
11700
|
}
|
|
11681
11701
|
|
|
11682
11702
|
// src/internal/hooks/useWalletStatus.ts
|
|
11683
|
-
import { useEffect as
|
|
11703
|
+
import { useEffect as useEffect26 } from "react";
|
|
11684
11704
|
init_auth();
|
|
11685
11705
|
function useWalletStatus() {
|
|
11686
11706
|
const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
|
|
@@ -11690,7 +11710,7 @@ function useWalletStatus() {
|
|
|
11690
11710
|
config: { current: config },
|
|
11691
11711
|
callbacks
|
|
11692
11712
|
} = useLumiaPassportConfig();
|
|
11693
|
-
|
|
11713
|
+
useEffect26(() => {
|
|
11694
11714
|
if (!isIframeReady || !config.projectId || !callbacks?.onWalletReady) return;
|
|
11695
11715
|
const userId = jwtTokenManager2.getUserId();
|
|
11696
11716
|
const hasKeyshare = jwtTokenManager2.getHasKeyshare();
|
|
@@ -11719,7 +11739,7 @@ function LumiaPassportDialog() {
|
|
|
11719
11739
|
const mainPageHeight = useLayoutDataStore((st) => st.mainPageHeight);
|
|
11720
11740
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11721
11741
|
const { colorMode, isDialogOpen, dialogTitle, dialogDescription, dialogContent, isDialogForced, setIsSettings } = useLayoutStore();
|
|
11722
|
-
|
|
11742
|
+
useEffect27(() => setIsSettings(!!session), [session, setIsSettings]);
|
|
11723
11743
|
usePageMapper();
|
|
11724
11744
|
useAutoConnect();
|
|
11725
11745
|
useCheckVaultStatus();
|
|
@@ -11758,7 +11778,7 @@ function LumiaPassportDialog() {
|
|
|
11758
11778
|
}
|
|
11759
11779
|
|
|
11760
11780
|
// src/internal/components/TssManager.tsx
|
|
11761
|
-
import React12, { useCallback as
|
|
11781
|
+
import React12, { useCallback as useCallback17 } from "react";
|
|
11762
11782
|
init_auth();
|
|
11763
11783
|
init_clients();
|
|
11764
11784
|
var TssManagerWithRef = React12.forwardRef((props, ref) => {
|
|
@@ -11767,7 +11787,7 @@ var TssManagerWithRef = React12.forwardRef((props, ref) => {
|
|
|
11767
11787
|
const setStatus = useLumiaPassportSession((st) => st.setStatus);
|
|
11768
11788
|
const setSession = useLumiaPassportSession((st) => st.setSession);
|
|
11769
11789
|
const setAddress = useLumiaPassportSession((st) => st.setAddress);
|
|
11770
|
-
const onSessionCreated =
|
|
11790
|
+
const onSessionCreated = useCallback17(
|
|
11771
11791
|
(session, address) => {
|
|
11772
11792
|
setSession(session);
|
|
11773
11793
|
setAddress(address);
|
|
@@ -11802,11 +11822,11 @@ var TssManagerWithRef = React12.forwardRef((props, ref) => {
|
|
|
11802
11822
|
// src/internal/components/WalletConnectHandler.tsx
|
|
11803
11823
|
init_wallet();
|
|
11804
11824
|
import { useConnectModal } from "@rainbow-me/rainbowkit";
|
|
11805
|
-
import { useQueryClient as
|
|
11806
|
-
import React13, { useCallback as
|
|
11825
|
+
import { useQueryClient as useQueryClient13 } from "@tanstack/react-query";
|
|
11826
|
+
import React13, { useCallback as useCallback18, useEffect as useEffect28 } from "react";
|
|
11807
11827
|
import { useAccount, useDisconnect, useSignMessage } from "wagmi";
|
|
11808
11828
|
function WalletConnectHandler() {
|
|
11809
|
-
const qc =
|
|
11829
|
+
const qc = useQueryClient13();
|
|
11810
11830
|
const { callbacks } = useLumiaPassportConfig();
|
|
11811
11831
|
const userAddress = useLumiaPassportSession((st) => st.address);
|
|
11812
11832
|
const { address: walletAddress, isConnected, chain, connector } = useAccount();
|
|
@@ -11814,12 +11834,12 @@ function WalletConnectHandler() {
|
|
|
11814
11834
|
const { signMessageAsync } = useSignMessage();
|
|
11815
11835
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11816
11836
|
const { isWalletLinking, setLinkError, setIsWalletLinking, setLinkIsLoading, setProviderType } = useManageWalletStore();
|
|
11817
|
-
const onError =
|
|
11837
|
+
const onError = useCallback18((error) => {
|
|
11818
11838
|
setLinkError(error);
|
|
11819
11839
|
setIsWalletLinking(false);
|
|
11820
11840
|
setPage("manage-wallet" /* MANAGE_WALLET */);
|
|
11821
11841
|
}, []);
|
|
11822
|
-
const onLinkingComplete =
|
|
11842
|
+
const onLinkingComplete = useCallback18(
|
|
11823
11843
|
async (success) => {
|
|
11824
11844
|
console.log("[WalletConnectHandler] onLinkingComplete called:", { success, userAddress });
|
|
11825
11845
|
setIsWalletLinking(false);
|
|
@@ -11844,7 +11864,7 @@ function WalletConnectHandler() {
|
|
|
11844
11864
|
const { openConnectModal, connectModalOpen } = useConnectModal();
|
|
11845
11865
|
const [hasStartedLinking, setHasStartedLinking] = React13.useState(false);
|
|
11846
11866
|
const timeoutRef = React13.useRef();
|
|
11847
|
-
|
|
11867
|
+
useEffect28(() => {
|
|
11848
11868
|
if (isWalletLinking && !hasStartedLinking) {
|
|
11849
11869
|
setHasStartedLinking(true);
|
|
11850
11870
|
setProviderType(null);
|
|
@@ -11869,7 +11889,7 @@ function WalletConnectHandler() {
|
|
|
11869
11889
|
if (isConnected) disconnect();
|
|
11870
11890
|
}
|
|
11871
11891
|
}, [isWalletLinking, hasStartedLinking, isConnected, openConnectModal, disconnect, setPage, setProviderType]);
|
|
11872
|
-
|
|
11892
|
+
useEffect28(() => {
|
|
11873
11893
|
console.log("[WalletConnectHandler] Modal state check:", {
|
|
11874
11894
|
hasStartedLinking,
|
|
11875
11895
|
connectModalOpen,
|
|
@@ -11882,7 +11902,7 @@ function WalletConnectHandler() {
|
|
|
11882
11902
|
setHasStartedLinking(false);
|
|
11883
11903
|
}
|
|
11884
11904
|
}, [connectModalOpen, hasStartedLinking, isConnected, isWalletLinking]);
|
|
11885
|
-
|
|
11905
|
+
useEffect28(() => {
|
|
11886
11906
|
if (isConnected && walletAddress && isWalletLinking && hasStartedLinking) {
|
|
11887
11907
|
handleWalletSign();
|
|
11888
11908
|
}
|
|
@@ -11953,7 +11973,8 @@ var useLumiaPassportSession = create5((set) => ({
|
|
|
11953
11973
|
error: null,
|
|
11954
11974
|
recoveryUserId: null,
|
|
11955
11975
|
isIframeReady: false,
|
|
11956
|
-
hasServerVault:
|
|
11976
|
+
hasServerVault: true,
|
|
11977
|
+
// assume true until proven otherwise to not throw red warnings before checking
|
|
11957
11978
|
walletReadyStatus: null,
|
|
11958
11979
|
setIsLoading: (isLoading) => set({ isLoading }),
|
|
11959
11980
|
setUsePaymaster: (usePaymaster) => set({ usePaymaster }),
|
|
@@ -12025,9 +12046,9 @@ function LumiaPassportProvider(props) {
|
|
|
12025
12046
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
12026
12047
|
const setIsIframeReady = useLumiaPassportSession((st) => st.setIsIframeReady);
|
|
12027
12048
|
const setWalletReadyStatus = useLumiaPassportSession((st) => st.setWalletReadyStatus);
|
|
12028
|
-
|
|
12049
|
+
useEffect29(() => notifyNoProjetctId(projectId), [projectId]);
|
|
12029
12050
|
const config = useRef11({ projectId, ...DEFAULT_LUMIA_PASSPORT_CONFIG });
|
|
12030
|
-
const updateConfig =
|
|
12051
|
+
const updateConfig = useCallback19((updates) => {
|
|
12031
12052
|
const prev = config.current;
|
|
12032
12053
|
const next = { ...prev };
|
|
12033
12054
|
if (updates.projectId !== void 0) next.projectId = updates.projectId;
|
|
@@ -12062,7 +12083,7 @@ function LumiaPassportProvider(props) {
|
|
|
12062
12083
|
}
|
|
12063
12084
|
config.current = next;
|
|
12064
12085
|
}, []);
|
|
12065
|
-
|
|
12086
|
+
useEffect29(() => {
|
|
12066
12087
|
if (typeof window === "undefined" || !projectId) return;
|
|
12067
12088
|
const mergedConfig = merge2(DEFAULT_LUMIA_PASSPORT_CONFIG, initialConfig);
|
|
12068
12089
|
updateConfig(mergedConfig);
|
|
@@ -12118,7 +12139,7 @@ var useLumiaPassportConfig = () => {
|
|
|
12118
12139
|
|
|
12119
12140
|
// src/components/ConnectWalletButton.tsx
|
|
12120
12141
|
import { Cloud as Cloud3, Laptop as Laptop2, Loader as Loader19, Shield as Shield2 } from "lucide-react";
|
|
12121
|
-
import { useEffect as
|
|
12142
|
+
import { useEffect as useEffect30, useMemo as useMemo4 } from "react";
|
|
12122
12143
|
init_auth();
|
|
12123
12144
|
import { Fragment as Fragment16, jsx as jsx65, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
12124
12145
|
function getFormattedStatus(label, status, showStatus) {
|
|
@@ -12138,7 +12159,7 @@ function ConnectWalletButton(props) {
|
|
|
12138
12159
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
12139
12160
|
const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useLumiaPassportSession();
|
|
12140
12161
|
const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
|
|
12141
|
-
|
|
12162
|
+
useEffect30(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
|
|
12142
12163
|
const avatar = jwtTokenManager2.getAvatar();
|
|
12143
12164
|
const displayName = jwtTokenManager2.getDisplayName();
|
|
12144
12165
|
const indicators = useMemo4(() => {
|
|
@@ -12299,13 +12320,13 @@ var useLumiaPassportRecoveryUserId = () => useLumiaPassportSession((st) => st.re
|
|
|
12299
12320
|
var useLumiaPassportHasServerVault = () => useLumiaPassportSession((st) => st.hasServerVault);
|
|
12300
12321
|
|
|
12301
12322
|
// src/hooks/useLumiaPassportOpen.ts
|
|
12302
|
-
import { useCallback as
|
|
12323
|
+
import { useCallback as useCallback20 } from "react";
|
|
12303
12324
|
function useLumiaPassportOpen() {
|
|
12304
12325
|
const page = useLayoutDataStore((st) => st.page);
|
|
12305
12326
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
12306
12327
|
const setPageParams = useLayoutDataStore((st) => st.setPageParams);
|
|
12307
12328
|
const address = useLumiaPassportSession((st) => st.address);
|
|
12308
|
-
const open =
|
|
12329
|
+
const open = useCallback20(
|
|
12309
12330
|
(passportPage, params) => {
|
|
12310
12331
|
if (!address) return setPage("auth" /* AUTH */);
|
|
12311
12332
|
if (!!address && passportPage === "auth" /* AUTH */) return setPage("manage-wallet" /* MANAGE_WALLET */);
|
|
@@ -12314,12 +12335,12 @@ function useLumiaPassportOpen() {
|
|
|
12314
12335
|
},
|
|
12315
12336
|
[setPage, setPageParams, address]
|
|
12316
12337
|
);
|
|
12317
|
-
const close =
|
|
12338
|
+
const close = useCallback20(() => setPage(null), [setPage]);
|
|
12318
12339
|
return { open, close, isOpen: page !== null };
|
|
12319
12340
|
}
|
|
12320
12341
|
|
|
12321
12342
|
// src/hooks/useLumiaPassportColorMode.ts
|
|
12322
|
-
import { useCallback as
|
|
12343
|
+
import { useCallback as useCallback21, useEffect as useEffect31 } from "react";
|
|
12323
12344
|
function useLumiaPassportColorMode() {
|
|
12324
12345
|
const {
|
|
12325
12346
|
config: { current: config }
|
|
@@ -12327,14 +12348,14 @@ function useLumiaPassportColorMode() {
|
|
|
12327
12348
|
const preferedColorMode = config?.preferedColorMode;
|
|
12328
12349
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
12329
12350
|
const handleStoreColorMode = useLayoutStore((st) => st.setColorMode);
|
|
12330
|
-
const setColorMode =
|
|
12351
|
+
const setColorMode = useCallback21(
|
|
12331
12352
|
(mode) => {
|
|
12332
12353
|
localStorage.setItem(LOCAL_COLOR_MODE_KEY, mode);
|
|
12333
12354
|
handleStoreColorMode(mode);
|
|
12334
12355
|
},
|
|
12335
12356
|
[handleStoreColorMode]
|
|
12336
12357
|
);
|
|
12337
|
-
|
|
12358
|
+
useEffect31(() => {
|
|
12338
12359
|
let targetColorMode = localStorage.getItem(LOCAL_COLOR_MODE_KEY);
|
|
12339
12360
|
if (!targetColorMode && !preferedColorMode) {
|
|
12340
12361
|
const systemMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
@@ -12376,24 +12397,14 @@ function ThemeToggle(props) {
|
|
|
12376
12397
|
}
|
|
12377
12398
|
|
|
12378
12399
|
// src/context/RainbowKitContext.tsx
|
|
12379
|
-
import React14 from "react";
|
|
12380
|
-
import "@rainbow-me/rainbowkit/styles.css";
|
|
12381
12400
|
import { darkTheme, lightTheme, RainbowKitProvider } from "@rainbow-me/rainbowkit";
|
|
12401
|
+
import { useMemo as useMemo5 } from "react";
|
|
12382
12402
|
import { WagmiProvider as WagmiProvider2 } from "wagmi";
|
|
12383
12403
|
|
|
12384
12404
|
// src/config/rainbowkit.ts
|
|
12385
12405
|
init_base();
|
|
12386
12406
|
import { getDefaultConfig } from "@rainbow-me/rainbowkit";
|
|
12387
|
-
import {
|
|
12388
|
-
mainnet,
|
|
12389
|
-
polygon,
|
|
12390
|
-
bsc,
|
|
12391
|
-
arbitrum,
|
|
12392
|
-
optimism,
|
|
12393
|
-
avalanche,
|
|
12394
|
-
base,
|
|
12395
|
-
zora
|
|
12396
|
-
} from "wagmi/chains";
|
|
12407
|
+
import { arbitrum, avalanche, base, bsc, mainnet, optimism, polygon, zora } from "wagmi/chains";
|
|
12397
12408
|
var getProjectId = (configProjectId) => {
|
|
12398
12409
|
if (configProjectId) {
|
|
12399
12410
|
return configProjectId;
|
|
@@ -12427,145 +12438,221 @@ var rainbowConfig = createRainbowConfig();
|
|
|
12427
12438
|
var rainbowTheme = {
|
|
12428
12439
|
lightMode: {
|
|
12429
12440
|
colors: {
|
|
12430
|
-
|
|
12431
|
-
|
|
12432
|
-
|
|
12433
|
-
|
|
12434
|
-
|
|
12435
|
-
|
|
12436
|
-
|
|
12437
|
-
|
|
12438
|
-
|
|
12439
|
-
|
|
12440
|
-
|
|
12441
|
-
|
|
12442
|
-
|
|
12443
|
-
|
|
12444
|
-
|
|
12445
|
-
|
|
12446
|
-
|
|
12447
|
-
|
|
12448
|
-
|
|
12449
|
-
|
|
12450
|
-
|
|
12451
|
-
|
|
12452
|
-
|
|
12453
|
-
|
|
12454
|
-
|
|
12455
|
-
|
|
12456
|
-
|
|
12457
|
-
|
|
12458
|
-
|
|
12459
|
-
|
|
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
|
|
12460
12509
|
},
|
|
12461
12510
|
shadows: {
|
|
12462
|
-
connectButton: "0px 4px
|
|
12463
|
-
|
|
12464
|
-
|
|
12465
|
-
|
|
12466
|
-
|
|
12467
|
-
|
|
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)"
|
|
12468
12518
|
},
|
|
12469
12519
|
radii: {
|
|
12470
|
-
actionButton: "
|
|
12471
|
-
|
|
12472
|
-
|
|
12473
|
-
|
|
12474
|
-
|
|
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
|
|
12475
12530
|
}
|
|
12476
12531
|
},
|
|
12477
12532
|
darkMode: {
|
|
12478
12533
|
colors: {
|
|
12479
|
-
|
|
12480
|
-
|
|
12481
|
-
|
|
12482
|
-
|
|
12483
|
-
|
|
12484
|
-
|
|
12485
|
-
|
|
12486
|
-
|
|
12487
|
-
|
|
12488
|
-
|
|
12489
|
-
|
|
12490
|
-
|
|
12491
|
-
|
|
12492
|
-
|
|
12493
|
-
|
|
12494
|
-
|
|
12495
|
-
|
|
12496
|
-
|
|
12497
|
-
|
|
12498
|
-
|
|
12499
|
-
|
|
12500
|
-
|
|
12501
|
-
|
|
12502
|
-
|
|
12503
|
-
|
|
12504
|
-
|
|
12505
|
-
|
|
12506
|
-
|
|
12507
|
-
|
|
12508
|
-
|
|
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
|
|
12509
12602
|
},
|
|
12510
12603
|
shadows: {
|
|
12511
|
-
connectButton: "0px 4px
|
|
12512
|
-
|
|
12513
|
-
|
|
12514
|
-
|
|
12515
|
-
|
|
12516
|
-
|
|
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)"
|
|
12517
12611
|
},
|
|
12518
12612
|
radii: {
|
|
12519
|
-
actionButton: "
|
|
12520
|
-
|
|
12521
|
-
|
|
12522
|
-
|
|
12523
|
-
|
|
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
|
|
12524
12623
|
}
|
|
12525
12624
|
}
|
|
12526
12625
|
};
|
|
12527
12626
|
|
|
12528
12627
|
// src/context/RainbowKitContext.tsx
|
|
12628
|
+
import "@rainbow-me/rainbowkit/styles.css";
|
|
12529
12629
|
import { Fragment as Fragment17, jsx as jsx67 } from "react/jsx-runtime";
|
|
12530
|
-
|
|
12531
|
-
const
|
|
12532
|
-
|
|
12533
|
-
|
|
12534
|
-
const
|
|
12535
|
-
|
|
12536
|
-
return createRainbowConfig(config.wallet?.walletConnectProjectId);
|
|
12537
|
-
}, [config.wallet?.walletConnectProjectId]);
|
|
12538
|
-
const customTheme = React14.useMemo(
|
|
12539
|
-
() => 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" ? {
|
|
12540
12636
|
...darkTheme(),
|
|
12541
|
-
colors: {
|
|
12542
|
-
...darkTheme().colors,
|
|
12543
|
-
...rainbowTheme.darkMode.colors
|
|
12544
|
-
},
|
|
12637
|
+
colors: { ...darkTheme().colors, ...rainbowTheme.darkMode.colors },
|
|
12545
12638
|
shadows: rainbowTheme.darkMode.shadows,
|
|
12546
12639
|
radii: rainbowTheme.darkMode.radii
|
|
12547
12640
|
} : {
|
|
12548
12641
|
...lightTheme(),
|
|
12549
|
-
colors: {
|
|
12550
|
-
...lightTheme().colors,
|
|
12551
|
-
...rainbowTheme.lightMode.colors
|
|
12552
|
-
},
|
|
12642
|
+
colors: { ...lightTheme().colors, ...rainbowTheme.lightMode.colors },
|
|
12553
12643
|
shadows: rainbowTheme.lightMode.shadows,
|
|
12554
12644
|
radii: rainbowTheme.lightMode.radii
|
|
12555
12645
|
},
|
|
12556
|
-
[
|
|
12646
|
+
[colorMode]
|
|
12557
12647
|
);
|
|
12558
|
-
|
|
12559
|
-
if (!isWalletEnabled) {
|
|
12560
|
-
return /* @__PURE__ */ jsx67(Fragment17, { children });
|
|
12561
|
-
}
|
|
12648
|
+
if (!config.current?.wallet?.enabled) return /* @__PURE__ */ jsx67(Fragment17, { children });
|
|
12562
12649
|
return /* @__PURE__ */ jsx67(WagmiProvider2, { config: rainbowConfig2, children: /* @__PURE__ */ jsx67(RainbowKitProvider, { theme: customTheme, modalSize: "compact", showRecentTransactions: true, children }) });
|
|
12563
|
-
}
|
|
12650
|
+
}
|
|
12564
12651
|
|
|
12565
12652
|
// src/internal/components/UserOpStatus.tsx
|
|
12566
12653
|
init_base();
|
|
12567
12654
|
import { AlertCircle as AlertCircle6, CheckCircle2 as CheckCircle27, Clock as Clock2, Copy as Copy5, ExternalLink as ExternalLink2, RefreshCw as RefreshCw4 } from "lucide-react";
|
|
12568
|
-
import * as
|
|
12655
|
+
import * as React15 from "react";
|
|
12569
12656
|
|
|
12570
12657
|
// src/internal/utils/cn.ts
|
|
12571
12658
|
import { clsx as clsx2 } from "clsx";
|
|
@@ -12576,7 +12663,7 @@ function cn2(...inputs) {
|
|
|
12576
12663
|
|
|
12577
12664
|
// src/internal/components/Address.tsx
|
|
12578
12665
|
import { Copy as Copy4, ExternalLink } from "lucide-react";
|
|
12579
|
-
import * as
|
|
12666
|
+
import * as React14 from "react";
|
|
12580
12667
|
import { jsx as jsx68, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
12581
12668
|
function toExplorerAddressUrl(address, chain) {
|
|
12582
12669
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
@@ -12598,7 +12685,7 @@ var Address = ({
|
|
|
12598
12685
|
}) => {
|
|
12599
12686
|
const addr = address || "";
|
|
12600
12687
|
const explorer = toExplorerAddressUrl(addr, chain || void 0);
|
|
12601
|
-
const [copied, setCopied] =
|
|
12688
|
+
const [copied, setCopied] = React14.useState(false);
|
|
12602
12689
|
if (!addr) return /* @__PURE__ */ jsx68("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
12603
12690
|
return /* @__PURE__ */ jsxs53("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
|
|
12604
12691
|
label && /* @__PURE__ */ jsx68("span", { className: "text-sm font-medium", children: label }),
|
|
@@ -12671,20 +12758,20 @@ var UserOpStatus = ({
|
|
|
12671
12758
|
externalState
|
|
12672
12759
|
}) => {
|
|
12673
12760
|
const useExternalState = !!externalState;
|
|
12674
|
-
const [internalReceipt, setInternalReceipt] =
|
|
12675
|
-
const [internalMempool, setInternalMempool] =
|
|
12676
|
-
const [internalError, setInternalError] =
|
|
12677
|
-
const [attempt, setAttempt] =
|
|
12678
|
-
const [internalRefreshing, setInternalRefreshing] =
|
|
12679
|
-
const [timedOut, setTimedOut] =
|
|
12680
|
-
const [rejected, setRejected] =
|
|
12681
|
-
const intervalRef =
|
|
12682
|
-
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());
|
|
12683
12770
|
const receipt = useExternalState ? externalState.receipt ?? null : internalReceipt;
|
|
12684
12771
|
const mempool = useExternalState ? externalState.mempool ?? null : internalMempool;
|
|
12685
12772
|
const error = useExternalState ? externalState.error ?? null : internalError;
|
|
12686
12773
|
const refreshing = useExternalState ? externalState.isPolling ?? false : internalRefreshing;
|
|
12687
|
-
const rpc =
|
|
12774
|
+
const rpc = React15.useCallback(async (method, params) => {
|
|
12688
12775
|
const body = { jsonrpc: "2.0", id: 1, method, params };
|
|
12689
12776
|
const res = await fetch(getBundlerUrl(), {
|
|
12690
12777
|
method: "POST",
|
|
@@ -12695,14 +12782,14 @@ var UserOpStatus = ({
|
|
|
12695
12782
|
if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
|
|
12696
12783
|
return json.result;
|
|
12697
12784
|
}, []);
|
|
12698
|
-
const extractMempoolInfo =
|
|
12785
|
+
const extractMempoolInfo = React15.useCallback((m) => {
|
|
12699
12786
|
if (!m) return null;
|
|
12700
12787
|
const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
|
|
12701
12788
|
const sender = m.sender || m?.userOperation?.sender || null;
|
|
12702
12789
|
if (!entryPoint && !sender) return null;
|
|
12703
12790
|
return { entryPoint, sender };
|
|
12704
12791
|
}, []);
|
|
12705
|
-
const tick =
|
|
12792
|
+
const tick = React15.useCallback(async () => {
|
|
12706
12793
|
if (useExternalState) return;
|
|
12707
12794
|
const elapsed = Date.now() - startTimeRef.current;
|
|
12708
12795
|
if (elapsed > maxPollTimeMs) {
|
|
@@ -12746,7 +12833,7 @@ var UserOpStatus = ({
|
|
|
12746
12833
|
setAttempt((x) => x + 1);
|
|
12747
12834
|
}
|
|
12748
12835
|
}, [rpc, userOpHash, maxPollTimeMs, extractMempoolInfo, useExternalState]);
|
|
12749
|
-
|
|
12836
|
+
React15.useEffect(() => {
|
|
12750
12837
|
if (useExternalState) return;
|
|
12751
12838
|
console.log("[UserOpStatus] Initializing polling for UserOp hash:", userOpHash);
|
|
12752
12839
|
startTimeRef.current = Date.now();
|
|
@@ -12758,7 +12845,7 @@ var UserOpStatus = ({
|
|
|
12758
12845
|
setAttempt(0);
|
|
12759
12846
|
setInternalRefreshing(false);
|
|
12760
12847
|
}, [userOpHash, useExternalState]);
|
|
12761
|
-
|
|
12848
|
+
React15.useEffect(() => {
|
|
12762
12849
|
if (useExternalState) {
|
|
12763
12850
|
console.log("[UserOpStatus] Using external state, skipping internal polling");
|
|
12764
12851
|
return;
|
|
@@ -12935,7 +13022,7 @@ var UserOpStatus = ({
|
|
|
12935
13022
|
|
|
12936
13023
|
// src/internal/components/Hash.tsx
|
|
12937
13024
|
import { Copy as Copy6, ExternalLink as ExternalLink3 } from "lucide-react";
|
|
12938
|
-
import * as
|
|
13025
|
+
import * as React16 from "react";
|
|
12939
13026
|
import { jsx as jsx71, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
12940
13027
|
function toExplorerUrl(kind, value, chain) {
|
|
12941
13028
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
@@ -12959,7 +13046,7 @@ var Hash = ({
|
|
|
12959
13046
|
}) => {
|
|
12960
13047
|
const value = hash || "";
|
|
12961
13048
|
const explorer = toExplorerUrl(kind, value, chain || void 0);
|
|
12962
|
-
const [copied, setCopied] =
|
|
13049
|
+
const [copied, setCopied] = React16.useState(false);
|
|
12963
13050
|
if (!value) return /* @__PURE__ */ jsx71("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
12964
13051
|
return /* @__PURE__ */ jsxs55("div", { className: cn2("flex items-center gap-2", className), children: [
|
|
12965
13052
|
label && /* @__PURE__ */ jsx71("span", { className: "text-sm font-medium", children: label }),
|
|
@@ -12997,13 +13084,13 @@ var Hash = ({
|
|
|
12997
13084
|
|
|
12998
13085
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
12999
13086
|
init_base();
|
|
13000
|
-
import { useEffect as
|
|
13087
|
+
import { useEffect as useEffect33, useState as useState19 } from "react";
|
|
13001
13088
|
import { jsx as jsx72, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
13002
13089
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
13003
13090
|
const [transactions, setTransactions] = useState19([]);
|
|
13004
13091
|
const [loading, setLoading] = useState19(true);
|
|
13005
13092
|
const [error, setError] = useState19(null);
|
|
13006
|
-
|
|
13093
|
+
useEffect33(() => {
|
|
13007
13094
|
const fetchTransactions = async () => {
|
|
13008
13095
|
try {
|
|
13009
13096
|
setLoading(true);
|
|
@@ -13123,7 +13210,7 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
13123
13210
|
|
|
13124
13211
|
// src/hooks/useUserOpStatus.ts
|
|
13125
13212
|
init_base();
|
|
13126
|
-
import * as
|
|
13213
|
+
import * as React18 from "react";
|
|
13127
13214
|
function useUserOpStatus(options = {}) {
|
|
13128
13215
|
const {
|
|
13129
13216
|
userOpHash,
|
|
@@ -13134,16 +13221,16 @@ function useUserOpStatus(options = {}) {
|
|
|
13134
13221
|
onReceipt,
|
|
13135
13222
|
onTxHash
|
|
13136
13223
|
} = options;
|
|
13137
|
-
const [state, setState] =
|
|
13138
|
-
const [receipt, setReceipt] =
|
|
13139
|
-
const [mempool, setMempool] =
|
|
13140
|
-
const [txHash, setTxHash] =
|
|
13141
|
-
const [error, setError] =
|
|
13142
|
-
const [isPolling, setIsPolling] =
|
|
13143
|
-
const intervalRef =
|
|
13144
|
-
const startTimeRef =
|
|
13145
|
-
const prevStateRef =
|
|
13146
|
-
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) => {
|
|
13147
13234
|
const body = { jsonrpc: "2.0", id: 1, method, params };
|
|
13148
13235
|
const res = await fetch(getBundlerUrl(), {
|
|
13149
13236
|
method: "POST",
|
|
@@ -13154,21 +13241,21 @@ function useUserOpStatus(options = {}) {
|
|
|
13154
13241
|
if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
|
|
13155
13242
|
return json.result;
|
|
13156
13243
|
}, []);
|
|
13157
|
-
const extractMempoolInfo =
|
|
13244
|
+
const extractMempoolInfo = React18.useCallback((m) => {
|
|
13158
13245
|
if (!m) return null;
|
|
13159
13246
|
const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
|
|
13160
13247
|
const sender = m.sender || m?.userOperation?.sender || null;
|
|
13161
13248
|
if (!entryPoint && !sender) return null;
|
|
13162
13249
|
return { entryPoint, sender };
|
|
13163
13250
|
}, []);
|
|
13164
|
-
const updateState =
|
|
13251
|
+
const updateState = React18.useCallback((newState) => {
|
|
13165
13252
|
setState(newState);
|
|
13166
13253
|
if (prevStateRef.current !== newState) {
|
|
13167
13254
|
prevStateRef.current = newState;
|
|
13168
13255
|
onStateChange?.(newState);
|
|
13169
13256
|
}
|
|
13170
13257
|
}, [onStateChange]);
|
|
13171
|
-
const tick =
|
|
13258
|
+
const tick = React18.useCallback(async () => {
|
|
13172
13259
|
if (!userOpHash || !enabled) return;
|
|
13173
13260
|
if (receipt) {
|
|
13174
13261
|
console.log("[useUserOpStatus] Already have receipt, skipping tick");
|
|
@@ -13241,7 +13328,7 @@ function useUserOpStatus(options = {}) {
|
|
|
13241
13328
|
onTxHash,
|
|
13242
13329
|
onReceipt
|
|
13243
13330
|
]);
|
|
13244
|
-
|
|
13331
|
+
React18.useEffect(() => {
|
|
13245
13332
|
if (!userOpHash || !enabled) return;
|
|
13246
13333
|
console.log("[useUserOpStatus] Initializing for UserOp hash:", userOpHash);
|
|
13247
13334
|
startTimeRef.current = Date.now();
|
|
@@ -13253,7 +13340,7 @@ function useUserOpStatus(options = {}) {
|
|
|
13253
13340
|
setError(null);
|
|
13254
13341
|
setIsPolling(false);
|
|
13255
13342
|
}, [userOpHash, enabled]);
|
|
13256
|
-
|
|
13343
|
+
React18.useEffect(() => {
|
|
13257
13344
|
if (!userOpHash || !enabled) {
|
|
13258
13345
|
console.log("[useUserOpStatus] Not starting polling - no hash or disabled");
|
|
13259
13346
|
return;
|
|
@@ -13289,7 +13376,7 @@ function useUserOpStatus(options = {}) {
|
|
|
13289
13376
|
}
|
|
13290
13377
|
};
|
|
13291
13378
|
}, [userOpHash, enabled, pollMs]);
|
|
13292
|
-
const refresh =
|
|
13379
|
+
const refresh = React18.useCallback(async () => {
|
|
13293
13380
|
await tick();
|
|
13294
13381
|
}, [tick]);
|
|
13295
13382
|
return {
|
|
@@ -13305,11 +13392,11 @@ function useUserOpStatus(options = {}) {
|
|
|
13305
13392
|
|
|
13306
13393
|
// src/hooks/useLogout.ts
|
|
13307
13394
|
import { logout as coreLogout, jwtTokenManager as jwtTokenManager3 } from "@lumiapassport/core/auth";
|
|
13308
|
-
import { useCallback as
|
|
13395
|
+
import { useCallback as useCallback24 } from "react";
|
|
13309
13396
|
function useLogout() {
|
|
13310
13397
|
const { setSession, setIsLoading, setAddress, setStatus, setError, address } = useLumiaPassportSession();
|
|
13311
13398
|
const { callbacks } = useLumiaPassportConfig();
|
|
13312
|
-
const logout2 =
|
|
13399
|
+
const logout2 = useCallback24(async () => {
|
|
13313
13400
|
const prevAddress = address;
|
|
13314
13401
|
let userId = null;
|
|
13315
13402
|
setIsLoading(true);
|